2025.10: Undo, redo, and draw me too
Boo! 👻
We just celebrated our birthday 🥳, which means it is time for spooky season; get ready for Halloween! And, hello to the October release of Home Assistant 2025.10! 🎃
This release iterates on some of the features we introduced in the last couple of releases, but also introduces some brand-new ones!
The highlight of this release is definitely the iterations of the automation editor, which gained a sidebar last release, and now has gained undo/redo functionality, a resizable sidebar, improved copy/paste, and more! Thanks for all the feedback you provided on the previous release; it made a massive difference in this release.
Using multiple wake words for voice assistants is now possible, which opens up a lot of possibilities, especially for dual-language households (like mine 😉). Dashboards get more intelligent by suggesting entities based on your usage patterns, and the AI Task can now generate images, which I’m curious to see what the community will do with it!
Enjoy the release!
../Frenck
- Automation editor
- AI Task - Draw me a sheep
- Dashboards get smarter - let your home suggest what to show
- Voice
- Integrations
- Other noteworthy changes
- Need help? Join the community
- Backward-incompatible changes
- All changes
A huge thank you to all the contributors who made this release possible! And a special shout-out to @JLo
Automation editor
In the last release, we introduced a new layout for the automation editor, and your feedback has been invaluable in helping us refine it!
This release fixes a few of the most common issues we managed to gather from all of you. Thanks for all the feedback! ❤️
The sidebar is resizable
Working on an action that is too complex for a small sidebar? Maybe one with a few YAML fields? You can now resize the sidebar to adapt the layout to your current task!

CTRL+V
We previously introduced keyboard shortcuts to copy and cut.
Pasting was more complex to bring to life because you can paste a block (trigger, condition, action) in many different locations in your automation. In this release, we introduce a really simple pattern. If you previously copied a block, you can paste it below any block simply by selecting it and pressing CTRL+V.
Another very simple, but very welcome, quality-of-life improvement to the automation editor!

The overflow menu is back
We initially relocated the overflow menu (the menu that appears when you click the ⋮
) with all the options related to a block on the sidebar, thinking this would make the flow cleaner.
Due to popular demand and helpful feedback that some actions were more difficult to reach (such as testing a condition or running an action), we decided to bring it back to the main section of the editor as well.

Undo/Redo
We’ve all been there: you’re building a complex automation, make a mistake, and want to revert it, only to find out that it’s really not simple. Up until now, the only way to revert some unsaved changes made to an automation was to close it and start over again… A very painful workflow.
This release introduces an Undo functionality (and its associated Redo). You can now undo up to 75 steps back in your automation editing history (and redo them if you want). Standard keyboard shortcuts (CTRL+Z and CTRL+Y) are also available! An amazing contribution from @jpbede

Repeat repeat repeat repeat
Finally, we noticed some unwanted complexity in our “repeat” building block, which allows you to repeat one or multiple actions for as long as you need to.
This complexity stemmed from the fact that we were trying to cover four main use cases in a single block.
We decided to split this building block into four smaller ones, with simpler descriptions explaining each use case. Nice!
Here’s how they were separated:
- Repeat multiple times - Repeat a sequence of actions a fixed number of times.
- Repeat until - Repeat a sequence of actions until a condition is satisfied. The condition is checked after each run of the sequence.
- Repeat while - Repeat a sequence of actions as long as a condition is satisfied. The condition is checked before each run of the sequence.
- Repeat for each - Repeat a sequence for each element of a list.

