Home Assistant 2023.11! 🎃
It seems like I forgot to come up with a release title for this release and left a placeholder in the title. If I only could have it on a to-do list somewhere… 🤔
Before we dive into this pretty massive release, I want to quickly look back at two amazing things that happened in the past month.
First, we presented chapter 4 of the Year of the Voice, which introduced the new wake word feature in Home Assistant. This really brings the voice assistant experience to the next level, and we are super excited about it! Like have you seen the R5-based voice assistant droid? 😍
Second, we had a security audit performed on Home Assistant by one of the top security auditors in the world! You can read all about it in the blog post. A big shout out to everybody subscribed to Home Assistant Cloud, as you enable us to do these things! 🥰
Alright, about this release! It is huge! I love the tile card, and the ability to easily customize the information it shows now is just. 🤩 But mostly, I’m super stoked about the new to-do lists, which will probably become a very central part of my household.
Enjoy the release!
- There is a lot to-do!
- Shopping lists are now to-do’s too!
- Integrations providing your to-dos
- Matter 1.2 is here!
- Customize the information shown in your Tile cards
- Select any date range in the energy dashboard
- New conditions for the conditional card
- Restarting into safe mode
- Set up Improv devices directly from Home Assistant!
- Configuring script fields for your script in the UI
- Other noteworthy changes
- New integrations
- Integrations now available to set up from the UI
- Release 2023.11.1 - November 4
- Release 2023.11.2 - November 10
- Release 2023.11.3 - November 22
- 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 1 November 2023, at 13:00 PDT / 21:00 CET!
A to-do list entity represents a list of tasks, and its state is the amount of uncompleted tasks that are still open. You can create one or more to-do lists and view and manage them by selecting the new To-do lists item in the sidebar.
Besides the entities, there are also new services available allowing you to automate on your to-do lists as well. Use automations to create, complete, or clean up tasks on your to-do lists.
So, what can you do with all of this? A lot! For example, you can create a to-do list for your groceries, automate a list of house chores for your kids or other household members, or automatically put a task on a list to replace the batteries of a sensor when it is low. You could even send a push notification to your phone when you are near the home improvement store and have items on a to-do list that you need to buy there.
Thanks @allenporter, and everyone involved, for this amazing addition to Home Assistant! We can now check this one off from our wishlist! ✔
These to-do lists look a lot like the shopping list, right? Correct!
They are very much alike, and that is why we have moved the shopping list to a to-do list as well! Once you upgrade to this release, your existing shopping list will be automatically converted to a to-do list.
But that is not all; we also updated the Shopping list card for your dashboards, now fittingly named To-do list card, to support multiple to-do lists. You can now select which to-do list you want to show on the card you’ve put in your dashboard.
But wait! There is more besides local to-do lists and shopping lists. Now that we have a to-do list entity, we can also start using it with other integrations that, for example, can get your to-do lists from an external service.
This is awesome, as it brings all these to-do lists together in one place, and above all, provides you with the power of Home Assistant to automate on them.
The Connectivity Standards Alliance has launched version 1.2 of the Matter specification, together with a new version of the Official Matter SDK, which is not only prepared for new device types but also contains all kinds of smaller stability- and bug fixes.
Although you can only benefit from the new device types once actual devices are released, we have upgraded our Matter implementation to version 1.2 to benefit from the stability improvements and to be prepared for the new device types.
Interesting fact: Did you know that Home Assistant is used as a test platform by many device manufacturers? This potentially means that devices will be implemented and tested on the Home Assistant Matter controller before others; cool!
Tile card now displays the entity’s state information on the card. But what if you want to display something else? @piitaya to the rescue!
You can now customize it to your liking. Show the entity’s state, any of its attributes, or a combination of both!
You can add any attribute of the entity to the state content of the tile card.
This not only works for the climate entities but for all entities! You could, for example, add the brightness % of a light or the battery level of a sensor. Simply add the attribute to the state content and drag and drop them in the order you want them to appear.
The energy dashboard now allows you to select a custom date range. This allows you to see the energy usage of your home over a specific period.
A great addition to the energy dashboard. Thanks, @TillFleisch!
The conditional card is a great way to show or hide cards conditionally. For example, you can show a card only when the sun is setting or when you are home.
When using such a state, you also match it against multiple values. For example, you can show a card when the sun is setting or when the sun is below the horizon in a single condition.
But even more interesting, @piitaya added a whole bunch of new conditions to this card for you to use! Let’s dive in…
The user condition allows you to show or hide cards based on the user who is currently logged in. Useful if you have multiple users in your Home Assistant instance and want to show or hide cards based on who is looking at the dashboard.
The screenshot above shows how the card is only shown when the user who is logged in is Frenck. It is hidden for all other users.
Similar to the state condition, the numeric state condition allows you to show or hide cards based on the state of an entity, only this time, based on its numeric value. Useful if you want to show or hide cards based on temperature, humidity, or any other numeric entity.
In the screenshot above, this thermostat card will only be shown on the dashboard when the temperature outside has dropped below 18 degrees Celsius.
Last but not least, the screen condition allows you to show or hide cards based on the screen size of the device you are viewing Home Assistant on.
For example, you could show some cards only when viewing Home Assistant on a desktop or tablet and hide them when viewing Home Assistant on a mobile device.
The screenshot shows how the control of the garage door is only shown on mobile, as it is most often used from mobile when arriving at home.
You can now restart Home Assistant in safe mode. This mode will disable all custom integrations and custom frontend resources (for example, custom cards and themes).
It is useful if you are experiencing issues with your Home Assistant and want to quickly rule out custom integrations or custom dashboard resources as the cause of these issues.
Want to get out of safe mode again? Just restart Home Assistant one more time, and everything will be back to normal.
This is helpful! Thanks, @emontnemery!
If you bought a device that supports Improv Wi-Fi over Bluetooth, and you are using Bluetooth in Home Assistant, you can now set up your device directly from Home Assistant itself!
Plug in the power of your brand-new device, and Home Assistant will discover it and help you set it up by connecting it to your Wi-Fi network and adding it to Home Assistant.
Nice job on this one @emontnemery!
Scripts have a really neat feature: fields. Fields allow you to define variables in your script that you can pass in when calling your script as a service.
For example, you could create a script that sends a notification to a specific person and use a field to define the message you want to send.
These fields support our UI selectors, so you can provide a UI for your script fields. However, this was only available when you created your scripts in YAML format.
But not anymore! Thanks to @karwosts, you can now also configure your script fields in the UI!
You can find the fields in the script editor when selecting the three dots in the top right corner of the editor and selecting Add fields from the drop-down menu.
There are many more improvements in this release; here are some of the other noteworthy changes this release:
- The HomeKit Bridge now handles changes in the capabilities of devices and the removal/addition of devices automatically! Thanks, @bdraco!
- The lovely new two-pane view you see in the to-do lists has also been added to the calendar dashboard. Nice @bramkragten!
- ZHA will now raise a repair issue if it finds out the network settings have changed externally. This helps you get up and running again in no time. Thanks, @puddly!
- @gjohansson-ST added a brand new country selector that can be used in your Blueprints and script fields. Nice!
- The Withings integration has reached the platinum quality mark. Thanks, @joostlek! Job well done!
- We now have better connection management for the IKEA IDÅSEN desk. Nice @abmantis!
- The Fitbit integration got a complete overhaul, can be set up via the UI, and now supports Fitbit nutrition sensors. Thanks, @allenporter!
- The SwitchBot Cloud integration now supports climate devices. Thanks, @SeraphicRav!
- @rappenze added event entities support to the Fibaro integration. Cool!
- The System Bridge integration now supports media players. Thanks, @timmo001!
- @raman325 extended our template engine with the ability to check the type of a variable. Super helpful for complex templates! Thanks!
We welcome the following new integrations in this release:
Google Tasks, added by @allenporter
Access your Google Tasks to-do list from the new to-do dashboard.
Improv BLE, added by @emontnemery
Get your Improv Wi-Fi enabled devices onboarding onto your Wi-Fi network with ease.
Local to-do list, added by @allenporter
Create and manage your own, Home Assistant, local to-do list.
Tami4 Edge / Edge+, added by @Guy293
Integrate your Tami water bar, boil water and get filter sensors.
To-do list, added by @allenporter
New entity type that provides to-do list capabilties for other integrations to use.
This release also has a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. The following virtual integrations have been added:
- Cribl, provided by Splunk
- Eastron, provided by HomeWizard Energy
- Portland General Electric provided by Opower
The following integrations are now available via the Home Assistant UI:
- Bump python-holidays to 0.35 (@gjohansson-ST - #103092)
- Bump aiowaqi to 3.0.0 (@joostlek - #103166)
- Catch unexpected response in Honeywell (@mkmer - #103169)
- Fix roomba translation key mismatch (@Xitee1 - #103191)
- Fix roomba error if battery stats are not available (@Xitee1 - #103196)
- Fix mqtt config validation error handling (@jbouwh - #103210)
- Fix Fronius entity initialisation (@farmio - #103211)
- Bump pyenphase to 1.14.1 (@cgarwood - #103239)
- Remove measurement flag from timestamp in gardena bluetooth (@elupus - #103245)
- Fix Plugwise Schedule selection (@CoMPaTech - #103262)
- Bump yalexs-ble to 2.3.2 (@bdraco - #103267)
- add library logger info on ecoforest integration manifest (@pjanuario - #103274)
- Fix Matter 1.2 locks with specific unlatch/unbolt support (@marcelveldt - #103275)
- Fix firmware update failure (@raman325 - #103277)
- Bump opower to 0.0.39 (@tronikos - #103292)
- Bump reolink-aio to 0.7.14 and improve typing of Reolink (@starkillerOG - #103129)
- Bump py_nextbusnext to v1.0.2 to fix TypeError (@ViViDboarder - #103214)
- Add script to convert zwave_js device diagnostics to fixture (@raman325 - #102799)
- Fix typo in Todoist config flow (@jpbede - #103317)
- Remove extra from traccar webhook (@ludeeus - #103319)
- Report correct weather condition at night for Met (@jrieger - #103334)
- Handle UniFi traffic rules not supported on older versions (@Kane610 - #103346)
- Fix sensor unique id in Islamic prayer times (@engrbm87 - #103356)
- Fix zwave_js cover bug for Window Covering CC values (@raman325 - #103289)
- Don’t assume that the
sleepvalue is a dictionary in Tractive integration (@bieniu - #103138)
- Update aioairzone-cloud to v0.3.2 (@Noltari - #103258)
- Update aioairzone-cloud to v0.3.5 (@Noltari - #103315)
- Handle null data in WeatherFlow sensors (@natekspencer - #103349)
- Handle smarttub sensor values being None (@mdz - #103385)
- Pin jaraco.functools to fix builds and CI (@bdraco - #103406)
- Update tailscale to 0.6.0 (@frenck - #103409)
- Bump pyatmo to v7.6.0 (@cgtobi - #103410)
- Fix serial in Flo device information (@mib1185 - #103427)
- modbus Allow swap: byte for datatype: string. (@janiversen - #103441)
- Modbus set device_class in slaves (@janiversen - #103442)
- Fix KNX expose default value when attribute is
None(@farmio - #103446)
- Sort Withings sleep data on end date (@joostlek - #103454)
- Use right equipment identifier in DSMR setup (@dupondje - #103494)
- Fix litterrobot test failure due to time zone dependence (@mdz - #103444)
- Revert binary_sensor part of #103210 (@edenhaus - #103499)
- ESPHome: Add suggested_area from device info (@jesserockz - #102834)
- Bump aioesphomeapi to 18.2.1 (@bdraco - #103156)
- Bump bluetooth-data-tools to 0.14.0 (@bdraco - #103413)
- Bump blinkpy to 0.22.3 (@mkmer - #103438)
- Fix 5B Gas meter in dsmr (@dupondje - #103506)
- Fix invalid MAC in samsungtv (@epenet - #103512)
- Bump aioesphomeapi to 18.2.4 (@bdraco - #103552)
- Bump pyenphase to 1.14.2 (@cgarwood - #103553)
- Update dsmr-parser to 1.3.1 to fix parsing issues (@dupondje - #103572)
- fix: get_devices only checks for the first type (@suaveolent - #103583)
- Raise exception when data can’t be fetched in Opensky (@joostlek - #103596)
- Bump yt-dlp to 2023.10.13 (@joostlek - #103616)
- Fix Reolink DHCP IP update (@starkillerOG - #103654)
- Incease tplink setup timeout (@bdraco - #103671)
- Add name to Withings coordinator (@joostlek - #103692)
- Update frontend to 20231030.2 (@bramkragten - #103706)
- Bump accuweather to version 2.0.1 (@bieniu - #103532)
- Remove rainbird yaml config test fixtures (@allenporter - #103607)
- Lock Withings token refresh (@joostlek - #103688)
- Bump accuweather to version 2.1.0 (@bieniu - #103744)
- Bump python-matter-server to 4.0.2 (@bdraco - #103760)
- Bump subarulink to 0.7.9 (@G-Two - #103761)
- Fix discovery schema for Matter switches (@marcelveldt - #103762)
- Fix raising vol.Invalid during mqtt config validation instead of ValueError (@jbouwh - #103764)
- Fix race condition in Matter unsubscribe method (@marcelveldt - #103770)
- Fix typo in calendar translation (@jrieger - #103789)
- Fix Rainbird unique to use a more reliable source (mac address) (@allenporter - #101603)
- Bump pyOverkiz to 1.13.0 (@iMicknl - #103582)
- Bump pyOverkiz to 1.13.2 (@iMicknl - #103790)
- Bump aiocomelit to 0.5.2 (@chemelli74 - #103791)
- Bump velbusaio to 2023.11.0 (@Cereal2nd - #103798)
- Bump pyunifiprotect to 4.21.0 (@bdraco - #103832)
- Bump lupupy to 0.3.1 (@suaveolent - #103835)
- Bump gcal_sync to 6.0.1 (@allenporter - #103861)
- Fix bug in Fitbit config flow, and switch to prefer display name (@allenporter - #103869)
- Fix for Google Calendar API returning invalid RRULE:DATE rules (@allenporter - #103870)
- Update Fitbit to avoid a KeyError when
restingHeartRateis not present (@allenporter - #103872)
- fix Comelit cover stop (@chemelli74 - #103911)
- Fix Coinbase for new API Structure (@TomBrien - #103930)
- Bump zwave-js-server-python to 0.54.0 (@raman325 - #103943)
- Update smarttub to 0.0.36 (@mdz - #103948)
- Fix duplicate Ban file entries (@fosterchuck - #103953)
- Fix openexchangerates form data description (@MartinHjelmare - #103974)
- Fix emulated_hue with None values (@bdraco - #104020)
- Fix netatmo authentication when using cloud authentication credentials (@deosrc - #104021)
- Fix device tracker see gps accuracy selector (@MartinHjelmare - #104022)
- Bump pyenphase to 1.14.3 (@catsmanac - #104101)
- Fix ESPHome BLE client raising confusing error when not connected (@bdraco - #104146)
- Fix memory leak in ESPHome disconnect callbacks (@bdraco - #104149)
- Add debug logging for which adapter is used to connect bluetooth devices (@bdraco - #103264)
- Prevent Bluetooth reconnects from blocking shutdown (@bdraco - #104150)
- Bump boschshcpy to 0.2.75 (@tschamm - #104159)
- Fix Local To-do list bug renaming items (@allenporter - #104182)
- Bump aiosomecomfort to 0.0.22 (@mkmer - #104202)
- Increase Tomato request timeout (@ertechdesign - #104203)
- Fix imap does not decode text body correctly (@jbouwh - #104217)
- Fix mqtt json light allows to set brightness value >255 (@jbouwh - #104220)
- Handle attributes set to None in prometheus (@knyar - #104247)
- Catch ClientOSError in renault integration (@epenet - #104248)
- Restore removed guard for non-string inputs in Alexa (@jbouwh - #104263)
- Bump bimmer_connected to 0.14.3 (@rikroe - #104282)
- Bump pyrainbird to 4.0.1 (@allenporter - #104293)
- Bump pychromecast to 13.0.8 (@emontnemery - #104320)
- Bump ical to 6.0.0 (@allenporter - #103482)
- Bump ical to 6.1.0 (@allenporter - #103759)
Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!
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.
In the unlikely event that you are using the demo integration, you will need to ensure that your YAML configuration for demo integration is only enabled via the integration domain key and not via the entity platform configuration. The latter has been removed.
# Example configuration.yaml # This is correct demo: # This no longer works and should be removed light: - platform: demo
The OpenUV “UV Level” sensor has updated its possible state values so that translations can occur. The new values are:
If you previously used the state values of this sensor in your automations, you will need to update them to use the new values.
The option to set a custom polling interval has been removed. If are using
custom interval and really need it, you can use the
in an automation to poll at your custom pace. See our documentation on
defining a custom polling interval
for more information.
Västtrafik has upgraded all infrastructure for handling external access, including handling user accounts for 3rd party applications.
This means that users of the older infrastructure now need to migrate to use the new environment. Create a new account at https://developer.vasttrafik.se, then create a new application and subscribe to the Planera Resa v4 API.
Next replace your old client identifier and secret in your Home Assistant configuration.
For more information, see this official post from Västtrafik.
The state attributes of the WAQI air quality sensor have been moved to their own sensors. The previous state attributes are now deprecated and will be removed in 2024.5.
If you are using the state attributes of the WAQI air quality sensor, you will need to update your automations to use the new sensors.
Improved support for King of Fans (Hampton Bay) breaks previous workarounds such as template fans (example) or automations/scripts that set fan speed percentage or preset.
If you have an automation that sets speed, it will now be at one speed higher. If you set the speed at 100% before, it would actually set the speed at 75%, but now it will be 100%. If you have an automation that sets the preset to ‘on’ to get 100% speed, now the request will fail, and you will have to change the speed to 100% instead.
With this release, you will need to update your zwave-js-server instance.
You must use zwave-js-server
1.33.0 or greater (schema
- If you use the Z-Wave JS add-on, you need at least version
- If you use the Z-Wave JS UI add-on, you need at least version
- If you use the Z-Wave JS UI Docker container, you need at least version
- 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
Basic Command Class values were previously exposed as
number entities and
were disabled by default. They are now exposed as
and are enabled by default.
If you have scripts or automations that use any of these
they should be updated to use the new
light entities instead. Any previously
number entities for this Command Class can safely be deleted once
you have validated that your scripts and automations are up to date.
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:
The following integrations are also no longer available as of this release:
- Eight Sleep has been removed. The API has changed and is no longer accessible, making the integration unusable. (@raman325 - #102669)
- IMAP email content has been removed. This functionality is now available in the IMAP integration. Users have been assisted to migrate to the new integration in the past months. (@jbouwh - #101233)
- Shiftr has been removed. Shiftr.io closed its platform and is no longer available. (@stefanroelofs - #102224)
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.11