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
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
- A beautiful new login page
- New design for the thermostat card
- Numeric input feature for tile cards
- Options for the default dashboard
- History dashboard showing long-term statistics
- More to-do!
- Re-import blueprints
- Other noteworthy changes
- New integrations
- Integrations now available to set up from the 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!
- Backward-incompatible changes
- Farewell to the following
- All changes
Don’t forget to join our release party live stream on YouTube
A beautiful new login page
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.
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.
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!
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!
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 😎.
Numeric input feature for tile cards
The tile card is very powerful, and @JosephAbbey
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.
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.
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.
History dashboard showing long-term statistics
The history dashboard did get some love from @karwosts
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
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.
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:
-
Devialet, added by @fwestenberg
Control your wireless Devialet speakers. -
Linear Garage Door, added by @IceBotYT
Lets you control and automate your Linear garage doors. -
MyPermobil, added by @IsakNyberg
Provides various sensors for your Permobil wheelchair. -
OurGroceries, added by @OnFreund
Integrate with the OurGroceries shopping lists. -
V2C, added by @dgomes
Monitoring and control of a local V2C Trydan EVSE.
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
CalDAV, done by @allenporter
-
Fast.com, done by @erwindouna
-
Ping, done by @jpbede
Release 2023.12.1 - December 8
- Initialize energy_state without price (@Excentyl
- #97031 ) - Bump yolink-api to 0.3.4 (@matrixd2
- #105124 ) - Bump apple_weatherkit to 1.1.2 (@tjhorner
- #105140 ) - Correct smtp error message string (@jbouwh
- #105148 ) - Expose todo entities to Assist by default (@synesthesiam
- #105150 ) - Disable scenarios (scenes) for local API in Overkiz (@iMicknl
- #105153 ) - Improve LIDL christmas light detection in deCONZ (@Kane610
- #105155 ) - Bump reolink_aio to 0.8.2 (@starkillerOG
- #105157 ) - Don’t return TTS URL in Assist pipeline (@synesthesiam
- #105164 ) - Bump Météo-France to 1.3.0 (@Quentame
- #105170 ) - Fix ZHA quirk ID custom entities matching all devices (@TheJulianJES
- #105184 ) - Fix missing apostrophe in smtp (@lunmay
- #105189 ) - Set ping interval to 15 seconds instead of 5 minutes (@nohn
- #105191 ) - Increase ping update interval to 30 seconds (@jpbede
- #105199 ) - Fix bug in roon incremental volume control. (@pavoni
- #105201 ) - fix supportedFanOscillationModes is null (@haimn
- #105205 ) - Disable config flow progress in peco config flow (@emontnemery
- #105222 ) - Fix Fritzbox light setup (@flabbamann
- #105232 ) - Fix check_date service in workday (@gjohansson-ST
- #105241 ) - Fix AsusWrt invalid data type with tuple type (@ollo69
- #105247 ) - Explicit check for None in Discovergy entity if condition (@jpbede
- #105248 ) - Add migration for old HomeWizard sensors (@DCSBL
- #105251 ) - Fix update of uncategorized OurGroceries items (@OnFreund
- #105255 ) - Bump pyunifiprotect to 4.22.0 (@bdraco
- #105265 ) - Set device id and forward errors to Wyoming satellites (@synesthesiam
- #105266 ) - Fix mqtt json light state updates using deprecated color handling (@jbouwh
- #105283 ) - Always set _attr_current_option in Nobø Hub select entities (@oyvindwe
- #105289 ) - Update frontend to 20231208.2 (@piitaya
- #105299 ) - Add test for energy cost sensor for late price sensor (@emontnemery
- #105312 ) - Use area id for context instead of name (@synesthesiam
- #105313 ) - Add workaround for orjson not handling subclasses of str (@emontnemery
- #105314 ) - Add rollback on exception that needs rollback in SQL (@gjohansson-ST
- #104948 ) - Workaround
to_json
template filter in parsing dict key (@jbouwh- #105327 ) - Bump plugwise to v0.34.5 (@bouwew
- #105330 )
Release 2023.12.2 - December 13
- Fix Lyric LCC thermostats auto mode (@apt-itude
- #104853 ) - Bump zeroconf to 0.128.0 (@bdraco
- #104936 ) - Fix CI test_invalid_rrule_fix test by freezing the time (@jbouwh
- #105294 ) - Add missing configuration for services.yaml in blink (@mkmer
- #105310 ) - Bump pyschlage to 2023.12.0 (@dknowles2
- #105349 ) - Fix preset modes error in Smartthings (@gjohansson-ST
- #105375 ) - Fix service missing key in Blink (@mkmer
- #105387 ) - Fix adding/updating todo items with due date in CalDAV integration (@DerFlob
- #105435 ) - Check if heat area exists when setting up valve opening and battery sensors in moehlenhoff alpha2 (@j-a-n
- #105437 ) - Bump hatasmota to 0.8.0 (@emontnemery
- #105440 ) - Bump plugwise to v0.35.3 (@bouwew
- #105442 ) - Fix alexa calling not featured cover services (@jbouwh
- #105444 ) - Fix fitbit oauth reauth debug logging (@allenporter
- #105450 ) - Write Enphase Envoy data to log when in debug mode (@catsmanac
- #105456 ) - Bump ical to 6.1.1 (@allenporter
- #105462 ) - Bump zeroconf to 0.128.4 (@bdraco
- #105465 ) - Remove Aftership import issue when entry already exists (@joostlek
- #105476 ) - Disconnect before reconnecting to satellite (@synesthesiam
- #105500 ) - Bump caldav to 1.3.8 (@FrnchFrgg
- #105508 ) - Bump pyhiveapi to v0.5.16 (@KJonline
- #105513 ) - Fix setup Fast.com (@gjohansson-ST
- #105580 ) - Add name slot to HassClimateGetTemperature intent (@synesthesiam
- #105585 ) - Skip TTS events entirely with empty text (@synesthesiam
- #105617 ) - Rename “satellite enabled” to “mute” (@synesthesiam
- #105619 ) - Fix timing issue in Withings (@joostlek
- #105203 ) - Update pylint to 3.0.3 (@cdce8p
- #105491 ) - Reload ZHA integration on any error, not just recoverable ones (@puddly
- #105659 ) - Bump ZHA dependencies (@puddly
- #105661 )
Release 2023.12.3 - December 14
- Ensure platform setup for all AVM FRITZ!SmartHome devices (@mib1185
- #105515 ) - Update AEMET-OpenData to v0.4.7 (@Noltari
- #105676 ) - Fix restoring UniFi clients with old unique id (@Kane610
- #105691 ) - Bump zeroconf to 0.128.5 (@bdraco
- #105694 ) - Add missing rest_command reload service to services.yaml (@jpbede
- #105714 ) - Fix issue clearing renault schedules (@epenet
- #105719 ) - Fix Fully Kiosk Browser MQTT event callbacks with non-standard event topics (@cgarwood
- #105735 ) - Disable user profiles on login screen (@frenck
- #105749 )
Release 2023.12.4 - December 27
- Pass timeout to httpx in RESTful Switch (@vexofp
- #105364 ) - Add Raspberry Pi 5 specific container image (@agners
- #105488 ) - Set todo item status in intent (@synesthesiam
- #105743 ) - Bump aioairzone to v0.7.0 (@Noltari
- #105807 ) - Update aioairzone to v0.7.2 (@Noltari
- #105811 ) - Fix HVAC mode duplication for Shelly Gen2 climate platform (@bieniu
- #105812 ) - Fix Airzone temperature range on new climate card (@Noltari
- #105830 ) - Bump pyunifiprotect to 4.22.3 (@bdraco
- #105833 ) - Address late review comments on AVM FRITZ!SmartHome (@mib1185
- #105860 ) - Set WiFi QR code entity to unknown when Fritzbox is not available (@mib1185
- #105870 ) - Bump reolink_aio to 0.8.3 (@starkillerOG
- #105489 ) - Bump reolink_aio to 0.8.4 (@starkillerOG
- #105946 ) - Bump motionblinds to 0.6.19 (@starkillerOG
- #105951 ) - Fix unreachable Netatmo sensor returning false values (@cgtobi
- #105954 ) - Add Raspberry Pi 5 to version and hardware integration (@agners
- #105992 ) - Bump blinkpy 0.22.4 (@mkmer
- #105993 ) - Don’t fetch unchanged OurGroceries lists (@OnFreund
- #105998 ) - Bump pyatmo to 8.0.1 (@cgtobi
- #106094 ) - Bump surepy to 0.9.0 (@benleb
- #106101 ) - Bump pyenphase to 1.15.2 (@bdraco
- #106134 ) - Bump ZHA dependencies (@puddly
- #106147 ) - Bump life360 to 6.0.1 (@pnbruckner
- #106149 ) - Fix bug with non-existent Notion bridge IDs (@bachya
- #106152 ) - Fix Netatmo light switching states by assuming state until next update (@cgtobi
- #106162 ) - Bump Devialet to 1.4.4 (@fwestenberg
- #106171 ) - Bump ring-doorbell to 0.8.5 (@sdb9696
- #106178 ) - Bump Devialet to 1.4.5 (@fwestenberg
- #106184 ) - Bump aiopulse to 0.4.4 (@atmurray
- #106239 ) - Fix Shelly consumption_types (@emontnemery
- #106273 ) - Missing exception on relogin in Honeywell (@mkmer
- #106324 ) - Redact unique id from diagnostics in blink (@mkmer
- #106413 )
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
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
Counter
The previously deprecated counter.configure
service has been removed.
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
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
EZVIZ
The previously deprecated detection sensitivity service has been removed.
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
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
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
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
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.
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
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
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
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
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
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:
- Config processing and error handling
- Exception handling during service calls and translation support
- New scaling utils and import changes
- Public Addon Config
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