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!
Don’t forget to join our release party live stream on YouTube
1 November 2023, at 13:00 PDT / 21:00 CET!
There is a lot to-do!
There are many things to do in our lives, which is what
@allenporter realized too! We now have a new entity type
in Home Assistant: To-do list entities!
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 (fully local)
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! ✔
Shopping lists are now to-do’s too!
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.
Integrations providing your to-dos
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.
As of this release, you can bring in your Todoist and Google Tasks
to-do lists to Home Assistant as well!
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.
Matter 1.2 is here!
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
Customize the information shown in your Tile cards
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.
Select any date range in the energy dashboard
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!
New conditions for the conditional card
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
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.
Numeric state condition
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.
Restarting into safe mode
You can now restart Home Assistant in safe mode. This mode will disable all
custom integrations and custom frontend resources (for example, custom cards
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!
Set up Improv devices directly from Home Assistant!
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.
Improv Wi-Fi is a fully open standard that can
be freely adopted and implemented by any hardware creator, no matter how big
or small. Improv Wi-Fi is also supported by ESPHome.
Nice job on this one @emontnemery!
Configuring script fields for your script in the UI
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
Other noteworthy changes
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.
- 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.
- @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:
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:
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
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.
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
(@gjohansson-ST – #100867) (documentation)
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.
(@bachya – #101978) (documentation)
The OpenWeatherMap rain and snow sensors now have a different unit
of measurement (
mm/h instead of
mm) and a different device
precipitation_itensity instead of
(@MatteoGheza – #101485) (documentation)
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.
(@engrbm87 – #98858) (documentation)