2023.8: Translated services, events, and wildcards!

Comments

Home Assistant Core 2023.8! 🎉

Another month, another fine release of Home Assistant! This release is a bit more conservative after two absolutely packed releases in June and July. Many of us are enjoying summer holidays 🏖️.

Pretty much all features in this release are absolutely amazing, and it is hard to pick a favorite. Great translation improvements that help with the user experience, a new entity to capture events from things like remotes, and the new Assist features are, again, mind-blowing!

Talking about Assist, have you seen the blog on Year of the Voice - Chapter 3? Or, check the live stream recording on YouTube, where the new features have been demonstrated.

Some new integrations have been added too. Most notably Opower! This integration can pull in energy usage data from many utility companies in the United States. For example, it supports PG&E, ComEd, BGE, and many more! ⚡️ Very good news for all our American friends!

Enjoy the release!

../Frenck

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

Translated services

All services in Home Assistant are now translatable! 🌎

Services are the actions you can call, like turning on a light. This was one of the bigger parts of Home Assistant that still was only available in English. Odd, as the Home Assistant interface can be used in 60+ languages!

In this release, translations for these services have been added to drastically improve the experience when English is not your primary language. For example, when you use the Dutch language (as used in the screenshot below), the service to turn on a light is now also translated into Dutch.

Screenshot showing the Home Assistant interface in the Dutch language, showcasing the translations for service calls.

A big step forward! Implementing this change has resulted in a substantial increase in the number of translations. They have doubled! 😅

Because of that, translating all services might take some time; however… You can help! You don’t have to be a developer to help with this; you can do this from the comfort of your browser. Check out our documentation on how to contribute translations.

Introducing the event entity

Events are signals that are emitted when something happens, for example, when someone presses a physical button like a doorbell or when a button on a remote control is pressed.

If you have ever tried to work with events in Home Assistant, you probably noticed that it was not the easiest thing to do. You need to know the event name, and then you need to know the data that is being sent with it. Before you know it, you’ll start fiddling with the developer tools to figure out what is going on.

To make this all easier, we are introducing a new entity type in this release: The event entity.

The event entity can capture these events in the physical world and makes them available in Home Assistant as an entity. Take for example, this Hue remote:

Screenshot showing the new event entities provided by a Philips Hue remote.

The beauty of the event entity is that they can be used like any other entity in Home Assistant: They will show up in the UI, can be used directly in the automations editor, and provide historical information in the logbook.

Besides Matter, the event entity is also supported by HomeKit Devices, MQTT, and Philips Hue. We expect to see more integrations supporting this new entity type soon.

Improving the first experience with Home Assistant

Onboarding is a user’s first experience with Home Assistant. The onboarding screens are the first you see, and steps you take when you access Home Assistant for the first time, setting up things like your account and language preferences. The goal is to ensure this process is seamless, which is why we’ve made improvements to the onboarding experience.

To achieve this, we have implemented a search field on the map during onboarding. Instead of endlessly dragging the pin on the map around, you can now easily search for your location.

Screenshot showing you can now enter your address to quickly find your location on the map.

This is powered by OpenStreetMap ❤️

Add items to your shopping list using Assist

What if you could ask Assist to add items to your Home Assistant shopping list? Well, now you can!

Add milk to my shopping list!

Screenshot showing asking assist to add milk to the shopping list.

In case you are wondering, the shopping list integration adds a handy page to your Home Assistant interface to which everyone in your household can add items. It is a great way to keep track of what you need to buy, and now you can add items to it with your voice using Assist!

Screenshot showing the shopping list integration in Home Assistant.

To be able to use this feature, you need to have the shopping list integration set up, which is as easy as clicking the My Home Assistant button below:

Generate an image with OpenAI’s DALL-E

In the last release, we added the ability for services to respond with data, and now we added a service that allows you to generate an image using OpenAI’s DALL-E.

