---
layout: post
title: "2023.12: Welcome home!"
description: "2023.12: 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, and more!"
date: 2023-12-06 00:00:00
date_formatted: "December 6, 2023"
author: Franck Nijhof
author_twitter: frenck
comments: true
categories:
- Release-Notes
- Core
og_image: /images/blog/2023-12/social.png
---
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](/blog/2022/12/20/year-of-voice/), and
please stay tuned, as we will host a [final 5th chapter live stream on our YouTube channel](https://www.youtube.com/watch?v=djEkgoS5dDQ)
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
- [A beautiful new login page](#a-beautiful-new-login-page)
- [New design for the thermostat card](#new-design-for-the-thermostat-card)
- [Numeric input feature for tile cards](#numeric-input-feature-for-tile-cards)
- [Options for the default dashboard](#options-for-the-default-dashboard)
- [History dashboard showing long-term statistics](#history-dashboard-showing-long-term-statistics)
- [More to-do!](#more-to-do)
- [Re-import blueprints](#re-import-blueprints)
- [Other noteworthy changes](#other-noteworthy-changes)
- [New integrations](#new-integrations)
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
- [Release 2023.12.1 - December 8](#release-2023121---december-8)
- [Release 2023.12.2 - December 13](#release-2023122---december-13)
- [Release 2023.12.3 - December 14](#release-2023123---december-14)
- [Release 2023.12.4 - December 27](#release-2023124---december-27)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [Farewell to the following](#farewell-to-the-following)
- [All changes](#all-changes)
Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=2o-Uw5ZGd0M)
6 December 2023, at 12:00 PST / 21:00 CET!
## A beautiful new login page
This feature has been disabled in Home Assistant 2023.12.3.
[Read more about it here](/blog/2023/12/14/disabling-new-login-page-functionality/).
The login page of Home Assistant has been redesigned to be more modern and
match the [recent redesign of the Home Assistant onboarding](/blog/2023/09/06/release-20239/#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](/docs/authentication/providers/#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](/blog/2023/09/06/release-20239/#new-climate-humidifier-and-water-heater-entity-dialogs)
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](/dashboards/tile/) 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.
[@JosephAbbey]: https://github.com/JosephAbbey
## 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] 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.
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](/integrations/recorder#configuration-variables)
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.
[@karwosts]: https://github.com/karwosts
## More to-do!
The first iteration for support for to-do lists was added in the [last release](/blog/2023/11/01/release-202311/#there-is-a-lot-to-do),
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](/integrations/todo/#service-todoget_items)
and a helpful service to [remove all completed items from a to-do list](/integrations/todo/#service-todoclear_items).
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.
[CalDAV]: /integrations/caldav
[Picnic]: /integrations/picnic
[OurGroceries]: /integrations/ourgroceries
## 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](https://community.home-assistant.io/c/blueprints/38),
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]!
[@abmantis]: https://github.com/abmantis
[@bdraco]: https://github.com/bdraco
[@CFenner]: https://github.com/CFenner
[@eifinger]: https://github.com/eifinger
[@emontnemery]: https://github.com/emontnemery
[@iMicknl]: https://github.com/iMicknl
[@jbouwh]: https://github.com/jbouwh
[@Lash-L]: https://github.com/Lash-L
[@piitaya]: https://github.com/piitaya
[@schelv]: https://github.com/schelv
[color temperature selector]: /docs/blueprint/selectors/#color-temperature-selector
[ESPHome]: /integrations/esphome
[IKEA IDÅSEN]: /integrations/idasen_desk
[Overkiz]: /integrations/overkiz
[Roborock]: /integrations/roborock
[Somfy]: https://www.somfy.com/
[trigger selector]: /docs/blueprint/selectors/#trigger-selector
[ViCare]: /integrations/vicare
## 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.
[@dgomes]: https://github.com/dgomes
[@fwestenberg]: https://github.com/fwestenberg
[@IceBotYT]: https://github.com/IceBotYT
[@IsakNyberg]: https://github.com/IsakNyberg
[@OnFreund]: https://github.com/OnFreund
[Devialet]: /integrations/devialet
[V2C]: /integrations/v2c
[Linear Garage Door]: /integrations/linear_garage_door
[MyPermobil]: /integrations/permobil
[OurGroceries]: /integrations/ourgroceries
## 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]
[@allenporter]: https://github.com/allenporter
[@erwindouna]: https://github.com/erwindouna
[@jpbede]: https://github.com/jpbede
[CalDAV]: /integrations/caldav
[Fast.com]: /integrations/fastdotcom
[Ping]: /integrations/ping
## 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])
[#104948]: https://github.com/home-assistant/core/pull/104948
[#105124]: https://github.com/home-assistant/core/pull/105124
[#105135]: https://github.com/home-assistant/core/pull/105135
[#105140]: https://github.com/home-assistant/core/pull/105140
[#105148]: https://github.com/home-assistant/core/pull/105148
[#105150]: https://github.com/home-assistant/core/pull/105150
[#105153]: https://github.com/home-assistant/core/pull/105153
[#105155]: https://github.com/home-assistant/core/pull/105155
[#105157]: https://github.com/home-assistant/core/pull/105157
[#105164]: https://github.com/home-assistant/core/pull/105164
[#105170]: https://github.com/home-assistant/core/pull/105170
[#105184]: https://github.com/home-assistant/core/pull/105184
[#105189]: https://github.com/home-assistant/core/pull/105189
[#105191]: https://github.com/home-assistant/core/pull/105191
[#105199]: https://github.com/home-assistant/core/pull/105199
[#105201]: https://github.com/home-assistant/core/pull/105201
[#105205]: https://github.com/home-assistant/core/pull/105205
[#105222]: https://github.com/home-assistant/core/pull/105222
[#105232]: https://github.com/home-assistant/core/pull/105232
[#105241]: https://github.com/home-assistant/core/pull/105241
[#105247]: https://github.com/home-assistant/core/pull/105247
[#105248]: https://github.com/home-assistant/core/pull/105248
[#105251]: https://github.com/home-assistant/core/pull/105251
[#105255]: https://github.com/home-assistant/core/pull/105255
[#105265]: https://github.com/home-assistant/core/pull/105265
[#105266]: https://github.com/home-assistant/core/pull/105266
[#105283]: https://github.com/home-assistant/core/pull/105283
[#105289]: https://github.com/home-assistant/core/pull/105289
[#105299]: https://github.com/home-assistant/core/pull/105299
[#105312]: https://github.com/home-assistant/core/pull/105312
[#105313]: https://github.com/home-assistant/core/pull/105313
[#105314]: https://github.com/home-assistant/core/pull/105314
[#105327]: https://github.com/home-assistant/core/pull/105327
[#105330]: https://github.com/home-assistant/core/pull/105330
[#97031]: https://github.com/home-assistant/core/pull/97031
[@DCSBL]: https://github.com/DCSBL
[@Excentyl]: https://github.com/Excentyl
[@Kane610]: https://github.com/Kane610
[@OnFreund]: https://github.com/OnFreund
[@Quentame]: https://github.com/Quentame
[@TheJulianJES]: https://github.com/TheJulianJES
[@bdraco]: https://github.com/bdraco
[@bouwew]: https://github.com/bouwew
[@emontnemery]: https://github.com/emontnemery
[@flabbamann]: https://github.com/flabbamann
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@haimn]: https://github.com/haimn
[@iMicknl]: https://github.com/iMicknl
[@jbouwh]: https://github.com/jbouwh
[@jpbede]: https://github.com/jpbede
[@lunmay]: https://github.com/lunmay
[@matrixd2]: https://github.com/matrixd2
[@nohn]: https://github.com/nohn
[@ollo69]: https://github.com/ollo69
[@oyvindwe]: https://github.com/oyvindwe
[@pavoni]: https://github.com/pavoni
[@piitaya]: https://github.com/piitaya
[@starkillerOG]: https://github.com/starkillerOG
[@synesthesiam]: https://github.com/synesthesiam
[@tjhorner]: https://github.com/tjhorner
## 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])
[#104853]: https://github.com/home-assistant/core/pull/104853
[#104936]: https://github.com/home-assistant/core/pull/104936
[#105135]: https://github.com/home-assistant/core/pull/105135
[#105203]: https://github.com/home-assistant/core/pull/105203
[#105294]: https://github.com/home-assistant/core/pull/105294
[#105310]: https://github.com/home-assistant/core/pull/105310
[#105324]: https://github.com/home-assistant/core/pull/105324
[#105349]: https://github.com/home-assistant/core/pull/105349
[#105375]: https://github.com/home-assistant/core/pull/105375
[#105387]: https://github.com/home-assistant/core/pull/105387
[#105435]: https://github.com/home-assistant/core/pull/105435
[#105437]: https://github.com/home-assistant/core/pull/105437
[#105440]: https://github.com/home-assistant/core/pull/105440
[#105442]: https://github.com/home-assistant/core/pull/105442
[#105444]: https://github.com/home-assistant/core/pull/105444
[#105450]: https://github.com/home-assistant/core/pull/105450
[#105456]: https://github.com/home-assistant/core/pull/105456
[#105462]: https://github.com/home-assistant/core/pull/105462
[#105465]: https://github.com/home-assistant/core/pull/105465
[#105476]: https://github.com/home-assistant/core/pull/105476
[#105491]: https://github.com/home-assistant/core/pull/105491
[#105500]: https://github.com/home-assistant/core/pull/105500
[#105508]: https://github.com/home-assistant/core/pull/105508
[#105513]: https://github.com/home-assistant/core/pull/105513
[#105580]: https://github.com/home-assistant/core/pull/105580
[#105585]: https://github.com/home-assistant/core/pull/105585
[#105617]: https://github.com/home-assistant/core/pull/105617
[#105619]: https://github.com/home-assistant/core/pull/105619
[#105659]: https://github.com/home-assistant/core/pull/105659
[#105661]: https://github.com/home-assistant/core/pull/105661
[@DerFlob]: https://github.com/DerFlob
[@FrnchFrgg]: https://github.com/FrnchFrgg
[@KJonline]: https://github.com/KJonline
[@allenporter]: https://github.com/allenporter
[@apt-itude]: https://github.com/apt-itude
[@bdraco]: https://github.com/bdraco
[@bouwew]: https://github.com/bouwew
[@catsmanac]: https://github.com/catsmanac
[@cdce8p]: https://github.com/cdce8p
[@dknowles2]: https://github.com/dknowles2
[@emontnemery]: https://github.com/emontnemery
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@j-a-n]: https://github.com/j-a-n
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@mkmer]: https://github.com/mkmer
[@puddly]: https://github.com/puddly
[@synesthesiam]: https://github.com/synesthesiam
## 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])
[#105135]: https://github.com/home-assistant/core/pull/105135
[#105324]: https://github.com/home-assistant/core/pull/105324
[#105515]: https://github.com/home-assistant/core/pull/105515
[#105655]: https://github.com/home-assistant/core/pull/105655
[#105676]: https://github.com/home-assistant/core/pull/105676
[#105691]: https://github.com/home-assistant/core/pull/105691
[#105694]: https://github.com/home-assistant/core/pull/105694
[#105714]: https://github.com/home-assistant/core/pull/105714
[#105719]: https://github.com/home-assistant/core/pull/105719
[#105735]: https://github.com/home-assistant/core/pull/105735
[#105749]: https://github.com/home-assistant/core/pull/105749
[@Kane610]: https://github.com/Kane610
[@Noltari]: https://github.com/Noltari
[@bdraco]: https://github.com/bdraco
[@cgarwood]: https://github.com/cgarwood
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@jpbede]: https://github.com/jpbede
[@mib1185]: https://github.com/mib1185
## 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])
[#105135]: https://github.com/home-assistant/core/pull/105135
[#105324]: https://github.com/home-assistant/core/pull/105324
[#105364]: https://github.com/home-assistant/core/pull/105364
[#105488]: https://github.com/home-assistant/core/pull/105488
[#105489]: https://github.com/home-assistant/core/pull/105489
[#105655]: https://github.com/home-assistant/core/pull/105655
[#105743]: https://github.com/home-assistant/core/pull/105743
[#105757]: https://github.com/home-assistant/core/pull/105757
[#105807]: https://github.com/home-assistant/core/pull/105807
[#105811]: https://github.com/home-assistant/core/pull/105811
[#105812]: https://github.com/home-assistant/core/pull/105812
[#105830]: https://github.com/home-assistant/core/pull/105830
[#105833]: https://github.com/home-assistant/core/pull/105833
[#105860]: https://github.com/home-assistant/core/pull/105860
[#105870]: https://github.com/home-assistant/core/pull/105870
[#105946]: https://github.com/home-assistant/core/pull/105946
[#105951]: https://github.com/home-assistant/core/pull/105951
[#105954]: https://github.com/home-assistant/core/pull/105954
[#105992]: https://github.com/home-assistant/core/pull/105992
[#105993]: https://github.com/home-assistant/core/pull/105993
[#105998]: https://github.com/home-assistant/core/pull/105998
[#106094]: https://github.com/home-assistant/core/pull/106094
[#106101]: https://github.com/home-assistant/core/pull/106101
[#106134]: https://github.com/home-assistant/core/pull/106134
[#106147]: https://github.com/home-assistant/core/pull/106147
[#106149]: https://github.com/home-assistant/core/pull/106149
[#106152]: https://github.com/home-assistant/core/pull/106152
[#106162]: https://github.com/home-assistant/core/pull/106162
[#106171]: https://github.com/home-assistant/core/pull/106171
[#106178]: https://github.com/home-assistant/core/pull/106178
[#106184]: https://github.com/home-assistant/core/pull/106184
[#106239]: https://github.com/home-assistant/core/pull/106239
[#106273]: https://github.com/home-assistant/core/pull/106273
[#106324]: https://github.com/home-assistant/core/pull/106324
[#106413]: https://github.com/home-assistant/core/pull/106413
[@Noltari]: https://github.com/Noltari
[@OnFreund]: https://github.com/OnFreund
[@agners]: https://github.com/agners
[@atmurray]: https://github.com/atmurray
[@bachya]: https://github.com/bachya
[@bdraco]: https://github.com/bdraco
[@benleb]: https://github.com/benleb
[@bieniu]: https://github.com/bieniu
[@cgtobi]: https://github.com/cgtobi
[@emontnemery]: https://github.com/emontnemery
[@frenck]: https://github.com/frenck
[@fwestenberg]: https://github.com/fwestenberg
[@mib1185]: https://github.com/mib1185
[@mkmer]: https://github.com/mkmer
[@pnbruckner]: https://github.com/pnbruckner
[@puddly]: https://github.com/puddly
[@sdb9696]: https://github.com/sdb9696
[@starkillerOG]: https://github.com/starkillerOG
[@synesthesiam]: https://github.com/synesthesiam
[@vexofp]: https://github.com/vexofp
## 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](/join-chat) is an excellent place to be
at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
to get it fixed! Or, check [our help page](/help) for guidance for more
places you can go.
Are you more into email? [Sign-up for our Building the Open Home Newsletter](/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
{% details "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](/integrations/calendar))
[@eifinger]: https://github.com/eifinger
[#102481]: https://github.com/home-assistant/core/pull/102481
{% enddetails %}
{% details "Counter" %}
The previously deprecated `counter.configure` service has been removed.
([@gjohansson-ST] - [#103204]) ([documentation](/integrations/counter))
[@gjohansson-ST]: https://github.com/gjohansson-ST
[#103204]: https://github.com/home-assistant/core/pull/103204
{% enddetails %}
{% details "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](/integrations/statistics/).
([@gigatexel] - [#104037]) ([documentation](/integrations/dsmr))
[@gigatexel]: https://github.com/gigatexel
[#104037]: https://github.com/home-assistant/core/pull/104037
---
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](/integrations/dsmr))
[@dupondje]: https://github.com/dupondje
[#84097]: https://github.com/home-assistant/core/pull/84097
{% enddetails %}
{% details "EZVIZ" %}
The previously deprecated detection sensitivity service has been removed.
([@gjohansson-ST] - [#103392]) ([documentation](/integrations/ezviz))
[@gjohansson-ST]: https://github.com/gjohansson-ST
[#103392]: https://github.com/home-assistant/core/pull/103392
{% enddetails %}
{% details "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](/integrations/geniushub))
[@GeoffAtHome]: https://github.com/GeoffAtHome
[#102110]: https://github.com/home-assistant/core/pull/102110
{% enddetails %}
{% details "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//`
endpoint will no longer timeout after 10 seconds.
([@Shulyaka] - [#102657]) ([@MartinHjelmare] - [#104709]) ([documentation](/integrations/api))
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@Shulyaka]: https://github.com/Shulyaka
[#102657]: https://github.com/home-assistant/core/pull/102657
[#104709]: https://github.com/home-assistant/core/pull/104709
{% enddetails %}
{% details "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](/integrations/homewizard))
[@frenck]: https://github.com/frenck
[#104493]: https://github.com/home-assistant/core/pull/104493
{% enddetails %}
{% details "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](/integrations/nibe_heatpump))
[@elupus]: https://github.com/elupus
[#103788]: https://github.com/home-assistant/core/pull/103788
{% enddetails %}
{% details "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](/integrations/openexchangerates))
[@MartinHjelmare]: https://github.com/MartinHjelmare
[#103972]: https://github.com/home-assistant/core/pull/103972
{% enddetails %}
{% details "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](/common-tasks/general/#defining-a-custom-polling-interval)
for more information.
([@jpbede] - [#103743]) ([documentation](/integrations/ping))
[@jpbede]: https://github.com/jpbede
[#103743]: https://github.com/home-assistant/core/pull/103743
{% enddetails %}
{% details "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](/integrations/scene))
[@emontnemery]: https://github.com/emontnemery
[#104254]: https://github.com/home-assistant/core/pull/104254
{% enddetails %}
{% details "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 `
` within the HTML block as described in the
[documentation](/integrations/smtp/#usage).
([@aptalca] - [#93562]) ([documentation](/integrations/smtp))
[@aptalca]: https://github.com/aptalca
[#93562]: https://github.com/home-assistant/core/pull/93562
{% enddetails %}
{% details "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](/integrations/trafikverket_weatherstation))
[@gjohansson-ST]: https://github.com/gjohansson-ST
[#104165]: https://github.com/home-assistant/core/pull/104165
{% enddetails %}
{% details "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](/integrations/weather))
[@eifinger]: https://github.com/eifinger
[#102534]: https://github.com/home-assistant/core/pull/102534
{% enddetails %}
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][devblog]. The following are the most notable for this release:
- [Config processing and error handling](https://developers.home-assistant.io/blog/2023/11/27/config-validation-and-error-handling/)
- [Exception handling during service calls and translation support](https://developers.home-assistant.io/blog/2023/11/30/service-exceptions-and-translations/)
- [New scaling utils and import changes](https://developers.home-assistant.io/blog/2023/12/05/scaling-utils/)
- [Public Addon Config](https://developers.home-assistant.io/blog/2023/11/06/public-addon-config)
[devblog]: https://developers.home-assistant.io/blog/
## 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](/blog/2023/11/06/removal-of-myq-integration/).
- **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](/changelogs/core-2023.12)