2025.8: The summer of AI ☀️

Home Assistant 2025.8! 🎉

In most parts of the world, summer mode is in full effect! ☀️ Many at the Open Home Foundation and many of our contributors are enjoying a well-deserved break from work and open source. I hope that you are maybe enjoying a well-deserved break as well! 🏖️

Summer breaks or not, we are currently very busy with our next product launch! In case you have missed it, this upcoming Wednesday, August 13 (12:00 PM PT, 3:00 PM ET, 21:00 CEST), we will have an extra live stream to announce the next big thing in the Home Assistant Connect series! Be sure to head over to YouTube to hit the reminder button so you don’t miss it! Z-Wave is not dead! 🌊

Alright, on to the release! We keep moving during summer and are excited to bring you the August release of Home Assistant!

Let’s start with my personal favorite of this release: The improved experience when viewing a group, for example, a group helper with lights. 💡 When viewing such a group entity, you can now control the individual members of that group directly in that dialog. Super useful! I’m pretty sure that will be used a lot in our house.

But as the release title suggests, this release brings in an important foundation for new AI opportunities in Home Assistant: AI Tasks. Think of it as a way to delegate tasks to AI and get back the result of that task in a structured way so it can be used. Sounds vague? Dive into the release notes below!

Enjoy the release!

../Frenck

AI in Home Assistant in 2025

We introduced our first AI integration in Home Assistant 2023.2 where users could let OpenAI handle their interactions with Home Assistant Voice. Since that time, AI has seen a big surge in popularity within the Home Assistant community for all kinds of use cases. Funny notifications when the laundry is done, analyzing what’s happening on a camera or skipping the song when AI determines it’s a country song 😅.

Though AI gets many people excited, there are still people who would prefer not to have this technology in their smart homes. We want to accommodate everyone’s choices, whether that’s to use AI or not. These features won’t appear unless you set up an AI integration and configure some specific settings.

Last year, we sat down to determine how all these use cases, all complicated to achieve, could be made accessible to everyone. The first thing that came out of this was integration sub-entries, which we shipped in the last release. It allows users to configure their Ollama server or API key for OpenAI once, and then create many different agents using different models or configuration underneath. In this release we’re building two new things you can optionally enable via these new sub-entries for AI integrations: AI tasks and Suggest with AI. We’re also introducing a new integration, OpenRouter, which is a unified LLM interface giving access to over 400 extra LLM models.

Big thanks to our AI community contributors: @AllenPorter, @shulyaka, @tronikos, @IvanLH, and @joostlek!

Streaming Text-to-Speech for Home Assistant Cloud

When you use Home Assistant Voice to talk to an AI, you can do a lot more than just control your home. LLMs can summarize the state of your home, and when using LLMs from Google and OpenAI, they can search the web to answer your questions with up-to-date information. This is great, but these answers can become quite long. Previously, voice responses wouldn’t begin until the AI had finished generating the entire answer, so longer replies meant a longer wait before anything was read aloud.

When a user waits for Home Assistant Voice to respond, long wait times really hurt the experience. We have overhauled Home Assistant so our Text-to-Speech system can start generating the response audio before the full response is done generating. Last release we launched this for Piper, our local Text-to-Speech system. In this release we’re making this available to the voices included in Home Assistant Cloud – the best way of supporting the Home Assistant project.

This improvement will especially benefit users who use local AI (which can be slow in generating responses) or users who play long announcements on their speakers.

Integrate AI into your workflow using AI Task

AI Task is a new integration that allows you to generate data using AI. After you add the “AI Task” sub-entry in your AI of choice, the entity will appear in the integration. This allows you to attach files or cameras and ask it what is happening. The output can either be given in text or formatted in a data structure of your choice. This is all accessible from the new ai_task.generate_data action, which can be embedded in automations, scripts, and template entities.

Below is an example of a template entity that updates every five minutes and counts the number of chickens in the coop. Example inspired by this blog post.

template:
  - triggers:
      - trigger: homeassistant
        event: start
      - trigger: time_pattern
        minutes: "/5"
    actions:
      - action: ai_task.generate_data
        data:
          task_name: Count chickens
          instructions: >-
            This is the inside of my goose coop. How many birds (chickens, geese, and
            ducks) are inside the coop?
          structure:
            birds:
              selector:
                number:
          attachments:
            media_content_id: media-source://camera/camera.chicken_coop
            media_content_type: image/jpeg
        response_variable: result
    sensor:
      - name: "Chickens"
        state: "{{ result.data.birds }}"
        state_class: total

