Full changelog for Home Assistant 2026.9
These are all the changes included in the Home Assistant 2026.9 release. For a summary in a more readable format Release notes blog for this release.
All changes
- Bump version to 2026.9.0.dev0 (@bramkragten - #177558)
- Add speech speed option to Fish Audio TTS (@helitik - #174830)
- Bump aiomodernforms to 0.2.0 (@wonderslug - #177506)
- Add missing translation to Backup (@tr4nt0r - #177562)
- Instruct copilot to ignore link refs in PR template (@abmantis - #177574)
- bump soco to 0.31.2 for Sonos (@PeteRager - #177575)
- Use new discovery schemas for all Z-Wave power management binary sensors (@MartinHjelmare - #177471)
- Bump env-canada to 0.18.0 (@michaeldavie - #177569)
- Bump teslemetry-stream to 0.10.0 (@Bre77 - #177546)
- Add translation for UpdateFailed exception in Vizio (@raman325 - #177591)
- Bump docker/login-action from 4.4.0 to 4.5.0 (@dependabot - #177616)
- Update zizmor (@renovatebot - #177606)
- Add zwave_js/subscribe_config_parameter_updates WS command (@raman325 - #175726)
- Add Coordinator to LG WebOS TV (@thecode - #177627)
- Remove VLC integration (@tr4nt0r - #177619)
- Enable strict typing for vizio (@raman325 - #177592)
- Bump github/codeql-action/init from 4.37.2 to 4.37.3 (@dependabot - #177521)
- Bump actions/cache/restore from 5.0.5 to 6.1.0 (@dependabot - #177523)
- Bump actions/cache/save from 5.0.5 to 6.1.0 (@dependabot - #177522)
- Add username parameter to search action in Music Assistant (@fmunkes - #176347)
- Fix Ollama tests waiting for subentry reloads (@yuxincs - #177693)
- Add rear defroster binary sensor to Teslemetry (@Bre77 - #177609)
- Bump docker/login-action from 4.5.0 to 4.5.1 (@dependabot - #177702)
- Update uv to 0.11.32 (@renovatebot - #177692)
- Automatically detect device class in vizio config flow (@raman325 - #177642)
- ZWave.me: Light support for off transition (@Tomeamis - #169333)
- Add get_prices service to Green Planet Energy integration (@petschni - #166405)
- Update types packages (@cdce8p - #177741)
- Update aiofiles to 25.1.0 (@cdce8p - #177742)
- Add thinking budget configuration for Gemini 2.5 and 3 models (@mxwmnn - #164056)
- Remove name selection (@mikewoudenberg - #169446)
- Add new values for Compit Binary sensor (@Przemko92 - #174239)
- Introduce base entity for Mikrotik (@chemelli74 - #177889)
- Limit scope to only climate entities on Midea tests (@rokam - #177902)
- Remove datetime.now from Teslemetry (@Bre77 - #177898)
- Replace datetime.now() with time.time() in Watts integration (@theobld-ww - #177885)
- Refactor datetime Tado (@erwindouna - #177879)
- Update mock token last_access to a fixed UTC datetime in ntfy tests (@tr4nt0r - #177896)
- Remove naive datetime from myuplink (@astrandb - #177886)
- Remove stale comment from trigger helper (@abmantis - #177909)
- Remove error placeholders in Firefly III (@erwindouna - #177882)
- Add timer number to ToGrill (@thumbnail - #177359)
- Add floodlight schedule time entities to Reolink integration (@Lukkasss - #173140)
- fix(omie): remove naive datetime.now() usage (@luuuis - #177921)
- Refactor datetime Firefly III (@erwindouna - #177876)
- Avoid naive datetime.now() in backblaze_b2 tests (@ElCruncharino - #177854)
- Migrate mailgun off hass.data[DOMAIN] to typed HassKey (@sankalpsthakur - #177928)
- Add duration, fault and low battery sensor to homekit (@nijel - #171205)
- Add username parameter to get_library action in Music Assistant (@fmunkes - #177937)
- Avoid naive datetime.now() in Aquacell (@Jordi1990 - #177883)
- Add shared base entity class to vizio (@raman325 - #177586)
- Use correct unit for Wi-Fi RSSI sensor (@lexpostma - #177550)
- Improve test coverage for WiiM (@Linkplay2020 - #177545)
- compit: fix KeyError in test fixture for devices without CURRENT_TEMPERATURE mapping (@mosandlt - #177894)
- Bump pythonkuma to 0.5.2 (@tr4nt0r - #177990)
- Update nibe to 2.24.0 (@elupus - #177987)
- Fix duplicate coordinator creation in SwitchBot Cloud (@marcus-campbell - #177993)
- Abort Coolmaster setup when the host is already configured (@dougrathbone - #178009)
- Fix Philips TV state without powerstate endpoint (@Opperiesen - #178004)
- Bump energieleser to 0.1.6 (@amitkio - #177645)
- Add Aqara Shutter Switch H2 EU fixture to Matter tests (@lboue - #178035)
- Fix Risco naive
datetime.now()(@FredericMa - #178040) - Add missing codeowner to Midea (@chemelli74 - #178063)
- Add 100% coverage to utils for Mikrotik (@chemelli74 - #177878)
- Bump google-genai to 2.16.0 (@tronikos - #177922)
- Remove redundancy and add typing to tests for Mikrotik (@chemelli74 - #178050)
- Bump docker/login-action from 4.5.1 to 4.5.2 (@dependabot - #178052)
- Fix naive datetime in Z-Wave JS migration backup (@ccyyy1023 - #177994)
- Bump actions/stale from 10.4.0 to 11.0.0 (@dependabot - #178051)
- Avoid naive datetime.now() in smarttub tests (@mdz - #178036)
- Avoid naive datetime.now() in Subaru config flow (@jpettitt - #177947)
- Stop using naive now in here_travel_time (@eifinger - #177942)
- Migrate growatt_server off hass.data[DOMAIN] (@sankalpsthakur - #177925)
- Remove hugo-vrijswijk from
backblaze_b2codeowners (@hugo-vrijswijk - #178067) - Add UPL-1.0 to OSI approved SPDX licenses (@Djelibeybi - #177940)
- Add switch platform to Mikrotik (@chemelli74 - #177245)
- Bump aw to 0.83.4 (@edenhaus - #178084)
- Add binary_sensor platform to Mikrotik (@chemelli74 - #177873)
- Mention async_register_admin_service in AGENTS.md (@MartinHjelmare - #178097)
- Fix check requirements aw for non members (@edenhaus - #178098)
- Avoid naive datetime.now() in weatherkit coordinator (@tjhorner - #178103)
- Add LG webOS TV screen power switch entity (@darkrain-nl - #177938)
- Explicitly set parallel-updates for OpenAI Conversation (@felipeofdev-ai - #178110)
- Improve NUT outlet detection without requiring outlet.count (@martin12as - #165152)
- bosch_shc: exercise via_device_id test through config entry setup (@mosandlt - #178102)
- Make switch non-optimistic for Mikrotik (@chemelli74 - #178113)
- Migrate google_mail off hass.data[DOMAIN] to entry.runtime_data / typed storage (@sankalpsthakur - #177949)
- Use library model names in tesla_fleet (@Bre77 - #178111)
- Use uv run –no-sync for agents (@MartinHjelmare - #178127)
- Add silence-alarm button to ToGrill (@thumbnail - #177360)
- Bump tesla-fleet-api to 1.8.0 (@Bre77 - #178121)
- Add test for _abort_if_unique_id_configured in Google Health (@allenporter - #178122)
- Update infrared-protocols to 9.0.0 (@renovatebot - #178120)
- Translate WiiM browse media errors (@Linkplay2020 - #178118)
- Add light platform and options flow to NeoPool (@svasek - #176039)
- Add sensor platform to the actron air integration (@kclif9 - #169553)
- Remove stale paired devices in Google Health integration (@allenporter - #178123)
- Avoid naive datetime.now() in ai_task (@nikosavola - #178133)
- Add select platform to Mikrotik (@chemelli74 - #177246)
- Use entity attribute enums in MQTT blocked attributes (@epenet - #178139)
- Remove YAML import from NamecheapDNS integration (@tr4nt0r - #177611)
- Clean naive datetime from config validation tests (@MartinHjelmare - #177850)
- Add websocket command to list LLM APIs (@magnusoverli - #177903)
- feat: force account picker when adding a Spotify account (@felixschndr - #177669)
- Add binary sensor platform to actron_air integration (@kclif9 - #178148)
- clean up LG WebOS TV init (@thecode - #177651)
- Promote WiiM to Gold quality scale (@Linkplay2020 - #178066)
- Remove access to DeviceEntry.primary_config_entry from analytics (@emontnemery - #178149)
- Make BTHome event entity names translatable (@piitaya - #178175)
- Use absolute volume set in vizio media player (@raman325 - #176557)
- Bump pyintelliclima to 0.4.1 (@dvdinth - #178157)
- Relax constraint on counter initial value (@karwosts - #177951)
- Update LG webOS TV common-modules to done (@thecode - #178205)
- Remove unneeded test in Portainer (@erwindouna - #178185)
- Use dt_util.naive_now() in upnp tests (@StevenLooman - #178198)
- Update uv to 0.12.0 (@renovatebot - #178210)
- Require admin for Z-Wave lock credential services (@balloob - #177300)
- Add Ridder HortiMaX Pro (HortOS) integration (@wildekek - #177247)
- Bump docker/login-action from 4.5.2 to 4.6.0 (@dependabot - #178214)
- Bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (@dependabot - #178216)
- Bump actions/attest from 4.2.0 to 4.2.1 (@dependabot - #178215)
- Fix Nintendo parental-controls PIN service authorization (@balloob - #177297)
- Bump Google Health quality scale to platinum (@allenporter - #177989)
- Add input_button support to button.pressed trigger (@abmantis - #178161)
- Add Reolink time synchronization button (@starkillerOG - #177352)
- Add Reolink anti-flicker entity (@starkillerOG - #177411)
- Bump ttls to 1.10.0 (@mstu01 - #177418)
- Bump plugwise to v1.14.4 (@bouwew - #177957)
- Add entity translations to Govee BLE (@piitaya - #177644)
- Adapt hortimax to set via_device_id in DeviceInfo (@emontnemery - #178233)
- Use base entity attribute enums in MQTT base blocked attributes (@epenet - #178231)
- Raise ServiceValidationError for invalid vizio source and sound mode (@raman325 - #177588)
- Import DOMAIN constants in Alexa (@epenet - #178260)
- Import DOMAIN constants in Google Assistant (@epenet - #178262)
- Use entity attribute enums in logbook (@epenet - #178254)
- Improve Z-Wave heat alarm binary sensors discovery (@MartinHjelmare - #177486)
- Import DOMAIN constants in HomeKit (@epenet - #178261)
- Use EntityStateAttribute enum in Plant (@epenet - #178251)
- Use EntityStateAttribute enum in Yale sensor (@epenet - #178249)
- Add quality_scale.yaml for Schlage (@dknowles2 - #178300)
- Add Cybertruck tonneau cover to Teslemetry (@Bre77 - #177610)
- Require admin for update install, skip and clear skipped actions (@balloob - #178232)
- Switchbot Cloud: Unify coding style [Water Detector] (@XiaoLing-git - #178324)
- Switchbot Cloud: Unify coding style [Light Series] (@XiaoLing-git - #178325)
- Add reauthentication flow to ouman_eh_800 (@Markus98 - #178312)
- Use EntityStateAttribute enum in Utility Meter (@epenet - #178252)
- Bump tesla-fleet-api to 1.8.2 (@Bre77 - #178333)
- Store Schlage coordinator data as a plain dict (@dknowles2 - #178342)
- Bump blebox_uniapi to v2.5.6 (@bkobus-bbx - #178353)
- Bump pyimouapi to 1.3.4 (@Imou-OpenPlatform - #178351)
- Add reconfigure flow to Coolmaster (@dougrathbone - #177995)
- Add quality scale (gold) to Blebox (@bkobus-bbx - #175368)
- Migrate calls to async_get_device in tests (part 1) (@emontnemery - #178322)
- Migrate calls to async_get_device in tests (part 3) (@emontnemery - #178328)
- Migrate calls to async_get_device in tests (part 5) (@emontnemery - #178336)
- Bump indevolt-api to v1.8.7 (@Xirt - #178378)
- Migrate calls to async_get_device in tests (part 4) (@emontnemery - #178334)
- Migrate calls to async_get_device in rfxtrx tests (@emontnemery - #178371)
- Bump zhong-hong-hvac to 1.0.16 (@crhan - #178412)
- Add button availability to Portainer containers (@erwindouna - #178400)
- Add binary_sensor platform to Subaru (@jpettitt - #177907)
- Pass new_config_entry_id to async_update_device in tests (@emontnemery - #178435)
- Add second output button support for BleBox gateBox devices (@bkobus-bbx - #178431)
- Use E2E tests as a publishing gate in builder workflow (@abmantis - #178269)
- Migrate calls to async_get_device in tests (part 2) (@emontnemery - #178326)
- Migrate calls to async_get_device in mqtt tests (@emontnemery - #178340)
- Call async_remove_device to remove device in tests (@emontnemery - #178432)
- Update honeywell device cleanup test (@emontnemery - #178441)
- Use product name as model and add hardware version for BleBox devices info (@bkobus-bbx - #178421)
- Migrate calls to async_get_device in ruckus_unleashed tests (@emontnemery - #178417)
- Migrate calls to async_get_device in duco tests (@emontnemery - #178367)
- Migrate calls to async_get_device in tests (part 7) (@emontnemery - #178365)
- Migrate calls to async_get_device in homekit_controller tests (@emontnemery - #178356)
- Migrate calls to async_get_device in zwave_js tests (@emontnemery - #178355)
- Migrate calls to async_get_device in tasmota tests (@emontnemery - #178343)
- Migrate calls to async_get_device in tests (part 6) (@emontnemery - #178339)
- Switchbot Cloud:Enable webhook for the Light series (@XiaoLing-git - #178422)
- Switchbot Cloud: Add new supported devices[Permanent Outdoor Lights] (@XiaoLing-git - #178427)
- Migrate calls to async_get_device in shelly tests (@emontnemery - #178418)
- Migrate calls to async_get_device in unifi_access tests (@emontnemery - #178419)
- Call async_remove_device to remove device in entity registry tests (@emontnemery - #178436)
- Adapt LLM integration migration tests to single config entry devices (@emontnemery - #178442)
- Migrate calls to async_get_device in config tests (@emontnemery - #178366)
- Use text selectors in ouman_eh_800 user and reconfigure forms (@Markus98 - #178331)
- Migrate hortimax from calling async_get_device (@emontnemery - #178479)
- Bump gatus-api to 1.0.5 (@TN-1 - #178374)
- Add myself as codeowner of ZhongHong (@crhan - #178498)
- Bump zhong-hong-hvac to 1.0.17 (@crhan - #178500)
- Migrate calls to async_get_device in tests (@emontnemery - #178511)
- Fix duco tests causing via device loop (@emontnemery - #178463)
- Bump lyngdorf to 1.4.8 (@fishloa - #178518)
- Allow grouping KNX YAML entities into devices (@martinhoefling - #178206)
- Migrate calls to async_get_device in mobile_app tests (@emontnemery - #178370)
- Bump pydaikin to 2.18.5 (@fredrike - #178527)
- Adapt WS config/device_registry/remove_config_entry to device registry changes (@emontnemery - #178513)
- bump pystiebeleltron from 0.5.0 to 0.6.2 (@pail23 - #178362)
- Update typing-extensions to 4.16.0 (@cdce8p - #178537)
- Don’t allow devices setting the via device link to itself (@emontnemery - #178194)
- Migrate tests to specifying via device with via_device_id (@emontnemery - #178546)
- Deprecate outdated device registry APIs (@emontnemery - #178465)
- Add new program keys to Home Connect (@Diegorro98 - #178547)
- Avoid a naive datetime.now() in generic (@soldier2008 - #178486)
- Async fixture for stiebel_eltron (@zweckj - #178580)
- Refactor Gatus to use common base entity class (@TN-1 - #178587)
- Add support for Gatus Latency statistic (@TN-1 - #178376)
- Fix Subaru options flow test using empty config data (@jpettitt - #178612)
- Bump aioimmich to 0.17.0 (@mib1185 - #178615)
- Bump env-canada to 0.19.0 (@michaeldavie - #178617)
- Flush KNX Postgres telegram buffer every second instead of every 10 minutes (@martinhoefling - #178494)
- Add status code sensor to Gatus integration (@TN-1 - #178606)
- Clean up vizio config flow legacy import leftovers (@raman325 - #177584)
- Set correct BrowseMedia title in immich (@zweckj - #178388)
- Bump github/codeql-action/init from 4.37.3 to 4.37.5 (@dependabot - #178644)
- Bump github/codeql-action/analyze from 4.37.3 to 4.37.5 (@dependabot - #178643)
- Add dataclasses-json to forbidden packages (@cdce8p - #178632)
- Switchbot Cloud: Unify coding style [Curtain Series] (@XiaoLing-git - #178653)
- Fix integration name for MikroTik (@chemelli74 - #178651)
- Bump gatus-api to V1.1.0 (@TN-1 - #178640)
- Add dynamic device handling to Gatus (@TN-1 - #176757)
- Bump pnpm/action-setup from 6.0.9 to 6.0.10 (@dependabot - #178645)
- Use state constants and type checking in Gatus binary sensor (@TN-1 - #178603)
- Bump switchbot-api to 2.13.0 (@XiaoLing-git - #178658)
- Add reply-to message ID to Telegram bot events (@cajonKA - #177175)
- Update pylint to 4.0.7 (@cdce8p - #178636)
- Bump gatus-api to V1.2.0 (@TN-1 - #178668)
- Bump homematicip to 2.14.0 (@lackas - #178654)
- Add region selection to Tesla Fleet config flow (@Bre77 - #177701)
- Adjust gardena to key on unique id (@elupus - #178624)
- Refactor zone suffix handling for multi-zone devices in LiebherrSelectEntity (@mettolen - #177503)
- Bump pylitterbot to 2025.6.4 (@natekspencer - #178680)
- Add 100% coverage for select in MikroTik (@chemelli74 - #178683)
- Bump plugwise to v1.14.5 (@bouwew - #178601)
- Bump mitsubishi-comfort to 0.5.2 (@nikolairahimi - #178600)
- Update min version error string for Mealie (@andrew-codechimp - #178532)
- Switchbot Cloud: Clean up duplicate code (@XiaoLing-git - #178714)
- Add more sensors to MikroTik (@chemelli74 - #178678)
- Add parallel updates to device_tracker for MikroTik (@chemelli74 - #178702)
- Update iOS Last Seen to be timezone-aware (@EReaso - #178713)
- Add temperature step handling for Liebherr integration (@mettolen - #177863)
- Bump watergate-local-api to 2026.2.2 (@adam-the-hero - #178725)
- Avoid a naive datetime.now() in starline (@soldier2008 - #178242)
- Avoid a naive datetime.now() in tesla_fleet (@soldier2008 - #178247)
- Avoid a naive datetime.now() in google (@soldier2008 - #178253)
- Update ruff (@renovatebot - #178413)
- Bump github/codeql-action/init from 4.37.5 to 4.37.6 (@dependabot - #178720)
- Bump github/codeql-action/analyze from 4.37.5 to 4.37.6 (@dependabot - #178719)
- Bump actions/attest from 4.2.1 to 4.2.2 (@dependabot - #178718)
- Add WS command config/device_registry/remove (@emontnemery - #178319)
- Bump pyatmo to v9.7.0 (@cgtobi - #178728)
- Add a device for every Netatmo home (@cgtobi - #178724)
- Add iZone supply and return temperature sensors (@Swamp-Ig - #178348)
- Add missing device_class to update for MikroTIk (@chemelli74 - #178704)
- Add missing entity_category to uptime for MikroTik (@chemelli74 - #178734)
- Add select platform to the Imou integration (@Imou-OpenPlatform - #177456)
- Update LED Infrared to Platinum 🏆️ (@tr4nt0r - #178716)
- Use MikrotikBaseEntity in device_tracker for MikroTik (@chemelli74 - #178703)
- Update aiofile constraint (@cdce8p - #178731)
- Add ScorpionTrack ignition binary sensor (@Herbertmt978 - #177470)
- Bump monzopy to 1.8.0 (@JakeMartin-ICL - #178738)
- Bump zhong-hong-hvac to 1.0.18 (@crhan - #178685)
- feat(solax-integration): Persist discovery result and lets the user be the tie breaker instead of asyncio scheduler (@kdehairy - #176275)
- Update slixmpp to 1.17.0 (@cdce8p - #178635)
- Add vicare test for missing gateway (@emontnemery - #178722)
- Add device identity fields to insteon device/get websocket response (@connorgallopo - #177190)
- Resolve vizio hosts stored without a port (@raman325 - #178502)
- Update zizmor (@renovatebot - #178573)
- Bump python-izone to 1.3.10 (@Swamp-Ig - #178744)
- Add PIN recovery test to Subaru config flow (@jpettitt - #178679)
- Add 3 phase entities to iometer (@torben-iometer - #178675)
- Use async_get_device_by_identifier in solax tests (@justanotherariel - #178750)
- Bump aiohomeconnect to 0.39.1 (@Diegorro98 - #178757)
- Fix ruff formatting MD files (@jbouwh - #178770)
- Update gardena release to 2.10.1 (@elupus - #178769)
- Use dt_util.naive_now() for govee_light_local #177805 (@EReaso - #178774)
- Switchbot Cloud:Enable webhook for the Cover (@XiaoLing-git - #178782)
- Bump plugwise to v1.14.6 (@bouwew - #178788)
- Update calls to MockHAClientWebSocket.remove_device in tests (@emontnemery - #178745)
- Translate Imou button, switch, and camera API errors (@Imou-OpenPlatform - #178796)
- Improve iZone user Search with progress and handoff to Discovered flows (@Swamp-Ig - #178721)
- Fix wirelesstag sensors missing for non-ASCII tag names (@kohai-ut - #172590)
- Import shared Imou PARAM constants from pyimouapi (@Imou-OpenPlatform - #178798)
- Add brightness step buttons for Overkiz RTS dimmable lights (@iMicknl - #178797)
- Add binary sensor snapshot test to flume (@Artem-B - #178497)
- Fix DeprecationWarning in hassfest (@cdce8p - #178772)
- Bump pystiebeleltron to 0.6.3 (@Optic00 - #178801)
- Add last event enum to Gatus integration (@TN-1 - #178664)
- Bump dorny/paths-filter from 4.0.2 to 4.0.3 (@dependabot - #178785)
- Add new Hotspring Integration (@Moustachauve - #177992)
- Add watering contours for gardena (@elupus - #178776)
- Add new event sensors to Home Connect (@Diegorro98 - #178761)
- Add attributes to all template platforms (@Petro31 - #178762)
- Remove unused service timeout in API (@erwindouna - #172863)
- Migrate integrations passing merge parameters to async_update_device (@emontnemery - #178905)
- Change energenie key to one without dashes (@joostlek - #178931)
- Split user flow init and data submission in nina config flow tests (@DeerMaximum - #178992)
- Add Monzo transaction events (@JakeMartin-ICL - #177397)
- Nest Netatmo devices under the device they report through (@cgtobi - #178743)
- Migrate somfy_mylink to pysomfymylink and adopt integration (@sslivins - #176848)
- Avoid a naive datetime.now() in radarr (@soldier2008 - #178487)
- Avoid a naive datetime.now() in switchbot_cloud (@soldier2008 - #178484)
- Add KNX weather entity UI configuration (@farmio - #177186)
- Add send_text service to vizio (@raman325 - #176563)
- Add KNX select entity UI configuration (@farmio - #178282)
- Add 100% coverage for coordinator in MikroTik (@chemelli74 - #178681)
- Test hortimax config flow recovers from missing organisation (@wildekek - #178551)
- Add
sync_stateto all KNX YAML entities (@farmio - #178526) - Add select entity to Harbor (@Lash-L - #177556)
- Avoid a naive datetime.now() in israel_rail (@soldier2008 - #178489)
- Add cover platform to actron air (@kclif9 - #178514)
- Remove test user flow init in MELCloud (@erwindouna - #179002)
- Split user flow init and data submission in devolo_home_control (@Shutgun - #179003)
- Bump python-technove to 2.1.2 (@Moustachauve - #179041)
- Remove orphaned unused snapshot in gatus tests (@mdegat01 - #179031)
- Refactor nfandroidtv config flow tests (@tr4nt0r - #179027)
- Split user flow init and data submission in steam_online config flow tests (@tr4nt0r - #179023)
- Split user flow init and data submission in playstation_network config flow tests (@tr4nt0r - #179024)
- Add PARALLEL_UPDATES to TechnoVE platform modules (@Moustachauve - #179043)
- Update coverage to 7.15.3 (@renovatebot - #179040)
- Update uv to 0.12.2 (@renovatebot - #178495)
- Bump pnpm in E2E tests (@bramkragten - #179063)
- Add child devices (@emontnemery - #178666)
- Split user flow init and submission in bsblan config flow tests (@liudger - #179015)
- Split user flow init and data submission in blebox config flow tests (@bkobus-bbx - #179053)
- Split user flow init and data submission in insteon config flow tests (@connorgallopo - #179004)
- Refactor config flow tests in HTML5 integration (@tr4nt0r - #179018)
- Improve TechnoVE config flow init tests (@Moustachauve - #179042)
- Simplify collision handling (@arturpragacz - #179005)
- Fix wrong snapshots in devolo Home Network tests (@Shutgun - #179071)
- Reduce FFmpeg probe latency for streaming WAV from TTS (@vroland - #178709)
- Bump aiounifi to v92 (@Kane610 - #179017)
- Use state_extended bulk polling in vizio when available (@raman325 - #176559)
- Reject iZone airflow values that are not multiples of 5 (@Swamp-Ig - #178977)
- Bump tesla-fleet-api to 1.9.0 (@Bre77 - #179054)
- Add backwards compatibility for custom integrations accessing child devices (@emontnemery - #179073)
- Report cache read tokens as cached tokens in Anthropic (@jamesshannon - #177604)
- Add setpoint temperature option to Home Connect (@Diegorro98 - #167980)
- Send update_type of ‘updated’ when a persistent notification already exists (@davidlang42 - #171067)
- Replace deprecated whois package with whoisdomain (@Misiu - #166689)
- Shield config entry removal from client disconnect (@darkdi - #178207)
- Bump pydaikin to 2.19.0 (@fredrike - #179087)
- Reapply comment in async_get_or_create in device registry (@arturpragacz - #179076)
- Bump midea-local to 8.0.1 (@chemelli74 - #179085)
- Update Xiaomi Miio sensor module docstring (@Zuz666 - #179115)
- Add exception translation to TechnoVE integration (@Moustachauve - #179113)
- Update codeowners for Midea integration (@wuwentao - #178789)
- Improve call state management for VOIP (@jaminh - #177914)
- Update coverage to 7.15.4 (@renovatebot - #179114)
- Reuse TCP connection in MikroTik (@chemelli74 - #178538)
- Avoid a naive datetime.now() in huawei_lte (@soldier2008 - #178605)
- Bump j178/prek-action from 2.0.6 to 3.0.0 (@dependabot - #178317)
- Bump actron-neo-api to 0.5.13 (@kclif9 - #179108)
- Split user flow init and data submission in homematicip_cloud config flow tests (@lackas - #179097)
- Split user flow init and data submission config flow tests (@tl-sl - #179138)
- Bump monarchmoneycommunity to 1.5.2 (@bradleyseanf - #179037)
- Mark Blebox sensor and climate entities unavailable on error state (@bkobus-bbx - #179128)
- Avoid naive datetime.now() in sensoterra (@SanderBakkumCuriousInc - #179117)
- Abort Twinkly DHCP discovery when the device does not answer (@Olen - #179143)
- Updated nad_receiver module version to 0.4.0 (@noelos - #178810)
- Fix swallowed exceptions in smlight action handlers (@tl-sl - #179078)
- Add battery sensor to Xiaomi Miio vacuums (@Zuz666 - #179095)
- Use PH device class for hortimax pH readouts instead of a custom unit (@wildekek - #179107)
- Fix Home Connect start selected program service when options are not writable (@Diegorro98 - #178767)
- Report an available source for LG soundbars (@maxmirazh33 - #178799)
- Bump ttls to 1.11.1 (@Olen - #179147)
- Add door opener button for HmIP-FDC (@lackas - #179089)
- Refresh Wyoming service info periodically (@synesthesiam - #179086)
- Expose SwitchBot keypad duress alarm (@Mephisto090 - #178620)
- Trigger SleepIQ reauth flow on authentication failure during updates (@bharat - #179021)
- Add flow it integration (@albertogeniola - #175076)
- Fix ESPHome deleting entity registry entries when firmware re-derives keys (@bdraco - #179090)
- Add dock controls for Roborock V1 vacuums (@piitaya - #177404)
- Move hortimax UNIT_DESCRIPTIONS into sensor.py (@wildekek - #178553)
- Declare Monzo sensor parallel updates (@JakeMartin-ICL - #179080)
- Fix prefer internal URL for LOQED webhooks (@Permutoto - #178667)
- Improve Monzo webhook retry logging (@JakeMartin-ICL - #179081)
- Add snapshot test for the Home Connect sensor platform (@bzelch - #176447)
- Bump zhong-hong-hvac to 1.0.19 (@crhan - #179010)
- reuse results through smlight config entry flow tests (@tl-sl - #179148)
- Add missing state_class to Withings measurement sensors (@Olen - #179160)
- Add Schedule Status sensor to Lyric integration (@clutch2sft - #177067)
- Bump aiohomekit to 4.0.1 (@bdraco - #179162)
- Add pylint checker for missing flow form translations (@frenck - #171705)
- Fix missing data description SMA (@erwindouna - #179172)
- Bump aiorussound to 5.0.2 (@noahhusby - #179171)
- Check Shelly Wall Display prefix, not the exact model ID (@bieniu - #179175)
- Fix missing name field translation in srp_energy config flow (@ammmze - #179204)
- Add a carbon dioxide sensor to homematicip_cloud (@lackas - #179187)
- Add energy Coordinator for MELCloud Home (@erwindouna - #179132)
- Bump vallox-websocket-api to 6.1.0 (@robozdog - #179214)
- Bump tesla-fleet-api to 1.10.0 (@Bre77 - #179217)
- Add Device Pairing Enabled binary sensor to Lyric integration (@clutch2sft - #177062)
- Update uv to 0.12.3 (@renovatebot - #179199)
- Update ruff (@renovatebot - #179198)
- Remove deprecated battery properties from vacuum (@gjohansson-ST - #175682)
- Fix missing translation string in scrape (@gjohansson-ST - #179232)
- Add has_entity_name to Wolf SmartSet sensors (@EnjoyingM - #179227)
- Bump pyportainer to 1.0.44 (@erwindouna - #179241)
- Update xknx to 3.20.0 (@farmio - #179260)
- Add support for inverted output in Shelly climate entity (@bieniu - #179208)
- Avoid a naive datetime.now() in twitter (@soldier2008 - #179235)
- Split sabnzbd config flow test submissions (@jpbede - #179267)
- Split WebDAV config flow test submissions (@jpbede - #179264)
- Split inexogy config flow test submissions (@jpbede - #179265)
- Split user flow init and data submission in geonetnz_quakes config flow tests (@exxamalte - #179225)
- Split user flow init and data in filesize config flow tests (@gjohansson-ST - #179281)
- Split user flow init and data in holiday config flow tests (@gjohansson-ST - #179285)
- Remove deprecated Flexit fireplace switch (@magnusoverli - #179272)
- Update midea-local to v9.0.0 (@rokam - #179319)
- Update pystiebeleltron to 0.7.0 (@balloobbot - #179268)
- Fix Google Health sleep sensors (@allenporter - #179322)
- Use dt_util system_timezone in remote_calendar diagnostics (@Thomas55555 - #177888)
- Add reconfigure flow to Hot Spring (@Moustachauve - #179116)
- Bump google-nest-sdm to 9.2.1 (@allenporter - #179340)
- Add reauthentication flow to Karakeep (@sli-cka - #179318)
- Update home-assistant-return-type with ChildDeviceInfo from device_info (@emontnemery - #179359)
- Deprecate passing merge_connections / merge_identifers to async_update_device (@emontnemery - #178888)
- Don’t allow setting a main device to disabled by device (@emontnemery - #179376)
- Update mypy to 2.3.1 (@cdce8p - #179388)
- Fix race in analytics (@emontnemery - #179365)
- Bump python technove to 2.1.3 (@Moustachauve - #179350)
- Add heating circuit select to Tado zones (@PeterLinuxOSS - #178096)
- Add support for child devices to assist_pipeline logbook augmentation (@emontnemery - #179366)
- Cancel Bluetooth scanner expire devices timer on unload (@billchurch - #179379)
- Make mocked Supervisor set_addon_options replace options (@balloobbot - #179399)
- Bump vizaio to 0.5.0 (@raman325 - #179432)
- Harden Z-Wave JS zeroconf discovery (@balloobbot - #179402)
- Fix KeyError when reverting Z-Wave JS add-on config (@balloobbot - #179403)
- Keep existing Z-Wave JS add-on keys on new network setup (@balloobbot - #179404)
- Validate Z-Wave JS adapter connection input (@balloobbot - #179407)
- Skip Z-Wave JS reload on unchanged ESPHome rediscovery (@balloobbot - #179401)
- Extract Z-Wave JS NVM migration mocks into fixtures (@balloobbot - #179436)
- Bump yalexs-ble to 4.0.1 (@bdraco - #179423)
- Bump zwave-js-server-python to 0.73.1 (@MindFreeze - #179459)
- Fix onedrive oauth errors during setup (@zweckj - #179398)
- Fix TypeError for unconfigured accounts in Steam integration (@tr4nt0r - #179443)
- Expose UniFi Policy Engine rules as switches (@ryanr14 - #169675)
- Make Lyngdorf entity actions async (@fishloa - #179409)
- Request coordinator refresh after TechnoVE control actions (@Moustachauve - #179451)
- Update home-assistant-parameter-type for async_remove_config_entry_device (@emontnemery - #179371)
- Add device_registry.async_get_device_and_config_entry_for_domain (@emontnemery - #178991)
- Bump pyswitchbot to 2.4.1 (@ngdio - #179439)
- Bump lyngdorf to 1.6.0 (@fishloa - #179410)
- Bump matter-python-client to 1.4.0 (@MindFreeze - #179465)
- Add sensor platform to Lyngdorf (@fishloa - #179447)
- Fix copy/paste error in comment in demo integration (@wollew - #179470)
- Split user flow init and data in lg_thinq config flow tests (@LG-ThinQ-Integration - #179468)
- Add join/unjoin support to Forked DAAPD (@JanGiese - #179317)
- Split user flow init and data submission in geonetnz_volcano config flow tests (@exxamalte - #179370)
- Use consistent node_id key in Z-Wave JS node statistics events (@MindFreeze - #179360)
- Recover Z-Wave JS config entry when a flow is abandoned (@balloobbot - #179429)
- Bump xiaomi-ble to 1.16.0 (@trcyberoptic - #178706)
- Reduce Teslemetry vehicle polling for disabled entities (@Bre77 - #179454)
- Update pnpm to 11.22.0 (@renovatebot - #179485)
- Update ruff (@renovatebot - #179481)
- Update SQLAlchemy to 2.0.52 (@renovatebot - #179482)
- Make URLs in GeoSphere Austria Warnings more specific (@Xiretza - #179240)
- Don’t let zeroconf prompts block Z-Wave JS USB and add-on discovery (@balloobbot - #179406)
- Fix PS4 v2->v3 migration (@emontnemery - #179489)
- Replace deprecated os.path.commonprefix (@cdce8p - #179011)
- Update orjson to 3.12.0 (@renovatebot - #179484)
- Drop redundant aliases in intent tests (@emontnemery - #179488)
- Add diagnostics to Lyngdorf (@fishloa - #179478)
- Update uv to 0.12.5 (@renovatebot - #179483)
- Add binary_sensor platform to IntelliClima (@dvdinth - #178154)
- Add available disk space sensor to Transmission integration (@Eniot666 - #179487)
- Add humidifier platform to Midea (@chemelli74 - #178873)
- Use entity attribute enums for reads in Alexa (@epenet - #178448)
- Use entity attribute enums in recorder (@epenet - #178236)
- Add Entity.async_get_recent_context helper (@balloob - #178425)
- Use entity state attribute enums in emulated_hue (@epenet - #178350)
- Invalidate conversation slot-list cache when entity moves to other device (@emontnemery - #179494)
- Add icon for free disk space (@Eniot666 - #179495)
- Deprecate pyserial-asyncio in favor of serialx (@zweckj - #174014)
- Bump airgradient to 0.10.0 (@samuelbles07 - #179415)
- Revert “Add Entity.async_get_recent_context helper” (@frenck - #179496)
- Fix Statistics helper crash with sampling_size of 0 (@RounakKumarAgarwal - #179186)
- Bump lyngdorf to 1.8.0 (@fishloa - #179498)
- Fix traccar_server subscribe() recursive reconnect causing RecursionError (@sam-ward - #177519)
- Handle OAuth token refresh failures (@zweckj - #179364)
- Don’t drop color adjustments when happening concurrently with brigthness (@jklausa - #179059)
- Add DALI scan binary sensor to lunatone (@MoonDevLT - #179068)
- Bump aioshelly to 13.30.0 (@bieniu - #179513)
- Support set color temperature for Bond light (@LittleBoxOfSunshine - #179458)
- Fix stale WiiM artwork when media image URLs are reused (@Linkplay2020 - #179461)
- Retry a stalled Twinkly request (@Olen - #179353)
- Add new lock model to Xiaomi BLE (@fengshutao - #171532)
- Initialize quality scale in hvv_departures (@vigonotion - #172867)
- Add motion sensor for Shelly Camera (@bieniu - #179065)
- Add Matter network topology WebSocket API (@MindFreeze - #177114)
- Bump pyatmo to 9.9.0 (@cgtobi - #179517)
- Fix quality_scale for hvv_departures (@zweckj - #179528)
- Clear stuck Teslemetry update progress after an offline install (@Bre77 - #179479)
- Bump aioesphomeapi to 45.12.0 (@bdraco - #179521)
- Deprecate the mop drying binary sensor in favor of the switch (@piitaya - #178932)
- Use homeassistant.util.dt.now instead of datetime.now in lg_thinq (@LG-ThinQ-Integration - #179467)
- Add AUTO profile support to Vallox (@robozdog - #179212)
- Remove the concept of device info types from device registry (@emontnemery - #179397)
- Migrate integrations to call dr.async_entries_for_config_entry (@emontnemery - #179550)
- Bump lyngdorf to 1.9.0 (@fishloa - #179520)
- Deprecate default_ members in DeviceInfo (@emontnemery - #179549)
- Forward service call context to entity in assist_satellite.ask_question (@balloob - #179536)
- Avoid a naive datetime.now() in buienradar (@soldier2008 - #178368)
- Use a flow specific client for Z-Wave JS adapter migration (@balloobbot - #179541)
- Bump mvg to 1.6.0 (@danielpotthast - #179532)
- Migrate integration tests to call dr.async_entries_for_config_entry (@emontnemery - #179558)
- Migrate withings to call DeviceRegistry.async_get_devices (@emontnemery - #179559)
- Use entity attribute enums in group (@epenet - #178256)
- Use EntityStateAttribute enum for restored attribute in helpers (@epenet - #178238)
- Migrate integration tests to call DeviceRegistry.async_get_devices (@emontnemery - #179560)
- Keep Z-Wave JS node statistics flowing when a route can’t be resolved (@MindFreeze - #179362)
- Avoid potentional KeyError in zha logbook platform (@emontnemery - #179565)
- Update lxml to 6.1.2 (@cdce8p - #179555)
- Forward service call context to entity in group.set and group.remove (@balloob - #179538)
- Add
Imagesscope to Home Connect (@Diegorro98 - #178485) - Bump aiounifi to v93 (@jimstrang - #179552)
- Fix tplink crash logging device unavailable warning (@eseverson - #173314)
- Allow linking template helpers to child devices (@emontnemery - #179590)
- Support Client ID Metadata Documents when verifying redirect_uri (@kingpanther13 - #176286)
- Route Z-Wave JS ESPHome discovery of a new adapter to migration (@balloobbot - #179408)
- Bump habluetooth to 6.26.7 and bluetooth-data-tools to 1.29.21 (@bdraco - #179582)
- Bump bleak-esphome to 4.0.0 (@bdraco - #179581)
- Prevent second Z-Wave JS config entry using the add-on (@balloobbot - #179405)
- Fix UniFi SmartPower outlet power sensor detection (@jimstrang - #178529)
- Migrate integrations to call DeviceRegistry.async_get (@emontnemery - #179571)
- Fix flaky statistics_meta duplicate tests on PostgreSQL (@balloob - #179596)
- Fix the Lyngdorf volume range (@fishloa - #179572)
- Bump github/codeql-action/analyze from 4.37.6 to 4.37.7 (@dependabot - #179612)
- Bump github/codeql-action/init from 4.37.6 to 4.37.7 (@dependabot - #179610)
- Update postgresql versions and add postgresql 18 in the CI (@edenhaus - #179533)
- Update RestrictedPython to 8.5 (@cdce8p - #179554)
- Add direction prefix to androidtv_remote send_command (@PassionateBytes - #170117)
- Add web session injection in Actron Air (@kclif9 - #179563)
- Add
next_flowtoRepairsFlow(@iluvdata - #172489) - Add Leviton VRF01 fan controller discovery to zwave_js (@gdrapp - #175631)
- Prevent Sonos from pinging disabled device (@PeteRager - #176893)
- Add support for Tuya HCDD category (Chasing Tape Light) (@AnthonyZavala - #177044)
- Fix swallowed exceptions in action handlers for NFAndroidTV (@mstu01 - #177417)
- Report the outcome of adding a Thread dataset (@LorbusChris - #178306)
- Update brightness optimistically when turning on a dimmable light (@speijnik - #178505)
- Fix loading IP bans without banned_at (@tollenceld - #178607)
- Add Monzo spent today sensor (@JakeMartin-ICL - #179069)
- Bump lunatone-rest-api-client to 0.10.0 (@MoonDevLT - #179562)
- Fix Sonos disabled-device test using deprecated async_get_device (@balloob - #179620)
- Add move local data option to hassio mount failed repair (@agners - #179369)
- Split user flow init and data submission in NAM tests (@bieniu - #179575)
- Split user flow init and data submission in Brother tests (@bieniu - #179577)
- Use clearer icons for Rachio standby and rain delay (@kingces95 - #179621)
- Don’t offer Z-Wave JS migration to the configured adapter (@balloobbot - #179597)
- Add parameter include_composite_devices to DeviceRegistry.async_get (@emontnemery - #179594)
- Bump music-assistant-client to 1.5.1 (@MarvinSchenkel - #179633)
- Avoid potential exceptions in zwave_js logbook platform (@emontnemery - #179566)
- Add camera platform to Shelly integration (@bieniu - #179072)
- Add repairs for upcoming bumps of minimum supported db engine versions (@emontnemery - #179615)
- Bump actron-neo-api to 0.5.14 (@kclif9 - #179624)
- Add reconfiguration flow to Lyngdorf (@fishloa - #179411)
- Split user flow init and data submission in Airly tests (@bieniu - #179630)
- Split user flow init and data submission in AccuWeather tests (@bieniu - #179628)
- Split user flow init and data submission in BraviaTV tests (@bieniu - #179626)
- Add virtual integration Ariston (@chemelli74 - #179640)
- Support privacy switch for Shelly Camera (@bieniu - #179637)
- Add now playing, position and transport control to Lyngdorf (@fishloa - #179471)
- Bump tuya-device-sharing-sdk to 0.2.15 (@ritchie-cai - #179634)
- Improve user impersonation in Music Assistant (@arturpragacz - #178393)
- Update the diagnostic platform protocol for child devices (@emontnemery - #179570)
- Bump hass-nabucasa from 2.2.0 to 2.3.0 (@ludeeus - #179662)
- Suggest hours as displayed unit for Anova cook time sensors (@goetzc - #179671)
- Do not inherit entity context for satellite-initiated Assist pipelines (@balloob - #179530)
- Make ignoring Z-Wave JS discoveries work (@balloobbot - #179595)
- Fix flaky google calendar coordinator tests (@balloob - #179687)
- Split user flow init and data submission in flipr tests (@cnico - #179690)
- Split user flow init and data submission in dio_chacon tests (@cnico - #179689)
- Split user flow init and data submission in wsdot config flow tests (@ucodery - #179675)
- Add zeroconf discovery to Hot Spring (@Moustachauve - #179457)
- Bump python-openevse-http to 1.5.0 (@firstof9 - #179683)
- Protect the DeviceRegistry.devices container (@emontnemery - #179578)
- Refresh add-on update entities on Supervisor store_reloaded event (@agners - #177776)
- Fix add-on ingress panels missing after Supervisor timeout or restart (@mdegat01 - #179025)
- Remove Supervisor refresh tokens (@Oluwatobi-Mustapha - #179219)
- Split user flow init and data submission in Tractive test (@bieniu - #179574)
- Remove access to DeviceRegistry.deleted_devices from mqtt (@emontnemery - #179718)
- Remove access to DeviceRegistry.deleted_devices from rfxtrx (@emontnemery - #179719)
- Protect the DeviceRegistry.child_devices container (@emontnemery - #179713)
- Improve error handling in websocket_update_device (@emontnemery - #179709)
- Handle a missing Alexa link when syncing entities (@klejejs - #179734)
- Protect the DeviceRegistry.deleted_devices container (@emontnemery - #179720)
- Bump aioshelly to 13.31.0 (@bieniu - #179736)
- Read media metadata from player current media in Music Assistant (@MarvinSchenkel - #175465)
- Remove clearing of via_device self references from integrations (@emontnemery - #178464)
- Add number platform to Lyngdorf (@fishloa - #179448)
- Add OpenEVSE switch platform (@firstof9 - #179660)
- Add activation and skip reason to gardena (@elupus - #169919)
- Recompute the local calendar event instead of caching it (@soldier2008 - #178763)
- Use latest HueBLE (@flip-dots - #179721)
- Bump nice-go to 1.0.3 (@IceBotYT - #179747)
- Update numpy to 2.5.2 (@cdce8p - #178633)
- Fix derivative sensor staying unavailable after total_increasing reset (@manan-tech - #173899)
- Switchbot Cloud:Add a night light control to the fan (@XiaoLing-git - #177514)
- Fix missing device trackers after initial setup in devolo Home Network (@Shutgun - #179327)
- Fix LiteLLM conversation subentry not remembering unselected LLM APIs (@luismalves - #178490)
- Fix HomeWizard setup flow giving error already_in_progress when trying to manually setup already discovered device (@DCSBL - #177458)
- fix enphase envoy diagnostics report error (@catsmanac - #177849)
- Fix OpenRGB turn_off being a no-op for devices without Off mode in non-color modes (@Wescholm - #179515)
- Map SmartThings aIComfort AC mode to HVAC auto (@moridew - #174513)
- Fix swallowed exceptions in action handlers for Simplepush (@mstu01 - #178012)
- Bump lyngdorf to 1.10.0 (@fishloa - #179739)
- Fix missing Z-Wave power monitoring sensors in isy994 integration (@SoundMatt - #171908)
- Add OCI image labels to Portainer (@erwindouna - #176678)
- Remove system_timezone in local_calendar diagnostics (@soldier2008 - #178237)
- Migrate to ha-utils for datetime.now for fyta (@dontinelli - #177924)
- Avoid a naive datetime.now() in broadlink (@soldier2008 - #179181)
- Type the caldav warned-calendar cache with HassKey (@David-Wu1119 - #176143)
- Fix unused Gardena Bluetooth aqua contour sensor snapshots (@balloob - #179763)
- Add preferred_bitrate option to TTS audio conversion (@bboe - #179760)
- Split user flow init and data submission in gdacs config flow tests (@exxamalte - #179526)
- Split user flow init and data submission in wolflink config flow tests (@EnjoyingM - #179228)
- Split user flow init and data submission in fritzbox config flow tests (@mib1185 - #179311)
- Bump pyyardian to 1.4.2 (@aeon-matrix - #179717)
- USB Websocket API to list serial ports (@puddly - #179524)
- Bump guntamatic to v1.11.0 (@JensTimmerman - #179767)
- Avoid a naive datetime.now() in august (@soldier2008 - #179182)
- Add Hotspring sensor platform (@Moustachauve - #179697)
- Restore the recommended LLM API fallback for LiteLLM (@balloob - #179768)
- Localize exception messages for CentriConnect (@gresrun - #179752)
- Add diagnostics platform to Hot Spring (@Moustachauve - #179778)
- Name the ekey bionyx webhook deletion poll interval (@balloob - #179788)
- Remove overbuilt traccar_server subscribe tests (@balloob - #179785)
- Fix flaky concord232 polling tests (@balloob - #179784)
- Skip hassfest MDI icon generation on an outdated frontend (@balloob - #179781)
- Mock entry setup in cielo_home config flow tests (@balloob - #179782)
- Fix owner of the all-lights grouped light in the Hue v2 test fixture (@balloob - #179787)
- Patch MAP_SLEEP in the Roborock selected map test (@balloob - #179790)
- Name the JVC Projector delay between a power command and the refresh (@balloob - #179791)
- Report slow tests by duration instead of by rank (@balloob - #179792)
- Remove a dead sleep from the Insteon properties test (@balloob - #179793)
- Name the Motion Blinds per-blind update delay (@balloob - #179794)
- Fix LG webOS TV media playback channel matching (@thecode - #179796)
- Bump guntamatic to v1.11.1 (@JensTimmerman - #179773)
- Handle AuthFailedError in Nice G.O. WebSocket connection (@IceBotYT - #179753)
- Add config flow to remember_the_milk (@MartinHjelmare - #178808)
- Speed up the Aurora ABB Powerone tests (@balloob - #179789)
- Create repair issue if RTSP is disabled for Shelly Camera (@bieniu - #179733)
- Speed up VoIP tests (@balloob - #179786)
- Do not use a naive
datetime.now()in BraviaTV (@bieniu - #179806) - VoIP test improvements (@jaminh - #179456)
- Extract Z-Wave JS config flow security keys and add-on handling (@balloobbot - #179600)
- Add select platform to Midea (@chemelli74 - #179245)
- Mock the DoorBird API while finishing the repair flow (@balloob - #179823)
- Mock the source IP probe in the network url websocket test (@balloob - #179834)
- Use a 2048 bit dummy RSA key in the Google Assistant tests (@balloob - #179830)
- Import components concurrently in the circular import test (@balloob - #179795)
- Use a long enough JWT signing key in the Flume tests (@balloob - #179827)
- Keep caller supplied default headers in async_create_clientsession (@balloob - #179824)
- Use a long enough JWT signing key in the Elmax tests (@balloob - #179826)
- Use a long enough JWT signing key in the Enphase Envoy tests (@balloob - #179820)
- Use a long enough JWT signing key in the cloud tests (@balloob - #179821)
- Silence two pytest warnings in the pylint plugin tests (@balloob - #179833)
- Use a long enough JWT signing key in the auth token tests (@balloob - #179835)
- Mock the Google API in the Google Generative AI diagnostics test (@balloob - #179832)
- Send go2rtc credentials as an Authorization header (@balloob - #179838)
- Use encode_basic_auth for the Lyric token request (@balloob - #179831)
- Send BleBox credentials as an Authorization header (@balloob - #179837)
- Keep the mocked Xbox token long enough for PyJWT (@balloob - #179829)
- Lower log level for missing TCL passages in Data Grand Lyon (@Crocmagnon - #179828)
- Bump pyrisco to 0.8.1 (@Wall-E-5 - #179818)
- Bump midea-local to 10.0.0 (@chemelli74 - #179842)
- Reolink tamper entities (@starkillerOG - #179750)
- Mock the supervisor root info in the http ban test (@balloob - #179862)
- Give the mocked cloud subscription info a real payload (@balloob - #179865)
- Mock the add-on store info in the Z-Wave USB discovery test (@balloob - #179864)
- Mock the Aprilaire client stop_listen as a sync call (@balloob - #179863)
- Mock the add-on store info in the Yellow multipan uninstall test (@balloob - #179861)
- Pass the bluetooth detection callback to the scanner constructor (@balloob - #179857)
- Give the mocked Shelly device a real ble_getconfig result (@balloob - #179859)
- Mock the API client in the ESPHome websocket API test (@balloob - #179841)
- Forward service call context to entity in script.turn_off (@balloob - #179539)
- Disable DBus probing for all tests, not just the bluetooth ones (@balloob - #179844)
- Send rest credentials as an Authorization header (@balloob - #179856)
- Register the custom pytest marks instead of ignoring the warning (@balloob - #179840)
- Send MJPEG camera credentials as an Authorization header (@balloob - #179854)
- Make the mocked IMAP IDLE result report done() synchronously (@balloob - #179822)
- Fix OVHcloud AI Endpoints forgetting an empty LLM API selection (@balloob - #179764)
- Bump reolink_aio to 0.21.10 (@starkillerOG - #179851)
- Increase Reolink track limit (@starkillerOG - #179850)
- Fix Z-Wave JS legacy security key handling (@balloobbot - #179815)
- Fix race in assist_pipeline saved audio empty queue test (@balloob - #179869)
- Add Midea window AC (0x118C/0x2022) to Matter dry mode device list (@nickvigilante - #179780)
- Mock the go2rtc rest client in the setup error test (@balloob - #179867)
- Mock the iCloud response release() as a sync call (@balloob - #179860)
- Mock the API while setting up forked_daapd in the browse tests (@balloob - #179858)
- Fix PS4 title data fetch crash (@AmyJeanes - #179884)
- Bump aioeagle to 1.1.1 (@balloobbot - #179897)
- Bump opower to 0.20.0 (@tronikos - #179889)
- Persist an empty LLM API selection in Anthropic (@balloob - #179892)
- Persist an empty LLM API selection in OpenAI Conversation (@balloob - #179893)
- Harden Z-Wave JS add-on config against concurrent and abandoned flows (@balloobbot - #179816)
- Bump nettigo_air_monitor to 5.1.0 (@bieniu - #179911)
- Migrate devcontainer.json to use build.dockerfile/build.context (@BirknerAlex - #179909)
- Bump python-pooldose to 0.9.10 (@lmaertin - #179903)
- Fix LG ThinQ failing to set up during a temporary network outage (@marcotesche - #179901)
- Add config entry migration for Z-Wave JS (@balloobbot - #179898)
- Apply Z-Wave JS add-on config reverts directly (@balloobbot - #179899)
- Add custom IR-filter-only and manual infrared modes to UniFi Protect cameras (@RaHehl - #174794)
- Remove redundant stale device removal from Z-Wave JS migration (@balloobbot - #179918)
- Replace a caller supplied Authorization header case-insensitively (@balloob - #179887)
- Bump midea-local to 10.0.1 (@chemelli74 - #179925)
- Bump denon-rs232 to 4.2.2 (@balloobbot - #179870)
- Bump guntamatic to v1.12.0 (@JensTimmerman - #179921)
- Forward service call context to entity in ai_task generate services (@balloob - #179537)
- Remove portlandgeneral virtual integration (@tronikos - #179929)
- Upgrade ayla-iot-unofficial to 1.5.2 (@crevetor - #179745)
- Share one Modbus connection between the integrations on a device (@balloobbot - #179658)
- Use the non-deprecated vobject_instance in caldav (@balloob - #179819)
- Migrate UniFi Protect light discovery to the public API (@RaHehl - #176570)
- Migrate UniFi Protect camera config switches to the public API (@RaHehl - #174963)
- Don’t restore non-KNX attributes for KNX sensors (@farmio - #179932)
- Add number platform to Midea (@chemelli74 - #179247)
- Filter duplicate bed objects from SleepIQ API before entity setup (@derekcentrico - #178682)
- Switchbot Cloud: Add new supported devices[Curtain4] (@XiaoLing-git - #178783)
- Avoid a naive datetime.now() in lg_netcast (@soldier2008 - #178255)
- Handle empty effect before filtering reserved effects (@hgregorian - #177496)
- Avoid a naive datetime.now() in nice_go (@soldier2008 - #178248)
- Log Netatmo publisher availability changes only once (@cgtobi - #176727)
- Require LLM tool names to be prefixed with the offering integration’s domain (@balloob - #179938)
- Run the mypy plugin tests out of process (@balloob - #179934)
- Fix JSON serialization of date and time objects in llama_cpp (@allenporter - #179947)
- Fix for working location calendar in some scenarios when “ignore availability” is unset (@allenporter - #179946)
- Improve Google Health config flow error messages (@allenporter - #179940)
- Require UniFi Protect 7.2.105 (@RaHehl - #179954)
- Fix incorrect unit on QNAP network_tx/network_rx sensors (@soopercheeze - #179233)
- Let config flows temporarily hold a Modbus unit (@balloobbot - #179939)
- Translate UnknownError and RuntimeError in OpenEVSE exception handler (@firstof9 - #179682)
- KNX: Initialize first expose value without sending (@Kolbi - #178793)
- Fix wirelesstag dry/wet binary sensors never updating (@kohai-ut - #172592)
- Avoid a naive datetime.now() in vesync (@soldier2008 - #178241)
- Speed up the freezegun module scan in tests (@balloob - #179935)
- Add Tonewinner serial integration (@emma-sg - #179888)
- Fix pylint errors in wirelesstag tests (@emontnemery - #179972)
- Add IAMMETER code owners (@lewei50 - #179955)
- Avoid a naive datetime.now() in freebox (@soldier2008 - #179950)
- Avoid a naive datetime.now() in yale (@soldier2008 - #179949)
- Guard against creating diagnostics for unsupported devices (@emontnemery - #179569)
- Send the basic credentials as a header in the http auth tests (@balloob - #179975)
- Avoid a naive datetime.now() in nextbus (@soldier2008 - #179951)
- Bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (@dependabot - #179959)
- Bump syrupy to 6.0.0 (@epenet - #179980)
- Fix flaky remote_calendar coordinator refresh test (@balloob - #179982)
- Close the connection when the sqlite database is corrupt (@balloob - #179974)
- Ignore the TLS 1.0 deprecation the airOS helper opts into (@balloob - #179976)
- Fix Tibber coordinator unhandled exception (@MartinHjelmare - #179984)
- Add get_state_coordinates helper to location helpers (@epenet - #176110)
- Bump aioautomower to 2.8.1 (@Thomas55555 - #173044)
- Add separate sensors for YouTube Shorts and regular videos (@Hugo1380 - #179224)
- Rename local nws variables (@epenet - #179993)
- Bump pynintendoparental to 2.6.2 (@pantherale0 - #179985)
- Fix Z-Wave value updated trigger KeyError (@MartinHjelmare - #179992)
- Migrate Tessie update platform to tesla-fleet-api (@Bre77 - #179221)
- Add Samsung TV via ExLink integration (@balloob - #179469)
- Raise instead of dereferencing a vanished public light (@RaHehl - #179973)
- Bump pyIntesishome to 2.5.0 (@jnimmo - #179979)
- Use entity attribute enums for reads in HomeKit (@epenet - #178440)
- Voip 0.4.3 (@jaminh - #179812)
- Bump dawidd6/action-download-artifact from 21 to 23 (@dependabot - #179960)
- Use Probatio as the data validation engine (@frenck - #175128)
- Complete test coverage quality scale rule for ouman_eh_800 (@Markus98 - #178264)
- Fix IAMMETER DataUpdateCoordinator config entry (@Sajjad-shayesteh - #179039)
- Add Monzo pot transfer actions (@JakeMartin-ICL - #178754)
- Deprecate passing created or modified_at when creating devices (@emontnemery - #179998)
- Add motion binary sensor for Shelly Wall Display XL (@bieniu - #179999)
- Add config flow to Netio using the JSON API (@agners - #177043)
- Use get_state_coordinates in dwd_weather_warnings (@epenet - #180003)
- Bump aioamazondevices to 15.1.0 (@chemelli74 - #180002)
- Use get_state_coordinates in owntracks (@epenet - #180004)
- Add binary_sensor platform to the Imou integration (@Imou-OpenPlatform - #179346)
- Bump indevolt-api to 1.8.8 (@Xirt - #180008)
- Fix OpenRouter forgetting an empty LLM API selection (@balloob - #179762)
- Bump Hot Spring quality scale to platinum (@Moustachauve - #179880)
- Add image entities to Home Connect (@Diegorro98 - #179583)
- Add fan platform to Midea (@chemelli74 - #179028)
- Add switch platform to Midea (@chemelli74 - #178802)
- Use platform entity attribute enums for reads in HomeKit (@epenet - #180016)
- Fix “set up” wording in Tonewinner config flow title (@emma-sg - #180017)
- Refactor MELCloud Home test asserts (@erwindouna - #179263)
- Improve iteration in device registry + add tests (@emontnemery - #179962)
- Use get_state_coordinates in template helper (@epenet - #180007)
- Guard against composite devices in deconz logbook (@emontnemery - #179710)
- Guard against child devices in zwave_js.helpers.async_get_nodes_from_area_id (@emontnemery - #179568)
- Persist an empty LLM API selection in Google Generative AI (@balloob - #179894)
- Send the SmartThings token request credentials as a header (@balloob - #179853)
- Send rest_command credentials as an Authorization header (@balloob - #179855)
- Add device area to Z-Wave JS device config changed repair (@piitaya - #179619)
- Fix OTBR creating duplicate config entry on add-on restart (@TheJulianJES - #179551)
- Extend check requirements aw to check Gitlab and Codeberg (@edenhaus - #179618)
- Serialize Z-Wave JS add-on mutation with a flow ownership token (@balloobbot - #179926)
- Don’t raise AssertionError from the recorder connect listener (@raman325 - #178263)
- Share a gateway for the FHT test fixtures (@lackas - #178458)
- Add via_device permutations to kitchen_sink (@emontnemery - #179049)
- Allow ConfigEntryNotReady as error in coordinator async_setup (@zweckj - #180011)
- Teach mock_device_registry about child devices (@emontnemery - #179969)
- Skip removed config entries when a debounced reload fires (@raman325 - #178259)
- Fix freezegun thread race dropping recorder events in tests (@balloob - #180010)
- Fix intents targeting unexposed entities and non-light entities in HassLightSet (@synesthesiam - #180026)
- Complete action-exceptions quality scale rule for ouman_eh_800 (@Markus98 - #180021)
- Add dynamic current temperature for Heatit Z-TRM7 (@Swamp-Ig - #179077)
- Fix config entries not recovering from IP address changes in Midea (@chemelli74 - #179737)
- Warn when a Lovelace YAML resource points to a missing local file (@MindFreeze - #179357)
- Bump modbus-connection to 4.9.0 (@balloob - #180031)
- Bump reolink_aio to 0.21.11 (@starkillerOG - #180032)
- Add ‘Collection image’ integration (@karwosts - #156192)
- Add optional speed parameter to cover movement actions (@wollew - #176231)
- Add light platform to Midea (@chemelli74 - #179243)
- Add binary_sensor platform to Midea (@chemelli74 - #176993)
- Remove name field from islamic_prayer_times config flow (@aabouzaid - #179120)
- Bump probatio to 0.11.2 (@frenck - #180034)
- Hide repair suggestions without fix flow translation from hassio menu (@agners - #179540)
- Add Keep Accessory Power Mode buttons to Tessie (@plains203 - #179155)
- Add cleanup of unused devices in NINA (@DeerMaximum - #176834)
- Use probatio directly in KNX config store (@farmio - #176855)
- Add cabin overheat protection controls to Tessie climate (@Bre77 - #175198)
- Test the already-disconnected entity load path in Tonewinner integration (@emma-sg - #180020)
- Add Crave speaker support to vizio (@raman325 - #176567)
- Add diagnostics platform to vizio (@raman325 - #176558)
- Fix some Matter bridged devices being merged into their bridge (@TheJulianJES - #179564)
- Report Vizio volume and mute when absent from the audio settings collection (@raman325 - #179433)
- Bump growattServer to 2.2.0 (@johanzander - #173220)
- Make sensor value unknown on missing phyrate in devolo_home_network (@Shutgun - #179056)
- Add events to Portainer (@erwindouna - #179242)
- Add time platform to Vistapool (@fdebrus - #177749)
- Add select control for dishwasher washing course (cycle) (@edu-tsen - #160263)
- Add prefix to allow sending as literal text to Xbox (@tr4nt0r - #166736)
- Add default device selection to Alexa Devices (@chemelli74 - #170917)
- Bump aioesphomeapi to 46.1.0 (@bdraco - #180044)
- Add TARGET_TEMPERATURE to water_heater state attributes (@epenet - #180022)
- Refactor Portainer asserts (@erwindouna - #179262)
- Add reauth flow to remember_the_milk (@MartinHjelmare - #179977)
- Improve Monzo owner and device names (@JakeMartin-ICL - #179064)
- Add Teslemetry sensors for FSD/regen firmware-2025.44 telemetry fields (@Bre77 - #177608)
- Add MFA support to Anglian Water integration (@pantherale0 - #177499)
- Add remote platform to Lyngdorf (@fishloa - #179742)
- Bump uiprotect to 16.1.0 (@RaHehl - #180042)
- Name the panel owner when a url path collides (@soldier2008 - #179314)
- Add select platform to Lyngdorf (@fishloa - #179446)
- Fix switch race conditions and dropped API commands in yardian (@aeon-matrix - #176767)
- Remove redundant translation_placeholders plumbing in Vistapool (@fdebrus - #180051)
- Add Fish Audio s2.1-pro and s2.1-pro-free models (@freddieleeman - #178278)
- Handle hidden Last.fm listening history without failing updates (@goetzc - #179774)
- Fix inconsistent OpenGarage toggle behavior (@danepowell - #179239)
- Update vizio diagnostics snapshot for battery, volume and options changes (@raman325 - #180053)
- Abode: report change setting failures (@Oluwatobi-Mustapha - #179756)
- Add Besen integration (@moryoav - #175345)
- Actron air cloud push (@kclif9 - #179622)
- Bump pybravia to 0.5.3 (@Drafteed - #180052)
- Bump aiovodafone to 3.3.2 (@chemelli74 - #180059)
- Add dhcp discovery for Harbor sleep (@Lash-L - #179670)
- Bump aiortm to 0.20.0 (@MartinHjelmare - #180055)
- Add virtual integration Vandelo (@chemelli74 - #179654)
- Bump async-upnp-client to 0.48.1 (@derekcentrico - #180045)
- Improve handling of device model name in netgear (@emontnemery - #179396)
- Add virtual integration Wahin (@chemelli74 - #179655)
- Bump aioesphomeapi to 46.2.0 (@bdraco - #180070)
- Bump serialx to 1.9.0 (@puddly - #180071)
- Bump pyanglianwater to 3.3.1 (@pantherale0 - #180074)
- Fix NINA device registry calls (@MartinHjelmare - #180073)
- Restore last state for ESPHome deep sleep devices (@jesserockz - #179101)
- Bump powerfox to v2.1.3 (@klaasnicolaas - #180079)
- Handle all TechnoVE API errors in config flow (@Moustachauve - #180061)
- Redact network SSID in TechnoVE diagnostics (@Moustachauve - #180060)
- Disable a Netatmo home via its device (@cgtobi - #178742)
- Bump hass-nabucasa from 2.3.0 to 2.4.0 (@klejejs - #180085)
- Use translation key for UpdateFailed in TechnoVE coordinator (@Moustachauve - #180064)
- Avoid GC warning from test_runner in other tests (@MartinHjelmare - #180072)
- KNX: Add send_on_init option for entity exposures (@Kolbi - #179981)
- Fix undefined DeviceEntry name in Netatmo device removal (@balloob - #180089)
- Bump python-hotspring to 2.0.1 (@Moustachauve - #180087)
- Add binary sensor platform to Hot Spring integration (@Moustachauve - #180088)
- Avoid a naive datetime.now() in sharkiq (@soldier2008 - #180043)
- Suppress RemoteNotConnected when disabling cloud remote (@klejejs - #179735)
- Fix swallowed exceptions in action handlers for Mailgun (@mstu01 - #178013)
- Reuse the Vizio base entity in the sensor platforms (@raman325 - #180062)
- Add missing data description for the Vizio TV pairing code (@raman325 - #180063)
- Use get_device_and_config_entry_for_domain in motioneye (@emontnemery - #180099)
- Use get_device_and_config_entry_for_domain in bsblan (@emontnemery - #180092)
- Use get_device_and_config_entry_for_domain in kiosker (@emontnemery - #180097)
- Use get_device_and_config_entry_for_domain in guardian (@emontnemery - #180095)
- Use get_device_and_config_entry_for_domain in google_air_quality (@emontnemery - #180094)
- Use get_device_and_config_entry_for_domain in bthome (@emontnemery - #180093)
- Use get_device_and_config_entry_for_domain in alexa_devices (@emontnemery - #180091)
- Use get_device_and_config_entry_for_domain in lametric (@emontnemery - #180098)
- Use get_device_and_config_entry_for_domain in home_connect (@emontnemery - #180096)
- Use get_device_and_config_entry_for_domain in nintendo_parental_controls (@emontnemery - #180100)
- Use get_device_and_config_entry_for_domain in nut (@emontnemery - #180101)
- Use get_device_and_config_entry_for_domain in octoprint (@emontnemery - #180102)
- Use entity attribute enums for reads in Google Assistant (@epenet - #178450)
- Mark ouman_eh_800 as silver quality scale (@Markus98 - #180090)
- Add virtual integration Bugu (@chemelli74 - #179642)
- Add virtual integration Netsu (@chemelli74 - #179648)
- Add virtual integration Comfee (@chemelli74 - #179649)
- Bump aioaquarite to 0.8.0 (@fdebrus - #180104)
- Add virtual integration Carrier (@chemelli74 - #179643)
- Add virtual integration Little Swan (@chemelli74 - #179646)
- Remove unused lastSeenAt attr from ios (@EReaso - #178775)
- Avoid a naive datetime.now() in monarch_money (@soldier2008 - #180046)
- Read the recorder database name with the SQLAlchemy URL parser (@soldier2008 - #178760)
- Use get_device_and_config_entry_for_domain in samsungtv (@emontnemery - #180109)
- Raise indevolt gen-2 RT Control limits (@Xirt - #180014)
- Use get_device_and_config_entry_for_domain in system_bridge (@emontnemery - #180113)
- Set the goodwe inverter clock from the configured time zone (@soldier2008 - #180047)
- Fix voip lingering tests (@jbouwh - #180114)
- Use get_device_and_config_entry_for_domain in switchbot (@emontnemery - #180111)
- Migrate traccar to config entry runtime data (@mstu01 - #177393)
- Migrate sensorpro to config entry runtime data (@mstu01 - #177392)
- Use get_device_and_config_entry_for_domain in switchbot_cloud (@emontnemery - #180112)
- Don’t overwrite a Thread preference chosen during discovery (@LorbusChris - #179098)
- Fix swallowed exceptions in action handlers for madVR (@mstu01 - #177488)
- Add new devices after initial setup (@kristbaum - #178475)
- Use get_device_and_config_entry_for_domain in webostv (@emontnemery - #180117)
- Use get_device_and_config_entry_for_domain in rainmachine (@emontnemery - #180107)
- Use get_device_and_config_entry_for_domain in reolink (@emontnemery - #180108)
- Use get_device_and_config_entry_for_domain in simplisafe (@emontnemery - #180110)
- Use get_device_and_config_entry_for_domain in teslemetry (@emontnemery - #180115)
- Use get_device_and_config_entry_for_domain in unifi_access (@emontnemery - #180116)
- Use get_device_and_config_entry_for_domain in yolink (@emontnemery - #180118)
- Generate frontend device class, sensor state class and units (@jbouwh - #179591)
- Ensure DOMAIN is marked as Final in core platforms (@epenet - #180121)
- llm: Fix DEFAULT_INSTRUCTIONS_PROMPT to not suppress tool use (@jpds - #172755)
- Handle self-signed certificates for local WiiM artwork (@Linkplay2020 - #179523)
- Fix Yeelight ambilight effect state (@pmiguelcruz - #178787)
- Return MockConfigEntry from Imou init_integration fixture (@Imou-OpenPlatform - #179047)
- Fix recorder.purge_entities dropping group entities from the purge set (@rsaturns - #180024)
- Import and use DOMAIN constant from core platforms (@epenet - #180122)
- Use get_device_and_config_entry_for_domain in portainer (@emontnemery - #180103)
- Add virtual integration Olimpia Splendid (@chemelli74 - #179659)
- Add virtual integration Rotenso (@chemelli74 - #179652)
- Exclude KNX
assumed_statefrom recording (@farmio - #178482) - And new service helper to get device and config entry (@epenet - #180132)
- Add virtual integration Pro Breeze (@chemelli74 - #179651)
- Bump modbus-connection to 4.10.0 (@balloobbot - #180125)
- Add virtual integration Inventor (@chemelli74 - #179645)
- Use async_get_device_and_config_entry service helper in blue_current (@epenet - #180136)
- Use async_get_device_and_config_entry service helper in portainer (@epenet - #180144)
- Bump hass-nabucasa from 2.4.0 to 2.5.0 (@klejejs - #180134)
- Use async_get_device_and_config_entry service helper in switchbot_cloud (@epenet - #180154)
- Use async_get_device_and_config_entry service helper in google_air_quality (@epenet - #180155)
- Use async_get_device_and_config_entry service helper in home_connect (@epenet - #180156)
- bump pyHomee to v1.4.4 (@Taraman17 - #180159)
- Use async_get_device_and_config_entry service helper in opendisplay (@epenet - #180157)
- Use async_get_device_and_config_entry service helper in octoprint (@epenet - #180143)
- Use async_get_device_and_config_entry service helper in fully_kiosk (@epenet - #180158)
- Use async_get_device_and_config_entry service helper in nintendo_parental_controls (@epenet - #180142)
- Use async_get_device_and_config_entry service helper in bsblan (@epenet - #180137)
- Use async_get_device_and_config_entry service helper in shelly (@epenet - #180162)
- Preregister nexia zone devices to avoid via_device race in sub-sub-devices (@jrhillery - #179942)
- Use async_get_device_and_config_entry service helper in unifi_access (@epenet - #180150)
- Bump yalexs to 9.2.13 (@riborg - #180164)
- Use async_get_device_and_config_entry service helper in kiosker (@epenet - #180139)
- Use async_get_device_and_config_entry service helper in lametric (@epenet - #180141)
- Use async_get_device_and_config_entry service helper in switchbot (@epenet - #180148)
- Add button platform to Midea (@chemelli74 - #179008)
- Add Auto shut-off switch to Watergate Sonic device (@adam-the-hero - #177391)
- Expand update platform of Portainer (@erwindouna - #176668)
- Add user-defined unique_id to KNX YAML entities (@farmio - #177399)
- Avoid a naive datetime.now() in the elmax tests (@soldier2008 - #180181)
- Avoid a naive datetime.now() in the tami4 tests (@soldier2008 - #180179)
- Remove diagnostic entity category from primary TechnoVE sensors (@Moustachauve - #180176)
- Add update and delete mealplan actions to Mealie (@andrew-codechimp - #177539)
- Add VM pause button to ProxmoxVE (@erwindouna - #178399)
- Add CI jobs to test recorder against multiple SQLite versions (@bdraco - #180169)
- Add virtual integration Toshiba LifeStyle (@chemelli74 - #179653)
- Use async_get_device_and_config_entry service helper in reolink (@epenet - #180160)
- Add diagnostic sensors to WattWächter Plus (@smartcircuits - #177150)
- Add serial to diagnostics (@brefra - #178380)
- Add virtual integration Colmo (@chemelli74 - #179650)
- Avoid a naive datetime.now() in the hassio tests (@soldier2008 - #180185)
- Add missing number device class name translations (@piitaya - #180184)
- Add breeze mode support to Modern Forms (@wonderslug - #177507)
- Bump neopool-modbus to 4.5.2 (@svasek - #180186)
- Mark Dropbox docs-known-limitations and docs-troubleshooting as done (@bdr99 - #177501)
- Bump home-assistant-intents to 2026.8.25 (@synesthesiam - #180190)
- Add virtual integration Beverly (@chemelli74 - #179641)
- Cloud register auto login (@klejejs - #180105)
- Add interpolation and forecast options to Environment Canada radar (@michaeldavie - #177572)
- Avoid a naive datetime.now() in the telegram_bot tests (@soldier2008 - #180187)
- Avoid a naive datetime.now() in the flume tests (@soldier2008 - #180188)
- Add Sofar Inverter Modbus integration (config flow + sensor) (@darkrain-nl - #179329)
- Add ha-merge-queue skill for merge-ready PR detection (@MartinHjelmare - #180152)
- Bump reolink_aio to 0.21.12 (@starkillerOG - #180196)
- Modernize Flexit with config flow and shared Modbus connections (@troelde - #180175)
- Set problem device class for TechnoVE sharing config conflict (@Moustachauve - #180177)
- Reolink test coverage to 100% (@starkillerOG - #180198)
- Use async_get_config_entry service helper in screenlogic (@epenet - #180161)
- Use async_get_device_and_config_entry service helper in teslemetry (@epenet - #180151)
- Use async_get_device_and_config_entry service helper in system_bridge (@epenet - #180149)
- Use async_get_device_and_config_entry service helper in simplisafe (@epenet - #180147)
- Use async_get_device_and_config_entry service helper in rainmachine (@epenet - #180146)
- Use async_get_device_and_config_entry service helper in guardian (@epenet - #180138)
- Create event loops with a factory instead of an event loop policy (@balloob - #179871)
- Avoid a naive datetime.now() in the ssdp tests (@soldier2008 - #180189)
- Remove config entity category from TechnoVE charging enabled switch (@Moustachauve - #180205)
- Do not create template entities when action validation fails during setup (@Petro31 - #180183)
- Complete exception-translations quality scale rule for tplink_omada (@Mattheinrichs - #180182)
- Derive the WiiM UPnP event callback host from the device route instead of the Home Assistant URL (@markfrancisonly - #177667)
- Add Fronius Modbus TCP (SunSpec) support (@farmio - #179995)
- Fix Flexit climate test and align WiiM async-upnp-client pin (@balloobbot - #180211)
- Set native unit of measurement for TechnoVE max current number entity (@Moustachauve - #180206)
- Gate the UniFi Protect sense config entities on the capability map (@RaHehl - #177593)
- Bump reolink_aio to 0.21.13 (@starkillerOG - #180213)
- Fix timer expiry callback orphaned by a reentrant start (@x3k6a2 - #179193)
- Fix Teslemetry tariff calendar crash on hour-24 period boundaries (@Bre77 - #180212)
- Bump hassil to 3.12.0 (@synesthesiam - #180210)
- Bump aioshelly to 13.32.0 (@bieniu - #180204)
- Validate template
actions:field using async_validate_actions_config (@Petro31 - #180018) - Bump ZHA to 2.2.0 (@TheJulianJES - #180231)
- fix: add missing ecobee model (@hudcap - #180226)
- Add collection_image.shuffle service (@karwosts - #180075)
- Fix smartthings media_player tests (@emontnemery - #180239)
- Fix shelly climate tests (@emontnemery - #180237)
- Use async_set_updated_data in Hot Spring number entity (@Moustachauve - #180227)
- Improve recorder tests for purging states of a group entity (@emontnemery - #180126)
- Fix plugwise test fixture (@emontnemery - #180236)
- Set _attr_color_mode in xthings_cloud light entity (@emontnemery - #180235)
- Improve typing in bluetooth test (@epenet - #180246)
- Persist the translation domain for config entry setup errors (@zweckj - #180192)
- Show a dedicated ESPHome config flow error when provisioning closed (@balloob - #180245)
- Add Fronius Modbus setpoint numbers (@farmio - #180241)
- Avoid a naive datetime.now() in the suez_water tests (@soldier2008 - #180191)
- Bump zha-quirks to 2.2.1 (@TheJulianJES - #180233)
- Bump sofar-modbus to 0.4.0 (@darkrain-nl - #180249)
- Allow config flow aborts to be translated by another integration (@zweckj - #180240)
- Improve error when using wrong method to update device (@emontnemery - #179971)
- Add the full per-register sensor table to Sofar (@darkrain-nl - #180243)
- Set translation attributes on ConfigEntryNotReady in coordinator (@MartinHjelmare - #180195)
- Add diagnostics to NeoPool (@svasek - #179661)
- Fix flaky bootstrap stage timeout tests (@balloobbot - #180254)
- Add config select entities for WAGO devices to Matter (@agners - #180193)
- Add Reolink work mode battery/powered entities (@starkillerOG - #179852)
- Create base entity for Frontier Silicon device entities. (@ashh87 - #178673)
- Cleanup google_wifi consts and reorder structure to fix name resolution (@EReaso - #178694)
- idrive_e2: warmup loader caches to remove blocking listdir calls (@patrickvorgers - #177422)
- Bump victron-mqtt to 2026.8.4 (@tomer-w - #178428)
- Pass translation domain to AbortFlow (@zweckj - #180257)
- Discover new Monzo accounts and pots (@JakeMartin-ICL - #179057)
- Add the missing device class to the Sofar EPS wait time sensor (@darkrain-nl - #180260)
- Stream Teslemetry energy live status, site info and tariff over SSE (@Bre77 - #178735)
- Add hourly and daily forecast attributes to Open-Meteo (@bexelbie - #172864)
- Add sensor platform to Midea (@rokam - #177884)
- Add Time platform to Midea (@rokam - #180035)
- Set climate device from Midea based on capabilities (@rokam - #178563)
- Handle cloud_not_connected string centrally (@zweckj - #180265)
- Add get_forecast service to Forecast.Solar (@purcell-lab - #174251)
- Add
conditions:to trigger based template entity options (@Petro31 - #174055) - Wait for hassio before reporting installation type during onboarding (@agners - #178737)
- Fix midea snapshots (@zweckj - #180270)
- Expand composite devices in tag trigger (@emontnemery - #180247)
- Fix ZHA device with 0 entities not setting
via_device_id(@TheJulianJES - #178305) - Add reauth and reconfigure flows to vizio via a shared validation pipeline (@raman325 - #176560)
- Bump hass-nabucasa to 2.6.0 (@balloobbot - #180258)
- Add Fronius Modbus control switches (@farmio - #180261)
- Strip unknown label ids in entity/device/area registry websocket APIs (@MindFreeze - #173438)
- Split user flow init and data submission in vizio tests (@raman325 - #180068)
- Add Specialized Turbo e-bike BLE integration (@JamieMagee - #168444)
- Allow a template for the
attributesoption in template entities (@Petro31 - #180058) - Add NexBlue integration (@nexblue-maintainer - #178132)
- Add device class selector (@jbouwh - #179331)
- Update frontend to 20260826.0 (@bramkragten - #180278)
- Add all remaining guntamatic sensors (@JensTimmerman - #179770)
- Add additional sun triggers and conditions (@emontnemery - #180106)
- Bump WiiM to platinum quality scale (@balloob - #180256)
- Add LibreNMS integration (@mib1185 - #176825)
- Fix transient network error handling during Google Drive token refresh (@tronikos - #174313)
- Add Silla Prism integration (@ebaschiera - #176785)
- Use device class selector for bayesian (@jbouwh - #180285)
- Add ISEO ARGO BLE lock integration (@FezVrasta - #164752)
- Add an API-key-only connection mode to UniFi Protect (@RaHehl - #176410)
- Add gazetter fallback to default conversation agent (@synesthesiam - #180197)
- Use device class selector for random (@jbouwh - #180291)
- Use device class selector for generic hygrostat (@jbouwh - #180287)
- Use dt_util.now instead of datetime.now in google tests #177781 (@EReaso - #180224)
- Refactor tests to use common fixtures (@karwosts - #180286)
- Update python-roborock to 7.1.1 (@Lash-L - #180280)
- Add diagnostics to Monzo (@JakeMartin-ICL - #180271)
- Add switch platform to NeoPool (@svasek - #178684)
- Move Sofar device metadata out of the state machine (@darkrain-nl - #180263)
- Add AirGradient Go support (@samuelbles07 - #179543)
- Add Auto shut-off threshold numbers to Watergate Sonic device (@adam-the-hero - #180267)
- Don’t fetch the same OID twice while setting up an SNMP sensor (@bhamiltoncx - #179945)
- Add Remember the Milk todo platform (@MartinHjelmare - #180057)
- Add firmware update platform to WattWächter Plus (@smartcircuits - #180203)
- Silence Hikvision videoloss watchdog warning (@ptarjan - #180234)
- Add light platform to Hot Spring integration (@Moustachauve - #180230)
- Add sensor entities for multiple RoomIQ sensors (@jrhillery - #174917)
- Refactor energyzero integration to support library API changes (@klaasnicolaas - #168641)
- Fix unifiprotect missing import (@MartinHjelmare - #180298)
- Remove the Sofar system time sensor (@darkrain-nl - #180302)
- Fix longstanding ViCare reconnect issue by migrating sensor to DataUpdateCoordinator (@lackas - #173776)
- Add qingping-iot requirement (@tengfeili-qingping - #180119)
- Refactor SMTP to use
EmailMessage(@tr4nt0r - #178369) - Make config entry field required in DuckDNS
set_txtaction (@tr4nt0r - #177614) - Add switch platform to Vistapool (@fdebrus - #172540)
- Add event entity platform to SimpliSafe (@KTibow - #174367)
- Add OpenCloseStop cover support to lutron_caseta (@ehoch - #180199)
- Expose MonarchAccount ownedByUser attribute (@bradleyseanf - #178027)
- Enhance DHW schedule management with refresh and error handling (@liudger - #176344)
- Avoid a naive datetime.now() in the image tests (@soldier2008 - #180178)
- Add DHCP discovery to EARN-E P1 Meter (@Miggets7 - #176551)
- Add gasleser.pulse support to energieleser (@AjinkyaGokhale - #180167)
- Write the google_sheets created column in the configured time zone (@soldier2008 - #180214)
- Add cover speed support to SwitchBot roller shades (@sjafferali - #169334)
- Add Hot Water Override select entity to opentherm_gw (@mvn23 - #173378)
- Refactor Nord Pool coordinator (@gjohansson-ST - #180314)
- Add Cloud STT v2 as labs feature (@balloob - #180259)
- Publish the Sofar waiting time as the moment it ends (@darkrain-nl - #180309)
- Cover the Sofar coordinator’s failure paths through entity state (@darkrain-nl - #180306)
- Use device class selector for satel integra (@jbouwh - #180311)
- Bump neopool-modbus to 4.5.3 (@svasek - #180307)
- Bump python-xbox to 0.2.1 (@tr4nt0r - #180295)
- Support speed parameter in Velux covers (@wollew - #180036)
- add tags and cancel to pushover (@irstmon - #166148)
- Bump py-unifi-access to 1.6.1 (@RaHehl - #180294)
- Translate shared OAuth2 abort reasons centrally (@zweckj - #180255)
- Migrate ZhongHong to a config entry (@crhan - #178506)
- Use reported battery level for Flume low battery sensor (@shbatm - #178471)
- Add certificate expiration sensor to Gatus integration (@TN-1 - #178660)
- Fix history stats missed state change during startup (@karwosts - #166748)
- Add button platform to NeoPool (@svasek - #178693)
- homematicip_cloud: migrate simple sensors to entity descriptions (@lackas - #173441)
- Add authentication support to Gatus integration (@TN-1 - #178663)
- Discover hortimax controllers on every update instead of once during setup (@wildekek - #179158)
- Bump sofar-modbus to 0.5.0 (@darkrain-nl - #180325)
- Fix Lyric room sensor/priority data being silently skipped for T9/T10 thermostats (@clutch2sft - #177022)
- Fix ESPHome climate target temperature handling in auto mode (@eigger - #179202)
- Reclassify Matter IKEA air quality sensor switch as config entity (@staticdev - #179546)
- Disconnect the Litter-Robot account when Home Assistant stops (@pszypowicz - #180048)
- Fix ViCare setup by passing the accessor to fetch_all_features (@lackas - #180315)
- Use device class selector for scrape (@jbouwh - #180316)
- Sofar split devices using via devices (@darkrain-nl - #180321)
- Use device class selector for sql (@jbouwh - #180324)
- Bump UniFi to v94 (@Kane610 - #180330)
- Update knx-frontend to 2026.8.26.184052 (@farmio - #180338)
- Icons and translation for Midea Climate DeviceType AC (@rokam - #180345)
- Bump fumis to 0.4.1 (@frenck - #180355)
- Allow saving HTTP config without trusted proxies (@frenck - #180357)
- Fix WLED estimated current missing with per output limiters (@frenck - #180359)
- Name the Fronius power limit after the side it acts on (@farmio - #180364)
- Avoid blocking SSL context creation in the MCP SSE transport (@frenck - #180367)
- Keep the Spotify source list in a stable order (@frenck - #180368)
- Keep LG soundbar modes the library cannot name (@frenck - #180369)
- Map SmartThings stick cleaner operating state onto its options (@frenck - #180370)
- Keep UniFi Protect month browsing inside the month asked for (@frenck - #180381)
- Bump pyportainer to 1.0.45 (@erwindouna - #180384)
- Report KNX group address DPT for undecodable telegrams (@farmio - #180390)
- Bump PyViCare to 2.62.0 (@lackas - #180395)
- cloudflare_r2: warmup loader caches to remove blocking listdir calls (@patrickvorgers - #180398)
- Drop ecobee thermostats from the action list on unload (@frenck - #180399)
- Drop redundant integration name from Cloud Labs feature title (@balloob - #180401)
- Stop deriving PrusaLink job timestamps after the print ends (@frenck - #180402)
- Bump hass-nabucasa from 2.6.0 to 2.7.0 (@klejejs - #180409)
- Bump simplisafe-python to 2026.06.0 (@frenck - #180419)
- Report a color mode for WiZ bulbs that send no color values (@frenck - #180420)
- Bump probatio to 0.11.3 (@frenck - #180426)
- Update frontend to 20260826.1 (@bramkragten - #180427)
- Fix homematicip_cloud shutter group resetting slats on close (@mastameista - #172278)
- Fix TemperatureOffset native min/max unit conversion for Matter thermostats (@lboue - #180172)
- Add device class to Homewizard signal strength (@joostlek - #180347)
- Report Google Sheets API failures as Home Assistant errors (@frenck - #180360)
- Apply AiDot color when brightness is sent along with it (@frenck - #180391)
- Block Capability and State attributes for template sensor attributes but allow
options(@Petro31 - #180396) - Fix timeout of endpoint does not crash Portainer update (@erwindouna - #180405)
- Fix swallowed exceptions in dlna_dmr action handlers (@chishm - #180408)
- Revert numpy back to 2.3.2 (@erwindouna - #180411)
- Confirm before removing a failed mount from the repair (@agners - #180414)
- Wait for the EHEIM Digital main device data before setting up (@frenck - #180418)
- Ensure gardena image goes back to unknown on render fails (@elupus - #180431)
- Bump renault-api to 0.5.13 (@sebastiaanspeck - #180436)
- Keep the current hour in the SMHI hourly forecast (@frenck - #180439)
- Fix Govee H5055 Bluetooth discovery (@djbill99-hue - #180443)
- Keep Proxmox VE snapshot names within the API limits (@frenck - #180444)
- Use ESPHome project info for serial device manufacturer and model (@jesserockz - #180450)
- Translate KNX device trigger configuration error (@farmio - #180456)
- Answer follow-up commands the gazetteer understood (@synesthesiam - #180457)
- Send the transition with the WLED segment change (@frenck - #180471)
- Remove cloud config entry on logout (@klejejs - #180472)
- Read cloud auto-login state from the hass-nabucasa controller (@klejejs - #180423)
- Use the temperature step Airzone reports (@frenck - #180476)
- Accept a templated PIN for the Matter lock credential (@frenck - #180482)
- Normalize the Proxmox VE guest id to an int (@frenck - #180488)
- Honor the Modbus verify states for coils (@frenck - #180490)
- Update knx-frontend to 2026.8.28.62336 (@farmio - #180491)
- Apply the hygrostat minimum cycle duration to keep-alive calls (@frenck - #180494)
- Retry SmartThings setup when the subscription times out (@frenck - #180495)
- Set up Denon receivers that report no serial number (@frenck - #180501)
- Bump aiowebostv to 0.10.0 (@darkrain-nl - #180504)
- Don’t attach a device to iotawatt entities without a unique ID (@agners - #180505)
- Webostv screen switch capability (@darkrain-nl - #180506)
- Require admin for remaining Z-Wave lock services (@AlCalzone - #180512)
- Tell Telegram which updates the bot wants (@frenck - #180519)
- Keep an LG soundbar on when it never reports a power status (@frenck - #180521)
- Bump peblar to 0.6.0 (@frenck - #180522)
- Fix device class for Matter thermostat temperature offset numbers (@lboue - #180535)
- Handle missing name in UniFi firewall policy (@Kane610 - #180536)
- bump pyenphase to 4.0.1 (@catsmanac - #180538)
- Bump pyanglianwater to 3.3.2 (@pantherale0 - #180539)
- Say so when Abode reauthentication uses a different account (@frenck - #180540)
- Fix Matter fan turn_on writing invalid PercentSetting=255 (@lboue - #180541)
- Retry SmartThings setup when the cloud is unreachable while fetching (@frenck - #180542)
- Retry Freebox setup when the router cannot be reached (@frenck - #180544)
- Only add a Lutron Caseta battery sensor where there is a battery (@frenck - #180545)
- Restore a SwitchBot Cloud AC temperature in the unit it was published in (@frenck - #180547)
- Add description to Lichess config flow (@joostlek - #180549)
- Report Overkiz Uno awnings as closed when retracted (@frenck - #180478)
- Follow the requested mode when setting a SwitchBot Cloud AC temperature (@frenck - #180518)
- Validate KNX entity store data before setting up UI entities (@farmio - #180067)
- Poll the myStrom motion sensor readings (@frenck - #180416)
- Restore Plex recovery from a changed plex.direct certificate (@frenck - #180446)
- Address review feedback on Matter fan PercentSetting fix (@lboue - #180554)
- Bump tmodbus to 0.6.2 (@balloobbot - #180557)
- Bump intents to 2026.8.28 (@synesthesiam - #180558)
- Skip Bluesound players whose config entry is not loaded (@frenck - #180559)
- Leave a SwitchBot air purifier without a preset it does not report (@frenck - #180560)
- Translate the Peblar setup exceptions (@frenck - #180561)
- Keep a SwitchBot Cloud entry loading when the cloud goes away (@frenck - #180562)
- Pass the config entry to the ProgettiHWSW coordinators (@frenck - #180566)
- Report the uHoo volatile organic compounds in the class that carries its unit (@frenck - #180567)
- Guard the Hydrawise zone and sensor of an entity like its controller (@frenck - #180570)
- Stop calling the Tuya doorbell payloads a doorbell (@frenck - #180574)
- Bump zeroconf to 0.151.1 (@bdraco - #180579)
- Fix Growatt V1 total output power (@HansKDev - #176513)
- Fix SmartThings AC temperature range unit conversion (@StellarSea - #180299)
- Recognize AirGradient 0-1PS as an outdoor model (@samuelbles07 - #180313)
- Fix swallowed exceptions in action handlers for MJPEG IP Camera (@mstu01 - #180353)
- Handle malformed ViCare payloads as an update failure (@lackas - #180407)
- aws_s3: warmup loader caches to remove blocking listdir calls (@patrickvorgers - #180413)
- Report a sleeping Roborock Q7 job as paused (@ximex - #180432)
- Fix the Peblar charge limit maximum (@frenck - #180564)
- Only offer smart charging modes the Peblar accepts (@frenck - #180565)
- Bump peblar to 1.0.1 (@frenck - #180577)
- Fix deviceinfo missing mac and s/n for Midea (@chemelli74 - #180594)
- Add missing icons to switches for Midea (@chemelli74 - #180596)
- Refresh the Alexa to-do list after writing to it (@frenck - #180598)
- Ask MCP authorization servers for a refresh token (@frenck - #180604)
- Gate the Sofar waiting-ends sensor on an active countdown (@darkrain-nl - #180605)
- FIx airflow and power rate availability for Midea (@chemelli74 - #180613)
- Translate the update install and skip errors (@frenck - #180615)
- Give a sleeping printer time to wake up (@frenck - #180616)
- Specify integration domain in deprecation notice (@gjohansson-ST - #180628)
- Scan every supported wireless interface in Mikrotik (@chemelli74 - #180636)
- Add 100% coverage for coordinator in Mikrotik (@chemelli74 - #180637)
- Add 100% coverage to todo in Alexa Devices (@chemelli74 - #180638)
- Add 100% coverage to light in Midea (@chemelli74 - #180640)
- Add 100% coverage to binary_sensor in Midea (@chemelli74 - #180642)
- Add 100% coverage to coordinator in Shelly (@chemelli74 - #180644)
- Bump probatio to 0.11.4 (@frenck - #180655)
- Resolve missing local addresses for Mitsubishi Comfort devices (@nikolairahimi - #173270)
- velbus: fix unique_id collision for Property sensor entities (@StefCoene - #176343)
- Fix mangled model names in Google Generative AI options (@noron12234 - #178686)
- Use SmartThings custom setpoint bounds for air conditioners (@StellarSea - #180304)
- Support Shellies with
enhanced_securityand HTTP (@burmistrzak - #180438) - Report an uncalibrated Shelly roller by its last direction (@frenck - #180485)
- Let LG ThinQ unload when the network is down (@frenck - #180610)
- Ask Google for the calendar access the entry is set to (@frenck - #180612)
- Seed Sofar total sensors’ high-water marks before the first poll (@darkrain-nl - #180624)
- Add support for Miele KM7740 and KM7899 (@SvenC81 - #180632)
- Do not crash the Synology DSM options on an unloaded entry (@frenck - #180692)
- Bump midea-local to 10.1.0 (@rokam - #180694)
- Abort the Silla Prism config flow when MQTT is unavailable (@ebaschiera - #180712)
- Fix Prana fan percentage rounding so displayed values map to the same step (@alexx9363 - #180718)
- Bump pytrafikverket to 2.0.0 (@gjohansson-ST - #180820)
- Fix Trafikverket Ferry no time (@gjohansson-ST - #180822)
- Correctly display sn and mac in Midea device page (@rokam - #180848)
- Bump solaredge-web to 0.4.0 (@tronikos - #180861)
- Add Tuya indicator light on translation (@minimicro34 - #180865)
- Bump reolink_aio to 0.21.14 (@starkillerOG - #180870)
- Stop the Hikvision event stream on Home Assistant shutdown (@ptarjan - #180873)
- Bump habluetooth to 6.26.11, bleak-retry-connector to 4.7.0 and bluetooth-data-tools to 1.29.24 (@bdraco - #180877)
- Bump wiim to 0.1.7 (@Linkplay2020 - #180884)
- Bump pyHik to 0.4.4 (@ptarjan - #180837)
- Bump pyHik to 0.4.5 (@ptarjan - #180885)
- Remove the Sofar waiting-ends sensor (@darkrain-nl - #180899)
- Bump tuya-device-handlers to 0.0.27 (@epenet - #180906)
- Add map tiles integration to proxy the OpenStreetMap base map (@bramkragten - #180441)
- Close the Firestore clients when the Vistapool auth is done (@fdebrus - #180866)
- Restore Husqvarna Automower work area sensors and gate by WorkAreaTyp… (@Thomas55555 - #180868)
- Add miele washing machine program for towels (@astrandb - #180916)
- Add clarity to the STT Labs title (@shayredmond - #180927)
- Suggest hours as unit of measurement for Google Health sleep duration sensors (@allenporter - #180929)
- Revert images functionality in Home Connect (@Diegorro98 - #180933)
- Keep the config directory out of sys.path in the container (@frenck - #180967)
- Fix collection_image unavailable handling (@karwosts - #180973)
- Fix Music Assistant shared player icons (@meiser79 - #180979)
- Fix light color mode in microbees (@emontnemery - #180982)
- Add more miele dishwasher codes (@astrandb - #180986)
- Bump hdfury to 1.6.1 (@glenndehaan - #180990)
- Update frontend to 20260826.2 (@bramkragten - #180994)
- Use iter_chunked for STT audio stream to prevent LineTooLong (@GiacomoSaccaggi - #180831)
- Bump brother to 6.1.2 (@bieniu - #180998)
- Drop the DC claim from the Fronius MPPT energy sensor (@farmio - #181016)
- Fix AdGuard Home device identifiers (@frenck - #181027)
- Add SmartThings dry comfort AC preset mode (@frenck - #181029)
- Fix offline devices being removed in Xbox integration (@tr4nt0r - #181045)
- Bump ZHA to 2.2.1 (@TheJulianJES - #181051)
- Update frontend to 20260826.3 (@bramkragten - #181067)
- Update frontend to 20260826.4 (@bramkragten - #181072)
- Ignore static add-on devices when attributing serial ports (@balloobbot - #181074)
- Revert “Close the Firestore clients when the Vistapool auth is done (@fdebrus - #180866)