Releases: home-assistant/core
2026.5.2
- Fix ValueError for non-numeric value in LG ThinQ (@LG-ThinQ-Integration - #166300) (lg_thinq docs)
- Only use SmartThings switch for light if it should (@r2xj - #166424) ([smartthings docs])
- Fix non unique_id for Comelit (@chemelli74 - #169756) (comelit docs)
- Migrate ZBT-1 and ZBT-2 to use serial number for unique_id (@puddly - #169879) (homeassistant_sky_connect docs) (homeassistant_connect_zbt2 docs)
- Update afsapi to 1.0.1 (@wlcrs - #170073) (frontier_silicon docs) (dependency)
- Fix local API incorrectly marking devices as unavailable in Overkiz (@iMicknl - #170118) (overkiz docs)
- Fix homematicip_cloud config entry setup crash after migration to 2026.5.0 (@lackas - #170156) (homematicip_cloud docs)
- homematicip_cloud: fix HmIP-FLC lock state polarity (@lackas - #170159) (homematicip_cloud docs)
- Set serial port description from
description, notproduct(@puddly - #170160) ([usb docs]) - Reinit API on stale session for Vodafone Station (@chemelli74 - #170190) ([vodafone_station docs])
- Fix MQTT device discovery not using shared QoS and encoding options (@jbouwh - #170195) (mqtt docs)
- Fix entities refresh for UptimeRobot (@chemelli74 - #170217) ([uptimerobot docs])
- Add target flow level and mode end time sensors to Duco integration (@ronaldvdmeer - #169298) (duco docs)
- Add system health platform for Duco integration (@ronaldvdmeer - #169517) (duco docs)
- Add API version to Duco diagnostics for support triage (@ronaldvdmeer - #169802) (duco docs)
- Bump python-duco-client to 0.4.2 (@ronaldvdmeer - #170027) (duco docs) (dependency)
- Bump python-duco-client to 0.5.0 (@ronaldvdmeer - #170065) (duco docs) (dependency)
- Handle empty BSB-LAN heating circuits (@liudger - #170249) (bsblan docs)
- fix: Do not forget segments from state when a new config arrives (@Hypfer - #170265) (mqtt docs)
- Bump imgw-pib to 2.1.2 (@bieniu - #170274) (imgw_pib docs) (dependency)
- iaqualink: set system specific polling interval (@flz - #170279) (iaqualink docs)
- Bump renault-api to 0.5.8 (@thargy - #170309) (renault docs) (dependency)
- Fix hassio.backup_partial AttributeError when folders are specified (@agners - #170312) (hassio docs)
- Fix Shelly media player availability (@bieniu - #170319) ([shelly docs])
- Cancel previous Debouncer timer handle in _schedule_timer (@raman325 - #170339)
- Bump axis to v71 (@Kane610 - #170347) (axis docs) (dependency)
- Fix duplicate doorbell events when entity becomes unavailable (@jbouwh - #170354) (alexa docs)
- Bump serialx to 1.7.2 (@PBrunot - #170272) ([serial docs]) (acer_projector docs) ([usb docs]) (dependency)
- Bump serialx to 1.7.3 (@puddly - #170368) ([serial docs]) (acer_projector docs) ([usb docs]) (dependency)
- Bump pyintesishome to 1.8.7 (@jnimmo - #170382) (intesishome docs) (dependency)
- Apply unit_of_measurement to energy combined power sensor (@MindFreeze - #170404) (energy docs)
- Bump pymiele version to 0.6.2 (@astrandb - #170419) (miele docs) (dependency)
- Bump aioesphomeapi to 44.24.1 (@bdraco - #170428) (esphome docs) (dependency)
- Fix fractional setpoints in Matter climate not rounded (@TheJulianJES - #170442) (matter docs)
- Fix influxdb reconfigure for v1 configuration (@RobBie1221 - #170448) (influxdb docs)
- Bump aioharmony to 1.0.3 (@bdraco - #170459) (harmony docs) (dependency)
- Increase WebDAV client timeout from 10 to 30 seconds (@Croydon - #170476) ([webdav docs])
- Fix MQTT settings in device subentry device settings are not recalled when reconfiguring the device (@jbouwh - #170484) (mqtt docs)
- Add missing optional category strings in workday (@gjohansson-ST - #170505) ([workday docs])
- Update frontend to 20260429.4 (@bramkragten - #170567) (frontend docs) (dependency)
- Migrate Duco to python-duco-connectivity and remove temperature sensors (@ronaldvdmeer - #170237) (duco docs) (breaking-change)
- Bump python-duco-connectivity to 0.4.0 (@ronaldvdmeer - #170661) (duco docs) (dependency)
2026.5.1
- Added wfsens as a occupancy source in wiz (@th3spis - #166799) (wiz docs)
- Fix WiZ Light config flow timeout by properly closing UDP connections (@robwasripped - #168456) (wiz docs)
- Fix IntelliFire setup recovery (@jeeftor - #169739) (intellifire docs)
- Fix hassio auth IndexError on Supervisor Unix socket requests (@agners - #169911) (hassio docs)
- Update gardena ble to 2.8.1 (@elupus - #169914) (gardena_bluetooth docs) (husqvarna_automower_ble docs) (dependency)
- Bump serialx to 1.7.1 (@puddly - #169928) (serial docs) (acer_projector docs) (usb docs) (dependency)
- Bump holidays to 0.96 (@gjohansson-ST - #169939) (workday docs) (holiday docs) (dependency)
- Add support for options to todo triggers (@emontnemery - #169947) (todo docs)
- Bump pyTibber to 0.37.5 (@Danielhiversen - #169981) (tibber docs) (dependency)
- Bump python-duco-client to 0.4.0 (@ronaldvdmeer - #169776) (duco docs) (dependency)
- Bump python-duco-client to 0.4.1 (@ronaldvdmeer - #169991) (duco docs) (dependency)
- Proper handling of malformed data during FRITZ!Box Tools setup (@mib1185 - #170030) (fritz docs)
- Fix websocket certificate verification Bump axis to v70 (@Kane610 - #170038) (axis docs) (dependency)
- Fix
is_closedstate for DynamicGarageDoor in Overkiz (@iMicknl - #170052) (overkiz docs) - Fix tilt controls for TiltOnlyVenetianBlind in Overkiz (@iMicknl - #170055) (overkiz docs)
- Fix cover controls for UpDownBioclimaticPergola in Overkiz (@iMicknl - #170058) (overkiz docs)
- Bump pyOverkiz to 1.20.3 (@iMicknl - #170060) (overkiz docs) (dependency)
- Bump deebot-client to 18.3.0 (@edenhaus - #170066) (ecovacs docs) (dependency)
- Set
is_closedstate toNonewhen a cover state returns "unknown" in Overkiz (@iMicknl - #170081) (overkiz docs) - Fix sensors getting wrong unit from MeasuredValueType attribute in Overkiz (@iMicknl - #170088) (overkiz docs)
- Fix Z-Wave discovery crash with unknown node firmware version (@TheJulianJES - #170090) (zwave_js docs)
- Bump ZHA to 1.3.1 (@TheJulianJES - #170095) (zha docs) (dependency)
- Bump python-bsblan to 5.2.1 (@liudger - #170100) (bsblan docs) (dependency)
- Bump blebox_uniapi to v2.5.3 (@bkobus-bbx - #170115) (blebox docs) (dependency)
- Fix is_closed state for DynamicGate covers in Overkiz (@iMicknl - #170130) (overkiz docs)
- Fix tilt support for UpDownVenetianBlind (rts:VenetianBlindRTSComponent) in Overkiz (@iMicknl - #170047) (overkiz docs)
2026.5.0
2026.5.0b4
- Unload scripts and conditions created by template entities (@emontnemery - #169366)
- Exclude incompatible climate entities from climate automations (@emontnemery - #169903)
- Exclude incompatible water_heater entities from water_heater automations (@emontnemery - #169904)
- Exclude incompatible humidifier entities from humidifier automations (@emontnemery - #169905)
- Remove _get_tracked_value method from EntityConditionBase (@emontnemery - #169906)
- Bump pyTibber to 0.37.4 (@Danielhiversen - #169907)
2026.5.0b3
- Catch additional errors as potentially retryable errors during energy data updates (@masterkoppa - #169646)
- Expose SET_SPEED for all fans via PercentSetting in Matter (@lboue - #169696)
- Add trigger timer.time_remaining (@emontnemery - #169763)
- Record notification from legacy notify action in Mobile App (@tr4nt0r - #169749)
- Improve mobile_app device tracker tests (@emontnemery - #169724)
- Add trigger media_player.unmuted (@emontnemery - #169797)
- Validate yaml matches implementation in automation options_supported tests (@emontnemery - #169798)
- Bump intents to 2026.5.5 (@synesthesiam - #169855)
- Bump serialx to 1.7.0 (@puddly - #169867)
- Improve trigger test helper docstrings (@emontnemery - #169869)
- Improve condition test helper docstrings (@emontnemery - #169871)
- Add method _should_include to EntityTriggerBase (@emontnemery - #169837)
- Improve entity trigger tests (@emontnemery - #169881)
- Add method _should_include to EntityConditionBase (@emontnemery - #169884)
- Add media_player volume triggers (@emontnemery - #169885)
- Fix Zinvolt select options (@joostlek - #169886)
- Bump satel_integra to 1.3.1 (@Tommatheussen - #169889)
- Add media_player muted conditions (@emontnemery - #169892)
- Update frontend to 20260429.3 (@bramkragten - #169893)
- Add media_player volume condition (@emontnemery - #169897)
- Exclude incompatible entities from humidity automations (@emontnemery - #169898)
- Exclude incompatible entities from temperature automations (@emontnemery - #169901)
2026.5.0b2
- Add trigger media_player.muted (@emontnemery - #156736)
- Use all_devices in ViCare diagnostics for completeness (@lackas - #169429)
- Improve template reload (@emontnemery - #169480)
- Fix async_unload teardown race in scripts (@arturpragacz - #169562)
- Add precipitation device class to WeatherFlow Cloud accumulation sensors (@shbatm - #169638)
- Bump pylitterbot to 2025.4.0 (@natekspencer - #169652)
- Limit power status binary sensor to non-LR5 devices (@natekspencer - #169659)
- Add Celsius and Fahrenheit to Smartthings UNITS mapping (@kernelpanic85 - #169686)
- Add missing initialization charging power status option to Volvo (@thomasddn - #169727)
- Bump victron-ble-ha-parser to 0.7.0 (@rajlaud - #169736)
- Bump pytrydan to 1.0.0 (@dgomes - #169742)
- Fix uptime template sensor (@Petro31 - #169743)
- Fix config flow validation in Nord Pool (@gjohansson-ST - #169751)
- Bump Insteon-panel to 0.6.2 (@ssyrell - #169757)
- bump sense-energy to 0.14.1 (@kbickar - #169761)
- Bump pyTibber to 0.37.3 (@Danielhiversen - #169762)
- Update xknxproject to 3.9.0 (@farmio - #169775)
- Add missing code for miele washing machine (@astrandb - #169795)
- Add Sensereo matter brand (@joostlek - #169836)
- Add Zunzunbee Zigbee brand (@joostlek - #169838)
- Return the requested format for OpenAI TTS (@Shulyaka - #169839)
2026.5.0b1
- Check device registration before completing Hive reauth flow (@KJonline - #168035)
- Fix reasoning summary handling for OpenAI o-models (@jftkcs - #168093)
- Victron GX: bug fix for missing translation key (@tomer-w - #168461)
- Add Broadlink infrared emitter support (@YuvalWS - #168889)
- fix: incorrect position inversion for blebox gateBox cover (@bkobus-bbx - #168893)
- Bump weatherflow4py to 1.5.4 (@jeeftor - #168994)
- Storage problem management for Comelit Serial Bridge (@chemelli74 - #169297)
- Implement current setpoint method in actron air integration (@kclif9 - #169358)
- Remove scripts from DATA_SCRIPTS on unload (@emontnemery - #169415)
- Re-interview ZHA device on websocket reconfigure (@TheJulianJES - #169483)
- Correct wake_on_lan entity behavior when entity_id changes (@emontnemery - #169486)
- Fix uptime sensor for Synology DSM (@chemelli74 - #169512)
- Fix KeyError in telegram_bot media group download debug log (@Bolshem - #169519)
- Fix: Migrate also device entries to subentry in GitHub integration (@tr4nt0r - #169523)
- Victron GX: Bug fix: parent device is mapped to the wrong device (@tomer-w - #169525)
- Update knx-frontend to 2026.4.30.60856 (@farmio - #169529)
- Enable duration support in all entity conditions (@emontnemery - #169532)
- Bump blebox_uniapi to 2.5.2 (@bkobus-bbx - #169534)
- Use the correct schema for triggers/conditions "for" option (@abmantis - #169539)
- Bump ohme to 1.9.0 (@dan-r - #169556)
- Update frontend to 20260429.1 (@piitaya - #169565)
- Bump aioshelly to 13.25.0 (@thecode - #169569)
- Bump pyuptimerobot to 25.0.0 (@chemelli74 - #169572)
- Fix grammar and clarity in samsungtv/strings.json (@SeifEddineMezned - #169574)
- Fix possessive apostrophe errors in mqtt/strings.json (@SeifEddineMezned - #169576)
- Fix Duco unknown node type not re-evaluated after becoming known (@ronaldvdmeer - #169579)
- Bump opower to 0.18.2 (@tronikos - #169588)
- Decrease WebDAV client timeout (@jpbede - #169591)
- Change vacuum template config names for clean area (@Petro31 - #169599)
- Fix detection of CPU temperature sensor support on olde FRITZ!Box models (@mib1185 - #169620)
- Pass
Noneconfig entry to schluter coordinator (@mib1185 - #169621) - Fix M1S-T500 update error (@kmod-midori - #169651)
- Fix grammar in mqtt/strings.json: "Minimal one" → "At least one" (@SeifEddineMezned - #169666)
- Bump satel_integra to 1.3.0 (@Tommatheussen - #169668)
- Updated prowlpy to 1.1.5 (@OMEGARAZER - #169671)
- Bump python-duco-client to 0.3.10 (@ronaldvdmeer - #169677)
- Improve ProxmoxVE config flow preparing bug fixing (@CoMPaTech - #169682)
- Update Nest doorbell event to use standard DoorbellEventType.RING (@allenporter - #169691)
- Use uptime device_class for Uptime sensor (@karwosts - #169692)
- Ignore location FORBIDDEN response for the Volvo integration (@thomasddn - #169713)
- Bump bring-api to 1.1.2 (@tr4nt0r - #169729)
- Update frontend to 20260429.2 (@piitaya - #169748)
2026.5.0b0
Beta release notes can be found here: https://rc.home-assistant.io/latest-release-notes
Please note that these release notes are a work in progress. 👷♀️ We will be completing them over the next couple of days. Not all features might be final yet, and some features may not make it into the final release.
Want to help test the beta? Awesome! ❤️ We have documented how you can join our beta channel and install the beta here.
While running the beta, we highly recommend joining our #beta channel on the Home Assistant Discord chat! 💬 Most developers and beta testers are in this channel during the beta period to share experiences, ideas, and iterate over new features, fine-tuning them before the final release. It's a really fun place to hang out. 😎
Reporting issues: As this is a beta test, you might encounter unexpected behavior or issues. 🐞 We use the GitHub issue tracker to track beta issues. You can find our issue trackers and the reported issues during beta here:
- Report(ed) beta dashboards/UI/frontend issues
- Report(ed) beta integrations/automations/backend/core issues
- Report(ed) beta documentation issues
🙏 When reporting issues, make sure to mention the exact beta version you are running in the issue description. This will help us identify and track the issue correctly. Read more about reporting issues here.
2026.4.4
- Fixed Kodi Media Browsing (@albaintor - #165819) (kodi docs)
- Fix Victron BLE false reauth on unrecognised advertisement mode bytes (@rajlaud - #168209) (victron_ble docs)
- Fix case-sensitive MIME type check in Google Generative AI TTS (@MohamedBarrak3 - #168458) (google_generative_ai_conversation docs)
- Hive - Bump pyhive-integration to 1.0.9 (@KJonline - #168489) (hive docs) (dependency)
- Bump aioamazondevices to 13.4.3 (@chemelli74 - #168536) (alexa_devices docs) (dependency)
- Fix MQTT JSON light restoring None color_mode on startup (@noerstad - #168608) (mqtt docs)
- Add Roborock fan speed validation and error handling (@allenporter - #168623) (roborock docs)
- Correct state/device class for water in gardena (@elupus - #168637) (gardena_bluetooth docs)
- Cancel and await idle_start future if the task was canceled after an IMAP connection was lost (@jbouwh - #168662) (imap docs)
- Validate local_only user property during ws auth phase (@edenhaus - #168812) (http docs) (websocket_api docs)
- Update Tibber library, 0.37.2 (@Danielhiversen - #169027) (tibber docs) (dependency)
- Slow down Tractive API polling to avoid 429 too many requests (@bieniu - #169057) (tractive docs)
- Bump aiotractive to 1.0.3 (@bieniu - #169059) (tractive docs) (dependency)
- Validate local_only user for signed requests (@edenhaus - #169066) (http docs)
- Update frontend to 20260325.8 (@bramkragten - #169076) (frontend docs) (dependency)
2026.4.3
- Fix Proxmox VE storage usage percentage crash on missing used_fraction (@irishpadres - #167136) (proxmoxve docs)
- Fix device_class removal in template binary sensors (@timmo001 - #167775) (template docs)
- Fix openevse charging_current and charging_power units (@c00w - #167863) (openevse docs)
- Don't create cpu temperature sensor when not supported in FRITZ!Box Tools (@mib1185 - #167905) (fritz docs)
- Fix ESPHome cold/warm white color temperature read-back (@bdraco - #167972) (esphome docs)
- Fix missing kWh unit for dlq ADD_ELE energy sensor (@gerculanum - #168026) (tuya docs)
- Bump PySwitchbot to 2.0.1 (@zerzhang - #168090) (switchbot docs) (dependency)
- Bump satel_integra to 1.1.0 (@Tommatheussen - #167353) (satel_integra docs) (dependency)
- Bump satel-integra to 1.1.1 (@Tommatheussen - #168091) (satel_integra docs) (dependency)
- Update Z-Wave cover moving state based on current position and cover capabilities (@AlCalzone - #168096) (zwave_js docs)
- Fix Switchbot Keypad Vision doorbell detection (@zerzhang - #168098) (switchbot docs)
- Bump aioamazondevices to 13.4.0 (@chemelli74 - #167984) (alexa_devices docs) (dependency)
- Bump aioamazondevices to 13.4.1 (@chemelli74 - #168121) (alexa_devices docs) (dependency)
- Bump pylitterbot to 2025.3.2 (@natekspencer - #168146) (litterrobot docs) (dependency)
- Fix Wyoming satellite memory leak on disconnect (@marcelveldt - #168152) (wyoming docs)
- Bump pyenphase from 2.4.6 to 2.4.8 (@catsmanac - #168190) (enphase_envoy docs) (dependency)
- Handle Tibber async_get_client failing (@Danielhiversen - #168207) (tibber docs)
- Bump pyTibber to 0.37.1 (@Danielhiversen - #168208) (tibber docs)
- Update Pillow to 12.2.0 (#168234) (dependency)
- Update uv to 0.11.6 (#168237) (dependency)
- Fix unit of measurement for SPH power sensors in growatt_server (@johanzander - #168251) (growatt_server docs)
- Bump PyViCare to v2.59.0 (@CFenner - #168254) (vicare docs) (dependency)
- Bump
imgw-pibto 2.1.0 (@bieniu - #168319) (imgw_pib docs) (dependency) - Fix VOIP blocking call in event loop (@jaminh - #168331) (voip docs)
- Fix disabled discovered MQTT entities cleaned up (@jbouwh - #168382) (mqtt docs)
- Update satel-integra to 1.2.1 (@Tommatheussen - #168416) (satel_integra docs) (dependency)
- Add cleaning codes for MIele steam oven combo (@astrandb - #168418) (miele docs)