0.94: SmartHab, Watson TTS, Azure Event Hub

It is time for the 0.94 release and there is some seriously good stuff in this release. We’re working hard on polishing everything and getting ready for the big Home Assistant 1.0 release. And we’re getting closer. So close actually, that this is the first release that can be installed and configured without touching a text editor! Onboard, configure integrations, manage automations and scripts all from the UI.

This milestone has been achieved thanks to the hard work by @emontnemery who contributed the ability to store the core config in storage: name, location, unit system, time zone. We still allow users to store their core configuration in configuration.yaml, which will take precedent when defined. This means that it is a non-breaking change. Core config is now set during onboarding and can be edited in the general page of the config panel.

Another cool new feature is the total revamp of how you manage which entities are exposed to Google Assistant via Home Assistant Cloud. From the cloud UI you can now click “Manage Entities” and you are brought to the Google Assistant entity manager. From here you can enable which entities are exposed and, if you deem appropriate, choose to disable the two factor authentication on your garage door (the asking for a pin).

Screenshot of the new user interface to manage which entities are exposed to Google Assistant.Screenshot of the new user interface to manage which entities are exposed to Google Assistant.


Discovery has been modernized thanks to @Kane610 and with the input from @Jc2k. Each integration is now able to specify how they can be discovered in their manifest, and the new zeroconf and ssdp integrations will do the rest. The new discovery is non-obtrusive: no devices are set up without approval by the user. Instead, you will need to approve each discovered integration. You can find them in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release: Hue, LIFX, Deconz, Trådfri, Axis, ESPHome, HomeKit Controller.

The new discovery is now part of the default config. If you are not using the default config, add ssdp: and zeroconf: to your configuration.yaml.

Deprecating Python 3.5 support

This release has deprecated support for the almost 4 year old version 3.5 of Python. The first Home Assistant release after August 1 will drop support. This is part of our newly adopted Python support approach.

This will only impact you if you are running a custom installation of Home Assistant. This will not impact anyone using Hass.io or Docker. If you are using hassbian, you can upgrade Python by following these instructions.

Modernizing the device tracker

This release also introduces a long overdue overhaul of how the device tracker works. We are introducing this overhaul piece by piece, focusing first on device tracker platforms that push their updates to Home Assistant: mobile app, OwnTracks, GeoFency, GPSLogger and Locative.

These integrations will no longer use known_devices.yaml but instead use entities, like all other integrations in Home Assistant. You can change the name and entity ID via the UI. It is no longer posible to merge the devices with other device tracker entities. This was flaky at best. You should now use the new person integration for this.

Improved hass.io builds

We have been working hard on improving Hass.io builds. It’s our goal to make the update process faster and more predictable. A build can now be online in as little as 30 minutes after a new release has been tagged. This is thanks to a new wheel-based infrastructure build by @pvizeli with input from @frenck. With Python wheels, we will build all the requirements of integrations ahead of time, and so a new version of Home Assistant is now just putting pieces together.

Because of this, we changed how packages are installed when running Home Assistant inside a Docker container. It will now install the packages into the Python environment inside the container, instead of storing them in the config/deps folder, which lived outside the container.

Note: Because of the new way packages are installed, Home Assistant on Hass.io will take longer to start the first time it is launched after an upgrade. Don’t worry and let it finish! We are working on making this process faster in the future.

Note 2: If you are using Hass.io or a dockerized version of Home Assistant, this release will one time clear the deps folder in your config folder.

New Integrations

New Platforms

Release 0.94.1 – June 7

Release 0.94.2 – June 11

Breaking Changes

  • Sun – Inspired by a reddit report, the sun.sun sensor has been tuned so that it doesn’t update nearly as frequently. Previously the sun.sun sensor was updating every 30 seconds, day and night. Now it updates dependent on the solar elevation. This could possibly be a breaking change for some users as it updates less frequently. (@Swamp-Ig – #23832) (sun docs)
  • Doorbird -_Refactored_- This change cleans up the code for the component quite a bit. Schedule manipulation has been removed and HTTP views have been consolidated. The configuration changes should result in an overall easier experience for setting up a Doorbird in HA and allow for new Doorbird events to be utilized without having to update the component as often. No changes for switches or camera integrations of this component. (@oblogic7 – #23892) (doorbird docs)Example configuration:
  • Plex
    • Configuration option include_non_clients has been removed. The component was unnecessarily complicated with separate update methods for Plex devices and Plex sessions. This change always updates all known Plex clients regardless of type. The previous design also had issues where the Plex sessions are never polled if there are no Plex clients connected at startup and only ‘session’ client types connect after that point. This leads to a failure to discover new devices. This is a breaking change if the config option include_non_clients is being used since it has been removed. (@jjlawren – #24038) (plex docs)
    • Configuration options use_custom_entity_ids and entity_namespace have been removed. This change will prepend the display name (and therefore the default entity_id) of each newly created entity with ‘Plex’ for easy identification. Users may customize each display name and entity_id as desired via the Entity Registry. Entities created before this PR will not be affected as the unique_id remains the same. (@jjlawren – #24072) (plex docs)
  • Verisure – Base entity_id of alarm_control_panel on alias of installation set by giid rather than first installation. This is a breaking change as it will change entity_id of alarm_control_panel in cases where a user is configuring an installation using giid that is not the first installation. (@tkjacobsen – #23606) (verisure docs)
  • Zestimate – Changed name property to return Zestimate and the property address. This will make it easier to distinguish multiple Zestimate sensor entities in the UI and is a breaking change as it will change entity_id of Zestimate sensors. If you have automations relying on your Zestimate sensor(s) you may need to revisit them to fix the ID’s to the new ones. Also, you may need to update your Zestimate sensor(s) in your Lovelace UI. (@dreed47 – #23770) (zestimate docs)
  • Python – Deprecation – Python 3.5.3 support will be removed in the first release after August 1, 2019. This release will print a warning if a soon to be unsupported Python version is used. A notification will be present if Home Assistant is run under 3.6.0. (@balloob – #24177)
  • Async – Developers only – hass.components.frontend.async_register_built_in_panel is no longer an async function. This allows removing panels form the frontend on the fly, and fires and event when panels are added/removed so the frontend knows when to reload. (@balloob – #24184)
  • TP-Link – Distress Signal – Add a deprecation warning for tplink device_tracker (@rytilahti – #24236) (tplink docs)

Beta Fixes

All changes