2026.4: Infrared never left the chat

Home Assistant 2026.4! 🎉

I’ll be honest: when I first heard the pitch for infrared support in Home Assistant, I wasn’t exactly jumping out of my chair. Infrared? That’s old tech! But that’s exactly the point. Think about how many TVs, air conditioners, and other appliances sitting in your home right now have an infrared receiver but no smart features whatsoever. With this release, all of those devices can get a smart future, showing up as actual, controllable devices in Home Assistant. Turns out, old tech can learn some very new tricks. 📡

Our purpose-specific automation triggers and conditions are back with a whole metric ton of new triggers and conditions! This effort, currently available through Home Assistant Labs, is now almost feature complete. If you haven’t tried it yet, please give it a shot; I’m really looking forward to your feedback. 🧠

There’s also plenty of fun stuff: background colors for dashboard sections, favorites on your dashboard cards, full Matter lock management with PIN codes, and you can now see what your AI-powered Assist is thinking while it processes your requests. Plus 14 new integrations! 🚀

Oh! And don’t forget: State of the Open Home 2026 is happening on April 8 in Utrecht, the Netherlands! Come celebrate everything we’ve built together in person. Tickets are limited, so grab yours while you can! 🎟️

Enjoy the release!

../Frenck

A huge thank you to all the contributors who made this release possible! And a special shout-out to @arturpragacz and @piitaya who helped write the release notes this release. Also, @mib1185, @missyquarry, @RaHehl, @CoMPaTech, @mikeodr, @silamon, and @tronikos for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️

Infrared becoming a first-class citizen of Home Assistant

This release introduces native infrared support in Home Assistant, opening the door to controlling a massive range of devices that were previously out of reach. Think about all those TVs, air conditioners, fans, sound bars, and other appliances sitting in your home that still rely on their little infrared remote. With this update, Home Assistant can now talk to them. 📡

You might already be familiar with how Bluetooth proxies transformed Bluetooth in Home Assistant, making it possible to reach Bluetooth devices anywhere in your home through relatively inexpensive ESPHome devices. We’re doing the same thing for infrared. With the new Infrared integration, Home Assistant now supports infrared proxies: small ESPHome-powered devices with an IR transmitter that can send infrared commands on behalf of Home Assistant. This means Home Assistant can now control any device that responds to an infrared remote, as long as there’s an integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that knows how to speak that device’s protocol.

Screenshot of the Infrared Proxy device page in Home Assistant, showing the Seeed XIAO IR Proxy by Seeed running ESPHome, with its infrared transmitter entity and activity log.

The first integration to take advantage of this is the LG Infrared integration, which lets you control LG TVs from Home Assistant. It creates a media player entity with support for power, volume, channel control, and playback commands, plus button entities for all the common remote functions like input selection and navigation. Since infrared is one-way by nature, the integration uses assumed states for now, but it works remarkably well for day-to-day use.

Screenshot of the LG TV device page in Home Assistant, showing media player controls for power, volume, and playback, along with button entities for navigation, HDMI input selection, and other remote functions.

Get started in just a few steps

Want to try it out? The quickest way to get started is with the Seeed Studio XIAO IR Mate. Head over to the ESPHome Ready-Made Projects page, connect the device to your computer, and flash it right from your browser. Once it’s set up and added to Home Assistant, you’ll have a working infrared proxy ready to go. Point it at your LG TV, set up the LG Infrared integration, and you’re controlling your TV from Home Assistant! 🎉

Why this matters

This is more than just a fun new feature. Bringing infrared support to Home Assistant aligns with the values of the Open Home Foundation, and especially sustainability. 🌱 There are millions of perfectly good appliances out there that aren’t “smart” but do have an infrared receiver. Instead of replacing them with newer connected versions, you can now integrate them into your smart home using a simple, relatively inexpensive IR transmitter. It’s a great way to extend the life of existing devices and reduce electronic waste. ♻️

We’re excited to see where this goes. The infrared support is designed to work with any IR protocol, and we’re looking forward to seeing integrations for more brands and device types. This is just the beginning!