All you need is to set up the OpenAI conversation agent integration on your instance, and you will get a new service: openai_conversation.generate_image.

Call this service describing the image you’d like the AI to generate, and it will respond with an image URL you can use in your automations.

Screenshot showing the new generate image service with DALL-E from OpenAI, asking to generate an image of an astronaut riding a unicorn.

You could, for example, use this to generate an image of a city that matches the weather conditions outside of your home, let the AI generate an image about the latest news headline to show on your dashboard, or maybe generate a fun image of someone putting out garbage on garbage day.

You could even combine it with the wildcard support for sentence triggers so you could ask Home Assistant to generate an image using your voice…

Wildcard support for sentence triggers

Sentence triggers now support wildcards! This means you can now partially match a sentence, and use the matched part in your actions. This is what powers the above shopping list feature too, and it can be used for many other things as well.

You could, for example, create a sentence trigger that matches when you say:

Play the white album by the Beatles

Using the wildcard support, you can get the album and artist name from the spoken sentence and use those in your actions. To trigger on the above example sentence, you would use the following command in your sentence trigger:

Screenshot showing an automation that uses a sentence trigger that has wildcards in it.

This will make the album and artist available as trigger variables that you can use in your actions; for example, to start playing the music requested.

These wildcards are interesting and open up a lot of possibilities! Read more about sentence triggers in our documentation.

JLo realized he could use these wildcards, combined with the new generate image service, to let Home Assistant generate an image and show it on his Chrome Cast-enabled device just by using his voice! 😎 You could ask it:

Show me a picture of an astronaut riding a unicorn!

He put this together in an automation blueprint, which you can use to do the same thing in your own Home Assistant instance:

Screenshot showing how the blueprint by JLo looks like in Home Assistant.

Provide the sentence you like to trigger on and the media player you want to show the image at, and you’re good to go! You can import his blueprint using the My Home Assistant button below:

Condition selector

A new selector is available for use in, for example, blueprints: The condition selector.

This selector takes and shows the condition part of the automation editor, and allows blueprint creators to use a user-provided condition in their blueprinted automations and scripts.

This blueprint allows one to set a custom condition using the new condition selector.

Other noteworthy changes

There are many more improvements in this release; here are some of the other noteworthy changes this release:

  • Tons of performance upgrades again this month (thanks @bdraco), these include a much faster ingress experience when visiting add-on web interfaces. 🚀
  • @emontnemery added filters to many of the services Home Assistant provides, meaning only options relevant to the entity you are calling the service on will be shown in the UI. Nice!
  • CO2Signal changed its name to Electricity Maps. The integration has been renamed to match that. Thanks, @madsnedergaard!
  • @Lash-L keeps extending the Roborock integration, adding many new entities in this release. This includes an error sensor, volume controls, and DnD setting times. Awesome!
  • EZVIZ received a big update, adding support for alarm control panels, buttons, and select entities. Thanks @RenierM26!
  • @farmio added support for adding date and date/time entities to KNX! Great!
  • The Xiaomi BLE now supports the MiScale (V1 and V2). Thanks, @Ernst79!
  • UniFi Network now has controls to turn an UniFi WLAN on and off and added image entities for QR codes for WLAN access. Thanks, @Kane610!

New integrations

We welcome the following new integrations in this release:

This release also has a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These are new:

Integrations now available to set up from the UI

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

Release 2023.8.1 - August 4

Release 2023.8.2 - August 11

Release 2023.8.3 - August 18

Release 2023.8.4 - August 24

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

Python 3.10 support has been removed

Python 3.10 support has previously been deprecated and has now been removed. Home Assistant now requires Python 3.11 to run.

You don’t have to do anything if you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method. In those cases, we handle this all for you.

Your system has been using Python 3.11 for quite some time already.

