From 0c47a9122456bdda52468c94207ef68e2c3b4735 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 24 Aug 2018 17:11:41 +0200 Subject: [PATCH 01/39] initial 77 release blog --- _config.yml | 8 +- source/_posts/2018-08-31-release-77.markdown | 340 +++++++++++++++++++ 2 files changed, 344 insertions(+), 4 deletions(-) create mode 100644 source/_posts/2018-08-31-release-77.markdown diff --git a/_config.yml b/_config.yml index 62c8df641b9..360563d2a1c 100644 --- a/_config.yml +++ b/_config.yml @@ -141,14 +141,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 76 -current_patch_version: 2 -date_released: 2018-08-21 +current_minor_version: 77 +current_patch_version: 0 +date_released: 2018-08-31 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0762---august-21" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown new file mode 100644 index 00000000000..85e59ea2228 --- /dev/null +++ b/source/_posts/2018-08-31-release-77.markdown @@ -0,0 +1,340 @@ +--- +layout: post +title: "0.77: TODO - UPDATE DATE" +description: "" +date: 2018-08-24 00:01:00 +date_formatted: "August 31, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-08-0.77/components.png +--- + + + +Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. + +Notification drawer for lovelace. + +Hangouts + + + +## {% linkable_title New Platforms %} + +- Netatmo public ([@colinfrei] - [#15684]) ([sensor.netatmo_public docs]) (new-platform) +- Add ecovacs component ([@OverloadUT] - [#15520]) ([ecovacs docs]) ([vacuum.ecovacs docs]) (new-platform) +- Add support for NOAA tide information (new PR) ([@jcconnell] - [#15947]) ([sensor.noaa_tides docs]) (new-platform) +- Hangouts ([@hobbypunk90] - [#16049]) ([hangouts docs]) ([notify docs]) (new-platform) + +## {% linkable_title New Features %} + +- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- Allow wait template to run the remainder of the script ([@lhovo] - [#15836]) (breaking change) +- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) +- Update Xiaomi Vacuum to new StateVacuumDevice ([@cnrd] - [#15643]) (breaking change) +- Update neato to support new StateVacuumDevice ([@dshokouhi] - [#16035]) ([vacuum.neato docs]) (breaking change) +- Remove homeassistant.remote ([@balloob] - [#16099]) ([api docs]) ([http docs]) ([mqtt_eventstream docs]) ([mqtt_statestream docs]) ([notify docs]) ([splunk docs]) ([websocket_api docs]) (breaking change) +- Merge insteon_plm and insteon_local to insteon component ([@teharris1] - [#16102]) (breaking change) +- Remove unit_of_measurement from climate entities ([@jeradM] - [#16012]) ([climate docs]) ([climate.generic_thermostat docs]) ([climate.knx docs]) ([climate.maxcube docs]) ([climate.sensibo docs]) (breaking change) +- Adds support for routers implementing IGDv2 ([@dgomes] - [#16108]) ([upnp docs]) (breaking change) +- Enable auth by default 🙈 ([@balloob] - [#16107]) (breaking change) + +## {% linkable_title All changes %} + +- Eph ember support operation modes ([@ttroy50] - [#15820]) ([climate.ephember docs]) +- Fixed race condition in Generic Thermostat ([@aronsky] - [#15784]) ([climate.generic_thermostat docs]) +- Fix magic cube support of the Aqara LAN Protocol V2 ([@syssi] - [#15940]) ([binary_sensor.xiaomi_aqara docs]) +- Upgrade beautifulsoup4 to 4.6.3 ([@fabaff] - [#15946]) ([device_tracker docs]) ([sensor.geizhals docs]) ([sensor.scrape docs]) ([sensor.sytadin docs]) +- Allow wait template to run the remainder of the script ([@lhovo] - [#15836]) (breaking change) +- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) +- Add monitored conditions for Unifi device_tracker ([@cgarwood] - [#15888]) ([device_tracker docs]) +- Netatmo public ([@colinfrei] - [#15684]) ([sensor.netatmo_public docs]) (new-platform) +- Update Xiaomi Vacuum to new StateVacuumDevice ([@cnrd] - [#15643]) (breaking change) +- HomeMatic: Enable entity registry ([@danielperna84] - [#15950]) ([homematic docs]) +- Fix google calendar documentation link. ([@cgtobi] - [#15968]) ([calendar.google docs]) +- Remove unnecessary log ([@colinfrei] - [#15966]) ([sensor.netatmo_public docs]) +- Make setup fail if location is not available ([@fabaff] - [#15967]) ([sensor.worldtidesinfo docs]) +- Remove warning ([@balloob] - [#15969]) +- Update waterfurnace library to 0.7, add reconnect logic ([@sdague] - [#15657]) ([waterfurnace docs]) +- adds support for momentary and beep/blink switches ([@heythisisnate] - [#15973]) ([konnected docs]) ([switch.konnected docs]) +- Add -j$(nproc) make option to speed up build time ([@vrih] - [#15928]) +- Update Glances sensor ([@fabaff] - [#15981]) ([sensor.glances docs]) +- Upgrade psutil to 5.4.7 ([@fabaff] - [#15982]) ([sensor.systemmonitor docs]) +- Upgrade aladdin_connect to 0.3 and provide Unique ID ([@shoejosh] - [#15986]) ([cover.aladdin_connect docs]) +- Entity service ([@balloob] - [#15991]) +- More entity service ([@balloob] - [#15998]) ([camera docs]) ([climate docs]) +- Wemo custom ports and network errors handling ([@mcspr] - [#14516]) ([wemo docs]) ([binary_sensor.wemo docs]) ([light.wemo docs]) ([switch.wemo docs]) +- Clean up input-datetime ([@balloob] - [#16000]) ([input_datetime docs]) +- BMW Connected drive: option to disable the services ([@Alexxander0] - [#15993]) ([bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) +- Add type hints to homeassistant.auth ([@scop] - [#15853]) +- Fix check config packages key error ([@MartinHjelmare] - [#15840]) +- Update SoCo to 0.16 ([@amelchio] - [#16007]) ([sonos docs]) ([media_player.sonos docs]) +- Upgrade sendgrid to 5.5.0 ([@fabaff] - [#16021]) ([notify docs]) +- Split out storage delay save ([@balloob] - [#16017]) ([hassio docs]) ([onboarding docs]) +- Disable assuming Optional type for values with None default ([@scop] - [#16029]) +- Update RitAssist to support maximum speed and current address ([@depl0y] - [#16037]) ([device_tracker docs]) +- Handle missing mpd capabilities ([@logic] - [#15945]) ([media_player.mpd docs]) +- Storage entity registry ([@balloob] - [#16018]) +- Attempt to fix flaky TTS test ([@balloob] - [#16025]) +- Update neato to support new StateVacuumDevice ([@dshokouhi] - [#16035]) ([vacuum.neato docs]) (breaking change) +- vacuum/xiaomi_miio: Expose "sensor_dirty_left" attribute ([@klada] - [#16003]) ([vacuum.xiaomi_miio docs]) +- Grammar and spelling fixes ([@scop] - [#16065]) +- Use aiohttp web.AppRunner ([@balloob] - [#16020]) ([http docs]) +- Update pushsafer.py ([@appzer] - [#16060]) ([notify docs]) +- Alexa: context + log events ([@balloob] - [#16023]) ([alexa docs]) +- openuv: Add Current UV Level to list of conditions ([@leppa] - [#16042]) ([openuv docs]) ([sensor.openuv docs]) +- TpLink Device Tracker Error ([@TimBailey-pnk] - [#15918]) ([device_tracker docs]) +- Deprecated stuff ([@balloob] - [#16019]) ([device_tracker docs]) ([websocket_api docs]) ([camera.push docs]) +- Add recent context ([@balloob] - [#15989]) +- Add ecovacs component ([@OverloadUT] - [#15520]) ([ecovacs docs]) ([vacuum.ecovacs docs]) (new-platform) +- Bumped NDMS2 client library to 0.0.4 to get compatible with python 3.5 ([@foxel] - [#16077]) ([device_tracker docs]) +- fritzdect change to current_power_w ([@Danielhiversen] - [#16079]) ([switch.fritzdect docs]) +- Update pyhomematic to 0.1.47 ([@danielperna84] - [#16083]) ([homematic docs]) +- Get user after login flow finished ([@awarecan] - [#16047]) ([auth docs]) +- Upgrade pytest to 3.7.2 ([@scop] - [#16091]) +- Add verify ssl to generic camera ([@fliphess] - [#15949]) ([camera.generic docs]) +- Upgrade afsapi to 0.0.4, prevents aiohttp session close message, Fixes #13099 ([@zhelev] - [#16098]) ([media_player.frontier_silicon docs]) +- Remove homeassistant.remote ([@balloob] - [#16099]) ([api docs]) ([http docs]) ([mqtt_eventstream docs]) ([mqtt_statestream docs]) ([notify docs]) ([splunk docs]) ([websocket_api docs]) (breaking change) +- Use new session when fetching remote urls ([@balloob] - [#16093]) ([auth docs]) +- Allow finish_flow callback to change data entry result type ([@awarecan] - [#16100]) +- Add support for revoking refresh tokens ([@balloob] - [#16095]) ([auth docs]) +- Refactoring login flow ([@awarecan] - [#16104]) +- Minor updates ([@fabaff] - [#16106]) +- Bump python-miio version ([@syssi] - [#16110]) ([device_tracker docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs]) +- homematic: Add homematic.put_paramset service ([@klada] - [#16024]) ([homematic docs]) +- Upgrade shodan to 1.9.1 ([@fabaff] - [#16113]) ([sensor.shodan docs]) +- Upgrade sendgrid to 5.6.0 ([@fabaff] - [#16111]) ([notify docs]) +- Merge insteon_plm and insteon_local to insteon component ([@teharris1] - [#16102]) (breaking change) +- Remove unit_of_measurement from climate entities ([@jeradM] - [#16012]) ([climate docs]) ([climate.generic_thermostat docs]) ([climate.knx docs]) ([climate.maxcube docs]) ([climate.sensibo docs]) (breaking change) +- Add multi-factor authentication modules ([@awarecan] - [#15489]) ([config docs]) +- Device Registry ([@Kane610] - [#15980]) +- Check correctly if package is loadable ([@balloob] - [#16121]) +- Upgrade numpy to 1.15.1 ([@fabaff] - [#16126]) ([binary_sensor.trend docs]) ([image_processing.opencv docs]) +- Upgrade youtube_dl to 2018.08.22 ([@fabaff] - [#16125]) ([media_extractor docs]) +- Fix the protocol v2 data_key of several aqara devices ([@syssi] - [#16112]) ([binary_sensor.xiaomi_aqara docs]) +- Upgrade brunt package ([@eavanvalkenburg] - [#16130]) ([cover.brunt docs]) +- Add support for NOAA tide information (new PR) ([@jcconnell] - [#15947]) ([sensor.noaa_tides docs]) (new-platform) +- Adds support for routers implementing IGDv2 ([@dgomes] - [#16108]) ([upnp docs]) (breaking change) +- Add support for JS modules in custom panels ([@squidwardy] - [#16096]) ([panel_custom docs]) +- Prevent legacy api password with empty password ([@balloob] - [#16127]) +- Enable auth by default 🙈 ([@balloob] - [#16107]) (breaking change) +- Remove commented out API password from default config ([@balloob] - [#16147]) +- Spelling fixes ([@scop] - [#16150]) ([insteon_local docs]) ([insteon_plm docs]) +- Update pydocstyle to 2.1.1 and flake8-docstrings to 1.3.0 ([@scop] - [#14557]) +- Hangouts ([@hobbypunk90] - [#16049]) ([hangouts docs]) ([notify docs]) (new-platform) +- Hangouts localization typo fix ([@armills] - [#16174]) ([hangouts docs]) +- deCONZ - Allow sub second light transitions ([@Kane610] - [#16170]) ([light.deconz docs]) +- add_devices -> add_entities ([@balloob] - [#16171]) + +[#14516]: https://github.com/home-assistant/home-assistant/pull/14516 +[#14557]: https://github.com/home-assistant/home-assistant/pull/14557 +[#15489]: https://github.com/home-assistant/home-assistant/pull/15489 +[#15520]: https://github.com/home-assistant/home-assistant/pull/15520 +[#15643]: https://github.com/home-assistant/home-assistant/pull/15643 +[#15657]: https://github.com/home-assistant/home-assistant/pull/15657 +[#15684]: https://github.com/home-assistant/home-assistant/pull/15684 +[#15784]: https://github.com/home-assistant/home-assistant/pull/15784 +[#15812]: https://github.com/home-assistant/home-assistant/pull/15812 +[#15820]: https://github.com/home-assistant/home-assistant/pull/15820 +[#15836]: https://github.com/home-assistant/home-assistant/pull/15836 +[#15840]: https://github.com/home-assistant/home-assistant/pull/15840 +[#15853]: https://github.com/home-assistant/home-assistant/pull/15853 +[#15888]: https://github.com/home-assistant/home-assistant/pull/15888 +[#15918]: https://github.com/home-assistant/home-assistant/pull/15918 +[#15928]: https://github.com/home-assistant/home-assistant/pull/15928 +[#15940]: https://github.com/home-assistant/home-assistant/pull/15940 +[#15945]: https://github.com/home-assistant/home-assistant/pull/15945 +[#15946]: https://github.com/home-assistant/home-assistant/pull/15946 +[#15947]: https://github.com/home-assistant/home-assistant/pull/15947 +[#15949]: https://github.com/home-assistant/home-assistant/pull/15949 +[#15950]: https://github.com/home-assistant/home-assistant/pull/15950 +[#15966]: https://github.com/home-assistant/home-assistant/pull/15966 +[#15967]: https://github.com/home-assistant/home-assistant/pull/15967 +[#15968]: https://github.com/home-assistant/home-assistant/pull/15968 +[#15969]: https://github.com/home-assistant/home-assistant/pull/15969 +[#15973]: https://github.com/home-assistant/home-assistant/pull/15973 +[#15980]: https://github.com/home-assistant/home-assistant/pull/15980 +[#15981]: https://github.com/home-assistant/home-assistant/pull/15981 +[#15982]: https://github.com/home-assistant/home-assistant/pull/15982 +[#15986]: https://github.com/home-assistant/home-assistant/pull/15986 +[#15989]: https://github.com/home-assistant/home-assistant/pull/15989 +[#15991]: https://github.com/home-assistant/home-assistant/pull/15991 +[#15993]: https://github.com/home-assistant/home-assistant/pull/15993 +[#15998]: https://github.com/home-assistant/home-assistant/pull/15998 +[#16000]: https://github.com/home-assistant/home-assistant/pull/16000 +[#16003]: https://github.com/home-assistant/home-assistant/pull/16003 +[#16007]: https://github.com/home-assistant/home-assistant/pull/16007 +[#16012]: https://github.com/home-assistant/home-assistant/pull/16012 +[#16017]: https://github.com/home-assistant/home-assistant/pull/16017 +[#16018]: https://github.com/home-assistant/home-assistant/pull/16018 +[#16019]: https://github.com/home-assistant/home-assistant/pull/16019 +[#16020]: https://github.com/home-assistant/home-assistant/pull/16020 +[#16021]: https://github.com/home-assistant/home-assistant/pull/16021 +[#16023]: https://github.com/home-assistant/home-assistant/pull/16023 +[#16024]: https://github.com/home-assistant/home-assistant/pull/16024 +[#16025]: https://github.com/home-assistant/home-assistant/pull/16025 +[#16029]: https://github.com/home-assistant/home-assistant/pull/16029 +[#16035]: https://github.com/home-assistant/home-assistant/pull/16035 +[#16037]: https://github.com/home-assistant/home-assistant/pull/16037 +[#16042]: https://github.com/home-assistant/home-assistant/pull/16042 +[#16047]: https://github.com/home-assistant/home-assistant/pull/16047 +[#16049]: https://github.com/home-assistant/home-assistant/pull/16049 +[#16060]: https://github.com/home-assistant/home-assistant/pull/16060 +[#16065]: https://github.com/home-assistant/home-assistant/pull/16065 +[#16077]: https://github.com/home-assistant/home-assistant/pull/16077 +[#16079]: https://github.com/home-assistant/home-assistant/pull/16079 +[#16083]: https://github.com/home-assistant/home-assistant/pull/16083 +[#16091]: https://github.com/home-assistant/home-assistant/pull/16091 +[#16093]: https://github.com/home-assistant/home-assistant/pull/16093 +[#16095]: https://github.com/home-assistant/home-assistant/pull/16095 +[#16096]: https://github.com/home-assistant/home-assistant/pull/16096 +[#16098]: https://github.com/home-assistant/home-assistant/pull/16098 +[#16099]: https://github.com/home-assistant/home-assistant/pull/16099 +[#16100]: https://github.com/home-assistant/home-assistant/pull/16100 +[#16102]: https://github.com/home-assistant/home-assistant/pull/16102 +[#16104]: https://github.com/home-assistant/home-assistant/pull/16104 +[#16106]: https://github.com/home-assistant/home-assistant/pull/16106 +[#16107]: https://github.com/home-assistant/home-assistant/pull/16107 +[#16108]: https://github.com/home-assistant/home-assistant/pull/16108 +[#16110]: https://github.com/home-assistant/home-assistant/pull/16110 +[#16111]: https://github.com/home-assistant/home-assistant/pull/16111 +[#16112]: https://github.com/home-assistant/home-assistant/pull/16112 +[#16113]: https://github.com/home-assistant/home-assistant/pull/16113 +[#16121]: https://github.com/home-assistant/home-assistant/pull/16121 +[#16125]: https://github.com/home-assistant/home-assistant/pull/16125 +[#16126]: https://github.com/home-assistant/home-assistant/pull/16126 +[#16127]: https://github.com/home-assistant/home-assistant/pull/16127 +[#16130]: https://github.com/home-assistant/home-assistant/pull/16130 +[#16147]: https://github.com/home-assistant/home-assistant/pull/16147 +[#16150]: https://github.com/home-assistant/home-assistant/pull/16150 +[#16170]: https://github.com/home-assistant/home-assistant/pull/16170 +[#16171]: https://github.com/home-assistant/home-assistant/pull/16171 +[#16174]: https://github.com/home-assistant/home-assistant/pull/16174 +[@Alexxander0]: https://github.com/Alexxander0 +[@Danielhiversen]: https://github.com/Danielhiversen +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@OverloadUT]: https://github.com/OverloadUT +[@TimBailey-pnk]: https://github.com/TimBailey-pnk +[@amelchio]: https://github.com/amelchio +[@appzer]: https://github.com/appzer +[@armills]: https://github.com/armills +[@aronsky]: https://github.com/aronsky +[@awarecan]: https://github.com/awarecan +[@balloob]: https://github.com/balloob +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@cnrd]: https://github.com/cnrd +[@colinfrei]: https://github.com/colinfrei +[@danielperna84]: https://github.com/danielperna84 +[@depl0y]: https://github.com/depl0y +[@dgomes]: https://github.com/dgomes +[@dshokouhi]: https://github.com/dshokouhi +[@eavanvalkenburg]: https://github.com/eavanvalkenburg +[@fabaff]: https://github.com/fabaff +[@fliphess]: https://github.com/fliphess +[@foxel]: https://github.com/foxel +[@heythisisnate]: https://github.com/heythisisnate +[@hobbypunk90]: https://github.com/hobbypunk90 +[@jcconnell]: https://github.com/jcconnell +[@jeradM]: https://github.com/jeradM +[@klada]: https://github.com/klada +[@leppa]: https://github.com/leppa +[@lhovo]: https://github.com/lhovo +[@logic]: https://github.com/logic +[@mcspr]: https://github.com/mcspr +[@scop]: https://github.com/scop +[@sdague]: https://github.com/sdague +[@shoejosh]: https://github.com/shoejosh +[@squidwardy]: https://github.com/squidwardy +[@syssi]: https://github.com/syssi +[@teharris1]: https://github.com/teharris1 +[@ttroy50]: https://github.com/ttroy50 +[@vrih]: https://github.com/vrih +[@zhelev]: https://github.com/zhelev +[alexa docs]: /components/alexa/ +[api docs]: /components/api/ +[auth docs]: /components/auth/ +[binary_sensor.trend docs]: /components/binary_sensor.trend/ +[binary_sensor.wemo docs]: /components/binary_sensor.wemo/ +[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ +[bmw_connected_drive docs]: /components/bmw_connected_drive/ +[calendar.google docs]: /components/calendar.google/ +[camera docs]: /components/camera/ +[camera.generic docs]: /components/camera.generic/ +[camera.push docs]: /components/camera.push/ +[climate docs]: /components/climate/ +[climate.ephember docs]: /components/climate.ephember/ +[climate.generic_thermostat docs]: /components/climate.generic_thermostat/ +[climate.knx docs]: /components/climate.knx/ +[climate.maxcube docs]: /components/climate.maxcube/ +[climate.sensibo docs]: /components/climate.sensibo/ +[config docs]: /components/config/ +[cover.aladdin_connect docs]: /components/cover.aladdin_connect/ +[cover.brunt docs]: /components/cover.brunt/ +[device_tracker docs]: /components/device_tracker/ +[ecovacs docs]: /components/ecovacs/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[hangouts docs]: /components/hangouts/ +[hassio docs]: /components/hassio/ +[homematic docs]: /components/homematic/ +[http docs]: /components/http/ +[image_processing.opencv docs]: /components/image_processing.opencv/ +[input_datetime docs]: /components/input_datetime/ +[insteon_local docs]: /components/insteon_local/ +[insteon_plm docs]: /components/insteon_plm/ +[konnected docs]: /components/konnected/ +[light.deconz docs]: /components/light.deconz/ +[light.wemo docs]: /components/light.wemo/ +[light.xiaomi_miio docs]: /components/light.xiaomi_miio/ +[lock.bmw_connected_drive docs]: /components/lock.bmw_connected_drive/ +[media_extractor docs]: /components/media_extractor/ +[media_player.frontier_silicon docs]: /components/media_player.frontier_silicon/ +[media_player.mpd docs]: /components/media_player.mpd/ +[media_player.sonos docs]: /components/media_player.sonos/ +[mqtt_eventstream docs]: /components/mqtt_eventstream/ +[mqtt_statestream docs]: /components/mqtt_statestream/ +[notify docs]: /components/notify/ +[onboarding docs]: /components/onboarding/ +[openuv docs]: /components/openuv/ +[panel_custom docs]: /components/panel_custom/ +[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ +[sensor.geizhals docs]: /components/sensor.geizhals/ +[sensor.glances docs]: /components/sensor.glances/ +[sensor.netatmo_public docs]: /components/sensor.netatmo_public/ +[sensor.noaa_tides docs]: /components/sensor.noaa_tides/ +[sensor.openuv docs]: /components/sensor.openuv/ +[sensor.scrape docs]: /components/sensor.scrape/ +[sensor.shodan docs]: /components/sensor.shodan/ +[sensor.systemmonitor docs]: /components/sensor.systemmonitor/ +[sensor.sytadin docs]: /components/sensor.sytadin/ +[sensor.worldtidesinfo docs]: /components/sensor.worldtidesinfo/ +[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/ +[sonos docs]: /components/sonos/ +[splunk docs]: /components/splunk/ +[switch.fritzdect docs]: /components/switch.fritzdect/ +[switch.konnected docs]: /components/switch.konnected/ +[switch.wemo docs]: /components/switch.wemo/ +[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/ +[upnp docs]: /components/upnp/ +[vacuum.ecovacs docs]: /components/vacuum.ecovacs/ +[vacuum.neato docs]: /components/vacuum.neato/ +[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ +[waterfurnace docs]: /components/waterfurnace/ +[websocket_api docs]: /components/websocket_api/ +[wemo docs]: /components/wemo/ From 64da013d69953442de1f2f12412154d6b38d3dbd Mon Sep 17 00:00:00 2001 From: DubhAd Date: Fri, 24 Aug 2018 16:38:25 +0100 Subject: [PATCH 02/39] Minor fix (#6071) * Minor fix Removing quotes around numbers in the templates * Update entities.markdown --- source/_docs/z-wave/entities.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/z-wave/entities.markdown b/source/_docs/z-wave/entities.markdown index ffcd3a6c309..e2dd2b7de9a 100644 --- a/source/_docs/z-wave/entities.markdown +++ b/source/_docs/z-wave/entities.markdown @@ -145,7 +145,7 @@ binary_sensor: YOUR_SENSOR: friendly_name: "Friendly name here" device_class: door - value_template: {{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', '22') }} + value_template: "{{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', 22) }}" ``` {% endraw %} @@ -171,7 +171,7 @@ binary_sensor: YOUR_SENSOR: friendly_name: "Friendly name here" device_class: motion - value_template: {{ is_state('sensor.YOUR_SENSOR_burglar', '8') }} + value_template: "{{ is_state('sensor.YOUR_SENSOR_burglar', 8) }}" ``` {% endraw %} From c43b581ad98d6b771476a8bc4091ad957814401e Mon Sep 17 00:00:00 2001 From: DubhAd Date: Fri, 24 Aug 2018 16:38:58 +0100 Subject: [PATCH 03/39] Added some details (#6072) Making it a little clearer that `40` is a numeric, also making it clearer that it's an *entity attribute* that's being checked --- source/_docs/configuration/templating.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 69ad76211bf..7d07c3e0921 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -62,9 +62,9 @@ Home Assistant adds extensions to allow templates to access all of the current s - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID. - `states.sensor.temperature` returns the state object for `sensor.temperature`. - `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist. -- `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state. +- `is_state('device_tracker.paulus', 'home')` will test if the given entity is the specified state. - `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist. -- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state. +- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity attribute is the specified state (in this case, a numeric value). - `now()` will be rendered as current time in your time zone. - For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` - `utcnow()` will be rendered as UTC time. From f7399377ad9bfabc37780572ccfd3fdd2ac707fc Mon Sep 17 00:00:00 2001 From: djm300 Date: Fri, 24 Aug 2018 23:35:23 +0200 Subject: [PATCH 04/39] Added verify_ssl option (#5507) --- source/_components/zoneminder.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown index 0ebf5fbafc7..ac8297eaee8 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -27,6 +27,7 @@ Configuration variables: - **path** (*Optional*): Path to your ZoneMinder install. Defaults to `/zm/`. - **path_zms** (*Optional*): Path to the CGI script for streaming. This should match `PATH_ZMS` in ZM's "Paths" settings. Defaults to `/zm/cgi-bin/nph-zms`. - **ssl** (*Optional*): Set to `True` if your ZoneMinder installation is using SSL. Default to `False`. +- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to `True`. - **username** (*Optional*): Your ZoneMinder username. - **password** (*Optional*): Your ZoneMinder password. Required if `OPT_USE_AUTH` is enabled in ZM. @@ -38,7 +39,8 @@ zoneminder: host: ZM_HOST path: ZM_PATH path_zms: ZM_PATH_ZMS - ssl: False + ssl: True + verify_ssl: True username: YOUR_USERNAME password: YOUR_PASSWORD ``` From b0a6e824f78f8b15e0808c64853d4fb9f64cdfea Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 25 Aug 2018 11:20:18 +0200 Subject: [PATCH 05/39] Update notes --- source/_posts/2018-08-31-release-77.markdown | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 85e59ea2228..32d7c5d8eb2 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -19,6 +19,7 @@ Notification drawer for lovelace. Hangouts +Device registry!! ## {% linkable_title New Platforms %} @@ -27,6 +28,7 @@ Hangouts - Add ecovacs component ([@OverloadUT] - [#15520]) ([ecovacs docs]) ([vacuum.ecovacs docs]) (new-platform) - Add support for NOAA tide information (new PR) ([@jcconnell] - [#15947]) ([sensor.noaa_tides docs]) (new-platform) - Hangouts ([@hobbypunk90] - [#16049]) ([hangouts docs]) ([notify docs]) (new-platform) +- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -54,6 +56,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Adds support for routers implementing IGDv2 ([@dgomes] - [#16108]) ([upnp docs]) (breaking change) - Enable auth by default 🙈 ([@balloob] - [#16107]) (breaking change) +## {% linkable_title Beta Fixes %} + +- deCONZ - Support device registry ([@Kane610] - [#16115]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs]) (beta fix) +- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) +- Decouple Konnected entity setup from discovery ([@heythisisnate] - [#16146]) ([konnected docs]) ([switch.konnected docs]) (beta fix) +- Device registry store config entry ([@Kane610] - [#16152]) (beta fix) +- fix error message for cv.matches_regex ([@heythisisnate] - [#16175]) (beta fix) +- Fix hangouts ([@balloob] - [#16180]) ([hangouts docs]) (beta fix) +- Tweak log level for bearer token warning ([@awarecan] - [#16182]) ([http docs]) (beta fix) +- Default load trusted_network auth provider if configured trusted networks ([@awarecan] - [#16184]) (beta fix) + ## {% linkable_title All changes %} - Eph ember support operation modes ([@ttroy50] - [#15820]) ([climate.ephember docs]) @@ -140,6 +153,14 @@ Experiencing issues introduced by this release? Please report them in our [issue - Hangouts localization typo fix ([@armills] - [#16174]) ([hangouts docs]) - deCONZ - Allow sub second light transitions ([@Kane610] - [#16170]) ([light.deconz docs]) - add_devices -> add_entities ([@balloob] - [#16171]) +- deCONZ - Support device registry ([@Kane610] - [#16115]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs]) (beta fix) +- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) +- Decouple Konnected entity setup from discovery ([@heythisisnate] - [#16146]) ([konnected docs]) ([switch.konnected docs]) (beta fix) +- Device registry store config entry ([@Kane610] - [#16152]) (beta fix) +- fix error message for cv.matches_regex ([@heythisisnate] - [#16175]) (beta fix) +- Fix hangouts ([@balloob] - [#16180]) ([hangouts docs]) (beta fix) +- Tweak log level for bearer token warning ([@awarecan] - [#16182]) ([http docs]) (beta fix) +- Default load trusted_network auth provider if configured trusted networks ([@awarecan] - [#16184]) (beta fix) [#14516]: https://github.com/home-assistant/home-assistant/pull/14516 [#14557]: https://github.com/home-assistant/home-assistant/pull/14557 @@ -215,16 +236,24 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16111]: https://github.com/home-assistant/home-assistant/pull/16111 [#16112]: https://github.com/home-assistant/home-assistant/pull/16112 [#16113]: https://github.com/home-assistant/home-assistant/pull/16113 +[#16115]: https://github.com/home-assistant/home-assistant/pull/16115 [#16121]: https://github.com/home-assistant/home-assistant/pull/16121 [#16125]: https://github.com/home-assistant/home-assistant/pull/16125 [#16126]: https://github.com/home-assistant/home-assistant/pull/16126 [#16127]: https://github.com/home-assistant/home-assistant/pull/16127 [#16130]: https://github.com/home-assistant/home-assistant/pull/16130 +[#16141]: https://github.com/home-assistant/home-assistant/pull/16141 +[#16146]: https://github.com/home-assistant/home-assistant/pull/16146 [#16147]: https://github.com/home-assistant/home-assistant/pull/16147 [#16150]: https://github.com/home-assistant/home-assistant/pull/16150 +[#16152]: https://github.com/home-assistant/home-assistant/pull/16152 [#16170]: https://github.com/home-assistant/home-assistant/pull/16170 [#16171]: https://github.com/home-assistant/home-assistant/pull/16171 [#16174]: https://github.com/home-assistant/home-assistant/pull/16174 +[#16175]: https://github.com/home-assistant/home-assistant/pull/16175 +[#16180]: https://github.com/home-assistant/home-assistant/pull/16180 +[#16182]: https://github.com/home-assistant/home-assistant/pull/16182 +[#16184]: https://github.com/home-assistant/home-assistant/pull/16184 [@Alexxander0]: https://github.com/Alexxander0 [@Danielhiversen]: https://github.com/Danielhiversen [@Kane610]: https://github.com/Kane610 @@ -270,6 +299,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [alexa docs]: /components/alexa/ [api docs]: /components/api/ [auth docs]: /components/auth/ +[binary_sensor.deconz docs]: /components/binary_sensor.deconz/ [binary_sensor.trend docs]: /components/binary_sensor.trend/ [binary_sensor.wemo docs]: /components/binary_sensor.wemo/ [binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ @@ -287,6 +317,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [config docs]: /components/config/ [cover.aladdin_connect docs]: /components/cover.aladdin_connect/ [cover.brunt docs]: /components/cover.brunt/ +[deconz docs]: /components/deconz/ [device_tracker docs]: /components/device_tracker/ [ecovacs docs]: /components/ecovacs/ [fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ @@ -314,6 +345,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [openuv docs]: /components/openuv/ [panel_custom docs]: /components/panel_custom/ [remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ +[sensor.deconz docs]: /components/sensor.deconz/ [sensor.geizhals docs]: /components/sensor.geizhals/ [sensor.glances docs]: /components/sensor.glances/ [sensor.netatmo_public docs]: /components/sensor.netatmo_public/ @@ -327,6 +359,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/ [sonos docs]: /components/sonos/ [splunk docs]: /components/splunk/ +[switch.deconz docs]: /components/switch.deconz/ [switch.fritzdect docs]: /components/switch.fritzdect/ [switch.konnected docs]: /components/switch.konnected/ [switch.wemo docs]: /components/switch.wemo/ From ca3ee8c4ea520ca812dd918bad501b8934e7ceef Mon Sep 17 00:00:00 2001 From: Ken Davidson Date: Sat, 25 Aug 2018 06:35:23 -0400 Subject: [PATCH 06/39] Update sensor.noaa_tides.markdown (#6077) Grammar fixes. --- source/_components/sensor.noaa_tides.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/sensor.noaa_tides.markdown b/source/_components/sensor.noaa_tides.markdown index 42441690f92..fca7249529b 100644 --- a/source/_components/sensor.noaa_tides.markdown +++ b/source/_components/sensor.noaa_tides.markdown @@ -14,7 +14,7 @@ logo: noaa.png The `noaa_tides` sensor platform uses details from [NOAA Tides and Currents](https://tidesandcurrents.noaa.gov/api/) to provide information about the prediction for the tides for any location in the United States. -This sensor requires the use of an NOAA station id. Search [NOAA Tide Predictions](https://tidesandcurrents.noaa.gov/tide_predictions.html) to find a location. Use the Id from the search results in your configuration. Alternately, you can determine a station id from a URL. For example, `8721164` in the following URL `https://tidesandcurrents.noaa.gov/noaatidepredictions.html?id=8721164` +This sensor requires the use of a NOAA station ID. Search [NOAA Tide Predictions](https://tidesandcurrents.noaa.gov/tide_predictions.html) to find a location. Use the ID from the search results in your configuration. Alternatively, you can determine a station ID from a URL. For example, `8721164` in the following URL: `https://tidesandcurrents.noaa.gov/noaatidepredictions.html?id=8721164` To use this sensor, add the following to your `configuration.yaml` file: @@ -31,12 +31,12 @@ station_id: required: true type: string name: - description: User supplied sensor name. + description: User-supplied sensor name. required: false default: NOAA Tides. type: string time_zone: - description: User selected timezone. + description: User-selected timezone. required: false default: Local Standard Time/Local Daylight Time. type: list From 9de06c1e9b1ef4a9abf81e6cb080a6cc2c3bb069 Mon Sep 17 00:00:00 2001 From: Marc Forth Date: Sat, 25 Aug 2018 15:16:50 +0100 Subject: [PATCH 07/39] Update snips.markdown (#6079) Fix syntax in example as per #6074 --- source/_components/snips.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown index 825dbf19d53..f69b7f0b138 100644 --- a/source/_components/snips.markdown +++ b/source/_components/snips.markdown @@ -258,7 +258,7 @@ automation: service: snips.say_action data: text: 'Garage door has been open 10 minutes, would you like me to close it?' - intentFilter: + intent_filter: - closeGarageDoor # This intent is fired if the user responds with the appropriate intent after the above notification From e3e2ab052cf4047e06f13199167bdb203435ba45 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 26 Aug 2018 10:24:02 +0200 Subject: [PATCH 08/39] Add support for HassOS 2.2 --- source/hassio/installation.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index dd0b088faca..f5fca6aa36d 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -19,6 +19,7 @@ Hass.io images are available for: - [Raspberry Pi 3 Model B and B+ 32bit][pi3-32] (recommended) - [Raspberry Pi 3 Model B and B+ 64bit][pi3-64] - [Tinkerboard (Beta)][tinker] + - [Odroid-C2 (Beta)][odroid-c2] - As [Virtual Appliance]: - [VMDK][vmdk] @@ -81,7 +82,8 @@ A detailed guide about running Hass.io as a virtual machine is available in the [pi2]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi2-1.9.img.gz [pi3-32]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi3-1.9.img.gz [pi3-64]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi3-64-1.9.img.gz -[tinker]: https://github.com/home-assistant/hassos/releases/download/2.1/hassos_tinker-2.1.img.gz +[tinker]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_tinker-2.2.img.gz +[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_odroid-c2-2.2.img.gz [vmdk]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_ova-1.9.vmdk [linux]: https://github.com/home-assistant/hassio-build/tree/master/install#install-hassio [local]: http://hassio.local:8123 From 6c44f93eb669c781cd4ebe613f847c0df260ff67 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Aug 2018 10:49:30 +0200 Subject: [PATCH 09/39] Make configuration example simpler (#6082) --- source/_components/sensor.sql.markdown | 77 ++++++++++++++++++++------ 1 file changed, 59 insertions(+), 18 deletions(-) diff --git a/source/_components/sensor.sql.markdown b/source/_components/sensor.sql.markdown index e676ca9d43f..a7484b1480c 100644 --- a/source/_components/sensor.sql.markdown +++ b/source/_components/sensor.sql.markdown @@ -12,8 +12,10 @@ ha_category: Sensor ha_release: 0.63 --- -The `SQL` sensor platform enables you to use values from an [SQL](https://en.wikipedia.org/wiki/SQL) database supported by the [sqlalchemy](https://www.sqlalchemy.org) library, to populate a sensor state (and attributes). -This can be used to present statistics about Home Assistant sensors if used with the recorder component database. It can also be used with an external data source. +The `sql` sensor platform enables you to use values from an [SQL](https://en.wikipedia.org/wiki/SQL) database supported by the [sqlalchemy](https://www.sqlalchemy.org) library, to populate a sensor state (and attributes). +This can be used to present statistics about Home Assistant sensors if used with the `recorder` component database. It can also be used with an external data source. + +## {% linkable_title Configuration %} To configure this sensor, you need to define the sensor connection variables and a list of queries to your `configuration.yaml` file. A sensor will be created for each query: @@ -21,15 +23,13 @@ To enable it, add the following lines to your `configuration.yaml`: {% raw %} ```yaml -# Example configuration.yaml entry to monitor hass database size in MySQL +# Example configuration.yaml sensor: - platform: sql - db_url: mysql://user:password@localhost/hass queries: - - name: HASS DB size - query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="hass" GROUP BY table_schema;' - column: 'value' - unit_of_measurement: kB + - name: Sun state + query: "SELECT * FROM states WHERE entity_id = 'sun.sun' ORDER BY state_id DESC LIMIT 1;" + column: 'state' ``` {% endraw %} @@ -72,30 +72,71 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title Current state of an entity %} -This example shows the previously *recorded* state of sensor *abc123*. +This example shows the previously *recorded* state of the sensor `sensor.temperature_in`. -```sql -SELECT * FROM states WHERE entity_id = 'sensor.abc123' ORDER BY id DESC LIMIT 2 +```yaml +sensor: + - platform: random + name: Temperature in + unit_of_measurement: '°C' ``` -Note that the SQL sensor state corresponds to the last row of the SQL resultset. +The query will look like this: + +```sql +SELECT * FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 1; +``` + +{% raw %} +```yaml +# Example configuration.yaml +sensor: + - platform: sql + queries: + - name: Temperature in + query: "SELECT * FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 1;" + column: 'state' +``` +{% endraw %} + + +Note that the SQL sensor state corresponds to the last row of the SQL result set. ### {% linkable_title Previous state of an entity %} This example only works with *binary_sensors*: ```sql -SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER BY last_changed DESC LIMIT 1 +SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER BY last_changed DESC LIMIT 1; ``` -### {% linkable_title Database size in Postgres %} +### {% linkable_title Database size %} +#### {% linkable_title Database size in Postgres %} + +{% raw %} ```yaml - platform: sql db_url: postgresql://user:password@host/dbname queries: - - name: db_size - query: "SELECT (pg_database_size('dsmrreader')/1024/1024) as db_size;" - column: "db_size" - unit_of_measurement: MB + - name: DB size + query: "SELECT (pg_database_size('dsmrreader')/1024/1024) as db_size;" + column: "db_size" + unit_of_measurement: MB ``` +{% endraw %} + +#### {% linkable_title MariaDB/MySQL %} + +{% raw %} +```yaml +sensor: +- platform: sql + queries: + - name: DB size + db_url: mysql://user:password@localhost/hass + query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="hass" GROUP BY table_schema;' + column: 'value' + unit_of_measurement: kB +``` +{% endraw %} From b9c9dd8da537188a526afa53b6e7b9e241f7eb17 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Sun, 26 Aug 2018 10:03:44 +0100 Subject: [PATCH 10/39] Rewording (#6080) * Rewording As *Rename Node* no longer exists, some of this makes no sense. Reworking * Minor changes --- source/_docs/z-wave/control-panel.markdown | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index d3169a41c9f..0fff92cf099 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -32,10 +32,6 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro ## {% linkable_title Z-Wave Node Management %} -

-Since 0.63 and the new experimental [entity registry](/docs/configuration/entity-registry/) **Rename Node** no longer changes the entity id for anything other than the `zwave.` entity for the node (it does change the default *friendly_name* attribute for all the entities). If you would like to update the entity id after renaming a z-wave device, you need to manually edit the [entity_registry.yaml](/docs/configuration/entity-registry/) file. See [this issue](https://github.com/home-assistant/home-assistant/issues/12430). -

- * **Refresh Node** refreshes the information on the node and its entities. If used on a battery powered device, the device will first need to wake for this to work. * **Remove Failed Node** will remove a failed node from the network. The node needs to be on the controller's Failed Node List (marked as `is_failed: true`), otherwise this command will fail. * **Replace Failed Node** will replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail. @@ -51,9 +47,9 @@ Battery powered devices need to be awake before you can use the Z-Wave control p ### {% linkable_title Renaming all entities of a node %} -When you use *Rename Node* it, as mentioned above, only changes the `zwave.` entity. If you've just added a device then the other entities for that device will use that new entity name as the base. However existing entities won't be renamed, so you need to remove them from `entity_registry.yaml`, and the process is like this: +When you change the `entity_id` of the `zwave.` entity, other entities of that node won't be changed. If you want to reset their `entity_id` too you need to remove them from `entity_registry.yaml`, and the process is like this: -1. Use *Rename Node* to rename the `zwave.` entity and set the base for all the other entities +1. Change the `entity_id` of the `zwave.` entity to set the base for all the other entities 2. Shut down Home Assistant and wait for it to stop 3. Delete the relevant entries from `entity_registry.yaml` 4. Start Home Assistant again From e133c38491aaaa6487c63f121828f6fb7ea2bbe2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 26 Aug 2018 21:23:17 +0200 Subject: [PATCH 11/39] Add link to auth docs --- source/_posts/2018-08-31-release-77.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 32d7c5d8eb2..affb6e35f3e 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -13,7 +13,7 @@ og_image: /images/blog/2018-08-0.77/components.png -Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. +Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. [Read the docs](/docs/authentication/) Notification drawer for lovelace. From 48b2dcc45c7ac1e8d3b356841d6406743df2451e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 26 Aug 2018 22:40:32 +0200 Subject: [PATCH 12/39] Add note about rollback --- source/_posts/2018-08-31-release-77.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index affb6e35f3e..897f9856618 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -13,7 +13,11 @@ og_image: /images/blog/2018-08-0.77/components.png -Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. [Read the docs](/docs/authentication/) +Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. [Read the docs](/docs/authentication/). + +If you were using auth before 0.77: + - Please remove the auth providers from your configuration and switch to the default config + - Due to changing how the home assistant auth provider hashes passwords, you cannot rollback to 76 with auth enabled unless you remove `.storage/auth*.*` and `.storage/hassio` Notification drawer for lovelace. From 2cac5cef5bce33ef66ac66dcd6823a179843a674 Mon Sep 17 00:00:00 2001 From: Jason Hu Date: Mon, 27 Aug 2018 01:54:09 -0700 Subject: [PATCH 13/39] Update providers.markdown (#6091) --- source/_docs/authentication/providers.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 1a190543355..4022ccadd3f 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -10,6 +10,10 @@ sharing: true footer: true --- +

+This page only apply to release 0.77 and above. +

+

This is an advanced feature. If misconfigured, you will not be able to access Home Assistant anymore!

From 65a01fdc9eafa4ec7ebb7945260efd7966a0fa6a Mon Sep 17 00:00:00 2001 From: tony chang Date: Mon, 27 Aug 2018 01:54:57 -0700 Subject: [PATCH 14/39] Update raspberry pi docker instructions (#6087) There appears to be a latest tag now: https://hub.docker.com/r/homeassistant/raspberrypi3-homeassistant/tags/ --- source/_docs/installation/docker.markdown | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 8b3583fd494..05cf090ec00 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -21,12 +21,9 @@ $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/ ### {% linkable_title Raspberry Pi 3 (Raspbian) %} ```bash -$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant:0.XX.x +$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant ``` -The Docker container for Raspberry Pi 3 does not have a 'latest' tag so the version number must be specified explicitly, i.e. 0.68.0. This goes for both CLI and Docker Compose. - - ### {% linkable_title macOS %} When using `docker-ce` (or `boot2docker`) on macOS, you are unable to map the local timezone to your Docker container ([Docker issue](https://github.com/docker/for-mac/issues/44)). Instead of `-v /etc/localtime:/etc/localtime:ro`, just pass in the timezone environment variable when you launch the container, e.g, `-e "TZ=America/Los_Angeles"`. Replace "America/Los_Angeles" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones). From e401a5ed17807832fcdb6f070e0439609a20fa36 Mon Sep 17 00:00:00 2001 From: Ben Lebherz Date: Mon, 27 Aug 2018 13:03:06 +0200 Subject: [PATCH 15/39] pi_hole sensor also supports a list for monitored_conditions (#6093) * pi_hole sensor also supports a list as monitored_conditions * Minor change --- source/_components/sensor.pi_hole.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/_components/sensor.pi_hole.markdown b/source/_components/sensor.pi_hole.markdown index 78b4e0fb553..071f5ca0314 100644 --- a/source/_components/sensor.pi_hole.markdown +++ b/source/_components/sensor.pi_hole.markdown @@ -50,7 +50,7 @@ verify_ssl: monitored_conditions: description: Defines the stats to monitor as sensors. required: false - type: string + type: list default: ads_blocked_today keys: ads_blocked_today: @@ -74,4 +74,3 @@ monitored_conditions: {% endconfiguration %} This sensor platform was not made by Pi-hole LLC or the Pi-hole community. They didn't provide support, feedback, testing or helped in any way while it was created. This is third party, may not work if Pi-hole is breaking their API with the latest release, not official, not developed, not supported and not endorsed Pi-hole LLC or the Pi-hole community. The trademark `Pi-hole` and the logo is used here to describe the platform and only to describe. `Pi-hole` is a registered trademark of Pi-hole LLC. - From 05fdd225d71b8dbb964905b0e090083dfe49f65b Mon Sep 17 00:00:00 2001 From: Marcel Hoppe Date: Mon, 27 Aug 2018 09:16:13 +0200 Subject: [PATCH 16/39] Add documentation for hangouts and notify.hangouts components (#6044) * Add documentation for hangouts and notify.hangouts components * use {% configuration %} * name is not required * Update hangouts.markdown remove email and password from config add integrations description * Update hangouts.markdown Add notice for 2fa * Typo * More fixes * Update notify.hangouts.markdown * Update notify.hangouts.markdown add hint to hangouts.conversations * cleaner doc removing name option from conversations entries --- source/_components/hangouts.markdown | 126 ++++++++++++++++++++ source/_components/notify.hangouts.markdown | 52 ++++++++ source/images/supported_brands/hangouts.png | Bin 0 -> 28244 bytes 3 files changed, 178 insertions(+) create mode 100644 source/_components/hangouts.markdown create mode 100644 source/_components/notify.hangouts.markdown create mode 100644 source/images/supported_brands/hangouts.png diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown new file mode 100644 index 00000000000..ba290e276f1 --- /dev/null +++ b/source/_components/hangouts.markdown @@ -0,0 +1,126 @@ +--- +layout: page +title: "Google Hangouts" +description: "Hangouts chatbot support" +date: 2018-08-18 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: hangouts.png +ha_category: Hub +ha_release: 0.77 +--- + +This component allows you to send messages to [Google Hangouts](http://hangouts.google.com) conversations, as well as to react to messages in conversations. Reacting to commands is accomplished by firing an event when one of the configured commands is triggered. + +## {% linkable_title Setup the component via the frontend %} + +Menu: *Configuration* -> *Integrations* + +Fill the form: +* Your **Google Mail Address** and **Password** +* If needed, you will be asked for a 2-factor authorization token + +**IMPORTANT:** If you secured your account with 2 factor authorization: Only verification by app or SMS are supported. There is no support for verification by prompt on your phone. + +The authentication token will be generated and stored internally. + +```yaml +# Example configuration.yaml entry +hangouts: + commands: + - word: testword + conversations: + - id: CONVERSATION_ID1 + - id: CONVERSATION_ID2 + - expression: "My name is (?P.*)" + name: introduction +``` +{% configuration %} +commands: + description: "A list of commands that the bot should listen for. If a command is triggered (via its *word* or *expression*, see below), an event is fired that you can handle using automations. Every command consists of these possible configuration options:" + required: false + type: map + default: empty + keys: + word: + description: "Specifies a word that the bot should listen for. If you specify 'my_command' here, the bot will react to any message starting with 'my_command'." + required: false + type: string + expression: + description: "Specifies a regular expression (in python regexp syntax) that the bot should listen to. The bot will react to any message that matches the regular expression." + required: false + type: string + name: + description: "The name of the command. This will be an attribute of the event that is fired when this command triggers." + required: true + type: string + conversations: + description: "A list of conversations that the bot should listen for this command in. If this is not given, all conversations are used." + required: false + type: [map] + default: empty + keys: + id: + description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*" + required: true + type: string +{% endconfiguration %} + +The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity. Make sure to use quotes around the conversation id or alias to escape special characters (`!`, and `#`) in YAML. + +### {% linkable_title Event Data %} + +If a command is triggered, a `hangouts_command` event is fired. The event contains the name of the command in the `command` field. + +If the command is a word command, the `data` field contains a list of the command's arguments, i.e., everything that stood behind the word, split at spaces. If the command is an expression command, the `data` field contains the [group dictionary](https://docs.python.org/3.6/library/re.html?highlight=re#re.match.groupdict) of the regular expression that matched the message. + +There are these additional fields: `conversation_id`, `user_id` and `user_name`. + +### {% linkable_title Comprehensive Configuration Example %} + +```yaml +# The Hangouts component +hangouts: + commands: + - word: testword + conversations: + - name: "someothertest" + - expression: "My name is (?P.*)" + name: introduction + +automation: + - alias: 'React to !testword' + trigger: + platform: event + event_type: hangouts_command + event_data: + command: testword + action: + service: hangouts.send_message + data_template: + target: + - name: "hasstest" + message: + - text: 'It looks like you wrote testword' + - alias: 'React to an introduction' + trigger: + platform: event + event_type: hangouts_command + event_data: + command: introduction + action: + service: hangouts.send_message + data_template: + target: + - id: '{{ trigger.event.data.conversation_id}}' + message: + - text: "Hello {{ trigger.event.data.data.name }}" + +``` + +This configuration will: +- Listen for "testword" in the room "someothertest" (and only) there. + If such a message is encountered, it will answer with "It looks like you wrote testword" into the "hasstest" conversation. +- Listen in all conversations for any message matching "My name is (any name)" and answer with "Hello (the given name)" into the same conversation. diff --git a/source/_components/notify.hangouts.markdown b/source/_components/notify.hangouts.markdown new file mode 100644 index 00000000000..e1dcdf83e54 --- /dev/null +++ b/source/_components/notify.hangouts.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Google Hangouts" +description: "Instructions on how to add Google Hangouts notifications to Home Assistant." +date: 2018-08-18 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: hangouts.png +ha_category: Notifications +ha_release: 0.77 +--- + + +The `hangouts` platform allows you to deliver notifications from Home Assistant to [Google Hangouts](http://hangouts.google.com) conversations. Conversations can be both direct as well as group chats. + +## {% linkable_title Configuration %} + +To enable Hangouts notifications in your installation, you first need to configure +the [Hangouts component](/components/hangouts/). Then, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + - name: NOTIFIER_NAME + platform: hangouts + default_conversations: + - id: CONVERSATION_ID1 + - id: CONVERSATION_ID2 +``` + +{% configuration %} +name: + description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`." + required: false + type: string +default_conversations: + description: "The conversations all messages will be sent to, when no other target is given." + required: true + type: [map] + keys: + id: + description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*" + required: true + type: string +{% endconfiguration %} + +The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity. Make sure to use quotes around the conversation id or alias to escape special characters (`!`, and `#`) in YAML. + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). + diff --git a/source/images/supported_brands/hangouts.png b/source/images/supported_brands/hangouts.png new file mode 100644 index 0000000000000000000000000000000000000000..30df744826caa772ffa31b474c00d4157ef87bec GIT binary patch literal 28244 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 e1Q>zyhrs{)!kw1$S$ Date: Mon, 27 Aug 2018 00:23:08 -0700 Subject: [PATCH 17/39] Add TOTP MFA docs (#6089) * Add TOTP MFA docs * Remove configuration options --- .../authentication/multi-factor-auth.markdown | 49 +++++++++++++++++-- .../_docs/authentication/providers.markdown | 8 ++- 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index 751f2010569..fd229645c24 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Multi-factor authentication" -description: "Guide on configuring different multi-factor authentication providers." +description: "Guide on configuring different multi-factor authentication modules." date: 2018-08-23 09:40 redirect_from: /components/auth/ sidebar: true @@ -14,6 +14,49 @@ footer: true This is an advanced feature. If misconfigured, you will not be able to access Home Assistant anymore!

-Besides the normal authentication providers, it's also possible to configure multi-factor authentication providers. These authentication providers will require the user to solve a second challenge besides just logging in. The idea is that you ask the user for something they know, their username/password, and something they have, like a time-based authentication token from their phone. +Besides the authentication providers, it's also possible to configure multi-factor authentication modules. These authentication modules will require the user to solve a second challenge besides just logging in. The idea is that you ask the user for something they know, their username/password, and something they have, like a time-based authentication token from their phone. -This feature is currently a work in progress and no configurable multi-factor authentication providers are currently available. +Multi-factor authentication module can be used mixed-match with authentication providers. After normal authentication provider validation, the login flow will ask user for addional challenge if there are multi-factor authentication modules enabled for this user. If more than one mutli-factor authentication module enabled, user can select one of them during the login. + +Multi-factor authentication module has to be enabled for user before it can be used in the login process, user can go to profile page enable it by himself. + +## {% linkable_title Configuring mutli-factor authentication modules %} + +

+By configuring your own instead of using the default configuration, you take full responsibility for the authentication of the system. +

+ +Multi-factor authentication modules are configured in your `configuration.yaml` under the `homeassistant:` block: + +```yaml +homeassistant: + auth_mfa_modules: + - type: totp +``` + +## {% linkable_title Available mutli-factor authentication modules %} + +Below is a list of currently available auth providers. + +### {% linkable_title Time-based One-Time Password mutli-factor authentication module %} + +[Time-based One-Time Password](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm) is widely adopted in modern authencation system, it combines a secret key with the current timestamp using a cryptographic hash function to generate a one-time password. Whoever possessed the secret key will get same one-time password in certain time period. By verifying that password, Home Assistant knows the user have the right secrt key. + +When try to set up TOTP module, a QR code will show up, user can scan it by an authenticator app, or set it up manauly using the code showed in UI. After setup, user need to input a six digit number generate in the autendicator app to verify the setup is good. If the verificaiton keep falling, you need to check whether the clock on Home Asistant is accurate. + +There are several authenctior apps on the market, we recommend either [Google Authenticator](https://support.google.com/accounts/answer/1066447) or [Authy](https://authy.com/) + +

+Please treat the secret key like a password, never exposure it to others. +

+ + +By default one TOTP multi-factor named "Authenticator app" will be auto loaded if no `auth_mfa_modules` config section defined in `configuration.yaml`. + +Example of configuration + +```yaml +homeassistant: + auth_mfa_modules: + - type: totp +``` \ No newline at end of file diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 1a190543355..a2949c2f557 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -51,9 +51,13 @@ homeassistant: - type: homeassistant ``` -### {% linkable_title Trusted Network %} +### {% linkable_title Trusted Networks %} -With the trusted network auth provider you can whitelist an IP range for which no authentication will be required. The user will be prompted to pick a user to log in as. +With the trusted networks auth provider you can whitelist an IP range for which no authentication will be required. The user will be prompted to pick a user to log in as. + +

+The [multi-factor autentication module](multi-factor-auth) will not participate in login process by using this auth provider. +

```yaml homeassistant: From 7829920550b4ae6bc9eaf3031cf0458fbdcb2863 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 27 Aug 2018 23:01:02 +0200 Subject: [PATCH 18/39] Update blogpost --- source/_posts/2018-08-31-release-77.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 897f9856618..c211f953799 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -15,10 +15,13 @@ og_image: /images/blog/2018-08-0.77/components.png Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. [Read the docs](/docs/authentication/). +You might still have applications that will reach Home Assistant using the API password. This will cause a warning to be printed. If possible, ask the applications developer to transition to use the [OAuth2](https://developers.home-assistant.io/docs/en/auth_api.html) to obtain a token to communicate with Home Assistant. For non-interactive scripts or other applications that are unable to update, we are planning to introduce a migration path for components to adopt url specific auth tokens and also introduce long lived access tokens to replace API passwords. A list of impacted components can be found [here](https://github.com/home-assistant/home-assistant/issues/15376#issuecomment-415890552). + If you were using auth before 0.77: - Please remove the auth providers from your configuration and switch to the default config - Due to changing how the home assistant auth provider hashes passwords, you cannot rollback to 76 with auth enabled unless you remove `.storage/auth*.*` and `.storage/hassio` + Notification drawer for lovelace. Hangouts From ba16ee36f27bbff7a8430d35071cdf6df45e526b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 28 Aug 2018 00:41:44 +0200 Subject: [PATCH 19/39] Mention iOS app --- source/_posts/2018-08-31-release-77.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index c211f953799..969a1e2890b 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -21,6 +21,8 @@ If you were using auth before 0.77: - Please remove the auth providers from your configuration and switch to the default config - Due to changing how the home assistant auth provider hashes passwords, you cannot rollback to 76 with auth enabled unless you remove `.storage/auth*.*` and `.storage/hassio` +The iOS app will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will require a second login when using the webview. + Notification drawer for lovelace. From 0902b3b9cfaa4a6bd0c25bae9a695e5e3972bffc Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 28 Aug 2018 00:46:57 +0200 Subject: [PATCH 20/39] Update notes --- source/_posts/2018-08-31-release-77.markdown | 40 ++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 969a1e2890b..0e070ccc489 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -38,6 +38,7 @@ Device registry!! - Add support for NOAA tide information (new PR) ([@jcconnell] - [#15947]) ([sensor.noaa_tides docs]) (new-platform) - Hangouts ([@hobbypunk90] - [#16049]) ([hangouts docs]) ([notify docs]) (new-platform) - Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) +- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -75,6 +76,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix hangouts ([@balloob] - [#16180]) ([hangouts docs]) (beta fix) - Tweak log level for bearer token warning ([@awarecan] - [#16182]) ([http docs]) (beta fix) - Default load trusted_network auth provider if configured trusted networks ([@awarecan] - [#16184]) (beta fix) +- Replace pbkdf2 with bcrypt ([@Eriner] - [#16071]) (beta fix) +- Add Time-based Onetime Password Multi-factor Authentication Module ([@awarecan] - [#16129]) (beta fix) +- Handle exception from pillow ([@PhracturedBlue] - [#16190]) ([camera.proxy docs]) (beta fix) +- remove hangouts.users state, simplifies hangouts.conversations ([@hobbypunk90] - [#16191]) ([hangouts docs]) (beta fix) +- Update aiohttp to version 3.4.0. ([@Swamp-Ig] - [#16198]) (beta fix) +- Revert changes to platforms using self.device ([@Kane610] - [#16209]) (beta fix) +- homematic: Make device avilable again when UNREACH becomes False ([@klada] - [#16202]) ([homematic docs]) (beta fix) +- Change auth warning ([@balloob] - [#16216]) ([http docs]) (beta fix) +- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) +- Fix device telldus ([@balloob] - [#16224]) ([tellduslive docs]) (beta fix) +- Update trusted networks flow ([@balloob] - [#16227]) (beta fix) ## {% linkable_title All changes %} @@ -170,6 +182,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix hangouts ([@balloob] - [#16180]) ([hangouts docs]) (beta fix) - Tweak log level for bearer token warning ([@awarecan] - [#16182]) ([http docs]) (beta fix) - Default load trusted_network auth provider if configured trusted networks ([@awarecan] - [#16184]) (beta fix) +- Replace pbkdf2 with bcrypt ([@Eriner] - [#16071]) (beta fix) +- Add Time-based Onetime Password Multi-factor Authentication Module ([@awarecan] - [#16129]) (beta fix) +- Handle exception from pillow ([@PhracturedBlue] - [#16190]) ([camera.proxy docs]) (beta fix) +- remove hangouts.users state, simplifies hangouts.conversations ([@hobbypunk90] - [#16191]) ([hangouts docs]) (beta fix) +- Update aiohttp to version 3.4.0. ([@Swamp-Ig] - [#16198]) (beta fix) +- Revert changes to platforms using self.device ([@Kane610] - [#16209]) (beta fix) +- homematic: Make device avilable again when UNREACH becomes False ([@klada] - [#16202]) ([homematic docs]) (beta fix) +- Change auth warning ([@balloob] - [#16216]) ([http docs]) (beta fix) +- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) +- Fix device telldus ([@balloob] - [#16224]) ([tellduslive docs]) (beta fix) +- Update trusted networks flow ([@balloob] - [#16227]) (beta fix) [#14516]: https://github.com/home-assistant/home-assistant/pull/14516 [#14557]: https://github.com/home-assistant/home-assistant/pull/14557 @@ -226,6 +249,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16049]: https://github.com/home-assistant/home-assistant/pull/16049 [#16060]: https://github.com/home-assistant/home-assistant/pull/16060 [#16065]: https://github.com/home-assistant/home-assistant/pull/16065 +[#16071]: https://github.com/home-assistant/home-assistant/pull/16071 [#16077]: https://github.com/home-assistant/home-assistant/pull/16077 [#16079]: https://github.com/home-assistant/home-assistant/pull/16079 [#16083]: https://github.com/home-assistant/home-assistant/pull/16083 @@ -250,6 +274,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16125]: https://github.com/home-assistant/home-assistant/pull/16125 [#16126]: https://github.com/home-assistant/home-assistant/pull/16126 [#16127]: https://github.com/home-assistant/home-assistant/pull/16127 +[#16129]: https://github.com/home-assistant/home-assistant/pull/16129 [#16130]: https://github.com/home-assistant/home-assistant/pull/16130 [#16141]: https://github.com/home-assistant/home-assistant/pull/16141 [#16146]: https://github.com/home-assistant/home-assistant/pull/16146 @@ -263,11 +288,23 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16180]: https://github.com/home-assistant/home-assistant/pull/16180 [#16182]: https://github.com/home-assistant/home-assistant/pull/16182 [#16184]: https://github.com/home-assistant/home-assistant/pull/16184 +[#16190]: https://github.com/home-assistant/home-assistant/pull/16190 +[#16191]: https://github.com/home-assistant/home-assistant/pull/16191 +[#16198]: https://github.com/home-assistant/home-assistant/pull/16198 +[#16202]: https://github.com/home-assistant/home-assistant/pull/16202 +[#16209]: https://github.com/home-assistant/home-assistant/pull/16209 +[#16216]: https://github.com/home-assistant/home-assistant/pull/16216 +[#16220]: https://github.com/home-assistant/home-assistant/pull/16220 +[#16224]: https://github.com/home-assistant/home-assistant/pull/16224 +[#16227]: https://github.com/home-assistant/home-assistant/pull/16227 [@Alexxander0]: https://github.com/Alexxander0 [@Danielhiversen]: https://github.com/Danielhiversen +[@Eriner]: https://github.com/Eriner [@Kane610]: https://github.com/Kane610 [@MartinHjelmare]: https://github.com/MartinHjelmare [@OverloadUT]: https://github.com/OverloadUT +[@PhracturedBlue]: https://github.com/PhracturedBlue +[@Swamp-Ig]: https://github.com/Swamp-Ig [@TimBailey-pnk]: https://github.com/TimBailey-pnk [@amelchio]: https://github.com/amelchio [@appzer]: https://github.com/appzer @@ -316,6 +353,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [calendar.google docs]: /components/calendar.google/ [camera docs]: /components/camera/ [camera.generic docs]: /components/camera.generic/ +[camera.proxy docs]: /components/camera.proxy/ [camera.push docs]: /components/camera.push/ [climate docs]: /components/climate/ [climate.ephember docs]: /components/climate.ephember/ @@ -324,6 +362,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [climate.maxcube docs]: /components/climate.maxcube/ [climate.sensibo docs]: /components/climate.sensibo/ [config docs]: /components/config/ +[conversation docs]: /components/conversation/ [cover.aladdin_connect docs]: /components/cover.aladdin_connect/ [cover.brunt docs]: /components/cover.brunt/ [deconz docs]: /components/deconz/ @@ -373,6 +412,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [switch.konnected docs]: /components/switch.konnected/ [switch.wemo docs]: /components/switch.wemo/ [switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/ +[tellduslive docs]: /components/tellduslive/ [upnp docs]: /components/upnp/ [vacuum.ecovacs docs]: /components/vacuum.ecovacs/ [vacuum.neato docs]: /components/vacuum.neato/ From 8e89bd1147b9b6a7293af9b88e6e870d1b6d59a1 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 28 Aug 2018 01:10:11 +0200 Subject: [PATCH 21/39] Update HassOS 1.10 --- source/hassio/installation.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index f5fca6aa36d..2c4db4c8e76 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -77,14 +77,14 @@ A detailed guide about running Hass.io as a virtual machine is available in the [etcher]: https://etcher.io/ [Virtual Appliance]: https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/ova.md [hassos-network]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md -[pi0-w]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi0-w-1.9.img.gz -[pi1]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi-1.9.img.gz -[pi2]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi2-1.9.img.gz -[pi3-32]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi3-1.9.img.gz -[pi3-64]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_rpi3-64-1.9.img.gz +[pi0-w]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi0-w-1.10.img.gz +[pi1]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi-1.10.img.gz +[pi2]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi2-1.10.img.gz +[pi3-32]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi3-1.10.img.gz +[pi3-64]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi3-64-1.10.img.gz [tinker]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_tinker-2.2.img.gz [odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_odroid-c2-2.2.img.gz -[vmdk]: https://github.com/home-assistant/hassos/releases/download/1.9/hassos_ova-1.9.vmdk +[vmdk]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk [linux]: https://github.com/home-assistant/hassio-build/tree/master/install#install-hassio [local]: http://hassio.local:8123 [samba]: /addons/samba/ From 7169b41a2c089328823ef4851142e426b9940014 Mon Sep 17 00:00:00 2001 From: tmd224 <41244312+tmd224@users.noreply.github.com> Date: Tue, 28 Aug 2018 02:27:19 -0400 Subject: [PATCH 22/39] Adding more detail on .gitignore (#6099) -Added more detail on creating .gitignore for windows users -Added tip for exiting VI editor when writing commit messages --- source/_docs/ecosystem/backup/backup_github.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index 98f7b223bd2..7b952cab3d6 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -50,6 +50,10 @@ Before creating and pushing your Home Assistant configuration to GitHub, please Creating a `.gitignore` file in your repository will tell git which files NOT to push to the GitHub server. This should be used to prevent publishing sensitive files to the public. It should contain a list of filenames and pattern matches. This list should include at least your `secrets.yaml` file, device configuration files, and the Home Assistant database/directory structure. The `.gitignore` file should be placed in the root of your Home Assistant configuration directory: ` + If you are creating the `.gitignore` file on Windows, make sure that you save the file with Unix line endings (i.e. by using an editor like Notepad++). +

+ Here is an example that will ignore everything but your YAML configuration. ```bash @@ -79,7 +83,7 @@ $ git add . $ git commit ``` -After the `git commit` command, you will be asked to enter a message for the commit. This will add a comment beside each file on GitHub describing the purpose for the commit. In this case, you can enter something like "Initial commit of my Home Assistant configuration." +After the `git commit` command, you will be asked to enter a message for the commit. This will add a comment beside each file on GitHub describing the purpose for the commit. In this case, you can enter something like "Initial commit of my Home Assistant configuration." To exit the editor, press `CTRL + C` and then `:wq` which will exit and save the changes. ### {% linkable_title Step 4: Creating Repository on GitHub %} From b7c7c051e6e09f25d04308b846f8f60df29f4208 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 28 Aug 2018 08:34:24 +0200 Subject: [PATCH 23/39] Minor changes --- .../ecosystem/backup/backup_github.markdown | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown index 7b952cab3d6..d43a111f89b 100644 --- a/source/_docs/ecosystem/backup/backup_github.markdown +++ b/source/_docs/ecosystem/backup/backup_github.markdown @@ -12,12 +12,12 @@ redirect_from: /cookbook/githubbackup/ Backing up and regularly syncing your Home Assistant configuration to [GitHub](http://GitHub.com) has several benefits: -- A remote copy of your Home Assistant YAML files in case you need to recover -- A documented history of your changes for troubleshooting purposes -- It will help the Home Assistant community learn from your configuration examples +- A remote copy of your Home Assistant YAML files in case you need to recover. +- A documented history of your changes for troubleshooting purposes. +- It will help the Home Assistant community learn from your configuration examples.

-This is not a comprehensive tutorial on using GitHub, more information can be found in the [GitHub Help](https://help.github.com/) pages. This guide assumes the user has an intermediate experience level and is comfortable with such concepts as: navigating the Home Assistant directory structure, logging in as the Home Assistant user, and working with the command line. +This is not a comprehensive tutorial on using GitHub, more information can be found in the [GitHub Help](https://help.github.com/) pages. This guide assumes the user has an intermediate experience level and is comfortable with such concepts as: navigating the Home Assistant directory structure, logging in as the Home Assistant user, and working with the command line.

@@ -28,14 +28,14 @@ This will not create a full backup of your Home Assistant files or your OS. In a Some best practices to consider before putting your configuration on GitHub: -- Extensive use of [secrets.yaml](/topics/secrets/) to hide sensitive information like usernames, passwords, device information, and location -- Exclusion of some files, including `secrets.yaml` and device-specific information using a [`.gitignore`](https://git-scm.com/docs/gitignore) file -- Regularly committing your configuration to GitHub to make sure that your backup is up to date -- Use a README.md to document your configuration and include screenshots of your Home Assistant GUI +- Extensive use of [`secrets.yaml`](/docs/configuration/secrets/) to hide sensitive information like usernames, passwords, device information, and location. +- Exclusion of some files, including `secrets.yaml` and device-specific information using a [`.gitignore`](https://git-scm.com/docs/gitignore) file. +- Regularly committing your configuration to GitHub to make sure that your backup is up to date. +- Use a README.md to document your configuration and include screenshots of your Home Assistant frontend. ### {% linkable_title Step 1: Installing and Initializing Git %} -In order to put your configuration on GitHub, you must install the git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu, or any Debian-based system) *note: this isn't required in Hass.io, it's included as default so proceed to step 2*: +In order to put your configuration on GitHub, you must install the Git package on your Home Assistant server (instructions below will work on Raspberry Pi, Ubunutu or any Debian-based system) *Note: this isn't required in Hass.io, it's included as default so proceed to step 2*: ```bash $ sudo apt-get update @@ -45,10 +45,10 @@ $ sudo apt-get install git ### {% linkable_title Step 2: Creating `.gitignore` %}

-Before creating and pushing your Home Assistant configuration to GitHub, please make sure to follow the `secrets.yaml` best practice mentioned above and scrub your configuration for any passwords or sensitive information. +Before creating and pushing your Home Assistant configuration to GitHub, please make sure to follow the [`secrets.yaml`](/docs/configuration/secrets/) best practice mentioned above and scrub your configuration for any passwords or sensitive information.

-Creating a `.gitignore` file in your repository will tell git which files NOT to push to the GitHub server. This should be used to prevent publishing sensitive files to the public. It should contain a list of filenames and pattern matches. This list should include at least your `secrets.yaml` file, device configuration files, and the Home Assistant database/directory structure. The `.gitignore` file should be placed in the root of your Home Assistant configuration directory: ` If you are creating the `.gitignore` file on Windows, make sure that you save the file with Unix line endings (i.e. by using an editor like Notepad++). @@ -83,12 +83,12 @@ $ git add . $ git commit ``` -After the `git commit` command, you will be asked to enter a message for the commit. This will add a comment beside each file on GitHub describing the purpose for the commit. In this case, you can enter something like "Initial commit of my Home Assistant configuration." To exit the editor, press `CTRL + C` and then `:wq` which will exit and save the changes. +After the `git commit` command, you will be asked to enter a message for the commit. This will add a comment beside each file on GitHub describing the purpose for the commit. In this case, you can enter something like "Initial commit of my Home Assistant configuration". To exit the editor, press `CTRL + C` and then `:wq` which will exit and save the changes. ### {% linkable_title Step 4: Creating Repository on GitHub %} - Connect to [GitHub](https://github.com) and login to your account (or create an account if you don't already have one). -- Click "[New Repository](https://github.com/new)" and give your repository a name/description (`Home-AssistantConfig` is used in the example below). You do NOT need to change any other options. +- Click "[New Repository](https://github.com/new)" and give your repository a name/description (`Home-AssistantConfig` is used in the example below). You do NOT need to change any other options. - Click "Create Repository" ### {% linkable_title Step 5: Your initial commit to GitHub %} @@ -108,7 +108,7 @@ Congratulations, you now have a copy of your current Home Assistant Configuratio ### {% linkable_title Step 6: Keeping your repository up to date %} -You should update your repository on a regular basis; ideally after you make a major configuration change (new device, new component, etc.). The below script will update your repository with any changed configuration files and allow you to add a comment with the commit for tracking purposes: +You should update your repository on a regular basis. Ideally after you make a major configuration change (new device, new component, etc.). The below script will update your repository with any changed configuration files and allow you to add a comment with the commit for tracking purposes:

You may need to adjust the paths in the script depending on your Home Assistant configuration. @@ -133,15 +133,15 @@ git push origin master exit ``` -Every time you run this script, you will be prompted for a comment to describe the change(s) that you are committing. This comment will be displayed beside each changed file on GitHub and will be stored after each commit. You will also be asked to enter your GitHub username and password (or ssh key passphrase if you use [GitHub with ssh](https://help.github.com/categories/ssh/)). +Every time you run this script, you will be prompted for a comment to describe the change(s) that you are committing. This comment will be displayed beside each changed file on GitHub and will be stored after each commit. You will also be asked to enter your GitHub username and password (or SSH key passphrase if you use [GitHub with SSH](https://help.github.com/categories/ssh/)). ### {% linkable_title Step 7: Configuration file testing %} [Travis CI](https://travis-ci.org) is a continuous integration testing system that runs every time the code in your repository is updated and allows you to validate that your code works on a fresh install. -- [Authorize Travis CI](https://travis-ci.org/auth) to have access to your github repos. -- Create the build script that travis will run to test your repo. -- Create a dummy secrets.yaml for Travis. +- [Authorize Travis CI](https://travis-ci.org/auth) to have access to your GitHub repositories. +- Create the build script that travis will run to test your repository. +- Create a dummy `secrets.yaml` for Travis. Example .travis.yml ```yaml @@ -156,7 +156,7 @@ script: - hass -c . --script check_config ``` -Since the secrets.yaml should _not_ be stored in your repo for security reasons, you won't be able to access it at build time. Creating a dummy secrets.yaml is as simple as creating a new file that mimics your existing secrets.yaml with the required keys, but not their value. +Since the `secrets.yaml` should _not_ be stored in your repository for security reasons, you won't be able to access it at build time. Creating a dummy `secrets.yaml` is as simple as creating a new file that mimics your existing `secrets.yaml` with the required keys, but not their value. ```yaml #travis_secrets.yaml @@ -168,8 +168,7 @@ home_elevation: 0 ### {% linkable_title Extra commands %} -You can enter these commands to get a list of the files in your local git repository and a status of files that have changed but not committed yet: - +You can enter these commands to get a list of the files in your local Git repository and a status of files that have changed but not committed yet: ```bash $ git ls-files From bea89ac0433ad852549c316c108000dbcdd36e2b Mon Sep 17 00:00:00 2001 From: Peter Weidenkaff Date: Tue, 28 Aug 2018 08:35:40 +0200 Subject: [PATCH 24/39] Fix SQL command to extract token on iOS (#6095) --- source/_components/vacuum.xiaomi_miio.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index be3f1ed0bbf..7253f4de437 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -246,7 +246,7 @@ To fetch the token follow these instructions depending on your mobile phone plat 8. Install [DB Browser for SQLite](http://sqlitebrowser.org/). 9. Open DB Browser and load the `.sqlite` file you saved from your backup. 10. Click on the `Execute SQL` tab. -11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZNAME LIKE "%Vacuum%"` +11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%"` 12. Copy the returned 32-digit hexadecimal string to your clipboard. 13. Open `Terminal` and execute this command: `echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000` 14. Use the resulting string as your token. From 6a27c1926f6190eafcba71eb6bf668b7a2877f08 Mon Sep 17 00:00:00 2001 From: tubalainen Date: Tue, 28 Aug 2018 08:36:52 +0200 Subject: [PATCH 25/39] Added default update (#6100) * Added default update Added the default update interval to the component page. * Minor change --- source/_components/tellduslive.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown index 42968880bad..584761f2db8 100644 --- a/source/_components/tellduslive.markdown +++ b/source/_components/tellduslive.markdown @@ -31,6 +31,6 @@ tellduslive: Configuration variables: - **host** (*Optional*): Host address to Tellstick Net or Tellstick ZNet for Local API, only useful when automatic discovery is not enabled. -- **update_interval** (*Optional*): Interval (in seconds) for polling the Telldus Live server (or the local server). +- **update_interval** (*Optional*): Interval (in seconds) for polling the Telldus Live server (or the local server). Defaults to 60 seconds. The component will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account. From 3635878df2262ac01f582cee52410b83fd81e534 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Tue, 28 Aug 2018 07:38:10 +0100 Subject: [PATCH 26/39] Should be step 3 on (#6098) Should be step 3 on for other users --- source/_components/google_assistant.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index c9fbcd65227..3530db78161 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -157,7 +157,7 @@ If you're not using Linux, you can use sites such as [this one](https://www.brow a. Go to the settings for the project you created in point 1 in the developer console. b. Under the gear icon, click `Permissions` c. Click `Add`, type the new user's e-mail address and choose `Project -> Editor` role - d. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point 4 + d. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point 3 8. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project: a. Go to the [cloud console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) b. Select your project and click Enable Homegraph API From 5ca6fd4f0d439f009fe8ca3a8f95252785fa0c0e Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Tue, 28 Aug 2018 03:52:13 -0300 Subject: [PATCH 27/39] Update release links for 2.2 (#6097) --- source/hassio/installation.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 2c4db4c8e76..88aac017cc6 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -77,14 +77,14 @@ A detailed guide about running Hass.io as a virtual machine is available in the [etcher]: https://etcher.io/ [Virtual Appliance]: https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/ova.md [hassos-network]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md -[pi0-w]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi0-w-1.10.img.gz -[pi1]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi-1.10.img.gz -[pi2]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi2-1.10.img.gz -[pi3-32]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi3-1.10.img.gz -[pi3-64]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi3-64-1.10.img.gz +[pi0-w]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_rpi0-w-2.2.img.gz +[pi1]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_rpi-2.2.img.gz +[pi2]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_rpi2-2.2.img.gz +[pi3-32]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_rpi3-2.2.img.gz +[pi3-64]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_rpi3-64-2.2.img.gz [tinker]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_tinker-2.2.img.gz [odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_odroid-c2-2.2.img.gz -[vmdk]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk +[vmdk]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_ova-2.2.vmdk.gz [linux]: https://github.com/home-assistant/hassio-build/tree/master/install#install-hassio [local]: http://hassio.local:8123 [samba]: /addons/samba/ From b17a830cc9ebcb8c397c9720e0e309a0ba92b756 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 28 Aug 2018 09:40:10 +0200 Subject: [PATCH 28/39] Update credits --- credits_generator/.gitignore | 1 + credits_generator/README.md | 8 +- credits_generator/package-lock.json | 116 +++ credits_generator/update_credits.js | 10 +- source/developers/credits.markdown | 1007 ++++++++++++++------------- 5 files changed, 638 insertions(+), 504 deletions(-) create mode 100644 credits_generator/.gitignore create mode 100644 credits_generator/package-lock.json diff --git a/credits_generator/.gitignore b/credits_generator/.gitignore new file mode 100644 index 00000000000..20efa436b5c --- /dev/null +++ b/credits_generator/.gitignore @@ -0,0 +1 @@ +.token diff --git a/credits_generator/README.md b/credits_generator/README.md index 986f0b47859..e441f9917bb 100644 --- a/credits_generator/README.md +++ b/credits_generator/README.md @@ -15,14 +15,10 @@ $ npm install Usage ----- Go to https://github.com/settings/tokens/new and generate a new GitHub personal access token. + Give the token any name and select the `public_repo` and `read:user` scopes. - -Set the environment variable `GITHUB_TOKEN` to the new token. - -```bash -$ export GITHUB_TOKEN= -``` +Put the token in this repo in a file named `.token`. Run the script. diff --git a/credits_generator/package-lock.json b/credits_generator/package-lock.json new file mode 100644 index 00000000000..51cc2098715 --- /dev/null +++ b/credits_generator/package-lock.json @@ -0,0 +1,116 @@ +{ + "name": "credits_generator", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "requires": { + "extend": "3.0.2", + "semver": "5.0.3" + } + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "requires": { + "lodash": "4.17.10" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "follow-redirects": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", + "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=", + "requires": { + "debug": "2.6.9", + "stream-consume": "0.1.1" + } + }, + "github": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/github/-/github-8.2.1.tgz", + "integrity": "sha1-YWsiEfvNHMhjFmmu1nZT5i61OBY=", + "requires": { + "follow-redirects": "0.0.7", + "https-proxy-agent": "1.0.0", + "mime": "1.6.0", + "netrc": "0.1.4" + } + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.2" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "moment-timezone": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", + "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", + "requires": { + "moment": "2.22.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mu2": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/mu2/-/mu2-0.5.21.tgz", + "integrity": "sha1-iIqPD9kOsc/anbgUdvbhmcyeWNM=" + }, + "netrc": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", + "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=" + }, + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=" + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" + } + } +} diff --git a/credits_generator/update_credits.js b/credits_generator/update_credits.js index 3cfab7a9e23..99e71743c0c 100644 --- a/credits_generator/update_credits.js +++ b/credits_generator/update_credits.js @@ -4,8 +4,12 @@ var fs = require('fs') , mu = require('mu2') , moment = require('moment-timezone'); -if(!process.env.GITHUB_TOKEN) { - console.error('You must set the GITHUB_TOKEN environment variable to a GitHub personal access token.'); +let token; + +try { + token = fs.readFileSync('.token', 'utf-8').trim(); +} catch (err) { + console.error('You must create a .token file that contains a GitHub token.'); return; } @@ -17,7 +21,7 @@ var github = new GitHubApi({ headers: { 'user-agent': 'Home Assistant Contributors List Updater ' } }); -github.authenticate({ type: 'oauth', token: process.env.GITHUB_TOKEN }); +github.authenticate({ type: 'oauth', token: token }); var usersMap = {}; diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 735732f80f5..6eacda0733f 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -2,7 +2,7 @@ layout: page title: "Credits" description: "Credits for the developers who contributed to Home Assistant." -date: 2018-06-03 20:50:11 +0000 +date: 2018-08-28 07:39:11 +0000 sidebar: true comments: false sharing: true @@ -13,7 +13,7 @@ This page contains a list of people who have contributed in one way or another t ### {% linkable_title Author %} -- [Paulus Schoutsen (@balloob)](https://github.com/balloob "6888 total commits to the home-assistant organization, 3961 commits to home-assistant, 1476 commits to home-assistant.github.io, 854 commits to home-assistant-polymer, 244 commits to home-assistant-js, 124 commits to netdisco, 62 commits to developers.home-assistant, 52 commits to home-assistant-js-websocket, 35 commits to hass-release, 17 commits to LabelBot, 15 commits to home-assistant-assets, 8 commits to example-custom-config, 8 commits to hassio, 7 commits to micropython-home-assistant, 6 commits to custom-panel-starter-kit-react, 3 commits to hassio-addons, 3 commits to hassio-build, 2 commits to ui-schema, 2 commits to issue-bot, 2 commits to lambda-home-assistant-github, 2 commits to home-assistant-iOS, 2 commits to hassio-addons-example, 1 commit to home-assistant-notebooks, 1 commit to architecture, 1 commit to warrant") +- [Paulus Schoutsen (@balloob)](https://github.com/balloob "7458 total commits to the home-assistant organization, 4212 commits to home-assistant, 1565 commits to home-assistant.io, 1011 commits to home-assistant-polymer, 237 commits to home-assistant-js, 126 commits to netdisco, 110 commits to developers.home-assistant, 66 commits to home-assistant-js-websocket, 38 commits to hass-release, 17 commits to LabelBot, 15 commits to home-assistant-assets, 10 commits to hassio, 9 commits to hbmqtt-auth-home-assistant, 8 commits to example-custom-config, 7 commits to micropython-home-assistant, 6 commits to custom-panel-starter-kit-react, 4 commits to ui-schema, 3 commits to hassio-addons, 3 commits to hassio-build, 2 commits to home-assistant-iOS, 2 commits to issue-bot, 2 commits to lambda-home-assistant-github, 2 commits to hassio-addons-example, 1 commit to warrant, 1 commit to home-assistant-notebooks, 1 commit to architecture") ### {% linkable_title Contributors %} @@ -21,877 +21,894 @@ This page contains a list of people who have contributed in one way or another t - [7even (@hwikene)](https://github.com/hwikene "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [a-andre (@a-andre)](https://github.com/a-andre "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Aaron Bach (@bachya)](https://github.com/bachya "61 total commits to the home-assistant organization, 42 commits to home-assistant, 19 commits to home-assistant.github.io") +- [Aaron Bach (@bachya)](https://github.com/bachya "81 total commits to the home-assistant organization, 56 commits to home-assistant, 25 commits to home-assistant.io") - [Aaron Linville (@linville)](https://github.com/linville "2 total commits to the home-assistant organization, 2 commits to appdaemon") -- [Abílio Costa (@abmantis)](https://github.com/abmantis "24 total commits to the home-assistant organization, 14 commits to home-assistant, 6 commits to home-assistant.github.io, 2 commits to home-assistant-polymer, 1 commit to home-assistant-js-websocket, 1 commit to netdisco") +- [Abílio Costa (@abmantis)](https://github.com/abmantis "24 total commits to the home-assistant organization, 14 commits to home-assistant, 6 commits to home-assistant.io, 2 commits to home-assistant-polymer, 1 commit to home-assistant-js-websocket, 1 commit to netdisco") - [Adam Baxter (@voltagex)](https://github.com/voltagex "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Adam Cooper (@GenericStudent)](https://github.com/GenericStudent "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Adam Dullage (@Dullage)](https://github.com/Dullage "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Adam Mills (@armills)](https://github.com/armills "324 total commits to the home-assistant organization, 171 commits to home-assistant, 92 commits to home-assistant-polymer, 57 commits to home-assistant.github.io, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant") +- [Adam Cooper (@GenericStudent)](https://github.com/GenericStudent "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.io") +- [Adam Dullage (@Dullage)](https://github.com/Dullage "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Adam Mills (@armills)](https://github.com/armills "331 total commits to the home-assistant organization, 174 commits to home-assistant, 93 commits to home-assistant-polymer, 59 commits to home-assistant.io, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant, 1 commit to developers.home-assistant") - [Adrian Popa (@mad-ady)](https://github.com/mad-ady "5 total commits to the home-assistant organization, 4 commits to appdaemon, 1 commit to home-assistant-polymer") - [Adrien Ball (@adrienball)](https://github.com/adrienball "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Adrien Brault (@adrienbrault)](https://github.com/adrienbrault "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Adrián López (@adrianlzt)](https://github.com/adrianlzt "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant") +- [Adrián López (@adrianlzt)](https://github.com/adrianlzt "8 total commits to the home-assistant organization, 6 commits to home-assistant.io, 2 commits to home-assistant") - [AHS (@ahofelt)](https://github.com/ahofelt "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [akloeckner (@akloeckner)](https://github.com/akloeckner "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Alan Bowman (@alanbowman)](https://github.com/alanbowman "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "20 total commits to the home-assistant organization, 16 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Alan Tse (@alandtse)](https://github.com/alandtse "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") -- [Alasdair Nicol (@alasdairnicol)](https://github.com/alasdairnicol "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Albatross (@DyingAlbatross)](https://github.com/DyingAlbatross "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Albert Lee (@trisk)](https://github.com/trisk "18 total commits to the home-assistant organization, 11 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "21 total commits to the home-assistant organization, 17 commits to home-assistant, 4 commits to home-assistant.io") +- [Alan Tse (@alandtse)](https://github.com/alandtse "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.io") +- [Alasdair Nicol (@alasdairnicol)](https://github.com/alasdairnicol "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Albatross (@DyingAlbatross)](https://github.com/DyingAlbatross "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Albert Lee (@trisk)](https://github.com/trisk "20 total commits to the home-assistant organization, 12 commits to home-assistant, 8 commits to home-assistant.io") - [Alberto Arias Maestro (@albertoarias)](https://github.com/albertoarias "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Alec Rust (@AlecRust)](https://github.com/AlecRust "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") - [Alessandro Mogavero (@alexmogavero)](https://github.com/alexmogavero "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Alex Barcelo (@alexbarcelo)](https://github.com/alexbarcelo "6 total commits to the home-assistant organization, 3 commits to hassio-addons, 3 commits to home-assistant.github.io") -- [Alex Harvey (@infamy)](https://github.com/infamy "29 total commits to the home-assistant organization, 14 commits to home-assistant, 11 commits to home-assistant.github.io, 4 commits to hassos") -- [Alex Mekkering (@AlexMekkering)](https://github.com/AlexMekkering "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Alex Barcelo (@alexbarcelo)](https://github.com/alexbarcelo "7 total commits to the home-assistant organization, 4 commits to home-assistant.io, 3 commits to hassio-addons") +- [Alex Harvey (@infamy)](https://github.com/infamy "29 total commits to the home-assistant organization, 14 commits to home-assistant, 11 commits to home-assistant.io, 4 commits to hassos") +- [Alex Mekkering (@AlexMekkering)](https://github.com/AlexMekkering "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") - [Alex MF (@adsmf)](https://github.com/adsmf "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Alex Osadchyy (@aosadchyy)](https://github.com/aosadchyy "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Alex Tzonkov (@attzonko)](https://github.com/attzonko "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Alexander Bachmeier (@asbach)](https://github.com/asbach "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Alex Tzonkov (@attzonko)](https://github.com/attzonko "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Alexander Bachmeier (@asbach)](https://github.com/asbach "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") - [Alexander Kratzer (@hexxter)](https://github.com/hexxter "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Alexandre Perrin (@kAworu)](https://github.com/kAworu "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Alexei Chetroi (@Adminiuga)](https://github.com/Adminiuga "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Alexis Iglauer (@ax42)](https://github.com/ax42 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Alexandre Perrin (@kAworu)](https://github.com/kAworu "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Alexei Chetroi (@Adminiuga)](https://github.com/Adminiuga "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") +- [Alexis Iglauer (@ax42)](https://github.com/ax42 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Alfie Day (@Azelphur)](https://github.com/Azelphur "12 total commits to the home-assistant organization, 12 commits to home-assistant") -- [Aliaksandr (@minchik)](https://github.com/minchik "7 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to appdaemon, 2 commits to home-assistant") -- [Alok Saboo (@arsaboo)](https://github.com/arsaboo "141 total commits to the home-assistant organization, 82 commits to home-assistant.github.io, 53 commits to home-assistant, 4 commits to home-assistant-polymer, 1 commit to hassio-addons, 1 commit to pi-gen") +- [Aliaksandr (@minchik)](https://github.com/minchik "7 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to appdaemon, 2 commits to home-assistant") +- [Alok Saboo (@arsaboo)](https://github.com/arsaboo "148 total commits to the home-assistant organization, 83 commits to home-assistant.io, 53 commits to home-assistant, 7 commits to home-assistant-polymer, 3 commits to developers.home-assistant, 1 commit to hassio-addons, 1 commit to pi-gen") - [amorsillo (@AndrewMorsillo)](https://github.com/AndrewMorsillo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Anders Fogh Eriksen (@Fogh)](https://github.com/Fogh "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "225 total commits to the home-assistant organization, 182 commits to home-assistant, 41 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") -- [andig (@andig)](https://github.com/andig "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Andrea Campi (@andreacampi)](https://github.com/andreacampi "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Anders Fogh Eriksen (@Fogh)](https://github.com/Fogh "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "245 total commits to the home-assistant organization, 199 commits to home-assistant, 44 commits to home-assistant.io, 2 commits to home-assistant-polymer") +- [andig (@andig)](https://github.com/andig "2 total commits to the home-assistant organization, 2 commits to pi-gen") +- [Andrea Campi (@andreacampi)](https://github.com/andreacampi "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to home-assistant.io") - [Andreas Björshammar (@abjorshammar)](https://github.com/abjorshammar "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Andreas Jacobsen (@andreasjacobsen93)](https://github.com/andreasjacobsen93 "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to hassio-addons") +- [Andreas Jacobsen (@andreasjacobsen93)](https://github.com/andreasjacobsen93 "8 total commits to the home-assistant organization, 6 commits to home-assistant.io, 2 commits to hassio-addons") - [Andreas Rammhold (@andir)](https://github.com/andir "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Andreas Renberg (@IQAndreas)](https://github.com/IQAndreas "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Andreea\-Daniela Ene (@AndreeaEne)](https://github.com/AndreeaEne "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Andreas Renberg (@IQAndreas)](https://github.com/IQAndreas "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Andreea\-Daniela Ene (@AndreeaEne)](https://github.com/AndreeaEne "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Andrei Pop (@andreipop2005)](https://github.com/andreipop2005 "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Andrej Friesen (@ajfriesen)](https://github.com/ajfriesen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Andrew (@aneisch)](https://github.com/aneisch "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Andrew (@aoakeson)](https://github.com/aoakeson "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Andrew Cockburn (@acockburn)](https://github.com/acockburn "817 total commits to the home-assistant organization, 682 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 22 commits to home-assistant.github.io") +- [Andrej Friesen (@ajfriesen)](https://github.com/ajfriesen "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Andrew (@aneisch)](https://github.com/aneisch "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Andrew (@aoakeson)](https://github.com/aoakeson "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Andrew Cockburn (@acockburn)](https://github.com/acockburn "821 total commits to the home-assistant organization, 686 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 22 commits to home-assistant.io") - [Andrew Smith (@andrewmichaelsmith)](https://github.com/andrewmichaelsmith "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Andrew Stock (@watchforstock)](https://github.com/watchforstock "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Andrew Thigpen (@andythigpen)](https://github.com/andythigpen "33 total commits to the home-assistant organization, 32 commits to home-assistant, 1 commit to home-assistant-js") - [Andrew Wedgbury (@sconemad)](https://github.com/sconemad "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [andrew-curtis (@andrew-curtis)](https://github.com/andrew-curtis "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [Andrey (@andrey-git)](https://github.com/andrey-git "303 total commits to the home-assistant organization, 137 commits to home-assistant-polymer, 128 commits to home-assistant, 37 commits to home-assistant.github.io, 1 commit to home-assistant-js-websocket") -- [Andrey Kupreychik (@foxel)](https://github.com/foxel "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Andrzej (@andriej)](https://github.com/andriej "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Andréas Lundgren (@adevade)](https://github.com/adevade "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Andy Castille (@Klikini)](https://github.com/Klikini "14 total commits to the home-assistant organization, 9 commits to home-assistant, 5 commits to home-assistant.github.io") +- [andrew-curtis (@andrew-curtis)](https://github.com/andrew-curtis "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [Andrey (@andrey-git)](https://github.com/andrey-git "323 total commits to the home-assistant organization, 147 commits to home-assistant, 138 commits to home-assistant-polymer, 37 commits to home-assistant.io, 1 commit to home-assistant-js-websocket") +- [Andrey Kupreychik (@foxel)](https://github.com/foxel "13 total commits to the home-assistant organization, 8 commits to home-assistant, 5 commits to home-assistant.io") +- [Andrzej (@andriej)](https://github.com/andriej "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Andréas Lundgren (@adevade)](https://github.com/adevade "2 total commits to the home-assistant organization, 2 commits to home-assistant.io") +- [Andy Castille (@Klikini)](https://github.com/Klikini "18 total commits to the home-assistant organization, 11 commits to home-assistant, 7 commits to home-assistant.io") - [anotherthomas (@anotherthomas)](https://github.com/anotherthomas "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Anthony Arnaud (@aarnaud)](https://github.com/aarnaud "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Anthony Hughes (@tony2nite)](https://github.com/tony2nite "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Antoine Bertin (@Diaoul)](https://github.com/Diaoul "5 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Antoine Bertin (@Diaoul)](https://github.com/Diaoul "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to home-assistant-polymer") - [Anton Glukhov (@toxxin)](https://github.com/toxxin "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Anton Lundin (@glance-)](https://github.com/glance- "8 total commits to the home-assistant organization, 7 commits to home-assistant, 1 commit to netdisco") -- [Anton Sarukhanov (@antsar)](https://github.com/antsar "6 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Anton Sarukhanov (@antsar)](https://github.com/antsar "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [Antoni K (@Antoni-K)](https://github.com/Antoni-K "1 total commits to the home-assistant organization, 1 commit to hassbian-scripts") - [apo-mak (@apo-mak)](https://github.com/apo-mak "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [arcsur (@arcsur)](https://github.com/arcsur "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Ardetus (@Ardetus)](https://github.com/Ardetus "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") -- [Ardi Mehist (@omgapuppy)](https://github.com/omgapuppy "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Ari Lotter (@arilotter)](https://github.com/arilotter "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [arjenfvellinga (@arjenfvellinga)](https://github.com/arjenfvellinga "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Arno (@aetjansen)](https://github.com/aetjansen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [ArrayLabs (@arraylabs)](https://github.com/arraylabs "5 total commits to the home-assistant organization, 5 commits to home-assistant") +- [Ardetus (@Ardetus)](https://github.com/Ardetus "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [arjenfvellinga (@arjenfvellinga)](https://github.com/arjenfvellinga "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Arno (@aetjansen)](https://github.com/aetjansen "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [ArrayLabs (@arraylabs)](https://github.com/arraylabs "6 total commits to the home-assistant organization, 6 commits to home-assistant") +- [Artem (@ArtHome12)](https://github.com/ArtHome12 "2 total commits to the home-assistant organization, 2 commits to developers.home-assistant") - [Arthur Leonard Andersen (@leoc)](https://github.com/leoc "9 total commits to the home-assistant organization, 9 commits to home-assistant") -- [Arttu mahlakaarto (@amahlaka)](https://github.com/amahlaka "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") -- [Ashton Campbell (@AshtonCampbell)](https://github.com/AshtonCampbell "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") +- [Arttu mahlakaarto (@amahlaka)](https://github.com/amahlaka "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") +- [Ashton Campbell (@AshtonCampbell)](https://github.com/AshtonCampbell "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [Assaf Inbal (@shmuelzon)](https://github.com/shmuelzon "11 total commits to the home-assistant organization, 9 commits to homebridge-homeassistant, 2 commits to home-assistant") -- [Audric Schiltknecht (@chemicalstorm)](https://github.com/chemicalstorm "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Audric Schiltknecht (@chemicalstorm)](https://github.com/chemicalstorm "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Audun Ytterdal (@auduny)](https://github.com/auduny "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Austin (@trainman419)](https://github.com/trainman419 "8 total commits to the home-assistant organization, 8 commits to home-assistant") - [Avraham David Gelbfish (@adgelbfish)](https://github.com/adgelbfish "2 total commits to the home-assistant organization, 1 commit to hadashboard, 1 commit to pi-gen") - [azeroth12 (@azeroth12)](https://github.com/azeroth12 "1 total commits to the home-assistant organization, 1 commit to appdaemon") +- [Azimoth (@Azimoth)](https://github.com/Azimoth "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [baflo (@baflo)](https://github.com/baflo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Balázs Suhajda (@suhajdab)](https://github.com/suhajdab "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Baran Kaynak (@barankaynak)](https://github.com/barankaynak "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Barry Williams (@bazwilliams)](https://github.com/bazwilliams "10 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to netdisco, 2 commits to home-assistant.github.io") -- [Bart274 (@Bart274)](https://github.com/Bart274 "26 total commits to the home-assistant organization, 17 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [Bas Schipper (@basschipper)](https://github.com/basschipper "9 total commits to the home-assistant organization, 7 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Barry Williams (@bazwilliams)](https://github.com/bazwilliams "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to netdisco") +- [Bart274 (@Bart274)](https://github.com/Bart274 "26 total commits to the home-assistant organization, 17 commits to home-assistant, 8 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [Bas Schipper (@basschipper)](https://github.com/basschipper "7 total commits to the home-assistant organization, 7 commits to home-assistant") - [bastshoes (@bastshoes)](https://github.com/bastshoes "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [battistaar (@battistaar)](https://github.com/battistaar "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [bcl1713 (@bcl1713)](https://github.com/bcl1713 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Beat (@bdurrer)](https://github.com/bdurrer "14 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 3 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Ben (@unixben)](https://github.com/unixben "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [bcl1713 (@bcl1713)](https://github.com/bcl1713 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Beat (@bdurrer)](https://github.com/bdurrer "14 total commits to the home-assistant organization, 10 commits to home-assistant.io, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [Ben Bangert (@bbangert)](https://github.com/bbangert "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Ben Doerr (@bendoerr)](https://github.com/bendoerr "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Ben Lebherz (@benleb)](https://github.com/benleb "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Ben Lebherz (@benleb)](https://github.com/benleb "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Ben Nuttall (@bennuttall)](https://github.com/bennuttall "1 total commits to the home-assistant organization, 1 commit to pi-gen") - [Ben Origas (@borigas)](https://github.com/borigas "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Ben Pirt (@bjpirt)](https://github.com/bjpirt "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Ben Randall (@veleek)](https://github.com/veleek "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [Ben Thomas (@wazoo)](https://github.com/wazoo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Benedict Aas (@Shou)](https://github.com/Shou "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Benedict Aas (@Shou)](https://github.com/Shou "5 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to home-assistant") - [Benjamin Parzella (@bparzella)](https://github.com/bparzella "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Benji (@bbbenji)](https://github.com/bbbenji "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Bertbert (@bertbert72)](https://github.com/bertbert72 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [bestlibre (@bestlibre)](https://github.com/bestlibre "16 total commits to the home-assistant organization, 8 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to hassio, 1 commit to hassio-build, 1 commit to home-assistant-polymer") -- [BigMoby (@bigmoby)](https://github.com/bigmoby "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [BioSehnsucht (@BioSehnsucht)](https://github.com/BioSehnsucht "14 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 4 commits to home-assistant, 2 commits to home-assistant-polymer") +- [bestlibre (@bestlibre)](https://github.com/bestlibre "16 total commits to the home-assistant organization, 8 commits to home-assistant, 5 commits to home-assistant.io, 1 commit to hassio, 1 commit to hassio-build, 1 commit to home-assistant-polymer") +- [BioSehnsucht (@BioSehnsucht)](https://github.com/BioSehnsucht "14 total commits to the home-assistant organization, 8 commits to home-assistant.io, 4 commits to home-assistant, 2 commits to home-assistant-polymer") - [Bjarni Ivarsson (@bjarniivarsson)](https://github.com/bjarniivarsson "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant-polymer") - [Björn Orri (@bjornorri)](https://github.com/bjornorri "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS") - [Björn Ramberg (@bjorne)](https://github.com/bjorne "1 total commits to the home-assistant organization, 1 commit to hassio-build") -- [Blanyal D'Souza (@blanyal)](https://github.com/blanyal "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Bob Anderson (@rwa)](https://github.com/rwa "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Bob Igo (@Human)](https://github.com/Human "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Boced66 (@boced66)](https://github.com/boced66 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [bonanitech (@bonanitech)](https://github.com/bonanitech "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [boojew (@boojew)](https://github.com/boojew "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [Boris K (@bokub)](https://github.com/bokub "12 total commits to the home-assistant organization, 6 commits to home-assistant, 6 commits to home-assistant.github.io") -- [bottomquark (@bottomquark)](https://github.com/bottomquark "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Boyi C (@fanthos)](https://github.com/fanthos "25 total commits to the home-assistant organization, 17 commits to home-assistant-polymer, 6 commits to home-assistant, 2 commits to home-assistant.github.io") -- [bpoirriez (@bpoirriez)](https://github.com/bpoirriez "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Bob Anderson (@rwa)](https://github.com/rwa "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.io") +- [Bob Clough (@thinkl33t)](https://github.com/thinkl33t "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Bob Igo (@Human)](https://github.com/Human "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Boced66 (@boced66)](https://github.com/boced66 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [bonanitech (@bonanitech)](https://github.com/bonanitech "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") +- [boojew (@boojew)](https://github.com/boojew "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [Boris K (@bokub)](https://github.com/bokub "12 total commits to the home-assistant organization, 6 commits to home-assistant.io, 6 commits to home-assistant") +- [bottomquark (@bottomquark)](https://github.com/bottomquark "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Boyi C (@fanthos)](https://github.com/fanthos "23 total commits to the home-assistant organization, 17 commits to home-assistant-polymer, 6 commits to home-assistant") - [Brad Dixon (@rbdixon)](https://github.com/rbdixon "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Brad Fitzpatrick (@bradfitz)](https://github.com/bradfitz "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") - [Brad Johnson (@bradsk88)](https://github.com/bradsk88 "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Brahma Fear (@brahmafear)](https://github.com/brahmafear "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") +- [Brahma Fear (@brahmafear)](https://github.com/brahmafear "8 total commits to the home-assistant organization, 8 commits to home-assistant.io") - [Bram Kragten (@bramkragten)](https://github.com/bramkragten "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Brandon Mathis (@imathis)](https://github.com/imathis "484 total commits to the home-assistant organization, 484 commits to home-assistant.github.io") +- [Brandon Mathis (@imathis)](https://github.com/imathis "484 total commits to the home-assistant organization, 484 commits to home-assistant.io") - [Brandon Weeks (@brandonweeks)](https://github.com/brandonweeks "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [brburns (@brburns)](https://github.com/brburns "2 total commits to the home-assistant organization, 2 commits to netdisco") -- [Brenda Wallace (@Br3nda)](https://github.com/Br3nda "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Brendon Baumgartner (@bbrendon)](https://github.com/bbrendon "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io") -- [Brent Hughes (@bah2830)](https://github.com/bah2830 "27 total commits to the home-assistant organization, 18 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to netdisco") +- [Brenda Wallace (@Br3nda)](https://github.com/Br3nda "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Brendon Baumgartner (@bbrendon)](https://github.com/bbrendon "11 total commits to the home-assistant organization, 11 commits to home-assistant.io") +- [Brent Hughes (@bah2830)](https://github.com/bah2830 "27 total commits to the home-assistant organization, 18 commits to home-assistant, 8 commits to home-assistant.io, 1 commit to netdisco") - [Brent Kerlin (@bkerlin)](https://github.com/bkerlin "1 total commits to the home-assistant organization, 1 commit to hassio-build") -- [Brent Saltzman (@brent20)](https://github.com/brent20 "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io") -- [Brian Cribbs (@cribbstechnologies)](https://github.com/cribbstechnologies "43 total commits to the home-assistant organization, 26 commits to home-assistant, 15 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") -- [Brian Fitzgerald (@Brianfit)](https://github.com/Brianfit "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Brian Hopkins (@btotharye)](https://github.com/btotharye "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant") -- [Brian J King (@brianjking)](https://github.com/brianjking "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io") +- [Brent Saltzman (@brent20)](https://github.com/brent20 "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") +- [Brian Cribbs (@cribbstechnologies)](https://github.com/cribbstechnologies "43 total commits to the home-assistant organization, 26 commits to home-assistant, 15 commits to home-assistant.io, 2 commits to home-assistant-polymer") +- [Brian Hopkins (@btotharye)](https://github.com/btotharye "6 total commits to the home-assistant organization, 4 commits to home-assistant.io, 2 commits to home-assistant") +- [Brian J King (@brianjking)](https://github.com/brianjking "12 total commits to the home-assistant organization, 12 commits to home-assistant.io") - [Brian Jinwright (@bjinwright)](https://github.com/bjinwright "159 total commits to the home-assistant organization, 159 commits to warrant") -- [Britton Clapp (@britton-clapp)](https://github.com/britton-clapp "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [BRUH Automation (@bruhautomation)](https://github.com/bruhautomation "3 total commits to the home-assistant organization, 3 commits to hassbian-scripts") - [Bruno Adele (@badele)](https://github.com/badele "22 total commits to the home-assistant organization, 22 commits to home-assistant") - [Bruno Binet (@bbinet)](https://github.com/bbinet "1 total commits to the home-assistant organization, 1 commit to hassio-build") -- [Bryce Edwards (@hoopty)](https://github.com/hoopty "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io") -- [bvansambeek (@bvansambeek)](https://github.com/bvansambeek "1 total commits to the home-assistant organization, 1 commit to hassio-build") -- [c727 (@c727)](https://github.com/c727 "93 total commits to the home-assistant organization, 67 commits to home-assistant-polymer, 14 commits to home-assistant.github.io, 8 commits to home-assistant, 2 commits to hassio, 2 commits to developers.home-assistant") -- [Caius Cioran (@caiuspb)](https://github.com/caiuspb "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Bryan York (@bryanyork)](https://github.com/bryanyork "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Bryce Edwards (@hoopty)](https://github.com/hoopty "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [bvansambeek (@bvansambeek)](https://github.com/bvansambeek "4 total commits to the home-assistant organization, 3 commits to home-assistant.io, 1 commit to hassio-build") +- [c727 (@c727)](https://github.com/c727 "242 total commits to the home-assistant organization, 157 commits to home-assistant-polymer, 53 commits to home-assistant.io, 11 commits to ui-schema, 10 commits to developers.home-assistant, 9 commits to home-assistant, 2 commits to hassio") +- [Caius Seiger (@caiuspb)](https://github.com/caiuspb "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Caleb Dunn (@finish06)](https://github.com/finish06 "7 total commits to the home-assistant organization, 7 commits to home-assistant") -- [Cameron Bulock (@cbulock)](https://github.com/cbulock "5 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to netdisco") -- [Carlo Costanzo (@CCOSTAN)](https://github.com/CCOSTAN "98 total commits to the home-assistant organization, 90 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to hassbian-scripts, 1 commit to fabric-home-assistant, 1 commit to homebridge-homeassistant") +- [Cameron Bulock (@cbulock)](https://github.com/cbulock "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to netdisco") +- [Carlo Costanzo (@CCOSTAN)](https://github.com/CCOSTAN "99 total commits to the home-assistant organization, 91 commits to home-assistant.io, 5 commits to home-assistant, 1 commit to fabric-home-assistant, 1 commit to hassbian-scripts, 1 commit to homebridge-homeassistant") - [carlosmgr (@carlosmgr)](https://github.com/carlosmgr "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Carter (@BluGeni)](https://github.com/BluGeni "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [cdce8p (@cdce8p)](https://github.com/cdce8p "127 total commits to the home-assistant organization, 73 commits to home-assistant, 38 commits to home-assistant.github.io, 10 commits to home-assistant-polymer, 4 commits to hass-release, 2 commits to developers.home-assistant") +- [cdce8p (@cdce8p)](https://github.com/cdce8p "143 total commits to the home-assistant organization, 84 commits to home-assistant, 41 commits to home-assistant.io, 11 commits to home-assistant-polymer, 5 commits to hass-release, 2 commits to developers.home-assistant") - [Cecron (@Cecron)](https://github.com/Cecron "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [Cedric Van Goethem (@Zepheus)](https://github.com/Zepheus "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Cenk Gündoğan (@cgundogan)](https://github.com/cgundogan "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Cezar Sá Espinola (@cezarsa)](https://github.com/cezarsa "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [cgtobi (@cgtobi)](https://github.com/cgtobi "28 total commits to the home-assistant organization, 17 commits to home-assistant, 11 commits to home-assistant.github.io") +- [cgtobi (@cgtobi)](https://github.com/cgtobi "32 total commits to the home-assistant organization, 19 commits to home-assistant, 13 commits to home-assistant.io") - [chanders (@chanders)](https://github.com/chanders "2 total commits to the home-assistant organization, 2 commits to hadashboard") -- [Charles Blonde (@CharlesBlonde)](https://github.com/CharlesBlonde "19 total commits to the home-assistant organization, 12 commits to home-assistant, 7 commits to home-assistant.github.io") -- [Charles Garwood (@cgarwood)](https://github.com/cgarwood "23 total commits to the home-assistant organization, 12 commits to home-assistant.github.io, 8 commits to home-assistant, 3 commits to home-assistant-polymer") -- [Charles Spirakis (@srcLurker)](https://github.com/srcLurker "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Chayoung You (@yous)](https://github.com/yous "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Charles Blonde (@CharlesBlonde)](https://github.com/CharlesBlonde "19 total commits to the home-assistant organization, 12 commits to home-assistant, 7 commits to home-assistant.io") +- [Charles Garwood (@cgarwood)](https://github.com/cgarwood "26 total commits to the home-assistant organization, 14 commits to home-assistant.io, 9 commits to home-assistant, 3 commits to home-assistant-polymer") +- [Charles Spirakis (@srcLurker)](https://github.com/srcLurker "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.io") +- [Chayoung You (@yous)](https://github.com/yous "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Check your git settings\! (@invalid-email-address)](https://github.com/invalid-email-address "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Chia\-liang Kao (@clkao)](https://github.com/clkao "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Chris (@chennin)](https://github.com/chennin "15 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 4 commits to home-assistant") -- [Chris Aloi (@ctaloi)](https://github.com/ctaloi "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Chris (@chennin)](https://github.com/chennin "15 total commits to the home-assistant organization, 11 commits to home-assistant.io, 4 commits to home-assistant") - [Chris Crowe (@chriscrowe)](https://github.com/chriscrowe "3 total commits to the home-assistant organization, 3 commits to homebridge-homeassistant") - [Chris Huegle (@chuegle)](https://github.com/chuegle "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Chris Jones (@fezfox)](https://github.com/fezfox "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Chris Monteiro (@cmonteiro128)](https://github.com/cmonteiro128 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Chris Mulder (@chrisvis)](https://github.com/chrisvis "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Chris Smolen (@smolz)](https://github.com/smolz "10 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 4 commits to appdaemon") -- [Chris Thorn (@chris-thorn)](https://github.com/chris-thorn "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [ChrisLasar (@ChrisLasar)](https://github.com/ChrisLasar "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Chris Smolen (@smolz)](https://github.com/smolz "10 total commits to the home-assistant organization, 6 commits to home-assistant.io, 4 commits to appdaemon") +- [Chris Thorn (@chris-thorn)](https://github.com/chris-thorn "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") - [ChrisS85 (@ChrisS85)](https://github.com/ChrisS85 "1 total commits to the home-assistant organization, 1 commit to hassio-build") - [Christiaan Blom (@Deinara)](https://github.com/Deinara "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [Christian Brædstrup (@LinuxChristian)](https://github.com/LinuxChristian "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Christian Studer (@cstuder)](https://github.com/cstuder "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [ChristianKuehnel (@ChristianKuehnel)](https://github.com/ChristianKuehnel "39 total commits to the home-assistant organization, 23 commits to home-assistant, 16 commits to home-assistant.github.io") -- [Christoffer Kylvåg (@christoe)](https://github.com/christoe "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Christoph Wagner (@Christoph-Wagner)](https://github.com/Christoph-Wagner "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Christopher Vella (@chrisvella)](https://github.com/chrisvella "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Christopher Viel (@Chris-V)](https://github.com/Chris-V "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Christian Studer (@cstuder)](https://github.com/cstuder "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [ChristianKuehnel (@ChristianKuehnel)](https://github.com/ChristianKuehnel "39 total commits to the home-assistant organization, 23 commits to home-assistant, 16 commits to home-assistant.io") +- [Christoph Gerneth (@c7h)](https://github.com/c7h "5 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to home-assistant") +- [Christoph Wagner (@Christoph-Wagner)](https://github.com/Christoph-Wagner "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Christopher Viel (@Chris-V)](https://github.com/Chris-V "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [chrysn (@chrysn)](https://github.com/chrysn "65 total commits to the home-assistant organization, 65 commits to libcoap") - [chz^3 (@chzchzchz)](https://github.com/chzchzchz "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Ciquattro (@CiquattroFPV)](https://github.com/CiquattroFPV "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Ciquattro (@CiquattroFPV)](https://github.com/CiquattroFPV "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [citruz (@citruz)](https://github.com/citruz "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [clach04 (@clach04)](https://github.com/clach04 "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to hassbian-scripts") +- [clach04 (@clach04)](https://github.com/clach04 "4 total commits to the home-assistant organization, 3 commits to home-assistant.io, 1 commit to hassbian-scripts") - [Claus F\. Strasburger (@cfstras)](https://github.com/cfstras "5 total commits to the home-assistant organization, 5 commits to pi-gen") -- [cogneato (@cogneato)](https://github.com/cogneato "15 total commits to the home-assistant organization, 15 commits to home-assistant.github.io") +- [cogneato (@cogneato)](https://github.com/cogneato "20 total commits to the home-assistant organization, 15 commits to home-assistant.io, 3 commits to developers.home-assistant, 2 commits to hassos") - [Colin Dunn (@colindunn)](https://github.com/colindunn "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Colin Frei (@colinfrei)](https://github.com/colinfrei "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Colin O'Dell (@colinodell)](https://github.com/colinodell "27 total commits to the home-assistant organization, 16 commits to home-assistant, 11 commits to home-assistant.github.io") -- [Colin Teubner (@netopiax)](https://github.com/netopiax "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Conrad Juhl Andersen (@cnrd)](https://github.com/cnrd "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Colin Frei (@colinfrei)](https://github.com/colinfrei "5 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to home-assistant") +- [Colin O'Dell (@colinodell)](https://github.com/colinodell "33 total commits to the home-assistant organization, 18 commits to home-assistant, 15 commits to home-assistant.io") +- [Colin Teubner (@netopiax)](https://github.com/netopiax "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Conrad Juhl Andersen (@cnrd)](https://github.com/cnrd "15 total commits to the home-assistant organization, 7 commits to home-assistant, 5 commits to home-assistant.io, 2 commits to home-assistant-polymer, 1 commit to developers.home-assistant") - [Constantine Grantcharov (@conz27)](https://github.com/conz27 "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Constantine Poltyrev (@shprota)](https://github.com/shprota "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [Corban Mailloux (@corbanmailloux)](https://github.com/corbanmailloux "18 total commits to the home-assistant organization, 18 commits to home-assistant.github.io") -- [Corey Pauley (@devspacenine)](https://github.com/devspacenine "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant") +- [Corban Mailloux (@corbanmailloux)](https://github.com/corbanmailloux "18 total commits to the home-assistant organization, 18 commits to home-assistant.io") +- [Corey Pauley (@devspacenine)](https://github.com/devspacenine "5 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to home-assistant") - [corneyl (@corneyl)](https://github.com/corneyl "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Craig J\. Ward (@wardcraigj)](https://github.com/wardcraigj "27 total commits to the home-assistant organization, 20 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Craig J\. Midwinter (@craigjmidwinter)](https://github.com/craigjmidwinter "27 total commits to the home-assistant organization, 20 commits to home-assistant, 7 commits to home-assistant.io") - [CTLS (@CTLS)](https://github.com/CTLS "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [CV (@dagobert)](https://github.com/dagobert "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [CV (@dagobert)](https://github.com/dagobert "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [cxlwill (@cxlwill)](https://github.com/cxlwill "4 total commits to the home-assistant organization, 2 commits to hassbian-scripts, 2 commits to home-assistant-polymer") -- [Dale Higgs (@dale3h)](https://github.com/dale3h "37 total commits to the home-assistant organization, 25 commits to home-assistant.github.io, 10 commits to home-assistant, 1 commit to hassbot, 1 commit to homebridge-homeassistant") +- [Dale Higgs (@dale3h)](https://github.com/dale3h "45 total commits to the home-assistant organization, 32 commits to home-assistant.io, 11 commits to home-assistant, 1 commit to hassbot, 1 commit to homebridge-homeassistant") - [damarco (@damarco)](https://github.com/damarco "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Dan (@danieljkemp)](https://github.com/danieljkemp "23 total commits to the home-assistant organization, 16 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Dan (@danieljkemp)](https://github.com/danieljkemp "23 total commits to the home-assistant organization, 16 commits to home-assistant, 7 commits to home-assistant.io") - [Dan Chen (@djchen)](https://github.com/djchen "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Dan Cinnamon (@Cinntax)](https://github.com/Cinntax "17 total commits to the home-assistant organization, 14 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Dan Faulknor (@danielfaulknor)](https://github.com/danielfaulknor "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Dan Nixon (@DanNixon)](https://github.com/DanNixon "25 total commits to the home-assistant organization, 19 commits to home-assistant, 6 commits to home-assistant.github.io") +- [Dan Cinnamon (@Cinntax)](https://github.com/Cinntax "19 total commits to the home-assistant organization, 16 commits to home-assistant, 3 commits to home-assistant.io") +- [Dan Klaffenbach (@klada)](https://github.com/klada "4 total commits to the home-assistant organization, 4 commits to home-assistant") +- [Dan Nixon (@DanNixon)](https://github.com/DanNixon "25 total commits to the home-assistant organization, 19 commits to home-assistant, 6 commits to home-assistant.io") - [Dan Ports (@drkp)](https://github.com/drkp "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [Dan Sarginson (@dansarginson)](https://github.com/dansarginson "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Dan Smith (@kk7ds)](https://github.com/kk7ds "84 total commits to the home-assistant organization, 68 commits to home-assistant, 14 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") -- [Dan Sullivan (@dansullivan86)](https://github.com/dansullivan86 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Dani (@danichispa)](https://github.com/danichispa "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io") -- [Daniel (@delneet)](https://github.com/delneet "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Daniel Escoz (@Darkhogg)](https://github.com/Darkhogg "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Daniel Høyer Iversen (@Danielhiversen)](https://github.com/Danielhiversen "307 total commits to the home-assistant organization, 193 commits to home-assistant, 111 commits to home-assistant.github.io, 3 commits to home-assistant-polymer") -- [Daniel Perna (@danielperna84)](https://github.com/danielperna84 "91 total commits to the home-assistant organization, 43 commits to home-assistant, 40 commits to home-assistant.github.io, 8 commits to hassio-addons") -- [Daniel Peukert (@dpeukert)](https://github.com/dpeukert "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Dan Smith (@kk7ds)](https://github.com/kk7ds "84 total commits to the home-assistant organization, 68 commits to home-assistant, 14 commits to home-assistant.io, 2 commits to home-assistant-polymer") +- [Dani (@danichispa)](https://github.com/danichispa "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") +- [Daniel Bowman (@vrih)](https://github.com/vrih "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to netdisco") +- [Daniel Escoz (@Darkhogg)](https://github.com/Darkhogg "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Daniel Høyer Iversen (@Danielhiversen)](https://github.com/Danielhiversen "310 total commits to the home-assistant organization, 196 commits to home-assistant, 111 commits to home-assistant.io, 3 commits to home-assistant-polymer") +- [Daniel Perna (@danielperna84)](https://github.com/danielperna84 "102 total commits to the home-assistant organization, 50 commits to home-assistant, 41 commits to home-assistant.io, 11 commits to hassio-addons") +- [Daniel Peukert (@dpeukert)](https://github.com/dpeukert "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Daniel Schaal (@schaal)](https://github.com/schaal "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Daniel Shokouhi (@dshokouhi)](https://github.com/dshokouhi "12 total commits to the home-assistant organization, 12 commits to home-assistant.github.io") +- [Daniel Shokouhi (@dshokouhi)](https://github.com/dshokouhi "26 total commits to the home-assistant organization, 19 commits to home-assistant.io, 7 commits to home-assistant") - [Daniel Trnka (@trnila)](https://github.com/trnila "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Daniel Watkins (@OddBloke)](https://github.com/OddBloke "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Daniel Welch (@danielwelch)](https://github.com/danielwelch "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant, 1 commit to hassio-addons") +- [Daniel Welch (@danielwelch)](https://github.com/danielwelch "6 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to homebridge-homeassistant, 1 commit to hassio-addons") - [DanielXYZ2000 (@DanielXYZ2000)](https://github.com/DanielXYZ2000 "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Daniyar Yeralin (@yeralin)](https://github.com/yeralin "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [dasos (@dasos)](https://github.com/dasos "11 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to netdisco") -- [datafx (@datafx)](https://github.com/datafx "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [dasos (@dasos)](https://github.com/dasos "11 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.io, 1 commit to netdisco") +- [datafx (@datafx)](https://github.com/datafx "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Dave Banks (@djbanks)](https://github.com/djbanks "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Dave J (@kxtcd950)](https://github.com/kxtcd950 "3 total commits to the home-assistant organization, 3 commits to hassbian-scripts") - [DaveSergeant (@dethpickle)](https://github.com/dethpickle "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [David (@fanaticDavid)](https://github.com/fanaticDavid "16 total commits to the home-assistant organization, 12 commits to home-assistant.github.io, 3 commits to home-assistant, 1 commit to home-assistant-polymer") +- [David (@fanaticDavid)](https://github.com/fanaticDavid "16 total commits to the home-assistant organization, 12 commits to home-assistant.io, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [David Broadfoot (@dlbroadfoot)](https://github.com/dlbroadfoot "5 total commits to the home-assistant organization, 5 commits to home-assistant") -- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "16 total commits to the home-assistant organization, 16 commits to home-assistant.github.io") +- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "16 total commits to the home-assistant organization, 16 commits to home-assistant.io") - [David F\. Mulcahey (@dmulcahey)](https://github.com/dmulcahey "5 total commits to the home-assistant organization, 5 commits to home-assistant") - [David Fiel (@dfiel)](https://github.com/dfiel "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [David Grant (@davegravy)](https://github.com/davegravy "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant") -- [David McNett (@nugget)](https://github.com/nugget "10 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 5 commits to home-assistant") +- [David Grant (@davegravy)](https://github.com/davegravy "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [David McNett (@nugget)](https://github.com/nugget "10 total commits to the home-assistant organization, 5 commits to home-assistant.io, 5 commits to home-assistant") - [David Ohayon (@ohayon)](https://github.com/ohayon "3 total commits to the home-assistant organization, 3 commits to issue-bot") -- [David Straub (@DavidMStraub)](https://github.com/DavidMStraub "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") +- [David Steele (@davesteele)](https://github.com/davesteele "4 total commits to the home-assistant organization, 4 commits to pi-gen") +- [David Straub (@DavidMStraub)](https://github.com/DavidMStraub "10 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.io") - [David Wang (@dcwangmit01)](https://github.com/dcwangmit01 "2 total commits to the home-assistant organization, 2 commits to pi-gen") -- [David Worsham (@arbreng)](https://github.com/arbreng "1 total commits to the home-assistant organization, 1 commit to hassio-build") +- [David Worsham (@arbreng)](https://github.com/arbreng "2 total commits to the home-assistant organization, 2 commits to hassio-build") - [David\-Leon Pohl (@DavidLP)](https://github.com/DavidLP "13 total commits to the home-assistant organization, 13 commits to home-assistant") -- [davidedmundson (@davidedmundson)](https://github.com/davidedmundson "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Dawid Wróbel (@wrobelda)](https://github.com/wrobelda "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Dean Camera (@abcminiuser)](https://github.com/abcminiuser "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [davidedmundson (@davidedmundson)](https://github.com/davidedmundson "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") +- [Dawid Wróbel (@wrobelda)](https://github.com/wrobelda "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [deisi (@deisi)](https://github.com/deisi "10 total commits to the home-assistant organization, 10 commits to home-assistant") - [Delio Castillo (@jangeador)](https://github.com/jangeador "2 total commits to the home-assistant organization, 2 commits to hassio-addons") -- [Demid Lupin (@lupin-de-mid)](https://github.com/lupin-de-mid "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Dennis de Greef (@dennisdegreef)](https://github.com/dennisdegreef "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Demid Lupin (@lupin-de-mid)](https://github.com/lupin-de-mid "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Dennis Karpienski (@TheRealLink)](https://github.com/TheRealLink "22 total commits to the home-assistant organization, 15 commits to home-assistant-polymer, 6 commits to home-assistant, 1 commit to netdisco") -- [Derek (@itchaboy)](https://github.com/itchaboy "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Derek Brooks (@broox)](https://github.com/broox "39 total commits to the home-assistant organization, 30 commits to home-assistant, 9 commits to home-assistant.github.io") +- [Derek (@itchaboy)](https://github.com/itchaboy "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Derek Brooks (@broox)](https://github.com/broox "39 total commits to the home-assistant organization, 30 commits to home-assistant, 9 commits to home-assistant.io") - [dersger (@dersger)](https://github.com/dersger "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") -- [devdelay (@devdelay)](https://github.com/devdelay "16 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 5 commits to home-assistant, 4 commits to homebridge-homeassistant") -- [Devon Peet (@dpeet)](https://github.com/dpeet "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Diogo Gomes (@dgomes)](https://github.com/dgomes "54 total commits to the home-assistant organization, 35 commits to home-assistant, 19 commits to home-assistant.github.io") +- [DetroitEE (@DetroitEE)](https://github.com/DetroitEE "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [devdelay (@devdelay)](https://github.com/devdelay "16 total commits to the home-assistant organization, 7 commits to home-assistant.io, 5 commits to home-assistant, 4 commits to homebridge-homeassistant") +- [Devon Peet (@dpeet)](https://github.com/dpeet "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Diogo Gomes (@dgomes)](https://github.com/dgomes "70 total commits to the home-assistant organization, 46 commits to home-assistant, 23 commits to home-assistant.io, 1 commit to developers.home-assistant") +- [Dmitri Pribysh (@dmand)](https://github.com/dmand "1 total commits to the home-assistant organization, 1 commit to hassos") - [Domantas (@Dohxis)](https://github.com/Dohxis "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Dougal Matthews (@d0ugal)](https://github.com/d0ugal "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [dramamoose (@dramamoose)](https://github.com/dramamoose "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") -- [DrewSK (@dzsquared)](https://github.com/dzsquared "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") -- [DubhAd (@DubhAd)](https://github.com/DubhAd "260 total commits to the home-assistant organization, 260 commits to home-assistant.github.io") -- [Duoxilian (@Duoxilian)](https://github.com/Duoxilian "11 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 5 commits to home-assistant") +- [dramamoose (@dramamoose)](https://github.com/dramamoose "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") +- [DrewSK (@dzsquared)](https://github.com/dzsquared "8 total commits to the home-assistant organization, 8 commits to home-assistant.io") +- [DubhAd (@DubhAd)](https://github.com/DubhAd "395 total commits to the home-assistant organization, 392 commits to home-assistant.io, 2 commits to hassos, 1 commit to developers.home-assistant") +- [Duoxilian (@Duoxilian)](https://github.com/Duoxilian "11 total commits to the home-assistant organization, 6 commits to home-assistant.io, 5 commits to home-assistant") - [ebpetway (@ebpetway)](https://github.com/ebpetway "55 total commits to the home-assistant organization, 55 commits to warrant") -- [Edwin Smulders (@Dutchy-)](https://github.com/Dutchy- "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Egor Tsinko (@etsinko)](https://github.com/etsinko "12 total commits to the home-assistant organization, 9 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Egor Tsinko (@etsinko)](https://github.com/etsinko "12 total commits to the home-assistant organization, 9 commits to home-assistant, 3 commits to home-assistant.io") - [Eitan Mosenkis (@emosenkis)](https://github.com/emosenkis "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to netdisco") - [eldanb (@eldanb)](https://github.com/eldanb "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Eleftherios Chamakiotis (@lexam79)](https://github.com/lexam79 "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Ellis Percival (@flyte)](https://github.com/flyte "29 total commits to the home-assistant organization, 25 commits to home-assistant, 4 commits to home-assistant.github.io") -- [endor-force (@endor-force)](https://github.com/endor-force "10 total commits to the home-assistant organization, 5 commits to hassio-addons, 4 commits to home-assistant.github.io, 1 commit to hassio-build") +- [Ellis Percival (@flyte)](https://github.com/flyte "29 total commits to the home-assistant organization, 25 commits to home-assistant, 4 commits to home-assistant.io") - [engrbm87 (@engrbm87)](https://github.com/engrbm87 "3 total commits to the home-assistant organization, 3 commits to appdaemon") - [Eric Hagan (@ehagan)](https://github.com/ehagan "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Eric Oosting (@eoosting)](https://github.com/eoosting "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Eric Oosting (@eoosting)](https://github.com/eoosting "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Eric Rolf (@xrolfex)](https://github.com/xrolfex "13 total commits to the home-assistant organization, 13 commits to home-assistant") -- [Erik Eriksson (@molobrakos)](https://github.com/molobrakos "116 total commits to the home-assistant organization, 100 commits to home-assistant, 13 commits to home-assistant.github.io, 3 commits to netdisco") -- [Erik\-jan Riemers (@riemers)](https://github.com/riemers "14 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 1 commit to hassbian-scripts") +- [Erik Eriksson (@molobrakos)](https://github.com/molobrakos "116 total commits to the home-assistant organization, 100 commits to home-assistant, 13 commits to home-assistant.io, 3 commits to netdisco") +- [Erik\-jan Riemers (@riemers)](https://github.com/riemers "14 total commits to the home-assistant organization, 13 commits to home-assistant.io, 1 commit to hassbian-scripts") - [escoand (@escoand)](https://github.com/escoand "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to netdisco") - [ettisan (@ettisan)](https://github.com/ettisan "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Eu (@covrig)](https://github.com/covrig "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Eugenio Panadero (@azogue)](https://github.com/azogue "76 total commits to the home-assistant organization, 45 commits to home-assistant, 25 commits to home-assistant.github.io, 3 commits to homebridge-homeassistant, 3 commits to home-assistant-polymer") +- [Eu (@covrig)](https://github.com/covrig "2 total commits to the home-assistant organization, 2 commits to home-assistant-polymer") +- [Eugenio Panadero (@azogue)](https://github.com/azogue "77 total commits to the home-assistant organization, 46 commits to home-assistant, 25 commits to home-assistant.io, 3 commits to homebridge-homeassistant, 3 commits to home-assistant-polymer") - [Ezra Bowden (@bn0)](https://github.com/bn0 "2 total commits to the home-assistant organization, 2 commits to warrant") -- [Fabian Affolter (@fabaff)](https://github.com/fabaff "4735 total commits to the home-assistant organization, 2996 commits to home-assistant.github.io, 1621 commits to home-assistant, 32 commits to home-assistant-assets, 31 commits to home-assistant-notebooks, 11 commits to home-assistant-polymer, 11 commits to hassio-build, 8 commits to netdisco, 7 commits to developers.home-assistant, 5 commits to hassio-addons, 4 commits to hassio, 3 commits to hassos, 2 commits to hass-release, 2 commits to home-assistant-iOS, 1 commit to home-assistant-js-websocket, 1 commit to example-custom-config") +- [Fabian Affolter (@fabaff)](https://github.com/fabaff "4889 total commits to the home-assistant organization, 3055 commits to home-assistant.io, 1697 commits to home-assistant, 33 commits to home-assistant-assets, 32 commits to home-assistant-notebooks, 15 commits to developers.home-assistant, 11 commits to home-assistant-polymer, 11 commits to hassio-build, 10 commits to netdisco, 7 commits to hassos, 6 commits to hassio-addons, 4 commits to hassio, 3 commits to hass-release, 2 commits to home-assistant-iOS, 1 commit to example-custom-config, 1 commit to ui-schema, 1 commit to home-assistant-js-websocket") +- [Fabian Fischer (@nodomain)](https://github.com/nodomain "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Fabian Heredia Montiel (@fabianhjr)](https://github.com/fabianhjr "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Fabien Piuzzi (@reefab)](https://github.com/reefab "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Fabrizio Furnari (@fabfurnari)](https://github.com/fabfurnari "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant") +- [Fabien Piuzzi (@reefab)](https://github.com/reefab "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Fabrizio Furnari (@fabfurnari)](https://github.com/fabfurnari "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [fakezeta (@fakezeta)](https://github.com/fakezeta "7 total commits to the home-assistant organization, 7 commits to home-assistant") -- [Felix (@xifle)](https://github.com/xifle "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Felix Krause (@KrauseFx)](https://github.com/KrauseFx "27 total commits to the home-assistant organization, 27 commits to issue-bot") -- [Ferry van Zeelst (@StaticCube)](https://github.com/StaticCube "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant") +- [Fernando (@ferazambuja)](https://github.com/ferazambuja "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Ferry van Zeelst (@StaticCube)](https://github.com/StaticCube "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Finbarr Brady (@fbradyirl)](https://github.com/fbradyirl "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Florian Holzapfel (@florianholzapfel)](https://github.com/florianholzapfel "11 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to netdisco") -- [Florian Klien (@flowolf)](https://github.com/flowolf "17 total commits to the home-assistant organization, 14 commits to home-assistant.github.io, 3 commits to home-assistant") +- [Florian Holzapfel (@florianholzapfel)](https://github.com/florianholzapfel "7 total commits to the home-assistant organization, 4 commits to home-assistant.io, 3 commits to netdisco") +- [Florian Klien (@flowolf)](https://github.com/flowolf "17 total commits to the home-assistant organization, 14 commits to home-assistant.io, 3 commits to home-assistant") - [florianj1 (@florianj1)](https://github.com/florianj1 "1 total commits to the home-assistant organization, 1 commit to hassio") -- [florincosta (@florincosta)](https://github.com/florincosta "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Fonta (@f0nt4)](https://github.com/f0nt4 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Franck Nijhof (@frenck)](https://github.com/frenck "34 total commits to the home-assistant organization, 22 commits to home-assistant.github.io, 6 commits to hassio, 2 commits to hassio-addons, 2 commits to home-assistant-polymer, 1 commit to hassio-cli, 1 commit to appdaemon") +- [florincosta (@florincosta)](https://github.com/florincosta "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.io") +- [Fonta (@f0nt4)](https://github.com/f0nt4 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Franck Nijhof (@frenck)](https://github.com/frenck "44 total commits to the home-assistant organization, 31 commits to home-assistant.io, 6 commits to hassio, 2 commits to hassio-cli, 2 commits to hassio-addons, 2 commits to home-assistant-polymer, 1 commit to appdaemon") - [Frank (@syphernl)](https://github.com/syphernl "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Frantz (@rofrantz)](https://github.com/rofrantz "17 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to netdisco, 1 commit to home-assistant-js-websocket") -- [Frederic Hemberger (@fhemberger)](https://github.com/fhemberger "93 total commits to the home-assistant organization, 93 commits to home-assistant.github.io") +- [Frantz (@rofrantz)](https://github.com/rofrantz "17 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to home-assistant.io, 3 commits to netdisco, 1 commit to home-assistant-js-websocket") +- [Frederic Hemberger (@fhemberger)](https://github.com/fhemberger "93 total commits to the home-assistant organization, 93 commits to home-assistant.io") - [Frederik Bolding (@FrederikBolding)](https://github.com/FrederikBolding "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Fredrik Lindqvist (@Landrash)](https://github.com/Landrash "214 total commits to the home-assistant organization, 102 commits to hassbian-scripts, 73 commits to home-assistant.github.io, 34 commits to pi-gen, 4 commits to home-assistant, 1 commit to home-assistant-polymer") +- [Fredrik Lindqvist (@Landrash)](https://github.com/Landrash "224 total commits to the home-assistant organization, 110 commits to hassbian-scripts, 73 commits to home-assistant.io, 36 commits to pi-gen, 4 commits to home-assistant, 1 commit to home-assistant-polymer") - [freol35241 (@freol35241)](https://github.com/freol35241 "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [fuga2136 (@fuga2136)](https://github.com/fuga2136 "13 total commits to the home-assistant organization, 13 commits to home-assistant.github.io") -- [Gabor SZOLLOSI (@szogi)](https://github.com/szogi "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to appdaemon") -- [GadgetReactor (@GadgetReactor)](https://github.com/GadgetReactor "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [fuga2136 (@fuga2136)](https://github.com/fuga2136 "13 total commits to the home-assistant organization, 13 commits to home-assistant.io") +- [Gabor SZOLLOSI (@szogi)](https://github.com/szogi "1 total commits to the home-assistant organization, 1 commit to appdaemon") +- [Gabriel Oliveira (@gabrielboliveira)](https://github.com/gabrielboliveira "2 total commits to the home-assistant organization, 1 commit to hassos, 1 commit to hassio-addons") - [Geoff Norton (@kangaroo)](https://github.com/kangaroo "14 total commits to the home-assistant organization, 14 commits to home-assistant") -- [George\.M (@nodinosaur)](https://github.com/nodinosaur "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant") -- [Georgi Kirichkov (@kirichkov)](https://github.com/kirichkov "17 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to appdaemon") -- [Georgi Yanev (@jumpalottahigh)](https://github.com/jumpalottahigh "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") +- [George\.M (@nodinosaur)](https://github.com/nodinosaur "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") +- [Georgi Kirichkov (@kirichkov)](https://github.com/kirichkov "17 total commits to the home-assistant organization, 11 commits to home-assistant.io, 5 commits to home-assistant, 1 commit to appdaemon") +- [Georgi Yanev (@jumpalottahigh)](https://github.com/jumpalottahigh "6 total commits to the home-assistant organization, 4 commits to home-assistant.io, 2 commits to home-assistant-polymer") - [Georgii Staroselskii (@staroselskii)](https://github.com/staroselskii "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Gerard (@gerard33)](https://github.com/gerard33 "12 total commits to the home-assistant organization, 6 commits to home-assistant, 6 commits to home-assistant.github.io") -- [Gergely Imreh (@imrehg)](https://github.com/imrehg "16 total commits to the home-assistant organization, 11 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Gianluca Barbaro (@MrMep)](https://github.com/MrMep "24 total commits to the home-assistant organization, 16 commits to home-assistant, 8 commits to home-assistant.github.io") -- [Giel Janssens (@gieljnssns)](https://github.com/gieljnssns "4 total commits to the home-assistant organization, 4 commits to home-assistant") +- [Gerard (@gerard33)](https://github.com/gerard33 "12 total commits to the home-assistant organization, 6 commits to home-assistant.io, 6 commits to home-assistant") +- [Gergely Imreh (@imrehg)](https://github.com/imrehg "16 total commits to the home-assistant organization, 11 commits to home-assistant, 5 commits to home-assistant.io") +- [Gianluca Barbaro (@MrMep)](https://github.com/MrMep "24 total commits to the home-assistant organization, 16 commits to home-assistant, 8 commits to home-assistant.io") +- [Giel Janssens (@gieljnssns)](https://github.com/gieljnssns "5 total commits to the home-assistant organization, 5 commits to home-assistant") +- [gillkyle (@gillkyle)](https://github.com/gillkyle "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") - [GitBook Bot (@gitbook-bot)](https://github.com/gitbook-bot "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") -- [githubbuh (@githubbuh)](https://github.com/githubbuh "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [gitmopp (@gitmopp)](https://github.com/gitmopp "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Giuseppe (@glpatcern)](https://github.com/glpatcern "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [GMFalka (@GMFalka)](https://github.com/GMFalka "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [githubbuh (@githubbuh)](https://github.com/githubbuh "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [gitmopp (@gitmopp)](https://github.com/gitmopp "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Giuseppe (@glpatcern)](https://github.com/glpatcern "4 total commits to the home-assistant organization, 4 commits to home-assistant") +- [Glenn Waters (@gwww)](https://github.com/gwww "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [GMFalka (@GMFalka)](https://github.com/GMFalka "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Gopal Kildoliya (@gopalkildoliya)](https://github.com/gopalkildoliya "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [GotoCode (@GotoCode)](https://github.com/GotoCode "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Grant McConnaughey (@grantmcconnaughey)](https://github.com/grantmcconnaughey "8 total commits to the home-assistant organization, 8 commits to warrant") -- [GreenTurtwig (@GreenTurtwig)](https://github.com/GreenTurtwig "80 total commits to the home-assistant organization, 75 commits to home-assistant.github.io, 5 commits to home-assistant") -- [Greg Dowling (@pavoni)](https://github.com/pavoni "256 total commits to the home-assistant organization, 229 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to netdisco") -- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "17 total commits to the home-assistant organization, 14 commits to home-assistant, 3 commits to home-assistant.github.io") +- [GreenTurtwig (@GreenTurtwig)](https://github.com/GreenTurtwig "80 total commits to the home-assistant organization, 75 commits to home-assistant.io, 5 commits to home-assistant") +- [Greg Dowling (@pavoni)](https://github.com/pavoni "209 total commits to the home-assistant organization, 183 commits to home-assistant, 25 commits to home-assistant.io, 1 commit to netdisco") +- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "20 total commits to the home-assistant organization, 16 commits to home-assistant, 4 commits to home-assistant.io") - [Greg MacLellan (@gregmac)](https://github.com/gregmac "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Greg Stevenson (@gstevenson)](https://github.com/gstevenson "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Greg\. A\. (@gautric)](https://github.com/gautric "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Greg Stevenson (@gstevenson)](https://github.com/gstevenson "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Gregory Benner (@Klathmon)](https://github.com/Klathmon "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [GTH (@gunnarhelgason)](https://github.com/gunnarhelgason "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Guillaume Rischard (@grischard)](https://github.com/grischard "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Gustav Ahlberg (@Gyran)](https://github.com/Gyran "20 total commits to the home-assistant organization, 20 commits to home-assistant") +- [Guy Parisi (@Guyanthalas)](https://github.com/Guyanthalas "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") - [gwendalg (@gwendalg)](https://github.com/gwendalg "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [happyleavesaoc (@happyleavesaoc)](https://github.com/happyleavesaoc "114 total commits to the home-assistant organization, 90 commits to home-assistant, 23 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Hans Bakker (@hansmbakker)](https://github.com/hansmbakker "5 total commits to the home-assistant organization, 5 commits to home-assistant") +- [hanzoh (@hanzoh)](https://github.com/hanzoh "4 total commits to the home-assistant organization, 4 commits to home-assistant") +- [happyleavesaoc (@happyleavesaoc)](https://github.com/happyleavesaoc "114 total commits to the home-assistant organization, 90 commits to home-assistant, 23 commits to home-assistant.io, 1 commit to home-assistant-polymer") - [Harald Nagel (@haraldnagel)](https://github.com/haraldnagel "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Harris Borawski (@hborawski)](https://github.com/hborawski "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [hawk259 (@hawk259)](https://github.com/hawk259 "13 total commits to the home-assistant organization, 7 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Hate-Usernames (@Hate-Usernames)](https://github.com/Hate-Usernames "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [hawk259 (@hawk259)](https://github.com/hawk259 "13 total commits to the home-assistant organization, 7 commits to home-assistant, 5 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [hcooper (@hcooper)](https://github.com/hcooper "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [Heath Paddock (@heathbar)](https://github.com/heathbar "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Heiko Rothe (@mKeRix)](https://github.com/mKeRix "20 total commits to the home-assistant organization, 15 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Heiko Thiery (@hthiery)](https://github.com/hthiery "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Heiko Rothe (@mKeRix)](https://github.com/mKeRix "20 total commits to the home-assistant organization, 15 commits to home-assistant, 5 commits to home-assistant.io") +- [Heiko Thiery (@hthiery)](https://github.com/hthiery "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") - [Hellowlol (@Hellowlol)](https://github.com/Hellowlol "4 total commits to the home-assistant organization, 3 commits to netdisco, 1 commit to appdaemon") - [Helmut Januschka (@hjanuschka)](https://github.com/hjanuschka "3 total commits to the home-assistant organization, 3 commits to issue-bot") -- [Henning Dickten (@hensing)](https://github.com/hensing "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Henrik Nicolaisen (@hmn)](https://github.com/hmn "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Hernán Rossetto (@hmronline)](https://github.com/hmronline "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [heytcass (@heytcass)](https://github.com/heytcass "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Hillary Fraley (@hillaryfraley)](https://github.com/hillaryfraley "12 total commits to the home-assistant organization, 12 commits to home-assistant.github.io") +- [Henrik Nicolaisen (@hmn)](https://github.com/hmn "6 total commits to the home-assistant organization, 6 commits to home-assistant") +- [heytcass (@heytcass)](https://github.com/heytcass "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Hillary Fraley (@hillaryfraley)](https://github.com/hillaryfraley "12 total commits to the home-assistant organization, 12 commits to home-assistant.io") +- [Hmmbob (@hmmbob)](https://github.com/hmmbob "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [honcheng (@honcheng)](https://github.com/honcheng "2 total commits to the home-assistant organization, 2 commits to homebridge-homeassistant") -- [Hugo Dupras (@jabesq)](https://github.com/jabesq "28 total commits to the home-assistant organization, 20 commits to home-assistant, 8 commits to home-assistant.github.io") -- [Hugo Gresse (@HugoGresse)](https://github.com/HugoGresse "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") +- [huangyupeng (@huangyupeng)](https://github.com/huangyupeng "14 total commits to the home-assistant organization, 7 commits to home-assistant.io, 7 commits to home-assistant") +- [Hugo Dupras (@jabesq)](https://github.com/jabesq "29 total commits to the home-assistant organization, 21 commits to home-assistant, 8 commits to home-assistant.io") +- [Hugo Gresse (@HugoGresse)](https://github.com/HugoGresse "8 total commits to the home-assistant organization, 8 commits to home-assistant.io") +- [Hugo Hromic (@hhromic)](https://github.com/hhromic "4 total commits to the home-assistant organization, 4 commits to pi-gen") - [Hung Le (@hungle)](https://github.com/hungle "1 total commits to the home-assistant organization, 1 commit to libcoap") -- [Hydreliox (@HydrelioxGitHub)](https://github.com/HydrelioxGitHub "46 total commits to the home-assistant organization, 34 commits to home-assistant, 12 commits to home-assistant.github.io") +- [Hydreliox (@HydrelioxGitHub)](https://github.com/HydrelioxGitHub "46 total commits to the home-assistant organization, 34 commits to home-assistant, 12 commits to home-assistant.io") - [Ian Copp (@icopp)](https://github.com/icopp "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [ianj001 (@ianj001)](https://github.com/ianj001 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [icovada (@icovada)](https://github.com/icovada "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Igor Bernstein (@igorbernstein2)](https://github.com/igorbernstein2 "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Igor Shults (@ishults)](https://github.com/ishults "12 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [Ioan Loosley (@ioangogo)](https://github.com/ioangogo "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io") +- [Ian Richardson (@iantrich)](https://github.com/iantrich "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") +- [ianj001 (@ianj001)](https://github.com/ianj001 "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [icovada (@icovada)](https://github.com/icovada "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.io") +- [Igor Shults (@ishults)](https://github.com/ishults "12 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [Ioan Loosley (@ioangogo)](https://github.com/ioangogo "11 total commits to the home-assistant organization, 11 commits to home-assistant.io") - [Issac Kelly (@issackelly)](https://github.com/issackelly "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Jaak Laineste (@jaakla)](https://github.com/jaakla "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Jacen (@jacen92)](https://github.com/jacen92 "2 total commits to the home-assistant organization, 2 commits to pi-gen") -- [Jack (@squeepip)](https://github.com/squeepip "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [jack (@jackmakesthings)](https://github.com/jackmakesthings "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Jack Fan (@JackWindows)](https://github.com/JackWindows "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [jack (@jackmakesthings)](https://github.com/jackmakesthings "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Jack (@jackjohnsonuk)](https://github.com/jackjohnsonuk "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [Jack Minardi (@jminardi)](https://github.com/jminardi "8 total commits to the home-assistant organization, 8 commits to home-assistant") - [Jacob Mansfield (@cyberjacob)](https://github.com/cyberjacob "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Jacob Minnis (@jminn)](https://github.com/jminn "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Jacob Siverskog (@jsiverskog)](https://github.com/jsiverskog "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [Jacob Tomlinson (@jacobtomlinson)](https://github.com/jacobtomlinson "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant") +- [Jacob Tomlinson (@jacobtomlinson)](https://github.com/jacobtomlinson "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Jaimyn Mayer (@jabelone)](https://github.com/jabelone "1 total commits to the home-assistant organization, 1 commit to hassbian-scripts") - [Jakub Bittner (@rexcze)](https://github.com/rexcze "2 total commits to the home-assistant organization, 2 commits to home-assistant-polymer") - [James Cole (@jamespcole)](https://github.com/jamespcole "94 total commits to the home-assistant organization, 93 commits to home-assistant, 1 commit to home-assistant-js") -- [James Marsh (@doctorjames)](https://github.com/doctorjames "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [James Ruan (@jamesruan)](https://github.com/jamesruan "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Jamie van Dyke (@fearoffish)](https://github.com/fearoffish "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS") -- [JammyDodger231 (@JammyDodger231)](https://github.com/JammyDodger231 "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") +- [JammyDodger231 (@JammyDodger231)](https://github.com/JammyDodger231 "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [Jan Almeroth (@jalmeroth)](https://github.com/jalmeroth "6 total commits to the home-assistant organization, 5 commits to home-assistant, 1 commit to home-assistant-polymer") - [Jan Harkes (@jaharkes)](https://github.com/jaharkes "110 total commits to the home-assistant organization, 100 commits to home-assistant, 10 commits to netdisco") -- [Jan Losinski (@janLo)](https://github.com/janLo "21 total commits to the home-assistant organization, 16 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Jan Pobořil (@iBobik)](https://github.com/iBobik "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Jan Willhaus (@janwh)](https://github.com/janwh "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Jan Losinski (@janLo)](https://github.com/janLo "21 total commits to the home-assistant organization, 16 commits to home-assistant, 5 commits to home-assistant.io") +- [Jan Pobořil (@iBobik)](https://github.com/iBobik "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Jan Willhaus (@janw)](https://github.com/janw "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Janne Grunau (@jannau)](https://github.com/jannau "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Jared Beckham (@jtbeckha)](https://github.com/jtbeckha "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Jared J\. (@jjensn)](https://github.com/jjensn "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Jason Carter (@JasonCarter80)](https://github.com/JasonCarter80 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Jason Carter (@JasonCarter80)](https://github.com/JasonCarter80 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") - [Jason Hite (@jasonmhite)](https://github.com/jasonmhite "6 total commits to the home-assistant organization, 6 commits to appdaemon") -- [Jason Hu (@awarecan)](https://github.com/awarecan "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to developers.home-assistant") -- [Javier Gonel (@graffic)](https://github.com/graffic "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Javier González Calleja (@gonzalezcalleja)](https://github.com/gonzalezcalleja "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Jay Stevens (@Jay2645)](https://github.com/Jay2645 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Jason Hu (@awarecan)](https://github.com/awarecan "92 total commits to the home-assistant organization, 62 commits to home-assistant, 12 commits to home-assistant-polymer, 11 commits to home-assistant.io, 6 commits to developers.home-assistant, 1 commit to home-assistant-js-websocket") +- [Jason Hunter (@hunterjm)](https://github.com/hunterjm "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Jay Stevens (@Jay2645)](https://github.com/Jay2645 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [JAYMAN-ATX (@JAYMAN-ATX)](https://github.com/JAYMAN-ATX "2 total commits to the home-assistant organization, 2 commits to homebridge-homeassistant") -- [JC Connell (@jcconnell)](https://github.com/jcconnell "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant") -- [Jean Regisser (@jeanregisser)](https://github.com/jeanregisser "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [JC Connell (@jcconnell)](https://github.com/jcconnell "12 total commits to the home-assistant organization, 7 commits to home-assistant.io, 5 commits to home-assistant") - [Jean\-Michel Julien (@KurdyMalloy)](https://github.com/KurdyMalloy "1 total commits to the home-assistant organization, 1 commit to libcoap") -- [Jean\-Philippe Bouillot (@Jypy)](https://github.com/Jypy "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Jeff McGehee (@jlmcgehee21)](https://github.com/jlmcgehee21 "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [Jeepers Creepers (@jjensn)](https://github.com/jjensn "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Jeff Schroeder (@SEJeff)](https://github.com/SEJeff "17 total commits to the home-assistant organization, 17 commits to home-assistant") -- [Jeff Wilson (@jawilson)](https://github.com/jawilson "24 total commits to the home-assistant organization, 19 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Jens (@jhoepken)](https://github.com/jhoepken "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Jens Østergaard Nielsen (@dingusdk)](https://github.com/dingusdk "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant") -- [Jerad Meisner (@jeradM)](https://github.com/jeradM "7 total commits to the home-assistant organization, 7 commits to home-assistant") -- [Jeremiah Wuenschel (@jer)](https://github.com/jer "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Jeremy Williams (@jwillaz)](https://github.com/jwillaz "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [jeremysv (@jeremysv)](https://github.com/jeremysv "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Jeroen ter Heerdt (@jeroenterheerdt)](https://github.com/jeroenterheerdt "36 total commits to the home-assistant organization, 20 commits to home-assistant, 16 commits to home-assistant.github.io") -- [Jerold Albertson (@jeroldalbertson-wf)](https://github.com/jeroldalbertson-wf "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Jerry Workman (@JerryWorkman)](https://github.com/JerryWorkman "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") +- [Jeff Wilson (@jawilson)](https://github.com/jawilson "25 total commits to the home-assistant organization, 19 commits to home-assistant, 6 commits to home-assistant.io") +- [Jens (@jhoepken)](https://github.com/jhoepken "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Jens Østergaard Nielsen (@dingusdk)](https://github.com/dingusdk "8 total commits to the home-assistant organization, 4 commits to home-assistant.io, 4 commits to home-assistant") +- [Jerad Meisner (@jeradM)](https://github.com/jeradM "52 total commits to the home-assistant organization, 30 commits to home-assistant-polymer, 11 commits to home-assistant.io, 11 commits to home-assistant") +- [Jeremiah Wuenschel (@jer)](https://github.com/jer "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Jeremy Williams (@jwillaz)](https://github.com/jwillaz "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [jeremysv (@jeremysv)](https://github.com/jeremysv "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Jeroen ter Heerdt (@jeroenterheerdt)](https://github.com/jeroenterheerdt "37 total commits to the home-assistant organization, 20 commits to home-assistant, 17 commits to home-assistant.io") +- [Jerold Albertson (@jeroldalbertson-wf)](https://github.com/jeroldalbertson-wf "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Jerry Workman (@JerryWorkman)](https://github.com/JerryWorkman "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") - [Jesse Hills (@jesserockz)](https://github.com/jesserockz "9 total commits to the home-assistant organization, 9 commits to home-assistant") - [Jesse Newland (@jnewland)](https://github.com/jnewland "16 total commits to the home-assistant organization, 13 commits to home-assistant, 3 commits to hubot-home-assistant") -- [JesseWebDotCom (@JesseWebDotCom)](https://github.com/JesseWebDotCom "16 total commits to the home-assistant organization, 8 commits to home-assistant, 8 commits to home-assistant.github.io") +- [JesseWebDotCom (@JesseWebDotCom)](https://github.com/JesseWebDotCom "16 total commits to the home-assistant organization, 8 commits to home-assistant.io, 8 commits to home-assistant") - [jgrieger1 (@jgrieger1)](https://github.com/jgrieger1 "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [jiafengwang (@jiafengwang)](https://github.com/jiafengwang "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [jimbob1001 (@jimbob1001)](https://github.com/jimbob1001 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [jimbob1001 (@jimbob1001)](https://github.com/jimbob1001 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Joakim Nohlgård (@gebart)](https://github.com/gebart "2 total commits to the home-assistant organization, 2 commits to libcoap") -- [Joakim Sørensen (@ludeeus)](https://github.com/ludeeus "110 total commits to the home-assistant organization, 92 commits to hassbian-scripts, 18 commits to home-assistant.github.io") -- [jodur (@jodur)](https://github.com/jodur "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Joe Lu (@snjoetw)](https://github.com/snjoetw "24 total commits to the home-assistant organization, 18 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to appdaemon") -- [Joe McMonagle (@joemcmonagle)](https://github.com/joemcmonagle "13 total commits to the home-assistant organization, 13 commits to home-assistant.github.io") +- [Joakim Sørensen (@ludeeus)](https://github.com/ludeeus "123 total commits to the home-assistant organization, 98 commits to hassbian-scripts, 22 commits to home-assistant.io, 3 commits to home-assistant") +- [jodur (@jodur)](https://github.com/jodur "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Joe Lu (@snjoetw)](https://github.com/snjoetw "25 total commits to the home-assistant organization, 19 commits to home-assistant, 5 commits to home-assistant.io, 1 commit to appdaemon") +- [Joe McMonagle (@joemcmonagle)](https://github.com/joemcmonagle "13 total commits to the home-assistant organization, 13 commits to home-assistant.io") - [joe248 (@joe248)](https://github.com/joe248 "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Joeboyc2 (@Joeboyc2)](https://github.com/Joeboyc2 "15 total commits to the home-assistant organization, 15 commits to home-assistant.github.io") -- [Johan Bloemberg (@aequitas)](https://github.com/aequitas "44 total commits to the home-assistant organization, 35 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to netdisco") +- [Joeboyc2 (@Joeboyc2)](https://github.com/Joeboyc2 "15 total commits to the home-assistant organization, 15 commits to home-assistant.io") +- [Johan Bloemberg (@aequitas)](https://github.com/aequitas "45 total commits to the home-assistant organization, 36 commits to home-assistant, 8 commits to home-assistant.io, 1 commit to netdisco") - [Johan Haals (@jhaals)](https://github.com/jhaals "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [Johan van der Kuijl (@Rubyan)](https://github.com/Rubyan "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to appdaemon") -- [Johann Kellerman (@kellerza)](https://github.com/kellerza "181 total commits to the home-assistant organization, 148 commits to home-assistant, 33 commits to home-assistant.github.io") -- [Johannes K\. (@roadrash2108)](https://github.com/roadrash2108 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [John (@J-C-B)](https://github.com/J-C-B "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [John Arild Berentsen (@turbokongen)](https://github.com/turbokongen "204 total commits to the home-assistant organization, 151 commits to home-assistant, 37 commits to home-assistant.github.io, 16 commits to home-assistant-polymer") +- [Johan van der Kuijl (@Rubyan)](https://github.com/Rubyan "4 total commits to the home-assistant organization, 3 commits to home-assistant.io, 1 commit to appdaemon") +- [Johann Kellerman (@kellerza)](https://github.com/kellerza "181 total commits to the home-assistant organization, 148 commits to home-assistant, 33 commits to home-assistant.io") +- [Johannes K\. (@roadrash2108)](https://github.com/roadrash2108 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [John (@J-C-B)](https://github.com/J-C-B "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [John Arild Berentsen (@turbokongen)](https://github.com/turbokongen "218 total commits to the home-assistant organization, 156 commits to home-assistant, 40 commits to home-assistant.io, 22 commits to home-assistant-polymer") - [John Lindley (@jwl17330536)](https://github.com/jwl17330536 "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [John Mihalic (@mezz64)](https://github.com/mezz64 "50 total commits to the home-assistant organization, 36 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to hadashboard, 1 commit to home-assistant-polymer") +- [John Mihalic (@mezz64)](https://github.com/mezz64 "51 total commits to the home-assistant organization, 37 commits to home-assistant, 12 commits to home-assistant.io, 1 commit to hadashboard, 1 commit to home-assistant-polymer") - [Johnny Chadda (@joch)](https://github.com/joch "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Jon (@JonMurphy)](https://github.com/JonMurphy "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Jon (@JonMurphy)](https://github.com/JonMurphy "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Jon Caruana (@joncar)](https://github.com/joncar "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Jon Griffith (@arretx)](https://github.com/arretx "12 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 1 commit to appdaemon") -- [Jon Maddox (@maddox)](https://github.com/maddox "107 total commits to the home-assistant organization, 82 commits to home-assistant, 16 commits to homebridge-homeassistant, 9 commits to home-assistant.github.io") +- [Jon Griffith (@arretx)](https://github.com/arretx "14 total commits to the home-assistant organization, 13 commits to home-assistant.io, 1 commit to appdaemon") +- [Jon Maddox (@maddox)](https://github.com/maddox "107 total commits to the home-assistant organization, 82 commits to home-assistant, 16 commits to homebridge-homeassistant, 9 commits to home-assistant.io") +- [Jonas Karlsson (@endor-force)](https://github.com/endor-force "11 total commits to the home-assistant organization, 5 commits to hassio-addons, 5 commits to home-assistant.io, 1 commit to hassio-build") - [Jonas Pedersen (@JonasPed)](https://github.com/JonasPed "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [Jonatan Castro (@jcastro)](https://github.com/jcastro "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [Jonathan Baginski (@patchedsoul)](https://github.com/patchedsoul "115 total commits to the home-assistant organization, 87 commits to fabric-home-assistant, 28 commits to home-assistant.github.io") -- [Jonathan Weinberg (@jonathanweinberg)](https://github.com/jonathanweinberg "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Jonatan Castro (@jcastro)](https://github.com/jcastro "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [Jonathan Weinberg (@jonathanweinberg)](https://github.com/jonathanweinberg "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [joopert (@joopert)](https://github.com/joopert "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Jordi (@hokus15)](https://github.com/hokus15 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Jordi (@hokus15)](https://github.com/hokus15 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Jordy (@jbarrancos)](https://github.com/jbarrancos "40 total commits to the home-assistant organization, 40 commits to home-assistant") -- [Jose Juan Montes (@jjmontesl)](https://github.com/jjmontesl "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Jorim Tielemans (@tjorim)](https://github.com/tjorim "31 total commits to the home-assistant organization, 31 commits to home-assistant.io") +- [Jose Juan Montes (@jjmontesl)](https://github.com/jjmontesl "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.io") - [Joseph Carter (@iKarith)](https://github.com/iKarith "9 total commits to the home-assistant organization, 9 commits to pi-gen") - [Josh Anderson (@andersonshatch)](https://github.com/andersonshatch "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to homebridge-homeassistant") -- [Josh Nichols (@technicalpickles)](https://github.com/technicalpickles "28 total commits to the home-assistant organization, 15 commits to home-assistant, 13 commits to home-assistant.github.io") -- [Josh Wright (@JshWright)](https://github.com/JshWright "28 total commits to the home-assistant organization, 20 commits to home-assistant, 8 commits to home-assistant.github.io") +- [Josh Nichols (@technicalpickles)](https://github.com/technicalpickles "28 total commits to the home-assistant organization, 15 commits to home-assistant, 13 commits to home-assistant.io") +- [Josh Wright (@JshWright)](https://github.com/JshWright "28 total commits to the home-assistant organization, 20 commits to home-assistant, 8 commits to home-assistant.io") - [jpcomtois (@jpcomtois)](https://github.com/jpcomtois "1 total commits to the home-assistant organization, 1 commit to libcoap") -- [JudgeDredd (@JudgeDreddKLC)](https://github.com/JudgeDreddKLC "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io") -- [Juggels (@Juggels)](https://github.com/Juggels "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.github.io") +- [JudgeDredd (@JudgeDreddKLC)](https://github.com/JudgeDreddKLC "10 total commits to the home-assistant organization, 10 commits to home-assistant.io") +- [Juggels (@Juggels)](https://github.com/Juggels "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.io") - [Julian Kaffke (@jaykay)](https://github.com/jaykay "1 total commits to the home-assistant organization, 1 commit to hassio-addons") -- [Julian Kahnert (@JulianKahnert)](https://github.com/JulianKahnert "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Julius Mittenzwei (@Julius2342)](https://github.com/Julius2342 "31 total commits to the home-assistant organization, 24 commits to home-assistant, 7 commits to home-assistant.github.io") -- [jumpkick (@jumpkick)](https://github.com/jumpkick "15 total commits to the home-assistant organization, 12 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Justin Dray (@justin8)](https://github.com/justin8 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") +- [Julian Kahnert (@JulianKahnert)](https://github.com/JulianKahnert "6 total commits to the home-assistant organization, 3 commits to home-assistant.io, 3 commits to home-assistant") +- [Julius Mittenzwei (@Julius2342)](https://github.com/Julius2342 "31 total commits to the home-assistant organization, 24 commits to home-assistant, 7 commits to home-assistant.io") +- [jumpkick (@jumpkick)](https://github.com/jumpkick "15 total commits to the home-assistant organization, 12 commits to home-assistant, 3 commits to home-assistant.io") +- [Junian Triajianto (@junian)](https://github.com/junian "1 total commits to the home-assistant organization, 1 commit to pi-gen") +- [Justin Dray (@justin8)](https://github.com/justin8 "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") - [Justin Hayes (@GussyH)](https://github.com/GussyH "8 total commits to the home-assistant organization, 7 commits to hadashboard, 1 commit to appdaemon") - [Justin Weberg (@justweb1)](https://github.com/justweb1 "26 total commits to the home-assistant organization, 13 commits to home-assistant-polymer, 7 commits to hassbot, 4 commits to home-assistant, 1 commit to home-assistant-js, 1 commit to hassio") - [Justyn Shull (@justyns)](https://github.com/justyns "5 total commits to the home-assistant organization, 5 commits to home-assistant") - [Karen Goode (@kfgoode)](https://github.com/kfgoode "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [karlkar (@karlkar)](https://github.com/karlkar "15 total commits to the home-assistant organization, 10 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Keaton Taylor (@keatontaylor)](https://github.com/keatontaylor "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [karlkar (@karlkar)](https://github.com/karlkar "15 total commits to the home-assistant organization, 10 commits to home-assistant, 5 commits to home-assistant.io") +- [kbickar (@kbickar)](https://github.com/kbickar "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Keaton Taylor (@keatontaylor)](https://github.com/keatontaylor "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") - [Ken Bannister (@kb2ma)](https://github.com/kb2ma "1 total commits to the home-assistant organization, 1 commit to libcoap") -- [Ken Davidson (@kwdavidson)](https://github.com/kwdavidson "13 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 2 commits to appdaemon") +- [Ken Davidson (@kwdavidson)](https://github.com/kwdavidson "14 total commits to the home-assistant organization, 12 commits to home-assistant.io, 2 commits to appdaemon") - [kennedyshead (@kennedyshead)](https://github.com/kennedyshead "10 total commits to the home-assistant organization, 10 commits to home-assistant") -- [Kevin Fronczak (@fronzbot)](https://github.com/fronzbot "19 total commits to the home-assistant organization, 11 commits to home-assistant, 8 commits to home-assistant.github.io") -- [Kevin Gisi (@gisikw)](https://github.com/gisikw "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Kevin Gottsman (@gottsman)](https://github.com/gottsman "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") -- [Kevin Siml (@appzer)](https://github.com/appzer "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Keyasha Brothern (@KMBrothern)](https://github.com/KMBrothern "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Kevin Fronczak (@fronzbot)](https://github.com/fronzbot "19 total commits to the home-assistant organization, 11 commits to home-assistant, 8 commits to home-assistant.io") +- [Kevin Gisi (@gisikw)](https://github.com/gisikw "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Kevin Gottsman (@gottsman)](https://github.com/gottsman "8 total commits to the home-assistant organization, 8 commits to home-assistant.io") +- [Kevin Siml (@appzer)](https://github.com/appzer "4 total commits to the home-assistant organization, 4 commits to home-assistant") +- [Keyasha Brothern (@KMBrothern)](https://github.com/KMBrothern "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [kfcook (@kfcook)](https://github.com/kfcook "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [kireyeu (@kireyeu)](https://github.com/kireyeu "4 total commits to the home-assistant organization, 4 commits to home-assistant-notebooks") -- [Klaas Hoekema (@KlaasH)](https://github.com/KlaasH "12 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 5 commits to home-assistant, 2 commits to home-assistant-polymer") +- [Klaas Hoekema (@KlaasH)](https://github.com/KlaasH "12 total commits to the home-assistant organization, 5 commits to home-assistant.io, 5 commits to home-assistant, 2 commits to home-assistant-polymer") - [Klaus (@k-laus)](https://github.com/k-laus "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [koolsb (@koolsb)](https://github.com/koolsb "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Kory Prince (@korylprince)](https://github.com/korylprince "4 total commits to the home-assistant organization, 4 commits to home-assistant-polymer") -- [Krasimir Chariyski (@Chariyski)](https://github.com/Chariyski "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Krasimir Zhelev (@zhelev)](https://github.com/zhelev "1 total commits to the home-assistant organization, 1 commit to netdisco") +- [Krasimir Chariyski (@Chariyski)](https://github.com/Chariyski "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Krasimir Zhelev (@zhelev)](https://github.com/zhelev "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to netdisco") - [kroimon (@kroimon)](https://github.com/kroimon "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Kyle Hendricks (@kylehendricks)](https://github.com/kylehendricks "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [lamiskin (@lamiskin)](https://github.com/lamiskin "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [lamiskin (@lamiskin)](https://github.com/lamiskin "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Lars Englund (@larsenglund)](https://github.com/larsenglund "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [lee-js (@lee-js)](https://github.com/lee-js "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [lee-js (@lee-js)](https://github.com/lee-js "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Lennart Bernhardt (@LennyPenny)](https://github.com/LennyPenny "1 total commits to the home-assistant organization, 1 commit to hassio-build") - [Leon99 (@Leon99)](https://github.com/Leon99 "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [Leonardo Saraiva (@vyper)](https://github.com/vyper "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Lev Aronsky (@aronsky)](https://github.com/aronsky "14 total commits to the home-assistant organization, 11 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Lewis Juggins (@lwis)](https://github.com/lwis "66 total commits to the home-assistant organization, 53 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [lichtteil (@lichtteil)](https://github.com/lichtteil "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Lindsay Ward (@lindsaymarkward)](https://github.com/lindsaymarkward "18 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 5 commits to home-assistant") -- [linuxlurak (@linuxlurak)](https://github.com/linuxlurak "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to hadashboard") +- [Leonardo Saraiva (@vyper)](https://github.com/vyper "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Lev Aronsky (@aronsky)](https://github.com/aronsky "15 total commits to the home-assistant organization, 12 commits to home-assistant, 3 commits to home-assistant.io") +- [Lewis Juggins (@lwis)](https://github.com/lwis "66 total commits to the home-assistant organization, 53 commits to home-assistant, 12 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [lichtteil (@lichtteil)](https://github.com/lichtteil "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Lindsay Ward (@lindsaymarkward)](https://github.com/lindsaymarkward "18 total commits to the home-assistant organization, 13 commits to home-assistant.io, 5 commits to home-assistant") +- [linuxlurak (@linuxlurak)](https://github.com/linuxlurak "5 total commits to the home-assistant organization, 3 commits to home-assistant.io, 2 commits to hadashboard") - [linvinus (@linvinus)](https://github.com/linvinus "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [lrmate (@lrmate)](https://github.com/lrmate "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Luar Roji (@cyberplant)](https://github.com/cyberplant "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Luar Roji (@cyberplant)](https://github.com/cyberplant "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Luc Touraille (@stilllman)](https://github.com/stilllman "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Luca Angemi (@luca-angemi)](https://github.com/luca-angemi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [LucaSoldi (@LucaSoldi)](https://github.com/LucaSoldi "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [Lucien Guimier (@guimier)](https://github.com/guimier "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Ludovic (@ldvc)](https://github.com/ldvc "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Ludovico de Nittis (@RyuzakiKK)](https://github.com/RyuzakiKK "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Lukas (@lukas-hetzenecker)](https://github.com/lukas-hetzenecker "14 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Lukas Barth (@tinloaf)](https://github.com/tinloaf "37 total commits to the home-assistant organization, 23 commits to home-assistant, 12 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") -- [Lukas Ecklmayr (@outrun0506)](https://github.com/outrun0506 "6 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Ludovico de Nittis (@RyuzakiKK)](https://github.com/RyuzakiKK "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Lukas (@lukas-hetzenecker)](https://github.com/lukas-hetzenecker "14 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.io") +- [Lukas Barth (@tinloaf)](https://github.com/tinloaf "37 total commits to the home-assistant organization, 23 commits to home-assistant, 12 commits to home-assistant.io, 2 commits to home-assistant-polymer") - [Lukas Porubcan (@Luc3as)](https://github.com/Luc3as "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Luke Armstrong (@lukearmstrong)](https://github.com/lukearmstrong "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [LvivEchoes (@LvivEchoes)](https://github.com/LvivEchoes "8 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [Luke Armstrong (@lukearmstrong)](https://github.com/lukearmstrong "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [LvivEchoes (@LvivEchoes)](https://github.com/LvivEchoes "8 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io, 1 commit to home-assistant-polymer") - [Maarten Groeneweg (@lazytesting)](https://github.com/lazytesting "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Maciej Bieniek (@bieniu)](https://github.com/bieniu "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to home-assistant-polymer") - [Maciej Sokołowski (@matemaciek)](https://github.com/matemaciek "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to hassio-build") - [Maciej Wasilak (@mwasilak)](https://github.com/mwasilak "1 total commits to the home-assistant organization, 1 commit to libcoap") -- [Magnus Ihse Bursie (@magicus)](https://github.com/magicus "16 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to netdisco, 3 commits to home-assistant.github.io") +- [Magnus Ihse Bursie (@magicus)](https://github.com/magicus "16 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to netdisco, 3 commits to home-assistant.io") - [Magnus Lyckå (@magnus-lycka)](https://github.com/magnus-lycka "1 total commits to the home-assistant organization, 1 commit to netdisco") - [MagnusKnutas (@MagnusKnutas)](https://github.com/MagnusKnutas "29 total commits to the home-assistant organization, 29 commits to home-assistant") -- [Mahasri Kalavala (@skalavala)](https://github.com/skalavala "28 total commits to the home-assistant organization, 28 commits to home-assistant.github.io") -- [Malte Franken (@exxamalte)](https://github.com/exxamalte "10 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to developers.home-assistant, 1 commit to home-assistant-polymer") -- [Marc Egli (@frog32)](https://github.com/frog32 "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Marc Forth (@mf-social)](https://github.com/mf-social "27 total commits to the home-assistant organization, 26 commits to home-assistant.github.io, 1 commit to fabric-home-assistant") +- [Mal Curtis (@snikch)](https://github.com/snikch "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Malte Franken (@exxamalte)](https://github.com/exxamalte "11 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.io, 1 commit to developers.home-assistant, 1 commit to home-assistant-polymer") +- [Marc Egli (@frog32)](https://github.com/frog32 "12 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.io, 1 commit to hassio-addons-example") +- [Marc Forth (@mf-social)](https://github.com/mf-social "27 total commits to the home-assistant organization, 26 commits to home-assistant.io, 1 commit to fabric-home-assistant") - [Marc Khouri (@ubnt-marc-khouri)](https://github.com/ubnt-marc-khouri "4 total commits to the home-assistant organization, 2 commits to home-assistant-polymer, 1 commit to developers.home-assistant, 1 commit to hassio-build") - [Marc Pabst (@marcpabst)](https://github.com/marcpabst "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Marc Plano\-Lesay (@Kernald)](https://github.com/Kernald "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io") -- [Marcel030nl (@Marcel030nl)](https://github.com/Marcel030nl "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Marcelo Moreira de Mello (@tchellomello)](https://github.com/tchellomello "147 total commits to the home-assistant organization, 80 commits to home-assistant, 64 commits to home-assistant.github.io, 1 commit to home-assistant-assets, 1 commit to hassio-build, 1 commit to home-assistant-polymer") +- [Marc Plano\-Lesay (@Kernald)](https://github.com/Kernald "10 total commits to the home-assistant organization, 10 commits to home-assistant.io") +- [Marcel Hoppe (@hobbypunk90)](https://github.com/hobbypunk90 "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Marcel030nl (@Marcel030nl)](https://github.com/Marcel030nl "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Marcelo Moreira de Mello (@tchellomello)](https://github.com/tchellomello "159 total commits to the home-assistant organization, 89 commits to home-assistant, 67 commits to home-assistant.io, 1 commit to home-assistant-assets, 1 commit to hassio-build, 1 commit to home-assistant-polymer") - [Marcin Domański (@kabturek)](https://github.com/kabturek "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Marcin Jaworski (@yawor)](https://github.com/yawor "12 total commits to the home-assistant organization, 12 commits to appdaemon") - [Marco (@marconett)](https://github.com/marconett "3 total commits to the home-assistant organization, 3 commits to appdaemon") -- [Marco Orovecchia (@Oro)](https://github.com/Oro "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Marco Orovecchia (@Oro)](https://github.com/Oro "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.io") - [Marijn Giesen (@marijngiesen)](https://github.com/marijngiesen "5 total commits to the home-assistant organization, 5 commits to hadashboard") -- [Marius (@ciotlosm)](https://github.com/ciotlosm "15 total commits to the home-assistant organization, 9 commits to home-assistant-polymer, 6 commits to home-assistant") +- [Marius (@ciotlosm)](https://github.com/ciotlosm "39 total commits to the home-assistant organization, 14 commits to home-assistant-polymer, 12 commits to home-assistant.io, 8 commits to home-assistant, 3 commits to developers.home-assistant, 2 commits to ui-schema") +- [Mariusz Łuciów (@mariuszluciow)](https://github.com/mariuszluciow "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Mark Coombes (@marthoc)](https://github.com/marthoc "8 total commits to the home-assistant organization, 8 commits to home-assistant") - [Mark Grosen (@mgsb)](https://github.com/mgsb "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Mark Huson (@mehuman)](https://github.com/mehuman "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io") -- [Mark Perdue (@markperdue)](https://github.com/markperdue "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Mark Huson (@mehuman)](https://github.com/mehuman "11 total commits to the home-assistant organization, 11 commits to home-assistant.io") +- [Mark Perdue (@markperdue)](https://github.com/markperdue "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [mark9white (@mark9white)](https://github.com/mark9white "1 total commits to the home-assistant organization, 1 commit to hassio") - [markferry (@markferry)](https://github.com/markferry "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Markus (@iMarkus)](https://github.com/iMarkus "1 total commits to the home-assistant organization, 1 commit to hassio") - [Markus Becker (@markushx)](https://github.com/markushx "6 total commits to the home-assistant organization, 6 commits to libcoap") - [Markus Peter (@bimbar)](https://github.com/bimbar "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Markus Stenberg (@fingon)](https://github.com/fingon "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Martin Berg (@mbrrg)](https://github.com/mbrrg "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Martin Eberhardt (@DarkFox)](https://github.com/DarkFox "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "160 total commits to the home-assistant organization, 130 commits to home-assistant, 30 commits to home-assistant.github.io") -- [Martin Rowan (@shortbloke)](https://github.com/shortbloke "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Martin Weinelt (@mweinelt)](https://github.com/mweinelt "17 total commits to the home-assistant organization, 9 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [Martokk (@martokk)](https://github.com/martokk "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Martin Berg (@mbrrg)](https://github.com/mbrrg "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") +- [Martin Eberhardt (@DarkFox)](https://github.com/DarkFox "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "179 total commits to the home-assistant organization, 144 commits to home-assistant, 30 commits to home-assistant.io, 5 commits to developers.home-assistant") +- [Martin Rowan (@shortbloke)](https://github.com/shortbloke "6 total commits to the home-assistant organization, 3 commits to home-assistant.io, 3 commits to home-assistant") +- [Martin Weinelt (@mweinelt)](https://github.com/mweinelt "17 total commits to the home-assistant organization, 9 commits to home-assistant, 7 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [Martokk (@martokk)](https://github.com/martokk "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Mathew Peterson (@mathewpeterson)](https://github.com/mathewpeterson "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Matt N\. (@mnoorenberghe)](https://github.com/mnoorenberghe "54 total commits to the home-assistant organization, 25 commits to home-assistant-iOS, 17 commits to home-assistant.github.io, 9 commits to home-assistant, 2 commits to home-assistant-polymer, 1 commit to homebridge-homeassistant") +- [Matt N\. (@mnoorenberghe)](https://github.com/mnoorenberghe "54 total commits to the home-assistant organization, 25 commits to home-assistant-iOS, 17 commits to home-assistant.io, 9 commits to home-assistant, 2 commits to home-assistant-polymer, 1 commit to homebridge-homeassistant") - [Matt Rogers (@rogersmj)](https://github.com/rogersmj "20 total commits to the home-assistant organization, 20 commits to hadashboard") -- [Matt Schmitt (@schmittx)](https://github.com/schmittx "83 total commits to the home-assistant organization, 52 commits to homebridge-homeassistant, 17 commits to home-assistant, 11 commits to home-assistant.github.io, 3 commits to home-assistant-polymer") -- [Matt White (@mw-white)](https://github.com/mw-white "10 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 5 commits to home-assistant") -- [Matteo Lampugnani (@t30)](https://github.com/t30 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [Matthew Bowen (@mgbowen)](https://github.com/mgbowen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Matthew Garrett (@mjg59)](https://github.com/mjg59 "25 total commits to the home-assistant organization, 18 commits to home-assistant, 7 commits to home-assistant.github.io") -- [Matthew Rollings (@stealthcopter)](https://github.com/stealthcopter "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Matthew Treinish (@mtreinish)](https://github.com/mtreinish "21 total commits to the home-assistant organization, 14 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Matt Schmitt (@schmittx)](https://github.com/schmittx "88 total commits to the home-assistant organization, 52 commits to homebridge-homeassistant, 19 commits to home-assistant, 12 commits to home-assistant.io, 3 commits to home-assistant-polymer, 2 commits to developers.home-assistant") +- [Matt Snyder (@oblogic7)](https://github.com/oblogic7 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") +- [Matt White (@matt-FFFFFF)](https://github.com/matt-FFFFFF "1 total commits to the home-assistant organization, 1 commit to hassio-addons") +- [Matt White (@mw-white)](https://github.com/mw-white "10 total commits to the home-assistant organization, 5 commits to home-assistant.io, 5 commits to home-assistant") +- [Matteo Lampugnani (@t30)](https://github.com/t30 "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [Matthew Donoughe (@mdonoughe)](https://github.com/mdonoughe "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Matthew Garrett (@mjg59)](https://github.com/mjg59 "30 total commits to the home-assistant organization, 22 commits to home-assistant, 7 commits to home-assistant.io, 1 commit to netdisco") +- [Matthew Rollings (@stealthcopter)](https://github.com/stealthcopter "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Matthew Treinish (@mtreinish)](https://github.com/mtreinish "24 total commits to the home-assistant organization, 15 commits to home-assistant, 9 commits to home-assistant.io") - [Matthias Dötsch (@brainexe)](https://github.com/brainexe "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Matthias Urlichs (@smurfix)](https://github.com/smurfix "3 total commits to the home-assistant organization, 3 commits to appdaemon") -- [Mattias Welponer (@mxworm)](https://github.com/mxworm "10 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.github.io") -- [mattie47 (@mattie47)](https://github.com/mattie47 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Mattias Welponer (@mxworm)](https://github.com/mxworm "22 total commits to the home-assistant organization, 13 commits to home-assistant, 8 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [mattie47 (@mattie47)](https://github.com/mattie47 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Max Mudde (@makzdot)](https://github.com/makzdot "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") - [Max Prokhorov (@mcspr)](https://github.com/mcspr "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Max Rumpf (@Maxr1998)](https://github.com/Maxr1998 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [maxclaey (@maxclaey)](https://github.com/maxclaey "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Max Rumpf (@Maxr1998)](https://github.com/Maxr1998 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [maxclaey (@maxclaey)](https://github.com/maxclaey "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.io") - [maxlaverse (@maxlaverse)](https://github.com/maxlaverse "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [mboeru (@mboeru)](https://github.com/mboeru "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS") -- [mcfrojd (@mcfrojd)](https://github.com/mcfrojd "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Menno Blom (@b10m)](https://github.com/b10m "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to netdisco") -- [mertenats (@mertenats)](https://github.com/mertenats "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [mcfrojd (@mcfrojd)](https://github.com/mcfrojd "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Menno Blom (@b10m)](https://github.com/b10m "4 total commits to the home-assistant organization, 3 commits to home-assistant.io, 1 commit to netdisco") +- [mertenats (@mertenats)](https://github.com/mertenats "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [mgbowen (@mgbowen)](https://github.com/mgbowen "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Micha LaQua (@milaq)](https://github.com/milaq "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Michael (@hartmms)](https://github.com/hartmms "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Michael (@hartmms)](https://github.com/hartmms "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Michael Auchter (@auchter)](https://github.com/auchter "13 total commits to the home-assistant organization, 13 commits to home-assistant") -- [Michael Fester (@michaelfester)](https://github.com/michaelfester "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Michael Fester (@michaelfester)](https://github.com/michaelfester "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Michael Furtak (@mfurtak)](https://github.com/mfurtak "5 total commits to the home-assistant organization, 5 commits to issue-bot") - [Michael Gilbert (@Zyell)](https://github.com/Zyell "8 total commits to the home-assistant organization, 8 commits to home-assistant") - [Michael Kutý (@michaelkuty)](https://github.com/michaelkuty "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Michael Luggen (@l00mi)](https://github.com/l00mi "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Michael Requeny (@requenym)](https://github.com/requenym "14 total commits to the home-assistant organization, 14 commits to home-assistant.github.io") +- [Michael Luggen (@l00mi)](https://github.com/l00mi "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Michael Requeny (@requenym)](https://github.com/requenym "14 total commits to the home-assistant organization, 14 commits to home-assistant.io") - [Michael Shim (@shimeez)](https://github.com/shimeez "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant") -- [Michaël Arnauts (@michaelarnauts)](https://github.com/michaelarnauts "65 total commits to the home-assistant organization, 34 commits to home-assistant, 27 commits to home-assistant.github.io, 3 commits to home-assistant-polymer, 1 commit to netdisco") -- [Michel Settembrino (@Michel-Settembrino)](https://github.com/Michel-Settembrino "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [micw (@micw)](https://github.com/micw "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Michaël Arnauts (@michaelarnauts)](https://github.com/michaelarnauts "65 total commits to the home-assistant organization, 34 commits to home-assistant, 27 commits to home-assistant.io, 3 commits to home-assistant-polymer, 1 commit to netdisco") +- [Michel Settembrino (@Michel-Settembrino)](https://github.com/Michel-Settembrino "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [micw (@micw)](https://github.com/micw "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.io") +- [mihalski (@mihalski)](https://github.com/mihalski "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Mike (@mradziwo)](https://github.com/mradziwo "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [Mike Christianson (@MikeChristianson)](https://github.com/MikeChristianson "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [Mike Megally (@cmsimike)](https://github.com/cmsimike "14 total commits to the home-assistant organization, 9 commits to home-assistant, 5 commits to home-assistant.github.io") +- [Mike Megally (@cmsimike)](https://github.com/cmsimike "14 total commits to the home-assistant organization, 9 commits to home-assistant, 5 commits to home-assistant.io") - [Mike Nestor (@mnestor)](https://github.com/mnestor "6 total commits to the home-assistant organization, 5 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Mike O'Driscoll (@mikeodr)](https://github.com/mikeodr "8 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 3 commits to home-assistant") -- [Mikkel Høgh (@mikl)](https://github.com/mikl "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Milan V\. (@milanvo)](https://github.com/milanvo "18 total commits to the home-assistant organization, 10 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [miniconfig (@miniconfig)](https://github.com/miniconfig "27 total commits to the home-assistant organization, 20 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Mike O'Driscoll (@mikeodr)](https://github.com/mikeodr "8 total commits to the home-assistant organization, 5 commits to home-assistant.io, 3 commits to home-assistant") +- [Mikkel Høgh (@mikl)](https://github.com/mikl "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Milan V\. (@milanvo)](https://github.com/milanvo "18 total commits to the home-assistant organization, 10 commits to home-assistant, 7 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [miniconfig (@miniconfig)](https://github.com/miniconfig "27 total commits to the home-assistant organization, 20 commits to home-assistant, 7 commits to home-assistant.io") - [Minims (@Minims)](https://github.com/Minims "3 total commits to the home-assistant organization, 3 commits to homebridge-homeassistant") -- [Mister Wil (@MisterWil)](https://github.com/MisterWil "20 total commits to the home-assistant organization, 14 commits to home-assistant, 6 commits to home-assistant.github.io") -- [Mitesh Patel (@gurumitts)](https://github.com/gurumitts "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Mitko Masarliev (@masarliev)](https://github.com/masarliev "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io") -- [mjj4791 (@mjj4791)](https://github.com/mjj4791 "23 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 8 commits to home-assistant") +- [Mister Wil (@MisterWil)](https://github.com/MisterWil "20 total commits to the home-assistant organization, 14 commits to home-assistant, 6 commits to home-assistant.io") +- [Mitesh Patel (@gurumitts)](https://github.com/gurumitts "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.io") +- [Mitko Masarliev (@masarliev)](https://github.com/masarliev "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.io") +- [MizterB (@MizterB)](https://github.com/MizterB "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [mjj4791 (@mjj4791)](https://github.com/mjj4791 "23 total commits to the home-assistant organization, 15 commits to home-assistant.io, 8 commits to home-assistant") - [mmmmmtasty (@mmmmmtasty)](https://github.com/mmmmmtasty "8 total commits to the home-assistant organization, 8 commits to appdaemon") - [mojotaker (@mojotaker)](https://github.com/mojotaker "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") -- [Molodax (@Molodax)](https://github.com/Molodax "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") +- [Moksh Mridul (@mokshmridul)](https://github.com/mokshmridul "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Molodax (@Molodax)](https://github.com/Molodax "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [motir (@motir)](https://github.com/motir "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [mountainsandcode (@mountainsandcode)](https://github.com/mountainsandcode "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [mueslo (@mueslo)](https://github.com/mueslo "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [mukundv (@mukundv)](https://github.com/mukundv "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [mountainsandcode (@mountainsandcode)](https://github.com/mountainsandcode "9 total commits to the home-assistant organization, 6 commits to home-assistant.io, 3 commits to home-assistant") +- [mueslo (@mueslo)](https://github.com/mueslo "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [mukundv (@mukundv)](https://github.com/mukundv "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Mārtiņš Grunskis (@grunskis)](https://github.com/grunskis "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Nash Kaminski (@nkaminski)](https://github.com/nkaminski "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Nate Clark (@heythisisnate)](https://github.com/heythisisnate "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.io") - [Nathan Flynn (@eperdeme)](https://github.com/eperdeme "1 total commits to the home-assistant organization, 1 commit to hassio-addons") -- [Nathan Henrie (@n8henrie)](https://github.com/n8henrie "21 total commits to the home-assistant organization, 10 commits to home-assistant, 7 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant, 1 commit to appdaemon, 1 commit to home-assistant-polymer") -- [Neil Lathwood (@laf)](https://github.com/laf "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Nathan Henrie (@n8henrie)](https://github.com/n8henrie "22 total commits to the home-assistant organization, 10 commits to home-assistant, 8 commits to home-assistant.io, 2 commits to homebridge-homeassistant, 1 commit to appdaemon, 1 commit to home-assistant-polymer") +- [Nathan Knotts (@nknotts)](https://github.com/nknotts "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Neil Lathwood (@laf)](https://github.com/laf "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Nelis Willers (@NelisW)](https://github.com/NelisW "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant") -- [NeLLyMerC (@NeLLyMerC)](https://github.com/NeLLyMerC "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [neonbunny (@neonbunny)](https://github.com/neonbunny "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Nicholas Amadori (@namadori)](https://github.com/namadori "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Nicholas Griffin (@nicholasgriffintn)](https://github.com/nicholasgriffintn "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") -- [Nick Touran (@partofthething)](https://github.com/partofthething "38 total commits to the home-assistant organization, 25 commits to home-assistant, 13 commits to home-assistant.github.io") +- [NeLLyMerC (@NeLLyMerC)](https://github.com/NeLLyMerC "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Nicholas Amadori (@namadori)](https://github.com/namadori "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Nicholas Griffin (@nicholasgriffintn)](https://github.com/nicholasgriffintn "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") +- [Nick Touran (@partofthething)](https://github.com/partofthething "38 total commits to the home-assistant organization, 25 commits to home-assistant, 13 commits to home-assistant.io") - [Nick Whyte (@nickw444)](https://github.com/nickw444 "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Nicko van Someren (@nickovs)](https://github.com/nickovs "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Nicolas Graziano (@ngraziano)](https://github.com/ngraziano "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Nicolas Martignoni (@martignoni)](https://github.com/martignoni "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [nielstron (@nielstron)](https://github.com/nielstron "2 total commits to the home-assistant organization, 2 commits to netdisco") +- [Niels Mündler (@nielstron)](https://github.com/nielstron "21 total commits to the home-assistant organization, 16 commits to home-assistant, 3 commits to home-assistant.io, 2 commits to netdisco") - [Nigel Rook (@NigelRook)](https://github.com/NigelRook "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Niklas (@niklaswa)](https://github.com/niklaswa "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Niklas Wagner (@Skaronator)](https://github.com/Skaronator "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io") -- [Nolan Gilley (@nkgilley)](https://github.com/nkgilley "123 total commits to the home-assistant organization, 95 commits to home-assistant, 28 commits to home-assistant.github.io") -- [nordlead2005 (@nordlead2005)](https://github.com/nordlead2005 "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant") +- [Niklas (@niklaswa)](https://github.com/niklaswa "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Niklas Wagner (@Skaronator)](https://github.com/Skaronator "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") +- [Nolan Darilek (@ndarilek)](https://github.com/ndarilek "1 total commits to the home-assistant organization, 1 commit to hassio") +- [Nolan Gilley (@nkgilley)](https://github.com/nkgilley "123 total commits to the home-assistant organization, 95 commits to home-assistant, 28 commits to home-assistant.io") +- [nordlead2005 (@nordlead2005)](https://github.com/nordlead2005 "7 total commits to the home-assistant organization, 4 commits to home-assistant.io, 3 commits to home-assistant") - [NotoriousBDG (@notoriousbdg)](https://github.com/notoriousbdg "3 total commits to the home-assistant organization, 3 commits to hassio-addons") - [NovapaX (@NovapaX)](https://github.com/NovapaX "59 total commits to the home-assistant organization, 50 commits to home-assistant-polymer, 8 commits to home-assistant, 1 commit to home-assistant-assets") -- [ntalekt (@ntalekt)](https://github.com/ntalekt "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") +- [ntalekt (@ntalekt)](https://github.com/ntalekt "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [Nuno Sousa (@nunofgs)](https://github.com/nunofgs "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to homebridge-homeassistant") - [obgm (@obgm)](https://github.com/obgm "480 total commits to the home-assistant organization, 480 commits to libcoap") +- [Odianosen Ejale (@Odianosen25)](https://github.com/Odianosen25 "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [Ole\-Kenneth (@olekenneth)](https://github.com/olekenneth "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Oleksii Serdiuk (@leppa)](https://github.com/leppa "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Oliv3rDog (@Oliv3rDog)](https://github.com/Oliv3rDog "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Oliver (@scarface-4711)](https://github.com/scarface-4711 "28 total commits to the home-assistant organization, 18 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to netdisco") +- [Oleksii Serdiuk (@leppa)](https://github.com/leppa "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.io") +- [Oliv3rDog (@Oliv3rDog)](https://github.com/Oliv3rDog "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Oliver (@scarface-4711)](https://github.com/scarface-4711 "28 total commits to the home-assistant organization, 18 commits to home-assistant, 9 commits to home-assistant.io, 1 commit to netdisco") - [Oliver van Porten (@mcdeck)](https://github.com/mcdeck "10 total commits to the home-assistant organization, 10 commits to home-assistant") -- [Open Home Automation (@open-homeautomation)](https://github.com/open-homeautomation "41 total commits to the home-assistant organization, 29 commits to home-assistant, 12 commits to home-assistant.github.io") -- [Otto Winter (@OttoWinter)](https://github.com/OttoWinter "68 total commits to the home-assistant organization, 53 commits to home-assistant, 12 commits to home-assistant.github.io, 3 commits to home-assistant-polymer") +- [Oncleben31 (@oncleben31)](https://github.com/oncleben31 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Open Home Automation (@open-homeautomation)](https://github.com/open-homeautomation "41 total commits to the home-assistant organization, 29 commits to home-assistant, 12 commits to home-assistant.io") +- [Otto Winter (@OttoWinter)](https://github.com/OttoWinter "70 total commits to the home-assistant organization, 54 commits to home-assistant, 13 commits to home-assistant.io, 3 commits to home-assistant-polymer") - [oznu (@oznu)](https://github.com/oznu "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Parker Moore (@parkr)](https://github.com/parkr "60 total commits to the home-assistant organization, 60 commits to home-assistant.github.io") +- [Parker Moore (@parkr)](https://github.com/parkr "60 total commits to the home-assistant organization, 60 commits to home-assistant.io") - [pascal (@passie)](https://github.com/passie "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [Pascal Bach (@bachp)](https://github.com/bachp "10 total commits to the home-assistant organization, 9 commits to home-assistant, 1 commit to netdisco") -- [Pascal Vizeli (@pvizeli)](https://github.com/pvizeli "3313 total commits to the home-assistant organization, 1210 commits to hassio, 517 commits to hassos, 463 commits to home-assistant, 418 commits to hassio-build, 353 commits to hassio-addons, 318 commits to home-assistant.github.io, 16 commits to hassio-addons-example, 11 commits to hassio-cli, 4 commits to developers.home-assistant, 1 commit to netdisco, 1 commit to home-assistant-polymer, 1 commit to home-assistant-js-websocket") +- [Pascal Vizeli (@pvizeli)](https://github.com/pvizeli "3696 total commits to the home-assistant organization, 1303 commits to hassio, 675 commits to hassos, 475 commits to home-assistant, 465 commits to hassio-build, 369 commits to hassio-addons, 328 commits to home-assistant.io, 29 commits to hassio-homeassistant, 17 commits to hassio-addons-example, 13 commits to developers.home-assistant, 12 commits to hassio-cli, 7 commits to hassio-base, 1 commit to netdisco, 1 commit to home-assistant-polymer, 1 commit to home-assistant-js-websocket") - [Pat Thoyts (@patthoyts)](https://github.com/patthoyts "2 total commits to the home-assistant organization, 2 commits to netdisco") -- [Patrick Aikens (@duckpuppy)](https://github.com/duckpuppy "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Patrick Easters (@patrickeasters)](https://github.com/patrickeasters "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Patrik (@ggravlingen)](https://github.com/ggravlingen "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Patrick Aikens (@duckpuppy)](https://github.com/duckpuppy "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Patrick Easters (@patrickeasters)](https://github.com/patrickeasters "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [Paul Annekov (@PaulAnnekov)](https://github.com/PaulAnnekov "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [Paul Hendry (@pshendry)](https://github.com/pshendry "1 total commits to the home-assistant organization, 1 commit to warrant") -- [Paul Jimenez (@pjz)](https://github.com/pjz "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Paul Jimenez (@pjz)](https://github.com/pjz "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Paul Nicholls (@pauln)](https://github.com/pauln "2 total commits to the home-assistant organization, 2 commits to netdisco") - [Paul Sokolovsky (@pfalcon)](https://github.com/pfalcon "6 total commits to the home-assistant organization, 3 commits to netdisco, 3 commits to home-assistant") - [Pavel Ponomarev (@awsum)](https://github.com/awsum "2 total commits to the home-assistant organization, 2 commits to home-assistant-polymer") -- [PawelWMS (@PawelWMS)](https://github.com/PawelWMS "12 total commits to the home-assistant organization, 12 commits to libcoap") -- [Pedro Navarro (@pedronavf)](https://github.com/pedronavf "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Pedro Pombeiro (@PombeirP)](https://github.com/PombeirP "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Pawel Winogrodzki (@PawelWMS)](https://github.com/PawelWMS "12 total commits to the home-assistant organization, 12 commits to libcoap") +- [Pedro Navarro (@pedronavf)](https://github.com/pedronavf "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Pedro Pombeiro (@PombeirP)](https://github.com/PombeirP "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Per Osbäck (@perosb)](https://github.com/perosb "19 total commits to the home-assistant organization, 19 commits to home-assistant") -- [Per Sandström (@persandstrom)](https://github.com/persandstrom "124 total commits to the home-assistant organization, 98 commits to home-assistant, 14 commits to home-assistant.github.io, 12 commits to home-assistant-polymer") +- [Per Sandström (@persandstrom)](https://github.com/persandstrom "124 total commits to the home-assistant organization, 98 commits to home-assistant, 14 commits to home-assistant.io, 12 commits to home-assistant-polymer") - [Pete Peterson (@petey)](https://github.com/petey "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [PeteBa (@PeteBa)](https://github.com/PeteBa "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant-polymer") -- [Peter Epley (@epleypa)](https://github.com/epleypa "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") -- [Petr Vraník (@konikvranik)](https://github.com/konikvranik "11 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.github.io") +- [Peter Epley (@epleypa)](https://github.com/epleypa "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") +- [Peter Nijssen (@peternijssen)](https://github.com/peternijssen "7 total commits to the home-assistant organization, 4 commits to home-assistant.io, 3 commits to home-assistant") +- [Petr Vraník (@konikvranik)](https://github.com/konikvranik "11 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.io") - [pezinek (@pezinek)](https://github.com/pezinek "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Phil (@godloth)](https://github.com/godloth "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io") -- [Phil Cole (@filcole)](https://github.com/filcole "9 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 3 commits to home-assistant") +- [Phil (@godloth)](https://github.com/godloth "10 total commits to the home-assistant organization, 10 commits to home-assistant.io") +- [Phil Cole (@filcole)](https://github.com/filcole "9 total commits to the home-assistant organization, 6 commits to home-assistant.io, 3 commits to home-assistant") - [Phil Elson (@pelson)](https://github.com/pelson "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Phil Frost (@bitglue)](https://github.com/bitglue "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Phil Hawthorne (@philhawthorne)](https://github.com/philhawthorne "24 total commits to the home-assistant organization, 18 commits to home-assistant.github.io, 6 commits to home-assistant") -- [Phil Kates (@philk)](https://github.com/philk "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Philip Hofstetter (@pilif)](https://github.com/pilif "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") +- [Phil Hawthorne (@philhawthorne)](https://github.com/philhawthorne "24 total commits to the home-assistant organization, 18 commits to home-assistant.io, 6 commits to home-assistant") +- [Phil Kates (@philk)](https://github.com/philk "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.io") +- [Philip Hofstetter (@pilif)](https://github.com/pilif "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [Philip Howard (@Gadgetoid)](https://github.com/Gadgetoid "1 total commits to the home-assistant organization, 1 commit to pi-gen") - [Philip Kleimeyer (@philklei)](https://github.com/philklei "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Philip Lundrigan (@philipbl)](https://github.com/philipbl "65 total commits to the home-assistant organization, 56 commits to home-assistant, 9 commits to home-assistant.github.io") -- [Philip Rosenberg\-Watt (@PhilRW)](https://github.com/PhilRW "15 total commits to the home-assistant organization, 11 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Philipp Hellmich (@runningman84)](https://github.com/runningman84 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Philipp Schmitt (@pschmitt)](https://github.com/pschmitt "39 total commits to the home-assistant organization, 26 commits to home-assistant, 11 commits to home-assistant.github.io, 1 commit to hassio-build, 1 commit to appdaemon") -- [Phill Price (@phillprice)](https://github.com/phillprice "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io") -- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "33 total commits to the home-assistant organization, 20 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [PhyberApex (@PhyberApex)](https://github.com/PhyberApex "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Pierre Ståhl (@postlund)](https://github.com/postlund "50 total commits to the home-assistant organization, 33 commits to home-assistant, 11 commits to home-assistant.github.io, 4 commits to netdisco, 2 commits to home-assistant-polymer") +- [Philip Lundrigan (@philipbl)](https://github.com/philipbl "65 total commits to the home-assistant organization, 56 commits to home-assistant, 9 commits to home-assistant.io") +- [Philip Rosenberg\-Watt (@PhilRW)](https://github.com/PhilRW "19 total commits to the home-assistant organization, 12 commits to home-assistant, 7 commits to home-assistant.io") +- [Philipp Hellmich (@runningman84)](https://github.com/runningman84 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Philipp Schmitt (@pschmitt)](https://github.com/pschmitt "40 total commits to the home-assistant organization, 27 commits to home-assistant, 11 commits to home-assistant.io, 1 commit to hassio-build, 1 commit to appdaemon") +- [Phill Price (@phillprice)](https://github.com/phillprice "11 total commits to the home-assistant organization, 11 commits to home-assistant.io") +- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "34 total commits to the home-assistant organization, 21 commits to home-assistant, 12 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [PhyberApex (@PhyberApex)](https://github.com/PhyberApex "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Pierre Ståhl (@postlund)](https://github.com/postlund "50 total commits to the home-assistant organization, 33 commits to home-assistant, 11 commits to home-assistant.io, 4 commits to netdisco, 2 commits to home-assistant-polymer") - [pkonnekermetametrics (@pkonnekermetametrics)](https://github.com/pkonnekermetametrics "5 total commits to the home-assistant organization, 5 commits to warrant") -- [PuckStar (@PuckStar)](https://github.com/PuckStar "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [R Huish (@Genestealer)](https://github.com/Genestealer "23 total commits to the home-assistant organization, 23 commits to home-assistant.github.io") +- [PuckStar (@PuckStar)](https://github.com/PuckStar "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [quthla (@quthla)](https://github.com/quthla "13 total commits to the home-assistant organization, 5 commits to home-assistant-polymer, 4 commits to home-assistant-iOS, 4 commits to home-assistant") +- [R Huish (@Genestealer)](https://github.com/Genestealer "23 total commits to the home-assistant organization, 23 commits to home-assistant.io") +- [rafale77 (@rafale77)](https://github.com/rafale77 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Raiford (@raiford)](https://github.com/raiford "1 total commits to the home-assistant organization, 1 commit to hassio-addons") -- [rbflurry (@rbflurry)](https://github.com/rbflurry "16 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 3 commits to home-assistant") +- [rbflurry (@rbflurry)](https://github.com/rbflurry "17 total commits to the home-assistant organization, 14 commits to home-assistant.io, 3 commits to home-assistant") - [Reed Riley (@reedriley)](https://github.com/reedriley "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Rendili (@Rendili)](https://github.com/Rendili "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Rene Nulsch (@ReneNulschDE)](https://github.com/ReneNulschDE "21 total commits to the home-assistant organization, 14 commits to home-assistant, 7 commits to home-assistant.github.io") +- [Rene Nulsch (@ReneNulschDE)](https://github.com/ReneNulschDE "21 total commits to the home-assistant organization, 14 commits to home-assistant, 7 commits to home-assistant.io") - [Rene Tode (@ReneTode)](https://github.com/ReneTode "38 total commits to the home-assistant organization, 38 commits to appdaemon") - [Reza Moallemi (@moallemi)](https://github.com/moallemi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [rhooper (@rhooper)](https://github.com/rhooper "27 total commits to the home-assistant organization, 25 commits to home-assistant, 2 commits to hadashboard") - [Riccardo Canta (@commento)](https://github.com/commento "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Richard Arends (@Mosibi)](https://github.com/Mosibi "8 total commits to the home-assistant organization, 8 commits to home-assistant") -- [Richard Cox (@Khabi)](https://github.com/Khabi "15 total commits to the home-assistant organization, 9 commits to home-assistant, 6 commits to home-assistant.github.io") -- [Richard Leurs (@R1chardTM)](https://github.com/R1chardTM "13 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 6 commits to home-assistant, 1 commit to home-assistant-polymer") +- [Richard Cox (@Khabi)](https://github.com/Khabi "15 total commits to the home-assistant organization, 9 commits to home-assistant, 6 commits to home-assistant.io") - [Richard Lucas (@lucasweb78)](https://github.com/lucasweb78 "9 total commits to the home-assistant organization, 9 commits to home-assistant") - [Richard Niemand (@rniemand)](https://github.com/rniemand "1 total commits to the home-assistant organization, 1 commit to example-custom-config") - [Rick (@rcuddy)](https://github.com/rcuddy "1 total commits to the home-assistant organization, 1 commit to pi-gen") +- [Rick Rubino (@rrubin0)](https://github.com/rrubin0 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [rkabadi (@rkabadi)](https://github.com/rkabadi "17 total commits to the home-assistant organization, 17 commits to home-assistant") - [Rob Capellini (@capellini)](https://github.com/capellini "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Rob Cranfill (@RobCranfill)](https://github.com/RobCranfill "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Rob Slifka (@rslifka)](https://github.com/rslifka "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Robbie Trencheny (@robbiet480)](https://github.com/robbiet480 "1317 total commits to the home-assistant organization, 646 commits to home-assistant-iOS, 259 commits to home-assistant, 249 commits to home-assistant.github.io, 92 commits to homebridge-homeassistant, 15 commits to home-assistant-polymer, 9 commits to hubot-home-assistant, 8 commits to Analytics-Receiver, 6 commits to netdisco, 3 commits to home-assistant-js-websocket, 3 commits to home-assistant-js, 3 commits to scenegen, 3 commits to hassbot, 3 commits to hadashboard, 3 commits to appdaemon, 3 commits to organization, 2 commits to fabric-home-assistant, 2 commits to LabelBot, 2 commits to home-assistant-notebooks, 2 commits to lambda-home-assistant-github, 2 commits to micropython-home-assistant, 2 commits to home-assistant-assets") -- [Robert (@metbril)](https://github.com/metbril "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Rob Cranfill (@RobCranfill)](https://github.com/RobCranfill "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Rob Slifka (@rslifka)](https://github.com/rslifka "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Robbie Trencheny (@robbiet480)](https://github.com/robbiet480 "1411 total commits to the home-assistant organization, 735 commits to home-assistant-iOS, 259 commits to home-assistant, 249 commits to home-assistant.io, 92 commits to homebridge-homeassistant, 15 commits to home-assistant-polymer, 14 commits to hubot-home-assistant, 8 commits to Analytics-Receiver, 6 commits to netdisco, 3 commits to home-assistant-js, 3 commits to scenegen, 3 commits to appdaemon, 3 commits to hassbot, 3 commits to organization, 3 commits to hadashboard, 3 commits to home-assistant-js-websocket, 2 commits to LabelBot, 2 commits to lambda-home-assistant-github, 2 commits to fabric-home-assistant, 2 commits to micropython-home-assistant, 2 commits to home-assistant-assets, 2 commits to home-assistant-notebooks") +- [Robert (@metbril)](https://github.com/metbril "8 total commits to the home-assistant organization, 8 commits to home-assistant.io") - [Robert Accettura (@raccettura)](https://github.com/raccettura "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Robert Schütz (@dotlambda)](https://github.com/dotlambda "2 total commits to the home-assistant organization, 1 commit to netdisco, 1 commit to appdaemon") -- [Robert Svensson (@Kane610)](https://github.com/Kane610 "45 total commits to the home-assistant organization, 28 commits to home-assistant, 15 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant-polymer") -- [Robin (@robmarkcole)](https://github.com/robmarkcole "47 total commits to the home-assistant organization, 30 commits to home-assistant.github.io, 16 commits to home-assistant, 1 commit to home-assistant-assets") +- [Robert Svensson (@Kane610)](https://github.com/Kane610 "64 total commits to the home-assistant organization, 43 commits to home-assistant, 19 commits to home-assistant.io, 1 commit to netdisco, 1 commit to home-assistant-polymer") +- [Robin (@robmarkcole)](https://github.com/robmarkcole "57 total commits to the home-assistant organization, 35 commits to home-assistant.io, 19 commits to home-assistant, 2 commits to home-assistant-assets, 1 commit to hassos") - [Robin Laurén (@llauren)](https://github.com/llauren "1 total commits to the home-assistant organization, 1 commit to appdaemon") -- [Roddie Hasan (@eiddor)](https://github.com/eiddor "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") +- [Roddie Hasan (@eiddor)](https://github.com/eiddor "6 total commits to the home-assistant organization, 6 commits to home-assistant.io") - [Roi Dayan (@roidayan)](https://github.com/roidayan "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [roiff (@roiff)](https://github.com/roiff "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Ron Klinkien (@cyberjunky)](https://github.com/cyberjunky "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Ron Klinkien (@cyberjunky)](https://github.com/cyberjunky "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Ron Miller (@brainyron)](https://github.com/brainyron "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [roqeer (@roqeer)](https://github.com/roqeer "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Ross Schulman (@rschulman)](https://github.com/rschulman "1 total commits to the home-assistant organization, 1 commit to pi-gen") -- [rpitera (@rpitera)](https://github.com/rpitera "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") +- [rpitera (@rpitera)](https://github.com/rpitera "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [Rubens Panfili (@rpanfili)](https://github.com/rpanfili "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [rubund (@rubund)](https://github.com/rubund "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Ruslan Kiyanchuk (@zoresvit)](https://github.com/zoresvit "1 total commits to the home-assistant organization, 1 commit to pi-gen") +- [ruohan\.chen (@crhan)](https://github.com/crhan "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Ruslan Sayfutdinov (@KapJI)](https://github.com/KapJI "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") - [Russ K (@rkubes)](https://github.com/rkubes "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Russell Cloran (@rcloran)](https://github.com/rcloran "36 total commits to the home-assistant organization, 32 commits to home-assistant, 4 commits to homebridge-homeassistant") -- [Ryan Bahm (@rdbahm)](https://github.com/rdbahm "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Ryan Daigle (@rwdaigle)](https://github.com/rwdaigle "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Ryan Bahm (@rdbahm)](https://github.com/rdbahm "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Ryan Bray (@rbray89)](https://github.com/rbray89 "13 total commits to the home-assistant organization, 12 commits to hassos, 1 commit to hassio-build") +- [Ryan Daigle (@rwdaigle)](https://github.com/rwdaigle "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Ryan Jarvis (@Cabalist)](https://github.com/Cabalist "1 total commits to the home-assistant organization, 1 commit to hassbian-scripts") -- [Ryan Kraus (@rmkraus)](https://github.com/rmkraus "193 total commits to the home-assistant organization, 163 commits to home-assistant, 15 commits to home-assistant.github.io, 14 commits to home-assistant-polymer, 1 commit to home-assistant-notebooks") -- [Ryan McLean (@ryanm101)](https://github.com/ryanm101 "96 total commits to the home-assistant organization, 74 commits to hassio-cli, 16 commits to home-assistant, 6 commits to home-assistant.github.io") +- [Ryan Kraus (@rmkraus)](https://github.com/rmkraus "193 total commits to the home-assistant organization, 163 commits to home-assistant, 15 commits to home-assistant.io, 14 commits to home-assistant-polymer, 1 commit to home-assistant-notebooks") +- [Ryan McLean (@ryanm101)](https://github.com/ryanm101 "97 total commits to the home-assistant organization, 75 commits to hassio-cli, 16 commits to home-assistant, 6 commits to home-assistant.io") - [Ryan Turner (@turnrye)](https://github.com/turnrye "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [Sabesto (@Sabesto)](https://github.com/Sabesto "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Sacha Telgenhof (@stelgenhof)](https://github.com/stelgenhof "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Sacha Telgenhof (@stelgenhof)](https://github.com/stelgenhof "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Sam Holmes (@sam3d)](https://github.com/sam3d "4 total commits to the home-assistant organization, 4 commits to pi-gen") - [sam-io (@sam-io)](https://github.com/sam-io "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [sander76 (@sander76)](https://github.com/sander76 "42 total commits to the home-assistant organization, 38 commits to home-assistant, 4 commits to home-assistant.github.io") +- [sander76 (@sander76)](https://github.com/sander76 "42 total commits to the home-assistant organization, 38 commits to home-assistant, 4 commits to home-assistant.io") +- [sbYm (@GongT)](https://github.com/GongT "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Scott (@lostage)](https://github.com/lostage "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") - [Scott Bradshaw (@swbradshaw)](https://github.com/swbradshaw "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Scott Griffin (@scottocs11)](https://github.com/scottocs11 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io") -- [Scott O'Neil (@americanwookie)](https://github.com/americanwookie "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Scott Reston (@ih8gates)](https://github.com/ih8gates "9 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") -- [Sean Dague (@sdague)](https://github.com/sdague "76 total commits to the home-assistant organization, 53 commits to home-assistant, 14 commits to home-assistant.github.io, 5 commits to home-assistant-polymer, 3 commits to netdisco, 1 commit to home-assistant-js") -- [Sean Gollschewsky (@gollo)](https://github.com/gollo "17 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to hassio-build") +- [Scott Griffin (@scottocs11)](https://github.com/scottocs11 "7 total commits to the home-assistant organization, 7 commits to home-assistant.io") +- [Scott O'Neil (@americanwookie)](https://github.com/americanwookie "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") +- [Scott Reston (@ih8gates)](https://github.com/ih8gates "10 total commits to the home-assistant organization, 9 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [Sean Dague (@sdague)](https://github.com/sdague "77 total commits to the home-assistant organization, 54 commits to home-assistant, 14 commits to home-assistant.io, 5 commits to home-assistant-polymer, 3 commits to netdisco, 1 commit to home-assistant-js") +- [Sean Gollschewsky (@gollo)](https://github.com/gollo "17 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.io, 3 commits to hassio-build") - [Sean Wilson (@swilson)](https://github.com/swilson "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Sebastian (@sebk-666)](https://github.com/sebk-666 "6 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 1 commit to netdisco") +- [Sebastian (@sebk-666)](https://github.com/sebk-666 "6 total commits to the home-assistant organization, 5 commits to home-assistant.io, 1 commit to netdisco") - [Sebastian (@sgso)](https://github.com/sgso "3 total commits to the home-assistant organization, 3 commits to libcoap") -- [Sebastian Muszynski (@syssi)](https://github.com/syssi "125 total commits to the home-assistant organization, 76 commits to home-assistant, 44 commits to home-assistant.github.io, 3 commits to netdisco, 2 commits to home-assistant-polymer") +- [Sebastian Muszynski (@syssi)](https://github.com/syssi "136 total commits to the home-assistant organization, 86 commits to home-assistant, 45 commits to home-assistant.io, 3 commits to netdisco, 2 commits to home-assistant-polymer") - [Sebastian von Minckwitz (@teodoc)](https://github.com/teodoc "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Semir Patel (@analogue)](https://github.com/analogue "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Sergey Isachenko (@zabuldon)](https://github.com/zabuldon "9 total commits to the home-assistant organization, 9 commits to home-assistant") - [Sergey Vishnikin (@armicron)](https://github.com/armicron "33 total commits to the home-assistant organization, 33 commits to warrant") - [Sergio Viudes (@sjvc)](https://github.com/sjvc "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [sfam (@sfam)](https://github.com/sfam "65 total commits to the home-assistant organization, 58 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant-polymer") +- [sfam (@sfam)](https://github.com/sfam "65 total commits to the home-assistant organization, 58 commits to home-assistant, 5 commits to home-assistant.io, 1 commit to netdisco, 1 commit to home-assistant-polymer") - [sharukins (@sharukins)](https://github.com/sharukins "3 total commits to the home-assistant organization, 3 commits to hassio-build") - [siebert (@siebert)](https://github.com/siebert "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Simon (@echox)](https://github.com/echox "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Simon Szustkowski (@simonszu)](https://github.com/simonszu "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant") -- [Sjors Spoorendonk (@sjorsjes)](https://github.com/sjorsjes "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Simon Holzmayer (@sholzmayer)](https://github.com/sholzmayer "2 total commits to the home-assistant organization, 1 commit to hassio, 1 commit to developers.home-assistant") +- [Simon Szustkowski (@simonszu)](https://github.com/simonszu "7 total commits to the home-assistant organization, 4 commits to home-assistant.io, 3 commits to home-assistant") +- [sjabby (@sjabby)](https://github.com/sjabby "29 total commits to the home-assistant organization, 28 commits to home-assistant.io, 1 commit to hassbian-scripts") +- [Sjors Spoorendonk (@sjorsjes)](https://github.com/sjorsjes "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [sjoshi10 (@sjoshi10)](https://github.com/sjoshi10 "1 total commits to the home-assistant organization, 1 commit to warrant") - [snizzleorg (@snizzleorg)](https://github.com/snizzleorg "5 total commits to the home-assistant organization, 5 commits to hadashboard") -- [St\. John Johnson (@stjohnjohnson)](https://github.com/stjohnjohnson "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") -- [starkillerOG (@starkillerOG)](https://github.com/starkillerOG "1 total commits to the home-assistant organization, 1 commit to developers.home-assistant") -- [Stefan Jonasson (@stefan-jonasson)](https://github.com/stefan-jonasson "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io") +- [squidwardy (@squidwardy)](https://github.com/squidwardy "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Sriram Vaidyanathan (@vaidyasr)](https://github.com/vaidyasr "6 total commits to the home-assistant organization, 3 commits to home-assistant.io, 3 commits to home-assistant") +- [St\. John Johnson (@stjohnjohnson)](https://github.com/stjohnjohnson "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.io") +- [starkillerOG (@starkillerOG)](https://github.com/starkillerOG "12 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.io, 1 commit to developers.home-assistant, 1 commit to home-assistant-polymer") +- [Stefan Jonasson (@stefan-jonasson)](https://github.com/stefan-jonasson "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.io") - [Stefano Scipioni (@scipioni)](https://github.com/scipioni "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Steltek (@Steltek)](https://github.com/Steltek "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [stephanerosi (@stephanerosi)](https://github.com/stephanerosi "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io") +- [stephanerosi (@stephanerosi)](https://github.com/stephanerosi "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.io") - [Stephen Edgar (@ntwb)](https://github.com/ntwb "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant") -- [Stephen Yeargin (@stephenyeargin)](https://github.com/stephenyeargin "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Stephen Tomkinson (@neonbunny)](https://github.com/neonbunny "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Stephen Vanterpool (@blackgold9)](https://github.com/blackgold9 "38 total commits to the home-assistant organization, 37 commits to home-assistant-iOS, 1 commit to developers.home-assistant") +- [Stephen Yeargin (@stephenyeargin)](https://github.com/stephenyeargin "25 total commits to the home-assistant organization, 24 commits to hubot-home-assistant, 1 commit to home-assistant-polymer") - [Steve Easley (@SteveEasley)](https://github.com/SteveEasley "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Steven Looman (@StevenLooman)](https://github.com/StevenLooman "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Stu Gott (@stu-gott)](https://github.com/stu-gott "9 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 4 commits to home-assistant") +- [Steven Looman (@StevenLooman)](https://github.com/StevenLooman "9 total commits to the home-assistant organization, 7 commits to home-assistant, 2 commits to netdisco") +- [Stu Gott (@stu-gott)](https://github.com/stu-gott "9 total commits to the home-assistant organization, 5 commits to home-assistant.io, 4 commits to home-assistant") - [Stuart Williams (@stuwil)](https://github.com/stuwil "1 total commits to the home-assistant organization, 1 commit to netdisco") +- [Suresh Kalavala (@skalavala)](https://github.com/skalavala "32 total commits to the home-assistant organization, 32 commits to home-assistant.io") +- [Sven\-Hendrik Haase (@svenstaro)](https://github.com/svenstaro "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [swanwila (@swanwila)](https://github.com/swanwila "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [System Tester (@systemtester)](https://github.com/systemtester "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Sytone (@sytone)](https://github.com/sytone "7 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 1 commit to hassio-build") -- [Sören Oldag (@soldag)](https://github.com/soldag "15 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 7 commits to home-assistant") +- [System Tester (@systemtester)](https://github.com/systemtester "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Sytone (@sytone)](https://github.com/sytone "8 total commits to the home-assistant organization, 6 commits to home-assistant.io, 1 commit to developers.home-assistant, 1 commit to hassio-build") +- [Sören Oldag (@soldag)](https://github.com/soldag "15 total commits to the home-assistant organization, 8 commits to home-assistant.io, 7 commits to home-assistant") - [Tabakhase (@tabakhase)](https://github.com/tabakhase "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [tadly (@tadly)](https://github.com/tadly "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [tango-foxtrot (@tango-foxtrot)](https://github.com/tango-foxtrot "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Taylor Peet (@RePeet13)](https://github.com/RePeet13 "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io") -- [Teagan Glenn (@Teagan42)](https://github.com/Teagan42 "59 total commits to the home-assistant organization, 49 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to home-assistant-js") +- [Taylor Peet (@RePeet13)](https://github.com/RePeet13 "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") +- [Teagan Glenn (@Teagan42)](https://github.com/Teagan42 "59 total commits to the home-assistant organization, 49 commits to home-assistant, 9 commits to home-assistant.io, 1 commit to home-assistant-js") - [Ted Drain (@TD22057)](https://github.com/TD22057 "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [tedstriker (@tedstriker)](https://github.com/tedstriker "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [tedstriker (@tedstriker)](https://github.com/tedstriker "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Teemu Mikkonen (@T3m3z)](https://github.com/T3m3z "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Teemu R\. (@rytilahti)](https://github.com/rytilahti "54 total commits to the home-assistant organization, 41 commits to home-assistant, 9 commits to home-assistant.github.io, 4 commits to netdisco") +- [Teemu R\. (@rytilahti)](https://github.com/rytilahti "59 total commits to the home-assistant organization, 46 commits to home-assistant, 9 commits to home-assistant.io, 4 commits to netdisco") - [Teguh Sobirin (@tjstyle)](https://github.com/tjstyle "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Tentoe (@Tentoe)](https://github.com/Tentoe "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Theb-1 (@Theb-1)](https://github.com/Theb-1 "5 total commits to the home-assistant organization, 5 commits to home-assistant") - [thecynic (@thecynic)](https://github.com/thecynic "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [TheFrogDaddy (@TheFrogDaddy)](https://github.com/TheFrogDaddy "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [thelittlefireman (@thelittlefireman)](https://github.com/thelittlefireman "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [themanieldaniel (@themanieldaniel)](https://github.com/themanieldaniel "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") +- [themanieldaniel (@themanieldaniel)](https://github.com/themanieldaniel "13 total commits to the home-assistant organization, 13 commits to home-assistant.io") - [Theodor Lindquist (@theolind)](https://github.com/theolind "25 total commits to the home-assistant organization, 25 commits to home-assistant") - [Thiago Oliveira (@chilicheech)](https://github.com/chilicheech "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Thibault Cohen (@titilambert)](https://github.com/titilambert "50 total commits to the home-assistant organization, 37 commits to home-assistant, 13 commits to home-assistant.github.io") -- [Thibault Maekelbergh (@thibmaek)](https://github.com/thibmaek "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to hassio-addons") -- [Thijs de Jong (@bakedraccoon)](https://github.com/bakedraccoon "21 total commits to the home-assistant organization, 16 commits to home-assistant, 5 commits to home-assistant.github.io") -- [ThinkPadNL (@ThinkPadNL)](https://github.com/ThinkPadNL "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Thom Troy (@ttroy50)](https://github.com/ttroy50 "13 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 6 commits to home-assistant") +- [Thibault Cohen (@titilambert)](https://github.com/titilambert "53 total commits to the home-assistant organization, 39 commits to home-assistant, 13 commits to home-assistant.io, 1 commit to home-assistant-polymer") +- [Thibault Maekelbergh (@thibmaek)](https://github.com/thibmaek "4 total commits to the home-assistant organization, 3 commits to home-assistant.io, 1 commit to hassio-addons") +- [ThinkPadNL (@ThinkPadNL)](https://github.com/ThinkPadNL "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Thom Troy (@ttroy50)](https://github.com/ttroy50 "15 total commits to the home-assistant organization, 8 commits to home-assistant.io, 7 commits to home-assistant") +- [Thomas Delaet (@thomasdelaet)](https://github.com/thomasdelaet "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Thomas Petazzoni (@tpetazzoni)](https://github.com/tpetazzoni "1 total commits to the home-assistant organization, 1 commit to libcoap") - [Thomas Phillips (@thomas-phillips-nz)](https://github.com/thomas-phillips-nz "2 total commits to the home-assistant organization, 2 commits to pi-gen") - [Thomas Purchas (@thomaspurchas)](https://github.com/thomaspurchas "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") - [Thomas Pötsch (@thp-comnets)](https://github.com/thp-comnets "7 total commits to the home-assistant organization, 7 commits to libcoap") -- [thrawnarn (@thrawnarn)](https://github.com/thrawnarn "9 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to netdisco") -- [ThUnD3r\|Gr33n (@thundergreen)](https://github.com/thundergreen "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [thrawnarn (@thrawnarn)](https://github.com/thrawnarn "10 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.io, 1 commit to netdisco") +- [ThUnD3r\|Gr33n (@thundergreen)](https://github.com/thundergreen "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [tijuca (@tijuca)](https://github.com/tijuca "106 total commits to the home-assistant organization, 106 commits to libcoap") - [Tim Wilbrink (@TWilb)](https://github.com/TWilb "15 total commits to the home-assistant organization, 15 commits to home-assistant-iOS") - [Timo (@timotk)](https://github.com/timotk "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [timstanley1985 (@timstanley1985)](https://github.com/timstanley1985 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [timstanley1985 (@timstanley1985)](https://github.com/timstanley1985 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [TJ Rana (@tjrana)](https://github.com/tjrana "1 total commits to the home-assistant organization, 1 commit to pi-gen") - [tleegaard (@tleegaard)](https://github.com/tleegaard "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") +- [Toast (@swetoast)](https://github.com/swetoast "2 total commits to the home-assistant organization, 2 commits to hassbian-scripts") +- [Tobias Hoff (@ToSa27)](https://github.com/ToSa27 "1 total commits to the home-assistant organization, 1 commit to hassio-addons") - [Tobie Booth (@tobiebooth)](https://github.com/tobiebooth "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [Toby Gray (@tobygray)](https://github.com/tobygray "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Tod Schmidt (@tschmidty69)](https://github.com/tschmidty69 "33 total commits to the home-assistant organization, 21 commits to home-assistant, 9 commits to home-assistant.github.io, 2 commits to hassio-addons, 1 commit to hassio") +- [Tod Schmidt (@tschmidty69)](https://github.com/tschmidty69 "37 total commits to the home-assistant organization, 21 commits to home-assistant, 10 commits to home-assistant.io, 5 commits to hassio-addons, 1 commit to hassio") - [toddeye (@toddeye)](https://github.com/toddeye "20 total commits to the home-assistant organization, 20 commits to home-assistant") -- [Tom (@Qu3uk)](https://github.com/Qu3uk "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Tom (@Qu3uk)](https://github.com/Qu3uk "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [Tom Dickman (@tdickman)](https://github.com/tdickman "3 total commits to the home-assistant organization, 3 commits to home-assistant") -- [Tom Duijf (@tomduijf)](https://github.com/tomduijf "70 total commits to the home-assistant organization, 53 commits to home-assistant, 9 commits to home-assistant.github.io, 6 commits to home-assistant-polymer, 2 commits to netdisco") -- [Tom Harris (@teharris1)](https://github.com/teharris1 "10 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Tom Hoover (@tomhoover)](https://github.com/tomhoover "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Tom Matheussen (@Tommatheussen)](https://github.com/Tommatheussen "13 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant-polymer, 3 commits to home-assistant.github.io") +- [Tom Duijf (@tomduijf)](https://github.com/tomduijf "70 total commits to the home-assistant organization, 53 commits to home-assistant, 9 commits to home-assistant.io, 6 commits to home-assistant-polymer, 2 commits to netdisco") +- [Tom Harris (@teharris1)](https://github.com/teharris1 "22 total commits to the home-assistant organization, 15 commits to home-assistant, 7 commits to home-assistant.io") +- [Tom Hoover (@tomhoover)](https://github.com/tomhoover "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Tom Matheussen (@Tommatheussen)](https://github.com/Tommatheussen "13 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant-polymer, 3 commits to home-assistant.io") - [Tom Usher (@tomusher)](https://github.com/tomusher "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Tomi Salmi (@tomppasalmi)](https://github.com/tomppasalmi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [Tomi Tuhkanen (@ttu)](https://github.com/ttu "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [TopdRob (@TopdRob)](https://github.com/TopdRob "7 total commits to the home-assistant organization, 7 commits to home-assistant") - [Torkild Retvedt (@torkildr)](https://github.com/torkildr "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Toshik (@Toshik)](https://github.com/Toshik "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") -- [Touliloup (@RiRomain)](https://github.com/RiRomain "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [tradiuz (@tradiuz)](https://github.com/tradiuz "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [travislreno (@travislreno)](https://github.com/travislreno "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Touliloup (@RiRomain)](https://github.com/RiRomain "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [tradiuz (@tradiuz)](https://github.com/tradiuz "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [travislreno (@travislreno)](https://github.com/travislreno "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [trbs (@trbs)](https://github.com/trbs "1 total commits to the home-assistant organization, 1 commit to netdisco") -- [Trevor (@tboyce021)](https://github.com/tboyce021 "15 total commits to the home-assistant organization, 10 commits to home-assistant, 5 commits to home-assistant.github.io") -- [Trey Hunner (@treyhunner)](https://github.com/treyhunner "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Trevor (@tboyce021)](https://github.com/tboyce021 "15 total commits to the home-assistant organization, 10 commits to home-assistant, 5 commits to home-assistant.io") +- [Trey Hunner (@treyhunner)](https://github.com/treyhunner "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [trollkarlen (@trollkarlen)](https://github.com/trollkarlen "5 total commits to the home-assistant organization, 5 commits to home-assistant") -- [Tsvi Mostovicz (@tsvi)](https://github.com/tsvi "9 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 4 commits to home-assistant") -- [Tyler Page (@iamtpage)](https://github.com/iamtpage "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") +- [Tsvi Mostovicz (@tsvi)](https://github.com/tsvi "9 total commits to the home-assistant organization, 5 commits to home-assistant.io, 4 commits to home-assistant") +- [Tyler Page (@iamtpage)](https://github.com/iamtpage "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") - [Tõnis Tobre (@tobre6)](https://github.com/tobre6 "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant") - [uchagani (@uchagani)](https://github.com/uchagani "8 total commits to the home-assistant organization, 7 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Uli (@uehler)](https://github.com/uehler "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") +- [Uli (@uehler)](https://github.com/uehler "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") - [UnrealKazu (@UnrealKazu)](https://github.com/UnrealKazu "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [upsert (@upsert)](https://github.com/upsert "1 total commits to the home-assistant organization, 1 commit to netdisco") - [User5981 (@User5981)](https://github.com/User5981 "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Valentin Alexeev (@valentinalexeev)](https://github.com/valentinalexeev "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Valentin Alexeev (@valentinalexeev)](https://github.com/valentinalexeev "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.io") +- [Vasiley (@Vasiley)](https://github.com/Vasiley "9 total commits to the home-assistant organization, 9 commits to home-assistant.io") - [Victor Cerutti (@victorcerutti)](https://github.com/victorcerutti "3 total commits to the home-assistant organization, 3 commits to home-assistant-polymer") - [Viet Dzung (@dzungpv)](https://github.com/dzungpv "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [Vignesh Venkat (@vickyg3)](https://github.com/vickyg3 "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Ville Skyttä (@scop)](https://github.com/scop "47 total commits to the home-assistant organization, 26 commits to home-assistant, 10 commits to home-assistant.github.io, 4 commits to netdisco, 3 commits to hassio-addons, 2 commits to hassio-build, 2 commits to home-assistant-polymer") +- [Vignesh Venkat (@vickyg3)](https://github.com/vickyg3 "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.io") +- [Ville Skyttä (@scop)](https://github.com/scop "91 total commits to the home-assistant organization, 59 commits to home-assistant, 11 commits to home-assistant.io, 9 commits to netdisco, 4 commits to hassio-addons, 3 commits to hassio-cli, 2 commits to hassio-build, 2 commits to home-assistant-polymer, 1 commit to hassio") +- [Vincent Van Den Berghe (@vandenberghev)](https://github.com/vandenberghev "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [viswa-swami (@viswa-swami)](https://github.com/viswa-swami "9 total commits to the home-assistant organization, 9 commits to home-assistant") - [Vlad Korniev (@vkorn)](https://github.com/vkorn "1 total commits to the home-assistant organization, 1 commit to hassio-build") - [vllungu (@vllungu)](https://github.com/vllungu "3 total commits to the home-assistant organization, 3 commits to libcoap") -- [vrs01 (@vrs01)](https://github.com/vrs01 "20 total commits to the home-assistant organization, 14 commits to home-assistant.github.io, 6 commits to appdaemon") +- [vrs01 (@vrs01)](https://github.com/vrs01 "20 total commits to the home-assistant organization, 14 commits to home-assistant.io, 6 commits to appdaemon") - [Wagner Sartori Junior (@trunet)](https://github.com/trunet "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Wesley Young (@wesdyoung)](https://github.com/wesdyoung "1 total commits to the home-assistant organization, 1 commit to warrant") -- [Wilco Land (@Wilco89)](https://github.com/Wilco89 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [Will Heid (@bassclarinetl2)](https://github.com/bassclarinetl2 "20 total commits to the home-assistant organization, 19 commits to home-assistant.github.io, 1 commit to fabric-home-assistant") +- [Wilco Land (@Wilco89)](https://github.com/Wilco89 "3 total commits to the home-assistant organization, 3 commits to home-assistant.io") +- [Will Heid (@bassclarinetl2)](https://github.com/bassclarinetl2 "20 total commits to the home-assistant organization, 19 commits to home-assistant.io, 1 commit to fabric-home-assistant") - [Will W\. (@tiktok7)](https://github.com/tiktok7 "4 total commits to the home-assistant organization, 4 commits to home-assistant") -- [Willems Davy (@joyrider3774)](https://github.com/joyrider3774 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Willems Davy (@joyrider3774)](https://github.com/joyrider3774 "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") - [William Johansson (@radhus)](https://github.com/radhus "1 total commits to the home-assistant organization, 1 commit to hassio") -- [William Scanlon (@w1ll1am23)](https://github.com/w1ll1am23 "113 total commits to the home-assistant organization, 78 commits to home-assistant, 33 commits to home-assistant.github.io, 2 commits to netdisco") +- [William Scanlon (@w1ll1am23)](https://github.com/w1ll1am23 "119 total commits to the home-assistant organization, 81 commits to home-assistant, 36 commits to home-assistant.io, 2 commits to netdisco") - [williamlehman (@williamlehman)](https://github.com/williamlehman "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") -- [wind-rider (@wind-rider)](https://github.com/wind-rider "5 total commits to the home-assistant organization, 5 commits to home-assistant") -- [wokar (@wokar)](https://github.com/wokar "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Wolf\-Bastian Pöttner (@BastianPoe)](https://github.com/BastianPoe "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Wim Haanstra (@depl0y)](https://github.com/depl0y "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [wokar (@wokar)](https://github.com/wokar "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.io") +- [Wolf\-Bastian Pöttner (@BastianPoe)](https://github.com/BastianPoe "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.io") - [Wolfgang Malgadey (@wmalgadey)](https://github.com/wmalgadey "5 total commits to the home-assistant organization, 5 commits to home-assistant") -- [XECDesign (@XECDesign)](https://github.com/XECDesign "138 total commits to the home-assistant organization, 138 commits to pi-gen") +- [XECDesign (@XECDesign)](https://github.com/XECDesign "145 total commits to the home-assistant organization, 145 commits to pi-gen") - [Xorso (@Xorso)](https://github.com/Xorso "22 total commits to the home-assistant organization, 21 commits to home-assistant, 1 commit to hassio-addons") -- [Yannick POLLART (@ypollart)](https://github.com/ypollart "8 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io") -- [Yasin Soliman (@yasinS)](https://github.com/yasinS "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Yannick POLLART (@ypollart)](https://github.com/ypollart "8 total commits to the home-assistant organization, 4 commits to home-assistant.io, 4 commits to home-assistant") +- [yasinS (@yasinS)](https://github.com/yasinS "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Yevgeniy (@sgttrs)](https://github.com/sgttrs "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [yingzong (@yingzong)](https://github.com/yingzong "1 total commits to the home-assistant organization, 1 commit to warrant") -- [Zen Tormey (@xehn)](https://github.com/xehn "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Zhao Lu (@zlu)](https://github.com/zlu "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") -- [Zio Tibia (@ziotibia81)](https://github.com/ziotibia81 "12 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 5 commits to home-assistant") -- [Zorks (@Zorks)](https://github.com/Zorks "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") -- [Åskar Andersson (@olskar)](https://github.com/olskar "10 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 3 commits to home-assistant, 1 commit to hassbian-scripts") +- [Zen Tormey (@xehn)](https://github.com/xehn "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Zhao Lu (@zlu)](https://github.com/zlu "4 total commits to the home-assistant organization, 4 commits to home-assistant.io") +- [Zio Tibia (@ziotibia81)](https://github.com/ziotibia81 "12 total commits to the home-assistant organization, 7 commits to home-assistant.io, 5 commits to home-assistant") +- [Zorks (@Zorks)](https://github.com/Zorks "5 total commits to the home-assistant organization, 5 commits to home-assistant.io") +- [Åskar Andersson (@olskar)](https://github.com/olskar "10 total commits to the home-assistant organization, 6 commits to home-assistant.io, 3 commits to home-assistant, 1 commit to hassbian-scripts") This page is irregularly updated using the [`credits_generator` tool](https://github.com/home-assistant/home-assistant.github.io/tree/next/credits_generator). If you think that you are missing, please let us know. -This page was last updated Sunday, June 3rd 2018, 8:50:11 pm UTC. +This page was last updated Tuesday, August 28th 2018, 7:39:11 am UTC. From d5af4f8d9d58681f927ec20691ff04c550d6cef2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 09:40:51 +0200 Subject: [PATCH 29/39] Add redirect url for app --- source/_docs/ecosystem/ios.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown index 027fe503230..ade6bede755 100644 --- a/source/_docs/ecosystem/ios.markdown +++ b/source/_docs/ecosystem/ios.markdown @@ -10,6 +10,8 @@ footer: true redirect_from: /ecosystem/ios/ --- + + The Home Assistant for iOS app offers a companion app for iOS which is deeply integrated into both Home Assistant and iOS. Its basic features include: * Advanced push notifications From 615304022dfd808bcf19cef00a5b15e663ff77e9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 09:46:56 +0200 Subject: [PATCH 30/39] Add redirect uri for ios --- source/_docs/ecosystem/ios.markdown | 2 -- source/ios/index.markdown | 13 +++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 source/ios/index.markdown diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown index ade6bede755..027fe503230 100644 --- a/source/_docs/ecosystem/ios.markdown +++ b/source/_docs/ecosystem/ios.markdown @@ -10,8 +10,6 @@ footer: true redirect_from: /ecosystem/ios/ --- - - The Home Assistant for iOS app offers a companion app for iOS which is deeply integrated into both Home Assistant and iOS. Its basic features include: * Advanced push notifications diff --git a/source/ios/index.markdown b/source/ios/index.markdown new file mode 100644 index 00000000000..bd87dbb77eb --- /dev/null +++ b/source/ios/index.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Home Assistant iOS" +description: "Landing page for Home Assistant iOS app." +release_date: 2016-10-24 15:00:00 -0700 +sidebar: true +comments: false +sharing: true +footer: true +--- + + + From 40f8fd1b4787765ab28b1b57c5527192efa4393b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 10:18:15 +0200 Subject: [PATCH 31/39] Update screenshots --- source/_docs/authentication.markdown | 8 +++++--- source/images/docs/authentication/login.png | Bin 38191 -> 22078 bytes source/images/docs/authentication/mfa.png | Bin 0 -> 44484 bytes 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 source/images/docs/authentication/mfa.png diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index 9ebb653c51a..e32349a9693 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -28,10 +28,12 @@ When logging in, make sure that the URL in the URL bar is showing the address of ## {% linkable_title Profile %} -Once you're logged in, you can access the profile page to change your user preferences. Here you can change your preferred language or password. You can also log out. You can access the profile page by clicking on your user badge in the sidebar. +Once you're logged in, you can access the profile page by clicking on the badge next to the Home Assistant title in the sidebar. Here you can change your preferred language or change your password. You can also log out. Screenshot of the profile page -## {% linkable_title Multi-factor authentication %} (soon) +## {% linkable_title Multi-factor authentication %} -As a user, you can setup multi-factor authentication like time-based one-time passwords. This is an extra challenge that you have to solve after you finish your login. You will be able to set up these challenges from the profile page once you're logged in. +As a user, you can setup multi-factor authentication with time-based one-time passwords. This is an extra challenge that you have to solve after you finish your login. You will be able to set up these challenges from the profile page once you're logged in. + +Screenshot of setting up multi-factor authentication diff --git a/source/images/docs/authentication/login.png b/source/images/docs/authentication/login.png index cca95180f6c3900fdab062a5c7d63189ba852933..e1446748c2eb101cd1d452aa3d3f2255b2faedf9 100644 GIT binary patch literal 22078 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
`zDboHhb>bCFPIsbxcPyspf}q4 z>S0l>IPjpZxTYQ)_-?%NX59?+{?a#w=QPT6yvsQoMvxZG#1J+}`b16_FQ9Ag-D&@C7+b8St(W193_ z$uqN9%3EHBaEk@iOdQ|0B4a9=antXKrQO_lm-@7d?rXx`5|-c*AKEJx``I8(0gao& zP^;*8I5i>PX$ktTkfA=Rnqh_87~pyZa^yS=d8G-CJc5Q-v5BSy1(0!o0-AC*^q_zU zU=DIG4nI%`3Mxl}G@)zBn!u?*IW3LU6*?#rnST+RECs&*VkAZXA6bIS(-gpS&@+QRq0pC4!AqNno0L0_huu2nE?o(bb3P)1QLGC-n`P#HrM#J zc>_XM06qj!{CFMOPd6eU@PJOI9r~`9o?}eu^<&cE50%6C3!Xa(Wq(kWPV?Sp+CQHU zZ%4cxr5l{jj7Hf4SK9_RoR$ct#PBATe?4=v-p;uNL+v z1<$p1;mC;D)w{fd>6=ICWLX~b?~e^{W*lpY7^h>b-plQith!m`?PIn0K^UGFd zec&>^VVO2s9q<*lLI~bTZj#cx?R`aCJ8A9w7iiV7O_&3e!=FW1^hL70lM7DfHrv!$swADOmL&*TJmWJ=;8%pd zS(UR~lYXPn-~BTyQju@$f_l;-hy~xpmd?FlU5T@y5Py?xgh0b<556sCys=M2bl! z{m09uOb|ORZK|PZcv`U7YU!FC7$V8MqH%ZbEec%v#P(fU`m&;iU2xCXWdS)iS`%76 zIH=f1l1os~ROcb(Ok9B9-Qo1SVT%%`AgN1pAQ>O>NpcDQ5C8l-Wv3xqqJluuAG{DU zfs2gfBLmi*U-2`0=QEoJd7CQz>F?(=Evl$Yo^3OoMZ?Q2(+U#S?7x`v0ZAzoy&Z8) zPzU~^h_P!sG=5Sg265G5M1^x;I}+-RkH?Dr2F#lTt1u_cNx^&&9J<8LFWEzk%YqCV zmxA|MI4ZH}zIyru5G_R|pgw>h3@50eTvqP}0)<~fl48;TPPd)S@{bP88cC>aH=V^C zyh9g`X|4lu8t0uq`Tg-%7i=nDV;oTERG#3c!Zo83e{M(ZFhNNHAf5Ph#-dL%LA;Rc zYoh{x?YF{}_RPE-0wEmNGMej|S^bs^3B4zR{lyiou*n}HOVRSnJ8)(3jpF5s5C&!U zR?U2CuUd~0v!+*h(?Qy@Xpi&@R}Q6djLsD0N*tmnX4Om{(Au|; zllJC~{#0e)TP~TO4kp&qv()l?S`wsvgXmnvGi}s>#4b39|LFvFo6l?_;K8wMH5y!H53W&^UGpr z%#HL67i1clxbPUsF&EdI(2Q*$(MZ-J^6R7k#Fy)U?C;;4zoM7>Tue+fwIo;1vzZ6U*Jn5_7`o zb!27zwEXwo^%biJj+GCe4F;o7=6^iWxp1BZ7pGxg>`m!+yUs}bQM?DXDqfyI5kkSokJ{*_Y(@YR`VO4Bg zT{f>;^dAM@e5ykR1<#1My+#^TOj2jPp-77VHGxF6sfArhzAmNZEk+t5Yk-pfO`h#k zzth;Q(<9dR2hVr~fUU79G(^kp6Hq#Q*BI{!^Bvmng24PbsrWU&lWBiTfZ%{9 z27@?_ZSn<|8LN2|CS;TX7wdBYE6jhoM9yhL78+jDiQKC(@X3*(?Kz(7ndv`oM zuqj3<9MBAhWQ?FWcOae7nIW?>9GYts%D5>dt= zbgsr5V>@uvTZS(qJPb#!^V80k_?p5H+B0JZGAPDAruD#Mz^5y~90{bGFW}})hePvv z8HUmw2F%)($PKd8i}mqH0VXnl=G=wkoMFSt7kK?@QXj8Xn97ad6-LFv2fKtRmyf!Z z!{#wi3%p$FB!f=lC?v8&q<7ve#VqhxMhS=DFzwiNGEQwZ&b)%*4xUieb+Xe!2bov5 zjjKi+N$dG3RGefv`%gDLeAi^oJJ9M_QunoD1kM( zAKK-PmRi=DbMSZeP=%kBf}Ff)XVle9!;>l2&_Qku7LMi-l<|Q15_pz!(S|ZMVR`FI zbLQ}&FXP2qSAAein{-=u*=dJ@zc_?dWfVD~%agekD5&cQ>q%sBbBZ>Q zWuX?$K|SgnK!)smeLZUWu23Hu(U}nhJ~2vMI%B`MQoN%)<4!`a2rgoS;v;FLJR%)q zE(WN@qftmNi01sger<}px{o61qPyOUgV;tLKJJ>lHb7c(gW=;U+cs$v!|>_5t=BQU zi2^67PFm$YCrXism*?;OjUhK-KNAcivvQke=(ny_6+wmCaAqd^KjT50`+Oym3Pa69 z9}}V*2P)!X8S@L8kgTvowKQlb?>{(2c@li{z@}Q@ML-}kz2D9dF6-i{X(i= z(`J-O(~!V0ZSvsgC%W^;fgAqe?ZKyet%u6NmB;lhX7JX43EZ_NQv}`e{X9jZ&sq*k zTR=bqd^-r-6Ui4kTUJx%v&G}{dGl(AEqHO46=Oo>hTVVe$l=Fh)D4+RbG5a-B+D|p zXuGQ*o6vA(T&PL%Yf!=IKr)HHAsKA0(c(ksd~->l8cJYQ>UjjaAS}ciorQh{JNSeg zb-RB*;WGg#?`?tXT<)p+sB)q8XeE`~F+(%!*-zwbe1rXcE|g{a$k!!|%2EA==x3KC z6)-LZyg(DET3I|=iRvWp;O{!=c5-58lZX)BqN_OMO>cYgTZ4t1yp|3WZ~Rn@*cmQk zr|(&8D-yR7QqlQEi?baGZ2SCbRpnJwH-kqG;s0^5Q7Cz6kJp970Bnj4!?76Cm%bnWU5Clu%-y3Ul8r;Rc_kp z9bTBdFS^L0mCCq^C83MDc6?yKXD^f*0|d5&#-`Yrm$j^(QYczp*?O#=eM9}d;g2-Q zea)~vY+wE!ydo=Wl6-6}DP6v=B2zh0CbfVjcgEQ;40gyn<#75;Je^*(vVyKnyY!vw z)4EQB{t+Feo8g7ijPstPXtURHiQX{lvd~E>WPEYQzI{o+MpV<|_%u2S=Pv$JEKM|q zZ$R3@T8Y&IX-AbYzLyZ^Sw~6*>$%|SJVzaW{QIFaGezDcMsGFm zrMS3i7vZbnb4e+qsGlqW4?SvWI1bg_nOru%D6#GP!@n)f#=YrEO1u5I-<7?_&^5Px!lymDLN+)=N!9^0V| zFv}jtXLvS2){Oly_Ggg)q9|@iADN$dF|MidA#-n5I0^nL)z{^z80unw=#!|#oB z`F$Vi$$nTn={LL7lJsULEl5iI5qwro_@yQ8<4Xl28OT0fd5PV@K#1A_Mq~N=MZdW+ z8C{uiSdBemr;3ZKfCbdm!Wx_{)%03 z13?mj!~)IBq~Kgo8A)F#z#W4O6b{T`hD(^B{PB}CNrWJ=fFKJEU#S8DDbRx+-=}o$ z9F<$k7=BOgFtdXKQhX2|hB7P5dS8o>eqS`9yA+9nI&o%3KS2x8bDU0#WnsvkBA|fb zk(nGgvMm(wh5w&NrIsl8pQoloG;sYB2SgYIKs*raQdPJMAo94YZ=oF`0_%vo2uKG- zYtJ2TUHhM#R071` z0OtbbXds9j{+F_i3V<)E^K}!=mb9W9XJ!$C^o&Of>cz?Vm(~E z%;l(*pnngOWg+f83(xn_SRG@hOW8rTHQo#4Cr%=0MCLW8K%zI-8Rq?}f~$XHX$`Nd zp8kf;ot%HF$=heOBp8K^Px)71qx16&GnRr)X6Fdf-x}zF=n02azSwuv4Am>?4t9tF zs)rgBv@g+F`4}I5Z%N7F(wD^}_vHwcCNDUccKKf#vi&R9Sf7w~fto-CE zknZhOszImrSRhc=B>3CaRc*0J`_K1}Jf5(Jcl)*FNuERrnQ%+!3?+hUi$*1aIVq7C zm0A5xikY1I9)RcegT?SQTXQP@w%JIt)ef``TS?z@Tc{PN{6nAQJ20dTXxT~hV3+RB zd>N`qgBxBk*8%P;r_|4aHVNN^P{LngPyZf(9}8eIN@~F9_@b#|qUGo{>O5gFAq}{; z>H0k7pcpk(lnqhK|7GM9bamAx{H`-m6F1}zfjzM|>OFpT?45LA`?QOovxF_K|yuX4Sg1g#C za;459Vu(gDo`GlmZ2y|VQ;dZ#!^I}dFs&xD&eM**`1^aOSg44ILzw>cHlL6S4>u#R z1B4RGR`kI4GdrB2@_pNme%SFFnnxwF{8tMNMA>z;AL-}X>Nwsp^zSXA23O9f~qr_ z&=B?VDA~Ym#R7pe3|jBpk}7idmtt9E2Uf?HK9fGkIU4sNcRKhgWp{Iox<}`m~JfOgWh#tVJ5GTBSQR>^1wa#>f z$)cn6mwoim?oR6L7BWJFKS`%C9-^Q=SZWp-;pDF-;~4Ez4Gaoh=6N)ICq6XUiXMD4 zXSdBc!aIR6+AMe<`RW@vdCp#0%*9;FGs+JWZ$U5x?zz6xV|~?5b(PuAQP#x)bv$wU<(ed;)*{<9l)87`E zZwharH4AQ`rN$$))q0yU6d<@lf`9;c7&z&DeTOhx`wBa1cIdqzfolJwkG%2&@sByj zArz9s^A^r4^2dGFME#*XyeD)+OdrYyrMafKS%|#GR2Jz~2)a=hI+ z{(LTuw-waC_1U9s?lIFuV(f7nd8#*dleb2G>+B7#Z083>XY_X6PRfcerm;b;v*b*97lp0sK1FGYoKKB`Dw~$7BGfU6|Qc{1R|EGih-^l*Adx1yF*TG{8A>#``sBT30PO{x4 z5F}DQ8I)ce7aXepX>cmU7KiZ!j0;hZ%_|hN$}s{`0AIwvjgZZM_oHXL3PfQ6|F^8x zf90DZW=;rBI6>`oelZzde%P}6)m+}i^@o>AVS)myT3MO2 zYQp52%it+A^L?UG0jp@T)7C@&$=KlT>CTqB+B)lR2oV$j`_f&84hR6E{+bPl00IDH ze5eE;Q31ZlhHxeb(s~`@tr#2Kl-4=&F%Ck}=t3(nfB7_1GRyOIRA|AwUb?C@mAwc8 znri~ML8#7z{P)~qy~cj1d>yZs?ZuR%1g{LF>bJFcjz3M0x9;(j)3vZCX2q6lj91mt z3Q$6u&=Fb90M5cWn^F>9VwPW0X*FiHIyS<)cSwVP>stSao>je!NIFc4N{NPiOKtBM zSFMj%dF{MLIZYsu!hE#{wWWsVOOW!teXR3&C9lnrl`tIj#y}RZ5?M-)*BWdUW6N8aU0Lm#g?s9h$j+x4Oa*;NO}1m7Foc z=Eg1X#ipd-qBezL?DsLxn36_+j8*s~L*eyMw!?Ij)!_7A;|W;qjDpy zN9@PSOQHk!$tZo^sSlCi=!;C;xh+6VbR3#}=C%N6u& zqQ2NhX!^q>T76i$4nQW<7IZP=#+aZ06r@sw9Q3n&Z4g$u%d0oWAzJ()!1)zS+w|Ra z=@2(oA1_zii7b(%n*A%w4zNrjzD@ZiL-Nk?dgsL?m^fe82uEDFr&wOw;gVZ< z$lhXA{3255)$5U_Trv#7UhT(p)!1t?Uipjfxoi&*`xbG7de_1W{}qo`OZeg8M5yv2S%*kYDC_N1M~e2(VVCtJIl2oTr6w*v14K6 z)h?+0p>LgS&*~AAmB(MY%}bPZGbv+4o7I)FP*cCD(#UdWs<&m|y_fs@qfKu*Oa##p z(wOGGkw=z_^*A7LThk+Xha(zkJ4S)qj5gE~o8I{cRjhoT=!2QO4#@|U5$W18n| zrj4e+D}A}PisoNi*rNY6>u4{0xIz*k>WrV=PEe&V_?QLsG^~ABze-0IM>M#+oC|l) zbp3}5wGH~y7p zOEDA4hB1~mmlL*DuMx)`EpjO&Rd}}^WV(tI-{hayY;8ZjX~-BWYv5Vm9BAR{r!RKW z@eIUkDEv-&pkCqSoEqCSiP?!$Ng%aKl5f;@s46n}pyF>U$@Xqh171B2v z^mxgYHU@&jWGj6FOayJeEE?V!3=fVrG`PufUVr;sXUuaS_-I{Q1}V}ddE? zwgBvi0CxI17WcOdWf|mtJ(zx4cIk3V5BZ+?di%+^)#~EBEOYI&mpIw0R{Mh+hZQ|; zbdvmzTKO%u)y0SRWB0!EVe>#WY|I3n5*`c!+U6|7m*?0Jt@9DcL}M zIW@mUf%wpx{d>DE^_ni6!3*h`@)Cjs01@Y`EA&46?OFl>{t|M500Ake9FTW#WB@cK z0ysYiSg*rbcFvLM#Q{{9u5*D<`2bL_z<=HifPWFMn?lyn0_O3h{>xZ68$ibg0Qf** zUt1-`WGTXe07fY}zQjR5?l4hqC0fou_|{-}}L@eT;O}|=zUeXdm{uu=hg;s~{)_}MVLTA^R1#r;V)Ad5i37%ZN)fddw8lhDj z`y-N&vbU?#|8nOb7WX!u&io@|E+F%*D9(02-Ws zYyE&|pgB6i9ubpKB)f%%0C`#y{%4Q)Hx0;2{r`>or<&K%il-q+F=%Lr=>-6cnDx2L z0wzcVg%OqvD!vZf&3{&kVs}Jb{C`#l1cQQMONc3A4#KpN^Xos`h-Wz!K*FsM0S(Q0 zi?Ee+#Af;$e4-8O;=eZ`PLn0ceXEE4QS{f?gLGGw;}25wXvT1%#Zoj*w<2l(`cV1# z<>>h$1cVh)zqI{G0|bOMtpzTDfUpYR6w4w)%Mc{{G;v`=DBvY|1p)#q4Bqmz2jn`O z>U~9o5FQx1weI$n5Tp+;KpSYe?ptUJb6OA{5Fiq`&S&cc_n8IA@9F)6$M$kVWjsb# zAemGF`;Qg>w=@L(dSOyfWQz31MhQHEm3h%4=d8@EcE9JA)7nSa^%g#8ZhiA=gG$4Tw%V1Cd}@VWN%`X(93zvIt}qWg4( z?~H+W(M54!PRK^qimu9!J%PW~)t{4V^AXVq3I}cA2ccclXk~8%5(R$m676h!`}|sDV}g>_qVKd5wR&Dtj2|Zn)qwuXmVD6vWhQN;Re1 zjFQCJBwRVV$(p;g&Xdw4+41?McTpuI+!o6@ZJd6kXlZf6FJq4d>R644YZ6L2ILTX* z{Gtk3D-^i*h~^>ZBf=BEvAPF~GeJ{siY~i`$s<$3PB;A8JswCvhc7@(M%@nZDXz#A zmk?p-9&?v3sOw0I()a}k*{J)$TMZ%|oPr&h^7nY8JTWT$CIQ zKw~@U`k|aIDi#HXAD6j{1Pa8vs*EtbzZOfbPTw12G9o2u+Oj7?z_;ha-8JqNSQ1#y zHImtSat+Fmm(&Q1pge@AWuFa{r4hpa4G7;luv8iof)2YCVDdo`U{_f+Xqc%73EzeS zMOWml!i_-)7GKwG=)Bs|K8Pnh{6OKRD}xot1cecA^bE%UEudiN?wRw4vG$Dw1cAye zg`m&utLfR&mLKG!bm#8XBi)lYjM{is}_aE@yI2{HJ4*t+;t+104@%w1Z(xYTqP5`goXI((vo6 z{rxH&XM=Wqd7oxIu+dFfX>oZ(@{w<|L4r{UsJ)@g;U;9Bywv0ytP2NR&M4bPa)u%` zRhK})y>_MUOS($?gM+N_+QJY zLWqW>q4YzN&87*;kZjQ!#F?gHsgpk7cUKdhDX?6bV@N#1nvL+~RbnZP-I)+n^r~;^ z=Z$2A;LGkWHv}HH_(0>XNMr>uc=eV7#acLcG1%bszK?-ZboYa5X76&Qr)`_w3K@5d z86+6C`F8=)Z_oXM*P%a6ram6T7~rX%sI+L??diYO*Yo82xT!G7lmWrwdvkXNx#?YD zgqI57pH0`KEJgY}$Vd}|NTb7nSj{Go(YDuSnKbN)gRa#ZJBr?V?NYnCDA;`n#I-3K zv~OsI$IrtjVzc!w{s;r8Me`+BH@F%;#0`Ld~+uUQye<_b$M=>5Vu(O8lb?!Dv>7y!(d94vI-+ zjQRqJz3NofzVMt)Q_^D}3N7Ya5nBe$XNFLKL*XJD3PcbIO5$zb48-YRv1{+vo+b(3 zFZeCEd#xqYIX`k_>U!UDfj7zwjK2XD!u}^&w4kjvwy|GRYVGQ6*8hoaOo|>#*R3XW zE(;`jT2MuD%0BI|1$_IT7>I*d!rBF*78FF`#Gr4C&@eNP|HMuXLe##mAx!vR96jR9 zzEBvG7os0&#;G|X6d@bIw0y)pJ&_9v4O>>5{~JC3e-wo9okc2O*580NuEj`LRG|$b z*#z_U-++IKHhK^e<46o*HgKQMY&5H6ah^2s<{Qpzcbw@R^t$RSq@jyUD2pSd9 zha3>d(FhS0QHqEh4pFqNhI`; z5K8FWx$nJy?yNO`?7e4wWxlr7%-+9GS@*ZGH;9XbUyT@&f}}4k`Owy|m`2&s!t$c& zq566ey6V_S0%zdL-Zx9+!j9mAbX=5EE()s|u-ElzhiM&@PXX+?3m)91x<&3g!ND{^ z>Ef+k{hv2)(ob#6m_8CXD1L;C{B{&!dQnUM*hZTSL|rmdE$Yv&%Ij$5SlD|0#4 zXL@Gj_8A^C4c_D6_B>OZuL*AI@4qA&DRKG_O;cQn?!?vW3A(z-lX)#iGv=0wU%AYx z*=v4$k-|1}oIsTM-W5@S&guxce(PpwcE@PWM0zwKBXIYpT!4M{1LO3&?k;TKWuV^u z86|tdo)Q@uNx!IzOxAghJLvG5wWC&OSh8nZkH}jWDX~5GVr#<^X7NVhTG?7tV$;>O zk*2c&MsuNVSJo06)Z6!ENj(7tU1YT}R5f4tL!}Qwdl1e&*|Gb`dbHB3|1XrhmyqTP zZ(62kK&`s{NId+Ni=`v%J4rEpS}FbRd zOLZrp`%%zhZSU{Q2K55N|K+$DE=iLr34kqN(ONL*s0XnXMY5<)04IyBE3z=RcU%Nz#-fdaSqWLXUAtBjp z1AhzcY`|#a2CWYt1N0LsN&R&bA5?FDCOTRt*g|dnLM&N`Pp?86Y&U-D{}{8+U0{1) zZhbv(=e{mZw1JUPaguH2yB^XnF{7!eS}|3D7Z~=t1cEg#X z-;fIN+g$*xRz9|;e);20oW4Ni&gQI#9@b@+EA>a8N)O(LE97tt0UJs>DH})>&}<_fUEZXzp)2$A{g)P8`dsg*xxGd)f#v?}L|H{ldg@2m^>V*H4G$Wz#n z=?Xq7eTl51@TX^arstI2t}tOS)1q}V^jQ2U(nJ3buVWv|0a{^qOO=Vjo#drvb~lX? zynw>7e^d+1nxW613i0iqP1KuHae;cH@!ajW9Pr!zYcTzu%_2zXHw4-@r+XBHr0wJ3 zUlz6f$AbQ7K2Lr;C;v?$EN}djQ+^rC-zVeHd+Ge`M(Qui>G4tv68SPj^Y1k3xC<;1 zLPzj70@G;89$tqgbtIx|kf0`+BC23)e~h^QYSFHJxL6Fg+oA6ExSB&o)ixXg=b7P^ zp{PJPLB387A)$uIoByut)~WlB&hNM;Emqw|E(e~0-a7u5cQCmVRM}}uhFak#!~gkY z_E(gmg85aS--9+@{;}&@z|85XjSeP>MW&uAC;8@ngORwvGJEP`lsFbx3V{WXf{c&8 zjg49L`RT*@*~t`_tZh&jWW6<9wvN&{dHcMbK02RggqsKoALd9^uNHec zoYU><4oYOtiaLnKTXbLO&Z#L3Y6zU%)(f(eoVYs({(T95cqm?vA>zpn-;=bNnoMx$ zx$F$79N2+#LK5lQL?Jow9+f+&2QhCu_-ZA|lLx2p=?+_PWBGkTcfn4mgQJWv`7}+? zvzK`prwQFDdSZtt#lamu&U;eCQ)fuotl{d9b^UCYeS9%hSUmZ3tSIJtvd43ecl0!# z!+n81^;$vyzD)`pJ18>4&J@pFGts(Dk?xDS`>{D&k=C52q8w$R;XcyW~Rf7jjy*UjZEVAiMWxG&0@JST)RSoUmo7DIrZj;Ju=Z?QMW;XvweH zE1~a^{LWeCu;)UJMH;S(6P>I~T~d{)G$zO3U-F82hBGcd=)@3g*kbMlb-%!^`6Ta& zpbrK*42oXF{5_4MlZr?;GSk`L_RqWtxkG6vdggW(rTitx`W~5xmI^hkP6DZySbt0( zl$lKXQaCNDS8*Ra;$dx`WzWJjo~mX$iRP-i6kj)KXjil zUHOv4eYYEj;of1r_Pd>sCXa}wAZX6U5$XS7_KlT(xz4&h#HDW5rtFk_xPAh=few-T zbLItweItoh)9&X#>ZGx}uuO$Sz6m4pjOK+W!8vchjC} zc6-BB?@xBiVQPt7wbqY5qpPY5O#-Vxy``_Ei`zQNe;gw_<1(n&Vve*u$_ zDdU0V;cSZNr`s7aBQ{K|D%m6T-5i>Vv1^k~t!%GHuvG0qZ=45n2(y~vw(k#k=W{|4 zaT|$uNO}79U#EeInheqml1Uz#djP{(0t;^_UZ$AEi#6F>lgLR8dCuZ|aPCbF{Sax8 zQ&mE65?XH~`+yLffy?*jqy!H^9- z6Xo>on(Sv)g`3(cy7T8WE*^R%u-*+eJtRgE60jTgNW_{m_;J-T57X>t;k%B|fAG6C zW~WwTs#|iRAIj%a6||AgID1?xlc&t!!nQEGG0Q1#0Y~Y5&q?fn_WJGDe&~@R8sa__ zTXhAM5Al(RB(n8vC)+*D*#8m!I<^rzgxw0$0LTY;_4O@J(2lqtz)5yEa~5;P`23B! z70o_}8U%EzKWZLIr1nE|&tXW*;pY?%yBKnNrIF5x9PCW~2v!$nCB>za%JU5zL9udw zBajceS3;5D|Kf%*_BtHI_5^_m(RAUh5{eK9tOHD0)c5KTeuorPFi?w=SwZNvusSO#=>F+JndX6)1k84Ia^)N!!qe_-;cMIm2K|)*g0@zW_6WAE1r57YybVPYj5SLf-(dOVbgjC41+`nQ7Sm zy+Su^Ap>RC8!{kP4GkCPkY{tREp`AV8b>T6kBqMmVdExb2&Bvkki#i#)oD|X6v z8fOxUA~R5-LuRu9bG2alt@He9a$4HX?z^A&Y=|r(sIzXAT1kbqm@#&lVK!HNA5x^k z&a{&hz!y}#QAN(`<~scM2m-g-e874afYOyrKc~xto$8eRm0N-Xw98Z~yy0AI8MSRM z?5%uuC;>QzzCiJjHaT9)zC=`l@XudN~z&FSh9X}NH_#WpQAIq=GyTO;Ur#GmJI74}|lG#o$I&{GT z#b}Rd)q3AwpiX4eEC&jOVk4xefgL@s`qSNO)uL#duyNp(dL-HZ73=Fg_!JIms~I)y z@(ld|*Xw-S(Kk5Y-3G+&()Wx<6=CQ}kUZ$$Qd0*!qtAxVcm7;S=|rPY%HHQ+rwGF* zEhFHuG51k*Um93pvYb=6b_Deva+Y0?Th4B88;X+amt3Y9RM=q)sFUVu$X>RjwZFxg zay?Yp62%xa>sDdCWckq5!16e#(-{34s7yW?`kB7u=CjkX=-S%{#ec%b@A8f0=1ni9 zA>`%Q=F>-Pw2 zvBe8}4Ow9jk2Et*sc{ytgZ-s+#3PwA`GpxjRH)RI+r5!!MN&&d!9%ITqH;khZYd~$ zfZa-;44;yPSWNLBNmfz0Meq;>5M2yB^ek*L@)3~EHigoROXA@C1}Nf4x>gg%GGa$#*dx?@pCc*HKlZ$_XTOIS;ZGr1mZ7K%_qVo z*+he?9qe?rb>&=_U%>oR_R&5U1oW%3`310!@<@GH%z3PPIegOa$hGY!&LMNJ+?X6l^hzJD`K=CIb3xN+9RRDR!0<|n*4I}4gxQlekhp7o@* zdh=^Rh^72eZMB2Z+o&FKDP79uRp`QLetljs^0q|ns#3KmeiKZ z&*>#CXQK-dV!mj3JzKoybD%Lb)ohcE?PtugWm{Yih`XrE%=s5e?anq>TV!U$YL7-T zf30V0Bwcq-C8sFhdJ^B0IMPq@=#L2A+p?#!+Vo(>2TT6L6n>|fusF5Kpt5?bu)@#1 z$f<}m-i4W1TwXYGTj6_``#T^GLYmfcl9>GfiSM*bG*)8%<&0=9HDIl{?3TYp{{ZDF zo$&{T3&?@2fs!KrVpo3&6E9X-FvSr1>y0$nnPWO$gZDn=@e7Ymh%^if`@g^!4!P&% za?{~cn%z~bzWtTeLly4wqVIaLTCk#cLFxQQOKa*;UeG;aU}Vs=N=|p){nC;L6EolS zd?k4gO5;LlcK4!NE<~HyVM4Ca9Ao&N{1B}pN*d{-B`#Id$6IGUA6L6RF{@SbmG4@& zM`MS1m)q_6e=_8UZH`pY!l{@07zY}69Au9Mu4X^B>Dk$ofZiMYOGR^Q^7VD@NT?%P zw*2d85iMzlG!}T&YM=SaGOW2xAoFsLKM)mmgp&*H{d@9lPBOG(nmmMVd%2 z(gg%WdM_fs{d|9U$xD98dw;y--Q*@`=FXg%IWu!+PVR|A>!^_sF%Ur@5E2b_Wqk+) z7lc4ydjv2nrhND22m*m#p|uQEu;Bl14;vesot>SvwY9CSt+%)L_4T!{uOE)K2lnCO z;<~!J#%gkVd+Xxj;^gEM8yoB9=Jvno-QC^K&o3Mt9C~_s9336aEzH%_)MR92)Ya85 zFRyyPekCL%G&MEVck=%AYeN@}K0Q0-=H_N*W>!*GGBh;O*VjKiJ=N0E!YU9N8ft88 zytK4bR#ql1F8=uOW1^&61qB5uDJfA=QDS0ZMMXsc0fCm57Ah*L{r!DSP0g*Xt+BB& zetv%3y0hvJ)w{d9v$M0Rs;U(g6>Dp2{{8_&Lqm~~k+rq8iHV8F$H#Z?-YqOFTv=Jk z%gZArB_$^(KRi67qoYeoO8P$X{mYjx+uPe`XXhp+COJ7d&z?OK5)$g~?+*?RE-5L& z!^2}_WUQ~R&(F_~kB{%@=txgbZ)(%3{toaK~dv8lO@4B_iuB|Ka&u55_ zXAa-aQ&L_t8GD3HoE!9=Sq`3?xOguvE-G}LakidKA6(OXI$Ky+KpJ?IEMK~LdRz1z z-yPGCwf3^}cyjAucRL{AJ9=?_b#Qe&POR^7+b4cs$0+Ih-rRk0NI8Ap_Z=tCC(73D zR~Gt$lMi$F3CI4N@QO<9j~7p6L8H1>jTjit);cu_)Rf!zZawX9U2R4(^_U0c{&sQ` zAPnAz5PA_38n$oQruC31Wyul{5xIT5^>h%NdPvqK@?KJqNrg=hV8V-HIBBE{GofBB zfix{062g;KTBD0~2ytuAl)VZql#@m){E9-&>w{$o2qd2g@KRc{xb*(vO&u6+`_Pf< zA;tX*2ODs_e)>8FIJgAFWE9l&f;>$8Y%-iIq7S6RO*C~?jIEp<-1P68+a?5fe){%p zXvC#A3j(Rs(@<7444m7UtR)E-MnDv0ugORxC|)zBS})&_vi=|W)QL-YLWTd(I{uyp zl(ILBP>aT454K=x&Woc-S;xBavx9Q5lB+^dO}_ky2~*IOwCZ;GHPAZ2JeXx&-h5|H zku(B80D7fS_Nqlr!Zpkzg%72cVshLblk?u$;S|1QUVZCAOh-L9ff2YQhg{c|KHy>9 z}nASe`B|lNibA0BGdiSieHb^a%L^nY&M`Pv0dN%C%>vD zO7}m5jL)7b4X)fse|iKxbKhz$ueM9By&apEe~$sE2ppa*d70kazy}yeMi*I@QWjbFrDh)fSr`E4yp|DA`cu!JS}tJYmis0?gn~_W6!(TE=7>`_+&@sC+q~L zf&}rH7-rlreC>hALvHG*01q3y($jGz7e(!N9x(qxi#7As&ok{$E&41&vsQ%0QcFzv zUVGk^vrb%zglwJqjM4kML3>38Aq?k1~ zmNn;fOwSPO#oKic6NwY}UN1kxhaTlfPs^dTepL>LQ$|8fTHZ$_;P($Q+53lTl;|56 zR2Z%j&sV3IWWVYy%Mc}LT%1{Vzt1o{!rf8VUP{f&zIi5VVJp4$)$HPSFTMufqW;DB z3vzzsusyT=yJ*TuJk&SW2|_=%9QDwDCs(I$M=F$!nFa03mU*?E=BhB4_F)?^$v3)Z zpNPf@sSrQQZiEe_?i? z3v0Yka*`-jL$FS0Hz3$JIo7-M@uqRr5=q4CmF1pG^C`l|RfB1`>K_72PtnzTS|6l+ zpM0KPm&6MTSq%x2@5$&2Y4mZj>*We{Csn+C5P?Ktz30a)+w-{A6PMnP!2XMU_?ar| z+)NMAbMv!?j$kFvjC!kK?e|1>aurM+?}^;2$$L+prg4*AZ#3esD;4dZ$NMMuGq4;r z^bb|(0HEf6{-gQ1dd12^35Zn?L4P7kT?{eNC#B4tz za(mEpo{TjOjS8`DUxxmqK}gveqOyO>JV_m+oMcO`h5Yb??v87S6Rn?-l3a81tUcYc zn#qL~(#PM^7JQ_zOcR?SWl7BgS@}xLn%PMfVtgTj^E-lvHbW=c+auEM(yd~erhGc` zUlfGTNfA5q51A*Ejwr<-@FWI6ILi9uPBqGUt?8kjT#(XU1Uw16uzU+Z-I4m#%|=w^ z+lK$9`Wqprwc=d7Lz2rL`nR}KalU33fdtPDQ#4BeL(uy!&=KT4t+@Pk;@c11fV~2# z3f_dZK&^z*g&|hAcW=H6d;4&=ui2m`k?_T_NM%DoRa<-tc8wRWxET@)pKfiB7v{KG zy-<3z40?4A_$FUR!ZOaHm2^Kzb$pn8{`>F1u^jqrfm!867?CJ#tSX8bg9nn5zH4LG z8wNIqj};Vt#cXO~qEti6xZulK#?QrXCmb*S6b(2Sw@bJ(otSg*; zN?xwh%~E#Dah-q9Pj}fLoWs9H3walrKC$?3_OUOU6|goMoXgN}YkK=SuiK`iyJT&aB;* zZ~uo~Bt-!QuWp~SX}2VIvLuubqXiLiB#L@X&c5IY zc|YHh1D`I+o-aLmk0!4w2Gz}#po(z-w?77am~%A>-ZjnRx?gyNtQ$|iGwD#P4;@3= z*F>ujDnE5*0BLZy5oX;QPMwz+u@tL-$8|66_Xn71p+m3|)w6BxqE9HwR59Q3q`|9Q zYxa9w+={Iu6uAdiR$q-G-%0!%KWR+Ie1a|x^t180l9)ZhOg+rxz?*Zj`MBb~t^4fC zitBsC`Q2KL@F0sXMeyb_pwf3{uxqlFCCmWkeq$l@qeEOYJbMBE!uHVl zL7)&16I+$Pg4ZrP%_B^Ef|3$ap0QB_3}DBTc}FC;sFx&snpV!8hWhzT{wsN1_SUm` z8Qk|=qpvD}tDHAu^t|R>>KIehJtOY8!M6NK6|KNxezks|DZL}S?DsZ)1ni)_8v&I+ z+{Xz@?R$&2T}A!w-3ZVS%XQ2|0;2z-kRJ=~e8=?>lE$TPV^BBiif_Kwn!3L>*`~BT zVUoio%+@A@`(V0iy6F^2Wq`TXM}?A1;1P*ElRygC6asm`-9+Hm0ZJf(blx4d%v$57 z6Nn`Ev9;KW2R33ktWc)iTgV0x&{Kt2e8)#eBI(s9fR@{dZROUFmcfX^d>yBB&dg8bUZK~E1$)FayR zr6O8vkmWOJcNE4r3lLA5YK&gk*v)l|xQQD>*00^j?b$~Uy8ke2ewQ7$mqLuwev`APTD=ve4%))TLZ5#vcHwNgjXCr$9~kS}j;Q7yHz+#^g|>CvqU z4oE7bfm#+HeZq%sAPom_{G8G+%kLZ52`UN+ylgymy-svE6>uX3rnZj=h_I%_KcFF@ zI1!DLc8KZUS;0?(i!igl2|xEtjx3j<)6yl|e0I)uQ{ugRw^!TUbh9B#*v#S%O{kRO z9dh0R+I{jWR-em=Q=0k$jH*!px!|L=HnF1~dLOp}$4X5aAwKIt-C?Fx9fRl)j>2jmlevGG7!! zqlBWEvx)rlXHFkDjxgb&FfCa?W>)&<{Z=dxsY8xu*jy5mzzRvU9mKxf^A$G`1?6S{HtAVE}O=qtpiuo~7Zl(jKk2%>u_BbroYg2H;-r_m4}knjD5I zi2CAGON+e7kqb&A*+GLq<;w5VO$z1*j$gLY&o!f!w9ZoP4`r$^j?RKt7C%{j)>Uu% z;r^oJci+MrP^kpSXv~qFJvoo3ep$QHs!0^-{16gp0`e;Sky#~^7Q7{DF$H@@W{0>I zV3)WuM{0OPRtXB+c=6p;{z7PC%fk<1qu|_6+&kdWGUS(mhNYFMA}AiqYlMFvB>L($ z6X;g#*;e+|n9q(gd*lO8DG>c+FPdD9JH@+zF|;AE&CPkB{;NYqL)Hs~Z|sjksVaK$ zW`I5Cb433_HF-07-obs|!LFM6I;3wt!wgd$lk~DW_c`>H@7ZDj*VvusZ=wdyuyy9PKJ-dQgrPTHuPe zBEMD&;ROSJeR7Q{sD{XR*!66OD^;1CY38yH!gk6)J#B)MR~DVZ)g8x= zzePjS@I-*S`HpX*b2sSq@>uIrXVsci*Kq>+f}sv3JiFp1tU2k+tHr`-Bv*Tz&TWNG5bz52|GDK8Q!{tGr!*F0@8vRP) z+?g zMr`ay2xTTA@bfl-G9Tf}{0wE+Qx3tc5VJqjhnE9nK{EUm5 zWBo@SK|tbTnX!K%_XEicrMS}?M7~}&-Pk`F5@%hv+p2$b(djd$nM5K7F4b%N94~FT zcjH;}@QsEsj_SMgE5L#sZxH>Imox;LLg;aB5rm&JEmm2<>o_4U`_@I;Y~o)$P;K<@ z3l9ay%Mn=K0j^8~KR9VXkK49lKwpPfFc?^oKbUz;@>h;}>o^`)A2&)q&E~#3PPL8s zEyOy<>#4PsaKi2}UqevrLolDbO%zd#;JhqtGC_IBahs#|i(`bo{AtG3=3b>5nBdz% zv*$LCWL{H=upy&UYaOYbUx9&%v2W-zYUhwS(-Ka5%t&`_hg%ZxYPy$IKCQM4%6v#j z6)2k4d23&3zcrJuHJnt{!tdO`UnEpn~55p@bJKal%i|O6+c4Kd)UnP3QyR5?dzaMJ58$o{^FAd3NdN9=*rt}tQ zVO_JXOVn_SjpLC%`LUbrneu2<`honr9H=~ATge0f&b<|*F5d3BRveuNiholldv?g#KfTenJdzsk`l26bu)Cj#kx)F6aJy4^$ z_|B~BrBtk=_7+a4wRuqm2u;vBA6uaE(UN|Bw{rg&cO&a!Xw_YQonFw~HkasO6479z zn-wa5e9+S|O+~g;A{_cfOcMkAdG80dMZD#FwcJ~jXPCtI{s2O#<&xJ7yj&*gnGb>& zi=pWc8(ExcKOiGh5<~TGlAr<`cSc_kuYYV4e9_xpi*CJ9#EF&JG2k85`2?)J9}a=X z2fK;6EY8x%5-TQqdQfglpfB(S8GLs&M7BS04?cAMOyINF$Aypdz1%S`p8;&BohA5@ zRU>J?|L9aydusbv*Jq|oSBKys4O^^}fOA@B2`@0+9AoBS<8EoxETKXpJ8mlb2ukoo zCx#ItOWcrp2i+1Y9$sQ?_2nNiUN#kZ;R94u>?#?ONL&J%X~l4QxK3;c99ly1aq_>= z20u+02avrse`UzH6K!$z^xaw5*-eRv*aPt&?$@jkistqDi6$G`*1Py{zoC92Il#%7 zYM&X>VfdrzwBW=1+%&EF*?b(%!Am^TI6UYBle=iAq~~{$HS>7e{rBxa2tzC!Iu5|z zE5mRK5j0o;fPH-M|2XFDgC9*x=lOgODg?tLX?a`WN5+ir-h$!ww7m7$F|D#vEFKg= za+1VvQCS3ri_`MHg;P|K8#|*=y?BG=VA}-mrV9%71#j>z*z=o62a9k2Z~U&>9*f2f z%RqjMVhRQVbq~ziR5o&P%jBeA-7C;sKt zfKNseMT<~1=k}iJoKtdv6=tac{=*S6(fh8gzc4}C--<{;vOZ6x$LNc8fCX+y#3$dMI*~1}e{4DCyLjqs zCj^N07FzGGhCT3=+vHvh&Gq#{7qeH=Z#{qVTXyR3{wCvA$c7im$%_w-Z7lW8k)Y*8 zOU4X^WikyYnXIZZDTe;I|I7kL@z(5*PJ3BrXS_M3%9HIVXh$={Q`4AhuiUZz3ZJt8 z29uB%Q@?nEQ|4i&>DtTEw^Q*fvnn1{)4m*k;NEwM-g#|GDn3qU+`>2Ex%|adR?{VC zcDFQoTqU6I$K9cc`5TI-*DAjptS&uJ&8wwFW96U^yb}L&-e?I9ioo&7gOdaGFPVSg zw0vu05%^;*vOP`4PcK*O0&TkR;oA9@1_ZV^1V zj99#rL2jQc{OXb(ZY!KYll_5BzJAW;^A|@Wli{bc-zEl`(q4e+vje&JStiOsB6wYO z)_oJepF%v`GM4~_df18R-zPj&=jc?Az(HiR+#8J}k<(97VgSS|VE5J`BnmW9AbgU% zd}(6BhKP6|EiO_Exax}(DfNos+gV`Qs-6Tw&^Nto!V1=659vb zV-S4%%tqo2)aWljM{RhrC)<;9GF&^HPA;E4|F0_cXW9SF%WK(uavEvs|Kq9^SShCBH^ z_qYVQ%>XZwo;w%UjYVU;;Y9HG?1YCj2f$3S_|ZKA6k)|c1R*4&tI&Sq##`?!zl7rdn|O@RJ+M2mAz^j^DpVPW$gFpZ#Ph?_658SOV~JRQ59N>N-SO8P9fz zAg^872JDTC^&r#;zcw;^+JFjuLt9i1(X4*%3I4dc;0NUQ%vHT4)+}VGOZ+2Pp$#S1 ztHVBEL?n^tOB{HA0e0iZ6l0~)_LnLkLvxnb9d$^F4x1tW5RjN+t7KMfG+)cR5&2!$c#&BKC z6Pd(;<0`K_L2*}1HfZijJy7FE>lf z9V=geEb32S4v(qQ8tjQCcn%rT(8GX0Jg&FHwPPFzH&?zUOd#iZzW44b4x)@CUbyy$ z7`RfyeJaQ>8cCf3F(E{bvwp#@n8S62Ak3vKyk(s+t`u%crDoy#?%#c4v;CuSO)?t> z3GA%i6%%A0+r>S=K|kp=OS5%XcOE+(vB@9t?pT(ikktkY%^o*0DtzO4LR(7V0nh25 z{a3!LZ~R>`e9|7dLsxRJ_d;HnT*Q#L1^fHI9vG@t@x>1r)QPHisba_$oXdb%eHfuh z$vQcnh*KdDtwz=x$~|%Y)UgmzqO7&nJtwCINw*J)9>Sn{u$9 zlx4y?d*P*2qh>G-8b<33Y|L_9;KJhG=n~Gr{|#$X-u!^EbwhF;++3X7uH z{+M*De)8*iUUBZOti+9A@&;|NQ*xIu0dD91j?MGk#j2PP%t)oXBGtQ(4Gn)p4K%f& z(xghLYQ}#{fK14xXJ2ED(sNt!82>6VI+o9ifZ8q^zCwdfQu2c6t4gT?edvVoZp-J} zoIr2l02jP_6MzVV`i}~h6?Ir>J2;nEAer2jKi%CX40#SG8V49DiL+?oDvv+sjA-=t`BC|vS1*{7f*(ZP5{#4NO6)9@S8ZAlmu5B=7JI< zNmYU=VrBGe!G4VbqyHzFU#%Pby+^k--9Op=gn;B)0j(yy&kqj9Z7H1xyd&sOXirwg z4U*b-(^=(y-kV|ywy=F|qTjJu>U#96{NPHFyqj(ooCWVO1z?h3vdI4%q!iDAOyCKB z#u|VMX4=x_elGe%hiIQqHu+A;mhT0L1HSD$XvPa>XDI%5olpTO9X%VBoott)cWn*q z#%bL0CRR))SwF>ohsTG|UxTEs2V{t7nsU}UqDnS5|nVibGBsSn*0QA;65(CU-MvuY|+fla+(9lLX1CXS(7yhE<#BCMDXi$ ziN+hlgGlY^J^&#<=T!fhD(}fTcfZs~o*-=qDX(fpW^e2=ZnX37kJ?*B=1*MLn| zjIbkqosjGTP0^j-A7OZOy%{Z;@BchlVRp2#rsuPce{1r64oC=%<-VS&+06>n(*NBI zJ0*D4-)P*KJKetz3MYZry#kmc`}-YPu+ihc47-69JaPXD)@=v1)riI-o#|{>I%+i)Y?S&ai+{Q+N3YxPUu+BeV^# zT<}(cqdnk@z_rNsly>`%9`U}Co)>*1gTkM|E^+b%Jit0|eaFjo2WW?o%L4|#CGPmd z>rI&r+s*)gL<`$oFaZgDJAE6C|1^9CZ@wnO+UM^r04$LDmS+b2zW7AmGB^jO#4Az8 zfQ|`{y+3ZEC&qDju>3zZ6N_I(VFJQ@H*gtVR!@{J*!+C1FM#-H2_(Iz3WonVIu0@R zphl*hP-jkbYyZpLVIaWs7!^m$s%n+?aJ=U>!i2$YO2gI(y6)*EXvgBL6v3bE0e0U( zC`8KSvO%Np2b#e8Oj);MRB|-IGY3AG1a6K1I_H_`f#uKP**r253&0sWsrR07@;Rya zDpUET!4~`2TLn_?_zeu$aysFXKSB6mmDBc}U3rxG8&m*>Me(h!%!@Bs^thR^max-5 zeVruhv^Nw`>%JE$%mf_F<%y0>*<|>Rj@F5=tbg>CZ^%oYu+!(zd9&5_@ev*^fY97{ zGSW$!QJ#(B!<@W&?G$P_bj4qlfP|2n{n@#~%#bF99o?+ecb$2oM3%zxkn*-F6vLJf zWBL8H>t`f}aWBG!lQopB@aUZ}M~MC9KmcZhbBXtkZGN8MYJ;c<%%29#D3S2G826k; zEXds;g{DQqMPuK+h`{#R3|rF`JwNG|>`*WJgZN|NMc{ocCfrC+i~Wy^A_?|5(DHQO*~3szL{^iz|6T zuL>Ij3cAv=NKU-4rf4n#cd!(p)-rqI=dED?XVKH~k9Ql>Be?LPqMzq_zSZSGpw%Tu-IAWA~Mx+KzeYRo;-54ZG`De+1J2`o;Uv`W%IW1V+Y041^Geh9_r;d;~=i^emSY6 zJN8{uBzfT4j~J0rGalHK4*cj5%5&4i5hV{b^1>)t+shO92^vV-gm47!8PMR->`BGQ zvkIfrKwMm}BwLfZJ|jJ}z|$ljkE@W+gqXaiX6x7=9H%%dsYmy@6JqCf>%p%3%NX43 zHbbs+DfEB>)_i>!UdZS0Cl?RIMsJ1D_@hIuF4jjlB&l!;T_@CrBut+3O|pDRKYMfU z9}6I#5vMYb${mB)Pp1vnxGLR(2RSMrPlD|+;nq+iCls-e5G)VI*b~@AzqB#p*mFiT z#^XWCBA_jEYzj6p&PnPS=PYGD>!p?{trPJuzXS|kOHb3pwK38r&QVyT3`737woJxY zHU$7g`xk{dYMBpJo;q#|O}@U9J$+jkmJlD<)DXSIJe58K=#ap8HvZ?DMO9 zsw#b!V^&T(&#ZjK>nqVq@f`2)U3$5AvKv8rw0C44=o}D!-a(TwG5|c9)Q2AtmbGJJ z<=+((Wy0pMQ$Y>JGE9)ZJkQgb9w}gtB#EGRE|uXWDxvHutt0rWT(y-7`5Rnfmzro7 z8QU@?kq$j8FAWS^deQy}>)>6iMZBw;z4E&%MX5|=3 z1tk6QwV;U*Tp=l3B)^*MbB`j&M&K$U`fHh3GX7U4i>g>^ikxIZ2h>Fv9r?EIMaC6v z__QeOw1gI^acc;V_Yi0XZ|bHsU<^cNY>_U~i;-o1YI@Wzaos)ZNZjTGN!8*Zd5VT66PYH)a~|2xJ2I6qLPUW-fLBsNMV+%3xk zyMfd9e* zI#$qy@^}_a*+rAbK2R*wjNyrU!k(?z^AL`I6gMK-7Av*Fu{aE zMf$B|&4dr_Y^H?1c`lf`O+e1E;99`TLJ1Sohx24jI=Px?Mh32t$6~?PSc@;MEm$Ak zDDrda&9t2E-CM3bJr*OnShD8Bo}V_K?JKnc9 zyTT+o5}RzJiJX)Dkp8_@-C$Tn<{9;yU+>+vxaE^~%n(#PlC`+Bw5^&R{STT!bFW&U zWP982sowqdxI2jTZDmvrcbPrr{^FufLGcusgP$49fz2#7K5b$KVQ8N^6QmB4kfASk zL>PWuTqbnD9H_CWF89p>Fc?!bCnGN^q}wL!@X`qtb*?QdtePX7*}Mo;6MQy7G(?W> znBV1+ZQby;-2(OH940@+rX&22kvgE$JeTMuZ%YI{EL{MuDe>S*4#=K)*X@QIrsAy$ z4-R6SA+ZnXWsrFYkDsNB_0goSmH5yL1P=mX_Fm%XJNCI$POh$1V8G(uqZpI0%P)u% z?DeOerhb6U>IIVIGy0U?d2(iYmnA>24^FYSGMdpb3sgPm?}#ejMNFcjK#C|_kuiel z-$)hVlg3*^NwSM}@u=0~Unt8F zeQY0B$FRk8k7K5wlhj|^x<2ac%{{S=Oom>(85LnKkC}FHkK( z*aHt=qUh8|fkvLFdjFT;<9GXw zFDnm7ZNJm1`ot7DGXBELwXwHC_K*9+vK~71&%bJhpFi4r+XdWV>t8|ckSM)M~UFAn6U?-x&I-t_A3TyT7qSxP5- z5O1M;;~6)e=9i0`z3~!WNl8Jj1UP05B{3Vta_g5o;`*D#WP&Iu!0$2}e*7qV8~1OF z{05U94yx>s@XwnqM6&s84}sg;S7c7pY2em1GJA-`zR^86U(;6)Bi%J$>az_(BOvnz~2hA?URevG5&s6^$Z z&SSl~vHdPfLX}-7Oj#?UXI;kJK6xaKbj>l+6c@}B%Xar5U>L`ifp%k%yF5(22zQ4zbVC#7(W5V|Mr|g>$Ob{E(C~&!TS9+mK zgLVobMOXeg+HRD12#~UT`&p-(Y--IO6|))r1{^G}Kp6UT--soLl}ReFmRl0^0i-(c z%HN2RMr^Yj_!Aos2yEGmc#efGk``skaOmLHD0Lp*K~`h2pjT~=Tb@(&0f-)8E*4~m z^M33D51T?kGr z2Yg%=K_!B=fm6V+OfDSoc)D_7SR9CDY9NQHAPh4>EXV&xF{YBEm!6vf@T(sZ^ZDZG zysw_;Nk=Z?l9#xW3)7ylv-85yG`LVIegfN%KB3CKA1B{#C5B$%hE7S{grDzpj#1Y{ zm1#$PPb!&M%#(IfTl;Y9e}_(789sg}E{dK20+`#M^E?iQvv0i)%kKvwmXrE{tC2Sn z=p;W!)UxQGLEjE6_HB4SAd{~T4+6-VZR^L4c=TxhXqww-*`vPftJ$N@Cd0^1?Cw4( zJ#j&$fViO?qN6oVC`a+etS_V8F$jA^P$+^vE1ThoZZXK6{~_~WcKujTlpzOxblI1Q zo&Fz^-g#CO?F2c(Gg(ds6MU;bxp^kYzieGS@mI>Ntb#8AV?7 zr>GV13Lps;2%8ww9{u&48DNI^u}&6Zn` zwv;*BAI_u?-_By}F&|>Im%^0pH=96|YVCfJZfUHqhzO4NCM8w>(^>8%+4|ZF1;R>a zCi42va@0)6OFiBB_%29G9WEp%vFa)a!Jcsa?QgB=xap6br_Rx6b)2PorRRy^Wzntg zA8+2@AC7AksTO9nbbOHl1`tO*kg?*m|Ec$yV(?cTk;la`MlG?^?p-2|T+3BXD60f| z3{vxE`?udy*SKndG$xBHBX|)DJIr6ykG_2E?L=LhyG>~Q`uMEflJ?9W>aS>tC#{Z{ zKtC5kZ7~{CpJDB#Bxh8^#A>)bDlwi&-FWeF>GLuL_jfYhTKR1w4?Hbew88quH(7Y) z>5z@%EKYl|O`#FAHLKJ=9Fombn=p4qjIb!4vN+g;aDLbCz} z{WCZ})1GjBkA4Z?$8P3%We~pgSX+qM+qne8@mAOVU%`z3d`DPX~ z;|xo#mG__jwV{P(v_+Hr;aya#SzI*8PX4)!wbetUPy_h;2{uaW31*6oZ5KHeCY3 z&k6G&uou(jLe#$H-wH7nK$5-$4g#^R@HAOwmc>MSEpqQ%N+`vtxvx)#pSCFP#C7FZY zz2g9{%{bg{!1g2>=cmBOhi*UHJD-iZGH6R3{8IvH#aKL1zom1GJ*^+je-jJOL(0Z4 zEet=-$fw`chCOT8)lJ_Ix_5ZCYjrBWj+wEKr8g#}u`{VeiH;^aU`V_2;M)Z&j`x`Q z-oE#;qiaBj+cqd_SK=J~LJbvAzf*&7SslB?W)%iPR*Y;Ex(fm>d?&B!Nc6|$yuzakXD#1+I8&a%kz|jni{u!u)PlRpM~TqW{H4WH{j;_8k)N$RoSvvA{PU0SqcQT5)Q6cQ z4%zU*waJv$;T?Rv_8D;wMzhYU1t8?w9S$H`giyed-MLk9Da~lFGlM0B^04%em%Yh9Of9~pkprsYFvU|+|4|xRWpVoEMl&RGD~}d1 z_Vj>%z2nA5@2qN3F}@Fe@>uW0J^kdo6h_)X8z&3PgHBR2_N$5+VRzh5qUfhW4VRlU z!h!U>0}|FIFi!04u~Y@aW*np_QcL1K9^~k(v$oIy)iDx&Zva>^=3(F|PNZ-1iH~U# zv&S@MhkRu4g#_}Gh$4;lY*9&-bjfa5&CA(tG(|_d2d^iBV2VGdSuJMhx9m7P{r zD2;K8cv{+E!yi8AV#+7)ih7(BxVIcN1@Y`kCL1|&`N%&z-6g(8M4SR9n0h=64=PC| zMzzqXSD}`oM7TxKx+kx_;6ku3XNL0E8*+r|@_CwVX`0q&7VZ`!;XKpM49=e^0w9l* zC}@S+hTHtgQss;qVg0T$FQ2O;I!h)YU+AoZ>ys2anyRnSiK*#unlM~DXb;ISH!n`}%jW-s;Itddoq_Vy-f1S+*g~uyBpTn& zxiL7O)r{F-x_-{-G=3T+;mms7Jm6OT$XiTP<8!{oURdKOA|@C?`~)_3R)N2G|I}Fw z`CnjMh@o>*l;JI6qwXRWgqApO>GVm<8rhy;47rIRZZ2X{NUdT&3{7g6N(DknkG1m& zucH+{$$Udmgn%KmUzsT|m#nlPBOEb_&0E38<1u!GqNAY>Z*>WiOmadsq>ZY4V*hL% zj8}2$NeFjjykZ_6*Obvt^M||Ad< zJi=@Kn02>G`8{9u7h=3mp!44Bk2IH^oz~tNO44`L1#hMb$_6c74oybZ{LITa_xmOD zXwEOR)g#(*r{AJUx9N75W%XA1C89^+xh4FnJ|(f~(PcjrfvtboUV;vm1^zSqM|AOm zn3PUV8NLlm0mHhmEfLrc{71kU$PkN|#Ak=yL}D8&XbPwdr=V9qP>^*xeF;~<5Jy*y?=(H2!qL7>HOdvVf7q*)cS+0U{tgRg`R@rfja zl|9dwKQ2hoK6lgFwyA79<`3ifm=U)0!RCKh=+!fHy9wCS{oY5?UhNUYFw;W*#>6-c zyPfw7h*dBy*jHSXvj-l3$ejE#ldks2QwcBUNGkp!ug(Y0*eLD3?fiG3c<4J|cW>!2 zoM92P9V_Hc$!{f!I{GYweE!WcRjP%fX`#TWUsly0b*Jr80^b(5faSAXi%(s=-!{_) zC4PK3Ueka2W0wD}vJL_R<{Qcegde~8>)rQ(sV{u3M1N#Q4ndo9)3$RzWB=(hfUo_@ zBeG_Pe+OJfJRa7)``c7wDo}yamLZDZ6HPAg7ZKy|Y~3h1jU4eY43?Fu})!YN36r zqm}z@M~VY2#S`j7NuAr-QQPLX6drigiNHX#AFfz!&Yc{}%OCLCZ2Y^wv)ks(jSR7> zi``j~$roYjZzdAtSL$?e&6+j$PObK5Ns52vM`rZhzNE!knXz|ZbXqbC>~Q>Nx1z3^ zmO1(KZvdI^JrbCE-P`UQe{KoIoFCrY5*E^r^EXCR;tGvTJ*rvbrvvZ#wiNNZ#y|gc zm!U|_-3K$|;i3ZT>`DE+X%KJ4_hlp39IRED08ov)|9Qdc57r5-Um%{?lfOW)lnign z>rCE*2{U)v(Iv!#v^zAF$HlrT?C;2VP1I4DLOfMHp7#YHwe_L45@btV>%M`Gc8)zK zHfHWD(8CyIXAe7KbHnKHiAf(<#(QHT)+wablE+)_5wb|ue--y;rnB&?EtsDR?2|C{ z_mnt3!K81FU({CU6lUcP39p`a{c^@vca z3Q|{5G5}ufILGpFux!jZQ10I~AoB7F{L~!f{IU$^Lz}~Md)m#5}$}})NyU{p|LOXM{|v#S|u_hT810nc366Iy6z`1SGETXZwTYt zh76+iJ@fRv-=9aq#%Q$doG=QhdEnQ;1O?co_yd8NP0;y#68ZVVh=bzlSLg@!m`LGbXc$49(92=^(l}Hz5l}G^^+uyiV9=0)@P+M zlb~(NQ+ej+7KU@~Wlm2}+@4Pf&jr>E{0%wPodb@VEJb*c;PD|o!nAul$d5(K9Joi8T?+s z_8EEBaR#X&lO)%tqr=?n3?-~Vu>dwz#~hq6BFt+ez{5YK<1;+!zITh1i8`Y?sQk-2 zn^WK9Z0-mg}iQXH7qfkaw!2l%eqX+BFX8vtXuw7G2_XmN-Ys*iK{;XhFO zhl8eP7bG*K`Jg|z$w83T0lDjQmq}f?sN&P;U>(?D*@0Wfs;~KmDK>M`hrEycvU8dG z!13x0Bi0$eq70z-Z!8eXkH+f)1^12WVT#8Z_y)w~rP=Xq%ow$A*{?E4dyI{7sNNe8 zF1L)#X^cTesyHCRP?mP>f3+3TtFuCDk}Nb|_*r%rlM1u=)X|dS@kudR9U8@rzrYCXPA8;xVbD)=x&eETh*USrMd?WXZ(S z2#W+_2$x39HOF$Y9K?6=U7_nlR3@&;SsVOZ4wG7*kxv@4llh10e25fIz} z%)T<0e3)RbMLx7Miu03(Eu5IMpS^N5FH`_#egO_y@QzyaI{8b+LY{Gscqp5v*}u;T zZkR=xai9Ph>fU#J`PKiPki|1a<9nM(Fmj4e;@2TR$&J4kX{qC}Eaa0$q_m@;-`lo^ zvxxf_%&>Bvg%VD~tutjV+>s{qfX<&)VA(c$Cg@>;{=s|iGhqXN?u`U4NU7=VHu$LL zO>qCRPr`~6xo(WV7_|1IpZ5h_rCwDCmMx*>*?1bqYVML(yivIQr@)zRdFeszN_kOE zhV8M|;&Cwj0d5`g^Sh!Fx<9s9y%ozrOMl$)nFiuUMXy!~tY*I8S`IFIcY&~a-1myi zSFD`7H#IuOoo7TyD1S7!oeEF2TTgik|HCHQSw!PaxtBwO(IttThQC)dsRmB)y_@3%QOE=(1AROJ>w<0J^mPyEf(_aXSl3bEx%r&i=Y@}Wb` zi3s{wPWzbHC(X4F9Q5l%UW?YHUp)&1X&(4)7k5Q=_s-|yIyKIdEX*I zAS^vR-8-=ocrSZ+SY7B|c9vM^+Xv5LHDfeM1sLvNNq%)Lo5{37^-WsvNWui zG-cG6KEA%;63q{1u?zuHIAce?hl4fzy0k*MyvMA@UAC8u)xJ3PP=Uv|(-w;Ty1R9` zBhp<#@kCip{WgY)u|^t`E_NO6j-hj5Z}fysMLwjhK=}q5j0z$Y)a&wTjAKLalzOVy zxSZ!)N^yXFdF85(oS~tco~DUqPa@>nVcQX~M^r=ZLY04e2*licfkdg$d2$6^l?aPo zKQqcU?`Yhm_pEvOC|g4%nkOyiJnSS1l4aoeu9K7Fa_}`YzRI&mEV^(VZ9*p3HSR2X zgAIRz2)eIx7)Z?8rIUj_%<}Z|#fb<^EswNYx=Q_iN2GrB0kb0;-?FlfQyl!f=o8lf z5eK%+2zJykE&=&r4{Ah*;ABLiuQx6M%Kjm?!quCCuGTDI#h$Yp%Vi>;FnnpBrC&67!8vfs;g8P$z2rPjZb)V5EjxvNRfT1_J(Yt}Etc zeD{+L_{!R42&M)-`5YCTg}xCTjh?EMR{#5N)c#^+x9!+Ac~b)CgA!Xp`WIM?pDAX^ z0B2gW04@X3wAXLkSGOy*qP#B}DOy#p0QX0VNB~vO`2;M;l}c|1#S&f@YtV3Pe28EF zAU#WC9E*yA8S1M*kYG*(aKq`chKd$ezThDT2+38_Utl%hBhf}fWZ)>)lwirMznoFc zMC*0oU7#bAo#NWce&d@u(zSyGs1&MF3biMoTd9F08vCjHo&YD-YKl%09$WLlA!(zI zb;m)tFkLDEj#8H8xZLaSA!@-$$Hv=n7}XPIX`8e!`S!K<%HVRWtpY<6=9)VxCFXRs3G1us|Er#tPq)Q4l-U{vSKyHDToLOnvYcR&C()~WlW%FGbtN> zXHkJppf;JEL6)VX%G0j|DM=I;#5<#Y=6&%glqCAkz6W44J{)FwebKosWYJNEE_>6# z_qi%Br-zy9w>tP|{W|7zCPsoa4Ye2isag1nn-p*|k1OyP7aFGXV!@b^R33L$# zl0$wRsUbw_r@-mR1PGBhUAM517#9I>{s1UY{5ip4i` z>S)hY8g-8WmzO)B7JIb)uZI)}yN@A&$xiSXz?3sb>y1P}E?zcJfNBfCL@NuS?R+iHD81A6^S0; zc$9Q#Tzdra$Q%Ndcubs%ayVUSwKG;xHC-Z+v4wSGgPh0s!jA&-D#E3-;9}wlD=>Op z|DAi*3duh~AJR#~I;F#-iuNX?nLHmY%Z*Qb^o4L8IIg~2$6IjGp~C0dCwVTpq_es# z#JyK!DX4_2^XlWmj&s?Xh5v8FWiM#&wy_$?vbV%aEYj)!snF#^#pZtKjojmt+@zL* zHs7l6Rs4k4{_n-g+GP?xV*=+~Lo{DyG`kZ=W>xM9@UOys;32vi(xssQp`9n%xlbxg zlQdkD%@>FKv--6+Y%(p(kWYr@vDS$FZ-nnKD3mSbCJJYFt8fHLkHIN$f{7VrIu^8# z2xKlg9g!w$?R5FK3nDo=_>~H%sg)5GdrVwE{&XHS{rKh|6K9Of!l@dQ-IY3s^dvS% z@(VT@UI=_T?y8E6l8n|+UelelZmGkE#eoL2aFvai%oa$PJwxCc<-Nw6?E#{87jSY! zb#5bV;CMQ7m?^YwYS30q4DNq(a{{Os%sgDIB~l(Uofc()EXLGNJjUa?n~;mZjf%ol zzWINvbg%Z3k+#P%r~N0PDJo3DlJ$l>d8SkA0hx&?+OC(~)OQbir9_qVbaF26Hxyl8 zw`-6#X#zRFd9aYU9N$?va_dbO%+G>|34ukxBJ6nA01`Na1;P@e0x$UQ#E3{-3)G9~ zMc}hi^m5*vL`=#gY=W(bw*{Dq~g8tQe5J6Mq!4)%E6#Ev=8enU2b|fZb-BuY?G!uqS)=euhdt3DS zh0Vy~0sS4<-hNQ3%QWiC)f(9b9@$PerBE1pLhOFrD(A7sO`HuwzNU_0QJ}Q)c&XU` zY2u1>6W8i<#{Y2~aB!FfLpN&Sn5f{;bG}-aqV&LQy&)hJFSby1d(3gJ1O8aw*2e=ju zX31<{`=yLamZ!78TxqS+wYj{;COCa>ruMuXFsfbr0BTe)Ge@t8A1*k!~Kz_Hj{Au0pl0 z=#H>{#DUNOk(ZpVJhjXjG19-ChV-QIaZGQWnJ>GUQStLz-Z)-bzKM)+2Y?6sDYA|u zLA!+)vdzX_RgCSEvs}GO-2i`^>aL}h3Ao^~@mL!(kS`Va6FPRTfv!{b_JcT3($SsV z0;}9F(~9V>azF9l&8KWSBJ?p!1Il@EOaG5!hudOVZ=1@mI$hgzn#p@-<7^yJM}>{j6CM^CvC7R$6;CnX8$;PBi=}9a*t8fw z5Tu3T#1?RpVo9oh5x-Xsn*SD0iKfhE?Jcky)O)0+XiNB>XZQF3h`;dmG1>rv#Q8p* zZ80kDNS)rU2)i+!HUxe*P6gHgJXokwqAQgi2lek7zn-ZdNz(X}hZjXE$O9NIhGOml z>kt#zQUuXIW%8HIW;n>y z(wV^>AJ%1$I1!g_!xp4fKSIT{RAb*wTqPEcRh^gnk~T+xSs)V8puS@5s(#vgvfGR* zpUQ-Bj2{!uGBr}fMi%`~4bjk(wf>2+qCD;6u8B}nCRg}VxGVB=#tQKLV3>UWU>M;G z8QazxQueX3Tmv*HR4Pt&9mK77dR^qRcG}nK3kAQZR2r{v4oKLy7SDQ-6IfBb9YJt; zaW>np0X^}g`lbhR8v;Px@0G3wmRbf`F@BbKTx?au_?cB}>er%Kv5|68 z!>8?OX2jUR#GY5#{|SM^hB3B;D z_7QAvhV$k-lPc2N@FI0GNTA7I5sLBHMyOSgf0Rk1W_^KAT6)2vs8L;ugjwaLZjo)4 zgwD(Fi$^z3wm2p4&x^I#P-^mbO&)FMrJ6g>W!YK_t0Aq+H84Tf6{&XTxl>P(JH2_+ zN;p1cYk1+{?RgGn@T4$Zb2Y?80*!rhxY>%^-h1CP8I%YT3A+nm!<*sYESqMJ+@>^< z-v{^qI_CkVU*?=gjj)$?YqvhHKQ;?|*E%pYqd;SDT-AQo34Ncvg^;w$oSs307P&t6Dw&IAljIgFn-U>VTQ8;$pj=woX1 zOsAZB1TJ1q$16PW&556ncrfX~6h8H?-W?8}Gq;MpE!f?vQi7@3yc!q>uNX@ z;O96bG{-m;fMBbcFWQh%09~~8f7$DAa`_Y|{QP`r7ks(tuv+CTaR+o@jTc_?Ymgjm zV9xhczUUfOT?;h^0_~`3c&r^U|DIDqC?NKqL8>^BAUT){tQao| z*i(VK{8whI7!~FnkWCVzj z73vO96u%~5!yGZ)qebP5G)W&61mtZQnh(;M(b0{Z-Ln|M7RuNuUsQ5$i%>-xH-G8v z2{6CqNEie~f=s~Mbi~jgf}9<5o)$=>eU*vK+OZ*>tLZd$6)Yl<7phCHicDim(666E zIR8XAC4FGPS^-27!1i|%o6I8k)m&}JAWg*nIJ{^k{vypfIRV>_WMA0jP13HeCcOC| zz7-N1(}!;D^S%^wd@YSK+(Lp<3ss*H0x&erM6oio?DVPo(z%EjUN;6HFg zC*si>Al@!mV*n{eQs3{M+p~Pnx>6BnwD3D#QGkDnRjU)Bt`V0x&g>yqf3J7{VDMz0 z;59GQZBZ&ySM?5aexqWXSd+H_WPk*?~Z~ut@ELGqo9FZaGbmTWpCGJO%RS<%+ zutjiYmCgCLaI+>*v6>EK_7%tl-u*H#SEob=k`=}io;M@^()-|G2+b5rHQ~4~Antwk zlb;JfJe4o1az|L$zo(L{>O43$GMHkx=UzoW-jg*6;x(GTk1lr~L1chkg+vM58!n-p z5(2806n3T0;U5W3NC0P1x}9mZgvNVHt{Uz!b)#eui}Nb|GPk1DzX!iuxTa3$#YiXH zI}!FP;h@vBjj#ORo$KXV$oWX|=lfAdqVH7r5N)@194K39*=NWtE;SVlhZ;B@iwHK1 zIiSQL7Pk2dQg5&dFWsu?XQ+Aay8#RV6jXcqky-F(AY0vLk9X zyVCnbI~KPaB?KJ*G`E)wra+*CoCkZT!L;GbKH=tQJvPogoA>u^gTa*^`s7m zi9JOwCkMhDLbv>Gg#1*Ib}h3DJBCN|QkrnL3bBOtby!@MU6^m2rR?S(cE9rS&`8iP z4Y;TNlLqO%fEE&6UayNeMqG|-cKxb>3C3*Ygb#-+#>WNj&T0>MsSTgAxsrUoZg-&;9_13SLEOhf*A zq!+Uik}Hj+{A3Ap24rYONdaLcx+npQUOKl0| zC~pdz?8PXw3FGDW>(#hT|8+>tODV%tDA4iV34rOS285;Y&x$f67#TyL zADZK?0O^RTx<>157x|6rv**&m_aNq}1%8bR{JWzMJ zmmXblr|kPe2ORh2-BKMs5`174VaMQpSMKn4y*nvoC78HF_^zz@9calr+=fZknbb%Z zXpoRD9fud;R9fLyBmkM3g2 z5ggGX55o_N#`va|5Tyzx@T$Nfaw$jh2=2|UX1dLi)Y}T@$P!lg9p8liJ(oLAAN8{- z%;hXRRv5cqEVBY&B>fqXrWD&yS3P_F&`ICbTW9*Dp;~AlRt|;^7E91n!D(1T%vU{t zvO#qj?*cGtW)ng9ho-52h9g%D#pD9d`}XNr@GSGyOACJ69=;5r-)}SPmQ|%m=l*fj z_sour`?B~2s%#_TddELk>GCO;th{g`yh}4x#Vb55;biky>lgG6Qy%W+keyeH5?bUy zz%K?x?TZ!ZU!*t@AnFLvMI4(J1FX0=k5f!5*`ABBCMC24MBeZSYwgoGrdA9 zy<-XKL}0nVmkbPAbE(~)U55-aBwjG?!@PXkXev${8+Lrq=Uc6rizEFld_rke4=^9! z95Ew?pV9$G)cE=?baF6WFQnXg1hkVx1wQQXx5^D>x>D{_S@(9ap?f2e^g^HXJ-ix( z|4lV*;MD5RCo5ra(+-gH@y?(pBp`&Bt;LXN!z2zZCON+`{IE1hGXI&YKmTM1LpBC6 zv97_93IChUD1UJ1)4&u8tB6;X)k_g#T55JGI7e=hXX0jfZKUpYd0S2g2gIdh*5XK2QMb^^tkK?xwY{sxY-V>oF%D ztByP#0%0TQi6LSZ89eEf6mkkK$h70=Rw1+o1AhMDl26q9({5U-P>R=yWF+{}V-Wxg zQAxU~UqshK9lplX$@?$o`o1LhB~*-4R1Haet<5pHr~88M{%Q`L2iybcOIu7CFE90c zb9-y5T7apLc;X943r`19nuxe;1Yv9P7NV#x==Jcm@a!AtR{-~e;iO*<&)(-L2`@!= zy`%WzwfPRE$wRRs%45pb{UM)5rlZycGho2Id3FE|0YkX{BWOnj63_M8TO}7IdJ*W9 zHjwj~Pw4q7#vX}vCA9E^nYF^jQ3k63Z@NT+gcc*QZXi)I%jh5i&pSa-YYqy~sW2AH z;Bm2z3go`N5~c`%+QEt!?1Mq0nEl7w-@E@KsUROZZuRE#an&@V9Fvx}8rCUR)8+hl zm9i^l5M(o2$4Yce?E%FQeWQW&|H=6ObbXs%z9$Qn!|1L2qWKeooZ9B? z4z0Dj@oUl*XG20P_}|=bdp}xEj9H{N51=e(DkpoTrH z6vPC=-U=xwz#EfJ~XBJMyk=Em5HLvrJSY> zRpt1wEAg+d70*PV`6ow@xKUxe@|CS(FM2%e%umD1_@F<{{nXKxKCR zJDYwDc$}+XDXz8;u-RCqsswDjmS%2ZGEtbetY4Gv>ZL6aV5^!EgGgkY`I5KFn&S1R zE-bQlw0e?faBs>wO%wfS;J3sIbS6WI;aL#Zz8!4UZ~B?*&~30kaysT4>xLA41)r2O zphIhCUmgE?l*}6;nNUvDVRrKyXj8pI))bFLzh@9o&n7^Pcw#lxMPo}G)6xz$|5)$Z z9YusFxkNS}&4j^`pJ^Tp~!* zW7Ve2p9~m43XKMs%g9p_1Zw$|uYEfGP{*fW$Wwzi`I>&)TFPUat3Fm)G)2TG`cPp} zOZ8f)lT))O-DNhjo(+PijuVCs&s?X}Gswo4$;iz4CbBb*<^A{GV-bau+Rj`x$Wspd zq_Rs(Ilz*Zv$VQLtkj>kH_`0iRy-NvL6M5!>Se&A&-STS-8dex5$68)DrsnwW~0d& z$%dQoz<>ch{cyR@z{?7UeiPs*2Dl}l(C$^OXzdcWV zAcbGM7L=BOElI4tN_Ti6rDUQ6S=(DI;-O4w8YoryzJ|nIta0syKy>g*e<4D6a33FN z*$3oR2KT+8X?%*;M1orK=VL?2^f19?p2_ib$aN~a+wVtA`^{Gm-N;aOxuiofw z+1PR1nj-@(^bB^@AA@%rossRD$pP`pu@jiUk%EwVg`{!SlRp|ZO-rr0X0(`By{?PJ-;Z2_E0qCOT97ZQV!0>oD9=m71H>0$3a zza07bL2CV0-Ra^t(2pq)Jyu#3Min~zyNd=jMszP7zPmadXSyJ2`N7G85n)5X8jQaw zPkEp6-k$)e5KA7P!SEQ>np{O!B)xC9zAJJo-;Q1kO&vv)gZb}6j)zp5V1gjZxY%N^ zy|?CV)3zIbW$$U=^{#4;;!<1aOj^Ae zzzgV0-`(dYGXum19=x_WyFd5A*B@Wp?(&zvKO5&`np-7Ki3ahiL-GaOE9bK_LF?t8 z&Eb!1k>@l^q`5s_Cv9@I8{CJ}(HY!_e<|W2k(RGq?q^+v$1rF^6ML!iS#R1};_~|1 zj)sBzoxt@3=KFQ)s^_5uR|eqKVwJX~VZXFv-#6EL>%>&+#DxQlXl+<89U8O>*ixTX zD(rfCxcK2wh<-rSdLX;3Ao;XplEV`S*U42Ot(t?Q(m*pHMF`cbwoA@u`AB(->1pg_ z;vc`1zr#9fc&{6!5gR%%bn(1wHLX_Ps=~=vKbZufgmyq%DSUe30bnQ^VS?@T3Rzbg zFmAczSgLL2{_FP(6YPT5pPg9y8yv7QxIs#EFv0Q?2fInrlFOH#t=HFjt8SADLRyz! zyPTA~^cbC1k2Z*P>s9QDs+BrwqVEYm+o3e|FnWh_r0r$I2r@&9KZ#3qg-?3rjU#G< zbl1xzoBJ!ibMHtuYe_`d`&VgKB`q#s+&RvkKfm$*n+HVarNYRm;ru*iJ6N=*FAknW z*}gzY6+$=(5!RJcyj@fFJHND}4M$-R0XIyj;9UtD7Ukr%y9af*3h)it{iQCzn8@0> z{cSCy@ZI3T$B~3a$&~=a{^-2a8Jk=-0GSj2(=;3A(oc7uCJ4;tJ&K5xjVc4ac1JLgXh z5d45(=OV&uk|$)V2)5$aiVh%;7qK8I{YLrAn`;GCNFPNx`6@yZ#Yre(LVz#8_}Clg zkr&(xZi{?Lr(zJ>4(Nlp`l6hJLo)JL%gMiT8@yrtFfrZkjrTOKRag zI7ZCpbY;Uh-@U{%jqHy=NT_cIpWuL8KsdGVhfdbiXIKFiDcm1U?36<2ug$nE{TV)Q z&b}g2uX9CyDj&+HjqRl)WU(pO$K_jOn1+4IkhQaf>890l#^u9%VekB^@fF#bQCA;ZG=(S=3mbCP8B~7*Gzq=e)*>=xUQkn#$6l(>y7BMAv z%ZKh5T)OXT)Zoj#1>S31?D6 z#&jABqAac00wX|MA}^yw#ZVSu(3H9lh!i#L)Q^#K3hyL?d7Z{dcdM}#p05J&+NmxR zm;3_(3k@IOiC2`~Fx5%hzMEFNKypbgC5@~Y-ad(%CtJ4ehqu5m@YM=V;vDw!QgueY_piJk|Z(WEi-7(7IB>Ztk&u zZ_+zN&D+K}B@a(zk#l5`dDNnFL3 z*N{w^SBCBU9=D;BHkm*kD4^RP6W;C$XTNDj(&iuOx4UiR-KVc7Hgl^$>pZq_EL$Ya z8uSDUnj#9K9tMtn(y2_9!&H_w7tkarR-NxxT)Htp4`VC?V;iOtwFU!nlP)EG;e9fr z?iv&qQtoR4EX#m0`HuO~eY&?vZtT21l?fFvOm_IMtT0NN&6;u~*Xl3z)TYUNt&oCo z+6H*w;n>2B_c20yjn&}yAA3|Xq_?yq`6yHz zMAAnWVP87kI6Yu;f}Q^tg; zly9ytHb?R_baTok%lud{X$7;zNT~jqX8k#eY)qzS1@^{2uHk6uTy~`Bc~!C=O~Az; zk&;2J0Xv{zomkNoFUl3tKY}<5O1eonPSGAHE4@CspeW*!f`We&3mfhO7vf}esPyQY zYq#8yJXsoXLM$nas@&gdFUCJ=GKgZrF6q{#q;F|b=i43ey;Ot$EFI}WD6_L+c!N1@ME+D}h=728g+4KWPBzsX4#giOOQei!-qtP!4Wv_ zvS&y;zO2qV4?-=Rf9(kRb_9zvoB|(mi39nGu((u%H-aWofK^!)B=a%^BG`fOhdx6p zZFp+9KD*Lbvevs++P^Qo#Hh+^M6mIm*YwSdx!ccKO1oSKJdJqb{@GkdTnrs~s5<-< zwm$pk%5|eBvwX2BefICZFB=pDwGvApC73Y7@tEfD{ef_X=N+@7XxXFpe~GxQdRfro zVfdWA@AFyb;h!6wf{x6+7bWN3T<67}yA2y^e%O7j`JZG)X1Gt)17uSgWwnGw10QV7 zdvAm;10=g<41C2?^^?7CtE%)@pp}^ptIclkY^TB49t4gGGMNqa96w2d%x%>Lned3x zZer6e2yLcR{4`O~WvkY9Zh#2;>saAh$_2n9FW@;pIPi!04v@)~(PGkGn|Hvlv zm#y_4=|moAh!Xl9w5R5`=j-ojN!sP${%kV)_RWJWl&=mX%LU$nU{OK3v1vI$nwEht zAt3PtU{eJ-SWa-)Ns!z{#6z7;>fB#4L#~zRgDr6{6PIDgX1_70hl315cNqu<1wbIa z!5}$~-RwHh3v7ZA_sp1HezJ{wU(m11d7_Q?(f6mAzs?ig`pGuj|q8MXb>qGcEpG;s^xDI zkRe(qQM)C`uC+*vkPm&raK+}=w)xDNYo81i6d+7S0+!?;TB9RjlLs+VU@jFw?ZbUI zK2JcAC?Eoixf}(m-D-i{QGi95j71J}DNMHefhWOMI02vJ{r?Y0^vXIS$xhV%d3^fx z3tF%8HXkqNvl{REprgH{#ja?tu8?yr+f|ZwcT{|8|(eaf9>@x){R1Guiio1l8b}ziFOBB_-_EO zzpN#LmKx1lokg2&fpj|I0q$RWSm#%s#`*36YplBj_l z0AhI+h;`H`@YPhLG6{H;9ROi_yUk09Q>Qh=k7ZWJVUCqpzJt}+QNL4!Skqnm?M9YS z`YsLCtM}b=7`t#`{5nzv`BR$$8StQ9U!qN0>*B>tih#X4*u~S`08b`ws%vYZf~;j` z8qf99tTqYo+Hv@e6NwiGa9MjvZt_9%2%HdEAcVWtspU>?N|`+NekFMS3q_r2g{BN` zq@Qx>rsl%&erks(!x6i)Yv6cPcHG?D_vh)XO6XsgBtKq4@`TbKv2As1iwBRGeKqDF zF2d|%S*#%FQM0r0W4P1_6r5$8`)o>&0XEt1w7bIp(9HKaiV!Bab+4H!ll|Ygqb1G+oKFe=tqp*h1kQJ|(dLW9voQr>6%iFlnV?)CH!kx!!Hd9R4J``f1`Z~wSw@(x2ucA86zV{V&Hw}t~~RelIuBi<5SZ` zETR{F7%lO0=N{^ZeV=!R*!=j#sN#jB8Al|go>-meEc9&!5;{Bz!U>z5&eBlO*(C6X zE%4|+4YpI`)erbPvtgS--1$qJt|O5^QSHbMCvN_|Oy~t|+QxrMS(c;pD2UrasI~~O zxGSa$t-{)^)1T=ZztGoUi|u`^xfnoLKw!F#D0ra~HiiA2n6~d}biWqvK~GvUtR%;X(cjk?|p+wKW~!^)dYX@rgwpuf%1{lYDS3 z_Tzfe>QJ-kl|=PNl#VD;?CfTXXvoR73Ch_3)6XA6v;He;i)860(t@Rtd~ehOc!v`H(A;8RE> z;eioLsUsQQ;_#YErvY-aG{{yM>%$QPO$Lut00Z92Yg1?7b6LfPg6o^@L~xT!%+#L- zuY?b4UOf(6hz!2ecWgsDNH7JZj0#-u#6vl$@yC;?Ej#)xQ=Fmu*x$1JG61oRK9_LQ z8+Js}B(U=>9dP{hf`Do{(Fx~tTMNMf?|nf(9*#D-3d9Lm8&-Vz&v-idKTMiICPsN+ zhl*yfgwQbjBlwal@Y+!^Y2|@pk+UxrPk<=GzayTVY>yk+YM~5#bB!=~@j&YwKi?h~ zJIs&Z#GcG`uLf*U!_~??lr2nQ`6d;}S#Kv-$xzXL3Kv-Jfa;R)BXiAN3u^;ZlsUv> z*Hn@1%$YhwOKb@p(FI6-7b#ypgux=j%9lWQRU{SoWT>)&jcl3+O9swKd+u_j0SB|^ zlo3NTmevdZ(=!^gUU}QNh=SA3>(wwxUU+&b65Lcj!Y(-w*{3CQ?qtnqc@?>KHFNMl zYyMHHS~mwk4SPZ^e-}n7B3n4F6xOZ+s!Hv_ttR_4tj1^Iu5-R(XJcZYL zW+4f#-<}Va1mLyLDzOOoJ^-;Z4m~cXVC(X6A@{hiqJjS7g!!fxSKQC?m}jzmGK)Sk zZa>c5nGbQ;{pd~8*`g>xXILYVFEy@Yve<@S3LpkG*))v=zch6J5GvwGPqRKajLR1K z6g2$D_i|&8n#zfb^rSLC7Ex_pe|nC{joSxq{`N6)_UtVD^E+TR16Sw%DR|s(xhn2R zA}8R}+`=FMW*IM8xZ&UCmNHtiKGpLNn3IlLdi8_U$ilc}LgmL^_mnHXq@cWa!WlKn zblIZI^a7tP?AzWZxdh8WxYgTyiaFA;EqiX5fhV%GvQR8fLtI$yBHu!D*CTz?(E-kk z6Sl|q>}SIwHZr;zTULV;ihjm9W7<%`)yDWbCaegYG*Uj%$vkb*kPftwYQc)ekoxA2 zI(7E?ndZbpe$tgpf4wF#ri+?IJWK?9qDMTu9)I?Mg*NEE%8^T~{)$*^=)zkB_aDXG z$|URqe4jD8wvP$_IyZGR!Qx`D4|PX`MWbwXQ!AKTc~(1WnoY{I_a?-N^cO6 z-WPV>^qMTv=DV!%KLUpG0~Jzp5-FTA=%Qc4%RuLVy7Q0y<`%}e!VGZw?J|{QtkLt? z`xVH2KvUTZ*)|_^^WfUaU(o&e;gHixl@5cjOWx+=lM;0{vfO9<;)`QT zk&}#=ZNHHB5t0&#@xR57LQJsFcs*wD^Z#gVpkhy1y4hm2h-qcDLVzJL%8%C$`bM(7qW5dw4dj~r8ZS2L8i znaPH7d*TJpJNP$^$kLzsyTdO?`%fv;Er^AeGs*CpEM)2Xm;x=4&?%=}5L9NxSn$Pl zK$78|Q~WukkW3I(NRM4JqoJGfq6AJ;h`R%(>AS~2n*B4%YLACMZ`?n(o%?b`lHE1a zkG2gC^|Ty4`xM#3EQta=E&F@LGlYhoyhGi^=w^`klMPKat$BG_!Y4Qeoh4z#2@w`Oz6FD}v=Jr?%{FHF=slH8-D1pnFwcSjw!LPubZy)@(F;O8{GaTJlZw>8&fT2o4i zok^we?O%JtG#m8&`b7)*YchNhw?!rchXdU)JD#gE%kxgudMaA!1TO1 z@Ae7QIqEVGOTQBrjCqqQ=T`n;DMC0xM~H#()ufUGxicSNfnMQ&RpFA?dx?fz&waGkzgWk%!Zq zq#Hi`;3>EHaO^B;+MjyafO;CAO)AMQ6%dkRi{(|(cYHgxXpjQbV~~qiz#u1;eFapw z2nzYFp{$(R(t(aYHKztRpPu6$v9sLNi6T@uhUkwb{mGXNS{q-Um*%8OH|mfTBnXOI zmtqlQp7E%%7+WD#iEp7^V+{R1bdTpbP!WkD8PzDk$v0 z8Eel0k@t&*!g_oNJHxw(aLdQ2!j2No%#?Pu8)FMf2KLTa3E140okAi-(JrlFcRppBdx+K5;?Ft;Uj&yvWxv3w9X(RxT_XmS!8>D@;l-wT%u|~x#5Cq zc+C>ADV2oA^!JcH?NWih>;qRYWBgf~2PTf9gHVVN&v1%}!9gZ*;mmBJ61<FzQ}}$Pe4r|{^MLG` z&QAqtRPYZN{Y{fkqyM-D+^q;dQZ_~X$J{o;_I7ZPheU@uxp!Lqd|TZp$7018uk74pfE|D2OMFR=-ytPLP1GPrQuW#Kjxf6^T1cdJcm>qlmOX$aWn1IBAl+=>Fbz|)P@cw7T zs-M3MVgq}G^}id?bY4hByr3Tdx!Bw5Wqo{_S#Oq@QrU&v{sO;|+ zyg}Q%3}AU@XNMm|F-3s%+2h}o;JL?$KNhztoM=aKo5TxRcTfe@!+Qg0P5OSc1op5m zwOTq?R*e$_@=WaJame{O)kdSLb!&KBiZJ5j)Psx<YqcUF2RF9OU3d%(;rEwq(mZu*6g=uMTB&qT37b3y2PYlGK3&Wjt}2?pvpSgHe$ zxqPg8Xz*e!Ukz4+um}E9*9Q;(aX!_cq`~`sV{y3Jkzzh`++zp+X8wy=%yi?)ZfoS5 zGK=X+x@mgRXI)Y&y#V}2bgw~J%`xT|>HkMzfu4}<|Jc&Rm;Q#!6D2(vaClL5GdWGJ zH(4}SV~MXaqV8+k@^sw`=S_y!pS3V;#W>AZBhx$nKO7l4o*44%E4aS4VlL^+tBUnd zBz%HbuN7^QVUOp)M03XUTZk5q_{eHDO#YDwT%3O;VUTz_F!(~p`LO~`Fe}T!`a=5M za12RnNU6$_E*BdcZecjZza#+)x!wbRUx?i$1~I@HXyGP84RrvYHkP z@1|{|=U`qfXuzZ#>xzpkb@);ed0!SXv{azhAypUW;`v;H%dvQKztEB@(yd^XNVwg< zg>u$68N2pj&!6Q_A0<(g|Bb&IL5Yr;RHFg!QR2D7kBGk!><3e*s5Zo~V~q(VFJ3&A zc~t*#t*`mW35S4Pa9X%DRbTn~_aj6W<{^kI5S|I(iQ0cN{>JZUX8o1eAWXYNp_^p0 z`^1J1L3^lyW75?h-fhe8QwWQVZL`6|M^oDW`~XKnOaF^{6uM0wo%xq9rz3F~#>A#Y zhP9Qcda(QNQ#Qcl639@88Ufu?}M&W1FmF-}ms?%91q-*-4TmTOr#p z82eh1FqVpBiIB3CeK#UfNw&zAEMeUj~qOGnpd0Gc|r1rtNauT*$1obBsul3q10vwQly-jgj>kew=s?oP}w* z!?J*F*%G)LrKmX1H7@1P$iEV^vH#oOBRuKK{-QtMEx$k3kc<SdL#)W~G=C-8wAOmJBLQAFfb+E@nPlq7ykqk?;K*me21 zBr>swQh+w?p5^RawwjTB zw%V|=PKxKVam@3Hq74f=@`MqQpB}3oLGmWI!kmgd(jMLxwkWaF}%!`(UAfcnkp;8uAXU{9q_ER%pMM*X7{_Lni^gD1ND zV;=7B0uoTzMBFKJuqZoJ(1nQoM=)G&N0U(taYukCpWi&#sRY!B(9y9N%|6*G8d=KXFJ z(5~x3-viJl`DsAzih-l|)2wNXHU1V|byk=%>gdmRLgz3+Z}7KXDBtI6~c1M}FdXhBnc zi#AW?mpcAJv*{Epzl~_N$Nyi|-a@{A*Rbm`_j^!Xr>T?eaX&m~;m%39ycq);OJLXJ zRqO*^d$A7s_=}|dXlFMn)lsA#TgoSy$eSVL(~ZUur8`~?xrSdP8@x9RBHV5zGhM%# zD3Kagln-V$Dx*XM%CuR%rL{zBJY6u}kEv%zSV9pC?}DL46({Aq2)s`*&Xb6<^T3b* zLC|9Dc+#m$DT?Xw^qi*wDf~n+PSgX#{tMW11OrmzM{wCd9x(5Zd^#-x-v)|VhAJXM zL8{hfs}t4PU%NQ3T;g}1YwhOm|q=(1?Ie-ZAc-f09YqVAfK zn2)wISGR8udpnL!j@iwk7PaicL}P=OeD!@!Je0MG_V)hGuP7**Kx6ak>J3>{R!k9c>45(V@%Y;GWvhBJER=@EG{hBHRNKQ1;J@w?v$$2T@2KDSB#=v$O{h zjV_}`;Au`RLj7OWo9021>je+Yj-wQ($4SHu1qY$2^}sZnA0ozwsQh_6F!AtqV5b__ zt<-qpF3!xcO1hCR{bQ*#7G9rLM0){>VO$ z`b6wYNd?EMiT%0HS8fYVhS&J0dU#PT*MmqQ@Fo@m_4$RKA^oraG=AF1&F-<}AI5RT z!?pjGdq#csk2n?|ag*f;%9vMvcw!&bu5vxO8*fwp&*uYUv$tJNY?9opssT#qBRnuY zMYzqk%}aGAw+z=^7|nZ1_MB1fpMXxhn#g_WOw4Dyb_)QMq9Bj_qN8V1BV$ln?Clq% znoyn6_Lt+aOW-%wwl0uy%~!G2cjwD*b@Xx@2xO&F`T%4%NmZ9`E38V2yY%`%I&}d1aG4)NTTDh=F9Kuc1`D;TsYq9eH6u)#Q!R_<3Iz?MW2La*CzxT&}PUU8LL-MSPp&9)p^$>w48?UflP z-Hr>YmknO*vl9HVa`=g{-CDI?#%i57$tQexx51XEJlTVSI%DW`!|Pu;1cpe=1^+Jp zO*v~?RNuFqjcB>Yu8uD9qv zH_T0QeIL8;!c(3;MW9#a`vmClxZc9?+5${`LB@Rn6t*2$Fjxt1@(|MR|7LPlSoJMX z#aY&xsYol(2kC=Ju*t;Uv%L?c74#dqITPj666k{ArL&YG;VEdEHy}Z27r+?Z&_nib zF}Pwp1>Yx#;J3(Y=_wY&DYvJ9Z>D(^vc9nA0B*v8n7|32`yAXx*9oD>568i85cjD- zPqzdp5!ory>4oqI&w<%RB2Jc$W#5G;Ldz0rg2r|M84Ebv25t6pz`e#K^r6-mw6&+IaM33z%o&-&NP zBbg0)FLnC6PpyN74Ti=Cl1xVa{J5E~RRQF%^@d_raT^Er_pxS6Pv$#ZGu+MPr}vIM za{dghY!AB6FIK*iMf5|F>pWL#(4(7J@IjlE{K*w?n6Z_y%*SH*#z?Y~)m z4ZsA{hGB<4;vS`JfJ$V8kjG6$tsZS7GkNv8eWqhSeX>W&(x-aMr$7UKeA0Ph_ zBl)YVxM!5LJj<;!u`N#k0j-7TcgYD~t{$9GJeHLGPHsJbf!CzaO(>hKLROa4U~&d#x~G z^hWw;>%Vb!X>BY;>FA7(m_tdf<+qeFjKD&{v_hTD+hC>j}t>0Im>my z91q>Et5)7{atzQ-M8dK{`k$?MXH)uKH;Q3QKn6($G_D5h)b5cixqwHXl-{e3jVVR6 z(yf%{ZPb5xJm_Pu@ILEV22+65ZvkVapy{|IrEIl_&C}3rkt1(A9c-m z+fng1;wnQPTmG3W-2Gc%f?YPu{CU|0SFlGvqg=V^%OD^`xLFT>PIdR{&#TL6$1mik ziYIld4izSto6VlQP3+-Fzq<&rQi*plzX$LcxnjGo=E{>D6a?uISfiN$S9Ez$pJ>Kh`aSOiYAN&VN2UnI zeBZ(Tq~OK|f{BN7=2QRsg4b|sLIDEWal23Wfo_Ia>XYUSyv-oM z3kwn;Y+B>x&lmk+(aX>)>SNny(Qg`vKgLt+q6Pf<=?cvZ3du5)y23=FlxdU{&^!{P zwbUsHYAnjcSwC6p$>xS)_3~eG3nw<#^*QK z>jYUv#vUzjOG_pC#T3}MFvvJ6l3i{)pC5ajPWN2%FA=57SL7)sEOldvrRH>liC**y z-qA~D>~do&$(aG-N3JZ;b+%yqfHI!SZ0R4`ujYjBV4B|2j4NmvM(f7N&t4Wu8k7q; zw_$ZZ;5P+xb$4_q;ucQ^Bz9@Y+`R3p26^(wt}C_|*6vYi=v>5DFe~veR$Mh2EK`q` z)GhsTha$|BRCLkg;>DTX$_Zu_G>@LApaIvDPi27!ld~vj!G)a6oZz{)bX2bepMG>P zO)Il^FtHb67jxCF?oxAZ> zM%TvHNf^IrZhFsj<306Em}fYwim#`x;$6_0^-*ez$zF-oX`TjEC_^8jsQj!|F(>~wbC}tcpJ;WOl;B!D-^*7P{OSi$ls=H(%`3eOO_xf@#QMx{ z8&&O8g%nYx^`@NxDj|JJ&L>@D++T@dr{^vV!Ig5Tqk+|0yh9T>7o%|XJJnv`+3UF~ z6@UnhrG+Dl2Zj4*bBu4purTxHPY2>sgZO(~!9cT$&?L=^9gK;&R}P4Kb>haLvaYGF2>szAUqdk}5U7P^2r~Gw=w)Ay^&N z!6(}l&*5<-Ls6Er3l6K(qtFCMkf28|ll;x$mosl^X(tzA5xozrT%(&-d0sNIDnErP zoLg*2Eq>db;@`a#WNUK^L4p}MJsB=60_JE4toJU{u#nf`35+k@eKN9NmH-r(&L3jP zoM)UVHpN&oICf^Pz8?KESwdB-VcAMWy>jqO&Nb2W&Ur3&LABJnaxxh0WRn}P!^#d3 z_&1@^Z7kwcnZ|z@ruSWD>6Iy(UsMjG+3!`O=azb9AUlsNdZlnqFg(NvLosIrKO4K! zk}>b~JjiyLMKw%nqC>_cRflFF@B^fM9Bk11J+5pP!i>%SgF!#Y8dp2iFgHR{B}3jl zfhpD3kngdUTc=z@nO7tBtp%hbXkuwejC{n;Uwn9^KtI)|Z_w{7Ilc4w@cU;ti4%|n zGJB_!LH71(-qXQ6;9#rnatjse+hTap5mz#i^oSRB99|m7}?b+lyB-e zlOjB(Ax!x)JIw;*r>*%JMgM_N;qE#t$wmYZnEs9`xiGoEGsW&us;h%rNC>3j|B@nM zD7cq86ZR-hrGVAL8=EdVMI`Gk)`&YsvFUSx224PM_V;-RzRw{XOgr1)sF4cIqA(fX zsPRRb$EW6aI>L3~!7*=93cKnX%!tS9a|$l43m@orSR$nf!_4QcEne$td(*Iljd%xl z)5L2TMR$+3hK_gQhddzUyb_3E2~sMfL~U%g%huBR z;gk;GN)A?P=)Eq@DJ|Sw=92cxBO;pJaw&e=07T84`Q<_GUO|~@h2~>2dzb$}1`|uy zH@h4IpRpuv+EehMYn%v>F6+=hJE%EE-8JA5upk~trx7*FV?F8-{kf>ih*hLVyRadV zPenzv$CAiA@y=UX&c9;!G34qSG2gB$X6VE-V@+;8IYow{vPKV!JXy;~zaPI@z6Vi3 z)c7`f#0p(hd0?TgyS`FvA3-aULn)A1a-|k3o(-5kEFw*w_28kN*EyYRWM9Tm7PE_y z(gX+`(!)6p;##vLd}>as)8HgcfF~`PFC}v0=3Zi`z85Y`flHC_v8xmaqvj-jjIkz_ zc_BN6zb=q4MXLihm)A!Z{G#4i{igROAoV}lit;x;6Q)4RmIC9$xQ=_WJIgT2&3Kqt z95@2z)AR;lu!BrG=!Fhvn$3?gDGl`>$@mMJ^s3j{5dMbs>SP=2%y84K=HUctS1Mp_>1m-A#${e>y zRcO!d0dJQWygT2S@i_QZp6c}Mb7K~^RNX+0!YdPb%H7kv#=i~gbU9wK&stRfH5kOC zvPd-f+_S^$=!DCs*+xcq{adna@RTWNJ%-nZ+2F+6kPMYO_YVTD<02Y)z$J3lonTA^ z;uuN2;*tLNuX!`IQ@W*uYiHE?dFVH)Vc`Q|3jZJrDU7lRXU_4^{ zs2O)Uy$?;FCHYpuWYXfOa>IsU>ednDJctYXjFhLVXmG)MP${N0Sn_T5bqz$_HbU=M zKsVyTzrr8jxZg?R=9#{E^9an>RROfYBOSJT1i_q5XyGPs-u#gpQ&B*?#hJEq0|ML)hU_Y)E2uxMuJ};lQDj-Z zMz?bo)M+A1@{d_~#IA2stllP%(uYAqf)vfXwZKeq9hUTQ;BF`c{&f8dj}!5Rl>b#} z5*K_+wGT|8{A}pplLT6ZB#7>0fI1V8;qQjno+|xF)$O5pr5%HSR<;8UOPu--oQb!u z*VusSkFvqEm0e?7e$0mHhk;H+dsMGj3U02BHhWuYr>&9|G#f=2rh;-)LqnV~pkgFE zF%Gwd$IUror06=qukFC7v{`|)*;%@USlr3Z424C*`U1yrvC2x$j? zN`ol4fM1=79w@9S3d;lEY6s|`;QpBf0S&Larda6%F-IM%jkLceloc)Lpw0waWdj49 z3Hoo08|^_}U$=S5*MGitcb=m$=5OR(XxOGh33mq2OMW@KyzRv0akd+`;mp-5J`Z%` zlA$SG%B26^{pqVrlK$Ayysp{vcq>2AcbT^B*WW*3A2<1vp&XP4yxiFJDQ3z)u*=Ul zbj00vf|EL%)cQZPnuH47+NZdO7>V;E{zOr}>bVm{{BiwL1ItoJ=ChZYyAn8_>FhH& zp=wdF_j4xdcf1@;v%M?2-lBsp#;>A=?+w+3bTG)!yKyZ?24XNwXXg;~EbfYHmKR1i z4@3FjVys4A2!6!2C_f_oJiss!1GDX_$)ogNoz)wqb9%sao9&GtF0(|F{Qmij^XD;H zB2g__)KT-imkkPmgiSJfiO#;xnOAhX-M`nFsoLR$#bJ1jOVc$J<_NZSwuVje!*@Rl z0sm6ash_8rS_l@1+t zjdy#iH8mB&A$^xsnXYCi8Sjd|EBdnBssmY6una0FhczE4R2y+V;l)IfU-ojUbcd-9 z40yd8s?do(I2(AKYuVJ5tE@wr6a&(-$llD}ta`oTCNp|P)h;8ZGDkUup|v2BhTTNU zdJ*pOe5uU6<~uX?k9Ln8Y$251Sz(-W=Jypy(<`UxU^D#YbMh+&7Vi!twQOvcs`^uUyvf=Zb%*HBpQq66hge*7Wb%m6xPROEv`wTa z5AMMVtb?!FsUE;YbHD%5X>-jN>(i$AlFP9ecLrCSN$(h7L_ER&a>A=jLKi-t?0%KD z0v!-&D0j)*E~eVcsp6Rtq{%b(e>zj!6i)nZKnJTBhRy&_8}Qt{kzy;(l#fE3iqq-6 zFzL^h#1l__ViC{$AwBgAk;5CQV#GdQ=+^|Vq>`sxkh>5mjvQF+4*Ua(@}R$9>X{~?ebcl+AjJ6r+)_%LNtNz}+Z_GlfmXnp#)nA+zS|%RyHaR>AZ-M+V4Ev)rGCZmi zIt!>!fBmGt}6MgiVW28^y22&XyOn_Wp-I(RIM*5YvBklk4ENJMPJQy!CKG$SGR1GIw zfS6m=2Nhpzj^@_ypzj2)oyc$^QzpHLV9;L`Bkv93GuuM|x&h*Ia)py=;(qC>deJ=1 zm(|vhaj_f1Ni|?D$TK%WLvK9QjLFc5XGM==_OuoF12{z*vLLpBLvtH*-t(IJ+-ufXh|gE1qXB*PDOhViu)D- z22RrbYT@r_14Wy_h!nUEk~gC#U2Je5&Jy66N$`Fvf1C$V_meY`^1!K~My-nWf_oIZ z^2^Kir!_yh5=9Y~wK(ZZu7UQfVU1D4X4ApP;#5M->_R9|X)j>aMDfv70*SC}z!m%6 z=rV2A+rfjtBr_|LRv_!_uR*1<*P%y2t}PVpt)qbdD9|K&8@Hl>rYZ+%E2^=T$=~e* zy-%Eb_yXs-Yr%#+$kIi7xWW_L0BFKF=%T1Cv7?wBEA9%~>5s@hk}U;4gc)#R@8BHR zn*dfcHW3a15fubUbNCuhB3CDI8IH7fY|9=^00NBq6oVCBcKhQ}OWBq&^*|+@=`_HV z?L~=`un^|U-GfOf|-pTbrh zbqghFmUSW)><(2NlBC)G=QYu69zVWA-kT1m|5NCu1|E)FD?JXx{YrEo8a4wbN9P+?UsQriluy@#wh+#{|9y=UXM~bp`t!z)9?j56`v zPy4w@k;vPzdA{EaBZQSG8pp^9vNM){${t)cwbi6T(guFxAQZMoSYY~D2v0mTI<%wV zLcN28bZr5P^6%CA9Ssa5B&72^ihlGtur|`hzI=R!z>jU|xQ|i9=IWOE)Hz3@Fp)8S zkZE=3(Mw=o2U+OctQP=#1e--IAhxK=b@{9wT;D$a3d@FcQsdR+d7P)@%tCMuF1Rq* zx~bMfE%$&r!uXAVc}hCs5o52gnK)^{mA3O#4opTXI3ZVN3Q%Dx?_x{tWpHq!LskP} z_@8u^mKbJQmUE;HZgC2s@PO*|-z(0snv6SFVe8Czc<%cY zK8w2d3Tq>hfFI=Q2mqooA{{|*MBT1Khmb{xWtW}jtG6x@;`mUw1JjAxJ0pI!-Je2K z8P>&!ca>+tbGX5EsV*^=8`sH&SxZNuFb|75V4^C}McQmmttMD*EURn^=*8X(jAky` zq7dj{E3eiREH{-=Hij_nvp+8AtpUuK61N~f*@hT9Vb8T5>%{8oF_m{`j>>4RF+fkS z*_o%oS37fQ$!OizdK|gB{|z4*>tuV3n^PSj8a?nJsoZP?+giCc`>rpPKS zE^PxTzLBrX(vdgG`{8AQkS@q9Q|E2#3+YPBZpbrkRO12}p$Og%^Ef?pQpt5+l2 zuHyx$%z|S;5cjFHqc@TBU{Pia;cV8$_CGht_L-B(MGF8wSa=~up1>$8`~;ow$GIof zf-4?}O*Bm8Zp`}nX6N{~YFzGs++%5k{eI1#VVa$iffAEssS9DfX$Q0sf)FA33Pppx%rHa_xI9y4@$_4X-Gbh zq6J}(PZ&PkSpAIL{7;h;S%16^v)G9*fp}_*7?z^hfULP*d1m`g}G0-UkvYWLV+sEq3w&7FAiQi@VC z0|V1^cO+x6cE!|SXq_4FVmx^^4{?vB6sCs=Z7V~5=C6~x62-nxeV_wA%?Z<1zko#W zXE$*sPn9gqJ*DwGEE8!>m%S>P>;-VY2OY#lE>A7FrD<$yB3X!)3NjHoW5(^yum zPzeYvV>p^ZU?}wa&ok-9NM{s%_%t{?&zM)nusq@ywZ*I(LqM`-#^>(3Kz7e)u9!wd z&B3n2M=^Z(zQNGI8T5Nz1n~t~Q5=X_V!G%8DtC8*2h|74q|`Tzh#tr2QQekXouXQd zKVE=SDHLd-q^s=s>P%9I8au*V0G8VGY>Zp_=-`23ud#fTt!UHon82=iLA&)6VJt0cf$jR#ul3ERFZFGPW9FEIwys_ z(kufi{?0f>PF2RR#5to9qceX*F0<(vP#0|orDj|^rg-tQqb8?BL)h<0^E-<;C*G-g zgCh>5W#w~;#Ajnq<_!naHD72DiKE-8Hpgct2Wi$m(Hwne`pVy}OBF1Z!OIGfoe!a2 s!(PgKBkAHyJ Date: Wed, 29 Aug 2018 11:55:21 +0200 Subject: [PATCH 32/39] Update blog post --- .../_components/binary_sensor.wemo.markdown | 20 ++++ source/_posts/2018-08-31-release-77.markdown | 100 +++++++++++------- source/images/blog/2018-08-0.77/social.png | Bin 0 -> 29960 bytes 3 files changed, 84 insertions(+), 36 deletions(-) create mode 100644 source/_components/binary_sensor.wemo.markdown create mode 100644 source/images/blog/2018-08-0.77/social.png diff --git a/source/_components/binary_sensor.wemo.markdown b/source/_components/binary_sensor.wemo.markdown new file mode 100644 index 00000000000..9b304f5fc61 --- /dev/null +++ b/source/_components/binary_sensor.wemo.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Belkin WeMo Binary Sensors" +description: "Instructions on how to integrate Belkin WeMo binary sensors into Home Assistant." +date: 2016-02-20 00:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: belkin_wemo.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +ha_release: 0.14 +--- + +The `wemo` platform allows you to integrate your Belkin WeMo Binary Sensor from within Home Assistant. + +They will be automatically discovered if the discovery component is enabled. + +For more configuration information see the [WeMo component](/components/wemo/) documentation. diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 0e070ccc489..2e7ac236fa5 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -1,35 +1,43 @@ --- layout: post -title: "0.77: TODO - UPDATE DATE" -description: "" -date: 2018-08-24 00:01:00 -date_formatted: "August 31, 2018" +title: "0.77: Authentication system + Hangouts bot" +description: "The new authentication system is live! Chat on hangouts! " +date: 2018-08-29 00:01:00 +date_formatted: "August 29, 2018" author: Paulus Schoutsen author_twitter: balloob comments: true categories: Release-Notes -og_image: /images/blog/2018-08-0.77/components.png +og_image: /images/blog/2018-08-0.77/social.png --- - +
+ +
-Auth enabled by default ! If you had auth providers configured before, recommended to remove the configuration and start using the default config. [Read the docs](/docs/authentication/). +It's time for a great new release and it includes a big change: the new [authentication system](/docs/authentication/) has been activated! We've worked very hard on this for the last couple of months to make the transition as smooth as possible. Updating to this release is a non-breaking change (unless you had no API password configured). As can be seen in the video above, when you start Home Assistant after the update, you will be presented with our new onboarding flow. This will ask you to create a new account after which you will be able to log in to Home Assistant. -You might still have applications that will reach Home Assistant using the API password. This will cause a warning to be printed. If possible, ask the applications developer to transition to use the [OAuth2](https://developers.home-assistant.io/docs/en/auth_api.html) to obtain a token to communicate with Home Assistant. For non-interactive scripts or other applications that are unable to update, we are planning to introduce a migration path for components to adopt url specific auth tokens and also introduce long lived access tokens to replace API passwords. A list of impacted components can be found [here](https://github.com/home-assistant/home-assistant/issues/15376#issuecomment-415890552). +Once logged in, you will have access to the following new features: -If you were using auth before 0.77: - - Please remove the auth providers from your configuration and switch to the default config - - Due to changing how the home assistant auth provider hashes passwords, you cannot rollback to 76 with auth enabled unless you remove `.storage/auth*.*` and `.storage/hassio` + - Change your password + - Configure multifactor authentication (TOTP) + - Manage other users (limited to account created during onboarding) -The iOS app will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will require a second login when using the webview. +Although it's possible to configure authentication, we stronlgy recommend to stick with the default authentication configuration. If you had auth providers configured in a previous Home Assistant release, we recommend to remove the configuration and start using the default. +It will take some time before all of the Home Assistant ecosystem has been migrated over to the new auth system. Home Assistant will print a warning whenever an application connects to Home Assistant with the legacy authentication. This will help users notify the application developers to transition to use the new [OAuth2](https://developers.home-assistant.io/docs/en/auth_api.html) authentication. For non-interactive scripts or other applications that are unable to update, we are planning to introduce a migration path for components to adopt url specific auth tokens and also introduce long lived access tokens to replace API passwords. A list of impacted components can be found [here](https://github.com/home-assistant/home-assistant/issues/15376#issuecomment-415890552). -Notification drawer for lovelace. +The iOS app will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will however require a second login when using the webview. -Hangouts +I want to say a biiiig thank you to all the people that have been involved in the development and testing of the new authentication system. It's been a big project and it's been great to see how we, as a community, have rallied together to tackle it. Especially a big shout out to [@awarecan]. -Device registry!! +#### {% linkable_title Hangouts %} +And that's not it ! [@hobbypunk90] has contributed a new integration for [Google Hangouts][hangouts docs]. You can send messages but can also configure intents to handle incoming messages from specific people. Very cool! + +#### {% linkable_title Lovelace %} + +You didn't think we would forget about Lovelace, did you? This release include a new notification drawer thanks to [@jeradM]. It will collect all persistent notifications and configurator entities and shows it in a new sidebar toggleable from the toolbar. ## {% linkable_title New Platforms %} @@ -37,12 +45,6 @@ Device registry!! - Add ecovacs component ([@OverloadUT] - [#15520]) ([ecovacs docs]) ([vacuum.ecovacs docs]) (new-platform) - Add support for NOAA tide information (new PR) ([@jcconnell] - [#15947]) ([sensor.noaa_tides docs]) (new-platform) - Hangouts ([@hobbypunk90] - [#16049]) ([hangouts docs]) ([notify docs]) (new-platform) -- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) -- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) - -## {% linkable_title New Features %} - -- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) ## {% linkable_title If you need help... %} @@ -56,20 +58,21 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Allow wait template to run the remainder of the script ([@lhovo] - [#15836]) (breaking change) -- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) -- Update Xiaomi Vacuum to new StateVacuumDevice ([@cnrd] - [#15643]) (breaking change) -- Update neato to support new StateVacuumDevice ([@dshokouhi] - [#16035]) ([vacuum.neato docs]) (breaking change) -- Remove homeassistant.remote ([@balloob] - [#16099]) ([api docs]) ([http docs]) ([mqtt_eventstream docs]) ([mqtt_statestream docs]) ([notify docs]) ([splunk docs]) ([websocket_api docs]) (breaking change) -- Merge insteon_plm and insteon_local to insteon component ([@teharris1] - [#16102]) (breaking change) +- Enable auth by default 🙈. It is no longer possible to access Home Assistant without authentication ([@balloob] - [#16107]) (breaking change) +- It's no longer possible to use a trusted network to connect to the websocket API. You need to get a token and use that to connect. ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) +- Script Syntax: The wait template will now continue to run the remainder of the script on timeout, the original functionality can be gained by setting `continue_on_timeout: false`. Allow wait template to run the remainder of the script ([@lhovo] - [#15836]) (breaking change) +- Update Xiaomi Vacuum to new StateVacuumDevice changed some services: `turn_on` -> `start`, `turn_off` -> `return_to_dock`, `toggle` has been removed. States 'on' and 'off' will also no longer be used. ([@cnrd] - [#15643]) (breaking change) +- Update neato to support new StateVacuumDevice changed some services: `turn_on` -> `start`, `turn_off` -> `return_to_dock`, `toggle` has been removed. States 'on' and 'off' will also no longer be used. ([@dshokouhi] - [#16035]) ([vacuum.neato docs]) (breaking change) +- The previously deprecated package `homeassistant.remote` has been removed. ([@balloob] - [#16099]) ([api docs]) ([http docs]) ([mqtt_eventstream docs]) ([mqtt_statestream docs]) ([notify docs]) ([splunk docs]) ([websocket_api docs]) (breaking change) +- Merge `insteon_plm` and `insteon_local` components to insteon component ([@teharris1] - [#16102]) (breaking change) - Remove unit_of_measurement from climate entities ([@jeradM] - [#16012]) ([climate docs]) ([climate.generic_thermostat docs]) ([climate.knx docs]) ([climate.maxcube docs]) ([climate.sensibo docs]) (breaking change) -- Adds support for routers implementing IGDv2 ([@dgomes] - [#16108]) ([upnp docs]) (breaking change) -- Enable auth by default 🙈 ([@balloob] - [#16107]) (breaking change) +- Upnp component no longer enables port mapping by default ([@dgomes] - [#16108]) ([upnp docs]) (breaking change) +- The entity registry yaml file has been removed. It is now stored inside `.storage` and should only be managed via the UI ([@balloob] - [#16018]) ## {% linkable_title Beta Fixes %} - deCONZ - Support device registry ([@Kane610] - [#16115]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs]) (beta fix) -- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) +- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) - Decouple Konnected entity setup from discovery ([@heythisisnate] - [#16146]) ([konnected docs]) ([switch.konnected docs]) (beta fix) - Device registry store config entry ([@Kane610] - [#16152]) (beta fix) - fix error message for cv.matches_regex ([@heythisisnate] - [#16175]) (beta fix) @@ -84,9 +87,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Revert changes to platforms using self.device ([@Kane610] - [#16209]) (beta fix) - homematic: Make device avilable again when UNREACH becomes False ([@klada] - [#16202]) ([homematic docs]) (beta fix) - Change auth warning ([@balloob] - [#16216]) ([http docs]) (beta fix) -- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) +- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) - Fix device telldus ([@balloob] - [#16224]) ([tellduslive docs]) (beta fix) - Update trusted networks flow ([@balloob] - [#16227]) (beta fix) +- Fix hangouts ([@balloob] - [#16232]) ([hangouts docs]) (beta fix) +- Warning missed a space ([@balloob] - [#16233]) ([http docs]) (beta fix) +- Package loadable: compare case insensitive ([@balloob] - [#16234]) (beta fix) +- Avoid insecure pycryptodome ([@balloob] - [#16238]) (beta fix) +- Change log level to error when auth provider failed loading ([@awarecan] - [#16235]) (beta fix) +- Blow up startup if init auth providers or modules failed ([@awarecan] - [#16240]) (beta fix) +- Tweak MFA login flow ([@awarecan] - [#16254]) (beta fix) +- def device shouldnt call it self but self._device ([@Kane610] - [#16255]) ([media_player.plex docs]) (beta fix) ## {% linkable_title All changes %} @@ -95,7 +106,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix magic cube support of the Aqara LAN Protocol V2 ([@syssi] - [#15940]) ([binary_sensor.xiaomi_aqara docs]) - Upgrade beautifulsoup4 to 4.6.3 ([@fabaff] - [#15946]) ([device_tracker docs]) ([sensor.geizhals docs]) ([sensor.scrape docs]) ([sensor.sytadin docs]) - Allow wait template to run the remainder of the script ([@lhovo] - [#15836]) (breaking change) -- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) (new-feature) +- Add trusted networks auth provider ([@awarecan] - [#15812]) ([auth docs]) ([http docs]) ([websocket_api docs]) (breaking change) - Add monitored conditions for Unifi device_tracker ([@cgarwood] - [#15888]) ([device_tracker docs]) - Netatmo public ([@colinfrei] - [#15684]) ([sensor.netatmo_public docs]) (new-platform) - Update Xiaomi Vacuum to new StateVacuumDevice ([@cnrd] - [#15643]) (breaking change) @@ -119,7 +130,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix check config packages key error ([@MartinHjelmare] - [#15840]) - Update SoCo to 0.16 ([@amelchio] - [#16007]) ([sonos docs]) ([media_player.sonos docs]) - Upgrade sendgrid to 5.5.0 ([@fabaff] - [#16021]) ([notify docs]) -- Split out storage delay save ([@balloob] - [#16017]) ([hassio docs]) ([onboarding docs]) +- Split out storage delay save ([@balloob] - [#16017]) ([hassio docs]) - Disable assuming Optional type for values with None default ([@scop] - [#16029]) - Update RitAssist to support maximum speed and current address ([@depl0y] - [#16037]) ([device_tracker docs]) - Handle missing mpd capabilities ([@logic] - [#15945]) ([media_player.mpd docs]) @@ -175,7 +186,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - deCONZ - Allow sub second light transitions ([@Kane610] - [#16170]) ([light.deconz docs]) - add_devices -> add_entities ([@balloob] - [#16171]) - deCONZ - Support device registry ([@Kane610] - [#16115]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs]) (beta fix) -- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) (new-platform) +- Add multi-factor auth module setup flow ([@awarecan] - [#16141]) ([auth docs]) (beta fix) - Decouple Konnected entity setup from discovery ([@heythisisnate] - [#16146]) ([konnected docs]) ([switch.konnected docs]) (beta fix) - Device registry store config entry ([@Kane610] - [#16152]) (beta fix) - fix error message for cv.matches_regex ([@heythisisnate] - [#16175]) (beta fix) @@ -190,9 +201,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Revert changes to platforms using self.device ([@Kane610] - [#16209]) (beta fix) - homematic: Make device avilable again when UNREACH becomes False ([@klada] - [#16202]) ([homematic docs]) (beta fix) - Change auth warning ([@balloob] - [#16216]) ([http docs]) (beta fix) -- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) (new-platform) +- rewrite hangouts to use intents instead of commands ([@hobbypunk90] - [#16220]) ([conversation docs]) ([hangouts docs]) (beta fix) - Fix device telldus ([@balloob] - [#16224]) ([tellduslive docs]) (beta fix) - Update trusted networks flow ([@balloob] - [#16227]) (beta fix) +- Fix hangouts ([@balloob] - [#16232]) ([hangouts docs]) (beta fix) +- Warning missed a space ([@balloob] - [#16233]) ([http docs]) (beta fix) +- Package loadable: compare case insensitive ([@balloob] - [#16234]) (beta fix) +- Avoid insecure pycryptodome ([@balloob] - [#16238]) (beta fix) +- Change log level to error when auth provider failed loading ([@awarecan] - [#16235]) (beta fix) +- Blow up startup if init auth providers or modules failed ([@awarecan] - [#16240]) (beta fix) +- Tweak MFA login flow ([@awarecan] - [#16254]) (beta fix) +- def device shouldnt call it self but self._device ([@Kane610] - [#16255]) ([media_player.plex docs]) (beta fix) [#14516]: https://github.com/home-assistant/home-assistant/pull/14516 [#14557]: https://github.com/home-assistant/home-assistant/pull/14557 @@ -297,7 +316,16 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16220]: https://github.com/home-assistant/home-assistant/pull/16220 [#16224]: https://github.com/home-assistant/home-assistant/pull/16224 [#16227]: https://github.com/home-assistant/home-assistant/pull/16227 +[#16232]: https://github.com/home-assistant/home-assistant/pull/16232 +[#16233]: https://github.com/home-assistant/home-assistant/pull/16233 +[#16234]: https://github.com/home-assistant/home-assistant/pull/16234 +[#16235]: https://github.com/home-assistant/home-assistant/pull/16235 +[#16238]: https://github.com/home-assistant/home-assistant/pull/16238 +[#16240]: https://github.com/home-assistant/home-assistant/pull/16240 +[#16254]: https://github.com/home-assistant/home-assistant/pull/16254 +[#16255]: https://github.com/home-assistant/home-assistant/pull/16255 [@Alexxander0]: https://github.com/Alexxander0 +[@blackgold9]: https://github.com/blackgold9 [@Danielhiversen]: https://github.com/Danielhiversen [@Eriner]: https://github.com/Eriner [@Kane610]: https://github.com/Kane610 @@ -385,11 +413,11 @@ Experiencing issues introduced by this release? Please report them in our [issue [media_extractor docs]: /components/media_extractor/ [media_player.frontier_silicon docs]: /components/media_player.frontier_silicon/ [media_player.mpd docs]: /components/media_player.mpd/ +[media_player.plex docs]: /components/media_player.plex/ [media_player.sonos docs]: /components/media_player.sonos/ [mqtt_eventstream docs]: /components/mqtt_eventstream/ [mqtt_statestream docs]: /components/mqtt_statestream/ [notify docs]: /components/notify/ -[onboarding docs]: /components/onboarding/ [openuv docs]: /components/openuv/ [panel_custom docs]: /components/panel_custom/ [remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ diff --git a/source/images/blog/2018-08-0.77/social.png b/source/images/blog/2018-08-0.77/social.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1bbec92016bff7ce9928a1bbee627c738d9357 GIT binary patch literal 29960 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 Uo3%q3^-q(Ef~I_ptOfYL0r+yu<^TWy literal 0 HcmV?d00001 From eb1bc588e00890f6ade1e8312d38fe18d8b01fc7 Mon Sep 17 00:00:00 2001 From: Marcel Hoppe Date: Tue, 28 Aug 2018 00:39:59 +0200 Subject: [PATCH 33/39] rewrite the doc for hangouts with intents instead of commands (#6096) * rewrite the doc for hangouts with intents instead of commands * Typos --- source/_components/hangouts.markdown | 179 ++++++++++++++++----------- 1 file changed, 109 insertions(+), 70 deletions(-) diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index ba290e276f1..66340a0e49f 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -29,98 +29,137 @@ The authentication token will be generated and stored internally. ```yaml # Example configuration.yaml entry hangouts: - commands: - - word: testword + intents: + LivingRoomTemperature: + sentences: + - What is the temperature in the living room conversations: - id: CONVERSATION_ID1 - id: CONVERSATION_ID2 - - expression: "My name is (?P.*)" - name: introduction + error_suppressed_conversations: + - id: CONVERSATION_ID2 + ``` {% configuration %} -commands: - description: "A list of commands that the bot should listen for. If a command is triggered (via its *word* or *expression*, see below), an event is fired that you can handle using automations. Every command consists of these possible configuration options:" +intents: + description: "Intents that the hangouts component should understand." required: false type: map default: empty keys: - word: - description: "Specifies a word that the bot should listen for. If you specify 'my_command' here, the bot will react to any message starting with 'my_command'." - required: false - type: string - expression: - description: "Specifies a regular expression (in python regexp syntax) that the bot should listen to. The bot will react to any message that matches the regular expression." - required: false - type: string - name: - description: "The name of the command. This will be an attribute of the event that is fired when this command triggers." + '``': + description: "Single intent entry." + required: true + type: map + keys: + sentences: + description: "Sentences that should trigger this intent." + required: true + type: list + conversations: + description: "A list of conversations that triggers this intent. If no conversation are given, every conversations triggers the intent." + required: false + type: [map] + default: empty + keys: + id: + description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*" + required: true + type: string +error_suppressed_conversations: + description: "A list of conversations that won't get a message if the intent is not known." + required: false + type: [map] + default: empty + keys: + id: + description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*" required: true type: string - conversations: - description: "A list of conversations that the bot should listen for this command in. If this is not given, all conversations are used." - required: false - type: [map] - default: empty - keys: - id: - description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*" - required: true - type: string {% endconfiguration %} The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity. Make sure to use quotes around the conversation id or alias to escape special characters (`!`, and `#`) in YAML. -### {% linkable_title Event Data %} - -If a command is triggered, a `hangouts_command` event is fired. The event contains the name of the command in the `command` field. - -If the command is a word command, the `data` field contains a list of the command's arguments, i.e., everything that stood behind the word, split at spaces. If the command is an expression command, the `data` field contains the [group dictionary](https://docs.python.org/3.6/library/re.html?highlight=re#re.match.groupdict) of the regular expression that matched the message. - -There are these additional fields: `conversation_id`, `user_id` and `user_name`. - -### {% linkable_title Comprehensive Configuration Example %} +## {% linkable_title Adding sentences %} ```yaml # The Hangouts component hangouts: - commands: - - word: testword + intents: + HassLightSet: + sentences: + - Toggle {name}. conversations: - - name: "someothertest" - - expression: "My name is (?P.*)" - name: introduction + - id: CONVERSATION_ID1 + Ping: + sentences: + - How many Conversation do you know + error_suppressed_conversations: + - id: CONVERSATION_ID2 -automation: - - alias: 'React to !testword' - trigger: - platform: event - event_type: hangouts_command - event_data: - command: testword - action: - service: hangouts.send_message - data_template: - target: - - name: "hasstest" - message: - - text: 'It looks like you wrote testword' - - alias: 'React to an introduction' - trigger: - platform: event - event_type: hangouts_command - event_data: - command: introduction - action: - service: hangouts.send_message - data_template: - target: - - id: '{{ trigger.event.data.conversation_id}}' - message: - - text: "Hello {{ trigger.event.data.data.name }}" +intent_script: + Ping: + speech: + text: I know {% raw %}{{ states.hangouts.conversations.state }}{% endraw %} conversations ``` This configuration will: -- Listen for "testword" in the room "someothertest" (and only) there. - If such a message is encountered, it will answer with "It looks like you wrote testword" into the "hasstest" conversation. -- Listen in all conversations for any message matching "My name is (any name)" and answer with "Hello (the given name)" into the same conversation. +- Toggle the light in the given location in a specific conversation. +- Return the conversations the bot know. + +## {% linkable_title Adding advanced custom sentences %} + +Sentences can contain slots (marked with curly braces: `{name}`) and optional words (marked with square brackets: `[the]`). The values of slots will be passed on to the intent and are available inside the templates. + +The following configuration can handle the following sentences: + + - Change the lights to red + - Change the lights to green + - Change the lights to blue + - Change the lights to the color red + - Change the lights to the color green + - Change the lights to the color blue + +```yaml +# Example configuration.yaml entry +hangouts: + intents: + ColorLight: + sentences: + - Change the lights to [the color] {color} +{% raw %} +intent_script: + ColorLight: + speech: + text: Changed the lights to {{ color }}. + action: + service: light.turn_on + data_template: + rgb_color: + - "{% if color == 'red' %}255{% else %}0{% endif %}" + - "{% if color == 'green' %}255{% else %}0{% endif %}" + - "{% if color == 'blue' %}255{% else %}0{% endif %}" +{% endraw %} +``` + +## {% linkable_title Services %} + +### {% linkable_title Service `hangouts.update` %} + +Updates the list of conversations. + +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| | | | + +### {% linkable_title Service `hangouts.send_message` %} + +Sends a message to the given conversations. + +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| target | List of targets with id or name. [Required] | [{"id": "UgxrXzVrARmjx_C6AZx4AaABAagBo-6UCw"}, {"name": "Test Conversation"}] | +| message | List of message segments, only the "text" field is required in every segment. [Required] | [{"text":"test", "is_bold": false, "is_italic": false, "is_strikethrough": false, "is_underline": false, "parse_str": false, "link_target": "http://google.com"}, ...] | + + From 3db342f545676a92038ac6a4bb70d2c3d70a29eb Mon Sep 17 00:00:00 2001 From: Marcel Hoppe Date: Wed, 29 Aug 2018 10:57:15 +0200 Subject: [PATCH 34/39] Update hangouts.markdown (#6105) * Update hangouts.markdown Add an important hint for captchas and a best practice for using a second google account as bot. * typo --- source/_components/hangouts.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/hangouts.markdown b/source/_components/hangouts.markdown index 66340a0e49f..5400f81ecd0 100644 --- a/source/_components/hangouts.markdown +++ b/source/_components/hangouts.markdown @@ -22,8 +22,12 @@ Fill the form: * Your **Google Mail Address** and **Password** * If needed, you will be asked for a 2-factor authorization token +**BEST PRACTICE:** You can't write messages to yourself or get notifications in a group, if "you" write the message. The best way is to create a own google account for your hangouts bot. + **IMPORTANT:** If you secured your account with 2 factor authorization: Only verification by app or SMS are supported. There is no support for verification by prompt on your phone. +**IMPORTANT 2:** If you are sure your email and password is correct, but the component says the login is invalid. Wait a few hours and try it again, it might be, that google asks for a captcha which we can't support. Google official don't support bots at hangouts, that's why we have to work around this. + The authentication token will be generated and stored internally. ```yaml From c76e262bcbaba2d728c6bd22e12cd13096fdc1d5 Mon Sep 17 00:00:00 2001 From: Jason Hu Date: Wed, 29 Aug 2018 02:58:39 -0700 Subject: [PATCH 35/39] Fix a link (#6106) --- source/_docs/authentication/providers.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index a2949c2f557..aa1508255d7 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -56,7 +56,7 @@ homeassistant: With the trusted networks auth provider you can whitelist an IP range for which no authentication will be required. The user will be prompted to pick a user to log in as.

-The [multi-factor autentication module](multi-factor-auth) will not participate in login process by using this auth provider. +The [multi-factor autentication module](../multi-factor-auth) will not participate in login process by using this auth provider.

```yaml From abf846f2c4c2e7afa1f6db050e54b5e910e79bb6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 11:59:37 +0200 Subject: [PATCH 36/39] Add link to ios app --- source/_posts/2018-08-31-release-77.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 2e7ac236fa5..7bba4fe9fea 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -27,7 +27,7 @@ Although it's possible to configure authentication, we stronlgy recommend to sti It will take some time before all of the Home Assistant ecosystem has been migrated over to the new auth system. Home Assistant will print a warning whenever an application connects to Home Assistant with the legacy authentication. This will help users notify the application developers to transition to use the new [OAuth2](https://developers.home-assistant.io/docs/en/auth_api.html) authentication. For non-interactive scripts or other applications that are unable to update, we are planning to introduce a migration path for components to adopt url specific auth tokens and also introduce long lived access tokens to replace API passwords. A list of impacted components can be found [here](https://github.com/home-assistant/home-assistant/issues/15376#issuecomment-415890552). -The iOS app will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will however require a second login when using the webview. +Our [iOS app](/ios) will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will however require a second login when using the webview. I want to say a biiiig thank you to all the people that have been involved in the development and testing of the new authentication system. It's been a big project and it's been great to see how we, as a community, have rallied together to tackle it. Especially a big shout out to [@awarecan]. From a80ec3deec28a5db88e1284e6d5457b81da59c59 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 12:05:17 +0200 Subject: [PATCH 37/39] Add blog post for proxies --- source/_posts/2018-08-31-release-77.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-31-release-77.markdown index 7bba4fe9fea..c7f472d726c 100644 --- a/source/_posts/2018-08-31-release-77.markdown +++ b/source/_posts/2018-08-31-release-77.markdown @@ -29,7 +29,9 @@ It will take some time before all of the Home Assistant ecosystem has been migra Our [iOS app](/ios) will soon be updated to work with the new auth. It's already in testing. The old app will continue to work with the legacy API password support. It will however require a second login when using the webview. -I want to say a biiiig thank you to all the people that have been involved in the development and testing of the new authentication system. It's been a big project and it's been great to see how we, as a community, have rallied together to tackle it. Especially a big shout out to [@awarecan]. +If you are using a proxy server (NGINX etc) in front of Home Assistant to provide authentication, check [this blogpost](https://blog.ceard.tech/2018/08/turbulence-ahead-fasten-your-seatbelt.html) by [@DubhAd] how to make it work. + +I want to say a biiiig thank you to all the people that have been involved in the development and testing of the new authentication system. It's been a big project and it's been great to see how we, as a community, have rallied together to tackle it. Especially a big shout out to [@awarecan] who has done an amazing job on this. #### {% linkable_title Hangouts %} @@ -325,7 +327,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#16254]: https://github.com/home-assistant/home-assistant/pull/16254 [#16255]: https://github.com/home-assistant/home-assistant/pull/16255 [@Alexxander0]: https://github.com/Alexxander0 -[@blackgold9]: https://github.com/blackgold9 +[@DubhAd]: https://github.com/DubhAd [@Danielhiversen]: https://github.com/Danielhiversen [@Eriner]: https://github.com/Eriner [@Kane610]: https://github.com/Kane610 From 79c74de77a7fba42ba7ef7b64a1746ea5f7bc788 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 12:11:43 +0200 Subject: [PATCH 38/39] Update date --- _config.yml | 2 +- ...08-31-release-77.markdown => 2018-08-29-release-77.markdown} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename source/_posts/{2018-08-31-release-77.markdown => 2018-08-29-release-77.markdown} (100%) diff --git a/_config.yml b/_config.yml index 360563d2a1c..60823e3e2d0 100644 --- a/_config.yml +++ b/_config.yml @@ -143,7 +143,7 @@ social: current_major_version: 0 current_minor_version: 77 current_patch_version: 0 -date_released: 2018-08-31 +date_released: 2018-08-29 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2018-08-31-release-77.markdown b/source/_posts/2018-08-29-release-77.markdown similarity index 100% rename from source/_posts/2018-08-31-release-77.markdown rename to source/_posts/2018-08-29-release-77.markdown From ed0d61f8f28be7d1ce230394c1ba4bc5e8e25a3a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 29 Aug 2018 12:12:14 +0200 Subject: [PATCH 39/39] Emoji --- source/_posts/2018-08-29-release-77.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2018-08-29-release-77.markdown b/source/_posts/2018-08-29-release-77.markdown index c7f472d726c..fdaf74551a6 100644 --- a/source/_posts/2018-08-29-release-77.markdown +++ b/source/_posts/2018-08-29-release-77.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "0.77: Authentication system + Hangouts bot" +title: "0.77: Authentication system 👮‍♂️ + Hangouts bot 🤖" description: "The new authentication system is live! Chat on hangouts! " date: 2018-08-29 00:01:00 date_formatted: "August 29, 2018"