Purpose-specific automation triggers & conditions

Since Home Assistant 2025.12, we’ve been working on making automationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] building more natural. Instead of thinking in technical terms like entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] states and numeric thresholds, you can now pick things like “When a light turns on” or “If the climate is heating”. Each release since has added more, and this release brings the biggest batch yet.

But this release also brings something fundamentally new to the table: cross-domain triggers and conditions.

And yes, while this is still a Home Assistant Labs feature, we encourage you to give it a spin.

Thinking in real-world concepts, not technical domains

Up until now, every triggerA trigger is a set of values or conditions of a platform that are defined to cause an automation to run. [Learn more] and conditionConditions are an optional part of an automation that will prevent an action from firing if they are not met. [Learn more] was tied to a specific entity type. Want to know if a door opened? That used to depend on whether your door was represented as a magnetic contact sensor (a binary sensorA binary sensor returns information about things that only have two states - such as on or off. [Learn more]), a motorized door such as a garage door (a coverCovers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position. [Learn more] entity), or something else entirely. You had to know the technical difference and pick the right one.

But that’s not how we think about our homes. We think in terms of doors, windows, motion, temperature, and humidity. These are real-world concepts that can be represented by different entity types in Home Assistant.

This release introduces triggersA trigger is a set of values or conditions of a platform that are defined to cause an automation to run. [Learn more] and conditionsConditions are an optional part of an automation that will prevent an action from firing if they are not met. [Learn more] that work across entity types and are organized by what they mean, not where they live technically. A “door opened” trigger now responds to any door entity, whether it’s a contact sensor or a motorized cover. A “temperature changed” trigger picks up readings from temperature sensors, climateThe Climate entity allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats. [Learn more] devicesA device is a model representing a physical or logical unit that contains entities., and water heaters alike. You no longer need to know the technical details behind the scenes.

Screenshot of the Add trigger dialog in the automation editor, showing the new cross-domain trigger categories like Humidity, Illuminance, Motion, Occupancy, and Power. The Motion category is selected, revealing Motion cleared and Motion detected triggers.

And just like the purpose-specific triggers you already know, these new cross-domain triggers and conditions fully support targeting by areaAn area in Home Assistant is a logical grouping of devices and entities that are meant to match areas (or rooms) in the physical world: your home. For example, the living room area groups devices and entities in your living room. [Learn more], floorA floor in Home Assistant is a logical grouping of areas that are meant to match the physical floors in your home. Devices & 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. [Learn more], or labelLabels in Home Assistant allow grouping 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. [Learn more]. That means you can create a trigger like “When a window on the upstairs floor is opened” without listing every single window. Add a new window sensor up there, and it’s automatically included.

New cross-domain triggers and conditions

The following new triggers and conditions now work across entity types. For each of these, you get both a trigger (“when” something happened) and a condition (“if” something is true), so you can use the same natural concepts throughout your automation:

  • Door, garage door, gate, and window: trigger when they open or close, and check if they are currently open or closed (from both binary sensors and covers).
  • Motion: trigger when motion is detected or cleared (across binary sensorA binary sensor returns information about things that only have two states - such as on or off. [Learn more] and “event entities”Events are signals that are emitted when something happens, for example, when a user presses a physical button like a doorbell or when a button on a remote control is pressed. [Learn more]).
  • Occupancy: trigger when occupancy is detected or cleared, and check if a space is occupied.
  • Temperature: trigger when the temperature changes or crosses a threshold (from temperature sensors, climate devices, and more).
  • Humidity: trigger when humidity changes or crosses a threshold, and check if it’s above or below a value (from humidity sensors, climate devices, humidifiers, and weather entities).
  • Illuminance: trigger when the light level changes or crosses a threshold, and check if it’s above or below a value.
  • Power: trigger when power consumption changes or crosses a threshold, and check current values.
  • Battery: trigger when the battery level is low or not low, when charging starts or stops, when the level changes, or when it crosses a threshold. Check if the battery level is above or below a threshold.
  • Air quality: check for detected pollutants like CO, CO2, smoke, and more.
  • Climate: check if the current or target temperature is above or below a threshold.
