Home Assistant Core 2023.5! 🎉
What an exciting release we have for you this month! This release is all about voice (well, almost fully), and I’m super excited we can ship you all this truly amazing stuff!
I’ve been following the progress of this all being built this month, and really, I’ve been mindblown multiple times a week. So what is in here? Well, you can now actually talk to Home Assistant! 🤯
I really appreciate that all these voice elements have been built the Home Assistant way: to be fully configurable and extendable. Giving you choices, including entirely local options for your own voice assistant.
This release is packed! And we are not even halfway through Home Assistant’s Year of the voice yet…
Enjoy the release!
- Let’s talk!
- Manage what is exposed to your voice assistants
- Improved entity setting
- Configuring the LEDs of your Home Assistant Yellow
- Webhooks trigger options
- New Assist pipeline and language selectors
- Other noteworthy changes
- New Integrations
- Integrations now available to set up from the UI
- Release 2023.5.1 - May 4
- Release 2023.5.2 - May 5
- Release 2023.5.3 - May 14
- Release 2023.5.4 - May 23
- Need help? Join the community!
- Breaking Changes
- Farewell to the following
- All changes
Don’t forget to join our release party live stream on YouTube 3 May 2023, at 12:00 PDT / 21:00 CEST!
Our goal for 2023 is to let you control Home Assistant in your own language: It is Home Assistant’s Year of the Voice! After chapter 1 in January, we announced chapter 2 in this exciting journey last week!
This release ships everything (plus more) that was announced! This means, as of this release, you can actually start talking to Home Assistant! 🎙️
Here is a quick summary of all that has been announced, linked to the place you can read more about each of them:
- Compose your own voice assistant using the new assist pipelines
- Voice Assistant powered by Home Assistant Cloud
- Fully local text-to-speech using Piper
- Fully local speech-to-text using OpenAI Whisper
- The Wyoming protocol and integration
- Create your own ESPHome-powered voice assistant
- The Voice-over-IP integration, call Home Assistant ☎️
To help you get started, we made sure the documentation is perfect, including some cool project tutorials to jump-start your own private voice assistant journey:
- The world’s most private voice assistant
- Giving your voice assistant a Super Mario personality using OpenAI
- Installing a local Assist pipeline
- The $13 tiny ESPHome-based voice assistant
If you missed last week’s live stream, be sure to check it out. It is full of live demos and detailed explanations of everything packed into this release. The recording of the live stream:
This new settings item gives you access to many fantastic new voice features; it also provides a new Expose tab where you can manage which entities are exposed to your Assist, Alexa, and Google Assistant.
It gives an overview of what entities you have exposed to your voice assistants and easily remove or add new ones. Clicking on an entity in this screen will bring up the voice assistant setting for that entity, allowing you to turn on/off the entity’s exposure to a specific voice assistant and manage the entity’s aliases.
This currently supports our Assist, and Amazon Alexa and Google Assistant via Home Assistant Cloud.
Some nice tweaks have been made to the entity settings dialog, making it easier to use and look cleaner.
The entity settings dialog used to have an expandable advanced section, which you could expand to access features like showing/hiding/disabling entities, changing the area, etc.
The advanced section has been removed, and all its features have been reorganized. So, no features were lost while providing a much nicer interface.
And, since this is the year of the voice, you may notice the “Voice assistants” option in the above screenshot, which will bring up:
This allows you to quickly change the voice assistants the entity is exposed to, including its aliases, without having to navigate back to the voice assistants panel in the main settings screen.
The enclosure of our amazing Home Assistant Yellow allows you to look at the beautiful board and parts inside of it.
However, the LEDs on the board might light up your environment when it is dark in an unwanted way. For example, when you sleep in the same room as your Home Assistant Yellow is in.
As of this release, you can configure (turn on/off) the disk, heartbeat, and power LEDs of your Home Assistant Yellow by using the Configure button on the Settings > Hardware page.
Webhooks have been extended this release. We now have support for webhooks
that use the
GET HTTP method!
But that is not all. Thanks to @esev, we also got some new security features for our webhook triggers. You can now set which HTTP methods your webhook trigger work with and the ability to limit webhooks to only work on your local network.
If you are building automation or scripts Blueprints, you can now leverage two new UI selectors for use with your Blueprints: an Assist pipeline selector and a language selector.
The language selector let's a user choose from a list of languages.
You could, for example, leverage this in a notification Blueprint to allow setting a different language on a text-to-speech notification.
There is much more juice in this release; here are some of the other noteworthy changes this release:
- Home Assistant Operating System v10 has been released! The ODROID M-1 is now supported, improved data disk support and memory management. Bug fixes and reliability improvements for Bluetooth and Thread.
- Matter now has support for covers, thanks @hidaris!
- The process of making backups is now faster 🚀, thanks @bdraco!
- @bdraco also gave the ONVIF integration some love, which should improve the stability of the integration. Nice!
- You can now set up multiple instances of the OpenAI Conversation integration with, for example, different prompts. Thanks, @balloob!
- @rubenbe added direction support to MQTT fans! Nice!
- BTHome added support for button and dimmer events. This means it supports the brand new Shelly BLU Button1! Thanks, @Ernst79!
- The Supervisor can now create repair issues for some of the issues it detected on your system. Awesome @mdegat01!
- @mib1185 added a service to allow sorting of the Shopping list. Thanks!
- @depoll added an attribute to the Person entities that list the device trackers for this person. Very useful for templates! Thanks!
- The NextDNS integration added a whole bunch of new parental control switches, thanks @bieniu!
- Synology DSM can now browse your Synology Photos in the media browser. Cool addition, @lodesmets!
- Simplepush now supports attachments, thanks to @tymm!
- Some Z-Wave notification sensors won’t clear to idle automatically. Now you can use the new notification idle buttons to idle them manually!
We welcome the following new integrations in this release:
Android TV Remote, added by @tronikos
Launch apps and control your Android TV device.
RAPT Bluetooth, added by @sairon
Integrates RAPT Pill hydrometers into Home Assistant.
Voice over IP, added by @synesthesiam
Talk to Assist using an analog phone and a VoIP adapter.
Wyoming, added by @synesthesiam
Connect to voice services supporting the Wyoming protocol.
Roborock, added by @Lash-L
Control your RoboRock vacuum maintaining Roborock app support.
Anova, added by @Lash-L
Control Anova sous vides with Wi-Fi capabilities.
This release also has a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. This one is new:
The following integrations are now available via the Home Assistant UI:
- Brottsplatskartan, done by @gjohansson-ST
- qBittorrent, done by @chrisx8
- Snapcast, done by @luar123
- Workday, done by @gjohansson-ST
- Fix onvif setup when time set service is not functional (@bdraco - #92447) (onvif docs)
- Fix onvif cameras with invalid encodings in device info (@bdraco - #92450) (onvif docs)
aionotionto 2023.05.0 (@bachya - #92451) (notion docs)
- Fix lifx light strips when color zones are not initially populated (@bdraco - #92487) (lifx docs)
- Bump bluetooth-auto-recovery 1.1.2 (@bdraco - #92495) (bluetooth docs)
- Force migration of cloud settings to exposed_entities (@emontnemery - #92499) (cloud docs)
- Update frontend to 20230503.2 (@bramkragten - #92508) (frontend docs)
- Fix transmission error handling (@DDanii - #91548) (transmission docs)
- Fix power sensor state_class in Netatmo integration (@hex7c0 - #92468) (netatmo docs)
- Fix for SIA Code not being handled well (@eavanvalkenburg - #92469) (sia docs)
- Fix scene service examples (@karwosts - #92501) (scene docs)
- Fix blocking I/O in the event loop when starting ONVIF (@bdraco - #92518) (onvif docs)
- Improve cloud migration (@emontnemery - #92520) (cloud docs)
- Bump aioesphomeapi to 13.7.3 to fix disconnecting while handshake is in progress (@bdraco - #92537) (esphome docs)
- Handle invalid ZHA cluster handlers (@puddly - #92543) (zha docs)
- Allow duplicate state updates when force_update is set on an esphome sensor (@bdraco - #92553) (esphome docs)
- Bump elkm1-lib to 2.2.2 (@bdraco - #92560) (elkm1 docs)
- Re-run expose entities migration if first time failed (@balloob - #92564) (cloud docs)
- Fix hassio get_os_info retry (@epenet - #92569) (hassio docs)
- Bump hatasmota to 0.6.5 (@emontnemery - #92585) (tasmota docs)
- Improve reliability of ONVIF subscription renewals (@bdraco - #92551) (onvif docs)
- Lower scan interval for OpenSky (@joostlek - #92593) (opensky docs)
- Update frontend to 20230503.3 (@bramkragten - #92617) (frontend docs)
- Fix missing ONVIF events when switching from PullPoint to webhooks (@bdraco - #92627) (onvif docs)
- Add support for visitor detections to onvif (@bdraco - #92350) (onvif docs)
- Fix duplicate ONVIF sensors (@bdraco - #92629) (onvif docs)
- Roborock continue on failed mqtt disconnect (@Lash-L - #92502) (roborock docs)
- Bump bimmer_connected to 0.13.3 (@rikroe - #92648) (bmw_connected_drive docs)
- Fix parallel_updates being acquired too late for entity executor jobs (@bdraco - #92681)
- Always request at least one zone for multi-zone LIFX devices (@bdraco - #92683) (lifx docs)
- Fix onvif reauth when device returns a http 401/403 error (@bdraco - #92690) (onvif docs)
aionotionto 2023.05.1 (@bachya - #92697) (notion docs)
- Bump pyoverkiz to 1.7.8 (@iMicknl - #92702) (overkiz docs)
- Bump aiowebostv to 0.3.3 to fix Python 3.11 support (@thecode - #92736) (webostv docs)
- Update deprecated functions in SIA (@eavanvalkenburg - #92737) (sia docs)
- Bump aioesphomeapi to 3.7.4 to fix proxied BLE connections not retrying right away on error (@bdraco - #92741) (esphome docs)
- Increase timeout to 30 seconds for Mazda integration (@bdr99 - #92744) (mazda docs)
- Fix zwave_js services example data (@karwosts - #92748) (zwave_js docs)
- Bump asyncsleepiq to 1.3.5 (@kbickar - #92759) (sleepiq docs)
- Update aioairzone to v0.5.3 (@Noltari - #92780) (airzone docs)
- Fix race in Alexa async_enable_proactive_mode (@emontnemery - #92785) (alexa docs)
- Fix Airzone Auto operation mode (@Noltari - #92796) (airzone docs)
- Update aioairzone to v0.5.5 (@Noltari - #92812) (airzone docs)
- Don’t try to restore unavailable nor unknown states (@dgomes - #92825) (integration docs)
- Bump sonos-websocket to 0.1.1 (@jjlawren - #92834) (sonos docs)
- Allow “no” to match “nb” in language util (@synesthesiam - #92862)
- Bump ZHA dependencies (@puddly - #92870) (zha docs)
- Add ONVIF services to diagnostics (@bdraco - #92878) (onvif docs)
- Bump UPB integration library to 0.5.4 (@gwww - #92879) (upb docs)
- Bump bluetooth-auto-recovery to 1.2.0 (@bdraco - #92893) (bluetooth docs)
- Fix already_configured string in workday (@gjohansson-ST - #92901) (workday docs)
- Fix uptime sensor deviation detection in Fritz!Tools (@mib1185 - #92907) (fritz docs)
- Bump volvooncall to 0.10.3 to fix sensor type error (@decompil3d - #92913) (volvooncall docs)
- Bump eternalegypt to 0.0.16 (@tkdrob - #92919) (netgear_lte docs)
- Bump python-vehicle to 1.0.1 (@joostlek - #92933) (rdw docs)
- Fix remove of device when surveillance station is not used in Synology DSM (@mib1185 - #92957) (synology_dsm docs)
- Bump reolink-aio to 0.5.15 (@starkillerOG - #92979) (reolink docs)
- Bump bellows to 0.35.5 to fix Aqara Zigbee connectivity issue (@puddly - #92999) (zha docs)
- Disable cleanup_closed for aiohttp.TCPConnector with cpython 3.11.1+ (@bdraco - #93013)
- Fix sslv2/sslv3 with unverified connections (@bdraco - #93037)
- Fix a series of bugs due to Notion API changes (@bachya - #93039) (notion docs)
- Fix weather handling in zamg (@killer0071234 - #85635) (zamg docs)
- Fix onvif cameras that cannot parse relative time (@bdraco - #92711) (onvif docs) (dependency)
- Update solax state class for sensors with no units (@MichaelMraka - #92914) (solax docs)
- Fix NWS error with no observation (@MatthewFlamm - #92997) (nws docs)
- Increase timeout to 30 seconds for homeassistant_alerts integration (@N3rdix - #93089) (homeassistant_alerts docs)
- Fix ONVIF cameras that change the xaddr for the pull point service (@bdraco - #93104) (onvif docs)
- Bump pyunifiprotect to 4.9.0 (@bdraco - #93106) (unifiprotect docs) (dependency)
- Fix last imap message is not reset on empty search (@jbouwh - #93119) (imap docs)
accuweatherto version 0.5.2 (@bieniu - #93130) (accuweather docs) (dependency)
- Better handling of source sensor unavailability in Riemman Integration (@dgomes - #93137) (integration docs)
regenmaschineto 2023.05.1 (@bachya - #93139) (rainmachine docs) (dependency)
- Bump pyatv to 0.11.0 (@bdraco - #93172) (apple_tv docs)
- Fix china login for bmw_connected_drive (@rikroe - #93180) (bmw_connected_drive docs)
- Add Fan and Dry HVAC modes to Advantage Air MyTemp preset (@Bre77 - #93189) (advantage_air docs)
- Disconnect yale access locks at the stop event (@bdraco - #93192) (august docs) (yalexs_ble docs) (dependency)
- Add support for Yale Home brand to august (@bdraco - #93214) (august docs)
- Bump async-upnp-client to 0.33.2 (@StevenLooman - #93329) (dependency)
aionotionto 2023.05.5 (@bachya - #93334) (notion docs)
- Bump zwave-js-server-python to 0.48.1 (@raman325 - #93342) (zwave_js docs) (dependency)
- Bump glances_api to 0.4.2 (@freeDom- - #93352) (glances docs)
- Fix august configuration url with Yale Home brand (@bdraco - #93361) (august docs) (dependency)
- Bump httpx to 0.24.1 (@epenet - #93396) (dependency)
- Fix non threadsafe call xiaomi_aqara (@bdraco - #93405) (xiaomi_aqara docs)
- Bump Matter server library to 3.4.1 and address changes (@marcelveldt - #93411) (matter docs) (dependency)
- Fix race in tracking pending writes in recorder (@bdraco - #93414) (recorder docs)
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.
The “Android TV” integration has been renamed to “Android Debug Bridge”.
This rename is because that is what it actually controlled/provided. With the addition of the Android TV Remote integration in this release, we wanted to reduce possible confusion in the future.
The min/max target humidities for (de)humidifier device exposed over HomeKit has changed. The HomeKit UI will now show the real relative humidity. When the slider in HomeKit goes above or below the max/min set humidity, it will be set back to the max/min allowed humidity.
Default HomeKit to listen on all interfaces to match Home Assistant behavior.
To limit HomeKit to specific network interfaces, specify an
For Reolink doorbells, the “Status LED” light entity is replaced by a
“Status LED” select entity. The switch
off state corresponds to the select
Auto, and the switch
on state corresponds to the select
Auto & always on at night. An additional
Stay off state is now available.
- Muted groups with stream playing will have state
- Connected clients will not have state
onanymore but use the same states as groups:
- Disconnected clients have state
offbecause the Snapcast server still accepts commands.
The unit conversion for all memory, storage, and network utilization-related sensors was corrected from binary (1024) to decimal (1000) base to be in line with the used measurement units (eq. MB = 1.000.000 bytes).
You may need to update the historically recorded units for these sensors via the statistics page under developer tools.
ensure_ascii argument for
to_json in Jinja templates now defaults to
False, allowing us to use a faster JSON encoder by default.
This should not be an issue for most, as JSON parsers broadly accept Unicode
input. If you still need to encode Unicode characters inside JSON strings,
True explicitly to restore the old behavior.
The previously deprecated YAML configuration of the Universal Devices ISY/IoX integration has been removed.
Universal Devices ISY/IoX is now configured via the UI. Any existing YAML configuration has been imported in previous releases and can now be safely removed from your YAML configuration files.
The built-in percentage unit
% is now used for relative humidity and absolute
humidity instead of the custom units
The following custom ISY994 services have been removed:
These services had been previously deprecated in favor of built-in services
button entities. Please update your automations
and dashboards to use the new entities and/or built-in services if you have
Dusk/Dawn nodes on Insteon Motion Sensors now have their states inverted to correctly show “Light detected” during daylight and “No light” when the dusk sensor is active.
This is reversed from previous behavior. If you rely on this sensor in your automations, they must be updated.
Two new Webhook trigger options have been added that limit how a webhook can
trigger an automation. A new allowed_methods option can be used to control
which HTTP request methods can activate the trigger (
PUT). And the
local_only option is used to allow devices outside your local
network to activate the trigger.
Previously all webhook triggers could be activated by
methods from any device (local or on the internet). With the new options, only
PUT are enabled by default.
In Home Assistant Core 2023.7, any webhook trigger that does not set
to false can only be activated by devices on the same network as Home Assistant.
Click the gear/cog icon beside the Webhook ID to update your webhook triggers. Then select an appropriate value for Only accessible from the local network. It is necessary to deselect the option for the Save button to appear. Then reselect the option if it should be enabled. This will make the repair warning go away.
With this release, you will need to update your
You must use
zwave-js-server 1.28.0 or greater (schema 28).
- If you use the
Z-Wave JSadd-on, you need at least version
- If you use the
Z-Wave JS UIadd-on, you need at least version
- If you use the
Z-Wave JS UIDocker 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-serverinstance to at least
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:
- Coronavirus (COVID-19) has been removed. The data is no longer provided by the source provider. (@emontnemery - #90934)
- Xbox Live was previously deprecated and has now been removed. The Xbox integration is still available. (@MartinHjelmare - #90592)
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.5