From 85da820394c3582c8c4e5c80575a013c6312fa89 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 25 Feb 2018 16:48:43 -0800 Subject: [PATCH] Release 0.64 --- _config.yml | 8 +- source/_components/sensor.spotcrime.markdown | 1 - source/_posts/2018-02-26-release-64.markdown | 548 ++++++++++++++++++ .../images/blog/2018-02-0.64/components.png | Bin 0 -> 23112 bytes 4 files changed, 552 insertions(+), 5 deletions(-) create mode 100644 source/_posts/2018-02-26-release-64.markdown create mode 100644 source/images/blog/2018-02-0.64/components.png diff --git a/_config.yml b/_config.yml index 6ee6d3f537a..ba99209d8e8 100644 --- a/_config.yml +++ b/_config.yml @@ -139,14 +139,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 63 -current_patch_version: 2 -date_released: 2018-02-14 +current_minor_version: 64 +current_patch_version: 0 +date_released: 2018-02-26 # 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-0632---february-14" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_components/sensor.spotcrime.markdown b/source/_components/sensor.spotcrime.markdown index 9e540335595..892a077a6e4 100644 --- a/source/_components/sensor.spotcrime.markdown +++ b/source/_components/sensor.spotcrime.markdown @@ -8,7 +8,6 @@ comments: false sharing: true footer: true ha_category: Sensor -logo: spotcrime.png ha_release: 0.64 ha_iot_class: "Cloud Polling" --- diff --git a/source/_posts/2018-02-26-release-64.markdown b/source/_posts/2018-02-26-release-64.markdown new file mode 100644 index 00000000000..8742bd19fbd --- /dev/null +++ b/source/_posts/2018-02-26-release-64.markdown @@ -0,0 +1,548 @@ +--- +layout: post +title: "0.64: Over 1000 integrations! New: HomeKit, BMW, August." +description: "Some great new integrations, some great new fixes, oooooh yeah." +date: 2018-02-26 00:01:00 +date_formatted: "February 26, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-02-0.64/components.png +--- + + + +🎉 1000 integrations, 1000 integrations, 1000 integrations! 🎉 + +That's right, Home Assistant 0.64 is here! In case you have missed our latest [Cloud update](https://home-assistant.io/blog/2018/02/19/cloud-update/), the Home Assistant Alexa skill is now live in all regions and we're working with Google in getting the Smart Home skill for Google Assistant approved. Exciting times! + +In the meanwhile, some great new integrations have landed, including yet another car 🚗 This time it's BMW. + +This is going to be the last release that supports Python 3.4. Starting with the next release, the minimum version required will be Python 3.5.3. [Learn more here.](https://home-assistant.io/blog/2017/10/06/deprecating-python-3.4-support/) + +## {% linkable_title HomeKit %} + +Native HomeKit support has arrived! Thanks to @cdce8p It is now possible to expose some devices over HomeKit to allow control via Siri and other things speaking the HomeKit protocol. Initial support has been added for temperature sensors and cover devices. Expect more devices to be added soon. + +[Check the HomeKit docs][HomeKit docs] + +## {% linkable_title Hass.io UI update %} + +Some of you already noticed that your Hass.io panel looks a bit different since this morning: @pvizeli pressed the ~~red~~ green button and the new UI got live. The Hass.io team ([@frenck] [@pvizeli] [@ryanm101]) is doing a great job in adding new features (like partial or encrypted snapshots) to the Hass.io backend and fixing bugs. However, those features where only added to the command line tools but not to the frontend. + +That's where [@c727] and [@ciotlosm] jumped in. They made new features accessible via the frontend and improved the overall navigation. + +We know that some features are still missing or broken, we are fixing this right now! Check this [issue](https://github.com/home-assistant/home-assistant-polymer/issues/912) first before you report any issues related to the Hass.io panel, please. + +## {% linkable_title Chart.js %} + +The frontend is now rendering the graphs and charts using Chart.js thanks to the hard work by [@fanthos]. This means that you can now render all the charts without being connected to the internet! + +## {% linkable_title August integration %} + +Major new integration by [@snjoetw]: August locks and door bells! Lock and unlock from Home Assistant and detect when your doorbell is rung or senses motion. Awesome! + +## {% linkable_title Cast bug fixes %} + +[@OttoWinter] has crushed a bunch of bugs for our ChromeCast integration. Including that nasy Cast group discovery issue! He is working on some more improvements that should arrive soon, stay tuned. Awesome work Otto! + +## {% linkable_title New Platforms %} + +- Support for August doorbell ([@snjoetw] - [#11124]) ([august docs]) ([binary_sensor.august docs]) ([camera.august docs]) ([lock.august docs]) (new-platform) +- Add new component: BMW connected drive ([@ChristianKuehnel] - [#12277]) ([bmw_connected_drive docs]) ([device_tracker.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (new-platform) +- Add New Sensor for ISP Start.ca ([@mikeodr] - [#12356]) ([sensor.startca docs]) (new-platform) +- Add the Xiaomi TV platform. ([@fattdev] - [#12359]) ([media_player.xiaomi_tv docs]) (new-platform) +- added smappee component ([@hmn] - [#11491]) ([smappee docs]) ([sensor.smappee docs]) ([switch.smappee docs]) (new-platform) +- Add support for HomeKit ([@cdce8p] - [#12488]) ([homekit docs]) (new-platform) +- Adds filesize component ([@robmarkcole] - [#12211]) ([sensor.filesize docs]) (new-platform) +- Adds folder sensor ([@robmarkcole] - [#12208]) ([sensor.folder docs]) (new-platform) +- Spotcrime ([@jcconnell] - [#12460]) ([sensor.spotcrime docs]) (new-platform) +- Add Tahoma scenes ([@bakedraccoon] - [#12498]) ([scene docs]) ([tahoma docs]) (new-platform) + +## {% 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 %} + +- Home Assistant now defaults to purge recorded history that is older than 10 days. If you want to keep your recorded data for longer than that, you must configure the number of days to retain _before starting 0.64 for the first time_, for example: + ```yaml + recorder: + purge_keep_days: 30 + ``` + + If you want to keep the previous default of never deleting history, use this configuration: + ```yaml + recorder: + purge_interval: 0 + ``` + ([@amelchio] - [#12271]) (breaking change) +- Show a persistent_notification if no symbols and no currencies are configured ([@ChristianKuehnel] - [#12252]) ([sensor.alpha_vantage docs]) (breaking change) +- Updated RainMachine unique IDs to play better with the entity registry. If RainMachine had been configured previously, new entries will be placed into the entity registry, causing there to be two of each program/zone defined. To address, simply alter the `entity_registry.yaml` as desired. ([@bachya] - [#12315]) ([switch.rainmachine docs]) (breaking change) +- Updated AirVisual unique IDs to play better with the entity registry. If AirVisual had been configured previously, new entries will be placed into the entity registry, causing there to be two of each sensor type defined. To address, simply alter the `entity_registry.yaml` as desired. ([@bachya] - [#12319]) ([sensor.airvisual docs]) (breaking change) +- Custom component devs only: voluptuous now requires default values for config keys to be valid values. ([@balloob] - [#12463]) (breaking change) +- Fixes `usps` platform. Dependency `myusps` now leverages Selenium webdriver to overcome login issues. This is a breaking change since the user must now have additional dependencies installed - either `google-chrome` and `chromedriver`, or `phantomjs`. There is a new config option `driver` that allows the user to specify their preference, though `phantomjs` is the default. Doc PR forthcoming that will outline choices and make suggestions based on user's OS. + ([@happyleavesaoc] - [#12465]) ([usps docs]) (breaking change) +- LimitlessLED has been converted to assumed state. Will no longer turn the lights off when restarting Home Assistant. Will no longer revert changes made by other controllers. ([@amelchio] - [#12475]) ([light.limitlessled docs]) (breaking change) + +## {% linkable_title All changes %} + +- device_tracker.asuswrt: Clean up unused connection param ([@trisk] - [#12262]) ([device_tracker.asuswrt docs]) +- Fix some rfxtrx devices with multiple sensors ([@neffs] - [#12264]) ([sensor.rfxtrx docs]) +- have climate fallback to state if no ATTR_OPERATION_MODE (#12271) ([@ttroy50] - [#12279]) ([google_assistant docs]) +- check_config check bootstrap errors ([@kellerza] - [#12291]) +- Attempt fixing flakiness of check config test ([@balloob] - [#12283]) +- Fix MQTT retained message not being re-dispatched ([@OttoWinter] - [#12004]) ([mqtt docs]) +- Fix config error for FTP links, add test ([@ReneNulschDE] - [#12294]) ([weblink docs]) +- Fix Panel_IFrame - FTP URL not allowed in 0.63 ([@ReneNulschDE] - [#12295]) ([panel_iframe docs]) +- Upgrade pylint to 1.8.2 ([@OttoWinter] - [#12274]) +- Move HassIntent handler code into helpers/intent ([@tschmidty69] - [#12181]) ([conversation docs]) +- Migrated SABnzbd sensor to asyncio and switched to pypi library ([@jeradM] - [#12290]) ([sensor.sabnzbd docs]) +- 📝 Fix fixture encoding ([@OttoWinter] - [#12296]) +- Clarify tahoma errrors ([@bakedraccoon] - [#12307]) ([tahoma docs]) +- add friendly_name_template to template sensor ([@NovapaX] - [#12268]) ([sensor.template docs]) +- Purge recorder data by default ([@amelchio] - [#12271]) (breaking change) +- Protect bloomsky platform setup ([@balloob] - [#12316]) ([binary_sensor.bloomsky docs]) ([camera.bloomsky docs]) ([sensor.bloomsky docs]) +- Removed default sensor configuration ([@ChristianKuehnel] - [#12252]) ([sensor.alpha_vantage docs]) (breaking change) +- Force LF line endings for Windows ([@kellerza] - [#12266]) +- Updated RainMachine to play better with the entity registry ([@bachya] - [#12315]) ([switch.rainmachine docs]) (breaking change) +- Revert #12316 ([@balloob] - [#12329]) ([binary_sensor.bloomsky docs]) ([camera.bloomsky docs]) ([sensor.bloomsky docs]) +- zha: Add remove service ([@rcloran] - [#11683]) ([zha docs]) +- Fix line endings [skipci] ([@balloob] - [#12333]) +- Unifi tracking filter by SSID ([@mikeodr] - [#12281]) ([device_tracker.unifi docs]) +- device_tracker.asuswrt: Ignore unreachable ip neigh entries ([@trisk] - [#12201]) ([device_tracker.asuswrt docs]) +- nmap_tracker: don't scan on setup ([@abmantis] - [#12322]) ([device_tracker.nmap_tracker docs]) +- Upgrade Sphinx to 1.7.0 ([@fabaff] - [#12335]) +- Mock Module + Platform default to async ([@balloob] - [#12347]) +- Change Unifi SSID filtering to list comprehension ([@mikeodr] - [#12344]) ([device_tracker.unifi docs]) +- Use the speedometer icon in the fastdotcom sensor ([@d0ugal] - [#12348]) ([sensor.fastdotcom docs]) +- Communication reduced. Setting brightness and/or color temperature will turn on the device. ([@syssi] - [#12343]) ([light.xiaomi_miio docs]) +- Add New Sensor for ISP Start.ca ([@mikeodr] - [#12356]) ([sensor.startca docs]) (new-platform) +- bump fedex version ([@happyleavesaoc] - [#12362]) ([sensor.fedex docs]) +- Upgrade alpha_vantage to 1.9.0 ([@fabaff] - [#12352]) ([sensor.alpha_vantage docs]) +- Eq3btsmart more reliable ([@karlkar] - [#11555]) ([climate.eq3btsmart docs]) +- Allow disabling entities in the registry ([@balloob] - [#12360]) +- Upgrade panasonic_viera to 0.3.1 ([@dgomes] - [#12370]) ([media_player.panasonic_viera docs]) +- SMA sensor add SSL and upgrade to pysma 0.2 ([@kellerza] - [#12354]) ([sensor.sma docs]) +- Specify algorithms for webpush jwt verification ([@balloob] - [#12378]) ([notify.html5 docs]) +- Upgrade youtube_dl to 2018.02.11 ([@fabaff] - [#12383]) ([media_extractor docs]) +- Remove usage of deprecated assert method ([@balloob] - [#12379]) +- Add attributes (fixes #12332) ([@fabaff] - [#12377]) ([sensor.speedtest docs]) +- Improve service by allowing to reference entity id instead of deconz id ([@Kane610] - [#11862]) ([deconz docs]) ([scene docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) +- Pollen.com: Entity Registry updates and cleanup ([@bachya] - [#12361]) ([sensor.pollen docs]) +- Changed pyvera version to 0.2.41 ([@patrik3k] - [#12391]) ([vera docs]) +- File Path fixes for RPi Camera ([@FrederikBolding] - [#12338]) ([camera.rpi_camera docs]) +- Code cleanup of velux scene ([@Julius2342] - [#12390]) ([scene docs]) +- Upgrade sphinx-autodoc-typehints to 1.2.5 ([@fabaff] - [#12404]) +- Extract data validator to own file and add tests ([@balloob] - [#12401]) ([cloud docs]) ([conversation docs]) ([http docs]) ([shopping_list docs]) (new-platform) +- Fix MQTT payload decode returning prematurely ([@OttoWinter] - [#12420]) ([mqtt docs]) +- Print every changed file on new line ([@cdce8p] - [#12412]) +- Added support for colored KNX lights ([@Julius2342] - [#12411]) ([knx docs]) ([light.knx docs]) +- Small code cleanup: ([@Julius2342] - [#12409]) ([scene docs]) +- Cleanup of knx component ([@Julius2342] - [#12408]) ([knx docs]) ([binary_sensor.knx docs]) ([climate.knx docs]) ([cover.knx docs]) ([light.knx docs]) ([notify.knx docs]) ([sensor.knx docs]) ([switch.knx docs]) +- Update the Tibber sensor at startup ([@danielhiversen] - [#12428]) ([sensor.tibber docs]) +- zha: Add unique_id to entities ([@rcloran] - [#12331]) ([zha docs]) +- Cleanup http ([@balloob] - [#12424]) ([frontend docs]) ([http docs]) +- Update CODEOWNERS ([@dgomes] - [#12440]) +- Fix: timeout data attribute now is parsed to float ([@sjvc] - [#12432]) ([telegram_bot docs]) +- Stop mapping zigbee switches to lights & switches. ([@igorbernstein2] - [#12280]) ([zha docs]) +- AirVisual: Entity Registry updates and cleanup ([@bachya] - [#12319]) ([sensor.airvisual docs]) (breaking change) +- Vagrant - sendfile python3.5 debian-stretch ([@tabakhase] - [#12454]) +- Add effects to iGlo Lights ([@jesserockz] - [#12365]) ([light.iglo docs]) +- Fake the state for a short period and skip the next update. ([@syssi] - [#12446]) ([fan.xiaomi_miio docs]) +- Initial support for Config Entries ([@balloob] - [#12079]) +- Make WUnderground async ([@OttoWinter] - [#12385]) ([sensor.wunderground docs]) +- Add the Xiaomi TV platform. ([@fattdev] - [#12359]) ([media_player.xiaomi_tv docs]) (new-platform) +- Update voluputous ([@balloob] - [#12463]) (breaking change) +- Map Alexa StepVolume responses to volume_up/down ([@lucasweb78] - [#12467]) ([alexa docs]) +- ONVIF Camera added Error handling and rtsp authentication. ([@matt2005] - [#11129]) ([camera.onvif docs]) +- Bump aioautomatic to 0.6.5 for voluptuous 0.11 ([@armills] - [#12480]) ([device_tracker.automatic docs]) +- Add example in test how to create list or object in template ([@balloob] - [#12469]) +- KNX/Climate: Fixed platform schema min/max values. ([@Julius2342] - [#12477]) ([climate.knx docs]) +- Prevent error when no internet or DNS is available ([@mjj4791] - [#12486]) ([sensor.buienradar docs]) ([weather.buienradar docs]) +- Added doorbird_last_motion to DoorBird camera platform ([@sjvc] - [#12457]) ([camera.doorbird docs]) +- Fail gracefully with unreachable LaMetric ([@PhilRW] - [#12451]) ([notify.lametric docs]) +- Enable compression when sending json to client ([@elupus] - [#11165]) ([http docs]) +- bump usps version ([@happyleavesaoc] - [#12465]) ([usps docs]) (breaking change) +- Try deflaking recorder tests ([@balloob] - [#12492]) +- Support for August doorbell ([@snjoetw] - [#11124]) ([august docs]) ([binary_sensor.august docs]) ([camera.august docs]) ([lock.august docs]) (new-platform) +- Avoid warnings when purging an empty database ([@amelchio] - [#12494]) +- Support for PTZ in Onvif cameras ([@karlkar] - [#11630]) ([camera.onvif docs]) +- Rework Sonos media player platform ([@amelchio] - [#12126]) ([media_player.sonos docs]) +- Converted shopping list to use json util and added default override for json util ([@FrederikBolding] - [#12478]) ([shopping_list docs]) +- added smappee component ([@hmn] - [#11491]) ([smappee docs]) ([sensor.smappee docs]) ([switch.smappee docs]) (new-platform) +- More features for the Bluesound component ([@thrawnarn] - [#11450]) ([media_player.bluesound docs]) +- zha: Simplify unique ID ([@rcloran] - [#12495]) ([zha docs]) +- zha: Add support for humidity sensors ([@rcloran] - [#12496]) ([zha docs]) ([sensor.zha docs]) +- bump python-eq3bt version, fixes #12499 ([@rytilahti] - [#12510]) ([climate.eq3btsmart docs]) +- new version of xiaomi lib ([@danielhiversen] - [#12513]) ([xiaomi_aqara docs]) +- python-miio version bumped. (Closes: #12471) ([@syssi] - [#12481]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs]) +- LimitlessLED assumed state ([@amelchio] - [#12475]) ([light.limitlessled docs]) (breaking change) +- Add support for HomeKit ([@cdce8p] - [#12488]) ([homekit docs]) (new-platform) +- Add password support ([@pvizeli] - [#12525]) ([hassio docs]) +- Changed to async_schedule_update_ha_state ([@thrawnarn] - [#12518]) ([media_player.bluesound docs]) +- Fix Sphinx build ([@balloob] - [#12535]) +- Update voluptuous serialize ([@balloob] - [#12538]) ([config docs]) +- Clarify a comment regarding python versions ([@aprasanna] - [#12537]) +- Adds filesize component ([@robmarkcole] - [#12211]) ([sensor.filesize docs]) (new-platform) +- Clarify cloud error ([@balloob] - [#12540]) ([cloud docs]) +- Build JSON in executor ([@amelchio] - [#12536]) ([history docs]) ([logbook docs]) +- Bugfix: Input Datetime config schema ([@cdce8p] - [#12552]) ([input_datetime docs]) +- Fix numeric_state condition spamming on unavailable ([@OttoWinter] - [#12550]) +- Frontier silicon async ([@zhelev] - [#12503]) ([media_player.frontier_silicon docs]) +- Fix WUnderground spamming logs ([@OttoWinter] - [#12548]) ([sensor.wunderground docs]) +- Added support for milight single channel dimmer ([@rubenverhoef] - [#12558]) ([light.limitlessled docs]) +- Add new component: BMW connected drive ([@ChristianKuehnel] - [#12277]) ([bmw_connected_drive docs]) ([device_tracker.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (new-platform) +- Cleanup hass.io component ([@pvizeli] - [#12556]) ([hassio docs]) +- Add support for smoke detector in deconz ([@Kane610] - [#12561]) ([deconz docs]) +- Fix caldav component handling missing dtend ([@bottomquark] - [#12562]) ([calendar.caldav docs]) +- Add limitlessled night effect ([@amelchio] - [#12567]) ([light.limitlessled docs]) +- Basic support of post 2016 AVR-X receivers ([@scarface-4711] - [#12569]) ([media_player.denonavr docs]) +- Fix config 404 ([@balloob] - [#12571]) ([config docs]) +- Logbook speedup ([@amelchio] - [#12566]) ([logbook docs]) +- Fix sonos default errorcodes ([@amelchio] - [#12582]) ([media_player.sonos docs]) +- Update pychromecast to 2.0.0 ([@balloob] - [#12587]) ([media_player.cast docs]) +- Set event_id foreign key in recorded states ([@amelchio] - [#12580]) +- Deconz support water sensor ([@Kane610] - [#12581]) ([deconz docs]) +- Cloud reconnect tweaks ([@balloob] - [#12586]) ([cloud docs]) +- Hassio cleanup part2 ([@pvizeli] - [#12588]) ([hassio docs]) +- Add Bluetooth and NFC card/tag Alarm types ([@matthewcky2k] - [#12151]) ([lock.zwave docs]) +- Fix fix isy994 fan detection ([@OverloadUT] - [#12595]) ([isy994 docs]) +- Adds folder sensor ([@robmarkcole] - [#12208]) ([sensor.folder docs]) (new-platform) +- Add unique_id to Xiaomi Aqara ([@tinloaf] - [#12372]) ([xiaomi_aqara docs]) +- Make groups entities again ([@balloob] - [#12574]) ([alexa docs]) +- Python spotcrime ([@jcconnell] - [#12460]) ([sensor.spotcrime docs]) (new-platform) +- Allow ignoring call service events in mqtt_eventstream ([@cmsimike] - [#12519]) ([mqtt_eventstream docs]) +- Set speed service fixed. ([@syssi] - [#12602]) ([fan.xiaomi_miio docs]) +- Updated script/lint ([@cdce8p] - [#12600]) +- Adding RoomHinting to GoogleAssistant to allow for room annotations. ([@jeremydk] - [#12598]) ([google_assistant docs]) +- Fix mclimate accounts with not only melissa components ([@kennedyshead] - [#12427]) ([melissa docs]) ([climate.melissa docs]) +- Cast unique_id and async discovery ([@OttoWinter] - [#12474]) ([media_player.cast docs]) +- Add Tahoma scenes ([@bakedraccoon] - [#12498]) ([scene docs]) ([tahoma docs]) (new-platform) +- Optimize logbook SQL query ([@amelchio] - [#12608]) ([logbook docs]) +- Fix voluptuous breaking change things ([@balloob] - [#12611]) ([xiaomi_aqara docs]) ([binary_sensor.knx docs]) +- OpenGarage - correctly handle offline status (#12612) ([@swbradshaw] - [#12613]) ([cover.opengarage docs]) +- Move recorder query out of event loop ([@amelchio] - [#12615]) +- Hassio update timeout filter list ([@pvizeli] - [#12617]) ([hassio docs]) +- The name of the enum must be used here because of the speed_list. ([@syssi] - [#12625]) ([fan.xiaomi_miio docs]) +- Fix cast doing I/O in event loop ([@OttoWinter] - [#12632]) ([media_player.cast docs]) + +[#11124]: https://github.com/home-assistant/home-assistant/pull/11124 +[#11129]: https://github.com/home-assistant/home-assistant/pull/11129 +[#11165]: https://github.com/home-assistant/home-assistant/pull/11165 +[#11450]: https://github.com/home-assistant/home-assistant/pull/11450 +[#11491]: https://github.com/home-assistant/home-assistant/pull/11491 +[#11555]: https://github.com/home-assistant/home-assistant/pull/11555 +[#11630]: https://github.com/home-assistant/home-assistant/pull/11630 +[#11683]: https://github.com/home-assistant/home-assistant/pull/11683 +[#11862]: https://github.com/home-assistant/home-assistant/pull/11862 +[#12004]: https://github.com/home-assistant/home-assistant/pull/12004 +[#12079]: https://github.com/home-assistant/home-assistant/pull/12079 +[#12126]: https://github.com/home-assistant/home-assistant/pull/12126 +[#12151]: https://github.com/home-assistant/home-assistant/pull/12151 +[#12181]: https://github.com/home-assistant/home-assistant/pull/12181 +[#12201]: https://github.com/home-assistant/home-assistant/pull/12201 +[#12208]: https://github.com/home-assistant/home-assistant/pull/12208 +[#12211]: https://github.com/home-assistant/home-assistant/pull/12211 +[#12252]: https://github.com/home-assistant/home-assistant/pull/12252 +[#12262]: https://github.com/home-assistant/home-assistant/pull/12262 +[#12264]: https://github.com/home-assistant/home-assistant/pull/12264 +[#12266]: https://github.com/home-assistant/home-assistant/pull/12266 +[#12268]: https://github.com/home-assistant/home-assistant/pull/12268 +[#12271]: https://github.com/home-assistant/home-assistant/pull/12271 +[#12274]: https://github.com/home-assistant/home-assistant/pull/12274 +[#12277]: https://github.com/home-assistant/home-assistant/pull/12277 +[#12279]: https://github.com/home-assistant/home-assistant/pull/12279 +[#12280]: https://github.com/home-assistant/home-assistant/pull/12280 +[#12281]: https://github.com/home-assistant/home-assistant/pull/12281 +[#12283]: https://github.com/home-assistant/home-assistant/pull/12283 +[#12290]: https://github.com/home-assistant/home-assistant/pull/12290 +[#12291]: https://github.com/home-assistant/home-assistant/pull/12291 +[#12294]: https://github.com/home-assistant/home-assistant/pull/12294 +[#12295]: https://github.com/home-assistant/home-assistant/pull/12295 +[#12296]: https://github.com/home-assistant/home-assistant/pull/12296 +[#12307]: https://github.com/home-assistant/home-assistant/pull/12307 +[#12315]: https://github.com/home-assistant/home-assistant/pull/12315 +[#12316]: https://github.com/home-assistant/home-assistant/pull/12316 +[#12319]: https://github.com/home-assistant/home-assistant/pull/12319 +[#12322]: https://github.com/home-assistant/home-assistant/pull/12322 +[#12329]: https://github.com/home-assistant/home-assistant/pull/12329 +[#12331]: https://github.com/home-assistant/home-assistant/pull/12331 +[#12333]: https://github.com/home-assistant/home-assistant/pull/12333 +[#12335]: https://github.com/home-assistant/home-assistant/pull/12335 +[#12338]: https://github.com/home-assistant/home-assistant/pull/12338 +[#12343]: https://github.com/home-assistant/home-assistant/pull/12343 +[#12344]: https://github.com/home-assistant/home-assistant/pull/12344 +[#12347]: https://github.com/home-assistant/home-assistant/pull/12347 +[#12348]: https://github.com/home-assistant/home-assistant/pull/12348 +[#12352]: https://github.com/home-assistant/home-assistant/pull/12352 +[#12354]: https://github.com/home-assistant/home-assistant/pull/12354 +[#12356]: https://github.com/home-assistant/home-assistant/pull/12356 +[#12359]: https://github.com/home-assistant/home-assistant/pull/12359 +[#12360]: https://github.com/home-assistant/home-assistant/pull/12360 +[#12361]: https://github.com/home-assistant/home-assistant/pull/12361 +[#12362]: https://github.com/home-assistant/home-assistant/pull/12362 +[#12365]: https://github.com/home-assistant/home-assistant/pull/12365 +[#12370]: https://github.com/home-assistant/home-assistant/pull/12370 +[#12372]: https://github.com/home-assistant/home-assistant/pull/12372 +[#12377]: https://github.com/home-assistant/home-assistant/pull/12377 +[#12378]: https://github.com/home-assistant/home-assistant/pull/12378 +[#12379]: https://github.com/home-assistant/home-assistant/pull/12379 +[#12383]: https://github.com/home-assistant/home-assistant/pull/12383 +[#12385]: https://github.com/home-assistant/home-assistant/pull/12385 +[#12390]: https://github.com/home-assistant/home-assistant/pull/12390 +[#12391]: https://github.com/home-assistant/home-assistant/pull/12391 +[#12401]: https://github.com/home-assistant/home-assistant/pull/12401 +[#12404]: https://github.com/home-assistant/home-assistant/pull/12404 +[#12408]: https://github.com/home-assistant/home-assistant/pull/12408 +[#12409]: https://github.com/home-assistant/home-assistant/pull/12409 +[#12411]: https://github.com/home-assistant/home-assistant/pull/12411 +[#12412]: https://github.com/home-assistant/home-assistant/pull/12412 +[#12420]: https://github.com/home-assistant/home-assistant/pull/12420 +[#12424]: https://github.com/home-assistant/home-assistant/pull/12424 +[#12427]: https://github.com/home-assistant/home-assistant/pull/12427 +[#12428]: https://github.com/home-assistant/home-assistant/pull/12428 +[#12432]: https://github.com/home-assistant/home-assistant/pull/12432 +[#12440]: https://github.com/home-assistant/home-assistant/pull/12440 +[#12446]: https://github.com/home-assistant/home-assistant/pull/12446 +[#12451]: https://github.com/home-assistant/home-assistant/pull/12451 +[#12454]: https://github.com/home-assistant/home-assistant/pull/12454 +[#12457]: https://github.com/home-assistant/home-assistant/pull/12457 +[#12460]: https://github.com/home-assistant/home-assistant/pull/12460 +[#12463]: https://github.com/home-assistant/home-assistant/pull/12463 +[#12464]: https://github.com/home-assistant/home-assistant/pull/12464 +[#12465]: https://github.com/home-assistant/home-assistant/pull/12465 +[#12467]: https://github.com/home-assistant/home-assistant/pull/12467 +[#12469]: https://github.com/home-assistant/home-assistant/pull/12469 +[#12474]: https://github.com/home-assistant/home-assistant/pull/12474 +[#12475]: https://github.com/home-assistant/home-assistant/pull/12475 +[#12477]: https://github.com/home-assistant/home-assistant/pull/12477 +[#12478]: https://github.com/home-assistant/home-assistant/pull/12478 +[#12480]: https://github.com/home-assistant/home-assistant/pull/12480 +[#12481]: https://github.com/home-assistant/home-assistant/pull/12481 +[#12486]: https://github.com/home-assistant/home-assistant/pull/12486 +[#12488]: https://github.com/home-assistant/home-assistant/pull/12488 +[#12492]: https://github.com/home-assistant/home-assistant/pull/12492 +[#12494]: https://github.com/home-assistant/home-assistant/pull/12494 +[#12495]: https://github.com/home-assistant/home-assistant/pull/12495 +[#12496]: https://github.com/home-assistant/home-assistant/pull/12496 +[#12498]: https://github.com/home-assistant/home-assistant/pull/12498 +[#12503]: https://github.com/home-assistant/home-assistant/pull/12503 +[#12510]: https://github.com/home-assistant/home-assistant/pull/12510 +[#12513]: https://github.com/home-assistant/home-assistant/pull/12513 +[#12518]: https://github.com/home-assistant/home-assistant/pull/12518 +[#12519]: https://github.com/home-assistant/home-assistant/pull/12519 +[#12525]: https://github.com/home-assistant/home-assistant/pull/12525 +[#12535]: https://github.com/home-assistant/home-assistant/pull/12535 +[#12536]: https://github.com/home-assistant/home-assistant/pull/12536 +[#12537]: https://github.com/home-assistant/home-assistant/pull/12537 +[#12538]: https://github.com/home-assistant/home-assistant/pull/12538 +[#12540]: https://github.com/home-assistant/home-assistant/pull/12540 +[#12548]: https://github.com/home-assistant/home-assistant/pull/12548 +[#12550]: https://github.com/home-assistant/home-assistant/pull/12550 +[#12552]: https://github.com/home-assistant/home-assistant/pull/12552 +[#12556]: https://github.com/home-assistant/home-assistant/pull/12556 +[#12558]: https://github.com/home-assistant/home-assistant/pull/12558 +[#12561]: https://github.com/home-assistant/home-assistant/pull/12561 +[#12562]: https://github.com/home-assistant/home-assistant/pull/12562 +[#12566]: https://github.com/home-assistant/home-assistant/pull/12566 +[#12567]: https://github.com/home-assistant/home-assistant/pull/12567 +[#12569]: https://github.com/home-assistant/home-assistant/pull/12569 +[#12571]: https://github.com/home-assistant/home-assistant/pull/12571 +[#12574]: https://github.com/home-assistant/home-assistant/pull/12574 +[#12580]: https://github.com/home-assistant/home-assistant/pull/12580 +[#12581]: https://github.com/home-assistant/home-assistant/pull/12581 +[#12582]: https://github.com/home-assistant/home-assistant/pull/12582 +[#12586]: https://github.com/home-assistant/home-assistant/pull/12586 +[#12587]: https://github.com/home-assistant/home-assistant/pull/12587 +[#12588]: https://github.com/home-assistant/home-assistant/pull/12588 +[#12595]: https://github.com/home-assistant/home-assistant/pull/12595 +[#12598]: https://github.com/home-assistant/home-assistant/pull/12598 +[#12600]: https://github.com/home-assistant/home-assistant/pull/12600 +[#12602]: https://github.com/home-assistant/home-assistant/pull/12602 +[#12608]: https://github.com/home-assistant/home-assistant/pull/12608 +[#12611]: https://github.com/home-assistant/home-assistant/pull/12611 +[#12613]: https://github.com/home-assistant/home-assistant/pull/12613 +[#12615]: https://github.com/home-assistant/home-assistant/pull/12615 +[#12617]: https://github.com/home-assistant/home-assistant/pull/12617 +[#12625]: https://github.com/home-assistant/home-assistant/pull/12625 +[#12632]: https://github.com/home-assistant/home-assistant/pull/12632 +[#12669]: https://github.com/home-assistant/home-assistant/pull/12669 +[@ChristianKuehnel]: https://github.com/ChristianKuehnel +[@FrederikBolding]: https://github.com/FrederikBolding +[@Julius2342]: https://github.com/Julius2342 +[@Kane610]: https://github.com/Kane610 +[@NovapaX]: https://github.com/NovapaX +[@OttoWinter]: https://github.com/OttoWinter +[@OverloadUT]: https://github.com/OverloadUT +[@PhilRW]: https://github.com/PhilRW +[@ReneNulschDE]: https://github.com/ReneNulschDE +[@abmantis]: https://github.com/abmantis +[@amelchio]: https://github.com/amelchio +[@aprasanna]: https://github.com/aprasanna +[@armills]: https://github.com/armills +[@bachya]: https://github.com/bachya +[@bakedraccoon]: https://github.com/bakedraccoon +[@balloob]: https://github.com/balloob +[@bottomquark]: https://github.com/bottomquark +[@cdce8p]: https://github.com/cdce8p +[@cmsimike]: https://github.com/cmsimike +[@d0ugal]: https://github.com/d0ugal +[@danielhiversen]: https://github.com/danielhiversen +[@dgomes]: https://github.com/dgomes +[@elupus]: https://github.com/elupus +[@fabaff]: https://github.com/fabaff +[@fattdev]: https://github.com/fattdev +[@gerard33]: https://github.com/gerard33 +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@hmn]: https://github.com/hmn +[@igorbernstein2]: https://github.com/igorbernstein2 +[@jcconnell]: https://github.com/jcconnell +[@jeradM]: https://github.com/jeradM +[@jeremydk]: https://github.com/jeremydk +[@jesserockz]: https://github.com/jesserockz +[@karlkar]: https://github.com/karlkar +[@kellerza]: https://github.com/kellerza +[@kennedyshead]: https://github.com/kennedyshead +[@lucasweb78]: https://github.com/lucasweb78 +[@matt2005]: https://github.com/matt2005 +[@matthewcky2k]: https://github.com/matthewcky2k +[@mikeodr]: https://github.com/mikeodr +[@mjj4791]: https://github.com/mjj4791 +[@neffs]: https://github.com/neffs +[@patrik3k]: https://github.com/patrik3k +[@pvizeli]: https://github.com/pvizeli +[@rcloran]: https://github.com/rcloran +[@robmarkcole]: https://github.com/robmarkcole +[@rubenverhoef]: https://github.com/rubenverhoef +[@rytilahti]: https://github.com/rytilahti +[@scarface-4711]: https://github.com/scarface-4711 +[@sjvc]: https://github.com/sjvc +[@snjoetw]: https://github.com/snjoetw +[@swbradshaw]: https://github.com/swbradshaw +[@syssi]: https://github.com/syssi +[@tabakhase]: https://github.com/tabakhase +[@thrawnarn]: https://github.com/thrawnarn +[@tinloaf]: https://github.com/tinloaf +[@trisk]: https://github.com/trisk +[@tschmidty69]: https://github.com/tschmidty69 +[@ttroy50]: https://github.com/ttroy50 +[@zhelev]: https://github.com/zhelev +[@fanthos]: https://github.com/fanthos +[@c727]: https://github.com/c727 +[@ciotlosm]: https://github.com/ciotlosm +[@frenck]: https://github.com/frenck +[@pvizeli]: https://github.com/pvizeli +[@ryanm101]: https://github.com/ryanm101 +[alexa docs]: https://home-assistant.io/components/alexa/ +[august docs]: https://home-assistant.io/components/august/ +[binary_sensor.august docs]: https://home-assistant.io/components/binary_sensor.august/ +[binary_sensor.bloomsky docs]: https://home-assistant.io/components/binary_sensor.bloomsky/ +[binary_sensor.deconz docs]: https://home-assistant.io/components/binary_sensor.deconz/ +[binary_sensor.knx docs]: https://home-assistant.io/components/binary_sensor.knx/ +[bmw_connected_drive docs]: https://home-assistant.io/components/bmw_connected_drive/ +[calendar.caldav docs]: https://home-assistant.io/components/calendar.caldav/ +[camera.august docs]: https://home-assistant.io/components/camera.august/ +[camera.bloomsky docs]: https://home-assistant.io/components/camera.bloomsky/ +[camera.doorbird docs]: https://home-assistant.io/components/camera.doorbird/ +[camera.onvif docs]: https://home-assistant.io/components/camera.onvif/ +[camera.rpi_camera docs]: https://home-assistant.io/components/camera.rpi_camera/ +[climate.eq3btsmart docs]: https://home-assistant.io/components/climate.eq3btsmart/ +[climate.knx docs]: https://home-assistant.io/components/climate.knx/ +[climate.melissa docs]: https://home-assistant.io/components/climate.melissa/ +[cloud docs]: https://home-assistant.io/components/cloud/ +[config docs]: https://home-assistant.io/components/config/ +[conversation docs]: https://home-assistant.io/components/conversation/ +[cover.knx docs]: https://home-assistant.io/components/cover.knx/ +[cover.opengarage docs]: https://home-assistant.io/components/cover.opengarage/ +[deconz docs]: https://home-assistant.io/components/deconz/ +[device_tracker.asuswrt docs]: https://home-assistant.io/components/device_tracker.asuswrt/ +[device_tracker.automatic docs]: https://home-assistant.io/components/device_tracker.automatic/ +[device_tracker.bmw_connected_drive docs]: https://home-assistant.io/components/device_tracker.bmw_connected_drive/ +[device_tracker.nmap_tracker docs]: https://home-assistant.io/components/device_tracker.nmap_tracker/ +[device_tracker.unifi docs]: https://home-assistant.io/components/device_tracker.unifi/ +[fan.xiaomi_miio docs]: https://home-assistant.io/components/fan.xiaomi_miio/ +[frontend docs]: https://home-assistant.io/components/frontend/ +[google_assistant docs]: https://home-assistant.io/components/google_assistant/ +[hassio docs]: https://home-assistant.io/components/hassio/ +[history docs]: https://home-assistant.io/components/history/ +[homekit docs]: https://home-assistant.io/components/homekit/ +[homekit.accessories docs]: https://home-assistant.io/components/homekit.accessories/ +[homekit.const docs]: https://home-assistant.io/components/homekit.const/ +[homekit.covers docs]: https://home-assistant.io/components/homekit.covers/ +[homekit.sensors docs]: https://home-assistant.io/components/homekit.sensors/ +[http docs]: https://home-assistant.io/components/http/ +[input_datetime docs]: https://home-assistant.io/components/input_datetime/ +[isy994 docs]: https://home-assistant.io/components/isy994/ +[knx docs]: https://home-assistant.io/components/knx/ +[light.deconz docs]: https://home-assistant.io/components/light.deconz/ +[light.iglo docs]: https://home-assistant.io/components/light.iglo/ +[light.knx docs]: https://home-assistant.io/components/light.knx/ +[light.limitlessled docs]: https://home-assistant.io/components/light.limitlessled/ +[light.xiaomi_miio docs]: https://home-assistant.io/components/light.xiaomi_miio/ +[lock.august docs]: https://home-assistant.io/components/lock.august/ +[lock.zwave docs]: https://home-assistant.io/components/lock.zwave/ +[logbook docs]: https://home-assistant.io/components/logbook/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player.bluesound docs]: https://home-assistant.io/components/media_player.bluesound/ +[media_player.braviatv_psk docs]: https://home-assistant.io/components/media_player.braviatv_psk/ +[media_player.cast docs]: https://home-assistant.io/components/media_player.cast/ +[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/ +[media_player.frontier_silicon docs]: https://home-assistant.io/components/media_player.frontier_silicon/ +[media_player.panasonic_viera docs]: https://home-assistant.io/components/media_player.panasonic_viera/ +[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/ +[media_player.xiaomi_tv docs]: https://home-assistant.io/components/media_player.xiaomi_tv/ +[melissa docs]: https://home-assistant.io/components/melissa/ +[mqtt docs]: https://home-assistant.io/components/mqtt/ +[mqtt_eventstream docs]: https://home-assistant.io/components/mqtt_eventstream/ +[notify.html5 docs]: https://home-assistant.io/components/notify.html5/ +[notify.knx docs]: https://home-assistant.io/components/notify.knx/ +[notify.lametric docs]: https://home-assistant.io/components/notify.lametric/ +[panel_iframe docs]: https://home-assistant.io/components/panel_iframe/ +[remote.xiaomi_miio docs]: https://home-assistant.io/components/remote.xiaomi_miio/ +[scene docs]: https://home-assistant.io/components/scene/ +[sensor.airvisual docs]: https://home-assistant.io/components/sensor.airvisual/ +[sensor.alpha_vantage docs]: https://home-assistant.io/components/sensor.alpha_vantage/ +[sensor.bloomsky docs]: https://home-assistant.io/components/sensor.bloomsky/ +[sensor.bmw_connected_drive docs]: https://home-assistant.io/components/sensor.bmw_connected_drive/ +[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/ +[sensor.deconz docs]: https://home-assistant.io/components/sensor.deconz/ +[sensor.fastdotcom docs]: https://home-assistant.io/components/sensor.fastdotcom/ +[sensor.fedex docs]: https://home-assistant.io/components/sensor.fedex/ +[sensor.filesize docs]: https://home-assistant.io/components/sensor.filesize/ +[sensor.folder docs]: https://home-assistant.io/components/sensor.folder/ +[sensor.knx docs]: https://home-assistant.io/components/sensor.knx/ +[sensor.pollen docs]: https://home-assistant.io/components/sensor.pollen/ +[sensor.rfxtrx docs]: https://home-assistant.io/components/sensor.rfxtrx/ +[sensor.sabnzbd docs]: https://home-assistant.io/components/sensor.sabnzbd/ +[sensor.sma docs]: https://home-assistant.io/components/sensor.sma/ +[sensor.smappee docs]: https://home-assistant.io/components/sensor.smappee/ +[sensor.speedtest docs]: https://home-assistant.io/components/sensor.speedtest/ +[sensor.spotcrime docs]: https://home-assistant.io/components/sensor.spotcrime/ +[sensor.startca docs]: https://home-assistant.io/components/sensor.startca/ +[sensor.template docs]: https://home-assistant.io/components/sensor.template/ +[sensor.tibber docs]: https://home-assistant.io/components/sensor.tibber/ +[sensor.wunderground docs]: https://home-assistant.io/components/sensor.wunderground/ +[sensor.zha docs]: https://home-assistant.io/components/sensor.zha/ +[shopping_list docs]: https://home-assistant.io/components/shopping_list/ +[smappee docs]: https://home-assistant.io/components/smappee/ +[switch.knx docs]: https://home-assistant.io/components/switch.knx/ +[switch.rainmachine docs]: https://home-assistant.io/components/switch.rainmachine/ +[switch.smappee docs]: https://home-assistant.io/components/switch.smappee/ +[switch.xiaomi_miio docs]: https://home-assistant.io/components/switch.xiaomi_miio/ +[tahoma docs]: https://home-assistant.io/components/tahoma/ +[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/ +[usps docs]: https://home-assistant.io/components/usps/ +[vacuum.xiaomi_miio docs]: https://home-assistant.io/components/vacuum.xiaomi_miio/ +[vera docs]: https://home-assistant.io/components/vera/ +[weather.buienradar docs]: https://home-assistant.io/components/weather.buienradar/ +[weblink docs]: https://home-assistant.io/components/weblink/ +[xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/ +[zha docs]: https://home-assistant.io/components/zha/ diff --git a/source/images/blog/2018-02-0.64/components.png b/source/images/blog/2018-02-0.64/components.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3e8855759704dadcf270ea912ace2bee937c15 GIT binary patch literal 23112 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 literal 0 HcmV?d00001