Screenshot of an automation in the visual editor using a cross-domain Motion detected trigger targeted at the Outside area, combined with a Person is not home condition, and actions for recording a camera feed and starting watering.

More triggers and conditions for existing domains

On top of the cross-domain additions, a lot of existing domainsEach integration in Home Assistant has a unique identifier: The domain. It is often shown as the first part (before the dot) of entity IDs. also gained new triggers and conditions:

  • Counter gained triggers for when the counter is incremented, decremented, reset, or reaches its maximum or minimum value.
  • Cover now has triggers and conditions for all cover types (blinds, shutters, shades, curtains, and awnings).
  • Event entities now have a generic trigger that fires when any event is received.
  • Humidifier now has a condition to check if the target humidity is above or below a threshold.
  • Input boolean now works with switch triggers (and vice versa), because they behave identically.
  • Input text now works with text triggers, just like text entities.
  • Moisture now has triggers and conditions for when moisture is detected or cleared, when moisture values change, or when they cross a threshold.
  • Remote gained turned on and turned off triggers.
  • Schedule now has conditions to check if a schedule is active.
  • Select gained triggers for when a selection changes and conditions to check if an option is selected.
  • Text now has conditions.
  • Temperature now has conditions to check if a temperature value is above or below a threshold.
  • To-do list gained triggers for when an item is added, completed, or removed.
  • Valve gained triggers for when a valve is opened or closed.
  • Water heater gained both triggers and conditions, including an operation mode changed trigger.

Try it out!

Purpose-specific triggers and conditions are available as a preview feature in Home Assistant Labs. We’ve been building and refining this for over four releases now, and it’s getting really close to being feature complete. If you haven’t tried it yet, head over to Settings > System > Labs to enable it. We’d love your feedback!

Background color for your dashboard sections

Your dashboard sections can now have a background color! This is a great way to visually group related cards together, make certain sections stand out, or add a personal touch to your dashboard. 🤩

Screenshot showing four dashboard sections: one with no background, one with the default background, one with a gray background at 100% opacity, and one with a red background at 25% opacity.

To add a background color to a section, open the section settings and turn on the Background toggle. From there, you can pick a color from a list of predefined options, or enter a custom hex color code. You can also adjust the opacity to get just the right look.

Screenshot of the section background settings, showing the background toggle enabled, with a color picker set to red and an opacity slider set to 20%.

If you have sections side by side on the same row, sections without a background will automatically align with those that have one, keeping everything looking clean and tidy.

Matter lock manager

If you have a Matter-compatible smart lock, you can now manage your lock users and PIN codes directly from Home Assistant! 🔐

Screenshot of the Matter lock management dialog showing a list of configured lock users and their credentials.

On the device page of your Matter lock, you’ll find a new Manage lock option. It opens a dialog where you can see all configured users, add new ones, edit existing ones, or remove them. When adding a new user, you give them a name, set a PIN code, and choose an access type: full access (can lock and unlock anytime) or one-time access (the code works once and is then automatically deleted by the lock).

Screenshot of the add user dialog with fields for name, PIN code, and access type.

Under the hood, this is powered by a new set of MatterMatter is an open-source standard that defines how to control smart home devices on a Wi-Fi or Thread network. [Learn more] lock actionsActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called sequence. [Learn more] that are also available for use in your automationsAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] and scriptsScripts are components that allow you to specify a sequence of actions to be executed by Home Assistant when turned on. [Learn more]. You can, for example, create a one-time PIN code for a guest and send it in a notification, all from an automation! The available actions include creating and removing users, setting and clearing credentials (like PIN codes and RFID tags), and querying the lock’s capabilities.

Thanks, @Ahbrown41, for this awesome contribution! 🙌

Integrations

Thanks to our community for keeping pace with the new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] and improvements to existing ones! You’re all awesome 🥰

New integrations

