From a115c2922106047540846821323f5eb113bfb9f1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Aug 2017 12:50:09 -0700 Subject: [PATCH] Add blog post --- _config.yml | 6 +- .../alarm_control_panel.woonveilg.markdown | 15 - source/_posts/2017-08-12-release-51.markdown | 443 ++++++++++++++++++ .../images/blog/2017-08-0.51/components.png | Bin 0 -> 39175 bytes source/index.html | 1 - 5 files changed, 446 insertions(+), 19 deletions(-) delete mode 100644 source/_components/alarm_control_panel.woonveilg.markdown create mode 100644 source/_posts/2017-08-12-release-51.markdown create mode 100644 source/images/blog/2017-08-0.51/components.png diff --git a/_config.yml b/_config.yml index 6db1e155d4d..797c2c5d755 100644 --- a/_config.yml +++ b/_config.yml @@ -143,11 +143,11 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 50 -current_patch_version: 2 -date_released: 2017-07-31 +current_patch_version: 1 +date_released: 2017-08-12 # 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-0502---july-31" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): diff --git a/source/_components/alarm_control_panel.woonveilg.markdown b/source/_components/alarm_control_panel.woonveilg.markdown deleted file mode 100644 index 2c881f8e5c3..00000000000 --- a/source/_components/alarm_control_panel.woonveilg.markdown +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: "Woonveilig Alarm Control Panel" -description: "Instructions how to integrate Woonveilig into Home Assistant." -date: 2016-07-02 22:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: woonveilig.png -ha_release: 0.51 -ha_category: Alarm ---- - -For support for the Woonveilig alarm panel, see the [`egardia` platform](/components/alarm_control_panel.egardia/). Woonveilig is a brand name of Egardia, used in the Netherlands. The product is the same. diff --git a/source/_posts/2017-08-12-release-51.markdown b/source/_posts/2017-08-12-release-51.markdown new file mode 100644 index 00000000000..be882a5d154 --- /dev/null +++ b/source/_posts/2017-08-12-release-51.markdown @@ -0,0 +1,443 @@ +--- +layout: post +title: "0.51: Massive history speed up, finished automation editor and official vacuum cleaner support" +description: "Lots of frontend bugs have been squashed, the automation editor now supports all triggers and actions and vacuum cleaners are now an official component." +date: 2017-08-12 00:11:05 +date_formatted: "August 12, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-08-0.51/components.png +--- + + + +

This release has to do a one time database migration which can take a long time on big databases (20 minutes). During this time the frontend will not work. Do not stop Home Assistant while it is in progress.

