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

Don’t forget to join our release party live stream on YouTube 5 July 2023, at 12:00 PDT / 21:00 CEST!

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.

Screenshot showing a response to a service call in the Home Assistant developers tools, listing waste pickup calendar events.

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 has put this all together for you in this Blueprint:

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, who has been responsible for building out the larger part of this feature!

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.

Screen recording demonstrating the new lock entity dialog.

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. 🤯

Screenshot of the new sentence trigger that can be used with automations.

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!

Screenshot showing the new Assist action available in dashboard cards.

With this action, you can directly open Assist from your dashboards using, for example, a button and even make Assist listen right away.

Screen recording of the new Assist action in use. Shows the normal action and the action that start listening immediately.

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!

Screenshot of a new image entity more information dialog, showing a QR code in the image.

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: Self-sufficiency.

This gauge tells you how self-sufficient your home is. The more you take from the grid, the more the value will decrease.

Screenshot showing the energy dashboard featuring the new self-sufficiency gauge.

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 added the amazing copy ’n paste feature to our automation and script editors. This release, he is back with the same feature for our dashboards!

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!

Screenshot showing the new cut and paste options available in the overflow menu of 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.

Screen recording demonstrating clicking the positional number, provides a way to move a card to a different position.

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.

Screenshot showing a new option in the user profile, that allows you to choose if you want Home Assistant to use the server or your current timezone.

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.

Screenshot showing the latest updates and tweaks made to the integrations dashboard, making it less busy.

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.

Screenshot showing the list of automations, with one broken automation in that list.

Selecting such an automation will show you the details of the error message so you know what is going on and what to fix.

Screenshot showing the automation editor displaying a broken automation, including the error message on what is wrong.

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 has now added the same dialog to our script editor! 🎉

Screenshot of the dialog shown when creating a new script, allowing you to select blueprints as well.

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. These Bluetooth proxies are now even faster! Like… really fast! 🚀

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 or later.

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 (not the E or learning ones) with the latest firmware, you can now use it directly with Home Assistant, entirely local without clouds!

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:

New integrations

We welcome the following new integrations in this release:

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

The following integrations are now available via the Home Assistant UI:

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, to get it fixed! Or, check our help page for guidance for more places you can go.

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.

(@pvizeli - #95236)

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.

(@gjohansson-ST - #94090) (documentation)

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 - #95225) (documentation)

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 - #95143) (documentation)

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 - #94468) (documentation)

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 - #80478) (documentation)

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 - #93965) (documentation)


The behavior of MQTT climate when power_command_topic is set has been changed:

  • The hvac_mode state attribute is no longer optimistically set if power_command_topic is defined and climate.turn_on or climate.turn_off is called.
  • When hvac_mode is changed, payload_on or payload_off messages will not be published on the power_command_topic.

This also means power_command_topic is no longer deprecated.

(@jbouwh - #94832) (documentation)

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 - #74954) (documentation)

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.

(@gjohansson-ST - #95096) (documentation)

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.

(@gjohansson-ST - #94106) (documentation)

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.

(@gjohansson-ST - #94094) (documentation)

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 - #92371) (documentation)

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