We welcome the following new integrations in this release:

  • Autoskope, added by @mcisk
    Integrate your Autoskope vehicle tracking devices with Home Assistant. Track the GPS location of your vehicles and other assets through Autoskope’s cloud services.

  • Casper Glow, added by @mikeodr - launching at 🥈 silver quality
    Control your Casper Glow portable sleep light from Home Assistant over Bluetooth. Adjust brightness levels and incorporate this gentle-dimming sleep aid into your bedtime automations.

  • Chess.com, added by @joostlek
    Monitor your Chess.com chess statistics in Home Assistant, including your ratings and game data.

  • Fresh-r, added by @SierraNL - launching at 🥈 silver quality
    Monitor your Fresh-r ventilation devices in Home Assistant. Track indoor air quality, CO2 levels, and ventilation performance through the Fresh-r cloud dashboard.

  • Infrared, added by @abmantis
    A new entity platform that provides an abstraction layer for infrared transmitter devices, allowing integrations to send IR commands to control TVs, air conditioners, and other IR-controlled appliances.

  • LG Infrared, added by @abmantis - launching at 🥈 silver quality
    Control your LG TV using any infrared proxy configured in Home Assistant. Send commands over IR to manage power, volume, input sources, and more, using assumed states.

  • Lichess, added by @aryanhasgithub
    Monitor your Lichess chess statistics in Home Assistant.

  • LoJack, added by @devinslick - launching at 🥈 silver quality
    Connect your LoJack by Spireon vehicle tracking account to track the GPS location of your enrolled vehicles on the Home Assistant map.

  • OpenDisplay, added by @g4bri3lDev
    Control your OpenDisplay BLE e-paper displays from Home Assistant. Devices are automatically discovered via Bluetooth, and you can send images to the display.

  • Qube Heat Pump, added by @MattieGit
    Monitor your Qube heat pump in Home Assistant via Modbus TCP. Track energy performance and operational data from your heat pump on the local network.

  • Solarman, added by @solarmanpv
    Integrate your Solarman smart energy devices with Home Assistant over the local network. Monitor energy production, consumption, and control devices like smart plugs and meter readers in real time.

  • TRMNL, added by @joostlek - launching at 🏆 platinum quality
    Monitor your TRMNL e-paper (e-ink) displays in Home Assistant. Track battery levels and manage the display sleep schedule of your low-power e-ink devices.

  • UniFi Access, added by @imhotep and @RaHehl - launching at 🥈 silver quality
    Control and monitor your Ubiquiti UniFi Access system locally from Home Assistant. Manage locks, doors, and access readers with real-time status updates over the local network.

  • WiiM, added by @Linkplay2020
    Integrate your WiiM streamer devices with Home Assistant. Control playback, volume, and input sources on devices like the WiiM Pro and WiiM Amp, with automatic discovery via Zeroconf.

Noteworthy improvements to existing integrations

