2023.9: New climate entity dialogs, lots of tile features, and template sensors from the UI!

Home Assistant Core 2023.9! 🎉

Frenck is enjoying a well earned holiday, so I’m taking care of the release this month.

This month, on the 17th, it has been 10 years since Home Assistant started. We’ll be preparing a special event on the Home Assistant YouTube channel to celebrate, reflect and look ahead. We will have some cool announcements too! We hope you can join us on the 17th @ 12:00 PDT / 21:00 CET!

This release is pretty packed! With some very nice updates to the UI with new entity dialogs for climate entities, and lots of tile card features. Template sensors can be created from the UI now, and for the more advanced template sensors, the ability to get data from services! A new service to get the weather forecast, and better options to display different forecasts.

And something you will probably not see when you are already using Home Assistant: the onboarding flow is completely redesigned!

I absolutely love it!

Enjoy the release!

Bram

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

New climate, humidifier, and water heater entity dialogs

The entity dialogs for climate, humidifier, and water heater entities got an update, and if you ask me, it looks absolutely stunning! It now has a newly designed circular slider showing the current and target temperatures and allows you to easily swipe to the desired target temperature. There are also dedicated buttons to change the target, so it is easy to use if you are not using a touchscreen. It will glow in the middle to show its current action, for example when it is heating or cooling.

Screenshot of the more info dialog of a climate entity.

Lots of new tile features

The tile card gets many new features this release.

The features of a tile card are a great way to bring more functionalities directly into your dashboard, without needing to open the more info dialog.

  • HVAC mode
  • Water heater mode
  • Temperature control
  • Cover position
  • Cover tilt
  • Lawn mower commands
  • Color temperature

Screenshot of tile cards with the new features.

Lawn mower

A new entity type was added this release: the lawn mower!

You can now integrate your lawn mower into Home Assistant! Never worry about the lawn mower when it starts raining, you can now automate the lawn mower to stop and go back when it rains. For now, just MQTT is supported, but keep an eye out for other integrations!

Screenshot of the more info dialog of a lawn mower entity.

Group previews

When setting up a helper, sometimes it can be useful to see how the entity that you are creating looks while you are setting it up. That’s why we added a preview when you create or change a group helper.

It will show exactly what the entity will look like with the current settings.

And talking about groups, we also got a new group, the event group!

Screenshot of creating a sensor group.

Template sensors from the UI

We also added preview support to another helper that finally made its way into the UI, the template sensor.

From the UI you can use a template to set the state of the sensor. You can pick a unit of measurement, set the device class, and select a state class. Both sensors and binary sensors are supported.

This will make most of the use cases for template sensors available through the UI and one less need for YAML!

Other more advanced fields, like attributes, are unavailable from the UI. You will still have to set those up in YAML.

With the preview, you see a live update of the sensor value while writing the template.

Screenshot of creating a template sensor.

Actions for trigger template entities

Trigger template entities can now have an action block that is executed after the trigger but before the entities are rendered.

This will allow users to fetch things like calendar events and weather forecasts using services with responses and use them in their template entities. You can even use OpenAI to set the value of your entities now!

All variables from the action block will be available in the template.

An example that checks at midnight if you have something on your calendar tomorrow and sets a binary sensor:

template:
  - trigger:
      - platform: time
        at: "00:00:00"
    action:
      - service: calendar.list_events
        target:
          entity_id: calendar.calendar
        data:
          start_date_time: "{{ today_at() + timedelta(days=1) }}"
          duration:
            hours: 24
        response_variable: events
    binary_sensor:
      - name: Calendar events tomorrow
        state: "{{ events.events is defined and events.events | count > 0 }}"

Weather forecast service

We added a new service for weather entities, weather.get_forecast, that responds with the weather forecast.

Previously you would have to look at the forecast attribute of a weather entity to get the forecast, now this can be done by calling a new service, weather.get_forecast, that will respond with the forecast. You can also specify what type of forecast you want. Do you want to see the forecast by day or do you want to know it for every hour? This means you no longer need separate entities for every forecast type, but it can all be done in 1 entity.

All weather integrations are updated to support this new service.

Screenshot of service developer tools showing the weather forecast service.

If an entity supports multiple forecasts, you can choose which forecast you want to see in the more info dialog. In the weather card in your dashboard, you can also now pick what kind of weather forecast you want to show in that card.

Screenshot of the weather more info dialog.

With this change, the forecast attribute of the weather entity is deprecated, and will be removed in Home Assistant Core 2024.3.

This will make it possible to have on-demand forecasts, that update when you want them to, instead of them being updated all the time. It will also make the system faster; all state data gets sent to your browser or mobile app every time it is opened so the frontend has the latest states of your entities. The forecast attribute makes the state of weather entities very big, causing everything to be loaded slower.

While the way to access this data has changed and may impact your automations, you will not experience any loss in functionality. Even with this change, rest assured that the forecast cards in your dashboard will still work, they will now just use the service to retrieve the forecast data asynchronously instead of reading it from the state attribute. The end result is that your dashboards will load faster, and the frontend will be leaner.

You can use the newly added action part of a template entity to fetch the forecast and use it in your template:

template:
  - trigger:
      - platform: time
        at: "00:00:00"
    action:
      - service: weather.get_forecast
        target:
          entity_id: weather.home
        data:
          type: daily
        response_variable: forecast
    binary_sensor:
      - name: Is it going to rain?
        state: "{{ forecast.forecast[0].precipitation > 0 }}"

Onboarding

