From af4a91b5c32d905644016e15ec6c7d73d7712efd Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 13 Mar 2019 13:14:55 -0700 Subject: [PATCH 01/22] Add draft for 0.90 --- _config.yml | 6 +- source/_posts/2019-03-20-release-90.markdown | 616 +++++++++++++++++++ 2 files changed, 619 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2019-03-20-release-90.markdown diff --git a/_config.yml b/_config.yml index 6fbceb62596..bfabc39b356 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 89 -current_patch_version: 2 -date_released: 2019-03-12 +current_minor_version: 90 +current_patch_version: 0 +date_released: 2019-03-20 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown new file mode 100644 index 00000000000..7ce76490ba6 --- /dev/null +++ b/source/_posts/2019-03-20-release-90.markdown @@ -0,0 +1,616 @@ +--- +layout: post +title: "0.90: TBD - Update date" +description: "TBD" +date: 2019-03-13 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 +--- + + + + - Remote connection available for Home Assistant Cloud! Check out the cloud page in config + - 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. + - User groups! Restrict admin access to users ([at least UI wise](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html)) + + +## {% linkable_title New Platforms %} + +- 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) +- 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) +- 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) +- Add Weather Sensors to Homematic IP ([@SukramJ] - [#21887]) ([homematicip_cloud docs]) (new-platform) + +## {% linkable_title New Features %} + +- SmartThings remove SmartApp/Automation on integration removal ([@andrewsayre] - [#21594]) ([smartthings docs]) (new-feature) +- Add SmartThings climate support for Air Conditioners ([@andrewsayre] - [#21840]) ([smartthings docs]) (new-feature) +- Add SmartThings sensor support for Three Axis ([@andrewsayre] - [#21841]) ([smartthings docs]) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- Added support for multiple Netatmo thermostats/valves ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) (breaking change) +- Return Netatmo climate operation_mode instead of boiler status ([@shanbs] - [#21633]) ([netatmo docs]) (breaking change) +- Utility Meter offset defined by a time_period ([@dgomes] - [#20926]) ([utility_meter docs]) (breaking change) +- Introduce target_temperature_state_address for climate device ([@marvin-w] - [#21541]) ([knx docs]) (breaking change) +- Deprecate http.api_password ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy docs]) (breaking change) +- Changed from nanoleaf_aurora to nanoleaf ([@Oro] - [#21913]) ([light.nanoleaf docs]) (breaking change) +- Rename 'firetv' to 'androidtv' and add Android TV functionality ([@JeffLIrion] - [#21944]) (breaking change) +- Tellstick sensor configuration cleanup ([@endor-force] - [#21402]) ([tellstick docs]) (breaking change) +- Pass Message object to MQTT message callbacks ([@emontnemery] - [#21959]) ([mqtt docs]) (breaking change) + +## {% linkable_title All changes %} + +- Upgrade pyopenuv to 1.0.9 ([@bachya] - [#21513]) ([openuv docs]) +- Upgrade pypollencom to 2.2.3 ([@bachya] - [#21517]) ([sensor.pollen docs]) +- Upgrade pytile to 2.0.6 ([@bachya] - [#21516]) ([device_tracker docs]) +- Upgraded py17track to 2.2.2 ([@bachya] - [#21515]) ([sensor.seventeentrack docs]) +- Upgrade pyflunearyou to 1.0.2 ([@bachya] - [#21514]) ([sensor.flunearyou docs]) +- Bump starlingbank version to 3.1 ([@Dullage] - [#21501]) ([sensor.starlingbank docs]) +- Upgrade opensensemap-api to 0.1.5 ([@fabaff] - [#21524]) ([air_quality docs]) +- Register 'firetv.adb_command' service ([@JeffLIrion] - [#21419]) ([media_player.firetv docs]) +- Add arm night for alarm decoder ([@koolsb] - [#21488]) ([alarmdecoder docs]) +- Upgrade numpy to 1.16.2 ([@fabaff] - [#21525]) ([binary_sensor.trend docs]) ([image_processing.opencv docs]) ([image_processing.tensorflow docs]) ([sensor.pollen docs]) +- Upgrade python-mystrom to 0.5.0 ([@fabaff] - [#21523]) ([light.mystrom docs]) ([switch.mystrom docs]) +- Mqtt alarm added value_template and code_arm_required ([@ToRvaLDz] - [#19558]) ([alarm_control_panel.mqtt docs]) +- Add direct binding for remotes and lights for ZHA ([@dmulcahey] - [#21498]) ([zha docs]) +- Add support for homekit controller sensors ([@cpopp] - [#21535]) ([homekit_controller docs]) (new-platform) +- Update CODEOWNERS ([@dgomes] - [#21545]) +- Clean up gpslogger tests ([@MartinHjelmare] - [#21543]) +- new websocket api way ([@dmulcahey] - [#21533]) ([zha docs]) +- Add pause/unpause services to RainMachine ([@bachya] - [#21548]) ([rainmachine docs]) +- prevent duplicate event channel registration ([@dmulcahey] - [#21534]) ([zha docs]) +- Allow config entry reloading ([@balloob] - [#21502]) +- Add separate on/off ids on manual configured IHC lights ([@msvinth] - [#20253]) ([ihc docs]) ([light.ihc docs]) (new-platform) +- add friendly name to devices in the device registry ([@dmulcahey] - [#21499]) ([zha docs]) +- Allow chaining contexts ([@balloob] - [#21028]) ([automation docs]) +- 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]) +- Memory optimization for logbook ([@amelchio] - [#21549]) ([logbook docs]) +- Get room hints from areas ([@Swamp-Ig] - [#21519]) ([google_assistant docs]) +- Centrally define Watt ([@dgomes] - [#21570]) +- Add network throughput statistics to systemmonitor sensor ([@dgomes] - [#21575]) ([sensor.systemmonitor docs]) +- Update for new pyvesyncv_v2 library and vesync switch support ([@webdjoe] - [#21449]) ([switch.vesync docs]) +- ZHA fixes ([@dmulcahey] - [#21592]) ([zha docs]) +- Update pyhomematic ([@danielperna84] - [#21600]) ([homematic docs]) +- Add parameter hold_secs for Harmony remote send command ([@ehendrix23] - [#19650]) ([remote docs]) ([remote.harmony docs]) +- Upgrade motorparts to 1.1.0 ([@rohankapoorcom] - [#21602]) ([sensor.mopar docs]) +- Further Yale ZWave lock device mapping cleanup ([@mw-white] - [#21128]) ([zwave docs]) +- Added support for multiple Netatmo thermostats/valves ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) (breaking change) +- Add the velbus sync clock service ([@Cereal2nd] - [#21308]) ([velbus docs]) +- 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 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]) +- Return Netatmo climate operation_mode instead of boiler status ([@shanbs] - [#21633]) ([netatmo docs]) (breaking change) +- Expose create/delete cloudhook ([@balloob] - [#21606]) ([cloud docs]) +- Add storage helper to ZHA and use it for the device node descriptor ([@dmulcahey] - [#21500]) ([zha docs]) (new-platform) +- Allow configuration of update interval for ness_alarm ([@nickw444] - [#21415]) ([ness_alarm docs]) +- Replace travis ([@pvizeli] - [#21641]) +- 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) +- 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]) +- Add SmartThingsAccelCluster to ZHA binary_sensor ([@roblandry] - [#21609]) ([zha docs]) (new-platform) +- Add support for multiple devices for PS4 component ([@ktnrg45] - [#21302]) ([ps4 docs]) +- Xfinity Gateway device_tracker platform ([@cisasteelersfan] - [#21026]) ([device_tracker docs]) (new-platform) +- Adds option in UPnP component to override callback url ([@StevenLooman] - [#21583]) ([media_player.dlna_dmr docs]) +- Serialize amcrest snapshot commands and bump PyPI package to 1.2.4 ([@pnbruckner] - [#21664]) ([amcrest docs]) +- Bump nessclient version to 0.9.14 ([@nickw444] - [#21679]) ([ness_alarm docs]) +- Allow 202 status code as a successful REST notify response ([@u1f35c] - [#21678]) ([notify docs]) +- Bump teslajsonpy to 0.0.24 ([@alandtse] - [#21675]) ([tesla docs]) +- Fix Z-Wave relative imports ([@balloob] - [#21693]) ([zwave docs]) +- Use new style for built-in ws commmands ([@balloob] - [#21694]) ([websocket_api docs]) +- Google Assistant: Create and pass context to service calls ([@Swamp-Ig] - [#21551]) ([google_assistant docs]) +- Update to teslajsonpy v0.0.25 ([@alandtse] - [#21702]) ([tesla docs]) +- Utility Meter offset defined by a time_period ([@dgomes] - [#20926]) ([utility_meter docs]) (breaking change) +- Change amcrest camera_image to async ([@pnbruckner] - [#21720]) ([amcrest docs]) +- Start preparing for homekit_controller config entries ([@Jc2k] - [#21564]) ([homekit_controller docs]) +- Support multiple keys in ifttt triggers ([@zeehio] - [#21454]) ([ifttt docs]) +- Fix initialization and add "pending" status of Satel integra ([@c-soft] - [#21194]) ([satel_integra docs]) +- Fix pylint warning on python 3.7 ([@awarecan] - [#21714]) ([climate.eq3btsmart docs]) +- Make pytest in tox quite ([@awarecan] - [#21727]) +- tplink - catch SmartDeviceException on is_dimmable call ([@ljmerza] - [#21726]) ([tplink docs]) +- Remove pytest warning message ([@awarecan] - [#21713]) +- Update .travis.yml ([@pvizeli] - [#21736]) +- Revert Travis until github actions work better for PR ([@pvizeli] - [#21746]) +- 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) +- 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]) +- remove occupancy, as it is not available at this level in the iRail api ([@nudded] - [#21810]) ([sensor.nmbs docs]) +- Onboarding to generate auth code ([@balloob] - [#21777]) ([auth docs]) ([onboarding docs]) +- Remove stub from config component ([@balloob] - [#21822]) ([config docs]) +- change paths to be relative ([@uchagani] - [#21827]) ([zwave docs]) +- Change how we import config modules ([@balloob] - [#21824]) ([config docs]) +- Load logger and system_log components as soon as possible ([@awarecan] - [#21799]) +- Resolve auth_store loading race condition ([@awarecan] - [#21794]) +- Log if aiohttp hits error during IndieAuth ([@robbiet480] - [#21780]) ([auth docs]) +- Add support for Cisco Mobility Express ([@fbradyirl] - [#21531]) ([cisco_mobility_express docs]) (new-platform) +- Synology sensor quick return if attr is null ([@cmsimike] - [#21709]) ([sensor.synologydsm docs]) +- fix empty TOPIC_BASE issue ([@engrbm87] - [#21740]) ([mqtt docs]) +- Updated to pyeconet 0.0.10 ([@w1ll1am23] - [#21837]) ([water_heater docs]) +- Fix config entry exception in Ambient PWS ([@bachya] - [#21836]) ([ambient_station docs]) +- Fixed a misspelling in a docstring ([@bachya] - [#21846]) ([ambient_station docs]) +- mobile_app improvements ([@robbiet480] - [#21607]) ([mobile_app docs]) +- Update honeywell.py to read current humidity for US Thermostats ([@Hackashaq666] - [#21728]) ([climate.honeywell docs]) +- Fix TypeError ([@wburgers] - [#21734]) ([sensor.dsmr docs]) +- Introduce Entity.async_write_ha_state() to not miss state transition ([@emontnemery] - [#21590]) +- Fix authorization header in cors ([@piitaya] - [#21662]) ([http docs]) +- Only commit if need. ([@awarecan] - [#21848]) +- Bump quirks for ZHA and handle resulting battery % change ([@dmulcahey] - [#21869]) ([zha docs]) +- Better cloud check ([@balloob] - [#21875]) ([cloud docs]) ([mobile_app docs]) +- Add ClearPass Policy Manger device tracker ([@zemerick1] - [#21673]) ([device_tracker docs]) (new-platform) +- Add SmartThings climate support for Air Conditioners ([@andrewsayre] - [#21840]) ([smartthings docs]) (new-feature) +- Add SmartThings sensor support for Three Axis ([@andrewsayre] - [#21841]) ([smartthings docs]) (new-feature) +- Add user group ([@balloob] - [#21832]) +- Update ZHA state handling ([@dmulcahey] - [#21866]) ([zha docs]) +- Change lib for whois sensor ([@ludeeus] - [#21878]) ([sensor.whois docs]) +- Don't wait until final position of Velux cover is reached ([@Julius2342] - [#21558]) ([velux docs]) +- Fix missing code_required check in async_alarm_arm_night ([@ToRvaLDz] - [#21858]) ([mqtt docs]) +- Fix icon for sensor.discogs_random_record ([@thibmaek] - [#21891]) ([sensor.discogs docs]) +- Add myself to CODEOWNERS for NMBS code ([@thibmaek] - [#21892]) +- Modbus write_register accept single value and array ([@gertdb] - [#21621]) ([modbus docs]) +- Add custom holidays to workday sensor ([@epleypa] - [#21718]) ([binary_sensor.workday docs]) +- Return time based attributes as datetime in Unifi module ([@ndonegan] - [#21146]) ([device_tracker docs]) +- Allow emulated hue to set climate component temperature ([@chilicheech] - [#19034]) ([emulated_hue docs]) +- bump netdisco to 2.4.0 ([@fbradyirl] - [#21914]) +- Deprecate http.api_password ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy docs]) (breaking change) +- Don't hang forever if manually added cast is down ([@emontnemery] - [#21565]) ([cast docs]) +- Add WS subscription command for MQTT ([@balloob] - [#21696]) ([mqtt docs]) ([websocket_api docs]) +- Add 'ssl' parameter for FiOS Quantum Gateway and upgrade Pypi ([@cisasteelersfan] - [#21669]) ([device_tracker docs]) +- Add as_timestamp() to Jinja filters. ([@rbdixon] - [#21910]) +- HomeKit controller config flow fixes ([@Jc2k] - [#21898]) ([homekit_controller docs]) +- Update enigma2 based on review comments ([@fbradyirl] - [#21890]) ([enigma2 docs]) +- Remove confusing warning for TTS without entity_id ([@amelchio] - [#21927]) ([tts docs]) +- Fixes Modbus service.yaml validity ([@gertdb] - [#21923]) +- Add cloudhook support to SmartThings component ([@andrewsayre] - [#21905]) ([smartthings docs]) +- If registration supports encryption then return encrypted payloads ([@robbiet480] - [#21853]) ([mobile_app docs]) +- Allow inverting netdata sensor values ([@michaelarnauts] - [#21711]) ([sensor.netdata docs]) +- Changed from nanoleaf_aurora to nanoleaf ([@Oro] - [#21913]) ([light.nanoleaf docs]) (breaking change) +- Minor version bump for anthemav package ([@nugget] - [#21932]) ([media_player.anthemav docs]) +- Add area permission check ([@balloob] - [#21835]) +- Add an asyncio Lock around pairing, which cant be used concurrently ([@Jc2k] - [#21933]) ([homekit_controller docs]) +- 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) +- 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]) +- fix ephember doing http call from property ([@ttroy50] - [#21855]) ([climate.ephember docs]) +- Add Weather Sensors to Homematic IP ([@SukramJ] - [#21887]) ([homematicip_cloud docs]) (new-platform) +- Add cloud status ([@balloob] - [#21960]) ([cloud docs]) +- Fix MagicHome LEDs with flux_led component ([@autinerd] - [#20733]) ([light.flux_led docs]) +- Stream: Only add base url when needed ([@balloob] - [#21979]) ([camera docs]) ([stream docs]) +- Allow changing password without being admin ([@balloob] - [#21978]) ([config docs]) +- Fix some cloud things ([@balloob] - [#21977]) +- homekit_controller: Bump homekit to 0.13.0 ([@Jc2k] - [#21965]) ([homekit_controller docs]) +- skip flaky test ([@balloob] - [#21981]) +- Write state directly in all MQTT platforms ([@emontnemery] - [#21971]) ([mqtt docs]) +- Use .get to ensure we dont get KeyError ([@robbiet480] - [#21993]) ([mobile_app docs]) +- Fix error introduced by #21933 ([@Jc2k] - [#21988]) ([homekit_controller docs]) +- Add stream source for amcrest component ([@dshokouhi] - [#21983]) ([amcrest docs]) +- Set homekit controller entity as unavailable if new connections fail ([@Jc2k] - [#21901]) ([homekit_controller docs]) +- Centrally define Energy Units (kWh and Wh) ([@dgomes] - [#21719]) +- Mobile App: Registration schema improvements ([@robbiet480] - [#21850]) ([mobile_app docs]) +- Add a service require_admin wrapper ([@balloob] - [#21953]) +- Update pyhomematic to 0.1.58 ([@danielperna84] - [#21989]) ([homematic docs]) +- Use asyncio lock ([@amelchio] - [#21985]) ([sonos docs]) +- Add breaking change section to PR template ([@awarecan] - [#21994]) +- Rename 'firetv' to 'androidtv' and add Android TV functionality ([@JeffLIrion] - [#21944]) (breaking change) +- Tellstick sensor configuration cleanup ([@endor-force] - [#21402]) ([tellstick docs]) (breaking change) +- Add availability and next run datetime to RainMachine switches ([@bachya] - [#21786]) ([rainmachine docs]) +- Add program/zone enable/disable services to RainMachine ([@bachya] - [#21785]) ([rainmachine docs]) +- Bump NabuCasa library to 0.5 ([@pvizeli] - [#22010]) ([cloud docs]) +- Avoid playing queue pollution with Sonos unjoin ([@amelchio] - [#22004]) ([sonos docs]) +- Wait for Sonos regrouping in service calls ([@amelchio] - [#22006]) ([sonos docs]) +- fix error in LutronButton init if Button doesn't have a type ([@beavis9k] - [#21921]) ([lutron docs]) +- HomeKit controller light - remove code that can never execute ([@Jc2k] - [#21951]) ([homekit_controller docs]) +- Nanoleaf availability check ([@Oro] - [#21945]) ([light.nanoleaf docs]) +- Pass Message object to MQTT message callbacks ([@emontnemery] - [#21959]) ([mqtt docs]) (breaking change) +- 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]) + +[#19034]: https://github.com/home-assistant/home-assistant/pull/19034 +[#19407]: https://github.com/home-assistant/home-assistant/pull/19407 +[#19558]: https://github.com/home-assistant/home-assistant/pull/19558 +[#19650]: https://github.com/home-assistant/home-assistant/pull/19650 +[#20253]: https://github.com/home-assistant/home-assistant/pull/20253 +[#20733]: https://github.com/home-assistant/home-assistant/pull/20733 +[#20912]: https://github.com/home-assistant/home-assistant/pull/20912 +[#20926]: https://github.com/home-assistant/home-assistant/pull/20926 +[#21026]: https://github.com/home-assistant/home-assistant/pull/21026 +[#21028]: https://github.com/home-assistant/home-assistant/pull/21028 +[#21128]: https://github.com/home-assistant/home-assistant/pull/21128 +[#21146]: https://github.com/home-assistant/home-assistant/pull/21146 +[#21189]: https://github.com/home-assistant/home-assistant/pull/21189 +[#21194]: https://github.com/home-assistant/home-assistant/pull/21194 +[#21230]: https://github.com/home-assistant/home-assistant/pull/21230 +[#21271]: https://github.com/home-assistant/home-assistant/pull/21271 +[#21302]: https://github.com/home-assistant/home-assistant/pull/21302 +[#21308]: https://github.com/home-assistant/home-assistant/pull/21308 +[#21402]: https://github.com/home-assistant/home-assistant/pull/21402 +[#21415]: https://github.com/home-assistant/home-assistant/pull/21415 +[#21419]: https://github.com/home-assistant/home-assistant/pull/21419 +[#21449]: https://github.com/home-assistant/home-assistant/pull/21449 +[#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 +[#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 +[#21500]: https://github.com/home-assistant/home-assistant/pull/21500 +[#21501]: https://github.com/home-assistant/home-assistant/pull/21501 +[#21502]: https://github.com/home-assistant/home-assistant/pull/21502 +[#21513]: https://github.com/home-assistant/home-assistant/pull/21513 +[#21514]: https://github.com/home-assistant/home-assistant/pull/21514 +[#21515]: https://github.com/home-assistant/home-assistant/pull/21515 +[#21516]: https://github.com/home-assistant/home-assistant/pull/21516 +[#21517]: https://github.com/home-assistant/home-assistant/pull/21517 +[#21519]: https://github.com/home-assistant/home-assistant/pull/21519 +[#21523]: https://github.com/home-assistant/home-assistant/pull/21523 +[#21524]: https://github.com/home-assistant/home-assistant/pull/21524 +[#21525]: https://github.com/home-assistant/home-assistant/pull/21525 +[#21531]: https://github.com/home-assistant/home-assistant/pull/21531 +[#21533]: https://github.com/home-assistant/home-assistant/pull/21533 +[#21534]: https://github.com/home-assistant/home-assistant/pull/21534 +[#21535]: https://github.com/home-assistant/home-assistant/pull/21535 +[#21541]: https://github.com/home-assistant/home-assistant/pull/21541 +[#21543]: https://github.com/home-assistant/home-assistant/pull/21543 +[#21545]: https://github.com/home-assistant/home-assistant/pull/21545 +[#21548]: https://github.com/home-assistant/home-assistant/pull/21548 +[#21549]: https://github.com/home-assistant/home-assistant/pull/21549 +[#21551]: https://github.com/home-assistant/home-assistant/pull/21551 +[#21558]: https://github.com/home-assistant/home-assistant/pull/21558 +[#21564]: https://github.com/home-assistant/home-assistant/pull/21564 +[#21565]: https://github.com/home-assistant/home-assistant/pull/21565 +[#21568]: https://github.com/home-assistant/home-assistant/pull/21568 +[#21570]: https://github.com/home-assistant/home-assistant/pull/21570 +[#21571]: https://github.com/home-assistant/home-assistant/pull/21571 +[#21575]: https://github.com/home-assistant/home-assistant/pull/21575 +[#21576]: https://github.com/home-assistant/home-assistant/pull/21576 +[#21583]: https://github.com/home-assistant/home-assistant/pull/21583 +[#21590]: https://github.com/home-assistant/home-assistant/pull/21590 +[#21592]: https://github.com/home-assistant/home-assistant/pull/21592 +[#21594]: https://github.com/home-assistant/home-assistant/pull/21594 +[#21600]: https://github.com/home-assistant/home-assistant/pull/21600 +[#21601]: https://github.com/home-assistant/home-assistant/pull/21601 +[#21602]: https://github.com/home-assistant/home-assistant/pull/21602 +[#21606]: https://github.com/home-assistant/home-assistant/pull/21606 +[#21607]: https://github.com/home-assistant/home-assistant/pull/21607 +[#21609]: https://github.com/home-assistant/home-assistant/pull/21609 +[#21610]: https://github.com/home-assistant/home-assistant/pull/21610 +[#21612]: https://github.com/home-assistant/home-assistant/pull/21612 +[#21620]: https://github.com/home-assistant/home-assistant/pull/21620 +[#21621]: https://github.com/home-assistant/home-assistant/pull/21621 +[#21627]: https://github.com/home-assistant/home-assistant/pull/21627 +[#21633]: https://github.com/home-assistant/home-assistant/pull/21633 +[#21634]: https://github.com/home-assistant/home-assistant/pull/21634 +[#21641]: https://github.com/home-assistant/home-assistant/pull/21641 +[#21642]: https://github.com/home-assistant/home-assistant/pull/21642 +[#21643]: https://github.com/home-assistant/home-assistant/pull/21643 +[#21647]: https://github.com/home-assistant/home-assistant/pull/21647 +[#21651]: https://github.com/home-assistant/home-assistant/pull/21651 +[#21653]: https://github.com/home-assistant/home-assistant/pull/21653 +[#21662]: https://github.com/home-assistant/home-assistant/pull/21662 +[#21664]: https://github.com/home-assistant/home-assistant/pull/21664 +[#21669]: https://github.com/home-assistant/home-assistant/pull/21669 +[#21673]: https://github.com/home-assistant/home-assistant/pull/21673 +[#21675]: https://github.com/home-assistant/home-assistant/pull/21675 +[#21678]: https://github.com/home-assistant/home-assistant/pull/21678 +[#21679]: https://github.com/home-assistant/home-assistant/pull/21679 +[#21693]: https://github.com/home-assistant/home-assistant/pull/21693 +[#21694]: https://github.com/home-assistant/home-assistant/pull/21694 +[#21696]: https://github.com/home-assistant/home-assistant/pull/21696 +[#21698]: https://github.com/home-assistant/home-assistant/pull/21698 +[#21702]: https://github.com/home-assistant/home-assistant/pull/21702 +[#21709]: https://github.com/home-assistant/home-assistant/pull/21709 +[#21711]: https://github.com/home-assistant/home-assistant/pull/21711 +[#21713]: https://github.com/home-assistant/home-assistant/pull/21713 +[#21714]: https://github.com/home-assistant/home-assistant/pull/21714 +[#21718]: https://github.com/home-assistant/home-assistant/pull/21718 +[#21719]: https://github.com/home-assistant/home-assistant/pull/21719 +[#21720]: https://github.com/home-assistant/home-assistant/pull/21720 +[#21726]: https://github.com/home-assistant/home-assistant/pull/21726 +[#21727]: https://github.com/home-assistant/home-assistant/pull/21727 +[#21728]: https://github.com/home-assistant/home-assistant/pull/21728 +[#21734]: https://github.com/home-assistant/home-assistant/pull/21734 +[#21736]: https://github.com/home-assistant/home-assistant/pull/21736 +[#21740]: https://github.com/home-assistant/home-assistant/pull/21740 +[#21746]: https://github.com/home-assistant/home-assistant/pull/21746 +[#21777]: https://github.com/home-assistant/home-assistant/pull/21777 +[#21780]: https://github.com/home-assistant/home-assistant/pull/21780 +[#21785]: https://github.com/home-assistant/home-assistant/pull/21785 +[#21786]: https://github.com/home-assistant/home-assistant/pull/21786 +[#21789]: https://github.com/home-assistant/home-assistant/pull/21789 +[#21791]: https://github.com/home-assistant/home-assistant/pull/21791 +[#21794]: https://github.com/home-assistant/home-assistant/pull/21794 +[#21799]: https://github.com/home-assistant/home-assistant/pull/21799 +[#21809]: https://github.com/home-assistant/home-assistant/pull/21809 +[#21810]: https://github.com/home-assistant/home-assistant/pull/21810 +[#21822]: https://github.com/home-assistant/home-assistant/pull/21822 +[#21824]: https://github.com/home-assistant/home-assistant/pull/21824 +[#21827]: https://github.com/home-assistant/home-assistant/pull/21827 +[#21832]: https://github.com/home-assistant/home-assistant/pull/21832 +[#21835]: https://github.com/home-assistant/home-assistant/pull/21835 +[#21836]: https://github.com/home-assistant/home-assistant/pull/21836 +[#21837]: https://github.com/home-assistant/home-assistant/pull/21837 +[#21840]: https://github.com/home-assistant/home-assistant/pull/21840 +[#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 +[#21850]: https://github.com/home-assistant/home-assistant/pull/21850 +[#21853]: https://github.com/home-assistant/home-assistant/pull/21853 +[#21855]: https://github.com/home-assistant/home-assistant/pull/21855 +[#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 +[#21875]: https://github.com/home-assistant/home-assistant/pull/21875 +[#21878]: https://github.com/home-assistant/home-assistant/pull/21878 +[#21884]: https://github.com/home-assistant/home-assistant/pull/21884 +[#21887]: https://github.com/home-assistant/home-assistant/pull/21887 +[#21890]: https://github.com/home-assistant/home-assistant/pull/21890 +[#21891]: https://github.com/home-assistant/home-assistant/pull/21891 +[#21892]: https://github.com/home-assistant/home-assistant/pull/21892 +[#21898]: https://github.com/home-assistant/home-assistant/pull/21898 +[#21901]: https://github.com/home-assistant/home-assistant/pull/21901 +[#21905]: https://github.com/home-assistant/home-assistant/pull/21905 +[#21910]: https://github.com/home-assistant/home-assistant/pull/21910 +[#21913]: https://github.com/home-assistant/home-assistant/pull/21913 +[#21914]: https://github.com/home-assistant/home-assistant/pull/21914 +[#21921]: https://github.com/home-assistant/home-assistant/pull/21921 +[#21922]: https://github.com/home-assistant/home-assistant/pull/21922 +[#21923]: https://github.com/home-assistant/home-assistant/pull/21923 +[#21927]: https://github.com/home-assistant/home-assistant/pull/21927 +[#21932]: https://github.com/home-assistant/home-assistant/pull/21932 +[#21933]: https://github.com/home-assistant/home-assistant/pull/21933 +[#21937]: https://github.com/home-assistant/home-assistant/pull/21937 +[#21940]: https://github.com/home-assistant/home-assistant/pull/21940 +[#21944]: https://github.com/home-assistant/home-assistant/pull/21944 +[#21945]: https://github.com/home-assistant/home-assistant/pull/21945 +[#21951]: https://github.com/home-assistant/home-assistant/pull/21951 +[#21953]: https://github.com/home-assistant/home-assistant/pull/21953 +[#21957]: https://github.com/home-assistant/home-assistant/pull/21957 +[#21959]: https://github.com/home-assistant/home-assistant/pull/21959 +[#21960]: https://github.com/home-assistant/home-assistant/pull/21960 +[#21963]: https://github.com/home-assistant/home-assistant/pull/21963 +[#21965]: https://github.com/home-assistant/home-assistant/pull/21965 +[#21971]: https://github.com/home-assistant/home-assistant/pull/21971 +[#21977]: https://github.com/home-assistant/home-assistant/pull/21977 +[#21978]: https://github.com/home-assistant/home-assistant/pull/21978 +[#21979]: https://github.com/home-assistant/home-assistant/pull/21979 +[#21981]: https://github.com/home-assistant/home-assistant/pull/21981 +[#21983]: https://github.com/home-assistant/home-assistant/pull/21983 +[#21985]: https://github.com/home-assistant/home-assistant/pull/21985 +[#21988]: https://github.com/home-assistant/home-assistant/pull/21988 +[#21989]: https://github.com/home-assistant/home-assistant/pull/21989 +[#21993]: https://github.com/home-assistant/home-assistant/pull/21993 +[#21994]: https://github.com/home-assistant/home-assistant/pull/21994 +[#22004]: https://github.com/home-assistant/home-assistant/pull/22004 +[#22006]: https://github.com/home-assistant/home-assistant/pull/22006 +[#22008]: https://github.com/home-assistant/home-assistant/pull/22008 +[#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 +[@Cereal2nd]: https://github.com/Cereal2nd +[@Danielhiversen]: https://github.com/Danielhiversen +[@Dullage]: https://github.com/Dullage +[@GGeezes]: https://github.com/GGeezes +[@Hackashaq666]: https://github.com/Hackashaq666 +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@Julius2342]: https://github.com/Julius2342 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Oro]: https://github.com/Oro +[@StevenLooman]: https://github.com/StevenLooman +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@ToRvaLDz]: https://github.com/ToRvaLDz +[@alandtse]: https://github.com/alandtse +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@arsaboo]: https://github.com/arsaboo +[@autinerd]: https://github.com/autinerd +[@awarecan]: https://github.com/awarecan +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@beavis9k]: https://github.com/beavis9k +[@c-soft]: https://github.com/c-soft +[@chilicheech]: https://github.com/chilicheech +[@cisasteelersfan]: https://github.com/cisasteelersfan +[@cmsimike]: https://github.com/cmsimike +[@cpopp]: https://github.com/cpopp +[@danielperna84]: https://github.com/danielperna84 +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@dshokouhi]: https://github.com/dshokouhi +[@ehendrix23]: https://github.com/ehendrix23 +[@emontnemery]: https://github.com/emontnemery +[@endor-force]: https://github.com/endor-force +[@engrbm87]: https://github.com/engrbm87 +[@epleypa]: https://github.com/epleypa +[@fabaff]: https://github.com/fabaff +[@fbradyirl]: https://github.com/fbradyirl +[@gertdb]: https://github.com/gertdb +[@heythisisnate]: https://github.com/heythisisnate +[@hunterjm]: https://github.com/hunterjm +[@isabellaalstrom]: https://github.com/isabellaalstrom +[@josemotta]: https://github.com/josemotta +[@kbickar]: https://github.com/kbickar +[@kennedyshead]: https://github.com/kennedyshead +[@koolsb]: https://github.com/koolsb +[@ktnrg45]: https://github.com/ktnrg45 +[@ljmerza]: https://github.com/ljmerza +[@ludeeus]: https://github.com/ludeeus +[@marvin-w]: https://github.com/marvin-w +[@michaelarnauts]: https://github.com/michaelarnauts +[@msvinth]: https://github.com/msvinth +[@mw-white]: https://github.com/mw-white +[@ndonegan]: https://github.com/ndonegan +[@nickw444]: https://github.com/nickw444 +[@nudded]: https://github.com/nudded +[@nugget]: https://github.com/nugget +[@pavoni]: https://github.com/pavoni +[@piitaya]: https://github.com/piitaya +[@pnbruckner]: https://github.com/pnbruckner +[@pvizeli]: https://github.com/pvizeli +[@rbdixon]: https://github.com/rbdixon +[@robbiet480]: https://github.com/robbiet480 +[@roblandry]: https://github.com/roblandry +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@scop]: https://github.com/scop +[@shanbs]: https://github.com/shanbs +[@srirams]: https://github.com/srirams +[@thibmaek]: https://github.com/thibmaek +[@trunet]: https://github.com/trunet +[@ttroy50]: https://github.com/ttroy50 +[@u1f35c]: https://github.com/u1f35c +[@uchagani]: https://github.com/uchagani +[@w1ll1am23]: https://github.com/w1ll1am23 +[@wburgers]: https://github.com/wburgers +[@webdjoe]: https://github.com/webdjoe +[@zeehio]: https://github.com/zeehio +[@zemerick1]: https://github.com/zemerick1 +[@zewelor]: https://github.com/zewelor +[air_quality docs]: /components/air_quality/ +[alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/ +[alarmdecoder docs]: /components/alarmdecoder/ +[alert docs]: /components/alert/ +[ambient_station docs]: /components/ambient_station/ +[amcrest docs]: /components/amcrest/ +[api docs]: /components/api/ +[asuswrt docs]: /components/asuswrt/ +[auth docs]: /components/auth/ +[automation docs]: /components/automation/ +[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.proxy docs]: /components/camera.proxy/ +[camera.xeoma docs]: /components/camera.xeoma/ +[cast docs]: /components/cast/ +[cisco_mobility_express docs]: /components/cisco_mobility_express/ +[climate.ephember docs]: /components/climate.ephember/ +[climate.eq3btsmart docs]: /components/climate.eq3btsmart/ +[climate.honeywell docs]: /components/climate.honeywell/ +[climate.netatmo docs]: /components/climate.netatmo/ +[cloud docs]: /components/cloud/ +[config docs]: /components/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/ +[hassio docs]: /components/hassio/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[http docs]: /components/http/ +[huawei_lte docs]: /components/huawei_lte/ +[ifttt docs]: /components/ifttt/ +[ihc docs]: /components/ihc/ +[image_processing docs]: /components/image_processing/ +[image_processing.opencv docs]: /components/image_processing.opencv/ +[image_processing.tensorflow docs]: /components/image_processing.tensorflow/ +[knx docs]: /components/knx/ +[konnected docs]: /components/konnected/ +[lametric docs]: /components/lametric/ +[light docs]: /components/light/ +[light.flux_led docs]: /components/light.flux_led/ +[light.ihc docs]: /components/light.ihc/ +[light.mystrom docs]: /components/light.mystrom/ +[light.nanoleaf docs]: /components/light.nanoleaf/ +[logbook docs]: /components/logbook/ +[lutron docs]: /components/lutron/ +[media_extractor docs]: /components/media_extractor/ +[media_player.anthemav docs]: /components/media_player.anthemav/ +[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/ +[media_player.enigma2 docs]: /components/media_player.enigma2/ +[media_player.firetv docs]: /components/media_player.firetv/ +[mobile_app docs]: /components/mobile_app/ +[modbus docs]: /components/modbus/ +[mqtt docs]: /components/mqtt/ +[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/ +[ps4 docs]: /components/ps4/ +[rainmachine docs]: /components/rainmachine/ +[remote docs]: /components/remote/ +[remote.harmony docs]: /components/remote.harmony/ +[satel_integra docs]: /components/satel_integra/ +[scene docs]: /components/scene/ +[script docs]: /components/script/ +[sense docs]: /components/sense/ +[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.netdata docs]: /components/sensor.netdata/ +[sensor.nmbs docs]: /components/sensor.nmbs/ +[sensor.pollen docs]: /components/sensor.pollen/ +[sensor.seventeentrack docs]: /components/sensor.seventeentrack/ +[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.whois docs]: /components/sensor.whois/ +[smartthings docs]: /components/smartthings/ +[sonos docs]: /components/sonos/ +[stream docs]: /components/stream/ +[switch.mystrom docs]: /components/switch.mystrom/ +[switch.vesync docs]: /components/switch.vesync/ +[tellstick docs]: /components/tellstick/ +[tesla docs]: /components/tesla/ +[tplink docs]: /components/tplink/ +[tts docs]: /components/tts/ +[utility_meter docs]: /components/utility_meter/ +[velbus docs]: /components/velbus/ +[velux docs]: /components/velux/ +[water_heater docs]: /components/water_heater/ +[websocket_api docs]: /components/websocket_api/ +[zeroconf docs]: /components/zeroconf/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From 8db1129f5c44655cdd14091a339f6e6ab4bf13e9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 13 Mar 2019 21:21:48 -0700 Subject: [PATCH 02/22] Update 2019-03-20-release-90.markdown --- source/_posts/2019-03-20-release-90.markdown | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 7ce76490ba6..8f0ce5d97a0 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -13,9 +13,23 @@ og_image: /images/blog/2019-03-release-90/components.png - - Remote connection available for Home Assistant Cloud! Check out the cloud page in config - - 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. - - User groups! Restrict admin access to users ([at least UI wise](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html)) +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. + +Add to config: `stream:`. Now there is a new camera.play_stream service. + +
+ +
+ +## {% linkable_title User Groups %} + +User groups! Restrict admin access to users ([at least UI wise](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html)) + + ## {% linkable_title New Platforms %} From 0983468be6c5a4a1971b5b9869b43b937d730da8 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 14 Mar 2019 16:29:20 -0700 Subject: [PATCH 03/22] Mention ST cloudhooks --- source/_posts/2019-03-20-release-90.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 8f0ce5d97a0..c4ccc1d40b2 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -29,6 +29,10 @@ Add to config: `stream:`. Now there is a new camera.play_stream service. User groups! Restrict admin access to users ([at least UI wise](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html)) +## {% linkable_title Smarter SmartThings %} + +If you use Home Assistant Cloud, you will now be able to set up SmartThings without exposing your instance to the internet, by leveraging cloudhooks. + From 10d3e79bf366c47b69a0f1f9c71e5f78f7a9eeef Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 15 Mar 2019 10:39:46 -0700 Subject: [PATCH 04/22] Add video --- source/_posts/2019-03-20-release-90.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index c4ccc1d40b2..ee7c98d4ac0 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -11,8 +11,6 @@ categories: Release-Notes og_image: /images/blog/2019-03-release-90/components.png --- - - Remote connection available for Home Assistant Cloud! Check out the cloud page in config to get going. ## {% linkable_title Streams %} @@ -33,8 +31,11 @@ User groups! Restrict admin access to users ([at least UI wise](https://develope If you use Home Assistant Cloud, you will now be able to set up SmartThings without exposing your instance to the internet, by leveraging cloudhooks. +## {% linkable_title Improved integration setup flow %} - +
+ +
## {% linkable_title New Platforms %} From f4c7638706b0aa67450b9cf746e7bbea222109bb Mon Sep 17 00:00:00 2001 From: Daniel Shokouhi Date: Thu, 14 Mar 2019 17:11:35 -0700 Subject: [PATCH 05/22] Add troubleshooting section (#8940) * Add troubleshooting section When I first attempted to setup the stream component in my dev environment I had the following errors that were only solved by installing these packages. When I moved to a second pi to do further testing I again needed to run the same commands to setup the component so this will be helpful to any user who has the same error. * Update stream.markdown --- source/_components/stream.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_components/stream.markdown b/source/_components/stream.markdown index 56453247b30..aa31666b926 100644 --- a/source/_components/stream.markdown +++ b/source/_components/stream.markdown @@ -25,3 +25,19 @@ To enable this component, add the following lines to your `configuration.yaml` f # Example configuration.yaml entry stream: ``` + +## {% linkable_title Troubleshooting %} + +Some users on manual installs may see the following error in their logs after restarting: + +``` +2019-03-12 08:49:59 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package av==6.1.2: Command "/home/pi/home-assistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-udfl2b3t/av/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ftn5zmh2/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/home-assistant/include/site/python3.6/av" failed with error code 1 in /tmp/pip-install-udfl2b3t/av/ +2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.requirements] Not initializing stream because could not install requirement av==6.1.2 +2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.setup] Setup failed for stream: Could not install all requirements. +``` + +If you see this error you can solve it by running the following commands and restarting Home Assistant (commands do not need to be ran as the `homeassistant` user): + +``` +sudo apt-get install -y python-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev +``` From e1ae87bb08e9d0a78c266b902b21f126b77ae9c2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 15 Mar 2019 11:42:41 -0700 Subject: [PATCH 06/22] area sentence --- source/_posts/2019-03-20-release-90.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index ee7c98d4ac0..cf9048f316f 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -31,7 +31,11 @@ User groups! Restrict admin access to users ([at least UI wise](https://develope If you use Home Assistant Cloud, you will now be able to set up SmartThings without exposing your instance to the internet, by leveraging cloudhooks. -## {% linkable_title Improved integration setup flow %} +## {% linkable_title Area love %} + +Allow using areas in services instead of specifying entities. + +Improved integration setup flow:
From 57804f9aa4093b4d2a9218e4a8a123622f89c1d0 Mon Sep 17 00:00:00 2001 From: cogneato Date: Tue, 19 Mar 2019 02:43:43 -0600 Subject: [PATCH 07/22] Describe Breaking Changes for .90 Added descriptive breaking changes. Still waiting on Netatmo and possibly suggestions for MQTT --- source/_posts/2019-03-20-release-90.markdown | 24 ++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index cf9048f316f..84d6028776a 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -74,15 +74,21 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Added support for multiple Netatmo thermostats/valves ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) (breaking change) -- Return Netatmo climate operation_mode instead of boiler status ([@shanbs] - [#21633]) ([netatmo docs]) (breaking change) -- Utility Meter offset defined by a time_period ([@dgomes] - [#20926]) ([utility_meter docs]) (breaking change) -- Introduce target_temperature_state_address for climate device ([@marvin-w] - [#21541]) ([knx docs]) (breaking change) -- Deprecate http.api_password ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy docs]) (breaking change) -- Changed from nanoleaf_aurora to nanoleaf ([@Oro] - [#21913]) ([light.nanoleaf docs]) (breaking change) -- Rename 'firetv' to 'androidtv' and add Android TV functionality ([@JeffLIrion] - [#21944]) (breaking change) -- Tellstick sensor configuration cleanup ([@endor-force] - [#21402]) ([tellstick docs]) (breaking change) -- Pass Message object to MQTT message callbacks ([@emontnemery] - [#21959]) ([mqtt docs]) (breaking change) +- __Netatmo__ Added support for multiple Netatmo thermostats/valves ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) +- __Netatmo__ Return Netatmo climate operation_mode instead of boiler status ([@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. +This change increases the flexibility of offset by making it a more flexible time period that can be described in a combination of hours, days, months, etc. This makes it possible for a yearly cycle to start at a given day of a given month. Please see the updated documentation for further details. ([@dgomes] - [#20926]) ([utility_meter docs]) +- __KNX__ - An update for xknx to version 0.10.0 requires users to update their configuration by changing `target_temperature_address` to `target_temperature_state_address`. Other fixes and features: + * Connection config can now be configured in xknx.yml. + * Introduce a configurable rate limit which limits the number of KNX telegrams sent to the bus per second. + * Users who configured their lights via xknx.yml no longer need to manually set min_kelvin and max_kelvin (fixes #21251) ([@marvin-w] - [#21541]) ([knx docs]) +- __http.api_password__ - __Deprecated__ - Users who are still using api_password for authentication will need to move it under auth_providers. Please see the [updated documentation](https://www.home-assistant.io/docs/authentication/providers/#legacy-api-password) for further details. +Those who don't make this change will see an INFO level reminder in the Home Assistant logs until the fix is made for a time, but please note, __api_password authentication will eventually be removed completely__ and we advise users to change to use one of the [other authentication methods](https://www.home-assistant.io/docs/authentication/providers/#available-auth-providers). ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy docs]) +- __Nanoleaf__ - The Nanoleaf component now supports _both_ nanoleaf lights, Aurora and Canvas. As a result of this change the user needs to change the platform from `nanoleaf_aurora` to `nanoleaf` ([@Oro] - [#21913]) ([light.nanoleaf docs]) +- __FireTV__- is now androidtv. Instead of having near-duplicate integrations for androidtv and firetv, the decision was made to combine them into one. +Users will need to change `- platform: firetv` to `- platform: androidtv` in their configuration. ([@JeffLIrion] - [#21944]) +- __Tellstick__ - Some configuration cleanup. The way Tellsick sensor configuration was set up using dynamic values for named sensors will not be supported in future versions of Home Assistant. Users that have configured the optional named sensors initiated with only_named will have to update their configuration. Make sure to check the updated documentation for further details. ([@endor-force] - [#21402]) ([tellstick docs]) +- __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`. ([@emontnemery] - [#21959]) ([mqtt docs]) ## {% linkable_title All changes %} From 51826a9c32c990ce7f76ac999e7f7db0d0e0eee3 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 19 Mar 2019 09:46:44 -0700 Subject: [PATCH 08/22] Update 2019-03-20-release-90.markdown --- source/_posts/2019-03-20-release-90.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 84d6028776a..c592e36815e 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -88,7 +88,8 @@ Those who don't make this change will see an INFO level reminder in the Home Ass - __FireTV__- is now androidtv. Instead of having near-duplicate integrations for androidtv and firetv, the decision was made to combine them into one. Users will need to change `- platform: firetv` to `- platform: androidtv` in their configuration. ([@JeffLIrion] - [#21944]) - __Tellstick__ - Some configuration cleanup. The way Tellsick sensor configuration was set up using dynamic values for named sensors will not be supported in future versions of Home Assistant. Users that have configured the optional named sensors initiated with only_named will have to update their configuration. Make sure to check the updated documentation for further details. ([@endor-force] - [#21402]) ([tellstick docs]) -- __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`. ([@emontnemery] - [#21959]) ([mqtt docs]) +- __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 All changes %} From 85bdf49c5b0dfa59fad09cb7b896a9c28cd7c12c Mon Sep 17 00:00:00 2001 From: cogneato Date: Tue, 19 Mar 2019 12:45:37 -0600 Subject: [PATCH 09/22] Fixed up and combined Netatmo breaking changes --- source/_posts/2019-03-20-release-90.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index c592e36815e..79d07728e68 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -74,10 +74,11 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- __Netatmo__ Added support for multiple Netatmo thermostats/valves ([@shanbs] - [#19407]) ([netatmo docs]) ([climate.netatmo docs]) -- __Netatmo__ Return Netatmo climate operation_mode instead of boiler status ([@shanbs] - [#21633]) ([netatmo docs]) +- __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. -This change increases the flexibility of offset by making it a more flexible time period that can be described in a combination of hours, days, months, etc. This makes it possible for a yearly cycle to start at a given day of a given month. Please see the updated documentation for further details. ([@dgomes] - [#20926]) ([utility_meter docs]) +This change increases the flexibility of offset by making it a more flexible time period that can be described in a combination of hours, days, months, etc. This makes it possible for a yearly cycle to start at a given day of a given month. Please see the [updated documentation](https://www.home-assistant.io/components/utility_meter/) for the new configuration options. ([@dgomes] - [#20926]) ([utility_meter docs]) - __KNX__ - An update for xknx to version 0.10.0 requires users to update their configuration by changing `target_temperature_address` to `target_temperature_state_address`. Other fixes and features: * Connection config can now be configured in xknx.yml. * Introduce a configurable rate limit which limits the number of KNX telegrams sent to the bus per second. From 26e1fe520cb86e226ddd45dd757bce85bff7fe9e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 19 Mar 2019 17:06:42 -0700 Subject: [PATCH 10/22] Remove api password from http example conf --- source/_components/http.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/_components/http.markdown b/source/_components/http.markdown index eca3e3f5b81..e85af1cb178 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -23,12 +23,11 @@ Don't use option `server_host` on a Hass.io installation! ```yaml # Example configuration.yaml entry http: - api_password: YOUR_PASSWORD ``` {% configuration %} api_password: - description: Protect the Home Assistant API with a password - this password can also be used to log in to the frontend. Where your client or other software supports it, you should use [long lasting access token](/docs/authentication/#your-account-profile) instead, as [shown in the REST API](https://developers.home-assistant.io/docs/en/external_api_rest.html) and [websocket API](https://developers.home-assistant.io/docs/en/external_api_websocket.html) documentation. + description: Deprecated. Do not use. Protect the Home Assistant API with a password - this password can also be used to log in to the frontend. Use [long lasting access token](/docs/authentication/#your-account-profile) instead, as [shown in the REST API](https://developers.home-assistant.io/docs/en/external_api_rest.html) and [websocket API](https://developers.home-assistant.io/docs/en/external_api_websocket.html) documentation. required: false type: string server_host: From 9304032a1443143c4a8377e59052d0eba4d337fa Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 19 Mar 2019 22:15:30 -0700 Subject: [PATCH 11/22] Fix broken links --- ....markdown => cisco_mobility_express.markdown} | 0 ..._player.enigma2.markdown => enigma2.markdown} | 2 ++ source/_components/onboarding.markdown | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) rename source/_components/{device_tracker.cisco_mobility_express.markdown => cisco_mobility_express.markdown} (100%) rename source/_components/{media_player.enigma2.markdown => enigma2.markdown} (98%) create mode 100644 source/_components/onboarding.markdown diff --git a/source/_components/device_tracker.cisco_mobility_express.markdown b/source/_components/cisco_mobility_express.markdown similarity index 100% rename from source/_components/device_tracker.cisco_mobility_express.markdown rename to source/_components/cisco_mobility_express.markdown diff --git a/source/_components/media_player.enigma2.markdown b/source/_components/enigma2.markdown similarity index 98% rename from source/_components/media_player.enigma2.markdown rename to source/_components/enigma2.markdown index 03712d7ab7f..11aaf3b7050 100644 --- a/source/_components/media_player.enigma2.markdown +++ b/source/_components/enigma2.markdown @@ -12,6 +12,8 @@ ha_category: Media Player featured: false ha_release: "0.90" ha_iot_class: "Local Polling" +redirect_from: + - /components/media_player.enigma2/ --- The `enigma2` platform allows you to control a Linux based set-top box which is running [Enigma2](https://github.com/oe-alliance/oe-alliance-enigma2) with the OpenWebif plugin installed. diff --git a/source/_components/onboarding.markdown b/source/_components/onboarding.markdown new file mode 100644 index 00000000000..fa50caaf358 --- /dev/null +++ b/source/_components/onboarding.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Onboarding" +description: "This component is responsible for providing the onboarding endpoints." +date: 2018-03-19 21:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Other +ha_release: 0.73 +ha_qa_scale: internal +--- + +This component creates the endpoints for the onboarding that is built into Home Assistant. There are no configuration options for this component directly. From ee7c06c9ade0a22124944df08c4b423a7d3a6729 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 07:32:12 -0700 Subject: [PATCH 12/22] Remove localhost from trusted networks. --- source/_docs/authentication/providers.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index a36531c6258..36a18474723 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -73,8 +73,6 @@ homeassistant: auth_providers: - type: trusted_networks trusted_networks: - - 127.0.0.1 - - ::1 - 192.168.0.0/24 - fd00::/8 ``` From d5fab55b76a7df55b509d5d5189a5922155ad75d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 07:33:29 -0700 Subject: [PATCH 13/22] Remove localhost from trusted networks --- source/_components/http.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/_components/http.markdown b/source/_components/http.markdown index e85af1cb178..fad79bf13da 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -112,8 +112,6 @@ http: - 127.0.0.1 - ::1 trusted_networks: - - 127.0.0.1 - - ::1 - 192.168.0.0/24 - fd00::/8 ip_ban_enabled: true From 8aff0b16dc6ee70ce7c6347098084360a2493624 Mon Sep 17 00:00:00 2001 From: Ben Bennett Date: Wed, 20 Mar 2019 11:26:44 -0400 Subject: [PATCH 14/22] Changed a word to clarify (#8988) refigure out -> recompute --- source/_docs/z-wave/control-panel.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 88ad5553ae3..5003d3d217b 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -25,7 +25,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Remove Node** puts the controller into exclusion mode, so you can exclude (remove) a device. Note that you can exclude a non-secure device that's been added to another network * **Cancel Command** cancels any of the above -* **Heal Network** tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. +* **Heal Network** tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can recompute optimal routing. * **Start Network** starts the Z-Wave network * **Stop Network** stops the Z-Wave network * **Soft Reset** tells the controller to do a "soft reset." This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command, and may cause the Z-Wave network to hang. From a18b2bd9fbce246564e7d515dd8bee4ea2697f4e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 10:24:50 -0700 Subject: [PATCH 15/22] 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 From 27614cc40ecf4e73bfdadd82ed87d31e720df231 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 11:28:33 -0700 Subject: [PATCH 16/22] Add more notes --- source/_posts/2019-03-20-release-90.markdown | 46 +++++++++++--------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index acac390ea59..f8751632fe1 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -11,17 +11,24 @@ categories: Release-Notes 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. +It's time for Home Assistant 0.90 and it's just wow. This release is so packed with cool stuff that it's difficult to even know where to start, so let's just jump in. + +The first big feature is that Home Assistant Cloud now supports remote control. This allows you to check in on your home while away from home. Get a notification that motion was detected? Now you can easily check what happened and take action while away. It works end-to-end encrypted. Only thing needed to get started is to enable it. That's it. + +For more information on how it works, check out [the documentation](https://www.nabucasa.com/config/remote/) or listen to [the latest episode of the Home Assistant Podcast](https://hasspodcast.io/) (will be released soon).

- +Screenshot of the Remote UI preference. +Screenshot of the Remote UI preference.

-## {% linkable_title Streams %} +## {% linkable_title Camera streams for everyone %} -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. +With this release we're getting serious about cameras. [@hunterjm] has worked months on this and it's finally ready for the first reveal. With the stream component, we will be able to forward streams from cameras in your house and repackage it into formats that your display devices understand. Previously, streaming cameras was limited to 2 frames per second and only in the frontend. For the first version we focused on the HLS format, which is supported by modern browsers and Chromecast. Each camera integration will need to be individually updated, for the first version we have only added support for the generic camera integration. -Add to config: `stream:`. Now there is a new camera.play_stream service. +So what is possible now? You can start streaming your frontdoor feed on your TV when the doorbell rings or you can install a camera in the nursery and turn your Google Home Hub into a babymonitor. + +To get started, add `stream:` to your configuration.yaml, configure the [generic camera][camera.generic docs] and start using the new `camera.play_stream` service.
@@ -29,43 +36,42 @@ Add to config: `stream:`. Now there is a new camera.play_stream service. ## {% linkable_title User Groups %} -User groups! Restrict admin access to users ([at least UI wise](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html)) +This has been a long time in the making, and has been worked on for a long time: you can now put users in groups to prevent them from being able to configure things from the UI. Users in the new "users" group will not see links to the configuration panel or to the developer tools. This is currently a UI feature, not a security feature. [We're working](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html) on making this a security feature by limiting access at API level too. ## {% linkable_title Smarter SmartThings %} -If you use Home Assistant Cloud, you will now be able to set up SmartThings without exposing your instance to the internet, by leveraging cloudhooks. +If you use Home Assistant Cloud, setting up SmartThings will now automatically leverage Cloudhooks. This means that you will not need to expose your instance to the internet to start using SmartThings. Yay for easy set up and thanks [@andrewsayre]! SmartThings support has also been added for 3 axis sensors and air conditioners. ## {% linkable_title Area love %} -Allow using areas in services instead of specifying entities. +This release also adds some more love to areas. Thanks to [@Swamp-Ig], areas will now be included as room hints when you sync Home Assistant with Google Assistant. This should make setting up a breeze. -Improved integration setup flow: +Areas can now also be used as targets in services. Just specify `area_id` instead of `entity_id` in your scripts or automations. + +We've also made areas a part of the set up flow for integrations. When you add an integration, we will check which devices are added and ask you to configure them right away. That way you won't forget.
+## {% linkable_title VSCode extension %} + +In case you missed it, earlier this week Kees Schollaart released the first version of his Home Assistant extension for the free text editor [VSCode](https://code.visualstudio.com/). It will connect to your instance and will provide you with entity ID autocompletion while editing your config! + + + ## {% linkable_title New Platforms %} +- Live Streams Component ([@hunterjm] - [#21473]) ([camera docs]) ([stream docs]) (new-platform) - 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 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]) ([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]) (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 %} - -- SmartThings remove SmartApp/Automation on integration removal ([@andrewsayre] - [#21594]) ([smartthings docs]) (new-feature) -- Add SmartThings climate support for Air Conditioners ([@andrewsayre] - [#21840]) ([smartthings docs]) (new-feature) -- Add SmartThings sensor support for Three Axis ([@andrewsayre] - [#21841]) ([smartthings docs]) (new-feature) ## {% linkable_title If you need help... %} From d678c6d97264226d6fbcd2d64536a1e34f54e696 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 11:30:58 -0700 Subject: [PATCH 17/22] Clarify breaking change api password --- source/_posts/2019-03-20-release-90.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index f8751632fe1..77557c4b082 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -85,6 +85,8 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} +- __http.api_password__ - __Deprecated__ - Users who are still using api_password for authentication will need to move its configuration under auth_providers. Please see the [updated documentation](https://www.home-assistant.io/docs/authentication/providers/#legacy-api-password) for further details. Those who don't make this change will see an INFO level reminder in the Home Assistant logs until the fix is made for a time, but please note, __api_password authentication will eventually be removed completely__ and we advise users to change to use one of the [other authentication methods](https://www.home-assistant.io/docs/authentication/providers/#available-auth-providers). If you manually specify auth providers in your `configuration.yaml`, you will need to migrate your API Password from the http section to the auth provider section to continue using it. ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy 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. - __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]) @@ -94,14 +96,11 @@ This change increases the flexibility of offset by making it a more flexible tim * Connection config can now be configured in xknx.yml. * Introduce a configurable rate limit which limits the number of KNX telegrams sent to the bus per second. * Users who configured their lights via xknx.yml no longer need to manually set min_kelvin and max_kelvin (fixes #21251) ([@marvin-w] - [#21541]) ([knx docs]) -- __http.api_password__ - __Deprecated__ - Users who are still using api_password for authentication will need to move it under auth_providers. Please see the [updated documentation](https://www.home-assistant.io/docs/authentication/providers/#legacy-api-password) for further details. -Those who don't make this change will see an INFO level reminder in the Home Assistant logs until the fix is made for a time, but please note, __api_password authentication will eventually be removed completely__ and we advise users to change to use one of the [other authentication methods](https://www.home-assistant.io/docs/authentication/providers/#available-auth-providers). ([@awarecan] - [#21884]) ([api docs]) ([frontend docs]) ([hassio docs]) ([http docs]) ([mqtt docs]) ([websocket_api docs]) ([zeroconf docs]) ([camera.proxy docs]) - __Nanoleaf__ - The Nanoleaf component now supports _both_ nanoleaf lights, Aurora and Canvas. As a result of this change the user needs to change the platform from `nanoleaf_aurora` to `nanoleaf` ([@Oro] - [#21913]) ([light.nanoleaf docs]) - __FireTV__- is now androidtv. Instead of having near-duplicate integrations for androidtv and firetv, the decision was made to combine them into one. Users will need to change `- platform: firetv` to `- platform: androidtv` in their configuration. ([@JeffLIrion] - [#21944]) - __Tellstick__ - Some configuration cleanup. The way Tellsick sensor configuration was set up using dynamic values for named sensors will not be supported in future versions of Home Assistant. Users that have configured the optional named sensors initiated with only_named will have to update their configuration. Make sure to check the updated documentation for further details. ([@endor-force] - [#21402]) ([tellstick docs]) - __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 %} From cc271369552a91497fb1b9b7cfd40d9dba850fec Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 11:35:36 -0700 Subject: [PATCH 18/22] Add one more tweet about streams --- source/_posts/2019-03-20-release-90.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 77557c4b082..fa05a153b0f 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -34,6 +34,9 @@ To get started, add `stream:` to your configuration.yaml, configure the [generic
+ + ## {% linkable_title User Groups %} This has been a long time in the making, and has been worked on for a long time: you can now put users in groups to prevent them from being able to configure things from the UI. Users in the new "users" group will not see links to the configuration panel or to the developer tools. This is currently a UI feature, not a security feature. [We're working](https://developers.home-assistant.io/blog/2019/03/11/user-permissions.html) on making this a security feature by limiting access at API level too. From bb37fd659df94d8bed7949e5811e285bbd0b3c12 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 12:06:25 -0700 Subject: [PATCH 19/22] FIx typo in description --- source/_posts/2019-03-20-release-90.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index fa05a153b0f..139d8d234d0 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -1,7 +1,7 @@ --- layout: post title: "0.90: Remote UI, Streams, User Groups" -description: "Bring your next level home to the next next leve." +description: "Bring your next level home to the next next level." date: 2019-03-20 00:11:03 date_formatted: "March 20, 2019" author: Paulus Schoutsen From 0b1855d4e144f12bfc6e50ca57b82962d4f794d0 Mon Sep 17 00:00:00 2001 From: Jason Hu Date: Sun, 17 Mar 2019 01:33:23 -0700 Subject: [PATCH 20/22] Remove hass.config from aws_lambda notify payload (#8966) --- source/_components/notify.aws_lambda.markdown | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/source/_components/notify.aws_lambda.markdown b/source/_components/notify.aws_lambda.markdown index 7efd2f837c6..43baab3f033 100644 --- a/source/_components/notify.aws_lambda.markdown +++ b/source/_components/notify.aws_lambda.markdown @@ -56,7 +56,7 @@ name: default: notify type: string context: - description: An optional dictionary you can provide to pass custom context through to the Lambda function. The `context` dictionary (if any) is combined with the same data available at the `/api/config` HTTP API route. + description: An optional dictionary you can provide to pass custom context through to the Lambda function. required: false type: string {% endconfiguration %} @@ -82,15 +82,6 @@ The context will look like this: ```json { - "hass": { - "components": ["recorder", "logger", "http", "logbook", "api", "frontend"], - "latitude": 44.1234, - "location_name": "Home", - "longitude": 5.5678, - "unit_system": "metric", - "time_zone": "Europe/Zurich", - "version": "0.20.0.dev0" - }, "custom": { "two": "three", "test": "one" From 263357e3b32ac8453886623a4ac5b559db8f0493 Mon Sep 17 00:00:00 2001 From: Jason Hunter Date: Sun, 17 Mar 2019 04:39:52 -0400 Subject: [PATCH 21/22] update generic ip cam docs for stream component (#8956) --- source/_components/camera.generic.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index 03bcac97578..7020e873a75 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -33,6 +33,10 @@ still_image_url: description: "The URL your camera serves the image on, e.g., http://192.168.1.21:2112/. Can be a [template](/topics/templating/)." required: true type: string +stream_source: + description: "The URL your camera serves the live stream on, e.g., rtsp://192.168.1.21:554/." + required: false + type: string name: description: This parameter allows you to override the name of your camera. required: false @@ -125,3 +129,15 @@ camera: still_image_url: http://example.org/your_image.png verify_ssl: false ``` + +### {% linkable_title Live stream %} + +To access a camera that has both a snapshot and live stream URL, utilizing the [stream](/components/stream/) component. + +```yaml +camera: + - platform: generic + name: Streaming Enabled + still_image_url: http://194.218.96.92/jpg/image.jpg + stream_source: rtsp://194.218.96.92:554 +``` From 2dcfd7a9cb6d08380717c9c71a02fce41dce290f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 20 Mar 2019 14:07:26 -0700 Subject: [PATCH 22/22] Podcast link --- source/_posts/2019-03-20-release-90.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2019-03-20-release-90.markdown b/source/_posts/2019-03-20-release-90.markdown index 139d8d234d0..1d342dd389a 100644 --- a/source/_posts/2019-03-20-release-90.markdown +++ b/source/_posts/2019-03-20-release-90.markdown @@ -15,7 +15,7 @@ It's time for Home Assistant 0.90 and it's just wow. This release is so packed w The first big feature is that Home Assistant Cloud now supports remote control. This allows you to check in on your home while away from home. Get a notification that motion was detected? Now you can easily check what happened and take action while away. It works end-to-end encrypted. Only thing needed to get started is to enable it. That's it. -For more information on how it works, check out [the documentation](https://www.nabucasa.com/config/remote/) or listen to [the latest episode of the Home Assistant Podcast](https://hasspodcast.io/) (will be released soon). +For more information on how it works, check out [the documentation](https://www.nabucasa.com/config/remote/) or listen to [the latest episode of the Home Assistant Podcast](https://hasspodcast.io/ha046/).

Screenshot of the Remote UI preference.