It is not just new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have been added; existing ones are also being constantly improved. Here are some of the noteworthy changes to existing integrations:

  • SmartThings received a massive wave of improvements this release. Robot vacuums gained fan speed control, select entities for driving mode and cleaning type, water spray and sound mode options, a sound detection switch with sensitivity control, a full dust-bag sensor, a HEPA filter reset button, and a time entity for Do Not Disturb schedules. Stick cleaner devices are now supported as well. Thanks, @joostlek! Dishwashers also picked up new start, pause, resume, cancel, and drain actions. Thanks, @edu-tsen!
  • Roborock owners with a Q10 can now integrate their vacuum, thanks to @allenporter!
  • OpenAI Conversation added GPT-5.4 and GPT-5.4-pro model support, including reasoning effort options. Thanks, @Shulyaka!
  • SwitchBot picked up Keypad Vision support, bringing doorbell events, tamper alarms, and charging sensors to your setup. Thanks, @zerzhang!
  • Govee BLE added the H5140 CO2 monitor, providing CO2 readings right in Home Assistant. Thanks, @funkadelic!
  • SwitchBot Cloud can now control Standing Fan devices. Thanks, @XiaoLing-git!
  • Jellyfin gained shuffle and enqueue support for its media player, giving you more playback control. Thanks, @ch604!
  • GitHub picked up a merged pull requests count sensor for your repositories. Thanks, @abmantis!
  • Proxmox VE expanded with uptime duration, memory usage, storage, network, and backup sensors, runtime entity discovery for nodes, VMs, and containers, a suspend all button at the node level, a snapshot button, and token-based authentication support. Thanks, @erwindouna!
  • Renault exposes a charging settings mode sensor and battery charge limit controls to set your minimum and target state of charge. Thanks, @reneboer and @yoda-jm!
  • Schlage gained actions for managing door lock access codes: add, delete, and retrieve codes directly from Home Assistant. Thanks, @tykeal!
  • Kostal Plenticore added an active power limit control, letting you adjust your solar inverter’s output power. Thanks, @erikbadman!
  • Portainer has new pause and resume buttons for container management. Thanks, @erwindouna!
  • Teslemetry introduced an energy price calendar that shows your buy and sell tariff schedules, including time-of-use pricing periods. Thanks, @Bre77!
  • Cambridge Audio devices gained an equalizer switch. Thanks, @Solmath!
  • Gardena Bluetooth expanded to cover the Aqua Contour and Precise product line devices. Thanks, @elupus!
  • HDFury picked up audio unmute offset controls for fine-tuning audio delay. Thanks, @glenndehaan!
  • ToGrill lets you set ambient temperature range limits for alarms. Thanks, @pandanz!
  • Smarla added a spring status sensor showing the spring constellation status. Thanks, @rlint-explicatis!

Integration quality scale achievements

One thing we are incredibly proud of in Home Assistant is our integration quality scale. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.

This release, we celebrate several integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have improved their quality scale:

This is a huge achievement for these integrations and their maintainers. The effort and dedication required to reach these quality levels is significant, as it involves extensive testing, documentation, error handling, and often complete rewrites of parts of the integration.

A big thank you to all the contributors involved! 👏

Now available to set up from the UI

While most integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can be set up directly from the Home Assistant user interface, some were only available using YAML configuration. We keep moving more integrations to the UI, making them more accessible for everyone to set up and use.

The following integrations are now available via the Home Assistant UI:

Farewell to the following

The following integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] are also no longer available as of this release:

  • BMW Connected Drive / Mini Connected has been removed. On September 29, 2025, BMW added additional security measures that block third parties from accessing BMW servers. For EU-registered cars, BMW now provides the CarData API, for which a custom integration has been developed.
  • Duke Energy has been removed. Duke Energy changed authentication providers back in November 2025, and the integration has not worked since.
  • Tfiac has been removed because a valid wheel cannot be created for its dependencies. It has been disabled since Home Assistant 2024.10.

Other noteworthy changes

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

  • Voice: “Clean the kitchen”: In 2026.3, we added the ability to send your vacuum to clean specific areas. Back then, we mentioned that voice support wasn’t available just yet. Well, now it is! You can ask your voice assistant to clean a specific area, and your vacuum will head there. Thanks, @arturpragacz!
  • Backup upload progress: When uploading a backup, you can now see the upload progress for each backup location. The backup page shows which step is active (creating the backup or uploading it), and for locations that support it, you’ll see a per-location upload percentage. This is supported by Home Assistant Cloud (by Nabu Casa), WebDAV, Google Drive, OneDrive, OneDrive for Business, and the S3-compatible integrations (AWS S3, iDrive e2, Cloudflare R2), as well as the built-in Home Assistant Supervisor backup. Thanks, @zweckj, @jpbede, @ludeeus, and @tronikos!
  • Markdown card actions: The Markdown card now supports tap, hold, and double-tap actions. This means you can turn your Markdown cards into interactive elements that navigate, open URLs, or call actions when you interact with them. Thanks, @ildar170975 and @piitaya!
  • Map card editor improvements: The map card visual editor now exposes all card-level and per-entity options, including label mode, color, and attribute selection. No more switching to YAML to customize your map. Thanks, @ildar170975!
  • New template function: state_attr_translated: A new template function lets you retrieve translated attribute values for entities, like fan modes, HVAC actions, and preset modes. Works just like the existing state_translated, but for attributes. Thanks, @piitaya!
  • New template function: entity_name: A new template function retrieves the name of an entity, making it easy to combine it with device and area names in your templates however you prefer. It is recommended to use this function instead of referencing the friendly_name attribute. Thanks, @arturpragacz!
  • Network visualization search: Finding specific devices in the network visualization graph for ZHA, Z-Wave, and Bluetooth is now much simpler with the addition of a search box. Thanks, @abmantis!