+ +Release 0.51 is around the corner and it contains some really great updates. + +## {% linkable_title Database speed up %} + +The first one is more amazing database updates [#8748] by [@OverloadUT]. Every query that has been tested executes in well under 1 second, even on a RPi using MySQL with 6 million rows and around 300 entities. This is true even when you're getting an unrealistically huge date range! + +Updating the database will take some time when you start Home Assistant. During that time, the Home Assistant frontend is not accessible. Please let it complete and do not turn Home Assistant off. + +## {% linkable_title Frontend update %} + +We have finished the migration of our frontend to be powered by Polymer 2. This has given us a big speed boost on Safari/iOS devices and has fixed a wide range of bugs. + +We have also finished the automation editor. All triggers and actions are now implemented and so are most conditions (missing are `and`, `or`). The automation editor is also no longer Chrome only, it can now also be used in Safari. + +Another change to the frontend is that we have reorganized the panels. The Z-Wave and automation configuration panels have been merged into the configuration panel. + +
+ +
+ +## {% linkable_title Vacuum cleaners %} + +As we have seen more vacuum cleaners land in Home Assistant, it was time to create an official component for them. That's why [@azogue] introduced the new vacuum cleaner component in [#8623]. This allows first class integration of vacuum cleaners in Home Assistant. Out of the box we will have Dyson, Xiamo and Roomba as supported platforms. + +## {% linkable_title New Platforms %} + +- Added Lutron Caseta Scene Support ([@809694+kfcook] - [#8690]) ([lutron_caseta docs]) ([scene.lutron_caseta docs]) (new-platform) +- New media_player platform for Russound devices using the RIO protocol ([@wickerwaka] - [#8448]) ([media_player.russound_rio docs]) (new-platform) +- New component: bluesound ([@thrawnarn] - [#7192]) ([media_player.bluesound docs]) (new-platform) +- Add mochad light component ([@mtreinish] - [#8476]) ([light.mochad docs]) (new-platform) +- geizhals sensor component ([@JulianKahnert] - [#8458]) ([sensor.geizhals docs]) (new-platform) +- Xiaomi vacuum as platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform) +- Wi-Fi enabled Roomba support ([@pschmitt] - [#8825]) ([vacuum.roomba docs]) (new-platform) +- Add support to Dyson 360 Eye robot vacuum using new vacuum platform ([@CharlesBlonde] - [#8852]) ([dyson docs]) ([vacuum docs]) ([fan.dyson docs]) ([sensor.dyson docs]) ([vacuum.dyson docs]) (new-platform) +- Add Initial Mailbox panel and sensor ([@PhracturedBlue] - [#8233]) ([asterisk_mbox docs]) (new-platform) +- Add Leviton Decora Smart WiFi Device Platform ([@tlyakhov] - [#8529]) ([light.decora_wifi docs]) (new-platform) +- Add RainMachine switch platform ([@bachya] - [#8827]) ([switch.rainmachine docs]) (new-platform) +- Add new device tracker for Huawei Routers. ([@abmantis] - [#8488]) ([device_tracker.huawei_router docs]) (new-platform) +- Add Shodan sensor ([@fabaff] - [#8902]) ([sensor.shodan docs]) (new-platform) + +## {% linkable_title If you need help... %} +...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. 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][issue]. Make sure to fill in all fields of the issue template. + + +## {% linkable_title Breaking Changes %} + +- Efergy sensors: change units from KW to W ([@emlt] - [#8761]) ([sensor.efergy docs]) (breaking change) +- Xiaomi vacuum is now a platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform) + +```yaml +vacuum: +- platform: xiaomi + name: Vacuum cleaner + host: !secret xiaomi_vacuum_robot_ip + token: !secret xiaomi_vacuum_robot_token +``` + +## {% linkable_title All changes %} + +- Upgrade pushbullet.py to 0.11.0 ([@fabaff] - [#8691]) ([notify.pushbullet docs]) +- Upgrade mypy to 0.521 ([@fabaff] - [#8692]) +- Added Lutron Caseta Scene Support ([@809694+kfcook] - [#8690]) ([lutron_caseta docs]) ([scene.lutron_caseta docs]) (new-platform) +- Remove deprecated host and ssl logic from Kodi ([@armills] - [#8700]) ([media_player.kodi docs]) +- Remove deprecated substitute interfaces ([@armills] - [#8701]) ([binary_sensor docs]) ([media_player docs]) +- Remove deprecated sensor_class config options ([@armills] - [#8702]) +- directv: add configuration glue for Genie slaves ([@sielicki] - [#8713]) ([media_player.directv docs]) +- bump python-telegram-bot to 7.0.1 for fully support Bot API 3.2 ([@azogue] - [#8715]) ([telegram_bot docs]) +- Add proxy support for telegram_bot ([@azogue] - [#8717]) ([telegram_bot docs]) +- python-insteonplm module version bump ([@nugget] - [#8736]) ([insteon_plm docs]) +- New media_player platform for Russound devices using the RIO protocol ([@wickerwaka] - [#8448]) ([media_player.russound_rio docs]) (new-platform) +- Add toggle to remotes ([@alanfischer] - [#8483]) ([remote docs]) ([remote.apple_tv docs]) ([remote.harmony docs]) ([remote.itach docs]) +- added invert_state optional parameter ([@gwhiteCL] - [#8695]) ([cover.rpi_gpio docs]) +- buienradar dates tz-aware ([@mjj4791] - [#8767]) ([sensor.buienradar docs]) ([weather.buienradar docs]) +- Change units from KW to W ([@emlt] - [#8761]) ([sensor.efergy docs]) (breaking change) +- Clean up remote component ([@MartinHjelmare] - [#8728]) ([remote docs]) ([remote.apple_tv docs]) ([remote.demo docs]) ([remote.harmony docs]) ([remote.itach docs]) ([remote.kira docs]) +- Wink discovery ([@w1ll1am23] - [#8739]) ([wink docs]) +- Enable/Disable Motion detection for Foscam Cameras ([@viswa-swami] - [#8582]) ([camera.foscam docs]) +- Allow sonos to select playlists as a source ([@mcolyer] - [#8258]) ([media_player.sonos docs]) +- mpd improvements ([@StevenLooman] - [#8655]) ([media_player.mpd docs]) +- Add support for file attachments in pushbullet ([@tsvi] - [#8763]) ([notify.pushbullet docs]) +- Honeywell fixes and improvements ([@dansarginson] - [#8756]) ([climate.honeywell docs]) +- Catch exception (fixes #8724) ([@fabaff] - [#8731]) ([sensor.google_wifi docs]) +- use updated osram lightify 1.0.6 component, including bugfix allowing more than 27 devices ([@tfriedel] - [#8774]) ([light.osramlightify docs]) +- flux_led: support for property "available" ([@pezinek] - [#8764]) ([light.flux_led docs]) +- New component: bluesound ([@thrawnarn] - [#7192]) ([media_player.bluesound docs]) (new-platform) +- Add 'forecast' ability to yr weather sensor ([@tinloaf] - [#8650]) ([sensor.yr docs]) +- Feature alexa launch request ([@steverhoades] - [#8730]) ([alexa docs]) +- Fixes UnboundLocalError: local variable 'setting' referenced before assignment ([@syssi] - [#8782]) ([climate.tado docs]) +- Upgrade pyasn1 to 0.3.1 and pyasn1-modules to 0.0.10 ([@fabaff] - [#8787]) ([notify.xmpp docs]) +- Upgrade sphinx-autodoc-typehints to 1.2.1 ([@fabaff] - [#8783]) +- Improvements (configuration and validation) ([@fabaff] - [#8785]) ([sensor.yr docs]) +- Fix referencing unset variable in tado climate component (causes update to fail when tado zone is in manual mode) ([@luukd] - [#8723]) ([climate.tado docs]) +- mqtt switch: add voluptuous for availability topic ([@abmantis] - [#8797]) ([switch.mqtt docs]) +- Add mochad light component ([@mtreinish] - [#8476]) ([light.mochad docs]) (new-platform) +- Update numpy 1.13.1 ([@pvizeli] - [#8806]) ([image_processing.opencv docs]) +- Upgrade aiohttp to 2.2.4 ([@fabaff] - [#8805]) +- Catch divide by zero errors when a sleep type is 0 ([@mezz64] - [#8809]) ([sensor.eight_sleep docs]) +- InfluxDB component improvements ([@hageltech] - [#8633]) ([influxdb docs]) +- When Sonos gets a tts source - dont't show an image ([@andrey-git] - [#8777]) ([media_player.sonos docs]) +- Polymer 2 ([@balloob] - [#8815]) ([group docs]) +- geizhals sensor component ([@JulianKahnert] - [#8458]) ([sensor.geizhals docs]) (new-platform) +- Xiaomi vacuum as platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform) +- Update yweather.py ([@fanthos] - [#8820]) ([weather.yweather docs]) +- Make HA discover sabnzbd and add it to the Configurator ([@Hellowlol] - [#8634]) ([sensor.sabnzbd docs]) +- Fix Dyson sensors if devices are configured without standby monitoring. Fixes #8569 ([@CharlesBlonde] - [#8826]) ([dyson docs]) ([fan.dyson docs]) ([sensor.dyson docs]) +- Block dependencies that depend on enum34 ([@balloob] - [#8698]) +- Upgrade aiohttp to 2.2.5 ([@fabaff] - [#8828]) +- History query and schema optimizations for huge performance boost ([@OverloadUT] - [#8748]) ([history docs]) (breaking change) +- Update xiaomi vacuum tests and include in coverage ([@azogue] - [#8845]) ([vacuum docs]) ([vacuum.demo docs]) ([vacuum.xiaomi docs]) +- Egardia ([@jeroenterheerdt] - [#8389]) +- Do not call update() in constructor. ([@fabaff] - [#8837]) ([sensor.systemmonitor docs]) +- Upgrade sendgrid to 4.2.1 ([@fabaff] - [#8839]) +- Do not call update() in constructor ([@fabaff] - [#8840]) ([sensor.vasttrafik docs]) +- Make 'monitored_conditions' optional ([@fabaff] - [#8843]) ([sensor.radarr docs]) +- Do not call update() in constructor ([@fabaff] - [#8849]) ([sensor.synologydsm docs]) +- Make 'monitored_conditions' optional ([@fabaff] - [#8848]) ([sensor.sonarr docs]) +- Do not call update() in constructor ([@fabaff] - [#8847]) ([sensor.pocketcasts docs]) +- Catch ConnectionRefusedError ([@fabaff] - [#8844]) ([sensor.supervisord docs]) +- Upgrade sqlalchemy to 1.1.13 ([@fabaff] - [#8850]) ([recorder docs]) +- Upgrade pylast to 1.9.0 ([@fabaff] - [#8854]) ([sensor.lastfm docs]) +- Wi-Fi enabled Roomba support ([@pschmitt] - [#8825]) ([vacuum.roomba docs]) (new-platform) +- Add support to Dyson 360 Eye robot vacuum using new vacuum platform ([@CharlesBlonde] - [#8852]) ([dyson docs]) ([vacuum docs]) ([fan.dyson docs]) ([sensor.dyson docs]) ([vacuum.dyson docs]) (new-platform) +- Upgrade pyasn1 to 0.3.2 and pyasn1-modules to 0.0.11 ([@fabaff] - [#8856]) ([notify.xmpp docs]) +- Allow to set coordinates ([@fabaff] - [#8858]) ([sensor.zamg docs]) ([weather.zamg docs]) +- Added rounding to Google Wifi ([@fronzbot] - [#8866]) ([sensor.google_wifi docs]) +- Fix off_delay for zwave trigger sensors ([@turbokongen] - [#8864]) ([zwave docs]) ([binary_sensor.zwave docs]) +- Do not use pychromecast.Chromecast for Cast Groups ([@foxel] - [#8786]) ([media_player.cast docs]) +- Allow get local ip to work without internet ([@balloob] - [#8855]) +- Do not call update() in constructor ([@fabaff] - [#8859]) +- Add new service `clean_spot` to vacuums ([@azogue] - [#8862]) ([vacuum docs]) ([vacuum.demo docs]) ([vacuum.xiaomi docs]) +- Warn instead of raise on duplicate YAML key ([@balloob] - [#8834]) +- Add Initial Mailbox panel and sensor ([@PhracturedBlue] - [#8233]) ([asterisk_mbox docs]) (new-platform) +- Add Leviton Decora Smart WiFi Device Platform ([@tlyakhov] - [#8529]) ([light.decora_wifi docs]) (new-platform) +- Consolidate config panels ([@balloob] - [#8857]) ([automation docs]) ([zwave docs]) ([config.zwave docs]) +- Fix spelling error and update link ([@Klikini] - [#8869]) +- Implement Roomba fan speed ([@pschmitt] - [#8863]) ([vacuum.roomba docs]) +- Add nuki lock'n'go and unlatch services and add attributes ([@pschmitt] - [#8687]) ([lock.nuki docs]) +- RFLink: Add send_command service ([@leppa] - [#8876]) ([rflink docs]) +- Do not call update() in constructor ([@fabaff] - [#8881]) ([binary_sensor.rest docs]) ([sensor.rest docs]) +- Add RainMachine switch platform ([@bachya] - [#8827]) ([switch.rainmachine docs]) (new-platform) +- Allow usage of colorlog 3.0.1 ([@fabaff] - [#8885]) +- Change level ([@fabaff] - [#8883]) ([sensor.statistics docs]) +- Upgrade youtube_dl to 2017.8.6 ([@fabaff] - [#8880]) ([media_extractor docs]) +- Fix media_extractor for some sites ([@Spirit-X] - [#8887]) ([media_extractor docs]) +- Do not call update() in constructor ([@fabaff] - [#8878]) +- Do not call update() in constructor ([@fabaff] - [#8892]) ([binary_sensor.command_line docs]) ([sensor.command_line docs]) ([switch.command_line docs]) +- Changed Pi-hole graphs from stacked bar to line ([@bachya] - [#8896]) ([sensor.pi_hole docs]) +- Add longer text strings to mailbox demo to test string truncation ([@PhracturedBlue] - [#8893]) ([mailbox.demo docs]) ([mailbox.demo.txt docs]) +- added support for setting/getting position of lutron caseta covers ([@809694+kfcook] - [#8898]) ([cover.lutron_caseta docs]) +- Fix for Neato D3 Connected state obtaining ([@karlkar] - [#8817]) ([sensor.neato docs]) ([switch.neato docs]) +- Update simplisafe-python version ([@w1ll1am23] - [#8908]) ([alarm_control_panel.simplisafe docs]) +- LIFX: improve performance of multi-light transitions ([@amelchio] - [#8873]) ([light.lifx docs]) +- Support media position and media duration (will display progressbar in ui) ([@molobrakos] - [#8904]) ([media_player.squeezebox docs]) +- Add new device tracker for Huawei Routers. ([@abmantis] - [#8488]) ([device_tracker.huawei_router docs]) (new-platform) +- Add Shodan sensor ([@fabaff] - [#8902]) ([sensor.shodan docs]) (new-platform) +- Added possibilities to use template in the command_line sensor ([@mar-schmidt] - [#8505]) ([sensor.command_line docs]) +- Honor PEP8 naming convention ([@fabaff] - [#8909]) ([updater docs]) +- Remove not needed call to update ([@MartinHjelmare] - [#8930]) ([switch.rachio docs]) +- fixing emulated hue issue and testing it ([@cribbstechnologies] - [#8928]) ([emulated_hue docs]) +- Update roombapy to 1.3.1 to avoid installing all the mapping dependencies ([@pschmitt] - [#8925]) ([vacuum.roomba docs]) +- Update python-wink version to fix Dome water valve bug. ([@w1ll1am23] - [#8923]) ([wink docs]) ([switch.wink docs]) +- Fix SET_TEMPERATURE_SCHEMA in climate component ([@MartinHjelmare] - [#8879]) ([climate docs]) + +[#7192]: https://github.com/home-assistant/home-assistant/pull/7192 +[#8233]: https://github.com/home-assistant/home-assistant/pull/8233 +[#8258]: https://github.com/home-assistant/home-assistant/pull/8258 +[#8389]: https://github.com/home-assistant/home-assistant/pull/8389 +[#8448]: https://github.com/home-assistant/home-assistant/pull/8448 +[#8458]: https://github.com/home-assistant/home-assistant/pull/8458 +[#8476]: https://github.com/home-assistant/home-assistant/pull/8476 +[#8483]: https://github.com/home-assistant/home-assistant/pull/8483 +[#8488]: https://github.com/home-assistant/home-assistant/pull/8488 +[#8505]: https://github.com/home-assistant/home-assistant/pull/8505 +[#8529]: https://github.com/home-assistant/home-assistant/pull/8529 +[#8582]: https://github.com/home-assistant/home-assistant/pull/8582 +[#8623]: https://github.com/home-assistant/home-assistant/pull/8623 +[#8633]: https://github.com/home-assistant/home-assistant/pull/8633 +[#8634]: https://github.com/home-assistant/home-assistant/pull/8634 +[#8650]: https://github.com/home-assistant/home-assistant/pull/8650 +[#8655]: https://github.com/home-assistant/home-assistant/pull/8655 +[#8687]: https://github.com/home-assistant/home-assistant/pull/8687 +[#8690]: https://github.com/home-assistant/home-assistant/pull/8690 +[#8691]: https://github.com/home-assistant/home-assistant/pull/8691 +[#8692]: https://github.com/home-assistant/home-assistant/pull/8692 +[#8695]: https://github.com/home-assistant/home-assistant/pull/8695 +[#8698]: https://github.com/home-assistant/home-assistant/pull/8698 +[#8700]: https://github.com/home-assistant/home-assistant/pull/8700 +[#8701]: https://github.com/home-assistant/home-assistant/pull/8701 +[#8702]: https://github.com/home-assistant/home-assistant/pull/8702 +[#8713]: https://github.com/home-assistant/home-assistant/pull/8713 +[#8715]: https://github.com/home-assistant/home-assistant/pull/8715 +[#8717]: https://github.com/home-assistant/home-assistant/pull/8717 +[#8723]: https://github.com/home-assistant/home-assistant/pull/8723 +[#8728]: https://github.com/home-assistant/home-assistant/pull/8728 +[#8730]: https://github.com/home-assistant/home-assistant/pull/8730 +[#8731]: https://github.com/home-assistant/home-assistant/pull/8731 +[#8736]: https://github.com/home-assistant/home-assistant/pull/8736 +[#8739]: https://github.com/home-assistant/home-assistant/pull/8739 +[#8748]: https://github.com/home-assistant/home-assistant/pull/8748 +[#8756]: https://github.com/home-assistant/home-assistant/pull/8756 +[#8761]: https://github.com/home-assistant/home-assistant/pull/8761 +[#8763]: https://github.com/home-assistant/home-assistant/pull/8763 +[#8764]: https://github.com/home-assistant/home-assistant/pull/8764 +[#8767]: https://github.com/home-assistant/home-assistant/pull/8767 +[#8774]: https://github.com/home-assistant/home-assistant/pull/8774 +[#8777]: https://github.com/home-assistant/home-assistant/pull/8777 +[#8782]: https://github.com/home-assistant/home-assistant/pull/8782 +[#8783]: https://github.com/home-assistant/home-assistant/pull/8783 +[#8785]: https://github.com/home-assistant/home-assistant/pull/8785 +[#8786]: https://github.com/home-assistant/home-assistant/pull/8786 +[#8787]: https://github.com/home-assistant/home-assistant/pull/8787 +[#8797]: https://github.com/home-assistant/home-assistant/pull/8797 +[#8805]: https://github.com/home-assistant/home-assistant/pull/8805 +[#8806]: https://github.com/home-assistant/home-assistant/pull/8806 +[#8809]: https://github.com/home-assistant/home-assistant/pull/8809 +[#8815]: https://github.com/home-assistant/home-assistant/pull/8815 +[#8817]: https://github.com/home-assistant/home-assistant/pull/8817 +[#8820]: https://github.com/home-assistant/home-assistant/pull/8820 +[#8825]: https://github.com/home-assistant/home-assistant/pull/8825 +[#8826]: https://github.com/home-assistant/home-assistant/pull/8826 +[#8827]: https://github.com/home-assistant/home-assistant/pull/8827 +[#8828]: https://github.com/home-assistant/home-assistant/pull/8828 +[#8834]: https://github.com/home-assistant/home-assistant/pull/8834 +[#8837]: https://github.com/home-assistant/home-assistant/pull/8837 +[#8839]: https://github.com/home-assistant/home-assistant/pull/8839 +[#8840]: https://github.com/home-assistant/home-assistant/pull/8840 +[#8843]: https://github.com/home-assistant/home-assistant/pull/8843 +[#8844]: https://github.com/home-assistant/home-assistant/pull/8844 +[#8845]: https://github.com/home-assistant/home-assistant/pull/8845 +[#8847]: https://github.com/home-assistant/home-assistant/pull/8847 +[#8848]: https://github.com/home-assistant/home-assistant/pull/8848 +[#8849]: https://github.com/home-assistant/home-assistant/pull/8849 +[#8850]: https://github.com/home-assistant/home-assistant/pull/8850 +[#8852]: https://github.com/home-assistant/home-assistant/pull/8852 +[#8854]: https://github.com/home-assistant/home-assistant/pull/8854 +[#8855]: https://github.com/home-assistant/home-assistant/pull/8855 +[#8856]: https://github.com/home-assistant/home-assistant/pull/8856 +[#8857]: https://github.com/home-assistant/home-assistant/pull/8857 +[#8858]: https://github.com/home-assistant/home-assistant/pull/8858 +[#8859]: https://github.com/home-assistant/home-assistant/pull/8859 +[#8862]: https://github.com/home-assistant/home-assistant/pull/8862 +[#8863]: https://github.com/home-assistant/home-assistant/pull/8863 +[#8864]: https://github.com/home-assistant/home-assistant/pull/8864 +[#8866]: https://github.com/home-assistant/home-assistant/pull/8866 +[#8869]: https://github.com/home-assistant/home-assistant/pull/8869 +[#8873]: https://github.com/home-assistant/home-assistant/pull/8873 +[#8876]: https://github.com/home-assistant/home-assistant/pull/8876 +[#8878]: https://github.com/home-assistant/home-assistant/pull/8878 +[#8879]: https://github.com/home-assistant/home-assistant/pull/8879 +[#8880]: https://github.com/home-assistant/home-assistant/pull/8880 +[#8881]: https://github.com/home-assistant/home-assistant/pull/8881 +[#8883]: https://github.com/home-assistant/home-assistant/pull/8883 +[#8885]: https://github.com/home-assistant/home-assistant/pull/8885 +[#8887]: https://github.com/home-assistant/home-assistant/pull/8887 +[#8892]: https://github.com/home-assistant/home-assistant/pull/8892 +[#8893]: https://github.com/home-assistant/home-assistant/pull/8893 +[#8896]: https://github.com/home-assistant/home-assistant/pull/8896 +[#8898]: https://github.com/home-assistant/home-assistant/pull/8898 +[#8902]: https://github.com/home-assistant/home-assistant/pull/8902 +[#8904]: https://github.com/home-assistant/home-assistant/pull/8904 +[#8908]: https://github.com/home-assistant/home-assistant/pull/8908 +[#8909]: https://github.com/home-assistant/home-assistant/pull/8909 +[#8923]: https://github.com/home-assistant/home-assistant/pull/8923 +[#8925]: https://github.com/home-assistant/home-assistant/pull/8925 +[#8928]: https://github.com/home-assistant/home-assistant/pull/8928 +[#8930]: https://github.com/home-assistant/home-assistant/pull/8930 +[@809694+kfcook]: https://github.com/809694+kfcook +[@CharlesBlonde]: https://github.com/CharlesBlonde +[@Hellowlol]: https://github.com/Hellowlol +[@JulianKahnert]: https://github.com/JulianKahnert +[@Klikini]: https://github.com/Klikini +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@OverloadUT]: https://github.com/OverloadUT +[@PhracturedBlue]: https://github.com/PhracturedBlue +[@Spirit-X]: https://github.com/Spirit-X +[@StevenLooman]: https://github.com/StevenLooman +[@abmantis]: https://github.com/abmantis +[@alanfischer]: https://github.com/alanfischer +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@armills]: https://github.com/armills +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@cribbstechnologies]: https://github.com/cribbstechnologies +[@dansarginson]: https://github.com/dansarginson +[@emlt]: https://github.com/emlt +[@fabaff]: https://github.com/fabaff +[@fanthos]: https://github.com/fanthos +[@foxel]: https://github.com/foxel +[@fronzbot]: https://github.com/fronzbot +[@gwhiteCL]: https://github.com/gwhiteCL +[@hageltech]: https://github.com/hageltech +[@jeroenterheerdt]: https://github.com/jeroenterheerdt +[@karlkar]: https://github.com/karlkar +[@leppa]: https://github.com/leppa +[@luukd]: https://github.com/luukd +[@mar-schmidt]: https://github.com/mar-schmidt +[@mcolyer]: https://github.com/mcolyer +[@mezz64]: https://github.com/mezz64 +[@mjj4791]: https://github.com/mjj4791 +[@molobrakos]: https://github.com/molobrakos +[@mtreinish]: https://github.com/mtreinish +[@nugget]: https://github.com/nugget +[@pezinek]: https://github.com/pezinek +[@pschmitt]: https://github.com/pschmitt +[@pvizeli]: https://github.com/pvizeli +[@sielicki]: https://github.com/sielicki +[@steverhoades]: https://github.com/steverhoades +[@syssi]: https://github.com/syssi +[@tfriedel]: https://github.com/tfriedel +[@thrawnarn]: https://github.com/thrawnarn +[@tinloaf]: https://github.com/tinloaf +[@tlyakhov]: https://github.com/tlyakhov +[@tsvi]: https://github.com/tsvi +[@turbokongen]: https://github.com/turbokongen +[@viswa-swami]: https://github.com/viswa-swami +[@w1ll1am23]: https://github.com/w1ll1am23 +[@wickerwaka]: https://github.com/wickerwaka +[alarm_control_panel.simplisafe docs]: https://home-assistant.io/components/alarm_control_panel.simplisafe/ +[alexa docs]: https://home-assistant.io/components/alexa/ +[asterisk_mbox docs]: https://home-assistant.io/components/asterisk_mbox/ +[automation docs]: https://home-assistant.io/components/automation/ +[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/ +[binary_sensor.command_line docs]: https://home-assistant.io/components/binary_sensor.command_line/ +[binary_sensor.rest docs]: https://home-assistant.io/components/binary_sensor.rest/ +[binary_sensor.zwave docs]: https://home-assistant.io/components/binary_sensor.zwave/ +[camera.foscam docs]: https://home-assistant.io/components/camera.foscam/ +[climate docs]: https://home-assistant.io/components/climate/ +[climate.honeywell docs]: https://home-assistant.io/components/climate.honeywell/ +[climate.tado docs]: https://home-assistant.io/components/climate.tado/ +[config.zwave docs]: https://home-assistant.io/components/config.zwave/ +[cover.lutron_caseta docs]: https://home-assistant.io/components/cover.lutron_caseta/ +[cover.rpi_gpio docs]: https://home-assistant.io/components/cover.rpi_gpio/ +[device_tracker.huawei_router docs]: https://home-assistant.io/components/device_tracker.huawei_router/ +[dyson docs]: https://home-assistant.io/components/dyson/ +[emulated_hue docs]: https://home-assistant.io/components/emulated_hue/ +[fan.dyson docs]: https://home-assistant.io/components/fan.dyson/ +[group docs]: https://home-assistant.io/components/group/ +[history docs]: https://home-assistant.io/components/history/ +[image_processing.opencv docs]: https://home-assistant.io/components/image_processing.opencv/ +[influxdb docs]: https://home-assistant.io/components/influxdb/ +[insteon_plm docs]: https://home-assistant.io/components/insteon_plm/ +[light.decora_wifi docs]: https://home-assistant.io/components/light.decora_wifi/ +[light.flux_led docs]: https://home-assistant.io/components/light.flux_led/ +[light.lifx docs]: https://home-assistant.io/components/light.lifx/ +[light.mochad docs]: https://home-assistant.io/components/light.mochad/ +[light.osramlightify docs]: https://home-assistant.io/components/light.osramlightify/ +[lock.nuki docs]: https://home-assistant.io/components/lock.nuki/ +[lutron_caseta docs]: https://home-assistant.io/components/lutron_caseta/ +[mailbox.demo docs]: https://home-assistant.io/components/mailbox.demo/ +[mailbox.demo.txt docs]: https://home-assistant.io/components/mailbox.demo.txt/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player docs]: https://home-assistant.io/components/media_player/ +[media_player.bluesound docs]: https://home-assistant.io/components/media_player.bluesound/ +[media_player.cast docs]: https://home-assistant.io/components/media_player.cast/ +[media_player.directv docs]: https://home-assistant.io/components/media_player.directv/ +[media_player.kodi docs]: https://home-assistant.io/components/media_player.kodi/ +[media_player.mpd docs]: https://home-assistant.io/components/media_player.mpd/ +[media_player.russound_rio docs]: https://home-assistant.io/components/media_player.russound_rio/ +[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/ +[media_player.squeezebox docs]: https://home-assistant.io/components/media_player.squeezebox/ +[notify.pushbullet docs]: https://home-assistant.io/components/notify.pushbullet/ +[notify.xmpp docs]: https://home-assistant.io/components/notify.xmpp/ +[recorder docs]: https://home-assistant.io/components/recorder/ +[recorder.migration docs]: https://home-assistant.io/components/recorder.migration/ +[recorder.models docs]: https://home-assistant.io/components/recorder.models/ +[recorder.purge docs]: https://home-assistant.io/components/recorder.purge/ +[recorder.util docs]: https://home-assistant.io/components/recorder.util/ +[remote docs]: https://home-assistant.io/components/remote/ +[remote.apple_tv docs]: https://home-assistant.io/components/remote.apple_tv/ +[remote.demo docs]: https://home-assistant.io/components/remote.demo/ +[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/ +[remote.itach docs]: https://home-assistant.io/components/remote.itach/ +[remote.kira docs]: https://home-assistant.io/components/remote.kira/ +[rflink docs]: https://home-assistant.io/components/rflink/ +[scene.lutron_caseta docs]: https://home-assistant.io/components/scene.lutron_caseta/ +[sensor.asterisk_mbox docs]: https://home-assistant.io/components/sensor.asterisk_mbox/ +[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/ +[sensor.command_line docs]: https://home-assistant.io/components/sensor.command_line/ +[sensor.dyson docs]: https://home-assistant.io/components/sensor.dyson/ +[sensor.efergy docs]: https://home-assistant.io/components/sensor.efergy/ +[sensor.eight_sleep docs]: https://home-assistant.io/components/sensor.eight_sleep/ +[sensor.geizhals docs]: https://home-assistant.io/components/sensor.geizhals/ +[sensor.google_wifi docs]: https://home-assistant.io/components/sensor.google_wifi/ +[sensor.lastfm docs]: https://home-assistant.io/components/sensor.lastfm/ +[sensor.neato docs]: https://home-assistant.io/components/sensor.neato/ +[sensor.pi_hole docs]: https://home-assistant.io/components/sensor.pi_hole/ +[sensor.pocketcasts docs]: https://home-assistant.io/components/sensor.pocketcasts/ +[sensor.radarr docs]: https://home-assistant.io/components/sensor.radarr/ +[sensor.rest docs]: https://home-assistant.io/components/sensor.rest/ +[sensor.sabnzbd docs]: https://home-assistant.io/components/sensor.sabnzbd/ +[sensor.shodan docs]: https://home-assistant.io/components/sensor.shodan/ +[sensor.sonarr docs]: https://home-assistant.io/components/sensor.sonarr/ +[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/ +[sensor.supervisord docs]: https://home-assistant.io/components/sensor.supervisord/ +[sensor.synologydsm docs]: https://home-assistant.io/components/sensor.synologydsm/ +[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/ +[sensor.vasttrafik docs]: https://home-assistant.io/components/sensor.vasttrafik/ +[sensor.yr docs]: https://home-assistant.io/components/sensor.yr/ +[sensor.zamg docs]: https://home-assistant.io/components/sensor.zamg/ +[switch.command_line docs]: https://home-assistant.io/components/switch.command_line/ +[switch.mqtt docs]: https://home-assistant.io/components/switch.mqtt/ +[switch.neato docs]: https://home-assistant.io/components/switch.neato/ +[switch.rachio docs]: https://home-assistant.io/components/switch.rachio/ +[switch.rainmachine docs]: https://home-assistant.io/components/switch.rainmachine/ +[switch.wink docs]: https://home-assistant.io/components/switch.wink/ +[switch.xiaomi_vacuum docs]: https://home-assistant.io/components/switch.xiaomi_vacuum/ +[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/ +[updater docs]: https://home-assistant.io/components/updater/ +[vacuum docs]: https://home-assistant.io/components/vacuum/ +[vacuum.demo docs]: https://home-assistant.io/components/vacuum.demo/ +[vacuum.dyson docs]: https://home-assistant.io/components/vacuum.dyson/ +[vacuum.roomba docs]: https://home-assistant.io/components/vacuum.roomba/ +[vacuum.xiaomi docs]: https://home-assistant.io/components/vacuum.xiaomi/ +[weather.buienradar docs]: https://home-assistant.io/components/weather.buienradar/ +[weather.yweather docs]: https://home-assistant.io/components/weather.yweather/ +[weather.zamg docs]: https://home-assistant.io/components/weather.zamg/ +[wink docs]: https://home-assistant.io/components/wink/ +[zwave docs]: https://home-assistant.io/components/zwave/ +[forum]: https://community.home-assistant.io/ +[issue]: https://github.com/home-assistant/home-assistant/issues +[discord]: https://discord.gg/c5DvZ4e diff --git a/source/images/blog/2017-08-0.51/components.png b/source/images/blog/2017-08-0.51/components.png new file mode 100644 index 0000000000000000000000000000000000000000..511070a5fdcbf9528fd0babafa388c45cf554a98 GIT binary patch literal 39175 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