2023.12: Welcome home!

Home Assistant Core 2023.12! 🎄

The last release of 2023 is here, and we are going out with a bang! 🎉

2023 has been the Year of the Voice, and please stay tuned, as we will host a final 5th chapter live stream on our YouTube channel on 13 December 2023, at 12:00 PST / 21:00 CET! But that is not the end of the voice journey… Be sure to tune in!

This release has some nice quality-of-life improvements, making it feel like Christmas already! The thermostat card has been redesigned to match the gorgeous new entity dialog introduced, a new feature for the ever-improving tile card, re-importing blueprints, and much more!

I’m most excited about the new login page that this release brings. It is beautiful, modern, and literally welcomes you into your own home! 🏡 Home is where Home Assistant is, right? 😃

This is it for 2023! What a year it has been! I just got one last thing to say this year:

Thank you for using Home Assistant! ❤️

Happy holidays & enjoy the release!

../Frenck

Don’t forget to join our release party live stream on YouTube 6 December 2023, at 12:00 PST / 21:00 CET!

A beautiful new login page

Note

This feature has been disabled in Home Assistant 2023.12.3.
Read more about it here.

The login page of Home Assistant has been redesigned to be more modern and match the recent redesign of the Home Assistant onboarding.

When Home Assistant detects you are accessing it via your local home network, it means you are in your trusted home environment; you will be greeted by this beautiful new login page, which resembles how most platforms, like Windows, macOS, Netflix, and others, handle this: by showing your user profiles.

Screenshot of the new Home Assistant login screen that allows you to click on your profile picture to log in.

It is also much smarter! It works seamlessly with trusted networks, and when home, we automatically remember your login. So, no more forgetting to check the “keep me logged in” checkbox. 👊

Of course, when logging in from outside your home network, we can’t do this as that would give away privacy-sensitive information about your system and who is in it. So, when you are outside of your home network, the login page will ask for your username and password, just like before.

Screenshot showing the new login screen, when accessing from the external network. It will still prompt for a username & password, protecting your privacy.

Oh! And you can now change the language straight from the login page! 🌍

New design for the thermostat card

Home Assistant 2023.9 introduced a gorgeous new entity dialog for thermostat entities. As a result of that, many have been asking for a similar design for the thermostat card. Well, here it is!

Screenshot showing two thermostat cards that showcase their stunning new looks.

There is nothing you have to do to use this new card. Once you upgrade to this release, the thermostat card will automatically use this gorgeous new design.

We took it one step further and added support for features. Features are additional functionality that you can add to a card, previously only available for the tile card. This release adds support for features to the thermostat card as well!

Screenshot that shows the new features available when configuring a thermostat card.

For the thermostat card, it allows you to add HVAC mode buttons and presets. By default, these features are hidden, giving it the cleanest look possible.

Oh! The same design has been applied to the (de)humidifer card, of course, including its respective tile features 😎.

Screenshot showing the same styling has been applied to the humidifier card.

Numeric input feature for tile cards

The tile card is very powerful, and @JosephAbbey is even extending it this release by adding a new “numeric input” feature.

The numeric input feature works with all number entities and number helpers. It allows you to control the number entity from the tile card directly and provides the choice to use it as a slider or as an input with up/down buttons.

Screenshot showing two tile cards, one showing the button variant, the other displaying a slider.

Options for the default dashboard

The default dashboard now has options that will allow you to change its behavior. You can now configure the default dashboard to hide certain areas, hide entities that don’t belong to an area, and the option to hide the energy summary card.

Screenshot that shows the new options available for the generated default dashboard.

When selecting Areas, you can choose to hide the areas but also change the display order of the areas by dragging them around.

A first step in making the dashboards configurable, but above all, it gives you more control over the default dashboard, especially when you have just started with using Home Assistant.

When adding a new dashboard, we added a dialog similar to the ones we show when you create new automations or scripts. It gives you the option to start with an empty manual dashboard or create a new default dashboard.

Screenshot that shows the new dialog you get presented when creating a new dashboard.

