From a18b2bd9fbce246564e7d515dd8bee4ea2697f4e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 10:24:50 -0700 Subject: [PATCH] Update some notes --- source/_posts/2019-03-20-release-90.markdown | 152 ++++++++++++++++-- .../images/blog/2019-03-release-90/remote.png | Bin 0 -> 33842 bytes 2 files changed, 137 insertions(+), 15 deletions(-) create mode 100644 source/images/blog/2019-03-release-90/remote.png diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 79d07728e68..acac390ea59 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -1,18 +1,22 @@ --- layout: post -title: "0.90: TBD - Update date" -description: "TBD" -date: 2019-03-13 00:11:03 +title: "0.90: Remote UI, Streams, User Groups" +description: "Bring your next level home to the next next leve." +date: 2019-03-20 00:11:03 date_formatted: "March 20, 2019" author: Paulus Schoutsen author_twitter: balloob comments: true categories: Release-Notes -og_image: /images/blog/2019-03-release-90/components.png +og_image: /images/blog/2019-03-release-90/remote.png --- Remote connection available for Home Assistant Cloud! Check out the cloud page in config to get going. +

+ +

+ ## {% linkable_title Streams %} New stream component to stream cameras smoothly to frontend and other devices like Chromecast. Initial version only supports h264 codec. Each camera integration will need to be updated for it. @@ -45,16 +49,17 @@ Improved integration setup flow: - Add support for homekit controller sensors ([@cpopp] - [#21535]) ([homekit_controller docs]) (new-platform) - Add separate on/off ids on manual configured IHC lights ([@msvinth] - [#20253]) ([ihc docs]) ([light.ihc docs]) (new-platform) +- mobile_app component ([@robbiet480] - [#21475]) ([mobile_app docs]) (beta fix) (new-platform) - Add storage helper to ZHA and use it for the device node descriptor ([@dmulcahey] - [#21500]) ([zha docs]) (new-platform) -- Add support for DHT and DS18B20 sensors via Konnected firmware ([@heythisisnate] - [#21189]) ([konnected docs]) ([sensor.konnected docs]) (new-platform) - Add SmartThingsAccelCluster to ZHA binary_sensor ([@roblandry] - [#21609]) ([zha docs]) (new-platform) - Xfinity Gateway device_tracker platform ([@cisasteelersfan] - [#21026]) ([device_tracker docs]) (new-platform) -- Add Time of Flight Sensor using VL53L1X ([@josemotta] - [#21230]) ([sensor.tof docs]) (new-platform) +- Add Time of Flight Sensor using VL53L1X ([@josemotta] - [#21230]) ([tof docs]) (new-platform) - Adding enigma2 media player ([@fbradyirl] - [#21271]) ([media_player.enigma2 docs]) (new-platform) - Add support for Cisco Mobility Express ([@fbradyirl] - [#21531]) ([cisco_mobility_express docs]) (new-platform) - Add ClearPass Policy Manger device tracker ([@zemerick1] - [#21673]) ([device_tracker docs]) (new-platform) -- Live Streams Component ([@hunterjm] - [#21473]) ([camera docs]) ([stream docs]) ([camera.ffmpeg docs]) (new-platform) +- Live Streams Component ([@hunterjm] - [#21473]) ([camera docs]) ([stream docs]) (new-platform) - Add Weather Sensors to Homematic IP ([@SukramJ] - [#21887]) ([homematicip_cloud docs]) (new-platform) +- Mobile App: Sensors ([@robbiet480] - [#21854]) ([mobile_app docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -74,7 +79,7 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- __Netatmo__ +- __Netatmo__ * Added support for multiple Netatmo thermostats/valves allowing the user to specify different homes or rooms! Please check the [updated documentation](https://www.home-assistant.io/components/climate.netatmo/) for configuration details. ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) * `current_operation` will no longer return the the boiler status, but the operation_mode. For example, heat, cool, or idle. Please check the [updated documentation](https://www.home-assistant.io/components/climate.netatmo/) for more details. ([@shanbs] - [#21633]) ([netatmo docs]) - __Utility Meter__ - Currently the offset configuration parameter is an integer that limits daily cycles to have offsets in days, monthly cycles to have offsets in months, etc. @@ -92,6 +97,41 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - __MQTT__ - Pass `Message` object to MQTT message callbacks instead of `topic`, `message` and `qos`. Users of custom components please take note, these values are now available on the passed in message object: `msg.topic`, `msg.message`, `msg.qos`. The old method will continue to work for now but will print warnings. ([@emontnemery] - [#21959]) ([mqtt docs]) - __Default Config__ - Default config no longer contains the discovery component. That is now part of the initial written configuration.yaml. If you rely on default config and want to use discovery, add `discovery:` back to your configuration.yaml. +## {% linkable_title Beta Fixes %} + +- mobile_app component ([@robbiet480] - [#21475]) ([mobile_app docs]) (beta fix) (new-platform) +- Remove UTF8 decoding for Waze ([@philhawthorne] - [#22020]) ([sensor.waze_travel_time docs]) (beta fix) +- Bring back the boiler status ([@cgtobi] - [#22021]) ([netatmo docs]) (beta fix) +- Update additional platforms to use new MQTT message callback ([@emontnemery] - [#22030]) ([device_tracker docs]) ([mqtt_eventstream docs]) ([owntracks docs]) ([snips docs]) ([alarm_control_panel.manual_mqtt docs]) ([automation.mqtt docs]) ([sensor.arwn docs]) ([sensor.mqtt_room docs]) (beta fix) +- Fix lifx light async error ([@awarecan] - [#22031]) ([lifx docs]) (beta fix) +- Fix Google Assistant User with Cloud ([@pvizeli] - [#22042]) ([cloud docs]) (beta fix) +- Mobile App: Require encryption for registrations that support it ([@robbiet480] - [#21852]) ([mobile_app docs]) (beta fix) +- Mobile App: Support rendering multiple templates at once ([@robbiet480] - [#21851]) ([mobile_app docs]) (beta fix) +- Mobile App: Update Location schema updates & device ID generation ([@robbiet480] - [#21849]) ([mobile_app docs]) (beta fix) +- Mobile App: Register devices into the registry ([@robbiet480] - [#21856]) ([mobile_app docs]) (beta fix) +- Mobile App: Sensors ([@robbiet480] - [#21854]) ([mobile_app docs]) (beta fix) (new-platform) +- Bump androidtv to 0.0.11 ([@JeffLIrion] - [#22025]) ([androidtv docs]) (beta fix) +- Mobile App: Enable loading via discovery (surprise inside!) ([@robbiet480] - [#22027]) ([mobile_app docs]) (beta fix) +- Mobile App: Discovery to default configuration.yaml, zeroconf to default_config ([@robbiet480] - [#22028]) ([default_config docs]) ([mobile_app docs]) (beta fix) +- Mobile App: Expose Cloud Remote UI FQDN in registration response ([@robbiet480] - [#22055]) ([cloud docs]) ([mobile_app docs]) (beta fix) +- Return config entry ID after creation ([@balloob] - [#22060]) ([config docs]) (beta fix) +- Correct context ([@awarecan] - [#22061]) ([alexa docs]) (beta fix) +- Binary Sensor for Remote UI & Fix timezone ([@pvizeli] - [#22076]) (beta fix) +- Bump androidtv to 0.0.12 ([@JeffLIrion] - [#22072]) ([androidtv docs]) (beta fix) +- Prevent cloud remote UI when using 127.0.0.1 as trusted network ([@balloob] - [#22093]) ([cloud docs]) (beta fix) +- Beta Fix: FFMPEG and Stream component ([@hunterjm] - [#22091]) ([camera.ffmpeg docs]) ([camera.generic docs]) ([camera.onvif docs]) (beta fix) +- delete previously removed service option from services yaml ([@hunterjm] - [#22123]) (beta fix) +- Remove hass.config from aws_lambda notify payload ([@awarecan] - [#22125]) (breaking change) (beta fix) +- Allow non-admins to listen to certain events ([@balloob] - [#22137]) ([websocket_api docs]) (beta fix) +- Bump tado version ([@WebSpider] - [#22145]) ([tado docs]) (beta fix) +- Fix resetting access token on streams with keepalive ([@hunterjm] - [#22148]) ([stream docs]) (beta fix) +- Remove config check over supervisor ([@pvizeli] - [#22156]) ([hassio docs]) (beta fix) +- Upgrade toonapilib to 3.2.2 + lower interval ([@frenck] - [#22160]) ([toon docs]) (beta fix) +- bump total_connect_client to 0.24 ([@uchagani] - [#22166]) ([totalconnect docs]) (beta fix) +- Update Hass-NabuCasa 0.8 ([@pvizeli] - [#22177]) ([cloud docs]) (beta fix) +- Always load Hass.io component on Hass.io ([@balloob] - [#22185]) (beta fix) +- Fixed typing errors ([@Swamp-Ig] - [#22207]) (beta fix) + ## {% linkable_title All changes %} - Upgrade pyopenuv to 1.0.9 ([@bachya] - [#21513]) ([openuv docs]) @@ -120,6 +160,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - bump pyxeoma to 1.4.1 to fix and close #19306 ([@trunet] - [#21568]) ([camera.xeoma docs]) - fix exception ([@dmulcahey] - [#21571]) ([zha docs]) - Add config entry remove callback ([@andrewsayre] - [#21576]) +- mobile_app component ([@robbiet480] - [#21475]) ([mobile_app docs]) (beta fix) (new-platform) - Memory optimization for logbook ([@amelchio] - [#21549]) ([logbook docs]) - Get room hints from areas ([@Swamp-Ig] - [#21519]) ([google_assistant docs]) - Centrally define Watt ([@dgomes] - [#21570]) @@ -135,7 +176,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - SmartThings remove SmartApp/Automation on integration removal ([@andrewsayre] - [#21594]) ([smartthings docs]) (new-feature) - Bumping aioasuswrt ([@kennedyshead] - [#21627]) ([asuswrt docs]) - Add device HMIP-eTRV-C to HomematicIP ([@SukramJ] - [#21612]) -- Add 'app_name' property and 'apps' config entry to Fire TV ([@JeffLIrion] - [#21601]) ([firetv docs]) +- Add 'app_name' property and 'apps' config entry to Fire TV ([@JeffLIrion] - [#21601]) ([androidtv docs]) - Add optional sender name for SendGrid ([@srirams] - [#21610]) ([notify.sendgrid docs]) - fix derived rate, fixes #20097 ([@wburgers] - [#21620]) ([sensor.dsmr docs]) - Bump pyflunearyou to 1.0.3 ([@bachya] - [#21634]) ([sensor.flunearyou docs]) @@ -147,7 +188,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - Fix actions with tox ([@pvizeli] - [#21642]) - GitHub Workflow ([@pvizeli] - [#21643]) - Upgrade youtube_dl to 2019.03.01 ([@fabaff] - [#21647]) ([media_extractor docs]) -- Add support for DHT and DS18B20 sensors via Konnected firmware ([@heythisisnate] - [#21189]) ([konnected docs]) ([sensor.konnected docs]) (new-platform) +- Add support for DHT and DS18B20 sensors via Konnected firmware ([@heythisisnate] - [#21189]) ([konnected docs]) - Allow targeting areas in service calls ([@balloob] - [#21472]) ([alert docs]) ([automation docs]) ([group docs]) ([image_processing docs]) ([light docs]) ([scene docs]) ([script docs]) - Add camera name to logs ([@arsaboo] - [#21653]) ([camera.generic docs]) - Netatmo, handle missing thermostat devices ([@Danielhiversen] - [#21651]) ([netatmo docs]) @@ -177,7 +218,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - Allow light toggle service to accept all turn on params ([@zewelor] - [#20912]) ([light docs]) - Introduce target_temperature_state_address for climate device ([@marvin-w] - [#21541]) ([knx docs]) (breaking change) - Upgrade pylint to 2.3.1 ([@scop] - [#21789]) -- Add Time of Flight Sensor using VL53L1X ([@josemotta] - [#21230]) ([sensor.tof docs]) (new-platform) +- Add Time of Flight Sensor using VL53L1X ([@josemotta] - [#21230]) ([tof docs]) (new-platform) - Upgrade huawei-lte-api to 1.1.5 ([@scop] - [#21791]) ([huawei_lte docs]) - Adding enigma2 media player ([@fbradyirl] - [#21271]) ([media_player.enigma2 docs]) (new-platform) - Bump loopenergy to 0.1.0. Loop updated their socket.io server from 0.9 to 2.0 - which required a library update. ([@pavoni] - [#21809]) ([sensor.loopenergy docs]) @@ -237,7 +278,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - Add update user command ([@balloob] - [#21922]) ([config docs]) - Offload Cloud component ([@pvizeli] - [#21937]) ([cloud docs]) - Upgrade schiene to 0.23 ([@fabaff] - [#21940]) ([sensor.deutsche_bahn docs]) -- Live Streams Component ([@hunterjm] - [#21473]) ([camera docs]) ([stream docs]) ([camera.ffmpeg docs]) (new-platform) +- Live Streams Component ([@hunterjm] - [#21473]) ([camera docs]) ([stream docs]) (new-platform) - Update lametric icon to be HA logo ([@robbiet480] - [#21957]) ([lametric docs]) - Avoid playing queue pollution when restoring Sonos snapshots ([@amelchio] - [#21963]) ([sonos docs]) - Update to sense component to fully be async ([@kbickar] - [#21698]) ([sense docs]) @@ -275,6 +316,37 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the - Remove default temp unit ([@andrewsayre] - [#22012]) ([smartthings docs]) - Allow all success status codes in REST notify response ([@isabellaalstrom] - [#22011]) ([notify docs]) - Check updated_date for list and pick first ([@GGeezes] - [#22008]) +- Remove UTF8 decoding for Waze ([@philhawthorne] - [#22020]) ([sensor.waze_travel_time docs]) (beta fix) +- Bring back the boiler status ([@cgtobi] - [#22021]) ([netatmo docs]) (beta fix) +- Update additional platforms to use new MQTT message callback ([@emontnemery] - [#22030]) ([device_tracker docs]) ([mqtt_eventstream docs]) ([owntracks docs]) ([snips docs]) ([alarm_control_panel.manual_mqtt docs]) ([automation.mqtt docs]) ([sensor.arwn docs]) ([sensor.mqtt_room docs]) (beta fix) +- Fix lifx light async error ([@awarecan] - [#22031]) ([lifx docs]) (beta fix) +- Fix Google Assistant User with Cloud ([@pvizeli] - [#22042]) ([cloud docs]) (beta fix) +- Mobile App: Require encryption for registrations that support it ([@robbiet480] - [#21852]) ([mobile_app docs]) (beta fix) +- Mobile App: Support rendering multiple templates at once ([@robbiet480] - [#21851]) ([mobile_app docs]) (beta fix) +- Mobile App: Update Location schema updates & device ID generation ([@robbiet480] - [#21849]) ([mobile_app docs]) (beta fix) +- Mobile App: Register devices into the registry ([@robbiet480] - [#21856]) ([mobile_app docs]) (beta fix) +- Mobile App: Sensors ([@robbiet480] - [#21854]) ([mobile_app docs]) (beta fix) (new-platform) +- Bump androidtv to 0.0.11 ([@JeffLIrion] - [#22025]) ([androidtv docs]) (beta fix) +- Mobile App: Enable loading via discovery (surprise inside!) ([@robbiet480] - [#22027]) ([mobile_app docs]) (beta fix) +- Mobile App: Discovery to default configuration.yaml, zeroconf to default_config ([@robbiet480] - [#22028]) ([default_config docs]) ([mobile_app docs]) (beta fix) +- Mobile App: Expose Cloud Remote UI FQDN in registration response ([@robbiet480] - [#22055]) ([cloud docs]) ([mobile_app docs]) (beta fix) +- Return config entry ID after creation ([@balloob] - [#22060]) ([config docs]) (beta fix) +- Correct context ([@awarecan] - [#22061]) ([alexa docs]) (beta fix) +- Binary Sensor for Remote UI & Fix timezone ([@pvizeli] - [#22076]) (beta fix) +- Bump androidtv to 0.0.12 ([@JeffLIrion] - [#22072]) ([androidtv docs]) (beta fix) +- Prevent cloud remote UI when using 127.0.0.1 as trusted network ([@balloob] - [#22093]) ([cloud docs]) (beta fix) +- Beta Fix: FFMPEG and Stream component ([@hunterjm] - [#22091]) ([camera.ffmpeg docs]) ([camera.generic docs]) ([camera.onvif docs]) (beta fix) +- delete previously removed service option from services yaml ([@hunterjm] - [#22123]) (beta fix) +- Remove hass.config from aws_lambda notify payload ([@awarecan] - [#22125]) (breaking change) (beta fix) +- Allow non-admins to listen to certain events ([@balloob] - [#22137]) ([websocket_api docs]) (beta fix) +- Bump tado version ([@WebSpider] - [#22145]) ([tado docs]) (beta fix) +- Fix resetting access token on streams with keepalive ([@hunterjm] - [#22148]) ([stream docs]) (beta fix) +- Remove config check over supervisor ([@pvizeli] - [#22156]) ([hassio docs]) (beta fix) +- Upgrade toonapilib to 3.2.2 + lower interval ([@frenck] - [#22160]) ([toon docs]) (beta fix) +- bump total_connect_client to 0.24 ([@uchagani] - [#22166]) ([totalconnect docs]) (beta fix) +- Update Hass-NabuCasa 0.8 ([@pvizeli] - [#22177]) ([cloud docs]) (beta fix) +- Always load Hass.io component on Hass.io ([@balloob] - [#22185]) (beta fix) +- Fixed typing errors ([@Swamp-Ig] - [#22207]) (beta fix) [#19034]: https://github.com/home-assistant/home-assistant/pull/19034 [#19407]: https://github.com/home-assistant/home-assistant/pull/19407 @@ -301,6 +373,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [#21454]: https://github.com/home-assistant/home-assistant/pull/21454 [#21472]: https://github.com/home-assistant/home-assistant/pull/21472 [#21473]: https://github.com/home-assistant/home-assistant/pull/21473 +[#21475]: https://github.com/home-assistant/home-assistant/pull/21475 [#21488]: https://github.com/home-assistant/home-assistant/pull/21488 [#21498]: https://github.com/home-assistant/home-assistant/pull/21498 [#21499]: https://github.com/home-assistant/home-assistant/pull/21499 @@ -404,9 +477,14 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [#21841]: https://github.com/home-assistant/home-assistant/pull/21841 [#21846]: https://github.com/home-assistant/home-assistant/pull/21846 [#21848]: https://github.com/home-assistant/home-assistant/pull/21848 +[#21849]: https://github.com/home-assistant/home-assistant/pull/21849 [#21850]: https://github.com/home-assistant/home-assistant/pull/21850 +[#21851]: https://github.com/home-assistant/home-assistant/pull/21851 +[#21852]: https://github.com/home-assistant/home-assistant/pull/21852 [#21853]: https://github.com/home-assistant/home-assistant/pull/21853 +[#21854]: https://github.com/home-assistant/home-assistant/pull/21854 [#21855]: https://github.com/home-assistant/home-assistant/pull/21855 +[#21856]: https://github.com/home-assistant/home-assistant/pull/21856 [#21858]: https://github.com/home-assistant/home-assistant/pull/21858 [#21866]: https://github.com/home-assistant/home-assistant/pull/21866 [#21869]: https://github.com/home-assistant/home-assistant/pull/21869 @@ -457,6 +535,32 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [#22010]: https://github.com/home-assistant/home-assistant/pull/22010 [#22011]: https://github.com/home-assistant/home-assistant/pull/22011 [#22012]: https://github.com/home-assistant/home-assistant/pull/22012 +[#22020]: https://github.com/home-assistant/home-assistant/pull/22020 +[#22021]: https://github.com/home-assistant/home-assistant/pull/22021 +[#22025]: https://github.com/home-assistant/home-assistant/pull/22025 +[#22027]: https://github.com/home-assistant/home-assistant/pull/22027 +[#22028]: https://github.com/home-assistant/home-assistant/pull/22028 +[#22030]: https://github.com/home-assistant/home-assistant/pull/22030 +[#22031]: https://github.com/home-assistant/home-assistant/pull/22031 +[#22042]: https://github.com/home-assistant/home-assistant/pull/22042 +[#22055]: https://github.com/home-assistant/home-assistant/pull/22055 +[#22060]: https://github.com/home-assistant/home-assistant/pull/22060 +[#22061]: https://github.com/home-assistant/home-assistant/pull/22061 +[#22072]: https://github.com/home-assistant/home-assistant/pull/22072 +[#22076]: https://github.com/home-assistant/home-assistant/pull/22076 +[#22091]: https://github.com/home-assistant/home-assistant/pull/22091 +[#22093]: https://github.com/home-assistant/home-assistant/pull/22093 +[#22123]: https://github.com/home-assistant/home-assistant/pull/22123 +[#22125]: https://github.com/home-assistant/home-assistant/pull/22125 +[#22137]: https://github.com/home-assistant/home-assistant/pull/22137 +[#22145]: https://github.com/home-assistant/home-assistant/pull/22145 +[#22148]: https://github.com/home-assistant/home-assistant/pull/22148 +[#22156]: https://github.com/home-assistant/home-assistant/pull/22156 +[#22160]: https://github.com/home-assistant/home-assistant/pull/22160 +[#22166]: https://github.com/home-assistant/home-assistant/pull/22166 +[#22177]: https://github.com/home-assistant/home-assistant/pull/22177 +[#22185]: https://github.com/home-assistant/home-assistant/pull/22185 +[#22207]: https://github.com/home-assistant/home-assistant/pull/22207 [@Cereal2nd]: https://github.com/Cereal2nd [@Danielhiversen]: https://github.com/Danielhiversen [@Dullage]: https://github.com/Dullage @@ -471,6 +575,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [@SukramJ]: https://github.com/SukramJ [@Swamp-Ig]: https://github.com/Swamp-Ig [@ToRvaLDz]: https://github.com/ToRvaLDz +[@WebSpider]: https://github.com/WebSpider [@alandtse]: https://github.com/alandtse [@amelchio]: https://github.com/amelchio [@andrewsayre]: https://github.com/andrewsayre @@ -481,6 +586,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [@balloob]: https://github.com/balloob [@beavis9k]: https://github.com/beavis9k [@c-soft]: https://github.com/c-soft +[@cgtobi]: https://github.com/cgtobi [@chilicheech]: https://github.com/chilicheech [@cisasteelersfan]: https://github.com/cisasteelersfan [@cmsimike]: https://github.com/cmsimike @@ -496,6 +602,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [@epleypa]: https://github.com/epleypa [@fabaff]: https://github.com/fabaff [@fbradyirl]: https://github.com/fbradyirl +[@frenck]: https://github.com/frenck [@gertdb]: https://github.com/gertdb [@heythisisnate]: https://github.com/heythisisnate [@hunterjm]: https://github.com/hunterjm @@ -516,6 +623,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [@nudded]: https://github.com/nudded [@nugget]: https://github.com/nugget [@pavoni]: https://github.com/pavoni +[@philhawthorne]: https://github.com/philhawthorne [@piitaya]: https://github.com/piitaya [@pnbruckner]: https://github.com/pnbruckner [@pvizeli]: https://github.com/pvizeli @@ -538,20 +646,25 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [@zemerick1]: https://github.com/zemerick1 [@zewelor]: https://github.com/zewelor [air_quality docs]: /components/air_quality/ +[alarm_control_panel.manual_mqtt docs]: /components/alarm_control_panel.manual_mqtt/ [alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/ [alarmdecoder docs]: /components/alarmdecoder/ [alert docs]: /components/alert/ +[alexa docs]: /components/alexa/ [ambient_station docs]: /components/ambient_station/ [amcrest docs]: /components/amcrest/ +[androidtv docs]: /components/androidtv/ [api docs]: /components/api/ [asuswrt docs]: /components/asuswrt/ [auth docs]: /components/auth/ [automation docs]: /components/automation/ +[automation.mqtt docs]: /docs/automation/trigger/#mqtt-trigger [binary_sensor.trend docs]: /components/binary_sensor.trend/ [binary_sensor.workday docs]: /components/binary_sensor.workday/ [camera docs]: /components/camera/ [camera.ffmpeg docs]: /components/camera.ffmpeg/ [camera.generic docs]: /components/camera.generic/ +[camera.onvif docs]: /components/camera.onvif/ [camera.proxy docs]: /components/camera.proxy/ [camera.xeoma docs]: /components/camera.xeoma/ [cast docs]: /components/cast/ @@ -562,10 +675,10 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [climate.netatmo docs]: /components/climate.netatmo/ [cloud docs]: /components/cloud/ [config docs]: /components/config/ +[default_config docs]: /components/default_config/ [device_tracker docs]: /components/device_tracker/ [emulated_hue docs]: /components/emulated_hue/ [enigma2 docs]: /components/enigma2/ -[firetv docs]: /components/firetv/ [frontend docs]: /components/frontend/ [google_assistant docs]: /components/google_assistant/ [group docs]: /components/group/ @@ -583,6 +696,7 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [knx docs]: /components/knx/ [konnected docs]: /components/konnected/ [lametric docs]: /components/lametric/ +[lifx docs]: /components/lifx/ [light docs]: /components/light/ [light.flux_led docs]: /components/light.flux_led/ [light.ihc docs]: /components/light.ihc/ @@ -598,12 +712,14 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [mobile_app docs]: /components/mobile_app/ [modbus docs]: /components/modbus/ [mqtt docs]: /components/mqtt/ +[mqtt_eventstream docs]: /components/mqtt_eventstream/ [ness_alarm docs]: /components/ness_alarm/ [netatmo docs]: /components/netatmo/ [notify docs]: /components/notify/ [notify.sendgrid docs]: /components/notify.sendgrid/ [onboarding docs]: /components/onboarding/ [openuv docs]: /components/openuv/ +[owntracks docs]: /components/owntracks/ [ps4 docs]: /components/ps4/ [rainmachine docs]: /components/rainmachine/ [remote docs]: /components/remote/ @@ -612,13 +728,14 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [scene docs]: /components/scene/ [script docs]: /components/script/ [sense docs]: /components/sense/ +[sensor.arwn docs]: /components/sensor.arwn/ [sensor.deutsche_bahn docs]: /components/sensor.deutsche_bahn/ [sensor.discogs docs]: /components/sensor.discogs/ [sensor.dsmr docs]: /components/sensor.dsmr/ [sensor.flunearyou docs]: /components/sensor.flunearyou/ -[sensor.konnected docs]: /components/sensor.konnected/ [sensor.loopenergy docs]: /components/sensor.loopenergy/ [sensor.mopar docs]: /components/sensor.mopar/ +[sensor.mqtt_room docs]: /components/sensor.mqtt_room/ [sensor.netdata docs]: /components/sensor.netdata/ [sensor.nmbs docs]: /components/sensor.nmbs/ [sensor.pollen docs]: /components/sensor.pollen/ @@ -626,15 +743,20 @@ Users will need to change `- platform: firetv` to `- platform: androidtv` in the [sensor.starlingbank docs]: /components/sensor.starlingbank/ [sensor.synologydsm docs]: /components/sensor.synologydsm/ [sensor.systemmonitor docs]: /components/sensor.systemmonitor/ -[sensor.tof docs]: /components/sensor.tof/ +[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/ [sensor.whois docs]: /components/sensor.whois/ [smartthings docs]: /components/smartthings/ +[snips docs]: /components/snips/ [sonos docs]: /components/sonos/ [stream docs]: /components/stream/ [switch.mystrom docs]: /components/switch.mystrom/ [switch.vesync docs]: /components/switch.vesync/ +[tado docs]: /components/tado/ [tellstick docs]: /components/tellstick/ [tesla docs]: /components/tesla/ +[tof docs]: /components/tof/ +[toon docs]: /components/toon/ +[totalconnect docs]: /components/totalconnect/ [tplink docs]: /components/tplink/ [tts docs]: /components/tts/ [utility_meter docs]: /components/utility_meter/ diff --git a/source/images/blog/2019-03-release-90/remote.png b/source/images/blog/2019-03-release-90/remote.png new file mode 100644 index 0000000000000000000000000000000000000000..d8845668696b2e6b2cc80ff37e56923e2ddb85c3 GIT binary patch literal 33842 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 O097R|#Rhq+sQ(5griDWQ literal 0 HcmV?d00001