For our advanced users: This evolution is only cosmetic. The YAML format of the repeat block does not change; this means your existing automations will not be affected by this change.
Automation editor feedback
One of Home Assistant’s greatest strengths is our community. We’re building this automation editor together, and your input will shape where it goes next. There are two ways to get involved:
AI Task - Draw me a sheep
In 2025.8, we introduced a way to generate data using the LLM of your choice, paving the way to more AI-driven automations, dashboards, and other smart home interactions.
In this release, we introduce a way to generate images!
Now every time someone rings your doorbell, you can receive a notification with a cartoon version of the doorbell snapshot. @JLo
Automation details
alias: Demo Doorbell
triggers:
- trigger: state
entity_id:
- binary_sensor.doorbell_demo
to: "on"
actions:
- action: notify.mobile_app_iphone
data:
title: "🔔 Doorbell "
message: Processing image ...
data:
tag: doorbell
- action: ai_task.generate_data
data:
task_name: Doorbell description
instructions: |-
Someone rang my doorbell.
Instructions:
- Describe the scene, describe every person on the scene
- Count People
- Count Animals
entity_id: ai_task.ai_task_gpt_4o
structure:
summary:
description: >-
Summary of the scene and the people inside it. Keep it under 180
characters
selector:
text: null
person_count:
description: Number of person in the scene
selector:
number: null
animal_count:
description: Number of animal in the scene
selector:
number: null
attachments:
media_content_id: media-source://media_source/local/doorbell_test.png
media_content_type: image/png
metadata:
title: doorbell_test.png
thumbnail: null
media_class: image
children_media_class: null
navigateIds:
- {}
- media_content_type: app
media_content_id: media-source://media_source
response_variable: ai
- action: notify.mobile_app_iphone
data:
title: >-
🔔 Doorbell ({{ai.data.person_count}} 🧑🏻🦱 / {{ai.data.animal_count}}
🐊)
message: "{{ai.data.summary}}"
data:
tag: doorbell
- action: ai_task.generate_image
data:
task_name: Manga
instructions: Transform this image into a super cute manga!
entity_id: ai_task.google_ai_task
attachments:
media_content_id: media-source://media_source/local/doorbell_test.png
media_content_type: image/png
metadata:
title: doorbell_test.png
thumbnail: null
media_class: image
children_media_class: null
navigateIds:
- {}
- media_content_type: app
media_content_id: media-source://media_source
response_variable: ai_image
enabled: true
- action: notify.mobile_app_iphone
data:
title: >-
🔔 Doorbell ({{ai.data.person_count}} 🧑🏻🦱 / {{ai.data.animal_count}}
🐊)
message: "{{ai.data.summary}}"
data:
tag: doorbell
image: http://homeassistant.local:8123{{ai_image.url}}
enabled: true
mode: single
Image generation is already working great, and we cannot wait to see what you will build with this!
Dashboards get smarter - let your home suggest what to show
In the last release, we introduced the Home dashboard, offering a simpler way to control and monitor your smart home if you don’t have the time, energy, or need to customize your own dashboard in detail.
Now we’ve added a new concept: sections of suggested entities. This follows a basic algorithm that suggests entities you have interacted with the most in the past. It then shows these entities based on the hour of the day, with only relevant controls being suggested.

Adding prediction entities to any dashboard
If you’re creating a manual dashboard with sections, you can integrate these prediction controls directly into it. The setup follows a section-based approach:
- Add a new section.
- Open and edit the YAML of that section.
- Replace the entire section YAML with the following snippet:
strategy:
type: common-controls
title: Common controls
One of Home Assistant’s greatest strengths is our community. We’re building this dashboard together, and your input will shape where it goes next. There are two ways to get involved:
Voice
Hello, hola
For a very long time, ESPHome-based voice assistants (even the tiny Atom Echo) secretly supported multiple wake words under the hood. With this release, we’re finally opening up this feature to you!
You can now define two wake words and two assistants for every voice assistant in your home!