To help get started with AI task, we’ve prepared a blueprint to analyze camera footage:

Work faster with Suggest with AI buttons

The AI Task integration has one extra feature under its belt: default entities. You can go to Settings > System > General and configure what AI Task entity you want to use as the default. With a default set, you no longer have to specify an entity when generating data, making it easier to share blueprints.

Screenshot showing the generic setting where you can set the default AI task entity to use

Setting a default also does more: When a default is configured, and only then, a new type of button will start showing up in different places in Home Assistant:

Image of the new Suggest with AI button which you can find in Home Assistant now

This button is not visible by default and will only appear if you enable it in the “AI suggestions” settings. For this release, the button has been added to the save dialog for automations and scripts. It helps users come up with a name, description, category, and label, while taking into account your current labels and other automation/script names. Keep in mind that generating this text sends the full contents of the automation or script, along with the names of your other automations/scripts and labels, to the LLM. So, this may be a task you will want to relegate to your shiny new local LLM.

Screenshot showing the new AI suggestions button in the save automation dialog and the suggestions it made for this automation

Area dashboard improvements

We’ve added a small improvement to the areas dashboard based on your feedback. You can now choose to show the first camera in an area, or its image or icon, in the area dashboard editor. It’s a simple way to make certain area cards stand out a bit more—especially handy if you want quicker visual access to specific spaces.

Screen recording showing the area dashboard editor with options to display camera feeds, images, or icons in area cards

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:

  • OpenRouter, added by @joostlek
    Access over 400 different large language models through the OpenRouter API, providing a unified interface for AI integrations in your automations.
  • Ubiquiti UISP airOS, added by @CoMPaTech
    Monitor and manage airOS devices through their local API, providing performance metrics and device status information of your wireless point-to-point infrastructure.
  • Uptime Kuma, added by @tr4nt0r
    Monitor the uptime and status of your services and websites with Uptime Kuma, keeping track of your infrastructure health directly in Home Assistant.
  • Volvo, added by @thomasddn
    Connect your Volvo vehicle to Home Assistant for remote monitoring of battery status, location, and other vehicle information.

This release also has new virtual integrations. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These ones are new:

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:

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:

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 integration is now available via the Home Assistant UI:

Other noteworthy changes

There are many more improvements in this release; here are some of the other noteworthy changes:

  • @mib1185 added a new device class for absolute humidity with support for both sensor and number entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more]. Nice!
  • Group management was improved by @piitaya, who added the ability to reorder members within a group, making it easier to organize your device groups exactly how you want them. Thanks!
  • System diagnostics was extended by @balloob with the addition of a device analytics dump download feature. Awesome!
  • The History Stats integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] now includes a preview in the options flow, thanks to @karwosts. This makes it easier to configure your history statistics.
  • The Template integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] received a massive update from @Petro31! Here’s what’s new:
    • Trigger-based numeric sensors can now be set to unknown state
    • The cover, fan, light, lock, and vacuum platforms are now supported in the UI
    • Availability templates are now supported in the UI for all available platforms
    • Preview entity has been added to the UI for alarm control panel and select platforms
    • Template locks now support the opening state
    • The alarm control panel, fan, light, lock, switch, and vacuum platforms now support all optimistic YAML modes

Control individual members of a group

Groups are a great way to control multiple entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] at once, but sometimes you want to control individual members of a group.

So, for this release, @piitaya and @MindFreeze improved the entity information dialog to show the individual members of a light and cover group, allowing you to control them directly from that dialog. Super useful!

Screenshot showing the control of the individual group members when viewing a group helper entity in Home Assistant

Weekdays in time trigger

The time trigger is already very useful, but @hmmbob had a feature request that could improve it even more.

He suggested adding the ability to specify weekdays in the time trigger, allowing users to create automations that only trigger at a specific time on specific days of the week.

Screenshot showing the new weekday option when using the time trigger

This feature has been implemented in this release, allowing you to specify the weekdays in the time trigger. This is especially useful for automations that need to run on specific days, such as weekdays or weekends.

Energy flow on your energy dashboard

The Home Assistant energy dashboard is great, but as of this release it’s even a little better!

Based on the Sankey Chart custom card, @MindFreeze added a new energy flow visualization for the energy dashboard, which shows exactly where your energy is coming from and where it is going to.

