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