diff --git a/_config.yml b/_config.yml index 9c226bb45af..10e1ef759d7 100644 --- a/_config.yml +++ b/_config.yml @@ -142,12 +142,12 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 48 -current_patch_version: 1 -date_released: 2017-07-05 +current_minor_version: 49 +current_patch_version: 0 +date_released: 2017-07-16 # 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-0481---july-5" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): diff --git a/source/_components/lametric.markdown b/source/_components/lametric.markdown new file mode 100644 index 00000000000..36d6b6d4868 --- /dev/null +++ b/source/_components/lametric.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "LaMetric" +description: "Instructions on how to integrate LaMetric with Home Assistant." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Hub +ha_release: 0.49 +--- + +```yaml +# configuration.yaml example +lametric: + client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx + client_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +``` diff --git a/source/_components/notify.lametric.markdown b/source/_components/notify.lametric.markdown new file mode 100644 index 00000000000..70ad2a4cdc0 --- /dev/null +++ b/source/_components/notify.lametric.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "LaMetric Notify" +description: "Instructions on how to setup the LaMetric notify platform with Home Assistant." +date: 2017-04-02 13:28 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Notify +ha_release: 0.49 +--- + +```yaml +notify: + name: lametric1 + platform: lametric + display_time: 20 + icon: i555 +``` diff --git a/source/_posts/2017-07-16-release-49.markdown b/source/_posts/2017-07-16-release-49.markdown new file mode 100644 index 00000000000..821b818fa6b --- /dev/null +++ b/source/_posts/2017-07-16-release-49.markdown @@ -0,0 +1,462 @@ +--- +layout: post +title: "0.49: Themes 🎨, kiosk mode and Prometheus.io" +description: "Style the frontend the way you want it and present it in Kiosk mode without tabs." +date: 2017-07-15 00:02:05 +0000 +date_formatted: "July 15, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-07-0.49/components.png +--- + + + +# {% linkable_title WE HAVE THEMES 🎨👩‍🎨 %} + +Our already amazing frontend just got even more amazing thanks to [@andrey-git]. With the new theme support you can be in control of the primary color, accent color and a whole bunch more. + +You can specify themes using new configuration options under frontend. + +```yaml +frontend: + themes: + green: + primary-color: #6ca518; +``` + +Once a theme is defined, use the new frontend service `frontend.set_theme` to activate it. More information in [the docs][frontend docs]. + +

+Screenshot of a green dashboard +Screenshot of a green dashboard +