Screenshot showing the new energy flow on the Home Assistant energy dashboard

Really cool addition to the energy dashboard @MindFreeze!

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 to get it fixed! Or check our help page for guidance on more places you can go.

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:

Android Debug Bridge (ADB)

Android Debug Bridge media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Android Debug Bridge media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148130) (documentation)

Apple TV

Apple TV media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Apple TV media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148132) (documentation)

Cambridge Audio

Cambridge Audio media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Cambridge Audio media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148133) (documentation)

Ecovacs

The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.

Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.

(@mib1185 - #149084) (@edenhaus - #149581) (documentation)

Husqvarna Automower

The summary field of calendar events provided by the Husqvarna Automower calendar platform has been updated to include the device name as a prefix. This change improves clarity when multiple mowers are used, but may affect automations relying on the previous summary format.

(@Thomas55555 - #147405) (documentation)

LOOKin

LOOKin media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the LOOKin media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148134) (documentation)

Matter

The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.

Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.

(@MartinHjelmare - #150061) (documentation)

Mediaroom

Mediaroom media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Mediaroom media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148135) (documentation)

Miele

The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.

Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.

(@astrandb - #148765) (documentation)

Reolink

The Reolink Wi-Fi signal strength sensor has changed from an indicator value between 0 and 4 (amount of bars) to a value in dBm between -85 dBm and -30 dBm.

Note that all values in this range are possible, but roughly the old values can be converted like this:

  • 0 > -85 dBm
  • 1 > -75 dBm
  • 2 > -65 dBm
  • 3 > -55 dBm
  • 4 > -45 dBm

(@starkillerOG - #149191) (documentation)

Roborock

The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.

Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.

(@luca-angemi - #150126) (documentation)

Roku

Roku media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Roku media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148137) (documentation)

Snapcast

Snapcast media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Snapcast media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148138) (documentation)

Sony PlayStation 4

Sony PlayStation 4 media players entities now report to be off where they previously reported to be in standby state.

If you have automations or scripts that rely on the Sony PlayStation 4 media player reporting standby state, you will need to update them to use the new off state.

(@emontnemery - #148136) (documentation)

Templates

Returning None from a template binary sensor’s state template is now interpreted as unknown state instead of as off state.

If this behavior is not desired, you need to adjust your templates to return False explicitly.

(@epenet - #128861) (documentation)

Tuya

The battery property on vacuum entities is being removed in Home Assistant. Therefore, this property is now removed from this integration and is replaced by a battery level sensor.

Please review your automations, scripts or cards using the battery property and update the code to use the battery sensor instead.

(@epenet - #150086) (documentation)

UniFi Protect

Support for UniFi Protect installations running on versions below 6.0.0 has been removed.

This change is necessary as we are migrating the Home Assistant integration to use the new UniFi Protect Public API, which is only available in current versions.

If you are running an older version of UniFi Protect, you will need to upgrade to at least version 6.0.0 in order to continue using this integration.

You can read more about the 6.0 release in Ubiquiti’s official blog post: 🔗 Introducing Protect 6.0

Note on future updates: The Public API is still under active development and may change over time. As we continue to migrate more features of the integration to use the Public API, it is likely that the minimum required version of UniFi Protect will increase further in upcoming Home Assistant releases. We will make these changes step by step as the API evolves and new capabilities become available.

What do I need to do?

Upgrade your UniFi Protect installation to version 6.0.0 or later.

Be prepared for possible further minimum version increases in the future.

If you are already using version 6.0.0 or newer, and the user in use has sufficient permissions, the integration will attempt to automatically create a new API key. If this succeeds, no further action is required. If it fails, a reauthentication will be triggered, requiring you to re-enter your password and provide your API key manually.

(@RaHehl - #149126) (documentation)

Whirlpool Appliances

The door state for washer/dryer machines is now reported as a binary sensor instead of being part of the main machine state sensor, which now reports only the cycle states. Users relying on this state in automations or scripts will need to update their configurations to use the new binary sensor.

(@abmantis - #144078) (documentation)

Z-Wave

With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 3.2.1 or greater (schema 44).

  • If you use the Z-Wave JS add-on, you need at least version 0.20.0.
  • If you use the Z-Wave JS UI add-on, you need at least version 4.8.0.
  • If you use the Z-Wave JS UI Docker container, you need at least version 10.11.0.
  • 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 3.2.1.

(@MartinHjelmare - #149616) (documentation)

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.8