Favorites on your dashboard

@karwosts is well known for contributing quality-of-life improvements, and this release is no exception. You could already save your favorite colors for lights in the more-information dialog, and now those favorites can be added as a card feature on your tile and light cards, bringing those one-tap color buttons directly onto your dashboard. 🌈

The card feature automatically shows as many of your saved favorites as can fit in the available space, giving you quick access to your preferred colors and color temperatures without opening the light’s more-information dialog.

@timmo001 extended the favorites concept to covers and valves! You can now save your favorite positions, like fully open, half open, or closed, from the more-information dialog and add them as a card feature too, just like with light colors.

Screenshot of tile cards showing favorite light color buttons and cover favorite position buttons. Each light card displays a row of color swatches, while the cover card shows position buttons like 0%, 50%, and 100%.

@karwosts also made it possible to copy your favorites from one entity to others that support the same modes, so you don’t have to set them up from scratch for every light or cover. Nice!

Screenshot of the light more-information dialog showing a menu with options to edit favorite colors, reset favorite colors, and copy favorites to other lights.

Gauge card redesign

The gauge card got a fresh new look! @silamon gave it a visual overhaul, bringing a more modern and polished design that fits right in with the rest of your dashboard.

Screenshot of the redesigned gauge card showing a modern, clean design with circular gauge indicators for temperature and carbon monoxide levels.

The new design keeps all the functionality you’re used to, including needle mode and severity segments, while giving the card a cleaner, more refined appearance. A well-deserved refresh!

Auto height for cards

Cards can automatically adjust their height based on their content, instead of occupying a fixed number of grid rows. While this was previously only available through manual YAML configuration, the card layout editor now has an Auto height option, making it accessible for everyone.

Screenshot of the card layout editor showing the Auto height option enabled, along with Full width and Precise mode options.

Some cards, like the entities card and vertical stack card, already default to auto height. For other cards, you can now enable it yourself in the card’s layout settings. This is especially handy for cards with variable content, so they no longer leave empty space or cut off content.

What is an AI-powered Assist thinking?

If you use an LLM-powered conversation agent with Assist, you may have wondered what’s going on behind the scenes when it’s processing your request. Now you can find out! The Assist dialog now shows you the thinking steps and tool calls your AI agent makes while working on your request.

Screenshot of the Assist dialog showing an expanded Show details section with the AI agent thinking steps and tool calls.

Each response from the AI agent now has a collapsible Show details section. Expand it to see the agent’s reasoning process, which tools it called, what arguments it passed, and what results it got back. This is great for understanding how your AI agent arrives at its answers, and super helpful when debugging automations or tweaking your agent’s behavior.

Note

This feature is currently available on the desktop web interface only, and not yet in the Home Assistant mobile companion apps.

Need help? Join the community

Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!

Our very active Discord chat server is an excellent place to be, and don’t forget to join our amazing forums.

Found a bug or issue? Please report it in our issue tracker to get it fixed! Or check our help page for guidance on more places you can go.

Are you more into email? Sign up for the Open Home Foundation Newsletter to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.

Disclosed security advisories

This month, we published the following security advisories for vulnerabilities that have been found and fixed. We always disclose security issues with a delay, giving everyone time to update their systems first. This is why keeping your Home Assistant installation up to date is so important.