History dashboard showing long-term statistics

The history dashboard did get some love from @karwosts this release; he added a big improvement to all the graphs shown there.

Previously, the graphs would only show the state history, limited to a few days, until the data is removed. This is not always very useful, for example, when you want to look back further in time.

@karwosts came up with a solution for this, and the history dashboard now combines the state history with the recorded long-term statistics to provide insights into the past.

Screenshot showing a history graph over a longer period of time.

The right and darker part of the graph line is provided by the state history (like before), and the long-term statistics provide the left and lighter part of the graph line (and is thus downsampled hourly data).

If you have manually modified the days to keep before purging recorder on your system, consider removing that customization. With the long-term statistics and new feature, you most likely don’t need it anymore, resulting in a smaller database and, thus, faster and smaller backups.

More to-do!

The first iteration for support for to-do lists was added in the last release, and there has been continued work on this feature in this release.

First of all, there are two new services available. A much-requested service to list all items on a to-do list and a helpful service to remove all completed items from a to-do list.

It is nice to see integrations adding support for the to-do list feature. For example, the CalDAV integration now supports adding to-do items to your CalDAV server, and with Picnic and OurGroceries you can now manage your shopping list. In the case of Picnic, it will even look up the product you add in their store to your shopping list and add the product to your shopping cart.

Also, when viewing a to-do list from the Home Assistant interface, you can copy/paste or bookmark the URL, which will always bring you back to the same one—a small but very helpful improvement.

Re-import blueprints

This release adds the ability to re-import the blueprint from the source from which you originally imported it. The newly downloaded blueprint will overwrite the existing blueprint, providing a simple “update” feature for blueprints.

If you use Blueprints, for example, the ones created by our incredible community, you might have noticed that when you import a blueprint, it will not update when the author updates it. The only option you had was to manually adjust the YAML of the blueprint to make it match the latest version published by the author. To make this last bit easier, we added this re-import ability.

Screenshot showing that the overflow menu of a blueprint now provides the option to re-import an blueprint.

A helpful feature that will make it easier to keep your blueprints in sync with the latest version published by the blueprint author.

Other noteworthy changes

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

  • We have a brand new trigger selector for you to use in your Blueprints and scripts. Thanks, @piitaya!
  • That is not all for selectors, @schelv added support for Kelvin to the color temperature selector. Nice!
  • If you use the IKEA IDÅSEN desk, you will now have a height sensor! Thanks @abmantis!
  • The ESPHome integration had many performance improvements, making it faster and more reliable. Thanks @bdraco!
  • @Lash-L added support for displaying maps from your Roborock vacuums! Awesome!
  • Services with a response now support handling responses when multiple entities are targeted. Nice! Thanks @eifinger!
  • @iMicknl added local API support for the Somfy TaHoma to the Overkiz integration! Also, thanks Somfy! It’s nice to see a manufacturer adding local API support!
  • The ViCare received tons of love from @CFenner; keep up the good work!
  • The media browser now has support for toggling between grid and list view. Thanks @karwosts!
  • @emontnemery worked hard to improve all error messages originating from manual YAML configuration. The messages should now be more detailed, readable, and correctly pinpoint which file and file line the error is located at. Awesome!
  • @karwosts created a UI when you want to add selectors to your script field! Very nicely done!
  • Errors shown by Home Assistant can now be translated! While many places still need to adopt this, it is a big and user-friendly step forward! Outstanding job @jbouwh!

New integrations

We welcome the following new integrations in this release:

Integrations now available to set up from the UI

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

Release 2023.12.1 - December 8

Release 2023.12.2 - December 13

Release 2023.12.3 - December 14

Release 2023.12.4 - December 27

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

Calendar

calendar.list_events uses an outdated response data format and is now deprecated, pending removal in Home Assistant 2024.6.

Please use calendar.get_events, which supports multiple entities, instead.

The output of this newer service changed slightly, as it now returns a mapping of entity IDs to lists of events instead of a list of events.