This makes it straightforward to support dual-language households by assigning different wake words to different languages. For example, “Okay Nabu” could be used for French, while “Hey Jarvis” is used for English.
Multiple wake words and assistants can be used for other purposes as well. Want to keep your local and cloud-based voice assistants separate? Easy! “Okay Nabu” could be used for a cloud-based assistant while “Hey Jarvis” is used for a local one.
We’d love to hear feedback on how you plan to use multiple wake words in your home!
Beep boop
After a voice command, Assist responds with a short confirmation like “Turned on the lights” or “Brightness set”. This lets you know that it understood your command and took the appropriate actions. However, if you’re in the same room as the voice assistant, this confirmation can feel redundant since you can see or hear that the appropriate actions were taken.
Starting with this release, Assist will detect if your voice command’s actions all took place within the same area as the satellite device. If so, a short confirmation “beep” will be played instead of the full verbal response. Besides being less verbose, this also serves as a quick reminder that your voice command only affected the current area.
This feature does not work for AI-enabled Assistants, as they can generate a wide variety of responses that can’t be replaced with a simple beep.
Integrations
Thanks to our community for keeping pace with the new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] and improvements to existing ones! You’re all awesome 🥰
New integrations
We welcome the following new integrations in this release:
-
Compit, added by @Przemko92
The Compit integration allows you to integrate air conditioning, ventilation, and heating controllers with Home Assistant. -
Cync, added by @Kinachi249
Connect your GE Lighting Cync smart devices—including smart lighting (formerly known as C by GE)—with Home Assistant. -
Droplet, added by @sarahseidman
Connect your Droplet devices to Home Assistant. Droplet accurately monitors your home’s water usage in real time. -
ekey bionyx, added by @richardpolzer
Integrate your ekey bionyx biometric access control systems to receive events for individual finger scans and digital inputs in your smart home. -
IRM KMI, added by @jdejaegh
Get accurate weather data from Belgium’s Royal Meteorological Institute (IRM-KMI) for precise regional forecasting. -
Libre Hardware Monitor, added by @Sab44
Monitor your computer’s hardware sensors, including CPU temperature, GPU usage, fan speeds, and system performance metrics. -
Portainer, added by @erwindouna
Manage and monitor your Docker containers, keeping track of the status of your running containers. -
Smart Meter B Route, added by @SeraphicRav
Connect your smart meter via the B Route protocol—designed for the Japanese market—to access real-time energy consumption data. -
SFTP Storage, added by @maretodoric
Set up secure remote backup locations using SFTP/SSH protocols for your Home Assistant backups and data storage. -
Usage Prediction, added by @balloob
An internal integration that provides predictions of what entities you are most likely to interact with. Used by our new Home dashboard. -
Victron Remote Monitoring, added by @AndyTempel
The Victron Remote Monitoring (VRM) integration pulls site statistics and solar production and consumption forecasts from Victron Energy’s VRM portal.
Noteworthy improvements to existing integrations
It is not just new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have been added; existing integrations are also being constantly improved. Here are some of the noteworthy changes to existing integrations:
-
Philips Hue expanded with support for MotionAware sensors on the new Hue Bridge Pro
! Thanks, @marcelveldt ! -
LG
added support to the LG ThinQ integration to now provide energy usage sensors for better energy monitoring of your devices! Nice! - Amazing work from @natekspencer
: Litter-Robot got several enhancements: last feeding sensors, food dispensed today tracking, next feeding sensors, gravity mode switch, and globe light settings for Litter-Robot 4! -
AccuWeather now provides hourly forecasts, giving you more detailed weather predictions throughout the day! Thanks, @bieniu
! - The Blue Current integration got a new start charge session action for managing your EV charging! Nice work, @NickKoepr
! - The Ecowitt integration now supports the LDS01 sensor! Great addition, @GSzabados
! -
Reolink cameras got several new features including encoding select entity, Home Hub siren support, and color temperature support for light entities! Awesome work from @starkillerOG
! - Geocaching enthusiasts will love the new cache sensors added to the Geocaching integration by @marc7s
! Nice if you have hidden one! -
Lutron Caseta now supports multi-tap actions for more advanced button control! Thanks, @rlopezdiez
! - Thanks to @alexqzd
, SmartThings air conditioners can now control the AC display light! -
Shelly devices received massive updates including illuminance sensor for Plug US Gen4, presence component entities, virtual buttons support, object-based entities, presence zone component support, and cable unplugged sensor for Flood Gen4! Great work from @chemelli74
, @bieniu , and @thecode ! - The SwitchBot integration expanded device support with Plug Mini EU, RelaySwitch 2PM, and K11+ Vacuum! Thanks, @zerzhang
! - The SwitchBot Cloud integration got several improvements including AC off support, humidifier platform, Plug-Mini-EU support, and Climate Panel support! Great work from @SeraphicRav
and @XiaoLing-git ! - Thanks to @timmo001
, the System Bridge integration now includes a power usage sensor for better system monitoring! - Exciting to see that the Tasmota integration now supports camera functionality! Nice addition from @anishsane
! - Using the Tibber integration? It now provides 15-minute price data, which goes into effect on October 1st. Good timing, @Danielhiversen
! - The Tuya integration received extensive updates with support for various new device categories and sensors: energy sensors for TDQ devices, power sensors for ZNDB devices, energy sensors for DLQ devices, solar inverter support, energy consumption for several smart switches, PM10 air quality monitoring, motor rotation mode for curtains that support it, charge state for siren alarms, cooking thermometer support, cat toilet support, electric desk support, white noise machine support, and water quality sensor support! What an impressive list! Thanks, @zzysszzy
, @rokam , and @mhalano ! - The Workday integration now has a calendar that you can view from the calendar sidebar! Thanks, @gjohansson-ST
! - The ntfy integration got a big upgrade! You can now send richer, customizable notifications with tags, icons, URLs, and attachments. Plus, with the new event platform, you can subscribe to topics and trigger automations from incoming messages. Thanks, @tr4nt0r
!
Integration quality scale achievements
One thing we are incredibly proud of in Home Assistant is our integration quality scale. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.
This release, we celebrate several integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have improved their quality scale:
-
3 integrations reached platinum 🏆
-
Android TV Remote, thanks to @tronikos
-
Miele, thanks to @astrandb
-
Sleep as Android, thanks to @tr4nt0r
-
Android TV Remote, thanks to @tronikos
-
2 integrations reached silver 🥈
-
Samsung Smart TV, thanks to @chemelli74
-
Whirlpool Appliances, thanks to @abmantis
-
Samsung Smart TV, thanks to @chemelli74
-
3 integrations reached bronze 🥉
This is a huge achievement for these integrations and their maintainers. The effort and dedication required to reach these quality levels is significant, as it involves extensive testing, documentation, error handling, and often complete rewrites of parts of the integration.
A big thank you to all the contributors involved! 👏
Now available to set up from the UI
While most integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can be set up directly from the Home Assistant user interface, some were only available using YAML configuration. We keep moving more integrations to the UI, making them more accessible for everyone to set up and use.
The following integrations are now available via the Home Assistant UI:
-
Nederlandse Spoorwegen (NS), done by @heindrichpaul
-
Satel Integra, done by @Tommatheussen
Other noteworthy changes
There are many more improvements in this release; here are some of the other noteworthy changes:
- The “Logbook” has been renamed to “Activity” in the UI. This better reflects its purpose of showing a timeline of activities and events in your Home Assistant instance.
-
Matter continues to expand with occupancy sensing hold time, climate running state for heat/cool fans, and thermostat outdoor temperature sensors! Great contributions from @lboue
and @virtualbitzz ! - Lawn mower entities now support start mowing and dock intents for better voice control! Thanks, @piitaya
! - The analog clock we introduced last release got some more options! You can now enable a smooth motion for the seconds hand. Beautiful, @timmo001
! - Need the version of the Home Assistant Mobile Companion App you are using? If you have installed the latest versions of our apps, the version is now shown on the about page in the settings menu! Nice one, @TimoPtr
! - The thermostat card now supports water heater entities. Thanks, @karwosts
! - Thanks to @cr7pt0gr4ph7
, the add-on configuration UI has gotten support for more complex configurations; this means you will get a better experience when configuring add-ons with more complex options (like lists or user accounts). Well done! - Talking about add-ons, we now include switch entities for those, making it easier to control your add-ons. Thanks, @felipecrs
! - Using a webhook trigger in your automation? You can now make it even more dynamic by using a template for the
webhook_id
. Thanks, @RoboMagus! - We now have support for
MCF
(1000 Cubic Feet) as an alternate unit of measure for volume, thanks to @ekobres, @xtimmy86x added m/min
for speed sensors, and @piotoadded inH₂O
pressure unit support. Nice!
New more information dialog for media player entities
This one, we have @jpbede