For more information on our security policy and past advisories, visit our security page.

  • 2026-03-27: Stored XSS in map card through malicious device name
    Severity: Moderate
    Detailed information: Security advisory
    Assigned CVE: CVE-2026-33044
    Discovered by: @pwnpanda
    Fixed in: Home Assistant Core 2026.1.2

  • 2026-03-27: Stored XSS in history graph card
    Severity: Moderate
    Detailed information: Security advisory
    Assigned CVE: CVE-2026-33045
    Discovered by: @pwnpanda
    Fixed in: Home Assistant Core 2026.1.2

  • 2026-03-27: Unauthenticated app (add-on) endpoints exposed to local network via host network mode
    Severity: Critical (CVSS: 9.7)
    Detailed information: Security advisory
    Assigned CVE: CVE-2026-34205
    Discovered by: @arturpragacz
    Fixed in: Home Assistant Supervisor 2026.03.2

Backward-incompatible changes

We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.

We always make sure to document these changes to make the transition as easy as possible for you. This release has the following backward-incompatible changes:

JVC Projector

The Picture Mode and HDR Processing entities have been migrated from the sensor domain to the select domain, because they represent selectable settings rather than read-only values.

New entities:

  • select.jvc_projector_picture_mode
  • select.jvc_projector_hdr_processing

The legacy sensor entities are now deprecated. If a deprecated sensor is disabled and not referenced by automations or scripts, Home Assistant will remove it from the entity registry. If usage is detected, Home Assistant keeps it and shows a repair issue to help you migrate. Update your automations, scripts, dashboards, and templates to use the new select entities.

(@SteveEasley - #165194) (JVC Projector documentation)

Litter-Robot

The deprecated night light mode switch entity for Litter-Robot 4 devices has been removed. This switch was replaced by a select entity in Home Assistant 2025.10. If you still use the old switch entity in your automations or scripts, update them to use the select entity instead.

(@natekspencer - #165636) (Litter-Robot documentation)

Motion Blinds

On devices that support tilt but do not report a tilt position, the tilt open and tilt close operations now send jog up and jog down commands instead of setting the tilt angle to 0° or 180°. Setting an absolute tilt position usually didn’t work on these devices anyway, and jog commands provide a meaningful small step in the intended direction.

If you have automations that rely on the previous tilt behavior for these devices, you may need to adjust them.

(@tobiaswaldvogel - #164694) (Motion Blinds documentation)

MQTT

Support for the object_id option has been removed after 6 months of deprecation. This option was used to suggest the entity ID for an MQTT entity and has been replaced by the default_entity_id configuration option.

If you used object_id in your MQTT YAML configuration, you were previously asked via a repair flow to update your configuration. If object_id is still part of a discovery message, the option will simply be ignored and will not break discovery.

(@jbouwh - #164460) (MQTT documentation)

pyLoad

pyLoad 0.4.x is now deprecated, and you should switch to pyLoad-ng 0.5.0. pyLoad-ng introduced a new API, and support for the old API has been dropped.

(@tr4nt0r - #164495) (pyLoad documentation)

Roth Touchline

The preset mode names for the Roth Touchline climate entities have been updated to use standard Home Assistant preset names, making them translatable. If you have automations or scripts that reference the old preset mode names, update them to use the new names:

  • Normalnone
  • Nightsleep
  • Holidayaway
  • Pro 1program_1
  • Pro 2program_2
  • Pro 3program_3

(@joostlek - #166390) (Roth Touchline documentation)

Tuya

Previously deprecated switch entities used to control valves have been removed. Use the valve entities instead. If you have automations or scripts that reference these switch entities, update them to use the corresponding valve entities.

(@epenet - #164657) (Tuya documentation)

Z-Wave

The Z-Wave Installer panel has been removed. This panel was hidden and required an undocumented YAML configuration to enable. The same functionality is now natively available through Z-Wave JS UI in the Z-Wave app.

(@AlCalzone - #165388) (Z-Wave documentation)

If you are a custom integration developer and want to learn about changes and new features available for your integration: Be sure to follow our developer blog. The following changes are the most notable for this release:

All changes

Of course, there is a lot more in this release. You can find a list of all changes made here: Full changelog for Home Assistant Core 2026.4.