2023.7: Responding services
Home Assistant Core 2023.7! 🎉
The previous release was a big one, and this one is no different!
This release brings in a change to Home Assistant, which we consider to be one of the biggest game changers of the past years: Services can now respond with data! 🤯
It is such a fundamental change, which will allow for many new use cases and opens the gates for endless possibilities. I’m so excited about this one!
But that is not all; there is a lot more in store for you! Some of my favorites: The Bluetooth proxies are now lightning fast, copy ’n paste in dashboards, a new sentence trigger, and I love that a broken automation no longer disappears into thin air but now shows up in the UI marked as problematic.
All-in-all, a great release packed with many new features and a lot of quality-of-life improvements.
Enjoy the release!
../Frenck
- Services can now respond
- New entity dialog for Locks
- Sentence trigger
- Open assist action
- Image entities
- Energy dashboard: Self-sufficiency
- Copy ’n paste support in dashboards
- Select the timezone to use/display
- Iteration of the integrations dashboard
- Unavailable automations and scripts
- New script dialog
- Lightning fast Bluetooth proxies
- Matter updates
- Reducing the risk of running into backward-incompatible changes
- Other noteworthy changes
- New integrations
- Release 2023.7.1 - July 6
- Release 2023.7.2 - July 13
- Release 2023.7.3 - July 21
- Integrations now available to set up from the UI
- Need help? Join the community!
- Backward-incompatible changes
- Farewell to the following
- All changes
Don’t forget to join our release party live stream on YouTube
Services can now respond
Services can now respond with data! 🎉
Yes, you read that right! This advanced feature is a huge step forward for Home Assistant and will allow for a lot of new possibilities. It is one of the biggest fundamental changes to Home Assistant made in the past years.
Calling a service in an automation or script was a one-way communication to control your devices and services. For example, turn on a light, or make an announcement on your speakers.
So, what is the use of a service responding with data? Well, it could be used to ask for information from a device or service. For example, you could ask Home Assistant which events are on your calendar today and use the answer from that service call to create a notification or announcement.
In this release, we have included two brand-new services to play with service responses:
-
conversation.process
- This service allows you to ask Assist a command or question and get a response back. -
calendar.list_events
- This service enables you to ask Home Assistant for a list of events on your calendar.
If you combine those in an automation, in the morning, you could ask Home Assistant for today’s calendar events, add things like weather information, send it to ChatGPT using the conversation process, and ask it to summarize it and use that response to send a notification to your phone.
@allenporter
This is just one example, but the possibilities are endless! It is exciting to see what other creative use cases and new services with responses will be added in the future!
This feature is also added to scripts! So, you can make your scripts respond and use that response in your automations. This is a great way to make your scripts more dynamic and flexible.
A special thanks to @allenporter
New entity dialog for Locks
We are continuing to improve the entity dialogs. This time, we have reworked the entity dialog for locks. It looks great!
It looks similar to the entity dialog for the switch, but it has a few extra features like asking for an unlock code and has a beautiful animation when it is (un)locking.
Sentence trigger
Our Assist is getting more and more powerful! This time, we have added a new trigger to our automation editor that allows you to trigger an automation when a sentence is said to the default Assist conversation agent. 🤯
Creating an automation based on something that is said, has never been easier. In the above screenshot, just mentioning “what a mess” will send out the living room vacuum to start cleaning up the mess.
Open assist action
Another one for the Year of the Voice, a brand new action for use in dashboard cards, has been added: the Assist action!
With this action, you can directly open Assist from your dashboards using, for example, a button and even make Assist listen right away.
There are quite a few cases where this action can be useful. For example, if you have a tablet mounted on the wall, you can use this action to open Assist and start listening immediately using a single button touch.
Image entities
There is a brand new entity type in town: the image entity.
The image entity is very similar to the camera entity, but instead of providing a live stream, it provides a single image. For example, a QR code that provides the Wi-Fi credentials for your guest network, a weather map, an image of the last motion detected by your camera, or just the cute cat picture of the day!
While the camera entity provided similar functionality, we wanted to make an entity tailored for these specific use cases. An image entity is much more lightweight and efficient compared to the camera entity. Also, this keeps our camera entities focused on providing actual camera feeds.
Support for this brand new entity has been added to the AVM Fritz!Box Tools (for guest network access), and the MQTT and Template integrations if you want to build your own.
Energy dashboard: Self-sufficiency
The energy dashboard has a new gauge, added by @TillFleisch
This gauge tells you how self-sufficient your home is. The more you take from the grid, the more the value will decrease.
Increasing this value can be done by lowering your consumption from the grid, for example, by using the washing machine when the sun is shining and solar production is high or by creating automations that turn off devices when solar production is low. Another more drastic way is by adding more solar panels or battery storage.
Copy ’n paste support in dashboards
In the previous release, @karwosts
You can now cut, copy, and paste cards between your dashboards, views, and even inside other nested cards. This makes it a lot easier to reorganize your dashboards!
Just like with automations, select the card you want to cut or copy, and when adding a new card to your dashboard, you will see a new option to paste.
When reorganizing your dashboards that use a masonry layout, it is mandatory to understand the order of the cards across the different columns in your view. To make that easier we now show a positional number on the card when your dashboard is in edit mode.
Added bonus: Who needs drag ‘n drop when you’ve got click ’n …teleport? Just kidding, of course; however, teleporting already makes things a lot easier! Click on the positional number to enter a new position for the card.
Select the timezone to use/display
You can now select which timezone the Home Assistant interface should use in your user profile. Useful when traveling or when you, for example, manage an instance for a relative in a different time zone.
You can choose to use the timezone of your current location, or use the timezone that your Home Assistant server is in. The Home Assistant frontend will adjust all of the date & times to the selected timezone.
Iteration of the integrations dashboard
In the last release, we introduced new integrations dashboard & pages, which many of you really liked. Yet, there has been some feedback, and we have been working on improving it.
The main goal was to make it feel less busy, more familiar and consistent with all other UI you see in Home Assistant.
The cards shown are now more consistent with the rest of Home Assistant and the full integration name and logo is now clickable. The cog, device and service items have been removed, and the indicators for custom integrations and cloud services are no longer overlapping the logos.
Unavailable automations and scripts
Automations and scripts are awesome! They can add a lot of comfort to your home, making your home automation feel like magic. But they have a weird quirk: if you made an error in their configuration, they would just disappear from Home Assistant. 😞
This is no longer the case! 😀 If an automation or script has an error, it will now show up as unavailable, accompanied by a red confused automation robot.
Selecting such an automation will show you the details of the error message so you know what is going on and what to fix.
New script dialog
When you create a new automation, you’ll get a nice dialog where you can create a new one from scratch or use one of your imported blueprints as a starting point.
@karwosts
Being able to set up scripts from Blueprints is great, as combined with the brand new service response feature, these become a lot more powerful and a lot more useful for sharing!
You can find new script Blueprints for you to use in the Blueprint Exchange on our community forum.
Lightning fast Bluetooth proxies
A great way to extend the range of Bluetooth for your Home Assistant set up
is by using Bluetooth proxies
You can expect to see a 40-80% decrease in network traffic between Home Assistant and the proxy device. It now bundles and sends multiple Bluetooth advertisements in bulk, instead of sending them one by one.
Another large contributor to the speed increase is that the processing of the advertisements is now done in Home Assistant instead of on the proxy device. A win-win; it is faster this way and contributes to making the ESP device more stable and reliable.
For this to work, you need ESPHome 2023.6.0
Matter updates
Quite a few significant changes have been made to the Matter integration.
The biggest change can be found in the way subscriptions are handled. Especially on larger (Thread) networks, this will result in a much faster and more reliable experience. This also affects startup time, which is now blazing fast (from minutes to seconds).
Changes to connected Matter bridges are now instantly detected, so when adding a new device to a bridge (like, for example, a connected Aqara M2 hub) the device will show up immediately.
Last but most certainly not least: The Matter integration now supports climate devices! 🎉
A Nest Thermostat connected as a Matter climate device.
This means if you have a Nest Thermostat
Reducing the risk of running into backward-incompatible changes
Backward-incompatible changes, nobody loves them, but they are sometimes necessary to move forward. We try to keep them to an absolute minimum, but sometimes they are inevitable.
However, we do want to reduce the risk of running into them. Therefore we have
adopted a new policy for deprecating YAML integration configuration options
We now require that a YAML configuration option is deprecated for at least 6 months before being removed. This means you won’t be running into a hard-breaking change if you skip a release or two.
To improve this further, if possible, an automatic migration is now required and an issue in the repairs dashboard will be raised if the deprecation applies to your configuration.
Other noteworthy changes
There are many more improvements in this release; here are some of the other noteworthy changes this release:
- You can now use network storages that have guest access enabled, and support
for older Samba versions has been added. Thanks, @ludeeus
! - When accessing the UI of an add-on via the sidebar that hasn’t been
started yet, it will now ask if you want to start it. Nice,
@mdegat01
and @bramkragten ! - The HomeKit Controller integration has been renamed to HomeKit Device; this makes it clearer that the integration is to integrate HomeKit devices into Home Assistant.
-
ESPHome now has support for Alarm Control Panels! Thanks @grahambrown11
! -
@Petro31
added support for setting upper and lower limits on the compensation integration. Cool! -
Humidifiers now have an attribute for the current humidity, thanks @Shulyaka
! @jbouwh updated the Google Assistant integration to support this. Additionally, he added support to the Xiaomi Miio, HomeKit Device, Tuya and MQTT integrations. Awesome! -
@piitaya
updated all existing Humidifier cards to work with the above change, and adjusted them to be more in line with the existing climate cards. Nice! - The weather entity now supports more (forecast) attributes. It added support
for apparent temperature, dew point, cloud coverage, and wind gust speed;
Thanks, @gjohansson-ST
, @vingerha , and @bieniu ! - The Apple TV integration now supports launching apps with deep links!
Thanks @michalmo
! -
@dougiteixeira
adjusted the Derivative, Riemann sum integral, Threshold, and Utility Meter helper to add the helper to the source device. This makes them show up on the device page of the device the helper is using. Nice work! -
Sensirion BLE now supports the SHT4x and SHT3x sensors, thanks @akx
! - The MQTT integration now has support for water heaters,
thanks @hookedonunix
! -
@Lash-L
kept improving the Roborock integration and added cleaning area sensors and switches to control DnD mode. Thanks! - We have a new trigger that allows automations to trigger on the creation,
deletion, or update of persistent notifications! Thanks, @RoboMagus
! - You can now dismiss all persistent notifications at once using the new
dismiss all service added by @Petro31
!
New integrations
We welcome the following new integrations in this release:
-
Discovergy, added by @jpbede
Read out your Discovergy gas and electricity meters. -
Dremel 3D Printer, added by @tkdrob
Monitor your Dremel 3D printer and its printing progress. -
Renson, added by @jimmyd-be
Monitor your Renson ventilation system. -
Image, added by @emontnemery
A new entity type that is like a camera, but specifically for images. -
LOQED Touch Smart Lock, added by @cpolhout
and @mikewoudenberg
Control your LOQED smart lock.
Release 2023.7.1 - July 6
- Fix not including device_name in friendly name if it is None (@jbouwh
- #95485 ) - Handle integrations with empty services or failing to load during service description enumeration (@bdraco
- #95911 ) - Update frontend to 20230705.1 (@bramkragten
- #95913 ) (frontend docs) - Make SwitchBot no_devices_found message more helpful (@bdraco
- #95916 ) (switchbot docs) - Migrate bracketed IP addresses in ZHA config entry (@puddly
- #95917 ) (zha docs) - Use device name for Nuki (@joostlek
- #95941 ) (nuki docs) - Add explicit device naming for Tuya sensors (@joostlek
- #95944 ) (tuya docs) - Fix entity name for Flick Electric (@joostlek
- #95947 ) (flick_electric docs) - Fix matter exception NoneType in set_brightness for optional min/max level values (@neocolis
- #95949 ) (matter docs) - Fix grouping feature for MusicCast (@micha91
- #95958 ) (yamaha_musiccast docs) - Bump pyrainbird to 2.1.0 (@allenporter
- #95968 ) (rainbird docs) - Add missing qnap translation (@emontnemery
- #95969 ) (qnap docs) - Set correct
response
value in service description whenasync_set_service_schema
is used (@bramkragten- #95985 ) (script docs) - Explicitly use device name as entity name for Xiaomi fan and humidifier (@jpbede
- #95986 ) (xiaomi_miio docs) - Make script services always respond when asked (@bramkragten
- #95991 ) (script docs) - Fix state of slimproto players (@marcelveldt
- #96000 ) (slimproto docs)
Release 2023.7.2 - July 13
- Fix ESPHome deep sleep devices staying unavailable after unexpected disconnect (@bdraco
- #96354 ) (esphome docs) - Bump pydaikin 2.10.5 (@mover85
- #95656 ) (daikin docs) - Bump pywemo from 0.9.1 to 1.1.0 (@esev
- #95951 ) (wemo docs) - Get MyStrom device state before checking support (@joostlek
- #96004 ) (mystrom docs) - Refactor async_get_hass to rely on threading.local instead of a ContextVar (@jbouwh
- #96005 ) (mqtt docs) - Use explicit device naming for Switchbot (@joostlek
- #96011 ) (switchbot docs) - Remove openhome from discovery component (@bazwilliams
- #96021 ) (discovery docs) - UPB explicit device name (@joostlek
- #96042 ) (upb docs) - Use default MyStrom devicetype if not present (@joostlek
- #96070 ) (mystrom docs) - Fix implicit use of device name in Slimproto (@frenck
- #96081 ) (slimproto docs) - Fix implicit device name for RainMachine
update
entity (@bachya- #96094 ) (rainmachine docs) - Use explicit device name for Yalexs BLE (@joostlek
- #96105 ) (yalexs_ble docs) - Fix reference to translation reference in buienradar translations (@jbouwh
- #96119 ) (buienradar docs) - Bump goalzero to 0.2.2 (@tkdrob
- #96121 ) (goalzero docs) - Fix implicitly using device name in Yale Smart Living (@gjohansson-ST
- #96161 ) (yale_smart_alarm docs) - Bump bthome to 2.12.1 (@Ernst79
- #96166 ) (bthome docs) - Use explicit device name for Stookwijzer (@joostlek
- #96184 ) (stookwijzer docs) - Enable retries on rainbird devices by loading model and version (@allenporter
- #96190 ) (rainbird docs) - Fix race fetching ESPHome dashboard when there are no devices set up (@bdraco
- #96196 ) (esphome docs) - Bump Roborock to v0.30.0 (@Lash-L
- #96268 ) (roborock docs) - Use explicit device naming for Escea (@joostlek
- #96270 ) (escea docs) - Fix ZHA serialization issue with warning devices (@puddly
- #96275 ) (zha docs) - Bump reolink_aio to 0.7.3 (@starkillerOG
- #96284 ) (reolink docs) - Bump aiohomekit to 2.6.7 (@bdraco
- #96291 ) (homekit_controller docs) - Add has entity name to Blink (@joostlek
- #96322 ) (blink docs) - Fix extra verbiage in Ridwell rotating category sensor (@bachya
- #96345 ) (ridwell docs) - Update RestrictedPython to 6.1 (@frenck
- #96358 ) (python_script docs) - Add explicit device naming to Led BLE (@joostlek
- #96421 ) (led_ble docs) - Always add guest wifi qr code entity in AVM Fritz!Tools (@mib1185
- #96435 ) (fritz docs) - Fix mixed case service schema registration (@bdraco
- #96448 ) - Ensure ESPHome dashboard connection recovers if its down when core starts (@bdraco
- #96449 ) (esphome docs)
Release 2023.7.3 - July 21
- Use device class naming for SimpliSafe (@joostlek
- #96093 ) (simplisafe docs) - Always try PullPoint with ONVIF (@bdraco
- #96377 ) (onvif docs) - Bump vallox-websocket-api to 3.3.0 (@slovdahl
- #96493 ) (vallox docs) (dependency) - Fix Vallox fan entity naming (@slovdahl
- #96494 ) (vallox docs) - Bump devolo_plc_api to 1.3.2 (@Shutgun
- #96499 ) (devolo_home_network docs) (dependency) - Support MyStrom switch 120 (@joostlek
- #96535 ) (mystrom docs) - Defer SSDP UPNP server start until the started event (@bdraco
- #96555 ) (ssdp docs) - Handle empty strings for ESPHome UOMs (@bdraco
- #96556 ) (esphome docs) - Bump onvif-zeep-async to 3.1.12 (@bdraco
- #96560 ) (onvif docs) (dependency) - Fix daikin missing key after migration (@mover85
- #96575 ) (daikin docs) - Ensure androidtv_remote does not block startup of HA (@quthla
- #96582 ) (androidtv_remote docs) - Bump pyrainbird to 2.1.1 (@allenporter
- #96601 ) (rainbird docs) (dependency) - Bump pyrainbird to 3.0.0 (@allenporter
- #96610 ) (rainbird docs) (dependency) - Fix SmartThings Cover Set Position (for window shades) (@andrewsayre
- #96612 ) (smartthings docs) (dependency) - Improve imap error handling for config entry (@jbouwh
- #96724 ) (imap docs) - Use explicit device name for Stookalert (@joostlek
- #96755 ) (stookalert docs) - Prevent otbr creating multiple config entries (@emontnemery
- #96783 ) (otbr docs) - Fix check for HA Yellow radio in otbr config flow (@emontnemery
- #96789 ) (otbr docs) - Update PyYAML to 6.0.1 (@cdce8p
- #96800 ) (dependency) - Update pycocotools to 2.0.6 (@cdce8p
- #96831 ) (tensorflow docs) (dependency) - Add username to Reauth flow in Honeywell (@mkmer
- #96850 ) (honeywell docs) - bump python-Roborock to 0.30.1 (@Lash-L
- #96877 ) (roborock docs) (dependency) - Avoid infinite loop on corrupt stream recording (@uvjustin
- #96881 ) (stream docs) - Bump AIOSomecomfort to 0.0.15 in Honeywell (@mkmer
- #96904 ) (honeywell docs) (dependency) - Fix timer switch in Sensibo (@gjohansson-ST
- #96911 ) (sensibo docs) - Disable wheels building for pycocotools (@frenck
- #96937 ) - Fix esphome entity ids in test (@bdraco
- #96965 ) (esphome docs) - Add custom bypass night arming to SIA alarm codes (@etnoy
- #95736 ) (sia docs) - Upgrade pymazda to 0.3.10 (@bdr99
- #96954 ) (mazda docs) (dependency) - Fix OTBR tests on RC (@frenck
- #96966 ) (otbr docs) - Update aiohttp to 3.8.5 (@frenck
- #96945 ) (dependency) - Remove stateclass from Systemmonitor process sensor (@joostlek
- #96973 ) (systemmonitor docs) - Fix task leak on config entry unload/retry (@bdraco
- #96981 ) - Bump env_canada to v0.5.36 (@michaeldavie
- #96987 ) (environment_canada docs) - Update pyfibaro dependency (@rappenze
- #97004 ) (fibaro docs) (dependency)
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
myStrom, done by @pail23
-
Google Translate text-to-speech, done by @MartinHjelmare
-
Linn / Openhome, done by @bazwilliams
-
QNAP, done by @disforw
Need help? Join the community!
Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!
Our very active Discord chat server is an excellent place to be at, and don’t forget to join our amazing forums.
Found a bug or issue? Please report it in our issue tracker
Are you more into email? Sign-up for our Building the Open Home Newsletter to get the latest news about features, things happening in our community and other news about building an Open Home; straight into your inbox.
Backward-incompatible changes
Home Assistant Container (Docker)
If you use the Home Assistant Container installation method, for example, using Docker, please make sure you are using our official (multi-platform) images.
The correct and preferred image to use for our stable releases is:
ghcr.io/home-assistant/home-assistant:stable
Although not the preferred location by the Home Assistant project, the image is also available on DockerHub:
homeassistant/home-assistant:stable
The reason for mentioning this in this breaking change section is that we have seen usage of our internal, intermediate, platform build images. These images are not meant for use directly, and using the above listed images is strongly recommended.
As of this release, we no longer publish our intermediate platform images to DockerHub. This means that if you are using these images, you will no longer receive updates. Please use the above-listed images instead.
Bose SoundTouch
The previously deprecated YAML configuration of the Bose SoundTouch integration has been removed.
Bose SoundTouch is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.
Conversation
When using the Assist shortcut on iOS, it will now always talk to Home Assistant conversation agent even if the OpenAI or Google LLM conversation integrations are set up.
(@balloob
ESPHome
As an additional security hardening measure, the default for allowing ESPHome devices to make service calls has changed. If you want to permit the ESPHome device to make service calls, it must be enabled in the options flow.
- For existing devices, calling Home Assistant services continues to be allowed.
- For newly configured devices, it must now be enabled in the options flow.
(@bdraco
Home Assistant Supervisor
The default name given to backups created with the hassio.full_backup
and hassio.partial_backup
services is now longer ""
but the date and time
the backup was initiated (%Y-%m-%d %H:%M:%S
, for example,
“2023-07-05 13:37:42”).
(@ludeeus
Hyperion
The behavior of Hyperion lights has changed:
Turning off the light entity will only clear the priority you have configured during the integration setup. Other Home Assistant independent light sources in Hyperion might still be active and cause light to be emitted. If you want to turn the light off entirely, regardless of active light sources, you can enable the switch.[instance]_led_device
entity that acts as a global switch.
External effects that are unrelated to the Hyperion light source (such as USB capture) have been removed from the light entity. To control them, enable the respective disabled-by-default switch entity.
(@Sab44
MQTT
If the initial
temperature, min_temp
, or max_temp
is not set, the default
temperature will be converted to the set temperature_unit
or system default
temperature unit if this is not degrees Celsius.
(@jbouwh
The behavior of MQTT climate when power_command_topic
is set has been changed:
- The
hvac_mode
state attribute is no longer optimistically set ifpower_command_topic
is defined andclimate.turn_on
orclimate.turn_off
is called. - When
hvac_mode
is changed,payload_on
orpayload_off
messages will not be published on thepower_command_topic
.
This also means power_command_topic
is no longer deprecated.
(@jbouwh
MusicCast
The values for the source
attribute have changed. We wanted to show more user
friendly values for the source
attribute, such as “Net Radio” instead
of “net_radio”.
If you have any automation depending on the source
state attribute of the
media player entity, you will have to update these. Calling the select_source
service will still be possible using the old source names.
(@micha91
SMHI
The attribute cloudiness
has been replaced by the attribute cloud_coverage
.
Please update any automation or scripts that is using this attribute to use the
newly added cloud_coverage
attribute.
Slack
The previously deprecated YAML configuration of the Slack integration has been removed.
Slack is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.
Xbox
The previously deprecated YAML configuration of the Xbox integration has been removed.
Xbox is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.
Z-Wave
Fan speed percentage for Honeywell(JE/Jasco) 39358 and Enbrighten(GE/Jasco) 55258 in wall fan controllers are now mapped to levels (low, medium, high).
This may affect scripts or automatons setting fan speeds to specific percentages.
(@jgrieger1
If you are a custom integration developer and want to learn about breaking changes and new features available for your integration: Be sure to follow our developer blog. The following are the most notable for this release:
Farewell to the following
The following integrations are also no longer available as of this release:
-
SenseME has been removed. Big Ass Fans changed the protocol in a newer
firmware in April 2022. The Big Ass Fans integration can be used
as a replacement, after updating to the latest firmware.
(@bdraco
- #94363 )
All changes
Of course, there is a lot more in this release. You can find a list of all changes made here: Full changelog for Home Assistant Core 2023.7