Full changelog for Home Assistant 2026.8
These are all the changes included in the Home Assistant 2026.8 release. For a summary in a more readable format Release notes blog for this release.
All changes
- Huawei group executor job (@erwindouna - #174666)
- Remove myself from huawei_lte codeowners (@scop - #174671)
- openevse: Add missing callback test (@c00w - #174560)
- openevse: Convert config to textselector (@c00w - #174675)
- Bump version to 2026.8.0.dev0 (@frenck - #174693)
- Bump dropbox to silver quality (@bdr99 - #174706)
- Bump pySwitchbot to 2.3.0 (@davidrule1969 - #174678)
- Migrate blebox to UnitOfDensity / UnitOfRatio enums (@bkobus-bbx - #174790)
- Migrate to UnitOfRatio in the Qbus integration (@thomasddn - #174800)
- Portainer refactor to UnitOfRatio (@erwindouna - #174801)
- Add entity category to Mealie item count sensors (@joostlek - #174795)
- Homekit controller refactor UnitOf (@erwindouna - #174806)
- Migrate vicare to UnitOfDensity / UnitOfRatio enums (@lackas - #174812)
- Migrate homematicip_cloud to UnitOfDensity / UnitOfRatio enums (@lackas - #174813)
- Migrate lunatone to UnitOfRatio enums (@MoonDevLT - #174817)
- Improve the gate on check requirements aw to avoid useless runs (@edenhaus - #174599)
- Migrate entity unique_id in Steam integration (@tr4nt0r - #174701)
- Bump aioesphomeapi to 45.5.2 (@bdraco - #174826)
- Tradfri refactor UnitOfs (@erwindouna - #174834)
- Matter refactor to UnitOfs (@erwindouna - #174824)
- Tuya refactor UnitOfs (@erwindouna - #174835)
- Migrate to UnitOfRatio enum in Overkiz (@iMicknl - #174862)
- Use UnitOfDensity / UnitOfRatio enums in Airly (@bieniu - #174854)
- Bump nexia to 2.13.0 (@jrhillery - #174652)
- Use new unit enums in NAM (@bieniu - #174856)
- Use UnitOfDensity enum in GIOS (@bieniu - #174855)
- Update pytest-github-actions-annotate-failures to 0.4.1 (@renovate - #174868)
- Bump actions/checkout from 6.0.3 to 7.0.0 (@dependabot - #174875)
- Shelly refactor UnitsOf (@erwindouna - #174883)
- Update measurement units UnitOfDensity / UnitOfRatio for EcoWitt sensors (@GSzabados - #174887)
- Migrate rflink to UnitOfRatio enum (@javicalle - #174886)
- Change Airthings BLE level entities in enum device class (@joostlek - #174815)
- Migrate the airq to the new enums (UnitOfDensity / UnitOfRatio) (@Sibgatulin - #174896)
- Update measurement units UnitOfDensity / UnitOfRatio for Tomorrow.io (@GSzabados - #174899)
- Update units UnitOfDensity / UnitOfRatio for ambient_station (@GSzabados - #174900)
- Update units UnitOfDensity / UnitOfRatio for airthings_ble (@GSzabados - #174906)
- Update units UnitOfRatio enums for Prana (@prana-dev-official - #174907)
- Update units UnitOfDensity / UnitOfRatio for airnow (@GSzabados - #174905)
- Add charge/discharge remaining time to Indevolt (@Xirt - #174600)
- Add reconfigure to Steam integration (@tr4nt0r - #174696)
- Allow disabling managed log file (@adamsteen - #170374)
- Clarify and align domain/platform usage in Fritz (@chemelli74 - #174915)
- Clarify and align domain/platform usage in Alexa Devices (@chemelli74 - #174914)
- remove enphase_envoy test for to-be-deprecated pyenphase library data (@catsmanac - #174908)
- Use async coordinator in stiebel_eltron integration (@ThyMYthOS - #174850)
- ProxmoxVE add stale device removal (@erwindouna - #174932)
- ProxmoxVE add typing to auth kwargs (@erwindouna - #174930)
- Extract Modbus schemas to schemas.py (@ThyMYthOS - #174935)
- Use async config flow in stiebel_eltron integration (@ThyMYthOS - #174937)
- remove pyenphase library deprecated data fields from enphase_envoy fixtures (@catsmanac - #174928)
- MELCloud Home add current password config flow (@erwindouna - #174950)
- ProxmoxVE refactor to use text selectors (@erwindouna - #174949)
- Update pytest-github-actions-annotate-failures to 0.4.2 (@renovate - #174941)
- Filter already-configured hubs from nobo_hub config flow (@oyvindwe - #169593)
- Migrate demo to UnitOfRatio enums (@mib1185 - #174966)
- Bump Pysmlight to v0.5.0 (@tl-sl - #174947)
- Update music-assistant-client to 1.3.6 (@OzGav - #174968)
- Bump pymonoprice to 0.6.1 (@OnFreund - #174951)
- Drop nobo_hub custom select device class (@oyvindwe - #170135)
- Add Orion XS and Inverter support to Victron BLE (@rajlaud - #169834)
- Migrate airgradient to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174984)
- Migrate airzone_cloud to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174989)
- Migrate airvisual_pro to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174988)
- Migrate airvisual to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174987)
- Migrate ambient_network to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174994)
- Migrate altruist to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174993)
- Migrate arve to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174982)
- Migrate airobot to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174985)
- Migrate airthings to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174986)
- Migrate aranet to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174995)
- Migrate bosch_shc to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174996)
- Migrate broadlink to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174997)
- Migrate compit to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174998)
- Migrate deconz to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174999)
- Migrate fibaro to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175005)
- Migrate overkiz (remaining files) to UnitOfRatio enum (@mib1185 - #175041)
- Migrate zwave_js to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175040)
- Migrate google_air_quality to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175008)
- Migrate sensibo to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175024)
- Migrate tuya (remaining files) to UnitOfRatio enum (@mib1185 - #175039)
- Migrate matter (remaining files) to UnitOfRatio enum (@mib1185 - #175038)
- Migrate yolink to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175037)
- Migrate openweathermap to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175021)
- Migrate vesync to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175035)
- Migrate xiaomi_miio to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175036)
- Migrate pooldose to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175031)
- Migrate venstar to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175034)
- Migrate uhoo to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175032)
- Migrate tasmota to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175030)
- Migrate switchbot_cloud to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175028)
- Migrate switchbot to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175027)
- Migrate smartthings to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175026)
- Migrate renson to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175023)
- Migrate purpleair to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175022)
- Migrate opensensemap to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175020)
- Migrate ondilo_ico to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175019)
- Migrate awair to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175016)
- Migrate netatmo to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175017)
- Migrate mill to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175015)
- Migrate vallox to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175033)
- Migrate microbees to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175014)
- Migrate serial_pm to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175025)
- Migrate luftdaten to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175013)
- Migrate lg_thinq to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175012)
- Migrate lcn to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175011)
- Migrate freshr to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175007)
- Migrate omnilogic to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175018)
- Migrate intelliclima to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175010)
- Migrate homematic to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175009)
- Migrate foobot to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175006)
- Migrate epion to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175003)
- Migrate emoncms to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175002)
- Migrate ecobee to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175001)
- Migrate drop_connect to UnitOfDensity / UnitOfRatio enums (@mib1185 - #175000)
- Migrate alexa_devices to UnitOfDensity / UnitOfRatio enums (@mib1185 - #174992)
- Update victron_ble test snapshots (@mib1185 - #175043)
- Limit amount of ProxmoxVE entities enabled by default (@CoMPaTech - #175004)
- Add reconfiguration flow to SMLIGHT integration (@tl-sl - #174952)
- Update coverage to 7.14.2 (@renovate - #175051)
- Migrate bthome to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175068)
- Migrate xiaomi_ble to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175073)
- Migrate qingping to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175071)
- Roborock Q10 DND switch (@lboue - #174851)
- Migrate sensirion_ble to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175072)
- Migrate govee_ble to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175070)
- Migrate govee_ble to UnitOfDensity and UnitOfRatio enums (@mib1185 - #175069)
- Add router serial number to device info (@natekspencer - #175063)
- Tell bots that we like small try-clauses (@emontnemery - #174654)
- Rename “(advanced)” service name in Music Assistant (@justanotherariel - #175097)
- Rename “Advanced settings” sections in Scrape (@justanotherariel - #175098)
- Rename “Advanced migration/setup” options in ZHA (@justanotherariel - #175094)
- Rename “Advanced settings” title in Anthropic (@justanotherariel - #175095)
- Rename “Advanced settings” title in OpenAI Conversation (@justanotherariel - #175096)
- Portainer add utility.py for duplicate code (@erwindouna - #175082)
- Update vsure to 2.8.0 (@TrojanHorsePower - #175060)
- Rename “advanced” step to “additional” in Anthropic (@justanotherariel - #175101)
- Rename “advanced” step to “additional” in OpenAI Conversation (@justanotherariel - #175104)
- Rename “advanced_options” section to “additional_options” in DNS IP (@justanotherariel - #175105)
- Rename “advanced_settings” section to “additional_settings” in History Stats (@justanotherariel - #175109)
- Update ruff to v0.15.18 (@renovate - #175087)
- Fix invalid use of Exclusive marker in Kira name schema (@frenck - #175115)
- Rename “advanced_settings” section to “additional_settings” in Telegram bot (@justanotherariel - #175107)
- Rename “advanced_settings” section to “additional_settings” in Autoskope (@justanotherariel - #175106)
- Add fan speed sensor to Freebox integration (@DocEmmetBrown - #175081)
- Add Bluetooth proxy support for SMLIGHT (@tl-sl - #174710)
- Add Candle Warmer Lamp support to switchbot (@Onero-testdev - #173585)
- Fix invalid marker usage in LIFX service schemas (@frenck - #175117)
- Remove unused translations from stiebel_eltron integration (@ThyMYthOS - #175112)
- Cleanup gpsd strings (@jrieger - #175125)
- Add bump-dependency development skill and PyPI resolver (@allenporter - #172221)
- Refactor MQTT config entry (@jbouwh - #173929)
- Add walk_checker helper to deduplicate pylint rule tests (@Markus98 - #175113)
- Bump librouteros to 4.1.1 (@chemelli74 - #175116)
- Update coverage to 7.14.3 (@renovate - #175155)
- Remove no longer needed sleep from HomeAssistant.async_start (@emontnemery - #175152)
- Use UnitOfDensity/UnitOfRatio in isy994 (@epenet - #175173)
- Use UnitOfDensity/UnitOfRatio in kaiterra (@epenet - #175174)
- Add diagnostics for CentriConnect (@gresrun - #175046)
- Make did_not_trigger of async_initialize_triggers kwarg only (@emontnemery - #175178)
- Use UnitOfDensity/UnitOfRatio in screenlogic (@epenet - #175175)
- add smlight to bluetooth_adapters so its loaded before integrations (@tl-sl - #175176)
- Use UnitOfDensity/UnitOfRatio in entity components (@epenet - #175169)
- Add quality scale (bronze) to ccm15 (@ocalvo - #173801)
- Bump pysmlight to 0.5.2 (@tl-sl - #175179)
- Add SwitchBot Standing Fan select platform (@Onero-testdev - #173580)
- Set override decorator in switchbot (@epenet - #175190)
- Use UnitOfDensity/UnitOfRatio in tests (@epenet - #175187)
- Rewrite homeassistant started trigger (@emontnemery - #175160)
- Bump actions/cache/restore from 5.0.5 to 6.1.0 (@dependabot - #175172)
- Bump actions/cache/save from 5.0.5 to 6.1.0 (@dependabot - #175168)
- Add Hypontech plant status binary sensor (@jcisio - #174404)
- Add calendar platform to Sonarr (@seanpasino - #174506)
- Bump SMLIGHT to platinum quality (@tl-sl - #175182)
- Add entity-unique-id-redundant-platform pylint check (@Markus98 - #174442)
- Deprecate CONCENTRATION_* constants (@epenet - #175189)
- Update mutagen to 1.48.0 (@renovate - #175158)
- Bump actions/cache from 5.0.5 to 6.1.0 (@dependabot - #175171)
- Refactor coordinator in Steam integration (@tr4nt0r - #174661)
- Add mypy plugin: flag
==/!=between same-enum operands (@justanotherariel - #171551) - Mark Teltonika IQS async-dependency done (@karlbeecken - #175199)
- Add reply and quote posts support to Mastodon (@tr4nt0r - #175144)
- Remove unused Silicon Labs Flasher add-on manager (@agners - #175210)
- Fix HomeKit thermostat sending lowercased fan_mode to climate (@gunjanjaswal - #175180)
- Update infrared-protocols to 6.3.1 (@renovate - #175225)
- Improve typing for Mikrotik (@chemelli74 - #175213)
- openevse: Add reconfigure flow (@c00w - #173949)
- Update ruff to v0.15.19 (@renovate - #175232)
- Use a dict to distinguish property/attribute in media_player (@epenet - #175193)
- Home Connect refactor OAuth exceptions (@erwindouna - #175236)
- Rename “advanced” section to “additional” in Scrape (@justanotherariel - #175111)
- Rename “advanced_options” section to “additional_options” in SQL (@justanotherariel - #175110)
- Use Oauth2 exceptions in miele (@astrandb - #175256)
- Bump actions/setup-python from 6.2.0 to 6.3.0 (@dependabot - #175170)
- Improve todo integration serialization performance (@abmantis - #175220)
- Aladdin Connect refactor OAuth exceptions (@erwindouna - #175269)
- Move service registration to async_setup in rainmachine (@some-random-climber - #174647)
- Fix flaky anthropic test (@epenet - #175279)
- Twitch refactor OAuth exceptions (@erwindouna - #175277)
- Tibber refactor OAuth exceptions (@erwindouna - #175276)
- Google refactor OAuth exceptions (@erwindouna - #175274)
- Husqvarna Automower refactor OAuth exceptions (@erwindouna - #175273)
- Google Tasks refactor OAuth exceptions (@erwindouna - #175272)
- Google Photos refactor OAuth exceptions (@erwindouna - #175271)
- Electric Kiwi refactor OAuth exceptions (@erwindouna - #175270)
- YouTube refactor OAuth exceptions (@erwindouna - #175278)
- Use add_suggested_values_to_schema in dnsip config flow (@gjohansson-ST - #175268)
- Move service registration to async_setup in aftership (@some-random-climber - #174126)
- Move service registration to async_setup in flume (@some-random-climber - #174622)
- Move service registration to async_setup in octoprint (@some-random-climber - #174635)
- Move service registration to async_setup in waze (@some-random-climber - #175261)
- Use Attribute enum in alarm_control_panel (@epenet - #175242)
- Update only the new subscriber in Todo integration (@abmantis - #175286)
- Use Attribute enum in automation (@epenet - #175251)
- Use Attribute enum in camera (@epenet - #175253)
- Resync HomeKit state when a dispatched service raises (@mattias-arrelid - #173101)
- Set has_entity_name on Overkiz scene entity (@iMicknl - #175320)
- Bump pyHomee to v1.4.1 (@Taraman17 - #175298)
- Use Attribute enum in fan (@epenet - #175284)
- Migrate http config to ui (@edenhaus - #171177)
- Log switcher_kis device ip change (@nitaybz - #175289)
- Bump py_ccm15 to 1.0.0 (@ocalvo - #175285)
- Add soil conductivity sensor support to ecowitt (@GSzabados - #164620)
- Switch CI to astral-managed Python via setup-uv (@bdraco - #171760)
- Rename component to integration in Growatt (@smarthome-10 - #175323)
- Rename component to integration in AWS (@smarthome-10 - #175322)
- Increase timeout for flaky sensor statistics recorder test (@justanotherariel - #175260)
- Bump env-canada to 0.16.1 (@michaeldavie - #175316)
- Bump WattWächter Plus to silver quality scale (@smartcircuits - #175340)
- Add missing data_description for reconfigure step in blebox config flow (@bkobus-bbx - #175354)
- Use Attribute enum in light (@epenet - #175362)
- Use Attribute enum in image (@epenet - #175360)
- Adding tests to syncthing (@Spardz - #170892)
- Rename component to integration in Squeezebox (@smarthome-10 - #175365)
- Rename component to integration in Plex (@smarthome-10 - #175364)
- Remove noisy debug logging in Overkiz (@iMicknl - #175314)
- Use Attribute enum in number (@epenet - #175378)
- Add reboot notice to update entity for HA OS (@mdegat01 - #175140)
- Fix deleted UniFi Protect public devices leaving entities available (@RaHehl - #175351)
- Allow roomba to update ip address for registered devices via dhcp (@natekspencer - #175327)
- Use Attribute enum in remote (@epenet - #175379)
- Do not mark switcher_kis entity unavailable on a failed command (@nitaybz - #175288)
- Add
radondevice class to number and sensor (@abmantis - #175135) - Use a major version bump for the History Stats “additional_settings” rename (@justanotherariel - #175137)
- Bump weatherflow4py to 1.5.8 (@jeeftor - #175385)
- Rename Modbus integration to “Manual Modbus” (@balloob - #175389)
- Prefix claude skills name to avoid clashing (@abmantis - #175392)
- Add room/segment cleaning support for Roborock Q10 (B01/ss07) (@lboue - #175075)
- Pin recently compiled template code objects in a bounded LRU (@frenck - #175399)
- Bump teslemetry-stream to 0.9.1 (@Bre77 - #175423)
- Bump wyoming to 1.10.0 (@synesthesiam - #175406)
- Cleanup auth error handling which is now handled by library (@karlbeecken - #175197)
- Bump actions/attest from 4.1.0 to 4.1.1 (@dependabot - #175441)
- Update mutagen to 1.48.1 (@renovate - #175427)
- Update ruff to v0.15.20 (@renovate - #175428)
- Use Attribute enum in event (@epenet - #175283)
- Use Attribute enum in select (@epenet - #175439)
- Remove unnecessary HTTP configuration from hassio component tests (@edenhaus - #175393)
- Use Attribute enum in update (@epenet - #175443)
- Deprecate Netatmo webhook services (@cgtobi - #175372)
- Add RGBIC Neon Rope Light support to switchbot (@Onero-testdev - #173586)
- Adds the switch platform for the Imou integration (@Imou-OpenPlatform - #174880)
- Add SwitchBot Standing Fan fan platform (@Onero-testdev - #173578)
- Bump pysignalclirestapi to 0.3.25 (@frenck - #173920)
- Improve exceptions handling in Mikrotik (@chemelli74 - #175448)
- Add LLM integration (@balloob - #174253)
- Use Attribute enum in water_heater (@epenet - #175447)
- Use Attribute enum in weather (@epenet - #175453)
- Use Attribute enum in valve (@epenet - #175446)
- Use Attribute enum in vacuum (@epenet - #175445)
- Use Attribute enum in sensor (@epenet - #175444)
- Use Attribute enum in geo_location (@epenet - #175357)
- Use Attribute enum in climate (@epenet - #175254)
- Bump evohome-async to v2.0.1 (@zxdavb - #174335)
- Bump pytrydan to 1.0.3 (@balloob - #175486)
- Add V2C charge mode select (@dgomes - #169777)
- Bump tesla-fleet-api to 1.5.2 (@Bre77 - #175430)
- Implement auto-revert for pending HTTP config after a delay and update WebSocket API to include revert deadline (@edenhaus - #174428)
- Use Attribute enum in cover (@epenet - #175255)
- Victron_gx- bump 2026.6.6 (@tomer-w - #174491)
- Move Mill services to async_setup (@erwindouna - #175481)
- Move service registration to async_setup in Streamlabs Water (@some-random-climber - #175507)
- Remove not needed major version block for samsungtv migration (@gjohansson-ST - #175496)
- Infrared fix naming by device class for derived entities (@tl-sl - #175434)
- Classify scene, script and group entities in device and config entry search (@frenck - #175461)
- Resolve person member entities in search (@frenck - #175462)
- Use Radon device class in Airthings BLE (@abmantis - #175388)
- Resolve up labeled areas, devices and entities in search (@frenck - #175464)
- Add seat coolers to Teslemetry (@Bre77 - #175422)
- Remove not needed major version guard for knx config entry migration (@gjohansson-ST - #175498)
- Remove not needed major version guard for switchbot config entry migration (@gjohansson-ST - #175497)
- Use evohome constants for evohome attrs (@zxdavb - #175494)
- Move RFXtrx services to async_setup (@erwindouna - #175474)
- Fix BleBox action tests to assert library calls instead of faking state (@bkobus-bbx - #175460)
- Add reconfigure flow to NextCloud (@gjohansson-ST - #175457)
- Add temperature and humidity sensors to Cielo Home integration (@btajuddin - #173043)
- Handle late MCP OAuth authentication failures (@allenporter - #175381)
- Add light LLM tools platform (@balloob - #175519)
- Add vacuum LLM tools platform (@balloob - #175525)
- Homee: fix unavailable entities - 2nd FollowUp (@Taraman17 - #175382)
- Add intent_script LLM tools platform (@balloob - #175518)
- Add climate LLM tools platform (@balloob - #175520)
- Add fan LLM tools platform (@balloob - #175521)
- Add diagnostics to WattWächter Plus (@smartcircuits - #175384)
- Rename component to integration in IQVIA (@smarthome-10 - #175547)
- Rename component to integration in HaveIBeenPwned (@smarthome-10 - #175546)
- Rename component to integration in Aurora (@smarthome-10 - #175545)
- Rename component to integration in HomematicIP Cloud (@smarthome-10 - #175543)
- Rename component to integration in GPSLogger (@smarthome-10 - #175542)
- Add GetDateTime LLM tool to the llm integration (@balloob - #175515)
- Rename component to integration in GitLab-CI (@smarthome-10 - #175541)
- Rename component to integration in Foobot (@smarthome-10 - #175539)
- Rename component to integration in Flock (@smarthome-10 - #175537)
- Rename component to integration in FinTS (@smarthome-10 - #175536)
- Add lawn_mower LLM tools platform (@balloob - #175523)
- Add todo LLM tools platform (@balloob - #175513)
- Add media_player LLM tools platform (@balloob - #175524)
- Fix swallowed exceptions in airobot action handlers (@mettolen - #172633)
- Fix todo LLM tools test broken by GetDateTime tool (@balloob - #175554)
- Make LLMContext.assistant a required non-optional field (@balloob - #175553)
- Use cached state JSON in POST /api/states response (@balloob - #175559)
- Add search functionality to media source (@zweckj - #175485)
- Add calendar LLM tools platform (@balloob - #175512)
- Skip compressing HTTP JSON responses below 1 KiB (@balloob - #175560)
- Pass API ID to LLM tools platforms and let them opt out (@balloob - #175572)
- Add llama_cpp conversation integration (@allenporter - #175580)
- Expose all LLM APIs on the MCP server keyed by API ID (@balloob - #175570)
- Update syrupy to 5.3.4 (@renovate - #175575)
- Support KNX button entity configuration from UI (@farmio - #174426)
- Bump aioimmich to 0.16.0 (@mib1185 - #175601)
- Capitalize “id” in media source (@zweckj - #175593)
- Fix HomeKit select accessories not marking the active option as on (@mattias-arrelid - #175603)
- Remove Shelly button migrations (@thecode - #175617)
- Fix remote calendar state after refreshing events (@allenporter - #175623)
- bump pyHomee to v1.4.2 (@Taraman17 - #175591)
- Proxmox clean up import code (@erwindouna - #175557)
- Bump py_ccm15 to 1.1.1 (@ocalvo - #175203)
- Move Google Assistant services to async_setup (@erwindouna - #175483)
- Trim cached websocket event payload once per event instead of per subscriber (@balloob - #175569)
- Check supervisor Unix socket once per request, cheapest condition first (@balloob - #175568)
- Add humidifier LLM tools platform (@balloob - #175522)
- Add script LLM tools platform (@balloob - #175514)
- Add homeassistant LLM tools platform for GetLiveContext (@balloob - #175516)
- Add intent LLM tools platform (@balloob - #175517)
- Bump py_ccm15 to 1.1.2 (@ocalvo - #175632)
- Bump denon-rs232 to 4.2.1 (@balloob - #175636)
- Add Modbus Connection integration (@balloob - #175407)
- Add StiebelEltronEntity base class for stiebel_eltron (@ThyMYthOS - #175114)
- Use covariant type for SearchMedia result argument (@mib1185 - #175678)
- Bump aioimmich to 0.16.1 (@mib1185 - #175676)
- Lazy media source platforms (@balloob - #174375)
- Remove deprecated classes from Service (@gjohansson-ST - #175611)
- Use serial port selector in Monoprice config flow (@OnFreund - #175707)
- Bump aioamazondevices to 14.2.0 (@chemelli74 - #175662)
- Bump pyrainbird to 6.5.0 (@allenporter - #175723)
- Fix teslemetry manifest loggers to actual module names (@Bre77 - #175742)
- Add Roborock Q10 switch entities (@tubededentifrice - #175731)
- Add restart button to Alexa Devices (@chemelli74 - #175607)
- Use Attribute enum in input_datetime (@epenet - #175737)
- Pump pysaunum to 0.7.0 (@mettolen - #175680)
- Add translation support for connection errors in Saunum integration (@mettolen - #175675)
- Remove battery prop from template vacuum (@gjohansson-ST - #175681)
- Mark IQS device rules done/exempt (@karlbeecken - #175200)
- Remove deprecated battery level prop from Neato vacuum (@gjohansson-ST - #175684)
- Remove previously deprecated battery props from Romy (@gjohansson-ST - #175686)
- Bump j178/prek-action from 2.0.4 to 2.0.5 (@dependabot - #175736)
- Migrate person entity attributes to StrEnum (@epenet - #175752)
- Migrate schedule entity attributes to StrEnum (@epenet - #175753)
- Remove Ezviz last alarm pic from sensor, data longer than limit (@iKaew - #169039)
- Correct stale repair-issues exempt status in teslemetry quality scale (@Bre77 - #175743)
- Remove leftover _attr_battery_level in mqtt (@gjohansson-ST - #175683)
- Move Sure Petcare services to async_setup (@erwindouna - #175475)
- Fix teslemetry climate reporting off instead of unknown when coordinator data is missing (@Bre77 - #175747)
- Remove previously deprecated battery props from Sharkiq (@gjohansson-ST - #175691)
- Remove previously deprecated battery prop from LG thinq (@gjohansson-ST - #175685)
- Move Xiaomi Miio services to async_setup (@erwindouna - #175484)
- Add WiiM multi-room grouping support and metadata synchronization (@Linkplay2020 - #172537)
- Add command aliases to Vizio remote platform (@raman325 - #166839)
- Get stiebel_eltron integration to bronze level (@ThyMYthOS - #174953)
- Use Attribute enum in humidifier (@epenet - #175358)
- Enable SSL by default for Splunk (@Bre77 - #175729)
- Fix swallowed exceptions in deconz actions (@mattreim - #175646)
- Require all rules to be listed in quality scale files (@Markus98 - #175777)
- Migrate timer entity attributes to StrEnum (@epenet - #175754)
- Migrate counter entity attributes to StrEnum (@epenet - #175738)
- Remove previously deprecated battery props from tplink (@gjohansson-ST - #175764)
- Remove previously deprecated battery props from xiaomi_miio (@gjohansson-ST - #175687)
- Unload platforms in stiebel_eltron before closing connection in async_unload_entry (@ThyMYthOS - #175776)
- Add infrared receiver for SMLIGHT Ultima devices (@tl-sl - #175188)
- Portainer refactor services patterns (@erwindouna - #175549)
- Add myself as codeowner of Mikrotik (@chemelli74 - #175530)
- Bump total_connect_client to 2026.7 (@austinmroczek - #175807)
- Proximity: Rename incorrect uses of ‘device’ to ‘tracker’. (@kbuck1 - #175649)
- Reproduce only value in counter reproduce_state (@epenet - #175780)
- Bump tesla-fleet-api to 1.5.4 (@Bre77 - #175827)
- Bump python-qube-heatpump to 1.12.0 (@MattieGit - #175834)
- Use EntityStateAttribute enum in assist_pipeline (@epenet - #175839)
- Merge Port 8123 feature branch to dev (@edenhaus - #174270)
- Use core radon device class for Airthings cloud radon (@nate-in-hutch - #166087)
- Use EntityStateAttribute enum in helpers (@epenet - #175836)
- Use EventEntityStateAttribute enum in doorbell (@epenet - #175849)
- Update infrared-protocols to 6.5.0 (@renovate - #175825)
- Use state attribute enums in legacy device_tracker (@epenet - #175854)
- Use EntityStateAttribute enum in compensation (@epenet - #175845)
- Add copilot instruction to check the PR template (@abmantis - #175767)
- Drop infrared translation keys from SMLight (@tl-sl - #175821)
- Add options flow for configuring SMLIGHT BLE scanner (@tl-sl - #175826)
- Switchbot Cloud: Enable Webhook for AI Art Frame (@XiaoLing-git - #175823)
- Use state attribute enums in derivative (@epenet - #175848)
- Bump victron-mqtt to 2026.7.0 (@tomer-w - #175786)
- Bump aioaquarite to 0.6.1 (@fdebrus - #175857)
- Use state attribute enums in Dynalite (@epenet - #175850)
- Use CounterEntityStateAttribute enum in counter triggers (@epenet - #175853)
- Use EntityStateAttribute enum in configurator (@epenet - #175847)
- Use attribution property in buienradar (@epenet - #175844)
- Use EventEntityStateAttribute enum in Bring (@epenet - #175843)
- Use attribution property in Blink alarm control panel (@epenet - #175842)
- Use state attribute enums in August (@epenet - #175840)
- Use EntityStateAttribute enum in analytics (@epenet - #175838)
- Add cloud page onbording prefs (@klejejs - #175762)
- Fix unhandled KeyError on Tesla Fleet homelink button (@Bre77 - #175730)
- Improve time handling in Nord Pool (@gjohansson-ST - #175771)
- Fix lexicographic firmware version comparison in teslemetry (@Bre77 - #175745)
- Add get_prices_for_date service action to OMIE (@abmantis - #175820)
- Add dynamic device support to Vistapool (@fdebrus - #172912)
- Migrate legacy data stores in Netatmo (@cgtobi - #175620)
- Add Doorbell device type to discovery schemas in Matter event entities (@lboue - #175802)
- data_grand_lyon: add TCL parks and rides (@Crocmagnon - #174289)
- Make copilot PR template check instruction stricter (@abmantis - #175864)
- Add NeoPool integration (@svasek - #173779)
- Update Venstar Colortouch to increase padding in firmware display. (@hplato - #175774)
- Fix stiebel_eltron climate action exceptions to comply with action-exceptions rule (@ThyMYthOS - #175792)
- Add github PR comments skill and use it in pr reviewer skill (@abmantis - #175790)
- Use state attribute enums in energy (@epenet - #175869)
- Add Google Health integration (@allenporter - #175417)
- Use state attribute enums in filter (@epenet - #175872)
- Add pylint rule enforcing usb dependency for SerialPortSelector (@balloob - #175876)
- Add reconfiguration support for stiebel_eltron integration (@ThyMYthOS - #175886)
- Fix reversed args in esphome assist_in_progress cleanup (@bdraco - #175885)
- Bump
ha-iotawattpyfrom 0.1.2 to 0.2.1 (@agners - #175897) - Change toggle service icon from play-pause to power (@mvdwetering - #175901)
- Move DEFAULT_RADIUS to const.py to drop zone inline imports in core_config (@balloob - #175896)
- Add diagnostics support for stiebel_eltron integration (@ThyMYthOS - #175905)
- Add Roborock Q10 map image entity (@tubededentifrice - #173883)
- Add Roborock Q10 volume number entity (@tubededentifrice - #175732)
- Bump tesla-wall-connector to 1.2.0 (@sarabveer - #175912)
- Update uv to 0.11.26 (@renovate - #175919)
- Migrate input_boolean entity attributes to StrEnum (@epenet - #175739)
- Update infrared-protocols to 6.6.0 (@renovate - #175927)
- Use HumidifierEntityStateAttribute enum in generic_hygrostat (@epenet - #175873)
- Bump docker/build-push-action from 7.2.0 to 7.3.0 (@dependabot - #175931)
- Use ClimateEntityStateAttribute enum in generic_thermostat (@epenet - #175874)
- Bump pylutron to 0.4.2 (@cdheiser - #175930)
- MELCloud Home add e-mail to reauth form (@erwindouna - #175899)
- Add DHCP discovery to stiebel_eltron integration (@ThyMYthOS - #175909)
- Share HomeKit climate fan, swing, and temperature helpers (@bdraco - #175377)
- Fix ESPHome UTF-8 unique id collisions (@bdraco - #174814)
- Stop UniFi from piling up thousands of stale client devices (@frenck - #175856)
- Extract entities from time triggers and time conditions (@frenck - #175503)
- Extract entities and devices from event action data (@frenck - #175491)
- Include referenced labels when searching automations and scripts (@frenck - #175459)
- Include config entry groups in groups_with_entity (@frenck - #175451)
- Add integration item type support to search (@frenck - #175450)
- Implement OAuth2 re-authentication flow for Google Health (@allenporter - #175893)
- Bump AIOSomecomofort to 0.0.37 (@mkmer - #175891)
- Include repeat actions in script reference extraction (@frenck - #175420)
- Fast-path all template state wrappers in sandbox attribute check (@frenck - #175397)
- Add numeric fast path for template result parsing (@frenck - #175402)
- Downgrade per-step script execution log messages to debug level (@frenck - #175410)
- Use EntityStateAttribute enum in homeassistant (@epenet - #175932)
- Use UpdateEntityStateAttribute enum in IronOS (@epenet - #175936)
- Use LightEntityStateAttribute enum in LimitlessLED (@epenet - #175938)
- Use EntityStateAttribute enum in min_max (@epenet - #175941)
- Use EntityStateAttribute enum in mold_indicator (@epenet - #175942)
- Use EntityStateAttribute enum in mobile_app (@epenet - #175944)
- Use LightEntityStateAttribute enum in RFXtrx (@epenet - #175955)
- Use LightEntityStateAttribute enum in Pilight (@epenet - #175953)
- Use FanEntityStateAttribute enum in Snooz (@epenet - #175960)
- Use EntityStateAttribute enum in InfluxDB (@epenet - #175935)
- Use EntityStateAttribute enum in integration (@epenet - #175933)
- Use CoverEntityStateAttribute enum in SwitchBot (@epenet - #175961)
- Use FanEntityStateAttribute enum in Novy Cooker Hood (@epenet - #175948)
- Expose Attribute enum in device_tracker and text (@epenet - #175502)
- Update mypy to 2.2.0 (@cdce8p - #175924)
- Migrate zone entity attributes to StrEnum (@epenet - #175755)
- Use UpdateEntityStateAttribute enum in Matter (@epenet - #175945)
- Use state attribute enums in Modbus (@epenet - #175946)
- Use ZoneEntityStateAttribute enum in Open-Meteo (@epenet - #175978)
- Rename component to integration in Etherscan (@smarthome-10 - #175535)
- Remove previously deprecated battery props from SwitchBot Cloud (@gjohansson-ST - #175688)
- Add assist_satellite LLM tools platform (@balloob - #175655)
- Replace MonarchMoney Integration Dependency to MonarchMoneyCommunity (@bradleyseanf - #175721)
- MELCloud add text selectors (@erwindouna - #175131)
- Add Luci openwrt scanner config flow (@kristbaum - #167308)
- Fix Teslemetry steering-wheel-heat select IndexError on out-of-range level (@Bre77 - #175815)
- Rename netatmo data_handler to coordinator (@cgtobi - #175868)
- Use state attribute enums in Tesla Fleet (@epenet - #175969)
- Use state attribute enums in temperature (@epenet - #175967)
- Use ClimateEntityStateAttribute enum in SwitchBot Cloud (@epenet - #175962)
- Use ClimateEntityStateAttribute enum in ScreenLogic (@epenet - #175959)
- Use EntityStateAttribute enum in statistics (@epenet - #175957)
- Use ScheduleEntityStateAttribute enum in schedule triggers (@epenet - #175958)
- Use EntityStateAttribute enum in Space API (@epenet - #175956)
- Use LightEntityStateAttribute enum in RFLink (@epenet - #175954)
- Use state attribute enums in Prometheus (@epenet - #175952)
- Show proper error message if Google Health API is disabled (@joostlek - #175994)
- Use LockEntityStateAttribute enum in Yale (@epenet - #175990)
- Fix Teslemetry streaming update progress tracking and state restore (@Bre77 - #175749)
- Use EntityStateAttribute enum in Tomorrow.io (@epenet - #175974)
- Refactor bsblan schedule service helpers (@liudger - #172340)
- MELCloud Home add energy consumption (@erwindouna - #173948)
- Refactor SupervisorJobs into a DataUpdateCoordinator (@mdegat01 - #174237)
- Use UpdateEntityStateAttribute enum in Shelly (@epenet - #175995)
- Use TimerEntityStateAttribute enum in timer (@epenet - #175971)
- Use ZoneEntityStateAttribute enum in Anthropic (@epenet - #175975)
- Use UpdateEntityStateAttribute enum in Z-Wave JS (@epenet - #175991)
- Move StarLine services to async_setup (@erwindouna - #175472)
- Use EntityStateAttribute enum in LG webOS Smart TV (@epenet - #175988)
- Add override decorator to last_reset in melcloud_home (@epenet - #176009)
- Upnp rollover sensors (@StevenLooman - #168573)
- Bump modbus-connection to 3.4.1 (@balloob - #176014)
- Use LightEntityStateAttribute enum in ZHA (@epenet - #175993)
- Bump TP-Link Omada client to 1.5.9 (@rubempoli - #175881)
- Add update platform to Portainer (@erwindouna - #163685)
- Add stale device support to Vistapool (@fdebrus - #175866)
- Add service to perform a combined move and tilt of a WMS cover (@mback2k - #174570)
- Use AlarmControlPanelEntityStateAttribute enum in ELK-M1 (@epenet - #175871)
- Use state attribute enums in emulated_hue (@epenet - #175870)
- Sure Pet Care add service translations (@erwindouna - #175769)
- Move Genius Hub services to async_setup (@erwindouna - #175476)
- Deprecate firing events to event bus in HTML5 integration (@tr4nt0r - #168725)
- Migrate input_select entity attributes to StrEnum (@epenet - #175757)
- Add new ‘auto’ fan mode to LG ThinQ’s climate. (@LG-ThinQ-Integration - #174580)
- Clean up Evohome’s storage tests (@zxdavb - #175660)
- Improve in code comments for file_upload (@iluvdata - #169768)
- Fix core config schema “elevation” validation (@TCWORLD - #175692)
- Fix broadlink not updating state (@monosoul - #169942)
- Simplify DSMR config flow to a single serial port selector (@balloob - #173638)
- Default play media username to the calling user in Music Assistant (@arturpragacz - #175257)
- Core integrations not explicitly setting config entry parameter for coordinator now raises (@gjohansson-ST - #175608)
- Add navigation destination text entity to Tessie integration (@Mattheinrichs - #169155)
- Add window and tilt binary sensors for Overkiz ContactSensor devices (@iMicknl - #174409)
- Add cover platform to Liebherr (@mettolen - #175921)
- Remove deprecated props from entity platform (@gjohansson-ST - #175606)
- Dynamically follow location/DHW renames in evohome reset buttons (@zxdavb - #175616)
- Add configuration URL to MELCloud Home (@erwindouna - #176028)
- Add wildcard pattern upload to onedrive upload (@zweckj - #174203)
- Migrate AquaLogic integration to use ConfigFlow (@j-mutter - #173448)
- Fix bosch_alarm base entity calls (@gjohansson-ST - #175992)
- Move the HomeKit thermostat linked fan service into the climate base (@bdraco - #176042)
- Add translation keys for Liebherr API error handling (@mettolen - #176047)
- MELCloud Home add reconfigure flow (@erwindouna - #176015)
- MELCloud add test coverage for HVAC modes (@erwindouna - #176036)
- Use config entry noise PSK for ESPHome Z-Wave JS discovery flow (@balloob - #176057)
- Support response in Mastodon post action (@tr4nt0r - #175126)
- Use ZoneEntityStateAttribute enum in device_tracker (@epenet - #175976)
- Use ZoneEntityStateAttribute enum in OpenAI Conversation (@epenet - #175980)
- Use entity state attribute enums in universal (@epenet - #175987)
- Add binary sensor platform to Fronius with backup mode (@farmio - #176056)
- Add additional Subaru sensors and value_fn description support (@jpettitt - #174054)
- Migrate UniFi Protect sense sensors to the public API and derive entities from the sensor capability map (@RaHehl - #175592)
- Remove dead assignment in SamsungTVWSBridge._async_get_remote_under_lock (@eduardoj - #176045)
- Remove user-configurable polling interval from ScreenLogic integration (@Pinball3D - #175576)
- Add number entities for velux opening device limitations (@wollew - #174388)
- Support Z-Wave locks that require coupled users and credentials (@AlCalzone - #172740)
- Fix trusted proxies type when HTTP config is loaded from storage (@agners - #176068)
- Update infrared-protocols to 6.6.1 (@renovate - #176052)
- Convert tracing context managers to classes to cut per-step overhead (@frenck - #173687)
- Make Elgato key light snappier (@joostlek - #176071)
- Bump pyimouapi to 1.3.0 (@Imou-OpenPlatform - #176070)
- Skip whitespace-only content when converting Anthropic chat log (@slettmayer - #175733)
- Move Profiler services to async_setup (@erwindouna - #175478)
- Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 (@dependabot - #176064)
- Portainer refactor setup with lightweigth API call (@erwindouna - #173036)
- Bump dorny/paths-filter from 4.0.1 to 4.0.2 (@dependabot - #176061)
- Move Shopping List services to async_setup (@erwindouna - #175477)
- Move Rachio services to async_setup (@erwindouna - #175479)
- Use last_changed_timestamp directly in history_stats (@frenck - #175528)
- Have the Assist API get its tools and prompt from the llm integration (@balloob - #175659)
- Fix HmIP-FLC door opener button to work for non-admin clients (@lackas - #171060)
- Move ecobee services to async_setup (@erwindouna - #175480)
- MELCloud Home add missing test coverage (@erwindouna - #176029)
- Switchbot Cloud: Enable Webhook for Smart Lock (@XiaoLing-git - #175925)
- MELCloud Home add number platform (@erwindouna - #174552)
- Fix garbled Z-Wave discovery card titles (@balloob - #176055)
- Fix inverted My position number for Overkiz covers (@iMicknl - #174414)
- Add radar loop duration and frame rate options to Environment Canada (@michaeldavie - #175325)
- Use Attribute enum in media_player (@epenet - #175375)
- Bump aiosomecomfort to 0.0.38 (@mkmer - #176081)
- Key UniFi Protect public event subscriptions by device id (@RaHehl - #175356)
- Add latest Orbi Wi-Fi 7 routers to V2 models (@natekspencer - #175062)
- Migrate UniFi Protect HDR mode select to the public API (@RaHehl - #174965)
- Add velbus-handler to velbus integration loggers (@StefCoene - #174904)
- Move formatting of aqvify API arguments to lib (@astrandb - #174522)
- Enable oscillation for VeSync pedestal fans (LPF-R432S) (@matthw-labs - #175300)
- Update Yardian switch to use stop_zone (@aeon-matrix - #174558)
- Reset API on integration reloads for Sonos (@PeteRager - #172350)
- MELCloud Home add min and max temperature (@erwindouna - #174838)
- Improve Tesla Wall Connector device info (@sarabveer - #176013)
- Map ViCare cooling operating mode to HVACMode.COOL (@lackas - #174490)
- Track nobo_hub connectivity (@oyvindwe - #170726)
- Add restore to fan template entities (@Petro31 - #175292)
- Bump docker/login-action from 4.2.0 to 4.3.0 (@dependabot - #176062)
- Bump github/codeql-action/init from 4.36.2 to 4.36.3 (@dependabot - #176060)
- Bump github/codeql-action/analyze from 4.36.2 to 4.36.3 (@dependabot - #176063)
- Bump docker/metadata-action from 6.1.0 to 6.2.0 (@dependabot - #176059)
- (Re) add missing WeatherFlow UDP sensors (@inventor7777 - #171856)
- Sanitize add-on name in Supervisor backup filenames (@agners - #175267)
- Add restore to device_tracker template entities (@Petro31 - #175262)
- Add restore to cover template entities (@Petro31 - #175216)
- Namespace llm helper singleton key to avoid domain collision (@balloob - #176101)
- Ensure Netatmo unique config entry (@cgtobi - #176079)
- Remove orphan hass.data access in Tankerkoenig (@mib1185 - #176112)
- Drop redundant MotionDetectorPushButton dispatch in HmIP Cloud sensor (@lackas - #173510)
- Migrate friend accounts to subentries in Steam integration (@tr4nt0r - #175048)
- Add swing mode select entities for gree integration (@greengreenblue - #169169)
- Add Kiosker Reauthentication (@Claeysson - #174440)
- Fix flaky remote_calendar coordinator refresh test (@balloob - #176078)
- Fix pause before Assist response on ESPHome Assist satelites (@matt123p - #173712)
- Add latitude/longitude to base EntityStateAttribute enum (@epenet - #176119)
- Remove unused hass.data[DOMAIN] from discord (@David-Wu1119 - #176118)
- Remove unused hass.data[DOMAIN] from lg_soundbar (@David-Wu1119 - #176117)
- Deprecate async_render_no_api_prompt (@balloob - #176111)
- Migrate InputText entity to inherit TextEntity (@epenet - #175770)
- Use state attribute enums in Template (@epenet - #175968)
- Remove unused states_entity_filter from recorder Filters (@balloob - #176116)
- Use entity state attribute enums in proximity (@epenet - #175984)
- Use EntityStateAttribute enum in iCloud (@epenet - #175977)
- Migrate InputNumber entity to inherit NumberEntity (@epenet - #175772)
- Guard MutexPool.dispose with pool_lock to avoid recorder shutdown segfault (@balloob - #176113)
- Remove Tesla Wall Connector scan interval option (@sarabveer - #176020)
- Extract entities from device triggers and device actions (@frenck - #175454)
- Bump uiprotect to 15.5.0 (@RaHehl - #176129)
- Add RadioFrequencyTransmitterConsumerEntity and migrate consumers (@balloob - #171026)
- Remove migrated dead code from helpers/llm.py (@balloob - #176082)
- Migrate input_text entity attributes to StrEnum (@epenet - #175750)
- Add pr template to copilot instructions (@abmantis - #176133)
- Streamline security filter per-request work (@balloob - #175561)
- Update coverage to 7.15.0 (@renovate - #176175)
- Move script tool-alias logic into the script integration (@balloob - #176114)
- Bump pylutron-caseta to 0.29.0 (@davidyen1124 - #176181)
- Flag hass.data.setdefault/get(DOMAIN) in runtime_data pylint checker (@epenet - #176084)
- Bump uiprotect to 15.6.0 (@RaHehl - #176182)
- Bump tesla-fleet-api to 1.6.0 (@Bre77 - #176180)
- Raise
HomeAssistantErrorwhen retries are exhausted in STMP legacy notify action (@tr4nt0r - #176165) - Switchbot Cloud: Enable Webhook for Lock (@XiaoLing-git - #176176)
- Use generic opening device class and proper icons for gas station status in tankerkoenig (@mib1185 - #176145)
- Migrate UniFi Protect sense motion sensitivity to the public API (@RaHehl - #176107)
- Simplify todo LLM tools platform (@balloob - #176183)
- Bump docker/login-action from 4.3.0 to 4.4.0 (@dependabot - #176184)
- Update Pillow to 12.3.0 (@renovate - #176179)
- Use LightEntityStateAttribute enum in MQTT light template (@epenet - #175947)
- Add new codeowner to HomeWizard (@DCSBL - #176199)
- Add logger to Portainer (@erwindouna - #176197)
- Bump energieleser to 0.1.5 (@amitkio - #176198)
- Bump wiim to 0.1.5 (@Linkplay2020 - #176203)
- Portainer dedicated endpoint button description (@erwindouna - #176196)
- Cleanup type ignore in find_coordinates helper (@epenet - #176195)
- Call super class for
async_will_remove_from_hassoverrides in MQTT integration (@jbouwh - #176207) - Add active mode sensor for ViCare FloorHeating devices (@lackas - #170103)
- Add a stop all zones button to Yardian (@aeon-matrix - #174276)
- Portainer remove err translations (@erwindouna - #176190)
- Fix Velbus power and energy sensors for counter channels (@WilliamCoenen - #168201)
- Remove error placeholders from Proxmox (@erwindouna - #176188)
- Use actions in NINA to allow accessing data (@DeerMaximum - #166125)
- Include ConnectError in Ollama config flow (@synesthesiam - #176147)
- Use base EntityStateAttribute for device tracker coordinates (@epenet - #176191)
- homekit: add native HeaterCooler accessory (@nitaybz - #148231)
- Add subentry reconfigure flow to SMTP integration (@tr4nt0r - #176152)
- No need to check for valid_token, also done in called method (@jwillemsen - #176215)
- Add ScorpionTrack integration (@Herbertmt978 - #168737)
- Use TextSelectorType.EMAIL in SMTP integration (@tr4nt0r - #176212)
- Refactor iZone config flow to on-demand discovery and handling multiple devices (@Swamp-Ig - #169251)
- Validate bsblan schedule service target devices (@liudger - #176187)
- Add Fuelprices.dk (@MTrab - #163932)
- Migrate UniFi Protect camera microphone volume to the public API (@RaHehl - #174964)
- Bump pystiebeleltron to 0.5.0 (@balloob - #176166)
- Bump pyControl4 to 2.0.2 (@vemboy200 - #176050)
- Refactor SupervisorIssues into a DataUpdateCoordinator (@mdegat01 - #176054)
- Bump aioesphomeapi to 45.6.0 (@bdraco - #176157)
- Portainer add text selectors (@erwindouna - #176158)
- Add application credentials setup hint to ViCare (@lackas - #175130)
- MELCloud Home optimize common entities (@erwindouna - #176134)
- MELCloud Home refactor/optimize setup path (@erwindouna - #176131)
- Raise ConfigEntryNotReady when Tuya setup hits a network error (@David-Wu1119 - #176124)
- Abort linkplay zeroconf flow before probing when UUID is already known (@David-Wu1119 - #176123)
- Add Lyngdorf processor integration (@fishloa - #161948)
- Fix Teslemetry dead-token retry storm (@Bre77 - #175671)
- Remove UniFi Protect AI Port support (@RaHehl - #174378)
- Move service registration to async_setup in SimpliSafe (@some-random-climber - #175501)
- Add manual token entry to enphase_envoy config flow (@catsmanac - #166063)
- Migrate input_number entity attributes to StrEnum (@epenet - #175740)
- Bump pysmlight to 0.5.3 (@tl-sl - #176252)
- Bump uiprotect to 15.7.1 (@RaHehl - #176260)
- Handle missing uptime for stopped Proxmox VMs and LXCs (@rursache - #176232)
- Add Reolink pre-siren entities (@starkillerOG - #176186)
- Keep a stored HomeKit Thermostat choice when a pairing looks new (@bdraco - #176229)
- Fix CI (@joostlek - #176272)
- Add vehicle current and Wi-Fi RSSI sensors for Tesla Wall Connector (@sarabveer - #176243)
- Change service texts to third-person singular for NINA (@DeerMaximum - #176280)
- Only create Overkiz number entities for supported commands (@iMicknl - #176279)
- Move units_id to common in MELCloud Home (@erwindouna - #176261)
- Bump uiprotect to 15.9.0 (@RaHehl - #176266)
- Bump tesla-fleet-api to 1.6.3 (@Bre77 - #176271)
- Add estimated arrival sensor to Picnic (@ronlimon - #176295)
- Bump ha-philipsjs to 3.2.5 (@epinethrone - #176303)
- Extract entities from zone condition options (@frenck - #175421)
- Set PARALLEL_UPDATES in analytics_insights (@guclumhg - #176321)
- Bump tesla-fleet-api to 1.7.1 (@Bre77 - #176317)
- Bump music-assistant-client to v1.4.3 (@fmunkes - #176318)
- remove permobil (@IsakNyberg - #169933)
- Bump uiprotect to 15.10.0 (@RaHehl - #176329)
- Bump openai to 2.45.0 (@Shulyaka - #176335)
- Fix VeSync crash on fan levels outside of defined list (@dns13 - #176234)
- Make BSB-LAN slow startup refresh nonblocking (@liudger - #176294)
- Use base EntityStateAttribute for geo_location coordinates (@epenet - #176189)
- Use entity state attribute enums in OwnTracks (@epenet - #175981)
- Use state attribute enums in Teslemetry (@epenet - #175970)
- Correct device info in Steam integration (@tr4nt0r - #176356)
- Bump imgw-pib to 2.4.3 (@bieniu - #176358)
- Bump tesla-fleet-api to 1.7.2 (@Bre77 - #176325)
- Bump python-izone to 1.3.4 (@Swamp-Ig - #176341)
- Bump uiprotect to 15.12.1 (@RaHehl - #176375)
- Add @tr4nt0r as integration owner to Steam (@tr4nt0r - #176359)
- Bump aioacaia to 0.2.0 (@zweckj - #176378)
- Use entity state attribute enums in person (@epenet - #175982)
- Add quality scale definition for Overkiz (@iMicknl - #175318)
- Use entity state attribute enums in zone conditions and triggers (@epenet - #175998)
- Add Netatmo quality scale bronze (@cgtobi - #176003)
- Migrate UniFi Protect camera enumeration to the public API (@RaHehl - #176267)
- Add snapshot tests to Reolink (@erwindouna - #176269)
- Move get_in_zones_attribute to a shared zone helpers module (@epenet - #176380)
- Bump python-duco-connectivity to 0.8.0 (@ronaldvdmeer - #176383)
- Use EntityStateAttribute enum in NWS (@epenet - #176382)
- Use EntityStateAttribute enum in DWD Weather Warnings (@epenet - #176381)
- Raise luci quality scale to silver (@kristbaum - #176240)
- Add reconfiguration support for energieleser (@amitkio - #176214)
- Add izone climate test for fault-shaped controller bootstrap (@Swamp-Ig - #176342)
- Improve and extend WMS WebControl pro tests (@mback2k - #176300)
- Bring nobo_hub to silver quality scale (@oyvindwe - #176388)
- Featured integrations: update screenshot (@c0ffeeca7 - #176376)
- Set PARALLEL_UPDATES for netatmo platforms (@cgtobi - #176391)
- Restore KNX switch states (@pos-ei-don - #176352)
- Update mypy to 2.3.0 (@cdce8p - #176409)
- Add sensors to Steam integration (@tr4nt0r - #176146)
- Add exception translation keys to energieleser (@amitkio - #176390)
- Add split-phase option to Tesla Wall Connector (@sarabveer - #175883)
- Use EntityStateAttribute enum in WattTime (@epenet - #176392)
- Use EntityStateAttribute enum in Tankerkoenig (@epenet - #176393)
- Use EntityStateAttribute enum in AirVisual (@epenet - #176394)
- Delete legacy issue template (@joostlek - #176414)
- Use EntityStateAttribute enum in CityBikes (@epenet - #176396)
- Use EntityStateAttribute enum in HERE Travel Time (@epenet - #176397)
- Add Harman Luxury Audio integration (@sbesh91 - #175650)
- Use EntityStateAttribute enum in ISS (@epenet - #176399)
- Add device class ENUM to account sensor in Steam integration (@tr4nt0r - #176419)
- Use EntityStateAttribute enum in Kiwi (@epenet - #176400)
- Add delay between commands for novy hood (@piitaya - #171717)
- Use entity state attribute enums in Mobile App (@epenet - #176407)
- Use EntityStateAttribute enum in GeoNet NZ Volcano (@epenet - #176395)
- Use EntityStateAttribute enum in Netatmo (@epenet - #176406)
- Refactor binary sensors MELCloud Home (@erwindouna - #176398)
- Use EntityStateAttribute enum in PurpleAir (@epenet - #176405)
- Use EntityStateAttribute enum in Luftdaten (@epenet - #176401)
- Use EntityStateAttribute enum in NMBS (@epenet - #176402)
- Add reconfigure flow to nobo_hub (@oyvindwe - #169493)
- Use EntityStateAttribute enum in PEGELONLINE (@epenet - #176403)
- Add boost and drying duration numbers for Atlantic Electrical Towel Dryer in Overkiz (@iMicknl - #176291)
- Add karakeep integration (@sli-cka - #174299)
- Add sensor platform to Mikrotik (@chemelli74 - #175214)
- Sync Duco node names from Duco to Home Assistant (@ronaldvdmeer - #175312)
- Resolve SMLIGHT radio entity names based on types (@tl-sl - #176265)
- Move iZone discovery unit tests to test_discovery.py (@Swamp-Ig - #176253)
- Remove Ohme energy sensor (@dan-r - #174664)
- Add SMLIGHT to Thread known brands (@tl-sl - #176415)
- Update infrared-protocols to 7.0.0 (@renovate - #176426)
- Quality improvements for Mikrotik (@chemelli74 - #176430)
- Add manually-triggered workflow for E2E testing Core images (@abmantis - #176249)
- Add oven light to Whirlpool (@matthewdias - #176364)
- Use mimalloc as the Python allocator instead of preloading jemalloc (@agners - #175604)
- Exclude HTML comments from copilot PR template completeness check (@abmantis - #176433)
- Add LED Infrared integration (@tr4nt0r - #175294)
- Add S3000 Pro support to Edifier Infrared (@horjulf - #175425)
- Use ClimateEntityStateAttribute enum in Teslemetry climate (@epenet - #176379)
- Add reconfigure flow to LED Infrared integration (@tr4nt0r - #176461)
- OpenAI GPT-5.6 support (@Shulyaka - #176450)
- Use EntityStateAttribute enum in Geofency (@epenet - #176465)
- Use EntityStateAttribute enum in Proximity (@epenet - #176469)
- Use EntityStateAttribute enum in Prometheus (@epenet - #176468)
- Fix restoring the location of Traccar device trackers (@epenet - #176470)
- Refactor perform action in MELCloud Home (@erwindouna - #176449)
- Add PostgreSQL backend and storage backend selection for KNX telegrams (@martinhoefling - #175673)
- Use entity state attribute enums in MQTT (@epenet - #176467)
- Flip nobo_hub Gold documentation quality scale rules to done (@oyvindwe - #176445)
- Deprecate sensor attributes in Steam integration (@tr4nt0r - #176417)
- Bump uiprotect to 15.12.2 (@RaHehl - #176420)
- Rename “advanced_options” section to “additional_options” in Template (@justanotherariel - #176302)
- Remove strict-typing exception from backblaze_b2 (@zweckj - #176482)
- Bump modbus-connection to 3.6.0 (@balloob - #176448)
- Retry rympro setup on OperationError instead of failing permanently (@maorcc - #176478)
- Add repair-issue reporting to energieleser (@amitkio - #176476)
- Set PARALLEL_UPDATES = 1 for Blebox update (@bkobus-bbx - #176493)
- Flip nobo_hub docs-examples quality scale rule to done (@oyvindwe - #176479)
- Version bump pydaikin to 2.18.2 (@fredrike - #176492)
- Set up network integration independently of http (@agners - #176137)
- Add dynamic device discovery to nobo_hub (@oyvindwe - #176441)
- Use entity state attribute enums in GPSLogger (@epenet - #176466)
- Add diagnostics platform to LED Infrared (@tr4nt0r - #176459)
- Bump PyViCare to 2.61.0 (@lackas - #176499)
- Fix untranslated BleBox button and input binary sensor names (@bkobus-bbx - #176497)
- Update syrupy to 5.5.1 (@justanotherariel - #176489)
- Add Gatus Integration (@TN-1 - #175085)
- Use gh actions service containers instead of direct docker commands (@abmantis - #176502)
- Fix ProxmoxVE entities allowed without permissions (@CoMPaTech - #176360)
- Fix hash-seed dependent flakiness in test_setup_frontend_before_recorder (@agners - #176508)
- Add diagnostics to nobo_hub (@oyvindwe - #176514)
- Bump modbus-connection to 3.7.0 (@balloob - #176521)
- Redact serial from unknown component model name in diagnostics (@oyvindwe - #176524)
- Add public API for discovered DHCP devices (@zweckj - #176443)
- Bump sense-energy to 0.14.3 (@kbickar - #176532)
- Bump aiomelcloudhome 0.2.1 (@erwindouna - #176528)
- Pump pyairobotrest to 0.4.0 (@mettolen - #176518)
- Bump knx-telegram-store to 0.10.1 (@martinhoefling - #176529)
- Bump oralb-ble to 1.1.1 (@mtheli - #176515)
- Bump github/codeql-action/init from 4.36.3 to 4.37.0 (@dependabot - #176539)
- Bump github/codeql-action/analyze from 4.36.3 to 4.37.0 (@dependabot - #176540)
- Extract shared base entity for Subaru (@jpettitt - #176246)
- Add stale device removal to nobo_hub (@oyvindwe - #176511)
- Add timeout to user config flow in SMTP integration (@tr4nt0r - #176538)
- Add support for Somfy Thermostat PRO climate entity in Overkiz (@iMicknl - #176283)
- [Overseerr] feat: implement searching and request media (@felixschndr - #176483)
- Update syrupy to 5.5.2 (@renovate - #176257)
- Improve Sonos error message on UPNP 800 - music service unavailable (@PeteRager - #176167)
- Starline group executor job (@erwindouna - #174667)
- Add Sonos button entity to cancel active announcements (@PeteRager - #176337)
- Migrate UniFi Protect FloodLight to the public API (@RaHehl - #174650)
- Restore KNX date, datetime, time, number, text and select states (@farmio - #176413)
- Poll faster around the delivery in Picnic (@ronlimon - #176292)
- Add vibration triggers (@nielsrowinbik - #176408)
- Add moon triggers (@nielsrowinbik - #176411)
- Added binary sensor for battery status and external power to the PTDevices integration (@frogman85978 - #169862)
- Promote Anthropic to Platinum (@Shulyaka - #176332)
- Refactor Whirlpool time sensor into a shared base class (@matthewdias - #176464)
- Provision ESPHome encryption keys over an encrypted zero-PSK connection (@bdraco - #176144)
- Add oven cook mode select to Whirlpool (@bdlcalvin - #173412)
- Fix infrared NEC test command to a valid 8-bit value (@Dr-Blank - #176573)
- Update infrared-protocols to 7.5.0 (@renovate - #176580)
- Bump pytrydan to 1.0.4 (@scabrero - #176575)
- Bump uiprotect to 15.14.2 (@RaHehl - #176578)
- Add Google Health calories, floors, and body fat sensors (@allenporter - #176533)
- Revert unusable pending HTTP config in place during setup (@agners - #176384)
- Raise nobo_hub quality scale to gold (@oyvindwe - #176480)
- Use plain Exception for scaffold config flow errors (@Markus98 - #176597)
- Bump aioshelly to 13.27.0 (@bieniu - #176605)
- Refactor config flow with Exception in Fireflyy III (@erwindouna - #176601)
- Catch PynoboConnectionError at nobo_hub connection sites (@oyvindwe - #176604)
- Remove redundant block_till_done from scaffold config flow tests (@Markus98 - #176607)
- Refactor config flow with Exception in Portainer (@erwindouna - #176600)
- Add diagnostics support to energieleser (@amitkio - #176552)
- Bump python-duco-connectivity to 0.9.0 (@ronaldvdmeer - #176615)
- Remove Modbus Connection integration (@balloob - #176618)
- Create individual devices for telegram_bot chats (@emontnemery - #176606)
- Rename Modbus integration back to Modbus (@balloob - #176619)
- Update uv to 0.11.28 (@renovate - #176585)
- Bump victron-mqtt to 2026.7.4 (@tomer-w - #176614)
- Raise HomeAssistantError on network errors in lg_thinq service calls (@David-Wu1119 - #176501)
- Bump intellifire4py to 4.5.0 (@jeeftor - #175787)
- Add oven target temperature number to Whirlpool (@bdlcalvin - #173411)
- Restrict device registry entries to a single config entry and subentry (@emontnemery - #175785)
- Fix missing field in Steam integration (@tr4nt0r - #176632)
- Bump mitsubishi-comfort to 0.5.0 (@nikolairahimi - #176642)
- Add translation strings for KNX project view devices tab (@farmio - #176636)
- Refactor exception in config flow of Tado (@erwindouna - #176651)
- Don’t allow binding an entity to a composite device_id (@emontnemery - #176650)
- Align DeviceRegistryEntrySnapshot with the device registry model (@emontnemery - #176654)
- Use modern device registry API for device move in anthropic (@emontnemery - #176656)
- Use modern device registry API for device move in github (@emontnemery - #176657)
- Use modern device registry API for device move in google_generative_ai_conversation (@emontnemery - #176658)
- Use modern device registry API for device move in lifx (@emontnemery - #176659)
- Use modern device registry API for device move in ollama (@emontnemery - #176661)
- Use modern device registry API for device move in openai_conversation (@emontnemery - #176662)
- Use modern device registry API for device move in scrape (@emontnemery - #176663)
- Use modern device registry API for device move in waqi (@emontnemery - #176664)
- Add reconfigure flow to Gatus (@TN-1 - #176646)
- Use modern device registry API to remove devices (part 4) (@emontnemery - #176673)
- change suez price to price / m³ (@alaunay - #176611)
- Add LiteLLM integration (@luismalves - #172960)
- Fix logging level per Mikrotik (@chemelli74 - #176655)
- Mark Netatmo entities unavailable when device or service is unreachable (@cgtobi - #176444)
- Use modern device registry API to remove devices (part 2) (@emontnemery - #176671)
- Use modern device registry API to remove devices (part 1) (@emontnemery - #176669)
- Use modern device registry API to remove devices (part 3) (@emontnemery - #176672)
- Speed up entity_registry.async_entries_for_device (@emontnemery - #176653)
- Add vibration conditions (@nielsrowinbik - #176598)
- Add TextSelector in config flow SMA (@erwindouna - #176660)
- Update ruff (@renovate - #176645)
- Bump pyairnow to 1.4.0 for AirNow 2026 API endpoints (@derekcentrico - #176622)
- Use modern device registry API for device move in wolflink (@emontnemery - #176665)
- Bump python-duco-connectivity to 0.10.0 (@ronaldvdmeer - #176685)
- Add manufacturer, model, and model_id filtering to entity filter selector (@Skaronator - #162989)
- Deprecate no longer working device helpers (@emontnemery - #176696)
- Refactor imou to use entity descriptions (@joostlek - #176675)
- Bump pyportainer to 1.0.42 (@erwindouna - #176694)
- Mitigate crash in ScannerEntity related to device registry changes (@emontnemery - #176684)
- Add Harbor Sleep integration (@Lash-L - #176171)
- Deprecate passing add_helper_config_entry_to_device to async_handle_source_entity_changes (@emontnemery - #176701)
- Add playwright to e2e tests workflow (@abmantis - #176520)
- Adjust code owner list for Sonos (@PeteRager - #176723)
- Bump actions/stale from 10.3.0 to 10.4.0 (@dependabot - #176591)
- Review full branch diff against base in ha-review skills (@abmantis - #176712)
- Bump python-izone to 1.3.5 (@Swamp-Ig - #176687)
- Bump aioesphomeapi to 45.6.1 (@bdraco - #176735)
- Persist iZone controller host on config entries (@Swamp-Ig - #176733)
- Denon RS-232 tuner controls (@koszoaron - #176610)
- Refactor if/else branches in Portainer sensor (@erwindouna - #176716)
- Bump pydrawise to 2026.7.0 (@dknowles2 - #176749)
- Refactor loop enum sensor portainer (@erwindouna - #176709)
- Remove progress feature Portainer (@erwindouna - #176688)
- Add Duco ventilation temperature sensors (@ronaldvdmeer - #176621)
- Implement diagnostics for Gatus (4/4) (@TN-1 - #176758)
- Add reconfigure flow to WattWächter Plus (@smartcircuits - #175551)
- Do not create subscriptions for disabled devices in Sonos (@PeteRager - #176706)
- Remove redundant var from Shelly (@chemelli74 - #176780)
- Support Shelly Enhanced Security (HTTPS only mode) (@bieniu - #176547)
- Factorize common code to _datetime_as_string (@cnotin - #172288)
- Add tank pressure and water temperature sensors to Gardena Bluetooth (@icereed - #176798)
- Bump python-izone to 1.3.6 (@Swamp-Ig - #176804)
- bluetooth: prioritize recent advertisements during history replay (@cryptomilk - #174539)
- Detach entities from composite device when no matching device is found (@emontnemery - #176819)
- Seed esphome reconnect backoff cap from restored device_info (@bdraco - #176738)
- Update Harbor device registry snapshot for DeviceRegistryEntrySnapshot fields (@Swamp-Ig - #176811)
- Bump knx-telegram-store to 0.10.2 (@martinhoefling - #176829)
- Offload CalDAV iCalendar parsing to the executor (@clarkewing - #176422)
- Remove name field from HERE Travel Time config flow (@mstu01 - #176839)
- Remove name field from Google Travel Time config flow (@mstu01 - #176838)
- Bump gcal-sync to 9.1.0 (@allenporter - #176840)
- Remove old Roborock Status object (@Lash-L - #176847)
- Bump python-duco-connectivity to 0.11.0 (@ronaldvdmeer - #176823)
- Add reconfigure flow to Overkiz (@iMicknl - #176852)
- Bump ical to 14.0.1 (@allenporter - #176860)
- Bump google-health-api to 0.6.0 (@allenporter - #176868)
- Set PARALLEL_UPDATES on all Overkiz platforms (@iMicknl - #176856)
- Update stored host on Overkiz local gateway rediscovery (@iMicknl - #176857)
- Add reconfiguration support to Google Health config flow (@allenporter - #176844)
- Bump PyJWT to 2.13.0 (@RaHehl - #172893)
- Bump velbusaio to 2026.7.2 (@cereal2nd - #176875)
- Add sensor platform to Imou integration (@Imou-OpenPlatform - #176069)
- Rename async_remove_helper_config_entry_from_source_device (@emontnemery - #176714)
- Bump whirlpool-sixth-sense to 1.3.1 (@matthewdias - #176845)
- Add the ability to select clean mode for V1 Roborock vacuums (@Lash-L - #176867)
- Bump pyschlage to 2026.7.0 (@dknowles2 - #176748)
- Add test for auth errors when executing command on SLZB device (@tl-sl - #174954)
- Fix ecobee set_fan_mode silently no-opping without hold temps (@pike00 - #176859)
- Fix Atlantic Calissia target temperature in scheduled mode in Overkiz (@iMicknl - #175405)
- Add device registry methods async_get_device_by_identifier/_connection (@emontnemery - #176879)
- Minor improvement of async_remove_helper_devices (@emontnemery - #176880)
- Update coverage to 7.15.1 (@renovate - #176870)
- Bump pyeconet to 0.2.4 (@ironiridis - #176736)
- Remove preview for image template (@karwosts - #176812)
- Update description for freeze_prevent binary sensor (@aeon-matrix - #176472)
- Strip trailing whitespace from NUT device info fields (@brianegge - #166187)
- Add health state to containers in Portainer (@erwindouna - #176697)
- Don’t raise when attempting to link an entity to a composite device (@emontnemery - #176886)
- Deprecate helpers async_remove_stale_devices_links_* (@emontnemery - #176881)
- Restore lost trusted proxy network masks during HTTP YAML migration (@edenhaus - #176899)
- Validate disabled_by flag in async_update_device (@emontnemery - #176681)
- Do not wait for HTTP clients to disconnect when stopping the server (@agners - #176897)
- Add sleep coordinator and sensors to Google Health (@allenporter - #176781)
- Fix dynamic Roborock map image entity registration (@allenporter - #176285)
- Migrate template helper to new device cleanup helper (@emontnemery - #176900)
- Add motion device class to reolink AI detection binary sensors (@abmantis - #176802)
- Simplify async_remove_helper_devices (@emontnemery - #176919)
- Execute uv run in $VIRTUAL_ENV (@chemelli74 - #176667)
- Fix voluptuous schema conversion of custom callables (@allenporter - #176814)
- Migrate integrations to async_get_device_by_identifier (part 1) (@emontnemery - #176901)
- Migrate integrations to async_get_device_by_identifier (part 4) (@emontnemery - #176908)
- Migrate integrations to async_get_device_by_identifier (part 2) (@emontnemery - #176902)
- Add new integration Midea LAN (@chemelli74 - #151930)
- Adapt nest to new device registry API (@emontnemery - #176948)
- Adapt ping to new device registry API (@emontnemery - #176950)
- Update syrupy to 5.5.3 (@renovate - #176963)
- Adapt pglab to new device registry API (@emontnemery - #176949)
- Adapt bang_olufsen to new device registry API (@emontnemery - #176937)
- Use registry for Alexa name override (@arturpragacz - #176926)
- Add port validation to ws http config command (@edenhaus - #176876)
- Adapt airly to new device registry API (@emontnemery - #176934)
- Adapt asuswrt to new device registry API (@emontnemery - #176936)
- Adapt bond to new device registry API (@emontnemery - #176938)
- Adapt daikin to new device registry API (@emontnemery - #176939)
- Adapt habitica to new device registry API (@emontnemery - #176944)
- Adapt lutron to new device registry API (@emontnemery - #176946)
- Adapt lutron_caseta to new device registry API (@emontnemery - #176947)
- Adapt rfxtrx to new device registry API (@emontnemery - #176951)
- Bump yalexs to 9.2.10 (@jamesshannon - #176929)
- Add test-before-configure pylint quality scale checker (@Markus98 - #176894)
- Migrate integrations to async_get_device_by_identifier (part 3) (@emontnemery - #176905)
- Add explicit methods for composite devices (@emontnemery - #176923)
- Add device registry method async_get_devices (@emontnemery - #176931)
- Adapt gios to new device registry API (@emontnemery - #176943)
- Adapt acmeda to new device registry API (@emontnemery - #176933)
- Only detach own config entry on Overkiz device removal (@iMicknl - #176898)
- Fix template test to be cwd-independent (@karwosts - #176815)
- Bump infrared-protocols to 8.1.0 (@abmantis - #176625)
- Add support for R1700BT (2017 model) to Edifier Infrared (@abmantis - #176721)
- Remove confusing set intersection from device registry restore (@emontnemery - #176964)
- Remove redundant device lookups (@emontnemery - #176909)
- Refactor Imou device callback registration (@joostlek - #176690)
- Developer Tools -> Tools: Redirect URLs to /config/tools (@timmo001 - #175281)
- Bump earn-e-p1 to 0.2.0 (@Miggets7 - #176990)
- Fix Tado reusing an expired device code when retrying after login timeout (@niklasR - #176832)
- Add button platform to Mikrotik (@chemelli74 - #175599)
- Teach the search integration about composite devices (@emontnemery - #176978)
- Bump pydaikin version to 2.18.3 (@valerioformato - #176974)
- Update knx-frontend to 2026.7.17.104339 (@farmio - #176002)
- Migrate NextDNS integration to use subentries (@bieniu - #175067)
- Add the Open Home Foundation AI Policy (@frenck - #176917)
- Adapt zha to new device registry API (@emontnemery - #176958)
- Bump monzopy to 1.6.0 (@JakeMartin-ICL - #176979)
- Move http server code into it’s own module (@edenhaus - #176968)
- Sort pylint plugin README rule table by code (@Markus98 - #176971)
- Adjust helper async_remove_helper_devices (@emontnemery - #177006)
- Bump python-izone to 1.3.7 (@Swamp-Ig - #176998)
- Update infrared-protocols to 8.2.0 (@renovate - #176750)
- Adapt aprilaire to new device registry API (@emontnemery - #176935)
- Update hassil to 3.10.0 (@renovate - #176744)
- Optimize calls & data for Mikrotik (@chemelli74 - #177042)
- Bump tesla-fleet-api to 1.7.6 (@Bre77 - #176966)
- Bump pyisy to 3.7.0 (@shbatm - #177030)
- Bump pyatmo to v9.5.0 (@cgtobi - #177052)
- Add exception translations to WiiM (@Linkplay2020 - #176457)
- Adapt teslemetry to new device registry API (@emontnemery - #176954)
- Adapt unifi to new device registry API (@emontnemery - #176956)
- Add pylint checker to check for using registries as fixture (@joostlek - #172455)
- Add Tuya ktkzq fixture (Vital+ Ice Bath Pro) (@ctaylor86 - #176865)
- Refactor hassio persistence to config entry data/options (@mdegat01 - #174859)
- Bump aiohasupervisor to 0.6.0 (@mdegat01 - #176928)
- Bump blinkpy to 0.25.9 (@MichaelMKKelly - #177054)
- Adapt hassio to new device registry API (@emontnemery - #176945)
- Allow code comments explaining tests (@MartinHjelmare - #176997)
- Add support for Xiaomi Smart Standing Fan 2 Pro (dmaker.fan.p33) to xiaomi_miio (@bramkragten - #176700)
- Add update_pin_code service for Nintendo parental controls (@pantherale0 - #169865)
- Add moon conditions (@nielsrowinbik - #176599)
- Add missing data_description strings to Mikrotik (@chemelli74 - #176903)
- Add standard ButtonEventType event types (@shbatm - #177028)
- Fix firmware attribute in Mikrotik (@chemelli74 - #177085)
- Add Tuya fixture for Chasing Tape Light (hcdd) (@AnthonyZavala - #177081)
- Fix ha-review skill diff instruction (@abmantis - #177084)
- Bump mitsubishi-comfort to 0.5.1 (@nikolairahimi - #177086)
- Update python-open-router to 0.4.0 (@jenrik - #177072)
- Bump zamg to 0.4.1 (@killer0071234 - #176907)
- Bump bleak-retry-connector to 4.6.3 (@bdraco - #177098)
- Bump aiohomekit to 4.0.0 (@bdraco - #177096)
- Convert quality scale check agent to a skill (@abmantis - #176431)
- Add backup button to Mikrotik (@chemelli74 - #177095)
- Update codespell (@renovate - #177103)
- Update coverage to 7.15.2 (@renovate - #177104)
- Add missing _attr_has_entity_name to Mikrotik (@chemelli74 - #176906)
- Rewrite iZone runtime for python-izone 1.3.6 discovery API (@Swamp-Ig - #176751)
- Bump matrix-nio to 0.26.0 (@PaarthShah - #177124)
- Add reconfiguration flow to ouman_eh_800 (@Markus98 - #177120)
- Bump aioshelly to 13.28.0 (@thecode - #177135)
- Persist active HTTP config slot and keep reverted pending config (@edenhaus - #176525)
- Retry KNX telegram store init on timeout instead of disabling it (@pos-ei-don - #176542)
- Fix demo cover stop behavior (@karwosts - #177143)
- Add LG AC support to lg_infrared integration (@Dr-Blank - #174142)
- Fix pylint errors in knx (@zweckj - #177147)
- Fix homekit_controller sending zero brightness for low brightness values (@bdraco - #177148)
- Melcloud atw on/off capability (@imilchev - #177119)
- Rename Midea LAN to midea (@joostlek - #177125)
- Update knx-frontend to 2026.7.23.145751 (@farmio - #177139)
- Add search_media_classes to media browser (@zweckj - #177146)
- Add Midea brands (@chemelli74 - #177015)
- Use version_pending to finalize HAOS update state (@mdegat01 - #177155)
- Bump python-izone to 1.3.8 (@Swamp-Ig - #177164)
- Fix update listener warning in upnp integration (@StevenLooman - #177138)
- Bump actions/checkout from 7.0.0 to 7.0.1 (@dependabot - #177165)
- Add UniFi option to ignore locally-administered (randomized) MACs (@tomwilkie - #174503)
- Add Shelly circuit breaker support (@thecode - #177157)
- Adapt shelly to new device registry API (@emontnemery - #176952)
- Bump harbor-python to 1.4.0 (@Lash-L - #177206)
- Change gardena_bluetooth valve activation_reason sensor to enum (@elupus - #177187)
- Add TARGET_TEMPERATURE/TARGET_HUMIDITY to climate state attributes (@epenet - #176193)
- Bump victron-mqtt to 2026.7.6 (@tomer-w - #177230)
- Victron GX: SSDP update host (@tomer-w - #169564)
- Victron GX: Support for currency symbol for relevant entities (@tomer-w - #175658)
- Bump yt-dlp to 2026.07.04 (@joostlek - #177235)
- Bump guntamatic to v1.9.3, fixes #177237 (@JensTimmerman - #177243)
- Add diagnostics platform to Mikrotik (@chemelli74 - #177241)
- Bump homematicip to 2.13.3 (@lackas - #177240)
- Update xknx to 3.17.0 (@farmio - #177244)
- Bump aioswitcher to 6.1.3 (@thecode - #177236)
- Restore KNX cover state and mark uninitialized covers as assumed (@farmio - #177216)
- Fix flaky Sonos test test_alarm_change_device (@PeteRager - #177217)
- Add connorgallopo as insteon codeowner (@connorgallopo - #177253)
- homee: Redact additional data for diagnostics (@Taraman17 - #177233)
- Bump python-izone to 1.3.9 (@Swamp-Ig - #177251)
- Bump vsure to 2.10.0 (@TrojanHorsePower - #176206)
- Bump aioacia to 0.2.1 (@zweckj - #177259)
- homee: Add more logging (@Taraman17 - #177232)
- Bump reolink_aio to 0.21.7 and adjust to new dual lens handeling (@starkillerOG - #177134)
- Bump oralb-ble to 1.1.3 (@mtheli - #177024)
- Add guard to Sonos preventing exception on config unload (@PeteRager - #167119)
- Bump opower to 0.19.0 (@tronikos - #177262)
- Bump aiovodafone to 3.3.1 (@chemelli74 - #177264)
- Improve docstring for async_get_or_create() method (@chemelli74 - #174804)
- Web search server tool for OpenRouter (@trwy7 - #176460)
- Fix earn_e_p1 sensors missing when keys span multiple packet types (@Miggets7 - #177027)
- Refactor indevolt cycles naming (@Xirt - #172291)
- Report unknown iZone fan/mode without breaking climate updates (@Swamp-Ig - #177254)
- Fix Monzo pot entities after a pot is removed (@JakeMartin-ICL - #177016)
- Fix wirelesstag moisture arm switch crashing on toggle (@kohai-ut - #172596)
- Disable sonos button for cancelling announcement by default (@PeteRager - #177219)
- Bump tuya-device-handlers to 0.0.26 (@FredrikM97 - #177222)
- Handle missing Netatmo thermostat setpoint mode (@bluesaphire76 - #172204)
- Address review issues for Sonos cancel annoucement (@PeteRager - #177220)
- Fix wirelesstag pylint errors in test (@gjohansson-ST - #177288)
- Add hydration and calories consumed sensors to Google Health (@allenporter - #176910)
- Add diagnostics platform to Google Health (@allenporter - #177078)
- KNX: Add
default_entity_idconfig option for YAML entities (@farmio - #166151) - Bump pypaperless to 5.2.3 (@IngmarStein - #176889)
- Add image platform to Steam integration (@tr4nt0r - #176346)
- Add KNX notify entity UI configuration (@farmio - #177256)
- Add GeoSphere Austria Warnings integration (@tklecka - #173563)
- Use Monzo currencies for balance sensors (@JakeMartin-ICL - #177272)
- Reolink better balanced stream detection (@starkillerOG - #177271)
- Update ruff (@renovate - #177162)
- Bump actions/setup-node from 6.4.0 to 7.0.0 (@dependabot - #176871)
- Add event platform to LED Infrared integration (@tr4nt0r - #177087)
- Add restore to number template entities (@Petro31 - #176691)
- Streamline model name and ID in external HomeWizard device (@DCSBL - #172309)
- Bump plugwise to v1.14.2 (@bouwew - #176439)
- Add MatterChimeSelectEntity for Chime cluster support (@lboue - #176418)
- Add diagnostics platform to Midea LAN (@chemelli74 - #177013)
- Add update platform to Mikrotik (@chemelli74 - #177099)
- Fix broken Soundcloud album art on Sonos due to image truncation (@bharat - #170872)
- Skip foreign metadata files in backblaze_b2 backup listing (@ElCruncharino - #171589)
- Victron GX: Disbaling by default some noisy entities and moving to automatic debounce interval (@tomer-w - #175119)
- Fix Prana TypeError by checking for None device_info (@surajrastogi1 - #172187)
- Cleanup logging vars in Fritz (@chemelli74 - #177115)
- Fix Google Health diagnostics snapshot missing nutrition scope (@rhys-saldanha - #177296)
- Bump actions/attest from 4.1.1 to 4.2.0 (@dependabot - #177113)
- Bump github/codeql-action/init from 4.37.0 to 4.37.1 (@dependabot - #177112)
- Bump github/codeql-action/analyze from 4.37.0 to 4.37.1 (@dependabot - #177111)
- Add missing attributes to weather entity (@p0lycarpio - #172494)
- Bump meteo-lt-pkg to 0.7.3 (@Brunas - #174391)
- Enhance title placeholders in gardena_bluetooth config flow (@CFenner - #173442)
- Add Dyson infrared integration (@elax46 - #173666)
- Remove name field from Logitech Harmony Hub config flow (@mstu01 - #177045)
- Fix Zinvolt max output number reporting a value above its maximum (@nickbock - #177041)
- tplink_omada: Add PoE power sensors by port (@mheath - #177036)
- Fix missing operation select for LG ThinQ WashTower dryer (@wbradmoore - #177020)
- Add smtp.send_message action to SMTP integration (@tr4nt0r - #176849)
- Add support for
ecomode of VeSync devices (@dns13 - #176242) - Remove volvooncall integration (@gjohansson-ST - #175677)
- Retry NMBS setup when the iRail station list is unavailable (@frigussolutions - #176983)
- Remove name field from Pi-hole config flow (@mstu01 - #176999)
- Fix swallowed exceptions in action handlers for DirecTV (@mstu01 - #177000)
- Remove name field from NZBGet config flow (@mstu01 - #176995)
- Use runtime_data in locative (@mstu01 - #177003)
- Migrate ThermoPro to config entry runtime data (@mstu01 - #177002)
- Fix swallowed exceptions in action handlers for Sky Remote (@mstu01 - #177001)
- Repair missing DTS on initial stream keyframe (@rosenrot00 - #177102)
- Add ScorpionTrack speed sensor (@Herbertmt978 - #177032)
- Add water heater support for Atlantic DHWP V1 io in Overkiz (@iMicknl - #176361)
- Add capacity to battery energy source (@MindFreeze - #172817)
- Add stale device handlng to Gatus (2/4) (@TN-1 - #176754)
- Bump pyintesishome to 2.0.3 (@scheffield - #176869)
- Add encrypted DSMR support for Luxembourg and Austria (@balloob - #176058)
- Bump aiobotocore, botocore, boto3 (@tomasbedrich - #170783)
- Fix URL parsing for hyphenated hostnames in Radarr/Sonarr config flows (@aldoborrero - #171193)
- Small WMS WebControl pro code quality improvements (@mback2k - #176574)
- Add xthings cloud camera (@zhangluofeng - #172831)
- Bump async-upnp-client to 0.47.1 (@StevenLooman - #176940)
- Handle FFmpeg errors while muxing stream packets (@skynet01 - #176666)
- Improve exception handling for Anglian Water integration (@pantherale0 - #174443)
- Add entity actions to Eurotronic Cometblue (@rikroe - #170689)
- Remove dead hass.data usage from netgear_lte (@David-Wu1119 - #176140)
- Improve Eurotronic CometBlue strings (@rikroe - #177347)
- Bump teslemetry-stream to 0.9.2 (@Bre77 - #177341)
- Update snapshot for mikrotik (@zweckj - #177349)
- Fix dyson_infrared quality scale for pylint (@zweckj - #177348)
- Fix use of issue registry in anglian water (@zweckj - #177350)
- Fix use of device registry in gatus (@zweckj - #177351)
- Reolink dynamic pre-record FPS list (@starkillerOG - #177274)
- Add search feature to immich media source (@mib1185 - #175690)
- Add search media support to Radio Browser (@mib1185 - #175714)
- Add stricter type checking in Portainer (@erwindouna - #177362)
- Add serial number to device info for WeatherFlow devices (@natekspencer - #177289)
- Bump holidays to 0.101 (@gjohansson-ST - #177278)
- Fix SwitchBot Cloud vacuum state reset on partial webhook payload (@zerafachris - #176717)
- Bump aioshelly to 13.29.0 (@chemelli74 - #177372)
- Add LoRa add-on firmware update for Shelly (@chemelli74 - #169607)
- Make _LOGGER public in venstar (@mstu01 - #177334)
- Bump env-canada to 0.17.0 (@michaeldavie - #177337)
- Fix Z-Wave async_get_entity_id domain parameters (@MartinHjelmare - #176911)
- Recover from broken connection for Mikrotik (@chemelli74 - #177285)
- Bump imgw_pib to 2.5.1 (@bieniu - #177368)
- Make LOGGER public in Downloader (@erwindouna - #177355)
- Bump aiopvapi to 3.4.0 (@kingy444 - #177369)
- Add repair issue for device_tracker.see service action (@MartinHjelmare - #177367)
- Do not refresh OAuth token during Tibber unload (@honzup - #176595)
- Make _LOGGER public in
actron_air(@EReaso - #177354) - Make _LOGGER public in starline (@mstu01 - #177331)
- Make _LOGGER public in nina (@mstu01 - #177335)
- Make _LOGGER public in honeywell (@mstu01 - #177332)
- Make _LOGGER public in niko_home_control (@mstu01 - #177333)
- Bump boschshcpy to 0.6.4 (@mosandlt - #175902)
- Add operation-mode select for MELCloud ATW zones (@imilchev - #177166)
- Make _LOGGER public in ecobee (@EReaso - #177356)
- Bump homematicip to 2.13.4 (@lackas - #177339)
- Bump actions/setup-python from 6.3.0 to 7.0.0 (@dependabot - #177345)
- Bump j178/prek-action from 2.0.5 to 2.0.6 (@dependabot - #177344)
- Bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.1 (@dependabot - #177343)
- Switchbot Cloud:enable webhook for the Fan series. (@XiaoLing-git - #176587)
- Yolink ys5018 water temperature (@76cb - #177340)
- Add iZone config entry diagnostics via dump_state (@Swamp-Ig - #177255)
- Use URL TextSelector in Gatus config flow (1/4) (@TN-1 - #176679)
- Add Google Health device-level battery and last sync sensors (@allenporter - #176810)
- Speed up KNX tests with an in-memory telegram store (@farmio - #177328)
- Add radar colour scale option to Environment Canada (@michaeldavie - #177338)
- Add Enphase ACB battery sensors and sleep/wake controls (@genestealer - #177012)
- Fix swallowed exceptions in action handlers for Yeelight (@mstu01 - #177048)
- Make _LOGGER public in lifx (@EReaso - #177357)
- Make _LOGGER public in modbus (@mstu01 - #177376)
- Make _LOGGER public in homematicip_cloud (@mstu01 - #177377)
- Make _LOGGER public in Comelit (@chemelli74 - #177382)
- Make _LOGGER public in Alexa Devices (@chemelli74 - #177383)
- Make _LOGGER public in Vodafone Station (@chemelli74 - #177381)
- Migrate Pushover to config entry runtime data (@mstu01 - #177047)
- Make _LOGGER public in Midea (@chemelli74 - #177384)
- Make _LOGGER public in refoss (@mstu01 - #177375)
- Add support for generic 40-key and 44-key remotes to LED Infrared (@tr4nt0r - #176566)
- Remove name field from Sony PlayStation 4 config flow (@mstu01 - #177046)
- Bump matter-python-client to 1.3.0 (@TheJulianJES - #177132)
- Add zone source exclusion option to Russound RIO (@noahhusby - #177091)
- Fix unstable KNX YAML unique_id when changing group address style (@farmio - #176715)
- Add button platform to LED Infrared integration (@tr4nt0r - #176456)
- Add flow-temperature number for MELCloud ATW zones (@imilchev - #177378)
- Improve Monzo approval flow (@JakeMartin-ICL - #177292)
- Migrate entity unique IDs in System Bridge integration (@tr4nt0r - #171799)
- Make _LOGGER public in
isy994(@mib1185 - #177386) - Make _LOGGER public in
flume(@mib1185 - #177388) - Fix Matter feature map attribute updates (@zbuc - #177029)
- Expose HTTP server config to Supervisor over the Unix socket (@agners - #176976)
- Centralize MELCloud entity setup in base entities (@imilchev - #177395)
- Improve data fetching in Nord Pool (@gjohansson-ST - #175715)
- Add exception translations for iZone setup and coordinator (@Swamp-Ig - #177159)
- Unsubscribe earn_e_p1 sensor setup listener once all sensors are added (@Miggets7 - #177276)
- chore: add felixschndr as code owner of overseerr (seerr) (@felixschndr - #177396)
- bosch_shc: add PARALLEL_UPDATES to all platforms (@mosandlt - #177389)
- Make _LOGGER public in
yoto(@mib1185 - #177398) - Update MQTT device registry event handling (@emontnemery - #176965)
- Validate via_device_id in device registry (@arturpragacz - #177158)
- Bump pyliebherrhomeapi to 0.5.0 (@mettolen - #177425)
- Ensure event entity states are strictly increasing (@emontnemery - #177403)
- Add MQTT infrared platform support (@jbouwh - #172796)
- Add reconfigure flow to Dropbox (@bdr99 - #177433)
- Add exception translations for Dropbox (@bdr99 - #177431)
- Bump github/codeql-action/init from 4.37.1 to 4.37.2 (@dependabot - #177439)
- Bump github/codeql-action/analyze from 4.37.1 to 4.37.2 (@dependabot - #177438)
- Readd missed platforms to demo (@karwosts - #177432)
- Update uv to 0.11.30 (@renovate - #177106)
- Fix Matter valve DefaultOpenDuration number entity disappearing when null (@lboue - #177129)
- Default to port 80 and redirect legacy port 8123 under Supervisor (@agners - #174278)
- Fix person support for legacy device trackers (@emontnemery - #177440)
- Warn when implicitly moving a device to another subentry (@emontnemery - #177034)
- Add reconfiguration flow to WiiM (@Linkplay2020 - #177444)
- Improve Reolink dual lens camera support (@starkillerOG - #177275)
- Stop wirelesstag cloud push monitoring on shutdown (@kohai-ut - #172598)
- Improve Reolink PTZ stop support detection (@starkillerOG - #177273)
- Fix swallowed exceptions in action handlers for Slack (@mstu01 - #177049)
- Discover aidot wifi lights over dhcp (@HongBryan - #177437)
- Bump aiomealie 2.0.0 (@andrew-codechimp - #177380)
- Add WS command config/device_registry/list_composite_splits (@emontnemery - #176693)
- Clear Entity.device_entry when entity is detached from device (@emontnemery - #177445)
- Disable pylint registry fixture rule in config WS test (@emontnemery - #177454)
- Fix legacy port redirect hanging Home Assistant shutdown (@agners - #177457)
- Mark Z-Wave power management binary sensors as diagnostic (@TheJulianJES - #177461)
- Add repair flow for template helper connected to composite device (@emontnemery - #176924)
- Resolve colliding device identifiers and connections (@arturpragacz - #177192)
- Cache split_tests pytest –collect-only results between CI runs (@bdraco - #171780)
- Bump zwave-js-server-python to 0.73.0 (@MartinHjelmare - #177465)
- Forward Z-Wave
interview progressevent (@AlCalzone - #174434) - usb: Avoid importing aioesphomeapi in serial proxy stub (@AlD - #174181)
- Adapt zwave_me to new device registry API (@emontnemery - #176960)
- Return None from async_is_composite_device_id for unknown ids (@arturpragacz - #177473)
- Remove dead device cleanup code in acmeda (@emontnemery - #177469)
- Adapt esphome to new device registry API (@emontnemery - #176942)
- Adapt tasmota to new device registry API (@emontnemery - #176953)
- Fix devolo_home_control device delete race (@emontnemery - #177479)
- Make entity_platform check entity can attach to device (@emontnemery - #177459)
- Forward from_recorder in recorder EventTypeManager.get (@frenck - #175508)
- Adapt zwave_js to new device registry API (@emontnemery - #176959)
- Add setting to customise entity ID generation (@arturpragacz - #177140)
- Remove Matter doorbell device type for “switch” event entity (@TheJulianJES - #177493)
- Bump aiowebostv to 0.8.0 (@thecode - #177482)
- Migrate integrations to setting via_device_id in DeviceInfo (@emontnemery - #177494)
- Bump harbor-python to 1.5.0 (@Lash-L - #177322)
- Bump zha-quirks to 2.2.0 (@TheJulianJES - #177518)
- Bump infrared-protocols to 8.2.1 (@abmantis - #177485)
- Use module logger in homematicip_cloud config flow (@lackas - #177500)
- Bump ZHA to 2.1.0 (@puddly - #177520)
- Bump python-aidot to 0.3.56 (@HongBryan - #177513)
- Remove inert radius option from AirNow (@derekcentrico - #176740)
- Add WS command config/device_registry/list_linked_devices (@emontnemery - #177449)
- Add sun event trigger offset (@MartinHjelmare - #176967)
- Update uv to 0.11.31 (@renovate - #177515)
- Add app port conflict repair support (@mdegat01 - #177093)
- Bump aioamazondevices to 14.2.2 (@chemelli74 - #177532)
- Bump midea-local to v6.11.1 (@wuwentao - #177182)
- Update unidiff to 1.0.0 (@renovate - #177535)
- Update zizmor (@renovate - #171797)
- Move service registration for workday to async_setup (@gjohansson-ST - #177492)
- Add diagnostics support to WiiM (@Linkplay2020 - #177512)
- Swap pyvizio for vizaio in vizio integration (@raman325 - #176555)
- Fix Nest WebRTC camera snapshot served as a PNG mislabeled image/jpeg (@ajplotkin - #176885)
- Undeprecate http server_host configuration (@edenhaus - #177536)
- Schlage: refactor tests to use snapshot_platform and factory fixture (@dknowles2 - #172639)
- Add ViAir 300F humidity and temperature sensors to Vicare (@gresie - #176777)
- Explain why a Comet Blue device could not be found (@rikroe - #176768)
- Add image platform for DoorBird last motion and last ring (@mattias-arrelid - #173120)
- Add power control to Daikin zone climates (@barneyonline - #176764)
- Add zoned cleaning service for Roborock (@Thomas55555 - #172673)
- Add restore to light template entities (@Petro31 - #176553)
- Add tilt support to MySensors cover platform (@hypnosiss - #173845)
- Add restore to lock template entities (@Petro31 - #176571)
- Add restore state to vacuum template entities (@Petro31 - #176718)
- Update ruff to 0.16.0 (@renovate - #177534)
- Bump github/codeql-action/analyze from 4.37.2 to 4.37.3 (@dependabot - #177524)
- Add Room Average Temperature sensor to Lyric integration (@clutch2sft - #177063)
- Add async_will_remove_from_hass to pylint super call checker (@gjohansson-ST - #175986)
- Fix UnboundLocalError in state condition with an empty state value (@ngoctnq - #176634)
- Promote energieleser integration to platinum quality scale (@amitkio - #176617)
- Add more button entities to LED Infrared (@tr4nt0r - #177400)
- Clarify common config flow already_in_progress abort message (@Swamp-Ig - #176981)
- Fix Schlage test snapshot (@MartinHjelmare - #177548)
- Fix device renaming in acmeda (@emontnemery - #176980)
- Add support for camera preloading to go2rtc (@edenhaus - #158470)
- Enable ruff rule RUF036 (none-not-at-end-of-union) (@edenhaus - #177543)
- Add Switch platform for Harbor (@Lash-L - #177511)
- Add cleaning solution, sewage box and water sink lifespan sensors to Ecovacs (@L-pin - #174521)
- Add Ecovacs edge trimmer lifespan entities (@monsivar - #175471)
- Add restore to select template entities (@Petro31 - #176692)
- Bump neopool-modbus to 4.5.1 (@svasek - #177549)
- Enable ruff rule FURB192 (sorted-min-max) (@edenhaus - #177544)
- Migrate UniFi Protect detection sensors to the public API and add category event entities (@RaHehl - #174948)
- Do not raise the UniFi Protect stream repair when streams cannot be read (@RaHehl - #175500)
- Raise nobo_hub quality scale to platinum (@oyvindwe - #176612)
- Add missing standing fan preset icons for SwitchBot (@piitaya - #177537)
- Fix SmartThings crash when threeAxis attribute is None (@TowyTowy - #176127)
- Migrate ruuvi_gateway to use entry.runtime_data (@David-Wu1119 - #176139)
- Migrate ruuvitag_ble to use entry.runtime_data (@David-Wu1119 - #176141)
- Use proper command set for Edifier R2000DB and R2730DB (@abmantis - #177472)
- Register legacy notify action before setup test in Notifications for Android TV / Fire TV integration (@tr4nt0r - #176535)
- Move service registration to async_setup in Todoist (@some-random-climber - #175759)
- Make IOMeter use SSE (@torben-iometer - #172364)
- Increase Modern Forms scan interval to reduce WiFi lockups (@wonderslug - #177508)
- Update frontend to 20260729.0 (@bramkragten - #177555)
- Adapt tuya to new device registry API (@emontnemery - #176955)
- Adapt dhcp to new device registry API (@emontnemery - #176982)
- Adapt homekit_controller to new device registry API (@emontnemery - #176985)
- Adapt unifiprotect to new device registry API (@emontnemery - #176957)
- daikin: map Empty values exception to cannot_connect in config flow (@Rodrigorm33 - #174243)
- Correct description of “shopping_list.complete_item” action (@jamesmyatt - #175534)
- Catch missing restore keys for template cover, device_tracker, and fan (@Petro31 - #176724)
- Fix CI (@joostlek - #177557)
- Fix http yaml repair ha version (@edenhaus - #177566)
- Bump idasen-ha to 3.0.1 (@abmantis - #177567)
- Do not set a device on YAML history_stats entities (@arturpragacz - #177594)
- Do not set a device on YAML derivative entities (@arturpragacz - #177595)
- Do not set a device on YAML integration entities (@arturpragacz - #177596)
- Do not set a device on YAML statistics entities (@arturpragacz - #177597)
- Do not set a device on YAML threshold entities (@arturpragacz - #177598)
- Do not set a device on YAML trend entities (@arturpragacz - #177599)
- Do not set a device on YAML mold_indicator entities (@arturpragacz - #177600)
- Do not set a device on YAML generic_hygrostat entities (@arturpragacz - #177601)
- Do not set a device on YAML generic_thermostat entities (@arturpragacz - #177602)
- Do not set a device on YAML utility_meter entities (@arturpragacz - #177603)
- Require UniFi Protect 7.1 (@RaHehl - #177620)
- Do not stage a pending HTTP config when there is no YAML to migrate (@agners - #177622)
- Update frontend to 20260729.1 (@bramkragten - #177628)
- Fix Cookidoo migration duplicate unique IDs (@Rodrigorm33 - #174168)
- casper_glow: reject non-Casper Glow Bluetooth discoveries before config-flow handshake (@Rodrigorm33 - #174242)
- Add device verification support to Ecovacs (@bentbrain - #177429)
- Bump deebot-client to 18.5.0 (@edenhaus - #177626)
- Bump aiohue to 4.8.2 (@marcelveldt - #177631)
- Add missing icons and rename night light options for SwitchBot standing fan (@piitaya - #177634)
- Bump pyliebherrhomeapi to 0.5.1 (@mettolen - #177637)
- Don’t allow setting http config if HA is not running (@edenhaus - #177640)
- Don’t use the new default port (80) during yaml http config migration (@edenhaus - #177638)
- Fix airgradient co2 unit (@joostlek - #177639)
- Fix airgradient display brightness value (@joostlek - #177641)
- Fix search not showing up in the Music Assistant media browser (@marcelveldt - #177649)
- Bump deebot-client to 18.5.1 (@edenhaus - #177660)
- Bump intents and add test (@synesthesiam - #177662)
- Bump afsapi to 1.0.2 (@ashh87 - #177498)
- Add slugify websocket command (@piitaya - #177623)
- Fix the uom for the serial_pm sensor (@mib1185 - #177648)
- Fix: Silently ignore empty JSON string object for MQTT IR signal payload (@jbouwh - #177664)
- Fix searching within an artist returning no results in Music Assistant (@marcelveldt - #177673)
- Fix asking Music Assistant for music searching only radio (@marcelveldt - #177674)
- fix empty selector in Integral config flow (@dgomes - #177681)
- Fix LG webOS TV assumed state when off (@thecode - #177682)
- Update frontend to 20260729.2 (@bramkragten - #177684)
- Log unrecognized SSDP model names for lyngdorf (@fishloa - #177686)
- Bump aiohue to 4.9.0 (@marcelveldt - #177688)
- Remove via_device from acmeda (@emontnemery - #177703)
- Bump pyportainer to 1.0.43 (@erwindouna - #177710)
- Fix via_device race in izone (@emontnemery - #177723)
- Fix via_device race in ouman_eh_800 (@emontnemery - #177739)
- Update frontend to 20260729.3 (@bramkragten - #177853)
- Bump python-homewizard-energy to 10.2.0 (@DCSBL - #172311)
- Bump anova-wifi to 1.0.1 (@rhys-saldanha - #175146)
- Bump pyintelliclima to 0.4.0 (@dvdinth - #177561)
- Fix Hue MotionAware motion sensors not reporting motion (@marcelveldt - #177643)
- Improve sensor classification and device classes for Google Health (@allenporter - #177652)
- Update Google Health sensor units to be more reasonable (@allenporter - #177657)
- Cleanup broken switch entities for Hue automations (@marcelveldt - #177671)
- Report a failure when a media search finds nothing to play (@marcelveldt - #177678)
- Migrate integrations to setting via_device_id in DeviceInfo (@emontnemery - #177700)
- Fix via_device race in actron_air (@emontnemery - #177704)
- Fix via_device race in advantage_air (@emontnemery - #177705)
- Fix via_device race in airzone (@emontnemery - #177706)
- Fix via_device race in airzone_cloud (@emontnemery - #177707)
- Fix via_device race in directv (@emontnemery - #177712)
- Fix via_device race in eheimdigital (@emontnemery - #177713)
- Fix via_device race in elkm1 (@emontnemery - #177714)
- Fix via_device race in enphase_envoy (@emontnemery - #177715)
- Fix via_device race in isy994 (@emontnemery - #177722)
- Fix via_device race in lookin (@emontnemery - #177728)
- Fix via_device race in netgear (@emontnemery - #177734)
- Fix via_device race in motion_blinds (@emontnemery - #177735)
- Fix via_device race in reolink (@emontnemery - #177752)
- Adapt shelly to set via_device_id in DeviceInfo (@emontnemery - #177759)
- Fix via_device race in solarlog (@emontnemery - #177764)
- Fix via_device race in synology_dsm (@emontnemery - #177769)
- Adapt trane to set via_device_id in DeviceInfo (@emontnemery - #177777)
- Adapt xiaomi_miio to set via_device_id in DeviceInfo (@emontnemery - #177857)
- Adapt zwave_js to set via_device_id in DeviceInfo (@emontnemery - #177861)
- Fix via_device race in hue (@emontnemery - #177874)
- Bump eheimdigital to 1.7.1 (@autinerd - #177892)
- Add regression test for izone via_device linking (@emontnemery - #177926)
- Improve regression test for ouman_eh_800 via_device linking (@emontnemery - #177927)
- Improve regression test for shelly via_device linking (@emontnemery - #177930)
- Improve regression test for zwave_js via_device linking (@emontnemery - #177931)
- Fix via_device race in google_health (@emontnemery - #177933)
- Fix via_device race in matter (@emontnemery - #177936)
- Fix feedreader events for unsorted feeds (@mib1185 - #177954)
- Simplify subentry migrators in LLM integrations (@emontnemery - #177960)
- Remove met device cleanup (@emontnemery - #177966)
- Migrate mqtt to lookup devices scoped to config entry (@emontnemery - #177971)
- Migrate mitsubishi_comfort dhcp flow to call async_get_devices (@emontnemery - #177974)
- Migrate lifx from calling async_get_device (@emontnemery - #177978)
- Migrate roborock from calling async_get_device (@emontnemery - #177979)
- Migrate upnp from calling async_get_device (@emontnemery - #177980)
- Use modern device registry API in nextdns subentry migration (@emontnemery - #177983)
- Migrate sonos to lookup device scoped to config entry (@emontnemery - #177984)
- Bump reolink_aio to 0.21.8 (@starkillerOG - #177985)
- Mark Google Health account device as service device (@allenporter - #177996)
- Bump KNX dependencies (xknx 3.18.0, xknxproject 3.10.0, knx-telegram-… (@martinhoefling - #178031)
- Bump esphome-dashboard-api to 1.4.0 (@bdraco - #178038)
- Migrate mqtt to call async_remove_device (@emontnemery - #178055)
- Migrate zwave_js to call async_remove_device (@emontnemery - #178060)
- Fix teslemetry streaming enum sensors swallowing None updates (@Bre77 - #175746)
- Bump py-opendisplay to 7.15.0 (@g4bri3lDev - #177405)
- Fix Hue button automations not triggering after a restart (@marcelveldt - #177427)
- Bump jellyfin-apiclient-python to 1.16.0 (@electricsteve - #177466)
- Fix via_device race in lyngdorf (@emontnemery - #177732)
- Bump lyngdorf to 1.4.0 (@fishloa - #177685)
- Fix via_device race in anthemav (@emontnemery - #177708)
- Adapt bosch_alarm to set via_device_id in DeviceInfo (@emontnemery - #177709)
- Adapt bosch_shc to set via_device_id in DeviceInfo (@emontnemery - #177711)
- Fix via_device race in freebox (@emontnemery - #177716)
- Fix via_device race in guardian (@emontnemery - #177717)
- Fix via_device race in habitica (@emontnemery - #177718)
- Adapt hikvision to set via_device_id in DeviceInfo (@emontnemery - #177719)
- Adapt hive to set via_device_id in DeviceInfo (@emontnemery - #177720)
- Adapt homee to set via_device_id in DeviceInfo (@emontnemery - #177721)
- Fix via_device race in litejet (@emontnemery - #177724)
- Fix via_device race in lupusec (@emontnemery - #177729)
- Adapt lutron to set via_device_id in DeviceInfo (@emontnemery - #177730)
- Adapt lutron_caseta to set via_device_id in DeviceInfo (@emontnemery - #177731)
- Fix via_device race in melnor (@emontnemery - #177733)
- Adapt nobo_hub to set via_device_id in DeviceInfo (@emontnemery - #177737)
- Fix via_device race in ntfy (@emontnemery - #177738)
- Fix via_device race in overkiz (@emontnemery - #177740)
- Fix via_device race in playstation_network (@emontnemery - #177743)
- Fix via_device race in point (@emontnemery - #177744)
- Fix via_device race in portainer (@emontnemery - #177745)
- Fix via_device race in powerwall (@emontnemery - #177747)
- Fix via_device race in proxmoxve (@emontnemery - #177748)
- Adapt qbus to set via_device_id in DeviceInfo (@emontnemery - #177750)
- Fix via_device race in rainbird (@emontnemery - #177751)
- Adapt russound_rio to set via_device_id in DeviceInfo (@emontnemery - #177756)
- Fix via_device race in sense (@emontnemery - #177757)
- Fix via_device race in sensibo (@emontnemery - #177758)
- Adapt sia to set via_device_id in DeviceInfo (@emontnemery - #177760)
- Adapt smartthings to set via_device_id in DeviceInfo (@emontnemery - #177761)
- Fix via_device race in solaredge (@emontnemery - #177763)
- Adapt sunricher_dali to set via_device_id in DeviceInfo (@emontnemery - #177768)
- Fix via_device race in tessie (@emontnemery - #177770)
- Improve entity class in Midea (@chemelli74 - #177900)
- Improve DeviceInfo for Midea (@chemelli74 - #177771)
- Fix via_device race in toon (@emontnemery - #177774)
- Fix via_device race in tractive (@emontnemery - #177775)
- Adapt unifiprotect to set via_device_id in DeviceInfo (@emontnemery - #177779)
- Adapt velux to set via_device_id in DeviceInfo (@emontnemery - #177786)
- Fix via_device race in verisure (@emontnemery - #177847)
- Adapt withings to set via_device_id in DeviceInfo (@emontnemery - #177851)
- Adapt wmspro to set via_device_id in DeviceInfo (@emontnemery - #177852)
- Adapt xiaomi_aqara to set via_device_id in DeviceInfo (@emontnemery - #177856)
- Fix via_device race in yale_smart_alarm (@emontnemery - #177858)
- Fix via_device race in yardian (@emontnemery - #177859)
- Adapt zimi to set via_device_id in DeviceInfo (@emontnemery - #177860)
- Remove via_device from brunt (@emontnemery - #177862)
- Remove via_device from switchbee (@emontnemery - #177864)
- Remove via_device from wilight (@emontnemery - #177865)
- Fix via_device race in homematicip_cloud (@emontnemery - #177867)
- Fix via_device race in fibaro (@emontnemery - #177868)
- Bump solaredge-web to 0.3.0 (@tronikos - #177899)
- Bump tuya-device-sharing-sdk to 0.2.14 (@ritchie-cai - #177901)
- Update hassil to 3.11.0 (@renovate - #177912)
- Fix via_device race in bluesound (@emontnemery - #177932)
- Fix via_device race in homewizard (@emontnemery - #177934)
- Fix via_device race in lyric (@emontnemery - #177935)
- Update integrations to call async_remove_device (part 1) (@emontnemery - #177962)
- Update integrations to call async_remove_device (part 2) (@emontnemery - #177963)
- Migrate insteon to lookup devices scoped to config entry (@emontnemery - #177964)
- Migrate home_connect dhcp flow to call async_get_devices (@emontnemery - #177972)
- Migrate knocki dhcp flow to call async_get_devices (@emontnemery - #177973)
- Migrate onvif dhcp flow to call async_get_devices (@emontnemery - #177975)
- Migrate ring dhcp flow to call async_get_devices (@emontnemery - #177976)
- Migrate teltonika dhcp flow to call async_get_devices (@emontnemery - #177977)
- Make device trackers create their own devices (@emontnemery - #178003)
- Fix ESPHome dashboard adoption locking HA out of provisioned devices (@bdraco - #178039)
- Update knx-frontend to 2026.8.2.133643 (@farmio - #178044)
- Fix a stale encryption key shadowing the working one in the config flow (@bdraco - #178047)
- Migrate gatus to call async_remove_device (@emontnemery - #178053)
- Migrate keenetic_ndms2 to call async_remove_device (@emontnemery - #178054)
- Migrate purpleair to call async_remove_device (@emontnemery - #178056)
- Migrate tradfri to call async_remove_device (@emontnemery - #178057)
- Migrate withings to call async_remove_device (@emontnemery - #178058)
- Migrate xbox to use modern device registry API when moving devices (@emontnemery - #178059)
- Fix flaky search test (@emontnemery - #178062)
- Disable check requirements aw on PR against master (@edenhaus - #178065)
- Remove not used login param (@MartinHjelmare - #178068)
- Bump wiim to 0.1.6 (@Linkplay2020 - #178070)
- Fix via_device race in arcam_fmj (@emontnemery - #178073)
- Fix via_device race in tplink (@emontnemery - #178075)
- Fix via_device race in victron_gx (@emontnemery - #178076)
- Adapt incomfort to set via_device_id in DeviceInfo (@emontnemery - #178077)
- Adapt notion to set via_device_id in DeviceInfo (@emontnemery - #178078)
- Adapt tado to set via_device_id in DeviceInfo (@emontnemery - #178079)
- Adapt telegram_bot to set via_device_id in DeviceInfo (@emontnemery - #178080)
- Adapt velbus to set via_device_id in DeviceInfo (@emontnemery - #178081)
- Bump aiowebostv to 0.9.0 (@thecode - #178091)
- Adapt drop_connect to set via_device_id in DeviceInfo (@emontnemery - #178104)
- Don’t fire a feedreader event, when there are no new entries (@mib1185 - #178106)
- Bump google-health-api to 0.8.0 (@allenporter - #178119)
- Bump pyatmo to v9.6.0 (@cgtobi - #178130)
- Bump pynintendoparental to 2.5.0 (@pantherale0 - #178138)
- Bump pyHomee to 1.4.3 (@Taraman17 - #178146)
- Update frontend to 20260729.4 (@bramkragten - #178147)
- Fix Netatmo entities going unavailable on transient API errors (@cgtobi - #178129)
- Add scan timing info to config_flow for Alexa Devices (@chemelli74 - #177223)
- Make Portainer container recreate service admin-only (@balloob - #177301)
- Allow Alexa Devices setup to continue when additional feature APIs fail (@chemelli74 - #177402)
- Improve naming of Hue entertainment area sensors (@marcelveldt - #177653)
- Fix Hue Mimic Presence automations switch (@marcelveldt - #177691)
- Fixed device key retrieval issue for Midea (@chemelli74 - #177766)
- Fix assist capability in Open Router when using Web Search (@trwy7 - #178045)
- Fix via_device race in hydrawise (@emontnemery - #178074)
- Fix config entry lookup in motioneye (@emontnemery - #178151)
- Fix config entry lookup in switchbot_cloud (@emontnemery - #178155)
- Adapt bond to set via_device_id in DeviceInfo (@emontnemery - #178156)
- Add title to AI task entity component (@joostlek - #178159)
- Adapt onewire to set via_device_id in DeviceInfo (@emontnemery - #178162)
- Adapt homekit_controller to set via_device_id in DeviceInfo (@emontnemery - #178163)
- Adapt plugwise to set via_device_id in DeviceInfo (@emontnemery - #178164)
- Tellduslive via device (@emontnemery - #178166)
- Adapt smartthings to set via_device_id in DeviceInfo (@emontnemery - #178167)
- Adapt zha to set via_device_id in DeviceInfo (@emontnemery - #178168)
- Fix via_device race in zinvolt (@emontnemery - #178169)
- Fix via_device race in duco (@emontnemery - #178170)
- Fix via_device race in nexia (@emontnemery - #178171)
- Fix via_device race in yamaha_musiccast (@emontnemery - #178172)
- Handle intended via_device missing in tellduslive (@emontnemery - #178178)
- Improve via_device handling in smartthings (@emontnemery - #178179)
- Fix via_device in hive linking to itself (@emontnemery - #178190)
- Fix via_device in squeezebox linking to itself (@emontnemery - #178191)
- Update frontend to 20260729.5 (@bramkragten - #178221)
Release 2026.8.1 - August 7
- Fixes #173399 Seerr webhook registration (@shtefko - #177201)
- Debounce Matter cover state writes to coalesce split attribute updates (@agners - #177540)
- Bump pydaikin to 2.18.4 (@fredrike - #178001)
- Adapt vicare to set via_device_id in DeviceInfo (@emontnemery - #178229)
- Adapt mqtt to set via_device_id in DeviceInfo (@emontnemery - #178234)
- bump pyenphase to 3.2.1 (@catsmanac - #178273)
- Bump lyngdorf to 1.4.3 (@fishloa - #178323)
- Track shielded service call task in REST API (@arturpragacz - #178377)
- Bump aiowebostv to v0.9.1 (@thecode - #178384)
- chore: update python-picnic-api2 to v2.0.1 (@codesalatdev - #178395)
- Bump lyngdorf to 1.4.4 (@fishloa - #178401)
- Use SmartThings cooling setpoint range for air conditioners (@StellarSea - #178430)
- Bump solaredge-web to 0.3.1 (@tronikos - #178437)
- Bump pytrydan to 1.0.5 (@dgomes - #178447)
- mikrotik: Don’t reuse a string from Vodafone Station (@reedy - #178455)
- Update frontend to 20260729.6 (@bramkragten - #178470)
Release 2026.8.2 - August 14
- Teslemetry: convert streamed tyre pressure and isolation resistance to their declared units (@Bre77 - #177541)
- Handle inconsistence api response in Husqvarna Automower (@Thomas55555 - #178200)
- Scope hassfest Docker manifest.json discovery to documented locations (@jabone - #178265)
- Fix/tplink omada switch port refresh (@rubempoli - #178270)
- Unload legacy notify actions in SMTP integration (@tr4nt0r - #176747)
- Fix potential race condition in SMTP integration (@tr4nt0r - #178416)
- Fix adaptive update interval Tado (@erwindouna - #178515)
- Bump midea-local to 7.0.0 (@chemelli74 - #178535)
- Bump python-bsblan to 6.1.8 (@liudger - #178561)
- Victron GX: Fix regression in SSDP rediscovery with missing host (@tomer-w - #178585)
- Bump evohome-async to v2.1.0 (@zxdavb - #178588)
- Fix Reolink time import (@starkillerOG - #178597)
- Add
handle_safe_areaopt-out topanel_customand fix KNX panel (@farmio - #178598) - Use common logger in Mikrotik (@chemelli74 - #178602)
- Fix sensors for Mikrotik (@chemelli74 - #178604)
- Bump ical to 14.1.0 (@allenporter - #178626)
- Update xknx to 3.19.0 (@farmio - #178652)
- Bump aiolyric to 2.1.2 (@timmo001 - #178670)
- Create hassio config entry during setup instead of deferring to started (@agners - #178677)
- Handle Wyoming error events (@synesthesiam - #178696)
- Bump homematicip to 2.14.1 (@lackas - #178701)
- Report a refused alarm activation in homematicip_cloud (@lackas - #179139)
- Fix missing optional
gameserveripfield in Steam Online dataclass (@tr4nt0r - #178751) - Fix delayed trains being dropped from Israel Rail departures (@mikomgk - #178773)
- Bump lyngdorf to 1.4.9 (@fishloa - #178784)
- Bump aiopvapi to 3.4.1 for hunterdouglas_powerview (@kingy444 - #178792)
- Make tedee unknown during calibration and updates (@zweckj - #179048)
- Bump blebox-uniapi to v2.5.7 (@bkobus-bbx - #179050)
- Fix composed devices behind Matter bridge losing “via device” (@TheJulianJES - #179118)
- Electric Kiwi: bugfix connections empty not checked (@mikey0000 - #179119)
- Separate energy endpoint MELCloud Home (@erwindouna - #179124)
- Update frontend to 20260729.7 (@bramkragten - #179131)
- Bump incomfort-client to v0.7.1 (@jbouwh - #179134)
- Bump py-nymta to 0.4.1 (@OnFreund - #179136)
- Bump homematicip to 2.15.0 (@lackas - #179153)
Release 2026.8.3 - August 21
- Show artwork and a play button when opening a Sonos music library album (@bharat - #177510)
- Pass config entry explicitly in Supla coordinator (@Fistacho - #178347)
- Bump holidays to 0.102 (@gjohansson-ST - #179170)
-
errorscould beNonein Shelly Wall Display status (@bieniu - #179207) - Bump google-health-api to 0.9.0 (@allenporter - #179323)
- Bump ical to 14.1.1 (@allenporter - #179325)
- Fix Signal Messenger self notifications (@brozikcz - #179351)
- Remove use of default_ device info in device_tracker (@emontnemery - #179380)
- Remove use of default_ device info in dlna_dmr (@emontnemery - #179381)
- Remove use of default_ device info in fritz (@emontnemery - #179382)
- Remove use of default_ device info in netgear (@emontnemery - #179383)
- Remove use of default_ device info in unifi (@emontnemery - #179384)
- Remove use of default_ device info in wake_on_lan (@emontnemery - #179385)
- Use dedicated translation on sensor entities if it’s Ecovacs mower (@edenhaus - #179416)
- Revert host update on Overkiz local gateway rediscovery (@iMicknl - #179422)
- Fix Vizio media player crash when volume is missing from audio settings (@raman325 - #179431)
- Fix KeyError in Shelly integration for LinkedGo ST802 in
floor heatingmode (@bieniu - #179435) - Invalidate conversation slot-list cache on device registry changes (@emontnemery - #179486)
- Log warning when event triggers filter on composite device (@emontnemery - #179490)
- Bump holidays to 0.103 (@gjohansson-ST - #179500)
- Remove just go2rtc sessions of the failing camera (@edenhaus - #179534)
- Bump reolink-aio to 0.21.9 (@starkillerOG - #179625)
- bump pyenphase to 4.0 and add required None handling and tests (@catsmanac - #179673)
- Bump volvocarsapi to v0.4.4 for the Volvo integration (@thomasddn - #179712)
- Bump aiowebostv to 0.9.2 (@thecode - #179757)