While it is certain that Home Assistant is a great tool once you understand how it works, one part that was often overlooked is its associated learning curve. We are now actively working to flatten that curve so that you can get more from your home faster and simpler. This release shows the first result of that effort, a new onboarding flow.

Something you probably have not seen for a while, but we gave our onboarding a fresh new look! It is shortened to get users in Home Assistant as fast as possible, so they can enjoy tinkering with their home faster!

Screenshot of the onboarding screen.

Other noteworthy changes

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

  • Enphase Envoy has gotten a lot of love this release, ensure it works perfectly with the latest firmware available. Thanks @bdraco and @cgarwood!
  • The Shelly integration now supports the Shelly Gas Valve addon. Thanks @bieniu!
  • @starkillerOG added zoom buttons and AI detection delay time controls to the Reolink integration. Nice!
  • You can now set separate damping factors for morning and evening in the Forecast Solar integration. Thanks @joostlek!
  • @Kane610 added a restart device button to the UniFi integration. Thanks!
  • The Tomorrow.io integration now reports humidity and dew point in its weather forecasts. Thanks @lymanepp!
  • Support for soil moisture sensors was added to the Gardena integration. Thanks @elupus!
  • @timmo001 added a power service to the System Bridge integration. Thanks!
  • If you change your password, you will be asked if you want to logout everywhere.
  • The file and image upload elements have been revamped.
  • You can now sort the options of an input select entity. Thanks @karwosts!
  • Local Bluetooth has been optimized and is now faster, thanks @bdraco!

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:

Release 2023.9.1 - September 8

Release 2023.9.2 - September 12

Release 2023.9.3 - September 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

BMW Connected Drive

The “Refresh from cloud” button has been removed. Use the homeassistant.update_entity service with any BMW entity for a full reload instead.

(@rikroe - #97864) (documentation)

DoorBird

The doorbird_reset_favorites event is no longer fired when the clear webhook is called. Note: this event was never documented.

(@bdraco - #98585) (documentation)

Enphase Envoy

Envoy versions < 3.9 (pre-API) are no longer supported as they require web scraping which is disallowed by ADR-0004.

(@bdraco - #97862) (documentation)

ESPHome

To prevent cross-linked devices, replacing an ESPHome device with a different board is no longer allowed. Instead, delete the integration entry and re-add the new device when the mac address of the board changes.

(@bdraco - #98787) (documentation)

EZVIZ

Only switches supported by the camera will be created. Non switchable switches have been removed.

(@RenierM26 - #95672) (documentation)

Flume

You might get false positives for leak detected and high flow sensors if you have old unread notifications in the Flume app.

Before, the leak detected and high flow sensors would only trigger until you read the notification in the Flume app which was too late for Home Assistant to take any automated action.

Now, they trigger regardless if you have read or not the notification. They will remain active until you delete the notification in the Flume app, similar to the old behavior documented.

(@tronikos - #98560) (documentation)

Hive

The previously deprecated service hive.boost_heating has been removed.

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

HTTP / Webserver

Home Assistant can’t be put in an iframe anymore by default. If you still want to embed the Home Assistant interface in a frame, you can do so by disabling use_x_frame_options by setting it to false in the http configuration.

(@frenck - #97784) (documentation)

Météo-France

The Météo-France weather entities have been updated:

  • The forecast state attribute is deprecated and will be removed in Home Assistant Core 2024.3, you should instead use the weather.get_forecast service.
  • The config entry option to select hourly or daily forecast can no longer be adjusted, but any existing configuration of the forecast period will be respected until Home Assistant Core 2024.3.
  • Météo-France now provides a single weather entity which supports both hourly and daily forecast.

(@emontnemery - #98022) (documentation)

Mill

Mill has moved to a new IoT solution and released a new API. The unique ID from the old API is no longer available, so all devices will be shown as new devices. Support for the heater fan will be added later.

(@Danielhiversen - #97497) (documentation)

MQTT

MQTT device trackers no longer always update when there is no state change. This means that automations that trigger on a state change no longer are triggered if there is no change.

(@jbouwh - #98838) (documentation)

Nextcloud

The CPU load sensor has been replaced, it is not a list of 3 values anymore, but there are now three single sensors for CPU load within last 1, 5, and 15 minutes.

(@mib1185 - #99141) (documentation)

Plugwise

The maximum_boiler_temperature sensor entity has been replaced by a number entity, allowing control as well.

(@CoMPaTech - #97203) (documentation)


The additional schema state attributes of the climate entity have been removed. They have beeen previously replaced by a select entity.

(@bouwew - #98153) (documentation)

Start.ca

Start.ca limit, usage, and used_remaining sensors will no longer be created when there’s no bandwidth cap.

(@emontnemery - #98525) (documentation)

Trafikverket Train

All attributes have been converted into their own sensors. The original sensor is now renamed with suffix “Departure time”.

Any automation or script depending on these attributes needs to be adjusted to use these new sensors.

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

Z-Wave

The entity naming logic has been updated to be less brittle. As a result, some zwave_js entities that you haven’t given a custom name to may be renamed.

Since they are registered in the entity registry, the entity IDs will not change and your automations should therefore not be impacted by the change.

(@raman325 - #98140) (documentation)

With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.31.0 or greater (schema 31).

If you use the Z-Wave JS add-on, you need at least version 0.1.88. If you use the Z-Wave JS UI add-on, you need at least version 1.15.9. If you use the Z-Wave JS UI Docker container, you need at least version 8.23.2. If you run your own Docker container or some other installation method, you will need to update your zwave-js-server instance to at least 1.31.0.

(@raman325 - #99250) (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:

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