(@eifinger - #102481) (documentation)

Counter

The previously deprecated counter.configure service has been removed.

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

DSMR

DSMR entities will not automatically update on each received DSMR telegram when the value between telegrams has not changed.

If you rely on this, for example, for graphing, please refer to the statistics integration.

(@gigatexel - #104037) (documentation)


For users using the 5B version: The previous gas sensor (Gas consumption) will change to Gas consumption mbusX. Also, multiple gas sensors will be possible.

(@dupondje - #84097) (documentation)

EZVIZ

The previously deprecated detection sensitivity service has been removed.

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

Genius Hub

The initial state of the smart plug did not reflect the same state as in the Genius Hub application. Correcting this creates a backward-incompatible change in that the behavior is now correct but different.

If you have an automation that relies on this state, you should check if your automation or script is still behaving as expected.

(@GeoffAtHome - #102110) (documentation)

Home Assistant API

When calling a service via the Home Assistant REST API, the service used to be canceled on connection drop, which is no longer the case. If you relied on that behavior, you would need to revisit the logic. With this change, a connection drop will not cancel the service call.

Also, a REST post to call a service with the /api/services/<domain>/<service> endpoint will no longer timeout after 10 seconds.

(@Shulyaka - #102657) (@MartinHjelmare - #104709) (documentation)

HomeWizard Energy

The HomeWizard HWE-SKE (the wall plugs), SDM230, and SDM630 provided duplicate sensors for energy import and export: A total and a tariff of 1.

As only a single tariff is available on those, the total and tariff 1 are always the same. To clean this up, tariff 1 has been removed.

If you used this sensor in your energy dashboard, you will need to configure your energy dashboard to use the total import/export sensor instead.

(@frenck - #104493) (documentation)

Nibe Heat Pump

S-Series entities priority-3102, hot-water-demand-mode-40057, and oper-mode-40238 are changed from a number entity to a select entity with mapping values for the possible choices.

If you have the old number entities enabled, you can delete them since they will no longer be provided by the integration.

(@elupus - #103788) (documentation)

Open Exchange Rates

Remove rounding of the exchange rate.

Exchange rates are generally more sensitive to small changes, and some quotes need many decimal numbers to be accurate. The Open Exchange Rates service will provide different significant digits for different quotes.

You can change the display precision or use a template sensor to customize the rounding of the value.

(@MartinHjelmare - #103972) (documentation)

Ping

The option to set a custom polling interval has been removed. If you are using custom interval and really need it, you can use the homeassistant.update_entity in an automation to poll at your custom pace. See our documentation on defining a custom polling interval for more information.

(@jpbede - #103743) (documentation)

Scenes

Support for the, in November 2019 deprecated, attributes brightness_pct, color_name, flash, kelvin, profile, and transition have been removed from light scenes.

If you have used these attributes in your scenes, you will need to adjust those to this change.

(@emontnemery - #104254) (documentation)

SMTP

The SMTP integration will send images as attachments to a plain text email instead of HTML in-line when the html field is not set.

Previous behavior was to send all images as HTML in-line even when the html field was not set. To continue sending images as in-line, please set the optional html field and include the images as <img src="cid:image_name.ext"> within the HTML block as described in the documentation.

(@aptalca - #93562) (documentation)

Trafikverket Weather Station

Trafikverket Weather has changed its endpoint and is no longer providing the information for wind direction and precipitation in plain text, so therefore, these sensors have been removed:

  • Wind direction text
  • Precipitation name

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

Weather

weather.get_forecast uses an outdated response data format and is now deprecated, pending removal in Home Assistant 2024.6.

Please use weather.get_forecasts, which supports multiple entities instead.

The output of this newer service changed slightly, as it now returns a mapping of entity IDs to lists of forecasts instead of a list of forecasts.

(@eifinger - #102534) (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:

  • MyQ has been removed. Read all about it in our blog post.
  • eQ-3 Bluetooth Smart Thermostats have been removed. The integration has been in a non-functional state for a long time.

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