(@frenck - #97007)

Discovery

The legacy discovery integration has been removed. This only affects the automatic discovery of Enigma2, Yamaha Network Receivers, and Bluesound.

These can still be manually configured as per usual.

Note this is for our very, very old discovery logic. This does not affect the discovery of any other integration/device/service.

If you still have discovery: listed in your YAML configuration, you can safely remove it.

(@frenck - #96856)

Ecovacs

The Ecovacs integration has been migrated to the new “StateVacuumEntity” under the hood.

The states of the vacuum entity now report not only on or off, instead cleaning, paused, docked (implicit mean charging), returning (to base), idle and error. Further, the actions turn_on (start cleaning), and turn_off (stop cleaning and return to base) were superseded by three single actions start, stop and return_to_base.

(@mib1185 - #95920) (documentation)

Google Nest

The legacy Works With Nest API is no longer supported. You must manually take action to use the SDM API by removing the Nest configuration from configuration.yaml and restarting Home Assistant. Then add the Nest integration following the instructions. Please review the documentation for information about which devices are supported.

Additionally, as a reminder, the legacy Works With Nest API is shutting down in September 2023.

(@allenporter - #96111) (documentation)

MQTT

It’s no longer allowed for an MQTT RGB light without a brighness_state_topic to report an RGB value of RGB=0,0,0. The reason is that for such lights, the light’s brightness is derived from the RGB value, and an RGB value of RGB=0,0,0 corresponds to a brightness of 0 which is not allowed.

In case an MQTT RGB light without a brighness_state_topic reports 0,0,0 for R, G, and B, that update will be ignored.

(@jbouwh - #96286) (documentation)


The MQTT climate CONF_POWER_STATE_TOPIC and CONF_POWER_STATE_TEMPLATE were deprecated in HA Core 2023.2.0 and are now removed. Please remove these options from your configuration. The options were not implemented but will break your MQTT configuration if they are still present in your config.

(@jbouwh - #96771) (documentation)


The way MQTT entities are named and how device configuration can be shared between discovered entities has changed.

Sharing of device configuration

Discovered MQTT entities can share device configuration, meaning one entity can include the full device configuration, and other entities can link to that device by only setting mandatory fields.

The mandatory fields were previously limited to at least one of connection and identifiers, but have now been extended to at least one of connection and identifiers as well as the name.

Naming of MQTT entities

The naming of MQTT entities has been changed to be aligned with the entity naming guidelines:

  • The has_entity_name entity will be set to True on all MQTT entities.
  • This means any MQTT entity which is part of a device will automatically have its friendly_name attribute prefixed with the device name.
  • Unnamed binary_sensor, button, event, number, and sensor entities will now be named by their device class instead of being named “MQTT binary sensor” etc.
  • It’s now allowed to set an MQTT entity’s name to None to mark it as the main feature of a device.

(@jbouwh - #95159) (documentation)

Philips Dynalite

The Dynalite configuration panel, which previously was on the Home Assistant sidebar, has moved. It can now be accessed via the integration page in Settings -> Device & services -> Dynalite -> Configure.

(@frenck - #95920) (documentation)

Renson

The state values of the Reason Ventilation integration have been changed to be more consistent with other integrations and are now lowercase. Additionally, it can now provide translations for the state values in the UI.

This means that the following state values have changed:

  • Off -> off
  • Level1 -> level1
  • Level2 -> level2
  • Level3 -> level3
  • Level4 -> level4
  • Breeze -> breeze
  • Holiday -> holiday

Please update any automations where you are using the state of this Renson sensor.

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:

  • Discovery has been removed. This is the old legacy discovery integration. See the backward-incompatible changes above for more information.
    (@frenck - #96856)
  • Mi Flora has been removed. This integration was replaced by the Xiaomi BLE integration a long time ago and was in a non-functional state.
    (@frenck - #96868)
  • Xiaomi Mijia BLE T&H Sensor has been removed. This integration was replaced by the Xiaomi BLE integration a long time ago and was in a non-functional state.
    (@frenck - #96869)

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