Full changelog for Home Assistant 2026.6
These are all the changes included in the Home Assistant 2026.6 release. For a summary in a more readable format Release notes blog for this release.
All changes
- prusalink: populate serial number and firmware version in device info (@heikkih - #169309)
- Fix Schlage add_code service failing when code is passed as integer (@MohamedBarrak3 - #168399)
- Bump indevolt-api to 1.6.5 (@Xirt - #169406)
- Upgrade Tailwind quality scale to platinum (@frenck - #169318)
- Add AI instruction on async_added_to_hass/async_will_remove_from_hass (@abmantis - #169481)
- Bump version to 2026.6.0dev0 (@frenck - #169482)
- Migrate rapt_ble to use entry.runtime_data (@sairon - #169487)
- Add switch platform to Fumis integration (@frenck - #169096)
- Bump base image to 2026.04.0 with Python 3.14.4, use 3.14.4 in CI (@edenhaus - #169444)
- Remove deprecated alias in Tuya definitions (@epenet - #169505)
- Bump homematicip to 2.9.0 (@lackas - #169499)
- Fix flaky wyoming test (@justanotherariel - #169510)
- Update AI instructions for Python 3.14 forward references (@epenet - #169524)
- Bump airOS for additional device support (@CoMPaTech - #169502)
- Remove import annotations from tests (@epenet - #169527)
- Remove redundant variable assignment in rapt_ble init (@sairon - #169538)
- Remove future annotations import from wemo (@epenet - #169540)
- Remove useless execution script.gen_requirements_all in ci (@edenhaus - #169543)
- Remove future annotations import from backup integration (@epenet - #169542)
- Add AI instructions for common pitfalls found on PRs (@abmantis - #169488)
- Add indevolt battery temp sensors for Gen-1 devices (@Xirt - #169404)
- Fix flaky switcher_kis reauth_successful config flow test (@epenet - #169545)
- Use HassKey for webhook data (@edenhaus - #169360)
- Optimize uv cache (@edenhaus - #169554)
- Change MAC adresses in devolo Home Network tests (@Shutgun - #169555)
- Remove import annotations from generated files (@epenet - #169549)
- Drop auto_discovered config in nobo_hub (@oyvindwe - #169558)
- Add alarm profile select entity to UniFi Protect (@RaHehl - #169403)
- Fix venstar YAML import skipping additional devices (@epenet - #169544)
- Fix flaky Switchbot keypad vision doorbell event test (@epenet - #169504)
- Fix stream recorder losing recording when worker exits very fast (@epenet - #169530)
- Fix flaky dsmr tests broken by Python 3.14.3 asyncio changes (@epenet - #169431)
- Remove import annotations from core (@epenet - #169547)
- Remove import annotations from script (@epenet - #169548)
- Remove import annotations from components (@epenet - #169536)
- Fix Proxmox VE config flow failing when cluster has offline nodes (@bachjessen - #169108)
- Bump pythonkuma to 0.5.1 (@tr4nt0r - #169587)
- Surface IP-vs-serial connection failures as distinct errors in nobo_hub (@oyvindwe - #169575)
- Bump zwave-js-server-python to 0.70.0 (@raman325 - #169578)
- Add PARALLEL_UPDATES to goodwe sensor platform (@SeifEddineMezned - #169624)
- Add state of charge input number to Ohme (@dan-r - #169557)
- Bump indevolt-api to 1.7.1 (@Xirt - #169623)
- Improve uv cache save (@cdce8p - #169612)
- Fix race condition in waterfurnace login_credential_error test (@masterkoppa - #169645)
- Bump pyisy to 3.5.1 (@shbatm - #169663)
- Change uptime sensor to
SensorDeviceClass.UPTIMEin IronOS integration (@tr4nt0r - #169699) - Fix mode description typo in homekit/strings.json (@mbauny - #169605)
- openevse: Add reathentication flow (@c00w - #169632)
- Refactor exceptions to align on library (@Xirt - #169622)
- Refactored generation variable for indevolt (@Xirt - #169396)
- Improve availability in Fluss (@Marcello17 - #168154)
- Add reconfiguration flow to actron_air integration (@HoffmanEl - #169712)
- Casper Glow: bump quality to platinum (@mikeodr - #167519)
- Remove stateclass from blebox powerConsumption sensor (@bkobus-bbx - #169435)
- Add ExtraStoredData container for mobile_app device_tracker (@emontnemery - #169731)
- Add data_description blocks to dnsip strings (@Phil-Rad - #169744)
- Adjust mobile_app unknown location test (@emontnemery - #169746)
- OwnTracks: expose message tst as update_timestamp in device_tracker attribute (@kw6423 - #165203)
- Add opening/closing state icons to valve domain (@cristoforocervino - #169644)
- Add delete service action to OneDrive integration (@leodrivera - #168064)
- Add set_cover_position_and_tilt service to Overkiz (@optimusbasti - #169275)
- Refactor hassio coordinators to use typed dataclasses instead of dicts (@mdegat01 - #168847)
- Raise repairs on platform setup for command_line (@gjohansson-ST - #153565)
- Use SensorDeviceClass.UPTIME in WLED (@mik-laj - #169708)
- Add system health to Portainer (@erwindouna - #169698)
- Add binary sensor to Nord Pool (@gjohansson-ST - #169684)
- Add ptdevices Integration (@frogman85978 - #156307)
- Update Indevolt integration quality scale to silver (@Xirt - #167843)
- Bump aioautomower to 2.7.5 (@optimusbasti - #169758)
- Add Mitsubishi Comfort integration (@nikolairahimi - #167472)
- Add data_description to airnow config flow strings (@HoffmanEl - #169783)
- Remove YAML import from Duck DNS integration (@tr4nt0r - #169769)
- Restore OwnTracks custom device tracker attributes (@kw6423 - #169753)
- Update infrared-protocols to 2.1.0 ([@renovate] - #169785)
- Bump dawidd6/action-download-artifact from 20 to 21 (@dependabot - #169793)
- Remove deprecated reboot service for Velux gateway (@wollew - #169796)
- Deprecate MQTT protocol versions 3.x and migrate to version 5 (@jbouwh - #169759)
- Bump growatt server to 2.1.0 (@cengelen - #169495)
- Remove show_advanced_options in Ecovacs and always show all options (@edenhaus - #169831)
- Cleanup from future import annotations (@epenet - #169850)
- Add a number entity to set display time offset (in minutes) for Switchbot Meter CO2 devices. (@elgris - #169603)
- Add ruff rule to prevent future annotations (@epenet - #169852)
- Bump elkm1-lib to 2.2.15 (@gwww - #169843)
- switchbot: remove unwanted future annotations import preventing build on all new PRs (@Crocmagnon - #169863)
- Enable web search support for gpt-5-nano (@Freekers - #169710)
- Fix flaky test_set_scan_interval_via_platform (@epenet - #169856)
- Remove legacy weather template entities (@Petro31 - #169734)
- Add V2C LED lights (@dgomes - #169778)
- Bump tuya-device-handlers to 0.0.19 (@epenet - #169848)
- Cleanup unused code in Tuya util (@epenet - #169883)
- netatmo: bump pyatmo v9.4.0 (@farkasdi - #169735)
- Bump j178/prek-action from 2.0.2 to 2.0.3 (@dependabot - #169882)
- De-duplicate code to build Tuya device info (@epenet - #169899)
- Remove advanced options dependency from MQTT integration (@jbouwh - #169833)
- Register Hive Hub MAC address as device connection (@tomwilkie - #169040)
- Shorten docker publish job name (@edenhaus - #169926)
- Remove myself as codeowner for roomba (@Orhideous - #169922)
- Add StatelessEntityTriggerBase base class (@emontnemery - #169937)
- Add missing trigger and condition tests (@emontnemery - #169945)
- Bump homematicip to 2.10.0 (@lackas - #169950)
- Remove advanced setting dependency for IMAP integration (@jbouwh - #169827)
- No need for a local import of the paho mqtt client (@jbouwh - #169925)
- Add fixture for Tuya camera (knkaf1d0dytgyhix) (@mik-laj - #169967)
- Bump PyViCare to 2.60.2 (@lackas - #169918)
- Migrate mill to use entry.runtime_data (@Danielhiversen - #169948)
- netatmo: add doortag direct category fetch (@farkasdi - #169711)
- Filter excluded states in entity trigger base class (@emontnemery - #169956)
- Read Tuya device info from quirk (@epenet - #169888)
- Update mypy to 2.0 (@cdce8p - #169960)
- Deprecate use of config entry listener with reloading methods in config entries (@gjohansson-ST - #169198)
- Fix double reloading in unifi (@gjohansson-ST - #155147)
- Remove not used
Nonedefaults on MQTT publish API (@jbouwh - #169936) - Add default icon translations for lg_infrared (@timmo001 - #170004)
- Improve condition docstrings (@emontnemery - #170000)
- Remove name field from pvpc_hourly_pricing config flow #168955 (@chiro79 - #169998)
- Remove legacy switch template entities (@Petro31 - #169730)
- Remove legacy light template entities (@Petro31 - #169615)
- Remove legacy vacuum template entities (@Petro31 - #169732)
- Remove legacy sensor template entities (@Petro31 - #169728)
- Fix Tuya siren entity naming to avoid incorrect main entity assignment (@mik-laj - #170008)
- prusalink: add X/Y axis, location, and min extrusion temp sensors (@heikkih - #169312)
- Remove legacy lock template entities (@Petro31 - #169725)
- Remove legacy fan template entities (@Petro31 - #169613)
- Remove legacy cover template entities (@Petro31 - #169611)
- Remove legacy binary sensor template entities (@Petro31 - #169610)
- Remove legacy alarm control panel template entities (@Petro31 - #169608)
- Migrate Cast to use runtime_data (@epenet - #168856)
- Bump homematicip to 2.11.0 (@lackas - #170005)
- Use SensorDeviceClass.ENUM in Tuya sensors (@epenet - #169987)
- Added PAJ GPS integration (@skipperro - #165070)
- Use modern API in condition tests (@emontnemery - #170002)
- Add number entity to ElkM1 integration (@gwww - #169861)
- Update infrared-protocols to 3.1.0 (@renovate - #169968)
- Fix KeyError in hydrawise (@epenet - #169853)
- Allow selecting input source on SmartThings TVs (@felipecrs - #160034)
- Remove Advanced mode from asuswrt (@Vaskivskyi - #170029)
- Add disk space coordinator for Portainer (@erwindouna - #165855)
- Add missing areas in Nord Pool services (@gjohansson-ST - #169752)
- ElkM1 integration: Add time entity for settings (@gwww - #170035)
- Bump xiaomi-ble to 1.11.0 (@kmod-midori - #170018)
- Remove advanced mode from dnsip (@gjohansson-ST - #170040)
- Represent ThinQ hoods as fans instead of number entities (@balloob - #159601)
- vicare: migrate to OAuth2 with application credentials (@lackas - #165621)
- Add Data Grand Lyon integration (@Crocmagnon - #167946)
- Add switch platform to Qube heat pump (@MattieGit - #169407)
- Bump visionpluspython 1.0.2 to 1.1.0 (@theobld-ww - #169842)
- Add Cielo Home integration (@ihsan-cielo - #158511)
- Add sensor entity to lunatone integration (@MoonDevLT - #167873)
- Fix CI (@joostlek - #170061)
- Translate switchbot_cloud library errors to HomeAssistantError (@mayerwin - #169715)
- Update infrared-protocols to 3.2.0 (@renovate - #170070)
- Add fixture for Tuya pool heating pump (@tbouron - #170064)
- Bump github/codeql-action from 4.35.2 to 4.35.3 (@dependabot - #170077)
- data grand lyon: implement reauth (@Crocmagnon - #170059)
- Portainer refactor tests to use enums from pyportainer (@erwindouna - #170044)
- Add water_heater platform to Qube heat pump (@MattieGit - #169851)
- Use SensorDeviceClass.UPTIME in Unifi (@bieniu - #170087)
- Use SensorDeviceClass.UPTIME in System Monitor (@bieniu - #170084)
- prusalink: expose printer location as suggested_area (@heikkih - #170099)
- prusalink: extract PrusaLinkEntityDescription base class (@heikkih - #170092)
- Add number entity tests to Overkiz (@iMicknl - #170098)
- Add DHCP discovery to nobo_hub (@oyvindwe - #169595)
- Speed up Velux setup by avoiding disconnect from gateway (@wollew - #167932)
- Bump pyprusalink to 2.2.0 (@heikkih - #170105)
- Use suggested_display_precision in nobo_hub temperature sensor (@oyvindwe - #170138)
- data grand lyon: update quality scale in manifest (@Crocmagnon - #170109)
- Add button entity tests to Overkiz (@iMicknl - #170122)
- Stop using make_command in LG Infrared (@abmantis - #170149)
- Add diagnostics to Novy Cooker Hood (@piitaya - #169891)
- Add reconfigure flow to Novy Cooker Hood (@piitaya - #169410)
- Update infrared-protocols to 3.5.0 (@renovate - #170169)
- data grand lyon: mark repair-issues as exempt (@Crocmagnon - #170194)
- data grand lyon: icon translations (@Crocmagnon - #170189)
- Fix overkiz snapshots (@jbouwh - #170196)
- data grand lyon: exception translations (@Crocmagnon - #170188)
- Update easyEnergy integration to v3.0.1 (@klaasnicolaas - #170201)
- Drop redundant HVAC mode validation in nobo_hub (@oyvindwe - #170140)
- Add config flow connection check to easyEnergy integration (@klaasnicolaas - #170207)
- Use
has_entity_namefor all entities in FRITZ!SmartHome integration (@mib1185 - #170199) - Require admin for webhook list websocket command (@YogevKr - #170216)
- Bump aiotankerkoenig to 0.5.3 (@jpbede - #170224)
- Update easyEnergy exception and icon translations (@klaasnicolaas - #170218)
- Add more Gen1 sensors to indevolt (@karlbeecken - #170191)
- Bump letpot to 0.7.0 (@jpelgrom - #169868)
- Migrate Thermo Beacon to config entry runtime data (@mib1185 - #170226)
- Migrate Sensirion BLE to config entry runtime data (@mib1185 - #170227)
- Bump aioamazondevices to 13.5.0 (@chemelli74 - #170258)
- Update upb-lib to 0.7.0 (@DaAwesomeP - #170051)
- Use VERSION from PrusaLinkConfigFlow in prusalink (@heikkih - #170200)
- Complete icon translations for Indevolt (@Xirt - #170292)
- Align Indevolt quality scale with documentation (@Xirt - #170289)
- Apply strict typing to Indevolt integration (@Xirt - #170288)
- Use standby for HDMI-CEC turn off (@pattyland - #170206)
- prusalink: add continue-job button for ATTENTION state (@heikkih - #170193)
- data grand lyon: implement diagnostics (@Crocmagnon - #170184)
- Update infrared-protocols to 4.0.0 (@renovate - #170297)
- data grand lyon: use test fixture instead of manual patching (@Crocmagnon - #170294)
- Add diagnostics platform to Home Assistant Connect ZBT-2 (@mib1185 - #170158)
- Fix deprecated_class to work with inheritance (@abmantis - #170137)
- Skip offline devices instead of aborting ViCare diagnostics (@lackas - #170106)
- Add RepairsFlowResult TypeAlias (@iluvdata - #170263)
- Fix flaky diagnostics test for Novy Cooker Hood (@balloob - #170299)
- Fix spelling of RS-232 in Denon RS-232 integration (@balloob - #170298)
- data grand lyon: implement reconfiguration flow (@Crocmagnon - #170210)
- Add shared test mocks for the Infrared integration (@balloob - #170296)
- Bump indevolt api to 1.7.2 (@Xirt - #170310)
- Update IQS to platinum for UptimeRobot (@chemelli74 - #170260)
- Add player specific sensor to nintendo_parental_controls (@pantherale0 - #155786)
- Add backoff to forbidden packages (@cdce8p - #170242)
- Add tuya water timer data points (@peterlang-p - #170314)
- Add more entities for Tuya camera (@mik-laj - #169966)
- Add Tuya DLQ fixture (@focabr - #169585)
- Update rf-protocols to 3.0.0 (@balloob - #170301)
- Add Message Expire Interval option to MQTT publish service (@jbouwh - #169317)
- Add new CentriConnect component (@gresrun - #166933)
- Watts: add HVAC action + preset mode (@theobld-ww - #169546)
- Add quality scale for airnow integration (@HoffmanEl - #169709)
- Fix nobo_hub NoboProfileSelector class-level mutable defaults (@oyvindwe - #170119)
- Add cover support to control4 (@nayfield - #169417)
- Add Mitsubishi brand (@nikolairahimi - #169924)
- Fix coordinator data mutation in YouTube diagnostics (@TomFilsell - #170300)
- Bump aiovodafone to 3.2.0 (@chemelli74 - #170322)
- Add countdown number for Tuya sfkzq single-valve timers (@peterlang-p - #170318)
- Allow setting hvac_mode in generic_thermostat.set_temperature (@noifen - #168062)
- Z-Wave.me: Allow updating entities (@Tomeamis - #167839)
- Google assistant temperature setting active thermostat mode (@lucsansag - #166448)
- Add quality scale to Tesla Fleet integration (@Bre77 - #160475)
- Add quality scale file to Ness Alarm (@Poshy163 - #163425)
- Update discovery description wording (@MoonDevLT - #170325)
- Bump teltasync to 0.3.0, fix discovery for older devices (@karlbeecken - #169660)
- Complete exception translations for Indevolt (@Xirt - #170291)
- Add Kiosker switch platform (@Claeysson - #168858)
- Add
ZWaveNodeBaseEntityfor Z-Wave node-level entities (@TheJulianJES - #170124) - Add number platform to eurotronic_cometblue (@rikroe - #168119)
- Cleanup Eurotronic number platform (@joostlek - #170337)
- Add config flow to Avea (@pattyland - #168070)
- Set parallel updates for Ecowitt platforms (@frenck - #170349)
- Watts: add timer mode service (@theobld-ww - #169846)
- Bump pyzbar to 0.1.9 (@cryptomilk - #170076)
- Add target temperature sensor for ViCare RadiatorActuator devices (@lackas - #170102)
- Enhance WebDAV metadata download with concurrency (@jpbede - #170223)
- Clean up template engine after extension modularization (@frenck - #170346)
- Bump infrared-protocols to 5.1.0 (@lmaertin - #170365)
- Update mypy to 2.1.0 (@cdce8p - #170352)
- Add battery state of charge to energy preferences (@MindFreeze - #169550)
- Update pyOpenSSL to 26.2.0 (@renovate - #170371)
- Enable parallel type checking for mypy (@cdce8p - #170381)
- Validate device info string fields in the registry (@arturpragacz - #170021)
- Fix cv.CONDITION_SCHEMA (@emontnemery - #170395)
- Bump ihcsdk to v. 2.8.12 (@knsjensen - #170366)
- Make ConditionError a non dataclass (@emontnemery - #170391)
- Add initial quality scale to HTML5 integration (@tr4nt0r - #167046)
- Bump python-qube-heatpump to 1.10.0 (@MattieGit - #170405)
- Initiate translation attributes on class level of HomeAssistantError (@emontnemery - #170413)
- Add fault codes to Tuya Pro Breeze OmniDr Dehumidifier (@davidXire - #170411)
- Add support for Inverter Pool Heat Pump (InverGo) (@tbouron - #169606)
- Update device class for eurotronic number (@rikroe - #170356)
- Allow MQTT discovery to happen at QoS 0, 1 or 2 (@jbouwh - #170178)
- Avoid stack traces on certain transient miele API errors (@astrandb - #170429)
- Drop _spec_hub helper in nobo_hub init tests (@oyvindwe - #170147)
- bump pooldose api to 0.9.1 (@lmaertin - #170434)
- risco: improve local reconnect/unload robustness (@perceival - #165924)
- Drop Advanced mode dependency in generic camera config flow (@justanotherariel - #170427)
- Add Xthings Cloud (@zhangluofeng - #167885)
- Add hardware and software version to Zeversolar device info (@mhuiskes - #170407)
- Add agent instructions to prefer usefixtures (@abmantis - #170458)
- Add nest.set_fan_timer service action (@tronikos - #170367)
- Fix WeatherFlow Cloud empty observations (@jeeftor - #170440)
- Bump pywmspro to 0.3.4 (@mback2k - #170454)
- Bump sigstore/cosign-installer from 4.1.1 to 4.1.2 (@dependabot - #170466)
- Add websocket command subscribe_condition (@emontnemery - #170385)
- Remove advanced mode from FRITZ!Box Tools (@mib1185 - #167815)
- Add Ouman EH-800 heating controller integration (@Markus98 - #169733)
- Add pylint plugin to detect name fields in config flow schemas (@frenck - #168875)
- Deprecate legacy “homeassistant” entry in hassio backup/restore folders (@agners - #170317)
- Update uv to 0.11.10 (@renovate - #170460)
- Expand testing guidance for agents (@mxr - #166495)
- Add README for custom pylint plugins (@frenck - #170465)
- Adjust condition API (@emontnemery - #170486)
- Improve plex config flow UX and remove advanced mode dependency (@frenck - #170485)
- Make gas & water sources nameable (@karwosts - #170447)
- Fix ObjectSelector when using other selectors (@gjohansson-ST - #170453)
- Fix stale values being returned after a 502 error (@ic-dev21 - #168553)
- Improve async_setup and async_setup_entry logic separation in hassio (@mdegat01 - #169586)
- Enable additional flake8-bugbear ruff rules (@frenck - #170494)
- Remove advanced mode dependency from motioneye options flow (@frenck - #170492)
- Improve test test_validate_python (@emontnemery - #170475)
- Use direct dict access instead of .get() in victron_ble config flow tests (@rajlaud - #165972)
- Add @mhuiskes as codeowner for zeversolar (@mhuiskes - #170506)
- Add missing translations for backup failure reason (@tr4nt0r - #170437)
- Add volume limit to Cambridge Audio (@noahhusby - #163949)
- Remove advanced mode dependency from coolmaster config flow (@frenck - #170478)
- Remove advanced mode dependency from risco options flow (@frenck - #170493)
- Fix flaky openrgb tests by waiting for background tasks (@balloob - #170498)
- prusalink: add quality_scale.yaml as a tracked roadmap (@heikkih - #170204)
- Fix flaky sensibo test_device snapshot ordering (@balloob - #170499)
- Remove advanced mode dependency from onvif options flow (@frenck - #170489)
- Remove advanced mode dependency from nzbget config flow (@frenck - #170488)
- Remove advanced mode dependency from sonarr config flow (@frenck - #170487)
- Bump imgw_pib to 2.2.0 (@bieniu - #170479)
- Add infrared receiver entity (@abmantis - #169110)
- Remove advanced mode dependency from androidtv config flow (@frenck - #170477)
- Add initial quality scale file to Monarch Money (@jeeftor - #166026)
- Bring nobo_hub to Bronze quality scale (@oyvindwe - #168638)
- Add MAC address to Indevolt device info (@Xirt - #170472)
- Bump infrared-protocols to 5.2.0 (@abmantis - #170510)
- Bump PySrDaliGateway to 0.21.0 (@niracler - #170473)
- data grand lyon: add bike sharing data (@Crocmagnon - #170345)
- Improve test coverage for the SolarEdge integration (@it-rec - #169178)
- Fix flaky test_history_stream_live_chained_events race condition (@balloob - #170509)
- Improve unifi options flow UX and remove advanced mode dependency (@frenck - #170501)
- Enable ruff S107 rule to detect hardcoded passwords in function defaults (@frenck - #170511)
- Enable ruff S301 rule and remove pickle usage in tests (@frenck - #170513)
- Remove old unique id converter for UniFi device tracker entities (@Kane610 - #170516)
- Remove old unique id converter for UniFi switch entities (@Kane610 - #170517)
- Add WeatherFlow Cloud station sensors (@jeeftor - #169561)
- Allow set stop handler to revert to default (@mdegat01 - #170515)
- CI fix: set up the SkyConnect integration in ZHA repair tests (@puddly - #170520)
- Filter unrelated sqlalchemy errors in zwave_js integration fixture (@balloob - #170303)
- App services in Supervisor integration validate syntax not installed status (@mdegat01 - #170519)
- Refactor pylint plugins into pylint_home_assistant package (@frenck - #170521)
- Enable ruff RUF051 rule and simplify dict key removal (@frenck - #170523)
- Move valve entity classes to entity module (@balloob - #170524)
- Enable ruff B010 rule and replace setattr with direct attribute assignmet (@frenck - #170527)
- Move radio_frequency entity classes to entity module (@balloob - #170526)
- Move infrared entity classes to entity module (@balloob - #170525)
- Enable ruff RUF046 rule and remove unnecessary int() casts (@frenck - #170514)
- Collapse advanced options on auswrt config flow (@ollo69 - #170532)
- Bump ohme to 1.9.1 (@dan-r - #170530)
- Add solar boost switch to Ohme (@dan-r - #170531)
- Fix exlusive schema option in asuswrt (@ollo69 - #170539)
- Add pylint checker for unused test fixture arguments (@frenck - #170537)
- Bump thermopro-ble to 1.1.4 (@Skeeg - #170543)
- Add power toggle button to LG Infrared (@abmantis - #170544)
- Fix line length violations in components a-b (@frenck - #170538)
- Update uv to 0.11.11 (@renovate - #170546)
- Update orjson to 3.11.9 (@renovate - #170545)
- Victron GX: button integration (@tomer-w - #169568)
- Fix hassfest by removing knx from forbidden package file exceptions (@silamon - #170561)
- Bump github/codeql-action from 4.35.3 to 4.35.4 (@dependabot - #170555)
- data grand lyon: add binary sensor for station status (@Crocmagnon - #170522)
- Change codeowner of LG Infrared (@abmantis - #170578)
- Update pynobo to 1.9.0 (@oyvindwe - #170559)
- data grand lyon: update data-grand-lyon-ha to v0.7.0 (@Crocmagnon - #170518)
- Add data descriptions for all configuration fields in FRITZ!SmartHome (@mib1185 - #170219)
- Added guntamatic heater integration (@JensTimmerman - #167419)
- Enable DHCP rediscovery for registered nobo_hub devices (@oyvindwe - #170562)
- Add support for SwitchBot Permanent Outdoor Light (@Onero-testdev - #170572)
- Enable ruff DTZ011 rule to detect date.today() usage (@frenck - #170593)
- Fix possible timezone issue in Trafikverket Train (@gjohansson-ST - #170595)
- Migrate
mullvadto useentry.runtime_data(@mib1185 - #170583) - Update Fitbit sensor test snapshots to use EntityRegistryEntry and StateSnapshot structures (@allenporter - #169213)
- Add support for API key authentication to pyLoad integration (@tr4nt0r - #169219)
- Fix possible timezone issue in input_datetime helper (@gjohansson-ST - #170597)
- data grand lyon: refactor entities around base classes (@Crocmagnon - #170598)
- Fix possible timezone issue in calendar (@gjohansson-ST - #170594)
- Remove hassil fuzzy matcher (@synesthesiam - #170653)
- Fix default dates on get_mealplan service (@andrew-codechimp - #170596)
- Fix possible timezone issue in Trafikverket Ferry (@gjohansson-ST - #170592)
- Add zone temperature sensors to Satel Integra (@Tommatheussen - #169060)
- Add LED control settings for switchbot air purifier (@zerzhang - #167144)
- Bump infrared-protocols to 5.3.0 (@balloob - #170656)
- Remove unused future annotations import (@balloob - #170659)
- Bump qbusmqttapi to v1.5.0 for Qbus integration (@thomasddn - #170655)
- Generalize the
infraredandradio_frequencystrings (@balloob - #170462) - Add pylint checker for swallowed exceptions in action handlers (@frenck - #170652)
- Add receiver event entity to LG Infrared (@abmantis - #170529)
- Migrate parallel-updates quality scale check from hassfest to pylint (@frenck - #170533)
- Migrate diagnostics quality scale check from hassfest to pylint (@frenck - #170717)
- Migrate config-entry-unloading quality scale check from hassfest to pylint (@frenck - #170720)
- Fix flaky logger tests due to test-ordering dependency (@balloob - #170461)
- Migrate reauthentication-flow quality scale check from hassfest to pylint (@frenck - #170715)
- Add pylint checker for branching in test functions (@frenck - #170541)
- Enable the ruff rule (unnecessary-empty-iterable-within-deque-call) and simplify 7 initializations (@frenck - #170684)
- Fix line length violations in components m (@frenck - #170705)
- Fix line length violations in components h (@frenck - #170688)
- Fix line length violations in components f-g (@frenck - #170542)
- Fix line length violations in components c-e (@frenck - #170540)
- Fix line length violations in core and helpers (@frenck - #170534)
- Fix flaky TTS tests by awaiting background tasks in retrieve_media (@balloob - #170728)
- Fix flaky MaryTTS test by awaiting background tasks (@balloob - #170727)
- Fix line length violations in components n-o (@frenck - #170711)
- Fix line length violations in components s (@frenck - #170722)
- Enable ruff RUF057 rule and remove unnecessary round() calls (@frenck - #170576)
- Fix line length violations in components p-r (@frenck - #170718)
- Add pylint checker for service registration in async_setup_entry (@frenck - #170730)
- Fix line length violations in components i-l (@frenck - #170704)
- Update testing instructions in AGENTS.md (@balloob - #170657)
- Bump indevolt-api to 1.8.0 (@Xirt - #170731)
- Fix water_heater current temperature metric description in Prometheus exporter (@d0ugal - #170725)
- Fix binary_sensor metric description in Prometheus exporter (@d0ugal - #170724)
- Fix unused return value in Prometheus metric name sanitizer (@d0ugal - #170723)
- Add PR template guidance to AGENTS.md (@balloob - #170755)
- Bump Novy Cooker Hood quality scale to Gold (@piitaya - #170706)
- Bump wyoming to 1.9.0 (@synesthesiam - #170682)
- Add second audio channel for voice (@synesthesiam - #169875)
- Fix swallowed exception in unifi_access image thumbnail fetch (@RaHehl - #170707)
- Avoid swallowing exceptions in arcam_fmj services (@elupus - #170681)
- data grand lyon: fix binary sensor icons (@Crocmagnon - #170708)
- Bump actions/dependency-review-action from 4.9.0 to 5.0.0 (@dependabot - #170768)
- Set parallel updates for Satel Integra platforms (@Tommatheussen - #170776)
- Fix availability state for bridged Matter composed devices (@patgrosse - #169983)
- Fix availability of IMGW-PIB sensors (@bieniu - #170774)
- Add MOS temperature sensors to Indevolt (@Xirt - #170775)
- Use PEP 695 type parameter syntax for generic classes (@frenck - #170502)
- Fix incorrect energy name typing (@karwosts - #170792)
- Move MQTT reload service to
async_setup(@jbouwh - #170781) - Fix flaky imgw_pib diagnostics test (@balloob - #170795)
- Automatically start flow for first topic subentry in ntfy integration (@tr4nt0r - #170145)
- Bump lcn-frontend to 0.2.9 (@alengwenus - #170131)
- Add script/setup instruction to AGENTS.md (@balloob - #170800)
- Add river vegetation phenomena sensors for IMGW-PIB (@bieniu - #170770)
- Disable polling for LG Infrared integration (@balloob - #170808)
- Add Samsung Infrared integration (@lmaertin - #170449)
- Guard migration when downgrading from a future version for Vodafone Station (@chemelli74 - #170830)
- Fix line length violations in tests/components a (@frenck - #170806)
- Fix swallowed exceptions in action handlers for SamsungTV (@chemelli74 - #170805)
- Raise HomeAssistantError for Tractive action errors (@bieniu - #170798)
- Minor typing improvements (@cdce8p - #170784)
- Update PR template instructions in AGENTS.md (@balloob - #170834)
- Fix flaky test_template_timeout race condition (@balloob - #170832)
- Fix flaky telegram_bot test timeout in CI (@balloob - #170837)
- Guard migration when downgrading from a future version for SamsungTV (@chemelli74 - #170823)
- Guard migration when downgrading from a future version for Alexa devices (@chemelli74 - #170811)
- Add pylint checker for redundant @pytest.mark.usefixtures decorator (@frenck - #170787)
- Add pylint checker for sequential async_add_executor_job calls (@frenck - #170789)
- UPB integration: bump library version to 0.7.1 (@gwww - #170833)
- Add pylint checker for redundant EntityDescription defaults (@frenck - #170810)
- Fix line length violations in tests/components b (@frenck - #170825)
- Tado optimize executor job usage (@erwindouna - #170836)
- Fix KeyError in CalDAV when supported components are not reported (@adrighem - #170468)
- Pin aiofile to 3.9.0 to fix test collection crash (@balloob - #170864)
- Fix flaky test_add_event_date_in_x in Google Calendar (@balloob - #170863)
- Fix flaky input_datetime tests at date boundaries (@balloob - #170861)
- Bump aioesphomeapi to 45.0.1 (@bdraco - #170842)
- Update infrared-protocols to 5.4.0 (@renovate - #170852)
- Add helper base classes for infrared consumers (@abmantis - #170854)
- Fixed todo item capitalization (@djcode - #170871)
- Cleanup and simplify sensor code in Alexa Devices (@chemelli74 - #170793)
- Update propcache to 0.5.2 (@renovate - #170855)
- Add Tuya fixture for Madimack Elite V3 (@Marknel - #168527)
- Bump aioesphomeapi to 45.0.2 (@bdraco - #170869)
- Add cycle count / transformer temp to Indevolt (@Xirt - #170794)
- Replace unused mock_setup_entry arguments with @pytest.mark.usefixtures (@frenck - #170760)
- Update uv to 0.11.12 (@renovate - #170851)
- Re-add clarification comment to lg infrared (@abmantis - #170902)
- Bump aioamazondevices to 13.6.0 (@chemelli74 - #170904)
- Fix line length violations in tests/components g (@frenck - #170882)
- Fix swallowed exceptions in
synology_dsmaction handlers (@mib1185 - #170879) - Bump rf-protocols to 3.2.0 (@iluebbe - #170909)
- Fix flaky plex update test (@frenck - #170911)
- Remove rf-protocols requirement from individual integrations (@abmantis - #170912)
- Make infrared test messages strict again (@abmantis - #170903)
- Add Shelly occupancy binary sensor (@bieniu - #170894)
- Fix flaky kraken sensor test by waiting for background tasks (@balloob - #170916)
- Fix line length violations in tests/components d-f (@frenck - #170881)
- Return response only if requested in
mastodon.update_profileaction (@tr4nt0r - #170921) - Fix swallowed exceptions in
adguardaction handlers (@mib1185 - #170918) - Add exception translations to FRITZ!SmartHome (@mib1185 - #170445)
- Add Marantz IR Remote integration (@balloob - #169626)
- Bump aioamazondevices to 13.7.0 (@chemelli74 - #170935)
- Bump pyvlx to 0.2.34 (@wollew - #170919)
- bump pyHomee to 1.4.0 (@Taraman17 - #170934)
- cert_expiry: Fix error attribute returning string “None” for valid certificates (@TomFilsell - #170878)
- Wrap nobo_hub entity action errors with translation keys (@oyvindwe - #170719)
- Fix flaky recorder entity registry collision tests (@balloob - #170941)
- Add rf-protocols to renovate allowlist (@balloob - #170944)
- Add Kiosker button platform (@Claeysson - #170558)
- Fix line length violations in tests/components h (@frenck - #170955)
- Fix line length violations in tests/components i (@frenck - #170958)
- Fix line length violations in tests/components c (@frenck - #170845)
- Fix line length violations in tests/components m (@frenck - #170965)
- Fix line length violations in script/ (@frenck - #170759)
- Fix line length violations in tests (non-components) (@frenck - #170804)
- Fix line length violations in tests/components n-o (@frenck - #170967)
- Allow stop action with error: false and response_variable (@frenck - #171020)
- Include entity ID and URL in REST switch error logs (@frenck - #171008)
- Use timezone-aware date in Ridwell pickup event filtering (@frenck - #171001)
- Fix flaky homekit test_reload port check timeout (@balloob - #171029)
- Mount MariaDB/MySQL data directory on tmpfs in CI (@balloob - #170915)
- Fix line length violations in tests/components t-z (@frenck - #170994)
- Fix line length violations in tests/components s (@frenck - #170990)
- Fix line length violations in tests/components p-r (@frenck - #170970)
- Use timezone-aware date in SolarEdge energy details coordinator (@frenck - #170969)
- Fix line length violations in tests/components j-l (@frenck - #170961)
- Send Marantz IR power-on command with repeat_count=5 (@balloob - #171032)
- Bump python-duco-connectivity to 0.5.0 (@ronaldvdmeer - #170989)
- Bump homematicip to 2.12.0 (@lackas - #170968)
- Pin decorator to avoid license metadata regression (@L0rdCha0s - #171038)
- Bump aiostreammagic to 2.13.1 (@noahhusby - #171035)
- Group sequential executor jobs in Backblaze B2 backup agent (@ElCruncharino - #171045)
- Update coverage to 7.14.0 (@renovate - #171042)
- Bump pyTibber to 0.37.6 (@Danielhiversen - #170393)
- Bump serialx to 1.8.0 (@balloob - #171043)
- Update uv to 0.11.13 (@renovate - #171048)
- Fix swallowed exceptions in lg_thinq action handlers (@LG-ThinQ-Integration - #171047)
- Require service on fjaraskupan to detect it (@elupus - #170363)
- Replace redacted labels in test fixtures with meaningful names in overkiz (@iMicknl - #170988)
- Set subscription identifier to allow matching duplicate payloads with overlapping subscriptions (@jbouwh - #169604)
- Add tests for scene platform in Overkiz (@iMicknl - #170993)
- Fix swallowed exceptions in rest switch action handlers (@frenck - #171069)
- Bump opensensemap-api to 0.4.1 (@AlCalzone - #171056)
- Remove source_type from autoskope device tracker entity (@emontnemery - #171070)
- Reraise HomeAssistantError with translation in lovelace (@jpbede - #171053)
- Fix swallowed exception in cast play_media for unsupported apps (@frenck - #171064)
- Use config entry title for Avea light (@pattyland - #170978)
- Add geo_location entity support to Prometheus exporter (@d0ugal - #170721)
- End nobo_hub config flow tests in CREATE_ENTRY or ABORT (@oyvindwe - #170141)
- Update cryptography to 48.0.0 (@renovate - #170372)
- Add real-time control sensors to Indevolt (@Xirt - #170729)
- Fix typo in lovelace action error message (@jpbede - #171074)
- Remove source_type property from fressnapf_tracker device tracker entity (@emontnemery - #171072)
- Remove source_type property from lojack device tracker entity (@emontnemery - #171073)
- Don’t set _attr_source_type in nrgkick device tracker entity (@emontnemery - #171075)
- Remove source_type property from paj_gps device tracker entity (@emontnemery - #171076)
- Add Xthings Cloud Switch (@zhangluofeng - #170554)
- Add buttons platform to Marantz IR Remote (PM6006) (@balloob - #169627)
- Group sequential executor jobs in smappee config flow (@frenck - #171086)
- Group sequential executor jobs in soma setup (@frenck - #171087)
- Group sequential executor jobs in comfoconnect fan (@frenck - #171085)
- Group sequential executor jobs in ezviz config flow (@frenck - #171084)
- Bump dsmr-parser to 1.7.0 (@balloob - #171082)
- Group sequential executor jobs in roomba vacuum (@frenck - #171078)
- Fix swallowed exceptions in VLC Telnet actions (@MartinHjelmare - #171071)
- Group sequential executor jobs in verisure config flow (@frenck - #171081)
- Fix Avea color state refresh (@pattyland - #171003)
- Fix swallowed exceptions in template action handlers (@Petro31 - #171080)
- Fix line length violations in new code since cleanup PRs (@frenck - #171062)
- Fix swallowed exception in knx event_register action (@farmio - #171010)
- Bump pylamarzocco to 2.2.5 (@zweckj - #171083)
- Add new params to actions of easyEnergy integration (@klaasnicolaas - #169225)
- Add search to Sonos (@PeteRager - #170891)
- Add new integration for AiDot (@s1eedz - #167272)
- Disallow session closure for Cambridge Audio (@noahhusby - #171036)
- Remove stale reference to advanced mode from MQTT tests (@emontnemery - #171095)
- Bump
py-opendisplayto 7.0.0 (@g4bri3lDev - #171088) - Create agentic workflow to validate dependencies (@Copilot - #168855)
- Prioritize native Tuya unit of measurement (@epenet - #170338)
- Add siren platform support to Matter integration (@lboue - #170031)
- Update uv to 0.11.14 (@renovate - #171099)
- Use HA timezone for date in cookidoo (@frenck - #171109)
- Use HA timezone for date in recollect_waste (@frenck - #171106)
- data grand lyon: split coordinators (@Crocmagnon - #170662)
- Voip runtime data (@jaminh - #170765)
- Restore Avea brightness on turn on (@pattyland - #171120)
- Update requests to 2.34.2 (@renovate - #171119)
- Enable agentic library workflow on forks and users without write rightsA (@edenhaus - #171123)
- Provide request retry option to overcome intermittant enphase_envoy failures (@catsmanac - #168222)
- Add chat log and response rendering to Wyoming conversation (@synesthesiam - #170433)
- Add group support to WLED main light (@mik-laj - #169669)
- Split Tractive entities into tracker-related and pet-related (@bieniu - #170256)
- ElkM1 integration: Deprecate Elk Setting sensors; replaced by time/number entities (@gwww - #170041)
- Update ruff (@renovate - #171118)
- Fix docstring of cv.string (@emontnemery - #171128)
- Improve bluetooth test fixture (@emontnemery - #171061)
- prusalink: add sd_ready, farm_mode, and status_connect binary sensors (@heikkih - #169310)
- Update syrupy to 5.2.0 (@renovate - #171100)
- Fix handling of tracked devices on cleanup in FRITZ!Box Tools (@mib1185 - #170574)
- Support stepper output in Qbus integration (@thomasddn - #170772)
- Change model to model ID in the Tractive DeviceInfo (@bieniu - #171147)
- Add SwitchBot Permanent Outdoor Light support (@Onero-testdev - #170463)
- Use runtime_data and validate connection at setup for dnsip (@Phil-Rad - #169745)
- Add light entity tests to Overkiz (@iMicknl - #171102)
- Report unknown state in arcam_fmj when power state is unreported (@jgus - #171149)
- Bump gh aw to 0.74.4 (@edenhaus - #171137)
- Don’t set _attr_source_type in victron_gx device tracker entity (@emontnemery - #171077)
- Remove use of advanced mode from the tasmota integration (@emontnemery - #171093)
- Use subentry helper in Satel Integra (@joostlek - #167060)
- Annotate parametrized arcam_fmj media_player test signatures (@jgus - #171163)
- Share arcam_fmj convert_exception decorator from entity module (@jgus - #171162)
- Use device name in arcam_fmj browse media root (@jgus - #171160)
- Add number support for Tuya WG2 alarm panel (Duosmart C30) (@ChayoteJarocho - #165836)
- Enable current/power/voltage sensors by default for Tuya electrical categories (@yemua - #171098)
- Add total production sensor support for Tuya SPM02 devices (@focabr - #171166)
- add /local to no auth sig required urls (@balloob - #171140)
- Correct signature of mock class in test_recovery_from_dbus_restart (@emontnemery - #171097)
- Rename Tuya fixtures (@epenet - #171169)
- Make energy electric sources nameable (@karwosts - #170658)
- Remove use of advanced mode from the cast integration (@emontnemery - #171090)
- Add quality scale for speedtestdotnet integration (@RogueKatoz - #170782)
- Add web fetch tool support for Anthropic (@Shulyaka - #167405)
- Remove useless input validation from cast options flow (@emontnemery - #171171)
- Use renovate to update go2rtc (@edenhaus - #169508)
- Downloader add proper exceptions (@erwindouna - #170771)
- Add RepairsFlowResult pylint check (@iluvdata - #171145)
- Adjust device tracker tests (@emontnemery - #171178)
- Bump pyenvisalink to 4.9 (@nopoz - #171125)
- Fix exception handling in command_line notify service (@gjohansson-ST - #170709)
- Add Compit switch (@Przemko92 - #164053)
- Fix zwave_js fixture path resolution (@arturpragacz - #171196)
- Handle temperature unit mismatch in Tuya climate (@epenet - #171183)
- Address future error in RepairFlow for Anthropic (@iluvdata - #171156)
- Fix subscription ID for restored subscriptions (@jbouwh - #171130)
- Cleanup miele API timeouts (@astrandb - #171172)
- Add pylint checker for duplicate homeassistant.const definitions (@frenck - #170848)
- Add support for SwitchBot Lock Vision (Pro) and Lock Pro Wifi (@Onero-testdev - #170470)
- Jewish Calendar: add a calendar entity (@tsvi - #145140)
- Split SolarEdge power-flow attributes into sensor entities (@it-rec - #170457)
- Use multistage workflow to run agentic workflow on forks (@edenhaus - #171186)
- Fix CI (@joostlek - #171351)
- Use CONF_CODE in Novy Cooker Hood (@piitaya - #171350)
- Replace duplicate constants with homeassistant.const imports in openai_conversation (@Shulyaka - #171348)
- Replace duplicate constants with homeassistant.const imports in anthropic (@Shulyaka - #171316)
- Remove use of advanced mode from the homekit integration (@emontnemery - #171200)
- Remove duplicate const in Mastodon (@andrew-codechimp - #171357)
- Remove duplicate constants for MQTT (@jbouwh - #171359)
- Remove duplicate constant from HTML5 integration (@tr4nt0r - #171373)
- Replace duplicate constants with homeassistant.const imports in template (@Petro31 - #171349)
- Remove duplicate constant in ntfy integration (@tr4nt0r - #171375)
- Remove duplicate constant in Notifications for Android TV / Fire TV integration (@tr4nt0r - #171377)
- Use homeassistant.const CONF_PREFIX in backblaze_b2 (@ElCruncharino - #171365)
- Remove unused ATTR_TIME from squeezebox const.py (@peteS-UK - #171374)
- Fix solaredge tests (@jpbede - #171378)
- Declare PARALLEL_UPDATES on arcam_fmj platforms (@jgus - #171151)
- Migrate RFLink YAML configuration (ADR0007) (@javicalle - #161822)
- Remove duplicate constant in bsblan integration (@liudger - #171385)
- Remove obsolete local const in slide_local (@dontinelli - #171386)
- Remove duplicate constants in Mobile App integration (@tr4nt0r - #171379)
- Use modern batteries for demo integration (@karwosts - #171376)
- Adjust aw check requirements checks (@edenhaus - #171389)
- Fix workflow run (@edenhaus - #171367)
- Fix missing delay and repeat support in LG Netcast remote (@mithomas - #170324)
- Prefix area to entity ID (@arturpragacz - #170560)
- Add entity_platform helper function to create issues when platform setup is not supported by integration (@Petro31 - #171105)
- Fix language handling in jewish_calendar tests (@jpbede - #171383)
- fix translations (@JensTimmerman - #171157)
- Group Nuki executor jobs (@jpbede - #171391)
- Use homeassistant.const CONF_HOST and CONF_PORT in minio (@tkislan - #171395)
- refactor: remove redundant CONF_ID constant from OpenEVSE integration (@firstof9 - #171366)
- Explicitly set parallel-updates for Anthropic (@Shulyaka - #171387)
- ElkM1 integration: Fix duplicate constants (@gwww - #171364)
- Replace duplicate constants with homeassistant.const imports in generic_hygrostat (@Shulyaka - #171358)
- Replace duplicate constant with homeassistant.const import in gpsd (@jrieger - #171355)
- Remove duplicate constants for
homeassistantintegration (@jbouwh - #171363) - Migrate Freebox to has_entity_name and key-based unique IDs (@piitaya - #169860)
- Add buzzer action play_rtttl to SMLIGHT (@tl-sl - #166665)
- Bump yarl to 1.24.2 (@bdraco - #171407)
- Replace duplicate constants with homeassistant.const imports in jewish calendar (@tsvi - #171403)
- Add missing speedtestdotnet options flow translation (@RogueKatoz - #171153)
- Clean up legacy template entity code (@Petro31 - #170016)
- Add new device tracker base entity BaseScannerEntity (@emontnemery - #171063)
- Add reconfigure flow to cert_expiry (@Phil-Rad - #170888)
- Bump dbus-fast to 5.0.0 (@bdraco - #171421)
- Use CONF_MODEL from homeassistant.const in marantz_infrared (@balloob - #171415)
- Use homeassistant.const CONF_TOKEN for triggercmd (@rvmey - #171411)
- Bump aiodiscover to 3.2.0 (@bdraco - #171401)
- Replace duplicate ATTR_TEMPERATURE constant with homeassistant.const (@michaelheyman - #171423)
- Fix duplicate-const in Renault services (@epenet - #171429)
- Add fixture for Tuya INTELAR IR288 (@focabr - #171412)
- Remove deprecated advanced flags from MQTT service actions services.yaml (@jbouwh - #171430)
- Replace duplicate constants with homeassistant.const imports in humidifier (@Shulyaka - #171354)
- Remove advanced mode dependency from version config flow (@edenhaus - #171215)
- Remove references to the removed toon.update service (@emontnemery - #171435)
- Use CONF_MODEL from homeassistant.const in victron_gx (@tomer-w - #171434)
- Improve temperature unit handling in Tuya numbers and sensors (@tbouron - #170432)
- Add support for Z-Wave credential management (@AlCalzone - #168360)
- Remove duplicate const in time_date (@andrew-codechimp - #171438)
- Rename advanced options section to additional options in kitchen_sink service actions (@emontnemery - #171443)
- Remove advanced mode from squeezebox service actions (@emontnemery - #171457)
- Remove advanced mode from sharkiq service actions (@emontnemery - #171456)
- Bump python-bsblan to version 6.0.1 (@liudger - #171447)
- Remove advanced mode from climate service actions (@emontnemery - #171437)
- Remove advanced mode from fan service actions (@emontnemery - #171439)
- Rename advanced options section to additional options in light service actions (@emontnemery - #171444)
- Remove advanced mode from webostv service actions (@emontnemery - #171464)
- Set breaks_in_ha_version on issue about not running core in venv or container (@emontnemery - #171426)
- Bump zeroconf to 0.149.7 (@bdraco - #171054)
- Remove advanced mode from zwave_js service actions (@emontnemery - #171465)
- Remove advanced mode from tts service actions (@emontnemery - #171462)
- Fix Avea stale brightness restore (@pattyland - #171139)
- Bump avea to 1.8.0 (@pattyland - #171473)
- Bump actions/ai-inference from 2.0.7 to 2.1.0 (@dependabot - #171475)
- Revert “Bump
py-opendisplayto 7.0.0” (@edenhaus - #171477) - husqvarna_automower_ble: Gracefully handle unreachable device (@alistair23 - #171479)
- Adjust device_registry.async_setup (@emontnemery - #167653)
- Bump base image to 2026.05.0 with Python 3.14.5, use 3.14.5 in CI (@sairon - #171482)
- Use HA timezone for date in saj (@frenck - #171450)
- Add TIMEOUT constant to CalDAV integration (@amasolov - #171463)
- Replace duplicate constants with homeassistant.const imports hddtemp (@maxmichels - #171517)
- Fix untranslated config entry error in Duco (@ronaldvdmeer - #171514)
- Replace duplicate constants with homeassistant.const imports in citybikes (@maxmichels - #171478)
- Add translations to Mastodon exceptions (@andrew-codechimp - #171528)
- Bump indevolt-api to 1.8.1 (@Xirt - #171472)
- Allow setting a custom laqi in Google Air Quality (@Thomas55555 - #160681)
- casper_glow: fix missing translation for exception (@mikeodr - #171534)
- Avoid polling in wled integration (@gunjambi - #161183)
- Remove positional message strings when translation_key is set in nintendo_parental_controls (@pantherale0 - #171531)
- Add validator subagents to github-pr-reviewer skill (@abmantis - #171370)
- Split BrowseMediaSource into root and source-specific classes (@balloob - #170835)
- Fix Duco VLV nodes not creating CO2 and humidity sensors (@ronaldvdmeer - #171182)
- Remove duplicate constant in zha (@jpbede - #171586)
- Bump bluetooth-data-tools to 1.29.11 (@bdraco - #170949)
- Add exception translations to Notifications for Android TV / Fire TV (@tr4nt0r - #171583)
- Fix reminder time calculation to use timezone-aware
dt_utilin Habitica (@tr4nt0r - #171557) - Remove advanced mode from motioneye service actions (@emontnemery - #171446)
- fix: handle and translate OpenEVSE charger exceptions in number entities (@firstof9 - #171368)
- Remove advanced mode from scene service actions (@emontnemery - #171454)
- Bump guntamatic to v1.8.0 (@JensTimmerman - #171593)
- Fix swallowed exceptions in lyric climate action handlers (@timmo001 - #171356)
- Move duplicated infrared state tracking to common class (@abmantis - #170906)
- Reduce token usage by moving deterministic checks to python (@edenhaus - #171466)
- Fix translation placeholder for Miele fan errors (@astrandb - #171592)
- Bump pyisy to 3.6.1 and modernize TLS handling for isy994 (@shbatm - #170136)
- Fix hardcoded exception strings in tankerkoenig (@mib1185 - #171607)
- Use CONF_CODE from homeassistant.const in isy994 (@shbatm - #171608)
- Remove stale temperature key from anthropic strings (@Shulyaka - #171612)
- Fix aw generation (@edenhaus - #171609)
- Send entity domain in template config flow preview (@piitaya - #171599)
- Add common availability test helper for IR/RF integrations (@abmantis - #171610)
- Add pylint checker for exception translation validation (@frenck - #171453)
- Bump aioesphomeapi to 45.0.4 (@bdraco - #171601)
- Fix positional message strings in exceptions in Notify for Android TV / Fire TV integration (@tr4nt0r - #171581)
- Remove positional message strings when translation_key is set in mqtt (@jbouwh - #171617)
- SMA add missing exceptions (@erwindouna - #171550)
- Remove advanced mode from homeassistant service actions (@emontnemery - #171440)
- Add invalid_auth exception translation key to backblaze_b2 (@ElCruncharino - #171584)
- Add DHCP discovery to Indevolt (@Xirt - #169597)
- Fix exception strings in FRITZ!Box tools (@mib1185 - #171603)
- Add missing translation placeholders for SMA exceptions (@mib1185 - #171625)
- Handle multiple intents in Wyoming conversation (@synesthesiam - #171615)
- Clean up arcam_fmj config flow (@jgus - #171161)
- Remove requirements_test_all file (@edenhaus - #171530)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171638)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171637)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171639)
- Implement final Indevolt exceptions translations (@Xirt - #171635)
- Fix hardcoded exception strings in unifi_access (@RaHehl - #171629)
- Fix aw check requirements safe output (@edenhaus - #171643)
- Add aw check requirements async block check (@edenhaus - #171642)
- Bump pyrisco to 0.7.0 (@OnFreund - #171644)
- Catch requests.Timeout and apply TIMEOUT constant across CalDAV integration (@amasolov - #171632)
- SMA refactor to new pylint (@erwindouna - #171630)
- Add missing WebDAV exception translation (@jpbede - #171614)
- Update py-aosmith to 1.0.18 (@bdr99 - #171647)
- Fix unifiprotect exception translations (#171510) (@RaHehl - #171619)
- Remove myself from samsungtv code-owners (@epenet - #171654)
- Add has-entity-name pylint quality scale checker (@Markus98 - #171486)
- Remove advanced mode from mqtt service actions (@emontnemery - #171448)
- Remove advanced mode from music_assistant service actions (@emontnemery - #171451)
- Fix Home Connect exception translation placeholder mismatch (@MartinHjelmare - #171655)
- Bump pyOverkiz to 1.20.4 (@iMicknl - #171626)
- Fix bsblan set data error translation (@liudger - #171529)
- Remove National Grid US virtual integration (@masterkoppa - #171204)
- Fix hardcoded exception strings in incomfort (@jbouwh - #171616)
- Rename advanced options section to additional options in opendisplay service actions (@emontnemery - #171452)
- Fix min value for music_assistant.get_library offset (@emontnemery - #171664)
- Remove use of advanced mode from the knx integration (@emontnemery - #171674)
- Fix Shelly translation placeholders mismatches (@thecode - #171685)
- Add test of FlowHandler show_advanced_options property (@emontnemery - #171681)
- Remove unnecessary intermediate variables in zeversolar diagnostics (@mhuiskes - #171691)
- Set _attr_has_entity_name on fitbit battery sensors (@Markus98 - #171670)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171669)
- Set _attr_has_entity_name on ekeybionyx EkeyEvent (@Markus98 - #171668)
- Set _attr_has_entity_name on smartthings SmartThingsScene (@Markus98 - #171672)
- Set _attr_has_entity_name on omie OMIEPriceSensor (@Markus98 - #171671)
- homematicip_cloud: migrate entity names to has_entity_name (@lackas - #169273)
- Fix LG WebOS TV translation placeholders mismatches (@thecode - #171696)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171700)
- Add comment optional attribute to automation items (@wendevlin - #171091)
- Add check requirements yanked and CVE check (@edenhaus - #171641)
- Set _attr_has_entity_name on lunatone LunatoneLineBroadcastLight (@Markus98 - #171682)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171702)
- Set _attr_has_entity_name on sonos SonosFavoritesEntity (@Markus98 - #171678)
- Update Indevolt integration quality scale to platinum (@Xirt - #170320)
- Switch to aiopvpc-ng (@chiro79 - #171025)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171701)
- Fix missing exceptions translation key
missing_device_infoin lunatone (@MoonDevLT - #171569) - Set _attr_has_entity_name on tplink_omada OmadaClientScannerEntity (@Markus98 - #171680)
- Add EntityComponent to device_tracker (@Petro31 - #171507)
- Bump python-openevse-http to 0.3.4 (@firstof9 - #171621)
- Remove unreachable import config flow path from cert_expiry (@Phil-Rad - #171733)
- Update aioghost to 0.4.16 (@mike182uk - #171690)
- Reorganize Freebox entity categories (@piitaya - #171480)
- Normalize empty string to None in knx config flow (@farmio - #171693)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171677)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171675)
- Bump zeroconf to 0.149.16 (@bdraco - #171737)
- Use
isfor IntentResponseType identity check in conversation (@justanotherariel - #171699) - Fix name of config flow form field (@ScottG489 - #171741)
- Add notify entity to System Bridge integration (@tr4nt0r - #171736)
- Add fan minimum on time number entity to ecobee (@ljmerza - #171419)
- Improve tests of trigger variables (@emontnemery - #171742)
- Update documentation link to point to each domain/platform (@Petro31 - #171734)
- Downloader add missing data description (@erwindouna - #171727)
- Fix hardcoded exception strings in samsungtv (@chemelli74 - #171745)
- Declare Bronze quality scale for Zeversolar integration (@mhuiskes - #170410)
- Fix missing string in smhi (@gjohansson-ST - #171756)
- Remove use of advanced mode from the zha integration (@emontnemery - #171753)
- Use
is/is notfor same-enum identity comparisons (source) (@justanotherariel - #171591) - Fix hardcoded exception strings in pooldose integration (@lmaertin - #171652)
- Remove not needed exception handling in dnsip (@gjohansson-ST - #171758)
- Instruct agents to run prek after doing changes (@abmantis - #171757)
- Bump pydantic to 2.13.4 (@RaHehl - #171763)
- Bump uiprotect to 10.5.0 (@RaHehl - #171768)
- Replace duplicate ATTR_LOCKED constant with homeassistant.const import in deconz (@Kane610 - #171779)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171778)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171776)
- Add recreate services to Portainer (@erwindouna - #167225)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171781)
- Bump guntamatic to v1.9.0 (@JensTimmerman - #171631)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171784)
- Bump dbus-fast to 5.0.3 (@bdraco - #171595)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171790)
- Bump aiodiscover to 3.2.3 (@bdraco - #171803)
- Bump py-opendisplay to 7.2.3 (@g4bri3lDev - #171775)
- Parallelize pytest –collect-only in split_tests.py (@bdraco - #171772)
- Bump habluetooth to 6.2.0 (@bdraco - #171800)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171808)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171809)
- Fix LG webOS TV hardcoded exception strings (@thecode - #171777)
- Add entity translations to System Bridge integration (@tr4nt0r - #171807)
- Bump github/codeql-action from 4.35.4 to 4.35.5 (@dependabot - #171813)
- Fix hardcoded exception strings in uptimerobot (@chemelli74 - #171744)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171817)
- Replace duplicate constants with homeassistant.const imports in xiaomi_miio (@tr4nt0r - #171823)
- Bump j178/prek-action from 2.0.3 to 2.0.4 (@dependabot - #171812)
- Replace duplicate constants with homeassistant.const imports (@maxmichels - #171815)
- Use
is/is notfor same-enum identity comparisons (tests) (@justanotherariel - #171689) - Rename advanced section to additional options in telegram_bot service actions (@emontnemery - #171460)
- Remove advanced mode from hue service actions (@emontnemery - #171442)
- Remove empty requirements_test_all.txt (#171530 follow-up) (@karlbeecken - #171834)
- Update strings.json to align with HomeWizard app (@lexpostma - #171740)
- Fix platform unloading in System Bridge integration (@tr4nt0r - #171822)
- Bump reolink_aio to 0.20.0: Reolink battery camera support (@starkillerOG - #171836)
- Add pylint checker for invalid MDI icon references (@frenck - #171824)
- Bumb python homewizard energy 10.1.0 (@DCSBL - #171826)
- Refactor zeversolar tests: use fixtures, patch at use site, add unique_id (@mhuiskes - #171697)
- Add selector options translations to System Bridge integration (@tr4nt0r - #171771)
- Use uptime device class for HomeWizard uptime sensor (@DCSBL - #171830)
- Replaced duplicate constant with homeassistant.const in NINA (@DeerMaximum - #171852)
- Add xthings cloud lock (@zhangluofeng - #171176)
- Fix
rgb_colorpassed as RGBColor NamedTuple instead of plain tuple to light entity turn_on (@mik-laj - #171795) - Add MQTT message expiry interval option (@jbouwh - #171143)
- Bump matter-python-client to 0.7.1 (@Apollon77 - #171764)
- Move service registration in System Bridge integration to async_setup (@tr4nt0r - #171761)
- Remove not needed default force_update in flo (@MartinHjelmare - #171854)
- Fix homekit test_reload flaky test (@MartinHjelmare - #171878)
- Don’t call migrate entry in generic thermostat tests directly (@joostlek - #171887)
- Refactor labs websocket API tests to use async_setup_component (@joostlek - #171891)
- Add missing translation for connection failure on OpenRGB (@felipecrs - #171892)
- Fix two HEOS bugs: host set construction and missing error decorator (@SoundMatt - #171913)
- Bump habluetooth to 6.4.0 (@bdraco - #171918)
- Remove CLOUD_NEVER_EXPOSED_ENTITIES (@arturpragacz - #171933)
- Bump bleak-esphome to 3.8.1 (@bdraco - #171936)
- Bump aioesphomeapi to 45.1.0 (@bdraco - #171935)
- Remove legacy Konnected integration (@MartinHjelmare - #171896)
- Arcam reconfig flow (@jgus - #171767)
- Fix tilt-only DynamicPergola covers in Overkiz (@iMicknl - #171898)
- Replace duplicate constants in onkyo with homeassistant.const imports (@maxmichels - #171947)
- Replace duplicate constants in rainmachine with homeassistant.const imports (@maxmichels - #171942)
- Replace duplicate constants in profiler with homeassistant.const imports (@maxmichels - #171943)
- Replace duplicate constants in netatmo with homeassistant.const imports (@maxmichels - #171953)
- Replace duplicate constants osoenergy with homeassistant.const imports (@maxmichels - #171944)
- Replace duplicate constants in openerz with homeassistant.const imports (@maxmichels - #171946)
- Replace duplicate constants in motioneye with homeassistant.const imports (@maxmichels - #171954)
- Remove Shelly temperature and humidity sensors with error (@bieniu - #170900)
- Remove unused duplicate constants in nice_go with homeassistant.const imports (@maxmichels - #171952)
- Replace duplicate constants in nmbs with homeassistant.const imports (@maxmichels - #171951)
- Replace duplicate constants in numato with homeassistant.const imports (@maxmichels - #171950)
- Replace duplicate constants in olama with homeassistant.const imports (@maxmichels - #171949)
- Fix grammar and clarity in homekit_controller/strings.json (@SeifEddineMezned - #169625)
- Replace duplicate constants in wiz with homeassistant.const imports (@maxmichels - #171969)
- Replace duplicate constants in ios with homeassistant.const imports (@maxmichels - #171973)
- Improve switch definitions in FRITZ!Box Tools (@mib1185 - #171862)
- Bump habluetooth to 6.5.0 (@bdraco - #171966)
- Bump aioesphomeapi to 45.2.0 (@bdraco - #171986)
- Wire scan_interval and scan_duration into bluetooth.async_register_callback (@bdraco - #171806)
- Homee: Update quality-scale for current state. (@Taraman17 - #171981)
- Bump bleak-esphome to 3.9.1 (@bdraco - #171994)
- Change default Bluetooth scanning mode to Auto (@bdraco - #171985)
- Axis bump to v72 (@Kane610 - #171967)
- Use AlarmControlPanelEntityFeature from aioesphomeapi in esphome (@bdraco - #171961)
- Change default ESPHome bluetooth proxy scanning mode to Auto (@bdraco - #171996)
- Reorder device location context towards the end of the Assist LLM instructions (@skye-harris - #165136)
- Fix exception translation placeholder mismatch in roborock (@allenporter - #172014)
- Remove positional message strings from roborock exceptions (@allenporter - #172016)
- Replace duplicate constant ATTR_ELEVATION in fitbit (@allenporter - #172018)
- Bump inkbird-ble to 1.1.2 (@bdraco - #172011)
- Bump habluetooth to 6.7.1 (@bdraco - #172000)
- Bump python-izone to 1.2.10 (@Swamp-Ig - #172021)
- Fix exception translation placeholder mismatch in google_photos (@allenporter - #172012)
- Remove myself as code owner from blue_current integration (@NickKoepr - #171998)
- Replace duplicate constants in tplink_omada with homeassistant.const imports (@maxmichels - #171978)
- Replace duplicate constants in elevenlabs with homeassistant.const imports (@maxmichels - #171977)
- Replace duplicate constants in zeroconf with homeassistant.const imports (@maxmichels - #171968)
- Replace duplicate constants in version with homeassistant.const imports (@maxmichels - #171970)
- Add devcontainer-lock.json file (@ludeeus - #171982)
- Replace duplicate constants in energyid with homeassistant.const imports (@maxmichels - #171976)
- Replace duplicate constants in hegel with homeassistant.const imports (@maxmichels - #171974)
- Bump gios to 7.1.0 (@bieniu - #171962)
- Replace duplicate constants in growatt_server with homeassistant.const imports (@maxmichels - #172027)
- Replace duplicate constants in fish_audio with homeassistant.const imports (@maxmichels - #172030)
- Replace duplicate constants in drop_connect with homeassistant.const imports (@maxmichels - #172031)
- Replace duplicate constants in fujitsu_fglair with homeassistant.const imports (@maxmichels - #172029)
- Import
ATTR_MODELfromhomeassistant.constin BraviaTV (@bieniu - #171983) - Bump ical to 13.2.4 (@allenporter - #172001)
- Replace duplicate constants in iperf3 with homeassistant.const imports (@maxmichels - #171972)
- Replace duplicate constants in color_extractor with homeassistant.const imports (@maxmichels - #172032)
- Remove unused duplicate constants in tuya with homeassistant.const imports (@maxmichels - #171971)
- UPB integration: bump lib to 0.7.2 (@gwww - #171975)
- Bump aiovodafone to 3.3.0 (@chemelli74 - #172036)
- Bump bluetooth-data-tools to 1.29.18 (@bdraco - #172017)
- Group sequential async_add_executor_job calls in fireservicerota (@cyberjunky - #171474)
- Bump inkbird-ble to 1.2.2 (@bdraco - #172040)
- Bump habluetooth to 6.7.2 (@bdraco - #172042)
- Allow bluetooth coordinators to request an active scan cadence (@bdraco - #172015)
- Expose async_request_active_scan via the bluetooth API (@bdraco - #172010)
- Replace duplicate constants in victron_remote_monitoring with homeassistant.const imports (@maxmichels - #172044)
- Bump aioesphomeapi to 45.2.2 (@bdraco - #172043)
- Update ulid-transform to 2.2.1 (@renovate - #172004)
- Remove unused duplicate constants in aurora_abb_powerone with homeassistant.const imports (@maxmichels - #172047)
- Remove unused duplicate constants in google_travel_time with homeassistant.const imports (@maxmichels - #172045)
- Update fnv-hash-fast to 2.0.3 (@renovate - #172003)
- Bump aioshelly to 13.26.0 (@bdraco - #172049)
- worldclock: Remove name field from config flow (@SeifEddineMezned - #169000)
- Group sequential executor calls in yale_smart_alarm (@gjohansson-ST - #172065)
- Replace duplicate constants in husqvarna_automower with homeassistant.const imports (@maxmichels - #172064)
- Replace duplicate constants in altruist with homeassistant.const imports (@maxmichels - #172078)
- Trigger active scan when picking a snooz device in the config flow (@bdraco - #172073)
- Trigger active scan when picking a keymitt_ble device in the config flow (@bdraco - #172075)
- Trigger active scan when picking a xiaomi_ble device in the config flow (@bdraco - #172074)
- Trigger active scan when picking a qingping device in the config flow (@bdraco - #172071)
- Trigger active scan when picking a thermopro device in the config flow (@bdraco - #172052)
- Trigger active scan when picking a eufylife_ble device in the config flow (@bdraco - #172067)
- Replace duplicate constants in linux_battery with homeassistant.const imports (@maxmichels - #172070)
- Trigger active scan when picking a ld2410_ble device in the config flow (@bdraco - #172061)
- Replace duplicate constants in intent_script with homeassistant.const imports (@maxmichels - #172066)
- Trigger active scan when picking a ruuvitag_ble device in the config flow (@bdraco - #172062)
- Trigger active scan when picking a tilt_ble device in the config flow (@bdraco - #172053)
- Replace duplicate constants in cloudflare_r2 with homeassistant.const imports (@maxmichels - #172060)
- Trigger active scan when picking a victron_ble device in the config flow (@bdraco - #172057)
- Trigger active scan when picking a sensirion_ble device in the config flow (@bdraco - #172056)
- Remove useless test from trafikverket_camera (@gjohansson-ST - #172059)
- Replace duplicate constants in clicksend_tts with homeassistant.const imports (@maxmichels - #172058)
- Trigger active scan when picking a togrill device in the config flow (@bdraco - #172072)
- Replace duplicate constants in xthings_cloud with homeassistant.const imports (@maxmichels - #172076)
- Trigger active scan when picking a rapt_ble device in the config flow (@bdraco - #172054)
- Replace duplicate constants in aws_s3 with homeassistant.const imports (@maxmichels - #172055)
- Trigger active scan when picking a govee_ble device in the config flow (@bdraco - #172051)
- Replace duplicate constants in google_generative_ai_conversation with homeassistant.const imports (@maxmichels - #172050)
- Trigger active scan when picking a switchbot device in the config flow (@bdraco - #172046)
- Trigger active scan when picking an inkbird device in the config flow (@bdraco - #172048)
- Add shared rainbird device lock and increase calendar timeout (@allenporter - #172002)
- Use explicit translation keys in WLED number entities (@mik-laj - #171984)
- Add puzzles to Lichess integration (@rlrghb - #171987)
- Update cookidoo API requirement to version 0.17.2 (@miaucl - #171793)
- SMA refactor validate input (@erwindouna - #171956)
- Use latest service info for INKBIRD fallback poll recency check (@bdraco - #172041)
- Add AUTO bluetooth scanner mode to Shelly (@bdraco - #172008)
- Update aiolichess to 1.3.0 (@rlrghb - #172082)
- Update infrared-protocols to 5.6.0 (@renovate - #171916)
- Use discovered Axis name for config entry title and device name (@Kane610 - #171894)
- Fix swallowed exceptions in vallox action handlers (@slovdahl - #170839)
- Add aquarite integration (@fdebrus - #168051)
- Prefer local file access for streaming in AppleTV (@balloob - #172102)
- Bump bleak, habluetooth, and bleak-retry-connector for BlueZ backend fix (@bdraco - #172094)
- Trigger active scan when picking an idasen_desk device in the config flow (@bdraco - #172068)
- Bump aiodhcpwatcher to 1.2.6 (@bdraco - #172105)
- Bump dbus-fast to 5.0.9 (@bdraco - #172118)
- Bump inkbird-ble to 1.2.3 (@bdraco - #172113)
- Bump cached-ipaddress to 1.1.1 (@bdraco - #172110)
- Homee: exception-translations (@Taraman17 - #171995)
- Bump codecov/codecov-action from 6.0.0 to 6.0.1 (@dependabot - #172124)
- Guard AppleTV will only send valid URLs to AirPlay (@balloob - #172103)
- Bump bluetooth-auto-recovery to 1.6.4 (@bdraco - #172114)
- Bump victron-mqtt to 2026.5.4 (@tomer-w - #170876)
- Switch DHCP discovery to zeroconf for Indevolt (@Xirt - #172093)
- Handle connection error in Waze Travel Time (@chemelli74 - #172086)
- Bump pywmspro to 0.3.5 to avoid freeze of WMS WebControl pro (@mback2k - #172096)
- Add support for SwitchBot Weather Station (@Onero-testdev - #170571)
- Bump python-ecobee-api to 0.4.0 (@pike00 - #172108)
- Add tests for Overkiz switch platform (@iMicknl - #171901)
- Add Lichess sensors for Ultra Bullet, Correspondence, and variant perfs (@rlrghb - #172098)
- Cleanup tests for Waze Travel Time (@chemelli74 - #172122)
- Add negative test to WS API test test_test_condition (@emontnemery - #171427)
- growatt_server: implement dynamic-devices and stale-devices Gold rules (@johanzander - #166081)
- Add property in_zones to TrackerEntity (@emontnemery - #171765)
- Bump blebox_uniapi to v2.5.4 (@bkobus-bbx - #172130)
- Proxmox fix duplicate const (@erwindouna - #171352)
- Extract ProxmoxVE TOKEN_ID from full token string (@CoMPaTech - #172129)
- Clean up should_expose in google assistant (@arturpragacz - #171937)
- Bump wakeonlan to 3.3.0 (@mib1185 - #172150)
- Bump led-ble to 1.1.11 (@bdraco - #172154)
- Update anyio to 4.13.0 (@mattias-arrelid - #172138)
- Bump bluetooth-adapters to 2.2.0 (@bdraco - #172120)
- Bump aioharmony to 1.0.8 (@bdraco - #172116)
- Update rf-protocols to 4.0.0 (@piitaya - #172131)
- Bump aioshelly to 13.26.1 (@bdraco - #172160)
- Add state attribute in_zones to BaseScannerEntity (@emontnemery - #171832)
- Add infrared receiver support to ESPHome (@abmantis - #171789)
- Add pylint rule for checking async_setup calls in tests (@joostlek - #171890)
- Fix swallowed exceptions in
homeassistantaction handlers (@mib1185 - #170922) - Bump aiodhcpwatcher to 1.2.7 (@bdraco - #172161)
- Restore mopeka sensor entity data across reloads (@bdraco - #172178)
- Restore kegtron sensor entity data across reloads (@bdraco - #172176)
- Restore ruuvitag_ble sensor entity data across reloads (@bdraco - #172180)
- Restore moat sensor entity data across reloads (@bdraco - #172177)
- Restore bluemaestro sensor entity data across reloads (@bdraco - #172174)
- Restore rapt_ble sensor entity data across reloads (@bdraco - #172179)
- Restore sensirion_ble sensor entity data across reloads (@bdraco - #172181)
- Restore aranet sensor entity data across reloads (@bdraco - #172173)
- Restore victron_ble sensor entity data across reloads (@bdraco - #172185)
- Restore thermobeacon sensor entity data across reloads (@bdraco - #172183)
- Restore tilt_ble sensor entity data across reloads (@bdraco - #172184)
- Restore sensorpro sensor entity data across reloads (@bdraco - #172182)
- bump soco to 0.31.1 for Sonos (@PeteRager - #172168)
- Extend INKBIRD active scan duration to cover slower broadcasters (@bdraco - #172171)
- Refactor set HVAC mode for Plugwise (@bouwew - #172121)
- Bump to aiounifi v91 (@Kane610 - #172175)
- Bump habluetooth to 6.7.4 (@bdraco - #172162)
- Local helper for Axis serial number (@Kane610 - #172172)
- Bump dbus-fast to 5.0.11 (@bdraco - #172191)
- Bump ulid-transform to 2.2.9 (@bdraco - #172190)
- Bump aiohttp-asyncmdnsresolver to 0.2.0 (@bdraco - #172188)
- Bump icmplib to 3.0.4 (@bdraco - #172189)
- Bump bluetooth-adapters to 2.3.0 (@bdraco - #172165)
- Bump ESPHome stable BLE version to 2026.5.1 (@bdraco - #172196)
- Add main MOS temp to Indevolt (@Xirt - #171476)
- Bump inkbird-ble to 1.4.0 (@bdraco - #172199)
- Bump aiodiscover to 3.2.4 (@bdraco - #172203)
- Update uv to 0.11.15 (@renovate - #172208)
- Bump ical to 13.2.5 (@allenporter - #172214)
- Bump onvif-zeep-async to 4.1.0 (@bdraco - #172212)
- Fix ONVIF camera_address using uninitialized inner device attribute (@bdraco - #172219)
- Bump dbus-fast to 5.0.14 (@bdraco - #172215)
- Bump inkbird-ble to 1.4.3 (@bdraco - #172211)
- Fix wrong integration type classification of EDL21 (@tr4nt0r - #172230)
- Use non-reloading entry update method in config flow of Habitica integration (@tr4nt0r - #172225)
- Bump indevolt-api to 1.8.2 (@Xirt - #172201)
- Switch to async_setup in coordinator for gardena setup (@elupus - #172198)
- Remove artificial throttling of push updates in EDL21 integration (@tr4nt0r - #172213)
- Bump pysml to 0.1.7 (@tr4nt0r - #172217)
- Migrate EDL21 to use SerialPortSelector (@tr4nt0r - #172220)
- Use non-reloading entry update method in config flow of Xbox integration (@tr4nt0r - #172224)
- Use non-reloading entry update method in config flow of PlayStation Netwwork integration (@tr4nt0r - #172223)
- Use non-reloading entry update methods in config flow of ntfy integration (@tr4nt0r - #172222)
- Add missing Miele program phase codes (@astrandb - #172144)
- Fix blocking time_zone validation in config/core/update websocket command (@bdraco - #172227)
- Remove unreachable Hikvision Shelter Alarm binary sensor (@ptarjan - #172152)
- Replace duplicate constants in bluetooth with homeassistant.const imports (@maxmichels - #172079)
- Add in_zones property to mobile_app device tracker (@emontnemery - #171814)
- Remove support for advanced mode from schema config flow (@emontnemery - #172117)
- Deprecate the FlowHandler show_advanced_options property (@emontnemery - #171754)
- Add serial_number to HomeWizard device registry entries (@DCSBL - #172233)
- Add HomeWizard battery group target power sensor (@DCSBL - #172243)
- Add valve platform to Ouman EH-800 (@Markus98 - #172149)
- Add explicit tests of trigger helper extract_xxx functions (@emontnemery - #172238)
- Add HomeWizard battery group power sensor (@DCSBL - #172248)
- Add subentry support for MQTT date, datetime and time entity platforms (@jbouwh - #171396)
- Improve docstring and comment in mqtt code (@jbouwh - #172246)
- Remove internal test for ps4 (@joostlek - #172258)
- Add tilt-only mode support for BleBox cover entities (@bkobus-bbx - #172235)
- Add video_count sensor to YouTube integration (@nathan-osman - #171999)
- Add the number platform to the Ouman EH-800 integration (@Markus98 - #172134)
- Add support for 180-degree tilt in BleBox shutter covers (@bkobus-bbx - #172237)
- Generate repair when predictive mode is enabled while cloud communication is disabled in HomeWizard (@DCSBL - #171850)
- Add update platform to Blebox integration (@bkobus-bbx - #172148)
- Add select platform to Ouman EH-800 (@Markus98 - #170496)
- Add climate platform to Ouman EH-800 (@Markus98 - #172163)
- Add Copper water meter sensors to SmartThings (@joostlek - #171848)
- Lower update interval for zinvolt (@joostlek - #171851)
- Bump aioamazondevices to 13.8.0 (@chemelli74 - #172251)
- Resolve cover device class from blebox unified cover type (@bkobus-bbx - #171174)
- Use async_setup_component in emulated_kasa (@joostlek - #172256)
- Move device_tracker entity classes out of device_tracker.config_entry (@Petro31 - #171857)
- Replace duplicate constants in kiosker with homeassistant.const imports (@maxmichels - #172263)
- Bump python-qube-heatpump to 1.11.0 (@MattieGit - #172261)
- Fix timeout increase for longtime coordinator for solarlog (@dontinelli - #170564)
- Don’t use async_setup in vesync tests (@joostlek - #172257)
- Add tests for states_in_range and int_states_in_range (@chrys-pl - #164548)
- Add Avea device info (@pattyland - #171624)
- Migrate landisgyr_heat_meter to ultraheat-api 0.6.0 (serialx) (@vpathuis - #172186)
- Add entity_picture_local on universal media player (@p0lycarpio - #164872)
- Remove positional message strings when translation_key is set in tesla_fleet (@maxmichels - #172267)
- Add SecureOn password support to Wake On Lan (@mib1185 - #172167)
- Bump inkbird-ble to 1.4.4 (@bdraco - #172266)
- Bump yardian to v133 (@aeon-matrix - #170982)
- Fix Netatmo select AttributeError when webhook schedule_id not in cache (@SoundMatt - #171914)
- Fix invalid schema for HassStartTimer in OpenRouter extension (@ianp1 - #172153)
- Bump bthome-ble to 3.23.2 and add support for light level, settings revision, and command events (@bdraco - #172216)
- Ignore DS1420 devices in onewire (@1einmal1 - #172132)
- Add test fixture for Tuya smart kettle (dft4ebatvon3ha5s) (@netflash - #172260)
- Added gift members sensor to Ghost integration (@mike182uk - #171441)
- Add Yoto integration (@piitaya - #171207)
- Add get_color service for RGB extraction from images (@pantherale0 - #167403)
- Replace archived tibdex/github-app-token with actions/create-github-app-token (@edenhaus - #172269)
- Allow multiple headers in response in REST command (@jpbede - #165613)
- Add missing exception translation key in local_file (@maxmichels - #172271)
- Remove stale ONVIF asyncio.CancelledError workaround for anyio #374 (@mattias-arrelid - #172139)
- Filter unsupported soundbar devices for SamsungTV (@chemelli74 - #172126)
- Bump holidays to 0.97 (@gjohansson-ST - #172088)
- Remove deprecated yaml import in vivotek (@mib1185 - #172279)
- Map ViCare hvac_action to compressor phase for cooling support (@lackas - #171945)
- Fix exception translation placeholder mismatches in PTDevices integration (@frogman85978 - #171750)
- Add per-button event entities for HomematicIP key-press devices (@lackas - #171065)
- Fix automatic stop calling in continous move in onvif (@yoxcu - #163173)
- homematicip_cloud: migrate simple binary sensors to entity descriptions (@lackas - #171825)
- Do not wake Reolink battery camera for privacy mode check (@starkillerOG - #171842)
- Implement entity available for battery cameras (@starkillerOG - #171838)
- Add disk_life_time to hassio system health info (@cogneato - #171770)
- Add BLE proxy support to matter integration (@Apollon77 - #171384)
- Change selector and add translations in System Bridge send_keypress action (@tr4nt0r - #171860)
- Bump teltasync to 0.3.1, add strict typing (@karlbeecken - #169665)
- bump python-join-api to 0.1.1 (@nkgilley - #171802)
- Make service response optional for Habitica integration (@tr4nt0r - #171818)
- iaqualink: complete test coverage, bump to silver (@flz - #168268)
- Migrate more UniFi Protect entities to public API (@RaHehl - #171785)
- Fix flaky test_overflow_queue in history websocket tests (@bdraco - #171766)
- Fix Loqed webhook cleanup across setup retries (@LordMike - #162453)
- Refactor SFTP Storage integration to replace duplicate constants (@maretodoric - #171730)
- Speed sensor in paj_gps (@skipperro - #171755)
- Bump pyprusalink to 3.0.0 (@heikkih - #170480)
- Remove name from workday (@gjohansson-ST - #169210)
- Add history events for Alexa Devices (@chemelli74 - #170905)
- Switchbot Cloud: Debug make_device_data function too complex issue 0521 (@XiaoLing-git - #171688)
- Bump python-ecobee-api to 0.4.0 and handle MFA in ecobee config flow (@pike00 - #172101)
- Homeegrams (@Taraman17 - #170932)
- Require Duco Connectivity API 2.1 for new setups (@ronaldvdmeer - #170766)
- add ovhcloud_ai_endpoints integration (@Crocmagnon - #171402)
- Add room priority select entity to Lyric integration (@yonib05 - #167942)
- Use reported units for the Qbus integration (@thomasddn - #171588)
- Replace duplicated
ATTR_LOCATIONwith sharedhomeassistant.constimport in hassio and remove unusedATTR_STATEmapping (@Copilot - #171334) - Add quality scale cert expiry (@HoffmanEl - #170491)
- Add half lock for switchbot lock ultra (@zerzhang - #168750)
- Improve Israel Rail departure sensor coverage (@mikomgk - #171397)
- Migrate opensensemap to UI configuration (@AlCalzone - #171066)
- Enable N806 (@joostlek - #171388)
- Add LG TV via Serial integration (@balloob - #170945)
- Store login_token in renault config-flow (@epenet - #171707)
- prusalink: extract press_button_and_verify fixture for button tests (@heikkih - #170332)
- data grand lyon: update quality scale (@Crocmagnon - #170311)
- Add battery cycles to Indevolt (@Xirt - #172286)
- Remove deprecated call_in_progress binary-sensor in VoIP (@mib1185 - #172285)
- Remove deprecated APCUPSD sensors (@mib1185 - #172280)
- Add media_player platform to Alexa Devices (@jamesonuk - #165825)
- Update infrared-protocols to 5.6.1 (@renovate - #172289)
- Add google air quality forecast service (@Thomas55555 - #171142)
- ElkM1 integration: add switch_output_turn_on_for action (@gwww - #170128)
- Remove redundant async_on_unload calls in Qbus integration (@thomasddn - #171214)
- Use select selector for input of cast uuid allow list and CEC ignore list (@emontnemery - #171201)
- Add diagnostics support for cert_expiry integration (@RogueKatoz - #170767)
- Update Jewish calendar holiday at candle lighting and Havdalah (@amitfin - #170357)
- Fix swallowed exceptions in velbus action handlers (@cereal2nd - #171111)
- Add Rated Capacity to Indevolt Gen-1 devices (@Xirt - #171107)
- Add delete profile/header picture to
mastodon.update_profileaction (@tr4nt0r - #170930) - Bump aioesphomeapi to 45.3.1 (@bdraco - #172287)
- Add composite action to cache CI apt installs (@bdraco - #171735)
- Bump qingping-ble to 1.1.4 and update CGPR1 test fixtures (@bdraco - #172292)
- Fix hardcoded exception string in opower (@tronikos - #172295)
- Fix typo in System Bridge (@tr4nt0r - #172294)
- Bump dbus-fast to 5.0.15 (@bdraco - #172298)
- Update Yardian codeowners to @aeon-matrix (@aeon-matrix - #172273)
- Skip Linux only bluetooth scanner tests on non Linux platforms (@bdraco - #172304)
- Bump qingping-ble to 1.1.5 (@bdraco - #172305)
- Bump habluetooth to 6.7.9 (@bdraco - #172303)
- Add missing exception translation key in aws_s3 (@maxmichels - #172270)
- Update recommended chat model to gemini-3.1-flash-lite (@tronikos - #172299)
- Add override decorator for incomfort to comply with PEP 698 (@jbouwh - #172244)
- Create issue when legacy platform setup is not supported for device_trackers (@Petro31 - #172281)
- Add config flow for OPNsense (@HarlemSquirrel - #151121)
- Add device_tracker platform to kitchen_sink (@emontnemery - #172250)
- Improve cast option flow tests (@emontnemery - #172323)
- Bump pyvlx to 0.2.35 (@wollew - #172320)
- Use Duco state codes for ventilation state labels (@ronaldvdmeer - #172314)
- Ensure local_strategy is defined in tuya tests (@epenet - #172328)
- Remove
show_advanced_optionsfrom data entry flow API (@bramkragten - #172249) - Improve numerical trigger and condition tests (@emontnemery - #172308)
- Make TrackerEntity in_zones win over lat/long (@emontnemery - #172313)
- Reolink battery fast start (@starkillerOG - #171840)
- Bump pyvesync to 3.4.2 (@cdnninja - #168402)
- Prefer external URL in WWW-Authenticate header for RFC 9728 (@allenporter - #169658)
- Add template device_tracker platform (@Petro31 - #171732)
- Bump actions/stale from 10.2.0 to 10.3.0 (@dependabot - #172319)
- Update uv to 0.11.16 (@renovate - #172344)
- Update ruff (@renovate - #172343)
- Ignore quirks in Tuya snapshot tests (@epenet - #172329)
- Bump tuya-device-handlers to 0.0.21 (@epenet - #172315)
- Add entity option to associate scanner tracker with any zone (@emontnemery - #172157)
- Add instruction about hardcoded entity ids in tests (@abmantis - #172341)
- Rename automation comments to note (@wendevlin - #172312)
- Fix dead code and redundant assignment in isy994 integration (@SoundMatt - #171904)
- Rename trigger behavior options (@emontnemery - #172348)
- Add missing template entity device_tracker translation (@Petro31 - #172346)
- Fix duplicate hvac_modes in Tuya climate (@epenet - #172352)
- Allow counter entities as source in trend (@jpbede - #171132)
- Fix weather lux unit in Qbus integration (@thomasddn - #172326)
- Add repair to migrate away from multiprotocol/Multi-PAN (@agners - #168431)
- refactor(ads): refactor local CONF_OPTIONS constant in select.py (@robotsnh - #171957)
- Adjust behavior of numerical condition and trigger between and outside (@emontnemery - #172335)
- Bump frontend to 20260527.0 (@bramkragten - #172355)
- Add Tuya smart kettle select entities (@netflash - #171897)
- Update MDI icons from frontend for 2026.6.0 beta (@frenck - #172366)
- Reset MQTT valve opening/closing state at intermediate positions (@nikhil8182 - #165176)
- Fix apple_tv HomePod streaming failures when device is idle (@CSdread - #170033)
- Fix zeversolar coordinator to raise UpdateFailed on errors (@mhuiskes - #170507)
- During onboarding, ensure Supervisor is up to date during hassio setup (@mdegat01 - #171129)
- Migrate analytics integration to config entry setup (@mdegat01 - #171801)
- Bump renault-api to 0.5.11 (@tlpeter - #172333)
- Bump wiim to 1.0.4 (@Linkplay2020 - #172334)
- bump iometer version to 1.0.1 (@torben-iometer - #172338)
- Bump ZHA to 1.4.0 (@puddly - #172357)
- Reject backup uploads with unsafe inner name (@agners - #172368)
- Bump dbus-fast to 5.0.16 (@bdraco - #172378)
- Bump aioamazondevices to 13.8.1 (@chemelli74 - #172382)
- Fix OMIE sensors not updating on setup (@abmantis - #172383)
- Bump yalexs to 9.2.1 (@bdraco - #172389)
- Bump onvif-zeep-async to 4.1.1 (@bdraco - #172391)
- Fix index error in DuckDNS integration (@tr4nt0r - #172392)
- Improve MQTT protocol deprecation repair message (@jbouwh - #172404)
- Convert yamaha_musiccast sw_version to string (@frenck - #172411)
- Fix iZone integration broken by python-izone 1.2.10 API change (@frenck - #172427)
- Fix SmartThings light checking wrong component for capabilities (@frenck - #172430)
- Fix Jellyfin media source crash when entry is not loaded (@frenck - #172437)
- Fix Shelly sensor restore when not initialized (@chemelli74 - #172441)
- Fix Hue light ZeroDivisionError when mirek value is zero (@frenck - #172442)
- Discard old events for Alexa Devices (@chemelli74 - #172446)
- Fix Duco regression where entities become unavailable when LAN info fetch fails (@ronaldvdmeer - #172448)
- Fix Matter BLE proxy blocking startup (@TheJulianJES - #172456)
- Add lg_tv_rs232 to LG brand (@balloob - #172458)
- Bump frontend to 20260527.1 (@bramkragten - #172462)
- Fix Volvo lock crash when API field is missing from coordinator data (@frenck - #172465)
- Name the Broadlink RF transmitter entity (@piitaya - #172468)
- Bump samsungtvws to 3.0.5 (@chemelli74 - #172471)
- Fix Growatt setup failure on API rate limit (@frenck - #172472)
- Handle DAVError in CalDAV get_supported_components (@frenck - #172479)
- Move MQTT protocol setting to main options (@jbouwh - #172482)
- Fix Tado config flow crash on device activation polling (@frenck - #172486)
- Increase ConfigEntryNotReady retry backoff cap from 80s to 10 minutes (@frenck - #172487)
- Remove redundant definitions in Alexa Devices (@chemelli74 - #172488)
- Handle FileNotFoundError in Immich upload_file action (@mib1185 - #172490)
- Add prog operating mode to Overkiz Atlantic heater HVAC mapping (@frenck - #172491)
- Add missing Flexit BACnet transient operation modes to preset map (@frenck - #172493)
- Convert Roomba hw_version to string for device registry (@frenck - #172497)
- Reduce Wyoming satellite disconnect log to debug level (@frenck - #172499)
- Silent migrate MQTT protocol version to version 5 if the broker supports it or raise an issue (@jbouwh - #172500)
- Handle malformed response errors in Denon AVR error wrapper (@frenck - #172502)
- Handle missing notAfter field in cert_expiry certificate data (@frenck - #172503)
- Fix ephember crash when zone mode is None (@frenck - #172504)
- Fix Overkiz UnoIO cover reporting wrong movement direction (@frenck - #172506)
- Guard Shelly repairs checks for uninitialized RPC devices (@frenck - #172509)
- Raise errors instead of swallowing exceptions in Toon action handlers (@frenck - #172511)
- Refresh WLED firmware releases on manual entity update (@mik-laj - #172517)
- Use state-based icon for Hue grouped light (@frenck - #172535)
- Add missing ssdp dependency to BraviaTV manifest (@frenck - #172536)
- Fix Yoto OAuth flow with cloud credentials (@piitaya - #172544)
- Sanitize surrogate characters in MeteoAlarm alert attributes (@frenck - #172545)
- Bugfix: Gen-1 Inverter sensor for Indevolt to display “N/A” when turned off (@Xirt - #172559)
- Fix ESPHome update entity stuck on for project versions with build suffix (@bdraco - #172571)
- Bump habluetooth to 6.8.0 (@bdraco - #172577)
- Expose bluetooth address reachability diagnostics API (@bdraco - #172578)
- Explain why a Switchbot device could not be found (@bdraco - #172581)
- Update rf-protocols to 4.0.1 (@renovate - #172597)
- Show error about missing api permissions while browsing Immich media (@mib1185 - #172609)
- Improve Avea Bluetooth discovery flow (@pattyland - #172623)
- Fix MQTT device_tracker not saving state on location accuracy changes (@jbouwh - #172629)
- Schlage: use lock connected status as availability signal (@dknowles2 - #172638)
- Bump ZHA to 1.4.1 (@TheJulianJES - #172640)
- Add extra device info to FRITZ!Box Tools diagnostics (@mib1185 - #172647)
- Bump tuya-device-handlers to 0.0.22 (@epenet - #172648)
- Improve http2 task handling for Alexa Devices (@jamesonuk - #172649)
- Add missing exception translation keys in Ecovacs (@mib1185 - #172658)
- Bump pynintendoparental to 2.4.0 (@pantherale0 - #172666)
- Fix tedee entity availability (@zweckj - #172667)
- Fix ai_task camera snapshot mime type (@Shulyaka - #172682)
- Fix Yardian water hammer diagnostic sensor name (@aeon-matrix - #172698)
- Return 404 instead of 500 when media player artwork is unavailable (@frenck - #172700)
- Convert set_id to int in LG TV RS-232 config flow (@frenck - #172701)
- Skip Overkiz events for unknown device URLs (@frenck - #172712)
- Fix MQTT device_tracker logging attributes order (@jbouwh - #172732)
- Add missing
_attr_name = Nonefor Tractive device tracker (@bieniu - #172746) - Translate the name of the Tractive tracker (@bieniu - #172747)
- Bump aioamazondevices to 13.8.2 (@jamesonuk - #172748)
- Bump yoto-api to 3.1.5 (@piitaya - #172753)
- media_player platform fixes for Alexa Devices (@jamesonuk - #172611)
- Use proper user-agent to fetch feeds (@mib1185 - #172655)
- Fix get_play_status function call in frontier silicon (@wlcrs - #172705)
- Bump indevolt-api to 1.8.3 (@Xirt - #172683)
- Fix binary sensor defaults for Indevolt (@Xirt - #172714)
- Explain why an Airthings BLE device could not be found (@bdraco - #172758)
- Bump frontend to 20260527.2 (@bramkragten - #172759)
- Explain why a Yale Access Bluetooth device could not be found (@bdraco - #172761)
- Explain why an INKBIRD device could not be found (@bdraco - #172762)
- Explain why a LED BLE device could not be found (@bdraco - #172764)
- Bump habluetooth to 6.8.1 (@bdraco - #172768)
- Explain why an eQ-3 Bluetooth device could not be found (@bdraco - #172770)
- Filter stale replayed BLE advertisements in Matter BLE proxy (@Apollon77 - #172773)
- Explain why a Husqvarna Automower BLE device could not be connected to (@bdraco - #172774)
- Explain why an LD2410 BLE device could not be found (@bdraco - #172779)
- Explain why a Snooz device could not be found (@bdraco - #172780)
- Fix ProxmoxVE missing unused token data (@CoMPaTech - #172782)
- Cancel iCloud polling timer on config entry unload (@frenck - #172793)
- Add zone entered left triggers (@emontnemery - #172412)
- Add zone triggers occupancy detected/cleared (@emontnemery - #172438)
- alexa devices - media player code quality (@jamesonuk - #172650)
- Replace usages of datetime.now(UTC) with dt_util for Sonos (@PeteRager - #172737)
- prusalink: guard non-string original in config_flow workaround (@heikkih - #172375)
- Log warning on unsupported announce media formats for Sonos (@PeteRager - #172614)
- Update knx-frontend to 2026.6.1.213802 (@farmio - #172806)
- Add zone conditions in / not in zone (@emontnemery - #172810)
- Fix SwitchBot Blind Tilt KeyError on idle BLE advertisements (@frenck - #172816)
- Make the renamed trigger behavior options backwards compatible (@emontnemery - #172822)
- Don’t create switch entity for switch device type in XThings Cloud (@zhangluofeng - #172828)
- Prevent log spam when WS subscribe_condition is active (@emontnemery - #172832)
- Automation choose: Add optional note to options (@wendevlin - #172837)
- Add translations for template device trackers
in_zonesoption (@Petro31 - #172850) - Bump aioamazondevices to 14.0.0 (@jamesonuk - #172857)
- Bump pySmartThings to 4.0.0 (@joostlek - #172858)
- Bump frontend to 20260527.3 (@bramkragten - #172873)
- Regenerate mdi_icons.py for frontend 20260527.3 (@balloob - #172887)
- Catch errors when setting up condition in WS subscribe_condition (@emontnemery - #172895)
- Add zone occupancy conditions (@emontnemery - #172896)
- Bump intents to 2026.6.1 (@synesthesiam - #172842)
- Don’t log condition errors when executing WS test_condition (@emontnemery - #172897)
- Add Avea Bluetooth reachability diagnostics (@pattyland - #172898)
- Update frontend to 20260527.4 (@bramkragten - #172907)