![](upload://n3UKPNNKZublYARg0yIdrMWKqem.png)
It’s time for Home Assistant 0.97! It has been a very busy release cycle as we have been fine-tuning our development process, which makes it easier to maintain and contribute to Home Assistant in the future.
Python 3.5 support has been dropped
As per previous announcements, this is the first release that requires at least Python 3.6. If you are on Hassbian and are planning to upgrade Python, please take note of the known issues with the default wheel server.
Docker
This is the last release that bases our Home Assistant Docker image (homeassistant/home-assistant
) on Debian. As decided in Architecture Decision Record 0006: Docker Images, the image will be based on Alpine Linux starting with the 0.98 release. These new Docker images will be running same the Home Assistant Docker image that powers Hass.io. You don’t need to change anything unless you have installed Debian packages manually or made any other changes to the running container. However, if that is the case, you’ll need to find the Alpine equivalent of whatever you were doing.
The main driver behind this change is that by re-using images, maintenance becomes easier, and users of the homeassistant/home-assistant
image can benefit from the many optimizations that went into the Hass.io images.
Reload scenes from configuration.yaml
Thanks to @balloob it is now possible to reload scenes from configuration.yaml
without restarting Home Assistant. This is part of an effort for Home Assistant 1.0 to make scenes a first-class citizen of Home Assistant, including creating/restoring scenes on the fly in the future. To track this effort, follow this page.
Home Assistant Cast
In case you missed the announcement, we released Home Assistant Cast yesterday. It allows you to transform any Cast interface into a display for Home Assistant. Read the announcement for more information..
![](upload://cBjdDPbdNRA13PklwE70CtPk0Vs.png)
Home Assistant Cast opens a whole new world of possibilities for using Lovelace, and we are really excited to learn what cool things you will do with it! If you created something, feel free to share it on social media using the #homeassistantcast
hash-tag. We are looking forward to your pictures!
UI changes
This release contains a couple of notable UI changes:
- New Cast row available in the Lovelace entities card to start Home Assistant Cast.
- Improved accessibility for visually impaired users. This is an ongoing effort on making the frontend accessible.
- Split out
configuration.yaml
actions from the core configuration into a new server control config panel. Thanks @IcyPalm - Markdown card now has a size + 1, if it has a header defined. Some layouts might be moved around due to this.
In other news
Frenck wrote an excellent blog post on how to make a $2 smart doorbell using Home Assistant and ESPHome, which doesn’t require soldering.
Aaron created a great and detailed tutorial explaining how to add an interactive 3D floorplan to Home Assistant.
We wrote about how we use Azure DevOps to automate the development of Home Assistant. Interested to see how Home Assistant is automatically build? Check the developer blog.
@jimz011 has updated his amazing, HomeKit inspired, Lovelace config and shared it on the forums. Sneak preview on how it looks:
New Integrations
If you need help…
…don’t hesitate to use our very active forums or join us for a little chat.
Reporting Issues
Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.
Breaking Changes
-
Python - Bump Python support to min Python 3.6.0 (@balloob - #25582)
-
Z-Wave - Improve handling of Z-Wave config entry vs yaml config. If a Z-Wave
network_key
is specified in configuration.yaml it will override anetwork_key
specified in the Z-Wave config entry. (@cgarwood - #25112) (zwave docs) -
Unifi - Unifi Device tracker is now part of config entry. After initial import the unifi device tracker configuration is no longer needed. If configuring SSID filter or detection time you will need to use the new configuration from UniFi. See UniFi component documentation for details. (@Kane610 - #24367) (unifi docs)
-
Ecobee - Ecobee presets now represent the different Ecobee comfort settings. Selectable by name instead of unknown ID. (@balloob - PR link todo)
-
Calendar - Rewrite calendar component - The calendar integration has been rewritten to follow our current standards and is mostly non breaking. The reset (clean up) of state attributes upon an event time passing has been removed, though. Attributes are no longer set to an arbitrary default value, and will now keep the attributes representing the last event. With this change, automations that rely on state attributes getting reset will need to be updated. All platforms have been converted. - (@MartinHjelmare - #24950) (caldav docs) (calendar docs) (demo docs) (google docs) (todoist docs)
-
SyncThru - The monitored_conditions configuration option has been removed. All available monitored conditions will be used by default. Users that have been using the monitored_conditions option need to remove it from the syncthru section in configuration.yaml. (@nielstron - #25052) (syncthru docs)
-
KNX - Updates the knx component to use xknx 0.11.1 . This introduces several new features and bugfixes. For a complete list see: https://github.com/XKNX/xknx/releases/tag/0.11.0 (@farmio - #24738) (knx docs)
-
scene:
scene_number
is now 1 indexed according to KNX standards. Previously it was 0 based. Please add 1 to your already configured scene numbers (scene_number: 5
becomesscene_number: 6
). -
sensor:
state_address
replacesaddress
in configuration -
binary_sensor:
state_address
replaceaddress
in configuration when using xknx config file (knx: config_file = ...
): Replacegroup_address
in BinarySensor and Sensor withgroup_address_state
.
-
-
RitAssist - The company has been renamed from RitAssist to FleetGO, so this component needed to get renamed. Users of this integration will need to update their device_tracker config section to use the new name. (@depl0y - #25093) (fleetgo docs) (ritassist docs)
-
N26 - Adds support for multiple N26 accounts. The generation of unique ids for spaces has been changed. Users may need to remove the stale old id entities, representing spaces, from the entity registry. (@gorynychzmey - #25086) (n26 docs)
-
Environment Canada - This change removes the
monitored_conditions
andname
options and adds an optionallanguage
option. Sensors are now created for all provided data. (@michaeldavie - #24884) (environment_canada docs)sensor: - platform: environment_canada language: french
-
TotalConnect - Total Connect Client was upgraded to support more than one alarm panel and allow future support for additional sensors. Previous
alarm_control_panel
entries must be removed, and a new totalconnect entry must be added to configuration.yaml. See https://www.home-assistant.io/components/totalconnect/ for configuration details. (@austinmroczek - #24427) (totalconnect docs) -
Nuki - The
lock.nuki_unlatch
service has been removed. It has been replaced by thelock.open
service. Thelock.nuki_lock_n_go
service has been renamed tonuki.lock_n_go
. Users that are using the removed or renamed services in automations need to replace them with the new services. (@franfos - #22888) (nuki docs) -
Snapcast - This changes adds multiroom support for the snapcast component. It adds 2 services
media_player.snapcast_join
andmedia_player.snapcast_unjoin
to group/ungroup a client with another client. Also added source selection support in the snapcast clients as the groups are unusable due to their dynamic nature. (@lyghtnox - #24061) (snapcast docs) -
Ambient Weather Station - The
unique_id
for Ambient sensors uses a new formula, meaning that even though they have the same friendly names, new sensors will be created. The integration will automatically perform this migration under the hood, but if you’ve altered the entity IDs of any Ambient PWS entities, you’ll need do the same to the new entities upon creation. Additionally, themonitored_keys
configuration option is no longer supported inconfiguration.yaml
. The integration will now create sensors for all conditions supported by the particular device. (@bachya - #25284) (ambient_station docs) -
Google Maps - Google Passwords are no longer required to be provided in your config. An external program is now required to obtain the necessary cookie file to place in your Home Assistant config directory. This is due to the authentication process being removed from the underlying package. Existing users should remove the
password:
entry from their config file (username is still required). The cookie file previously generated should still be valid and will allow the tracker to continue functioning normally until the cookie is invalidated. New users will need to follow the instructions on the Google Maps Location Sharing page to create their cookie file.(@shbatm - #25316) (google_maps docs) -
BuienRadar - Updates to the new version of python-buienrader (1.0.1); this version now leverages the new json buienradar-api. (@mjj4791 - #24463) (buienradar docs)
The following sensor types (monitored_conditions) are no longer supported, since they are no longer provided by the json api of buienradar:
The following monitored conditions will change units:
- windgust (now km/h, was m/s)
- windspeed (now km/h, was m/s)
- windspeed_?d (now km/h, was m/s)
- visibility (now km, was m)
-
Rejseplanen - Improve and align Rejseplanen with other transport components. (@DarkFox - #25375) (rejseplanen docs)
- All attributes changed to snake_case.
- Later departure attribute has been removed.
- Added next_departures which contains a list of all later departures returned from the search, as dictionaries with the same fields as the next departure.
Any existing templates using the sensor’s attributes will need to be updated as follows:
- Stop ID -> stop_id
- Stop -> stop
- Route -> route
- Type -> type
- Direction -> direction
- Due in -> due_in
- Due at -> due_at
Beta Fixes
All changes
This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2019/08/07/release-97/