And another three weeks passed! Home Assistant Core 0.112!
At this point, I almost feel like “Making things easier” as the motto for our current development is replaced by: Making things faster! 🚀
The last couple of releases, tons of performance improvements where made, most notably the frontend starting sooner in the previous 0.111 release.
This release is no exception, bringing absolutely game-changing performance improvements to the logbook and history panels. Honestly, I avoided using the logbook in the past because of the slowness it had.
Personally, I feel like Home Assistant is growing up. Slowly things become more reliable, faster, easier to use, slick, more fine-grained? I might be biased a bit… What do you think? What is your favorite improvement that was made lately?
Enjoy the release!
../Frenck
Important upgrade notice!
Let’s start with an important notice for upgrading to Home Assistant Core 0.112.
This release has changes to the database format of Home Assistant. On upgrade, it will be migrated to the new format.
Depending on the size of your database and the performance of the hardware you run Home Assistant on, this migration process could add additional time to the first time starting after the upgrade. For most of us, this adds just a couple of minutes, but if you have an enormous database (for example, 30+ GiB), it might take an hour or maybe even two.
So, don’t panic if Home Assistant doesn’t come up immediately.
Logbook and History 🚀
The reason for the above-mentioned database change can be found in the Logbook & History. Thanks to @bdraco, who has been improving this part of Home Assistant the past weeks.
As a result of his effort, the History & Logbook are now lightning fast. ⚡️
Not a tiny bit faster, but a whole new experience compared to how it used to be. Fantastic work there @bdraco!
Logbook and History now have a date/time range picker
So, @bramkragten stepped on the Logbook & History train and made the logbook and history panels a lot more flexible.
You no longer have to choose between a fixed period to show, but can define the period you want to see data for yourself.
Select a start and end date and time window and it will show just that data.
Screenshot of the new date/time picker.
By default it no longer shows a full day of data, but just a couple of hours so it is even quicker to load. As most of the time, one would look at recent events anyways.
The user that made a change visible in the logbook
Talking about the logbook, you can now also see who made a change in the logbook! No more discussion about who changed the temperature!
Screenshot of the logbook showing who made the change.
Multiple entities and states in YAML automations
Are you writing your automations in YAML? You might appreciate this one:
A single condition rule can now test if multiple entities match the condition. Furthermore, states and zones now also accept a list in a condition. That helps testing if the entity matches any of the ones listed.
So this:
condition:
- platform: state
entity_id: light.kitchen
state: 'on'
- platform: state
entity_id: light.living_room
state: 'on'
- platform: state
entity_id: light.office
state: 'on'
Can now be shortened to this:
condition:
- platform: state
entity_id:
- light.kitchen
- light.living_room
- light.office
state: 'on'
An example that tests if the alarm is in any of the specified states:
condition:
- platform: state
entity_id: alarm_control_panel.home
state:
- armed_home
- armed_away
And this condition is now also passing when Frenck is at home or at work (fake, of course, since Frenck works from his home).
condition:
- platform: zone
entity_id: device_tracker.frenck
zone:
- zone.home
- zone.work
Or combine! The following condition would pass if both Frenck and Daphne are either at home or in the work zone.
condition:
platform: zone
entity_id:
- device_tracker.frenck
- device_tracker.daphne
zone:
- zone.home
- zone.work
Integration specific panels are now on the integrations page
Some integrations, like ZHA, Z-Wave and MQTT have their own panels or dev tools. For things like pairing devices or publishing MQTT messages.
These used to be on the configuration page or development tools, which was weird because the integration settings would be on the integrations page. ZHA also had a lot of device settings in its own panel, resulting in a lot of duplicate functionality spread across the Home Assistant interface.
These panels and tools are now moved to the integrations pages, directly within
the integration that provides those. You can find them on the card of the
integration at the Configure
button.
Screenshot of the MQTT configure button.
The device-specific settings are now available on the device page, so we now have 1 place to go for information and settings for devices.
Screenshot of a ZHA device.
In the process, we also cleaned some things ups, like adding a device in ZHA. If you change the name of the device while adding it, the entities and entity IDs are named accordingly.
New home for the logs and information pages
More moving this release, the logs and information pages used to be in the development tools panel, but they didn’t really belong there. They aren’t really tools for developing, they provide information on your set up.
We moved them to the configuration page where they are joined with server management and the general configuration.
Screenshot of the new home for logs & information.
Automatically disconnect if a tab has been hidden for 5 minutes
An improvement in the battery of your device and your data cap are going to like:
When the Home Assistant UI is not visible for longer than 5 minutes, it disconnects from your Home Assistant server. This means you no longer get data or camera streams and your device can optimize resource and power consumption.
Of course, when showing the browser (or browser tab) again, it will automatically reconnect.
We now show all automation/scenes/scripts
Automations, scenes and scripts in the configuration panel are no longer hidden
when they have the hidden
attribute. This was erroneously added in the past
and has now been undone.
Talking about the old hidden
attributes. They have been slowly deprecated
over time, as they originate from the previous Home Assistant UI. As of this
release, this attribute has been completely removed from the system.
Other noteworthy changes
- @balloob has shaved of a couple of seconds from the Home Assistant startup again.
- Entities that originate from MQTT will now become “unavailable” when the integration is not connected to the MQTT broker. Thanks @elupus!
- If you have a Xiaomi vacuum cleaner, @jthure added a service to send it to specific places using a new goto service.
- The Smappee integration has been fully rewritten, by @bsmappee themselves!
- Auto discovery has been added to the NUT integration. Please note that some NAS devices might be discovered as they support adding an external battery.
New Integrations
New Platforms
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
- Arcam, done by @elupus
- Avri, done by @timvancann
- Awair, done by @ahayworth
- DenonAVR, done by @starkillerOG
- MetOffice, done by @MrHarcombe
- Plum Lightpad, done by @prystupa
- Smappee, done by @bsmappee
- SMS notifications via GSM-modem, done by @ocalvo
- Speedtest.net, done by @engrbm87
- Squeezebox, done by @rajlaud
- Tile, done by @bachya
- Xiaomi Aqara, done by @starkillerOG
If you need help…
…don’t hesitate to use our very active forums or join us for a little chat.
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
-
Tile
This is now available for configuration via the integrations UI. The entity IDs have changed to reflect the human-friendly name of the Tile (as defined in the Tile mobile app). Please update your automations accordingly.
-
Panel_Custom
Specifying custom panels based on HTML imports is deprecated and will be removed in a future version.
(@balloob - #36464) (panel_custom docs)
-
Avri
Avri is now available for configration via the integrations UI. Remove the integration from
configuration.yaml
and re-add it in the UI.(@timvancann - #34288) (avri docs)
-
Arcam
This is now available for configuration via the integrations UI. Remove the integration from
configuration.yaml
and re-add it in the UI. To support theturn_on
action, you will need to setup an automation based on an exposed event from the integration. This can be accomplished via device actions.(@elupus - #34384) (arcam_fmj docs)
-
Android TV
Usage of the states ‘idle’ and ‘standby’ are switched for the Android TV integration to be consistent with other media players. User-provided custom state detection rules are not affected.
(@JeffLIrion - #36509) (androidtv docs)
-
Xiaomi Miio
Due to general code updates to the xiaomi_miio vacuum component there are breaking changes to the following services:
xiaomi_miio.vacuum_remote_control_start
xiaomi_miio.vacuum_remote_control_stop
xiaomi_miio.vacuum_remote_control_move
xiaomi_miio.vacuum_remote_control_move_step
xiaomi_miio.vacuum_clean_zone
These all now require that either
entity_id
orarea_id
is passed when calling the service. You need to update all usages (such as automations and scripts) of these services which do not already passentity_id
orarea_id
. For example, change the existing automation:automation: - alias: Test vacuum zone trigger: - event: start platform: homeassistant condition: [] action: - service: xiaomi_miio.vacuum_clean_zone data_template: repeats: '{{states('input_number.vacuum_passes')|int}}' zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
to:
automation: - alias: Test vacuum zone trigger: - event: start platform: homeassistant condition: [] action: - service: xiaomi_miio.vacuum_clean_zone data_template: entity_id: vacuum.xiaomi_vacuum repeats: '{{states('input_number.vacuum_passes')|int}}' zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
(@jthure - #35737) (xiaomi_miio docs)
-
Honeywell Total Connect Comfort
Remnants of EU integration for Honeywell thermostats have been removed. As the integration was already removed for EU, all consumers should already be US integrations. Existing configurations should remove
region:
lines from theirclimate:honeywell
configuration sections.(@jhenkens - #36456) (honeywell docs)
-
Broadlink
The timeout option has been removed from the command learning service because it does not work properly. The device has a fixed timeout of 30 secs, which cannot be changed.
To adapt to these changes, users need to remove
timeout: num_secs
from calls to thebroadlink.learn_command
service.(@felipediel - #36318) (broadlink docs)
-
Frontend
The
config
integration will always be loaded if you load the frontend integration. The configuration panel can no longer be disabled.(@balloob - #36587) (default_config docs) (frontend docs) (safe_mode docs)
-
Homematic IP Cloud
The HMIP-MOD-TM devices will get a new unique ID due to a merge of the implementation with new HMIP-MOD-HO. So check your dashboards, scripts, automation, … and use the newly created device/entity. The old device can be deleted under the device section in Home Assistant.
-
Speedtest.net
This integration is now configured through the UI. To successfully import from
configuration.yaml
please removemonitored_conditions
. Ifserver_id
is mentioned it will check against the list of servers before importing. -
ZHA
ZHA sensors corresponding to
AnalogInput
andMultistateInput
Zigbee clusters have been dropped. These are mostly seen in Aqara vibration/cube devices which are pretty much stateless, so remove entities and rely onzha_events
instead.(@Adminiuga - #36696) (zha docs)
-
Yeelight
It is no longer be possible to override
device_type
via model from the configuration, to force some supported features. For example, force ceiling light into generic light, etc. Now it will only be used for Yeelight lib, to get correct color temperature ranges. It still possible to pass declared model to the Yeelight library to get correct temperature ranges support.(@zewelor - #36658) (yeelight docs)
-
Viessmann ViCare
Removed existing attributes from the climate entity which are now available as separate sensors. If you were using one of the following attributes, you must migrate to the new sensors. The sensors are created automatically.
For all heating types:
supply_temperature
outside_temperature
circulationpump_active
For heating type
gas
:burner_modulation
boiler_temperature
For heating type:
heatpump
:
(@crazyfx1 - #34385) (vicare docs) (new-platform)
Previously the autobypass
configuration option only worked for home
and away
arming. It now works for night
arming also. Review the AlarmDecoder integration documentation to make sure the autobypass
option is configured to your preference.
(@ajschmidt8 - #36692) (alarmdecoder docs)
-
Met Office
This is now available for configuration via the integrations UI. You will need to ensure you keep a copy of the DataPoint API key handy to re-enable the integration in your server. The location being forecast is, by default, taken as the location of the server, so again if you were forecasting other locations you will need to have those GPS co-ordinates to hand, to re-enter them when configuring new integrations through the UI.
(@MrHarcombe - #34900) (metoffice docs)
-
Logbook
Changes have been made which improve db performance of state change events and reduce overall db size.
-
context_id
has been removed from the logbook api. -
Remove old/new state data from state change event data since it can now be found by a join of the states table. This change avoids duplicate storage of the state in the events table.
-
Remove support for the deprecated hidden attribute from logbook and history.
Examples showing how to find the old and new state have been provided in the States and Events documentation.
(@bdraco - #36796, #36883, #37039) (alexa docs) (automation docs) (homekit docs) (logbook docs) (recorder docs) (history docs) (script docs)
-
-
Recorder
This breaking change only applies to you if you query/work with the Home Assistant database manually.
entity_id
validation now default to on when converting states to native. To disable validation when converting states to native, passvalidate_entity_id=False
toto_native
or when usingexecute
withto_native=True
, passvalidate_entity_ids=False
Context ids are no longer duplicated in the
states
table. Join theevents
table onstate.event_id
toevents.event_id
to find the context_id instead.For more information about our database structure and how to query it, check out our Data Science Portal.
(@bdraco - #36938, #37036) (history docs) (plant docs) (recorder docs) (statistics docs)
-
Denon AVR Network Receivers
This is now available for configuration via the integrations UI. Please remove the previous Denon AVR platform from your
configuration.yaml
file. Denon and Marantz receivers are discovered automatically and show up under “Configuration”-> “Integrations”, from there, click on configure and go through the steps. All previous setting options are still available during this setup.If your receiver does not show up automatically, go to “Configuration”-> “Integrations”-> press the “+” icon -> search for “Denon AVR” and enter the setup.
(@starkillerOG - #35255) (denonavr docs)
-
Smapee
The Smappee integration has been completely renewed with API v3 to support all types of Smappee monitors (Energy, Solar, Pro, Plus, Genius, Connect, P1S1 module) and switches (Comfort plug, Switch). Existing old entities will still be available in this new integration, but their unique IDs will have changed. Users will need to remove the old remaining entries from the entity registry.
The
configuration.yaml
file now only requires theclient_id
andclient_secret
. The username and password will be asked on authentication when setting up the integration via the frontend. Please check the documentation for the details how to set up the integration.Example YAML configuration:
smappee: client_id: 1234 client_secret: 5678
(@bsmappee - #36445) (smappee docs)
-
Awair
The Awair integration is now configured from the UI, but YAML configuration will be automatically imported for you. The integration no longer supports listing specific devices to monitor, because the Awair API rate-limits now apply on a per-device basis, rather than per-account. If you do not wish for a device to show up in the UI, simply disable its entities from the integration page.
Additionally, the Awair integration no longer sets custom “device_class” attributes for non-standard sensors (such as the “Awair Score” sensor). This does not affect the operation of the sensors, but if you relied on these non-standard values in your configuration you may need to make adjustments.
(@ahayworth - #34394) (awair docs)
-
Hunter Hydrawise
Hydrawise made an API change that removed rain sensor status, changed the behavior of the automatic watering switches, and the way in which the watering schedule is reported. As a result, the following breaking changes were made.
- The rain sensor is no longer available.
- The
auto_watering
switch state now reportsoff
when the corresponding watering zone is actively watering. Ifauto_watering
is enabled the switch status will reportoff
when watering starts and will return toon
when watering stops in that zone. - The
next_cycle
sensor date & time state string is now reported in UTC ISO format, e.g.,2020-06-18T13:52:27+0000
. Suspended zones no longer reportnot_scheduled
.
(@ptcryan - #34448) (hydrawise docs)
-
Xiaomi Gateway (Aqara)
YAML configuration of the Xiaomi Aqara integration has been deprecated, please remove the
xiaomi_aqara
platform from yourconfiguration.yaml
file.Xiaomi Aqara Gateways are discovered automatically and show up under “Configuration”-> “Integrations”, from there click on configure and go through the steps. If your Xiaomi Aqara Gateway does not show up automatically, go to “Configuration”-> “Integrations”-> press the “+” icon -> search for “xiaomi_aqara” and enter the setup. If no key is provided during setup, only the binary_sensor and sensor platforms will be available. A key is required to activate the other platforms.
(@starkillerOG - #35595) (discovery docs) (xiaomi_aqara docs)
-
Withings
Withings “profiles” in YAML configuration is no longer supported and has been moved into UI-based configuration.
(@vangorra - #36864) (withings docs)
-
Toon
The Toon integration has been rewritten to support the new authentication methods from Eneco/Electrabel and Viesgo. After upgrading, go to the integrations panel, to re-authenticate the integration. Please note, that you might need to update your Toon App with a new redirect URL in the Toon Developer portal. Make sure to check the Toon integration documentation for information about the URL to use.
The
scan_interval
YAML configuration option has been deprecated. It is no longer used, as this integration is now push-based. If you have it configured, please remove it from your configuration.The “Holiday Mode” & “Toon Program” binary sensors have been replaced by a “Holiday Mode” and “Thermostat Program” switch, thus having new entities. You may need to adjust your automations if you used those in that.
Service
toon.update
has been removed, it is no longer needed as this is now a push-based integration. Please make sure you remove those from your automations. -
Translations
This breaking change applies to maintainers and users of custom integrations (
custom_components
) that have used the.translations
directory for translations, as previously warned that directory is no longer loaded.The new name for this directory is
translations
(without the.
prefix), for Home Assistant to be able to load your files from this directory, simply remove the.
from the name of it.If you publish your custom integration to GitHub, you should enable the
hassfest
action, this would have warned you about this change in the previous 3 releases. -
MQTT
-
The embedded MQTT broker, which has been marked as deprecated for the past year, has now been removed.
-
Remove MQTT broker
tls_version
parameter from your configuration and instead rely on auto negotiation.
(@emontnemery - #37032, #37033) (mqtt docs)
-
-
Squeezebox
This is now available for configuration via the integrations UI, and configuration of the Squeezebox integration through
configuration.yaml
is now deprecated. Please consider using the frontend to configure the Squeezebox integration instead. Servers will automatically be discovered by the “discovery” integration, or by this integration once it is loaded. If the user adds this integration from frontend, it will attempt to automatically discover the server as well.The Squeezebox integration will now handle individual players coming online or going offline while Home Assistant is running. Previously, the integration would only detect players that were present during startup.
(@rajlaud - #35669) (squeezebox docs)
-
Alexa
Alexa Flash Briefings users must now set a configuration option called
password
, like this:alexa: flash_briefings: password: YOUR_PASSWORD whoishome: - title: Who's at home? # ...
If you had configured a flash briefing with the name
password
before, you have to rename it. It is not required anymore to use the legacyapi_password
authentication to use Alexa Flash Briefings.You also have to change the endpoint in the Alexa Developer Console to include this password in your URL, like this:
https://YOUR_HOST/api/alexa/flash_briefings/BRIEFING_ID?password=YOUR_PASSWORD
.(@Tho85 - #36789) (alexa docs)
-
remote_rpi_gpio
A double inversion happening on the
remote_rpi_gpio
platform has been removed. This might inverse your switches behavior for this platform. -
Custom integrations/components
This is more a breaking change for developers of custom integration for Home Assistant.
Custom components depending on
helpers.entityfilter
for filtering may need an adjustment. Imports ofFILTER_SCHEMA
orBASE_FILTER_SCHEMA
will be fine but any components directly depending on theconvert_filter
method will need to ensure the dictionary they are passing in hasinclude_entity_globs
orexclude_entity_globs
fields specified.(@mdegat01 - #36913) (logbook docs) (recorder docs)
Farewell to the following
The integrations below have been removed:
- Lockitron (API platform is decommissioned) (@frenck - #37012)
- Fortigate (replaced by FortiOS integration) (@kifeo - #34586)
All changes
Click to see all changes!This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2020/07/01/release-112/