From e4d63479f128eae1060e8e3601b9657aed27cd27 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 30 Mar 2018 15:14:07 -0700 Subject: [PATCH] Add release 66 blog post --- _config.yml | 2 +- source/_components/homematicip.markdown | 3 +- source/_components/lock.homematic.markdown | 19 ++ .../_components/sensor.homematicip.markdown | 18 ++ ...arkdown => 2018-03-30-release-66.markdown} | 305 +++++++++++------- .../images/blog/2018-03-0.66/components.png | Bin 0 -> 30754 bytes 6 files changed, 229 insertions(+), 118 deletions(-) create mode 100644 source/_components/lock.homematic.markdown create mode 100644 source/_components/sensor.homematicip.markdown rename source/_posts/{2018-03-31-release-66.markdown => 2018-03-30-release-66.markdown} (64%) create mode 100644 source/images/blog/2018-03-0.66/components.png diff --git a/_config.yml b/_config.yml index 24306a17450..a4af2a187d1 100644 --- a/_config.yml +++ b/_config.yml @@ -141,7 +141,7 @@ social: current_major_version: 0 current_minor_version: 66 current_patch_version: 0 -date_released: 2018-03-31 +date_released: 2018-03-30 # 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/_components/homematicip.markdown b/source/_components/homematicip.markdown index c6e374ee099..631720114ce 100644 --- a/source/_components/homematicip.markdown +++ b/source/_components/homematicip.markdown @@ -7,14 +7,13 @@ sidebar: true comments: false sharing: true footer: true -logo: homematicip.png ha_category: Hub ha_iot_class: "Cloud Polling" ha_release: 0.66 featured: false --- -The [HomematicIP](http://www.homematicip.com/) component platform is used as an interface to the cloud server. +The [HomematicIP](http://www.homematicip.com/) component platform is used as an interface to the cloud server. For for communication [homematicip-rest-api](https://github.com/coreGreenberet/homematicip-rest-api) is used. To set up the component: diff --git a/source/_components/lock.homematic.markdown b/source/_components/lock.homematic.markdown new file mode 100644 index 00000000000..cf51b178481 --- /dev/null +++ b/source/_components/lock.homematic.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "Homematic Lock" +description: "Instructions on how to integrate Homematic locks within Home Assistant." +date: 2016-06-28 08:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Lock +ha_release: 0.66 +ha_iot_class: "Local Push" +--- + + +The `homematic` lock platform lets you control [Homematic](http://www.homematic.com/) locks through Home Assistant. + +Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic. \ No newline at end of file diff --git a/source/_components/sensor.homematicip.markdown b/source/_components/sensor.homematicip.markdown new file mode 100644 index 00000000000..65350fc6023 --- /dev/null +++ b/source/_components/sensor.homematicip.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "HomematicIP Sensor" +description: "Instructions on how to integrate Homematic sensors within Home Assistant." +date: 2016-06-28 08:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Sensor +ha_release: 0.66 +ha_iot_class: "Local Push" +--- + +The `homematicip` sensor platform lets you control [Homematic](http://www.homematic.com/) sensors through Home Assistant. + +Devices will be configured automatically. Please refer to the [component](/components/homematicip/) configuration on how to setup Homematic. diff --git a/source/_posts/2018-03-31-release-66.markdown b/source/_posts/2018-03-30-release-66.markdown similarity index 64% rename from source/_posts/2018-03-31-release-66.markdown rename to source/_posts/2018-03-30-release-66.markdown index ebcabd3abd2..3f75c8cf6e8 100644 --- a/source/_posts/2018-03-31-release-66.markdown +++ b/source/_posts/2018-03-30-release-66.markdown @@ -1,9 +1,9 @@ --- layout: post -title: "0.66: TBD - also update date attribute!" -description: "TBD" -date: 2018-03-09 00:01:00 -date_formatted: "March 31, 2018" +title: "0.66: ...." +description: "...." +date: 2018-03-30 00:01:00 +date_formatted: "March 30, 2018" author: Paulus Schoutsen author_twitter: balloob comments: true @@ -13,6 +13,12 @@ og_image: /images/blog/2018-03-0.66/components.png +This is the first release with our new release schedule. During the extra week we had a total of 4 beta releases with a total of [26 fixes](https://github.com/home-assistant/home-assistant/milestone/128?closed=1). So this should be the most stable release yet! + +It's also a release that is full of goodies. 80 people contributed over 223 fixes, improvements and new integrations during the last 2 weeks of this release 😎 I want to highlight the work of two people who are doing an amazing job: [@NovapaX] has been doing a great job triaging and fixing weird quirks and bugs in the frontend. And I want to give a shout out to [@armills] who has enabled backend translations. This means that a bunch of things that did not have translations yet, will now soon be translatable. We're planning some cool things with this! + +A quick note if you are using Philips Hue and a Hue custom component: it will no longer work due to the internal changes to the Hue platform. Remove the custom component to ensure that your Hue lights keep working. + ## New Platforms - Add new platform for VeSync switches ([@markperdue] - [#13000]) ([switch.vesync docs]) (new-platform) @@ -28,17 +34,7 @@ og_image: /images/blog/2018-03-0.66/components.png - Zigbee fan ([@igorbernstein2] - [#12289]) ([zha docs]) ([fan.zha docs]) (new-platform) - Adding a discoverable Samsung Syncthru Printer sensor platform ([@nielstron] - [#13134]) ([sensor.syncthru docs]) (new-platform) - Add trafikverket_weatherstation sensor platform ([@Qxlkdr] - [#12115]) ([sensor.trafikverket_weatherstation docs]) (new-platform) - -## Breaking Changes - -- Remove Z-Wave old/new entity_id attributes ([@armills] - [#12652]) ([zwave docs]) (breaking change) -- Python Spotcrime sensor requires API key, fixes include/exclude ([@jcconnell] - [#12926]) ([sensor.spotcrime docs]) (breaking change) -- Fixed SI units for current consumption ([@vandenberghev] - [#13190]) ([sensor.smappee docs]) (breaking change) -- Report swap in MiB ([@DanNixon] - [#13148]) ([sensor.systemmonitor docs]) (breaking change) -- HomeKit Restructure (new config options) ([@cdce8p] - [#12997]) ([homekit docs]) (breaking change) (new-platform) -- Tibber use appNickname as name ([@clementhk] - [#13231]) ([sensor.tibber docs]) (breaking change) -- Refactor Hue: phue -> aiohue ([@balloob] - [#13043]) ([hue docs]) ([light.hue docs]) (breaking change) -- Fix incorrect unit of measurement for precip_intensity. ([@cgtobi] - [#13415]) ([sensor.darksky docs]) (breaking change) +- Security fix & lock for HomeMatic ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (new-platform) ## {% linkable_title If you need help... %} @@ -49,6 +45,18 @@ og_image: /images/blog/2018-03-0.66/components.png 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. +## Breaking Changes + +- Refactor Hue: If you specify a bridge in your config, the `host` key is now required and needs to be a valid ip address. Option `allow_in_emulated_hue` has been removed. Exclude the lights via the emulated hue config. Due to the internal changes of how the Hue integration works, any Hue custom component will no longer work. ([@balloob] - [#13043]) ([hue docs]) ([light.hue docs]) (breaking change) +- Z-Wave: In version 0.47, the opt-in `new_entity_ids` configuration was added to Z-Wave to smooth the transition through the change. Support for old entity IDs is now removed, and the configuration is no longer necessary. If you are migrating from 0.63 or higher, your entity IDs will already be stored in the Entity Registry and no changes are required. If not, [entity IDs can now be manually configured using the Entity Registry](/docs/configuration/entity-registry/) if necessary. ([@armills] - [#12652]) ([zwave docs]) (breaking change) +- Spotcrime sensor: This update changes the sensor to require a user supplied API key as a configuration entry. The default key has been removed from the Spotcrime package and has also been modified to accept a user supplied API key.([@jcconnell] - [#12926]) ([sensor.spotcrime docs]) (breaking change) +- Smappee sensor: Fixed SI units for current consumption. Total consumption should be in kWh. not kW. ([@vandenberghev] - [#13190]) ([sensor.smappee docs]) (breaking change) +- System monitor sensor: Used and available swap space reported by the system monitor component is now measured in MiB instead of GiB. ([@DanNixon] - [#13148]) ([sensor.systemmonitor docs]) (breaking change) +- HomeKit: The `pincode` parameter is deprecated, since the `HomeKit` component will now generate one for you and display it as a persistence notification during setup. Additionally the default `port` changed to `51827` to avoid potential conflicts with `homebridge`. Lastly to fix a major bug, we needed to change the way accessory ids are generated. This means that in turn all previous accessory settings will need to be repeated. To avoid future conflicts, it is highly recommended to remove the `Home Assistant Bridge` from the `Home` app and repeat the setup process. ([HomeKit Setup](/components/homekit/#setup)) ([@cdce8p] - [#12997]) ([homekit docs]) (breaking change) (new-platform) +- Tibber: The name and the entity id for the Tibber sensor will now be the same as the nickname from the app. Default nick name is the address. So if you have not changed the nickname in the app, everything should be as before. ([@clementhk] - [#13231]) ([sensor.tibber docs]) (breaking change) +- Darsky sensor: Fix the incorrect unit of measurement for the 'Precip Intensity' and 'Daily Max Precip Intensity' for IS units according to the dark sky api documentation.([@cgtobi] - [#13415]) ([sensor.darksky docs]) (breaking change) +- HomeMatic: Locks are now under the lock component ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (new-platform) + ## All changes - New lazytox.py script ([@kellerza] - [#12862]) @@ -183,8 +191,34 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix current_cover_position ([@cdce8p] - [#13135]) ([cover.template docs]) - Switched values to downcase. ([@diminishedprime] - [#13406]) - Cast Integration Cleanup ([@OttoWinter] - [#13275]) ([media_player.cast docs]) +- Security fix & lock for HomeMatic ([@PH89] - [#11980]) ([homematic docs]) ([lock docs]) ([lock.homematic docs]) (breaking change) (new-platform) +- Log invalid templates in script delays ([@amelchio] - [#13423]) +- LimitlessLED hs_color fixes ([@amelchio] - [#13425]) ([light.limitlessled docs]) +- Hyperion: fix typo ([@a-andre] - [#13429]) ([light.hyperion docs]) +- HomeKit: Bugfix & improved logging ([@cdce8p] - [#13431]) ([homekit docs]) +- Improve detection of entity names in templates ([@amelchio] - [#13432]) +- Add version bump script ([@balloob] - [#13447]) +- Add extra check for ESSID field in case there's a wired connection ([@Zepheus] - [#13459]) ([device_tracker docs]) +- Fix encoding errors in mikrotik device tracker ([@bdurrer] - [#13464]) ([device_tracker docs]) +- Hue: Convert XY to HS color if HS not present ([@balloob] - [#13465]) ([light.hue docs]) +- Fix ID (fixes #13444) ([@fabaff] - [#13471]) ([media_player.mpchc docs]) +- Upgrade aiohue and fix race condition ([@balloob] - [#13475]) ([hue docs]) +- version should contain just 'b' not 'beta' ([@balloob] - [#13476]) +- Fix Google Calendar caching when offline ([@PhilRW] - [#13375]) ([calendar.google docs]) +- Homekit: Bugfix Thermostat Fahrenheit support ([@cdce8p] - [#13477]) ([homekit docs]) +- Validate basic customize entries ([@cdce8p] - [#13478]) +- Homekit: Fix security systems ([@cdce8p] - [#13499]) ([homekit docs]) +- python-miio version bumped (Closes: 13449) ([@syssi] - [#13511]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs]) +- Fix mysensors light supported features ([@MartinHjelmare] - [#13512]) ([light.mysensors docs]) +- Fix Insteon Leak Sensor ([@teharris1] - [#13515]) +- HomeKit: Fix setting light brightness ([@cdce8p] - [#13518]) ([homekit docs]) +- Construct version pinned ([@syssi] - [#13528]) ([climate.eq3btsmart docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.eddystone_temperature docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs]) +- Don't add Falsy items to list #13412 ([@kellerza] - [#13536]) +- Check whitelisted paths #13107 ([@kellerza] - [#13154]) +- Fix FLUX_LED error when no color is set ([@dramamoose] - [#13527]) ([light.flux_led docs]) [#11288]: https://github.com/home-assistant/home-assistant/pull/11288 +[#11980]: https://github.com/home-assistant/home-assistant/pull/11980 [#12115]: https://github.com/home-assistant/home-assistant/pull/12115 [#12157]: https://github.com/home-assistant/home-assistant/pull/12157 [#12289]: https://github.com/home-assistant/home-assistant/pull/12289 @@ -238,6 +272,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#13148]: https://github.com/home-assistant/home-assistant/pull/13148 [#13150]: https://github.com/home-assistant/home-assistant/pull/13150 [#13151]: https://github.com/home-assistant/home-assistant/pull/13151 +[#13154]: https://github.com/home-assistant/home-assistant/pull/13154 [#13156]: https://github.com/home-assistant/home-assistant/pull/13156 [#13163]: https://github.com/home-assistant/home-assistant/pull/13163 [#13164]: https://github.com/home-assistant/home-assistant/pull/13164 @@ -305,6 +340,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#13365]: https://github.com/home-assistant/home-assistant/pull/13365 [#13367]: https://github.com/home-assistant/home-assistant/pull/13367 [#13370]: https://github.com/home-assistant/home-assistant/pull/13370 +[#13375]: https://github.com/home-assistant/home-assistant/pull/13375 [#13376]: https://github.com/home-assistant/home-assistant/pull/13376 [#13379]: https://github.com/home-assistant/home-assistant/pull/13379 [#13380]: https://github.com/home-assistant/home-assistant/pull/13380 @@ -316,6 +352,28 @@ Experiencing issues introduced by this release? Please report them in our [issue [#13404]: https://github.com/home-assistant/home-assistant/pull/13404 [#13406]: https://github.com/home-assistant/home-assistant/pull/13406 [#13415]: https://github.com/home-assistant/home-assistant/pull/13415 +[#13423]: https://github.com/home-assistant/home-assistant/pull/13423 +[#13425]: https://github.com/home-assistant/home-assistant/pull/13425 +[#13429]: https://github.com/home-assistant/home-assistant/pull/13429 +[#13431]: https://github.com/home-assistant/home-assistant/pull/13431 +[#13432]: https://github.com/home-assistant/home-assistant/pull/13432 +[#13447]: https://github.com/home-assistant/home-assistant/pull/13447 +[#13459]: https://github.com/home-assistant/home-assistant/pull/13459 +[#13464]: https://github.com/home-assistant/home-assistant/pull/13464 +[#13465]: https://github.com/home-assistant/home-assistant/pull/13465 +[#13471]: https://github.com/home-assistant/home-assistant/pull/13471 +[#13475]: https://github.com/home-assistant/home-assistant/pull/13475 +[#13476]: https://github.com/home-assistant/home-assistant/pull/13476 +[#13477]: https://github.com/home-assistant/home-assistant/pull/13477 +[#13478]: https://github.com/home-assistant/home-assistant/pull/13478 +[#13499]: https://github.com/home-assistant/home-assistant/pull/13499 +[#13511]: https://github.com/home-assistant/home-assistant/pull/13511 +[#13512]: https://github.com/home-assistant/home-assistant/pull/13512 +[#13515]: https://github.com/home-assistant/home-assistant/pull/13515 +[#13518]: https://github.com/home-assistant/home-assistant/pull/13518 +[#13527]: https://github.com/home-assistant/home-assistant/pull/13527 +[#13528]: https://github.com/home-assistant/home-assistant/pull/13528 +[#13536]: https://github.com/home-assistant/home-assistant/pull/13536 [@BioSehnsucht]: https://github.com/BioSehnsucht [@DanNixon]: https://github.com/DanNixon [@FezVrasta]: https://github.com/FezVrasta @@ -324,15 +382,19 @@ Experiencing issues introduced by this release? Please report them in our [issue [@Kane610]: https://github.com/Kane610 [@MartinHjelmare]: https://github.com/MartinHjelmare [@OttoWinter]: https://github.com/OttoWinter +[@PH89]: https://github.com/PH89 [@PhilRW]: https://github.com/PhilRW [@Qxlkdr]: https://github.com/Qxlkdr [@ThomasSvedberg]: https://github.com/ThomasSvedberg +[@Zepheus]: https://github.com/Zepheus +[@a-andre]: https://github.com/a-andre [@a-wolter]: https://github.com/a-wolter [@amelchio]: https://github.com/amelchio [@andreipop2005]: https://github.com/andreipop2005 [@andrey-git]: https://github.com/andrey-git [@armills]: https://github.com/armills [@balloob]: https://github.com/balloob +[@bdurrer]: https://github.com/bdurrer [@c727]: https://github.com/c727 [@cburgess]: https://github.com/cburgess [@cdce8p]: https://github.com/cdce8p @@ -343,6 +405,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@danielperna84]: https://github.com/danielperna84 [@dgomes]: https://github.com/dgomes [@diminishedprime]: https://github.com/diminishedprime +[@dramamoose]: https://github.com/dramamoose [@engrbm87]: https://github.com/engrbm87 [@fabaff]: https://github.com/fabaff [@gerard33]: https://github.com/gerard33 @@ -372,109 +435,121 @@ Experiencing issues introduced by this release? Please report them in our [issue [@sjvc]: https://github.com/sjvc [@smurfix]: https://github.com/smurfix [@syssi]: https://github.com/syssi +[@teharris1]: https://github.com/teharris1 [@the-glu]: https://github.com/the-glu [@thrawnarn]: https://github.com/thrawnarn [@timmo001]: https://github.com/timmo001 [@turbokongen]: https://github.com/turbokongen [@uchagani]: https://github.com/uchagani [@vandenberghev]: https://github.com/vandenberghev -[alarm_control_panel.ifttt docs]: https://rc.home-assistant.io/components/alarm_control_panel.ifttt/ -[binary_sensor.bmw_connected_drive docs]: https://rc.home-assistant.io/components/binary_sensor.bmw_connected_drive/ -[binary_sensor.deconz docs]: https://rc.home-assistant.io/components/binary_sensor.deconz/ -[binary_sensor.mysensors docs]: https://rc.home-assistant.io/components/binary_sensor.mysensors/ -[binary_sensor.trend docs]: https://rc.home-assistant.io/components/binary_sensor.trend/ -[binary_sensor.workday docs]: https://rc.home-assistant.io/components/binary_sensor.workday/ -[bmw_connected_drive docs]: https://rc.home-assistant.io/components/bmw_connected_drive/ -[calendar.caldav docs]: https://rc.home-assistant.io/components/calendar.caldav/ -[calendar.todoist docs]: https://rc.home-assistant.io/components/calendar.todoist/ -[camera.onvif docs]: https://rc.home-assistant.io/components/camera.onvif/ -[camera.xeoma docs]: https://rc.home-assistant.io/components/camera.xeoma/ -[climate.ecobee docs]: https://rc.home-assistant.io/components/climate.ecobee/ -[climate.sensibo docs]: https://rc.home-assistant.io/components/climate.sensibo/ -[cloud docs]: https://rc.home-assistant.io/components/cloud/ -[cover.group docs]: https://rc.home-assistant.io/components/cover.group/ -[cover.template docs]: https://rc.home-assistant.io/components/cover.template/ -[deconz docs]: https://rc.home-assistant.io/components/deconz/ -[doorbird docs]: https://rc.home-assistant.io/components/doorbird/ -[downloader docs]: https://rc.home-assistant.io/components/downloader/ -[ecobee docs]: https://rc.home-assistant.io/components/ecobee/ -[fan.xiaomi_miio docs]: https://rc.home-assistant.io/components/fan.xiaomi_miio/ -[fan.zha docs]: https://rc.home-assistant.io/components/fan.zha/ -[hassio docs]: https://rc.home-assistant.io/components/hassio/ -[history docs]: https://rc.home-assistant.io/components/history/ -[homekit docs]: https://rc.home-assistant.io/components/homekit/ -[homematic docs]: https://rc.home-assistant.io/components/homematic/ -[homematicip docs]: https://rc.home-assistant.io/components/homematicip/ -[homematicip_cloud docs]: https://rc.home-assistant.io/components/homematicip_cloud/ -[http docs]: https://rc.home-assistant.io/components/http/ -[hue docs]: https://rc.home-assistant.io/components/hue/ -[image_processing.opencv docs]: https://rc.home-assistant.io/components/image_processing.opencv/ -[light docs]: https://rc.home-assistant.io/components/light/ -[light.deconz docs]: https://rc.home-assistant.io/components/light.deconz/ -[light.hue docs]: https://rc.home-assistant.io/components/light.hue/ -[light.iglo docs]: https://rc.home-assistant.io/components/light.iglo/ -[light.mysensors docs]: https://rc.home-assistant.io/components/light.mysensors/ -[light.mystrom docs]: https://rc.home-assistant.io/components/light.mystrom/ -[light.xiaomi_miio docs]: https://rc.home-assistant.io/components/light.xiaomi_miio/ -[light.zha docs]: https://rc.home-assistant.io/components/light.zha/ -[lock.bmw_connected_drive docs]: https://rc.home-assistant.io/components/lock.bmw_connected_drive/ -[lock.mqtt docs]: https://rc.home-assistant.io/components/lock.mqtt/ -[logbook docs]: https://rc.home-assistant.io/components/logbook/ -[media_extractor docs]: https://rc.home-assistant.io/components/media_extractor/ -[media_player.bluesound docs]: https://rc.home-assistant.io/components/media_player.bluesound/ -[media_player.cast docs]: https://rc.home-assistant.io/components/media_player.cast/ -[media_player.channels docs]: https://rc.home-assistant.io/components/media_player.channels/ -[media_player.kodi docs]: https://rc.home-assistant.io/components/media_player.kodi/ -[media_player.mediaroom docs]: https://rc.home-assistant.io/components/media_player.mediaroom/ -[media_player.philips_js docs]: https://rc.home-assistant.io/components/media_player.philips_js/ -[media_player.plex docs]: https://rc.home-assistant.io/components/media_player.plex/ -[media_player.songpal docs]: https://rc.home-assistant.io/components/media_player.songpal/ -[media_player.sonos docs]: https://rc.home-assistant.io/components/media_player.sonos/ -[media_player.spotify docs]: https://rc.home-assistant.io/components/media_player.spotify/ -[mqtt docs]: https://rc.home-assistant.io/components/mqtt/ -[mysensors docs]: https://rc.home-assistant.io/components/mysensors/ -[nest docs]: https://rc.home-assistant.io/components/nest/ -[notify docs]: https://rc.home-assistant.io/components/notify/ -[remote.xiaomi_miio docs]: https://rc.home-assistant.io/components/remote.xiaomi_miio/ -[scene.deconz docs]: https://rc.home-assistant.io/components/scene.deconz/ -[sensor.bmw_connected_drive docs]: https://rc.home-assistant.io/components/sensor.bmw_connected_drive/ -[sensor.crimereports docs]: https://rc.home-assistant.io/components/sensor.crimereports/ -[sensor.darksky docs]: https://rc.home-assistant.io/components/sensor.darksky/ -[sensor.deconz docs]: https://rc.home-assistant.io/components/sensor.deconz/ -[sensor.deutsche_bahn docs]: https://rc.home-assistant.io/components/sensor.deutsche_bahn/ -[sensor.filter docs]: https://rc.home-assistant.io/components/sensor.filter/ -[sensor.foobot docs]: https://rc.home-assistant.io/components/sensor.foobot/ -[sensor.glances docs]: https://rc.home-assistant.io/components/sensor.glances/ -[sensor.homematic docs]: https://rc.home-assistant.io/components/sensor.homematic/ -[sensor.homematicip docs]: https://rc.home-assistant.io/components/sensor.homematicip/ -[sensor.homematicip_cloud docs]: https://rc.home-assistant.io/components/sensor.homematicip_cloud/ -[sensor.lacrosse docs]: https://rc.home-assistant.io/components/sensor.lacrosse/ -[sensor.mqtt docs]: https://rc.home-assistant.io/components/sensor.mqtt/ -[sensor.mysensors docs]: https://rc.home-assistant.io/components/sensor.mysensors/ -[sensor.plex docs]: https://rc.home-assistant.io/components/sensor.plex/ -[sensor.smappee docs]: https://rc.home-assistant.io/components/sensor.smappee/ -[sensor.spotcrime docs]: https://rc.home-assistant.io/components/sensor.spotcrime/ -[sensor.sql docs]: https://rc.home-assistant.io/components/sensor.sql/ -[sensor.syncthru docs]: https://rc.home-assistant.io/components/sensor.syncthru/ -[sensor.systemmonitor docs]: https://rc.home-assistant.io/components/sensor.systemmonitor/ -[sensor.template docs]: https://rc.home-assistant.io/components/sensor.template/ -[sensor.tibber docs]: https://rc.home-assistant.io/components/sensor.tibber/ -[sensor.trafikverket_weatherstation docs]: https://rc.home-assistant.io/components/sensor.trafikverket_weatherstation/ -[sensor.vasttrafik docs]: https://rc.home-assistant.io/components/sensor.vasttrafik/ -[sensor.wunderground docs]: https://rc.home-assistant.io/components/sensor.wunderground/ -[sensor.xiaomi_miio docs]: https://rc.home-assistant.io/components/sensor.xiaomi_miio/ -[spc docs]: https://rc.home-assistant.io/components/spc/ -[switch.doorbird docs]: https://rc.home-assistant.io/components/switch.doorbird/ -[switch.edimax docs]: https://rc.home-assistant.io/components/switch.edimax/ -[switch.mqtt docs]: https://rc.home-assistant.io/components/switch.mqtt/ -[switch.vesync docs]: https://rc.home-assistant.io/components/switch.vesync/ -[switch.xiaomi_miio docs]: https://rc.home-assistant.io/components/switch.xiaomi_miio/ -[switch.zha docs]: https://rc.home-assistant.io/components/switch.zha/ -[telegram_bot docs]: https://rc.home-assistant.io/components/telegram_bot/ -[upcloud docs]: https://rc.home-assistant.io/components/upcloud/ -[vacuum.xiaomi_miio docs]: https://rc.home-assistant.io/components/vacuum.xiaomi_miio/ -[weather.darksky docs]: https://rc.home-assistant.io/components/weather.darksky/ -[websocket_api docs]: https://rc.home-assistant.io/components/websocket_api/ -[zeroconf docs]: https://rc.home-assistant.io/components/zeroconf/ -[zha docs]: https://rc.home-assistant.io/components/zha/ -[zwave docs]: https://rc.home-assistant.io/components/zwave/ +[alarm_control_panel.ifttt docs]: /components/alarm_control_panel.ifttt/ +[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ +[binary_sensor.deconz docs]: /components/binary_sensor.deconz/ +[binary_sensor.mysensors docs]: /components/binary_sensor.mysensors/ +[binary_sensor.trend docs]: /components/binary_sensor.trend/ +[binary_sensor.workday docs]: /components/binary_sensor.workday/ +[bmw_connected_drive docs]: /components/bmw_connected_drive/ +[calendar.caldav docs]: /components/calendar.caldav/ +[calendar.google docs]: /components/calendar.google/ +[calendar.todoist docs]: /components/calendar.todoist/ +[camera.onvif docs]: /components/camera.onvif/ +[camera.xeoma docs]: /components/camera.xeoma/ +[climate.ecobee docs]: /components/climate.ecobee/ +[climate.eq3btsmart docs]: /components/climate.eq3btsmart/ +[climate.sensibo docs]: /components/climate.sensibo/ +[cloud docs]: /components/cloud/ +[cover.group docs]: /components/cover.group/ +[cover.template docs]: /components/cover.template/ +[deconz docs]: /components/deconz/ +[device_tracker docs]: /components/device_tracker/ +[doorbird docs]: /components/doorbird/ +[downloader docs]: /components/downloader/ +[ecobee docs]: /components/ecobee/ +[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/ +[fan.zha docs]: /components/fan.zha/ +[hassio docs]: /components/hassio/ +[history docs]: /components/history/ +[homekit docs]: /components/homekit/ +[homematic docs]: /components/homematic/ +[homematicip docs]: /components/homematicip/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[http docs]: /components/http/ +[hue docs]: /components/hue/ +[image_processing.opencv docs]: /components/image_processing.opencv/ +[light docs]: /components/light/ +[light.deconz docs]: /components/light.deconz/ +[light.flux_led docs]: /components/light.flux_led/ +[light.hue docs]: /components/light.hue/ +[light.hyperion docs]: /components/light.hyperion/ +[light.iglo docs]: /components/light.iglo/ +[light.limitlessled docs]: /components/light.limitlessled/ +[light.mysensors docs]: /components/light.mysensors/ +[light.mystrom docs]: /components/light.mystrom/ +[light.xiaomi_miio docs]: /components/light.xiaomi_miio/ +[light.zha docs]: /components/light.zha/ +[lock docs]: /components/lock/ +[lock.bmw_connected_drive docs]: /components/lock.bmw_connected_drive/ +[lock.homematic docs]: /components/lock.homematic/ +[lock.mqtt docs]: /components/lock.mqtt/ +[logbook docs]: /components/logbook/ +[media_extractor docs]: /components/media_extractor/ +[media_player.bluesound docs]: /components/media_player.bluesound/ +[media_player.cast docs]: /components/media_player.cast/ +[media_player.channels docs]: /components/media_player.channels/ +[media_player.kodi docs]: /components/media_player.kodi/ +[@NovapaX]: https://github.com/NovapaX +[media_player.mediaroom docs]: /components/media_player.mediaroom/ +[media_player.mpchc docs]: /components/media_player.mpchc/ +[media_player.philips_js docs]: /components/media_player.philips_js/ +[media_player.plex docs]: /components/media_player.plex/ +[media_player.songpal docs]: /components/media_player.songpal/ +[media_player.sonos docs]: /components/media_player.sonos/ +[media_player.spotify docs]: /components/media_player.spotify/ +[mqtt docs]: /components/mqtt/ +[mysensors docs]: /components/mysensors/ +[nest docs]: /components/nest/ +[notify docs]: /components/notify/ +[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/ +[scene.deconz docs]: /components/scene.deconz/ +[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/ +[sensor.crimereports docs]: /components/sensor.crimereports/ +[sensor.darksky docs]: /components/sensor.darksky/ +[sensor.deconz docs]: /components/sensor.deconz/ +[sensor.deutsche_bahn docs]: /components/sensor.deutsche_bahn/ +[sensor.eddystone_temperature docs]: /components/sensor.eddystone_temperature/ +[sensor.filter docs]: /components/sensor.filter/ +[sensor.foobot docs]: /components/sensor.foobot/ +[sensor.glances docs]: /components/sensor.glances/ +[sensor.homematic docs]: /components/sensor.homematic/ +[sensor.homematicip docs]: /components/sensor.homematicip/ +[sensor.homematicip_cloud docs]: /components/sensor.homematicip_cloud/ +[sensor.lacrosse docs]: /components/sensor.lacrosse/ +[sensor.mqtt docs]: /components/sensor.mqtt/ +[sensor.mysensors docs]: /components/sensor.mysensors/ +[sensor.plex docs]: /components/sensor.plex/ +[sensor.smappee docs]: /components/sensor.smappee/ +[sensor.spotcrime docs]: /components/sensor.spotcrime/ +[sensor.sql docs]: /components/sensor.sql/ +[sensor.syncthru docs]: /components/sensor.syncthru/ +[sensor.systemmonitor docs]: /components/sensor.systemmonitor/ +[sensor.template docs]: /components/sensor.template/ +[sensor.tibber docs]: /components/sensor.tibber/ +[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/ +[sensor.vasttrafik docs]: /components/sensor.vasttrafik/ +[sensor.wunderground docs]: /components/sensor.wunderground/ +[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/ +[spc docs]: /components/spc/ +[switch.doorbird docs]: /components/switch.doorbird/ +[switch.edimax docs]: /components/switch.edimax/ +[switch.mqtt docs]: /components/switch.mqtt/ +[switch.vesync docs]: /components/switch.vesync/ +[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/ +[switch.zha docs]: /components/switch.zha/ +[telegram_bot docs]: /components/telegram_bot/ +[upcloud docs]: /components/upcloud/ +[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ +[weather.darksky docs]: /components/weather.darksky/ +[websocket_api docs]: /components/websocket_api/ +[zeroconf docs]: /components/zeroconf/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ diff --git a/source/images/blog/2018-03-0.66/components.png b/source/images/blog/2018-03-0.66/components.png new file mode 100644 index 0000000000000000000000000000000000000000..890a4b8512f8d0ddf9d4cb1e69c61ef999cbdec5 GIT binary patch literal 30754 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

sAS~wy95#987Yuf3~J~q6E8^I?f(pN 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 Y;jGN+&IC`srsM!9%WKG0$yfyce?DTV!~g&Q literal 0 HcmV?d00001