Happy July, which means Home Assistant Core 2021.7!
An interesting release, with a bunch of little goodies to make things easier in
creating automations, scripts and doing templating. Those are things that in
general, make me very happy. Mainly because, well, I use Home Assistant to
automate 😁
Also, we are saying “hi!” 👋 to a new type of entity, which is really exciting
and I can’t wait to see how that is being put to use in the future.
Lastly, I want to give a shout-out to @klaasnicolaas! He has been an intern
with Nabu Casa for the last months. Besides doing the community highlights, he
has been working on some awesome stuff that will land in upcoming Home Assistant
releases.
His internship is now over, and he passed with a nice grade. Yet, he could not
leave without a little present as it seems. He contributed the
Forecast.Solar integration, bringing in energy production
forecasting for your solar panels. Really cool!
Alright, that’s it! Enjoy the release!
../Frenck
- New entity: Select
- Trigger conditions and trigger IDs
- Script debugging
- Referencing other entities in triggers and conditions
- Working with dates in templates
- Series version tags for Docker containers
- Other noteworthy changes
- New Integrations
- New Platforms
- Integrations now available to set up from the UI
- Release 2021.7.1 – July 8
- Release 2021.7.2 – July 12
- Release 2021.7.3 – July 16
- Release 2021.7.4 – July 21
- If you need help…
- Breaking Changes
- All changes
New entity: Select
In this release, we welcome the select
entity to the Home Assistant family. The
select entity is a close relative of the dropdown helper (also known as
input_select
).
The difference is that while the input select is configured and managed by you,
the select entities are provided by integrations.
This means integrations can now provide entities that give a choice.
Either in the Lovelace UI, but also via automations using services,
and via the Google Assistant.
Screenshot of a select entity, providing a choice from a list of options.
Some integrations started implementing the first select entities as of this
release. MQTT & KNX made it available for use, WLED uses it to provide
controls on selecting and activating a user preset, and with Rituals Perfume
Genie you can now change the room size for your diffuser.
Trigger conditions and trigger IDs
If you are creating some complex automations in YAML, you might be familiar with
this. Consider a big automation, with a whole bunch of triggers. But how
would you know which of those triggers actually triggered the automation?
You can now assign an id
to your triggers that is passed into automation when
triggered, allowing you to make decisions on it.
automation:
- alias: "Trigger IDs!"
trigger:
- platform: state
id: "normal"
entity_id: binary_sensor.gate
state: "on"
- platform: state
id: "forgotten"
entity_id: binary_sensor.gate
state: "on"
for:
minutes: 10
...
The above example triggers the same automation twice, when the gate opens
and when the gate is left open for 10 minutes (probably forgotten). Each
trigger has its own ID.
Now introducing the new trigger condition! So you can add a condition on which
trigger fired the automation.
automation:
- alias: "Trigger IDs!"
...
action:
...
- condition: trigger
id: "forgotten"
- service: notify.frenck_iphone
data:
message: "Someone left the gate open..."
You can use the trigger condition in all places where all the other conditions
work as well, including things like
choose from a group of actions.
Rather use the UI to create and manage your automations? No problem! These new
features have been added to the automation editor as well!
Screenshot of using a trigger condition in the automation editor.
Script debugging
In Home Assistant Core 2021.4,
we added the ability to debug automations. In this release, we’ve made these
same powerful tools available for scripts!
So, this helps for the next time you are wondering: Why didn’t that script work?
Or why did it behave as it did? What the script is going on here?
Screenshot of using the new script debugger on my office announce script.
The above screenshot shows a previous run of a script, using an interactive
graph for each step in this script; with the path it took highlighted.
Each node in the graph can be clicked to view the details of what happened
on each step in the script sequence.
Referencing other entities in triggers and conditions
A small, but possibly helpful, change to our script and automations.
You can now reference other entities for the above/below values of numeric
state triggers and conditions. Both sensors and number entities can be used.
For example, you can now trigger an automation if the outside temperature
is higher than the temperature inside.
automation:
- alias: "Notify to close the window"
trigger:
- platform: numeric_state
entity_id: sensor.outside_temperature
above: sensor.inside_temperature
action:
- service: notify.frenck_iphone
data:
message: "Close all windows, it is warm outside!"
The numeric state conditions supports the same.
Additionally, the time conditions now support a similar thing using other
sensors that provide a time in the before and after options. Time triggers
added support for that already in a previous release.
Working with dates in templates
If you ever tried to work with dates in templates, you probably know that that
is hard. And honestly, that will never go away, times, dates and timezones are
complex little beasts.
However, we realized that the hardest part of using date & times with templates
is converting the state of a sensor or text to a datetime. This
release adds a small template method to help with that: as_datetime
.
It can be used as a filter or as a method. Here is an example of
calculating the number of days until my drivers’ license expires:
{{ (states('sensor.drivers_license') | as_datetime - now()).days }} days
Series version tags for Docker containers
If you are using the Home Assistant Container installation method,
we recommend using a specific version tag; however, that means
you need to update the version tag each time we release a new patch version
of Home Assistant.
Thanks to @kmdm, as of this release, we also provide a series version tag
that always points to the latest patch version of that release, in addition
to all existing tags we already provide.
docker pull ghcr.io/home-assistant/home-assistant:2021.7
The 2021.7
, will contain the latest July release, even if that is
actually version 2021.7.2
.
Other noteworthy changes
There is much more juice in this release; here are some of the other
noteworthy changes this release:
- Z-Wave JS got quite a few updates this release:
- A new
zwave_js.multicast_set_value
is available, allowing to issue
a set value command via multicast. Thanks, @raman325! - Each node now has a status sensor available and can be pinged using the
newzwave_js.ping
service. Added by @raman325. - The Z-Wave JS configuration panel now has a “Heal Network” button,
thanks @cgarwood! - Z-Wave JS Server connection can now be re-configured from the Z-Wave JS
configuration panel, added by @MartinHjelmare. - Z-Wave JS logs can now be downloaded, thanks @raman325!
- A new
- The Google Assistant integration now has support for fan speed percentages and
preset modes. Thanks, @jbouwh! - @jbouwh didn’t stop there and added fan preset mode support to Alexa too!
- The Philips TV integration now supports Ambilights, added by @elupus.
- Yamaha MusicCast integration now supports grouping services, thanks @micha91!
- @raman325 added a whole bunch of sensors to the ClimaCell integration!
- WLED now supports local push. Updates are now instantly both ways. Also,
the master light can be kept and added support for controlling user presets. - Setting up Xiaomi devices has gotten way easier! There is no need to do
difficult things to get the tokens. Instead, Home Assistant can now extract
the tokens from a Xiaomi Cloud account. Thanks, @starkillerOG! - More Xiaomi updates, @jbouwh added support for fan percentage-based speeds
and preset modes. - @RenierM26 added a lot of new services to the Ezviz integration, thanks!
- Tibber had quite a few improvements and now provides a power factor sensor,
added by @Danielhiversen! - Google Translate TTS now supports the Bulgarian language,
thanks @hristo-atanasov! - If you have a SmartTube, you can now reset your reminders, thanks @mdz!
- KNX had quite a lot of updates and added support for XY-color lights,
thanks @farmio. - @OttoWinter added support for presets, custom presets and custom fan modes
for climate controls in ESPHome. Awesome! - Nuki now has a service to enable/disable continuous mode, thanks @anaisbetts!
- @cgomesu added quantiles to Statistics integration, thanks!
- The Home Assistant login page now better support password manager,
thanks, @rianadon!
New Integrations
We welcome the following new integrations this release:
- Ambee, added by @frenck
- Forecast.Solar, added by @klaasnicolaas
- Freedompro, added by @stefano055415
- Modern Forms, added by @wonderslug
- Select, added by @frenck
New Platforms
The following integration got support for a new platform:
- AVM FRITZ!Box Tools now has switches available, added by @chemelli74
- Bosch SHC has now several sensors for their devices, added by @tschamm
- Groups now support creating Media Player groups, added by @definitio
- Hyperion can now provide a camera feed with the live image, added by @dermotduffy
- KNX added support for number and the new select entities, added by @farmio
- Meteoclimatic now provides sensors with weather information, added by @adrianmo
- MQTT got support for the new select entities, added by @emontnemery
- Rituals Perfume Genie added a number and select entity to adjust your diffuser, added by @milanmeu
- SIA Alarm Systems now provides various binary sensors, added by @eavanvalkenburg
- Sony Bravia TV now offers a remote entity, added by @Drafteed
- Switcher now provides sensors, added by @thecode
- WLED now exposes color palettes and presets using select entities, added by @frenck
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
- Coinbase, done by @TomBrien
- DSMR Slimme Meter, done by @RobBie1221
- Yamaha MusicCast, done by @vigonotion
Release 2021.7.1 – July 8
- Fix service registration typo in Nuki integration (@anaisbetts – #52631) (nuki docs)
- Fix Fritz default consider home value (@chemelli74 – #52648) (fritz docs)
- Handle KeyError when accessing device information (@ludeeus – #52650) (ecovacs docs)
- Warn if
interface_addr
remains in Sonos configuration (@jjlawren – #52652) (sonos docs) - Ignore unused keys from Sonos device properties callback (@jjlawren – #52660) (sonos docs)
- Ensure Forecast.Solar returns an iso formatted timestamp (@frenck – #52669) (forecast_solar docs)
- Use iso-formatted times in MetOffice weather forecast (@avee87 – #52672) (metoffice docs)
- Fix precipitation calculation for hourly forecast (@agners – #52676) (openweathermap docs)
- Move recorder.py import to runtime (@uvjustin – #52682) (stream docs)
- Bump simplisafe-python to 11.0.1 (@bachya – #52684) (simplisafe docs)
- pyWeMo version bump (0.6.5) (@esev – #52701) (wemo docs)
- Bump pylutron to 0.2.8 fixing python 3.9 incompatibility (@JonGilmore – #52702) (lutron docs)
- Add check for _client existence in modbus (@janiversen – #52719) (modbus docs)
- Fix KNX Fan features (@Tommatheussen – #52732) (fan docs)
- Esphome fix camera image (@jesserockz – #52738) (esphome docs)
Release 2021.7.2 – July 12
- Ignore Sonos Boost devices during discovery (@jjlawren – #52845) (sonos docs)
- Add zeroconf discovery to Sonos (@bdraco – #52655) (sonos docs)
- Remove scale calculation for climacell cloud cover (@apaperclip – #52752) (climacell docs)
- Fix homebridge devices becoming unavailable frequently (@Jc2k – #52753) (homekit_controller docs)
- Fix nexia thermostats humidify without dehumidify support (@bdraco – #52758) (nexia docs)
- Support certain homekit devices that emit invalid JSON (@Jc2k – #52759) (homekit_controller docs)
- Send ssdp requests to ipv4 broadcast as well (@bdraco – #52760) (ssdp docs)
- Bump dependency to properly handle current and voltage not being reported on some zhapower endpoints (@Kane610 – #52764) (deconz docs)
- Upgrade pymazda to 0.2.0 (@bdr99 – #52775)
- Fix ESPHome Camera not merging image packets (@OttoWinter – #52783) (esphome docs)
- Fix Neato parameter for token refresh (@chemelli74 – #52785) (neato docs)
- Add the Trane brand to nexia (@bdraco – #52805) (nexia docs)
- Bump python-fireservicerota to 0.0.42 (@cyberjunky – #52807) (fireservicerota docs)
- Bump up ZHA depdencies (@Adminiuga – #52818) (zha docs)
- Update arcam lib to 0.7.0 (@elupus – #52829) (arcam_fmj docs)
- Bump aiohomekit to 0.5.1 to solve performance regression (@bdraco – #52878) (homekit_controller docs)
- Bump pyhaversion to 21.7.0 (@ludeeus – #52880) (version docs)
- Prefer using xy over hs when supported by light (@Kane610 – #52883) (deconz docs)
- Bump zwave-js-server-python to 0.27.1 (@raman325 – #52885) (zwave_js docs)
- Surepetcare, fix set_lock_state (@Danielhiversen – #52912) (surepetcare docs)
- Bump pyinsteon to 1.0.11 (@teharris1 – #52927) (insteon docs)
- Fix recorder purge with sqlite3 < 3.32.0 (@bdraco – #52929)
- Bump pysonos to 0.0.52 (@jjlawren – #52934) (sonos docs)
Release 2021.7.3 – July 16
- Update ZHA to support zigpy 0.34.0 device initialization (@puddly – #52610) (zha docs)
- copy() –> deepcopy(). (@janiversen – #52794) (modbus docs)
- only allow one active call in each platform. (@janiversen – #52823) (modbus docs)
- Bump pyatv to 0.8.1 (@doug-hoffman – #52849) (apple_tv docs)
- Handle dhcp packets without a hostname (@bdraco – #52882) (dhcp docs)
- Add OUIs for legacy samsungtv (@bdraco – #52928) (samsungtv docs)
- Bump python-fireservicerota to 0.0.43 (@cyberjunky – #52966) (fireservicerota docs)
- More graceful exception handling in Plex library sensors (@jjlawren – #52969) (plex docs)
- Fix issue connecting to Insteon Hub v2 (@teharris1 – #52970) (insteon docs)
- Bump pysma to 0.6.4 (@rklomp – #52973) (sma docs)
- Update pyrainbird to 0.4.3 (@peternijssen – #52990) (rainbird docs)
- Bump pypck to 0.7.10 (@alengwenus – #53013) (lcn docs)
- fix for timestamp not present in SIA (@eavanvalkenburg – #53015) (sia docs)
- Co2signal, set SCAN_INTERVAL (@Danielhiversen – #53023) (co2signal docs)
- Another SIA fix for timestamp not present. (@eavanvalkenburg – #53045)
- Fix knx expose feature not correctly falling back to default value (@da-anda – #53046) (knx docs)
- Expose Spotify as a service (@balloob – #53063)
- Increase polling interval to prevent reaching daily limit (@vlebourl – #53066) (home_plus_control docs)
- Add light white parameter to light/services.yaml (@emontnemery – #53075) (light docs)
Release 2021.7.4 – July 21
- Allow pymodbus to reconnect in running system (not startup) (@janiversen – #53020) (modbus docs)
- Fix groups reporting incorrect supported color modes (@Kane610 – #53088) (deconz docs)
- Handle all WeMo ensure_long_press_virtual_device exceptions (@esev – #53094) (wemo docs)
- Fix remote rpi gpio input type (@jgriff2 – #53108) (remote_rpi_gpio docs)
- More restrictive state updates of UniFi uptime sensor (@Kane610 – #53111) (unifi docs)
- Bump simplisafe-python to 11.0.2 (@bachya – #53121) (simplisafe docs)
- Bump nexia to 0.9.10 to fix asair login (@bdraco – #53122) (nexia docs)
- Bump surepy to 0.7.0 (@benleb – #53123) (surepetcare docs)
- Upgrade pysonos to 0.0.53 (@amelchio – #53137) (sonos docs)
- Correctly detect is not home (@balloob – #53279) (device_tracker docs)
- Upgrade to async-upnp-client==0.19.1 (@StevenLooman – #53288) (dlna_dmr docs) (ssdp docs) (upnp docs)
- Fix homekit locks not being created from when setup from the UI (@bdraco – #53301) (homekit docs)
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.