<?xml version='1.0' encoding='utf-8'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><![CDATA[Home Assistant]]></title>
  <link href="https://www.home-assistant.io/atom.xml" rel="self"/>
  <link href="https://www.home-assistant.io/"/>
  <updated>2026-11-06T19:06:36+00:00</updated>
  <id>https://www.home-assistant.io/</id>
  <author>
    <name><![CDATA[Home Assistant]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[2026.11: A lot in store!]]></title>
    <link href="https://www.home-assistant.io/blog/2026/11/04/release-202611/"/>
    <updated>2026-11-04T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/11/04/release-202611</id>
    <content type="html"><![CDATA[<p><lite-youtube videoid="Ra_XPySIpmI" videotitle="Home Assistant 2026.11 Release Party"></lite-youtube></p>
<p>Home Assistant 2026.11! 🎉</p>
<p>This is the biggest release we’ve ever shipped, by far. It’s ridiculously large. 🤯 A huge shout-out to everyone who helped make it happen, thank you! ❤️</p>
<p>For years, HACS, the Home Assistant Community Store, has been the place to find custom integrations, dashboard cards, and themes made by the community. Starting with this release, it’s built right into Home Assistant as the new <a href="#welcome-to-the-marketplace">Marketplace</a>. I’ve been working on bringing it over myself, and my goal was simple: if you use HACS today, it should feel like only the name changed. Everything you installed stays installed and keeps getting updates. And if you never tried HACS because installing it felt like a hurdle, that hurdle is gone: it’s simply there, under <strong>Settings</strong>, on every installation type. 🛍️</p>
<p>None of this would exist without <a href="https://github.com/ludeeus">@ludeeus</a>, who started HACS and donated it to the Open Home Foundation, and all the maintainers and developers who built that ecosystem over the years. 🙏 And this is just the first version of what a marketplace for Home Assistant could become.</p>
<p>You know by now I’m an automation person, so I’m also very happy you can finally <a href="#exclude-items-from-a-target">exclude items from a target</a>. Turn on all the lights downstairs, except the one in the kitchen? Done. And it stays smart: add another light to the kitchen next month, and it’s left out too. 🧠</p>
<p>Then there’s naming. More than four years in the making, <a href="#name-it-once-home-assistant-adds-the-context">entity naming</a> got a complete rethink: you name a thing once, and Home Assistant adds the context where it helps. Fair warning: this is a backward-incompatible change, and some names on your dashboards will look different after updating. The full story is in <a href="/blog/2026/11/03/naming-things-in-home-assistant/">its own blog post</a>.</p>
<p>There’s more: <a href="#cameras-matter">Matter cameras you can talk back through</a>, <a href="#reach-the-far-corners-with-lorawan">LoRaWAN support</a>, <a href="#sections-that-fill-themselves">sections that fill themselves</a>, <a href="#store-backups-and-media-on-local-drives">backups on local drives</a>, a bunch of new ways to find out <a href="#why-did-that-happen">why something happened</a>, and 38 new integrations! 🚀</p>
<p>Two more things before you dive in. November is the Month of “What the Heck?!” again, and this year it’s about everyone who lives in your home, including the people who didn’t set it up. Does your partner, kid, or housemate get annoyed by something in Home Assistant? Have them <a href="https://community.home-assistant.io/c/month-of-what-the-heck/64">share it on the forum</a>! You can read all about it in <a href="/blog/2026/10/29/what-the-heck-2026-everyone-at-home-gets-a-say/">the announcement</a>. 🗣️</p>
<p>And this Saturday, November 7, is Community Day! There are <a href="https://luma.com/communityday2026">97 meetups around the world</a>, in more than 30 countries, so there’s a good chance there’s one near you. This is your last chance to sign up. I’ll be at the <a href="https://luma.com/openhome-7e9g">meetup in Enschede</a> myself, and I hope to see some of you there. 👋</p>
<p>Enjoy the release!</p>
<p>../Frenck</p>
<!--more-->
<ul>
<li><a href="#welcome-to-the-marketplace">Welcome to the Marketplace</a>
<ul>
<li><a href="#browse-and-install">Browse and install</a></li>
<li><a href="#custom-repositories">Custom repositories</a></li>
<li><a href="#where-your-downloads-come-from">Where your downloads come from</a></li>
<li><a href="#thank-you-hacs">Thank you, HACS</a></li>
</ul>
</li>
<li><a href="#exclude-items-from-a-target">Exclude items from a target</a></li>
<li><a href="#copy-and-paste-dashboard-sections">Copy and paste dashboard sections</a></li>
<li><a href="#sections-that-fill-themselves">Sections that fill themselves</a></li>
<li><a href="#new-cards-and-badges">New cards and badges</a>
<ul>
<li><a href="#alert-card-now-without-yaml">Alert card, now without YAML</a></li>
</ul>
</li>
<li><a href="#color-control-on-light-tiles">Color control on light tiles</a></li>
<li><a href="#name-it-once-home-assistant-adds-the-context">Name it once, Home Assistant adds the context</a></li>
<li><a href="#forms-that-ask-only-what-they-need">Forms that ask only what they need</a></li>
<li><a href="#from-power-to-energy-in-one-step">From power to energy in one step</a></li>
<li><a href="#why-did-that-happen">Why did that happen?</a>
<ul>
<li><a href="#see-what-triggered-it">See what triggered it</a></li>
<li><a href="#follow-a-trace-into-the-script-it-called">Follow a trace into the script it called</a></li>
<li><a href="#live-logs-for-each-integration">Live logs for each integration</a></li>
<li><a href="#remove-bad-readings-from-your-history">Remove bad readings from your history</a></li>
<li><a href="#zoom-in-on-a-chart">Zoom in on a chart</a></li>
<li><a href="#every-action-on-the-record">Every action, on the record</a></li>
</ul>
</li>
<li><a href="#cameras-matter">Cameras Matter</a>
<ul>
<li><a href="#matter-cameras">Matter cameras</a></li>
<li><a href="#talk-back-through-your-cameras">Talk back through your cameras</a></li>
</ul>
</li>
<li><a href="#store-backups-and-media-on-local-drives">Store backups and media on local drives</a></li>
<li><a href="#reach-the-far-corners-with-lorawan">Reach the far corners with LoRaWAN</a></li>
<li><a href="#batteryless-switches-with-zigbee-green-power">Batteryless switches with Zigbee Green Power</a></li>
<li><a href="#integrations">Integrations</a>
<ul>
<li><a href="#new-integrations">New integrations</a></li>
<li><a href="#noteworthy-improvements-to-existing-integrations">Noteworthy improvements to existing integrations</a></li>
<li><a href="#integration-quality-scale-achievements">Integration quality scale achievements</a></li>
<li><a href="#now-available-to-set-up-from-the-ui">Now available to set up from the UI</a></li>
<li><a href="#farewell-to-the-following">Farewell to the following</a></li>
</ul>
</li>
<li><a href="#other-noteworthy-changes">Other noteworthy changes</a>
<ul>
<li><a href="#your-ai-assistant-can-help-troubleshoot">Your AI assistant can help troubleshoot</a></li>
</ul>
</li>
<li><a href="#need-help-join-the-community">Need help? Join the community</a></li>
<li><a href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a href="#all-changes">All changes</a></li>
</ul>
<p><em>A huge thank you to all the contributors who made this release possible! And a special shout-out to <a href="https://github.com/abb848">@abb848</a>, <a href="https://github.com/bramkragten">@bramkragten</a>, and <a href="https://github.com/piitaya">@piitaya</a> who helped write the release notes this release. Also, <a href="https://github.com/bieniu">@bieniu</a>, <a href="https://github.com/KapJI">@KapJI</a>, and <a href="https://github.com/Tommatheussen">@Tommatheussen</a> for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️</em></p>
<h2>Welcome to the Marketplace</h2>
<p>For years, the community has built <span class="terminology">custom integrations<span class="terminology-tooltip">A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the <a href="https://spook.boo/">Spook</a> integration.</span></span>, dashboard cards, themes, and templates for Home Assistant. People found them through HACS, the Home Assistant Community Store. With this release, HACS becomes part of Home Assistant as the new <a href="/integrations/marketplace/">Marketplace</a>.</p>
<p>The Marketplace brings the existing HACS experience into Home Assistant and the regular release process. It works with every installation type, including <span class="terminology">Home Assistant Container<span class="terminology-tooltip">Home Assistant Container is a standalone container-based installation of Home Assistant Core. Any <a href="https://opencontainers.org/">OCI</a> compatible runtime can be used, but the documentation focus is on Docker.<a class="terminology-link" href="/installation/#about-installation-types"> [Learn more]</a></span></span>, without manually downloading or unpacking files. Everything in the Marketplace is free, and that will not change.</p>
<h3>Browse and install</h3>
<p>You can find the Marketplace under <strong>Settings</strong> &gt; <strong>Marketplace</strong>. It comes with Home Assistant, so there is nothing to set up. As an administrator, you can browse the catalog and install integrations, dashboard cards, themes, and templates. You do not need a GitHub account to install or update projects.</p>
<img alt="Screenshot of the Home Assistant settings page, with a new Marketplace item between Apps and Dashboards, described as: Install integrations, dashboard cards, themes, and templates shared by the community." class="no-shadow" src="/images/blog/2026-11/marketplace-settings.png"/>
<p>Installing a new <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> got shorter, too. In HACS, you downloaded it, restarted Home Assistant, went to <strong>Devices &amp; services</strong>, and searched for it again to set it up. In the Marketplace, you select <strong>Install</strong>, and you land straight in its setup flow, without a restart. Updates still need a restart for now.</p>
<p>The page of each project now shows more than its README: how often it was downloaded, its stars on GitHub, and the Home Assistant version it requires, so you know what you’re getting into before you install.</p>
<img alt="Screenshot of the Marketplace page of the Spook integration, installed and ready to set up, with a notice that it is made by the community, and its required Home Assistant version, last change, downloads, stars on GitHub, and open issues." class="no-shadow" src="/images/blog/2026-11/marketplace-project.png"/>
<p>Every project you install gets an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span>, so updates show up under <strong>Settings</strong> &gt; <strong>Updates</strong>, next to the updates of Home Assistant itself. After an update, a repair tells you when a restart is needed, and can restart Home Assistant for you.</p>
<p>The first time you open the Marketplace, it shows a notice. Everything in the Marketplace is made by the community. It is not tested, audited, or supported by the Home Assistant project, and it runs inside your Home Assistant. Read the notice, select <strong>I understand the risks and agree</strong>, and you’re in. Browsing works before that. Installing and updating does not.</p>
<img alt="Screenshot of the Marketplace notice, titled Before you install from the Marketplace. It explains that anything you install can connect to the internet, share your data, or slow down Home Assistant, followed by three tips and an I understand the risks and agree checkbox." class="no-shadow" src="/images/blog/2026-11/marketplace-warning.png"/>
<p>The Marketplace adds several improvements:</p>
<ul>
<li>Group the <strong>Browse</strong> and <strong>Installed</strong> lists by status, type, or source. Home Assistant remembers your grouping.</li>
<li>Filter by source to distinguish the community catalog from custom repositories.</li>
<li>Select multiple repositories on the <strong>Installed</strong> tab and uninstall them at once.</li>
<li>Skipped updates no longer keep a repository at the top of the list or count in the update badge. A new release makes the update available again.</li>
<li>Search, filters, and sorting are saved in the URL, so you can share a link to a specific Marketplace view.</li>
<li>Integrations show their brand images before you install them.</li>
</ul>
<img alt="Screenshot of the Marketplace Browse tab, grouped by status into Installed and New, with the Group by menu open showing Status, Type, Source, and Don't group." class="no-shadow" src="/images/blog/2026-11/marketplace-group-by.png"/>
<h3>Custom repositories</h3>
<p>Not every project is in the catalog. To add one that is missing, select <strong>Add from link</strong> and enter its repository URL. The Marketplace then lists it with your other repositories.</p>
<p>The <strong>Custom repositories</strong> page lists repositories you added this way and lets you open or remove them. A repository stays in the list until you uninstall it.</p>
<p>Custom repositories require a GitHub connection. The Marketplace uses GitHub device sign-in, so you approve the connection on GitHub without entering your password in Home Assistant. The connection only reads public information and cannot access private repositories.</p>
<h3>Where your downloads come from</h3>
<p>By default, the Marketplace gets its catalog and everything you install from GitHub. Where GitHub cannot be reached, such as in mainland China, you can switch to the mirrors run by the Home Assistant China community. Go to <strong>Settings</strong> &gt; <strong>Marketplace</strong>, select the three dots <iconify-icon icon="mdi:dots-vertical" inline="" title="Dots vertical"></iconify-icon> menu in the upper-right corner, and select <strong>Download source</strong>. If the Marketplace cannot reach the catalog and a mirror is available for your country, a repair suggests it.</p>
<p>Everything the Marketplace downloads then goes through whoever runs that mirror, and through a third-party proxy whenever those mirrors cannot be reached: the catalog, and the code you install. Only pick a download source you trust. If you used the Chinese version of HACS, the Marketplace selects these mirrors for you when it migrates.</p>
<p>Thanks, <a href="https://github.com/frenck">@frenck</a>!</p>
<h3>Thank you, HACS</h3>
<p>HACS made this possible. <a href="https://github.com/ludeeus">@ludeeus</a> founded it and donated it to the Open Home Foundation about a year and a half ago, which is what made bringing it into Home Assistant possible. Together with the HACS maintainers and the many developers publishing their projects, he built the ecosystem that the Marketplace now carries forward. Thank you. ❤️</p>
<p>If you use HACS today, there is nothing you need to do. Home Assistant migrates it when it starts after the update. Everything you installed stays installed and keeps receiving updates, your custom repositories and update entities carry over, and links and bookmarks that point to HACS now open the Marketplace.</p>
<p>The HACS installer stops at Home Assistant 2026.11, so a separate HACS installation is no longer possible on this version. The old HACS won’t get new releases either: the Marketplace ships with every Home Assistant update. Everything you need to know about the move, for users and for publishers, is in the <a href="/integrations/marketplace/#coming-from-hacs">Marketplace documentation</a>.</p>
<p>This is a starting point, and the first version of what a marketplace for Home Assistant could become. Got ideas? Share them in the Marketplace section of the <a href="https://github.com/orgs/home-assistant/discussions">feature request discussions</a> on GitHub. Found a bug? Report it in the Home Assistant issue tracker, not in the HACS repository.</p>
<h2>Exclude items from a target</h2>
<p>Targets are a great way to keep your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> up to date. Point one at an <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>, a <span class="terminology">floor<span class="terminology-tooltip">A floor in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of areas that are meant to match the physical floors in your home. Devices &amp; entities are not assigned to floors but to areas. Floors can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed.<a class="terminology-link" href="/docs/organizing/floors/"> [Learn more]</a></span></span>, or a <span class="terminology">label<span class="terminology-tooltip">Labels in Home Assistant allow <a href="/docs/organizing/">grouping</a> elements irrespective of their physical location or type. Labels can be assigned to areas, devices, entities, automations, scenes, scripts, and helpers. Labels can be used in automations and scripts as a target for actions. Labels can also be used to filter data.<a class="terminology-link" href="/docs/organizing/labels/"> [Learn more]</a></span></span>, and Home Assistant finds the matching <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> for you, including the ones you add later. There was just one catch: you couldn’t leave one out. Turn on all the lights on the ground floor, except the one in the kitchen? Your only option was to list every light yourself, and lose everything that made the target smart in the first place.</p>
<p>You can now exclude entities, <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, areas, floors, and labels from a target. In a <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>, <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, or <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>, select <strong>Exclude target</strong> next to <strong>Add target</strong>, then choose what to leave out. You can also open a target’s details, clear the checkboxes of the items to exclude, and select <strong>Apply</strong>.</p>
<img alt="Screenshot of the target details of the Ground floor, with checkboxes to include or exclude each area, device, and entity. The Laundry room and its ceiling light are struck through, and the light is marked as excluded by the Laundry room." class="no-shadow" src="/images/blog/2026-11/exclude-target-details.png"/>
<p>Each exclusion is listed below the targets it takes entities out of, with the number of entities it removes. An exclusion that doesn’t match anything has no effect, and is listed under <strong>Exclusions with no effect</strong>, where you can remove it.</p>
<p>And exclusions stay as smart as the targets they belong to. Home Assistant works them out every time the trigger, condition, or action runs. Exclude the kitchen, add another light to the kitchen next month, and that light is left out as well. No need to touch the automation again.</p>
<p>This works in triggers, conditions, and actions, in both automations and scripts. If you write <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>, add an <code>exclude</code> block to the <code>target</code>, with the same keys as the target itself. For all the details, including how old-style <span class="terminology">groups<span class="terminology-tooltip">Groups are a way to organize your entities into a single unit.<a class="terminology-link" href="/integrations/group/"> [Learn more]</a></span></span> behave, refer to <a href="/docs/automation/targets/#excluding-targets">excluding targets</a>.</p>
<p>Thanks, <a href="https://github.com/jpbede">@jpbede</a>, <a href="https://github.com/emontnemery">@emontnemery</a>, and <a href="https://github.com/marcinbauer-ohf">@marcinbauer-ohf</a>! 🙏</p>
<p>The automation editor also has a few improvements:</p>
<ul>
<li><strong>Replace a step</strong>: Changed your mind about a <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>, <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, or <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>? Select <strong>Replace</strong> in its menu to swap it for another one in the same place. Home Assistant keeps the settings the new item accepts, so you don’t have to pick the target and fill in the options again. It works in the script editor as well. Thanks, <a href="https://github.com/nielsrowinbik">@nielsrowinbik</a>!</li>
<li><strong>Is not for the state trigger</strong>: Set <strong>From</strong> or <strong>To</strong> to <strong>Is not</strong> to make a <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> fire when the state changes to or from any value other than the one you select. No YAML is needed. Thanks, <a href="https://github.com/Skaronator">@Skaronator</a>!</li>
<li><strong>Recently used</strong>: The dialog for adding a trigger, condition, or action now starts with the ones you used recently, including your recently selected targets. Thanks, <a href="https://github.com/wendevlin">@wendevlin</a>!</li>
<li><strong>People in the target picker</strong>: When adding a trigger or condition, find <strong>People</strong> under <strong>Other</strong>, next to <strong>Time</strong> and <strong>Sun</strong>. This makes it easier to create a rule for when someone comes home. Thanks, <a href="https://github.com/marcinbauer-ohf">@marcinbauer-ohf</a>!</li>
<li><strong>Edit ID is back</strong>: You can set the ID of a trigger from its menu again. Thanks, <a href="https://github.com/jpbede">@jpbede</a>!</li>
<li><strong>Edit in YAML for choose options</strong>: Edit the options of a choose action in YAML, like other rows. Thanks, <a href="https://github.com/oneseventhree">@oneseventhree</a>!</li>
<li><strong>Undo after cutting</strong>: If you cut a trigger, condition, or action by mistake, select <strong>Undo</strong> in the notification to restore it. Thanks, <a href="https://github.com/marcinbauer-ohf">@marcinbauer-ohf</a>!</li>
</ul>
<h2>Copy and paste dashboard sections</h2>
<p>In dashboard edit mode, you can copy or cut a section, then paste it after another section. You can move sections between views and dashboards without dragging them across the screen. Thanks, <a href="https://github.com/jce200">@jce200</a>!</p>
<p class="img"><img alt="Screenshot of a dashboard in edit mode, with the menu of the Motion sensor section open showing Edit, Duplicate, Copy, Cut, Paste, and Delete, and Copy highlighted." class="no-shadow" src="/images/blog/2026-11/dashboard-section-copy-paste.png"/>Copy, cut, and paste sections from the section menu.</p>
<h2>Sections that fill themselves</h2>
<p>A dashboard section is usually a list of cards you put together by hand. Add a new light to the living room, and you have to remember to add its card too. Automatic sections take care of that for you: they pick their cards themselves, and stay up to date when you add or remove <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> and <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>.</p>
<p>When you create a section, Home Assistant now asks what you want: a manual section you fill card by card, an automatic section, or the section you just copied. Pick <strong>Automatic section</strong>, and you get the list of automatic sections, each with a live preview, so you see what you get before adding it.</p>
<p class="img"><img alt="Screenshot of the Choose an automatic section dialog, with live previews of the Common controls, Device, and Entities sections." class="no-shadow" src="/images/blog/2026-11/automatic-section-picker.png"/>Pick an automatic section, and see what it looks like before adding it.</p>
<p><strong>Common controls</strong> shows the entities you use the most, just like on the <strong>Overview</strong> dashboard. Next to it, two automatic sections are new in this release. The <strong>Device</strong> section shows the entities of one <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, as tiles or in a single entities card, grouped by category, with the device name, its <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>, and its battery level in the heading. The <strong>Entities</strong> section shows every <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> of the types you pick, like all your lights or all your batteries, in the areas, floors, devices, or labels you choose. Add a light to the ground floor, and it shows up in your ground floor lights section on its own. If you installed sections made by the community, they are listed too, under <strong>Community sections</strong>.</p>
<p class="img"><img alt="Screenshot of the Entities section editor, set to show lights on the First floor, with the Key Light Mini excluded, next to a preview of the lights grouped by area." class="no-shadow" src="/images/blog/2026-11/entities-section-editor.png"/>Pick the types of entities and the targets, and the section shows every match.</p>
<p>You can also start from the device. On its device page, select <strong>Add to…</strong> &gt; <strong>Add to a dashboard</strong>, and pick a dashboard and a view. In a sections view, you get a <strong>Device</strong> section for that device. In other views, you get an <strong>Entities</strong> card, and you choose which categories of entities to include. This replaces the <strong>Add to dashboard</strong> buttons at the bottom of each list of entities on the device page.</p>
<p class="img"><img alt="Screenshot of the Add Air purifier to dialog on the device page, with Add to a dashboard at the top, above the options to create a trigger, condition, or action." class="no-shadow" src="/images/blog/2026-11/device-add-to-dashboard.png"/>Add a device to a dashboard, straight from its device page.</p>
<p>If you want more control over an automatic section, select <strong>Convert to manual section</strong> in the section menu. The section keeps its cards, and you can edit, move, or remove each of them. In return, it no longer updates on its own, so Home Assistant asks you to confirm first.</p>
<p class="img"><img alt="Screenshot of the menu of an automatic Common controls section in edit mode, with Convert to manual section highlighted below Edit, followed by Duplicate, Copy, Cut, Paste, and Delete." class="no-shadow" src="/images/blog/2026-11/convert-to-manual-section.png"/>Convert an automatic section to edit its cards one by one.</p>
<p>Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</p>
<h2>New cards and badges</h2>
<p>The new <strong>Date</strong> card shows the current date. The <strong>Alert</strong> badge shows an <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>’s state on a colored background that can pulse. The <strong>Sensor</strong> card takes a color, which tints both its icon and its graph. For target temperature controls, you can choose buttons or a slider. When adding a card or badge, a paste bar lets you add a copied item.</p>
<p class="img"><img alt="Screenshot of a dashboard with three Date cards, each showing the current date in a different format: Wednesday 28 October 2026, Wednesday, October 28, and 10/28/2026 below the word Today." class="no-shadow" src="/images/blog/2026-11/date-card.png"/>Show the current date in the format you like.</p>
<p class="img"><img alt="Screenshot of two tile cards for the Downstairs thermostat: one with minus and plus buttons around 21.5 °C, and one with a slider to set the target temperature." class="no-shadow" src="/images/blog/2026-11/target-temperature-buttons-slider.png"/>Choose buttons or a slider for target temperature controls.</p>
<p>Thanks to <a href="https://github.com/Lackmake">@Lackmake</a>, <a href="https://github.com/pcan08">@pcan08</a>, <a href="https://github.com/timmo001">@timmo001</a>, <a href="https://github.com/piitaya">@piitaya</a>, and <a href="https://github.com/wendevlin">@wendevlin</a>.</p>
<h3>Alert card, now without YAML</h3>
<p>The Alert card now has a visual editor. You can set separate colors for alert and clear states without editing <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</p>
<p class="img"><img alt="Screenshot of the Alert card visual editor for the Back door lock, with a green clear color, a red alert color, and a Pulse toggle, next to a preview of the card in green." class="no-shadow" src="/images/blog/2026-11/alert-card-visual-editor.png"/>Set separate colors for alert and clear states in the visual editor.</p>
<h2>Color control on light tiles</h2>
<p>Light tiles now have a color strip for setting hue, with an optional saturation slider. The color controls fade when the <span class="terminology">light<span class="terminology-tooltip">A light has a brightness you can control, and optionally color temperature or RGB color control.<a class="terminology-link" href="/integrations/light"> [Learn more]</a></span></span> is off, and members of a light <span class="terminology">group<span class="terminology-tooltip">Groups are a way to organize your entities into a single unit.<a class="terminology-link" href="/integrations/group/"> [Learn more]</a></span></span> show the color control in their more-info dialog. Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</p>
<p class="img"><img alt="Screenshot of three light tiles, Ambilight, Hue Play 2, and Hue Play 1, each with a hue color strip. The wide Hue Play 1 tile also has a small saturation slider." class="no-shadow" src="/images/blog/2026-11/light-tile-color.png"/>Adjust hue and saturation from a light tile.</p>
<h2>Name it once, Home Assistant adds the context</h2>
<p>Name a thing once, and Home Assistant makes sure it makes sense everywhere. That is the idea behind how <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> are named from this release on, and it has been more than four years in the making. You give an entity its own name, like “Temperature”. Home Assistant knows which <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> it belongs to, and in which <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span> that device lives, so it can add that context where it helps. By default, that is the name of the device: the “Temperature” of a “Thermostat” in the “Bedroom” shows up as “Thermostat Temperature”. Where you want more, a card can add the area too, like “Bedroom Thermostat Temperature”.</p>
<p>Naming has been a topic in the community for years, with threads like “How do you name your devices?” and “Naming strategies for entities?”, all looking for a system that keeps a growing home readable.</p>
<p>It’s time to let those systems go. You shouldn’t need a strategy to make sense of the information in Home Assistant. Home Assistant should give you the context you need, at the moment you need it. Now you rename the device, and every entity on it follows. Entities you renamed, and entities you never touched, get their context the same way.</p>
<p>You see this in dashboards, settings, the activity and logbook, the voice assistant settings, and the apps. The same name, in the same structure, everywhere you look.</p>
<p>A few things to know:</p>
<ul>
<li><strong>Renaming an entity</strong> only renames the entity. If you want to change the name of the device, rename the device. If an entity represents the main function of its device, turn on <strong>Main entity of the device</strong> in its settings, and it goes by the name and the area of the device.</li>
<li><strong>Devices with multiple parts</strong>, like a power strip, now get a <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> per part, each with its own name and <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>. These are called child devices. A child device inherits the area of its parent, until you give it one of its own. Integrations are moving to them one by one, starting with the multi-channel switches in Tuya.</li>
<li><strong>Your own names are kept.</strong> Home Assistant migrates names you set. If an entity’s displayed name changes, the old name remains an alias for voice assistants. For example, “turn on the ceiling light” continues to work.</li>
<li><strong>Templates:</strong> The <code>friendly_name</code> attribute is planned for deprecation. Use <a href="/template-functions/entity_name/"><code>entity_name()</code></a>, <a href="/template-functions/device_name/"><code>device_name()</code></a>, and <a href="/template-functions/area_name/"><code>area_name()</code></a> to build the name you need.</li>
</ul>
<p>What doesn’t change: entity IDs. Your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, and dashboards keep working.</p>
<p>We are upfront about one thing: this is a backward-incompatible change. Some names look different after the update, and you notice that most on your dashboards. Cards, badges, and rows without a name now show the device name followed by the entity name, instead of the friendly name. Making them shorter is quick: rename the device or the entity, turn on <strong>Main entity of the device</strong> for the entity that represents the device, or set a name on the card. The details are in the <a href="#backward-incompatible-changes">backward-incompatible changes</a> below.</p>
<p>This is the short version. <a href="/blog/2026/11/03/naming-things-in-home-assistant/">A separate blog post</a> about entity naming tells the full story.</p>
<p>This project ran for more than four years, and many people worked on it along the way. Thank you to everyone who helped make this happen! 🙏</p>
<h2>Forms that ask only what they need</h2>
<p>Setting up an <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> sometimes meant reading past options that had nothing to do with your choices. A field can now appear only when another field has a certain value, so a form asks what is relevant and leaves out the rest. While a field is hidden, it isn’t required, and its value isn’t saved.</p>
<p>You can already see it in the integrations for AI conversation agents, where the settings you rarely touch stay out of the way until you ask for them.</p>
<p>The same works for a <span class="terminology">blueprint<span class="terminology-tooltip">A blueprint is a <a href="/getting-started/concepts-terminology/#scripts">script</a>, <a href="/getting-started/concepts-terminology/#automation">automation</a>, or <a href="/integrations/template/">template</a> entity configuration with certain parts marked as configurable. This allows you to create multiple scripts, automations, or template entities based on the same blueprint, with each having its own configuration-specific settings. Blueprints are shared by the community on the <a href="https://community.home-assistant.io/c/53">blueprints exchange</a> in the forum.<a class="terminology-link" href="/docs/blueprint/"> [Learn more]</a></span></span>. An input, or a whole group of inputs, can depend on the answers you gave earlier, so a blueprint only asks what still applies.</p>
<p>Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</p>
<h2>From power to energy in one step</h2>
<p>The Energy dashboard works with energy in kilowatt-hours, but plenty of <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> only report power in watts. A device like that could not be added directly: first you had to set up a <span class="terminology">sensor<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span> that adds the power up over time, then come back and add the device.</p>
<p>Home Assistant now offers to do that for you. Add an individual device, a solar panel, or your home consumption with only a power sensor, and when you save, Home Assistant offers to derive the energy sensor from it, or to reuse one you derived from the same sensor earlier. Gas and water work the same way: pick a sensor that reports a flow rate, and Home Assistant offers to derive the total from it.</p>
<p>Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</p>
<h2>Why did that happen?</h2>
<p>A light turned on, and nobody touched it. Or an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> did something you didn’t expect. Finding out why is part of living with a smart home, so this release adds a handful of ways to find the answer faster.</p>
<h3>See what triggered it</h3>
<p>The <strong>Activity</strong> panel has a new <strong>Triggered by</strong> filter. Use it to show only what a person did, what your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> did, or what an <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> did, like HomeKit or Google Assistant. Accounts that don’t belong to a person, like the one used by Node-RED, count as integrations. Entries without a known cause are listed under <strong>Other</strong>.</p>
<p>Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</p>
<h3>Follow a trace into the script it called</h3>
<p>When an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">script<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> runs another script, or triggers an automation, the step in its trace now has a <strong>View trace of</strong> link to exactly that run. Before, you had to find the right run yourself, by timestamp. It works from automation to script, script to script, and automation to automation, for each iteration of a repeat, and for a script that starts itself. The link shows up in the step details and in the trace timeline. The page also keeps the run you are looking at in its address, so going back in your browser takes you back to the previous run.</p>
<img alt="Screenshot of the trace of the Good night script, with the step details of an action that runs the Turn off downstairs lights script, and a link: View trace of Turn off downstairs lights." class="no-shadow" src="/images/blog/2026-11/trace-link.png"/>
<p>Thanks, <a href="https://github.com/Xyolyp">@Xyolyp</a>!</p>
<h3>Live logs for each integration</h3>
<p>While debug logging is enabled for an <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, the banner on its page now has a <strong>Show logs</strong> button, next to <strong>Disable</strong>. It opens a dialog with only the log lines of that integration, including the libraries it uses: first what it logged since Home Assistant started, then new lines as they come in. You can search, turn line wrapping on or off, and download what you captured. Handy while you’re trying to reproduce an issue, without digging through the full log.</p>
<p>The logs page under <a class="my" href="https://my.home-assistant.io/redirect/logs" target="_blank"><strong>Settings</strong> &gt; <strong>System</strong> &gt; <strong>Logs</strong></a> got a filter as well. Select one or more integrations, and the errors list and the raw logs only show their lines. Your search, your filter, and the raw view are kept in the address, so you can bookmark a filtered view or share a link to it. Searching the raw logs now shows each match with three lines around it, the way a diff does, and a button reveals the lines in between. When an <span class="terminology">app<span class="terminology-tooltip">Apps are additional standalone third-party software packages that can be installed on Home Assistant OS.<a class="terminology-link" href="/getting-started/concepts-terminology/#apps"> [Learn more]</a></span></span> update fails, opening its logs takes you straight to the lines of that app.</p>
<p>Thanks, <a href="https://github.com/erwindouna">@erwindouna</a> and <a href="https://github.com/timmo001">@timmo001</a>!</p>
<h3>Remove bad readings from your history</h3>
<p>One bad measurement can ruin the graph of a <span class="terminology">sensor<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span>. <span class="terminology">“Statistics”<span class="terminology-tooltip">Home Assistant keeps statistics for sensors that have a state class, such as measurement, total, or total increasing. Every 5 minutes, it saves short-term statistics, which are deleted after 10 days by default. Every hour, it saves long-term statistics, which are never deleted automatically. The Energy dashboard and statistics cards use them.<a class="terminology-link" href="/docs/configuration/long-term-statistics/"> [Learn more]</a></span></span> of values like temperature can’t be adjusted, so the only fix was to delete the whole statistic and lose its history. Now you can delete just a time range. In <strong>Settings</strong> &gt; <strong>Tools</strong> &gt; <strong>Statistics</strong>, select the delete option of a statistic, pick the time range, and the dialog previews the data before you delete anything. Everything outside that range stays.</p>
<img alt="Screenshot of the dialog to delete statistics in a time range for Living room temperature, with a start and end date picker and a graph of the statistics in that range." class="no-shadow" src="/images/blog/2026-11/statistics-delete-range.png"/>
<p>Thanks, <a href="https://github.com/balloob">@balloob</a>!</p>
<h3>Zoom in on a chart</h3>
<p>Charts that plot values over time now zoom with a plain drag: drag across the part you want to see, and the chart follows. A slim slider appears underneath to move or resize the range, and scrolling sideways pans along. On the history page, one zoom bar drives every chart at once, so you can line up what happened across several <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>.</p>
<p>Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</p>
<h3>Every action, on the record</h3>
<p><strong>Settings</strong> &gt; <strong>Tools</strong> has a new <strong>Action history</strong> tab. It lists the <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> that were called in Home Assistant, with the action, its targets, what caused it, and when. You can search the list and pick a time range. Select an action to see its details: the cause, the user, the context ID, and the data it was called with. Copy that data as <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> with one button, and when there is a trace, <strong>View trace</strong> opens it.</p>
<img alt="Screenshot of the Action history tab in Tools, with the details of a Turn on light action open: its time, its cause, the user Paul, its context ID, and the data it was called with, above a Perform again button." class="no-shadow" src="/images/blog/2026-11/action-history.png"/>
<p>The details of an entry in <strong>Activity</strong> got better too. When an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> calls <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, each run now links to its own trace. Before, they all opened the same one.</p>
<p>Thanks, <a href="https://github.com/joostlek">@joostlek</a> and <a href="https://github.com/Xyolyp">@Xyolyp</a>!</p>
<h2>Cameras Matter</h2>
<p><span class="terminology">Matter<span class="terminology-tooltip">Matter is an open-source standard that defines how to control smart home devices on a Wi-Fi or Thread network.<a class="terminology-link" href="/integrations/matter"> [Learn more]</a></span></span> keeps growing up. With Matter 1.5, cameras are part of the standard, and Home Assistant now supports them. And while we were at it, cameras got a voice.</p>
<h3>Matter cameras</h3>
<p>The <a href="/integrations/matter/">Matter</a> integration now supports Matter 1.5 cameras. A Matter camera shows up as a camera in Home Assistant, with live video and snapshots. The live video is streamed with <abbr title="Web Real-Time Communication">WebRTC</abbr>, directly between your browser and the camera. The camera <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> mirrors the state of the camera, including whether its privacy mode is on.</p>
<p>Matter cameras need a Matter server that is recent enough to support them. Home Assistant only discovers cameras when the connected server does.</p>
<p>Thanks, <a href="https://github.com/arturpragacz">@arturpragacz</a>!</p>
<h3>Talk back through your cameras</h3>
<p>Cameras can talk now, too. A new Labs preview feature, <strong>Two-way audio</strong>, adds a talk button to the live stream, so you can talk to whoever is near your camera or doorbell. Turn it on in <a class="my" href="https://my.home-assistant.io/redirect/labs" target="_blank"><strong>Settings</strong> &gt; <strong>System</strong> &gt; <strong>Labs</strong></a>.</p>
<p>The talk button appears for cameras that support two-way audio, and whose <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> has added support for it. In this release, that is Matter cameras and <a href="/integrations/reolink/">Reolink</a>. A Reolink camera needs to use <abbr title="Real-Time Streaming Protocol">RTSP</abbr>, because <abbr title="Real-Time Messaging Protocol">RTMP</abbr> and <abbr title="Flash Video">FLV</abbr> can’t carry audio back to the camera.</p>
<p>Browsers only allow microphone access over a secure connection, so for now two-way audio works when you open Home Assistant over <abbr title="Hypertext Transfer Protocol Secure">HTTPS</abbr>. We’re working on bringing it to the Home Assistant apps over <abbr title="Hypertext Transfer Protocol">HTTP</abbr> as well.</p>
<p>Thanks, <a href="https://github.com/starkillerOG">@starkillerOG</a>! And thanks to <a href="https://github.com/sdb9696">@sdb9696</a> for the earlier work this builds on.</p>
<h2>Store backups and media on local drives</h2>
<p><span class="terminology">“Backups”<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span> and media take up a lot of space, and the best place for them is often not the drive Home Assistant runs on. Besides network storage, you can now add an internal drive or a USB drive. Go to <a class="my" href="https://my.home-assistant.io/redirect/storage" target="_blank"><strong>Settings</strong> &gt; <strong>System</strong> &gt; <strong>Storage</strong></a>, select <strong>Add storage</strong>, and select <strong>Local disk</strong> as the type. Use it for backups, media, or shared files, just like network storage. Home Assistant remembers the disk by its file system identifier, so it keeps working after a restart or when the device name changes, and a repair tells you if the disk is disconnected. The disk needs to be formatted already. For the supported file systems and all the details, refer to the <a href="/common-tasks/os/#local-disk-storage">local disk storage documentation</a>.</p>
<p>Backups got a few more improvements. Restoring no longer makes a temporary copy of the whole backup first, which saves free space and time, especially for backups on network storage. The progress bar on the backup page now fills as the backup uploads, and Dropbox, Azure Storage, SFTP Storage, Synology DSM, and Backblaze B2 now report their upload progress too. And the new <strong>Last successful automatic backup size</strong> <span class="terminology">sensor<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span> lets you keep an eye on how big your automatic backups are, so you can get notified when they suddenly grow or shrink.</p>
<p>Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>, <a href="https://github.com/agners">@agners</a>, <a href="https://github.com/KapJI">@KapJI</a>, and <a href="https://github.com/erwindouna">@erwindouna</a>!</p>
<h2>Reach the far corners with LoRaWAN</h2>
<p><abbr title="Long Range Wide Area Network">LoRaWAN</abbr> is a long-range, low-power wireless protocol, often used for battery-powered sensors in places your Wi-Fi never reaches, like a garden, a shed, or a field. Home Assistant now speaks it. Connect your LoRaWAN network server, <a href="/integrations/chirpstack/">ChirpStack</a> or <a href="/integrations/thethingsnetwork_lorawan/">The Things Network</a>, and Home Assistant offers the matching device <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, like <a href="/integrations/sensecap_lorawan/">SenseCAP</a>, when a supported device shows up.</p>
<p>All of it comes together in a new <strong>LoRaWAN</strong> page in <strong>Settings</strong> &gt; <strong>Connectivity</strong>. It shows your connections and how many <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> each has, and a table of all your devices that you can search and filter by connection. A map shows how your network hangs together: which gateways receive which devices, and which devices no gateway has seen. On the page of a device, you find its radio details, like signal strength, the last time it reported in, and its battery. A device that Home Assistant doesn’t support yet still shows up, with a note on what is missing. And when you want to add a new device, Home Assistant takes you straight to the management console of its connection.</p>
<img alt="Screenshot of the LoRaWAN page, showing 2 connections and 6 devices, with links to the devices and connections, a Show map button, and an Add device button." class="no-shadow" src="/images/blog/2026-11/lorawan-page.png"/>
<img alt="Screenshot of the LoRaWAN network map, with two connections, Home ChirpStack and The Things Network, linked to their gateways and the devices each gateway receives. A dotted line marks a new soil sensor that no gateway has observed." class="no-shadow" src="/images/blog/2026-11/lorawan-network.png"/>
<p>Thanks, <a href="https://github.com/balloob">@balloob</a>!</p>
<h2>Batteryless switches with Zigbee Green Power</h2>
<p><a href="/integrations/zha/">Zigbee Home Automation</a> now supports Zigbee Green Power. Green Power <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> run without a battery: a wall switch powered by the energy of your press, or a sensor that lives off the light in the room. Friends of Hue switches are the best-known example. Until now, Home Assistant passed them by.</p>
<p>They work differently from other Zigbee devices, and the interface follows along. A Green Power device lists its <strong>Source ID</strong> with its network details, and the options that don’t apply to it, like reconfiguring it or managing its clusters, are left out. In the network visualization it shows up without a line to a parent, because a Green Power device doesn’t have one.</p>
<p>Thanks, <a href="https://github.com/puddly">@puddly</a>!</p>
<h2>Integrations</h2>
<p>Thanks to our community for keeping pace with the new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and improvements to existing ones! You’re all awesome 🥰</p>
<h3>New integrations</h3>
<p>We welcome the following new integrations in this release:</p>
<ul>
<li>
<p><strong><a href="/integrations/abrp">A Better Routeplanner</a></strong>, added by <a href="https://github.com/mtandersson">@mtandersson</a><br/>
Bring the vehicles in your A Better Routeplanner (ABRP) account into Home Assistant. Each vehicle gets sensors for its state of charge, range, battery temperature, odometer, and charging state. Sign in with your ABRP account.</p>
</li>
<li>
<p><strong><a href="/integrations/aerosmart">aerosmart</a></strong>, added by <a href="https://github.com/kayloehmann">@kayloehmann</a><br/>
Monitor an aerosmart ventilation and heat-pump installation over Modbus, through a TCP gateway or a serial connection. No vendor app or cloud service is needed. Home Assistant reads operating values, filter information, and controller status.</p>
</li>
<li>
<p><strong><a href="/integrations/alpha_bidet_infrared">Alpha Bidet Infrared</a></strong>, added by <a href="https://github.com/eseverson">@eseverson</a><br/>
Control an Alpha Bidet seat with an infrared transmitter already set up in Home Assistant. Start or stop a wash, run the dryer, and set water pressure, nozzle position, and temperatures. Infrared is one-way, so the integration cannot confirm the bidet’s state.</p>
</li>
<li>
<p><strong><a href="/integrations/any_list">AnyList</a></strong>, added by <a href="https://github.com/BookCatKid">@BookCatKid</a><br/>
Bring your <a href="https://www.anylist.com/">AnyList</a> shopping lists into Home Assistant. Each list becomes a to-do list. Add, edit, and check off items from a dashboard or an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. Changes in the AnyList app also appear in Home Assistant.</p>
</li>
<li>
<p><strong><a href="/integrations/bluetti_modbus">BLUETTI Modbus</a></strong>, added by <a href="https://github.com/chpego">@chpego</a><br/>
Connect a <a href="https://www.bluettipower.com/">BLUETTI</a> power station over your network using its built-in Modbus TCP interface. No account, API key, or cloud connection is needed, so readings continue if your internet connection is down.</p>
</li>
<li>
<p><strong><a href="/integrations/bosch_smart_camera">Bosch Smart Camera</a></strong>, added by <a href="https://github.com/mosandlt">@mosandlt</a><br/>
Connect your Bosch SingleKey ID account to use <a href="https://www.bosch-smarthome.com/">Bosch Smart Home</a> cameras, such as the Eyes Outdoor and the 360° Indoor camera. This first version sets up the account connection, and the cameras themselves follow in a later release.</p>
</li>
<li>
<p><strong><a href="/integrations/chirpstack">ChirpStack</a></strong>, added by <a href="https://github.com/balloobbot">@balloobbot</a><br/>
Connect your <a href="https://www.chirpstack.io/">ChirpStack</a> LoRaWAN network server to Home Assistant. Select a tenant and its applications to make supported devices available.</p>
</li>
<li>
<p><strong><a href="/integrations/debug_console">Debug console</a></strong>, added by <a href="https://github.com/frenck">@frenck</a><br/>
Run Python code inside Home Assistant, similar to a browser’s developer console. This integration is for developers who need to inspect Home Assistant and integration internals, not for everyday use. Because it has full access, enable it in your <span class="terminology"><code>configuration.yaml</code><span class="terminology-tooltip">The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.<a class="terminology-link" href="/docs/configuration/"> [Learn more]</a></span></span> file. Only administrators can use it, and Home Assistant shows a warning first.</p>
</li>
<li>
<p><strong><a href="/integrations/ecosmart">ecosmart</a></strong>, added by <a href="https://github.com/Daryn-L">@Daryn-L</a><br/>
Get half-hourly wholesale electricity prices from <a href="https://www.ecosmart.co.nz/">ecosmart</a>, a New Zealand retailer that passes spot prices on to customers. Use the prices to shift consumption to cheaper periods.</p>
</li>
<li>
<p><strong><a href="/integrations/engie_be">ENGIE Belgium</a></strong>, added by <a href="https://github.com/DaanVervacke">@DaanVervacke</a>, launching at 🥈 silver quality<br/>
Track electricity and gas prices for your <a href="https://www.engie.be">ENGIE Belgium</a> contracts. With a dynamic tariff, you also get Belgian EPEX day-ahead wholesale prices to help you choose when to run appliances.</p>
</li>
<li>
<p><strong><a href="/integrations/flic_button">Flic</a></strong>, added by <a href="https://github.com/alhia">@alhia</a> and <a href="https://github.com/joostlek">@joostlek</a><br/>
Pair Flic 2, Flic Duo, and Flic Twist buttons with Home Assistant directly over Bluetooth, without an account. Each push shows up as an event you can use in <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. The Flic Twist also reports how far it is turned.</p>
</li>
<li>
<p><strong><a href="/integrations/foreca">Foreca</a></strong>, added by <a href="https://github.com/EetuPelkonen">@EetuPelkonen</a><br/>
Get weather forecasts for locations worldwide from <a href="https://business.foreca.com">Foreca</a>. For noncommercial use, you can choose a free Foreca Weather API Freemium key or one of its premium packages.</p>
</li>
<li>
<p><strong><a href="/integrations/grandstream_home">Grandstream Home</a></strong>, added by <a href="https://github.com/wtxu-gs">@wtxu-gs</a><br/>
Monitor Grandstream GDS372x and GSC356X door access systems from Home Assistant. Home Assistant discovers them on your local network.</p>
</li>
<li>
<p><strong><a href="/integrations/hase_iq">Hase iQ</a></strong>, added by <a href="https://github.com/bbayszczak">@bbayszczak</a><br/>
Monitor the combustion phase, firebox temperature, heat-up progress, and combustion performance of a HASE wood stove with iQ monitoring. Home Assistant reads the stove over your local network, without the vendor app or a cloud service. You can get a <span class="terminology">notification<span class="terminology-tooltip">You can use notifications to send messages, pictures, and more, to devices.<a class="terminology-link" href="/integrations/#notifications"> [Learn more]</a></span></span> when it is time to add wood. The integration is read-only, so it cannot turn the stove on or off.</p>
</li>
<li>
<p><strong><a href="/integrations/haven_iaq">HAVEN IAQ</a></strong>, added by <a href="https://github.com/krhtzoa">@krhtzoa</a>, launching at 🥈 silver quality<br/>
Connect <a href="https://haveniaq.com/">HAVEN IAQ</a> Room Air Monitors and Central Air Monitors over your local network. Home Assistant discovers them and provides indoor air quality and airflow measurements.</p>
</li>
<li>
<p><strong><a href="/integrations/helty_cloud">Helty Flow Cloud</a></strong>, added by <a href="https://github.com/ebaschiera">@ebaschiera</a><br/>
Control <a href="https://www.heltyair.com/">Helty Flow</a> heat-recovery ventilation units with the newer control panel, which is managed through the Helty Home app. The panel connects through the manufacturer’s cloud, so the integration uses your Helty Home account. Units with the older panel continue to use the Helty Flow integration.</p>
</li>
<li>
<p><strong><a href="/integrations/hp_printer">HP Printer</a></strong>, added by <a href="https://github.com/chemelli74">@chemelli74</a><br/>
Monitor an <a href="https://www.hp.com/">HP</a> printer over your local network without a cloud account. See its status, ink or toner levels, and page counts for printing, scanning, copying, and faxing. Get a notification before a cartridge runs out.</p>
</li>
<li>
<p><strong><a href="/integrations/hydroquebec_peak">Hydro-Québec Peak Events</a></strong>, added by <a href="https://github.com/Beat-YT">@Beat-YT</a><br/>
Track winter peak demand events (<em>événements de pointe</em>) announced by <a href="https://www.hydroquebec.com/">Hydro-Québec</a>, Québec’s electricity utility. Preheat your home before an event and lower the thermostat while it runs. The integration uses public data, so no account is needed.</p>
</li>
<li>
<p><strong><a href="/integrations/kaco_rs485">KACO RS485</a></strong>, added by <a href="https://github.com/g4bri3lDev">@g4bri3lDev</a>, launching at 🥈 silver quality<br/>
Read <a href="https://kaco-newenergy.com/">KACO new energy</a> Powador xi solar inverters over their RS485 serial bus. These inverters have no network port. Up to 32 inverters can share one bus, and their production appears on the <a href="/docs/energy/">Energy dashboard</a>.</p>
</li>
<li>
<p><strong><a href="/integrations/libresync">LibreSync</a></strong>, added by <a href="https://github.com/drsound">@drsound</a><br/>
Control audio hubs built on the Libre Wireless LibreSync platform over your local network, such as the Platin Stereo Hub. See what is playing and from which source, and change the volume from a dashboard or an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. No account or cloud connection is needed.</p>
</li>
<li>
<p><strong><a href="/integrations/lorawan">LoRaWAN</a></strong>, added by <a href="https://github.com/balloobbot">@balloobbot</a><br/>
Connect LoRaWAN network server integrations, such as ChirpStack and The Things Network, with supported device integrations, such as SenseCAP.</p>
</li>
<li>
<p><strong><a href="/integrations/marantz_rs232">Marantz RS-232</a></strong>, added by <a href="https://github.com/balloobbot">@balloobbot</a><br/>
Control a <a href="https://www.marantz.com/">Marantz</a> receiver through its RS-232 serial port, with <span class="terminology">local control<span class="terminology-tooltip">Local control means Home Assistant talks to your devices directly over your own network, without going through a vendor cloud.</span></span> and state updates. Set the input and volume in a movie-night <span class="terminology">scene<span class="terminology-tooltip">Scenes capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.<a class="terminology-link" href="/integrations/scene/"> [Learn more]</a></span></span>, or put a zone in standby at bedtime. The integration supports receivers that use the 2007 Marantz protocol, tested with the SR7002.</p>
</li>
<li>
<p><strong><a href="/integrations/marketplace">Marketplace</a></strong>, added by <a href="https://github.com/frenck">@frenck</a><br/>
Find and install community-created integrations, dashboard cards, themes, and templates, and get updates for installed projects. Administrators can open it under <strong>Settings</strong> &gt; <strong>Marketplace</strong>. Community projects are not tested, audited, or supported by the Home Assistant project. Read the notice before installing a project.</p>
</li>
<li>
<p><strong><a href="/integrations/mijn_farmad_apotheek">Mijn Farmad Apotheek</a></strong>, added by <a href="https://github.com/DaanVervacke">@DaanVervacke</a><br/>
Search your pharmacy’s catalog and order medication for pickup using your <a href="https://procura.farmad.be/">Mijn Farmad Apotheek</a> account. The service is used by more than 1,000 pharmacies in Flanders. The integration provides two <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>: search and order.</p>
</li>
<li>
<p><strong><a href="/integrations/nature_remo">Nature Remo</a></strong>, added by <a href="https://github.com/tnj">@tnj</a><br/>
Connect <a href="https://nature.global/">Nature</a> Remo smart remote controllers through the Nature cloud. Each Remo reports the temperature and humidity of its room. A Remo E also reports energy imported from and exported to the grid for the <a href="/docs/energy/">Energy dashboard</a>.</p>
</li>
<li>
<p><strong><a href="/integrations/okok_scale">OKOK Scale</a></strong>, added by <a href="https://github.com/rrooggiieerr">@rrooggiieerr</a>, launching at 🏆 platinum quality<br/>
Connect a Bluetooth scale that works with the <a href="https://okokapp.com/">OKOK·International</a> app. Chart your weight on a dashboard and use each new measurement in <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. The integration does not depend on the OKOK cloud app.</p>
</li>
<li>
<p><strong><a href="/integrations/philips_infrared">Philips Infrared</a></strong>, added by <a href="https://github.com/javitonino">@javitonino</a><br/>
Control a <a href="https://www.philips.com/">Philips</a> TV with an infrared emitter already set up in Home Assistant. Turn the TV on or off, change the volume, and switch channels. Infrared is one-way, so the integration cannot confirm the TV’s state. If your TV is on your network, the <a href="/integrations/philips_js/">Philips TV</a> integration can read its state.</p>
</li>
<li>
<p><strong><a href="/integrations/rainbowminer">RainbowMiner</a></strong>, added by <a href="https://github.com/El1t3Mult1pl3x0r">@El1t3Mult1pl3x0r</a><br/>
Monitor <a href="https://github.com/RainbowMiner/RainbowMiner">RainbowMiner</a>, an open-source cryptocurrency mining program that switches between algorithms, pools, and coins on its own. Home Assistant reads its local API, so you can follow the mining status, earnings, and power consumption.</p>
</li>
<li>
<p><strong><a href="/integrations/seafile">Seafile</a></strong>, added by <a href="https://github.com/erwindouna">@erwindouna</a><br/>
Connect your own <a href="https://www.seafile.com/">Seafile</a> file sync and share server. See the size, number of files, and last change of the libraries you pick, and store your <span class="terminology">backups<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span> on the server.</p>
</li>
<li>
<p><strong><a href="/integrations/sensecap_lorawan">SenseCAP</a></strong>, added by <a href="https://github.com/balloob">@balloob</a><br/>
Add supported <a href="https://www.seeedstudio.com/SenseCAP-c-1825.html">Seeed Studio SenseCAP</a> sensors from your LoRaWAN connections. Depending on the model, Home Assistant provides temperature, humidity, illuminance, carbon dioxide, soil, and weather readings, plus battery level.</p>
</li>
<li>
<p><strong><a href="/integrations/silvercrest_infrared">SilverCrest Infrared</a></strong>, added by <a href="https://github.com/tr4nt0r">@tr4nt0r</a><br/>
Control SilverCrest fans and air coolers with an infrared emitter already set up in Home Assistant. Turn a device on or off and set its other functions. Infrared is one-way, so the integration cannot confirm the device’s state.</p>
</li>
<li>
<p><strong><a href="/integrations/smartyplants">SmartyPlants</a></strong>, added by <a href="https://github.com/bigbimbs">@bigbimbs</a><br/>
Connect SmartyPlants plant sensors to Home Assistant. See soil moisture, temperature, humidity, and light, along with each plant’s health score and fertilizing countdown. You can get a reminder when a plant needs water.</p>
</li>
<li>
<p><strong><a href="/integrations/solyx_energy_cloud">Solyx Energy Cloud</a></strong>, added by <a href="https://github.com/MartinaeyNL">@MartinaeyNL</a><br/>
Monitor and control a Nymo device from <a href="https://www.solyxenergy.nl">Solyx Energy</a>. The Nymo heats an electric boiler with the solar power you would otherwise feed back to the grid, so your surplus is stored as hot water.</p>
</li>
<li>
<p><strong><a href="/integrations/exicom_spin_ble">Spin EV Charger</a></strong>, added by <a href="https://github.com/Dr-Blank">@Dr-Blank</a><br/>
Connect an <a href="https://www.exicom.in/">Exicom</a> Spin EV charger directly over Bluetooth Low Energy, without a cloud service or vendor account.</p>
</li>
<li>
<p><strong><a href="/integrations/steamvr_base_station">SteamVR Base Station</a></strong>, added by <a href="https://github.com/g4bri3lDev">@g4bri3lDev</a>, launching at 🥈 silver quality<br/>
Control Valve Index base stations (SteamVR Base Station 2.0) over Bluetooth Low Energy. Turn them on or off to stop their motors and lasers when you are not using VR. The original base stations that came with the HTC Vive are not supported.</p>
</li>
<li>
<p><strong><a href="/integrations/thethingsnetwork_lorawan">The Things Network</a></strong>, added by <a href="https://github.com/balloobbot">@balloobbot</a><br/>
Connect <a href="https://www.thethingsnetwork.org/">The Things Network</a> or a self-hosted The Things Stack server to LoRaWAN using an application API key. Device integrations, such as SenseCAP, turn sensor readings into <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>. The existing integration, now named The Things Network (Cloud Storage), remains available for sensors based on stored payload fields.</p>
</li>
<li>
<p><strong><a href="/integrations/xiaomi_weather">Xiaomi Weather</a></strong>, added by <a href="https://github.com/shirok1">@shirok1</a><br/>
Get current weather and daily, hourly, and twice-daily forecasts for cities in mainland China. Select a location on the map to find the matching city. No Xiaomi device, account, or API key is needed.</p>
</li>
<li>
<p><strong><a href="/integrations/skoda">Škoda</a></strong>, added by <a href="https://github.com/TomVSB">@TomVSB</a><br/>
Monitor your <a href="https://www.skoda-auto.com">Škoda</a> vehicle through Škoda Connect. See the mileage, fuel or battery level, charging state, range, and climate control target temperature. The integration is read-only. Create its API key in the MyŠkoda app.</p>
</li>
</ul>
<h3>Noteworthy improvements to existing integrations</h3>
<p>It is not just new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have been added; existing ones keep getting better too. Here are some of the noteworthy improvements this release:</p>
<ul>
<li><strong><a href="/integrations/esphome">ESPHome</a></strong> <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> can now share one of their serial ports over your network, so an <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> can reach a serial-connected device, like an <abbr title="Audio &amp; video">AV</abbr> receiver or an energy meter, from anywhere in the house. <strong><a href="/integrations/zha">Zigbee Home Automation</a></strong> can use it for a Zigbee adapter plugged into an ESPHome device, and keeps working when you move that adapter to another ESPHome device. Add the serial proxy component to your ESPHome device, and the port shows up when you set up the integration that needs it. Thanks, <a href="https://github.com/puddly">@puddly</a>!</li>
<li><strong><a href="/integrations/shelly">Shelly</a></strong> added an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> for the BLU TRV, a <strong>Last seen</strong> <span class="terminology">sensor<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span> that tells you when a battery-powered device last reported in, a single <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> to set the position and tilt of a <span class="terminology">cover<span class="terminology-tooltip">Covers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position.<a class="terminology-link" href="/integrations/cover"> [Learn more]</a></span></span> at once, and a sensor for what sent the last command to the device. Thanks, <a href="https://github.com/bieniu">@bieniu</a> and <a href="https://github.com/thecode">@thecode</a>!</li>
<li><strong><a href="/integrations/tuya">Tuya</a></strong> supports more <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> again: heated towel racks (with temperature control, switches, modes, and a countdown sensor), water valves on irrigation controllers, and the switches that were missing on multi-gang wall switches. Thanks, <a href="https://github.com/rngarcia">@rngarcia</a>, <a href="https://github.com/tritter">@tritter</a>, <a href="https://github.com/alainmic">@alainmic</a>, and <a href="https://github.com/huangjt1">@huangjt1</a>!</li>
<li><strong><a href="/integrations/unifiprotect">UniFi Protect</a></strong> now supports the UniFi Protect Alarm Hub. It is added as its own <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, with <span class="terminology">“binary sensors”<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span> for tamper, backup battery, and each zone input. A new <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> triggers an alarm webhook, key fobs report their signal quality, and the API-key-only mode gained chimes, doorbell messages, pan and tilt control, and speaker audio. Thanks, <a href="https://github.com/RaHehl">@RaHehl</a>, <a href="https://github.com/SteveEdson">@SteveEdson</a>, and <a href="https://github.com/jzila">@jzila</a>!</li>
<li><strong><a href="/integrations/zha">Zigbee Home Automation</a></strong> gives each group its own <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, named after the group. You can give a group its own <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>, and its entities are all in one place, just like on any other device. Thanks, <a href="https://github.com/TheJulianJES">@TheJulianJES</a>!</li>
<li><strong><a href="/integrations/bosch_shc">Bosch SHC</a></strong> grew a lot this release. The Intrusion Detection System of your controller is now an alarm control panel that you can arm and disarm without a code, each room and each heating circuit gets a <span class="terminology">“climate entity”<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span>, and Light Control micromodule dimmers show up as <span class="terminology">lights<span class="terminology-tooltip">A light has a brightness you can control, and optionally color temperature or RGB color control.<a class="terminology-link" href="/integrations/light"> [Learn more]</a></span></span>. On top of that, there is a self-test button for smoke detectors, sensors for the Room Thermostat II, notification switches for the Camera 360 and Camera Eyes, and a long list of settings you can now change from Home Assistant, such as motion, smoke, and vibration sensitivity, the thermostat display, the state after a power outage, the temperature offset, and the LED brightness. Thanks, <a href="https://github.com/mosandlt">@mosandlt</a>!</li>
<li><strong><a href="/integrations/homematicip_cloud">HomematicIP Cloud</a></strong> added an identify button that makes a <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> signal where it is, a heating output <span class="terminology">binary sensor<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span> for wall thermostats, the water supply stop valve with its water alarm sensor, distance and height sensors for the ELV-SH-DUSI, and the motion and illuminance entities of the HmIP-SMO230. An access authorization with a PIN can now be used with the <strong>Pull latch</strong> <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/lackas">@lackas</a>!</li>
<li><strong><a href="/integrations/teslemetry">Teslemetry</a></strong> builds on the local Powerwall support from last release: grid and site <span class="terminology">“binary sensors”<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span>, solar string sensors, and battery dispatch <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> now come straight from your Powerwall over your own network. Vehicles gained Bluetooth binary sensors and buttons to keep the accessory power on, and Wall Connectors report the energy they delivered today. Thanks, <a href="https://github.com/Bre77">@Bre77</a>!</li>
<li><strong><a href="/integrations/alexa">Amazon Alexa</a></strong> can show a camera’s live view on an Echo Show, for cameras that support <abbr title="Web Real-Time Communication">WebRTC</abbr>, either directly or through <a href="/integrations/go2rtc/">go2rtc</a>. Thanks, <a href="https://github.com/nolimit-labs">@nolimit-labs</a>!</li>
<li><strong><a href="/integrations/alexa_devices">Alexa Devices</a></strong> now supports the Amazon Echo Glow, including brightness, color, and light modes like <strong>Campfire</strong> and <strong>Disco</strong> as effects. Notifications can carry a title, and air quality monitors gained a switch for their LED. Thanks, <a href="https://github.com/jamesonuk">@jamesonuk</a> and <a href="https://github.com/chemelli74">@chemelli74</a>!</li>
<li><strong><a href="/integrations/midea">Midea</a></strong> keeps growing: washing machines and dryers with their controls and a progress sensor, refrigerator door <span class="terminology">“binary sensors”<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span>, the water heater entities that were still missing, a power switch for air purifiers, and a prompt tone switch for dehumidifiers. Thanks, <a href="https://github.com/rokam">@rokam</a>, <a href="https://github.com/jebentancour">@jebentancour</a>, <a href="https://github.com/devPalacio">@devPalacio</a>, and <a href="https://github.com/vrpolice">@vrpolice</a>!</li>
<li><strong><a href="/integrations/mqtt">MQTT</a></strong> <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> can have child devices, so a device with several parts shows each part separately. The MQTT entity editor also gained a picker for the unit of measurement. Thanks, <a href="https://github.com/jbouwh">@jbouwh</a>!</li>
<li><strong><a href="/integrations/lutron_caseta">Lutron Caseta</a></strong> creates an <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> for every keypad and Pico remote button, so a physical button press can start an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> directly. Lutron Athena processors are now supported as well. Thanks, <a href="https://github.com/davidrecordon">@davidrecordon</a> and <a href="https://github.com/ImperatorRuscal">@ImperatorRuscal</a>!</li>
<li><strong><a href="/integrations/lifx">LIFX</a></strong> Ceiling and Mirror lights now expose their two components separately, so you can light a room softly with only the uplight of a Ceiling or the backlight of a Mirror, and switch on the other one when you need more light. The Color Sweep effect was added too. Thanks, <a href="https://github.com/Djelibeybi">@Djelibeybi</a>!</li>
<li><strong><a href="/integrations/nanoleaf">Nanoleaf</a></strong> panels with touch support report single taps, double taps, and swipes as an <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span>. On the Nanoleaf 4D, the screen mirroring modes are available as light effects. Thanks, <a href="https://github.com/SeoFood">@SeoFood</a> and <a href="https://github.com/loebi-ch">@loebi-ch</a>!</li>
<li><strong><a href="/integrations/wled">WLED</a></strong> added a switch for the AudioReactive usermod, a button that jumps to the next entry of a playlist, and temperature and humidity sensors for devices with the matching usermods. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong><a href="/integrations/switchbot">SwitchBot Bluetooth</a></strong> added the Circulator Fan Pro, key state sensors for the Climate Panel, a button to sync the date and time of the Meter Pro, and a button that puts a random image on the Art Frame. Thanks, <a href="https://github.com/Onero-testdev">@Onero-testdev</a>, <a href="https://github.com/skirmess">@skirmess</a>, and <a href="https://github.com/italo-lombardi">@italo-lombardi</a>!</li>
<li><strong><a href="/integrations/renault">Renault</a></strong> now supports two-factor authentication. If your My Renault account has it turned on, Home Assistant asks for the verification code that was sent to your email. Entities are also set up per vehicle, so a vehicle you add to your account later shows up on its own. Thanks, <a href="https://github.com/epenet">@epenet</a>!</li>
<li><strong><a href="/integrations/icloud">Apple iCloud</a></strong> added more sensors and <span class="terminology">“binary sensors”<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span> for each of your devices, and a <strong>Play sound</strong> button that rings a misplaced device, even when it is set to silent or Do Not Disturb. Thanks, <a href="https://github.com/timlaing">@timlaing</a> and <a href="https://github.com/TeroPihlaja">@TeroPihlaja</a>!</li>
<li><strong><a href="/integrations/lametric">LaMetric</a></strong> can be set up by pressing the button on top of the device, so you don’t need a LaMetric account for it at all. The screensaver can be switched on and off, and scheduled with start and end time entities. Notifications can play an MP3 from a URL or from your media, and a built-in sound can now be repeated, or kept playing until the notification is dismissed. Thanks, <a href="https://github.com/frenck">@frenck</a> and <a href="https://github.com/ElYoM">@ElYoM</a>!</li>
<li><strong><a href="/integrations/rituals_perfume_genie">Rituals Perfume Genie</a></strong> gained a firmware <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span>, a switch for the standby LED so the diffuser doesn’t light up your bedroom at night, a <span class="terminology">binary sensor<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span> that tells you whether a cartridge is inserted, and a fill level in percent. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong><a href="/integrations/ecovacs">Ecovacs</a></strong> robots gained a button to wash the mop, a number to set after how many minutes of cleaning the station washes it, a switch and a frequency select for emptying the dust bin, an efficiency mode select, and more lifespan sensors. Lawn mowers can now be stopped. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/tractive">Tractive</a></strong> has been reworked to make it more reliable and to fix most known issues. It also adds a pet weight sensor. Thanks, <a href="https://github.com/bieniu">@bieniu</a>!</li>
<li><strong><a href="/integrations/zonneplan">Zonneplan</a></strong> brings your home battery into Home Assistant, with its state of charge, power, battery and inverter state, what it earned today and in total, and a select to change its control mode. EV charge points gained binary sensors. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/melcloud_home">MELCloud Home</a></strong> keeps a connection open to the service, so changes reach Home Assistant as they happen, instead of waiting for the next <span class="terminology">“poll”<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span>. It also added the outdoor temperature of air-to-air units, the frost protection status, and binary sensors for the protections that are active. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/portainer">Portainer</a></strong> shows the running Portainer version next to the latest release as an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span>, with a link to its release notes. Container image updates now show their download progress while they install, and new buttons prune the build cache and unused networks. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/neopool">NeoPool</a></strong> can connect to your pool controller over a direct serial connection, next to Modbus over the network. It added selects, a temperature setpoint for intelligent mode, and a sensor for the filtration time remaining. Thanks, <a href="https://github.com/svasek">@svasek</a>!</li>
<li><strong><a href="/integrations/sofar">Sofar</a></strong> inverters can be read over a direct RS485 serial connection as well as Modbus TCP, and gained battery cut-off state of charge sensors and a fault <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span>. And when Home Assistant restarts at night, while a solar inverter has switched itself off, the integration now still loads as long as the Modbus TCP bridge or serial port is reachable. Its entities fill in once the inverter answers again. Thanks, <a href="https://github.com/darkrain-nl">@darkrain-nl</a>!</li>
<li><strong><a href="/integrations/rainbird">Rain Bird</a></strong> added a next run sensor for each program, a button to sync the controller’s clock, and the zones with their run times in the description of each calendar event. Thanks, <a href="https://github.com/pavandave">@pavandave</a> and <a href="https://github.com/airdrummingfool">@airdrummingfool</a>!</li>
<li><strong><a href="/integrations/system_bridge">System Bridge</a></strong> added sensors for the load average, the network download and upload rates, the disk read and write rates, and the battery state and AC power of the machine it runs on. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li><strong><a href="/integrations/discord">Discord</a></strong> channels, users, and direct messages can be added as notification targets from the UI. Each one becomes its own notify <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>, so you no longer need the channel ID every time you send a message. Thanks, <a href="https://github.com/joostlek">@joostlek</a>!</li>
<li><strong><a href="/integrations/smartthings">SmartThings</a></strong> washers and dryers report their progress, and TVs gained a picture mode select, plus sound mode support on their media player. Thanks, <a href="https://github.com/xthree">@xthree</a> and <a href="https://github.com/zivgin">@zivgin</a>!</li>
<li><strong><a href="/integrations/velbus">Velbus</a></strong> creates an <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> for every physical button, which records whether it was a short or a long press. Thanks, <a href="https://github.com/fredericdepuydt">@fredericdepuydt</a>!</li>
<li><strong><a href="/integrations/satel_integra">Satel Integra</a></strong> added system status sensors, so you can keep an eye on the health of your alarm panel. You can see when the panel is in service mode or reports a problem, including power supply and battery faults. Thanks, <a href="https://github.com/Tommatheussen">@Tommatheussen</a>!</li>
<li><strong><a href="/integrations/victron_gx">Victron GX</a></strong> devices can install firmware updates from Home Assistant, and <strong><a href="/integrations/my_pv">my-PV</a></strong> added an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> and a <span class="terminology">“climate entity”<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/tomer-w">@tomer-w</a> and <a href="https://github.com/rrooggiieerr">@rrooggiieerr</a>!</li>
<li><strong><a href="/integrations/google_generative_ai_conversation">Google Gemini</a></strong> <span class="terminology">“text-to-speech”<span class="terminology-tooltip">TTS (text-to-speech) allows Home Assistant to talk to you.<a class="terminology-link" href="/integrations/tts/"> [Learn more]</a></span></span> now runs on Gemini 3.8 Flash by default, with a style option to steer how a message is spoken, the voices from the voice library, and more supported languages. <strong><a href="/integrations/openai_conversation">OpenAI</a></strong> added support for GPT-6.1 Terra. Thanks, <a href="https://github.com/nikosavola">@nikosavola</a> and <a href="https://github.com/Shulyaka">@Shulyaka</a>!</li>
</ul>
<h4>Infrared and radio frequency keep growing</h4>
<ul>
<li><strong><a href="/integrations/shelly">Shelly</a></strong> adds an infrared <span class="terminology">platform<span class="terminology-tooltip">Platforms are building blocks provided by some integrations to be used by other integrations.<a class="terminology-link" href="/docs/configuration/platform_options/"> [Learn more]</a></span></span>.</li>
<li><strong><a href="/integrations/radio_frequency">Radio Frequency</a></strong> can receive signals from supported receivers.</li>
<li><strong><a href="/integrations/lg_infrared">LG Infrared</a></strong> and <strong><a href="/integrations/gree_infrared">Gree Infrared</a></strong> <span class="terminology">“climate entities”<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span> can now be turned on and off. <strong><a href="/integrations/gree_infrared">Gree Infrared</a></strong> also adds a switch.</li>
<li><strong><a href="/integrations/led_infrared">LED Infrared</a></strong> supports a generic 21-key remote.</li>
<li><strong><a href="/integrations/alpha_bidet_infrared">Alpha Bidet Infrared</a></strong> adds controls for water and seat temperature.</li>
</ul>
<p>Thanks to <a href="https://github.com/bieniu">@bieniu</a>, <a href="https://github.com/abmantis">@abmantis</a>, <a href="https://github.com/Dr-Blank">@Dr-Blank</a>, <a href="https://github.com/tr4nt0r">@tr4nt0r</a>, and <a href="https://github.com/eseverson">@eseverson</a> for these improvements.</p>
<h3>Integration quality scale achievements</h3>
<p>One thing we are incredibly proud of in Home Assistant is our <a href="/docs/quality_scale/">integration quality scale</a>. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.</p>
<p>This release, we celebrate several <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have improved their quality scale:</p>
<ul>
<li>
<p><strong>19 integrations reached platinum</strong> 🏆</p>
<ul>
<li><a href="/integrations/onewire">1-Wire</a>, thanks to <a href="https://github.com/epenet">@epenet</a></li>
<li><a href="/integrations/axle_energy">Axle Energy</a>, thanks to <a href="https://github.com/Herbertmt978">@Herbertmt978</a></li>
<li><a href="/integrations/chef_iq">Chef iQ</a>, thanks to <a href="https://github.com/Invader444">@Invader444</a></li>
<li><a href="/integrations/gatus">Gatus</a>, thanks to <a href="https://github.com/TN-1">@TN-1</a></li>
<li><a href="/integrations/gree_infrared">Gree Infrared</a>, thanks to <a href="https://github.com/Dr-Blank">@Dr-Blank</a></li>
<li><a href="/integrations/lametric">LaMetric</a>, thanks to <a href="https://github.com/frenck">@frenck</a></li>
<li><a href="/integrations/lg_infrared">LG Infrared</a>, thanks to <a href="https://github.com/Dr-Blank">@Dr-Blank</a></li>
<li><a href="/integrations/lifx">LIFX</a>, thanks to <a href="https://github.com/Djelibeybi">@Djelibeybi</a></li>
<li><a href="/integrations/midea">Midea</a>, thanks to <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><a href="/integrations/minecraft_server">Minecraft Server</a>, thanks to <a href="https://github.com/elmurato">@elmurato</a></li>
<li><a href="/integrations/pvoutput">PVOutput</a>, thanks to <a href="https://github.com/frenck">@frenck</a></li>
<li><a href="/integrations/hr_energy_qube">Qube heat pump</a>, thanks to <a href="https://github.com/MattieGit">@MattieGit</a></li>
<li><a href="/integrations/radio_browser">Radio Browser</a>, thanks to <a href="https://github.com/frenck">@frenck</a></li>
<li><a href="/integrations/renault">Renault</a>, thanks to <a href="https://github.com/epenet">@epenet</a></li>
<li><a href="/integrations/scorpiontrack">ScorpionTrack</a>, thanks to <a href="https://github.com/Herbertmt978">@Herbertmt978</a></li>
<li><a href="/integrations/smhi">SMHI</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><a href="/integrations/smtp">SMTP</a>, thanks to <a href="https://github.com/tr4nt0r">@tr4nt0r</a></li>
<li><a href="/integrations/vistapool">Vistapool</a>, thanks to <a href="https://github.com/fdebrus">@fdebrus</a></li>
<li><a href="/integrations/wattwaechter">WattWächter Plus</a>, thanks to <a href="https://github.com/smartcircuits">@smartcircuits</a></li>
</ul>
</li>
<li>
<p><strong>3 integrations reached gold</strong> 🥇</p>
<ul>
<li><a href="/integrations/airly">Airly</a>, thanks to <a href="https://github.com/bieniu">@bieniu</a></li>
<li><a href="/integrations/imou">Imou</a>, thanks to <a href="https://github.com/Imou-OpenPlatform">@Imou-OpenPlatform</a></li>
<li><a href="/integrations/qingping">Qingping</a>, thanks to <a href="https://github.com/tengfeili-qingping">@tengfeili-qingping</a></li>
</ul>
</li>
<li>
<p><strong>6 integrations reached silver</strong> 🥈</p>
<ul>
<li><a href="/integrations/dnsip">DNS IP</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><a href="/integrations/eurotronic_cometblue">Eurotronic Comet Blue</a>, thanks to <a href="https://github.com/rikroe">@rikroe</a></li>
<li><a href="/integrations/my_pv">my-PV</a>, thanks to <a href="https://github.com/rrooggiieerr">@rrooggiieerr</a></li>
<li><a href="/integrations/rejseplanen">Rejseplanen</a>, thanks to <a href="https://github.com/Jawar19">@Jawar19</a></li>
<li><a href="/integrations/threema">Threema</a>, thanks to <a href="https://github.com/LukasQ">@LukasQ</a></li>
<li><a href="/integrations/tractive">Tractive</a>, thanks to <a href="https://github.com/bieniu">@bieniu</a></li>
</ul>
</li>
<li>
<p><strong>7 integrations reached bronze</strong> 🥉</p>
<ul>
<li><a href="/integrations/bluesound">Bluesound</a>, thanks to <a href="https://github.com/LouisChrist">@LouisChrist</a></li>
<li><a href="/integrations/holiday">Holiday</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><a href="/integrations/loqed">LOQED Touch Smart Lock</a>, thanks to <a href="https://github.com/mikewoudenberg">@mikewoudenberg</a></li>
<li><a href="/integrations/nam">Nettigo Air Monitor</a>, thanks to <a href="https://github.com/bieniu">@bieniu</a></li>
<li><a href="/integrations/braviatv">Sony Bravia TV</a>, thanks to <a href="https://github.com/bieniu">@bieniu</a></li>
<li><a href="/integrations/trafikverket_camera">Trafikverket Camera</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><a href="/integrations/trafikverket_weatherstation">Trafikverket Weather Station</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
</ul>
</li>
</ul>
<p>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.</p>
<p>A big thank you to all the contributors involved! 👏</p>
<h3>Now available to set up from the UI</h3>
<p>While most <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> can be set up directly from the Home Assistant user interface, some were only available through <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> configuration. We keep moving more integrations to the UI, making them more accessible for everyone to set up and use.</p>
<p>The following integrations are now available via the Home Assistant UI:</p>
<ul>
<li><strong><a href="/integrations/bitcoin">Bitcoin</a></strong>, done by <a href="https://github.com/Nihvel">@Nihvel</a></li>
<li><strong><a href="/integrations/folder">Folder</a></strong>, done by <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><strong><a href="/integrations/keyboard_remote">Keyboard Remote</a></strong>, done by <a href="https://github.com/lanrat">@lanrat</a></li>
<li><strong><a href="/integrations/ubus">OpenWrt (ubus)</a></strong>, done by <a href="https://github.com/apoorva-01">@apoorva-01</a></li>
<li><strong><a href="/integrations/sky_hub">Sky Hub</a></strong>, done by <a href="https://github.com/jackstevenson">@jackstevenson</a></li>
</ul>
<h3>Farewell to the following</h3>
<p>Time for a little cleaning. The following <span class="terminology">“integrations”<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> are no longer available as of this release:</p>
<ul>
<li><strong>Flipr</strong> has been removed because the company behind it was liquidated. A minimal version of the integration remains to show configuration alerts. You can remove the integration from your setup.</li>
</ul>
<h2>Other noteworthy changes</h2>
<p>There is even more packed into this release. Here are some of the other changes worth a mention:</p>
<ul>
<li><strong>Keep an eye on radon.</strong> Radon now has its own <span class="terminology">triggers<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> and <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, so you can, for example, turn on a basement fan when <a href="/triggers/air_quality.radon_crossed_threshold/">radon levels rise</a>, or <a href="/conditions/air_quality.is_radon_value/">check the radon level</a> before running an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/abmantis">@abmantis</a>!</li>
<li><strong>Act after an update.</strong> A new <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> starts an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> once Home Assistant has started after an update, and tells you which version you updated from and to. It doesn’t fire on a normal restart. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong>Expose many entities at once.</strong> Select the <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> you want in the table under <a class="my" href="https://my.home-assistant.io/redirect/entities" target="_blank"><strong>Settings</strong> &gt; <strong>Devices &amp; services</strong> &gt; <strong>Entities</strong></a>, then choose <strong>Expose to voice assistant</strong>, or <strong>Stop exposing to voice assistant</strong>, from the selection menu. Looking each one up separately in the expose dialog is no longer needed. Thanks, <a href="https://github.com/jpbede">@jpbede</a>!</li>
<li><strong>Switch to YAML with the keyboard.</strong> Press Ctrl + Shift + Y, or Cmd + Shift + Y on a Mac, to move between the visual editor and the <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> editor. It works in the automation, script, and scene editors, in card and dashboard editors, and in <strong>Settings</strong> &gt; <strong>Tools</strong> &gt; <strong>Actions</strong>. You can find it in the keyboard shortcuts dialog, under <strong>Other</strong>. Thanks, <a href="https://github.com/Jump-333">@Jump-333</a>!</li>
<li><strong>Drag picture elements into place.</strong> In the Picture elements card editor, select an element in the preview and drag it where you want it, instead of working out its coordinates. Thanks, <a href="https://github.com/RaHehl">@RaHehl</a>!</li>
<li><strong>Combine calendars into one.</strong> Create a calendar group with the <a href="/integrations/group">Group</a> integration, and it shows the events of all its member <a href="/integrations/calendar">calendars</a> together. Thanks, <a href="https://github.com/elupus">@elupus</a>!</li>
<li><strong>See what is coming up.</strong> Selecting a calendar <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> now lists its upcoming events, instead of only the one in progress. Thanks, <a href="https://github.com/elupus">@elupus</a>!</li>
<li><strong>Let your AI assistant read the system log.</strong> AI assistants that use the Home Assistant <a href="/integrations/llm">LLM</a> API can now read your <a href="/integrations/system_log">System Log</a>, so they can help you track down problems. Thanks, <a href="https://github.com/allenporter">@allenporter</a>!</li>
<li><strong>Water heaters and media players in Template.</strong> The <a href="/integrations/template">Template</a> integration can now create water heater and media player entities. Template <span class="terminology">covers<span class="terminology-tooltip">Covers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position.<a class="terminology-link" href="/integrations/cover"> [Learn more]</a></span></span> can also report and set their speed. Thanks, <a href="https://github.com/lboue">@lboue</a>, <a href="https://github.com/Petro31">@Petro31</a>, and <a href="https://github.com/Bascht74">@Bascht74</a>!</li>
<li><strong>Use trigger variables in template entities.</strong> Trigger-based template entities can now use the variables of their <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/Petro31">@Petro31</a>!</li>
<li><strong>Fire on anything but one state.</strong> In the <a href="/triggers/state/">state trigger</a>, <strong>From</strong> and <strong>To</strong> gained an <strong>Is not</strong> option, so an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> can start when an <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> changes to any state except the one you pick. Thanks, <a href="https://github.com/Skaronator">@Skaronator</a>!</li>
<li><strong>Clear out several rows at once.</strong> The tables for tags, labels, dashboards, and blueprints gained a selection mode: tick the rows you no longer need and delete them in one go. The Marketplace has it too, for uninstalling. Thanks, <a href="https://github.com/DaanVervacke">@DaanVervacke</a>!</li>
<li><strong>Easier to use without a mouse.</strong> Data tables can now be operated with the keyboard and read by a screen reader, icon-only badges and tile icons have accessible names, and the thermostat card is labeled for screen readers. Thanks, <a href="https://github.com/wendevlin">@wendevlin</a>, <a href="https://github.com/timmo001">@timmo001</a>, and <a href="https://github.com/karwosts">@karwosts</a>!</li>
<li><strong>Choose which clients may connect over HTTPS.</strong> The <a href="/integrations/http/">HTTP</a> integration lets you pick a <abbr title="Transport Layer Security">TLS</abbr> profile. <strong>Intermediate v6</strong> is the new default and works with almost every browser, app, and device, while <strong>Modern v6</strong> accepts TLS 1.3 only. If your installation still uses an older profile, a repair offers the current one. Thanks, <a href="https://github.com/Markus98">@Markus98</a>!</li>
<li><strong>More on your Energy dashboard.</strong> You can add your home’s total consumption to the <a href="/docs/energy/">Energy dashboard</a>, and the legends of the power and device graphs now show the current value of each source. Thanks, <a href="https://github.com/Jump-333">@Jump-333</a>!</li>
<li><strong>Follow your Thread and Matter networks.</strong> Thread network information moved to a page of its own, and the Matter network map now also shows the <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> that reach Home Assistant through a bridge. Thanks, <a href="https://github.com/ovflowd">@ovflowd</a> and <a href="https://github.com/mib1185">@mib1185</a>!</li>
</ul>
<h3>Your AI assistant can help troubleshoot</h3>
<p>Home Assistant’s <abbr title="Large language model">LLM</abbr> API gives compatible AI assistants tools to search for <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> and <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, review logs, and look up historical statistics. Log access requires an administrator account.</p>
<p>This release goes a step further. An assistant can look up your system information, search the <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> that are available, and call one. It can list your <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and <span class="terminology">reload<span class="terminology-tooltip">Applies the changes made to Home Assistant configuration files. Changes are normally automatically updated. However, changes made outside of the front end will not be reflected in Home Assistant and require a reload.<a class="terminology-link" href="/common-tasks/general/restarting/#reloading-the-yaml-configuration"> [Learn more]</a></span></span> one. That makes it something that can act on your setup, not only read it, so give it the access you are comfortable with and no more. You can set the <abbr title="Model Context Protocol">MCP</abbr> server to expose only read-only tools, and an AI conversation can now only be continued by the user who started it.</p>
<p>The <a href="/integrations/knx/">KNX</a> integration brings an LLM API of its own, with tools for its telegram store, its project file, and its data point types. Any LLM API becomes available only once an administrator attaches it to a conversation agent or to the MCP server.</p>
<p>Thanks, <a href="https://github.com/balloob">@balloob</a>, <a href="https://github.com/allenporter">@allenporter</a>, and <a href="https://github.com/martinhoefling">@martinhoefling</a>!</p>
<h2>Need help? Join the community</h2>
<p>Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!</p>
<p>Our very active <a href="/join-chat">Discord chat server</a> is an excellent place to be, and don’t forget to join our amazing <a href="https://community.home-assistant.io/">forums</a>.</p>
<p>Found a bug or issue? Please report it in our <a href="https://github.com/home-assistant/core/issues">issue tracker</a> to get it fixed! Or check <a href="/help">our help page</a> for guidance on more places you can go.</p>
<p>Are you more into email? <a href="/newsletter">Sign up for the Open Home Foundation Newsletter</a> to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.</p>
<h2>Backward-incompatible changes</h2>
<p>We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.</p>
<p>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:</p>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>AdGuard Home</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_0">
<p>The <strong>Query log</strong> switch of the AdGuard Home integration now requires AdGuard Home v0.107.30 or newer. On older versions, the switch becomes unavailable.</p>
<p>If AdGuard Home forces HTTPS while the integration is set up without SSL, setup now fails instead of following the redirect to HTTPS. To fix this, remove the integration and add it again with SSL enabled.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/184349">#184349</a>) (<a href="/integrations/adguard/">AdGuard Home documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Alert card</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_1">
<p>The Alert card now shows its color and its pulse only while the <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> is in an alert state, and it supports alarm control panel, binary sensor, cover, and lock entities. The <code>color</code> option is renamed to <code>alert_color</code>, and a new <code>clear_color</code> option sets the color for the rest of the time. Without an <code>alert_color</code>, the card is red during an alert. Set <code>alert_color: none</code> to leave it uncolored.</p>
<p>The card was made for the home and security dashboards, which are not affected. If you added it to a dashboard in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> yourself, update it to the new options.</p>
<p>(<a href="https://github.com/timmo001">@timmo001</a> - <a href="https://github.com/home-assistant/frontend/pull/54880">frontend#54880</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Apple iCloud</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_2">
<p>Completed reminders are no longer fetched by default. The iCloud integration used to include completed reminders in every Reminders fetch, which on accounts with a very large history could block startup for a long time.</p>
<p>To keep the old behavior, enable <strong>Include completed reminders</strong> during setup or afterward in the integration options under <strong>Settings</strong> &gt; <strong>Devices &amp; services</strong> &gt; <strong>Apple iCloud</strong> &gt; <strong>Options</strong>.</p>
<p>(<a href="https://github.com/timlaing">@timlaing</a> - <a href="https://github.com/home-assistant/core/pull/186175">#186175</a>) (<a href="/integrations/icloud/">Apple iCloud documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Auth</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_3">
<p>When you reach Home Assistant at an IP address that is not on a local network, such as a public address, a global IPv6 address, or a Tailscale address (<code>100.64.0.0/10</code>), the address in your browser now has to match the address Home Assistant sees the request coming in on. Scheme, host, and port all have to match. If they do not, logging in fails with “Invalid client id”. Previously, such an address was accepted without that check as soon as it had a port, because of a bug in the check.</p>
<p>Most setups are not affected. Opening Home Assistant directly at such an address keeps working, and so does a reverse proxy that you have set up as a trusted proxy in the <a href="/integrations/http/">HTTP</a> integration, because Home Assistant then uses the forwarded scheme and host. Domain names and local network IP addresses are accepted the same way as before.</p>
<p>If you do run into “Invalid client id”, add your proxy to the trusted proxies of the <a href="/integrations/http/">HTTP</a> integration, or reach Home Assistant through a domain name.</p>
<p>(<a href="https://github.com/elupus">@elupus</a> - <a href="https://github.com/home-assistant/core/pull/186537">#186537</a>) (<a href="https://github.com/elupus">@elupus</a> - <a href="https://github.com/home-assistant/core/pull/186543">#186543</a>) (<a href="/integrations/auth/">Auth documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Besen</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_4">
<p>The Besen <strong>Charging status</strong> sensor now reports <code>scheduled</code> instead of <code>canceled</code> while a scheduled start is pending. Update <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, and <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> that check for <code>canceled</code> to use <code>scheduled</code>. The old name incorrectly described a pending reservation as canceled.</p>
<p>(<a href="https://github.com/moryoav">@moryoav</a> - <a href="https://github.com/home-assistant/core/pull/186968">#186968</a>) (<a href="/integrations/besen/">Besen documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Bitcoin</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_5">
<p>If you set Bitcoin up in <span class="terminology"><code>configuration.yaml</code><span class="terminology-tooltip">The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.<a class="terminology-link" href="/docs/configuration/"> [Learn more]</a></span></span>, setup now moves to the UI. On the first restart after this update, Home Assistant reads the <code>currency</code> from your YAML and creates the integration for you. Your sensors keep the names and entity IDs they had.</p>
<p>The <code>display_options</code> option is no longer supported, so all 21 sensors are created, even if you previously selected only some of them. This does not add API requests, because all sensors use the same two calls.</p>
<p>Entity IDs created with <code>entity_namespace</code> are not preserved. For example, <code>sensor.wallet_exchange_rate_1_btc</code> becomes <code>sensor.exchange_rate_1_btc</code>.</p>
<p>(<a href="https://github.com/Nihvel">@Nihvel</a> - <a href="https://github.com/home-assistant/core/pull/180515">#180515</a>) (<a href="/integrations/bitcoin/">Bitcoin documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Bluesound</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_6">
<p>The deprecated <code>bluesound.join</code> and <code>bluesound.unjoin</code> <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> have been removed. Update <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> to use <code>media_player.join</code> and <code>media_player.unjoin</code>.</p>
<p>(<a href="https://github.com/LouisChrist">@LouisChrist</a> - <a href="https://github.com/home-assistant/core/pull/184755">#184755</a>) (<a href="/integrations/bluesound/">Bluesound documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Calendar and Sun</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_7">
<p>Sun <span class="terminology">triggers<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> (<code>sun.*</code>) and the <code>calendar.event_started</code> and <code>calendar.event_ended</code> triggers used to default to <code>offset_type: before</code>, so a positive <code>offset</code> fired before the event. The sign of the offset now decides instead: negative fires before the event, positive fires after. If you wrote one of these triggers in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> with an <code>offset</code> but without <code>offset_type</code>, flip the sign of the offset.</p>
<p>This is an edge case: the UI always wrote <code>offset_type</code>, so triggers created in the UI are not affected.</p>
<p>(<a href="https://github.com/piitaya">@piitaya</a> - <a href="https://github.com/home-assistant/core/pull/184855">#184855</a>) (<a href="/integrations/calendar/">Calendar documentation</a>) (<a href="/integrations/sun/">Sun documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Control4</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_8">
<p>The Control4 integration no longer lets you set the <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval in its options. The integration now always polls the controller every 5 seconds, which was already the default. If you had set a different interval, it is no longer used.</p>
<p>If you need a different polling interval, you can disable polling for the integration in its system options and create an automation that calls the <code>homeassistant.update_entity</code> action on your own schedule.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/185879">#185879</a>) (<a href="/integrations/control4/">Control4 documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Device tracker</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_9">
<p>Device trackers from integrations that scan your network, such as FRITZ!Box Tools, UniFi Network, NETGEAR, and Nmap Tracker, now always have a <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>. If you renamed one of these tracker entities, its name now starts with the device name.</p>
<p>New trackers from these integrations are now always added disabled. Before, they were enabled when another integration already knew the MAC address of the device. Existing trackers keep their enabled or disabled state.</p>
<p>(<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/188883">#188883</a>) (<a href="/integrations/device_tracker/">Device tracker documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>DoorBird</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_10">
<p>DoorBird events now include the matching image entity as <code>entity_id</code>: the last ring image for doorbell events, and the last motion image for motion events. Previously, every event included <code>camera.&lt;name&gt;_last_motion</code>. Other events no longer include an entity. If an automation uses the <code>entity_id</code> from a DoorBird event, update it to the image entity.</p>
<p>(<a href="https://github.com/mattias-arrelid">@mattias-arrelid</a> - <a href="https://github.com/home-assistant/core/pull/186147">#186147</a>) (<a href="/integrations/doorbird/">DoorBird documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Electra Smart</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_11">
<p><code>climate.turn_on</code> on Electra Smart now resumes the mode the air conditioner was last running in, instead of always switching it to heat.</p>
<p>If you relied on <code>turn_on</code> selecting heat mode, select it explicitly with <code>climate.set_hvac_mode</code> instead.</p>
<p>For units that don’t report a previous mode, <code>turn_on</code> falls back to cooling rather than heat.</p>
<p>(<a href="https://github.com/noamokman">@noamokman</a> - <a href="https://github.com/home-assistant/core/pull/184595">#184595</a>) (<a href="/integrations/electrasmart/">Electra Smart documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Entity names</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_12">
<p>Entity names are now composed from the entity name and its context, which is usually the name of its device. Names you gave an entity yourself are migrated and follow the same rules. Where the full name of an entity changes because of this, the old name is kept as an alias for your voice assistants, and in the <code>friendly_name</code> attribute until the name is changed.</p>
<p>Cards, badges, and rows on dashboards that don’t have a name set now show the device name followed by the entity name, instead of the friendly name. For example, an entity you named “Off-peak consumption” on the “Power meter” device now shows as “Power meter Off-peak consumption”. To keep a short name, rename the device and turn on <strong>Main entity of the device</strong> for the entity, or set a name on the card.</p>
<p>Using custom cards? We worked with the creators of dozens of popular custom cards and sent them updates, so they show names the same way as the built-in cards. Many have already added them, so update your custom cards first. If a card still shows a name you don’t expect, set a name in the card, or let its creator know. <!-- TODO before final: check the custom card PRs in frontend#51686 and update this if more (or all) are merged --></p>
<p>Entity IDs, automations, and scripts are not affected. In <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span>, use <code>entity_name()</code>, <code>device_name()</code>, and <code>area_name()</code> instead of the <code>friendly_name</code> attribute, which is going to be deprecated.</p>
<p>(<a href="https://github.com/arturpragacz">@arturpragacz</a> - <a href="https://github.com/home-assistant/core/pull/184340">#184340</a>) (<a href="https://github.com/arturpragacz">@arturpragacz</a> - <a href="https://github.com/home-assistant/core/pull/184341">#184341</a>) (<a href="https://github.com/piitaya">@piitaya</a> - <a href="https://github.com/home-assistant/frontend/pull/54725">frontend#54725</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Flow-it</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_13">
<p>The Flow-it <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> is now called <strong>AriaQ</strong>, because the manufacturer is bringing its products together under that brand. Your <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> and <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> keep working and keep their IDs. Only the name you see in Home Assistant changes.</p>
<p>(<a href="https://github.com/albertogeniola">@albertogeniola</a> - <a href="https://github.com/home-assistant/core/pull/187082">#187082</a>) (<a href="/integrations/flow_it/">AriaQ documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Frontend</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_14">
<p>The Home Assistant frontend now requires Chrome 67, Safari 15.4 (iOS and iPadOS 15.4), or Firefox 98 or newer. An older browser now shows a message on the launch screen instead of loading forever.</p>
<p>The new requirements affect the following devices and browsers:</p>
<ul>
<li>iPad Air 1, iPad mini 2, iPad mini 3, iPhone 5s, iPhone 6, iPhone 6 Plus, and iPod touch 6, which can’t be updated past iOS 12 and can no longer open Home Assistant in a browser or the Home Assistant app.</li>
<li>Safari on Macs that can’t run macOS 10.15 Catalina or newer, as Safari 15.4 needs Catalina. You can still open Home Assistant with Chrome or Firefox if it meets the minimum browser version listed above.</li>
<li>Fire tablets that still use Amazon WebView 59: the 2015 and 2016 Fire 7, Fire HD 8, and Fire HD 10 on Fire OS 5, and any Fire tablet on Fire OS 6.3.0.1. This includes kiosk browsers such as Fully Kiosk, which use the same WebView. Tablets on Fire OS 5.6.4 or newer (2017 models), Fire OS 6.3.1.2 or newer, or Fire OS 7 keep working, so check for a Fire OS update first.</li>
</ul>
<p>The first generation Chromecast is not affected.</p>
<p>(<a href="https://github.com/maartenla">@maartenla</a> - <a href="https://github.com/home-assistant/frontend/pull/55138">frontend#55138</a>) (<a href="/integrations/frontend/">Frontend documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>General Transit Feed Specification (GTFS)</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_15">
<p>GTFS stop times are in the agency’s local time. Previously, when the time zone configured in your Home Assistant instance differed from the GTFS feed time zone, you could use the <code>offset</code> parameter to match the time zones. The integration now automatically applies an offset, so a manual offset is no longer required and may overcorrect the feed stop times.</p>
<p>(<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/187429">#187429</a>) (<a href="/integrations/gtfs/">General Transit Feed Specification (GTFS) documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Hayward Omnilogic</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_16">
<p>The Hayward Omnilogic integration no longer lets you set the <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval in its options. A previously configured interval is ignored, and the default is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184380">#184380</a>) (<a href="/integrations/omnilogic/">Hayward Omnilogic documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Hive</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_17">
<p>The Hive integration no longer lets you set a custom <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval. If you configured one, it is ignored and the default interval is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184251">#184251</a>) (<a href="/integrations/hive/">Hive documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Holiday and Workday</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_18">
<p>The <code>holidays</code> library no longer counts ordinary Sundays as holidays in Sweden. The Holiday calendar for Sweden no longer shows a “Söndag” event every Sunday. Named holidays that fall on a Sunday, such as Easter Sunday (Påskdagen) and Whit Sunday (Pingstdagen), are still included.</p>
<p>This also affects the Workday integration for Sweden if you have added Sunday to the workdays and relied on the holidays to exclude it. In that case, ordinary Sundays are now reported as workdays. To keep the previous behavior, add Sunday to the excluded days in the Workday options. The default Workday configuration already excludes Sunday and is not affected.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/187605">#187605</a>) (<a href="/integrations/holiday/">Holiday documentation</a>) (<a href="/integrations/workday/">Workday documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Honeywell Total Connect Comfort (Europe)</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_19">
<p>The following deprecated <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> and preset have been removed from the Evohome integration:</p>
<ul>
<li>The <code>evohome.reset_system</code> action: Use the controller’s <strong>Reset</strong> button.</li>
<li>The <code>evohome.clear_zone_override</code> action: Use the zone’s <strong>Reset</strong> button.</li>
<li>The <strong>Reset</strong> preset of the controller’s <span class="terminology">“climate entity”<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span>: Use the controller’s <strong>Reset</strong> button.</li>
</ul>
<p>Update any <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that still use these.</p>
<p>(<a href="https://github.com/zxdavb">@zxdavb</a> - <a href="https://github.com/home-assistant/core/pull/185704">#185704</a>) (<a href="/integrations/evohome/">Honeywell Total Connect Comfort (Europe) documentation</a>)</p>
<p>Calls to <code>evohome.set_system_mode</code> without an <code>entity_id</code> are no longer supported. Include the entity ID of the Evohome controller’s climate entity.</p>
<p>(<a href="https://github.com/zxdavb">@zxdavb</a> - <a href="https://github.com/home-assistant/core/pull/185705">#185705</a>) (<a href="/integrations/evohome/">Honeywell Total Connect Comfort (Europe) documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>iRobot Roomba and Braava</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_20">
<p>The <strong>Continuous</strong> and <strong>Delay</strong> options of the iRobot Roomba and Braava integration have been removed. Home Assistant now always keeps one connection open to the robot and reconnects on its own. The underlying library no longer has the periodic connection mode these options controlled.</p>
<p>If you had turned <strong>Continuous</strong> off so the iRobot app could connect to the robot locally, the app now connects through the iRobot cloud while Home Assistant is connected. This is the same behavior as with the default setting. No action is needed.</p>
<p>(<a href="https://github.com/johnnyh1975">@johnnyh1975</a> - <a href="https://github.com/home-assistant/core/pull/184198">#184198</a>) (<a href="/integrations/roomba/">iRobot Roomba and Braava documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Keenetic NDMS2 Router</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_21">
<p>The Keenetic NDMS2 Router integration no longer lets you set a custom <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval. If you configured one, it is ignored and the default interval is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184257">#184257</a>) (<a href="/integrations/keenetic_ndms2/">Keenetic NDMS2 Router documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Kraken</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_22">
<p>The Kraken integration no longer lets you set a custom <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval. If you configured one, it is ignored and the default interval is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184381">#184381</a>) (<a href="/integrations/kraken/">Kraken documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Matter</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_23">
<p>Matter concentration sensors now use the unit the device reports instead of a fixed one. Before, a device measuring in another unit was shown with the wrong unit, for example a <abbr title="total volatile organic compounds">TVOC</abbr> sensor measuring in ppb was shown as ppm.</p>
<p>This affects existing TVOC, carbon monoxide, nitrogen dioxide, and ozone sensors whose device reports a unit other than ppm:</p>
<ul>
<li>If the device’s unit converts to the old one (for example ppb), the sensor keeps its old unit and the value is now converted, so it changes: a TVOC sensor reporting 189 ppb now shows 0.189 ppm instead of 189 ppm, and the history shows a jump. To get the previous numbers back with the correct unit, set the sensor’s unit to the device’s unit (here ppb) in its entity settings. Otherwise, update automations, scripts, and templates that use the value. Sensors added from now on use the device’s unit directly.</li>
<li>TVOC sensors reporting µg/m³ or mg/m³ keep their value but switch to the “Volatile organic compounds” device class, which changes their default name (the entity ID stays the same). Their old statistics can’t be converted: in <strong>Settings</strong> &gt; <strong>Tools</strong> &gt; <strong>Statistics</strong>, either update the old unit without converting or delete the old statistics.</li>
</ul>
<p>(<a href="https://github.com/valeronm">@valeronm</a> - <a href="https://github.com/home-assistant/core/pull/167177">#167177</a>) (<a href="/integrations/matter/">Matter documentation</a>)</p>
<hr/>
<p>Matter climate entities now resume their last supported non-off HVAC mode when turned on from Home Assistant, including through dashboard controls and voice commands. For example, an air conditioner turned off while cooling will resume cooling when turned on again. Calling <code>climate.turn_on</code> on an entity that is already running now leaves its mode unchanged.</p>
<p>Previously, <code>climate.turn_on</code> ignored the previous mode and selected heat/cool, then heat, then cool, depending on what the device supports. Automations or scripts that relied on that behavior should call <code>climate.set_hvac_mode</code> with the desired mode instead of <code>climate.turn_on</code>.</p>
<p>Devices with a separate power switch, such as Matter room air conditioners, are now switched on by <code>climate.turn_on</code>. Previously, Home Assistant only changed the mode, so a device that was switched off stayed off. If the device kept its mode while switched off, only the power is switched on and the mode is left unchanged.</p>
<p>If no previous supported mode is known, the earlier fallback order is still used.</p>
<p>(<a href="https://github.com/wardmatter">@wardmatter</a> - <a href="https://github.com/home-assistant/core/pull/181458">#181458</a>) (<a href="/integrations/matter/">Matter documentation</a>)</p>
<hr/>
<p>Matter covers that can only tilt, without moving up and down, such as tilt-only blind controllers, are now shown as tilt covers. Before, their state was always unknown.</p>
<p>They now use the <code>cover.open_cover_tilt</code>, <code>cover.close_cover_tilt</code>, <code>cover.stop_cover_tilt</code>, and <code>cover.toggle_cover_tilt</code> actions, instead of <code>cover.open_cover</code>, <code>cover.close_cover</code>, <code>cover.stop_cover</code>, and <code>cover.toggle</code>. Update automations, scripts, and device actions that use the old actions on these covers. Voice assistants that open or close these covers may also no longer work for them. Covers that can move up and down are not affected.</p>
<p>(<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/188787">#188787</a>) (<a href="/integrations/matter/">Matter documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>MQTT</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_24">
<p>MQTT entities without a <code>unique_id</code> no longer use their <code>device</code> configuration. These entities could not be linked to a device, but a <code>via_device</code> in their <code>device</code> configuration still created a device in the device registry. That device is no longer created. To link an MQTT entity to a device, add a <code>unique_id</code> to the entity.</p>
<p>(<a href="https://github.com/jbouwh">@jbouwh</a> - <a href="https://github.com/home-assistant/core/pull/187856">#187856</a>) (<a href="/integrations/mqtt/">MQTT documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Nanoleaf</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_25">
<p>The deprecated Nanoleaf touch gesture device triggers have been removed. Automations using a Nanoleaf device trigger (single tap, double tap, swipe up/down/left/right) will no longer work. Use the <strong>Touch gesture</strong> <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> of your Nanoleaf device instead, for example with an <code>event.received</code> trigger on the event entity filtered by its <code>event_type</code> attribute.</p>
<p>The device triggers were deprecated in Home Assistant 2024.7 and scheduled for removal in 2025.1.</p>
<p>(<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/188656">#188656</a>) (<a href="/integrations/nanoleaf/">Nanoleaf documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>NINA</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_26">
<p>The NINA attributes that were deprecated in Home Assistant 2026.5 have been removed. Each one has an <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> or an <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> that takes its place:</p>
<ul>
<li><code>headline</code>: the <strong>Headline</strong> sensor</li>
<li><code>description</code>: the <code>nina.get_details</code> action</li>
<li><code>sender</code>: the <strong>Sender</strong> sensor</li>
<li><code>severity</code>: the <strong>Severity</strong> sensor</li>
<li><code>recommended_actions</code>: the <code>nina.get_details</code> action</li>
<li><code>affected_areas</code>: the <strong>Affected areas</strong> sensor for the shortened list, or the <code>nina.get_details</code> action for the full one</li>
<li><code>web</code>: the <strong>More information URL</strong> sensor</li>
<li><code>sent</code>: the <strong>Sent</strong> sensor</li>
<li><code>start</code>: the <strong>Start</strong> sensor</li>
<li><code>expires</code>: the <strong>Expires</strong> sensor</li>
</ul>
<p>Update <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span>, and dashboard cards that read one of these attributes.</p>
<p>(<a href="https://github.com/DeerMaximum">@DeerMaximum</a> - <a href="https://github.com/home-assistant/core/pull/188355">#188355</a>) (<a href="/integrations/nina/">NINA documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Philips Hue</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_27">
<p>The <code>"None"</code> light effect has been removed. It was deprecated in Home Assistant 2025.4 in favor of <code>"off"</code>, and the mapping that kept the old value working is now gone. Update <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that set the effect to <code>"None"</code> so that they use <code>"off"</code> instead.</p>
<p>(<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/188867">#188867</a>) (<a href="/integrations/hue/">Philips Hue documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Plaato</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_28">
<p>The Plaato integration no longer lets you set a custom <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval. If you configured one, it is ignored and the default interval is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184376">#184376</a>) (<a href="/integrations/plaato/">Plaato documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Python dependencies</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_29">
<p>Home Assistant no longer installs Python packages into the <code>deps</code> folder of your configuration directory. This only affects <span class="terminology">Home Assistant Core<span class="terminology-tooltip">Home Assistant Core is the Python program at the heart of Home Assistant. It is part of all installation types. It can be installed standalone (without Home Assistant Supervisor) as a container using Docker (this is typically referred to as the Home Assistant Container installation type). For development, Core can also be run using a Virtual Environment (previously referred as the Home Assistant Core installation type). For production setup, the Home Assistant Core installation type is deprecated.</span></span> installations that run outside a virtual environment, which is where that folder was used. Run Home Assistant Core in a virtual environment, as the installation instructions describe, and the packages are installed there instead.</p>
<p><span class="terminology">Home Assistant Operating System<span class="terminology-tooltip">Home Assistant OS, the Home Assistant Operating System, is an embedded, minimalistic, operating system designed to run the Home Assistant ecosystem on single board computers (like the Raspberry Pi) or Virtual Machines. It includes Home Assistant Core, the Home Assistant Supervisor, and supports apps. Home Assistant Supervisor keeps it up to date, removing the need for you to manage an operating system. Home Assistant Operating System is the recommended installation type for most users.</span></span>, <span class="terminology">Home Assistant Supervised<span class="terminology-tooltip">The Home Assistant Supervised installation type is a full UI managed home automation ecosystem that runs the Home Assistant Core program, the Home Assistant Supervisor and apps. It comes pre-installed on Home Assistant OS, but can be installed standalone on Debian Linux systems. It leverages Docker, which is managed by the Home Assistant Supervisor. The Home Assistant Supervised installation type is deprecated.</span></span>, and <span class="terminology">Home Assistant Container<span class="terminology-tooltip">Home Assistant Container is a standalone container-based installation of Home Assistant Core. Any <a href="https://opencontainers.org/">OCI</a> compatible runtime can be used, but the documentation focus is on Docker.<a class="terminology-link" href="/installation/#about-installation-types"> [Learn more]</a></span></span> are not affected. Once you have updated, you can remove the <code>deps</code> folder from your configuration directory.</p>
<p>(<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/168155">#168155</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Ring</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_30">
<p>Several Ring entities that were deprecated in Home Assistant 2024.9, and originally scheduled for removal in Home Assistant 2025.4, have now been removed:</p>
<ul>
<li>The ding and motion binary sensors, and the last ding and last motion sensors. Use the event entities instead.</li>
<li>The volume sensors, including the doorbell, microphone, and voice volume sensors. Use the number entities instead, which also let you change the volume.</li>
<li>The siren switch. Use the siren entity instead.</li>
</ul>
<p>If you use any of these entities in an automation, script, or dashboard, update it to use its replacement.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/187592">#187592</a>) (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/187596">#187596</a>) (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/188108">#188108</a>) (<a href="/integrations/ring/">Ring documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Risco</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_31">
<p>The Risco integration no longer lets you set a custom <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval. If you configured one, it is ignored and the default interval is used.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184386">#184386</a>) (<a href="/integrations/risco/">Risco documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Rituals Perfume Genie</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_32">
<p>The <strong>Fill</strong> sensor of Rituals Perfume Genie diffusers now reports a percentage, instead of a range as text like “70-80%”. If you use it in automations or scripts, compare it against a number instead. When there is no measurement, it is unknown instead of “No measurement available”.</p>
<p>The <strong>Perfume</strong> sensor is now unknown when no cartridge is inserted, instead of showing “Cartridge is not loaded”. Use the new <strong>Cartridge</strong> binary sensor to tell whether a cartridge is inserted.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/186995">#186995</a>) (<a href="/integrations/rituals_perfume_genie/">Rituals Perfume Genie documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>SMTP</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_33">
<p>When an attachment cannot be read, the SMTP notify action now reports an error instead of sending the message without it. Before, a missing file was only logged as a warning and the rest of the email went out, so a wrong path could go unnoticed for a long time.</p>
<p>If one of your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> attaches a file that is not always there, such as a camera snapshot, check the path, or build the list of attachments so that it only contains files that exist.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/188876">#188876</a>) (<a href="/integrations/smtp/">SMTP documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Telegram</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_34">
<p>The legacy <strong>Telegram</strong> notify platform (<code>notify</code> with <code>platform: telegram</code> in YAML), deprecated in 2025.11, has been removed. Its <code>notify.&lt;name&gt;</code> actions no longer exist.</p>
<p>Use the notify entities of the <a href="/integrations/telegram_bot/#notifiers">Telegram bot</a> integration instead: add each chat ID as a subentry of your Telegram bot and send messages with the <code>notify.send_message</code> action, or use the <code>telegram_bot</code> actions for photos, documents, keyboards, and other options. Remove the <code>platform: telegram</code> entries from the <code>notify</code> section of your <span class="terminology"><code>configuration.yaml</code><span class="terminology-tooltip">The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.<a class="terminology-link" href="/docs/configuration/"> [Learn more]</a></span></span> file. If the configuration is still present, Home Assistant shows a repair issue.</p>
<p>(<a href="https://github.com/jbouwh">@jbouwh</a> - <a href="https://github.com/home-assistant/core/pull/188196">#188196</a>) (<a href="/integrations/telegram_bot/">Telegram documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Telldus Live</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_35">
<p>The <code>tellduslive</code> <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> configuration is no longer imported. If you still have a <code>tellduslive:</code> entry in your <span class="terminology"><code>configuration.yaml</code><span class="terminology-tooltip">The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.<a class="terminology-link" href="/docs/configuration/"> [Learn more]</a></span></span>, remove it. Home Assistant raises a repair issue to remind you.</p>
<p>This should not affect anyone in practice: YAML has been imported into a config entry since December 2018, when the config flow was added. Any existing YAML setup was converted long ago and keeps working, and a YAML entry has had no effect since the config entry was created.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/185838">#185838</a>) (<a href="/integrations/tellduslive/">Telldus Live documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Tomorrow.io</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_36">
<p>The Tomorrow.io integration now has one entry per API key instead of one per location. Each location is a subentry of the entry for its API key. Existing setups migrate automatically and no action is required: locations, entities, devices, and their history are preserved, and per-location “timestep” options carry over. Two things change if you had multiple locations: locations sharing an API key now live under a single config entry, and each location gets its own device. The nowcast timestep is now changed by selecting <strong>Reconfigure</strong> on a location instead of the integration options.</p>
<p>(<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/177911">#177911</a>) (<a href="/integrations/tomorrowio/">Tomorrow.io documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Tuya</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_37">
<p>Multi-channel Tuya devices now put the <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> of each channel on their own <strong>Channel</strong> <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, as a child device of the main one.</p>
<p>Entity IDs and history are kept, and a <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>, <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, or <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> that targets the main device still covers the channel entities. What changes is the name. An entity called “Socket 1” becomes “Socket” on the “Channel 1” device, and its <code>friendly_name</code> attribute is now built from that channel device, so it reads “Channel 1 Socket” instead of the name of the main device followed by “Socket 1”. Single-channel devices go from “Socket 1” to “Socket” as well.</p>
<p>Update <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span>, dashboard cards, and notifications that use <code>friendly_name</code> or the old entity name.</p>
<p>(<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/184915">#184915</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188169">#188169</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188237">#188237</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188255">#188255</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188258">#188258</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188674">#188674</a>) (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/188675">#188675</a>) (<a href="/integrations/tuya/">Tuya documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>UniFi Protect</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_38">
<p>The deprecated UniFi Protect HDR mode switch is removed. It was deprecated in 2024.4 because it cannot represent the auto HDR mode. Use the HDR mode select instead. If an enabled switch is still used in an automation or script, a repair lists the automations and scripts that use it.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/184425">#184425</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
<hr/>
<p>The read-only UniFi Protect UP Sense setting entities deprecated in 2026.9 are removed. Use the matching switch or the “Motion sensitivity” number instead. A repair lists automations and scripts that still use a removed entity.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/184473">#184473</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Uptime Kuma</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_39">
<p>Support for Uptime Kuma versions earlier than 2.0.0 has been dropped. Version 2.0.0 was released more than a year ago. Update Uptime Kuma before updating Home Assistant if you use an older version.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/187418">#187418</a>) (<a href="/integrations/uptime_kuma/">Uptime Kuma documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Watergate</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_40">
<p>The <strong>Water meter volume</strong> (<code>sensor.&lt;name&gt;_water_meter_volume</code>) and <strong>Water meter duration</strong> (<code>sensor.&lt;name&gt;_water_meter_duration</code>) sensors of Watergate Sonic now report the <em>positive</em> meter (water flowing in the normal direction) instead of the <em>positive minus negative</em> difference. Entity IDs, unique IDs, and long-term statistics are unchanged.</p>
<ul>
<li><strong>Who is affected:</strong> only devices that have ever recorded reverse flow (backflow). The value steps <em>up</em> once, by the device’s lifetime backflow, at the first update after upgrading. Because these sensors are <code>total_increasing</code>, Home Assistant records that step as consumption, so the Energy dashboard and statistics show a one-time spike. Devices with no recorded backflow see no change.</li>
<li><strong>How to recover:</strong> adjust the spike away with <strong>Adjust a statistic</strong> in <a class="my" href="https://my.home-assistant.io/redirect/developer_statistics" target="_blank"><strong>Settings</strong> &gt; <strong>Tools</strong> &gt; <strong>Statistics</strong></a>, or ignore it. Nothing needs to be reconfigured.</li>
<li><strong>Why:</strong> the old value silently hid reverse flow and was not the monotonically increasing total the state class promises. The new <strong>Water meter negative volume/duration</strong> sensors expose the reverse reading separately.</li>
</ul>
<p>On firmware that only reports a single (differential) meter, <strong>Water meter volume/duration</strong> keep reporting that differential and the new negative sensors are unavailable.</p>
<p>(<a href="https://github.com/adam-the-hero">@adam-the-hero</a> - <a href="https://github.com/home-assistant/core/pull/186035">#186035</a>) (<a href="/integrations/watergate/">Watergate documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Xiaomi BLE</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_41">
<p>The high and low frequency values of the S400 impedance sensors were swapped. This release corrects the mapping. Entities are not migrated: the scale overwrites its impedance values on every weigh-in, for whichever profile steps on it, so past readings are not tied to a specific user and keeping their history has little value.</p>
<p>After updating:</p>
<ul>
<li>The entity previously exposed as <code>impedance</code> is no longer updated and can be removed.</li>
<li><code>impedance_low</code> now reports the actual low frequency value. It previously reported the high frequency one.</li>
<li><code>impedance_high</code> is a new sensor.</li>
</ul>
<p>Check <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span>, and dashboards that rely on these entities.</p>
<p>(<a href="https://github.com/dckiller51">@dckiller51</a> - <a href="https://github.com/home-assistant/core/pull/173260">#173260</a>) (<a href="/integrations/xiaomi_ble/">Xiaomi BLE documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Xiaomi Home</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_42">
<p>Xiaomi Miio light, switch, and fan actions now require an explicit target. Previously, calling them without an <code>entity_id</code> acted on every matching Xiaomi Miio device. Calls without a target now fail with a validation error.</p>
<p>Existing calls that specify <code>entity_id</code> still work. To act on all matching entities, use <code>entity_id: all</code>.</p>
<p>This affects these actions in the <code>xiaomi_miio</code> <span class="terminology">domain<span class="terminology-tooltip">Each integration in Home Assistant has a unique identifier: The domain. It is often shown as the first part (before the dot) of entity IDs.</span></span>:</p>
<ul>
<li>Light: <code>light_set_scene</code>, <code>light_set_delayed_turn_off</code>, <code>light_reminder_on</code>, <code>light_reminder_off</code>, <code>light_night_light_mode_on</code>, <code>light_night_light_mode_off</code>, <code>light_eyecare_mode_on</code>, <code>light_eyecare_mode_off</code></li>
<li>Switch: <code>switch_set_wifi_led_on</code>, <code>switch_set_wifi_led_off</code>, <code>switch_set_power_mode</code>, <code>switch_set_power_price</code></li>
<li>Fan: <code>fan_reset_filter</code>, <code>fan_set_extra_features</code></li>
</ul>
<p>(<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/179544">#179544</a>) (<a href="/integrations/xiaomi_miio/">Xiaomi Home documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Z-Wave</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_43">
<p>With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 3.11.0 or greater (schema 51).</p>
<ul>
<li>If you use the Z-Wave JS <span class="terminology">app<span class="terminology-tooltip">Apps are additional standalone third-party software packages that can be installed on Home Assistant OS.<a class="terminology-link" href="/getting-started/concepts-terminology/#apps"> [Learn more]</a></span></span>, you need at least version 1.9.0.</li>
<li>If you use the Z-Wave JS UI Docker container, you need at least version <a href="https://github.com/zwave-js/zwave-js-ui/releases/tag/v11.24.2">zwave-js/zwave-js-ui@v11.24.2 (release)</a>.</li>
<li>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.11.0.</li>
</ul>
<p>(<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/184901">#184901</a>) (<a href="/integrations/zwave_js/">Z-Wave documentation</a>)</p>
<hr/>
<p>Entities for features on non-root endpoints of multi-endpoint Z-Wave devices now live on their own child <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> of the main device, when the Z-Wave JS device database describes those endpoints as separate parts. Only devices with that information are affected: endpoints that carry a label, or that belong to an endpoint group.</p>
<p>Because the name of an <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> is built from the device it belongs to, the name of the main device no longer appears in it. A thermostat with three temperature sensors used to be one device with “Air temperature (2)”, “Air temperature (3)”, and “Air temperature (4)”. It is now a main device with one child device per sensor, each named after its endpoint label, such as “Room Sensor”, and each with a single “Air temperature” entity. A multi-clamp energy meter becomes the main device plus one child device per clamp.</p>
<p>Entity IDs stay the same, and <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that target the main device keep working, because targeting a device also targets the entities of its child devices.</p>
<p>One entity does disappear: the redundant endpoint-2 “slat” value of the Fibaro FGR223 and the Shelly Qubino Wave Shutter (QNSH-001P10) is no longer created. If you had enabled that cover entity, it is gone.</p>
<p>(<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/185985">#185985</a>) (<a href="/integrations/zwave_js/">Z-Wave documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Zigbee Home Automation</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_44">
<p>Each ZHA <span class="terminology">group<span class="terminology-tooltip">Groups are a way to organize your entities into a single unit.<a class="terminology-link" href="/integrations/group/"> [Learn more]</a></span></span> that has group <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> now gets its own <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, named after the group, and those entities move there from the coordinator device. Entity IDs and settings are kept, and a name or <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span> you set yourself moves along, so <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, and dashboards that use the group entities keep working.</p>
<p>Two things need your attention:</p>
<ul>
<li>If you target the <strong>coordinator device</strong> to control your groups, target the group entities or the new group devices instead. The device page of the coordinator no longer lists the group entities.</li>
<li>If you relied on the group entities being in the area of the coordinator device, give the new group devices or their entities an area of their own.</li>
</ul>
<p>(<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/188830">#188830</a>) (<a href="/integrations/zha/">Zigbee Home Automation documentation</a>)</p>
</div>
</details>
</div>
<p>If you are a <span class="terminology">custom integration<span class="terminology-tooltip">A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the <a href="https://spook.boo/">Spook</a> integration.</span></span> developer and want to learn about changes and new features available for your integration: Be sure to follow the <a href="https://contributors.home-assistant.io/blog/">blog on our contributors site</a>. The following changes are the most notable for this release:</p>
<ul>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/16/a-new-home-for-every-contributor/">A new home for every contributor</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/17/debug-console/">A Python console inside Home Assistant</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/23/flow-results-require-step-id/">Always pass a step_id to flow results</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/19/auth-providers-opt-in-mfa/">Auth providers now opt in to multi-factor authentication</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/25/rename-backup-agents/">Backup agents can now be renamed</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/08/climate-native-temperature/">Climate entities now expose their temperature unit</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/23/config-entry-methods-return-none/">Config entry functions now return None</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/28/custom-section-strategies-in-the-dashboard-editor/">Custom section strategies in the dashboard editor</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/13/device-info-class/">DeviceInfo is now a dataclass</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/28/frontend-component-updates-2026.11/">Frontend component updates in 2026.11</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/20/integration-categories/">Integrations have categories now</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/22/child-devices/">Introducing child devices</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/12/new-entity-lifecycle-hooks/">New entity lifecycle hooks</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/09/uom-selector/">New unit of measurement selector</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/28/issue-registry-refresh/">Repair issues can belong to a config entry, and be refreshed</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/28/scanner-entity-devices/">ScannerEntity now handles devices like other entities</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/21/form-fields-visible/">Show form fields based on other fields</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/24/camera-two-way-audio/">Two-way audio for camera entities</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/11/01/undefined-helper/">Undefined sentinel changes</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/10/update-entity-update-availability/">Update entities can customize update availability</a></li>
<li><a href="https://contributors.home-assistant.io/blog/2026/10/08/water-heater-native-temperature/">Water heater entities now expose their temperature unit</a></li>
</ul>
<h2>All changes</h2>
<p>Of course, there is a lot more in this release. You can find a list of all changes made here: <a href="/changelogs/core-2026.11">Full changelog for Home Assistant Core 2026.11</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Naming things in Home Assistant, shaped by your feedback]]></title>
    <link href="https://www.home-assistant.io/blog/2026/11/03/naming-things-in-home-assistant/"/>
    <updated>2026-11-03T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/11/03/naming-things-in-home-assistant</id>
    <content type="html"><![CDATA[<img alt="Naming things in Home Assistant, shaped by your feedback" src="/images/blog/2026-11-naming-things-in-home-assistant/art.webp" style="border: 0;box-shadow: none;"/>
<p>Just before the <a href="/blog/2026/04/01/release-20264/">2026.4 release</a>, we pulled a change to entity naming in Home Assistant. You’d tested it in beta, told us what you didn’t like, and we listened. It took a few extra months, but we believe it’s now in a better place.</p>
<p>We’ve filled the gaps you found, including screens that didn’t show enough context. We’ve also added child devices, which give each part of a device – like sockets on a power strip – its own name and area.</p>
<p>Crucially, your entity IDs, automations, scripts, scenes, and dashboards will keep working.</p>
<!--more-->
<p>What <em>is</em> changing from tomorrow’s 2026.11 release is that naming in Home Assistant will be simpler: you’ll name each device and entity for what it actually is, and Home Assistant will add the context around it.</p>
<p>The first place you’ll likely notice this is on your dashboards and other screens. They will build each name from its parts, such as the area, device, and entity name, which means some names will include more context than before.</p>
<p>We know many of you spend hours getting your names just right. Most will carry over the way you expect. Some will look different: particularly any entity names that don’t currently start with their device name. Further down, we explain why, and how to tidy them up quickly.</p>
<p>But before we go on, one thing we heard a lot during beta was that the naming terminology was confusing. Device name, entity name, friendly name, entity ID: what’s the difference? Here’s a quick guide.</p>
<h2>What’s in a name?</h2>
<p>Let’s say a smart plug powers your coffee machine, and sits in your kitchen.</p>
<ul>
<li><strong>Area:</strong> the room/space the smart plug is in. <em>Kitchen.</em></li>
<li><strong>Device:</strong> the physical object. <em>Smart plug 3</em>, or a name you give it, like <em>Coffee machine.</em></li>
<li><strong>Entity:</strong> a thing a device can do or measure. The smart plug has three entities: a <em>switch</em>, a <em>power sensor</em> and an <em>energy sensor</em>.</li>
</ul>
<p>Each entity has its own name, ID, and friendly name. So for the smart plug’s power sensor:</p>
<ul>
<li><strong>Entity name:</strong> the name of that one thing. <em>Power.</em></li>
<li><strong>Entity ID:</strong> the fixed ID your automations use. <em>sensor.kitchen_smart_plug_3_power.</em></li>
<li><strong>Friendly name:</strong> a state attribute that combines the device name and entity name. Older cards and templates still use this, but we are moving away from it. <em>Smart plug 3 Power.</em></li>
</ul>
<h2>Where naming comes from</h2>
<p>How did we end up with so many names? It all started simply enough…</p>
<p>In the early days, Home Assistant only knew entities. There were no devices, areas, or floors, so an entity’s name had to carry all its context. To tell power sensors apart, you would name one “Kitchen coffee machine power.” The community wrote whole naming strategy guides to keep them consistent.</p>
<p>From 2018 on, Home Assistant started adding structure around entities. Entities belonging to one physical object were grouped together as a device. Areas, floors, and labels were added to describe the layout of your home. But this structure also introduced repetition, so if you moved the coffee machine to another room, every one of its entity names was wrong.</p>
<p>To fix this, integrations started naming each entity on its own, without the device name. An integration named an entity for what it was, such as “Power,” and Home Assistant put the device name in front to show “Smart plug 3 Power.”</p>
<p>One gap remained: renaming an entity removed its device name. If you renamed a smart plug’s switch to “Coffee machine,” the device’s other entities might still be displayed as “Smart plug 3 Power” and “Smart plug 3 Energy.” As a result, many of you had to rename every entity manually to stay consistent.</p>
<h3>At a glance:</h3>
<table>
<thead>
<tr>
<th>Year</th>
<th>What arrived</th>
<th>What it meant for names</th>
</tr>
</thead>
<tbody>
<tr>
<td>2013</td>
<td>Entities, configured in YAML</td>
<td>One name per entity, carrying all the context</td>
</tr>
<tr>
<td>2018</td>
<td>Entity registry and devices</td>
<td>Entities renamed in the UI; devices group entities</td>
</tr>
<tr>
<td>2019</td>
<td>Areas</td>
<td>The area is known, but often still typed into names</td>
</tr>
<tr>
<td>2022</td>
<td>Entity naming for integrations</td>
<td>Integrations name entities standalone; the device name is added in front</td>
</tr>
<tr>
<td>2024</td>
<td>Floors and labels</td>
<td>More context available, still repeated in names</td>
</tr>
<tr>
<td>2026</td>
<td>Child devices and this migration</td>
<td>Every name stands on its own, renamed or not</td>
</tr>
</tbody>
</table>
<p>Each of these steps made sense at the time, but together they left us with rules that didn’t always agree. We’ve been untangling them for several years, and this release is the next step.</p>
<h2>Where we’re heading</h2>
<p>From now on, a consistent set of rules applies everywhere in Home Assistant, from the dashboard to the settings pages. You name each thing once, for what it is: your floor is “Ground floor,” your area “Kitchen,” your device “Coffee machine,” and its entities “Power” and “Energy.” No name repeats another.</p>
<p>Home Assistant will then show context as required:</p>
<ul>
<li>On the Kitchen’s area page, the area is already clear, so the device is listed as just “Coffee machine,” not “Kitchen coffee machine.”</li>
<li>On the Coffee machine’s device page, the header already names the device and its area, so the entities are listed as just “Power” and “Energy.”</li>
<li>In an entity picker that lists every power sensor in the house, each row also shows the device and area, so you can tell them apart.</li>
<li>On a dashboard card, you pick which parts to show: entity, device, parent device, area, or floor, in the order you like.</li>
</ul>
<p>Some entities need no name of their own. The plug’s switch is what turns the coffee machine on and off, so will be shown with the device name alone: “Coffee machine.” We call it the main entity of the device, and you’ll be able to turn this on for any entity with the “Main entity of the device” switch in its settings. This is why renaming the device, rather than the switch, gives most people the result they want.</p>
<p>A device made of several parts will now get a separate child device for each one. For example, a power strip with four sockets becomes one device with four child devices, one for each socket. Each socket can have its own name, such as “Kettle,” and its own area, instead of entities called “Socket 3,” etc. Put a socket in another area, such as a lamp in the dining room, and it will just show as “Lamp” there, without the power strip’s name.</p>
<p>Our goal is for you to no longer need a naming scheme to keep things tidy. The defaults should be right, and if you do want to rename something you’ll only need to do it once, in one place, because no name holds a copy of another. You can still name things however you like. If an area isn’t specific enough, because you have two spotlights in one kitchen for example, you can keep that detail in the device name: “Cabinet spotlight” and “Countertop spotlight.”</p>
<p>New entity IDs are built from these parts too: since 2026.8, they include the area, and if you really want, you can choose which parts go into them. So two “TV” devices in different rooms get clear IDs, without the _2.</p>
<h2>What this means for you</h2>
<p>From the 2026.11 release, the change will show up in four main ways.</p>
<h3>Dashboards show the new names</h3>
<p>Cards, badges, and rows without a manually set name will show the new default entity name together with its context, instead of the friendly name. When you set a name on a card, the name picker lets you pick the parts you want. You can always revert to the default with one click. Names you have already set on a card stay exactly as they are. The rest of Home Assistant follows the same rules: settings pages, the activity log, automation descriptions, voice assistant settings, the tools pages, and the map – as well as the Home Assistant apps for Android and iOS.</p>
<h3>Renaming an entity only names the entity</h3>
<p>When you rename an entity, you’ll only need to provide a name for the entity part, such as “Power usage,” nothing else. Home Assistant will keep that name just as you typed it, and add the context, such as the device or area name, where it is needed. If what you really want to change is the device name, you will need to rename the device instead.</p>
<h3>Complex devices are split into child devices</h3>
<p>From this release, Z-Wave, MQTT, and ESPHome will support the child devices described above, as will some Tuya devices and a few other integrations. Support for Matter and ZHA is in progress, with more integrations to follow. As a result the original parent device will remain, but its structural elements – like multiple outlets on a power strip – will be split into child devices that are organized separately from one another.</p>
<h3>The friendly name is on its way out</h3>
<p>Many custom cards and templates still use the friendly name. We’ll keep it for backward compatibility for now, but plan to deprecate the friendly name and eventually remove it. We’ll announce any removal ahead of time, so card authors and template users can update first.</p>
<h2>Things to check after updating</h2>
<p>What to expect after the update, and some things you may want to look out for.</p>
<h3>Entity IDs, automations, and dashboards will keep working</h3>
<p>Existing entity IDs will not change. Automations, scripts, scenes, and dashboards refer to entities by their ID, so they’ll keep finding the right entity. Only the names you see may change, as described below.</p>
<h3>Your existing names will be migrated</h3>
<p>On update, Home Assistant will migrate the names of entities you renamed in the past. As we mentioned at the start, most should come through as you’d expect, but some may look different. It depends on how the name starts:</p>
<ol>
<li>If an entity name already starts with its device name, such as “Coffee machine power usage” on a coffee machine, the device part will be removed – so the entity will now be named “Power usage,” and show as “Coffee machine Power usage,” much as before.</li>
<li>If it does not already start with its device name, nothing changes except Home Assistant will add the right context where needed – so a switch you renamed “Coffee machine” on the device “Smart plug 3” will show as “Smart plug 3 Coffee machine.”</li>
</ol>
<p>If that second case looks odd, it’s quick to fix. Rename the device (in this case the smart plug) to “Coffee machine” and turn on “Main entity of the device” for the switch. Then it will show as just “Coffee machine” everywhere. If you have time, it might also be a good moment to take area names out of your entity and device names. Home Assistant will display the right content where needed.</p>
<p>For entities you expose to <a href="/voice_control/">Assist</a>, Alexa, or Google Assistant, the old name will also be added as an alias, so voice commands keep working.</p>
<p>Our <a href="/docs/configuration/customizing-entities/#recommendations-on-entity-naming-and-related-elements">naming documentation</a> explains how naming works, and what you may want to rename, in more detail.</p>
<h3>Some custom cards may show different names</h3>
<p>Built-in cards will let you compose the name from parts: drag entity, device, parent device, area, and floor into the order you want, or type your own custom name. Some custom cards may still read the friendly name, so might show a different name than the built-in cards, and that name will change once you rename the entity or its device. Set the name on the card to fix it, or update the card once its author supports the new naming.</p>
<h3>Templates using friendly names may need changing</h3>
<p>If your templates still use friendly names, for example to show entity names in notifications, those names may differ from what Home Assistant shows, and change once you rename the entity or its device. To pick only the parts you need, use entity_name(), device_name() and area_name() instead.</p>
<h2>What’s next?</h2>
<p>We know naming is personal, and this change touches every installation – even if for many users it won’t be noticeable. It won’t be perfect for every setup, but we’re confident it’s a change for the better. Over the coming releases, we’ll keep moving more integrations to child devices and helping custom card authors adopt the new naming.</p>
<p>To everyone who tested the 2026.4 beta, reported issues, and told us honestly what you thought: thank you. You made this change better.</p>
<p>One more ask: if something looks off after updating, tell us. As always, you’ll find us on the <a href="https://community.home-assistant.io" rel="noopener" target="_blank">community forums</a> or on <a href="https://discord.gg/home-assistant" rel="noopener" target="_blank">Discord</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[“What the Heck?!” 2026: Everyone at home gets a say]]></title>
    <link href="https://www.home-assistant.io/blog/2026/10/29/what-the-heck-2026-everyone-at-home-gets-a-say/"/>
    <updated>2026-10-29T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/10/29/what-the-heck-2026-everyone-at-home-gets-a-say</id>
    <content type="html"><![CDATA[<div class="wth-blog-hero-wrap">
<link href="https://fonts.googleapis.com/css2?family=Archivo+Black&amp;display=swap" rel="stylesheet"/>
<link href="/stylesheets/homeassistant/pages/wth-blog-header/index.css" rel="stylesheet"/>
<img alt="“What the Heck?!” 2026: Everyone at home gets a say" class="wth-blog-hero-fallback" height="630" src="/images/blog/2026-10-what-the-heck/art.webp" style="border: 0;box-shadow: none;height: auto;" width="1200"/>
<template id="wth-blog-hero">
<div aria-label="“What the Heck?!” 2026: Everyone at home gets a say" class="wth-blog-hero" role="img">
<div aria-hidden="true" class="wth-hero-bg">
<svg fill="none" preserveaspectratio="xMaxYMid slice" viewbox="0 0 1400 600" xmlns="http://www.w3.org/2000/svg">
<g class="wth-hero-bg__art" stroke-miterlimit="10">
<path class="wth-flow" d="M1234.15 327.109H1264.15C1277.2 327.109 1287.88 316.427 1287.88 303.372V-96.2789C1287.88 -109.389 1277.26 -120.016 1264.15 -120.016H1098.6C1085.49 -120.016 1074.86 -130.644 1074.86 -143.754V-235.561" stroke="url(#wth-hero-paint1)" stroke-width="4.74747"></path>
<path class="wth-flow" d="M961.281 340.496H1123.38C1136.44 340.496 1147.12 351.178 1147.12 364.233V387.092C1147.12 400.148 1136.44 410.83 1123.38 410.83H1065.63C1052.58 410.83 1041.89 421.512 1041.89 434.567V532.092" stroke="url(#wth-hero-paint2)" stroke-width="14.2424"></path>
<path d="M913.712 340.496H917.273" stroke="url(#wth-hero-paint3)" stroke-width="14.2424"></path>
<path class="wth-flow wth-flow--dashed" d="M925.367 340.496H953.674" stroke="url(#wth-hero-paint4)" stroke-dasharray="8.09 8.09" stroke-width="14.2424"></path>
<path d="M957.721 340.496H961.281" stroke="url(#wth-hero-paint5)" stroke-width="14.2424"></path>
<path d="M829.433 263.006V266.566" stroke="url(#wth-hero-paint6)" stroke-width="14.2424"></path>
<path class="wth-flow wth-flow--dashed" d="M829.433 273.854V415.933" stroke="url(#wth-hero-paint7)" stroke-dasharray="7.29 7.29" stroke-width="14.2424"></path>
<path d="M829.433 419.589V423.149" stroke="url(#wth-hero-paint8)" stroke-width="14.2424"></path>
<path class="wth-flow" d="M1095.29 305.745V233.346C1095.29 220.291 1084.61 209.609 1071.55 209.609H852.884C839.828 209.609 829.146 220.291 829.146 233.346V263.018" stroke="url(#wth-hero-paint9)" stroke-width="14.2424"></path>
<path class="wth-flow" d="M732.109 -231.657V239.281C732.109 252.336 742.791 263.018 755.847 263.018H817.564" stroke="url(#wth-hero-paint10)" stroke-width="4.74747"></path>
<path class="wth-flow" d="M1041.88 504.059V656.571C1041.88 669.626 1031.2 680.308 1018.14 680.308H988.473" stroke="url(#wth-hero-paint11)" stroke-width="14.2424"></path>
<path class="wth-flow" d="M1561.53 546.109H1205.46C1192.4 546.109 1181.72 536.495 1181.72 524.745C1181.72 512.995 1181.72 503.382 1181.72 503.382" stroke="url(#wth-hero-paint12)" stroke-width="4.74747"></path>
<path class="wth-flow" d="M1041.88 479.644C1041.88 492.7 1052.56 503.381 1065.62 503.381H1494.9" stroke="url(#wth-hero-paint13)" stroke-width="7.1212"></path>
<path class="wth-flow wth-flow--dashed" d="M1280.63 436.017H1247.21C1234.15 436.017 1223.47 426.403 1223.47 414.653V331.915" stroke="url(#wth-hero-paint15)" stroke-dasharray="4.88 4.88" stroke-width="7.1212"></path>
<path d="M1223.47 329.471V327.109" stroke="url(#wth-hero-paint16)" stroke-width="7.1212"></path>
<path class="wth-flow" d="M1223.47 327.109V177.884C1223.47 164.828 1212.79 154.146 1199.73 154.146H948.119C935.064 154.146 924.382 164.828 924.382 177.884V217.917C924.382 230.972 935.064 241.654 948.119 241.654H996.781C1009.84 241.654 1020.52 252.336 1020.52 265.392V420.871C1020.52 433.927 1030.13 444.608 1041.88 444.608C1053.63 444.608 1063.25 433.927 1063.25 420.871V325.708C1063.25 312.653 1073.93 301.971 1086.98 301.971H1231.78C1244.84 301.971 1255.52 291.289 1255.52 278.233V248.669C1255.52 235.613 1266.2 224.931 1279.25 224.931H1285.19C1298.24 224.931 1308.93 235.613 1308.93 248.669V412.28C1308.93 425.336 1301.79 436.017 1293.06 436.017H1287.87" stroke="url(#wth-hero-paint17)" stroke-width="7.1212"></path>
<path class="wth-flow" d="M1181.69 211.27V239.268C1181.69 252.324 1171.01 263.006 1157.96 263.006H905.403C892.348 263.006 881.666 273.687 881.666 286.743V346.086C881.666 359.142 892.348 369.824 905.403 369.824H1071.56C1084.62 369.824 1095.3 359.142 1095.3 346.086V305.733" stroke="url(#wth-hero-paint20)" stroke-width="14.2424"></path>
<path class="wth-flow wth-flow--dashed" d="M1181.69 170.645V211.271" stroke="url(#wth-hero-paint21)" stroke-dasharray="7.12 7.12" stroke-width="14.2424"></path>
<path class="wth-flow wth-flow--dashed" d="M1046.77 74.8047H1110.33" stroke="url(#wth-hero-paint22)" stroke-dasharray="7.12 7.12" stroke-width="14.2424"></path>
<path class="wth-flow" d="M1046.91 74.8048H1007.3C994.241 74.8048 983.559 85.4866 983.559 98.5421V156.093C983.559 169.149 972.877 179.83 959.822 179.83L874.193 179.831C861.138 179.831 850.456 169.149 850.456 156.093V-100.673C850.456 -113.783 839.828 -124.41 826.719 -124.41H308.543C295.433 -124.41 284.806 -135.038 284.806 -148.147V-204.161C348.154 -232.442 474.85 -290.699 474.85 -297.486" stroke="url(#wth-hero-paint23)" stroke-width="14.2424"></path>
<g class="wth-hero-bg__cards">
<path d="M936.512 479.36H835.117C831.322 479.36 828.246 482.437 828.246 486.232V539.238C828.246 543.033 831.322 546.11 835.117 546.11H936.512C940.307 546.11 943.384 543.033 943.384 539.238V486.232C943.384 482.437 940.307 479.36 936.512 479.36Z" fill="white"></path>
<path d="M935.289 500.332H911.172C908.767 500.332 906.816 502.282 906.816 504.687C906.816 507.093 908.767 509.043 911.172 509.043H935.289C937.695 509.043 939.645 507.093 939.645 504.687C939.645 502.282 937.695 500.332 935.289 500.332Z" fill="#18BCF2"></path>
<path d="M960.51 500.332H952.154C949.748 500.332 947.798 502.282 947.798 504.687C947.798 507.093 949.748 509.043 952.154 509.043H960.51C962.915 509.043 964.865 507.093 964.865 504.687C964.865 502.282 962.915 500.332 960.51 500.332Z" fill="#18BCF2"></path>
<path d="M980.687 516.426H911.172C908.767 516.426 906.816 518.376 906.816 520.782C906.816 523.187 908.767 525.137 911.172 525.137H980.687C983.093 525.137 985.043 523.187 985.043 520.782C985.043 518.376 983.093 516.426 980.687 516.426Z" fill="#18BCF2"></path>
<path d="M861.905 531.63C872.34 531.63 880.8 523.17 880.8 512.735C880.8 502.299 872.34 493.84 861.905 493.84C851.469 493.84 843.01 502.299 843.01 512.735C843.01 523.17 851.469 531.63 861.905 531.63Z" fill="#F2F4F9"></path>
<path d="M657.517 225.755H758.911C762.706 225.755 765.783 222.678 765.783 218.883V165.877C765.783 162.082 762.706 159.006 758.911 159.006H657.517C653.722 159.006 650.645 162.082 650.645 165.877V218.883C650.645 222.678 653.722 225.755 657.517 225.755Z" fill="white"></path>
<path d="M655.936 196.078H638.465C636.06 196.078 634.109 198.028 634.109 200.434C634.109 202.84 636.06 204.79 638.465 204.79H655.936C658.341 204.79 660.292 202.84 660.292 200.434C660.292 198.028 658.341 196.078 655.936 196.078Z" fill="#18BCF2"></path>
<path d="M682.854 196.078H669.205C666.8 196.078 664.85 198.028 664.85 200.434C664.85 202.84 666.8 204.79 669.205 204.79H682.854C685.26 204.79 687.21 202.84 687.21 200.434C687.21 198.028 685.26 196.078 682.854 196.078Z" fill="#18BCF2"></path>
<path d="M682.855 179.984H613.34C610.934 179.984 608.984 181.934 608.984 184.34C608.984 186.745 610.934 188.696 613.34 188.696H682.855C685.26 188.696 687.21 186.745 687.21 184.34C687.21 181.934 685.26 179.984 682.855 179.984Z" fill="#18BCF2"></path>
<path d="M732.122 211.283C742.557 211.283 751.017 202.823 751.017 192.388C751.017 181.952 742.557 173.493 732.122 173.493C721.687 173.493 713.227 181.952 713.227 192.388C713.227 202.823 721.687 211.283 732.122 211.283Z" fill="#F2F4F9"></path>
<path d="M1292.36 41.4287H1152.21C1147.79 41.4287 1144.21 45.0102 1144.21 49.4282V100.179C1144.21 104.597 1147.79 108.178 1152.21 108.178H1292.36C1296.78 108.178 1300.36 104.597 1300.36 100.179V49.4282C1300.36 45.0102 1296.78 41.4287 1292.36 41.4287Z" fill="white"></path>
<path d="M1248.09 78.4951H1216.24C1214.13 78.4951 1212.42 80.2062 1212.42 82.3168V83.385C1212.42 85.4957 1214.13 87.2067 1216.24 87.2067H1248.09C1250.2 87.2067 1251.92 85.4957 1251.92 83.385V82.3168C1251.92 80.2062 1250.2 78.4951 1248.09 78.4951Z" fill="#18BCF2"></path>
<path d="M1216.24 71.1216H1268.82C1270.93 71.1216 1272.64 69.4106 1272.64 67.2999V66.2317C1272.64 64.121 1270.93 62.41 1268.82 62.41L1216.24 62.41C1214.13 62.41 1212.42 64.121 1212.42 66.2317V67.2999C1212.42 69.4106 1214.13 71.1216 1216.24 71.1216Z" fill="#18BCF2"></path>
<path d="M1177.87 93.6995C1188.3 93.6995 1196.76 85.2399 1196.76 74.8046C1196.76 64.3692 1188.3 55.9097 1177.87 55.9097C1167.43 55.9097 1158.97 64.3692 1158.97 74.8046C1158.97 85.2399 1167.43 93.6995 1177.87 93.6995Z" fill="#F2F4F9"></path>
</g>
<g class="wth-hero-bg__nodes" fill="#F2F4F9" stroke-width="3.5606">
<circle cx="1181.71" cy="503.382" r="10.682" stroke="#18BCF2"></circle>
<circle cx="829.146" cy="263.018" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="1223.47" cy="327.109" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="1279.27" cy="436.301" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="1046.77" cy="76.0861" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="1181.69" cy="211.271" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="961.281" cy="241.654" r="10.682" stroke="url(#wth-hero-node)"></circle>
<circle cx="961.281" cy="340.615" r="10.682" stroke="url(#wth-hero-node)"></circle>
</g>
</g>
<defs>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint1" x1="1262.22" x2="1262.22" y1="329.486" y2="-28.3896">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.61" stop-color="#0FCCB7"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint2" x1="1121.26" x2="1013.28" y1="490.385" y2="303.359">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint3" x1="930.019" x2="916.202" y1="361.696" y2="333.286">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint4" x1="948.048" x2="934.222" y1="352.936" y2="324.515">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint5" x1="963.038" x2="949.211" y1="345.646" y2="317.225">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint6" x1="888.713" x2="810.213" y1="386.642" y2="272.074">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint7" x1="859.483" x2="780.983" y1="406.664" y2="292.096">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint8" x1="831.583" x2="753.083" y1="425.784" y2="311.217">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint9" x1="1019.64" x2="907.588" y1="353.54" y2="159.464">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint10" x1="729.736" x2="817.564" y1="128.273" y2="128.273">
<stop stop-color="#00B3DD"></stop>
<stop offset="0.98" stop-color="#16F3BE"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint11" x1="964.807" x2="1086.76" y1="663.751" y2="541.801">
<stop offset="0.39" stop-color="#00BAE9"></stop>
<stop offset="0.98" stop-color="#16F3BE"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint12" x1="1179.33" x2="1405.38" y1="525.932" y2="525.932">
<stop stop-color="#16F3BE"></stop>
<stop offset="0.25" stop-color="#0EDEC8"></stop>
<stop offset="0.81" stop-color="#00B3DD"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint13" x1="1038.32" x2="1405.38" y1="461.817" y2="461.817">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.59" stop-color="#2EC2D1"></stop>
<stop offset="0.96" stop-color="#2FC0D2"></stop>
<stop offset="1" stop-color="#0FCCB7"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint15" x1="1219.91" x2="1287.88" y1="352.65" y2="352.65">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.59" stop-color="#2EC2D1"></stop>
<stop offset="0.96" stop-color="#2FC0D2"></stop>
<stop offset="1" stop-color="#0FCCB7"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint16" x1="1220.47" x2="1277.74" y1="328.296" y2="328.296">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.59" stop-color="#2EC2D1"></stop>
<stop offset="0.96" stop-color="#2FC0D2"></stop>
<stop offset="1" stop-color="#0FCCB7"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint17" x1="920.821" x2="1323.17" y1="299.371" y2="299.371">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.59" stop-color="#2EC2D1"></stop>
<stop offset="0.96" stop-color="#2FC0D2"></stop>
<stop offset="1" stop-color="#0FCCB7"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint20" x1="1084.48" x2="986.395" y1="374.251" y2="204.374">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint21" x1="1190.6" x2="1167.82" y1="209.277" y2="176.036">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint22" x1="1089.57" x2="1072.69" y1="90.8947" y2="56.1981">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<lineargradient gradientunits="userSpaceOnUse" id="wth-hero-paint23" x1="1078.95" x2="974.551" y1="164.045" y2="-16.7858">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="1" stop-color="#29C0D5"></stop>
</lineargradient>
<!-- The node rings share one gradient, left to right across each ring. -->
<lineargradient id="wth-hero-node" x1="0" x2="1" y1="0" y2="0">
<stop offset="0.02" stop-color="#16F3BE"></stop>
<stop offset="0.61" stop-color="#0FCCB7"></stop>
</lineargradient>
</defs>
</svg>
</div>
<div class="wth-blog-hero__content">
<span aria-hidden="true" class="wth-mark" data-wth-logo="">
<span class="wth-mark__line">
<span class="wth-mark__word wth-mark__word--what" data-text="WHAT">WHAT</span>
<span class="wth-mark__word wth-mark__word--the" data-text="THE">THE</span>
</span>
<span class="wth-mark__line wth-mark__line--lg">
<span class="wth-mark__word wth-mark__word--heck" data-text="HECK?!">HECK?!</span>
</span>
</span>
<span aria-hidden="true" class="wth-blog-hero__date">November 2026</span>
</div>
</div>
</template>
<script>
  (function () {
    var template = document.getElementById("wth-blog-hero");
    var image = template && template.parentNode.querySelector(".wth-blog-hero-fallback");
    if (!image || !("content" in template)) return;
    var hero = template.content.cloneNode(true);
    // The 3D wordmark needs WebGL 2 with float color buffers, which its
    // sticker outline renders into. Without them, keep logo.js away from the
    // CSS wordmark and show it right away.
    var canvas = document.createElement("canvas");
    var gl = canvas.getContext && canvas.getContext("webgl2");
    if (!gl || !gl.getExtension("EXT_color_buffer_float")) {
      hero.querySelector("[data-wth-logo]").removeAttribute("data-wth-logo");
      hero.querySelector(".wth-blog-hero").classList.add("wth-blog-hero--no-webgl");
    }
    var lose = gl && gl.getExtension("WEBGL_lose_context");
    if (lose) lose.loseContext();
    image.replaceWith(hero);
  })();
</script>
<script type="importmap">
  {
    "imports": {
      "three": "/javascripts/wth/three.min.js"
    }
  }
</script>
<script src="/javascripts/wth/logo.js" type="module"></script>
<script src="/javascripts/wth/hero-background.js" type="module"></script>
</div>
<div class="alert alert-note">
<p class="alert-title"><iconify-icon icon="mdi:information-outline" inline=""></iconify-icon> TL;DR</p>
<div class="alert-content">
<p>All of November is the Month of “What the Heck?!” Tell us what makes Home Assistant hard, confusing, or annoying for you in the <a href="https://community.home-assistant.io/c/month-of-what-the-heck/64" rel="noopener" target="_blank">WTH category on our forum</a>. Everyone is welcome, and this year we’d love to hear from new and non-technical users, and people living in homes where someone else set it all up. Run Home Assistant yourself? Ask the people you live with how they feel about it!</p>
</div>
</div>
<p>Let me start with a confession.</p>
<p>I work on Home Assistant all day, for a living. And still, my own home has moments where the people I live with look at me and go: “What the heck?!”</p>
<p>My most recent one? Profile pictures.</p>
<p>For the longest time, your own profile picture in Home Assistant wasn’t actually yours to change. Only an administrator could do it, tucked away in the settings. So if someone in our house wanted a different picture, they had to ask me, every time. For something that is literally your face, that’s a bit odd, isn’t it?</p>
<p>As of <a href="/blog/2026/10/07/release-202610/#a-tidier-profile-page">Home Assistant 2026.10</a>, every user, administrator or not, can change their own picture straight from their profile. A tiny change, right? Well, my 13-year-old daughter Lilly now changes hers about every week. I’ve officially lost my job as household profile picture administrator. Best demotion ever 😄</p>
<p>Such a small thing, but it made a big difference in how at home she feels in Home Assistant. And that’s the kind of thing we easily overlook when working on it every day.</p>
<p>So, guess what? It’s that time again. <strong>For the whole of November, we’re running the Month of “What the Heck?!”</strong> 🎉</p>
<!--more-->
<h2>Wait, what is this again?</h2>
<p>We always value your feedback, but don’t often ask for the tough kind outright. That changes this November. For one month, we open the floodgates. No technical words needed, no fancy format. Just one simple question: what in Home Assistant makes you go “what the heck?!”</p>
<p>The setting you can never find. The moment your home did something and nobody in the household had any clue why. The thing you keep missing, and can’t believe isn’t here yet. All those little (and sometimes not so little) frustrations you’ve quietly learned to live with.</p>
<p>We want to hear them. <strong>All of them.</strong></p>
<p>We only do this once every two years, and that’s on purpose. Two years is long enough for a lot to change, in Home Assistant itself and the smart home world around it. The technology moves on, and so do our expectations of what a smart home should do. What bugged you last time might be long gone, and something new might be driving you nuts today.</p>
<h2>Why we are doing this</h2>
<p>This year, the <a href="https://www.openhomefoundation.org" rel="noopener" target="_blank">Open Home Foundation</a> has been focusing on making Home Assistant more approachable. In other words: Home Assistant should not only work for the person who set it up. It should work for everyone who lives in the home.</p>
<p>We’ve made good progress so far. But let’s be real: the people building Home Assistant are pretty bad at spotting what’s confusing about Home Assistant. We know where everything is. We know the workarounds. We stopped being confused years ago.</p>
<p>That makes us terrible test subjects. You, on the other hand, are perfect. And so is everyone in your home.</p>
<p>So this is your month. Complain (nicely), discuss, dream out loud, and tell us what would make Home Assistant better for you.</p>
<h2>This year, we want to hear from everyone</h2>
<p>Previous editions of WTH month were great. But most of what we heard came from a very specific group: the tinkerers. The people who write YAML for fun, run a dozen apps, and know what an entity ID is.</p>
<p>I’m one of you. We are lovely people. Please keep the WTHs coming 😄</p>
<p>But this year, I want to explicitly invite everybody else too.</p>
<ul>
<li><strong>You just started with Home Assistant.</strong> Everything is still fresh, and that “huh?” feeling you had during setup is gold to us. Write it down before you get used to it!</li>
<li><strong>You don’t consider yourself a “technical” person.</strong> You use Home Assistant, but you don’t want to tinker with it. You want things to just work. Tell us where it doesn’t feel that way.</li>
<li><strong>You live in a home where someone else runs Home Assistant.</strong> Your partner, parent, room-mate, or child set it all up, and now you live with it, every day. Do you ever feel a little locked out of your own home? This is the group we hear from least, and probably the one we can learn the most from. Home Assistant runs entire households, and most people in those households never open a settings page.</li>
</ul>
<h2>Homework for those of us who run Home Assistant at home</h2>
<p>If you’re the one who maintains Home Assistant in your household, I have a small favor to ask.</p>
<p><strong>Go ask the people you live with how they feel about it.</strong></p>
<p>Not “is it working?” because they’ll politely say yes. Ask them for real. Fair warning: you might not like all the answers. I certainly didn’t. But there’s so much to learn from that conversation. Some questions to get it going:</p>
<ul>
<li>What’s the one thing about using Home Assistant that annoys you most?</li>
<li>Can you find what you need in the app or on the dashboard? Where do you get lost?</li>
<li>When Home Assistant does something unexpected, do you understand why? And what do you do about it? (Is the answer “call you”? Yeah, thought so.)</li>
<li>Is there something you’d like to do or change in Home Assistant yourself, but you don’t know how (or don’t dare to)?</li>
<li>If you could change one thing about Home Assistant, what would it be?</li>
</ul>
<p>Then bring what you hear to the forum. Even better: help them post it themselves, in their own words. <strong>Their words are exactly what we need.</strong></p>
<h2>How it works</h2>
<p>All WTHs go into the <a href="https://community.home-assistant.io/c/month-of-what-the-heck/64" rel="noopener" target="_blank">Month of “What the Heck?!” category on our community forum</a>. To keep things useful (and fun) for everyone, a few simple guidelines:</p>
<ul>
<li><strong>Search first, then vote.</strong> Someone may have beaten you to it. Give their topic a vote – it tells us how common a problem is – and add your own story in a reply. Every story adds context.</li>
<li><strong>One WTH per topic.</strong> That makes it possible to discuss, vote on, and track each one.</li>
<li><strong>Describe the moment, not the solution.</strong> Tell us what happened, what you expected, and why it bugged you. You don’t need to know how to fix it, and you don’t need any technical words. “I wanted to turn off the kitchen lights and couldn’t figure out where they were in the app” is a perfect WTH.</li>
<li><strong>Be kind.</strong> We are all here because we care about Home Assistant, our homes, and the people in them. That includes the people working on Home Assistant, many of whom are volunteers, doing this in their spare time.</li>
</ul>
<p>The category is open for <strong>the whole of November</strong>.</p>
<h2>What happens next?</h2>
<p>We read all the WTHs. Yes, really.</p>
<p>In past editions, contributors picked up WTHs and fixed them while the month was still running. I would love to see that happen again. If you’re a contributor and spot one you can tackle: go for it!</p>
<p>Beyond the quick fixes, everything you share helps us understand where Home Assistant needs to go next. It shapes how we make Home Assistant approachable for everyone, not just the person holding the admin account.</p>
<h2>So, what the heck?!</h2>
<p>Whether you’ve been running Home Assistant since the early days, installed it last week, or simply live with someone who won’t stop talking about it: this month is for you.</p>
<p>Tell us what makes Home Assistant hard, what makes you sigh, or what it’s like to live with it.</p>
<p><a href="https://community.home-assistant.io/c/month-of-what-the-heck/64" rel="noopener" target="_blank">Head over to the forum and share your WTH!</a></p>
<p>I’m looking forward to reading every single one of them (well… at least I’ll do my very best 😅).</p>
<p>../Frenck</p>
<h2>FAQ</h2>
<p><strong>Do I need an account to post?</strong></p>
<p>Yes, you need a free account on our <a href="https://community.home-assistant.io" rel="noopener" target="_blank">community forum</a>. Signing up only takes a minute.</p>
<p><strong>I have multiple things! Should I put them all in a single topic?</strong></p>
<p>No, please create a separate topic for each one. There is no limit on how many WTH topics you can create. Smaller topics are much easier to discuss, vote on, and pick up.</p>
<p><strong>I don’t run Home Assistant myself, someone else in my home does. Can I still post?</strong></p>
<p>Yes, please! You are exactly who we’d love to hear from this year. You don’t need to know how it all works behind the scenes; just tell us what it’s like to live with it.</p>
<p><strong>I’m posting on behalf of someone in my home. Is that OK?</strong></p>
<p>Absolutely. Just mention that it comes from them, and use their words as much as you can. How they describe it tells us a lot.</p>
<p><strong>English isn’t my first language. Can I still join?</strong></p>
<p>Of course! The forum is in English, but don’t let that stop you. Feel free to use AI or a translation tool to translate your WTH. If you do, please say so in your post, and add your original text in a hidden details block below it, like this:</p>
<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="text">[details="Original text"]
Your text in your own language.
[/details]
</code></pre></div></div>
<p>That way, nothing gets lost in translation, and people can always check what you originally meant. This is the same approach we use in our <a href="https://developers.home-assistant.io/docs/ai_policy" rel="noopener" target="_blank">AI policy</a>.</p>
<p><strong>Does it have to be about Home Assistant itself? What about the mobile Companion app, the documentation, or the website?</strong></p>
<p>All of it counts. If it’s part of your Home Assistant experience, it’s a valid WTH.</p>
<p><strong>My WTH from the last edition still isn’t solved. Can I post it again?</strong></p>
<p>Yes! This is a new edition, and a lot has changed since then. Please create a new WTH, and feel free to link to the old one.</p>
<p><strong>Is everything that is reported going to be fixed?</strong></p>
<p>No, there is no guarantee for that. The goal is to make it easy to tell us what bugs you, for one whole month. What you share helps us understand where Home Assistant is hard, and helps shape what we work on next.</p>
<p><strong>My WTH is one of the top-voted ones, so it’s going to be fixed, right?</strong></p>
<p>This is not a popularity contest. Votes help us see how many people run into the same thing, but they don’t guarantee anything gets picked up.</p>
<p><strong>I really want a new integration or app, so I can use my devices. Is this the right place?</strong></p>
<p>No, this event is not for requesting new integrations or apps. Please open a <a href="https://github.com/orgs/home-assistant/discussions" rel="noopener" target="_blank">feature request on GitHub</a> for that.</p>
<p><strong>I found a bug, and I’m comfortable with GitHub. Where should I report it?</strong></p>
<p>If you are comfortable using GitHub, please file an issue there instead. That way, it ends up directly with the people who can fix it, and we can track its progress too.</p>
<p><strong>I’m a contributor and want to fix a WTH. How do I let people know?</strong></p>
<p>Awesome! Reply in the WTH topic and link to your pull request. That way, everyone following the topic knows something is happening.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Everything Smart Home joins Works with Home Assistant]]></title>
    <link href="https://www.home-assistant.io/blog/2026/10/27/everything-smart-home-joins-works-with-home-assistant/"/>
    <updated>2026-10-27T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/10/27/everything-smart-home-joins-works-with-home-assistant</id>
    <content type="html"><![CDATA[<img alt="Everything Smart Home joins Works with Home Assistant" src="/images/blog/2026-10-everything-smart-home/art.webp" style="border: 0;box-shadow: none;"/>
<p>We’re detecting a new presence in the <a href="https://works-with.home-assistant.io/" rel="noopener" target="_blank">Works with Home Assistant program</a>… and we’re pretty excited about it! A big welcome to our newest partner, <a href="https://everythingsmarthome.co.uk/" rel="noopener" target="_blank">Everything Smart Home</a> 🎉 Founded by long-term community member Lewis Barclay and his dad, Dave Barclay, the family-run business brings the Everything Presence line of sensors to the program: the <a href="https://shop.everythingsmart.io/products/everything-presence-lite" rel="noopener" target="_blank">Lite</a>, <a href="https://shop.everythingsmart.io/products/everything-presence-one-kit" rel="noopener" target="_blank">One</a>, and <a href="https://shop.everythingsmart.io/products/everything-presence-pro" rel="noopener" target="_blank">Pro</a>. All built on ESPHome and designed to keep your data fully local and under your control.<!--more--></p>
<h2>A community <em>sens</em>ation</h2>
<p>If your smart home journey has involved a YouTube rabbit hole or two, chances are you’ve come across <a href="https://www.youtube.com/@EverythingSmartHome/featured" rel="noopener" target="_blank">Everything Smart Home</a>. And if not, allow us to introduce you! UK-based Lewis created the YouTube channel in 2020. Since then, he’s built a solid reputation in our community and beyond by posting monthly recaps of Home Assistant releases, along with plenty of tips, tricks, and guides on all things home automation.</p>
<p>Lewis’s videos were such a hit with Home Assistant DIYers and enthusiasts that in 2022 Everything Smart Home became <a href="/blog/2022/04/29/creator-network-launched/">one of the first members</a> of our <a href="https://creators.home-assistant.io/" rel="noopener" target="_blank">Home Assistant Creator Network</a>. That same year, Lewis and Dave, an electrical engineer, launched <a href="https://shop.everythingsmart.io" rel="noopener" target="_blank">Everything Smart Technology</a> to sell smart home gear they believe in (including official Home Assistant hardware from <a href="https://www.nabucasa.com/" rel="noopener" target="_blank">Nabu Casa</a>!). But they didn’t stop there. Lewis also wanted to create devices he’d use in his own home, ones with features he couldn’t find elsewhere. And so the Everything Presence sensor range was born ⚒️</p>
<h2>Made ESPecially for you</h2>
<p>All three Everything Presence sensors run <a href="https://esphome.io/" rel="noopener" target="_blank">ESPHome</a>, which lets them talk to Home Assistant directly over your home network, with no cloud connection required. They also carry the <a href="https://devices.esphome.io/made-for-esphome/" rel="noopener" target="_blank">Made for ESPHome</a> badge: our guarantee that each device runs ESPHome out of the box, can be fully controlled without opening the case or soldering anything, and has its code made available for all to see.</p>
<p>Everything Smart Home take this responsibility to heart. Their <a href="https://github.com/EverythingSmartHome" rel="noopener" target="_blank">GitHub</a> is a true collective project where users suggest fixes, add features, and find inspiration for sensors of their own. And that commitment goes beyond code: Lewis even joined us at our Open Home Foundation Summit in Dublin last year to discuss what community members want from their tech. We love to see a partner build so openly for our community, and dedicate their time to keeping smart homes local and built to last.</p>
<div class="alert">
<p>“Home Assistant has been a huge part of our journey from day one, so joining the Works with Home Assistant program with our Everything Presence sensors feels like a natural next step. The Home Assistant community has been incredibly supportive of me ever since pressing publish on that very first video, and we’re incredibly proud to be part of a program that shares our commitment to open, local smart home tech that puts control (and privacy!) firmly in the hands of users.”</p>
<em style="text-align: right; display: block;">— Lewis Barclay, Everything Smart Home</em>
</div>
<h2>Devices</h2>
<p>Like every certified device in the program, the Everything Presence Lite, One, and Pro were tested by our in-house team for local control, privacy, and sustainability, and Everything Smart Home are dedicated to providing long-term support and firmware updates for all three. It’s a commitment that comes naturally: Lewis has plenty of experience using his YouTube channel to listen to users and improve the sensors based on their feedback, so we’ve no doubt the team will continue to bring that same care to our community.</p>
<p class="img">
<img alt="The Everything Presence Lite, One, and Pro sensors shown side by side in three panels." src="/images/blog/2026-10-everything-smart-home/image2.webp"/>
A sensor for every situation: the Everything Presence Lite, One, and Pro (left to right)
</p>
<p>So, what makes an Everything Presence sensor different from the motion sensor you might already have? Most motion sensors rely on passive infrared (PIR) alone, so if you sit still long enough, they assume you’ve left (cue: waving at the ceiling). Each Everything Presence sensor uses millimeter-wave (mmWave) radar, which picks up movements as small as breathing, and the One and Pro pair it with PIR for an instant response the moment you walk in. That means lights that stay on while you read, heating that only warms the rooms you’re in, and screens that switch off when you’ve wandered away. All three double as Bluetooth proxies, too, extending Home Assistant’s Bluetooth range around your home.</p>
<p>The devices certified to the program are:</p>
<ul>
<li><a href="https://shop.everythingsmart.io/products/everything-presence-lite" rel="noopener" target="_blank">Everything Presence Lite</a> – A more affordable mmWave sensor that tracks up to three people across four zones you set up yourself, bringing multi-zone presence detection to every room.</li>
<li><a href="https://shop.everythingsmart.io/products/everything-presence-one-kit" rel="noopener" target="_blank">Everything Presence One</a> – Combines mmWave presence, PIR motion, temperature, humidity, and light sensing in one ESPHome device, covering everything a room automation needs from a single sensor.</li>
<li><a href="https://shop.everythingsmart.io/products/everything-presence-pro" rel="noopener" target="_blank">Everything Presence Pro</a> – A professional-grade sensor with two mmWave radars (long-range static and multi-target tracking), PIR motion and light sensing, and built for wired reliability in larger spaces and professional installs.</li>
</ul>
<p>The most recent addition to the range, the Everything Presence Pro, stands out for pairing 802.3af Power over Ethernet (PoE) with Ethernet. This means that a single cable carries both power <em>and</em> data, so installers can mount it in a ceiling like a Wi-Fi access point or security camera, with no Wi-Fi dropouts or power outlet to worry about.</p>
<p>Want to check out other nifty devices like these? Head to our <a href="https://works-with.home-assistant.io/certified-products/" rel="noopener" target="_blank">certified device list</a> to see everything on offer.</p>
<h2>Everything, everywhere, all at once</h2>
<p>Wi-Fi or wired, all three sensors do everything they need entirely within your home. But if you’d like to check in from afar, <a href="https://www.nabucasa.com/link/" rel="noopener" target="_blank">Home Assistant Link</a> (formerly Home Assistant Cloud) lets you see which rooms are occupied, or whether the heating’s still on in an empty house, from wherever you are. Best of all, every subscription directly funds the <a href="https://www.openhomefoundation.org/" rel="noopener" target="_blank">Open Home Foundation</a> – the non-profit behind Home Assistant, ESPHome, and this program – helping us bring more partners like Everything Smart Home on board.</p>
<h2>On our radar</h2>
<p>Everything Smart Home’s story shows what’s possible with the power of community. Like so many of you, Lewis started out as a home automation enthusiast, and went from recapping our releases to building hardware of his own. With Dave’s engineering know-how and the support of fellow tinkerers, they’ve turned a passion project into a family-led hardware company that we’re thrilled to welcome to the program. We can’t wait to see what they build next 👀</p>
<h2>FAQs</h2>
<p>Q: If I have a device that is not listed under Works with Home Assistant does this mean it’s not supported?</p>
<p>A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule later down the road, or it might work under a different connectivity type that we don’t currently test under the program.</p>
<p>Q: OK, so what’s the point of the Works with program?</p>
<p>A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have the functionality you would expect within Home Assistant, operate locally without the need for cloud, and that they will continue to do so long-term.</p>
<p>Q: How were these devices tested?</p>
<p>A: Everything Smart Home’s certified devices were tested using Home Assistant over a standard Wi-Fi connection. If you have another setup that’s not a problem, but we test this way as it’s the most effective method for our team to certify within our ecosystem.</p>
<p>Q: Will you be adding more Everything Smart Home devices to the program?</p>
<p>A: Why not! We’re thrilled to foster a close relationship with the team at Everything Smart Home to work together on any upcoming releases or add in further products that are not yet listed here.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[LEDVANCE joins Works with Home Assistant]]></title>
    <link href="https://www.home-assistant.io/blog/2026/10/13/ledvance-joins-works-with-home-assistant/"/>
    <updated>2026-10-13T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/10/13/ledvance-joins-works-with-home-assistant</id>
    <content type="html"><![CDATA[<img alt="LEDVANCE joins Works with Home Assistant" src="/images/blog/2026-10-ledvance/art.webp" style="border: 0;box-shadow: none;"/>
<p>Prepare to be dazzled, because this month <a href="https://www.ledvance.com/en-int" rel="noopener" target="_blank">LEDVANCE</a> join the <a href="https://works-with.home-assistant.io/" rel="noopener" target="_blank">Works with Home Assistant</a> program as our newest partners 🎉 And what’s more, they bring a <em>huge</em> lineup of certified devices (116, to be exact!) to our community, which means plenty of new ways to light up your home 💡<!--more--></p>
<h2>A century of bright ideas</h2>
<p>We love welcoming established brands as much as newer names to the Works with Home Assistant program, and LEDVANCE are… well… both! The company was created in 2016 when OSRAM, one of the lighting industry’s oldest and most respected names, spun off its general lighting business as an independent entity. Its name combines “LED” and “advance,” a nod to the shift toward modern LED lighting and the possibilities that came with it.</p>
<p>Since then, LEDVANCE have grown into a global name in their own right, with offices in more than 50 countries and customers in more than 140. They carry forward more than 100 years of lighting experience, and still sell products under the OSRAM brand through a licensing agreement.</p>
<p>But while their heritage is strong, their focus is firmly on the future. Their <a href="https://www.ledvance.com/en-int/home-lighting/stories/smart-home-electronics" rel="noopener" target="_blank">OSRAM SMART+</a> range brings that expertise into the modern smart home (and now our program 🎉), embracing Matter to give <em>you</em> more freedom to illuminate your environment around the way you live. With so many devices to choose from, whatever you’re picturing for your home, chances are there’s a LEDVANCE light that can help you make it happen.</p>
<h2>Setting the standard</h2>
<p>Every LEDVANCE device certified to the program uses <a href="/integrations/matter/">Matter</a> with a Wi-Fi connection, making the devices simple to integrate into your existing setup. For any newcomers, Matter is an open standard developed by the <a href="https://csa-iot.org/all-solutions/matter/" rel="noopener" target="_blank">Connectivity Standards Alliance</a>. It lets devices from different brands work together locally, so you’re never locked into one company’s ecosystem and your data stays where it should be – in your home.</p>
<p>Since LEDVANCE’s Matter devices use Wi-Fi, you won’t need any extra gear to get started. Just add them to your network and they’ll talk to Home Assistant directly, ensuring an easy setup and the option to create automations with the devices you already have. It’s great to see our new partners prioritizing open standards, showing they care as much as we do about helping our community control their smart homes on their own terms.</p>
<div class="alert">
<p>“We believe that openness and interoperability are essential for the future of smart homes. By joining the Home Assistant community, we want to make SMART+ products more accessible to users who value flexibility and local control, while learning from the community and collaborating to create better smart home experiences.”</p>
<em style="text-align: right; display: block;">– Pulkit Dhanuka, Product Manager at LEDVANCE</em>
</div>
<h2>Devices</h2>
<p>LEDVANCE’s certified devices cover everything from filament-style bulbs, spotlights, and recessed and track downlights, to ceiling and wall lights, floor lamps, and flexible LED strips for adding a glow under kitchen cabinets or behind the TV. In fact, there are so many options that the list is too long to include in this blog, so head to the <a href="https://works-with.home-assistant.io/certified-products/?brand=ledvance-osram" rel="noopener" target="_blank">certified device list</a> to check out all the details!</p>
<p class="img">
<img alt="Set the scene for a comfy night in with LEDVANCE’s smart lights." src="/images/blog/2026-10-ledvance/image2.webp"/>
Set the scene for a comfy night in with LEDVANCE’s smart lights.
</p>
<p>To give you a snapshot, most of the range is tunable white or full color, so your lights can go from a cozy evening glow to crisp morning brightness (or a full rainbow, if the mood strikes). There are also IP-rated options for bathrooms and the garden, including floodlights and outdoor spots, so you can automate your lights beyond the back door, for example to turn your security lights on when a sensor detects motion. And if you prefer to use what you already have, the SMART+ Plug can turn any ordinary lamp or appliance into something you can automate, while smart wall switches do the same for your ceiling lights: replace the switch on the wall, keep the bulbs you have.</p>
<p>As with every device certified to the program, LEDVANCE’s products have been rigorously tested by our in-house team to make sure they comply with our core requirements of local control and privacy. LEDVANCE have also committed to providing long-term support for our community, so you can be confident your setup will keep working for the long run.</p>
<h2>Lighting that lasts</h2>
<p>Sustainability is one of the core principles of the <a href="https://www.openhomefoundation.org/" rel="noopener" target="_blank">Open Home Foundation</a>, the non-profit organization that runs Works with Home Assistant. A big part of that is making sure devices stay useful for as long as possible. Since LEDVANCE’s devices don’t need a cloud service to function, you don’t have to worry about a far-off server shutdown turning your lights into e-waste.</p>
<p>And because Matter works across platforms, you’ll still be able to use your tech if you ever change smart home systems. Lighting that keeps shining whatever happens to a platform: that’s the kind of partner we love to welcome, and it’s what this program is all about.</p>
<h2>All systems <em>glow</em></h2>
<p>We’re thrilled to have LEDVANCE join our community, and can’t wait to see what you light up with their range of devices. Want to see more partners like them on board? A <a href="https://www.nabucasa.com/link/" rel="noopener" target="_blank">Home Assistant Link</a> (<a href="/blog/2026/10/02/big-tech-ruined-the-cloud-so-were-renaming-ours/">formerly Home Assistant Cloud</a>) subscription gives you secure, remote access to your smart home, and directly supports the Open Home Foundation to expand our program. Because the more brands that join, the more choice you have to design your space exactly the way <em>you like.</em> Here’s to plenty more switched-on homes 💡 Welcome, LEDVANCE!</p>
<h2>FAQs</h2>
<p>Q: If I have a device that is not listed under Works with Home Assistant does this mean it’s not supported?</p>
<p>A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule later down the road, or it might work under a different connectivity type that we don’t currently test under the program.</p>
<p>Q: OK, so what’s the point of the Works with program?</p>
<p>A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have the functionality you would expect within Home Assistant, operate locally without the need for cloud and that they will continue to do so long-term.</p>
<p>Q: How were these devices tested?</p>
<p>A: All of LEDVANCE’s certified devices were tested using Home Assistant over a standard Wi-Fi connection with our certified <a href="/integrations/matter/">Matter integration</a>. If you have another setup or integration that’s not a problem, but we test this way as it’s the most effective method for our team to certify within our ecosystem.</p>
<p>Q: Will you be adding more LEDVANCE devices to the program?</p>
<p>A: Why not! We’re thrilled to foster a close relationship with the team at LEDVANCE to work together on any upcoming releases or add in further products that are not yet listed here.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2026.10: You are here 📍]]></title>
    <link href="https://www.home-assistant.io/blog/2026/10/07/release-202610/"/>
    <updated>2026-10-07T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/10/07/release-202610</id>
    <content type="html"><![CDATA[<p><lite-youtube videoid="LzaGqk_dbeI" videotitle="Home Assistant 2026.10 Release Party"></lite-youtube></p>
<p>Home Assistant 2026.10! 🎉</p>
<p>Last week, Nabu Casa dropped: <a href="/blog/2026/10/02/big-tech-ruined-the-cloud-so-were-renaming-ours/">Big Tech ruined the cloud, so we’re renaming ours</a>. Home Assistant Cloud is on its way to becoming Home Assistant Link. Same service, new name. I love that title, by the way. If you haven’t read the story behind it yet, go have a look, and <a href="#cloud-becomes-link">tell us what you think</a>. The change is planned for the December release, so there is still time. 🏎️</p>
<p>Now, I’ll let you in on a secret: I’m an automation person. Dashboards are lovely and I admire everyone who builds a pretty one, but for me, <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> are what make a smart home actually smart. So you can imagine how happy I am with what’s in this release. One of the most powerful features you never thought you’d need has been sitting in Home Assistant for years: trigger IDs. Give your <span class="terminology">triggers<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> an ID, and one automation can do the job of two, three, or five. It was also tucked away in a menu, you had to invent the IDs yourself, and then remember which was which. Plenty of you never found it, and that’s on us.</p>
<p>Not anymore. <a href="#the-best-automation-feature-you-never-used">Trigger IDs finally get a proper UI</a>: you check the triggers you want in the condition, and Home Assistant takes care of the IDs behind the scenes. And if you like writing your own IDs in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>, nothing changes. Those keep working exactly as before. That makes it my favorite of this release. 🧠</p>
<p>Don’t get me wrong, the map is absolutely a cool feature too. Last release, every map in Home Assistant broke overnight when our map provider wanted an API key. We moved to <a href="https://www.openstreetmap.org/">OpenStreetMap</a>, and it turns out that swapping out the map opens a lot of doors: <a href="#a-whole-new-map">a vector map that stays sharp at every zoom level</a>, redesigned markers, and an overview of where everyone has been. You are here. 📍</p>
<p>There’s more: a <a href="#a-tidier-profile-page">tidier profile page</a>, a <a href="#a-panel-for-your-modbus-connections">panel for your Modbus connections</a>, <a href="#connect-your-ai-in-one-click">connecting your AI in one click</a>, and 15 new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>! 🚀</p>
<p>Enjoy the release!</p>
<p>../Frenck</p>
<!--more-->
<ul>
<li><a href="#cloud-becomes-link">Cloud becomes Link</a></li>
<li><a href="#a-whole-new-map">A whole new map</a>
<ul>
<li><a href="#crisp-at-every-zoom-level">Crisp at every zoom level</a></li>
<li><a href="#redesigned-markers">Redesigned markers</a></li>
<li><a href="#an-overview-for-the-map-dashboard">An overview for the Map dashboard</a></li>
<li><a href="#zones-on-the-new-map">Zones on the new map</a></li>
</ul>
</li>
<li><a href="#a-tidier-profile-page">A tidier profile page</a></li>
<li><a href="#the-best-automation-feature-you-never-used">The best automation feature you never used</a></li>
<li><a href="#integrations">Integrations</a>
<ul>
<li><a href="#new-integrations">New integrations</a></li>
<li><a href="#noteworthy-improvements-to-existing-integrations">Noteworthy improvements to existing integrations</a></li>
<li><a href="#integration-quality-scale-achievements">Integration quality scale achievements</a></li>
<li><a href="#now-available-to-set-up-from-the-ui">Now available to set up from the UI</a></li>
<li><a href="#farewell-to-the-following">Farewell to the following</a></li>
</ul>
</li>
<li><a href="#other-noteworthy-changes">Other noteworthy changes</a>
<ul>
<li><a href="#show-a-card-only-when-it-matters">Show a card only when it matters</a></li>
<li><a href="#a-panel-for-your-modbus-connections">A panel for your Modbus connections</a></li>
<li><a href="#connect-your-ai-in-one-click">Connect your AI in one click</a></li>
<li><a href="#name-an-entity-after-its-device">Name an entity after its device</a></li>
<li><a href="#timers-one-tap-away">Timers, one tap away</a></li>
</ul>
</li>
<li><a href="#patch-releases">Patch releases</a>
<ul>
<li><a href="#2026101---october-10">2026.10.1 - October 10</a></li>
<li><a href="#2026102---october-16">2026.10.2 - October 16</a></li>
<li><a href="#2026103---october-23">2026.10.3 - October 23</a></li>
<li><a href="#2026104---october-24">2026.10.4 - October 24</a></li>
</ul>
</li>
<li><a href="#need-help-join-the-community">Need help? Join the community</a></li>
<li><a href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a href="#all-changes">All changes</a></li>
</ul>
<p><em>A huge thank you to all the contributors who made this release possible! And a special shout-out to <a href="https://github.com/googanhiem">@googanhiem</a> and <a href="https://github.com/piitaya">@piitaya</a> who helped write these release notes. Also, <a href="https://github.com/grischard">@grischard</a>, <a href="https://github.com/moryoav">@moryoav</a>, and <a href="https://github.com/RaHehl">@RaHehl</a> for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️</em></p>
<h2>Cloud becomes Link</h2>
<p>In case you missed it, <a href="/blog/2026/10/02/big-tech-ruined-the-cloud-so-were-renaming-ours/">we’re making the move</a> to rename <a href="/cloud/">Home Assistant Cloud</a> to Home Assistant Link. Same service, new name.</p>
<p>We’re all pretty annoyed by how Big Tech has been ruining perfectly good smart home devices by making them reliant on the cloud. Ours has never locked anyone in, harvested their data, or turned working devices into e-waste, so a new name was in order. Home Assistant Link is all about being clearer that it does things differently. The change is planned for the December release, so tell us your thoughts before then.</p>
<p>The best link is a fast link. 🏎️ <a href="https://www.nabucasa.com/">Nabu Casa</a> has been hard at work making remote access even faster across the globe. They recently <a href="https://support.nabucasa.com/hc/en-us/articles/39385482184733">migrated all of their servers to bare metal</a> and added more servers to boost their coverage of the world. This month, they added a latency checker that pings multiple servers on boot and picks the best connection for you.</p>
<h2>A whole new map</h2>
<p>Last release, something changed underneath every map in Home Assistant, and we barely mentioned it in the release notes. The map provider we relied on started stamping an “API key required” message across its map images, breaking every map in Home Assistant at once. Instead of hunting for another free tile provider, we switched from pre-rendered map images to vector tiles generated and served by the OpenStreetMap Foundation. Both maps use <a href="https://www.openstreetmap.org/">OpenStreetMap</a> data, but your device now draws the map itself. The new <a href="/integrations/map_tiles/">Map tiles</a> integration fetches and caches the tiles through your Home Assistant instance, so your browser does not contact external tile servers directly. Recently viewed parts of the map remain available through a short internet hiccup.</p>
<p>Guillaume Rischard (<a href="https://github.com/grischard">@grischard</a>), the former chair of the OpenStreetMap Foundation who initiated and led its vector-tile initiative, joined us during the <a href="https://www.youtube.com/watch?v=TgGiUchnmDw">2026.9 release party</a>.</p>
<p>Swapping out the map underneath opened a lot of doors. This release walks through the first few.</p>
<h3>Crisp at every zoom level</h3>
<p>The map is drawn entirely on your device, as vectors, instead of being stitched together from pictures. Streets and labels stay sharp at any zoom level, and zooming in and out is smooth. The map also has a dedicated dark style, with colors designed for dark mode. Older devices that can’t render vector maps, like the old tablet on your wall, automatically fall back to the classic map.</p>
<p class="img"><video aria-label="Screen recording of the Map dashboard zooming out from Amsterdam to Europe and back, with the markers of people merging into shared bubbles as the map zooms out." autoplay="" loop="" muted="" playsinline="" src="/images/blog/2026-10/map-zoom.mp4"></video></p>
<h3>Redesigned markers</h3>
<p>The markers on the map got a complete redesign. People show up with their picture, <span class="terminology">zones<span class="terminology-tooltip">Zones allow you to specify certain regions on a map. They enable zone presence-detection and can be used in automations. For example, to start the vacuum after you left home or start the heating at home when you leave the office.<a class="terminology-link" href="/integrations/zone/"> [Learn more]</a></span></span> get a marker with their icon in their own color, and everyone in the same zone shares a single bubble on that zone, instead of a pile of markers stacked on top of each other. Zoom out far enough, and bubbles that would overlap merge into one.</p>
<img alt="Screenshot of the map with the redesigned markers, showing a person with their picture, two people sharing a bubble on the Home zone, and the Supermarket zone with its icon, next to the overview listing everyone on the People tab." class="no-shadow" src="/images/blog/2026-10/map-markers.png"/>
<h3>An overview for the Map dashboard</h3>
<p>The <a href="/dashboards/dashboards/#map-dashboard">Map dashboard</a> now comes with an overview, next to the map on a desktop and as a sheet you pull up on your phone. It has three tabs: <strong>People</strong>, <strong>Devices</strong>, and <strong>Zones</strong>. Select someone to see their recent activity, with each stop colored by the zone they were in. Select a zone to see who’s there. On a phone, the map now also fills the whole screen, edge to edge.</p>
<img alt="Screenshot of the recent activity of a person in the map overview, with each entry marked in the color of its zone." class="no-shadow" src="/images/blog/2026-10/map-activity.png"/>
<p>The same overview shows up when you put a <a href="/dashboards/map/">map card</a> in a panel view on your own dashboard.</p>
<h3>Zones on the new map</h3>
<p>The zone editor in <a class="my" href="https://my.home-assistant.io/redirect/zones" target="_blank"><strong>Settings</strong> &gt; <strong>Areas, labels &amp; zones</strong></a> now uses the same new map. Your zones are sorted alphabetically, with Home always at the top, and they show the same icons and colors you see on the map.</p>
<img alt="Screenshot of the zone editor on the new map, with the list of zones sorted alphabetically and Home at the top." class="no-shadow" src="/images/blog/2026-10/map-zone-editor.png"/>
<p>The redesign follows an <a href="https://github.com/OpenHomeFoundation/ux-design/discussions/68">Open Home Foundation design concept</a> for the Map dashboard.</p>
<p>Thanks to <a href="https://github.com/maartenla">@maartenla</a>, <a href="https://github.com/matthiasdebaat">@matthiasdebaat</a>, <a href="https://github.com/bramkragten">@bramkragten</a>, and <a href="https://github.com/bgoncal">@bgoncal</a>; <a href="https://github.com/grischard">@grischard</a> for initiating vector maps on the OpenStreetMap side and for assisting us; and Paul Norman (<a href="https://github.com/pnorman">@pnorman</a>) for developing <a href="https://github.com/pnorman/tilekiln">Tilekiln</a> and the tile service. Thanks also to the <a href="https://osmfoundation.org/">OpenStreetMap Foundation</a> and the <a href="https://maplibre.org/">MapLibre</a>, <a href="https://shortbread-tiles.org/">Shortbread</a>, and <a href="https://versatiles.org/">VersaTiles</a> communities.</p>
<p>Like Home Assistant, <a href="https://www.openstreetmap.org/">OpenStreetMap</a> is built in the open by people like you. Spot something in your neighborhood that’s missing or out of date? You can <a href="https://wiki.openstreetmap.org/wiki/Getting_Involved">leave a note or edit the map yourself</a>.</p>
<h2>A tidier profile page</h2>
<p>Select your name at the bottom of the sidebar, and you land on your <a class="my" href="https://my.home-assistant.io/redirect/profile" target="_blank"><strong>User profile</strong></a>. Over the years, that page quietly turned into a bit of a junk drawer. Language, theme, date formats, sidebar order, push notifications, keyboard shortcuts: all stacked in one long <strong>General</strong> tab, with <strong>Security</strong> as its only neighbor. Everything was there. You just had to scroll past most of it to find the one thing you came for.</p>
<p>The profile page is now an overview, using the same kind of navigation you already know from <strong>Settings</strong>. At the top is a card with your account, followed by your <strong>Theme</strong>, and a short list of sections that each hold a handful of related settings:</p>
<ul>
<li><strong>Appearance</strong>: Your default dashboard and the order of your sidebar</li>
<li><strong>Localization</strong>: Your language, time zone, and how dates, times, and numbers are shown</li>
<li><strong>This browser</strong> (or <strong>This mobile app</strong> in the companion app): Notifications, display, and shortcuts for the device you’re using right now</li>
<li><strong>Security</strong>: Your password, <a href="/docs/authentication/multi-factor-auth/">multi-factor authentication</a>, and access tokens</li>
</ul>
<p>Nothing was taken away. Every setting is still there, just grouped so it’s easier to find. Thanks, <a href="https://github.com/pcan08">@pcan08</a> and <a href="https://github.com/maartenla">@maartenla</a>!</p>
<img alt="Screenshot of the redesigned user profile page, showing the account card, the theme picker, and the Appearance, Localization, and This browser sections." class="no-shadow" src="/images/blog/2026-10/profile-page.png"/>
<p>That account card at the top learned a new trick, too. Until now, your own name and picture weren’t actually yours to change. Only an administrator could set them, tucked away in the person settings. Not an administrator, but you wanted a nicer picture of yourself in the sidebar? You had to go ask whoever runs your Home Assistant. A bit odd, for something that is literally your face.</p>
<p>Every user, administrator or not, now has an <strong>Edit profile</strong> button right next to <strong>Log out</strong>. Upload and crop a picture, change your name, and save. Your name is used for both your user and the <a href="/integrations/person/">person</a> linked to it, so it’s the same everywhere you show up, from the sidebar to your dashboards and <a href="/voice_control/">Assist</a>. Your new picture shows up in the sidebar right away.</p>
<img alt="Screenshot of the Edit profile dialog, with the profile picture, a button to clear it, and a field to change your name." class="no-shadow" src="/images/blog/2026-10/profile-edit.png"/>
<h2>The best automation feature you never used</h2>
<p>Take a look at your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, and chances are you’ll find a few that come in pairs. One turns the hallway light on when motion is detected, the other turns it off again when the motion stops. One sends a notification when the washing machine starts, the other when it’s done. Two automations, doing one job.</p>
<p>Home Assistant has had a way to combine those into one for years. Give each <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> an <a href="/docs/automation/trigger/#trigger-id">ID</a>, and use the <a href="/conditions/trigger/"><strong>Triggered by</strong></a> <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span> to do something different depending on which trigger fired. It’s one of the most powerful things you can do in the <a href="/docs/automation/editor/">automation editor</a>, and also one of the best-hidden. The trigger ID field sat in the menu of each trigger. You had to come up with an ID, type it in yourself, and then remember which ID belonged to which trigger when you picked them in the condition. Most people never found it, and honestly, we can’t blame them.</p>
<p>Not anymore. Add a <strong>Triggered by</strong> condition, and you check the triggers it should match. You see the triggers themselves, not some ID you made up, and each one is numbered by its position in your list, with the same number shown next to the trigger itself. So you always know which one is which. There are no IDs to come up with at all. Home Assistant takes care of those behind the scenes, and cleans up after itself when you remove a trigger.</p>
<img alt="Screenshot of the automation editor with two numbered triggers, Motion detected and Motion cleared, and a Triggered by condition where the first trigger, Motion detected, is checked." class="no-shadow" src="/images/blog/2026-10/automation-triggered-by.png"/>
<p>If you set your trigger IDs yourself in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>, nothing changes. Those IDs keep working exactly as they did, sharing one ID between several triggers is still fine, and Home Assistant won’t add IDs to your YAML for you. The trigger ID field is gone from the automation editor, because you no longer need it there: to run the same actions for several triggers, check them all in one <strong>Triggered by</strong> condition.</p>
<p>The editor does keep an eye out for two things, but only in the <strong>Triggered by</strong> condition. If a condition points to a trigger that no longer exists, it flags it, so you can clear it. And if several triggers share the same ID, it shows a warning with a <strong>Fix</strong> that gives each trigger its own ID and updates your conditions to match. It’s a suggestion, not a repair, so if sharing an ID is what you want, you can leave it as it is.</p>
<p>This completes <a href="https://github.com/OpenHomeFoundation/roadmap/issues/66">an Open Home Foundation roadmap opportunity</a> to make referencing triggers in automations a lot easier. Thanks, <a href="https://github.com/jpbede">@jpbede</a>, <a href="https://github.com/wendevlin">@wendevlin</a>, <a href="https://github.com/marcinbauer-ohf">@marcinbauer-ohf</a>, and <a href="https://github.com/nielsrowinbik">@nielsrowinbik</a>!</p>
<p>While you’re in the automation editor, you’ll notice your <span class="terminology">triggers<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>, <span class="terminology">conditions<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, and <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> tell you a bit more at a glance. Each row now shows the details that used to be hidden until you opened it: the threshold a trigger or condition checks for, like “above 10 °C”, how long something needs to stay that way, the offset on a sunrise or sunset, and how long a wait action waits before it gives up. Thanks, <a href="https://github.com/wendevlin">@wendevlin</a> and <a href="https://github.com/MindFreeze">@MindFreeze</a>!</p>
<img alt="Screenshot of triggers and a condition in the automation editor, each showing its details in the row: 10m before sunset, temperature above 10 °C for 5m, light brightness between 10 and 20%, and illuminance above 50 lx for 10m." class="no-shadow" src="/images/blog/2026-10/automation-row-details.png"/>
<h2>Integrations</h2>
<p>Thanks to our community for keeping pace with the new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and improvements to existing ones! You’re all awesome 🥰</p>
<h3>New integrations</h3>
<p>We welcome the following new integrations in this release:</p>
<ul>
<li>
<p><strong><a href="/integrations/axle_energy">Axle Energy</a></strong>, added by <a href="https://github.com/Herbertmt978">@Herbertmt978</a><br/>
Bring the grid event schedule of your <a href="https://www.axle.energy/">Axle Energy</a> account into Home Assistant. It tells you whether an upcoming event asks you to import from or export to the grid, and exactly when it starts and ends, so your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> can get your home ready in time.</p>
</li>
<li>
<p><strong><a href="/integrations/bitvis">Bitvis Power Hub</a></strong>, added by <a href="https://github.com/MandusBorjesson">@MandusBorjesson</a><br/>
Read real-time electricity data from your smart meter using a <a href="https://bitvis.se/">Bitvis Power Hub</a>, which plugs into the meter’s <abbr title="Home Area Network">HAN</abbr> port. The Power Hub pushes its measurements, like power, voltage, and current per phase, straight to Home Assistant over your local network. No cloud, no <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span>.</p>
</li>
<li>
<p><strong><a href="/integrations/gree_infrared">Gree Infrared</a></strong>, added by <a href="https://github.com/Dr-Blank">@Dr-Blank</a>, launching at 🥈 silver quality<br/>
Control a Gree air conditioner using any infrared transmitter you already have set up in Home Assistant, like an ESPHome device with an infrared LED. Add an infrared receiver, and the <span class="terminology">climate<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span> entity follows along when someone uses the physical Gree remote. Gree builds air conditioners for many brands, so units sold as Onida, Sinclair, and others work as well.</p>
</li>
<li>
<p><strong><a href="/integrations/indi_allsky">INDI Allsky</a></strong>, added by <a href="https://github.com/TN-1">@TN-1</a><br/>
Connect your <a href="https://github.com/aaronwmorris/indi-allsky">INDI Allsky</a> camera server, an allsky camera system for astrophotography and keeping an eye on cloud cover. You get the latest capture as a camera, plus sensors for sky quality, the number of stars detected, exposure time, and whether it’s night.</p>
</li>
<li>
<p><strong><a href="/integrations/kaco_modbus">KACO Modbus</a></strong>, added by <a href="https://github.com/g4bri3lDev">@g4bri3lDev</a><br/>
Connect a <a href="https://kaco-newenergy.com/">KACO new energy</a> solar inverter directly over your local network using Modbus TCP. It shows what the inverter is producing right now, its lifetime energy counter for the <a href="/docs/energy/">Energy dashboard</a>, and what it is doing, without any cloud account or manufacturer portal involved.</p>
</li>
<li>
<p><strong><a href="/integrations/my_pv">my-PV</a></strong>, added by <a href="https://github.com/rrooggiieerr">@rrooggiieerr</a><br/>
Control <a href="https://www.my-pv.com/">my-PV</a> devices, like the AC•THOR range and AC ELWA 2, which turn your surplus solar power into hot water. Home Assistant talks to them locally and discovers them on your network automatically.</p>
</li>
<li>
<p><strong><a href="/integrations/osram_infrared">OSRAM Infrared</a></strong>, added by <a href="https://github.com/freeDom-">@freeDom-</a>, launching at 🥈 silver quality<br/>
Control OSRAM and LEDVANCE RGB lights that come with a 24-button infrared remote, using an infrared transmitter set up in Home Assistant. With an infrared receiver, the <span class="terminology">light<span class="terminology-tooltip">A light has a brightness you can control, and optionally color temperature or RGB color control.<a class="terminology-link" href="/integrations/light"> [Learn more]</a></span></span> entity also picks up commands from the physical remote.</p>
</li>
<li>
<p><strong><a href="/integrations/persang_infrared">Persang Infrared</a></strong>, added by <a href="https://github.com/Dr-Blank">@Dr-Blank</a><br/>
Control a Persang Bluetooth speaker using an infrared transmitter set up in Home Assistant, giving you a media player and buttons for its remote functions.</p>
</li>
<li>
<p><strong><a href="/integrations/solaredge_modbus">SolarEdge Modbus</a></strong>, added by <a href="https://github.com/frenck">@frenck</a>, launching at 🏆 platinum quality<br/>
Connect to your SolarEdge solar inverter over your own network, using the Modbus TCP interface built into the inverter. No account, no API key, no cloud. Readings arrive every few seconds instead of every few minutes, and keep arriving when your internet connection is down. You can also change the export limit and how your battery charges.</p>
</li>
<li>
<p><strong><a href="/integrations/sunsynk">Sunsynk</a></strong>, added by <a href="https://github.com/jamesridgway">@jamesridgway</a><br/>
Bring your <a href="https://www.sunsynk.org">Sunsynk</a> hybrid solar inverter and battery into Home Assistant using your Sunsynk Connect account. You get sensors for solar production, grid import and export, and your battery. Home Assistant can even discover the Sunsynk data logger on your network.</p>
</li>
<li>
<p><strong><a href="/integrations/theben_conexa">Theben Conexa Smart Meter Gateway</a></strong>, added by <a href="https://github.com/mdluhosch">@mdluhosch</a><br/>
Read your meter data locally from a <a href="https://www.theben-se.de/conexa/">Theben Conexa 3.0</a> smart meter gateway, using its built-in Home Area Network (HAN) interface. No cloud needed.</p>
</li>
<li>
<p><strong><a href="/integrations/threema">Threema</a></strong>, added by <a href="https://github.com/LukasQ">@LukasQ</a><br/>
Send end-to-end encrypted messages from your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> to people on <a href="https://threema.ch">Threema</a>, the privacy-focused messenger that doesn’t need a phone number. It uses the Threema Gateway service, and each person you add as a recipient gets their own notify entity.</p>
</li>
<li>
<p><strong><a href="/integrations/vitesy">Vitesy</a></strong>, added by <a href="https://github.com/chemelli74">@chemelli74</a><br/>
Connect the <a href="https://vitesy.com/">Vitesy</a> Shelfy, an air purifier that lives in your refrigerator. See the air quality and temperature inside your fridge, how often the door was opened, and when the filter needs cleaning or replacing. You can even switch the purifier mode, for example to boost it after a grocery run.</p>
</li>
<li>
<p><strong><a href="/integrations/willow">Willow</a></strong>, added by <a href="https://github.com/PaxPrz">@PaxPrz</a><br/>
Keep an eye on the health of your indoor plants with Willow sensors. Temperature, humidity, soil moisture, and light levels come from the Willow cloud into Home Assistant, ready for your dashboards and <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>. Your plants can’t tell you they’re thirsty, but now Home Assistant can.</p>
</li>
<li>
<p><strong><a href="/integrations/zonneplan">Zonneplan</a></strong>, added by <a href="https://github.com/erwindouna">@erwindouna</a><br/>
Get the electricity and gas prices of your <a href="https://www.zonneplan.nl/">Zonneplan</a> contract, a Dutch provider of dynamic energy contracts. Handy for running your appliances when energy is cheapest.</p>
</li>
</ul>
<p>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:</p>
<ul>
<li><strong><a href="/integrations/austroflamm">Austroflamm</a></strong>, provided by <a href="/integrations/fumis">Fumis</a>, added by <a href="https://github.com/frenck">@frenck</a></li>
<li><strong><a href="/integrations/ecospar">EcoSpar</a></strong>, provided by <a href="/integrations/fumis">Fumis</a>, added by <a href="https://github.com/frenck">@frenck</a></li>
<li><strong><a href="/integrations/haas_sohn">HAAS+SOHN</a></strong>, provided by <a href="/integrations/fumis">Fumis</a>, added by <a href="https://github.com/frenck">@frenck</a></li>
<li><strong><a href="/integrations/heta">HETA</a></strong>, provided by <a href="/integrations/fumis">Fumis</a>, added by <a href="https://github.com/frenck">@frenck</a></li>
<li><strong><a href="/integrations/ogeneral">O General</a></strong>, provided by <a href="/integrations/fujitsu_fglair">FGLair</a>, added by <a href="https://github.com/Dr-Blank">@Dr-Blank</a></li>
<li><strong><a href="/integrations/onida_infrared">Onida Infrared</a></strong>, provided by <a href="/integrations/gree_infrared">Gree Infrared</a>, added by <a href="https://github.com/Dr-Blank">@Dr-Blank</a></li>
<li><strong><a href="/integrations/steinway_lyngdorf">Steinway &amp; Lyngdorf</a></strong>, provided by <a href="/integrations/lyngdorf">Lyngdorf</a>, added by <a href="https://github.com/fishloa">@fishloa</a></li>
</ul>
<h3>Noteworthy improvements to existing integrations</h3>
<p>It is not just new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have been added; existing ones keep getting better too. Here are some of the noteworthy improvements this release:</p>
<ul>
<li><strong><a href="/integrations/matter">Matter</a></strong> added <span class="terminology">switches<span class="terminology-tooltip">Switches are things that have two states you can select between, such as turning on or off a socket.<a class="terminology-link" href="/integrations/switch/"> [Learn more]</a></span></span> to turn the visual and audible alarms of supported leak sensors on or off, like the IKEA KLIPPBOK, and a switch for one-touch locking, so you decide whether a single touch on the keypad of your lock is enough to lock the door. <span class="terminology">Devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> that measure electrical power now also report the frequency and power factor. Thanks, <a href="https://github.com/wardmatter">@wardmatter</a>, <a href="https://github.com/mmmspatz">@mmmspatz</a>, and <a href="https://github.com/lboue">@lboue</a>!</li>
<li><strong><a href="/integrations/tuya">Tuya</a></strong> supports a lot more <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> this release: two-channel DIN rail energy meters with readings per channel, circuit breakers, EV chargers (with their charging current, charging mode, and session energy), water valves (with water usage and temperature), and the keypad tone and alarm push settings of the Duosmart C30 alarm panel. Three-phase electricity meters now also report reactive power, apparent power, and power factor for each phase. Thanks, <a href="https://github.com/keranm">@keranm</a>, <a href="https://github.com/tmunzer">@tmunzer</a>, <a href="https://github.com/o-borovets">@o-borovets</a>, <a href="https://github.com/syl-craft">@syl-craft</a>, <a href="https://github.com/ChayoteJarocho">@ChayoteJarocho</a>, <a href="https://github.com/huangrenwei79">@huangrenwei79</a>, and <a href="https://github.com/epenet">@epenet</a>!</li>
<li><strong><a href="/integrations/ipp">Internet Printing Protocol (IPP)</a></strong> added page counters, so you can keep track of how many pages, impressions, and sheets your printer has gone through, split into color and black and white on printers that report it. Thanks, <a href="https://github.com/brianegge">@brianegge</a>!</li>
<li><strong><a href="/integrations/esphome">ESPHome</a></strong> <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> can now open the connection to Home Assistant themselves, so they work even when Home Assistant can’t reach them directly. Turn on the <code>outgoing_connection</code> option on your ESPHome device, and Home Assistant takes it from there, with the same encryption as always. Thanks, <a href="https://github.com/bdraco">@bdraco</a>!</li>
<li><strong><a href="/integrations/homekit">HomeKit Bridge</a></strong> can now show your valve <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> in the Home app as a faucet, shower head, or sprinkler. How long a valve runs can now also come from any number entity, not just a number <span class="terminology">helper<span class="terminology-tooltip">A helper is a virtual entity you create inside Home Assistant. It is not backed by a physical device. Helpers store values, track state, or do calculations that your automations and dashboards need.<a class="terminology-link" href="/docs/configuration/helpers/"> [Learn more]</a></span></span>. Thanks, <a href="https://github.com/louwii17">@louwii17</a>!</li>
<li><strong><a href="/integrations/hue">Philips Hue</a></strong> added a switch to turn each MotionAware zone on or off, just like you can in the Hue app. Rooms and zones also gained a <span class="terminology">scene<span class="terminology-tooltip">Scenes capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.<a class="terminology-link" href="/integrations/scene/"> [Learn more]</a></span></span> select, showing which scene (or smart scene) is currently active, and letting you pick another one. Thanks, <a href="https://github.com/marcelveldt">@marcelveldt</a> and <a href="https://github.com/sliekens">@sliekens</a>!</li>
<li><strong><a href="/integrations/reolink">Reolink</a></strong> can now control the pan and tilt lens of cameras that combine multiple lenses in one device, when connected to a Reolink <abbr title="network video recorder">NVR</abbr> or Home Hub. Thanks, <a href="https://github.com/starkillerOG">@starkillerOG</a>!</li>
<li><strong><a href="/integrations/music_assistant">Music Assistant</a></strong> announcements can now speak a message, not only play an audio file. The announcement action takes a message and a <span class="terminology">“text-to-speech”<span class="terminology-tooltip">TTS (text-to-speech) allows Home Assistant to talk to you.<a class="terminology-link" href="/integrations/tts/"> [Learn more]</a></span></span> entity to speak it, while keeping the pre-announcement chime and announcement volume that <code>tts.speak</code> doesn’t offer. The AI search tool can now also search inside artists, albums, and playlists. Thanks, <a href="https://github.com/marcelveldt">@marcelveldt</a> and <a href="https://github.com/balloob">@balloob</a>!</li>
<li><strong><a href="/integrations/roborock">Roborock</a></strong> wet and dry vacuums now update in real time, so docking or starting a cleaning shows up in Home Assistant right away. The Roborock Q10 can now also clean specific zones, drive to a spot you pick, and report where it is. Thanks, <a href="https://github.com/piitaya">@piitaya</a> and <a href="https://github.com/hmmbob">@hmmbob</a>!</li>
<li><strong><a href="/integrations/zwave_js">Z-Wave</a></strong> added three new <span class="terminology">conditions<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span> to the automation editor, with proper fields to fill in: check a device’s node status, the value of a configuration parameter, or any other Z-Wave value. Z-Wave <span class="terminology">triggers<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> got the same treatment. Thanks, <a href="https://github.com/raman325">@raman325</a>!</li>
<li><strong><a href="/integrations/unifi">UniFi Network</a></strong> now reports the battery level and runtime of your UniFi UPS, along with its output power, current, voltage, and power factor. Thanks, <a href="https://github.com/jimstrang">@jimstrang</a>!</li>
<li><strong><a href="/integrations/broadlink">Broadlink</a></strong> now supports the RM5 Plus, which used to fail with a “device not supported” error. Thanks, <a href="https://github.com/DAB-LABS">@DAB-LABS</a>!</li>
<li><strong><a href="/integrations/unifiprotect">UniFi Protect</a></strong> now supports the key fob, with an <span class="terminology">event entity<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> that fires on every button press, and shows each relay input as its own <span class="terminology">binary sensor<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span>. The API key only mode now also handles motion and smart detections, smart sensors, sirens, relays, and several camera and floodlight settings. Thanks, <a href="https://github.com/sbesh91">@sbesh91</a>, <a href="https://github.com/igoraugustynski">@igoraugustynski</a>, and <a href="https://github.com/RaHehl">@RaHehl</a>!</li>
<li><strong><a href="/integrations/openai_conversation">OpenAI</a></strong> added support for the GPT-6 Astra and GPT-Image-2.5 models. GPT-Image-2.5 Flare is now the default for generating images with <a href="/integrations/ai_task/">AI Task</a>. Thanks, <a href="https://github.com/Shulyaka">@Shulyaka</a>!</li>
<li><strong><a href="/integrations/switchbot">SwitchBot Bluetooth</a></strong> added support for the Lock Ultra Max, the Universal Remote, and the RGBICWW Light Bars, and lets you set how fast your SwitchBot curtains move. Thanks, <a href="https://github.com/Onero-testdev">@Onero-testdev</a> and <a href="https://github.com/joostlek">@joostlek</a>!</li>
<li><strong><a href="/integrations/switchbot_cloud">SwitchBot Cloud</a></strong> added support for the Lock Ultra Max. Thanks, <a href="https://github.com/XiaoLing-git">@XiaoLing-git</a>!</li>
<li><strong><a href="/integrations/lifx">LIFX</a></strong> now supports LIFX lights that connect over <span class="terminology">Thread<span class="terminology-tooltip">Thread is a low-power mesh networking standard that is specifically designed for smart home applications. It is a protocol that defines how devices communicate.<a class="terminology-link" href="/integrations/thread/"> [Learn more]</a></span></span>, and the signal strength sensor works for those lights too. Thanks, <a href="https://github.com/Djelibeybi">@Djelibeybi</a>!</li>
<li><strong><a href="/integrations/proxmoxve">Proxmox VE</a></strong> added <span class="terminology">“update entities”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> for your Proxmox nodes, showing when updates are available and how many Proxmox and other packages are waiting. Installing them from Home Assistant is not possible yet. Thanks, <a href="https://github.com/CoMPaTech">@CoMPaTech</a>!</li>
<li><strong><a href="/integrations/linkplay">LinkPlay</a></strong> speakers that follow another speaker in a multiroom group now show the title, artist, album, and album art of what’s playing. Each speaker keeps its own volume. Thanks, <a href="https://github.com/MagicMicky">@MagicMicky</a>!</li>
<li><strong><a href="/integrations/icloud">Apple iCloud</a></strong> brings your iCloud calendars and Reminders into Home Assistant. Each calendar shows up as a <span class="terminology">calendar entity<span class="terminology-tooltip">A calendar entity represents a schedule of events coming from a local or external calendar source. It can be used to trigger automations based on the start or end of an event, react to offsets (like 15 minutes before), or retrieve event details through services.<a class="terminology-link" href="/integrations/calendar"> [Learn more]</a></span></span>, and each Reminders list as a to-do list, where you can add, complete, and remove items that sync right back to your Apple devices. Thanks, <a href="https://github.com/FezVrasta">@FezVrasta</a>!</li>
<li><strong><a href="/integrations/hikvision">Hikvision</a></strong> added <span class="terminology">“event entities”<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> that tell you what triggered a smart event: a human, a vehicle, or a pet. Great for getting notified about people at your gate, while ignoring passing traffic. Thanks, <a href="https://github.com/ptarjan">@ptarjan</a>!</li>
<li><strong><a href="/integrations/opower">Opower</a></strong> now uses the import and export readings from your meter itself for your grid statistics. Before, grid import was worked out from your net usage, which undercounted it for homes with solar panels, and could even show no import at all on a sunny day. Thanks, <a href="https://github.com/tronikos">@tronikos</a>!</li>
<li><strong><a href="/integrations/tplink_omada">TP-Link Omada</a></strong> now shows your Omada controller as a <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, with its status and an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> for its firmware. Thanks, <a href="https://github.com/rubempoli">@rubempoli</a>!</li>
<li><strong><a href="/integrations/energyzero">EnergyZero</a></strong> can now use quarter-hourly electricity prices, and added all-in electricity prices next to the market prices. Thanks, <a href="https://github.com/klaasnicolaas">@klaasnicolaas</a>!</li>
<li><strong><a href="/integrations/bosch_shc">Bosch SHC</a></strong> grew a lot this release. Micromodule shutters, awnings, and blinds now show up as <span class="terminology">covers<span class="terminology-tooltip">Covers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position.<a class="terminology-link" href="/integrations/cover"> [Learn more]</a></span></span>, and there are new switches for child locks, the alarm bypass of door and window contacts, the silent mode of thermostats, the intrusion alarm of the Smoke Detector II, and the settings of the Motion Detector 2, Door/Window Contact II Plus, Micromodule Relay, and Camera Eyes. A new sensor counts the open doors and windows in your home, thermostats show their valve position, and motion detectors now fire an event for every motion. Thanks, <a href="https://github.com/mosandlt">@mosandlt</a>!</li>
<li><strong><a href="/integrations/midea">Midea</a></strong> added water heaters, a lock switch, a pump switch for dehumidifiers, a sensor for when the water pump of an air conditioner is running, and salt, AI mode, time remaining, and door warning entities for the appliances that support them. Thanks, <a href="https://github.com/chemelli74">@chemelli74</a>, <a href="https://github.com/rokam">@rokam</a>, <a href="https://github.com/mattrossman">@mattrossman</a>, and <a href="https://github.com/peterdey">@peterdey</a>!</li>
<li><strong><a href="/integrations/teslemetry">Teslemetry</a></strong> can now control things locally: your Powerwall over your own network, and your vehicle over Bluetooth. Commands try the local route first and fall back to the cloud, so they are faster, and vehicle commands even work when the car has no connection. Thanks, <a href="https://github.com/Bre77">@Bre77</a>!</li>
<li><strong><a href="/integrations/peblar">Peblar</a></strong> chargers can now install firmware updates from Home Assistant, and you can manage the RFID cards and the autocharge vehicles allowed to charge, and authorize a charge session, all from <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>. Chargers with a buzzer or status light also get selects for the buzzer volume and LED brightness. Thanks, <a href="https://github.com/syphernl">@syphernl</a> and <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong><a href="/integrations/melcloud_home">MELCloud Home</a></strong> added the outdoor temperature and a switch to put your unit in standby. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/isy994">Universal Devices ISY/IoX</a></strong> added <span class="terminology">“event entities”<span class="terminology-tooltip">An event entity represents a momentary occurrence without a lasting state, for example, when you press a doorbell or a button on a remote control. Instead of a state such as on or off, the event entity keeps track of when the last event was detected and its event type, such as a single press or a long press.<a class="terminology-link" href="/integrations/event/"> [Learn more]</a></span></span> for Insteon buttons and keypads, so you can automate on a press, a double press, or a long press. Thanks, <a href="https://github.com/shbatm">@shbatm</a>!</li>
<li><strong><a href="/integrations/lg_infrared">LG Infrared</a></strong> air conditioners gained swing modes, switches for the ion generator and auto clean, a select for the energy limit, and buttons for features like Jet mode and Eco mode. Thanks, <a href="https://github.com/Dr-Blank">@Dr-Blank</a>!</li>
<li><strong><a href="/integrations/samsung_infrared">Samsung Infrared</a></strong> now supports air conditioners. Thanks, <a href="https://github.com/elax46">@elax46</a>!</li>
<li><strong><a href="/integrations/weheat">Weheat</a></strong> added the air outlet temperature, domestic hot water target and control method, the electricity used by the indoor unit, and what your heat pump is doing while it cools. Thanks, <a href="https://github.com/barryvdh">@barryvdh</a>!</li>
<li><strong><a href="/integrations/led_infrared">LED Infrared</a></strong> added support for generic 10-key LED candle remotes. Thanks, <a href="https://github.com/tr4nt0r">@tr4nt0r</a>!</li>
<li><strong><a href="/integrations/collection_image">Collection image</a></strong> gained <span class="terminology">actions<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span> to jump to the first, last, next, or previous image in the folder, alongside picking a random one. Thanks, <a href="https://github.com/karwosts">@karwosts</a>!</li>
<li><strong><a href="/integrations/homevolt">Homevolt</a></strong> added a select to change the battery mode, and controls for the power setpoint and grid import and export limits. Thanks, <a href="https://github.com/Danielhiversen">@Danielhiversen</a>!</li>
</ul>
<h3>Integration quality scale achievements</h3>
<p>One thing we are incredibly proud of in Home Assistant is our <a href="/docs/quality_scale/">integration quality scale</a>. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.</p>
<p>This release, we celebrate several <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have improved their quality scale:</p>
<ul>
<li>
<p><strong>11 integrations reached platinum</strong> 🏆</p>
<ul>
<li><a href="/integrations/besen">Besen</a>, thanks to <a href="https://github.com/moryoav">@moryoav</a></li>
<li><a href="/integrations/dropbox">Dropbox</a>, thanks to <a href="https://github.com/bdr99">@bdr99</a></li>
<li><a href="/integrations/easyenergy">easyEnergy</a>, thanks to <a href="https://github.com/klaasnicolaas">@klaasnicolaas</a></li>
<li><a href="/integrations/google_assistant_sdk">Google Assistant SDK</a>, thanks to <a href="https://github.com/tronikos">@tronikos</a></li>
<li><a href="/integrations/lyngdorf">Lyngdorf</a>, thanks to <a href="https://github.com/fishloa">@fishloa</a></li>
<li><a href="/integrations/monzo">Monzo</a>, thanks to <a href="https://github.com/JakeMartin-ICL">@JakeMartin-ICL</a></li>
<li><a href="/integrations/neopool">NeoPool</a>, thanks to <a href="https://github.com/svasek">@svasek</a></li>
<li><a href="/integrations/openevse">OpenEVSE</a>, thanks to <a href="https://github.com/c00w">@c00w</a></li>
<li><a href="/integrations/sofar">Sofar</a>, thanks to <a href="https://github.com/darkrain-nl">@darkrain-nl</a></li>
<li><a href="/integrations/technove">TechnoVE</a>, thanks to <a href="https://github.com/Moustachauve">@Moustachauve</a></li>
<li><a href="/integrations/vizio">VIZIO SmartCast</a>, thanks to <a href="https://github.com/raman325">@raman325</a></li>
</ul>
</li>
<li>
<p><strong>4 integrations reached gold</strong> 🥇</p>
<ul>
<li><a href="/integrations/midea">Midea</a>, thanks to <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><a href="/integrations/mikrotik">MikroTik</a>, thanks to <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><a href="/integrations/proxmoxve">Proxmox VE</a>, thanks to <a href="https://github.com/erwindouna">@erwindouna</a></li>
<li><a href="/integrations/wattwaechter">WattWächter Plus</a>, thanks to <a href="https://github.com/smartcircuits">@smartcircuits</a></li>
</ul>
</li>
<li>
<p><strong>6 integrations reached silver</strong> 🥈</p>
<ul>
<li><a href="/integrations/airly">Airly</a>, thanks to <a href="https://github.com/bieniu">@bieniu</a></li>
<li><a href="/integrations/collection_image">Collection image</a>, thanks to <a href="https://github.com/karwosts">@karwosts</a></li>
<li><a href="/integrations/imou">Imou</a>, thanks to <a href="https://github.com/Imou-OpenPlatform">@Imou-OpenPlatform</a></li>
<li><a href="/integrations/librenms">LibreNMS</a>, thanks to <a href="https://github.com/mib1185">@mib1185</a></li>
<li><a href="/integrations/melcloud_home">MELCloud Home</a>, thanks to <a href="https://github.com/erwindouna">@erwindouna</a></li>
<li><a href="/integrations/solarman">Solarman</a>, thanks to <a href="https://github.com/Yves-Xu">@Yves-Xu</a></li>
</ul>
</li>
<li>
<p><strong>4 integrations reached bronze</strong> 🥉</p>
<ul>
<li><a href="/integrations/dnsip">DNS IP</a>, thanks to <a href="https://github.com/gjohansson-ST">@gjohansson-ST</a></li>
<li><a href="/integrations/metoffice">Met Office</a>, thanks to <a href="https://github.com/TCWORLD">@TCWORLD</a></li>
<li><a href="/integrations/subaru">Subaru</a>, thanks to <a href="https://github.com/jpettitt">@jpettitt</a></li>
<li><a href="/integrations/wolflink">Wolf SmartSet Service</a>, thanks to <a href="https://github.com/EnjoyingM">@EnjoyingM</a></li>
</ul>
</li>
</ul>
<p>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.</p>
<p>A big thank you to all the contributors involved! 👏</p>
<h3>Now available to set up from the UI</h3>
<p>While most <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> 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.</p>
<p>The following integrations are now available via the Home Assistant UI:</p>
<ul>
<li><strong><a href="/integrations/discogs">Discogs</a></strong>, done by <a href="https://github.com/zackwag">@zackwag</a></li>
<li><strong><a href="/integrations/rejseplanen">Rejseplanen</a></strong>, done by <a href="https://github.com/Jawar19">@Jawar19</a></li>
<li><strong><a href="/integrations/volkszaehler">Volkszaehler</a></strong>, done by <a href="https://github.com/StefanSchoof">@StefanSchoof</a></li>
</ul>
<h3>Farewell to the following</h3>
<p>Time for a little cleaning, and no, we did not wait for spring! The following <span class="terminology">“integrations”<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> are no longer available as of this release:</p>
<ul>
<li><strong>Dublin Bus</strong> has been removed. It relied on the Real-Time Passenger Information API, which the National Transport Authority shut down in September 2020, so it has not worked since. For scheduled departures, the <a href="/integrations/gtfs/">GTFS</a> integration can use the timetable data published by Transport for Ireland.</li>
<li><strong>Etherscan</strong> has been removed. It relied on version 1 of the Etherscan API, which has been shut down, so its sensors only showed <code>False</code> instead of a balance. To keep tracking a wallet balance, you can use the <a href="/integrations/sensor.rest/">RESTful sensor</a> with the Etherscan V2 API and your own free API key.</li>
<li><strong>Melnor RainCloud</strong> has been removed. Melnor discontinued the original RainCloud WiFi Timer in April 2026, and its cloud service no longer responds.</li>
<li><strong>Orange and Rockland Utility (ORU)</strong> has been removed. The endpoint it relied on stopped returning meter data years ago. Orange and Rockland customers can use the <a href="/integrations/opower/">Opower</a> integration instead.</li>
<li><strong>Sigfox</strong> has been removed. It relied on version 1 of the Sigfox backend API, which Sigfox retired.</li>
<li><strong>SolarEdge Local</strong> has been removed. It relied on a local web API that SolarEdge disabled in inverter firmware updates starting in 2020. Use the <a href="/integrations/solaredge/">SolarEdge</a> integration, or the new <a href="/integrations/solaredge_modbus/">SolarEdge Modbus</a> integration if you want to keep things local.</li>
<li><strong>Travis-CI</strong> has been removed. It relied on the travis-ci.org API, which Travis CI shut down in June 2021.</li>
<li><strong>Zestimate</strong> has been removed. Zillow retired the API it relied on, and its replacement is aimed at commercial use, so the integration could not simply be updated.</li>
</ul>
<p>If you still have any of these in your <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> configuration, you can remove them.</p>
<h2>Other noteworthy changes</h2>
<p>There is even more packed into this release. Here are some of the other changes worth a mention:</p>
<ul>
<li>The <strong><a href="/dashboards/dashboards/#home-dashboard">Home dashboard</a></strong> now shows active alerts too. The alerts you set up for the <a href="/dashboards/dashboards/#security-dashboard">Security dashboard</a> <a href="/blog/2026/09/02/release-20269/#active-alerts-and-favorites-for-the-security-dashboard">last release</a>, like a door left open or a smoke detector going off, now also show up right on your Home dashboard, so you don’t miss them. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li><strong><a href="/dashboards/tile/">Tile cards</a></strong> gained a slider feature for <a href="/integrations/input_select/">input selects</a> and <a href="/integrations/select/">select</a> entities, so you can slide between options, in the same style as the toggle for input booleans. This was <a href="https://github.com/Jump-333">@Jump-333</a>’s very first contribution to Home Assistant. Thanks, and welcome!</li>
<li>The <strong><a href="/docs/energy/">Energy dashboard</a></strong> now shows the discharge of each battery separately in the energy usage graph, just like it already did for charging. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</li>
<li><strong><a href="/dashboards/calendar/">Calendar cards</a></strong> can show a button to add an event again, so you can put something on the calendar right from your dashboard, and you pick where the button sits. Thanks, <a href="https://github.com/Phil0L">@Phil0L</a>!</li>
<li><strong><a href="/integrations/lawn_mower">Lawn mower</a></strong> entities gained a stop action and an idle state, so you can cancel a mower’s current task instead of only pausing it or sending it home. The automation editor has a matching trigger and condition, too. MQTT lawn mowers support it as well, and <a href="/integrations/husqvarna_automower/">Husqvarna Automower</a> and <a href="/integrations/husqvarna_automower_ble/">Husqvarna Automower BLE</a> mowers already report when they are idle. Thanks, <a href="https://github.com/piitaya">@piitaya</a>, <a href="https://github.com/Thomas55555">@Thomas55555</a>, and <a href="https://github.com/alistair23">@alistair23</a>!</li>
<li><strong><a href="/integrations/binary_sensor">Binary sensor</a></strong> has a new glass break device class. Glass break sensors are treated as security sensors, so they show up on the Security dashboard and in your home security summary. <a href="/integrations/homematicip_cloud/">HomematicIP Cloud</a>, <a href="/integrations/simplisafe/">SimpliSafe</a>, <a href="/integrations/zwave_js/">Z-Wave</a>, and <a href="/integrations/hive/">Hive</a> already use it. Thanks, <a href="https://github.com/catellie">@catellie</a>!</li>
<li><strong><a href="/integrations/template">Template</a></strong> got two nice additions this release. Thanks, <a href="https://github.com/Petro31">@Petro31</a>!
<ul>
<li>Template entities can now be climate entities, so you can build your own thermostat from other entities. Think of a heat pump or air conditioner that an integration only exposes as a loose collection of switches, sensors, and numbers. Create one as a <span class="terminology">helper<span class="terminology-tooltip">A helper is a virtual entity you create inside Home Assistant. It is not backed by a physical device. Helpers store values, track state, or do calculations that your automations and dashboards need.<a class="terminology-link" href="/docs/configuration/helpers/"> [Learn more]</a></span></span> from the UI, pick <span class="terminology">templates<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> for the current temperature, target temperature, and HVAC mode, and choose the actions that run when you change them. In <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>, you can take it further with fan, preset, and swing modes, and humidity. The <a href="/integrations/template/#climate">template climate documentation</a> has all the details.</li>
<li>Binary sensor template helpers now let you set a delay before they turn on or off, right from the UI. Until now, that was only possible in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>.</li>
</ul>
</li>
<li><strong>Templates</strong> gained a <a href="/template-functions/timedelta_string/"><code>timedelta_string</code></a> function, which turns a duration into readable text like “1 hour 30 minutes”, the same way <a href="/template-functions/time_since/"><code>time_since</code></a> and <a href="/template-functions/time_until/"><code>time_until</code></a> do. Thanks, <a href="https://github.com/cnotin">@cnotin</a>!</li>
<li><strong><a href="/docs/automation/troubleshooting/#traces">Automation traces</a></strong> got a fresh look that matches the automation editor, with the real icon for each <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span>, <span class="terminology">condition<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>, and <span class="terminology">action<span class="terminology-tooltip">An action makes Home Assistant do something, for example, turn on a light, send a notification, or activate a scene. Automations and scripts run a list of actions.<a class="terminology-link" href="/docs/automation/action/"> [Learn more]</a></span></span>, and a clear view of branches that didn’t finish. Drag the divider to give the graph or the details more room, the step buttons now float on top of the graph, and screen readers describe each step. Thanks, <a href="https://github.com/jpbede">@jpbede</a>!</li>
<li>The <strong><a href="/integrations/zwave_js">Z-Wave</a></strong> network map can now show the real mesh. Turn on the new neighbors toggle, and it draws the connections between your devices, not just the routes they use. It’s off by default, because large networks get busy fast. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</li>
<li><strong><a href="/integrations/calendar">Calendar</a></strong> events from <a href="/integrations/caldav/">CalDAV</a>, <a href="/integrations/local_calendar/">Local calendar</a>, and <a href="/integrations/google/">Google Calendar</a> now include whether they are confirmed or tentative, so your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> can tell the difference. <a href="/integrations/remote_calendar/">Remote calendar</a> now also leaves out canceled events. Thanks, <a href="https://github.com/1358">@1358</a>!</li>
<li><strong><a href="/integrations/climate">Climate</a></strong> fan modes can now be set by voice, through a conversation agent, like “set the fan mode to auto”. Thanks, <a href="https://github.com/synesthesiam">@synesthesiam</a>!</li>
<li><strong>Units</strong> keep growing: atmospheres (atm) for pressure, and therms (thm) for energy, the unit many US utilities bill natural gas in. Weather entities can now also report pressure in kilopascals (kPa), which most weather services in Canada use. Thanks, <a href="https://github.com/Bre77">@Bre77</a>, <a href="https://github.com/virtitnerd">@virtitnerd</a>, and <a href="https://github.com/RussellAult">@RussellAult</a>!</li>
<li><strong>Password managers</strong>, including the one built into Firefox, can fill in your details on the Home Assistant login page again. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</li>
<li>On <strong>phones</strong> with a notch or rounded corners, tables, filter bars, settings cards, headers, and pop-up messages now reach the edges of the screen, while everything you read or tap stays clear of the cutout. Thanks, <a href="https://github.com/bgoncal">@bgoncal</a>!</li>
<li><strong>Tables</strong>, like the ones listing your <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> and <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>, now show placeholder rows while they load. And if something fails to load, you now see an error, instead of an empty list that looks like you have nothing set up. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li><strong>YAML configuration errors</strong> now suggest what you probably meant. Mistype <code>command_topci</code>, and the error asks: did you mean <code>command_topic</code>? Error messages also show the path to the file relative to your configuration folder, so they are easier to read. Thanks, <a href="https://github.com/frenck">@frenck</a> and <a href="https://github.com/emontnemery">@emontnemery</a>!</li>
</ul>
<h3>Show a card only when it matters</h3>
<p>Dashboards can <a href="/dashboards/cards/#showing-or-hiding-a-card-or-badge-conditionally">show or hide a card, badge, or section</a> based on <span class="terminology">conditions<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span>: only on a phone, only for a certain user, only when the washing machine is running. Those conditions were always a smaller set than the ones you know from automations.</p>
<p>This release, the <strong>Visibility</strong> tab offers the same conditions as the automation editor, including <strong>Template</strong>, <strong>Sun</strong>, <strong>Zone</strong>, and <strong>Device</strong>, and the conditions integrations bring along. They sit right next to the ones that only make sense on a dashboard, like <strong>Screen</strong> and <strong>User</strong>, and you can mix them freely. Show the garden lights card only after sunset, and only on a phone. Each row now also describes what it checks, just like in the automation editor, and you can drag the rows into a different order. Your existing visibility conditions keep working as they are.</p>
<p>And no more guessing why a card is hiding. The top of the <strong>Visibility</strong> tab tells you whether the card is visible right now, and each condition shows whether it currently passes. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a> and <a href="https://github.com/timmo001">@timmo001</a>!</p>
<img alt="Screenshot of the Visibility tab of a tile card, showing that the card is currently visible because all conditions are met, with a check mark on each condition: a template, a zone, a device, and the sun." class="no-shadow" src="/images/blog/2026-10/visibility-conditions.png"/>
<h3>A panel for your Modbus connections</h3>
<p>Last release, we started <a href="/blog/2026/09/02/release-20269/#modernizing-modbus">modernizing Modbus</a>: integrations that already know how your device talks Modbus, so you pick your device in the UI instead of writing register maps by hand. Those integrations share a single connection to each device, which is great for devices that only accept a few connections at once. It also meant there was no single place to see which integrations were talking to what.</p>
<p>The new <strong>Modbus</strong> panel under <strong>Settings</strong> &gt; <strong>Connectivity</strong> fixes that. It lists every Modbus connection Home Assistant has, serial ports and network gateways alike, along with the <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> on it and the integrations using them. Connections set up in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span> show up here too. A connection that’s closed isn’t a problem, by the way. It opens again the next time an integration needs it. The <strong>Serial</strong> panel links straight to it for ports that carry Modbus. Thanks, <a href="https://github.com/balloob">@balloob</a>!</p>
<img alt="Screenshot of the Modbus panel, listing a serial port shared by a Flexit and a SolarEdge device, and a network connection to a Fronius inverter." class="no-shadow" src="/images/blog/2026-10/modbus-panel.png"/>
<p>The list of integrations built this way keeps growing. This release adds two new ones: <strong><a href="/integrations/solaredge_modbus">SolarEdge Modbus</a></strong>, launching straight at platinum, and <strong><a href="/integrations/kaco_modbus">KACO Modbus</a></strong>, thanks to <a href="https://github.com/g4bri3lDev">@g4bri3lDev</a>. <strong><a href="/integrations/stiebel_eltron/">STIEBEL ELTRON</a></strong> now shares its connection through the <a href="/integrations/modbus/">Modbus integration</a> as well, and <strong><a href="/integrations/sofar">Sofar</a></strong> climbed all the way to platinum, thanks to <a href="https://github.com/darkrain-nl">@darkrain-nl</a>.</p>
<h3>Connect your AI in one click</h3>
<p>Home Assistant can act as a <a href="/integrations/mcp_server/">Model Context Protocol</a> server, which lets AI apps like Claude, ChatGPT, or Cursor talk to your home. Getting there was a bit of a hunt, though: add the <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, pick which parts of Home Assistant to expose, and then figure out which URL to hand to your AI app.</p>
<p>The <strong>AI tasks</strong> page under <strong>Settings</strong> &gt; <strong>System</strong> is now called <strong>AI</strong>, and it gained a <strong>Model Context Protocol</strong> card. Turn the server on in a single click, and the card lists the URLs to paste into your AI app, each with a button to copy it. New setups expose everything Home Assistant has to offer, including anything added later, and only allow administrator accounts to connect. You can change both whenever you like, without removing and re-adding the integration.</p>
<img alt="Screenshot of the AI settings page with the new Model Context Protocol card, listing the URLs to add to your AI agent, each with a button to copy it." class="no-shadow" src="/images/blog/2026-10/ai-settings-mcp.png"/>
<p>It also works the other way around. Apps that run their own <abbr title="Model Context Protocol">MCP</abbr> server are now discovered automatically by the <a href="/integrations/mcp/">Model Context Protocol</a> integration, so connecting Home Assistant to them only takes a confirmation.</p>
<p>And your AI got a lot better at finding music. Ask it to play something, and instead of blindly playing the first search result, it now gets a list of results and picks the best match. It can even search inside an artist, album, or playlist to find that one specific song. Search itself improved along the way: artists, albums, and playlists from <a href="https://www.music-assistant.io/">Music Assistant</a> can now be searched inside, just like results from <a href="/integrations/jellyfin/">Jellyfin</a> and <a href="/integrations/squeezebox/">Squeezebox</a>, <a href="/integrations/media_source/">local media</a> now finds matching folders too, and <a href="/integrations/radio_browser/">Radio Browser</a> puts the 100 most popular stations first.</p>
<p>Thanks, <a href="https://github.com/balloob">@balloob</a>!</p>
<p>If your home runs on <a href="/integrations/knx/">KNX</a>, your AI can now dig into that too. The KNX integration brings its own set of AI tools, which you can hand to your conversation agent, or to your AI app through the Model Context Protocol server. Ask about the group addresses, devices, and functions in your <abbr title="Engineering Tool Software">ETS</abbr> project, go through the history of telegrams on your bus, or decode a value you don’t recognize. It can even read and write values on the bus directly. Thanks, <a href="https://github.com/martinhoefling">@martinhoefling</a>!</p>
<h3>Name an entity after its device</h3>
<p>Some <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> are the whole point of their <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>. Calling the smoke sensor of a smoke detector “Smoke detector Smoke detected” doesn’t help anyone. Integrations already give their main entity the name of the device, but if you wanted to do the same for another entity, there was no clean way to do it. If you cleared its name, it jumped right back to the name the integration gave it.</p>
<p>The entity settings now have a <strong>Use device name</strong> switch. Turn it on, and the entity goes by the name of its device. The switch also shows you what that device name is, with a link to rename the device if you’d like. Turn it off, and you’re back to the entity’s own name, filled in with the default from the integration. If you change your mind, a restore button takes you back to the default. Thanks, <a href="https://github.com/piitaya">@piitaya</a> and <a href="https://github.com/matthiasdebaat">@matthiasdebaat</a>!</p>
<img alt="Screenshot of the entity settings for a smoke detector, with the Use device name switch turned on and the name field hidden." class="no-shadow" src="/images/blog/2026-10/entity-use-device-name.png"/>
<h3>Timers, one tap away</h3>
<p><a href="/integrations/timer/">Timer</a> <span class="terminology">helpers<span class="terminology-tooltip">A helper is a virtual entity you create inside Home Assistant. It is not backed by a physical device. Helpers store values, track state, or do calculations that your automations and dashboards need.<a class="terminology-link" href="/docs/configuration/helpers/"> [Learn more]</a></span></span> are now a lot easier to control from your dashboard. <a href="/dashboards/tile/">Tile cards</a> have two new features for them: <strong><a href="/dashboards/features/#timer-actions">Timer actions</a></strong> adds buttons to start, pause, and cancel a timer (and optionally finish it), and <strong><a href="/dashboards/features/#timer-presets">Timer presets</a></strong> starts a timer with a preset duration in a single tap. Presets show up as a row of buttons, or as a dropdown, handy for a longer list. You manage the presets from the timer itself: open its more info dialog and select <strong>Edit presets</strong> from the menu.</p>
<p>That more info dialog got a fresh look too, and when a timer finishes, you’ll see a small animation. Thanks, <a href="https://github.com/maartenla">@maartenla</a>!</p>
<img alt="Screenshot of two tile cards for a timer, one with the timer actions buttons to start, pause, and cancel it, and one with a row of preset buttons for 2, 5, and 10 minutes." class="no-shadow" src="/images/blog/2026-10/timer-tile-features.png"/>
<h2>Patch releases</h2>
<p>We will also release patch releases for Home Assistant 2026.10 in October.
These patch releases only contain bug fixes. Our goal is to release a patch
release once a week, aiming for Friday.</p>
<h3>2026.10.1 - October 10</h3>
<ul>
<li>Split Matter TemperatureOffset range by Thermostat ClusterRevision (<a href="https://github.com/lboue">@lboue</a> - <a href="https://github.com/home-assistant/core/pull/180517">#180517</a>)</li>
<li>Bump pywaze to 1.2.4 (<a href="https://github.com/eifinger">@eifinger</a> - <a href="https://github.com/home-assistant/core/pull/184663">#184663</a>)</li>
<li>Bump pyicloud to 2.7.0 (<a href="https://github.com/FezVrasta">@FezVrasta</a> - <a href="https://github.com/home-assistant/core/pull/184728">#184728</a>)</li>
<li>Retry failed Analytics insights refresh (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/184731">#184731</a>)</li>
<li>Fix WLED color modes not following a changed LED setup (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/184778">#184778</a>)</li>
<li>Bump dwdwfsapi to 1.1.0 (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/184784">#184784</a>)</li>
<li>Add description for the device selection field in the Qingping config… (<a href="https://github.com/tengfeili-qingping">@tengfeili-qingping</a> - <a href="https://github.com/home-assistant/core/pull/184797">#184797</a>)</li>
<li>Send a result for the ZHA reconfigure websocket subscription (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/184812">#184812</a>)</li>
<li>Bump solaredge-web to 0.5.0 (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/184821">#184821</a>)</li>
<li>Keep a missing meter history from blocking Peblar setup (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/184824">#184824</a>)</li>
<li>Fix <code>KeyError</code> in the Airly integration when the API payload contain no sensor data (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/184828">#184828</a>)</li>
<li>Restore unverified TLS for stream sources and add a verify_ssl option (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/184877">#184877</a>)</li>
<li>Fix FRITZ!SmartHome SSDP discovery with hostname presentation URL (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/184896">#184896</a>)</li>
<li>Only create Bosch SHC child lock switch when ChildProtection exists (<a href="https://github.com/mosandlt">@mosandlt</a> - <a href="https://github.com/home-assistant/core/pull/184908">#184908</a>)</li>
<li>Skip TLS verification for UniFi Protect RTSPS streams (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/184930">#184930</a>)</li>
<li>Return same images as you see on the immich server, even the edited ones (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/184955">#184955</a>)</li>
<li>Don’t report 0 for missing FRITZ!SmartHome powermeter values (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/184968">#184968</a>)</li>
<li>Reload Immich integration when the server version changes (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/184978">#184978</a>)</li>
<li>Set state to unknown in Husqvarna Automower error sensor, when error is unknown (<a href="https://github.com/Thomas55555">@Thomas55555</a> - <a href="https://github.com/home-assistant/core/pull/185087">#185087</a>)</li>
<li>Seed deCONZ group color modes from unreachable lights too (<a href="https://github.com/marcus13371337">@marcus13371337</a> - <a href="https://github.com/home-assistant/core/pull/185117">#185117</a>)</li>
<li>Bump ZHA to 2.3.1 (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/185156">#185156</a>)</li>
<li>Fix storing traces for automations without an ID (<a href="https://github.com/Kevin-Tamayose">@Kevin-Tamayose</a> - <a href="https://github.com/home-assistant/core/pull/185161">#185161</a>)</li>
<li>Tag TTS audio carrying an empty ID3 tag (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/185193">#185193</a>)</li>
<li>Fix Tradfri color bulbs losing HS color mode (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185197">#185197</a>)</li>
<li>Fix false shell template repair for static command_line commands (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185203">#185203</a>)</li>
<li>Constrain graphql-core below 3.3 (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185206">#185206</a>)</li>
<li>Do not link a trace that is not stored as a child (<a href="https://github.com/Xyolyp">@Xyolyp</a> - <a href="https://github.com/home-assistant/core/pull/185207">#185207</a>)</li>
<li>Fix Hue light crash when the bridge reports no color temperature (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185218">#185218</a>)</li>
<li>Fix generic thermostat rechecking too late after a minimum cycle or cooldown (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185221">#185221</a>)</li>
<li>Fix Signal Messenger notify failing to load when the REST API is down at startup (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185225">#185225</a>)</li>
<li>Don’t create Nibe number entities for date coils (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185229">#185229</a>)</li>
<li>Round LG Infrared target temperature instead of truncating it (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185231">#185231</a>)</li>
<li>Log in to OmniLogic again after a failed update (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185250">#185250</a>)</li>
<li>Remember silent SolarEdge Modbus blocks across setups (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/185255">#185255</a>)</li>
<li>Update frontend to 20260930.3 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/185285">#185285</a>)</li>
<li>Bump wled to 1.1.1 (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185344">#185344</a>)</li>
<li>Keep deprecated device config entry attributes working in templates (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185361">#185361</a>)</li>
<li>Bump modbus-connection to 4.12.4 (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/185419">#185419</a>)</li>
<li>Fix WLED adding Wi-Fi sensors to wired devices (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185425">#185425</a>)</li>
<li>Add new error codes to Husqvarna Automower (<a href="https://github.com/Thomas55555">@Thomas55555</a> - <a href="https://github.com/home-assistant/core/pull/185477">#185477</a>)</li>
<li>Fix Arve availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185494">#185494</a>)</li>
<li>Fix EZVIZ availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185497">#185497</a>)</li>
<li>Fix 17TRACK availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185501">#185501</a>)</li>
<li>Fix Starlink availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185502">#185502</a>)</li>
<li>Fix Subaru availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185503">#185503</a>)</li>
<li>Fix SUPLA availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185504">#185504</a>)</li>
<li>Fix TOLO availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185505">#185505</a>)</li>
<li>Fix Xbox availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185506">#185506</a>)</li>
<li>Fix Yardian availability on failed updates (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185507">#185507</a>)</li>
<li>Give SolarEdge Modbus reads a 30 s timeout (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/185518">#185518</a>)</li>
<li>Fix typo in Husqvarna Automower (<a href="https://github.com/Thomas55555">@Thomas55555</a> - <a href="https://github.com/home-assistant/core/pull/185532">#185532</a>)</li>
<li>Revert “Resolve integration brand images before brand images” (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/185535">#185535</a>)</li>
<li>Allow dynamic ports for registered loopback OAuth redirects (<a href="https://github.com/balloobbot">@balloobbot</a> - <a href="https://github.com/home-assistant/core/pull/185544">#185544</a>)</li>
<li>Fix Matter get_lock_users stopping on a null nextUserIndex (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/182808">#182808</a>)</li>
<li>Bump pyElectra to 1.2.5 in electrasmart (<a href="https://github.com/noamokman">@noamokman</a> - <a href="https://github.com/home-assistant/core/pull/184187">#184187</a>)</li>
<li>Bump python-kasa to 0.11.0.1 (<a href="https://github.com/rytilahti">@rytilahti</a> - <a href="https://github.com/home-assistant/core/pull/184235">#184235</a>)</li>
<li>Remove user-configurable polling interval from <code>omnilogic</code> (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/184380">#184380</a>)</li>
<li>Fix Spotify coordinator crash when playing without an item (<a href="https://github.com/kleinc80">@kleinc80</a> - <a href="https://github.com/home-assistant/core/pull/184723">#184723</a>)</li>
<li>Bump aioautomower to 3.1.0 (<a href="https://github.com/Thomas55555">@Thomas55555</a> - <a href="https://github.com/home-assistant/core/pull/184970">#184970</a>)</li>
<li>Don’t toggle the OpenEVSE manual override when it is already in the requested state (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185257">#185257</a>)</li>
<li>Retry ViCare setup on transient API errors (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/185534">#185534</a>)</li>
<li>Show app name in MCP discovery flow title (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/185541">#185541</a>)</li>
<li>Ensure IMAP actions always close TCP stream (<a href="https://github.com/robin-thoni">@robin-thoni</a> - <a href="https://github.com/home-assistant/core/pull/185547">#185547</a>)</li>
<li>Bump tplink-omada-client to 1.5.13 (<a href="https://github.com/rubempoli">@rubempoli</a> - <a href="https://github.com/home-assistant/core/pull/185585">#185585</a>)</li>
<li>Report an uncalibrated Shelly RPC cover by its last direction (<a href="https://github.com/thecode">@thecode</a> - <a href="https://github.com/home-assistant/core/pull/185624">#185624</a>)</li>
<li>Bump reolink_aio to 0.21.18 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/185631">#185631</a>)</li>
<li>Preserve fractional transition times for TRÅDFRI lights (<a href="https://github.com/addibbi">@addibbi</a> - <a href="https://github.com/home-assistant/core/pull/185633">#185633</a>)</li>
<li>Bump tailscale to 1.0.0 (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/185639">#185639</a>)</li>
<li>Patch the PyViCare client instead of integration setup in ViCare tests (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/184730">#184730</a>)</li>
</ul>
<h3>2026.10.2 - October 16</h3>
<ul>
<li>Fix IndexError on out-of-range heater levels in Tesla Fleet (<a href="https://github.com/sebr">@sebr</a> - <a href="https://github.com/home-assistant/core/pull/178049">#178049</a>)</li>
<li>Deduplicate sleepers within a single SleepIQ bed (<a href="https://github.com/derekcentrico">@derekcentrico</a> - <a href="https://github.com/home-assistant/core/pull/181461">#181461</a>)</li>
<li>Handle Enphase envoy Session is Closed in background tasks (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/183172">#183172</a>)</li>
<li>Treat MPD protocol errors as a connection failure (<a href="https://github.com/mattias-arrelid">@mattias-arrelid</a> - <a href="https://github.com/home-assistant/core/pull/184481">#184481</a>)</li>
<li>Bump py-opendisplay to 7.18.1 (<a href="https://github.com/g4bri3lDev">@g4bri3lDev</a> - <a href="https://github.com/home-assistant/core/pull/184911">#184911</a>)</li>
<li>Bump aiotankerkoenig to 0.5.5 (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/185714">#185714</a>)</li>
<li>Tankerkoenig handle api errors config flow (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/185719">#185719</a>)</li>
<li>Handle Gemini generation parameters and complete WAV TTS responses (<a href="https://github.com/oohhddaanngg">@oohhddaanngg</a> - <a href="https://github.com/home-assistant/core/pull/185723">#185723</a>)</li>
<li>Fix SmartTub error sensor reporting stale historical errors (<a href="https://github.com/mdz">@mdz</a> - <a href="https://github.com/home-assistant/core/pull/185726">#185726</a>)</li>
<li>Bump aiohttp to 3.14.5 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/185746">#185746</a>)</li>
<li>Mark Aquacell sensors unavailable when data is stale (<a href="https://github.com/alexborro">@alexborro</a> - <a href="https://github.com/home-assistant/core/pull/185762">#185762</a>)</li>
<li>Bump aionanoleaf2 to 1.0.5 (<a href="https://github.com/feixm1">@feixm1</a> - <a href="https://github.com/home-assistant/core/pull/185777">#185777</a>)</li>
<li>Bump my-pv to 0.0.13 (<a href="https://github.com/rrooggiieerr">@rrooggiieerr</a> - <a href="https://github.com/home-assistant/core/pull/185797">#185797</a>)</li>
<li>Catch TimeoutError in the Nettigo Air Monitor integration (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/185812">#185812</a>)</li>
<li>Ignore devices without TR-064 support during FRITZ!Box Tools SSDP discovery (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/185816">#185816</a>)</li>
<li>Bump arcam-fmj to 3.0.1 (<a href="https://github.com/elupus">@elupus</a> - <a href="https://github.com/home-assistant/core/pull/185887">#185887</a>)</li>
<li>Handle Alexa RequireRelink on cloud entity registry updates (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/185894">#185894</a>)</li>
<li>Redact schedule coordinates in Teslemetry and Tesla Fleet diagnostics (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/185905">#185905</a>)</li>
<li>Report a dedicated error when the Tedee bridge has no locks (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/185907">#185907</a>)</li>
<li>Prevent WiiM browse failures from marking devices unavailable (<a href="https://github.com/Linkplay2020">@Linkplay2020</a> - <a href="https://github.com/home-assistant/core/pull/185926">#185926</a>)</li>
<li>Fix group sensor crash when the group has no members (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/185931">#185931</a>)</li>
<li>Do not cut off KNX SQLite telegram store initialization with a timeout (<a href="https://github.com/farmio">@farmio</a> - <a href="https://github.com/home-assistant/core/pull/185940">#185940</a>)</li>
<li>Bump nyt_games to 1.0.1 (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/185968">#185968</a>)</li>
<li>Gate Nanoleaf event listener on supports_events (<a href="https://github.com/loebi-ch">@loebi-ch</a> - <a href="https://github.com/home-assistant/core/pull/185977">#185977</a>)</li>
<li>Fix MQTT device triggers and tags firing twice after reload (<a href="https://github.com/klejejs">@klejejs</a> - <a href="https://github.com/home-assistant/core/pull/185998">#185998</a>)</li>
<li>Fix FRITZ!SmartHome SSDP host selection (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/186029">#186029</a>)</li>
<li>switch Broadlink to broadlink-async (fixes #184800, replaces #184806) (<a href="https://github.com/DAB-LABS">@DAB-LABS</a> - <a href="https://github.com/home-assistant/core/pull/186053">#186053</a>)</li>
<li>Fix weatherflow last_reset updating on every device report (<a href="https://github.com/jeeftor">@jeeftor</a> - <a href="https://github.com/home-assistant/core/pull/186141">#186141</a>)</li>
<li>Bump weatherflow4py to 1.5.12 (<a href="https://github.com/jeeftor">@jeeftor</a> - <a href="https://github.com/home-assistant/core/pull/186142">#186142</a>)</li>
<li>Bump intellifire4py to 4.5.6 (<a href="https://github.com/jeeftor">@jeeftor</a> - <a href="https://github.com/home-assistant/core/pull/186143">#186143</a>)</li>
<li>Fix scrape subentry reconfigure flow not finishing (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/186144">#186144</a>)</li>
<li>pin pycares to 5.0.1 (<a href="https://github.com/aclerici38">@aclerici38</a> - <a href="https://github.com/home-assistant/core/pull/186164">#186164</a>)</li>
<li>Allow a list of states for state conditions with a duration (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/186165">#186165</a>)</li>
<li>Bump airthings-ble to 1.3.1 (<a href="https://github.com/LaStrada">@LaStrada</a> - <a href="https://github.com/home-assistant/core/pull/186387">#186387</a>)</li>
<li>Guard owner and existing credentials in auth provider create command (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/186398">#186398</a>)</li>
<li>Fetch missing Renault vehicle details (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/186402">#186402</a>)</li>
<li>Fix Discogs random record sensor when release has no format description (<a href="https://github.com/cerealkiller57540">@cerealkiller57540</a> - <a href="https://github.com/home-assistant/core/pull/186405">#186405</a>)</li>
<li>Fix permissions validation for ProxmoxVE (<a href="https://github.com/CoMPaTech">@CoMPaTech</a> - <a href="https://github.com/home-assistant/core/pull/186420">#186420</a>)</li>
<li>Hide MELCloud Home swing modes on units without vanes (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/186468">#186468</a>)</li>
<li>Fix modbus reload without YAML config (<a href="https://github.com/joyjit">@joyjit</a> - <a href="https://github.com/home-assistant/core/pull/186554">#186554</a>)</li>
<li>Revoke refresh tokens when removing a user (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/186558">#186558</a>)</li>
<li>Redact credentials and host in SFR Box diagnostics (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/186668">#186668</a>)</li>
<li>Fix SolarEdge module statistics sum resetting after a gap (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/186753">#186753</a>)</li>
<li>Bump deebot-client to 18.7.0 (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/186779">#186779</a>)</li>
<li>Redact identifying data in NRGkick diagnostics (<a href="https://github.com/andijakl">@andijakl</a> - <a href="https://github.com/home-assistant/core/pull/186781">#186781</a>)</li>
<li>Persist Ecovacs account credentials to avoid device verification (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/186796">#186796</a>)</li>
<li>Update frontend to 20260930.4 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/186813">#186813</a>)</li>
<li>Fix Fritz setup failing when UPnP info lacks NewEnable key (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/186896">#186896</a>)</li>
<li>Bump aiomelcloudhome to 0.3.0 (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/185769">#185769</a>)</li>
<li>Pin pypasser below 1.0.0 (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/186527">#186527</a>)</li>
</ul>
<h3>2026.10.3 - October 23</h3>
<ul>
<li>Fix Proxmox VE update version detection (<a href="https://github.com/ezaekiel">@ezaekiel</a> - <a href="https://github.com/home-assistant/core/pull/184823">#184823</a>)</li>
<li>Fix duplicate access events in UniFi Access integration (<a href="https://github.com/imhotep">@imhotep</a> - <a href="https://github.com/home-assistant/core/pull/185160">#185160</a>)</li>
<li>Handle missing Omada controller update fields (<a href="https://github.com/rubempoli">@rubempoli</a> - <a href="https://github.com/home-assistant/core/pull/185164">#185164</a>)</li>
<li>Bump wheels and base image to 2026.10.0 (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/185227">#185227</a>)</li>
<li>Upgrade runner to Ubuntu 26.04 (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/186424">#186424</a>)</li>
<li>Bump Python to 3.14.8 (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/186429">#186429</a>)</li>
<li>Create new SSL context instead of sharing context in SMTP integration (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/186812">#186812</a>)</li>
<li>Update uv to 0.12.24 (<a href="https://github.com/home-assistant/core/pull/186899">#186899</a>)</li>
<li>Fix missing EnergyZero gas prices before 06:00 (<a href="https://github.com/klaasnicolaas">@klaasnicolaas</a> - <a href="https://github.com/home-assistant/core/pull/186917">#186917</a>)</li>
<li>Bump opower to 0.22.3 (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/186928">#186928</a>)</li>
<li>Update uv to 0.13.0 (<a href="https://github.com/home-assistant/core/pull/186930">#186930</a>)</li>
<li>Handle errors in Synology DSM button press actions (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/186931">#186931</a>)</li>
<li>Hold off the bootstrap timeout while the KNX telegram store initializes (<a href="https://github.com/farmio">@farmio</a> - <a href="https://github.com/home-assistant/core/pull/186980">#186980</a>)</li>
<li>Constrain bitstring&lt;5 to fix edl21 (pysml incompatibility) (<a href="https://github.com/SchmidSP">@SchmidSP</a> - <a href="https://github.com/home-assistant/core/pull/186985">#186985</a>)</li>
<li>Fix Sensibo full_state action modifying the coordinator data (<a href="https://github.com/DeviousCardi">@DeviousCardi</a> - <a href="https://github.com/home-assistant/core/pull/187014">#187014</a>)</li>
<li>Correct the mix-ed up lock and device lock FRITZ!SmartHome sensors (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/187119">#187119</a>)</li>
<li>Fix Home Connect event listener stopping on token refresh errors (<a href="https://github.com/nikslim">@nikslim</a> - <a href="https://github.com/home-assistant/core/pull/187207">#187207</a>)</li>
<li>Bump blebox-uniapi to v2.5.8 (<a href="https://github.com/bkobus-bbx">@bkobus-bbx</a> - <a href="https://github.com/home-assistant/core/pull/183968">#183968</a>)</li>
<li>Bump blebox-uniapi to v2.5.9 (<a href="https://github.com/bkobus-bbx">@bkobus-bbx</a> - <a href="https://github.com/home-assistant/core/pull/187300">#187300</a>)</li>
<li>Bump aioamazondevices to 16.8.1 (<a href="https://github.com/jamesonuk">@jamesonuk</a> - <a href="https://github.com/home-assistant/core/pull/187332">#187332</a>)</li>
<li>Fix holiday category selector translations (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/187606">#187606</a>)</li>
<li>Bump pyhive-integration to 1.0.10 (<a href="https://github.com/KJonline">@KJonline</a> - <a href="https://github.com/home-assistant/core/pull/187610">#187610</a>)</li>
<li>Update uv to 0.13.4 (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/187742">#187742</a>)</li>
<li>Bump pynina to 1.0.4 (<a href="https://github.com/DeerMaximum">@DeerMaximum</a> - <a href="https://github.com/home-assistant/core/pull/187868">#187868</a>)</li>
<li>bump aioamazondevices to 16.9.1 (<a href="https://github.com/jamesonuk">@jamesonuk</a> - <a href="https://github.com/home-assistant/core/pull/187985">#187985</a>)</li>
<li>Bump victron-vrm to 0.1.14 (<a href="https://github.com/AndyTempel">@AndyTempel</a> - <a href="https://github.com/home-assistant/core/pull/188016">#188016</a>)</li>
<li>Bump base image to 2026.10.1 (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/188204">#188204</a>)</li>
<li>Update frontend to 20260930.5 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/188206">#188206</a>)</li>
<li>Update uv to 0.13.5 (<a href="https://github.com/home-assistant/core/pull/188208">#188208</a>)</li>
</ul>
<h3>2026.10.4 - October 24</h3>
<ul>
<li>Raise aiohttp client header limits to 64 KiB (<a href="https://github.com/MichaelMKKelly">@MichaelMKKelly</a> - <a href="https://github.com/home-assistant/core/pull/188329">#188329</a>)</li>
<li>Bump pylutron-caseta to 0.30.0 (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/188388">#188388</a>)</li>
</ul>
<h2>Need help? Join the community</h2>
<p>Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!</p>
<p>Our very active <a href="/join-chat">Discord chat server</a> is an excellent place to be, and don’t forget to join our amazing <a href="https://community.home-assistant.io/">forums</a>.</p>
<p>Found a bug or issue? Please report it in our <a href="https://github.com/home-assistant/core/issues">issue tracker</a> to get it fixed! Or check <a href="/help">our help page</a> for guidance on more places you can go.</p>
<p>Are you more into email? <a href="/newsletter">Sign up for the Open Home Foundation Newsletter</a> to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.</p>
<h2>Backward-incompatible changes</h2>
<p>We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.</p>
<p>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:</p>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Authentication</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_0">
<p>The deprecated legacy mode of the Home Assistant authentication provider has been removed. Usernames are now always handled in their normalized form: lowercase, and without spaces at the start or end. If Home Assistant showed you a repair about usernames that are not normalized, change those usernames to match.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175613">#175613</a>) (<a href="/docs/authentication/providers/">Authentication documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>easyEnergy</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_1">
<p>The <code>hours_priced_equal_or_lower</code> and <code>hours_priced_equal_or_higher</code> sensors are now named <strong>Periods priced equal or lower</strong> and <strong>Periods priced equal or higher</strong>, and no longer have <code>h</code> as their unit of measurement. Their values count price periods, not hours.</p>
<p>If you have <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> or dashboard cards that rely on the unit of these sensors, update them to handle a count without a unit. The values, entity IDs, and unique IDs are unchanged, so <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> that only compare the numbers need no changes.</p>
<p>(<a href="https://github.com/klaasnicolaas">@klaasnicolaas</a> - <a href="https://github.com/home-assistant/core/pull/181431">#181431</a>) (<a href="/integrations/easyenergy/">easyEnergy documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>EnergyFlip</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_2">
<p>EnergyFlip shut down the API version the integration used, so the integration has moved to the new version. The new API no longer provides the additional electricity measurements, so only the current power sensor remains for electricity.</p>
<p>(<a href="https://github.com/DieEneSchrodinger">@DieEneSchrodinger</a> - <a href="https://github.com/home-assistant/core/pull/179723">#179723</a>) (<a href="/integrations/huisbaasje/">EnergyFlip documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>EnergyZero</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_3">
<p>The <code>hours_priced_equal_or_lower</code> electricity sensor is now named <strong>Periods priced equal or lower</strong>, and no longer has <code>h</code> as its unit of measurement. Its value counts price periods, not hours.</p>
<p>If you have <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> or dashboard cards that rely on the unit of this sensor, update them to handle a count without a unit. The value, entity ID, and unique ID are unchanged, so <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> that only compare the number need no changes.</p>
<p>(<a href="https://github.com/klaasnicolaas">@klaasnicolaas</a> - <a href="https://github.com/home-assistant/core/pull/181492">#181492</a>) (<a href="/integrations/energyzero/">EnergyZero documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Google Sheets</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_4">
<p>Reading an empty worksheet now returns <code>{"range": [[]]}</code> instead of <code>{"range": []}</code>. If you have <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, or <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> that check for an empty worksheet, update them to match.</p>
<p>(<a href="https://github.com/JamieMagee">@JamieMagee</a> - <a href="https://github.com/home-assistant/core/pull/181692">#181692</a>) (<a href="/integrations/google_sheets/">Google Sheets documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Google Wifi</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_5">
<p>The uptime sensor is deprecated and will be removed in a future release. Use the new last restart sensor instead.</p>
<p>(<a href="https://github.com/EReaso">@EReaso</a> - <a href="https://github.com/home-assistant/core/pull/177525">#177525</a>) (<a href="/integrations/google_wifi/">Google Wifi documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>IoTaWatt</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_6">
<p>Reactive power sensors now use the reactive power device class, which changes their unit of measurement from <code>VAR</code> to <code>var</code>. You have these sensors if an output on your IoTaWatt is configured with the unit <code>VAR</code>.</p>
<p>If such a sensor has recorded <span class="terminology">long-term statistics<span class="terminology-tooltip">Home Assistant keeps statistics for sensors that have a state class, such as measurement, total, or total increasing. Every 5 minutes, it saves short-term statistics, which are deleted after 10 days by default. Every hour, it saves long-term statistics, which are never deleted automatically. The Energy dashboard and statistics cards use them.<a class="terminology-link" href="/docs/configuration/long-term-statistics/"> [Learn more]</a></span></span>, Home Assistant creates a repair about the changed unit after the update. Pick the offered option to update the statistics to the new unit. No data is lost. In return, these sensors are now shown as reactive power, and you can display them in <code>mvar</code>, <code>var</code>, or <code>kvar</code>.</p>
<p>(<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/180913">#180913</a>) (<a href="/integrations/iotawatt/">IoTaWatt documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Libre Hardware Monitor</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_7">
<p>Libre Hardware Monitor versions older than 0.9.5 are no longer supported. If you run an older version, update Libre Hardware Monitor to keep using the integration.</p>
<p>(<a href="https://github.com/Sab44">@Sab44</a> - <a href="https://github.com/home-assistant/core/pull/181928">#181928</a>) (<a href="/integrations/libre_hardware_monitor/">Libre Hardware Monitor documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Linode and Tank Utility</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_8">
<p>The Linode and Tank Utility <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> have been disabled and no longer start.</p>
<p>Both depend on Python libraries that have not been maintained for years (the Linode one was last updated in 2018, the Tank Utility one in 2023) and no longer work with current Python packaging tools. Keeping them running meant holding back those tools for every other integration, so they have been switched off instead.</p>
<p>If you use either integration, you can remove it from your configuration. If the underlying libraries are updated, or replaced with maintained alternatives, the integrations can be activated again. Community contributions to make this happen are very welcome.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182842">#182842</a>) (<a href="/integrations/linode/">Linode documentation</a>) (<a href="/integrations/tank_utility/">Tank Utility documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Mealie</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_9">
<p>Mealie 3.2 or newer is now required. Version 3.2 was released in September 2025, and the Mealie <span class="terminology">app<span class="terminology-tooltip">Apps are additional standalone third-party software packages that can be installed on Home Assistant OS.<a class="terminology-link" href="/getting-started/concepts-terminology/#apps"> [Learn more]</a></span></span> and official container are already well past it, so most of you don’t need to do anything. If your Mealie server runs an older version, update it before you update Home Assistant.</p>
<p>(<a href="https://github.com/andrew-codechimp">@andrew-codechimp</a> - <a href="https://github.com/home-assistant/core/pull/180609">#180609</a>) (<a href="/integrations/mealie/">Mealie documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>MQTT</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_10">
<p>The <code>mqtt.publish</code> and <code>mqtt.dump</code> actions now require an administrator account, just like <code>mqtt.reload</code> already did.</p>
<p><span class="terminology">Automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, and <span class="terminology">scenes<span class="terminology-tooltip">Scenes capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.<a class="terminology-link" href="/integrations/scene/"> [Learn more]</a></span></span> that publish on their own are not affected, because they run without a user context. What changes is a call a non-admin user makes themselves: from a dashboard button, from the developer tools, or by starting a script or automation by hand. Those now fail with “Unauthorized”. If a non-admin user needs to be able to publish, let the automation run on its own trigger instead of having that user start it.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182045">#182045</a>) (<a href="/integrations/mqtt/">MQTT documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>OpenEVSE</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_11">
<p>The <strong>Charging status</strong> sensor now reports a fixed set of states in snake_case, such as <code>charging</code>, <code>not_connected</code>, and <code>gfci_self_test_failure</code>, instead of the raw values from the charger, such as <code>Charging</code> or <code>not connected</code>. If you have <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that check for the old values, update them to match the new ones.</p>
<p>(<a href="https://github.com/firstof9">@firstof9</a> - <a href="https://github.com/home-assistant/core/pull/180329">#180329</a>) (<a href="/integrations/openevse/">OpenEVSE documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Proxmox VE</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_12">
<p>The <strong>Uptime</strong> sensor of nodes, virtual machines, and containers now shows a timestamp of when it started, instead of the time since it started in seconds. If you have <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, or <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> that use the number of seconds, update them to work with the timestamp.</p>
<p>(<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/169704">#169704</a>) (<a href="/integrations/proxmoxve/">Proxmox VE documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Rejseplanen</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_13">
<p>Rejseplanen now uses version 2.0 of the Rejseplanen API, which requires an API key. You can <a href="https://labs.rejseplanen.dk/hc/en-us/articles/21553113674909-Adgang-til-data-fra-Labs">apply for an API key</a> with Rejseplanen Labs. The integration is now set up from the UI instead of <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>.</p>
<p>All extra attributes have been removed from the sensors. If you have <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> or dashboard cards that use them, you need to update them.</p>
<p>(<a href="https://github.com/Jawar19">@Jawar19</a> - <a href="https://github.com/home-assistant/core/pull/152200">#152200</a>) (<a href="/integrations/rejseplanen/">Rejseplanen documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Sofar</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_14">
<p>Sofar inverters that report no energy meter no longer get these six energy sensors: <strong>Load consumption today</strong>, <strong>Load consumption total</strong>, <strong>Import energy today</strong>, <strong>Import energy total</strong>, <strong>Export energy today</strong>, and <strong>Export energy total</strong>.</p>
<p>They never held real readings on those inverters. The inverter itself marks those values as invalid, and on a <abbr title="photovoltaic">PV</abbr>-only inverter, <strong>Load consumption total</strong> simply repeated the solar generation total. If you used these sensors on your Energy dashboard, or in <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> or <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, remove them. Hybrid inverters and PV inverters with a meter keep all six.</p>
<p>(<a href="https://github.com/darkrain-nl">@darkrain-nl</a> - <a href="https://github.com/home-assistant/core/pull/181729">#181729</a>) (<a href="/integrations/sofar/">Sofar documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>State conditions</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_15">
<p>State <span class="terminology">conditions<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span> that combine the <code>for</code> option with a state attribute, a list of states, or a state taken from another entity now fail validation. These combinations don’t support a duration, so you get an error when the configuration is checked, instead of a condition that doesn’t do what you expect.</p>
<p>(<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/174083">#174083</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Synology DSM</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_16">
<p>The <code>synology_dsm.reboot</code> and <code>synology_dsm.shutdown</code> actions now require an administrator account.</p>
<p><span class="terminology">Automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that run on their own triggers are not affected, because they run without a user context. What changes is a call a non-admin user makes themselves: from a dashboard button, from the developer tools, or by starting a script or automation by hand. Those now fail with “Unauthorized”. If a non-admin user needs to be able to restart or shut down the NAS, let the automation run on its own trigger instead of having that user start it.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182050">#182050</a>) (<a href="/integrations/synology_dsm/">Synology DSM documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Telegram bot</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_17">
<p>When you pass a <code>directory_path</code> to the <code>telegram_bot.download_file</code> action, that directory now has to be in your <code>allowlist_external_dirs</code>. If the action starts failing, add the directory to your configuration:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code data-lang="yaml"><span class="na">homeassistant</span><span class="pi">:</span>
  <span class="na">allowlist_external_dirs</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="s">/media/telegram</span>
</code></pre></div></div>
<p>If you leave out <code>directory_path</code>, nothing changes. Files are still saved to the <code>telegram_bot</code> folder in your configuration directory, without an allowlist entry.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182460">#182460</a>) (<a href="/integrations/telegram_bot/">Telegram bot documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Teslemetry</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_18">
<p>Vehicles that stream their data no longer get the <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> that can only be updated by <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span>. Updating those required a paid API call, which most people did not expect.</p>
<p>(<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/181351">#181351</a>) (<a href="/integrations/teslemetry/">Teslemetry documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>UniFi Network</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_19">
<p>You can no longer reconfigure the UniFi Network <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> by adding the same site again through <strong>Add integration</strong>. Use the dedicated <strong>Reconfigure</strong> option of the integration instead.</p>
<p>(<a href="https://github.com/robinsiep">@robinsiep</a> - <a href="https://github.com/home-assistant/core/pull/182201">#182201</a>) (<a href="/integrations/unifi/">UniFi Network documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>UpCloud</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_20">
<p>The option to configure the <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval has been removed from UpCloud. The integration now always polls every 60 seconds. If you had set a longer interval, this means more API calls: a 300 second interval, for example, becomes five times as many calls.</p>
<p>If you need a different update frequency, you can <a href="/common-tasks/general/#defining-a-custom-polling-interval">set your own polling interval</a>.</p>
<p>(<a href="https://github.com/KingLizard1020">@KingLizard1020</a> - <a href="https://github.com/home-assistant/core/pull/181327">#181327</a>) (<a href="/integrations/upcloud/">UpCloud documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Xbox</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_21">
<p>The <strong>Subscribed to Xbox Game Pass</strong> <span class="terminology">binary sensor<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span> has been removed, because it never worked. The Xbox API always reported <code>false</code>, whether you or your friends were subscribed to Game Pass or not.</p>
<p>(<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/182734">#182734</a>) (<a href="/integrations/xbox/">Xbox documentation</a>)</p>
</div>
</details>
</div>
<p>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 <a href="https://developers.home-assistant.io/blog/">developer blog</a>. The following changes are the most notable for this release:</p>
<ul>
<li><a href="https://developers.home-assistant.io/blog/2026/09/15/device-entry-config-entries-deprecation"><code>DeviceEntry.config_entries</code> deprecation is now enforced</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/02/modbus-get-hub-deprecation">Deprecating <code>modbus.get_hub</code> in favor of <code>async_get_unit</code></a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/26/llm-tool-result">LLM tools return a ToolResult and declare their integration</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/04/device-and-state-class-selectors">New device and state class selectors</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/11/lawn-mower-stop-action-idle-activity">New stop action and idle activity for lawn mowers</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/07/oauth2-central-error-handling">OAuth2 error handling moved into the helper</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/30/probatio-validation-engine">Probatio is our validation engine</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/28/central-config-flow-abort-reasons">Shared config flow abort reasons are translated centrally</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/09/17/Use-config-entry-exc-in-migration">Use Config Entry exceptions in integration migration method</a></li>
</ul>
<h2>All changes</h2>
<p>Of course, there is a lot more in this release. You can find a list of all changes made here: <a href="/changelogs/core-2026.10">Full changelog for Home Assistant Core 2026.10</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Big Tech ruined the cloud, so we’re renaming ours]]></title>
    <link href="https://www.home-assistant.io/blog/2026/10/02/big-tech-ruined-the-cloud-so-were-renaming-ours/"/>
    <updated>2026-10-02T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/10/02/big-tech-ruined-the-cloud-so-were-renaming-ours</id>
    <content type="html"><![CDATA[<img alt="Big Tech ruined the cloud, so we’re renaming ours" src="/images/blog/2026-10-big-tech-ruined-the-cloud-so-were-renaming-ours/art.webp" style="border: 0;box-shadow: none;"/>
<p>From ever-increasing subscription prices to outages and data harvesting: we don’t like what the cloud has come to represent. So we’re redefining what an online service should be: private, optional, and free from lock-in or walled gardens.</p>
<!--more-->
<p>That’s why today Nabu Casa is renaming <a href="/cloud/">Home Assistant Cloud</a> to more accurately describe what the service <em>actually does</em>, and to better reflect our values. Allow us to introduce:</p>
<p style="text-align: center; font-size: 1.4em;"><strong>Home Assistant Link</strong></p>
<p>I’m Carl, Vice President of Commercial at Nabu Casa. You probably know us as the folks making all that sleek, highly optimized Home Assistant hardware. Beyond hardware, we also manage and run Home Assistant Link, and as one of the Open Home Foundation’s commercial partners, we’re here to help fund all their amazing work. We feel pretty passionately about the word cloud, and we’d love to explain how the old name never fit, and why Link finally does.</p>
<h2>Created for the community</h2>
<p>Home Assistant began with a group of core developers working nights and weekends alongside their regular jobs to create the platform – a good recipe for burnout, and one that has ended plenty of similar open source projects. So in 2018, we founded Nabu Casa and created Home Assistant Cloud to make sure that didn’t happen.</p>
<p>Home Assistant Cloud set out to make Home Assistant easier for more people to use, starting with a problem many of you had: reaching your Home Assistant when you’re not at home, without having to spend a weekend on it. It was also built to make Home Assistant’s development sustainable.</p>
<p>The intent was never to just ask for donations, but to build an optional service that benefited the community and funded the work at the same time. The majority of profits from subscriptions now fund the Open Home Foundation. That money supports everyone working on Home Assistant – from salaried staff to volunteers – keeping the project sustainable. That shift took Home Assistant from a passion project to one that could invest back into its community, and one that could stick around for the long haul.</p>
<h2>A breath of fresh air</h2>
<p class="img"><img alt="The Nabu Casa logo without the word cloud" src="/images/blog/2026-10-big-tech-ruined-the-cloud-so-were-renaming-ours/image1.webp">We even took it out of the Nabu Casa logo… did we take this too far? <span style="font-style: normal;">🤔</span></img></p>
<p>We had a service that we and the community loved, but the name just didn’t feel right. For example, there were times when Paulus, founder of Home Assistant and President of the Open Home Foundation, was on stage saying “don’t buy products that require the cloud to work,” then in the next breath having to explain how Home Assistant Cloud is different, despite the name. That created unnecessary friction.</p>
<p>It also caused confusion, since some new users thought (and continue to think) Home Assistant Cloud is a way to run Home Assistant in the cloud. This has never been the case, because we believe Home Assistant should <em>always be run locally, in your home</em>.</p>
<p>Big Tech has given the cloud a bad name, and while Link does run online, it is very different from other cloud-powered smart home services:</p>
<table>
<thead style="font-size: 18px;">
<tr>
<th>Home Assistant Link</th>
<th>A Big Tech cloud</th>
</tr>
</thead>
<tbody style="font-size: 16px;">
<tr>
<td><strong>Optional:</strong> your smart home will still work without it, lights and all.</td>
<td><strong>Required:</strong> all or most features won’t work without it.</td>
</tr>
<tr>
<td><strong>No lock-in:</strong> you can use this service or someone else’s, and you’ll never be stuck.</td>
<td><strong>A walled garden:</strong> you’ll be locked into that one service, and all its outages or price increases.</td>
</tr>
<tr>
<td><strong>Your data’s private:</strong> your data is yours, and will always stay that way.</td>
<td><strong>Your data’s monetized:</strong> you’re the product, and your data is used for ads, AI training, and sometimes sold to third parties.</td>
</tr>
<tr>
<td><strong>Funds a nonprofit:</strong> Nabu Casa contributes the majority of profits from subscriptions to the Open Home Foundation, supporting their fight for privacy, choice, and sustainability.</td>
<td><strong>Funds investors first:</strong> profits flow to shareholders, debt repayment, and a bunch of other stuff first, and funding developers is an afterthought.</td>
</tr>
</tbody>
</table>
<p>Your subscriptions help sustain Home Assistant, but we’ve been clear from the beginning that you do not need Link to use the platform. We hate what Big Tech has done to smart devices, turning them into paperweights when they drop support. Thermostats that can’t be scheduled or cameras that can’t detect motion, giving the smart home a bad reputation and making a mountain of e-waste. By not using Link, you’ll miss out on some extras, but that’s all they are: extras. And if you <em>do</em> use Link but have to unsubscribe, your smart home will keep working.</p>
<p>Big Tech treats your data as a commodity and a tool for mass surveillance: sold to advertisers, used to train AI, and dealt to third parties for the best price. We think this is morally bankrupt. That’s why when you use Home Assistant Link, your data is encrypted, and only you have the key. Neither Nabu Casa nor the Open Home Foundation want your data, and we work hard to never have an opportunity to see it.</p>
<p>This is what tech serving people looks like: data that’s yours, and a smart home that answers to you – not corporate shareholders.</p>
<h2>Choose your own path</h2>
<p>Many of you build DIY projects to customize your setup, and Home Assistant isn’t going anywhere on that front. But for those who’d like a simpler approach, Link makes using Home Assistant easier, opening up the local and private smart home to more people. For example, connecting to Alexa and Google Home can be complex to set up yourself, but Link allows you to… ahem… <em>link</em> them to Home Assistant without the hassle. Not having the time or know-how shouldn’t be a barrier to using the platform, and Link ensures it isn’t.</p>
<p>On top of things that can only be done online, there are other features that just work better with Link’s connected services. For instance, online speech-to-text tends to be faster, supports more languages, and is more reliable than self-hosted alternatives. Likewise, Link offers a way to store a backup online, so your data is always recoverable while remaining private. Plus, if you run into trouble with a feature, we have <em>real humans</em> you can contact to help you out. You heard that right. A real person.</p>
<p class="img"><img alt="The new Nabu Casa account page" src="/images/blog/2026-10-big-tech-ruined-the-cloud-so-were-renaming-ours/image2.webp"/>See everything at a glance on our new account page.</p>
<p>We’re also constantly <a href="/blog/2026/09/02/release-20269/#home-assistant-cloud">improving the service</a> and are now working to add new features. You may have noticed the new, easier-to-use <a href="https://account.nabucasa.com/" rel="noopener" target="_blank">account page</a>, the <a href="/blog/2026/09/02/release-20269/#test-the-new-voice-processing">speech-to-text Labs test</a>, or the <a href="/blog/2026/08/05/release-20268/#home-assistant-cloud-now-easier-to-explore">new settings page</a> in Home Assistant with a setup wizard. What you probably won’t notice is the massive backend update to improve the responsiveness of your remote access (we’ve migrated to a new bare-metal setup that always tries to get you on the closest server, and it’s <em>fast</em> 🏎️). Most importantly, these updates let us add new security features, account management tools, and more.</p>
<h2>What’s in a name?</h2>
<p>In the end, our actions speak louder than product names, and we’ll continue to run a subscription that’s about privacy, transparency, and not locking users in, all the while supporting the development of Home Assistant.</p>
<p>Whenever features get renamed, we always come to you, the community, first. Even though this is a service from <a href="https://www.nabucasa.com/" rel="noopener" target="_blank">Nabu Casa</a>, Home Assistant is a community project, and we value your opinion and thoughts. Love the new name? Something we didn’t consider? We’re all ears. We intend to make the name change official in the December 2026.12 release, so please provide all your feedback well before then! 👇</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2026.9: There's room on this bus]]></title>
    <link href="https://www.home-assistant.io/blog/2026/09/02/release-20269/"/>
    <updated>2026-09-02T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/09/02/release-20269</id>
    <content type="html"><![CDATA[<p><lite-youtube videoid="TgGiUchnmDw" videotitle="Home Assistant 2026.9 Release Party"></lite-youtube></p>
<p>Home Assistant 2026.9! 🎉</p>
<p>I’ll be honest: Modbus has never been the flashiest part of Home Assistant. It quietly powers solar inverters, heat pumps, and energy meters, but only if you’re comfortable hand-writing your own register map in YAML, a real wall that’s kept a huge category of devices out of reach. This release finally makes room on the bus: integrations that already know how a device talks over Modbus, sharing a single connection instead of fighting over it, so you simply pick your device in the UI like anything else in Home Assistant. It won’t show up in a screenshot, but <a href="#modernizing-modbus">modernizing Modbus</a> is hands-down my favorite change this release. 🔧</p>
<p>I’m also really looking forward to jumping on <a href="#test-the-new-voice-processing">the new Cloud voice processing</a> myself and putting it through its paces. We’re a household with a non-English main language, and if you’ve ever run a private voice assistant in one, you know exactly how fast accents and background noise trip things up. This new speech-to-text engine specifically targets those pain points, so I’m very curious to see how it holds up against my own accent. 😉</p>
<p>And there’s plenty more: <a href="#active-alerts-and-favorites-for-the-security-dashboard">active alerts and favorites</a> for the Security dashboard, a shared <a href="#a-new-sources-pane-for-history-and-activity">Sources panel</a> for History and Activity, Activity that finally explains <a href="#from-what-changed-to-why-it-changed">why something changed</a>, a brand new <a href="#insights-into-your-matter-world">network map for Matter</a>, charts you can now <a href="#accessibility-for-charts">navigate by keyboard and sound</a>, and 13 new integrations! 🚀</p>
<p>One more thing before you dive in: we’re at <a href="https://www.openhomefoundation.org/blog/ifa-berlin-2026-save-the-date/">IFA Berlin</a> this weekend! It’s one of the largest consumer electronics expos out there, running September 4 to 8, 2026, and the Open Home Foundation has its own <a href="https://www.ifa-berlin.com/exhibitors/open-home-foundation">booth in the Smart Home hall</a>: Hall 1.2, stand 1.2-153. If you’re around, come find us and say hi. 👋</p>
<p>Enjoy the release!</p>
<p>../Frenck</p>
<!--more-->
<ul>
<li><a href="#home-assistant-cloud">Home Assistant Cloud</a>
<ul>
<li><a href="#seeing-through-the-cloud">Seeing through the Cloud</a></li>
<li><a href="#test-the-new-voice-processing">Test the new voice processing</a></li>
<li><a href="#float-in-to-be-a-cloud-subscriber">Float in to be a Cloud subscriber</a></li>
</ul>
</li>
<li><a href="#active-alerts-and-favorites-for-the-security-dashboard">Active alerts and favorites for the Security dashboard</a></li>
<li><a href="#a-new-sources-pane-for-history-and-activity">A new Sources pane for History and Activity</a></li>
<li><a href="#from-what-changed-to-why-it-changed">From what changed to why it changed</a></li>
<li><a href="#insights-into-your-matter-world">Insights into your Matter world</a></li>
<li><a href="#new-tile-card-features">New tile card features</a></li>
<li><a href="#modernizing-modbus">Modernizing Modbus</a></li>
<li><a href="#integrations">Integrations</a>
<ul>
<li><a href="#new-integrations">New integrations</a></li>
<li><a href="#noteworthy-improvements-to-existing-integrations">Noteworthy improvements to existing integrations</a></li>
<li><a href="#integration-quality-scale-achievements">Integration quality scale achievements</a></li>
<li><a href="#now-available-to-set-up-from-the-ui">Now available to set up from the UI</a></li>
<li><a href="#farewell-to-the-following">Farewell to the following</a></li>
</ul>
</li>
<li><a href="#other-noteworthy-changes">Other noteworthy changes</a></li>
<li><a href="#golden-hour-blue-hour-and-polar-sun-automations">Golden hour, blue hour, and polar sun automations</a></li>
<li><a href="#accessibility-for-charts">Accessibility for charts!</a></li>
<li><a href="#serial-and-mqtt-panels">Serial and MQTT panels</a></li>
<li><a href="#how-full-is-your-network-storage">How full is your network storage?</a></li>
<li><a href="#patch-releases">Patch releases</a>
<ul>
<li><a href="#202691---september-5">2026.9.1 - September 5</a></li>
<li><a href="#202692---september-11">2026.9.2 - September 11</a></li>
<li><a href="#202693---september-18">2026.9.3 - September 18</a></li>
<li><a href="#202694---september-27">2026.9.4 - September 27</a></li>
</ul>
</li>
<li><a href="#need-help-join-the-community">Need help? Join the community</a></li>
<li><a href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a href="#all-changes">All changes</a></li>
</ul>
<p><em>A huge thank you to all the contributors who made this release possible! And a special shout-out to <a href="https://github.com/googanhiem">@googanhiem</a> and <a href="https://github.com/piitaya">@piitaya</a> who helped write these release notes. Also, <a href="https://github.com/Diegorro98">@Diegorro98</a>, <a href="https://github.com/jan-tdy">@jan-tdy</a>, <a href="https://github.com/RaHehl">@RaHehl</a>, and <a href="https://github.com/farmio">@farmio</a> for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️</em></p>
<h2>Home Assistant Cloud</h2>
<p><a href="https://www.home-assistant.io/cloud">Home Assistant Cloud</a> is an essential part of funding the <a href="https://www.openhomefoundation.org/">Open Home Foundation</a>. We’re so thankful for all the support from our subscribers, and from the start we’ve always been clear: this isn’t just a donation to Home Assistant, we want it to provide real benefits to subscribers. Together with <a href="https://www.nabucasa.com/">Nabu Casa</a>, we’ve been constantly working to make Cloud better, and here are some useful recent additions.</p>
<h3>Seeing through the Cloud</h3>
<p>A new addition that should help security-conscious <a href="https://www.home-assistant.io/cloud">Home Assistant Cloud</a> subscribers is the ability to better see who is attempting to log into your instance. In the past, they all looked like local requests, and you may have seen the <em>127.0.0.1 invalid login attempt</em> message, which wasn’t that helpful. Now the proper IP address gets passed through, so whether that’s you mixing up your passwords when logging in, or some bot trying their luck, you’ll now know better where it’s coming from.</p>
<p>A side benefit of this change is that it’s now possible to use IP banning to make it harder for these malicious actors, which was <a href="https://www.home-assistant.io/blog/2026/08/05/release-20268/#want-to-change-the-port-weve-got-you-covered">added to the UI</a> in the previous release. In conjunction with setting up <a href="https://www.home-assistant.io/docs/authentication/multi-factor-auth/">multi-factor authentication</a> (2FA) in Home Assistant, you can add a little extra peace of mind to your home, but that’s not the only Cloud benefit being improved this month.</p>
<h3>Test the new voice processing</h3>
<p>When we launched <a href="https://www.home-assistant.io/voice-pe/">Home Assistant Voice Preview Edition</a>, a good amount of the community jumped into running their own private voice assistants in their homes. Building something to rival big tech is still a <a href="https://www.home-assistant.io/blog/categories/assist/">work-in-progress</a>, but every year we get closer. Today, we’re again asking for our Cloud subscribers to help us test another awesome step forward.</p>
<p>Our friends at <a href="https://www.nabucasa.com/">Nabu Casa</a> are testing a new speech-to-text engine for Home Assistant Cloud, and it significantly improves the three common places voice processing gets tripped up: accents, background noise, and non-English languages. Many of us around the Foundation have been using it and finding it works great with our sometimes <em>unique</em> accents even in noisy environments.</p>
<p>There are several big changes under the hood, including switching to a new provider <a href="https://soniox.com/">Soniox</a>, so it needs to be tested. You’ll still get the same privacy guarantee of no logging, storing, or training on your audio. It’ll be available to test via <a href="https://my.home-assistant.io/redirect/labs/">Labs</a>, with the normal caveat that it may not be a permanent addition, so provide <a href="https://docs.google.com/forms/d/e/1FAIpQLSdIxGYIGDi1z71TH4m7KF9VVjeDgKfZ87WQsljZYtMPiizVmA/closedform">your feedback</a> on the Labs page if it’s the right step forward.</p>
<p>If you’re a Home Assistant Cloud subscriber, you can toggle this on right now by heading to <a href="https://my.home-assistant.io/redirect/labs/"><strong>Settings &gt; System &gt; Labs</strong></a>. If you’re not a subscriber, there is a 31-day trial. Speaking of which, there are some big improvements on signing up coming as well.</p>
<h3>Float in to be a Cloud subscriber</h3>
<p><a href="https://my.home-assistant.io/redirect/cloud/">Signing up for Home Assistant Cloud</a> now begins on a clearer start page: one obvious button to <strong>Start your free trial,</strong> and a link to <strong>Sign in</strong> if you already have an account. It also finally shows what you would actually be getting. The old page left you to guess what was behind that button, which, fair enough, didn’t help anyone. Now the features are listed right there, before you even start the trial.</p>
<img alt="Screenshot of the redesigned Home Assistant Cloud start page, with a button to start a free trial, a link to sign in, and an overview of what Home Assistant Cloud offers." class="no-shadow" src="/images/blog/2026-09/cloud-signup.png"/>
<p>Now confirming your email will automatically log you in to Home Assistant Cloud, so you can immediately set up remote access, voice, and <span class="terminology">backups<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span>. No more logging in after signing up! And as always, the one-month trial requires no payment details.</p>
<p>Home Assistant Cloud is built and run by <a href="https://www.nabucasa.com/">Nabu Casa</a>, a commercial partner of the <a href="https://www.openhomefoundation.org/">Open Home Foundation</a>. Every subscription <strong>funds the foundation</strong> directly, and with it, the full-time development of Home Assistant, this release included. 😊</p>
<p>In return, you get secure remote access with no port forwarding or VPN, encrypted off-site <span class="terminology">backups<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span> ready to restore your whole system the moment you need them, faster and more accurate speech-to-text and text-to-speech for your own voice assistant, native Amazon Alexa and Google Assistant support, and more. It’s all built with the same respect for your privacy as Home Assistant itself: no ads, no data harvesting, just a service that keeps Home Assistant independent.</p>
<p>If you have been thinking about a subscription, there has never been an easier moment to <a href="https://my.home-assistant.io/redirect/cloud">try it</a>.</p>
<h2>Active alerts and favorites for the Security dashboard</h2>
<p>The built-in <strong>Security</strong> dashboard is getting more love, and this release adds two things people kept asking for, both managed from the same editor.</p>
<p>The new <strong>Active alerts</strong> section only shows up when something actually needs your attention, like a door left open or a smoke detector going off. You choose which <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> can trigger it, and how serious each one is, as an <strong>Alert</strong> or a <strong>Warning</strong>, so a window left open doesn’t get the same red treatment as an actual smoke alarm. Nothing going on? The section stays out of the way entirely.</p>
<p>Right alongside it, a new <strong>Favorites</strong> section lets you pin the entities you check most, so your most important doors, locks, or <span class="terminology">sensors<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span> sit at the top of the dashboard instead of wherever they happen to fall.</p>
<img alt="Screenshot of the Security dashboard editor, showing the favorite entities and the active alert entities with their severity levels." class="no-shadow" src="/images/blog/2026-09/security-dashboard-favorites.png"/>
<p>This started as a <a href="https://github.com/orgs/home-assistant/discussions/3545">community-designed concept</a> from <a href="https://github.com/ricardoantoniocm">@ricardoantoniocm</a>, right down to the severity colors and the pulsing animation for anything that needs attention. It’s part of <a href="https://github.com/OpenHomeFoundation/roadmap/issues/50">an Open Home Foundation roadmap opportunity</a> to bring severity to the Security dashboard, and there’s more to come: surfacing these same alerts on the Home dashboard is still on the list for a future release.</p>
<h2>A new Sources pane for History and Activity</h2>
<p>Browsing and finding what you’re looking for in <strong>History</strong> and <strong>Activity</strong> can be daunting, so… we made it better! Both pages now share a single <strong>Sources</strong> panel on the left side that merges target picking (<span class="terminology">floors<span class="terminology-tooltip">A floor in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of areas that are meant to match the physical floors in your home. Devices &amp; entities are not assigned to floors but to areas. Floors can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed.<a class="terminology-link" href="/docs/organizing/floors/"> [Learn more]</a></span></span>, <span class="terminology">areas<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>, <span class="terminology">devices<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, and <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>) with filtering by <span class="terminology">domain<span class="terminology-tooltip">Each integration in Home Assistant has a unique identifier: The domain. It is often shown as the first part (before the dot) of entity IDs.</span></span>, device class, and <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, so you can narrow a whole area down to, say, just its motion sensors. The panel docks to the side and opens automatically on wider screens, and tucks away as a pull-up sheet on narrower ones. Whatever you filter on is remembered the next time you come back.</p>
<img alt="Screenshot of the History page with the new Sources panel open, showing three areas selected and filtered down to temperature sensors, with their chart on the right." class="no-shadow" src="/images/blog/2026-09/history-filtering.png"/>
<p>The two pages still behave the way they always have, on purpose: <strong>History</strong> waits for you to pick something before it draws a chart, since showing everything at once wouldn’t be very useful (or fast in that regard 😅). <strong>Activity</strong> keeps showing everything by default, and you can narrow it down with filters alone, no target required.</p>
<img alt="Screenshot of the Activity page with the new Sources panel open, filtering activity down to the lights in the office." class="no-shadow" src="/images/blog/2026-09/activity-filtering.png"/>
<p>A couple of smaller improvements come along for the ride: the date range picker is now a single pill with previous and next arrows, and long entity names on the History timeline draw above their bar and truncate to fit, instead of being cut off. Always nice to see the attention to detail.</p>
<p>This follows an <a href="https://github.com/OpenHomeFoundation/ux-design/discussions/64">Open Home Foundation design discussion</a> on giving History and Activity a shared layout.</p>
<h2>From what changed to why it changed</h2>
<p>Open <strong>Activity</strong> and you can see exactly what changed: a light turned on, a door unlocked, a blind closed. What you couldn’t see was why. Figuring that out meant guessing which <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> was responsible, opening it, digging into its trace, and working backward to the <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> that actually triggered it. It got harder still after a recent redesign of the log rows, which traded the sentence that used to explain where an entry came from for showing an entity’s area and device instead, so even that small hint disappeared.</p>
<p>Selecting any row in <strong>Activity</strong> now opens a details dialog that lays out the full story, read top to bottom: what started it (a person, a state change, a schedule, an <span class="terminology">integration<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, or a restart), the <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> it passed through, and finally the entity’s own change. Every step in that chain is clickable, opening the entity behind it or, for automations, its trace directly. Timestamps go down to the millisecond, so even events that landed in the same second keep their correct order.</p>
<img alt="Screenshot of the Activity details dialog for a light, showing the presence sensor and the automation that triggered its state change, with millisecond timestamps." class="no-shadow" src="/images/blog/2026-09/activity-details.png"/>
<h2>Insights into your Matter world</h2>
<p>Zigbee (through ZHA), Z-Wave, and Bluetooth have shown you a map of how their devices connect to each other for a while now. 🗺️ <span class="terminology">Matter<span class="terminology-tooltip">Matter is an open-source standard that defines how to control smart home devices on a Wi-Fi or Thread network.<a class="terminology-link" href="/integrations/matter"> [Learn more]</a></span></span> never got the same treatment in Home Assistant, even though the data existed all along, just not here: the Matter Server has its own working network map, tucked away in a separate web interface most people never open.</p>
<p>The Matter panel now has a <strong>Show map</strong> button that brings that same picture right into Home Assistant, using the same graph experience you already know from the other protocols. It shows the full picture: which devices talk over <span class="terminology">Thread<span class="terminology-tooltip">Thread is a low-power mesh networking standard that is specifically designed for smart home applications. It is a protocol that defines how devices communicate.<a class="terminology-link" href="/integrations/thread/"> [Learn more]</a></span></span> and which over Wi-Fi, which ones are routers or <span class="terminology">“border routers”<span class="terminology-tooltip">A Thread border router forwards data packets between your local network and the Thread network. This enables smart home devices within a Thread network to communicate with IPv6-capable devices in your local network. A Thread border router is connected to your network either via Wi-Fi or Ethernet and uses its radio frequency (RF) radio to communicate with the Thread mesh network. In case of Matter, the data that is forwarded is encrypted. Examples of Thread border routers are the Nest Hub (2nd gen), the HomePod mini, and the Home Assistant Connect ZBT-2 together with the OpenThread Border Router app.<a class="terminology-link" href="/integrations/thread/#about-thread-border-routers"> [Learn more]</a></span></span> versus battery-powered end devices, and the path from Home Assistant to each one. Border routers and access points are named from things you’d actually recognize, like their network host name or Wi-Fi network name, instead of a serial number. Link color tells you the transport, Thread or Wi-Fi, and the thickness and direction reflect the signal strength on each side of the connection.</p>
<img alt="Screenshot of the Matter network map, showing Home Assistant connected to Thread border routers, a Wi-Fi access point, and end devices." class="no-shadow" src="/images/blog/2026-09/matter-network-graph.png"/>
<p>If your Matter server is a bit older and doesn’t support this yet, the page tells you so instead of just failing, so you know to update rather than assume something’s broken.</p>
<p>This closes out <a href="https://github.com/OpenHomeFoundation/roadmap/issues/210">an Open Home Foundation roadmap opportunity</a> to bring Matter’s network map in line with the other protocols.</p>
<h2>New tile card features</h2>
<p>The <a href="/dashboards/tile/">tile card</a> keeps gaining more ways to control an <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> without opening its more-info dialog, and this release adds three, all from the same contributor.</p>
<p><strong>Lights</strong> get a new <strong>Light effect</strong> feature, so you can pick and preview an effect, like <em>Rainbow</em>, directly from the tile.</p>
<img alt="Screenshot of two light tile cards with the Light effect feature, each showing an effect selector." class="no-shadow" src="/images/blog/2026-09/tile-card-feature-light-effect.png"/>
<p><strong>Vacuums</strong> get a new <strong>Vacuum fan speed</strong> feature, so you can switch between fan speeds, like <em>min</em>, <em>medium</em>, <em>high</em>, or <em>max</em>, right alongside the existing start, stop, and dock commands.</p>
<img alt="Screenshot of two vacuum tile cards with the Vacuum fan speed feature, each showing a fan speed selector." class="no-shadow" src="/images/blog/2026-09/tile-card-feature-vacuum-fan-speed.png"/>
<p>And the existing <strong>Target humidity</strong> feature, previously limited to humidifiers, now also works with <span class="terminology">Climate<span class="terminology-tooltip">The Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.<a class="terminology-link" href="/integrations/climate"> [Learn more]</a></span></span> entities that support humidity control, using the step size your device reports instead of a fixed one.</p>
<img alt="Screenshot of the target humidity feature on a tile card for a thermostat, with a humidity slider." class="no-shadow" src="/images/blog/2026-09/tile-card-feature-humidity-target.png"/>
<p>All three come with matching tile card suggestions, so Home Assistant offers to add them automatically when they make sense for an entity.</p>
<p>Thanks to <a href="https://github.com/pcan08">@pcan08</a> for all three!</p>
<p>One more tile card fix: with the <strong>Feature position</strong> set to <strong>Inline</strong>, only the first feature used to show up, and the rest were silently dropped. Now the first one sits next to the entity name as before, and the others appear below it in two columns.</p>
<img alt="Screenshot of two tile cards with the feature position set to Inline, showing one feature next to the name and more features below it." class="no-shadow" src="/images/blog/2026-09/tile-card-inline-features.png"/>
<p>Thanks to <a href="https://github.com/JulianHock">@JulianHock</a> for that one!</p>
<h2>Modernizing Modbus</h2>
<p>Modbus devices, like solar inverters, energy meters, and heat pumps, have long been supported in Home Assistant through the <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>-based <strong><a href="/integrations/modbus/">Modbus</a></strong> integration, where you hand-write a register map for your device yourself. That still works and isn’t going anywhere, but it puts the burden of understanding a device’s protocol on every user. This release lays the groundwork for a different way: integrations that already know how a device talks over Modbus, so you pick your device in the UI, the same as any other integration.</p>
<p>The first integrations built this way are already here: <strong><a href="/integrations/fronius/">Fronius</a></strong> gained optional Modbus TCP (SunSpec) support, adding per-string solar data — current, voltage, power, and lifetime energy for each MPP tracker — that its existing local HTTP API doesn’t expose. It shares its connection with anything else talking to the same inverter, which matters in practice: some Fronius models only accept a handful of simultaneous Modbus sessions. <strong><a href="/integrations/sofar">Sofar Inverter Modbus</a></strong> and <strong><a href="/integrations/flexit">Flexit</a></strong> are built the same way.</p>
<p>For the full story, including the new standalone <code>modbus-connection</code> library and how to build your own integration on top of it, read <a href="https://developers.home-assistant.io/blog/2026/07/05/modernizing-modbus">Modernizing Modbus in Home Assistant</a> on the developer blog. Underneath, it talks to devices through <a href="https://github.com/wlcrs/tmodbus">tmodbus</a>, a modern, fully typed Modbus library.</p>
<p>Thanks to Paulus (<a href="https://github.com/balloob">@balloob</a>) for pushing this forward, <a href="https://github.com/wlcrs">@wlcrs</a> for tmodbus, the library it’s built on, <a href="https://github.com/farmio">@farmio</a> for Fronius, <a href="https://github.com/darkrain-nl">@darkrain-nl</a> for Sofar Inverter Modbus, and <a href="https://github.com/troelde">@troelde</a> for Flexit!</p>
<h2>Integrations</h2>
<p>Thanks to our community for keeping pace with the new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and improvements to existing ones! You’re all awesome 🥰</p>
<h3>New integrations</h3>
<p>We welcome the following new integrations in this release:</p>
<ul>
<li>
<p><strong><a href="/integrations/besen">Besen</a></strong>, added by <a href="https://github.com/moryoav">@moryoav</a><br/>
Connect Besen EV chargers to Home Assistant over Bluetooth Low Energy, using Home Assistant’s built-in Bluetooth support or an ESPHome Bluetooth proxy. It works with the <a href="https://www.besen-group.com/products/ev-charging-station/bs20/">Besen BS20</a> charging station and other Besen chargers that use the same protocol.</p>
</li>
<li>
<p><strong><a href="/integrations/collection_image">Collection image</a></strong>, added by <a href="https://github.com/karwosts">@karwosts</a><br/>
Turn a folder from a media source into a dynamic image entity. Home Assistant picks a random picture from the folder, so you can show a changing image on a dashboard or use it as a view background.</p>
</li>
<li>
<p><strong><a href="/integrations/flow_it">Flow-it</a></strong>, added by <a href="https://github.com/albertogeniola">@albertogeniola</a><br/>
Monitor and control your <a href="https://www.flow-it.it/en">Flow-it</a> ventilation system from Home Assistant. Adjust the fan speed, switch between preset modes such as Auto and Boost, and bring it into your automations alongside your other smart home devices. The integration connects to the device on your local network and supports automatic discovery.</p>
</li>
<li>
<p><strong><a href="/integrations/hotspring">Hot Spring</a></strong>, added by <a href="https://github.com/Moustachauve">@Moustachauve</a>, launching at 🏆 platinum quality<br/>
Monitor and control a <a href="https://www.hotspring.com/">Hot Spring</a> spa equipped with the HotSpring Connected Spa Kit 2 module, directly over your local network.</p>
</li>
<li>
<p><strong><a href="/integrations/iseo_argo_ble">ISEO Argo BLE</a></strong>, added by <a href="https://github.com/FezVrasta">@FezVrasta</a><br/>
Control an ISEO Argo Bluetooth smart lock, common on armored doors in Italy and Switzerland, syncing its access log into the Home Assistant logbook and managing its users through actions. Home Assistant appears to the lock as its own gateway, polling it locally over Bluetooth.</p>
</li>
<li>
<p><strong><a href="/integrations/librenms">LibreNMS</a></strong>, added by <a href="https://github.com/mib1185">@mib1185</a><br/>
Bring your <a href="https://www.librenms.org/">LibreNMS</a> network monitoring instance into Home Assistant. This initial release adds a binary sensor for the online status of each monitored device, with alerts and more sensor data planned for later.</p>
</li>
<li>
<p><strong><a href="/integrations/nexblue">NexBlue</a></strong>, added by <a href="https://github.com/nexblue-maintainer">@nexblue-maintainer</a><br/>
Connect a NexBlue EV charger account to Home Assistant. It discovers the chargers on your account and provides read-only sensors for charging state, power, session and lifetime energy, and other electrical and diagnostic values. Charging controls are planned for a future release.</p>
</li>
<li>
<p><strong><a href="/integrations/hortimax">Ridder HortiMaX Pro</a></strong>, added by <a href="https://github.com/wildekek">@wildekek</a><br/>
Bring measurements from a <a href="https://www.ridder.com/">Ridder</a> HortiMaX Pro greenhouse controller into Home Assistant, including temperatures, humidity, vent and screen positions, irrigation volumes, and energy use. The integration is read-only, so your growing decisions stay fully in the controller’s hands. It’s the same kind of controller running the greenhouses at <a href="https://www.dehortus.nl/en/">Amsterdam’s Hortus Botanicus</a>, one of the oldest botanical gardens in the world, which we visited earlier Read <a href="https://newsletter.openhomefoundation.org/the-walled-garden-thats-breaking-down-barriers/">the full story</a> in our newsletter.</p>
</li>
<li>
<p><strong><a href="/integrations/samsung_exlink">Samsung TV via ExLink</a></strong>, added by <a href="https://github.com/balloob">@balloob</a>, launching at 🥈 silver quality<br/>
Control Samsung TVs through their RS-232 serial port, which Samsung markets as ExLink, using a serial cable, a USB-to-serial adapter, or an ESPHome-based serial proxy. Talking directly to the TV’s serial port makes control fast and reliable, and it also works with TVs that lack smart features or a network connection.</p>
</li>
<li>
<p><strong><a href="/integrations/silla_prism">Silla Prism</a></strong>, added by <a href="https://github.com/ebaschiera">@ebaschiera</a><br/>
Monitor a <a href="https://www.silla.industries/">Silla Prism</a> EV wallbox over its local MQTT API, with sensors for charging status, power, current, voltage, and session and lifetime energy. Setup only needs the MQTT topic your Silla app already shows you. Charging controls are planned for a future release.</p>
</li>
<li>
<p><strong><a href="/integrations/sofar">Sofar Inverter Modbus</a></strong>, added by <a href="https://github.com/darkrain-nl">@darkrain-nl</a><br/>
Connect a Sofar Solar inverter to Home Assistant over Modbus TCP, either directly or through a Modbus TCP bridge. Setup automatically detects your inverter model, and it works with both PV-only and hybrid inverters with battery storage.</p>
</li>
<li>
<p><strong><a href="/integrations/specialized_turbo">Specialized Turbo</a></strong>, added by <a href="https://github.com/JamieMagee">@JamieMagee</a><br/>
Connect a Specialized Turbo e-bike over Bluetooth Low Energy, covering the TCU1 and TCX1 through TCX4 models, with detailed ride and battery telemetry. Encrypted bikes can sign in through your Specialized account or use a manually entered key, and Home Assistant manages the Bluetooth connection itself without storing your password.</p>
</li>
<li>
<p><strong><a href="/integrations/tonewinner">Tonewinner</a></strong>, added by <a href="https://github.com/emma-sg">@emma-sg</a>, launching at 🥈 silver quality<br/>
Control <a href="https://en.tonewinner.com/">Tonewinner</a> AV processors, receivers, and amps over an RS-232 serial connection, using a USB-to-serial adapter or an ESPHome-based serial proxy.</p>
</li>
</ul>
<p>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:</p>
<ul>
<li><strong><a href="/integrations/ariston">Ariston</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/beverly">Beverly</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/bugu">Bugu</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/carrier">Carrier</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/colmo">Colmo</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/comfee">Comfee</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/inventor">Inventor</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/little_swan">Little Swan</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/netsu">Netsu</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/olimpia_splendid">Olimpia Splendid</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/pro_breeze">Pro Breeze</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/rotenso">Rotenso</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/toshiba_lifestyle">Toshiba Lifestyle</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/vandelo">Vandelo</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
<li><strong><a href="/integrations/wahin">Wahin</a></strong>, provided by <a href="/integrations/midea">Midea</a>, added by <a href="https://github.com/chemelli74">@chemelli74</a></li>
</ul>
<h3>Noteworthy improvements to existing integrations</h3>
<p>It is not just new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have been added; existing ones keep getting better too. Here are some of the noteworthy improvements this release:</p>
<ul>
<li><strong><a href="/integrations/tuya">Tuya</a></strong> added support for the HCDD device category, covering chasing tape lights, so these RGB LED strips can be controlled like any other light. Thanks, <a href="https://github.com/AnthonyZavala">@AnthonyZavala</a>!</li>
<li><strong><a href="/integrations/shelly">Shelly</a></strong> cameras are now fully supported, with a camera platform, motion detection, and a privacy switch to disable the lens. The Wall Display XL also gained its own motion sensor, and climate entities now report the correct heating and cooling status when a thermostat’s relay output is wired inverted. Thanks, <a href="https://github.com/bieniu">@bieniu</a>!</li>
<li><strong><a href="/integrations/homekit_controller">HomeKit Device</a></strong> gained duration, fault, and low battery sensors for more HomeKit accessories, so you can see how long a valve has been running, catch a failing accessory, and get a heads-up before a battery-powered sensor drops offline. Thanks, <a href="https://github.com/nijel">@nijel</a>!</li>
<li><strong><a href="/integrations/webostv">LG webOS TV</a></strong> added a switch to turn off just the screen while keeping the sound running, handy if you want to keep listening without the picture. Thanks, <a href="https://github.com/darkrain-nl">@darkrain-nl</a>!</li>
<li><strong><a href="/integrations/reolink">Reolink</a></strong> gained floodlight on/off schedule times, a button to synchronize the camera’s clock, a select to choose the anti-flicker frequency, and the ability to enable or disable the tamper alarm. Thanks, <a href="https://github.com/Lukkasss">@Lukkasss</a> and <a href="https://github.com/starkillerOG">@starkillerOG</a>!</li>
<li><strong><a href="/integrations/roborock">Roborock</a></strong> brought dock controls, such as starting mop washing, drying, or emptying, to V1 vacuums. Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</li>
<li><strong><a href="/integrations/google_generative_ai_conversation">Google Gemini</a></strong> added a thinking budget option for Gemini 2.5 models and a thinking level option for Gemini 3 models, so you can tune how much the model reasons before it responds. Thanks, <a href="https://github.com/mxwmnn">@mxwmnn</a>!</li>
<li><strong><a href="/integrations/home_connect">Home Connect</a></strong> gained new event sensors, including short and long presses of the Favorite button on hobs and hoods, and a setpoint temperature option for air conditioners. Thanks, <a href="https://github.com/Diegorro98">@Diegorro98</a>!</li>
<li><strong><a href="/integrations/tado">Tado</a></strong> lets you choose which heating circuit serves a zone, handy in homes with more than one circuit, like a mix of underfloor heating and radiators. Thanks, <a href="https://github.com/PeterLinuxOSS">@PeterLinuxOSS</a>!</li>
<li><strong><a href="/integrations/switchbot_cloud">SwitchBot Cloud</a></strong> now supports the Permanent Outdoor Lights string lighting and the Curtain4 curtain motor, so you can control them from Home Assistant alongside the rest of your SwitchBot devices. Thanks, <a href="https://github.com/XiaoLing-git">@XiaoLing-git</a>!</li>
<li><strong><a href="/integrations/knx">KNX</a></strong> weather and select entities can now be created directly from the KNX panel in the UI, and YAML-defined entities can be given an explicit unique ID instead of relying on the auto-generated one. YAML entities can now also be assigned to devices. Thanks, <a href="https://github.com/farmio">@farmio</a> and <a href="https://github.com/martinhoefling">@martinhoefling</a>!</li>
<li><strong><a href="/integrations/proxmoxve">Proxmox VE</a></strong> added a button to pause a VM, handy for freeing up resources for a moment, for example while another job needs the extra headroom, without fully shutting the VM down. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/homematicip_cloud">HomematicIP Cloud</a></strong> added a carbon dioxide sensor for supported devices, so you can trigger ventilation or an air purifier automation when CO2 levels creep up in a room. Thanks, <a href="https://github.com/lackas">@lackas</a>!</li>
<li><strong><a href="/integrations/vizio">VIZIO SmartCast</a></strong> now supports Crave portable speakers, with a battery level sensor and a charging binary sensor. Thanks, <a href="https://github.com/raman325">@raman325</a>!</li>
<li><strong><a href="/integrations/environment_canada">Environment Canada</a></strong> radar images can now be smoothed for a less blocky picture and extended with a short-term forecast, so you can see rain or snow coming before it actually arrives. Thanks, <a href="https://github.com/michaeldavie">@michaeldavie</a>!</li>
<li><strong><a href="/integrations/mikrotik">MikroTik</a></strong> gained switches to turn Ethernet and Wi-Fi interfaces on or off, a select to set the PoE output mode, a binary sensor for interface connectivity, and more sensors, including a fix for incorrect voltage readings on the netPower 16P. Thanks, <a href="https://github.com/chemelli74">@chemelli74</a>!</li>
<li><strong><a href="/integrations/mealie">Mealie</a></strong> added actions to update and delete mealplan entries, so you can manage next week’s dinners from an automation or script instead of opening the app. Thanks, <a href="https://github.com/andrew-codechimp">@andrew-codechimp</a>!</li>
<li><strong><a href="/integrations/portainer">Portainer</a></strong> added a Docker event entity, so container lifecycle changes reach Home Assistant immediately instead of waiting for the next update cycle. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/transmission">Transmission</a></strong> added a sensor for available disk space, so you can get a warning before your download folder fills up. Thanks, <a href="https://github.com/Eniot666">@Eniot666</a>!</li>
<li><strong><a href="/integrations/lyric">Honeywell Lyric</a></strong> added a schedule status sensor, so you can tell at a glance whether your thermostat is following its schedule or someone put it on a temporary hold. Thanks, <a href="https://github.com/clutch2sft">@clutch2sft</a>!</li>
<li><strong><a href="/integrations/teslemetry">Teslemetry</a></strong> added a rear defroster binary sensor, so you can automate it on a cold morning, and a cover entity for the Cybertruck’s tonneau, so you can open and close the bed cover from Home Assistant. Thanks, <a href="https://github.com/Bre77">@Bre77</a>!</li>
<li><strong><a href="/integrations/iometer">IOmeter</a></strong> added entities for three-phase electricity meters, so homes with a three-phase connection get accurate readings for every phase instead of just the total. Thanks, <a href="https://github.com/torben-iometer">@torben-iometer</a>!</li>
<li><strong><a href="/integrations/modern_forms">Modern Forms</a></strong> added support for breeze mode, which varies the fan speed to mimic a natural breeze. Thanks, <a href="https://github.com/wonderslug">@wonderslug</a>!</li>
<li><strong><a href="/integrations/midea">Midea</a></strong> grew substantially this release, with new fan, humidifier, light, and switch controls, select and number entities to configure your appliance, buttons for common actions, and a full dust filter alert binary sensor. Thanks, <a href="https://github.com/chemelli74">@chemelli74</a>!</li>
<li><strong><a href="/integrations/subaru">Subaru</a></strong> added binary sensors for doors, windows, and the hood or tailgate, per-door lock status, EV plug and charging state, and vehicle health warning lights. Thanks, <a href="https://github.com/jpettitt">@jpettitt</a>!</li>
<li><strong><a href="/integrations/anova">Anova</a></strong> cook time sensors now suggest hours as the displayed unit, making long cook times easier to read. Thanks, <a href="https://github.com/goetzc">@goetzc</a>!</li>
<li><strong><a href="/integrations/izone">iZone</a></strong> now shows the supply and return air temperatures of your ducted system, so you can spot a struggling compressor or a clogged filter before it becomes a bigger problem. Thanks, <a href="https://github.com/Swamp-Ig">@Swamp-Ig</a>!</li>
<li><strong><a href="/integrations/imou">Imou</a></strong> added a select entity to change night vision mode and volume, and a binary sensor for door and window contacts. Thanks, <a href="https://github.com/Imou-OpenPlatform">@Imou-OpenPlatform</a>!</li>
<li><strong><a href="/integrations/openevse">OpenEVSE</a></strong> added switches for solar PV divert, so you can charge from surplus solar power, the current shaper, which limits charging to protect your home’s electrical service, and a manual override to force charging on or off. Thanks, <a href="https://github.com/firstof9">@firstof9</a>!</li>
<li><strong><a href="/integrations/green_planet_energy">Green Planet Energy</a></strong> added a <code>get_prices</code> action to fetch electricity prices for a given period, handy for building your own price charts or automations that react to tomorrow’s rates. Thanks, <a href="https://github.com/petschni">@petschni</a>!</li>
<li><strong><a href="/integrations/vistapool">Vistapool</a></strong> added time entities for the three filtration schedule intervals, so you can adjust when your pool pump runs directly from Home Assistant instead of the Vistapool app. Thanks, <a href="https://github.com/fdebrus">@fdebrus</a>!</li>
<li><strong><a href="/integrations/togrill">ToGrill</a></strong> added a button to silence the alarm, handy when your food has reached temperature and you’d rather not walk over to the grill to quiet the beeping. Thanks, <a href="https://github.com/thumbnail">@thumbnail</a>!</li>
<li><strong><a href="/integrations/watergate">Watergate</a></strong> added a switch to turn the Sonic device’s automatic leak shut-off on or off. Thanks, <a href="https://github.com/adam-the-hero">@adam-the-hero</a>!</li>
<li><strong><a href="/integrations/intelliclima">IntelliClima</a></strong> added a binary sensor that reports when the filter needs cleaning. Thanks, <a href="https://github.com/dvdinth">@dvdinth</a>!</li>
<li><strong><a href="/integrations/lyngdorf">Lyngdorf</a></strong> rounded out its debut with number entities for lip sync and channel trims, a remote entity to drive the processor’s on-screen menus, selects for RoomPerfect position and voicing, sensors for the active input and streaming source, and now-playing information with transport controls for models with a streaming module. Thanks, <a href="https://github.com/fishloa">@fishloa</a>!</li>
<li><strong><a href="/integrations/harbor">Harbor Sleep</a></strong> added a select entity to set the camera’s night mode to Auto, On, or Off, so you can control it from Home Assistant instead of the Harbor app. Thanks, <a href="https://github.com/Lash-L">@Lash-L</a>!</li>
<li><strong><a href="/integrations/neopool">NeoPool</a></strong> added a pool light entity, plus an options flow to opt in to it, since the controller can’t detect whether a light is actually wired to the relay. Thanks, <a href="https://github.com/svasek">@svasek</a>!</li>
<li><strong><a href="/integrations/unifiprotect">UniFi Protect</a></strong> can now be set up with just an API key from your UniFi OS Console, no local user account required. Select <strong>API key only (limited feature set)</strong> when adding the integration, or switch an existing entry over at any time. This first usable piece of the public API migration covers the alarm panel, cameras with their streams and snapshots, and lights. Sensors, switches, events, and media browsing are not available in this mode yet, and more platforms follow as they move over. Thanks, <a href="https://github.com/RaHehl">@RaHehl</a>!</li>
</ul>
<h3>Integration quality scale achievements</h3>
<p>One thing we are incredibly proud of in Home Assistant is our <a href="/docs/quality_scale/">integration quality scale</a>. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.</p>
<p>This release, we celebrate several <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have improved their quality scale:</p>
<ul>
<li>
<p><strong>3 integrations reached platinum</strong> 🏆</p>
<ul>
<li><a href="/integrations/google_health">Google Health</a>, thanks to <a href="https://github.com/allenporter">@allenporter</a></li>
<li><a href="/integrations/led_infrared">LED Infrared</a>, thanks to <a href="https://github.com/tr4nt0r">@tr4nt0r</a></li>
<li><a href="/integrations/wiim">WiiM</a>, thanks to <a href="https://github.com/balloob">@balloob</a> and <a href="https://github.com/Linkplay2020">@Linkplay2020</a></li>
</ul>
</li>
<li>
<p><strong>1 integration reached gold</strong> 🥇</p>
<ul>
<li><a href="/integrations/blebox">BleBox devices</a>, thanks to <a href="https://github.com/bkobus-bbx">@bkobus-bbx</a></li>
</ul>
</li>
<li>
<p><strong>1 integration reached silver</strong> 🥈</p>
<ul>
<li><a href="/integrations/ouman_eh_800">Ouman EH-800</a>, thanks to <a href="https://github.com/Markus98">@Markus98</a></li>
</ul>
</li>
</ul>
<p>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.</p>
<p>A big thank you to all the contributors involved! 👏</p>
<h3>Now available to set up from the UI</h3>
<p>While most <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> 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.</p>
<p>The following integrations are now available via the Home Assistant UI:</p>
<ul>
<li><strong><a href="/integrations/flexit">Flexit</a></strong>, done by <a href="https://github.com/troelde">@troelde</a></li>
<li><strong><a href="/integrations/netio">Netio</a></strong>, done by <a href="https://github.com/agners">@agners</a></li>
<li><strong><a href="/integrations/remember_the_milk">Remember The Milk</a></strong>, done by <a href="https://github.com/MartinHjelmare">@MartinHjelmare</a></li>
</ul>
<h3>Farewell to the following</h3>
<p>Time for a little cleaning, and no, we did not wait for spring! The following <span class="terminology">“integrations”<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> are no longer available as of this release:</p>
<ul>
<li><strong>VLC</strong> has been removed. It required direct access to your system’s audio hardware, which only worked on the deprecated <span class="terminology">Home Assistant Core<span class="terminology-tooltip">Home Assistant Core is the Python program at the heart of Home Assistant. It is part of all installation types. It can be installed standalone (without Home Assistant Supervisor) as a container using Docker (this is typically referred to as the Home Assistant Container installation type). For development, Core can also be run using a Virtual Environment (previously referred as the Home Assistant Core installation type). For production setup, the Home Assistant Core installation type is deprecated.</span></span> installation method. This does not affect the separate <a href="/integrations/vlc_telnet/">VLC via Telnet</a> integration, which remains available on any installation method.</li>
</ul>
<h2>Other noteworthy changes</h2>
<p>There is even more packed into this release. Here are some of the other changes worth a mention:</p>
<ul>
<li><strong>Settings</strong> gained a new <strong>Connectivity</strong> page that groups Matter, Zigbee, Z-Wave, KNX, MQTT, Thread, Bluetooth, Serial, Infrared, Radio frequency, Insteon, and Tags behind a single entry, instead of listing each one directly in the settings menu. Every existing link keeps working, and <strong>Voice assistants</strong> moved down to join it as the settings root’s short second group. Thanks, <a href="https://github.com/balloob">@balloob</a>!</li>
<li><strong><a href="/integrations/template">Template</a></strong> got some more love this release. Thanks, <a href="https://github.com/Petro31">@Petro31</a>!
<ul>
<li>Custom attribute templates were added to alarm control panel, button, cover, device tracker, fan, image, light, lock, number, select, switch, update, and weather entities, alongside the binary sensor, event, sensor, and vacuum platforms that already supported them.</li>
<li>The <code>attributes</code> option is now fully templatable, cutting down on repeated Jinja2 templates.</li>
<li>Trigger-based template entities now support a per-entity <code>conditions</code> option. When set, the conditions block all updates to the entity it’s attached to.</li>
</ul>
</li>
<li><strong><a href="/integrations/button">Button</a></strong> triggers can now also fire from button helpers, alongside physical device buttons. Thanks, <a href="https://github.com/abmantis">@abmantis</a>!</li>
<li><strong>Automation traces</strong> now show which entities, devices, and areas each step targeted, the same way the automation editor already does, instead of baking that information into the step’s own description. Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</li>
<li><strong><a href="/integrations/cover">Cover</a></strong> open, close, and set position actions gained an optional speed parameter, so covers that support multiple speeds can be told how fast to move, not just where to. Thanks, <a href="https://github.com/wollew">@wollew</a>!</li>
<li>The restart confirmation dialog now lists the automations and scripts currently running, instead of a vague warning that some might be interrupted. The list updates live as they start and stop. Thanks, <a href="https://github.com/karwosts">@karwosts</a>, <a href="https://github.com/MindFreeze">@MindFreeze</a>, and <a href="https://github.com/NoRi2909">@NoRi2909</a>!</li>
<li>The <strong>Energy</strong> dashboard now labels individual devices with their device name, not just the bare entity name, so devices that share a generic sensor name like <em>Energy</em> are easy to tell apart across the graphs, sankeys, and configuration list. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a> and <a href="https://github.com/silamon">@silamon</a>!</li>
<li>Dashboards gained a <strong>Background</strong> tab in their detail editor, so you can set a dashboard’s background straight from the UI instead of needing YAML. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li>Searching the media browser now also reaches media players with their own library, such as Music Assistant, Sonos, Squeezebox, and Jellyfin, instead of only searching media sources. Thanks, <a href="https://github.com/marcelveldt">@marcelveldt</a>, <a href="https://github.com/bramkragten">@bramkragten</a>, and <a href="https://github.com/silamon">@silamon</a>!</li>
</ul>
<h2>Golden hour, blue hour, and polar sun automations</h2>
<p>Rebuilding <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> around the sun has been a slow-burn project, and this release wraps it up. <a href="/blog/2026/07/01/release-20267/">2026.7</a> replaced the old, offset-heavy sun <span class="terminology">trigger<span class="terminology-tooltip">A trigger is the part of an automation that makes the automation start when something specific happens, for example, when the sun sets, a door opens, or a button is pressed.<a class="terminology-link" href="/docs/automation/trigger/"> [Learn more]</a></span></span> with dedicated ones for sunrise, sunset, solar noon, solar midnight, dawn, dusk, and elevation changes, plus matching <span class="terminology">conditions<span class="terminology-tooltip">Conditions check whether something is true at that moment, for example, whether a door is closed. You can use them in automations and scripts. If a condition is not met, the actions that come after it in the same sequence do not run. At the top level of an automation or script, this stops the automation or script.<a class="terminology-link" href="/docs/automation/condition/"> [Learn more]</a></span></span> like <em>is up</em>, <em>is night</em>, and <em>twilight</em>. <a href="/blog/2026/08/05/release-20268/">2026.8</a> then added a time-based offset option to those triggers, the same way the calendar trigger already works, so you can fire an automation a set amount of time before or after a sun event.</p>
<p>This release adds the last of it to the <strong><a href="/integrations/sun">Sun</a></strong> integration: four new conditions and eight matching triggers for <em>golden hour</em>, <em>blue hour</em>, <em>midnight sun</em>, and <em>polar night</em>. Golden hour and blue hour are the warm and cool light either side of sunrise and sunset, handy for automations that match your lighting to the mood outside, or close the blinds before direct sun hits a room. Each one can be limited to morning, evening, or either.</p>
<p>Farther from the equator, <em>midnight sun</em> and <em>polar night</em> cover the more extreme stretches of the year: the sun staying above the horizon for a full day around midsummer, or below it for a full day around midwinter. Both now have their own condition and start and end triggers too, so automations that only make sense at high latitudes finally have something to hook into.</p>
<p>Thanks, <a href="https://github.com/emontnemery">@emontnemery</a>!</p>
<h2>Accessibility for charts!</h2>
<p>Making Home Assistant work for everyone isn’t a one-off project for us, it shows up release after release. Better color contrast and clearer buttons landed in <a href="/blog/2025/08/06/release-20258/">2025.8</a>, clearer status indicators for people who can’t rely on color alone arrived in <a href="/blog/2026/07/01/release-20267/">2026.7</a>, and this release, it’s charts’ turn.</p>
<p>Charts render straight to a single image, which means every data point on them has been invisible to screen readers and unreachable by keyboard. If you rely on either, a chart in Home Assistant might as well not have been there at all.</p>
<p>That changes this release. Tab into a chart and it becomes a real focus stop: the arrow keys walk you through it point by point, and a live region announces the time and value of each one to your screen reader. Press <kbd>H</kbd> at any point to bring up a list of every shortcut, styled to match your own theme.</p>
<p>Here’s the best part: as you move through a chart, Home Assistant also plays a short tone for each point, rising and falling with the data. You don’t just hear the individual numbers, you hear the shape of the whole trend, like a little melody. 🎵 It plays for anyone navigating a chart by keyboard, not only people using a screen reader, since there is no reliable way to know who needs it, so it’s on for everyone.</p>
<p><lite-youtube videoid="ox2lxlqeYAo" videotitle="Home Assistant 2026.9: Accessible charts, navigated by keyboard and sound"></lite-youtube></p>
<p>This works on your line and bar charts, including the device breakdown on the <strong>Energy</strong> dashboard. A few more specialized ones, like timelines, sankey diagrams, and network graphs, aren’t covered yet.</p>
<p>Thanks to <a href="https://github.com/MindFreeze">@MindFreeze</a> for bringing this to charts!</p>
<h2>Serial and MQTT panels</h2>
<p>Serial joins the other protocol panels under <strong>Settings</strong> &gt; <strong>Connectivity</strong>, the same recognition <a href="/blog/2026/04/01/release-20264/#infrared-becoming-a-first-class-citizen-of-home-assistant">infrared</a> and <a href="/blog/2026/05/06/release-20265/#radio-frequency-joins-infrared-as-a-first-class-citizen">radio frequency</a> got over the last two releases. Once anything is using a serial port, whether that’s a USB dongle like a Zigbee or <span class="terminology">Thread<span class="terminology-tooltip">Thread is a low-power mesh networking standard that is specifically designed for smart home applications. It is a protocol that defines how devices communicate.<a class="terminology-link" href="/integrations/thread/"> [Learn more]</a></span></span> radio, or an <span class="terminology">app<span class="terminology-tooltip">Apps are additional standalone third-party software packages that can be installed on Home Assistant OS.<a class="terminology-link" href="/getting-started/concepts-terminology/#apps"> [Learn more]</a></span></span> talking to one, the new <strong>Serial</strong> page lists it.</p>
<p>It splits what it finds into three groups: ports actually in use by an integration or app, ports that are connected but not used by anything, and ports something expects but that aren’t currently plugged in. A status banner at the top gives you the numbers at a glance, so if a stick has come loose or an app lost its connection, you see it the moment you open the page instead of hunting through logs.</p>
<img alt="Screenshot of the new Serial panel, with a status banner at the top and the connected serial ports, showing which integrations and apps use each one." class="no-shadow" src="/images/blog/2026-09/serial-panel.png"/>
<p>This rounds out the trio planned in <a href="https://github.com/OpenHomeFoundation/roadmap/issues/173">an Open Home Foundation roadmap opportunity</a>: serial, infrared, and radio frequency all have their own place in Settings now.</p>
<p>Thanks to <a href="https://github.com/puddly">@puddly</a>, who built this end to end, panel and all!</p>
<p><strong><a href="/integrations/mqtt">MQTT</a></strong> got a settings page of its own this release too, sitting right alongside <strong>Serial</strong> and <strong>Bluetooth</strong> in <strong>Connectivity</strong> instead of hiding its tools behind the integration’s options. A status banner at the top shows whether the broker is online and how many devices it’s found, with quick links to the devices and entities on your network. Discovery options and the broker connection settings each get their own row instead of sharing one options flow, and a new <strong>Publish a packet</strong> tool lets you send a test message, topic, QoS, and retain flag included, straight from the page, with a code editor for the payload. The topic subscribe view also now formats incoming messages as code, with a copy button. Thanks, <a href="https://github.com/jbouwh">@jbouwh</a>!</p>
<h2>How full is your network storage?</h2>
<p>The <strong>Storage</strong> page in Settings has always shown which network shares you have connected, like a NAS for <span class="terminology">backups<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span> or media, but not how full each one actually was, so there was no early warning before one quietly ran out of room.</p>
<p>Each active mount now gets a small usage bar and a “{used} of {total} used” line. Rows appear immediately, and each bar fills in as soon as its own request comes back, so one slow or unreachable share never holds up the rest of the list. The bar also changes color as it fills, amber past 85% used and red past 95%, so you get a heads-up before you actually run out of space. A mount that’s currently unreachable just shows no usage bar; it already gets its own warning treatment.</p>
<img alt="Screenshot of the Network storage section on the Storage page, listing three network mounts with usage bars, one of them nearly full and shown in red." class="no-shadow" src="/images/blog/2026-09/network-storage-space.png"/>
<p>Thanks to <a href="https://github.com/MindFreeze">@MindFreeze</a> and <a href="https://github.com/silamon">@silamon</a> for keeping an eye on this!</p>
<h2>Patch releases</h2>
<p>We will also release patch releases for Home Assistant 2026.9 in September.
These patch releases only contain bug fixes. Our goal is to release a patch
release once a week, aiming for Friday.</p>
<h3>2026.9.1 - September 5</h3>
<ul>
<li>Fix SMTP attaching valid images as files when content sniffing fails (<a href="https://github.com/Chang-Jin-Lee">@Chang-Jin-Lee</a> - <a href="https://github.com/home-assistant/core/pull/176774">#176774</a>)</li>
<li>Warn that removing an app deletes its data in repair flows (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/181009">#181009</a>)</li>
<li>Fix receive backup streaming (<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/181012">#181012</a>)</li>
<li>Fix potential deadlock in receive_file backup util (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/181070">#181070</a>)</li>
<li>Add missing state_class for miele filling level sensors (<a href="https://github.com/astrandb">@astrandb</a> - <a href="https://github.com/home-assistant/core/pull/181093">#181093</a>)</li>
<li>Update python-roborock to 7.2.3 (<a href="https://github.com/Lash-L">@Lash-L</a> - <a href="https://github.com/home-assistant/core/pull/181096">#181096</a>)</li>
<li>Bump vizaio to 0.6.1 for vizio state_extended 404 fallback fix (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/181131">#181131</a>)</li>
<li>Stop rounding Amber Electric prices to 2 decimal places (<a href="https://github.com/romeovan">@romeovan</a> - <a href="https://github.com/home-assistant/core/pull/181157">#181157</a>)</li>
<li>Fix host override ignored in UniFi Protect public-only mode (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/181176">#181176</a>)</li>
<li>Purge unreachable deleted devices on device registry load (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/181207">#181207</a>)</li>
<li>Bump pydaikin to 2.19.1 (hotfix) (<a href="https://github.com/GhislainC">@GhislainC</a> - <a href="https://github.com/home-assistant/core/pull/181219">#181219</a>)</li>
<li>Fix Besen config flow schema serialization (<a href="https://github.com/moryoav">@moryoav</a> - <a href="https://github.com/home-assistant/core/pull/181223">#181223</a>)</li>
<li>Speed up lookup of colliding orphans in device registry (<a href="https://github.com/arturpragacz">@arturpragacz</a> - <a href="https://github.com/home-assistant/core/pull/181244">#181244</a>)</li>
<li>Revert orjson to 3.11.9 (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/181245">#181245</a>)</li>
<li>Bump aioflo to 2026.9.3 and scope Flo consumption by device (<a href="https://github.com/BradKollmyer">@BradKollmyer</a> - <a href="https://github.com/home-assistant/core/pull/181246">#181246</a>)</li>
<li>Bump serialx to 1.10.0 (<a href="https://github.com/puddly">@puddly</a> - <a href="https://github.com/home-assistant/core/pull/181249">#181249</a>)</li>
<li>Bump env-canada to 0.19.2 (<a href="https://github.com/michaeldavie">@michaeldavie</a> - <a href="https://github.com/home-assistant/core/pull/181250">#181250</a>)</li>
<li>Bump python-hotspring to 2.1.0 (hotfix) (<a href="https://github.com/Moustachauve">@Moustachauve</a> - <a href="https://github.com/home-assistant/core/pull/181256">#181256</a>)</li>
<li>Bump samsung-exlink to 1.1.1 (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/181260">#181260</a>)</li>
<li>Reject Hot Spring Spa Network Adapter (SNA) in config flow (hotfix) (<a href="https://github.com/Moustachauve">@Moustachauve</a> - <a href="https://github.com/home-assistant/core/pull/181261">#181261</a>)</li>
<li>Update knx-frontend to 2026.9.4.63549 (<a href="https://github.com/farmio">@farmio</a> - <a href="https://github.com/home-assistant/core/pull/181268">#181268</a>)</li>
<li>Allow empty motionEye usernames (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/181270">#181270</a>)</li>
<li>Handle Tradfri devices without a firmware version (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/181276">#181276</a>)</li>
<li>Update frontend to 20260826.6 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/181293">#181293</a>)</li>
<li>Bump reolink_aio to 0.21.15 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/181300">#181300</a>)</li>
<li>Bump pylitterbot to 2025.6.5 (<a href="https://github.com/natekspencer">@natekspencer</a> - <a href="https://github.com/home-assistant/core/pull/181346">#181346</a>)</li>
<li>Bump uiprotect to 16.6.1 (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/180670">#180670</a>)</li>
</ul>
<h3>2026.9.2 - September 11</h3>
<ul>
<li>Normalize Hive auth username before login (<a href="https://github.com/Oluwatobi-Mustapha">@Oluwatobi-Mustapha</a> - <a href="https://github.com/home-assistant/core/pull/168827">#168827</a>)</li>
<li>Don’t mutate the module level Roomba SENSORS list (<a href="https://github.com/jasondillingham">@jasondillingham</a> - <a href="https://github.com/home-assistant/core/pull/181107">#181107</a>)</li>
<li>Fix Openhome players becoming unavailable between polls (<a href="https://github.com/bazwilliams">@bazwilliams</a> - <a href="https://github.com/home-assistant/core/pull/181238">#181238</a>)</li>
<li>Clear webostv source when the current app is not in the source list (<a href="https://github.com/darkrain-nl">@darkrain-nl</a> - <a href="https://github.com/home-assistant/core/pull/181381">#181381</a>)</li>
<li>Bump adext to 0.4.7 (<a href="https://github.com/Chang-Jin-Lee">@Chang-Jin-Lee</a> - <a href="https://github.com/home-assistant/core/pull/181384">#181384</a>)</li>
<li>Bump midea-local to 11.0.1 (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/181405">#181405</a>)</li>
<li>Drop the unknown-app sentinel from vizio app_name on non-app inputs (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/181417">#181417</a>)</li>
<li>Add l/min unit mapping to nibe_heatpump sensors (<a href="https://github.com/frankkopp">@frankkopp</a> - <a href="https://github.com/home-assistant/core/pull/181433">#181433</a>)</li>
<li>Bump airos to 0.6.12 (<a href="https://github.com/CoMPaTech">@CoMPaTech</a> - <a href="https://github.com/home-assistant/core/pull/181473">#181473</a>)</li>
<li>Bump gcal-sync to 9.1.1 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181499">#181499</a>)</li>
<li>Add volume filter DF Portainer (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/181510">#181510</a>)</li>
<li>Bump satel_integra to 1.4.0 (<a href="https://github.com/Tommatheussen">@Tommatheussen</a> - <a href="https://github.com/home-assistant/core/pull/180960">#180960</a>)</li>
<li>Bump satel-integra to 1.5.0 (<a href="https://github.com/Tommatheussen">@Tommatheussen</a> - <a href="https://github.com/home-assistant/core/pull/181523">#181523</a>)</li>
<li>Bump aiortm to 0.20.1 (<a href="https://github.com/MartinHjelmare">@MartinHjelmare</a> - <a href="https://github.com/home-assistant/core/pull/181524">#181524</a>)</li>
<li>Fix unique_id for service entities in Alexa Devices (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/181526">#181526</a>)</li>
<li>Handle monitoring failure for Satel Integra (<a href="https://github.com/Tommatheussen">@Tommatheussen</a> - <a href="https://github.com/home-assistant/core/pull/181548">#181548</a>)</li>
<li>Fix Vizio soundbars requiring authentication (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/181556">#181556</a>)</li>
<li>Bump vizaio to 0.6.2 (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/181562">#181562</a>)</li>
<li>Improve error messages in remote_calendar (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181571">#181571</a>)</li>
<li>Update local_todo to explicitly specify UTF-8 encoding for ICS storage (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181578">#181578</a>)</li>
<li>Repair local_todo malformed ICS files with CRLF newlines on setup (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181581">#181581</a>)</li>
<li>Redact credentials from go2rtc server log output (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/181583">#181583</a>)</li>
<li>Fix MCP client double initialize in config flow (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181594">#181594</a>)</li>
<li>Increase HTTP timeout in remote_calendar (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181599">#181599</a>)</li>
<li>Bound Tesla Fleet vehicle first refresh with a timeout (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/181606">#181606</a>)</li>
<li>Bump ZHA to 2.2.2, zha-quirks to 2.2.2 (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/181610">#181610</a>)</li>
<li>Retry ViCare setup when the API quota is spent (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/181629">#181629</a>)</li>
<li>Bump actron-neo-api to 0.5.16 (<a href="https://github.com/kclif9">@kclif9</a> - <a href="https://github.com/home-assistant/core/pull/181639">#181639</a>)</li>
<li>Rename Xbox follower sensor name to ‘Followers’ (<a href="https://github.com/neyzm">@neyzm</a> - <a href="https://github.com/home-assistant/core/pull/181654">#181654</a>)</li>
<li>Fix shared wakelock across Tesla Fleet vehicles (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/181658">#181658</a>)</li>
<li>Nest climate: recompute supported_features from live device traits (<a href="https://github.com/rqi14">@rqi14</a> - <a href="https://github.com/home-assistant/core/pull/181660">#181660</a>)</li>
<li>Bump waterfurnace to 1.9.0 (<a href="https://github.com/sdague">@sdague</a> - <a href="https://github.com/home-assistant/core/pull/181746">#181746</a>)</li>
<li>Bump python-roborock to 7.4.1 (<a href="https://github.com/piitaya">@piitaya</a> - <a href="https://github.com/home-assistant/core/pull/181754">#181754</a>)</li>
<li>Retry sftp_storage setup when the SSH connection fails (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/181769">#181769</a>)</li>
<li>Stream usage prediction events instead of loading them into memory (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/181770">#181770</a>)</li>
<li>Bump pyatag to 0.3.7.1 (<a href="https://github.com/JamieMagee">@JamieMagee</a> - <a href="https://github.com/home-assistant/core/pull/181796">#181796</a>)</li>
<li>Do not fail esphome setup when Supervisor is not ready (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/181805">#181805</a>)</li>
<li>Report UniFi WAN latency as unknown when a monitor is unresponsive (<a href="https://github.com/sdelmas">@sdelmas</a> - <a href="https://github.com/home-assistant/core/pull/181809">#181809</a>)</li>
<li>Bump PyViCare to 2.62.1 (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/181830">#181830</a>)</li>
<li>Bump reolink_aio to 0.21.16 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/181861">#181861</a>)</li>
<li>Use PKCE for Weheat OAuth2 authorization (<a href="https://github.com/barryvdh">@barryvdh</a> - <a href="https://github.com/home-assistant/core/pull/181881">#181881</a>)</li>
<li>Bump python-roborock to 7.4.2 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181907">#181907</a>)</li>
<li>Preserve form values on error in Remote Calendar config flow (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/181908">#181908</a>)</li>
<li>Fix MELCloud Home energy interval (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/181937">#181937</a>)</li>
<li>bump pyenphase to 4.0.3 (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/181940">#181940</a>)</li>
<li>Update frontend to 20260826.7 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/181950">#181950</a>)</li>
</ul>
<h3>2026.9.3 - September 18</h3>
<ul>
<li>Fix EnergyZero market price regression (<a href="https://github.com/klaasnicolaas">@klaasnicolaas</a> - <a href="https://github.com/home-assistant/core/pull/181230">#181230</a>)</li>
<li>Require the IRK in the Private BLE Device config flow (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/181969">#181969</a>)</li>
<li>Keep the known Bond host when zeroconf still announces it (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/181975">#181975</a>)</li>
<li>Fix function name in external statistics mean_type message (<a href="https://github.com/Booyaka101">@Booyaka101</a> - <a href="https://github.com/home-assistant/core/pull/182031">#182031</a>)</li>
<li>Fix Matter cover entity not created when tilt attribute is null for Shelly devices (<a href="https://github.com/jowi24">@jowi24</a> - <a href="https://github.com/home-assistant/core/pull/182042">#182042</a>)</li>
<li>Bump holidays to 0.104 (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/182044">#182044</a>)</li>
<li>Bump pylutron to 0.4.4 (<a href="https://github.com/cdheiser">@cdheiser</a> - <a href="https://github.com/home-assistant/core/pull/182049">#182049</a>)</li>
<li>Make Nest climate turn_on idempotent (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/182086">#182086</a>)</li>
<li>Increase Hot Spring polling interval to 60 seconds (<a href="https://github.com/Moustachauve">@Moustachauve</a> - <a href="https://github.com/home-assistant/core/pull/182150">#182150</a>)</li>
<li>Fix Google Tasks error handling on DNS failure (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/182195">#182195</a>)</li>
<li>Fix Alexa doorbell raises error in state report becase the return status is NO_CONTENT (<a href="https://github.com/jbouwh">@jbouwh</a> - <a href="https://github.com/home-assistant/core/pull/182209">#182209</a>)</li>
<li>Bump hassil to 3.12.1 (<a href="https://github.com/synesthesiam">@synesthesiam</a> - <a href="https://github.com/home-assistant/core/pull/182213">#182213</a>)</li>
<li>Encrypt and decrypt supervisor.tar in backup rewrites (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/182220">#182220</a>)</li>
<li>Bump waterfurnace to 1.9.2 (<a href="https://github.com/sdague">@sdague</a> - <a href="https://github.com/home-assistant/core/pull/182019">#182019</a>)</li>
<li>Bump waterfurnace to 1.9.7 (<a href="https://github.com/sdague">@sdague</a> - <a href="https://github.com/home-assistant/core/pull/182263">#182263</a>)</li>
<li>Redact the AirVisual API key in debug logging (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182280">#182280</a>)</li>
<li>Fix Spotify reauth crash when config entry data lacks “id” (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/182290">#182290</a>)</li>
<li>Validate username during onboarding before creating a new user (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/182320">#182320</a>)</li>
<li>Fix missing f-string prefix in wiz error message (<a href="https://github.com/David-Wu1119">@David-Wu1119</a> - <a href="https://github.com/home-assistant/core/pull/182363">#182363</a>)</li>
<li>Fix IMAP custom data event template option not reset when cleared (<a href="https://github.com/jbouwh">@jbouwh</a> - <a href="https://github.com/home-assistant/core/pull/182377">#182377</a>)</li>
<li>Fix duplicate devices in Airthings BLE on incomplete read (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/182417">#182417</a>)</li>
<li>Log exception when api fails in WAQI (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/182419">#182419</a>)</li>
<li>bump aioamazondevices to 15.2.0 (<a href="https://github.com/jamesonuk">@jamesonuk</a> - <a href="https://github.com/home-assistant/core/pull/182204">#182204</a>)</li>
<li>Bump aioamazondevices to 16.3.0 (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/182438">#182438</a>)</li>
<li>Bump reolink_aio to 0.21.17 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/182472">#182472</a>)</li>
</ul>
<h3>2026.9.4 - September 27</h3>
<ul>
<li>Turn off Tuya fans when the speed is set to 0% (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/181972">#181972</a>)</li>
<li>Fix Todoist timed calendar event duration (<a href="https://github.com/andremmfaria">@andremmfaria</a> - <a href="https://github.com/home-assistant/core/pull/182121">#182121</a>)</li>
<li>Fix ISEO Argo BLE offering unrelated devices for discovery (<a href="https://github.com/FezVrasta">@FezVrasta</a> - <a href="https://github.com/home-assistant/core/pull/182315">#182315</a>)</li>
<li>Bump pyenphase to 4.0.5 (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/182473">#182473</a>)</li>
<li>Make HTTP security filter scan cost track request target length (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182570">#182570</a>)</li>
<li>Fix HomematicIP Cloud config flow advancing on a rejected PIN (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/182601">#182601</a>)</li>
<li>Fix friends’ achievement stats in Xbox integration (<a href="https://github.com/scardus">@scardus</a> - <a href="https://github.com/home-assistant/core/pull/182686">#182686</a>)</li>
<li>Fix typo in the Z-Wave controller statistics key (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/182827">#182827</a>)</li>
<li>Log the entity ID in the MQTT group member update message (<a href="https://github.com/David-Wu1119">@David-Wu1119</a> - <a href="https://github.com/home-assistant/core/pull/182928">#182928</a>)</li>
<li>Bump pyenphase to 4.0.6 (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/183094">#183094</a>)</li>
<li>Handle MissingSerial during OpenEVSE entry setup (<a href="https://github.com/firstof9">@firstof9</a> - <a href="https://github.com/home-assistant/core/pull/183105">#183105</a>)</li>
<li>Bump imgw_pib to 2.5.2 (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/183111">#183111</a>)</li>
<li>Bump python-xbox to 0.2.2 (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/182072">#182072</a>)</li>
<li>Bump python-xbox to 0.3.0 (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/182643">#182643</a>)</li>
</ul>
<h2>Need help? Join the community</h2>
<p>Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!</p>
<p>Our very active <a href="/join-chat">Discord chat server</a> is an excellent place to be, and don’t forget to join our amazing <a href="https://community.home-assistant.io/">forums</a>.</p>
<p>Found a bug or issue? Please report it in our <a href="https://github.com/home-assistant/core/issues">issue tracker</a> to get it fixed! Or check <a href="/help">our help page</a> for guidance on more places you can go.</p>
<p>Are you more into email? <a href="/newsletter">Sign up for the Open Home Foundation Newsletter</a> to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.</p>
<h2>Backward-incompatible changes</h2>
<p>We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.</p>
<p>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:</p>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Flexit Nordic (BACnet)</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_0">
<p>The deprecated fireplace mode switch entity has been removed. If you have <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> that use <code>switch.&lt;device&gt;_fireplace_mode</code>, use the <code>climate.set_preset_mode</code> action on the Flexit climate entity with <code>preset_mode: fireplace</code> instead.</p>
<p>(<a href="https://github.com/magnusoverli">@magnusoverli</a> - <a href="https://github.com/home-assistant/core/pull/179272">#179272</a>) (<a href="/integrations/flexit_bacnet/">Flexit Nordic (BACnet) documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>KNX</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_1">
<p>KNX exposes no longer send an entity’s first value to the KNX bus. Previously, this depended on timing: if the entity already had a value when the expose was set up, nothing was sent, but if the value arrived later, it was sent to the bus right away.</p>
<p>Now, both cases behave the same way. The first value is adopted locally without sending a telegram, but stays available for read requests and periodic sending. Later value changes are still sent as before.</p>
<p>To send the first value right away, turn on <strong>Send on initialization</strong> for the expose in the KNX panel, or set <code>send_on_init: true</code> in your YAML configuration.</p>
<p>(<a href="https://github.com/Kolbi">@Kolbi</a> - <a href="https://github.com/home-assistant/core/pull/178793">#178793</a>) (<a href="/integrations/knx/">KNX documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>LLM APIs</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_2">
<p>LLM tool names are now prefixed with the domain of the integration that offers them. For example, <code>GetLiveContext</code> becomes <code>homeassistant__GetLiveContext</code> and <code>HassTurnOn</code> becomes <code>intent__HassTurnOn</code>. If you have a custom prompt that names a tool directly, update it to use the new prefixed name.</p>
<p>(<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/179938">#179938</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Persistent Notification</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_3">
<p>Updating a persistent notification that already exists now triggers an <code>update_type</code> of <code>updated</code> instead of <code>added</code>. If you have an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> that triggers on an <code>update_type</code> of <code>added</code> to catch every new or changed notification, add <code>updated</code> to the list of types it triggers on.</p>
<p>(<a href="https://github.com/davidlang42">@davidlang42</a> - <a href="https://github.com/home-assistant/core/pull/171067">#171067</a>) (<a href="/integrations/persistent_notification/">Persistent Notification documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>UniFi Protect</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_4">
<p>The smart detection switches (for example Detections: Person, Detections: Vehicle, and the audio alarm toggles) are no longer hidden while recording is disabled. They now stay available and follow the same public API as the other camera configuration switches. Their entity IDs and what happens when you toggle them are unchanged.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/174963">#174963</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
<p>UniFi Protect 7.2.105 or newer is now required. On an older version, the integration stops setting up and tells you to update. Update UniFi Protect, then <span class="terminology">reload<span class="terminology-tooltip">Applies the changes made to Home Assistant configuration files. Changes are normally automatically updated. However, changes made outside of the front end will not be reflected in Home Assistant and require a reload.<a class="terminology-link" href="/common-tasks/general/restarting/#reloading-the-yaml-configuration"> [Learn more]</a></span></span> the integration.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/179954">#179954</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Update</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_5">
<p>Installing an <span class="terminology">update<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span>, skipping an update, and clearing a skipped update now require an administrator account. These are configuration-level actions, so they are now restricted to admins, like other sensitive actions in Home Assistant.</p>
<p><span class="terminology">Automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> are not affected, because they run without a user context. A <span class="terminology">script<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> runs in the context of the user who started it, so a script that installs or skips an update now fails when a non-admin user starts it. Trigger it from an automation instead, or start it as an admin.</p>
<p>(<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/178232">#178232</a>) (<a href="/integrations/update/">Update documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Vacuum</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_6">
<p>The deprecated <code>battery_level</code> property has been removed from the base vacuum entity. All core vacuum integrations were already migrated in Home Assistant 2026.8. If a custom integration still sets this property, it no longer reports a battery level; add a separate battery sensor instead.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175682">#175682</a>) (<a href="/integrations/vacuum/">Vacuum documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Z-Wave JS</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_7">
<p>The Z-Wave actions to manage lock users and credentials (<code>set_user</code>, <code>delete_user</code>, <code>delete_all_users</code>, <code>set_credential</code>, <code>delete_credential</code>, and <code>delete_all_credentials</code>) now require an administrator account.</p>
<p>(<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/177300">#177300</a>) (<a href="/integrations/zwave_js/">Z-Wave JS documentation</a>)</p>
</div>
</details>
</div>
<p>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 <a href="https://developers.home-assistant.io/blog/">developer blog</a>. The following changes are the most notable for this release:</p>
<ul>
<li><a href="https://developers.home-assistant.io/blog/2026/08/31/deprecate-configurator">Configurator integration is now deprecated</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/08/19/device-registry-websocket-api-changes">Device registry WebSocket API changes</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/08/24/device-registry-follow-up-changes">More device registry deprecations, new helpers and validation</a></li>
</ul>
<h2>All changes</h2>
<p>Of course, there is a lot more in this release. You can find a list of all changes made here: <a href="/changelogs/core-2026.9">Full changelog for Home Assistant Core 2026.9</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Anonymous and open to all: The Home Assistant survey dataset]]></title>
    <link href="https://www.openhomefoundation.org/blog/home-assistant-survey-dataset/"/>
    <updated>2026-08-26T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/08/26/community-survey-2024-results</id>
    <content type="html"><![CDATA[<p>Our <em>why</em> as an organization is clear: to fight for privacy, choice, and sustainability for smart homes, and for every person who lives in one. But who <em>does</em> live in them?</p>
<p>In December 2024, we <a href="https://www.home-assistant.io/blog/2024/12/16/community-survey-2024/">launched the first Home Assistant survey</a> to find out. Our goal was simple: to make Home Assistant more inclusive and approachable by listening directly to the diverse community of people who use it.</p>
<p>In the spirit of building in the open, today we’re thrilled to announce the anonymized results of that survey are now freely available. In this post, we’ll run you through what the survey covered, why and how we’re publishing this data, what the data is not (read: identifiable), how we’re using this information to improve what we do, and opportunities for further understanding and research.<!--more--></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Community Day 2026: Save the date!]]></title>
    <link href="https://www.openhomefoundation.org/blog/community-day-2026-save-the-date/"/>
    <updated>2026-08-13T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/08/13/community-day-2026-save-the-date</id>
    <content type="html"><![CDATA[<article class="post content"><p>You’ve been asking all year, and the wait is over… Mark your calendars, because <a href="https://luma.com/communityday2026" rel="noopener noreferrer" target="_blank">Community Day 2026</a> will be held on Saturday, November 7! 🎉</p>
<p>We’ve made some exciting changes this year, so read on for a sneak peek 👀</p>
<!--more-->
<h2 id="you-asked-we-listened">You asked, we listened</h2>
<p>In May 2025, we held the first-ever Home Assistant Community Day. It was a labor of love of mine, and its success cannot be overstated. I <a href="https://www.home-assistant.io/blog/2025/06/24/community-day-2025-wrap-up/" rel="noopener noreferrer" target="_blank">published a blog</a> about this milestone a month after the day was held, detailing our learnings from coordinating a worldwide event. One of the clearest takeaways was that organizers needed more lead time to plan and promote their local events – and that’s exactly why I’m publishing this blog today 😌</p>
<img alt="A packed room of attendees seated and standing at a Home Assistant Community Day meetup." src="/assets/images/blog/community-day-2026-save-the-date/image1.webp" style="border: 0;box-shadow: none;"/>
<p><em>Packed rooms at last year’s event!</em></p>
<p>Same as last time round, this year’s event is being held on a Saturday, and we worked <em>very hard</em> to choose a date that would have the least impact on regional holidays. That said, a few things have also changed since last year, and we wanted to get you up to speed.</p>
<h2 id="come-one-come-all">Come one, come all</h2>
<p>You may notice a couple things are different this year. The most obvious one being that this is posted on the Open Home Foundation blog and not just the Home Assistant blog. If you’re wondering why, that’s because this year we decided we needed to include the communities from <em>all</em> of the foundation’s major projects and not focus so heavily on Home Assistant. So if you’re only interested in hosting an ESPHome or Music Assistant meetup for this year’s Community Day, you can now do so without feeling like it doesn’t belong on our calendar.</p>
<h2 id="a-palette-for-the-people">A palette for the people</h2>
<p>The more subtle change this year is that I’ve asked our very talented graphic designers to update the event’s color palette to more broadly represent the Open Home Foundation. We decided to work with the same color palette we use across our websites for one of the foundation’s three core principles: sustainability. I chose this because the community ✨ sustains ✨ us at the foundation (<em>yes, I think I am very funny</em> 🤭).</p>
<h2 id="hosts-hit-send">Hosts: Hit send!</h2>
<p>Since Luma has honored your contact preferences, we can’t rely on it to reach out to everyone who hosted a meetup for last year’s Community Day. So if that’s you, <a href="/cdn-cgi/l/email-protection#2744484a4a52494e535e67485742494f484a42414852494346534e484909485540">please contact us</a>! We’ve created a <a href="https://discord.com/channels/330944238910963714/1537054268933144677" rel="noopener noreferrer" target="_blank">Discord channel</a> for you to post in and we want to make sure you have a role specific to your, well, role in meetups!</p>
<p>And on the subject of supporting hosts, there’s a lot that’s new this year to ensure your day runs smoothly. We’ll have a dedicated website that will update dynamically when new meetups are added to the Luma calendar, with updated reimbursement guidelines, a merch request form, and a Host Playbook for guidance on hosting your local meetup 👏</p>
<h2 id="lets-get-specific-in-september">Let’s get specific… in September</h2>
<p>In early September, we’ll have all the details ready for you, including opening up submissions on the Community Day Luma calendar, all the graphic assets, and the event’s website up and running for everyone to get started. Just let us get through <a href="/blog/ifa-berlin-2026-save-the-date/">IFA Berlin</a> first 😅</p>
</article>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Get ready to start building: The ESPHome Starter Kit is here!]]></title>
    <link href="https://esphome.io/blog/2026/08/12/the-esphome-starter-kit-is-here/"/>
    <updated>2026-08-12T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/08/12/the-esphome-starter-kit-is-here</id>
    <content type="html"><![CDATA[<main class="astro-vdxcvpsm" data-pagefind-body="" dir="ltr" lang="en"><div class="content-panel astro-oil7k7jf"><div class="sl-container astro-oil7k7jf"><h1 class="astro-2sm4b3ln" id="_top">Get ready to start building: The ESPHome Starter Kit is here!</h1></div></div><div class="content-panel astro-oil7k7jf"><div class="sl-container astro-oil7k7jf"><div class="sl-markdown-content"><figure class="astro-uvqvkfg3"><img alt="Get ready to start building: The ESPHome Starter Kit is here!" class="astro-uvqvkfg3" decoding="async" height="525" loading="eager" src="/_astro/starter-kit-hero.C0VGjFGr_WudTx.webp" width="1000"/></figure><div class="metadata not-content astro-zrjirpgi"><div class="dates astro-zrjirpgi"><time class="astro-zrjirpgi" datetime="2026-08-12T00:00:00.000Z">Aug 12, 2026</time></div></div><p>Back in April during State of the Open Home 2026, we gave you a sneak peek of ESPHome’s <em>very first</em> official
product… And after months of hard work alongside the community, the <a href="/starter-kit/">ESPHome Starter Kit</a> is here! 🎉</p>
<p>Designed and produced by <a href="https://apolloautomation.com/" rel="noreferrer noopener" target="_blank">Apollo Automation</a>, the
<a href="https://www.openhomefoundation.org/" rel="noreferrer noopener" target="_blank">Open Home Foundation’s</a> second commercial partner, the kit is the easiest way
to start building your own smart home devices. Affordable and packed with all the components you need, the Starter
Kit invites <em>everyone</em>, not just seasoned tinkerers, to begin building.</p>
<figure class="captioned-image astro-khyig4bw"><img alt="ESPHome Starter Kit modules on a table, with the ESPHome logo shaped notification module illuminated by rainbow LED lights." class="astro-khyig4bw" data-astro-image="constrained" data-astro-image-fit="cover" data-astro-image-pos="center" decoding="async" height="667" loading="lazy" sizes="(min-width: 1000px) 1000px, 100vw" src="/_astro/starter-kit-glowing-modules.DOUeChav_Z1yCJSQ.webp" srcset="/_astro/starter-kit-glowing-modules.DOUeChav_Z21pxu6.webp 480w, /_astro/starter-kit-glowing-modules.DOUeChav_1PlRg5.webp 768w, /_astro/starter-kit-glowing-modules.DOUeChav_Z1yCJSQ.webp 1000w" width="1000"/><figcaption class="astro-khyig4bw"><span class="astro-khyig4bw">A tiny house for big ideas.</span></figcaption></figure>
<div class="sl-heading-wrapper level-h2"><h2 id="time-to-start-creating">Time to start creating</h2><a class="sl-anchor-link" href="#time-to-start-creating"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Time to start creating”</span></a></div>
<p>Ever wanted to build your own smart home device, but didn’t know where to begin? Between chips, pins, soldering
irons, and breadboards – sourcing the right hardware can stop a project getting off the ground. Not to mention time
spent ensuring the parts are compatible, and working out how to wire them together.</p>
<p>That’s where the Starter Kit comes in. With no soldering, breadboarding, or coding experience needed, the kit
equips you with all you need to stop just using smart home tech, and start <em>creating</em> it.</p>
<a class="sl-link-button not-content primary product-buy-now astro-hlbqph7b" href="/starter-kit/#buy">Buy now</a>
<div class="sl-heading-wrapper level-h2"><h2 id="whats-in-the-box">What’s in the box?</h2><a class="sl-anchor-link" href="#whats-in-the-box"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “What’s in the box?”</span></a></div>
<figure class="captioned-image astro-khyig4bw"><img alt="The ESPHome Starter Kit box next to its unboxed contents: notification module, main board, motion sensor, button module, ribbon cables, and stand, arranged on a wooden surface." class="astro-khyig4bw" data-astro-image="constrained" data-astro-image-fit="cover" data-astro-image-pos="center" decoding="async" height="672" loading="lazy" sizes="(min-width: 670px) 670px, 100vw" src="/_astro/starter-kit-unboxed.hgwjyefn_Z1PM86j.webp" srcset="/_astro/starter-kit-unboxed.hgwjyefn_Z6eFf0.webp 480w, /_astro/starter-kit-unboxed.hgwjyefn_Z1PM86j.webp 670w" width="670"/><figcaption class="astro-khyig4bw"><span class="astro-khyig4bw">A box packed with possibilities.</span></figcaption></figure>
<p>The ESPHome Starter Kit arrives with four modules to build with:</p>
<ol>
<li>Motion sensor – to detect movement, making a perfect first automation</li>
<li>Temperature and humidity sensor – to reliably track a room’s comfort level</li>
<li>Notification module – to provide alerts via a buzzer and ten individually controllable RGB LEDs that glow
through the ESPHome logo</li>
<li>Button module – to trigger any automation you like</li>
</ol>
<p>Powering it all is an ESP32-C6 microcontroller, which, for anyone new to electronics, is the programmable chip that
acts as the “brain” of your project. ESPHome builds the software that runs on this chip, letting it control the four
modules and talk to Home Assistant or any other smart home platform that supports it.</p>
<p>You’ll also find everything you need to put it all together: the flat ribbon cables that connect each module to the
board (with a spare in the box, so you’re covered if one goes astray), and a stand to show off the notification
module and its glowing ESPHome logo. It runs on a standard USB-C cable, and uses the same open standards as the rest
of your smart home, so there’s nothing special to buy before you get started: it works with your existing Home
Assistant setup straight out of the box.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="snap-into-action">Snap into action</h2><a class="sl-anchor-link" href="#snap-into-action"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Snap into action”</span></a></div>
<p>The kit arrives with a snap-apart panel, with each module attached by small breakaway tabs. Instead of soldering
joints and wiring breadboards, you simply snap a module off the panel and connect it to the main board via the flat
ribbon cable.</p>
<figure class="captioned-image astro-khyig4bw"><img alt="A two-part image: on the left, ESPHome Starter Kit components laid out on a wooden surface, including the main board, modules, ribbon cables, and stand; on the right, hands connecting a ribbon cable between the main board and the button module." class="astro-khyig4bw" data-astro-image="constrained" data-astro-image-fit="cover" data-astro-image-pos="center" decoding="async" height="563" loading="lazy" sizes="(min-width: 1000px) 1000px, 100vw" src="/_astro/starter-kit-assembly.qFnx7-va_Z1dF834.webp" srcset="/_astro/starter-kit-assembly.qFnx7-va_Z1ws3cQ.webp 480w, /_astro/starter-kit-assembly.qFnx7-va_10xh7r.webp 768w, /_astro/starter-kit-assembly.qFnx7-va_Z1dF834.webp 1000w" width="1000"/><figcaption class="astro-khyig4bw"><span class="astro-khyig4bw">The kit’s pieces (left) and how they come together.</span></figcaption></figure>
<p>And because every module connects the same way, they’re completely interchangeable: pop one off, snap the next one
on, install new software on your ESP microcontroller, and you’ve got a different device.</p>
<p>This kit is designed to be experimented with. You can reconfigure it as your ideas grow, and adapt it as you learn,
so the same hardware carries you from your very first project to your tenth. Each build works as a standalone device
right away, and if you find yourself ready to explore more complex automations, it drops straight into Home
Assistant.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="a-kit-for-keeps">A kit for keeps</h2><a class="sl-anchor-link" href="#a-kit-for-keeps"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “A kit for keeps”</span></a></div>
<p>Most learning kits end up the same way: forgotten in a drawer. But Apollo Automation co-founders Trevor Schirmer and
Justin Bunton had other ideas: they wanted to create something sustainable that helped more people experience the
joy of building, <em>and</em> left them with devices that remained useful long after the basics had clicked.</p>
<p>That’s why every module in the ESPHome Starter Kit becomes a custom, working smart home device: the kind you can’t
buy off the shelf. Shaped by you to fit your home and habits, each device becomes yours in every sense – run locally
with no cloud dependency, so your data stays in your home instead of on someone else’s server. And it’s easier than
you might think…</p>
<blockquote>
<p>One of the core requirements for the kit was that you had something useful at the end. One of the foundation’s
principles is sustainability. So, this isn’t something that you just buy, learn, and then put in a drawer or the
trash never to be seen again. You can make real usable products out of this at the end. … For example, you could
use the motion module to turn on the lights when somebody walks into your room, or you could use the ESPHome-shaped
LEDs to turn red when you’re in a meeting, letting others in your home know…</p>
<p>— Trevor Schirmer, Co-Founder of Apollo Automation</p>
</blockquote>
<div class="sl-heading-wrapper level-h2"><h2 id="your-trusty-guide">Your trusty guide…</h2><a class="sl-anchor-link" href="#your-trusty-guide"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Your trusty guide…”</span></a></div>
<p>The Starter Kit comes with two tools that guide you every step of the way, from your very first setup to your most
ambitious projects.</p>
<p>The first is the
<a href="https://wiki.apolloautomation.com/products/ESPHome-Starter-Kit/start-here/" rel="noreferrer noopener" target="_blank">Learning Wiki</a>: more than assembly
instructions, it explains the <em>why</em> behind each step, showing how your components connect to the code that runs
them. This means you’re not just following a recipe – you’re picking up the fundamentals of electronics and device
building, one project at a time. By the end, you’ll have the skills and the confidence to take on bigger builds of
your own.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="and-a-revamped-visual-builder">…and a revamped visual builder</h2><a class="sl-anchor-link" href="#and-a-revamped-visual-builder"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “…and a revamped visual builder”</span></a></div>
<p>The second is our <a href="/install/">ESPHome Device Builder</a>, recently <a href="/blog/2026/07/02/unbox-your-creativity-with-the-esphome-device-builder/">updated</a> to help make ESPHome more approachable for all – no matter if you’ve been with us for years or if this is the first time you hear about ESPHome. Its intuitive interface lets you configure everything without writing a line of code, though the YAML’s always there underneath, should you want it.</p>
<p>Best of all, it runs right on your desktop through our app, so you can start building with whatever you already
have. And once you’ve nailed the basics, you can still use the Device Builder to help you go further – whatever you
decide to build next.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="three-things-to-try-with-the-esphome-starter-kit">Three things to try with the ESPHome Starter Kit</h2><a class="sl-anchor-link" href="#three-things-to-try-with-the-esphome-starter-kit"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Three things to try with the ESPHome Starter Kit”</span></a></div>
<p>As its name suggests, the Starter Kit is just the beginning. Once you’ve made your modules, you can connect them to
just about any automation you like – for example:</p>
<ul>
<li><strong>Set your button to close the blinds:</strong> Press the button and your blinds glide shut, no hunting for a remote.
Perfect for movie nights or shutting out the afternoon glare.</li>
<li><strong>Set your motion sensor to detect visitors:</strong> Place it by the front door or driveway and be notified the moment
it senses movement, so you’re never caught off guard.</li>
<li><strong>Set your temperature monitor to manage the heating:</strong> Choose your ideal range and let the sensor keep watch,
adjusting automatically if a room gets too warm or cool.</li>
</ul>
<p>The possibilities are almost endless, with plenty more to discover as your ideas grow, and a community of
experienced ESPHome users to talk to for inspiration.</p>
<div class="sl-heading-wrapper level-h2"><h2 id="join-the-community">Join the community</h2><a class="sl-anchor-link" href="#join-the-community"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Join the community”</span></a></div>
<p>On the subject of community, half the fun of building something is sharing it with others. When you start using the
kit, you join thousands of other makers using ESPHome. Come say hello on the
<a href="https://discord.gg/KhAMKrd" rel="noreferrer noopener" target="_blank">ESPHome Discord server</a> to swap ideas and show off what you’ve built, or drop into our
<a href="https://community.home-assistant.io/c/esphome/36" rel="noreferrer noopener" target="_blank">ESPHome forum</a> to ask questions and find your feet. And if you
have thoughts about what Apollo Automation should build next, you can share them on the
<a href="https://discord.com/invite/fvwxCab4hR" rel="noreferrer noopener" target="_blank">Apollo Automation Discord server</a>!</p>
<div class="sl-heading-wrapper level-h2"><h2 id="ready-set-start">Ready, set, <em>start</em></h2><a class="sl-anchor-link" href="#ready-set-start"><span aria-hidden="true" class="sl-anchor-icon"><svg fill="currentColor" height="16" viewbox="0 0 24 24" width="16"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Ready, set, start”</span></a></div>
<p>Keen to get your kit? Head to the <a href="/starter-kit/">ESPHome Starter Kit</a> site to grab your gear today. The majority of
profit from every kit goes straight to the Open Home Foundation, meaning every purchase helps fund the future of
<a href="/">ESPHome</a>, <a href="https://www.home-assistant.io/" rel="noreferrer noopener" target="_blank">Home Assistant</a>, and <a href="https://www.music-assistant.io/" rel="noreferrer noopener" target="_blank">Music Assistant</a>,
and the other projects working to make smart home tech accessible to all. We can’t wait to see what you create!</p><div class="post-footer astro-gx5dlkfr"><div class="astro-xesoswnh"><b class="astro-xesoswnh">Tags:</b><ul class="astro-xesoswnh"><li class="astro-xesoswnh"><a class="astro-xesoswnh" href="/blog/tags/announcements/">Announcements</a></li></ul></div><div class="pagination astro-nhmjxwsg" data-pagefind-ignore=""><div class="card-grid astro-lmor3ela"><div class="sl-link-card astro-vodiqeol"><span class="sl-flex stack astro-vodiqeol"><a class="astro-nhmjxwsg astro-vodiqeol" href="/blog/2026/08/13/community-day-2026-save-the-date/" rel="prev"><span class="title astro-vodiqeol">Community Day 2026: Save the date!</span></a></span><svg aria-hidden="true" class="icon rtl:flip astro-vodiqeol astro-n5k4ipy7" fill="currentColor" height="16" style="--sl-icon-size: 1.333em;" viewbox="0 0 24 24" width="16"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"></path></svg></div><div class="sl-link-card astro-vodiqeol"><span class="sl-flex stack astro-vodiqeol"><a class="astro-nhmjxwsg astro-vodiqeol" href="/blog/2026/08/04/simplify-your-esphome-setup-with-the-new-desktop-app/" rel="next"><span class="title astro-vodiqeol">Simplify your ESPHome setup with the new desktop app</span></a></span><svg aria-hidden="true" class="icon rtl:flip astro-vodiqeol astro-n5k4ipy7" fill="currentColor" height="16" style="--sl-icon-size: 1.333em;" viewbox="0 0 24 24" width="16"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"></path></svg></div></div></div></div></div><script>(function(){const crossposts = [{"path":"/blog/2026/07/30/making-our-web-analytics-open-source-with-plausible/","label":"This article is shared from the Open Home Foundation","cover":"https://www.openhomefoundation.org/assets/images/blog/making-our-web-analytics-open-source-with-plausible/card.webp","coverAlt":"Making our web analytics open source with Plausible"},{"path":"/blog/2026/08/13/community-day-2026-save-the-date/","label":"This article is shared from the Open Home Foundation","cover":"https://www.openhomefoundation.org/assets/images/blog/community-day-2026-save-the-date/card.webp","coverAlt":"Community Day 2026: Save the date!"}];

  const externalIconSvg =
    '<svg viewBox="0 0 24 24" width="14" height="14" aria-hidden="true"><path d="M19.33 10.18a1 1 0 0 1-.77 0 1 1 0 0 1-.62-.93l.01-1.83-8.2 8.2a1 1 0 0 1-1.41-1.42l8.2-8.2H14.7a1 1 0 0 1 0-2h4.25a1 1 0 0 1 1 1v4.25a1 1 0 0 1-.62.93Z"/><path d="M11 4a1 1 0 1 1 0 2H7a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4a1 1 0 1 1 2 0v4a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h4Z"/></svg>';

  const decorate = (link) => {
    const crosspost = crossposts.find((entry) => new URL(link.href).pathname === entry.path);
    if (!crosspost) return;

    const heading = link.querySelector("h2");

    // Cover image, drawn inside the link as a plain <img> before any badge.
    if (crosspost.cover && heading && !link.querySelector("figure.crosspost-cover")) {
      const figure = document.createElement("figure");
      figure.className = "crosspost-cover";
      const img = document.createElement("img");
      img.src = crosspost.cover;
      img.alt = crosspost.coverAlt;
      img.loading = "lazy";
      img.decoding = "async";
      figure.append(img);
      heading.insertAdjacentElement("afterend", figure);
    }

    // "Shared from" badge, placed after the link.
    if (!link.nextElementSibling?.classList.contains("crosspost-badge")) {
      const badge = document.createElement("span");
      badge.className = "crosspost-badge";
      badge.innerHTML = externalIconSvg;
      badge.append(document.createTextNode(crosspost.label));
      link.insertAdjacentElement("afterend", badge);
    }
  };

  const init = () => {
    for (const link of document.querySelectorAll("article.preview > header > a.preview-link")) {
      decorate(link);
    }
  };

  init();
  document.addEventListener("astro:page-load", init);
})();</script></div></div></main>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2026.8: Approachable by design]]></title>
    <link href="https://www.home-assistant.io/blog/2026/08/05/release-20268/"/>
    <updated>2026-08-05T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/08/05/release-20268</id>
    <content type="html"><![CDATA[<p><lite-youtube videoid="Pu7JLCxZmaI" videotitle="Home Assistant 2026.8 Release Party"></lite-youtube></p>
<div class="alert alert-tip">
<p class="alert-title"><iconify-icon icon="mdi:lightbulb-outline" inline=""></iconify-icon> Tip</p>
<div class="alert-content">
<p>Don’t forget to <a href="https://www.youtube.com/watch?v=Pu7JLCxZmaI">join our release party live stream on YouTube</a> on August 5, 2026, at 20:00 GMT / 12:00 PT / 21:00 CET!</p>
</div>
</div>
<div class="alert alert-tip">
<p class="alert-title"><iconify-icon icon="mdi:lightbulb-outline" inline=""></iconify-icon> Tip</p>
<div class="alert-content">
<p><a href="https://youtube.com/live/aK2HMY9-Tzo"><img alt="ESPHome Starter Kit launch party livestream on August 12" class="no-shadow" src="/images/blog/2026-08/ESPH-2607-starterkit-livestream-thumbnail.png" style="float: right; width: 40%; max-width: 340px; margin: 0 0 8px 16px;"/></a>
There’s more to look forward to next week: the <strong>ESPHome Starter Kit</strong> is launching, and you’re invited to the official launch party! 🚀 Join the ESPHome team and their partners at Apollo Automation on the <a href="https://youtube.com/live/aK2HMY9-Tzo">ESPHome YouTube channel</a> on August 12 at 21:00 CEST. Familiar faces are dropping by to celebrate lift-off, too: <a href="https://www.youtube.com/c/SmartHomeSolver">Reed</a> from Smart Home Solver, <a href="https://www.youtube.com/@simonsayshomeassistant">Simon</a> from Simon Says Home Assistant, and <a href="https://www.hometech.fm/">Gavin</a> from HomeTech.fm.</p>
</div>
</div>
<p>Home Assistant 2026.8! 🎉</p>
<p>Hi, I’m <a href="https://github.com/abb848">Ashley</a>, the Technical Program Manager at the Open Home Foundation. With <a href="https://github.com/frenck">Frenck</a> taking a well-deserved break, <a href="https://github.com/bramkragten">Bram</a> and I are teaming up to handle things this time around.</p>
<p>We have been working on a lot over the past few weeks, and I’m excited to share some of what we have done for this release!</p>
<p>If there’s one thread tying this release together, it’s a direction we care about: making Home Assistant something you don’t need to be technical to use. This release is another step along that path.</p>
<p>Enjoy the release!</p>
<p>- Ashley</p>
<!--more-->
<ul>
<li><a href="#making-home-assistant-more-approachable">Making Home Assistant more approachable</a></li>
<li><a href="#the-same-home-assistant-minus-the-magic-number">The same Home Assistant, minus the magic number</a>
<ul>
<li><a href="#your-current-setup-keeps-working">Your current setup keeps working</a></li>
<li><a href="#want-to-change-the-port-weve-got-you-covered">Want to change the port? We’ve got you covered</a></li>
<li><a href="#what-this-means-for-yaml">What this means for YAML</a></li>
</ul>
</li>
<li><a href="#less-advanced-more-approachable">Less “advanced”, more approachable</a>
<ul>
<li><a href="#describing-the-feature-not-the-user">Describing the feature, not the user</a></li>
<li><a href="#just-tools-no-developer-required">Just Tools, no developer required</a></li>
</ul>
</li>
<li><a href="#home-assistant-cloud-now-easier-to-explore">Home Assistant Cloud, now easier to explore</a></li>
<li><a href="#your-entity-ids-your-choice">Your entity IDs, your choice</a></li>
<li><a href="#a-cleaner-way-to-handle-your-devices">A cleaner way to handle your devices</a></li>
<li><a href="#we-cant-stop-adding-triggers-and-conditions">We can’t stop adding triggers and conditions</a></li>
<li><a href="#integrations">Integrations</a>
<ul>
<li><a href="#new-integrations">New integrations</a></li>
<li><a href="#noteworthy-improvements-to-existing-integrations">Noteworthy improvements to existing integrations</a></li>
<li><a href="#integration-quality-scale-achievements">Integration quality scale achievements</a></li>
<li><a href="#now-available-to-set-up-from-the-ui">Now available to set up from the UI</a></li>
<li><a href="#farewell-to-the-following">Farewell to the following</a></li>
</ul>
</li>
<li><a href="#other-noteworthy-changes">Other noteworthy changes</a>
<ul>
<li><a href="#tell-us-how-setup-went">Tell us how setup went</a></li>
<li><a href="#a-roomier-template-editor">A roomier template editor</a></li>
<li><a href="#taps-that-land-where-you-mean-them">Taps that land where you mean them</a></li>
<li><a href="#a-combined-battery-level-you-can-trust">A combined battery level you can trust</a></li>
<li><a href="#search-your-media">Search your media</a></li>
<li><a href="#find-your-favorite-cards-faster">Find your favorite cards faster</a></li>
<li><a href="#z-wave-lock-credentials-properly-managed">Z-Wave lock credentials, properly managed</a></li>
<li><a href="#and-a-few-more">And a few more</a></li>
</ul>
</li>
<li><a href="#patch-releases">Patch releases</a>
<ul>
<li><a href="#202681---august-7">2026.8.1 - August 7</a></li>
<li><a href="#202682---august-14">2026.8.2 - August 14</a></li>
<li><a href="#202683---august-21">2026.8.3 - August 21</a></li>
</ul>
</li>
<li><a href="#need-help-join-the-community">Need help? Join the community</a></li>
<li><a href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a href="#all-changes">All changes</a></li>
</ul>
<p><em>A huge thank you to all the contributors who made this release possible! And a special shout-out to <a href="https://github.com/frenck">@frenck</a> and <a href="https://github.com/bramkragten">@bramkragten</a> who helped write the release notes this release. Also, <a href="https://github.com/piitaya">@piitaya</a>, <a href="https://github.com/RaHehl">@RaHehl</a>, and <a href="https://github.com/farmio">@farmio</a> for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️</em></p>
<h2>Making Home Assistant more approachable</h2>
<p>One of the directions we care about most for Home Assistant is making it simpler to pick up and use, without compromising on capability. It’s something we have been working toward for a long time, and it runs through our <a href="https://github.com/OpenHomeFoundation/roadmap">roadmap</a> and <a href="https://github.com/OpenHomeFoundation/goals">goals</a> for this year. We cannot do it overnight though, so we keep listening to your feedback to make sure we are fixing the things that actually get in your way. If there is something you would like to see, we would love for you to weigh in. Every comment helps shape what comes next.</p>
<p>This release brings together some of that work. It may never be truly finished, and that is fine, but it is something we hold close: the more people who can use Home Assistant, whatever their technical ability, the better.</p>
<h2>The same Home Assistant, minus the magic number</h2>
<p>Ever wondered why the address for your own home has a random number stuck on the end? So did we. For years, reaching Home Assistant meant remembering to add <code>:8123</code> to the address, a little piece of technical trivia that everyone simply had to learn. This release starts to put that right.</p>
<p>New installations of <span class="terminology">“Home Assistant OS”<span class="terminology-tooltip">Home Assistant OS, the Home Assistant Operating System, is an embedded, minimalistic, operating system designed to run the Home Assistant ecosystem on single board computers (like the Raspberry Pi) or Virtual Machines. It includes Home Assistant Core, the Home Assistant Supervisor, and supports apps. Home Assistant Supervisor keeps it up to date, removing the need for you to manage an operating system. Home Assistant Operating System is the recommended installation type for most users.</span></span> now use a normal web address by default, with no number to add on the end. You reach your home the same way you reach any website. Nothing extra to remember, nothing extra to type.</p>
<h3>Your current setup keeps working</h3>
<p>If you are already running Home Assistant, nothing changes and there is nothing you need to do. This only affects new installations of Home Assistant OS. Your existing installation is completely unchanged, keeps the exact port it has always used, and keeps working just as before. If everything works today, the simplest thing is to leave it exactly as it is.</p>
<h3>Want to change the port? We’ve got you covered</h3>
<p>You do not have to change anything, but if you would like the cleaner address, or need to change the port for another reason, you can now do it yourself from the interface. The same screen also holds a few more options, like choosing which network connection Home Assistant listens on and setting trusted proxies, for the setups that need them.</p>
<img alt="Screenshot of the web server settings in the Home Assistant interface, showing options for the port, the network connection to listen on, and trusted proxies." class="no-shadow" src="/images/blog/2026-08/web-server-settings.png"/>
<p>Changing something as fundamental as the port your home lives on can feel nerve-wracking, so we made it hard to get stuck. When you change the web server settings, Home Assistant applies the new configuration and then waits for you to confirm everything still works. If you do not confirm within five minutes, it assumes something went wrong, puts your previous settings back, and restarts. And if the new settings cannot be applied at all, it falls back right away. So if you ever lock yourself out with the wrong setting, you do not have to do anything: wait a few minutes, and Home Assistant returns you to where you were.</p>
<div class="alert alert-note">
<p class="alert-title"><iconify-icon icon="mdi:information-outline" inline=""></iconify-icon> Note</p>
<div class="alert-content">
<p>One thing to keep in mind: anything that reaches Home Assistant using the old address may need updating to match the new port, such as your bookmarks or other services and tools you have connected, including the mobile app. If your setup works today, that is a good reason to leave it as it is.</p>
</div>
</div>
<img alt="Screenshot of the confirmation prompt shown after changing the web server settings, asking you to confirm everything still works before the new settings are kept." class="no-shadow" src="/images/blog/2026-08/web-server-revert.png"/>
<h3>What this means for YAML</h3>
<p>If you currently set up the web server in <span class="terminology">YAML<span class="terminology-tooltip">YAML is a human-readable data serialization language. It is used to store and transmit data in a structured format. In Home Assistant, YAML is used for configuration, for example in the <code>configuration.yaml</code> or <code>automations.yaml</code> files.<a class="terminology-link" href="/docs/configuration/yaml/"> [Learn more]</a></span></span>, you do not need to change anything. The first time you start Home Assistant after updating, your settings move into the interface for you, and you manage them there from then on. You might also see a <a href="/integrations/repairs/">repair</a> appear, just to let you know your settings were imported; it can point you to tidying up the old YAML if you like, but nothing breaks either way.</p>
<h2>Less “advanced”, more approachable</h2>
<p>A word comes up around Home Assistant a lot: advanced. But what does it actually mean, and who gets to decide what counts as advanced and what does not? Too often it is a label that quietly tells people a feature is not for them. We want Home Assistant to be approachable for everyone, so this release removes some of that language.</p>
<h3>Describing the feature, not the user</h3>
<p>The clearest place to start is the words themselves. Labels like <em>advanced</em> and <em>expert</em> were dotted around Home Assistant. Words like these can be discouraging: they suggest a feature is not for you and steer you away from trying it, even when it is perfectly approachable. This release removes that wording in around 43 places, across the app, its documentation, and the companion apps. None of these features changed. Instead of rating your skill, the wording now simply describes what each one does.</p>
<p>A big thank you to everyone who helped comb through and clean this up! 👏</p>
<h3>Just Tools, no developer required</h3>
<p>In the same spirit, <strong>Developer Tools</strong> is now simply <strong>Tools</strong>. It has always been a useful spot for everyone, whether you are checking the <span class="terminology">state<span class="terminology-tooltip">The state holds the information of interest of an entity, for example, if a light is on or off. Each entity has exactly one state and the state only holds one value at a time. However, entities can store attributes related to that state such as brightness, color, or a unit of measurement.<a class="terminology-link" href="/docs/configuration/state_object/"> [Learn more]</a></span></span> of your <span class="terminology">“devices”<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span>, testing a <span class="terminology">template<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span>, or reloading part of your setup, and you never needed to be a developer to use it. The shorter name matches how people actually use it, and feels a little friendlier to open.</p>
<h2>Home Assistant Cloud, now easier to explore</h2>
<p><a href="/integrations/cloud/">Home Assistant Cloud</a> by <a href="https://www.nabucasa.com/">Nabu Casa</a> is how many people add remote access, fast and private voice, encrypted <span class="terminology">backups<span class="terminology-tooltip">Home Assistant has built-in functionality to create files containing a copy of your configuration. This can be used to restore your Home Assistant as well as migrate to a new system. The backup feature is available for all <a href="/installation/#about-installation-types">installation types</a>.<a class="terminology-link" href="/common-tasks/general/backups/"> [Learn more]</a></span></span>, and more to their home, all while supporting the project at the same time. Until now, everything it offers lived on a single long page of switches and settings. This release gives that page a proper redesign.</p>
<p>The main page is now a clean overview. Each feature (remote access, backups, voice assistants, the companion app, and more) has its own space, so you can see what you have turned on at a glance. The settings for each one move onto their own page, which keeps the overview tidy and makes every feature easier to understand on its own.</p>
<p>The bigger change is for anyone just getting started. There is now a guided setup that walks you through Home Assistant Cloud step by step, instead of leaving you to find your way around a wall of options. If it is not a good moment, you can put it off and pick it up again later.</p>
<div>
<img alt="Screenshot of the top of the redesigned Home Assistant Cloud page, showing the overview with each cloud feature in its own space." class="no-shadow" src="/images/blog/2026-08/cloud_page_top.png" style="display: block; margin: 0;"/>
<img alt="Screenshot of the lower part of the redesigned Home Assistant Cloud page, showing more cloud features and their settings." class="no-shadow" src="/images/blog/2026-08/cloud_page_bottom.png" style="display: block; margin: 0;"/>
</div>
<p>A big thank you to <a href="https://github.com/klejejs">@klejejs</a> for this redesign!</p>
<h2>Your entity IDs, your choice</h2>
<p>Behind every <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> and <span class="terminology">sensor<span class="terminology-tooltip">Sensors return information about a thing, for instance the level of water in a tank.<a class="terminology-link" href="/integrations/sensor/"> [Learn more]</a></span></span> sits an entity ID, a short name such as <code>light.kitchen_ceiling</code> that your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, and dashboards use to refer to it. Most of the time they look after themselves. But when you do want them neat and consistent, you should be the one deciding how they read.</p>
<p>Some earlier work looked at building entity IDs automatically from the <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span> a device belongs to. Your feedback told us this suited some people but not everyone. So this release takes a more flexible route and puts you in charge: you can rename an entity ID yourself, and control how it is ordered, so your <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> follow whatever naming pattern makes sense to you.</p>
<img alt="Screen recording showing how to rename an entity ID and change how it is ordered in the Home Assistant interface." class="no-shadow" src="/images/blog/2026-08/entity-id-rename.gif"/>
<p>Thanks to <a href="https://github.com/arturpragacz">@arturpragacz</a> and <a href="https://github.com/piitaya">@piitaya</a> for this work.</p>
<h2>A cleaner way to handle your devices</h2>
<p>Home Assistant is changing how it keeps track of your devices behind the scenes. Until now, if one physical <span class="terminology">device<span class="terminology-tooltip">A device is a model representing a physical or logical unit that contains entities.</span></span> was set up through two different <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, Home Assistant merged them into a single device. Details that can only hold one value, such as the model or serial number, could then clash. From this release, each integration keeps its own device entry, so nothing gets collapsed together.</p>
<p>When you update, any devices that were merged this way are separated automatically, and their <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> move to the right device for you. Most people will not notice a thing. In the rarer cases where a device was set up through more than one integration, you might see it appear twice, once per integration, and Home Assistant may raise a <a href="/integrations/repairs/">repair</a> to let you know.</p>
<p>There is nothing you need to do. Your <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> and <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> keep working, because Home Assistant still sends actions to the right devices after the split. The only things that might need a second look are automations that point to a device by its ID directly, or the occasional unusual setup. If a repair appears, just follow it.</p>
<p>This is groundwork for more flexible device handling we are building toward over the coming months, so think of it as a step along the way rather than the finished picture.</p>
<p>If you build a <span class="terminology">custom integration<span class="terminology-tooltip">A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the <a href="https://spook.boo/">Spook</a> integration.</span></span>, most need no changes at all. If yours works with device details directly, the <a href="https://developers.home-assistant.io/blog/2026/07/21/device-registry-single-config-entry">developer blog</a> walks through what changed. There is no rush: the previous approach keeps working for now, so you have plenty of time.</p>
<p>Thanks to <a href="https://github.com/emontnemery">@emontnemery</a> for this work.</p>
<h2>We can’t stop adding triggers and conditions</h2>
<p>Last release, purpose-specific <a href="/triggers/">triggers</a> and <a href="/conditions/">conditions</a> became the friendlier way to build <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>: you describe the moment you care about, like <em>when the front door opens</em>, instead of piecing it together from the technical parts underneath. This release adds two more of them.</p>
<p><strong>Vibration</strong> now has conditions to match its triggers. On top of reacting the moment vibration starts or stops, you can check whether something is vibrating (or not) as part of a bigger automation, for example, only sending a “laundry is done” message once the washing machine has actually stopped shaking.</p>
<p><strong>Moon</strong> gains a trigger and matching conditions. You can start an automation the moment the moon enters a new phase, or check the current phase as part of a bigger automation. Point it at the full moon, the new moon, or any change of phase, and let your home take it from there, whether that is mood lighting, a reminder, or just a bit of fun. 🌙</p>
<p>Thanks, <a href="https://github.com/nielsrowinbik">@nielsrowinbik</a>!</p>
<h2>Integrations</h2>
<p>Thanks to our community for keeping pace with the new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and improvements to existing ones! You’re all awesome 🥰</p>
<h3>New integrations</h3>
<p>We welcome the following new integrations in this release:</p>
<ul>
<li>
<p><strong><a href="/integrations/dyson_infrared">Dyson Infrared</a></strong>, added by <a href="https://github.com/elax46">@elax46</a><br/>
Control your Dyson fans through any infrared transmitter you already have set up in Home Assistant. Because the connection only goes one way, Home Assistant shows the last command you sent rather than the fan’s live state.</p>
</li>
<li>
<p><strong><a href="/integrations/fuelprices_dk">Fuelprices.dk</a></strong>, added by <a href="https://github.com/MTrab">@MTrab</a><br/>
Track current fuel prices from Danish fuel companies in Home Assistant. The integration pulls prices from the <a href="https://fuelprices.dk">Fuelprices.dk</a> service and creates a sensor for each product you select at a station, so you can watch prices and build automations around them.</p>
</li>
<li>
<p><strong><a href="/integrations/gatus">Gatus</a></strong>, added by <a href="https://github.com/TN-1">@TN-1</a>, launching at 🥈 silver quality<br/>
Bring the health of your services into Home Assistant from your <a href="https://gatus.io">Gatus</a> monitoring instance. Each monitored endpoint shows up as a <span class="terminology">binary sensor<span class="terminology-tooltip">A binary sensor is an entity that reports one of two mutually exclusive states, on or off. The device class determines how those states are labeled in the UI. For example, open/closed for a door or detected/clear for motion.<a class="terminology-link" href="/integrations/binary_sensor"> [Learn more]</a></span></span>, so you can put service status on a dashboard or trigger automations when something goes down or comes back up.</p>
</li>
<li>
<p><strong><a href="/integrations/geosphere_austria_warnings">GeoSphere Austria Warnings</a></strong>, added by <a href="https://github.com/tklecka">@tklecka</a><br/>
Bring official weather warnings for Austria into Home Assistant from <a href="https://www.geosphere.at">GeoSphere Austria</a> (formerly ZAMG), the national weather service. Warnings are issued per municipality and cover events like storms, heavy rain, snow, black ice, thunderstorms, heat, and cold, so you can get notified or trigger automations when the warning level rises.</p>
</li>
<li>
<p><strong><a href="/integrations/google_health">Google Health</a></strong>, added by <a href="https://github.com/allenporter">@allenporter</a><br/>
Bring your health and fitness data into Home Assistant from Google Health and the Fitbit Web API. After you connect your Google account, you get sensors such as steps, distance, weight, and resting heart rate, and it can run alongside the existing Fitbit integration.</p>
</li>
<li>
<p><strong><a href="/integrations/harbor">Harbor Sleep</a></strong>, added by <a href="https://github.com/Lash-L">@Lash-L</a><br/>
Keep an eye on your <a href="https://harbor.co/">Harbor Sleep</a> baby monitor from Home Assistant. The integration connects to the device on your local network and exposes sensors like temperature, Wi-Fi strength, and stream quality.</p>
</li>
<li>
<p><strong><a href="/integrations/harman_luxury">Harman Luxury Audio</a></strong>, added by <a href="https://github.com/sbesh91">@sbesh91</a><br/>
Control network streamers built on the Harman Luxury Audio platform, such as the Arcam Radia ST5 and ST60, and equivalent JBL and Mark Levinson streamers. The integration talks to the device directly on your local network, so no cloud account is required.</p>
</li>
<li>
<p><strong><a href="/integrations/karakeep">Karakeep</a></strong>, added by <a href="https://github.com/sli-cka">@sli-cka</a><br/>
Connect your self-hosted <a href="https://karakeep.app/">Karakeep</a> bookmarking service to Home Assistant and keep track of your bookmark statistics. Karakeep helps you save, organize, and tag links, notes, and images, and this integration surfaces those numbers as sensors.</p>
</li>
<li>
<p><strong><a href="/integrations/led_infrared">LED Infrared</a></strong>, added by <a href="https://github.com/tr4nt0r">@tr4nt0r</a><br/>
Control LED lights through any infrared emitter you already have set up in Home Assistant. It supports many branded and unbranded bulbs and strip controllers that use generic infrared remotes. Communication is one-way, so the integration uses assumed states.</p>
</li>
<li>
<p><strong><a href="/integrations/litellm">LiteLLM</a></strong>, added by <a href="https://github.com/luismalves">@luismalves</a><br/>
Use a <a href="https://www.litellm.ai/">LiteLLM</a> proxy as a conversation agent in Home Assistant. LiteLLM puts a single OpenAI-compatible API in front of many model providers, so you can reach almost any model through one endpoint, hosted or self-hosted. Home Assistant creates a conversation agent for each model you configure.</p>
</li>
<li>
<p><strong><a href="/integrations/llama_cpp">llama.cpp</a></strong>, added by <a href="https://github.com/allenporter">@allenporter</a><br/>
Use a local <a href="https://github.com/ggml-org/llama.cpp">llama.cpp</a> server, or any OpenAI-compatible endpoint, as a conversation agent in Home Assistant. You can set up several agents, each with its own model and instructions, and keep everything running on your own hardware.</p>
</li>
<li>
<p><strong><a href="/integrations/lyngdorf">Lyngdorf</a></strong>, added by <a href="https://github.com/fishloa">@fishloa</a>, launching at 🥈 silver quality<br/>
Control <a href="https://lyngdorf.steinwaylyngdorf.com/">Lyngdorf</a> audio processors and amplifiers from Home Assistant, including power, volume, source selection, and sound modes. The integration keeps in sync with the device over your local network.</p>
</li>
<li>
<p><strong><a href="/integrations/midea">Midea</a></strong>, added by <a href="https://github.com/chemelli74">@chemelli74</a><br/>
Bring devices that use the Midea protocol, such as air conditioners and air purifiers, into Home Assistant. The integration provides information on the connected devices and lets you control their main features.</p>
</li>
<li>
<p><strong><a href="/integrations/neopool">NeoPool</a></strong>, added by <a href="https://github.com/svasek">@svasek</a>, launching at 🥈 silver quality<br/>
Monitor and manage pool controllers built on the NeoPool system, originally from Sugar Valley and sold under many brands like Hidrolife, Aquarite, and Oxilife. It talks to your controller locally over Modbus TCP, exposing water chemistry, filtration, and hydrolysis data with no cloud needed.</p>
</li>
<li>
<p><strong><a href="/integrations/scorpiontrack">ScorpionTrack</a></strong>, added by <a href="https://github.com/Herbertmt978">@Herbertmt978</a>, launching at 🥈 silver quality<br/>
Follow vehicles shared through a public ScorpionTrack location-share link on your Home Assistant map. The integration reads the shared vehicle feed and creates a <span class="terminology">device tracker<span class="terminology-tooltip">Device trackers are used to track the presence, or location, of a device.<a class="terminology-link" href="/integrations/device_tracker"> [Learn more]</a></span></span> for each vehicle, without needing your private account credentials.</p>
</li>
</ul>
<h3>Noteworthy improvements to existing integrations</h3>
<p>It is not just new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have been added; existing ones keep getting better too. Here are some of the noteworthy improvements this release:</p>
<ul>
<li><strong><a href="/integrations/shelly">Shelly</a></strong> now supports Enhanced Security, the HTTPS-only mode on firmware 2.0 for gen2 and newer devices, and added support for Shelly circuit breakers, with on/off control plus output-state and safety-switch sensors. Thanks, <a href="https://github.com/bieniu">@bieniu</a> and <a href="https://github.com/thecode">@thecode</a>!</li>
<li><strong><a href="/integrations/reolink">Reolink</a></strong> gained pre-siren entities and a motion device class on its AI-detection binary sensors. Thanks, <a href="https://github.com/starkillerOG">@starkillerOG</a> and <a href="https://github.com/abmantis">@abmantis</a>!</li>
<li><strong><a href="/integrations/overkiz">Overkiz</a></strong> added window and tilt binary sensors for contact sensors, boost and drying-duration numbers for the Atlantic electrical towel dryer, and support for the Somfy Thermostat PRO. Thanks, <a href="https://github.com/iMicknl">@iMicknl</a>!</li>
<li><strong><a href="/integrations/switchbot">SwitchBot</a></strong> added support for the Candle Warmer Lamp and the RGBIC Neon Rope Light, plus fan and select controls for the Standing Fan. Thanks, <a href="https://github.com/Onero-testdev">@Onero-testdev</a>!</li>
<li><strong><a href="/integrations/roborock">Roborock</a></strong> got plenty of love for the Q10, with a do-not-disturb switch, switch entities, a map image, and a volume control. Thanks, <a href="https://github.com/lboue">@lboue</a> and <a href="https://github.com/tubededentifrice">@tubededentifrice</a>!</li>
<li><strong><a href="/integrations/whirlpool">Whirlpool</a></strong> added an oven light, an oven cook-mode select, and an oven target-temperature number. Thanks, <a href="https://github.com/matthewdias">@matthewdias</a> and <a href="https://github.com/bdlcalvin">@bdlcalvin</a>!</li>
<li><strong><a href="/integrations/mqtt">MQTT</a></strong> gained an infrared platform, so you can send infrared commands over MQTT. Thanks, <a href="https://github.com/jbouwh">@jbouwh</a>!</li>
<li><strong><a href="/integrations/knx">KNX</a></strong> got a whole set of improvements. Button and notify entities can now be configured from the interface, the KNX panel gained a <strong>Send telegram</strong> dialog (keyboard shortcut <kbd>s</kbd>), plus a datapoint type (DPT) reference and a device view for your project data. On top of that, all KNX entities now restore their state after a reload or restart. Thanks, <a href="https://github.com/farmio">@farmio</a>!</li>
<li><strong><a href="/integrations/enphase_envoy">Enphase Envoy</a></strong> added ACB battery sensors, along with sleep and wake controls. Thanks, <a href="https://github.com/genestealer">@genestealer</a>!</li>
<li><strong><a href="/integrations/melcloud">MELCloud</a></strong> gained on/off control, an operation-mode select, and a flow-temperature number for air-to-water heat pump zones. Thanks, <a href="https://github.com/imilchev">@imilchev</a>!</li>
<li><strong><a href="/integrations/melcloud_home">MELCloud Home</a></strong> added energy-consumption reporting and a number platform. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/portainer">Portainer</a></strong> added an update platform and container health status. Thanks, <a href="https://github.com/erwindouna">@erwindouna</a>!</li>
<li><strong><a href="/integrations/mikrotik">Mikrotik</a></strong> gained sensor, button, and update platforms. Thanks, <a href="https://github.com/chemelli74">@chemelli74</a>!</li>
<li><strong><a href="/integrations/imou">Imou</a></strong> added switch and sensor platforms. Thanks, <a href="https://github.com/Imou-OpenPlatform">@Imou-OpenPlatform</a>!</li>
<li><strong><a href="/integrations/fronius">Fronius</a></strong> added a binary sensor for backup mode. Thanks, <a href="https://github.com/farmio">@farmio</a>!</li>
<li><strong><a href="/integrations/openai_conversation">OpenAI Conversation</a></strong> now supports GPT-5.6. Thanks, <a href="https://github.com/Shulyaka">@Shulyaka</a>!</li>
<li><strong><a href="/integrations/wiim">WiiM</a></strong> added multi-room grouping and metadata synchronization. Thanks, <a href="https://github.com/Linkplay2020">@Linkplay2020</a>!</li>
<li><strong><a href="/integrations/smlight">SMLIGHT</a></strong> added Bluetooth proxy support and an infrared receiver for SMLIGHT Ultima devices. Thanks, <a href="https://github.com/tl-sl">@tl-sl</a>!</li>
<li><strong><a href="/integrations/vizio">Vizio</a></strong> added command aliases for its remote. Thanks, <a href="https://github.com/raman325">@raman325</a>!</li>
<li><strong><a href="/integrations/tesla_wall_connector">Tesla Wall Connector</a></strong> added an option to switch total power calculation between single-phase / split-phase and three-phase electrical service, along with vehicle current and Wi-Fi signal sensors. Thanks, <a href="https://github.com/sarabveer">@sarabveer</a>!</li>
<li><strong><a href="/integrations/teslemetry">Teslemetry</a></strong> added control for seat coolers. Thanks, <a href="https://github.com/Bre77">@Bre77</a>!</li>
<li><strong><a href="/integrations/tessie">Tessie</a></strong> added a navigation-destination text entity. Thanks, <a href="https://github.com/Mattheinrichs">@Mattheinrichs</a>!</li>
<li><strong><a href="/integrations/gardena_bluetooth">Gardena Bluetooth</a></strong> added tank pressure and water temperature sensors. Thanks, <a href="https://github.com/icereed">@icereed</a>!</li>
<li><strong><a href="/integrations/duco">Duco</a></strong> added ventilation temperature sensors. Thanks, <a href="https://github.com/ronaldvdmeer">@ronaldvdmeer</a>!</li>
<li><strong><a href="/integrations/victron_ble">Victron BLE</a></strong> added support for Orion XS and inverter devices. Thanks, <a href="https://github.com/rajlaud">@rajlaud</a>!</li>
<li><strong><a href="/integrations/omie">OMIE</a></strong> added an action to get prices for a specific date. Thanks, <a href="https://github.com/abmantis">@abmantis</a>!</li>
<li><strong><a href="/integrations/ecowitt">Ecowitt</a></strong> added soil conductivity sensor support. Thanks, <a href="https://github.com/GSzabados">@GSzabados</a>!</li>
<li><strong><a href="/integrations/steam_online">Steam</a></strong> added an image platform, plus new Last online, Level, and Now playing sensors. Thanks, <a href="https://github.com/tr4nt0r">@tr4nt0r</a>!</li>
<li><strong><a href="/integrations/lg_infrared">LG Infrared</a></strong> added support for LG air conditioners. Thanks, <a href="https://github.com/Dr-Blank">@Dr-Blank</a>!</li>
<li><strong><a href="/integrations/unifiprotect">UniFi Protect</a></strong> now supports the USL smart sensors (USL Entry, USL Environmental, and USL GlassBreak) on UniFi Protect 7.2 and newer, and cameras gained <strong>Motion detection</strong>, <strong>Smart detection</strong>, and <strong>Sound detection</strong> event entities that fire for any detection the camera reports, such as a person, a package, or barking, with the detected type as an attribute. Thanks, <a href="https://github.com/RaHehl">@RaHehl</a>!</li>
</ul>
<h3>Integration quality scale achievements</h3>
<p>One thing we are incredibly proud of in Home Assistant is our <a href="/docs/quality_scale/">integration quality scale</a>. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.</p>
<p>This release, we celebrate several <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have improved their quality scale:</p>
<ul>
<li>
<p><strong>2 integrations reached platinum</strong> 🏆</p>
<ul>
<li><a href="/integrations/anthropic">Anthropic</a>, thanks to <a href="https://github.com/Shulyaka">@Shulyaka</a></li>
<li><a href="/integrations/smlight">SMLIGHT SLZB</a>, thanks to <a href="https://github.com/tl-sl">@tl-sl</a></li>
</ul>
</li>
<li>
<p><strong>1 integration reached gold</strong> 🥇</p>
<ul>
<li><a href="/integrations/nobo_hub">Nobø Ecohub</a>, thanks to <a href="https://github.com/oyvindwe">@oyvindwe</a></li>
</ul>
</li>
<li>
<p><strong>5 integrations reached silver</strong> 🥈</p>
<ul>
<li><a href="/integrations/dropbox">Dropbox</a>, thanks to <a href="https://github.com/bdr99">@bdr99</a></li>
<li><a href="/integrations/kiosker">Kiosker</a>, thanks to <a href="https://github.com/Claeysson">@Claeysson</a></li>
<li><a href="/integrations/luci">OpenWrt (luci)</a>, thanks to <a href="https://github.com/kristbaum">@kristbaum</a></li>
<li><a href="/integrations/stiebel_eltron">STIEBEL ELTRON</a>, thanks to <a href="https://github.com/ThyMYthOS">@ThyMYthOS</a></li>
<li><a href="/integrations/wattwaechter">WattWächter Plus</a>, thanks to <a href="https://github.com/smartcircuits">@smartcircuits</a></li>
</ul>
</li>
<li>
<p><strong>2 integrations reached bronze</strong> 🥉</p>
<ul>
<li><a href="/integrations/ccm15">Midea ccm15 AC Controller</a>, thanks to <a href="https://github.com/ocalvo">@ocalvo</a></li>
<li><a href="/integrations/netatmo">Netatmo</a>, thanks to <a href="https://github.com/cgtobi">@cgtobi</a></li>
</ul>
</li>
</ul>
<p>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.</p>
<p>A big thank you to all the contributors involved! 👏</p>
<h3>Now available to set up from the UI</h3>
<p>While most <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> 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.</p>
<p>The following integrations are now available via the Home Assistant UI:</p>
<ul>
<li><strong><a href="/integrations/aqualogic">AquaLogic</a></strong>, done by <a href="https://github.com/j-mutter">@j-mutter</a></li>
<li><strong><a href="/integrations/luci">OpenWrt (luci)</a></strong>, done by <a href="https://github.com/kristbaum">@kristbaum</a></li>
</ul>
<h3>Farewell to the following</h3>
<p>Time for a little cleaning, and no, we did not wait for spring! The following <span class="terminology">“integrations”<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> are no longer available as of this release:</p>
<ul>
<li><strong>Permobil</strong> has been removed. Permobil deprecated the API it relied on, so the integration could no longer retrieve any data, and there is no replacement available.</li>
<li><strong>Volvo On Call</strong> has been removed. If you have a supported Volvo, set up the newer <a href="/integrations/volvo/">Volvo</a> integration instead.</li>
</ul>
<h2>Other noteworthy changes</h2>
<p>There are many more improvements in this release; here are some of the other noteworthy changes:</p>
<h3>Tell us how setup went</h3>
<p>If you have set up Home Assistant recently, you might notice a short, optional survey asking how your first experience went. It is entirely up to you, and every response helps us make getting started smoother for the next person. Thank you to everyone who shares their thoughts! 💛</p>
<h3>A roomier template editor</h3>
<p>The template tool in <strong>Tools</strong> is where you try out <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> and watch the result update as you type. This release gives it a more comfortable layout: the editor and the result now sit in a split view you can drag to resize, and you can switch between side by side and stacked, whichever suits what you are working on. Your choice is remembered for next time.</p>
<p>Thanks, <a href="https://github.com/maartenla">@maartenla</a>!</p>
<h3>Taps that land where you mean them</h3>
<p>On the picture elements card, a tap could trigger the element next to the one you meant, or hit nothing at all, and some elements could not be tapped. Taps now go to the nearest icon or label, so every element can be reached, and tapping a label’s text always triggers that label. Thanks, <a href="https://github.com/RaHehl">@RaHehl</a>!</p>
<h3>A combined battery level you can trust</h3>
<p>If you track more than one battery in the energy dashboard, you can now give each one a capacity. The combined state of charge is then weighted by size, so a small full battery and a large empty one no longer average out to a misleading number. Batteries without a capacity set keep using the plain average, so nothing changes unless you want it to. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</p>
<h3>Search your media</h3>
<p>Browsing for the right song, photo, or film used to mean clicking through folder after folder. Now, <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that provide media can offer search right in the media browser, so you type what you are looking for and jump straight to it.</p>
<p>What you can search depends on the media source. <a href="/integrations/immich">Immich</a>, for example, gained a smart search that finds photos by what is actually in them rather than by their filename, and <a href="/integrations/overseerr">Overseerr</a> lets you search for and request movies and shows without leaving Home Assistant.</p>
<p>Thanks, <a href="https://github.com/zweckj">@zweckj</a>, <a href="https://github.com/mib1185">@mib1185</a>, and <a href="https://github.com/felixschndr">@felixschndr</a>!</p>
<h3>Find your favorite cards faster</h3>
<p>Your most-used cards are now easier to find. In the card picker’s “By Card” tab, you can now mark the cards you use most as favorites using the icon in the corner of each card. Favorited cards float to the top of the section, so if you reach for the same card again and again while building similar dashboards, it’s always right there waiting for you. Tap the icon again to remove a card from your favorites.</p>
<img alt="Screenshot of the card picker's By Card tab, with the Tile, Area, and Entities cards marked as favorites with a star icon." class="no-shadow" src="/images/blog/2026-08/favorite-cards.png"/>
<p>Thanks, <a href="https://github.com/piitaya">@piitaya</a>, <a href="https://github.com/laupalombi">@laupalombi</a>, and everyone who suggested this at a Release Party!</p>
<h3>Z-Wave lock credentials, properly managed</h3>
<p>Managing who can unlock your Z-Wave lock just got a lot more capable. Powered by Z-Wave JS’s new Access Control API, the Z-Wave JS app 1.6.0 brings a heavily revised interface: every supported lock now gets a dedicated <strong>Access Control</strong> tab. For now, this lives in Z-Wave JS UI rather than in the Z-Wave panel in Home Assistant.</p>
<p class="img">
<img alt="The new Access Control tab in Z-Wave JS UI, showing users and their credentials" class="no-shadow" src="/images/blog/2026-08/zwave-access-control.png"/>
  Users, their credentials, and a full audit trail, all in one place.
</p>
<p>Depending on what your lock supports, you can now give each user several credentials of more than one type, so the same person can have a PIN and a fingerprint, or multiple of both. New credentials can be learned on the lock itself: start the enrollment from the interface, then present the finger or type the PIN. There is also an audit log of every change, admin code management for locks that use one, and the ability to move credentials between users or delete them in bulk.</p>
<p>Update the Z-Wave JS app to 1.6.0 or later, then open Z-Wave JS UI to find the new tab. Thanks, <a href="https://github.com/AlCalzone">@AlCalzone</a>!</p>
<h3>And a few more</h3>
<p>There is even more packed into this release. Here are some of the other changes worth a mention:</p>
<ul>
<li><strong>Templates keep getting faster.</strong> Another round of <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> performance work landed: templates with a numeric result are up to 40% faster, and templates used on dashboards can now be cached. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong>Template entities remember their state.</strong> Fan, <span class="terminology">cover<span class="terminology-tooltip">Covers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position.<a class="terminology-link" href="/integrations/cover"> [Learn more]</a></span></span>, and <span class="terminology">device tracker<span class="terminology-tooltip">Device trackers are used to track the presence, or location, of a device.<a class="terminology-link" href="/integrations/device_tracker"> [Learn more]</a></span></span> template entities now restore their previous state after a restart, so they pick up right where they left off. Thanks, <a href="https://github.com/Petro31">@Petro31</a>!</li>
<li><strong>Search finds more of what is connected.</strong> When you search or open a device or entity, Home Assistant now digs deeper into what is related, so scenes, scripts, groups, the people behind a person entity, and anything sharing a label or area all show up where you would expect them. It is a small change that makes it much easier to see how your setup fits together. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong>A reboot heads-up on Home Assistant OS.</strong> The system <span class="terminology">update<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> entity now lets you know when an update needs a reboot to finish. Thanks, <a href="https://github.com/mdegat01">@mdegat01</a>!</li>
<li><strong>A new radon device class.</strong> Sensors and numbers can now be classified as radon, so radon measurements get the right units and display. Thanks, <a href="https://github.com/abmantis">@abmantis</a>!</li>
<li><strong>Filter entities by manufacturer and model.</strong> The entity filter can now narrow entities by manufacturer, model, and model ID. Thanks, <a href="https://github.com/Skaronator">@Skaronator</a>!</li>
<li><strong>Ask Assist from quick search.</strong> You can now start an Assist command straight from quick search. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li><strong>A date on the clock card.</strong> The clock card can now show the date alongside the time. Thanks, <a href="https://github.com/timmo001">@timmo001</a>!</li>
<li><strong>More from the Activity panel.</strong> The Activity panel gained a CSV download and a clear-and-reset action. Thanks, <a href="https://github.com/karwosts">@karwosts</a> and <a href="https://github.com/timmo001">@timmo001</a>!</li>
</ul>
<h2>Patch releases</h2>
<p>We will also release patch releases for Home Assistant 2026.8 in August. These patch releases only contain bug fixes. Our goal is to release a patch release once a week, aiming for Friday.</p>
<h3>2026.8.1 - August 7</h3>
<ul>
<li>Fixes #173399 Seerr webhook registration (<a href="https://github.com/shtefko">@shtefko</a> - <a href="https://github.com/home-assistant/core/pull/177201">#177201</a>)</li>
<li>Debounce Matter cover state writes to coalesce split attribute updates (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/177540">#177540</a>)</li>
<li>Bump pydaikin to 2.18.4 (<a href="https://github.com/fredrike">@fredrike</a> - <a href="https://github.com/home-assistant/core/pull/178001">#178001</a>)</li>
<li>Adapt vicare to set via_device_id in DeviceInfo (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/178229">#178229</a>)</li>
<li>Adapt mqtt to set via_device_id in DeviceInfo (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/178234">#178234</a>)</li>
<li>bump pyenphase to 3.2.1 (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/178273">#178273</a>)</li>
<li>Bump lyngdorf to 1.4.3 (<a href="https://github.com/fishloa">@fishloa</a> - <a href="https://github.com/home-assistant/core/pull/178323">#178323</a>)</li>
<li>Track shielded service call task in REST API (<a href="https://github.com/arturpragacz">@arturpragacz</a> - <a href="https://github.com/home-assistant/core/pull/178377">#178377</a>)</li>
<li>Bump aiowebostv to v0.9.1 (<a href="https://github.com/thecode">@thecode</a> - <a href="https://github.com/home-assistant/core/pull/178384">#178384</a>)</li>
<li>chore: update python-picnic-api2 to v2.0.1 (<a href="https://github.com/codesalatdev">@codesalatdev</a> - <a href="https://github.com/home-assistant/core/pull/178395">#178395</a>)</li>
<li>Bump lyngdorf to 1.4.4 (<a href="https://github.com/fishloa">@fishloa</a> - <a href="https://github.com/home-assistant/core/pull/178401">#178401</a>)</li>
<li>Use SmartThings cooling setpoint range for air conditioners (<a href="https://github.com/StellarSea">@StellarSea</a> - <a href="https://github.com/home-assistant/core/pull/178430">#178430</a>)</li>
<li>Bump solaredge-web to 0.3.1 (<a href="https://github.com/tronikos">@tronikos</a> - <a href="https://github.com/home-assistant/core/pull/178437">#178437</a>)</li>
<li>Bump pytrydan to 1.0.5 (<a href="https://github.com/dgomes">@dgomes</a> - <a href="https://github.com/home-assistant/core/pull/178447">#178447</a>)</li>
<li>mikrotik: Don’t reuse a string from Vodafone Station (<a href="https://github.com/reedy">@reedy</a> - <a href="https://github.com/home-assistant/core/pull/178455">#178455</a>)</li>
<li>Update frontend to 20260729.6 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/178470">#178470</a>)</li>
</ul>
<h3>2026.8.2 - August 14</h3>
<ul>
<li>Teslemetry: convert streamed tyre pressure and isolation resistance to their declared units (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/177541">#177541</a>)</li>
<li>Handle inconsistence api response in Husqvarna Automower (<a href="https://github.com/Thomas55555">@Thomas55555</a> - <a href="https://github.com/home-assistant/core/pull/178200">#178200</a>)</li>
<li>Scope hassfest Docker manifest.json discovery to documented locations (<a href="https://github.com/jabone">@jabone</a> - <a href="https://github.com/home-assistant/core/pull/178265">#178265</a>)</li>
<li>Fix/tplink omada switch port refresh (<a href="https://github.com/rubempoli">@rubempoli</a> - <a href="https://github.com/home-assistant/core/pull/178270">#178270</a>)</li>
<li>Unload legacy notify actions in SMTP integration (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/176747">#176747</a>)</li>
<li>Fix potential race condition in SMTP integration (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/178416">#178416</a>)</li>
<li>Fix adaptive update interval Tado (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/178515">#178515</a>)</li>
<li>Bump midea-local to 7.0.0 (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/178535">#178535</a>)</li>
<li>Bump python-bsblan to 6.1.8 (<a href="https://github.com/liudger">@liudger</a> - <a href="https://github.com/home-assistant/core/pull/178561">#178561</a>)</li>
<li>Victron GX: Fix regression in SSDP rediscovery with missing host (<a href="https://github.com/tomer-w">@tomer-w</a> - <a href="https://github.com/home-assistant/core/pull/178585">#178585</a>)</li>
<li>Bump evohome-async to v2.1.0 (<a href="https://github.com/zxdavb">@zxdavb</a> - <a href="https://github.com/home-assistant/core/pull/178588">#178588</a>)</li>
<li>Fix Reolink time import (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/178597">#178597</a>)</li>
<li>Add <code>handle_safe_area</code> opt-out to <code>panel_custom</code> and fix KNX panel (<a href="https://github.com/farmio">@farmio</a> - <a href="https://github.com/home-assistant/core/pull/178598">#178598</a>)</li>
<li>Use common logger in Mikrotik (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/178602">#178602</a>)</li>
<li>Fix sensors for Mikrotik (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/178604">#178604</a>)</li>
<li>Bump ical to 14.1.0 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/178626">#178626</a>)</li>
<li>Update xknx to 3.19.0 (<a href="https://github.com/farmio">@farmio</a> - <a href="https://github.com/home-assistant/core/pull/178652">#178652</a>)</li>
<li>Bump aiolyric to 2.1.2 (<a href="https://github.com/timmo001">@timmo001</a> - <a href="https://github.com/home-assistant/core/pull/178670">#178670</a>)</li>
<li>Create hassio config entry during setup instead of deferring to started (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/178677">#178677</a>)</li>
<li>Handle Wyoming error events (<a href="https://github.com/synesthesiam">@synesthesiam</a> - <a href="https://github.com/home-assistant/core/pull/178696">#178696</a>)</li>
<li>Bump homematicip to 2.14.1 (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/178701">#178701</a>)</li>
<li>Report a refused alarm activation in homematicip_cloud (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/179139">#179139</a>)</li>
<li>Fix missing optional <code>gameserverip</code> field in Steam Online dataclass (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/178751">#178751</a>)</li>
<li>Fix delayed trains being dropped from Israel Rail departures (<a href="https://github.com/mikomgk">@mikomgk</a> - <a href="https://github.com/home-assistant/core/pull/178773">#178773</a>)</li>
<li>Bump lyngdorf to 1.4.9 (<a href="https://github.com/fishloa">@fishloa</a> - <a href="https://github.com/home-assistant/core/pull/178784">#178784</a>)</li>
<li>Bump aiopvapi to 3.4.1 for hunterdouglas_powerview (<a href="https://github.com/kingy444">@kingy444</a> - <a href="https://github.com/home-assistant/core/pull/178792">#178792</a>)</li>
<li>Make tedee unknown during calibration and updates (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/179048">#179048</a>)</li>
<li>Bump blebox-uniapi to v2.5.7 (<a href="https://github.com/bkobus-bbx">@bkobus-bbx</a> - <a href="https://github.com/home-assistant/core/pull/179050">#179050</a>)</li>
<li>Fix composed devices behind Matter bridge losing “via device” (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/179118">#179118</a>)</li>
<li>Electric Kiwi: bugfix connections empty not checked (<a href="https://github.com/mikey0000">@mikey0000</a> - <a href="https://github.com/home-assistant/core/pull/179119">#179119</a>)</li>
<li>Separate energy endpoint MELCloud Home (<a href="https://github.com/erwindouna">@erwindouna</a> - <a href="https://github.com/home-assistant/core/pull/179124">#179124</a>)</li>
<li>Update frontend to 20260729.7 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/179131">#179131</a>)</li>
<li>Bump incomfort-client to v0.7.1 (<a href="https://github.com/jbouwh">@jbouwh</a> - <a href="https://github.com/home-assistant/core/pull/179134">#179134</a>)</li>
<li>Bump py-nymta to 0.4.1 (<a href="https://github.com/OnFreund">@OnFreund</a> - <a href="https://github.com/home-assistant/core/pull/179136">#179136</a>)</li>
<li>Bump homematicip to 2.15.0 (<a href="https://github.com/lackas">@lackas</a> - <a href="https://github.com/home-assistant/core/pull/179153">#179153</a>)</li>
</ul>
<h3>2026.8.3 - August 21</h3>
<ul>
<li>Show artwork and a play button when opening a Sonos music library album (<a href="https://github.com/bharat">@bharat</a> - <a href="https://github.com/home-assistant/core/pull/177510">#177510</a>)</li>
<li>Pass config entry explicitly in Supla coordinator (<a href="https://github.com/Fistacho">@Fistacho</a> - <a href="https://github.com/home-assistant/core/pull/178347">#178347</a>)</li>
<li>Bump holidays to 0.102 (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/179170">#179170</a>)</li>
<li><code>errors</code> could be <code>None</code> in Shelly Wall Display status (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/179207">#179207</a>)</li>
<li>Bump google-health-api to 0.9.0 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/179323">#179323</a>)</li>
<li>Bump ical to 14.1.1 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/179325">#179325</a>)</li>
<li>Fix Signal Messenger self notifications (<a href="https://github.com/brozikcz">@brozikcz</a> - <a href="https://github.com/home-assistant/core/pull/179351">#179351</a>)</li>
<li>Remove use of default_ device info in device_tracker (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179380">#179380</a>)</li>
<li>Remove use of default_ device info in dlna_dmr (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179381">#179381</a>)</li>
<li>Remove use of default_ device info in fritz (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179382">#179382</a>)</li>
<li>Remove use of default_ device info in netgear (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179383">#179383</a>)</li>
<li>Remove use of default_ device info in unifi (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179384">#179384</a>)</li>
<li>Remove use of default_ device info in wake_on_lan (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179385">#179385</a>)</li>
<li>Use dedicated translation on sensor entities if it’s Ecovacs mower (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/179416">#179416</a>)</li>
<li>Revert host update on Overkiz local gateway rediscovery (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/179422">#179422</a>)</li>
<li>Fix Vizio media player crash when volume is missing from audio settings (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/179431">#179431</a>)</li>
<li>Fix KeyError in Shelly integration for LinkedGo ST802 in <code>floor heating</code> mode (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/179435">#179435</a>)</li>
<li>Invalidate conversation slot-list cache on device registry changes (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179486">#179486</a>)</li>
<li>Log warning when event triggers filter on composite device (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/179490">#179490</a>)</li>
<li>Bump holidays to 0.103 (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/179500">#179500</a>)</li>
<li>Remove just go2rtc sessions of the failing camera (<a href="https://github.com/edenhaus">@edenhaus</a> - <a href="https://github.com/home-assistant/core/pull/179534">#179534</a>)</li>
<li>Bump reolink-aio to 0.21.9 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/179625">#179625</a>)</li>
<li>bump pyenphase to 4.0 and add required None handling and tests (<a href="https://github.com/catsmanac">@catsmanac</a> - <a href="https://github.com/home-assistant/core/pull/179673">#179673</a>)</li>
<li>Bump volvocarsapi to v0.4.4 for the Volvo integration (<a href="https://github.com/thomasddn">@thomasddn</a> - <a href="https://github.com/home-assistant/core/pull/179712">#179712</a>)</li>
<li>Bump aiowebostv to 0.9.2 (<a href="https://github.com/thecode">@thecode</a> - <a href="https://github.com/home-assistant/core/pull/179757">#179757</a>)</li>
</ul>
<h2>Need help? Join the community</h2>
<p>Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!</p>
<p>Our very active <a href="/join-chat">Discord chat server</a> is an excellent place to be, and don’t forget to join our amazing <a href="https://community.home-assistant.io/">forums</a>.</p>
<p>Found a bug or issue? Please report it in our <a href="https://github.com/home-assistant/core/issues">issue tracker</a> to get it fixed! Or check <a href="/help">our help page</a> for guidance on more places you can go.</p>
<p>Are you more into email? <a href="/newsletter">Sign up for the Open Home Foundation Newsletter</a> to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.</p>
<p>If you would like to wear your support: the Open Home Foundation store just added new T-shirts featuring ESPHome, Music Assistant, and a fresh Home Assistant design, all in classic black (or Dark Mode, if you prefer!). They are versatile, built to last, and best of all, every purchase helps fund the foundation’s work. <a href="https://store.openhomefoundation.org/shop/t-shirts">Grab yours from the store</a>.</p>
<p><a href="https://store.openhomefoundation.org/shop/t-shirts"><img alt="Three black T-shirts from the Open Home Foundation store, featuring the ESPHome, Music Assistant, and Home Assistant designs." class="no-shadow" src="/images/blog/2026-08/Black-shirts-newsletter.png"/></a></p>
<h2>Backward-incompatible changes</h2>
<p>We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.</p>
<p>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:</p>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>AirNow</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_0">
<p>The station radius option has been removed. The 2026 AirNow API no longer uses a distance parameter, so the radius had no effect on which reporting station was used. Existing entries are updated automatically, and any radius you had set is discarded. No action is needed.</p>
<p>(<a href="https://github.com/derekcentrico">@derekcentrico</a> - <a href="https://github.com/home-assistant/core/pull/176740">#176740</a>) (<a href="/integrations/airnow/">AirNow documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Gardena Bluetooth</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_1">
<p>The valve’s <code>activation_reason</code> sensor now reports a fixed set of values instead of free-form text. If you have <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, or <span class="terminology">“templates”<span class="terminology-tooltip">A template is an automation definition that can include variables for the action or data from the trigger values. This allows automations to generate dynamic actions.<a class="terminology-link" href="/docs/automation/trigger-data/"> [Learn more]</a></span></span> that match on the old text values, update them to match the new ones.</p>
<p>(<a href="https://github.com/elupus">@elupus</a> - <a href="https://github.com/home-assistant/core/pull/177187">#177187</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Edifier Infrared</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_2">
<p>If you set up the Edifier Infrared integration for the R2000DB or R2730DB speakers, some buttons were mapped to the wrong infrared codes (on the R2730DB, power and mute were swapped). The mappings are now corrected and migrated automatically. If you built <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> or <span class="terminology">scripts<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span> around the old, incorrect buttons, update them to match.</p>
<p>(<a href="https://github.com/abmantis">@abmantis</a> - <a href="https://github.com/home-assistant/core/pull/177472">#177472</a>) (<a href="/integrations/edifier_infrared/">Edifier Infrared documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Ohme</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_3">
<p>The Ohme energy sensor has been removed. It reported an estimate of the energy stored in the car’s battery rather than the energy delivered by the charger, which caused confusing jumps in the energy dashboard, and the vendor’s API no longer provides a useful value.</p>
<p>If you tracked this sensor, use an <a href="/integrations/integration/">Integration - Riemann sum</a> <span class="terminology">helper<span class="terminology-tooltip">A helper is a virtual entity you create inside Home Assistant. It is not backed by a physical device. Helpers store values, track state, or do calculations that your automations and dashboards need.<a class="terminology-link" href="/docs/configuration/helpers/"> [Learn more]</a></span></span> on a power sensor to estimate the energy instead.</p>
<p>(<a href="https://github.com/dan-r">@dan-r</a> - <a href="https://github.com/home-assistant/core/pull/174664">#174664</a>) (<a href="/integrations/ohme/">Ohme documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Paperless-ngx</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_4">
<p>Paperless-ngx now requires a newer version of your Paperless-ngx server. The minimum supported server version is raised to 2.19, which also restores compatibility with Paperless-ngx 3.0. If your Paperless-ngx server is on version 2.18 or older, update it before you update Home Assistant.</p>
<p>(<a href="https://github.com/IngmarStein">@IngmarStein</a> - <a href="https://github.com/home-assistant/core/pull/176889">#176889</a>) (<a href="/integrations/paperless_ngx/">Paperless-ngx documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Robot vacuums</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_5">
<p>The deprecated <code>battery_level</code> property has been removed from the vacuum <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> of several integrations. If you use a robot vacuum’s battery level in an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span>, <span class="terminology">script<span class="terminology-tooltip">A script is a saved list of steps that runs when you start it, for example, from a dashboard, with Assist, or from an automation. Unlike an automation, a script has no triggers, so it doesn’t start by itself.<a class="terminology-link" href="/docs/script/"> [Learn more]</a></span></span>, or on a dashboard, use the vacuum’s battery sensor instead.</p>
<p>This affects the following integrations:</p>
<ul>
<li><a href="/integrations/lg_thinq/">LG ThinQ</a></li>
<li><a href="/integrations/neato/">Neato</a></li>
<li><a href="/integrations/romy/">Romy</a></li>
<li><a href="/integrations/sharkiq/">Shark IQ</a></li>
<li><a href="/integrations/switchbot_cloud/">SwitchBot Cloud</a></li>
<li><a href="/integrations/template/">Template</a></li>
<li><a href="/integrations/tplink/">TP-Link</a></li>
<li><a href="/integrations/xiaomi_miio/">Xiaomi Miio</a></li>
</ul>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175681">#175681</a>, <a href="https://github.com/home-assistant/core/pull/175684">#175684</a>, <a href="https://github.com/home-assistant/core/pull/175685">#175685</a>, <a href="https://github.com/home-assistant/core/pull/175686">#175686</a>, <a href="https://github.com/home-assistant/core/pull/175687">#175687</a>, <a href="https://github.com/home-assistant/core/pull/175688">#175688</a>, <a href="https://github.com/home-assistant/core/pull/175691">#175691</a>, <a href="https://github.com/home-assistant/core/pull/175764">#175764</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>ScreenLogic</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_6">
<p>The option to configure the <span class="terminology">polling<span class="terminology-tooltip">Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.<a class="terminology-link" href="/common-tasks/general/#defining-a-custom-polling-interval"> [Learn more]</a></span></span> interval has been removed from ScreenLogic. Home Assistant now polls the integration at a fixed interval. If you need a different update frequency, you can <a href="/common-tasks/general/#defining-a-custom-polling-interval">set your own polling interval</a> or trigger an update with the <code>homeassistant.update_entity</code> action.</p>
<p>(<a href="https://github.com/Pinball3D">@Pinball3D</a> - <a href="https://github.com/home-assistant/core/pull/175576">#175576</a>) (<a href="/integrations/screenlogic/">ScreenLogic documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>UniFi Protect</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_7">
<p>Support for UniFi Protect AI Port devices has been removed. These devices only ever exposed diagnostic sensors, all disabled by default, and are not part of the UniFi Protect public API the integration is moving to. The AI Port device and its sensors are removed automatically when you update. You can still configure the AI Port directly in UniFi Protect.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/174378">#174378</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
<p>Detection scores are no longer available. The detection binary sensors (motion, person, vehicle, animal, and the smart-audio alarm sensors) now take their state from the UniFi Protect public API, which carries no per-event score, so their <code>event_score</code> attribute is gone and automations that filter on it need another condition. The event id and the detected types moved to the new <strong>Motion detection</strong>, <strong>Smart detection</strong>, and <strong>Sound detection</strong> event entities.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/174948">#174948</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
<p>UniFi Protect 7.1 or newer is now required. On an older console the integration reports that the version is too old instead of setting up. Update UniFi Protect to 7.1 or newer to keep using it.</p>
<p>(<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/177620">#177620</a>) (<a href="/integrations/unifiprotect/">UniFi Protect documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Volvo On Call</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_8">
<p>The Volvo On Call integration has been removed. If you have a supported Volvo, set up the newer <a href="/integrations/volvo/">Volvo</a> integration instead.</p>
<p>(<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175677">#175677</a>)</p>
</div>
</details>
</div>
<p>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 <a href="https://developers.home-assistant.io/blog/">developer blog</a>. The following changes are the most notable for this release:</p>
<ul>
<li><a href="https://developers.home-assistant.io/blog/2026/07/21/device-registry-single-config-entry">Devices are restricted to a single config entry and at most one subentry</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/07/20/ai-policy">Introducing the Open Home Foundation AI Policy</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/07/03/media-source-search">Media sources can now be searched</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/07/05/modernizing-modbus">Modernizing Modbus in Home Assistant</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/07/22/button-standard-event-types">Standard event types for button event entities</a></li>
</ul>
<h2>All changes</h2>
<p>Of course, there is a lot more in this release. You can find a list of all changes made here: <a href="/changelogs/core-2026.8">Full changelog for Home Assistant Core 2026.8</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[A big win for Android interoperability]]></title>
    <link href="https://www.openhomefoundation.org/blog/a-big-win-for-android-interoperability/"/>
    <updated>2026-07-31T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/31/a-big-win-for-android-interoperability</id>
    <content type="html"><![CDATA[<article class="post content"><p>Something big just happened. As the Open Home Foundation’s Android developer for Home Assistant, I was invited by the European Commission (EC) to <a href="https://digital-markets-act.ec.europa.eu/dma100220-consultation-proposed-measures-interoperability-google-android-article-67-dma_en" rel="noopener noreferrer" target="_blank">consult on Android interoperability</a>. The call for feedback was part of the Commission’s work under the <a href="https://digital-markets-act.ec.europa.eu/index_en" rel="noopener noreferrer" target="_blank">Digital Markets Act</a> (DMA). For anyone unfamiliar, the DMA is an <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:OJ.L_.2022.265.01.0001.01.ENG#006.007" rel="noopener noreferrer" target="_blank">EU law</a> that defines and regulates “gatekeeper platforms” – those that offer “core” services like search engines, app stores, and messaging platforms – to make digital markets fairer and more open to competition. As you might imagine, I had <em>plenty</em> to say about Google’s restrictions on Android, especially the tech giant limiting wake word detection to its own Gemini assistant, a concern I surfaced in our <a href="https://www.youtube.com/live/AQOzKdvO97s?t=2193" rel="noopener noreferrer" target="_blank">Home Assistant 2026.3 Release Party</a>. To put it plainly, Google had no grounds for limiting Android interoperability in the first place, other than to give itself the upper hand. We knew our community deserved better, and that’s what we told the Commission.</p>
<p>The result? The EC listened to us and all the other organizations that contributed. On July 16, 2026, the European Commission adopted a decision under the DMA that requires Alphabet (Google’s parent company) <a href="https://digital-markets-act.ec.europa.eu/developer-portal/interoperability/alphabet-specification-proceedings-interoperability-ai-services_en" rel="noopener noreferrer" target="_blank">to open up eleven Android features</a>, including always-on wake word detection, ambient sensor access, and screen automation – to all assistants, on equal terms.</p>
<p>As an EU citizen, I’m genuinely pleased to see this kind of regulation of Big Tech leveling the digital market playing field and representing real progress for users. Not only that, but it’s a real win for the Open Home Foundation: we exist to fight for privacy, choice, and sustainability in smart homes, and this outcome shows what’s possible when we advocate for our community. We already briefly covered this news in our <a href="https://newsletter.openhomefoundation.org/the-walled-garden-thats-breaking-down-barriers/" rel="noopener noreferrer" target="_blank">July newsletter</a>, but I want to take some time now to break down how we got here, what this decision says, why it matters for our community, and what it could unlock for Home Assistant and the rest of the industry.</p>
<!--more-->
<h2 id="a-bit-of-background">A bit of background</h2>
<p>For three years, our community had tried to ship an always-on wake word detection in the Android <a href="https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&amp;hl=en" rel="noopener noreferrer" target="_blank">Home Assistant Companion app</a>. We wanted users to be able to say “Okay Nabu,” and have their self-hosted <a href="https://www.home-assistant.io/voice_control/" rel="noopener noreferrer" target="_blank">Assist</a> voice assistant answer. Yet our early attempts kept breaking. Most notably, after each reboot the device's microphone no longer picked up the wake word. So we dug into the Android source code, and lo and behold, there was a solution: but Google wasn’t letting us use it.</p>
<p>Android has a well-designed mechanism that lets your device listen for “Hey Google” all day, without draining your battery. Their wake word detection runs in two stages. A small model does the first detection on a DSP (digital signal processor), which is a dedicated chip that processes audio using a fraction of the power your device’s main processor (CPU) would need. This first stage runs in an isolated process blocked from the network, and can’t extract audio until a potential wake word is detected. Then the second stage uses a stronger model via the CPU to confirm the detection.</p>
<p>Most contemporary devices have DSPs. But Android-based devices block access to it for anyone other than Google and the manufacturer of the device. Since the wake word mechanism using the DSP simply wasn’t available to third-party apps, and developer documentation didn’t exist publicly, we used what we could to build a workaround.</p>
<h2 id="from-microwakeword-to-macro-results">From microWakeWord to macro results</h2>
<p>Our solution was running a small <a href="https://github.com/OHF-Voice/micro-wake-word" rel="noopener noreferrer" target="_blank">microWakeWord model</a> on the device’s CPU inside our app. This worked, but came with some big downsides:</p>
<ul>
<li>Battery usage would jump from roughly 1% to 15% with wake word detection enabled, since the CPU is far less efficient for this task.</li>
<li>The microphone privacy indicator (the green dot) would stay on permanently, because we needed full microphone access to run detection ourselves. We actually think the indicator is the right design – the problem is that we had no way to offer the stronger guarantee Google gives itself: an isolated process that can’t send audio anywhere. Instead, you had to trust that we were handling that access responsibly. And not because a safer version isn’t technically available. But because the DSP path is arbitrarily blocked by Google for anticompetitive reasons, forcing a less secure approach that introduces privacy risks for the user.</li>
<li>You would have to set Home Assistant as your default assistant, because that was the only way Android would keep our service alive across reboots. That would lock you out of Gemini and everything tied to it (and you shouldn’t have to choose).</li>
</ul>
<p>When I was invited to share these limitations (and others) with the Commission, I didn’t hold back. Which is why we were thrilled to discover an impressively precise and technically accurate decision from the EU: it correctly describes the two-stage wake word architecture, the DSP, the isolated process, and the role coupling. The report went down to details we only figured out by reading Android's source code ourselves. Which brings us to what the ruling actually says…</p>
<h2 id="a-wake-up-call-for-google">A wake-up call for Google</h2>
<p>The decision requires Google to give third parties interoperability that’s “equally effective” as what Google’s own assistant gets across eleven Android features, free of charge. For wake word detection specifically, Google must provide:</p>
<ul>
<li>The ability to create a custom wake word model in Android, with first-stage detection run by the DSP (when available) instead of the app</li>
<li>The ability to run a second-stage validation after the DSP has potentially identified the wake word in first-stage detection</li>
<li>Testing tools and complete documentation, without requiring a commercial agreement with Google</li>
</ul>
<p>Two lines deserve a special mention. First: Google “shall not subject access to features to the app holding a default role, including the default assistant role.” That is the decoupling we discussed with the Commission. Second: wake word detection “from multiple services, including services belonging to third parties and Alphabet, are able to run concurrently.” This would let you say “Okay Nabu” to control your home without changing any defaults or having to give up using Gemini for other purposes.</p>
<p>Beyond wake words, the decision covers invoking assistants from the long-press home gesture, access to ambient data like the microphone and camera under the same conditions as Google, structured integration with apps (including Gmail, Calendar, and Maps), system-level controls, access to on-device AI models, and fair background execution rules. Opening up these features hasn’t been without pushback – Google itself has raised security concerns, which we’ll get into below. But with all things considered, we believe the benefits to users and the industry far outweigh the risks.</p>
<h2 id="times-ticking">Time’s ticking</h2>
<p>Google must ship these changes in Android 18 (the next major release), by August 1, 2027. Concurrent hotword detection – letting multiple services be triggered by voice – must be in place by Android 19, no later than August 1, 2028.</p>
<p>It’s worth noting the decision still relies on Google to design and implement the changes, and with that comes a risk of malicious compliance: a technically sound solution that is unusable in reality (it wouldn’t be the first time a gatekeeper wrangled its way out of a regulation). But the fine print gives grounds for hope: Google must deliver solutions that are “equally effective” on ease of use, speed, and energy consumption, publish complete documentation and testing tools, and report progress to the Commission monthly. A real win for developers, and one that makes shipping the bare minimum much harder to get away with. With that in mind, here’s what it could look like for Home Assistant.</p>
<h2 id="help-us-make-this-change-stick">Help us make this change stick</h2>
<p>We’re always working hard to create the best possible experience for our Android Home Assistant users, though we’re a small team – which is why community contributions to the <a href="https://github.com/home-assistant/android" rel="noopener noreferrer" target="_blank">Android app</a> matter so much. If you’d like to help (in line with our recently released <a href="https://github.com/home-assistant/android/blob/main/AI_POLICY.md" rel="noopener noreferrer" target="_blank">AI policy</a>), we’d love to hear from you. While the ideas below are just that, and don’t form part of our roadmap, your input could help unlock them in the future:</p>
<h3 id="battery-efficient-wake-word-detection">Battery-efficient wake word detection</h3>
<p>Like we mentioned earlier, moving first-stage detection from the CPU to the DSP should increase battery efficiency significantly. Our plan is to support two methods: on newer phones with Android 18, we’ll use the phone’s low-power chip to listen for the wake word. On older phones, or those without that chip, detection will keep running as it does today. Either way, we’ll show you which method your phone is using from within the Companion app.</p>
<h3 id="one-phone-two-assistants">One phone, two assistants</h3>
<p>Today, choosing a third-party wake word means giving up Gemini, along with calls and messages through your default assistant. Default-role decoupling and concurrent wake word access would end that: You can talk to Gemini like aways, but also say “Okay Nabu” when you want to interact with your home via Home Assistant.</p>
<p>Imagine if you could set different wake words for different assistants inside the app itself, like “Hey Jarvis” for your admin dashboard and “Okay Nabu” for the family. This won’t even be technically possible until 2028 when Android 19 is released (and it will take a lot of work), but it’s a nice goal to have looking ahead.</p>
<h3 id="better-built-in-privacy">Better built-in privacy</h3>
<p>This is the part I find most exciting. The ruling requires wake word confirmation to run in a secure, isolated process (known as sandboxing) via the DSP. This means the part of the system that controls this feature is walled off, with no way to send audio anywhere until the wake word is confirmed. I don’t want to rely on trust when it comes to something as sensitive as interactions with my voice assistant. I want to be in control, with a clear explanation of what the things I enable actually imply. Sandboxing gives us that by design: privacy enforced by the OS itself, the same secure-by-default protection Google has always had, now finally available to all.</p>
<h3 id="a-more-capable-assistant-for-everyone">A more capable assistant, for everyone</h3>
<p>Sensor access isn’t the only place this equal treatment applies. The decision also requires Google to open structured integrations with its own apps – Gmail, Calendar, Maps, etc – to qualified assistants, not just Gemini. In theory, that means your assistant could draft an email, manage a calendar event, or send a text and start a call on your behalf: exactly the capabilities our users tell us they miss when they leave Gemini, and ones that could genuinely boost usability, especially for users with accessibility needs.</p>
<p>That same access could expand the range of sensors and controls the app already reports to Home Assistant: sound detection (smoke alarm, breaking glass, doorbell) as automation triggers, and controls like do-not-disturb or Bluetooth your assistant can actually act on, not just observe.</p>
<h2 id="on-the-security-argument">On the security argument</h2>
<p>Google has <a href="https://blog.google/company-news/inside-google/around-the-globe/google-europe/the-dma-should-not-undercut-security-privacy-for-europeans/" rel="noopener noreferrer" target="_blank">pushed back on the ruling, citing security risks</a>. It warns the decision grants third parties “sensitive and powerful device permissions,” exposing user data “without user knowledge or consent.” This framing overstates the risks in a familiar tactic: sounding the alarm on security concerns to curtail attempts for interoperability. We’d point out, as one of those third parties, that the decision already builds in the safeguards that concern calls for: Google can still require user consent, show privacy indicators, and let users revoke access per service. For the most sensitive features like health data access, it also has a policy in place via the Play Store to check security, privacy, and data minimization before any app gets access.</p>
<p>And to be clear, these capabilities already exist on your phone, and Google’s own services already use them, without ever asking your approval. The risk didn’t appear when the EU asked for that access to be shared more broadly – what changed is who gets to decide who has it. Whatever risks remain, like those introduced by using <em>any</em> smart device, should be taken seriously – just not as a veil for Google’s double-dealing.</p>
<p>Our view is that trust without verification isn’t a security model, and limiting these safeguards to Google alone isn’t protection. Even major AI vendors have had security incidents, <a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/" rel="noopener noreferrer" target="_blank">Hugging Face/OpenAI</a> among them. What does offer protection is giving users choice and transparency into security processes, along with a secure technical architecture: sandboxing, isolation, revocable permissions – enforced equally, which is what this decision requires.</p>
<p>It’s worth watching where Google goes next: from 2027, its developer verification program will require every Android developer to be centrally verified before their apps can even be installed – a move contested by the <a href="https://keepandroidopen.org/" rel="noopener noreferrer" target="_blank">Keep Android Open</a> campaign, and one we’re also skeptical about. It’s a reminder that this fight isn’t over, and neither is our work.</p>
<h2 id="there-every-step-of-the-way">There every step of the way</h2>
<p>Google must report its implementation plans to the Commission within two months, and eligibility program terms are due for public consultation by February 2027. We’ll be there for it all: to test the betas, report on whether implementation lives up to the promise, and keep you informed. In the meantime, we’ll continue doing all we can to champion smart home tech that’s private, local, and controlled by you, on <em>your terms.</em></p>
</article>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Making our web analytics open source with Plausible]]></title>
    <link href="https://www.openhomefoundation.org/blog/making-our-web-analytics-open-source-with-plausible/"/>
    <updated>2026-07-29T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/29/making-our-web-analytics-open-source-with-plausible</id>
    <content type="html"><![CDATA[<article class="post content"><p>The Open Home Foundation fights for privacy, choice, and sustainability. These principles are at the heart of everything we do, including how we handle website analytics.</p>
<p>Our position is clear: we reject tools that track individuals across the web to monetize their data. Instead, we want aggregated, anonymized analytics to show us how our websites are performing overall. This gives us the insights we need to effectively maintain the foundation’s websites without identifying who our visitors are, or compromising their privacy.</p>
<p>In this article we’ll explain how we plan to do this with Plausible analytics: open source software where you can see exactly what we see on a public dashboard and block altogether if you wish.</p>
<p><strong>Please note: the following information only applies to Open Home Foundation websites, <em>not</em> Home Assistant software, your local instance, or any data from your home.</strong></p>
<!--more-->
<h2 id="aggregated-anonymized-analytics">Aggregated, anonymized analytics</h2>
<p>Plausible shows us aggregate totals of website activity, not individual behavior or personal information. Here’s what that looks like, with links to the relevant information in Plausible:</p>
<table>
<thead>
<tr>
<th style="text-align: left">What is tracked</th>
<th style="text-align: left">What is not tracked</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><a href="https://plausible.io/docs/metrics-definitions#unique-visitors" rel="noopener noreferrer" target="_blank">Which pages get visited and how often</a></td>
<td style="text-align: left"><a href="https://plausible.io/when-not-to-use-plausible#plausible-is-not-for-tracking-individual-users" rel="noopener noreferrer" target="_blank">Individual visitor profiles or identities</a></td>
</tr>
<tr>
<td style="text-align: left"><a href="https://plausible.io/docs/countries#how-location-reporting-works" rel="noopener noreferrer" target="_blank">Approximate geography (country/region level)</a></td>
<td style="text-align: left"><a href="https://plausible.io/data-policy" rel="noopener noreferrer" target="_blank">Cross-session or cross-day visit history</a></td>
</tr>
<tr>
<td style="text-align: left"><a href="https://plausible.io/docs/top-referrers#sources" rel="noopener noreferrer" target="_blank">Referral sources (where visits come from)</a></td>
<td style="text-align: left"><a href="https://plausible.io/when-not-to-use-plausible#plausible-is-not-a-session-replay-or-heatmap-tool" rel="noopener noreferrer" target="_blank">Session replays or heat maps</a></td>
</tr>
<tr>
<td style="text-align: left"><a href="https://plausible.io/docs/metrics-definitions#engagement" rel="noopener noreferrer" target="_blank">Basic engagement metrics (time on page, scroll depth)</a></td>
<td style="text-align: left"><a href="https://plausible.io/privacy" rel="noopener noreferrer" target="_blank">Data sold or shared with third parties</a></td>
</tr>
<tr>
<td style="text-align: left"><a href="https://plausible.io/docs/custom-event-goals" rel="noopener noreferrer" target="_blank">Custom events like button clicks (downloads, sign-ups)</a></td>
<td style="text-align: left"><a href="https://plausible.io/security#personal-data" rel="noopener noreferrer" target="_blank">IP addresses (used briefly for geolocation, then deleted not stored)</a></td>
</tr>
<tr>
<td style="text-align: left"><a href="https://plausible.io/data-policy" rel="noopener noreferrer" target="_blank">Browser name and version, operating system name and version, and device category (desktop/mobile/tablet)</a></td>
<td style="text-align: left"><a href="https://plausible.io/data-policy" rel="noopener noreferrer" target="_blank">Fingerprinting signals such as screen resolution, fonts, or timezone collected from your browser</a></td>
</tr>
</tbody>
</table>
<h2 id="giving-you-control">Giving you control</h2>
<p>Our Plausible dashboard is public, so you can see exactly the same information as us – and we’ll provide the link at the bottom of every Open Home Foundation website using Plausible so everyone can access it. As part of our broader effort to align our websites with our principles, we’re also making sure any affiliate links and other tracking elements are removed.</p>
<p>The system doesn’t create persistent identifiers*, any other cross-site or cross-device tracking, or use cookies – which means no consent banners cluttering up your screen, and no way to recognize users across visits. However it also means that if you prefer not to be part of the aggregated statistics, you’ll need to block Plausible using your ad blocker rather than clicking a preference box. Many ad blockers already filter it automatically. If yours doesn’t, here’s how to add it:</p>
<pre><code>||plausible.openhomefoundation.org/js/pa-*
</code></pre>
<p>If your ad blocker is blocking Plausible by default and you want to make an exception for our websites, you can use the following filter to enable it just for us:</p>
<pre><code>@@||plausible.openhomefoundation.org/js/pa-*
</code></pre>
<p>*Plausible counts unique visitors using a <a href="https://plausible.io/security#personal-data" rel="noopener noreferrer" target="_blank">24-hour session hash</a>.</p>
<h2 id="how-were-using-plausible">How we’re using Plausible</h2>
<p>We’ve chosen Plausible because its philosophy aligns with our own privacy principles, and we’re taking extra steps to customize it further. We’re hosting it on infrastructure we maintain in-house, which means we have full control over the anonymous, aggregated data and how it’s handled. We’ve turned off journey tracking features, and while <a href="https://plausible.io/docs/countries#how-location-reporting-works" rel="noopener noreferrer" target="_blank">Plausible uses IP addresses for</a> geolocation, they are discarded and never stored.</p>
<p>Most analytics services collect personal data that privacy regulations – such as GDPR in Europe – require them to delete, typically after one to two years depending on jurisdiction. But since Plausible only provides fully anonymized data with no personally identifiable information, we can keep it indefinitely. This way we (and anyone viewing our public dashboard) can see how things change over time, and spot long-term trends that suggest what’s working and what needs improvement.</p>
<h2 id="why-we-need-analytics">Why we need analytics</h2>
<p>The Open Home Foundation is a non-profit responsible for fulfilling our mission: fighting for privacy, choice, and sustainability in smart homes. A key part of this is advocacy – making sure as many people as possible know about our work and the alternatives we’re building to Big Tech control. This means running multiple project and organizational websites, managing partnerships that fund our work, and allocating limited resources effectively.</p>
<p>As we’ve grown, we’ve reached a point where we have so many website visitors it’s impossible to ask them all basic operational questions about the websites we run, such as which browser versions to prioritize testing, whether our getting started guides are being found, or how to allocate maintenance effort across projects.</p>
<p>Without this information, we risk wasting resources on the wrong priorities.</p>
<p>Analytics helps us with:</p>
<ul>
<li>Technical optimization (browser compatibility, performance, maintenance)</li>
<li>Resource allocation across projects</li>
<li>Commercial sustainability (our store and links to our licensed products that help fund the foundation)</li>
<li>Infrastructure and cost management</li>
</ul>
<p>All these things inform our technical decisions, help us prioritize where to invest funds, and ensure we’re using our resources where they have the most impact.</p>
<p>For example: a key goal for 2026 is to make our projects more approachable for everyone – from experienced users to those just starting out. Using analytics will show us if beginners are finding our simplified guides or still getting lost in advanced documentation.</p>
<h2 id="what-weve-been-doing">What we’ve been doing</h2>
<p>Until now, the only data for our websites we could view was basic server-side usage information like page visit counts. This doesn’t sit well with us, since our users can’t see that data, or opt out of it unless they stop using our sites altogether! Which is why we’re moving to Plausible.</p>
<h2 id="what-happens-next">What happens next…</h2>
<p>We’re implementing Plausible over the next few months. You’ll see the dashboard link appear at the bottom of pages as it goes live.</p>
<p>We’ve taken care to align this work with our values, but we want to hear from you: if something concerns you or you have suggestions for how we could do this better, let us know.</p>
</article>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[FireAvert joins Works with Home Assistant]]></title>
    <link href="https://www.home-assistant.io/blog/2026/07/28/fireavert-joins-works-with-home-assistant/"/>
    <updated>2026-07-28T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/28/fireavert-joins-works-with-home-assistant</id>
    <content type="html"><![CDATA[<img alt="FireAvert joins Works with Home Assistant" src="/images/blog/2026-07-fireavert/art.webp" style="border: 0;box-shadow: none;"/>
<p>Sound the alarm, because Works with Home Assistant just welcomed our newest partner to the program: <a href="https://fireavert.com/" rel="noopener" target="_blank">FireAvert</a>! 🎉 Specialists in fire safety, FireAvert are on a mission to keep you and your home out of harm’s way. They bring the very first gas and electric appliance shutoff devices to the program, and with them, a whole lot of peace of mind.<!--more--></p>
<h2>Where there’s smoke, there’s FireAvert</h2>
<p>As ex-firefighter Peter Thorpe knows too well, a moment of forgetfulness is all it takes for a kitchen to end up in flames. And after close to twenty years of service witnessing the same devastating scenario repeat itself, he knew something had to be done. So he founded FireAvert, launching with the Auto Stove Shutoff for electric stovetops.</p>
<p>The device was already gaining momentum before <a href="https://www.youtube.com/watch?v=-g9Xt_IYACU" rel="noopener" target="_blank">FireAvert’s pitch</a> caught the attention of <a href="https://www.sharktankblog.com/business/fireavert/" rel="noopener" target="_blank">Shark Tank</a>, and for good reason. They say there’s no smoke without fire, but years on the job taught Thorpe that in the kitchen, that isn’t always the case. Smoke can build well before a flame takes hold – and that’s the window FireAvert’s shutoff works in. By listening for your standard smoke alarm, the device automatically shuts off your stove when the alarm sounds – cutting the heat at the source before a fire can catch.</p>
<div class="alert">
<p>“Excited to see FireAvert join the Home Assistant community. Smart homes shouldn’t just be convenient – they should help keep families safer too. This is exactly the kind of innovation the ecosystem needs.”</p>
<em style="text-align: right; display: block;">- Chasen Tolbert, FireAvert</em>
</div>
<p>Since their launch, FireAvert’s range has expanded to include gas stove and small appliance shutoffs (think microwaves, air fryers, hot plates), so whatever’s most likely to be left on in your kitchen, there’s a shutoff for it. And with Z-Wave units now among them, it’s easier than ever to bring that protection straight into your Home Assistant setup.</p>
<h2>On the same frequency</h2>
<p>The FireAvert shutoffs joining the program run on <a href="/integrations/zwave_js/">Z-Wave</a>. For anyone unfamiliar, here’s a quick rundown: Z-Wave is an open smart home protocol that allows your devices to talk to each other regardless of the brand, without locking you into one ecosystem. It’s also a mesh network, where each device relays signals for the others to extend coverage across your home, reinforcing your connection.</p>
<p>While Z-Wave wasn’t a part of FireAvert’s initial product line, since then we’ve been pleased to see the company prioritize local control by producing shutoff devices with the open standard, and certifying them with the <a href="https://z-wavealliance.org/" rel="noopener" target="_blank">Z-Wave Alliance</a>. We first met the FireAvert team at a San Diego alliance meeting back in 2025, and it was clear from the get-go that we were on the same wavelength: driven to build open, interoperable smart home tech that doesn’t require a cloud to keep your home protected.</p>
<p class="img"><img alt="FireAvert automatic shutoffs for electric and gas stoves" src="/images/blog/2026-07-fireavert/image2.webp"/>
FireAvert automatic shutoffs for electric and gas stoves
</p>
<h2>Safe as houses</h2>
<p>It’s important to note that FireAvert’s shutoffs don’t rely purely on Z-Wave to do their job, and they’ll keep protecting your kitchen even if your network drops out entirely. That kind of safety net is reassuring for anyone, but even more so for those with caring responsibilities or aging relatives to worry about.</p>
<p>Likewise, FireAvert’s shutoffs don’t depend on a battery to function: just plug your stove or small appliance into the shutoff device, and the device into your wall socket – and you’re all set. As long as your appliance has power, the shutoff is on duty. And FireAvert back up that dependability where it counts: all four devices come with a lifetime warranty, and are independently tested to CSA and UL standards – confirming the hardware meets strict, recognized electrical safety requirements.</p>
<h2>Devices</h2>
<p>Just like every device certified by the Works with Home Assistant program, FireAvert’s shutoffs have also been rigorously tested by our in-house team to ensure they are up to code with our core requirements of local control and privacy.</p>
<p>Check out the devices that made the grade:</p>
<ul class="wwha-device-list">
<li><a href="https://fireavert.com/products/z-wave-auto-stove-shutoff?variant=48680090468603" rel="noopener" target="_blank">FireAvert Electric 240V 3 Prong Auto Stove Shutoff</a> (FA-EZ-10-50, USA, Canada)</li>
<li><a href="https://fireavert.com/products/z-wave-auto-stove-shutoff?variant=48680090435835" rel="noopener" target="_blank">FireAvert Electric 240V 4 Prong Auto Stove Shutoff</a> (FA-EZ-14-50, USA, Canada)</li>
<li><a href="https://fireavert.com/products/z-wave-auto-stove-shutoff?variant=48680330756347" rel="noopener" target="_blank">FireAvert 120V Auto Appliance Shutoff</a> (FA-EZ-5-15, USA, Canada)</li>
<li><a href="https://fireavert.com/products/z-wave-auto-stove-shutoff?variant=48680090403067" rel="noopener" target="_blank">FireAvert Gas Shutoff</a> (FA-GZ-5-15, USA, Canada)</li>
</ul>
<p>But it’s not just about adding devices to a list – our community is the engine of everything we do, and by joining it FireAvert commits to providing long-term support to make certain their devices continue to work smoothly within your setup.</p>
<h2>Building the brigade</h2>
<p>While there are already certified water shutoff devices in the program, stove shutoffs are a first, bringing a brand-new category of safety tech to Home Assistant users. It’s exactly the kind of innovation we love to see: more ways for our community to manage their smart homes, on their own terms.</p>
<p>That expansion is core to what the <a href="https://www.openhomefoundation.org/" rel="noopener" target="_blank">Open Home Foundation</a> – which operates the Works with Home Assistant program – is about: keeping smart homes local, private, and safe. If you’d like to see more safety-focused partners like FireAvert join the program, consider subscribing to <a href="/cloud/">Home Assistant Cloud</a> or buying official hardware like the <a href="/connect/zwa-2/">Home Assistant Connect ZWA-2</a>. Every bit of support helps us expand and maintain the program for all ⚒️.</p>
<h2>Geared up and ready to respond</h2>
<p>Forged to protect the community, FireAvert are a natural match for ours. We’re thrilled to have them join the ranks, and excited for Home Assistant users to be able to add another line of defense for their smart homes, and the people and pets who live in them. Head to our <a href="https://works-with.home-assistant.io/certified-products/" rel="noopener" target="_blank">certified device list</a> to discover the full range of devices to safeguard your home.</p>
<h2>FAQs</h2>
<p>Q: If I have a device that is not listed under Works with Home Assistant does this mean it’s not supported?</p>
<p>A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule later down the road, or it might work under a different connectivity type that we don’t currently test under the program.</p>
<p>Q: OK, so what’s the point of the Works with program?</p>
<p>A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have the functionality you would expect within Home Assistant, operate locally without the need for the cloud, and that they will continue to do so long term.</p>
<p>Q: How were these devices tested?</p>
<p>A: All devices in this list were tested using a standard Home Assistant Green Hub with the Home Assistant Connect ZWA-2 as the Z-Wave adapter and with our Z-Wave integration. If you have another hub/adapter/integration that’s not a problem but we test against these as they are the most effective way for our team to certify within our ecosystem.</p>
<p>Q: Will you be adding more FireAvert devices to the program?</p>
<p>A: Why not! We’re thrilled to foster a close relationship with the team at FireAvert to work together on any upcoming releases or add in further products that are not yet listed here.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Building the device database together: Public preview now live]]></title>
    <link href="https://www.openhomefoundation.org/blog/building-the-device-database-together/"/>
    <updated>2026-07-23T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/23/building-the-device-database-together</id>
    <content type="html"><![CDATA[<article class="post content"><p>Ever since we introduced the idea of a community-powered device database at State of the Open Home 2025, our goal has been clear: create a “Wikipedia of smart home devices” based on real-world usage. In February, we took the first step by <a href="https://www.home-assistant.io/blog/2026/02/02/about-device-database/" rel="noopener noreferrer" target="_blank">inviting Home Assistant users</a> to voluntarily share anonymized device data to help us build it.</p>
<p>Back then, we said we wouldn’t hide behind closed doors until we’d polished some “perfect” final product, and we meant it. At the Open Home Foundation we build in the open. That means sharing our process, our progress, and every milestone along the way with the community that makes it all possible.</p>
<p>So today I’m excited to share the next milestone. The seeds we planted in February have started to sprout: thanks to the incredible response from thousands of users who opted to share anonymized device data during the initial phase, the <a href="https://device-database-preview.openhomefoundation.org" rel="noopener noreferrer" target="_blank">preview edition of the database’s public interface</a> is now live!</p>
<!--more-->
<h2 id="what-is-the-preview-edition">What is the preview edition?</h2>
<p>Providing a public, open way to browse the anonymous, aggregated device data we collect was always part of the plan, and this preview is our first step toward it.</p>
<p>You can already use it to search and filter devices to see aggregated community insights, starting with a deliberately focused set of specifics, such as whether a device requires an internet connection, and which protocols and integrations it works with. We’ve kept that initial scope narrow on purpose, giving us a solid foundation we can build on together with you, our community, as the database grows.</p>
<p>What you see today is only a slice of what’s to come, and we want to be upfront about that. Yes it’s functional, but it’s unpolished. There are no final design flourishes, and we’re sure there are a few bugs waiting to be discovered. We don’t even have an official name for it… yet. But we’d rather you experience it now than wait for the full picture before opening the doors.</p>
<p>So please, jump right in.</p>
<h2 id="help-us-test-it">Help us test it</h2>
<p>This is a resource built <em>by</em> the community, <em>for</em> the community, so we want you to start using it now. The more you explore it today, the more powerful we can make the official launch later this year.</p>
<p>It’s the baseline everything else builds on, where you can browse, search, and read device data, and it’s the groundwork for the richer pages and community contributions still to come.</p>
<p>As you explore the preview, we’d love your help tracking down areas where we can improve. We’ve set up a dedicated <a href="https://discord.com/channels/330944238910963714/1463602457924997236" rel="noopener noreferrer" target="_blank">feedback channel on Discord</a>, and that’s the best place to share your thoughts so everything lands in one spot. A few things we’re especially keen to hear about:</p>
<ul>
<li><strong>What’s missing for you:</strong> Which device details would help you make a decision, and what extra features or information would make the database more valuable to you?</li>
<li><strong>Interface usability:</strong> How easy is it to navigate, search, and make sense of device information, and did you hit any hurdles or confusing moments along the way?</li>
</ul>
<p>Big reactions or small ideas, what you’d keep or what you’d change: all of it helps. <a href="https://discord.com/channels/330944238910963714/1463602457924997236" rel="noopener noreferrer" target="_blank">Head over to the discussion</a> and let us know what you think.</p>
<p>A couple of things you might notice along the way:</p>
<p><strong>Can’t find a specific device?</strong> To ensure data quality and accuracy, devices only appear in search results once enough independent submissions have been aggregated and validated. Additionally, during this early phase, custom integrations and service-type devices are not yet included.</p>
<p><strong>Want to edit or add device details directly?</strong> Direct contributions to device pages, like adding context or correcting details, are firmly on our roadmap but a little further down the line. Right now the focus is simply making the data collected so far accessible and useful to everyone.</p>
<p>So for now, take it for a spin and let us know what you think. Like I said back in February, this is a marathon, not a sprint, and your feedback will directly shape the final product!</p>
<p style="text-align: center; margin-top: 40px;"><a class="button" href="https://device-database-preview.openhomefoundation.org" rel="noopener noreferrer" style="display: inline-flex;" target="_blank">Explore the preview</a></p>
<p style="text-align: center; margin-top: 16px;"><a class="button" href="https://discord.com/channels/330944238910963714/1463602457924997236" rel="noopener noreferrer" style="display: inline-flex;" target="_blank">Share your feedback</a></p>
</article>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[IoTorero joins Works with Home Assistant]]></title>
    <link href="https://www.home-assistant.io/blog/2026/07/09/iotorero-joins-works-with-home-assistant/"/>
    <updated>2026-07-09T00:00:01+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/09/iotorero-joins-works-with-home-assistant</id>
    <content type="html"><![CDATA[<img alt="IoTorero joins Works with Home Assistant" src="/images/blog/2026-07-iotorero/art.webp" style="border: 0;box-shadow: none;"/>
<p>The Works with Home Assistant program powers up this month as we welcome our new partner, <a href="https://www.athom.tech/" rel="noopener noreferrer" target="_blank">IoTorero</a>! 🎉 Experts in pre-flashed smart home hardware, IoTorero bring the very first ESPHome-ready smart plugs and relays to the program (and that’s not all).<!--more--></p>
<h2>IoTorero enters the ring</h2>
<p>If you’ve spent any time browsing pre-flashed smart home tech online, there’s a good chance you’ve come across IoTorero. And if you haven’t, let us introduce you! Founded in 2020, the company (formerly Athom Technology) was tinkering with <a href="https://esphome.io/" rel="noopener noreferrer" target="_blank">ESPHome</a> right out of the gate. Their new name is a nod to the Internet of Things (IoT), but unlike standard IoT gadgets that stop working if your internet drops or a company closes its servers, IoTorero champion open source firmware.</p>
<p>Other smart devices run manufacturer-written software, which is tuned to work well with Home Assistant for certification to the program. IoTorero go a step further to make sure their tech is accessible for all: all seven of their certified devices are pre-flashed with ESPHome, meaning there’s no installation required – the devices will integrate into your Home Assistant setup straight out of the box. And because their devices are genuinely open, you can always tweak and customize them if you want to.</p>
<div class="alert">
<p>“Since inception in 2020, IoTorero (Athom Technology) has been dedicated to the research, development, and manufacturing of open source smart home hardware products. We provide Home Assistant users with high-quality devices pre-flashed with ESPHome firmware. By joining the Works with Home Assistant program, we ensure that customers can select and purchase our products with complete confidence.”</p>
<em style="text-align: right; display: block;">- Aiden Tang, CTO and Co-Founder, IoTorero</em>
</div>
<p>That same spirit of openness carried over to last year’s Community Day, where IoTorero donated a stack of samples for attendees to try – a gesture we loved to see, and one that speaks to how seriously they take supporting our community 💪. It shows up in their approach to code, too: IoTorero maintain a public <a href="https://github.com/athom-tech/esp32-configs" rel="noopener noreferrer" target="_blank">GitHub repository</a> of configs for all their devices, free for anyone to learn from or build on.</p>
<p>Speaking of community, the development of projects like ESPHome from the <a href="https://www.openhomefoundation.org/" rel="noopener noreferrer" target="_blank">Open Home Foundation</a> is supported by Home Assistant Cloud subscribers and anyone who purchases Home Assistant hardware. While all of IoTorero’s devices work locally, if you’re interested in remote access – for example to check your energy use or open the garage door from a distance – check out <a href="/cloud/">Home Assistant Cloud</a>.</p>
<h2>Right on (Io)Time</h2>
<p>For anyone new to it, ESPHome is a powerful platform that allows smart home devices to operate completely locally via the chip inside, with no cloud required. Because IoTorero’s devices arrive pre-flashed, you get all that local power without having to learn how to build or compile firmware yourself. And it <em>just</em> got a major upgrade. The ESPHome team recently released a <a href="https://esphome.io/blog/2026/07/02/unbox-your-creativity-with-esphome-2026-6-0/" rel="noopener noreferrer" target="_blank">new UI and Device Builder</a>, swapping the old code editor-inspired dashboard for a visual workspace that can suggest components and layouts as you build.</p>
<p>Since IoTorero’s devices arrive pre-flashed, there’s nothing to set up in advance: just connect them, and they’ll show up in Home Assistant like any other device, ready to control and automate from your normal dashboard. The ESPHome Device Builder is there if you ever want to go further: it allows you to do things like renaming a device or tweaking its config, without needing to touch any code… unless you want to. Whether you’re new to the arena or a seasoned pro, it means a lot less guesswork (and a lot more fun!).</p>
<h2>Devices</h2>
<p>Every device that earns Works with Home Assistant certification goes through our in-house testing process, checked against our core requirements of local control, privacy, and long-term support – and IoTorero meets that bar across the board. Their devices also carry the <a href="https://devices.esphome.io/made-for-esphome/" rel="noopener noreferrer" target="_blank">Made for ESPHome</a> certification, a separate badging program and prerequisite for any ESPHome devices joining Works with Home Assistant.</p>
<p>Here’s the full list of IoTorero’s certified devices:</p>
<ul class="wwha-device-list">
<li><a href="https://www.athom.tech/blank-1/esp32-c3-eu-plug-for-esphome" rel="noopener" target="_blank">IoTorero ESP32-C3 EU Plug</a> (PG01V3-EU16A, Europe)</li>
<li><a href="https://www.athom.tech/blank-1/esp32-c3-us-plug-for-esphome" rel="noopener" target="_blank">IoTorero ESP32-C3 US Plug</a> (PG03V3US16A, USA, Canada)</li>
<li><a href="https://www.athom.tech/blank-1/esp32-c3-uk-plug-for-esphome" rel="noopener" target="_blank">IoTorero ESP32-C3 UK Plug</a> (PG04V3UK16A, UK)</li>
<li><a href="https://www.athom.tech/blank-1/esp32-c3-au-plug-for-esphome" rel="noopener" target="_blank">IoTorero ESP32-C3 AU Plug</a> (PG05V3AU10A, Australia, New Zealand)</li>
<li><a href="https://www.athom.tech/blank-1/esp32c3-3-way-relay-for-esphome" rel="noopener" target="_blank">IoTorero Power Monitoring Mini Relay</a> (RS01, Worldwide)</li>
<li><a href="https://www.athom.tech/blank-1/garage-door-opener-for-esphome" rel="noopener" target="_blank">IoTorero Garage Door Opener</a> (SG01, Worldwide)</li>
<li><a href="https://www.athom.tech/blank-1/eu-wall-socket-for-esphome" rel="noopener" target="_blank">IoTorero EU Wall Socket</a> (SK01C3, Europe)</li>
</ul>
<p>Sustainability is one of the Open Home Foundation’s core principles, and IoTorero’s ESP32-C3 plugs are a great example of what that looks like in practice. They turn an ordinary appliance into something smart and measurable, with all four regional variants monitoring voltage, current, power, and total consumption – making it easy to spot energy waste and cut your home’s carbon footprint, as well as your bill.</p>
<p>The Power Monitoring Mini Relay brings that same convenience to hardwired setups. At roughly the size of a matchbox, it’s small enough to tuck behind a wall switch or inside a cabinet, and it’s built for switch control, garage and appliance automation, and other local smart home workflows a standard plug can’t reach.</p>
<h2>Proxy points</h2>
<p>Another nifty feature across IoTorero’s devices is that they double as Bluetooth proxies. This means they pick up signals from nearby Bluetooth low-energy (BLE) devices and pass them on to Home Assistant, extending your Bluetooth range without having to buy an extra, dedicated device. The Open Home Foundation’s recent blog post, <a href="https://www.openhomefoundation.org/blog/proxy-all-the-things-no-device-left-behind/" rel="noopener noreferrer" target="_blank">Proxy all the things: no device left behind</a>, explains why this is so important: turning everyday hardware into a “bridge” for other devices means getting more out of what you already own, instead of buying something new for every job. And one less gadget to buy means one less device ending up as e-waste ♻️.</p>
<h2>Old friends, new badge</h2>
<p>As one of ESPHome’s earliest adopters, IoTorero have well and truly earned our formal badging, and we’re thrilled to bring their devices to the Home Assistant community – tested, certified, and ready to make the path from unboxing to automating that much smoother. Check out the full lineup of IoTorero’s devices, along with the full range of Works with Home Assistant-compatible tech over at our <a href="https://works-with.home-assistant.io/certified-products/" rel="noopener noreferrer" target="_blank">certified device list</a>.</p>
<h2>FAQs</h2>
<p>Q: If I have a device that is not listed under Works with Home Assistant does this mean it’s not supported?</p>
<p>A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule later down the road, or it might work under a different connectivity type that we don’t currently test under the program. We do not certify anything that relies on cloud control.</p>
<p>Q: OK, so what’s the point of the Works with program?</p>
<p>A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have the functionality you would expect within Home Assistant, operate locally without the need for cloud and that they will continue to do so long-term.</p>
<p>Q: How were these devices tested?</p>
<p>A: All devices in this list were tested using a standard <a href="/green/">Home Assistant Green</a> as a hub and using the <a href="/integrations/esphome/">ESPHome integration</a>. If you have a different set-up that’s not a problem, but we test against these as they are the most effective way for our team to certify within our ecosystem.</p>
<p>Q: Will you be adding more IoTorero devices to the program?</p>
<p>A: Why not! We’re thrilled to foster a close relationship with the team at IoTorero to work together on any upcoming releases or add in further products that are not yet listed here.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Companion app: Changing support for Apple platforms]]></title>
    <link href="https://www.home-assistant.io/blog/2026/07/07/companion-app-changing-support-for-apple-platforms/"/>
    <updated>2026-07-07T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/07/companion-app-changing-support-for-apple-platforms</id>
    <content type="html"><![CDATA[<img alt="Companion app: Changing support for Apple platforms" src="/images/blog/2026-07-companion-app-changing-support-for-apple-platforms/art.webp" style="border: 0;box-shadow: none;"/>
<p>We’re updating which Apple platforms the <a href="https://apps.apple.com/us/app/home-assistant/id1099568401" rel="noopener noreferrer" target="_blank">Home Assistant Companion app</a> supports, and because transparency is core to how we work, we want to be upfront about what’s changing.</p>
<p>Starting with version 2026.8.0 of the Companion app, we will no longer support iOS 15, watchOS 8, or macOS 11. The last supported version for these platforms will be 2026.7.1.</p>
<!--more-->
<p>Here’s everything you need to know:</p>
<h2>Why we’re making the change</h2>
<p>At Home Assistant, we’re committed to helping you use your devices for the long haul. We know your hardware is something you rely on every day, which is why we try to keep the Companion app running on older devices for as long as possible. However, supporting older OS versions indefinitely comes at a cost, limiting our ability to adapt to modern technology.</p>
<p>From September this year, <a href="https://developer.apple.com/xcode/system-requirements/" rel="noopener noreferrer" target="_blank">Apple’s developer tools</a> will officially stop supporting watchOS 8 and macOS 11, making it technically difficult for us to keep building for them. With less than 1% of our users currently running these older OS versions, this update allows us to future-proof the Companion app for the vast majority of our community.</p>
<p>By focusing our efforts on current operating system versions, we can keep our codebase maintainable for the long term. This shift removes some long-standing constraints, since older OS versions had been limiting our ability to make UX, stability, and performance improvements, including adding features such as Apple Watch complications and more advanced widgets.</p>
<h2>What this means for you</h2>
<p>A recap of what’s changing:</p>
<ul>
<li>The last Companion app update for these platforms will be version 2026.7.1.</li>
<li>After version 2026.7.1, the minimum supported versions for the Companion app will be iOS 16.4, watchOS 9, and macOS 12.</li>
</ul>
<p>Importantly, this <em>doesn’t mean</em> your older iOS devices will become unusable. You can still control your home using the Home Assistant frontend in your device’s web browser, which remains fully supported and receives regular monthly updates.</p>
<p>The last compatible Companion app version (2026.7.1) will also remain available on the App Store, and the <a href="https://github.com/home-assistant/iOS" rel="noopener noreferrer" target="_blank">source code</a> will stay accessible on GitHub for any users who want to compile the app themselves.</p>
<h2>Looking ahead</h2>
<p>This update means a stronger, more capable Companion app for everyone going forward, and it’s part of how we keep Home Assistant evolving. We appreciate your understanding and support through this change, and are looking forward to building what’s next.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2026.7: Automations that speak your language]]></title>
    <link href="https://www.home-assistant.io/blog/2026/07/01/release-20267/"/>
    <updated>2026-07-01T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/07/01/release-20267</id>
    <content type="html"><![CDATA[<p><lite-youtube videoid="ZinHM68qDHQ" videotitle="Home Assistant 2026.7 Release Party"></lite-youtube></p>
<div class="alert alert-tip">
<p class="alert-title"><iconify-icon icon="mdi:lightbulb-outline" inline=""></iconify-icon> Tip</p>
<div class="alert-content">
<p>Don’t forget to <a href="https://www.youtube.com/watch?v=REUxx6fZ97Y">join our release party live stream on YouTube</a> on July 1, 2026, at 20:00 GMT / 12:00 PT / 21:00 CET!</p>
</div>
</div>
<p>Home Assistant 2026.7! 🎉</p>
<p>This is one of those releases I’ve been looking forward to for a long time. My favorite by far is what we’ve done with automations. Purpose-specific triggers and conditions graduate from Labs and become the new default for everyone. 🎉</p>
<p>It comes down to something we’ve been chasing for years: more power, less complexity. Instead of starting from Home Assistant’s internals, which entity, which state, which kind of trigger, you start from what you actually want your home to do. <em>When the bedroom drops below 18°C, turn on the heating.</em> That’s it. No technical traps, no quirks to memorize. And because integrations can teach the automation engine their own triggers and conditions, it only gets better from here. All of it right there in our beautiful user interface.</p>
<p>The nice thing is, nothing breaks. All your existing automations keep working, worry-free. We’ve also written tons of great documentation explaining every single trigger, condition, and action, with examples to learn from. And if you’re one of those people who prefers writing automations in YAML instead of the UI, you’re in for an amazing experience too. User experience is not a synonym for “the UI”. YAML users deserve good user experience too.</p>
<p>But honestly? I’ve got a second favorite this release, and that surprised me a little. Activity, what many of you still know as the logbook, has been rebuilt into a slick and clean timeline. 😍 It reads top to bottom like a feed, groups entries by day, and finally speaks the same language as the rest of Home Assistant. I keep opening it just to look at it.</p>
<p>And that’s just the start. There’s a new update-all button, dedicated panels for infrared and radio frequency, an overhauled ZHA Zigbee device management, and 10 new integrations from our community.</p>
<p>One more thing before you dive in: the Open Home Foundation is exhibiting at <a href="https://www.openhomefoundation.org/blog/ifa-berlin-2026-save-the-date/">IFA Berlin</a> for the first time, from September 4 to 8, 2026. We’d love to meet you there, so come say hello. There’s also a <a href="https://luma.com/6f8seuhh">community meetup</a> on Sunday, September 6, and everyone’s welcome. You can <a href="https://www.openhomefoundation.org/blog/ifa-berlin-2026-save-the-date/">read all about it here</a>.</p>
<p>Enjoy the release!</p>
<p>../Frenck</p>
<!--more-->
<ul>
<li><a href="#creating-automations-just-became-easier-natural-and-more-powerful">Creating automations just became easier, natural and more powerful</a>
<ul>
<li><a href="#start-with-what-you-want-not-how-it-works">Start with what you want, not how it works</a></li>
<li><a href="#built-around-areas-not-one-device-or-entity-at-a-time">Built around areas, not one device or entity at a time</a></li>
<li><a href="#more-than-friendlier-wording">More than friendlier wording</a></li>
<li><a href="#no-technical-traps">No technical traps</a></li>
<li><a href="#your-automations-are-safe-and-yaml-isnt-going-anywhere">Your automations are safe, and YAML isn’t going anywhere</a></li>
<li><a href="#documentation-is-part-of-the-feature">Documentation is part of the feature</a></li>
</ul>
</li>
<li><a href="#activity-logbook">Activity logbook</a></li>
<li><a href="#update-all">Update all</a></li>
<li><a href="#integrations">Integrations</a>
<ul>
<li><a href="#new-integrations">New integrations</a></li>
<li><a href="#noteworthy-improvements-to-existing-integrations">Noteworthy improvements to existing integrations</a></li>
<li><a href="#integration-quality-scale-achievements">Integration quality scale achievements</a></li>
<li><a href="#now-available-to-set-up-from-the-ui">Now available to set up from the UI</a></li>
<li><a href="#farewell-to-the-following">Farewell to the following</a></li>
</ul>
</li>
<li><a href="#other-noteworthy-changes">Other noteworthy changes</a>
<ul>
<li><a href="#time-format-selection">Time format selection</a></li>
<li><a href="#dedicated-panels-for-infrared-and-radio-frequency">Dedicated panels for infrared and radio frequency</a></li>
<li><a href="#the-zha-zigbee-device-management-got-an-overhaul">The ZHA Zigbee device management got an overhaul</a></li>
<li><a href="#keeping-your-raspberry-pi-firmware-up-to-date">Keeping your Raspberry Pi firmware up to date</a></li>
</ul>
</li>
<li><a href="#patch-releases">Patch releases</a>
<ul>
<li><a href="#202671---july-3">2026.7.1 - July 3</a></li>
<li><a href="#202672---july-10">2026.7.2 - July 10</a></li>
<li><a href="#202673---july-21">2026.7.3 - July 21</a></li>
<li><a href="#202674---july-24">2026.7.4 - July 24</a></li>
</ul>
</li>
<li><a href="#need-help-join-the-community">Need help? Join the community</a></li>
<li><a href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a href="#all-changes">All changes</a></li>
</ul>
<p><em>A huge thank you to all the contributors who made this release possible! And a special shout-out to <a href="https://github.com/piitaya">@piitaya</a>, <a href="https://github.com/sairon">@sairon</a>, and <a href="https://github.com/agners">@agners</a> who helped write the release notes this release. Thanks to them, these release notes are in great shape. ❤️</em></p>
<h2>Creating automations just became easier, natural and more powerful</h2>
<p>This is, hands down, one of the biggest and best changes we’ve made to the automation editor in years. It has been roughly eight months in the making, built and refined release after release by a lot of people, and shaped by a mountain of your feedback along the way. As of this release, it is here for everyone, and we could not be more excited to finally hand it over.</p>
<p>Why are we this excited? Because automations have always asked you to meet Home Assistant halfway. Some people still talk about it like you need YAML, a coding background, and a free evening just to automate a light. That hasn’t been true for a while, and this release takes the biggest step yet toward closing that gap for good.</p>
<p>Back in Home Assistant 2025.12, we <a href="/blog/2025/12/03/release-202512/#purpose-specific-triggers-and-conditions">introduced</a> <strong>purpose-specific triggers and conditions</strong> in <a class="my" href="https://my.home-assistant.io/redirect/labs" target="_blank"><strong>Settings</strong> &gt; <strong>System</strong> &gt; <strong>Labs</strong></a>. Every release since has added more of them and polished the experience. This release, they graduate: this new way of building <span class="terminology">automations<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> is out of Labs and becomes the new default for everyone. 🎉</p>
<p>It is tempting to read this as a nicer set of menu options. It is much more than that. It is a different starting point: you describe what you want your home to react to, rather than starting from the technical building blocks underneath.</p>
<h3>Start with what you want, not how it works</h3>
<p>An automation engine thinks in primitives. People don’t. You think “when the front door opens”, “when the last person leaves”, or “when a battery runs low”.</p>
<p>The old path started somewhere else, with Home Assistant’s internals. Which entity? Which state? Does it become <code>on</code>, <code>detected</code>, <code>home</code>, or <code>not_home</code>? Do I need a state trigger, a numeric state trigger, a device trigger, or a system event? If you know Home Assistant well, those questions are second nature. If you don’t, they are the wall you hit before you even start. 😤</p>
<p>The new triggers and conditions speak the language of the thing you care about. <em>When the bedroom drops below 18°C, turn on the heating.</em> You don’t think about numeric state triggers, attributes, or units. You pick <strong>Temperature crossed threshold</strong> and say what matters. Or <strong>Battery low</strong>: no need to know whether a device reports its battery as a percentage sensor, or what counts as “low”. You build around the moment itself.</p>
<img alt="Screenshot of the automation editor showing the new purpose-specific triggers, described by what they do rather than their underlying state." class="no-shadow" src="/images/blog/2026-07/automation-purpose-specific-trigger.png"/>
<h3>Built around areas, not one device or entity at a time</h3>
<p>The new building blocks also support targets, and that is a bigger deal than it sounds.</p>
<p>You can build an <span class="terminology">automation<span class="terminology-tooltip">Automations in Home Assistant allow you to automatically respond to things that happen in and around your home.<a class="terminology-link" href="/docs/automation/"> [Learn more]</a></span></span> around motion in the living room, instead of around one specific motion sensor. One sensor in that room, fine. Ten, also fine. Swap one out next year, add another, or remove the one that kept seeing the cat, and the automation keeps describing the same intent: motion in the living room.</p>
<p><em>When motion is detected outside, turn on the lights outside.</em> The trigger points at the outside <span class="terminology">area<span class="terminology-tooltip">An area in Home Assistant is a <a href="/docs/organizing/">logical grouping</a> of devices and entities that represents a room or space in your home, such as the living room, kitchen, or garage.<a class="terminology-link" href="/docs/organizing/areas/"> [Learn more]</a></span></span>, the action points at the outside lights. Change which sensors or lights live there later, and the automation follows along. It reads like a sentence, and it is one less fragile list of entities to maintain forever.</p>
<img alt="Screenshot of an automation built around motion in an area instead of a single sensor entity." class="no-shadow" src="/images/blog/2026-07/automation-area-target.png"/>
<h3>More than friendlier wording</h3>
<p>Here is the part that is easy to miss: this isn’t just a friendly wrapper around the old triggers.</p>
<p>These triggers and conditions can be extended by <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span>, including custom and community ones. Integrations have long been able to add their own actions; now they can add their own triggers and conditions too. Picture a washing machine integration offering a plain “laundry is done” trigger, with no need to know which state value or attribute actually means finished. An integration knows things you would otherwise have to figure out yourself: which state changes matter, which to ignore, which edge cases are normal, and what a useful automation moment looks like in its world.</p>
<p>A sensor can tell you the electricity price. The integration can tell you <em>when the price is lowest today</em>. Instead of everyone rebuilding the same template, or learning the quirks of one particular heat pump, <abbr title="electric vehicle">EV</abbr> charger, or alarm panel, the integration can offer the triggers, conditions, and actions that make sense for it. That turns the automation engine into something integrations can teach. It is where “more power, less complexity” stops being a slogan.</p>
<h3>No technical traps</h3>
<p>There is a quieter benefit too: No technical traps. 💪</p>
<p>With these new triggers, you don’t need to care about <code>unknown</code> or <code>unavailable</code> states. The building block handles those in the way that makes sense for its purpose. The moment you have to decide whether one specific automation should ignore <code>unavailable</code>, wait it out, or treat it as false, we have already made you think about the wrong thing.</p>
<p>Event entities are another classic. Automate around one with a plain state trigger and you may discover it doesn’t fire the second time the same event happens, because the state didn’t change the way you expected. A purpose-specific trigger expresses the event directly, so that whole class of surprise simply goes away.</p>
<img alt="Screenshot of the automation editor reacting to an event entity directly, instead of working around its state." class="no-shadow" src="/images/blog/2026-07/automation-event-trigger.png"/>
<h3>Your automations are safe, and YAML isn’t going anywhere</h3>
<p>Before anyone opens a forum thread in mild panic: <strong>no, you don’t need to rewrite anything.</strong></p>
<p>Existing automations keep working. Generic triggers, conditions, templates, and YAML all keep working. The new triggers and conditions are simply the better starting point for the next automation you build, and a nicer option when you decide to improve an old one. It is not a migration tax.</p>
<p>And this isn’t Home Assistant walking away from YAML. We put real effort into making the new building blocks read well in YAML too, the same way we did when automations moved to <code>triggers</code>, <code>conditions</code>, and <code>actions</code> and swapped <code>service</code> for <code>action</code>. If text is your interface, it should feel just as natural. If you use YAML to write automations, we are sure you’ll love the new triggers and conditions just as much!</p>
<h3>Documentation is part of the feature</h3>
<p>We also did the less flashy work, which on a project like this is often the work that matters most. Every trigger, condition, and action now has its own documentation page over at <a href="/triggers/">triggers</a>, <a href="/conditions/">conditions</a>, and <a href="/actions/">actions</a>. Each one explains what the building block is, when you would reach for it, how to use it from the automation editor, how it looks in YAML, and includes real examples to learn from.</p>
<img alt="Screenshot of a trigger documentation page, explaining what the building block does, how to use it in the UI, and how it looks in YAML." class="no-shadow" src="/images/blog/2026-07/documentation.png"/>
<p>There is a lot of it, on purpose. Approachability is not only about a friendlier button in the UI. It is also about helping you understand what that button does, and when to use it. Good documentation is product work, even when it does not get its own screenshot.</p>
<p>There is an AI angle here too, and it belongs in the right place: this is for people first. But many of you already use AI to help build automations, and clearer, well-described building blocks give those tools much better material to work with. Their suggestions can become more consistent, because there is less Home Assistant-specific guesswork to invent. It will not happen overnight, since most models are trained on older examples and may keep suggesting the old patterns for a while. The better the documentation, the faster both people and machines pick up the new way.</p>
<p>Haven’t tried building automations this way yet? Open the automation editor and start with what you want to happen. We think you’ll like where it begins. 😎</p>
<h2>Activity logbook</h2>
<p>Activity, the feature many of you still know as the logbook, has always been there to answer a simple question: what happened, and when? The way it answered, though, was a flat list of full sentences. “Living room lamp turned on.” “Auto lights was triggered by motion.” Every row was a complete sentence, the device name was repeated on every line, and it used its own wording (“turned on”, “changed to”) that didn’t quite match how states are written everywhere else in Home Assistant. Reading back a busy day meant reading every single line.</p>
<p>This release rebuilds it from the ground up into a timeline.</p>
<img alt="Screenshot of the redesigned Activity timeline, with entries grouped by day on a vertical rail with colored state dots." class="no-shadow" src="/images/blog/2026-07/activity-timeline.png"/>
<p>Each entry now sits on a vertical rail: the time on the left, a colored dot with the <span class="terminology">entity<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span>’s icon, and the text beside it. You read it top to bottom, like a feed. Entries are grouped by day, with <strong>Today</strong>, <strong>Yesterday</strong>, and dated headers, so you never lose track of where you are in time. The dot takes on the state color too, so an <code>on</code> and an <code>off</code> are easy to tell apart at a glance, without reading a word.</p>
<p>It also shows only the context you actually need. The timeline trims the name down to where you’re looking: on an entity page you just see the value, on a device page the device name is dropped, and on an area page the area is left out. No more reading the same device name on every row.</p>
<p>A few more touches make it feel right at home:</p>
<ul>
<li><strong>The same words as the rest of the app.</strong> State text now comes from the backend, the same source the rest of Home Assistant uses, so it reads identically everywhere and in every language. No more logbook-only verbs.</li>
<li><strong>It shows the cause.</strong> When something was set in motion by a person, you see their avatar. An automation shows what triggered it, and an integration shows its brand icon. The “why” sits right next to the “what”.</li>
<li><strong>Time the way you want it.</strong> In the compact views, like the more info dialog, device and area pages, and on cards, select the timestamp to flip between absolute time and a relative “2 hours ago”. A quick glance when you want it, exact precision when you need it.</li>
</ul>
<img alt="Screenshot of the compact Activity timeline inside a more info dialog, showing the cause icon and trailing time." class="no-shadow" src="/images/blog/2026-07/activity-compact.png"/>
<p>The same component powers all of this, so the timeline stays consistent whether it’s filling the full Activity page on a wide screen or tucked into a card on your phone. Wide screens get the full timeline with the time column and icons; narrow screens and cards get a compact version with the cause icon and the time trailing the entry.</p>
<h2>Update all</h2>
<p>We’ve all been there. You open <strong>Settings</strong> &gt; <strong>Updates</strong> after being away for a bit, and there it is: a wall of pending updates. A new Home Assistant release, a handful of apps, that one integration, and seven ESPHome devices that all decided to ship new firmware in the same week. Keeping up used to mean working down that list one entry at a time, selecting, waiting, selecting the next, and repeating until your finger got tired.</p>
<p>Not anymore. This release reorganizes the updates page around how you actually think about your system, and adds a single button that does the heavy lifting: <strong>Update all</strong>.</p>
<img alt="Screenshot of the redesigned Updates page showing pending updates grouped into cards." class="no-shadow" src="/images/blog/2026-07/update-all-grouped.png"/>
<p>Instead of one long, flat list, your pending updates are now grouped into clear cards, each covering a part of your setup:</p>
<ul>
<li><strong>Home Assistant</strong> sits right at the top, with Core, the Operating System, and the Supervisor. These run the core of your system, so they’re kept on their own, without an <strong>Update all</strong> button. You apply them yourself, on purpose.</li>
<li><strong>Integrations with several pending updates</strong> get a card of their own. Those seven ESPHome devices? Bundled together, so a single selection brings them all up to date. The same goes for a stack of <abbr title="Home Assistant Community Store">HACS</abbr> integrations waiting on a new version.</li>
<li><strong>Integrations</strong> gathers the remaining one-off integration updates into one tidy card.</li>
<li><strong>Apps</strong> does the same for your apps (used to be called add-ons).</li>
<li><strong>Skipped</strong> updates show up in their own card once you turn on <strong>Show skipped updates</strong>. Keeping them separate means they never get swept along by an <strong>Update all</strong> you didn’t intend for them.</li>
</ul>
<p>Select <strong>Update all</strong> on any card, and Home Assistant takes it from there, updating everything in that group in one go. No ticking boxes, no confirmation dialog to step through, just done.</p>
<p>It’s a small change to a page you only visit now and then, but it turns a recurring chore into a couple of taps.</p>
<h2>Integrations</h2>
<p>Thanks to our community for keeping pace with the new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> and improvements to existing ones! You’re all awesome 🥰</p>
<h3>New integrations</h3>
<p>We welcome the following new integrations in this release:</p>
<ul>
<li>
<p><strong><a href="/integrations/aqvify">Aqvify</a></strong>, added by <a href="https://github.com/astrandb">@astrandb</a>, launching at 🏆 platinum quality<br/>
Monitor your <a href="https://www.aqvify.com">Aqvify</a> water well and tank sensors in Home Assistant. The integration connects through Aqvify’s public cloud API and exposes sensors for your well water level, so you can keep an eye on your supply and build automations around it.</p>
</li>
<li>
<p><strong><a href="/integrations/chef_iq">Chef iQ</a></strong>, added by <a href="https://github.com/Invader444">@Invader444</a><br/>
Read the temperatures from your Chef iQ wireless cooking probes directly over Bluetooth. No cloud account, base station, or hub is needed: the probe broadcasts its readings and Home Assistant listens passively.</p>
</li>
<li>
<p><strong><a href="/integrations/dropbox">Dropbox</a></strong>, added by <a href="https://github.com/bdr99">@bdr99</a><br/>
Store your Home Assistant backups straight to your <a href="https://dropbox.com">Dropbox</a> account. Setup runs through the Home Assistant Cloud Account Linking service, so you do not need a Home Assistant Cloud subscription or your own application credentials to get started. Once connected, Dropbox shows up as a backup location alongside the rest.</p>
</li>
<li>
<p><strong><a href="/integrations/edifier_infrared">Edifier Infrared</a></strong>, added by <a href="https://github.com/abmantis">@abmantis</a><br/>
Control your Edifier speaker with any infrared transmitter you already have set up in Home Assistant. Built on the <a href="/integrations/infrared">Infrared</a> entity platform, so you can pair it with an ESPHome device with an IR <abbr title="light-emitting diode">LED</abbr>, or any other supported IR emitter. Communication is one-way, so the integration uses assumed states.</p>
</li>
<li>
<p><strong><a href="/integrations/energieleser">energieleser</a></strong>, added by <a href="https://github.com/AjinkyaGokhale">@AjinkyaGokhale</a><br/>
Bring real-time energy readings into Home Assistant from energieleser devices, such as stromleser, gasleser, wasserleser, and wärmeleser. The integration reads consumption data over a local HTTP API, so all communication stays on your network.</p>
</li>
<li>
<p><strong><a href="/integrations/envertech_evt800">Envertech EVT800</a></strong>, added by <a href="https://github.com/daniel-bergmann-00">@daniel-bergmann-00</a><br/>
Monitor your <a href="https://www.envertec.com/">Envertech EVT800</a> solar microinverter in Home Assistant. The integration receives data locally over your network, exposing energy and power readings you can track on dashboards and use in automations.</p>
</li>
<li>
<p><strong><a href="/integrations/greencell">Greencell</a></strong>, added by <a href="https://github.com/BrzezowskiGC">@BrzezowskiGC</a><br/>
Connect your Greencell <abbr title="electric vehicle">EV</abbr> charging devices to Home Assistant over <abbr title="Message Queuing Telemetry Transport">MQTT</abbr>. It monitors charger status and electrical measurements like voltage, current, and power, and exposes real-time telemetry and charging-session data for dashboards and automations.</p>
</li>
<li>
<p><strong><a href="/integrations/helty">Helty Flow</a></strong>, added by <a href="https://github.com/ebaschiera">@ebaschiera</a><br/>
Control your <a href="https://www.heltyair.com/">Helty Flow</a> decentralized heat-recovery ventilation units with the smart Wi-Fi interface. The integration talks to each unit directly on your local network, so it keeps working without an internet connection.</p>
</li>
<li>
<p><strong><a href="/integrations/klik_aan_klik_uit">KlikAanKlikUit</a></strong>, added by <a href="https://github.com/Phunkafizer">@Phunkafizer</a><br/>
Control self-learning KlikAanKlikUit 433.92 MHz <abbr title="radio frequency">RF</abbr> devices from Home Assistant. Because the integration sends commands over RF without a feedback channel, it uses assumed states.</p>
</li>
<li>
<p><strong><a href="/integrations/melcloud_home">MELCloud Home</a></strong>, added by <a href="https://github.com/erwindouna">@erwindouna</a><br/>
Bring your Mitsubishi Electric air conditioning and heat pump products into Home Assistant through <a href="https://www.melcloudhome.com/">MELCloud Home</a>, Mitsubishi Electric’s cloud service. Monitor and control your devices alongside the rest of your home automations.</p>
</li>
</ul>
<p>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:</p>
<ul>
<li><strong><a href="/integrations/avosdim">Avosdim</a></strong>, provided by <a href="/integrations/motion_blinds">Motionblinds</a>, added by <a href="https://github.com/mbo18">@mbo18</a></li>
<li><strong><a href="/integrations/bwt">BWT</a></strong>, provided by <a href="/integrations/pooldose">SEKO PoolDose</a>, added by <a href="https://github.com/lmaertin">@lmaertin</a></li>
<li><strong><a href="/integrations/gitter">Gitter</a></strong>, provided by <a href="/integrations/matrix">Matrix</a>, added by <a href="https://github.com/tr4nt0r">@tr4nt0r</a></li>
<li><strong><a href="/integrations/nexen">Nexen</a></strong>, provided by <a href="/integrations/hypontech">Hypontech Cloud</a>, added by <a href="https://github.com/jcisio">@jcisio</a></li>
</ul>
<h3>Noteworthy improvements to existing integrations</h3>
<p>It is not just new <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have been added; existing ones keep getting better too. Here are some of the noteworthy improvements this release:</p>
<ul>
<li><strong><a href="/integrations/alexa_devices">Alexa Devices</a></strong> gained switches to toggle announcements and communications on your Amazon Echo devices, thanks to <a href="https://github.com/chemelli74">@chemelli74</a>. It also added a to-do list platform, so you can manage your Alexa shopping and to-do lists from Home Assistant, thanks to <a href="https://github.com/lonlazer">@lonlazer</a>.</li>
<li><strong><a href="/integrations/switchbot">SwitchBot</a></strong> added a button event entity for the Contact Sensor, plus switch controls for the Standing Fan. Thanks, <a href="https://github.com/prmx">@prmx</a> and <a href="https://github.com/Onero-testdev">@Onero-testdev</a>!</li>
<li><strong><a href="/integrations/overkiz">Overkiz</a></strong> now supports <a href="https://www.energeasy-connect.com/">Rexel Energeasy Connect</a>, through both its cloud and local API. Thanks, <a href="https://github.com/iMicknl">@iMicknl</a>!</li>
<li><strong><a href="/integrations/switchbot_cloud">SwitchBot Cloud</a></strong> can now upload images to the SwitchBot AI Art Frame. Thanks, <a href="https://github.com/XiaoLing-git">@XiaoLing-git</a>!</li>
<li><strong><a href="/integrations/smtp">SMTP</a></strong> gained notify entities, the modern way to send email notifications. Thanks, <a href="https://github.com/tr4nt0r">@tr4nt0r</a>!</li>
<li><strong><a href="/integrations/github">GitHub</a></strong> added entities that track GitHub user accounts. Thanks, <a href="https://github.com/joostlek">@joostlek</a>!</li>
<li><strong><a href="/integrations/environment_canada">Environment Canada</a></strong> gained a <code>get_alerts</code> action to fetch active weather alerts on demand. Thanks, <a href="https://github.com/gwww">@gwww</a>!</li>
<li><strong><a href="/integrations/wallbox">Wallbox</a></strong> added a button to resume the charging schedule, handy alongside EcoSmart solar charging. Thanks, <a href="https://github.com/Rayman223">@Rayman223</a>!</li>
<li><strong><a href="/integrations/powerwall">Tesla Powerwall</a></strong> now supports the Powerwall 3, and gained sensors for the operation mode and the maximum charge and discharge power. Thanks, <a href="https://github.com/Bre77">@Bre77</a> and <a href="https://github.com/BrettLynch123">@BrettLynch123</a>!</li>
<li><strong><a href="/integrations/tedee">Tedee</a></strong> added a connectivity binary sensor, so you can tell when a lock drops off the network. Thanks, <a href="https://github.com/zweckj">@zweckj</a>!</li>
<li><strong><a href="/integrations/blebox">BleBox</a></strong> added support for openSensor and drutexSmart devices, including <abbr title="carbon dioxide">CO2</abbr> sensors. Thanks, <a href="https://github.com/bkobus-bbx">@bkobus-bbx</a>!</li>
<li><strong><a href="/integrations/droplet">Droplet</a></strong> now reports leak alerts. Thanks, <a href="https://github.com/sarahseidman">@sarahseidman</a>!</li>
<li><strong><a href="/integrations/whirlpool">Whirlpool Appliances</a></strong> added a button to stop the oven. Thanks, <a href="https://github.com/bdlcalvin">@bdlcalvin</a>!</li>
<li><strong><a href="/integrations/yoto">Yoto</a></strong> got a lot of attention this release: a media browser, plus new sensors, binary sensors, a time entity, and number controls for display brightness and maximum volume. Thanks, <a href="https://github.com/piitaya">@piitaya</a>!</li>
<li><strong><a href="/integrations/samsung_infrared">Samsung Infrared</a></strong> added buttons for individual remote commands. Thanks, <a href="https://github.com/lmaertin">@lmaertin</a>!</li>
<li><strong><a href="/integrations/opensensemap">openSenseMap</a></strong> now exposes its environmental measurements as sensors. Thanks, <a href="https://github.com/AlCalzone">@AlCalzone</a>!</li>
<li><strong><a href="/integrations/openevse">OpenEVSE</a></strong> added binary sensors for your charger’s status. Thanks, <a href="https://github.com/firstof9">@firstof9</a>!</li>
<li><strong><a href="/integrations/rabbitair">Rabbit Air</a></strong> added an air quality sensor. Thanks, <a href="https://github.com/MagikalUnicorn">@MagikalUnicorn</a>!</li>
<li><strong><a href="/integrations/green_planet_energy">Green Planet Energy</a></strong> gained actions to find the cheapest stretch of energy prices. Thanks, <a href="https://github.com/petschni">@petschni</a>!</li>
<li><strong><a href="/integrations/duco">Duco</a></strong> added a select to set the ventilation state on your Duco box nodes. Thanks, <a href="https://github.com/ronaldvdmeer">@ronaldvdmeer</a>!</li>
<li><strong><a href="/integrations/hypontech">Hypontech Cloud</a></strong> added load, grid, and battery sensors. Thanks, <a href="https://github.com/jcisio">@jcisio</a>!</li>
<li><strong><a href="/integrations/xthings_cloud">Xthings Cloud</a></strong> added a switch platform. Thanks, <a href="https://github.com/zhangluofeng">@zhangluofeng</a>!</li>
<li><strong><a href="/integrations/kiosker">Kiosker</a></strong> added a button to clear the blackout, plus binary sensors and sensors with blackout details. Thanks, <a href="https://github.com/Claeysson">@Claeysson</a>!</li>
<li><strong><a href="/integrations/paj_gps">PAJ GPS</a></strong> added battery sensors for your trackers. Thanks, <a href="https://github.com/skipperro">@skipperro</a>!</li>
<li><strong><a href="/integrations/vistapool">Vistapool</a></strong> grew a lot, with new button, number, light, and binary sensor entities for your pool controller. Thanks, <a href="https://github.com/fdebrus">@fdebrus</a>!</li>
<li><strong><a href="/integrations/fluss">Fluss+</a></strong> now supports covers, like gates and garage doors. Thanks, <a href="https://github.com/Marcello17">@Marcello17</a>!</li>
<li><strong><a href="/integrations/imou">Imou</a></strong> added live camera streaming. Thanks, <a href="https://github.com/Imou-OpenPlatform">@Imou-OpenPlatform</a>!</li>
</ul>
<h3>Integration quality scale achievements</h3>
<p>One thing we are incredibly proud of in Home Assistant is our <a href="/docs/quality_scale/">integration quality scale</a>. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.</p>
<p>This release, we celebrate several <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> that have improved their quality scale:</p>
<ul>
<li>
<p><strong>1 integration reached platinum</strong> 🏆</p>
<ul>
<li><a href="/integrations/yoto">Yoto</a>, thanks to <a href="https://github.com/piitaya">@piitaya</a></li>
</ul>
</li>
<li>
<p><strong>2 integrations reached gold</strong> 🥇</p>
<ul>
<li><a href="/integrations/anthropic">Anthropic</a>, thanks to <a href="https://github.com/Shulyaka">@Shulyaka</a></li>
<li><a href="/integrations/growatt_server">Growatt</a>, thanks to <a href="https://github.com/johanzander">@johanzander</a></li>
</ul>
</li>
<li>
<p><strong>3 integrations reached silver</strong> 🥈</p>
<ul>
<li><a href="/integrations/openevse">OpenEVSE</a>, thanks to <a href="https://github.com/c00w">@c00w</a></li>
<li><a href="/integrations/ovhcloud_ai_endpoints">OVHcloud AI Endpoints</a>, thanks to <a href="https://github.com/Crocmagnon">@Crocmagnon</a></li>
<li><a href="/integrations/splunk">Splunk</a>, thanks to <a href="https://github.com/Bre77">@Bre77</a></li>
</ul>
</li>
<li>
<p><strong>1 integration reached bronze</strong> 🥉</p>
<ul>
<li><a href="/integrations/opensensemap">openSenseMap</a>, thanks to <a href="https://github.com/AlCalzone">@AlCalzone</a></li>
</ul>
</li>
</ul>
<p>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.</p>
<p>A big thank you to all the contributors involved! 👏</p>
<h3>Now available to set up from the UI</h3>
<p>While most <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> 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.</p>
<p>The following integrations are now available via the Home Assistant UI:</p>
<ul>
<li><strong><a href="/integrations/saj">SAJ Solar Inverter</a></strong>, done by <a href="https://github.com/edurenye">@edurenye</a></li>
<li><strong><a href="/integrations/smtp">SMTP</a></strong>, done by <a href="https://github.com/tr4nt0r">@tr4nt0r</a></li>
<li><strong><a href="/integrations/swisscom">Swisscom Internet-Box</a></strong>, done by <a href="https://github.com/anatosun">@anatosun</a></li>
<li><strong><a href="/integrations/unifi_direct">UniFi AP</a></strong>, done by <a href="https://github.com/PaulVanSchayck">@PaulVanSchayck</a></li>
</ul>
<h3>Farewell to the following</h3>
<p>Time for a little cleaning, and no, we did not wait for spring. The following <span class="terminology">integrations<span class="terminology-tooltip">Integrations connect and integrate Home Assistant with your devices, services, and more.<a class="terminology-link" href="/getting-started/concepts-terminology/#integrations"> [Learn more]</a></span></span> are no longer available as of this release. Most had been broken for a while, leaning on libraries or services that went unmaintained or offline years ago:</p>
<ul>
<li><strong>Acer projector</strong> has been removed. It had been broken since 2019.</li>
<li><strong>Ampio Smog</strong> has been removed. The air quality service it polled is offline and its library has been unmaintained since 2019, so it no longer works.</li>
<li><strong>ATEN Rack PDU</strong> has been removed. It had been broken since 2024 over a dependency conflict, and its maintainer stepped down with no one to take over.</li>
<li><strong>Avi-on</strong> has been removed. It depended on the <code>bluepy</code> library, which Home Assistant dropped back in 2022.7, and which has been unmaintained since 2018.</li>
<li><strong>BeeWi SmartClim</strong> has been removed for the same reason: it relied on the long-unmaintained <code>bluepy</code> library that Home Assistant dropped in 2022.7.</li>
<li><strong>BlinkStick</strong> has been removed. It was disabled in 2024 because it relied on a non-open-source library that has been unmaintained since 2020.</li>
<li><strong>Clementine</strong> has been removed. It had been broken since 2023, and its library has been unmaintained since 2018.</li>
<li><strong>Dovado</strong> has been removed. It was disabled in 2024.7 because it relied on a non-open-source library that has been unmaintained since 2017.</li>
<li><strong>ELIQ Online</strong> has been removed. Its API endpoint no longer exists, and the underlying library has been unmaintained for years.</li>
<li><strong>Gitter</strong> has been removed. Gitter migrated to Matrix back in 2023 and its old API no longer works, so it is now a virtual integration handled by the <a href="/integrations/matrix/">Matrix</a> integration, which you can use to connect instead.</li>
<li><strong>Greenwave Reality</strong> has been removed. It had been broken since around 2022, because the devices use an outdated encryption key that modern systems reject, and its library has been unmaintained since 2018.</li>
<li><strong>Logentries</strong> has been removed. The service was rebranded to InsightOps years ago and is no longer offered, and its API endpoint no longer responds.</li>
<li><strong>Microsoft Face</strong> has been removed, together with the Microsoft Face Detect and Microsoft Face Identify integrations that built on it. They had been broken since 2022 after a change to Microsoft’s Azure face API.</li>
<li><strong>MS Teams</strong> has been removed. The integration relied on Office 365 Connectors, which Microsoft <a href="https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/">discontinued on May 22, 2026</a>, so it no longer works.</li>
<li><strong>Mycroft</strong> has been removed. It was disabled in 2023.6 over an unresolvable dependency conflict, and its library has not been updated since.</li>
<li><strong>SCSGate</strong> has been removed. It required obscure DIY hardware that is no longer available, its library has been unmaintained for a decade, and it had effectively no users left.</li>
<li><strong>ThermoWorks Smoke</strong> has been removed. It was disabled in 2024.10 over a dependency conflict, and its library has been unmaintained since 2019.</li>
<li><strong>Tikteck</strong> has been removed.</li>
<li><strong>UniFi LED</strong> has been removed. The hardware is discontinued and the integration had no remaining users.</li>
<li><strong>Watson TTS</strong> has been removed. It was disabled in 2023 over a dependency conflict, and no one stepped up to update it since.</li>
</ul>
<h2>Other noteworthy changes</h2>
<p>There are many more improvements in this release; here are some of the other noteworthy changes:</p>
<ul>
<li><strong>Edit a running timer’s duration.</strong> Change a timer’s duration straight from its dialog, no need to cancel and start over. Thanks, <a href="https://github.com/chli1">@chli1</a>!</li>
<li><strong>A faster frontend.</strong> A big batch of performance work landed this release, most noticeably across the energy, history, and statistics graphs, so they draw quicker and feel snappier. Thanks, <a href="https://github.com/MindFreeze">@MindFreeze</a>!</li>
<li><strong>Device and area pages adapt to your screen.</strong> They now use a responsive column layout, and the device page lists its main entities first, so the important controls sit right at the top.</li>
<li><strong>More context in the scene editor.</strong> Entity rows now show their type and the integration they belong to, making large scenes easier to read. Thanks, <a href="https://github.com/pszypowicz">@pszypowicz</a>!</li>
<li><strong>Tags in the Apps store.</strong> The Apps store now shows tags and marks which apps you already have installed. Thanks, <a href="https://github.com/bramkragten">@bramkragten</a>!</li>
<li><strong>A sub-editor for the statistics graph card.</strong> Tune each entity right from the card’s visual editor. Thanks, <a href="https://github.com/ildar170975">@ildar170975</a>!</li>
<li><strong>Live condition testing keeps improving.</strong> Conditions now show clearer status icons (addressing the red and green only accessibility concern from last release), the indicator works on mobile in the visibility editor, and live testing now covers conditions inside actions too. Thanks, <a href="https://github.com/silamon">@silamon</a> and <a href="https://github.com/marcinbauer-ohf">@marcinbauer-ohf</a>!</li>
<li><strong>Hide columns in Developer tools.</strong> The <strong>States</strong> tab can now hide the Device and Area columns. Thanks, <a href="https://github.com/vingerha">@vingerha</a>!</li>
<li><strong>Matter soil moisture sensors.</strong> Matter-certified soil moisture sensors now show up in Home Assistant. Thanks, <a href="https://github.com/lboue">@lboue</a>!</li>
<li><strong>A projector device class for media players.</strong> Projectors are now a proper media player device class, surfaced through Google Assistant, HomeKit, and SmartThings too. Thanks, <a href="https://github.com/jtjart">@jtjart</a>!</li>
<li><strong>Template lights gain xy color.</strong> Build template lights with full xy color support. Thanks, <a href="https://github.com/Petro31">@Petro31</a>!</li>
<li><strong>Clean a specific room from Google Assistant.</strong> Ask Google to send your robot vacuum to a particular room. Thanks, <a href="https://github.com/joostlek">@joostlek</a>!</li>
<li><strong>Snappier templates.</strong> Under the hood, a template engine optimization makes templates render up to 40% faster. Thanks, <a href="https://github.com/frenck">@frenck</a>!</li>
<li><strong>Clearer automation traces.</strong> When you debug an automation or script, its trace now always includes template errors, making it easier to spot what went wrong. Thanks, <a href="https://github.com/emontnemery">@emontnemery</a>!</li>
</ul>
<h3>Time format selection</h3>
<p>Some <span class="terminology">entities<span class="terminology-tooltip">An 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.<a class="terminology-link" href="/docs/configuration/entities_domains/"> [Learn more]</a></span></span> tell time. A sensor with the next sunrise, the timestamp of your last backup, a countdown to the next calendar event. How that moment should be shown is a matter of taste: sometimes you want the exact date and time, and sometimes a friendly “in 3 hours” or “2 days ago” is far more useful at a glance.</p>
<p>Until now, picking how a timestamp was displayed meant editing YAML. This release brings that choice into the UI. When you add a timestamp entity to a <a href="/dashboards/tile/">tile card</a>, the <a href="/dashboards/entities/">entities card</a>, or as an entity badge, a <strong>Time format</strong> option shows up in the editor, so you can choose how the time is presented, including a new short or long style for the relative format.</p>
<img alt="Screenshot of the tile card editor showing the new Time format option for a timestamp entity." class="no-shadow" src="/images/blog/2026-07/time-format.png"/>
<p>Thanks, <a href="https://github.com/karwosts">@karwosts</a>!</p>
<h3>Dedicated panels for infrared and radio frequency</h3>
<p>Earlier this year, Home Assistant gained dedicated entity platforms for <a href="/integrations/infrared/">infrared</a> and radio frequency devices, the building blocks behind integrations that reach your gear through an <abbr title="infrared">IR</abbr> blaster or a 433 MHz transmitter. This release gives them a proper home.</p>
<p>Two new panels show up in the <strong>Settings</strong> menu, one for infrared and one for radio frequency. Each lists the proxies and transmitters you’ve set up, so you can see your IR blasters and <abbr title="radio frequency">RF</abbr> bridges at a glance and jump straight to the one you’re looking for, instead of hunting for them among everything else. The panels only appear when you actually have such devices, so they stay out of the way if you don’t.</p>
<img alt="Screenshot of the new infrared and radio frequency panels in the Settings menu, each listing the configured proxies." class="no-shadow" src="/images/blog/2026-07/infrared-rf-panels.png"/>
<p>Thanks, <a href="https://github.com/balloob">@balloob</a>!</p>
<h3>The ZHA Zigbee device management got an overhaul</h3>
<p>Managing a Zigbee device through <a href="/integrations/zha/">ZHA</a> used to mean squinting at a cramped dialog. The clusters, bindings, signature, and neighbors tools were all there, but crammed into a small popup that left little room to breathe.</p>
<p>This release moves all of that onto a dedicated, full-page device view. The same tools are now laid out across tabbed navigation, with a device summary card up top, and the loading, empty, and error states have been cleaned up throughout. It’s the same powerful Zigbee management, just far easier to work with.</p>
<img alt="Screenshot of the revamped ZHA device management page, with a device summary card and tabbed navigation for clusters, bindings, signature, and neighbors." class="no-shadow" src="/images/blog/2026-07/zha-device-management.png"/>
<p>Thanks, <a href="https://github.com/jpbede">@jpbede</a>!</p>
<h3>Keeping your Raspberry Pi firmware up to date</h3>
<p>Running Home Assistant Operating System on a Raspberry Pi? You are in good company: per our public, opt-in <a href="https://analytics.home-assistant.io/">analytics</a>, the Raspberry Pi platform currently powers about a third of all installations. As of this release, there is an <span class="terminology">“update entity”<span class="terminology-tooltip">An update entity is an entity that indicates if an update is available for a device or service.<a class="terminology-link" href="/integrations/update"> [Learn more]</a></span></span> for the Pi’s bootloader firmware, also often referred to as the <abbr title="electrically erasable programmable read-only memory">EEPROM</abbr> update. You can keep it current right from <a class="my" href="https://my.home-assistant.io/redirect/updates" target="_blank"><strong>Settings</strong> &gt; <strong>Updates</strong></a>, the same place you handle every other update.</p>
<p>This is more than a nice-to-have. Especially on the Raspberry Pi 5 and Compute Module 5, the firmware contains bug fixes, compatibility improvements for <abbr title="Non-Volatile Memory Express">NVMe</abbr> drives, thermal improvements, and much more. Until now, updating that firmware was cumbersome: you had to flash another SD card with a special image, or connect a keyboard and a display and run the <code>rpi-eeprom-update</code> command by hand. Now it takes a single step.</p>
<img alt="Screenshot of the Raspberry Pi firmware update entity on the Settings, Updates page." class="no-shadow" src="/images/blog/2026-07/rpi-firmware-update.png"/>
<p>A few things to keep in mind:</p>
<ul>
<li>This needs <a href="https://github.com/home-assistant/operating-system/releases/tag/18.0">Home Assistant Operating System 18</a> or newer, which provides the support the update entity builds on. On older versions, the entity simply isn’t there.</li>
<li>On a Raspberry Pi 4, the firmware can only be updated when the board boots from an SD card. If your Pi 4 boots from USB storage, the update isn’t available. This is a limitation of the update system, and one more reason we recommend using USB only as a data disk while keeping an SD card as the main boot device.</li>
<li>Not every board can update its firmware this way. Besides a Raspberry Pi 4 booting from USB storage, the Home Assistant Yellow with a Compute Module 4 isn’t supported either. Where an update can’t be applied, the entity doesn’t appear at all, so you don’t see an update that wouldn’t work.</li>
<li>After the update is applied, Home Assistant prompts you to reboot to complete it.</li>
</ul>
<p>Thanks, <a href="https://github.com/sairon">@sairon</a>!</p>
<h2>Patch releases</h2>
<p>We will also release patch releases for Home Assistant 2026.7 in July.
These patch releases only contain bug fixes. Our goal is to release a patch
release once a week, aiming for Friday.</p>
<h3>2026.7.1 - July 3</h3>
<ul>
<li>Proximity: Fix/improve matching against trackers with <code>in_zones</code> attributes (<a href="https://github.com/kbuck1">@kbuck1</a> - <a href="https://github.com/home-assistant/core/pull/172602">#172602</a>)</li>
<li>Fix HomeKit Controller doorbell event entity to use ring event type (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/173621">#173621</a>)</li>
<li>Retry ecobee setup on transient refresh failure (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/173720">#173720</a>)</li>
<li>Handle cname records in dnsip (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175313">#175313</a>)</li>
<li>Bump habluetooth to 6.26.2 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/175317">#175317</a>)</li>
<li>Fix airOS advanced settings migration (<a href="https://github.com/CoMPaTech">@CoMPaTech</a> - <a href="https://github.com/home-assistant/core/pull/175319">#175319</a>)</li>
<li>Fix SolarEdge energy sensors losing unit of measurement (<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/175335">#175335</a>)</li>
<li>Switchbot_cloud: fixed cloud hook error (<a href="https://github.com/XiaoLing-git">@XiaoLing-git</a> - <a href="https://github.com/home-assistant/core/pull/175336">#175336</a>)</li>
<li>Homee: fix unavailable entities (<a href="https://github.com/Taraman17">@Taraman17</a> - <a href="https://github.com/home-assistant/core/pull/175367">#175367</a>)</li>
<li>catch SMTPException and TimeoutError in SMTP config flow (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/175369">#175369</a>)</li>
<li>Fix Hitachi Yutaki DHW turn-on command in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175374">#175374</a>)</li>
<li>Homee: fix unavailable entities - FollowUp (<a href="https://github.com/Taraman17">@Taraman17</a> - <a href="https://github.com/home-assistant/core/pull/175380">#175380</a>)</li>
<li>Bump py-synologydsm-api to 2.10.2 (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/175383">#175383</a>)</li>
<li>Fix KNX telegram history migration for data of 2026.3 and earlier (<a href="https://github.com/martinhoefling">@martinhoefling</a> - <a href="https://github.com/home-assistant/core/pull/175396">#175396</a>)</li>
<li>Fall back to PyPI when the extra index is down (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/175404">#175404</a>)</li>
<li>Fix Overkiz Rexel gateway setup failing with Local API (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175409">#175409</a>)</li>
<li>Bump pylamarzocco to 2.4.1 (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/175468">#175468</a>)</li>
<li>Redact debug output in FRITZ!Box Tools (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/175469">#175469</a>)</li>
<li>Update frontend to 20260624.4 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/175490">#175490</a>)</li>
</ul>
<h3>2026.7.2 - July 10</h3>
<ul>
<li>Store recovery HTTP config with the full trusted proxy network (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/176075">#176075</a>)</li>
<li>Trigger reauth on Teslemetry LoginRequired errors (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/174255">#174255</a>)</li>
<li>Bump ical to 13.3.0 (<a href="https://github.com/FuNK3Y">@FuNK3Y</a> - <a href="https://github.com/home-assistant/core/pull/175090">#175090</a>)</li>
<li>Bump uiprotect to 15.4.0 (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/175347">#175347</a>)</li>
<li>Correct availability check for Huntedouglas Powerview tilt-only shades (<a href="https://github.com/kingy444">@kingy444</a> - <a href="https://github.com/home-assistant/core/pull/175350">#175350</a>)</li>
<li>Bump uiprotect to 15.4.1 (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/175540">#175540</a>)</li>
<li>Bump aioamazondevices to 14.1.9 (<a href="https://github.com/chemelli74">@chemelli74</a> - <a href="https://github.com/home-assistant/core/pull/175563">#175563</a>)</li>
<li>Bump pylamarzocco to 2.4.2 (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/175564">#175564</a>)</li>
<li>Homee: fix covers not reacting correctly to commands (<a href="https://github.com/Taraman17">@Taraman17</a> - <a href="https://github.com/home-assistant/core/pull/175565">#175565</a>)</li>
<li>Add options update listener to Rain Bird integration (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/175571">#175571</a>)</li>
<li>Bump habluetooth to 6.26.5 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/175595">#175595</a>)</li>
<li>Include melcloud_home in Mitsubishi brand (<a href="https://github.com/scop">@scop</a> - <a href="https://github.com/home-assistant/core/pull/175635">#175635</a>)</li>
<li>Bump python-roborock to 5.25.0 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/175645">#175645</a>)</li>
<li>Bump python-bsblan to 6.1.5 (<a href="https://github.com/liudger">@liudger</a> - <a href="https://github.com/home-assistant/core/pull/175651">#175651</a>)</li>
<li>Fix temperature bound resolution for BSBLAN climate devices (<a href="https://github.com/liudger">@liudger</a> - <a href="https://github.com/home-assistant/core/pull/175704">#175704</a>)</li>
<li>Bump python-bsblan to 6.1.6 (<a href="https://github.com/liudger">@liudger</a> - <a href="https://github.com/home-assistant/core/pull/175711">#175711</a>)</li>
<li>Bump uiprotect to 15.4.2 (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/175712">#175712</a>)</li>
<li>Bump axis to v73 (<a href="https://github.com/Kane610">@Kane610</a> - <a href="https://github.com/home-assistant/core/pull/175717">#175717</a>)</li>
<li>fix typos in KlikAanKlikUit integration (<a href="https://github.com/Phunkafizer">@Phunkafizer</a> - <a href="https://github.com/home-assistant/core/pull/175720">#175720</a>)</li>
<li>Fix Teslemetry covers reporting a false closed/open state when data is missing (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/175748">#175748</a>)</li>
<li>Ensure http2 stream cleaned up on shudown for Alexa Devices (<a href="https://github.com/jamesonuk">@jamesonuk</a> - <a href="https://github.com/home-assistant/core/pull/175766">#175766</a>)</li>
<li>Add debug logging with full exception details to legacy notify action in SMTP integration (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/175781">#175781</a>)</li>
<li>Fix for Roborock uninitialized coordinator data (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/175789">#175789</a>)</li>
<li>Bump onvif-zeep-async to 4.2.1 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/175795">#175795</a>)</li>
<li>Bump bleak-esphome to 3.9.7 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/175796">#175796</a>)</li>
<li>Don’t restart a Wyoming satellite pipeline if there’s an error (<a href="https://github.com/synesthesiam">@synesthesiam</a> - <a href="https://github.com/home-assistant/core/pull/175798">#175798</a>)</li>
<li>Fix missing <code>To</code> headers in SMTP integration (<a href="https://github.com/tr4nt0r">@tr4nt0r</a> - <a href="https://github.com/home-assistant/core/pull/175803">#175803</a>)</li>
<li>Bump pywmspro to 0.4.2 (<a href="https://github.com/mback2k">@mback2k</a> - <a href="https://github.com/home-assistant/core/pull/175805">#175805</a>)</li>
<li>Bump holidays to 0.100 (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175809">#175809</a>)</li>
<li>Fix tesla_fleet media player volume step calculation (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/175813">#175813</a>)</li>
<li>Fix weatherflow_cloud websocket double-connect (<a href="https://github.com/jeeftor">@jeeftor</a> - <a href="https://github.com/home-assistant/core/pull/169573">#169573</a>)</li>
<li>Fix for Atlantic heaters missing regulation mode in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175817">#175817</a>)</li>
<li>Bump pyoverkiz to 2.0.4 (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175818">#175818</a>)</li>
<li>Add MIT-0 to OSI approved SPDX licenses (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175819">#175819</a>)</li>
<li>Bump aioruckus to 0.46.3 (<a href="https://github.com/ms264556">@ms264556</a> - <a href="https://github.com/home-assistant/core/pull/175824">#175824</a>)</li>
<li>Fixed YoLink water meter controller valve status showing as “Unknown” (<a href="https://github.com/matrixd2">@matrixd2</a> - <a href="https://github.com/home-assistant/core/pull/175835">#175835</a>)</li>
<li>Fix RollerShutterUno covers reporting open when closed in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175837">#175837</a>)</li>
<li>Add missing holiday categories in holiday (<a href="https://github.com/gjohansson-ST">@gjohansson-ST</a> - <a href="https://github.com/home-assistant/core/pull/175841">#175841</a>)</li>
<li>Re-import Rexel client credential in Overkiz config flow (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/175852">#175852</a>)</li>
<li>Bump uiprotect to 15.4.3 (<a href="https://github.com/RaHehl">@RaHehl</a> - <a href="https://github.com/home-assistant/core/pull/175861">#175861</a>)</li>
<li>Bump venstarcolortouch to 0.22 (<a href="https://github.com/hplato">@hplato</a> - <a href="https://github.com/home-assistant/core/pull/175867">#175867</a>)</li>
<li>Fix ZHA device trigger cache not resolving quirks (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/175895">#175895</a>)</li>
<li>Pin cffi to 2.0.0 in package constraints (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/175907">#175907</a>)</li>
<li>Fix Teslemetry insufficient-credits polling storm (<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/175913">#175913</a>)</li>
<li>Fix Teslemetry cabin overheat protection restored temperatures (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/175973">#175973</a>)</li>
<li>Refresh hassio coordinator after OS update install (<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/176004">#176004</a>)</li>
<li>Fix Rexel OAuth2 session expiring after a day in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/176010">#176010</a>)</li>
<li>bump py-synologydsm-api to 2.10.3 (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/176012">#176012</a>)</li>
<li>Fix max color temperature in Elgato (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/176072">#176072</a>)</li>
<li>Sonos - avoid blocking call to get uid (<a href="https://github.com/PeteRager">@PeteRager</a> - <a href="https://github.com/home-assistant/core/pull/176109">#176109</a>)</li>
<li>Fix rest_command digest auth with templated hosts (<a href="https://github.com/jpbede">@jpbede</a> - <a href="https://github.com/home-assistant/core/pull/176155">#176155</a>)</li>
<li>Bump reolink_aio to 0.21.4 (<a href="https://github.com/starkillerOG">@starkillerOG</a> - <a href="https://github.com/home-assistant/core/pull/176156">#176156</a>)</li>
<li>Skip global ESPHome update lock when dashboard has a build queue (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/176162">#176162</a>)</li>
<li>Bump zha-quirks to 2.1.1 (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/176173">#176173</a>)</li>
<li>Bump dsmr-parser to 1.11.0 (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/175639">#175639</a>)</li>
<li>Bump dsmr_parser to 1.11.1 (<a href="https://github.com/jasperslits">@jasperslits</a> - <a href="https://github.com/home-assistant/core/pull/176192">#176192</a>)</li>
<li>Bump tuya-device-handlers to 0.0.25 (<a href="https://github.com/epenet">@epenet</a> - <a href="https://github.com/home-assistant/core/pull/176213">#176213</a>)</li>
<li>Update frontend to 20260624.5 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/176216">#176216</a>)</li>
<li>Add dynamic icon for lightbulb group (<a href="https://github.com/karwosts">@karwosts</a> - <a href="https://github.com/home-assistant/core/pull/176218">#176218</a>)</li>
</ul>
<h3>2026.7.3 - July 21</h3>
<p>Apologies for shipping off schedule. This patch release should have shipped last Friday, but we weren’t able due to technical difficulties.</p>
<ul>
<li>Fix Hitachi Yutaki second heating zone using zone 1 states in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/176210">#176210</a>)</li>
<li>Filter out grinders during CF in lamarzocco (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/176289">#176289</a>)</li>
<li>Bump guntamatic to v1.9.1 (<a href="https://github.com/JensTimmerman">@JensTimmerman</a> - <a href="https://github.com/home-assistant/core/pull/176301">#176301</a>)</li>
<li>Fix UniFi setup crash on cellular/5G WAN without monitors (<a href="https://github.com/mattsm">@mattsm</a> - <a href="https://github.com/home-assistant/core/pull/176223">#176223</a>)</li>
<li>Bump python-roborock to 5.26.0 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/175734">#175734</a>)</li>
<li>Bump python-roborock to 5.29.0 (<a href="https://github.com/Lash-L">@Lash-L</a> - <a href="https://github.com/home-assistant/core/pull/176311">#176311</a>)</li>
<li>Fix duplicate Hikvision binary sensor unique IDs (<a href="https://github.com/gunjanjaswal">@gunjanjaswal</a> - <a href="https://github.com/home-assistant/core/pull/176345">#176345</a>)</li>
<li>Bump python-roborock to 5.30.0 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/176373">#176373</a>)</li>
<li>Refresh Lunatone sensor data before update (<a href="https://github.com/MoonDevLT">@MoonDevLT</a> - <a href="https://github.com/home-assistant/core/pull/176389">#176389</a>)</li>
<li>Bump guntamatic to v1.9.2 (<a href="https://github.com/JensTimmerman">@JensTimmerman</a> - <a href="https://github.com/home-assistant/core/pull/176416">#176416</a>)</li>
<li>Filter Roborock A01 query protocols by supported schema (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/176421">#176421</a>)</li>
<li>Make NS device a service (<a href="https://github.com/joostlek">@joostlek</a> - <a href="https://github.com/home-assistant/core/pull/176424">#176424</a>)</li>
<li>Bump pyoverkiz to 2.1.0 (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/176481">#176481</a>)</li>
<li>Bump python-swisscom-internet-box to 0.2.0 (<a href="https://github.com/ghouscht">@ghouscht</a> - <a href="https://github.com/home-assistant/core/pull/176519">#176519</a>)</li>
<li>Make repairs not persistent in FRITZ!Box Tools (<a href="https://github.com/mib1185">@mib1185</a> - <a href="https://github.com/home-assistant/core/pull/176623">#176623</a>)</li>
<li>Fix open/close for RTSGeneric covers in Overkiz (<a href="https://github.com/iMicknl">@iMicknl</a> - <a href="https://github.com/home-assistant/core/pull/176626">#176626</a>)</li>
<li>Update vizio config entry host on zeroconf rediscovery (<a href="https://github.com/raman325">@raman325</a> - <a href="https://github.com/home-assistant/core/pull/176628">#176628</a>)</li>
<li>Bump ZHA to 2.0.1 (<a href="https://github.com/TheJulianJES">@TheJulianJES</a> - <a href="https://github.com/home-assistant/core/pull/176643">#176643</a>)</li>
<li>Refresh add-on update entities after store reload through Supervisor API proxy (<a href="https://github.com/balloob">@balloob</a> - <a href="https://github.com/home-assistant/core/pull/176648">#176648</a>)</li>
<li>Update Roborock dynamic dock support (<a href="https://github.com/Lash-L">@Lash-L</a> - <a href="https://github.com/home-assistant/core/pull/176686">#176686</a>)</li>
<li>Update frontend to 20260624.6 (<a href="https://github.com/bramkragten">@bramkragten</a> - <a href="https://github.com/home-assistant/core/pull/176711">#176711</a>)</li>
<li>Fix roborock vacuum segment mapping repair issue (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/176778">#176778</a>)</li>
<li>Fixes for Plugwise Select (<a href="https://github.com/bouwew">@bouwew</a> - <a href="https://github.com/home-assistant/core/pull/176787">#176787</a>)</li>
<li>Bump python-roborock to 5.31.1 (<a href="https://github.com/allenporter">@allenporter</a> - <a href="https://github.com/home-assistant/core/pull/176850">#176850</a>)</li>
<li>Bump gios to 7.1.1 (<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/176904">#176904</a>)</li>
<li>Exempt certain protocol integrations from entity limit (<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/176973">#176973</a>)</li>
</ul>
<h3>2026.7.4 - July 24</h3>
<ul>
<li>Fix for ProxmoxVE compoenent failing authentication with realms containg upper case letters. (<a href="https://github.com/crmason2">@crmason2</a> - <a href="https://github.com/home-assistant/core/pull/176742">#176742</a>)</li>
<li>Bump yoto-api to 4.3.2 (<a href="https://github.com/piitaya">@piitaya</a> - <a href="https://github.com/home-assistant/core/pull/176987">#176987</a>)</li>
<li>Fix Envoy diagnostics fixture download on non-UTF-8 responses (<a href="https://github.com/genestealer">@genestealer</a> - <a href="https://github.com/home-assistant/core/pull/177008">#177008</a>)</li>
<li>Bump pybravia to 0.5.1 (<a href="https://github.com/Drafteed">@Drafteed</a> - <a href="https://github.com/home-assistant/core/pull/177076">#177076</a>)</li>
<li>Bump yarl to 1.24.5 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/177097">#177097</a>)</li>
<li>Bump aiohttp to 3.14.3 (<a href="https://github.com/bdraco">@bdraco</a> - <a href="https://github.com/home-assistant/core/pull/177105">#177105</a>)</li>
<li>Bump pylamarzocco to 2.4.3 (<a href="https://github.com/zweckj">@zweckj</a> - <a href="https://github.com/home-assistant/core/pull/177151">#177151</a>)</li>
</ul>
<h2>Need help? Join the community</h2>
<p>Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!</p>
<p>Our very active <a href="/join-chat">Discord chat server</a> is an excellent place to be, and don’t forget to join our amazing <a href="https://community.home-assistant.io/">forums</a>.</p>
<p>Found a bug or issue? Please report it in our <a href="https://github.com/home-assistant/core/issues">issue tracker</a> to get it fixed! Or check <a href="/help">our help page</a> for guidance on more places you can go.</p>
<p>Are you more into email? <a href="/newsletter">Sign up for the Open Home Foundation Newsletter</a> to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.</p>
<h2>Backward-incompatible changes</h2>
<p>We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.</p>
<p>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:</p>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Purpose-specific triggers and conditions</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_0">
<p>Several entity triggers and conditions, part of the new purpose-specific triggers and conditions, have been renamed so their keys are consistent across all domains. The old keys no longer work.</p>
<p>The following triggers changed:</p>
<ul>
<li><code>battery.low</code> is now <code>battery.became_low</code></li>
<li><code>battery.not_low</code> is now <code>battery.no_longer_low</code></li>
<li><code>lawn_mower.docked</code> is now <code>lawn_mower.returned_to_dock</code></li>
<li><code>schedule.turned_off</code> is now <code>schedule.block_ended</code></li>
<li><code>schedule.turned_on</code> is now <code>schedule.block_started</code></li>
<li><code>timer.time_remaining</code> is now <code>timer.remaining_time_reached</code></li>
<li><code>update.update_became_available</code> is now <code>update.became_available</code></li>
<li><code>vacuum.docked</code> is now <code>vacuum.returned_to_dock</code></li>
</ul>
<p>The following conditions changed:</p>
<ul>
<li><code>climate.target_humidity</code> is now <code>climate.is_target_humidity</code></li>
<li><code>climate.target_temperature</code> is now <code>climate.is_target_temperature</code></li>
</ul>
<p>If an automation or script uses one of these, it will stop working until updated. To fix it, open the affected automation or script, re-select the trigger or condition (it now appears under its new name), and save. If you edit in YAML, replace the old key with the new one from the list above.</p>
<p>(<a href="https://github.com/frenck">@frenck</a> - <a href="https://github.com/home-assistant/core/pull/174463">#174463</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>BSB-LAN</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_1">
<p>The BSB-LAN integration has reduced its support for the older version 1 JSON API. If your BSB-LAN device runs very old firmware that only speaks the version 1 API, update it to firmware that supports the version 2 API to keep everything working.</p>
<p>A repair notification will let you know if your device is affected.</p>
<p>(<a href="https://github.com/liudger">@liudger</a> - <a href="https://github.com/home-assistant/core/pull/172843">#172843</a>) (<a href="/integrations/bsblan/">BSB-LAN documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>iCloud</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_2">
<p>The <code>battery_level</code> attribute has been removed from iCloud device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.</p>
<p>(<a href="https://github.com/some-random-climber">@some-random-climber</a> - <a href="https://github.com/home-assistant/core/pull/174117">#174117</a>) (<a href="/integrations/icloud/">iCloud documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Person</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_3">
<p>Person entities no longer report the latitude and longitude of the home zone when their location comes from a presence scanner associated with the home zone.</p>
<p>If you have automations or scripts that check the coordinates of a person, adjust them. To check whether a person is in a specific zone, use the new <code>in_zones</code> state attribute instead.</p>
<p>(<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/173042">#173042</a>) (<a href="/integrations/person/">Person documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Rabbit Air</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_4">
<p>The Rabbit Air fan preset mode values changed from title case to lowercase to match Home Assistant’s state convention: <code>Auto</code> is now <code>auto</code>, <code>Manual</code> is now <code>manual</code>, and <code>Pollen</code> is now <code>pollen</code>. The user-facing labels stay the same through translations.</p>
<p>Update any automations, scripts, templates, or action calls that reference the old title-case preset values.</p>
<p>(<a href="https://github.com/MagikalUnicorn">@MagikalUnicorn</a> - <a href="https://github.com/home-assistant/core/pull/172931">#172931</a>) (<a href="/integrations/rabbitair/">Rabbit Air documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Reolink</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_5">
<p>Reolink Duo PoE and Duo WiFi dual-lens cameras now expose a sub-device per lens. The camera and motion/AI sensor entities that previously had a “lens 0” or “lens 1” suffix in their name are moved to the new lens sub-devices and lose that suffix. Entity IDs and custom names stay the same, so most automations keep working.</p>
<p>If you target these entities through the camera device, update them to use the new lens sub-devices.</p>
<p>(<a href="https://github.com/Markus98">@Markus98</a> - <a href="https://github.com/home-assistant/core/pull/173037">#173037</a>) (<a href="/integrations/reolink/">Reolink documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>StarLine</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_6">
<p>The <code>battery_level</code> attribute has been removed from StarLine device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.</p>
<p>(<a href="https://github.com/some-random-climber">@some-random-climber</a> - <a href="https://github.com/home-assistant/core/pull/174118">#174118</a>) (<a href="/integrations/starline/">StarLine documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Tesla Fleet</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_7">
<p>The route device tracker (<code>device_tracker.&lt;vehicle&gt;_route</code>) no longer reports the active route’s destination name as its state. Its state is now derived from your zones like a normal device tracker (<code>home</code>, <code>not_home</code>, or a zone name), based on the route’s coordinates.</p>
<p>The destination name is still available through the new destination sensor (<code>sensor.&lt;vehicle&gt;_destination</code>), which is disabled by default. Enable it from the entity settings if you have automations that relied on the destination name, and update any automations that matched the old route tracker state.</p>
<p>(<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/172513">#172513</a>) (<a href="/integrations/tesla_fleet/">Tesla Fleet documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Teslemetry</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_8">
<p>The route device tracker no longer reports the active route’s destination as its state or through a <code>location_name</code> attribute. Its state is now derived purely from the route’s coordinates (zone-aware, like <code>home</code> or <code>not_home</code>).</p>
<p>If you relied on the destination name, enable the new <strong>Destination</strong> sensor (<code>sensor.*_destination</code>), which is disabled by default and reports the destination name as Tesla provides it.</p>
<p>(<a href="https://github.com/Bre77">@Bre77</a> - <a href="https://github.com/home-assistant/core/pull/172514">#172514</a>) (<a href="/integrations/teslemetry/">Teslemetry documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Tractive</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_9">
<p>The <code>battery_level</code> attribute has been removed from Tractive device tracker entities. Use the dedicated battery sensor in your automations and scripts instead.</p>
<p>(<a href="https://github.com/bieniu">@bieniu</a> - <a href="https://github.com/home-assistant/core/pull/172756">#172756</a>) (<a href="/integrations/tractive/">Tractive documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Zeroconf</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_10">
<p>The legacy <code>requires_api_password</code> field has been removed from the Home Assistant zeroconf/mDNS discovery announcement (<code>_home-assistant._tcp</code>). It had been hardcoded to <code>true</code> since the <code>http.api_password</code> authentication mechanism was removed in Home Assistant 2024.7, so it no longer carried any meaning. The official companion apps already ignore it.</p>
<p>Third-party discovery clients that still read this field need to tolerate its absence.</p>
<p>(<a href="https://github.com/agners">@agners</a> - <a href="https://github.com/home-assistant/core/pull/173090">#173090</a>) (<a href="/integrations/zeroconf/">Zeroconf documentation</a>) (<a href="/integrations/api/">API documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Zone</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_11">
<p>The state (person count) and <code>persons</code> attribute of zone entities are now calculated from the <code>in_zones</code> attribute of person entities. As a result, a person can now be counted in more than one zone at the same time. For example, a person who is <code>home</code> with <code>in_zones: ["home", "near_home"]</code> now counts toward both <code>zone.home</code> and <code>zone.near_home</code>, where previously they only counted toward <code>zone.home</code>.</p>
<p>In addition, the state of position-aware device trackers is now the smallest zone the device is in, instead of the zone whose center it is closest to.</p>
<p>Automations, scripts, or templates that depend on zone person counts or on device tracker zone states may need to be adjusted.</p>
<p>(<a href="https://github.com/emontnemery">@emontnemery</a> - <a href="https://github.com/home-assistant/core/pull/172942">#172942</a>, <a href="https://github.com/home-assistant/core/pull/173106">#173106</a>) (<a href="/integrations/zone/">Zone documentation</a>)</p>
</div>
</details>
</div>
<div class="details-block">
<details class="details-block-item">
<summary class="details-block-title">
<span>Z-Wave JS</span>
<div class="details-block-arrow">
<svg class="down" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"></path></svg>
<svg class="up" height="24" viewbox="0 0 24 24" width="24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path></svg>
</div>
</summary>
<div class="details-block-content" id="content_12">
<p>This release requires an updated Z-Wave JS server. You need zwave-js-server 3.9.0 or newer (schema 49):</p>
<ul>
<li>If you use the Z-Wave JS app, update it to at least version 1.4.0.</li>
<li>If you use the Z-Wave JS UI Docker container, update it to at least version 11.19.1.</li>
<li>If you run your own zwave-js-server, update it to at least version 3.9.0.</li>
</ul>
<p>(<a href="https://github.com/AlCalzone">@AlCalzone</a> - <a href="https://github.com/home-assistant/core/pull/173309">#173309</a>) (<a href="/integrations/zwave_js/">Z-Wave JS documentation</a>)</p>
</div>
</details>
</div>
<p>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 <a href="https://developers.home-assistant.io/blog/">developer blog</a>. The following changes are the most notable for this release:</p>
<ul>
<li><a href="https://developers.home-assistant.io/blog/2026/06/15/device-tracker-changes">Changes to device tracker entity models</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/06/23/frontend-component-updates-2026.7">Frontend component updates in 2026.7</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/06/30/new-unit-enumerators">Introducing new unit enumerators</a></li>
<li><a href="https://developers.home-assistant.io/blog/2026/06/30/async-initialize-triggers-home-assistant-start-deprecated">Deprecation of the <code>home_assistant_start</code> flag of <code>async_initialize_triggers</code></a></li>
</ul>
<h2>All changes</h2>
<p>Of course, there is a lot more in this release. You can find a list of all changes made here: <a href="/changelogs/core-2026.7">Full changelog for Home Assistant Core 2026.7</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The Matter upgrade you’ve been waiting for]]></title>
    <link href="https://www.home-assistant.io/blog/2026/06/23/the-matter-upgrade-youve-been-waiting-for/"/>
    <updated>2026-06-23T00:00:00+00:00</updated>
    <id>https://www.home-assistant.io/blog/2026/06/23/the-matter-upgrade-youve-been-waiting-for</id>
    <content type="html"><![CDATA[<img alt="The Matter upgrade you've been waiting for" src="/images/blog/2026-06-the-matter-upgrade-youve-been-waiting-for/art.webp" style="border: 0;box-shadow: none;"/>
<p>It started as a passion project. Yet in a few years <a href="https://github.com/matter-js/matter.js" rel="noopener" target="_blank">matter.js</a> has grown beyond my wildest expectations, becoming the backbone of the open source Matter ecosystem, and powering everything from Homebridge to openHAB, and even some commercial products.</p>
<p>Ten months ago, I joined forces with the <a href="https://www.openhomefoundation.org/" rel="noopener" target="_blank">Open Home Foundation</a> to work full time as Lead Developer of Matter. Shortly after, I donated matter.js to the foundation – giving it a new home where it would be safeguarded for the future. Together we <a href="https://newsletter.openhomefoundation.org/giving-matter-js-a-new-home/" rel="noopener" target="_blank">announced our plans</a> to take Matter support in Home Assistant in a completely new direction: we set out to rebuild the <a href="/blog/2025/03/10/matter-certification/">Open Home Foundation Matter Server</a> – the engine that powers Matter in Home Assistant – on matter.js.</p>
<p>After four months of beta testing, with our community fixing bugs and contributing new features along the way, today we’re thrilled to present the newest version of Matter for Home Assistant! 🎉</p>
<!--more-->
<p>The Open Home Foundation invests in important technology to make open alternatives possible, and our work is funded in part by everyone who subscribes to <a href="/cloud/">Home Assistant Cloud</a> and buys official hardware from our commercial partners. The launch of a new Matter experience in Home Assistant shows what’s possible with your support. 💪</p>
<p class="img"><img alt="Ingo Fischer presenting at CSA events" src="/images/blog/2026-06-the-matter-upgrade-youve-been-waiting-for/image1.webp"/>
Presenting the matter.js plans at the Connectivity Standards Alliance (CSA) Member Meeting in November 2025 (right), and returning in March 2026 as an Outstanding Contributor Award recipient (left).
</p>
<h2>Serving up more with matter.js</h2>
<p>For those new to <a href="https://github.com/matter-js/matter.js" rel="noopener" target="_blank">matter.js</a>, it’s an open source TypeScript implementation of the Matter standard. I built it to give developers and power users more speed and flexibility, and to make Matter better suited for open source development across the millions of homes that use Home Assistant. By running Matter in Home Assistant on <a href="https://github.com/matter-js/matter.js" rel="noopener" target="_blank">matter.js</a>, all of those benefits now flow directly into the platform.</p>
<p>This major update brings greater stability for Matter in Home Assistant, fewer bugs, and faster start-up and recovery. It also comes with a brand new visualization feature to help you understand your network (more on that below 👀). And by upgrading to the <a href="https://csa-iot.org/newsroom/matter-1-5-1-enhancing-camera-performance-and-expanding-device-flexibility/" rel="noopener" target="_blank">Matter 1.5.1 specification</a> (<a href="https://github.com/matter-js/matter.js/pull/3941" rel="noopener" target="_blank">1.6 coming soon!</a>), we’re better equipped to improve support for all new Matter device types, such as cameras, doorbells, and closures.</p>
<p>Coupled with an updated <a href="/integrations/otbr/">OpenThread Border Router (OTBR)</a> app to support Thread 1.4 in Home Assistant, these changes mark important steps in making Matter work more reliably within your setup, now and into the future. But don’t just take our word for it – here’s what our beta testers are saying:</p>
<div class="alert">
<p>"The new Matter Server has evolved into the ultimate Matter controller and troubleshooting tool for power users, backed by an incredible open community that continues to push the standard forward."</p>
<em style="text-align: right; display: block;">- Ward Zhou, Smart Home Journalist</em>
</div>
<div class="alert">
<p>"The new matter.js server is fantastic. I love all the new possibilities it offers. In particular, the new Thread mesh view is unique and helps keep the Thread network under control at all times. The icing on the cake is that Home Assistant now supports Matter 1.5.1. This means Home Assistant's Matter implementation is once again at the forefront of the industry."</p>
<em style="text-align: right; display: block;">- hoppel118, Home Assistant Discord Member</em>
</div>
<div class="alert">
<p>"Joining the beta program was born as a last resort to get my Matter/Thread network going. But it was a great experience! While I'm not at all a power user nor programmer, I could contribute at some degree. The very short feedback loop and close involvement of the developer made this a nice (and easy!) way to contribute to the development of the Open Home."</p>
<em style="text-align: right; display: block;">- Haapster, Home Assistant Discord Member</em>
</div>
<h2>It was just a matter of time</h2>
<p>When Matter emerged a few years ago, we immediately saw its potential to shape the industry for the better. As an open standard that lets smart devices from different brands speak the same language, it represents the kind of interoperable tech the Open Home Foundation exists to champion. So we set out to build on it.</p>
<p>Just weeks after Matter’s official launch in 2022, we added the <a href="/integrations/matter/">Matter integration</a> to Home Assistant, and in 2025 both <a href="https://csa-iot.org/csa_product/home-assistant/" rel="noopener" target="_blank">Home Assistant</a> and the <a href="/blog/2025/03/10/matter-certification/">Open Home Foundation Matter Server</a> were officially certified by the Connectivity Standards Alliance. That server was built with Python and the <a href="https://github.com/project-chip/connectedhomeip" rel="noopener" target="_blank">official C++ Matter SDK</a> – a solid starting point, but one that couldn’t keep pace with our open source ambitions.</p>
<p>Matter now runs in <a href="https://analytics.home-assistant.io/integrations/" rel="noopener" target="_blank">38% of Home Assistant instances</a>, and ranks twelfth among all integrations – a clear sign of where the smart home world is heading. We want that future to have fewer compatibility headaches, more device choice, and a smart home that just works. This update to Matter support in Home Assistant takes a huge step toward that vision.</p>
<h2>An easy switch</h2>
<p>The new Matter experience in Home Assistant is delivered through the “Matter Server app 9.0” – a fully compatible drop-in replacement for the previous Python-based server. After you’ve updated the app, it will automatically migrate your data on the first start, and work in exactly the same way that the previous server did.</p>
<h2>Faster, smarter, and more secure</h2>
<p>The real benefits kick in with every subsequent server start and device reconnection. Thanks to a range of optimizations, devices now come back online much faster, networks are more responsive, and over-the-air updates are more reliable.</p>
<p>Beyond performance, the new server also tightens security. When commissioning new devices, uncertified devices with an official development/test certificate can no longer be added out of the box, ensuring no malicious devices are added to your Matter network without your knowledge. Additionally, the new server checks certificate revocation data during commissioning, adding another layer of protection.</p>
<h2>A clearer view</h2>
<p>While the Matter Server’s web UI received a range of new and improved features, the ability to visualize your Thread or Wi-Fi networks steals the show.</p>
<p class="img"><img alt="Network visualization in the Matter Server web UI" src="/images/blog/2026-06-the-matter-upgrade-youve-been-waiting-for/image2.webp"/>
Your whole network, at a glance.
</p>
<p>The visualization feature draws details from your commissioned Matter devices to map the network and offer insights into connection quality. Each device appears as a node, with small icons indicating its role in the network – whether it’s a leader (crown), a router (arrows), a sleepy, or another end device. The color of the connections between nodes reflects connection quality: green is strong, orange medium, red weak, and gray no signal (for those that want a deeper dive, check out our <a href="https://github.com/matter-js/matterjs-server/blob/main/packages/dashboard/README.md#network-visualization" rel="noopener" target="_blank">GitHub documentation</a>).</p>
<p>This is especially helpful for Thread networks, where there can be multiple “hops” between a device and the border router, and the devices themselves decide how data is routed. Where possible, border routers are also discovered and displayed, giving you a fuller picture of how your network is structured. The visualization also helps with Wi-Fi devices, making it easier to see which device is connected to which access point, and at what signal quality.</p>
<h2>A foundation for what’s next</h2>
<p>Graduating Home Assistant to matter.js wouldn’t have been possible without our community, who’ve helped grow Home Assistant into one of the biggest smart home platforms in the world.</p>
<p>With these new changes, we’re better placed than ever to make Matter in Home Assistant more approachable for all. Head to the <a href="https://github.com/OpenHomeFoundation/roadmap" rel="noopener" target="_blank">Open Home Foundation roadmap</a> to add your voice to what comes next. We can’t wait to keep building together ⚒️.</p>
]]></content>
  </entry>
  
</feed>