+ +Not all parts of the user interface are themable yet. Expect improvements in future releases. + +## {% linkable_title Kiosk mode %} + +Another great new improvement for the frontend is the addition of a kiosk mode. When the frontend is viewed in kiosk mode, the tab bar will be hidden. + +To activate kiosk mode, navigate to `https://hass.example.com:8123/kiosk/group.living_room_view`. Note that for `default_view` the url is just `https://hass.example.com:8123/kiosk` + +This feature has also been brought to you by [@Andrey-git]! Big shout out to him for his continuous efforts to bring Home Assistant to the next level. + +## {% linkable_title New Platforms %} + +- Add london_underground ([@robmarkcole] - [#8272]) ([sensor.london_underground docs]) (new-platform) +- Add citybikes platform ([@aronsky] - [#8202]) ([sensor.citybikes docs]) (new-platform) +- Add One-Time Password sensor (OTP) ([@postlund] - [#8332]) ([sensor.otp docs]) (new-platform) +- Add component for xiaomi robot vacuum (switch.xiaomi_vacuum) ([@rytilahti] - [#7913]) ([switch.xiaomi_vacuum docs]) (new-platform) +- LaMetric platform and notify module ([@open-homeautomation] - [#8230]) ([lametric docs]) ([notify.lametric docs]) (new-platform) +- New component to connect to VELUX KLF 200 Interface ([@Julius2342] - [#8203]) ([velux docs]) ([scene.velux docs]) (new-platform) +- New service `send_magic_packet` with new component `wake_on_lan` ([@azogue] - [#8397]) ([wake_on_lan docs]) (new-platform) +- Add support for Prometheus ([@rcloran] - [#8211]) ([prometheus docs]) (new-platform) +- Refactored Amcrest to use central hub component ([@tchellomello] - [#8184]) ([amcrest docs]) ([camera.amcrest docs]) ([sensor.amcrest docs]) (breaking change) (new-platform) +- Added media_extractor service ([@minchik] - [#8369]) ([media_extractor docs]) (new-platform) +- Vizio SmartCast support ([@vkorn] - [#8260]) ([media_player.vizio 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 %} + +- UPC Connect component no longer needs a password passed into the configuration. ([@Flavien] - [#8335]) ([device_tracker.upc_connect docs]) (breaking change) +- The Apple TV platform has been upgraded to a component and a remote platform has been added. This requires your Apple TV configuration to be moved to the new `apple_tv` component. ([@postlund] - [#8122]) ([media_player.apple_tv docs]) (breaking change) + +```yaml +apple_tv: + - name: Apple TV + host: 10.0.10.20 + login_id: 00000000-1234-5678-9012-345678901234 + start_off: true + credentials: 8660DEA5154FB46B:20B94847926112B3F46F85DB3A7311830463BF65570C22C3786E27F38C3326CF +``` + +- Refactored Amcrest to use central hub component to prepare for future integrations. This requires your Amcrest configuration to be moved to the new `amcrest` component. ([@tchellomello] - [#8184]) ([amcrest docs]) ([camera.amcrest docs]) ([sensor.amcrest docs]) (breaking change) (new-platform) + +```yaml +amcrest: + - host: !secret amcrest_living + name: "Living Room" + username: !secret amcrest_living_username + password: !secret amcrest_living_password + resolution: low + stream_source: snapshot + sensors: + - motion_detector + - ptz_preset +``` + +## {% linkable_title All changes %} + +- Version bump to 0.49.0.dev0 ([@fabaff] - [#8266]) +- Upgrade pyowm to 2.7.1 ([@fabaff] - [#8274]) ([sensor.openweathermap docs]) ([weather.openweathermap docs]) +- Don't call update() in constructor ([@fabaff] - [#8276]) ([sensor.openweathermap docs]) +- Update apcaccess to 0.0.13. Add "Percent Load Capacity" to INFERRED_UNITS. ([@michaelarnauts] - [#8277]) ([apcupsd docs]) ([sensor.apcupsd docs]) +- Update knxip to 0.4 (better handling of reconnects) ([@open-homeautomation] - [#8289]) ([knx docs]) +- Add london_underground ([@robmarkcole] - [#8272]) ([sensor.london_underground docs]) (new-platform) +- pytado moved to pypi ([@wmalgadey] - [#8298]) ([tado docs]) ([climate.tado docs]) +- Fix doc link in header ([@robmarkcole] - [#8305]) ([sensor.london_underground docs]) +- Upgrade discord.py to 0.16.8 ([@fabaff] - [#8304]) ([notify.discord docs]) +- zha: Strip whitespace from device names ([@rcloran] - [#8306]) ([zha docs]) +- Upgrade chardet to 3.0.4 ([@fabaff] - [#8313]) +- Upgrade aiohttp to 2.2.2 ([@fabaff] - [#8314]) +- Fix pylint issue ([@fabaff] - [#8325]) ([snips docs]) +- vsure 1.3.7 ([@persandstrom] - [#8321]) ([verisure docs]) +- Update pyEmby to fix media images ([@mezz64] - [#8331]) ([media_player.emby docs]) +- Partially revert #7931 ([@fabaff] - [#8326]) ([sensor.yweather docs]) +- Only allow 'tls_insecure_set()' if cert is present (fixes #8329) ([@fabaff] - [#8337]) ([mqtt docs]) +- Fix issue #8285 ([@Sabesto] - [#8340]) ([modbus docs]) ([binary_sensor.modbus docs]) ([climate.flexit docs]) ([sensor.modbus docs]) ([switch.modbus docs]) +- Bump dlib face_recognition to 0.2.0 ([@pvizeli] - [#8345]) ([image_processing.dlib_face_detect docs]) ([image_processing.dlib_face_identify docs]) +- Update Avion and Decora switches to match upstream changes ([@mjg59] - [#7903]) ([light.avion docs]) ([light.decora docs]) +- Fix the "302" error in the UPC Connect component and remove the need to specify the router password ([@Flavien] - [#8335]) ([device_tracker.upc_connect docs]) (breaking change) +- Add new feature to Apple TV platform ([@postlund] - [#8122]) ([media_player.apple_tv docs]) (breaking change) +- Add citybikes platform ([@aronsky] - [#8202]) ([sensor.citybikes docs]) (new-platform) +- Fix some issues for PyLint 1.7.2 ([@balloob] - [#8356]) +- Fix pylint 1.7.2 no-else-return issues ([@balloob] - [#8361]) +- Upgrade aiohttp to 2.2.3 ([@fabaff] - [#8363]) +- Remove some more usage of run_in_executor ([@balloob] - [#8352]) +- Correct spelling of aliases, deprecate old config options. ([@aequitas] - [#8348]) ([rflink docs]) ([light.rflink docs]) ([sensor.rflink docs]) ([switch.rflink docs]) +- Allow Pilight Binary Sensor to control reset_delay_sec through configuration ([@clarkewd] - [#8358]) ([binary_sensor.pilight docs]) +- Mqtt client_id fix for #8315 ([@heinemml] - [#8366]) ([mqtt docs]) +- Allow all panel urls ([@balloob] - [#8368]) +- Update pyHik to catch XML errors ([@mezz64] - [#8384]) ([binary_sensor.hikvision docs]) +- update version ([@wardcraigj] - [#8380]) ([alarm_control_panel.totalconnect docs]) +- Add One-Time Password sensor (OTP) ([@postlund] - [#8332]) ([sensor.otp docs]) (new-platform) +- buienradar==0.7, fix winddirection/azimuth, logging ([@mjj4791] - [#8281]) ([sensor.buienradar docs]) ([weather.buienradar docs]) +- Add component for xiaomi robot vacuum (switch.xiaomi_vacuum) ([@rytilahti] - [#7913]) ([switch.xiaomi_vacuum docs]) (new-platform) +- Try catch around database updates in recorder. Resolves 6919 ([@mitchese] - [#8349]) ([recorder docs]) +- Fix Amazon Polly with non english voices. #8377 ([@CharlesBlonde] - [#8378]) ([tts.amazon_polly docs]) +- Fix TTS options. #8375 ([@CharlesBlonde] - [#8376]) ([tts docs]) +- Add address-specific KNX listeners that fire events on the HASS bus ([@open-homeautomation] - [#8374]) ([knx docs]) +- GTFS: check start/end date on services ([@Kernald] - [#8373]) ([sensor.gtfs docs]) +- Implement KNX dimming functionality ([@open-homeautomation] - [#8371]) ([light.knx docs]) +- Add Soundtouch support for playing an HTTP url ([@CharlesBlonde] - [#8370]) ([media_player.soundtouch docs]) +- Modbus fixes to work with pymodbus 1.3.1 ([@Sabesto] - [#8365]) ([modbus docs]) ([binary_sensor.modbus docs]) ([sensor.modbus docs]) ([switch.modbus docs]) +- Cleanup the asuswrt component ([@mattsch] - [#8359]) ([device_tracker.asuswrt docs]) +- cover_template:i open/close/stop actions no longer required. Improve tests ([@PhracturedBlue] - [#8344]) ([cover.template docs]) +- Prevent errors on Octoprint sensors and binary_sensors when Octoprint and/or Printer are off ([@w1ll1am23] - [#8343]) ([octoprint docs]) ([binary_sensor.octoprint docs]) ([sensor.octoprint docs]) +- Presence detection for tp link eap225 ([@alexrockt] - [#8322]) ([device_tracker.tplink docs]) +- zha light: Refresh at startup ([@rcloran] - [#8310]) ([light.zha docs]) +- zha: Try multiple reads to get manufacturer/model ([@rcloran] - [#8308]) ([zha docs]) +- Upnp mapping notification ([@dgomes] - [#8303]) ([upnp docs]) +- Use user-set device names for Linksys Smart Wi-Fi routers (3) ([@Klikini] - [#8300]) ([device_tracker.linksys_smart docs]) +- Added support for upload of remote or local files to slack ([@simaosimao] - [#8278]) ([notify.slack docs]) +- Update avion.py ([@pvizeli] - [#8364]) ([light.avion docs]) +- LaMetric platform and notify module ([@open-homeautomation] - [#8230]) ([lametric docs]) ([notify.lametric docs]) (new-platform) +- Sets spotify media_type to music ([@Tommatheussen] - [#8387]) ([media_player.spotify docs]) +- Update waqi sensor ([@andrey-git] - [#8385]) ([sensor.waqi docs]) +- Update aiolifx ([@amelchio] - [#8396]) ([light.lifx docs]) +- Code owners ([@balloob] - [#8393]) +- Add new Dyson sensors ([@CharlesBlonde] - [#8199]) ([dyson docs]) ([fan.dyson docs]) ([sensor.dyson docs]) +- Fix CODEOWNERS z-wave team name ([@armills] - [#8400]) +- Upgrade Sphinx to 1.6.3 ([@fabaff] - [#8405]) +- Use upstream RachioPy, fix manual run switches ([@Klikini] - [#8286]) ([switch.rachio docs]) +- Marrantz SR5006 & SR5006 treated as AVR-X device | Fixed Mapping of Media Player and AUX input functions ([@scarface-4711] - [#8409]) ([media_player.denonavr docs]) +- New component to connect to VELUX KLF 200 Interface ([@Julius2342] - [#8203]) ([velux docs]) ([scene.velux docs]) (new-platform) +- Properly handle the case when a group includes itself. ([@andrey-git] - [#8398]) ([group docs]) +- Add set_operation_mode support to generic_thermostat ([@mtreinish] - [#8392]) ([climate.generic_thermostat docs]) +- Make gzips reproducible by excluding timestamp ([@armills] - [#8420]) +- Do not overwrite a custom hyperion light name with the hostname of the server. ([@doctorjames] - [#8391]) ([light.hyperion docs]) +- Fixed link to documentation ([@Julius2342] - [#8424]) ([velux docs]) ([scene.velux docs]) +- Fix KeyError (fixes #3721, fixes #7241) ([@fabaff] - [#8428]) ([sensor.uber docs]) +- Use HA lat/long for the start (fixes #3971) ([@fabaff] - [#8429]) ([sensor.uber docs]) +- bump python-mirobo requirement to support newer firmwares and more ([@rytilahti] - [#8431]) ([switch.xiaomi_vacuum docs]) +- New service `send_magic_packet` with new component `wake_on_lan` ([@azogue] - [#8397]) ([wake_on_lan docs]) (new-platform) +- Integrate utility functions into restricted Python environment ([@open-homeautomation] - [#8427]) ([python_script docs]) +- Allow Twitter notifications to include media ([@MikeChristianson] - [#8282]) ([notify docs]) ([notify.twitter docs]) +- Fix typo (sending USERNAME instead of PASSWORD) introduced in #7963 ([@thecynic] - [#8433]) ([lutron docs]) +- zha: Handle both input and output clusters ([@rcloran] - [#8410]) ([zha docs]) ([binary_sensor.zha docs]) ([light.zha docs]) ([sensor.zha docs]) +- Add support for Prometheus ([@rcloran] - [#8211]) ([prometheus docs]) (new-platform) +- Refactored Amcrest to use central hub component ([@tchellomello] - [#8184]) ([amcrest docs]) ([camera.amcrest docs]) ([sensor.amcrest docs]) (breaking change) (new-platform) +- Fix radiothermostat -1 value issue ([@aneisch] - [#8395]) ([climate.radiotherm docs]) +- Added media_extractor service ([@minchik] - [#8369]) ([media_extractor docs]) (new-platform) +- Updated pyvera ([@alanfischer] - [#8437]) ([vera docs]) +- Upgrade phue to 1.0 (fixes #7749) ([@fabaff] - [#8444]) ([light.hue docs]) +- Add effects ([@fabaff] - [#8442]) ([light.mystrom docs]) +- Exclude 'TAXI' product (fixes #8401) ([@fabaff] - [#8438]) ([sensor.uber docs]) +- Switch pyW215 to pypi ([@andrey-git] - [#8445]) ([switch.dlink docs]) +- Vizio SmartCast support ([@vkorn] - [#8260]) ([media_player.vizio docs]) (new-platform) +- DHT support for humidity and temperature offset ([@gitmopp] - [#8238]) ([sensor.dht docs]) +- Add support for rain and moisture sensors ([@sdague] - [#8440]) ([sensor.arwn docs]) +- Hass.io: Disable timeout when updating OS/supervisor/hass ([@balloob] - [#8447]) ([hassio docs]) +- Fix Arlo Q not working with 0.48.1 ([@viswa-swami] - [#8446]) ([camera.arlo docs]) +- Support for Plex servers with enforced SSL ([@nmaggioni] - [#8341]) ([media_player.plex docs]) +- Upgrade youtube_dl to 2017.7.9 ([@fabaff] - [#8450]) ([media_extractor docs]) +- Implement a bridge between HASS event bus and KNX bus to send events ([@open-homeautomation] - [#8449]) ([knx docs]) +- LIFX: improve light availability ([@amelchio] - [#8451]) ([light.lifx docs]) +- LIFX: make broadcast address configurable ([@amelchio] - [#8453]) ([light.lifx docs]) +- Backend support for themes ([@andrey-git] - [#8419]) +- upgrade broadlink ([@danielhiversen] - [#8462]) ([sensor.broadlink docs]) ([switch.broadlink docs]) +- upgrade rfxtrx lib ([@danielhiversen] - [#8463]) ([rfxtrx docs]) +- Plex: Add exception handler when connection fails ([@abmantis] - [#8179]) ([media_player.plex docs]) +- HomeMatic dependency upgrade + IP Wall Thermostat support ([@danielperna84] - [#8465]) ([homematic docs]) +- Add kiosk-mode panel ([@andrey-git] - [#8457]) + +[#7903]: https://github.com/home-assistant/home-assistant/pull/7903 +[#7913]: https://github.com/home-assistant/home-assistant/pull/7913 +[#8122]: https://github.com/home-assistant/home-assistant/pull/8122 +[#8179]: https://github.com/home-assistant/home-assistant/pull/8179 +[#8184]: https://github.com/home-assistant/home-assistant/pull/8184 +[#8199]: https://github.com/home-assistant/home-assistant/pull/8199 +[#8202]: https://github.com/home-assistant/home-assistant/pull/8202 +[#8203]: https://github.com/home-assistant/home-assistant/pull/8203 +[#8211]: https://github.com/home-assistant/home-assistant/pull/8211 +[#8230]: https://github.com/home-assistant/home-assistant/pull/8230 +[#8238]: https://github.com/home-assistant/home-assistant/pull/8238 +[#8260]: https://github.com/home-assistant/home-assistant/pull/8260 +[#8266]: https://github.com/home-assistant/home-assistant/pull/8266 +[#8272]: https://github.com/home-assistant/home-assistant/pull/8272 +[#8274]: https://github.com/home-assistant/home-assistant/pull/8274 +[#8276]: https://github.com/home-assistant/home-assistant/pull/8276 +[#8277]: https://github.com/home-assistant/home-assistant/pull/8277 +[#8278]: https://github.com/home-assistant/home-assistant/pull/8278 +[#8281]: https://github.com/home-assistant/home-assistant/pull/8281 +[#8282]: https://github.com/home-assistant/home-assistant/pull/8282 +[#8286]: https://github.com/home-assistant/home-assistant/pull/8286 +[#8289]: https://github.com/home-assistant/home-assistant/pull/8289 +[#8298]: https://github.com/home-assistant/home-assistant/pull/8298 +[#8300]: https://github.com/home-assistant/home-assistant/pull/8300 +[#8303]: https://github.com/home-assistant/home-assistant/pull/8303 +[#8304]: https://github.com/home-assistant/home-assistant/pull/8304 +[#8305]: https://github.com/home-assistant/home-assistant/pull/8305 +[#8306]: https://github.com/home-assistant/home-assistant/pull/8306 +[#8308]: https://github.com/home-assistant/home-assistant/pull/8308 +[#8310]: https://github.com/home-assistant/home-assistant/pull/8310 +[#8313]: https://github.com/home-assistant/home-assistant/pull/8313 +[#8314]: https://github.com/home-assistant/home-assistant/pull/8314 +[#8321]: https://github.com/home-assistant/home-assistant/pull/8321 +[#8322]: https://github.com/home-assistant/home-assistant/pull/8322 +[#8325]: https://github.com/home-assistant/home-assistant/pull/8325 +[#8326]: https://github.com/home-assistant/home-assistant/pull/8326 +[#8331]: https://github.com/home-assistant/home-assistant/pull/8331 +[#8332]: https://github.com/home-assistant/home-assistant/pull/8332 +[#8335]: https://github.com/home-assistant/home-assistant/pull/8335 +[#8337]: https://github.com/home-assistant/home-assistant/pull/8337 +[#8340]: https://github.com/home-assistant/home-assistant/pull/8340 +[#8341]: https://github.com/home-assistant/home-assistant/pull/8341 +[#8343]: https://github.com/home-assistant/home-assistant/pull/8343 +[#8344]: https://github.com/home-assistant/home-assistant/pull/8344 +[#8345]: https://github.com/home-assistant/home-assistant/pull/8345 +[#8348]: https://github.com/home-assistant/home-assistant/pull/8348 +[#8349]: https://github.com/home-assistant/home-assistant/pull/8349 +[#8352]: https://github.com/home-assistant/home-assistant/pull/8352 +[#8356]: https://github.com/home-assistant/home-assistant/pull/8356 +[#8358]: https://github.com/home-assistant/home-assistant/pull/8358 +[#8359]: https://github.com/home-assistant/home-assistant/pull/8359 +[#8361]: https://github.com/home-assistant/home-assistant/pull/8361 +[#8363]: https://github.com/home-assistant/home-assistant/pull/8363 +[#8364]: https://github.com/home-assistant/home-assistant/pull/8364 +[#8365]: https://github.com/home-assistant/home-assistant/pull/8365 +[#8366]: https://github.com/home-assistant/home-assistant/pull/8366 +[#8368]: https://github.com/home-assistant/home-assistant/pull/8368 +[#8369]: https://github.com/home-assistant/home-assistant/pull/8369 +[#8370]: https://github.com/home-assistant/home-assistant/pull/8370 +[#8371]: https://github.com/home-assistant/home-assistant/pull/8371 +[#8373]: https://github.com/home-assistant/home-assistant/pull/8373 +[#8374]: https://github.com/home-assistant/home-assistant/pull/8374 +[#8376]: https://github.com/home-assistant/home-assistant/pull/8376 +[#8378]: https://github.com/home-assistant/home-assistant/pull/8378 +[#8380]: https://github.com/home-assistant/home-assistant/pull/8380 +[#8384]: https://github.com/home-assistant/home-assistant/pull/8384 +[#8385]: https://github.com/home-assistant/home-assistant/pull/8385 +[#8387]: https://github.com/home-assistant/home-assistant/pull/8387 +[#8391]: https://github.com/home-assistant/home-assistant/pull/8391 +[#8392]: https://github.com/home-assistant/home-assistant/pull/8392 +[#8393]: https://github.com/home-assistant/home-assistant/pull/8393 +[#8395]: https://github.com/home-assistant/home-assistant/pull/8395 +[#8396]: https://github.com/home-assistant/home-assistant/pull/8396 +[#8397]: https://github.com/home-assistant/home-assistant/pull/8397 +[#8398]: https://github.com/home-assistant/home-assistant/pull/8398 +[#8400]: https://github.com/home-assistant/home-assistant/pull/8400 +[#8405]: https://github.com/home-assistant/home-assistant/pull/8405 +[#8409]: https://github.com/home-assistant/home-assistant/pull/8409 +[#8410]: https://github.com/home-assistant/home-assistant/pull/8410 +[#8419]: https://github.com/home-assistant/home-assistant/pull/8419 +[#8420]: https://github.com/home-assistant/home-assistant/pull/8420 +[#8424]: https://github.com/home-assistant/home-assistant/pull/8424 +[#8427]: https://github.com/home-assistant/home-assistant/pull/8427 +[#8428]: https://github.com/home-assistant/home-assistant/pull/8428 +[#8429]: https://github.com/home-assistant/home-assistant/pull/8429 +[#8431]: https://github.com/home-assistant/home-assistant/pull/8431 +[#8433]: https://github.com/home-assistant/home-assistant/pull/8433 +[#8437]: https://github.com/home-assistant/home-assistant/pull/8437 +[#8438]: https://github.com/home-assistant/home-assistant/pull/8438 +[#8440]: https://github.com/home-assistant/home-assistant/pull/8440 +[#8442]: https://github.com/home-assistant/home-assistant/pull/8442 +[#8444]: https://github.com/home-assistant/home-assistant/pull/8444 +[#8445]: https://github.com/home-assistant/home-assistant/pull/8445 +[#8446]: https://github.com/home-assistant/home-assistant/pull/8446 +[#8447]: https://github.com/home-assistant/home-assistant/pull/8447 +[#8449]: https://github.com/home-assistant/home-assistant/pull/8449 +[#8450]: https://github.com/home-assistant/home-assistant/pull/8450 +[#8451]: https://github.com/home-assistant/home-assistant/pull/8451 +[#8453]: https://github.com/home-assistant/home-assistant/pull/8453 +[#8457]: https://github.com/home-assistant/home-assistant/pull/8457 +[#8462]: https://github.com/home-assistant/home-assistant/pull/8462 +[#8463]: https://github.com/home-assistant/home-assistant/pull/8463 +[#8465]: https://github.com/home-assistant/home-assistant/pull/8465 +[@CharlesBlonde]: https://github.com/CharlesBlonde +[@Flavien]: https://github.com/Flavien +[@Julius2342]: https://github.com/Julius2342 +[@Kernald]: https://github.com/Kernald +[@Klikini]: https://github.com/Klikini +[@MikeChristianson]: https://github.com/MikeChristianson +[@PhracturedBlue]: https://github.com/PhracturedBlue +[@Sabesto]: https://github.com/Sabesto +[@Tommatheussen]: https://github.com/Tommatheussen +[@abmantis]: https://github.com/abmantis +[@aequitas]: https://github.com/aequitas +[@alanfischer]: https://github.com/alanfischer +[@alexrockt]: https://github.com/alexrockt +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@aneisch]: https://github.com/aneisch +[@armills]: https://github.com/armills +[@aronsky]: https://github.com/aronsky +[@azogue]: https://github.com/azogue +[@balloob]: https://github.com/balloob +[@clarkewd]: https://github.com/clarkewd +[@danielhiversen]: https://github.com/danielhiversen +[@danielperna84]: https://github.com/danielperna84 +[@dgomes]: https://github.com/dgomes +[@doctorjames]: https://github.com/doctorjames +[@fabaff]: https://github.com/fabaff +[@gitmopp]: https://github.com/gitmopp +[@heinemml]: https://github.com/heinemml +[@mattsch]: https://github.com/mattsch +[@mezz64]: https://github.com/mezz64 +[@michaelarnauts]: https://github.com/michaelarnauts +[@minchik]: https://github.com/minchik +[@mitchese]: https://github.com/mitchese +[@mjg59]: https://github.com/mjg59 +[@mjj4791]: https://github.com/mjj4791 +[@mtreinish]: https://github.com/mtreinish +[@nmaggioni]: https://github.com/nmaggioni +[@open-homeautomation]: https://github.com/open-homeautomation +[@persandstrom]: https://github.com/persandstrom +[@postlund]: https://github.com/postlund +[@pvizeli]: https://github.com/pvizeli +[@rcloran]: https://github.com/rcloran +[@robmarkcole]: https://github.com/robmarkcole +[@rytilahti]: https://github.com/rytilahti +[@scarface-4711]: https://github.com/scarface-4711 +[@sdague]: https://github.com/sdague +[@simaosimao]: https://github.com/simaosimao +[@tchellomello]: https://github.com/tchellomello +[@thecynic]: https://github.com/thecynic +[@viswa-swami]: https://github.com/viswa-swami +[@vkorn]: https://github.com/vkorn +[@w1ll1am23]: https://github.com/w1ll1am23 +[@wardcraigj]: https://github.com/wardcraigj +[@wmalgadey]: https://github.com/wmalgadey +[alarm_control_panel.totalconnect docs]: https://home-assistant.io/components/alarm_control_panel.totalconnect/ +[amcrest docs]: https://home-assistant.io/components/amcrest/ +[apcupsd docs]: https://home-assistant.io/components/apcupsd/ +[binary_sensor.hikvision docs]: https://home-assistant.io/components/binary_sensor.hikvision/ +[binary_sensor.modbus docs]: https://home-assistant.io/components/binary_sensor.modbus/ +[binary_sensor.octoprint docs]: https://home-assistant.io/components/binary_sensor.octoprint/ +[binary_sensor.pilight docs]: https://home-assistant.io/components/binary_sensor.pilight/ +[binary_sensor.zha docs]: https://home-assistant.io/components/binary_sensor.zha/ +[camera.amcrest docs]: https://home-assistant.io/components/camera.amcrest/ +[camera.arlo docs]: https://home-assistant.io/components/camera.arlo/ +[climate.flexit docs]: https://home-assistant.io/components/climate.flexit/ +[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/ +[climate.radiotherm docs]: https://home-assistant.io/components/climate.radiotherm/ +[climate.tado docs]: https://home-assistant.io/components/climate.tado/ +[cover.template docs]: https://home-assistant.io/components/cover.template/ +[device_tracker.asuswrt docs]: https://home-assistant.io/components/device_tracker.asuswrt/ +[device_tracker.linksys_smart docs]: https://home-assistant.io/components/device_tracker.linksys_smart/ +[device_tracker.tplink docs]: https://home-assistant.io/components/device_tracker.tplink/ +[device_tracker.upc_connect docs]: https://home-assistant.io/components/device_tracker.upc_connect/ +[dyson docs]: https://home-assistant.io/components/dyson/ +[fan.dyson docs]: https://home-assistant.io/components/fan.dyson/ +[group docs]: https://home-assistant.io/components/group/ +[hassio docs]: https://home-assistant.io/hassio/ +[homematic docs]: https://home-assistant.io/components/homematic/ +[image_processing.dlib_face_detect docs]: https://home-assistant.io/components/image_processing.dlib_face_detect/ +[image_processing.dlib_face_identify docs]: https://home-assistant.io/components/image_processing.dlib_face_identify/ +[knx docs]: https://home-assistant.io/components/knx/ +[lametric docs]: https://home-assistant.io/components/lametric/ +[light.avion docs]: https://home-assistant.io/components/light.avion/ +[light.decora docs]: https://home-assistant.io/components/light.decora/ +[light.hue docs]: https://home-assistant.io/components/light.hue/ +[light.hyperion docs]: https://home-assistant.io/components/light.hyperion/ +[light.knx docs]: https://home-assistant.io/components/light.knx/ +[light.lifx docs]: https://home-assistant.io/components/light.lifx/ +[light.mystrom docs]: https://home-assistant.io/components/light.mystrom/ +[light.rflink docs]: https://home-assistant.io/components/light.rflink/ +[light.zha docs]: https://home-assistant.io/components/light.zha/ +[lutron docs]: https://home-assistant.io/components/lutron/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player.apple_tv docs]: https://home-assistant.io/components/media_player.apple_tv/ +[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/ +[media_player.emby docs]: https://home-assistant.io/components/media_player.emby/ +[media_player.plex docs]: https://home-assistant.io/components/media_player.plex/ +[media_player.soundtouch docs]: https://home-assistant.io/components/media_player.soundtouch/ +[media_player.spotify docs]: https://home-assistant.io/components/media_player.spotify/ +[media_player.vizio docs]: https://home-assistant.io/components/media_player.vizio/ +[modbus docs]: https://home-assistant.io/components/modbus/ +[mqtt docs]: https://home-assistant.io/components/mqtt/ +[notify docs]: https://home-assistant.io/components/notify/ +[notify.discord docs]: https://home-assistant.io/components/notify.discord/ +[notify.lametric docs]: https://home-assistant.io/components/notify.lametric/ +[notify.slack docs]: https://home-assistant.io/components/notify.slack/ +[notify.twitter docs]: https://home-assistant.io/components/notify.twitter/ +[octoprint docs]: https://home-assistant.io/components/octoprint/ +[prometheus docs]: https://home-assistant.io/components/prometheus/ +[python_script docs]: https://home-assistant.io/components/python_script/ +[recorder docs]: https://home-assistant.io/components/recorder/ +[rflink docs]: https://home-assistant.io/components/rflink/ +[rfxtrx docs]: https://home-assistant.io/components/rfxtrx/ +[scene.velux docs]: https://home-assistant.io/components/scene.velux/ +[sensor.amcrest docs]: https://home-assistant.io/components/sensor.amcrest/ +[sensor.apcupsd docs]: https://home-assistant.io/components/sensor.apcupsd/ +[sensor.arwn docs]: https://home-assistant.io/components/sensor.arwn/ +[sensor.broadlink docs]: https://home-assistant.io/components/sensor.broadlink/ +[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/ +[sensor.citybikes docs]: https://home-assistant.io/components/sensor.citybikes/ +[sensor.dht docs]: https://home-assistant.io/components/sensor.dht/ +[sensor.dyson docs]: https://home-assistant.io/components/sensor.dyson/ +[sensor.gtfs docs]: https://home-assistant.io/components/sensor.gtfs/ +[sensor.london_underground docs]: https://home-assistant.io/components/sensor.london_underground/ +[sensor.modbus docs]: https://home-assistant.io/components/sensor.modbus/ +[sensor.octoprint docs]: https://home-assistant.io/components/sensor.octoprint/ +[sensor.openweathermap docs]: https://home-assistant.io/components/sensor.openweathermap/ +[sensor.otp docs]: https://home-assistant.io/components/sensor.otp/ +[sensor.rflink docs]: https://home-assistant.io/components/sensor.rflink/ +[sensor.london_underground docs]: https://home-assistant.io/components/sensor.london_underground/ +[sensor.uber docs]: https://home-assistant.io/components/sensor.uber/ +[sensor.waqi docs]: https://home-assistant.io/components/sensor.waqi/ +[sensor.yweather docs]: https://home-assistant.io/components/sensor.yweather/ +[sensor.zha docs]: https://home-assistant.io/components/sensor.zha/ +[snips docs]: https://home-assistant.io/components/snips/ +[switch.broadlink docs]: https://home-assistant.io/components/switch.broadlink/ +[switch.dlink docs]: https://home-assistant.io/components/switch.dlink/ +[switch.modbus docs]: https://home-assistant.io/components/switch.modbus/ +[switch.rachio docs]: https://home-assistant.io/components/switch.rachio/ +[switch.rflink docs]: https://home-assistant.io/components/switch.rflink/ +[switch.xiaomi_vacuum docs]: https://home-assistant.io/components/switch.xiaomi_vacuum/ +[tado docs]: https://home-assistant.io/components/tado/ +[tts docs]: https://home-assistant.io/components/tts/ +[tts.amazon_polly docs]: https://home-assistant.io/components/tts.amazon_polly/ +[upnp docs]: https://home-assistant.io/components/upnp/ +[velux docs]: https://home-assistant.io/components/velux/ +[frontend docs]: https://home-assistant.io/components/frontend/ +[vera docs]: https://home-assistant.io/components/vera/ +[verisure docs]: https://home-assistant.io/components/verisure/ +[wake_on_lan docs]: https://home-assistant.io/components/wake_on_lan/ +[weather.buienradar docs]: https://home-assistant.io/components/weather.buienradar/ +[weather.openweathermap docs]: https://home-assistant.io/components/weather.openweathermap/ +[zha docs]: https://home-assistant.io/components/zha/ +[zha.const docs]: https://home-assistant.io/components/zha.const/ +[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-07-0.49/components.png b/source/images/blog/2017-07-0.49/components.png new file mode 100644 index 00000000000..86629d6dff4 Binary files /dev/null and b/source/images/blog/2017-07-0.49/components.png differ diff --git a/source/images/blog/2017-07-0.49/green-theme.png b/source/images/blog/2017-07-0.49/green-theme.png new file mode 100644 index 00000000000..d9672ab9558 Binary files /dev/null and b/source/images/blog/2017-07-0.49/green-theme.png differ