Sync zooming charts in the history panel
When you have multiple charts in the history panel, zooming in on one chart will now automatically zoom in on all other charts as well. This makes it easier to compare data across different entities. Well done, @birrejan

Template & YAML editors get a toolbar
@TCWORLD
The new toolbar also includes undo and redo buttons, bringing the same convenient undo and redo functionality we introduced for the automation editor to these code editors as well. Plus, there’s a nice little copy button to quickly copy your code! Nice!

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, and don’t forget to join our amazing forums.
Found a bug or issue? Please report it in our issue tracker
Are you more into email? Sign up for the Open Home Foundation Newsletter to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.
Backward-incompatible changes
We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes, it is inevitable.
We always make sure to document these changes to make the transition as easy as possible for you. This release has the following backward-incompatible changes:
Targeting labels in automations and scripts
Configuration and diagnostic entities with a label assigned to them will now be targeted/affected by service actions targeting that label. Previously, those entity categories were ignored on service action calls targeting labels.
If you have an automation or script with an action targeting a label, make sure that only entities that should be affected have that label assigned, even if they are config or diagnostic entities.
(@abmantis
HERE Travel Time
HERE deprecated the previous free tier. The new Base Plan has 5000 free requests per month. The automatic update interval of the HERE Travel Time integration changed from 5 minutes to 30 minutes, so one route can be supported without costs.
Home Connect
The Home Connect Alarm clock entity has been removed from the time platform, please use the number entity instead.
Shelly
Removed previously deprecated extra attributes, please review your automations.
Shelly Gas:
- The Detected attribute of the Gas entity has been removed, the Gas detected entity should be used instead.
- The Self test attribute of the Operation entity has been removed, the Self test entity should be used instead.
Shelly Air:
- The Operational hours of the Lamp Life entity has been removed, if you still want that info please use a template entity.
(@chemelli74
Slide Local
The effect of the property “invert position” is extended from the position itself to the status (open or closed). With this adjustment, it is no longer necessary to use cover templates to invert the position to correct the status. If you have covers with inverted position and are using the state in automations, you must adjust the automations accordingly.
SmartThings
The windFree
preset mode for the air conditioner has been renamed to wind_free
to allow translation to happen. Please adapt automations accordingly.
(@joostlek
Tibber
Switch Tibber electricity pricing to 15-minute intervals.
- The
tibber.get_prices
action now returns 15-minute data instead of hourly. - The
price_level
attribute is removed and no longer supported. - The
intraday_price_ranking
attribute is now scaled to (0,1) to better support 15-minute prices.
Zabbix
We removed official support for Zabbix 5.0 from the integration. While this does not directly break connections to Zabbix 5.0, future updates will not check for compatibility with this version. Note that Zabbix 5 LTS left its support window in May of 2025.
(@nolsto
ZhongHong
ZhongHong’s climate entities set_fan_mode
action behavior has changed.
The fan mode values are now converted to lowercase instead of uppercase to ensure compliance with the standard convention.
If you have automations relying on uppercase fan mode values, you will need to update them to use lowercase values instead.
(@Blear
If you are a custom integration developer and want to learn about changes and new features available for your integration: Be sure to follow our developer blog. The following changes are the most notable for this release:
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 2025.10