Full changelog for Home Assistant 2026.2
These are all the changes included in the Home Assistant 2026.2 release. For a summary in a more readable format Release notes blog for this release.
All changes
- Bump version to 2026.2.0dev0 (@frenck - #159956)
- Record current Synology DSM integration quality scale (@mib1185 - #141245)
- Record current Feedreader integration quality scale and set to silver (@mib1185 - #143179)
- Implement reconfigure config flow in SRP energy (@ammmze - #151542)
- Migrate traccar_server to use entry.runtime_data (@BlackBadPinguin - #156065)
- Pooldose Diagnostics (@lmaertin - #159965)
- Add ambient temperature sensor to ToGrill (@pandanz - #159798)
- Accept integer coordinates in has_location helper (@doomsniper09 - #159835)
- Bump librehardwaremonitor-api to version 1.7.2 (@Sab44 - #159987)
- Add podcast favorites support to Sonos media browser (@divers33 - #159961)
- Add support for vacuum entity for Roborock Q7 (@Lash-L - #159966)
- Bump pyfirefly 0.1.10 (@erwindouna - #160028)
- remove domain and service slots from Service object (@rlippmann - #160039)
- bump soco to 0.30.14 for Sonos (@PeteRager - #160050)
- Add Auto Off Switch to VeSync (@cdnninja - #160070)
- Use brightness scale in velbus light (@cereal2nd - #160041)
- Velbus quality docs updates (@cereal2nd - #160092)
- Add reconfiguration flow to pooldose (@lmaertin - #159978)
- netatmo: test_camera webhook testing parametrize and light split (@farkasdi - #159772)
- Add pm1 and pm10 to vesync (@cdnninja - #160072)
- Use long service timeout for Sonos Unjoin (@PeteRager - #160110)
- Bump pyportainer 1.0.21 (@erwindouna - #160130)
- Add time synchronization feature to BSB-Lan integration (@liudger - #156600)
- Add filling level sensors to miele (@astrandb - #157858)
- bump nibe to 2.21.0 (@Nikoheld - #160135)
- Bump nextdns to version 5.0.0 (@bieniu - #160138)
- Remove low level call for Shelly climate (@chemelli74 - #160065)
- Refactor TP-Link Omada config flow tests (@MarkGodwin - #159950)
- Velbus mark entities unavailable when connection is terminated (@cereal2nd - #160143)
- Bump velbus to silver integration scale (@cereal2nd - #160147)
- Bump pyportainer 1.0.22 (@erwindouna - #160140)
- raise proper service exceptions in fressnapf_tracker (@eifinger - #159707)
- Add discovery for default hostnames to PlayStation Network (@tr4nt0r - #160173)
- Set integration type service in Duck DNS (@tr4nt0r - #160172)
- Portainer add state sensor (@erwindouna - #160156)
- Pooldose document exempts (@lmaertin - #160166)
- Bump airOS to v0.6.1 adding LiteAP AC support (@CoMPaTech - #160194)
- Bump python-bsblan dependency to version 3.1.6 (@liudger - #160202)
- Portainer polish ephemeral container ID (@erwindouna - #160186)
- Bump aioesphomeapi to 43.10.1 (@bdraco - #160227)
- Fix execution history matching to ignore subsystem suffix in diagnostics in Overkiz (@iMicknl - #160218)
- Bump librehardwaremonitor-api to version 1.8.4 (@Sab44 - #160249)
- Make verify_ssl configurable in remote calendar (@Thomas55555 - #160216)
- Add entered and left home person triggers (@mib1185 - #159320)
- Add state_class to waterfurnace sensors (@masterkoppa - #160277)
- Set PARALLEL_UPDATES in VeSync (@cdnninja - #160272)
- Bump tuya-device-sharing-sdk to 0.2.8 (@abelyliu - #160288)
- Allow passing trigger options to parametrize_trigger_states (@emontnemery - #160119)
- Move Tuya vacuum entity logic to wrapper class (@epenet - #159255)
- Bump google-genai to 1.56.0 (@dotlambda - #160210)
- Make Tuya DeviceWrapper a generic class (@epenet - #159349)
- Bump async-upnp-client to 0.46.2 (@StevenLooman - #160188)
- Bump yolink api to 0.6.1 (@matrixd2 - #160293)
- Switchbot Cloud: Add new supported light (@XiaoLing-git - #160282)
- Refactor entity unavailable handling in VeSync (@cdnninja - #160274)
- Use generic DeviceWrapper in more Tuya platforms (@epenet - #160298)
- Use generic DeviceWrapper in Tuya sensor (@epenet - #160299)
- Use generic DeviceWrapper in Tuya cover (@epenet - #160301)
- Add openevse config flow (@c00w - #158968)
- Add max_value/min_value/value_step to Tuya DeviceWrapper (@epenet - #160300)
- Test hassfest translations gen_strings_schema (@MartinHjelmare - #159464)
- Refactor Xbox coordinators (@tr4nt0r - #160174)
- Use a fixture in NINA to mock async_setup_entry (@DeerMaximum - #160323)
- Add report_type to Tuya diagnostic (@abelyliu - #160311)
- Bump systembridgeconnector to 5.3.1 (@timmo001 - #160326)
- Remove stale devices in Xbox integration (@tr4nt0r - #160337)
- Add action exceptions to Duck DNS (@tr4nt0r - #160331)
- Add button entity to Airobot integration (@mettolen - #160169)
- Add more Tibber sensors (@Danielhiversen - #160354)
- Remove default in Tuya DeviceWrapper options (@epenet - #160303)
- Update Saunum integration to gold quality tier (@mettolen - #159783)
- Refactor Tuya event platform to use DeviceWrapper (@epenet - #160366)
- Add test helpers for numerical state triggers (@emontnemery - #160308)
- Update guppy3 to 3.1.6 (@cdce8p - #160356)
- Replace openevse backend library (@c00w - #160325)
- Bump sentry-sdk to 2.48.0 (@vaind - #159415)
- Add additional lens modes 4 to 10 to JVC projector remote (@momala454 - #159657)
- Add Vesync Air Fryer Sensors (@cdnninja - #160170)
- Small cleanup for Vodafone Station tests (@chemelli74 - #160415)
- Add codeowners and integration_type for waterfurnace (@masterkoppa - #160397)
- Bump aioshelly to 13.23.1 (@chemelli74 - #160420)
- Fix capitalization in
openevsedata_description string (@NoRi2909 - #160423) - Bump aiovodafone to 3.1.1 (@chemelli74 - #160429)
- NINA Use MockConfigEntry to setup integration in test (@DeerMaximum - #160324)
- Add zeroconf discovery to openevse (@firstof9 - #160318)
- Add icon translations for velbus (@cereal2nd - #160439)
- Bump aiohomeconnect to version 0.28.0 (@Diegorro98 - #160438)
- Add unique_id to openevse user flow and import flow (@firstof9 - #160436)
- Optimize enphase_envoy code for on_phase use (@catsmanac - #160448)
- Improve Bravia TV logging messages (@Drafteed - #160394)
- Add steam mode and hot air gentle programs to Home Connect (@Diegorro98 - #160445)
- Update ruuvitag-ble to 0.4.0 (@terop - #160441)
- Update velbus quality scale rules for docs (@cereal2nd - #160200)
- remove workaround for recognition of closed velux windows (@wollew - #160433)
- Add battery support to Bang & Olufsen (@mj23000 - #159994)
- Use async_configure in NINA to set flow data in tests (@DeerMaximum - #160435)
- catch and wrap exceptions when doing pyvlx actions in velux entities (@wollew - #160430)
- Bump PySwitchbot to 0.76.0 (@zerzhang - #160470)
- Make Tuya binary sensor consider only updated properties (@deyanp - #160404)
- Add icons for Nord Pool highest and lowest price sensors (@scop - #159729)
- Get the polling state of a sensor from a template (@etiennec78 - #159900)
- Add HDFury integration (@glenndehaan - #159996)
- Add missing PARALLEL_UPDATES to Tesla Fleet (@Bre77 - #160510)
- Add missing data_description translations to Tessie (@Bre77 - #160511)
- Refactor netatmo binary sensors (@farkasdi - #160352)
- Add dishwasher program Dishcare.Dishwasher.Program.IntensiveFixedZone (@JesusSanchezLopez - #160463)
- Add support for gas meter in Powerfox integration (@klaasnicolaas - #158196)
- Fix typo in NINA config flow (@DeerMaximum - #160523)
- Add bronze quality scale for NINA (@DeerMaximum - #155191)
- Portainer add prune unused images (@erwindouna - #160137)
- Add HDFury button platform (@glenndehaan - #160548)
- Add target_humidity_step attribute to humidifier (@LG-ThinQ-Integration - #156906)
- Change nettleie to grid fee in english strings (@osohotwateriot - #160516)
- Skip Tuya update if it is not relevent (@epenet - #160407)
- Correct vesync missing return type (@cdnninja - #160580)
- Add battery charging binary sensor to Bang & Olufsen (@mj23000 - #160527)
- Fix translation of unknown response in Teslemetry & Tesla Fleet (@Bre77 - #160506)
- Change Tuya covers to prefer set_position instead of instruction_wrapper (@azerty9971 - #160526)
- openevse: Add device_info and unique_id to sensors (@c00w - #160543)
- Yardian: Add sensors (@barneyonline - #153020)
- Bump PyViCare to 2.55.1 (@CFenner - #156875)
- Add humidifier entity for humidifier and dehumidifier to LG ThinQ (@LG-ThinQ-Integration - #152593)
- Spotify: user Liked Songs collection playable (@fr33mang - #160452)
- Introduce better types in Yardian coordinator (@barneyonline - #152641)
- Update Airobot integration to gold quality tier (@mettolen - #160525)
- Add number entities to Saunum integration (@mettolen - #160444)
- Add HDFury switch platform (@glenndehaan - #160620)
- Add Ruuvi IAQS to Ruuvi BLE (@terop - #160529)
- Rename Namecheap FreeDNS to Dynamic DNS (@tr4nt0r - #160625)
- Use duration selector for timer service (@karwosts - #160391)
- Add the professionel5e filter series to eheimdigital (@autinerd - #155550)
- Bumb switchbot api to v2.10.0 (@XiaoLing-git - #160657)
- Add recalibrate CO2 button to Airobot (@mettolen - #160679)
- Use snapshots for binary sensor tests in Nina (@DeerMaximum - #160532)
- Move condition to prioritize preset mode (eco/comfort…) instead of program name in Overkiz (@orandin - #160189)
- Bump easyenergy to 2.2.0 (@bdraco - #160709)
- Improve polling error messages for Telegram bot (@hanwg - #160675)
- Pump pysaunum to 0.2.0 (@mettolen - #160668)
- Add model id RODRET wireless dimmer (@mattreim - #160636)
- Bump aiodns to 4.0.0 (@bdraco - #160707)
- Bump tplink_omada quality scale to bronze (@MarkGodwin - #160762)
- Rename registry imports in entity platform (@arturpragacz - #160766)
- Yolink diagnostic sensors (@carterjgreen - #160749)
- Assign device_entry earlier in entity platform (@arturpragacz - #160767)
- Fix scrape sensor device name (@arturpragacz - #160765)
- Add more pollutants to Google Air Quality (@Thomas55555 - #160738)
- Pooldose: Sync with docs update (@lmaertin - #160190)
- Add HDFury diagnostics (@glenndehaan - #160641)
- Bump vallox-websocket-api to 6.0.0 (@yozik04 - #160742)
- Complete entity name and icon translations in FRITZ!Box Tools (@mib1185 - #160746)
- Bump python-bsblan to version 4.1.0 (@liudger - #160676)
- Bump hass-nabucasa from 1.7.0 to 1.8.0 (@klejejs - #160775)
- Handle deleted issue during repair flow translation check (@bdraco - #160698)
- Pass config_entry explicitly to Point coordinator (@fghpdf - #160578)
- Add support for eds0065 in onewire (@seppwabala - #160094)
- Move typed ConfigEntry to coordinator module in point (@epenet - #160786)
- Add Matter occupied setback for thermostats (@lboue - #155439)
- Use load_json_object_fixture in tests for NINA (@DeerMaximum - #160690)
- Add TIMESTAMP device classes to corresponding sensors in APCUPSD (@yuxincs - #160577)
- Block untill done while setting up cloud in tests (@ludeeus - #160780)
- Add match case in perform action (@erwindouna - #160150)
- Add fixture for Matter Eve Thermo 20ECD1701 (v5) with detailed attributes (@lboue - #160795)
- Bump hass-nabucasa from 1.8.0 to 1.9.0 (@klejejs - #160788)
- Rename Matter Eve Thermostat Fixture to eve_thermo_v4 (@lboue - #160796)
- Disable pyright type checking in VS Code (@emontnemery - #160528)
- Bump python-pooldose to 0.8.2 (@lmaertin - #160800)
- Support HVAC mode in set temperature calls in Mill (@ShadowJonathan - #155416)
- Add helper for creating entity condition tests (@emontnemery - #160425)
- Make light conditions consistent with triggers and actions (@NoRi2909 - #160477)
- Update xknx to 3.14.0 (@farmio - #160813)
- Make integration scaffolding a bit more newbie-friendly (@AlCalzone - #160837)
- Adjust light condition test (@emontnemery - #160831)
- Remove progress_step date entry flow decorator (@emontnemery - #160844)
- Add guest Wi-Fi QR code for Vodafone Station (@chemelli74 - #160307)
- Add climate platform to NASweb integration (@nasWebio - #141583)
- Replace pre-commit by prek (@edenhaus - #160427)
- Remove old migration for Tibber (@Danielhiversen - #160845)
- Bump github/codeql-action from 4.31.9 to 4.31.10 (@dependabot - #160829)
- Bump qingping-ble to 1.1.0 (@syepes - #160815)
- Add config flow to Namecheap DynamicDNS integration (@tr4nt0r - #160841)
- Add authentication to config flow in openevse (@firstof9 - #160521)
- Bump voip-utils to 0.3.5 (@jaminh - #160848)
- Optimize BSB-Lan integration startup (@liudger - #160784)
- Fix logging in mycroft notify (@epenet - #160852)
- Split Tuya climate wrappers (@epenet - #160839)
- Use extended entity descriptions in openevse (@joostlek - #160611)
- Improve type hints in pushsafer notify (@epenet - #160851)
- openevse: Use a data update coordinator (@c00w - #160757)
- Refactor KNX expose entity class (@farmio - #160705)
- Remove defusedxml dependency from Namecheap DynamicDNS integration (@tr4nt0r - #160656)
- Add camera platform support to Hikvision integration (@ptarjan - #160252)
- Refactor MELCloud integration to use DataUpdateCoordinator (@divers33 - #160131)
- Add Tibber binary sensors (@Danielhiversen - #160365)
- Bump prek to 0.2.28 (@edenhaus - #160864)
- Unmark integrations with a config flow as legacy (@joostlek - #160861)
- Improve sensor group tests (@emontnemery - #160854)
- Make pollutants dynamic in Google Air Quality (@Thomas55555 - #160747)
- Mark pooldose as strictly typed (@lmaertin - #160779)
- Add reconfigure flow to Namecheap integration (@tr4nt0r - #160870)
- Bump pyfirefly 0.1.11 (@erwindouna - #160877)
- Improve test coverage on mobile app legacy notify service action (@jbouwh - #160869)
- Use config entity category for Matter door lock operating mode (@piitaya - #160507)
- Prefer explicit
DeviceClassover hint inentity_idin homekit (@MrEbbinghaus - #152507) - Add keep_alive to generic_thermostat config flow (@scheric - #156641)
- Add HDFury sensor platform (@glenndehaan - #160628)
- Melcloud Pythonic refactor init (@erwindouna - #160891)
- Firefly III add asyncio.gather pattern (@erwindouna - #160886)
- Upgrade prettier-plugin-sort to 4.2.0 (@scop - #160894)
- Bump tesla-fleet-api to 1.4.2 (@Bre77 - #159616)
- Melcloud small config flow refactor (@erwindouna - #160892)
- Improve type hints in telegram notify (@epenet - #160855)
- Improve type hints in mobile_app notify (@epenet - #160853)
- Refactor Namecheap DNS update logic to use a coordinator (@tr4nt0r - #160863)
- Add retry logic to Teslemetry coordinators (@Bre77 - #160756)
- Add MatterOutdoorTemperature attribute to Matter binary sensor discovery schema only if OutdoorTemperature exists (@lboue - #160879)
- Bump pyportainer 1.0.23 (@erwindouna - #160878)
- Adjust sensor group behavior (@emontnemery - #152167)
- Remove set of _attr_extra_state_attributes in sensor group (@emontnemery - #160846)
- Fix some reversed asserts in sensor group tests (@emontnemery - #160905)
- Bump j178/prek-action from 1.0.11 to 1.0.12 (@dependabot - #160902)
- Add calendar event_started/event_ended triggers (@abmantis - #159659)
- Firefly III expand asyncio.gather usage (@erwindouna - #160913)
- Improve comments in trigger and condition test helpers (@emontnemery - #160830)
- Minor optimization of light conditions (@emontnemery - #160915)
- Add SmartThings media-player audio notifications (@vmonkey - #153287)
- Fix Generate requirements task (@MartinHjelmare - #160916)
- Bump zwave-js-server-python to 0.68.0 (@MartinHjelmare - #160911)
- Mark send_message type hints as compulsory in notify (@epenet - #160850)
- Simplify light condition tests (@emontnemery - #160910)
- Improve entity id generation (@arturpragacz - #160302)
- Update matter test snapshots (@emontnemery - #160924)
- Adjust docstring in entity registry (@emontnemery - #160926)
- Duration selector for timer.change (@karwosts - #160645)
- Mark device_class type hints as compulsory in sensor platform (@epenet - #160931)
- Mark device_class type hints as compulsory in various platforms (@epenet - #160929)
- Add fan conditions (@emontnemery - #160832)
- Add button platform to sunricher_dali (@niracler - #160908)
- Translate Hikvision NVR channel device name (@joostlek - #160862)
- Mark device_class type hints as compulsory in binary_sensor platform (@epenet - #160934)
- Add create_target_condition test helper (@emontnemery - #160936)
- Add shared enable_experimental_triggers_conditions test fixture (@emontnemery - #160937)
- Add shared helper to assert conditions are hidden behind labs flag (@emontnemery - #160941)
- Remove entity performance optimization section from copilot-instructions (@abmantis - #160944)
- Firefly III fix background task (@erwindouna - #160935)
- Update sunricher_dali test snapshots (@emontnemery - #160973)
- Move utility_meter service definitions (@epenet - #160980)
- Fix stale and misleading docstrings in alarm_control_panel.trigger (@emontnemery - #160978)
- Deduplicate light condition descriptions (@emontnemery - #160977)
- Teslemetry: Add OAuth error handling guards (@Bre77 - #160968)
- Improve type hints in ebusd (@epenet - #160984)
- Mark last_reset and state_class type hints as compulsory in sensor platform (@epenet - #160982)
- Improve type hints in mfi (@epenet - #160985)
- Add alarm_control_panel conditions (@emontnemery - #160975)
- Remove unused test fixture from light condition tests (@emontnemery - #160925)
- Fix duplicate HVACMode in Tuya climate (@epenet - #160918)
- Add assist_satellite conditions (@emontnemery - #161019)
- Add Resideo X2S Smart Thermostat diagnostics to Matter fixture (@TheJulianJES - #161037)
- Improve type hints in homematic (@epenet - #161002)
- Improve type hints in envisalink (@epenet - #161005)
- Improve type hints in digital_ocean (@epenet - #161006)
- Bump pynina to 1.0.2 (@DeerMaximum - #161013)
- Add per-camera ring volume control for UniFi Protect chimes (@RaHehl - #161031)
- Make shebang matcher stricter (@edenhaus - #160986)
- Use shorthand attributes in oasa_telematics (@epenet - #160990)
- Improve type hints in concord232 (@epenet - #161045)
- Revert “Add SmartThings media-player audio notifications” (@edenhaus - #161049)
- Improve type hints in egardia (@epenet - #161048)
- SMA add reconfigure flow (@erwindouna - #160743)
- Remove useless @pytest.mark.asyncio decorators from tests (@emontnemery - #161050)
- Type OpenAI config entry consistently (@zweckj - #161052)
- SMA add selector strings/translation (@erwindouna - #161060)
- Add binary sensor platform to Mastodon (@tr4nt0r - #161056)
- Add update preview feature to labs (@arturpragacz - #160989)
- Fix entity description in Mastodon (@tr4nt0r - #161068)
- Fix Matter Window covering config status entity name (@lboue - #160960)
- Use HassKey in qwikswitch (@epenet - #161066)
- Improve type hints in ness_alarm (@epenet - #161064)
- Improve type hints in nx584 (@epenet - #161065)
- Add Config Flow for ProxmoxVE (@erwindouna - #142432)
- Patch the NINA library instead of the HTTP requests (@DeerMaximum - #161074)
- Mark preset_mode type hints as compulsory in climate/fan platforms (@epenet - #161043)
- Add reauthentication to openai_conversation (@zweckj - #161044)
- Add sensor platform support to sunricher_dali integration (@niracler - #159579)
- Add switch entitles to Airobot integration (@mettolen - #161090)
- Use configuration constants in NINA tests (@DeerMaximum - #161119)
- Update mcstatus to 12.1.0 (@zachdeibert - #161124)
- Bump pyjvcprojector to 2.0.0 (@SteveEasley - #160739)
- Update Saunum integration to platinum quality (@mettolen - #160824)
- Add support for Minecraft Server Java Edition 1.4 - 1.6 (@zachdeibert - #161035)
- Improve quality scale to silver HDFury integration (@glenndehaan - #161077)
- Create cable unplugged entity only for Shelly Flood Gen4 (@bieniu - #161053)
- Add labs to core files (@arturpragacz - #161126)
- Proxmox set integration type (@erwindouna - #161141)
- Assume muted state in Xbox integration (@tr4nt0r - #161118)
- Update Gemini SDK Version (@IvanLH - #161137)
- Update Tibber library 0.35.0 (@Danielhiversen - #161139)
- Add tests for media player actions in Xbox integration (@tr4nt0r - #161156)
- Fix vicare DeprecationWarnings (@cdce8p - #161161)
- Remove deprecated Homee entity (@joostlek - #161121)
- Add configurable sauna types to Saunum integration (@mettolen - #159782)
- Add more Tibber sensors (@Danielhiversen - #161079)
- Bump xiaomi-ble to 1.5.0 (@LindaBot - #161154)
- Bump pyicloud to 2.3.0 (@timlaing - #161164)
- Use shorthand attributes in w800rf32 binary_sensor (@epenet - #161210)
- Use HassKey in wirelesstag (@epenet - #161211)
- Bump compit-inext-api to 0.4.2 (@Przemko92 - #161162)
- Fix incorrect device class in wirelesstag binary_sensor (@epenet - #161215)
- Bump actions/cache from 5.0.1 to 5.0.2 (@dependabot - #161207)
- Bump actions/ai-inference from 2.0.4 to 2.0.5 (@dependabot - #161206)
- Use shorthand attributes in qwikswitch sensor/binary_sensor (@epenet - #161209)
- Add app panel (@balloob - #157554)
- Fix pytest usefixtures mark in proxmoxve tests (@cdce8p - #161177)
- Add trigger for vacuum returning to dock (@dmorra12 - #158143)
- Increase test coverage in openevse (@c00w - #160971)
- Add reconfigure flow in Teslemetry (@Bre77 - #160969)
- Bump hass-nabucasa from 1.9.0 to 1.10.0 (@klejejs - #161226)
- Clarify description of
lawn_mower.dockedtrigger (@NoRi2909 - #161238) - Change default model for Ollama to qwen3:4b-instruct (@tannisroot - #161202)
- Bump waterfurnace to 1.4.0 (@masterkoppa - #161244)
- Add ppb as a valid UOM for sensor/number SO2 device class (@Thomas55555 - #159431)
- Add 18 new Tuya device fixtures (@atiweb - #161225)
- Bump pysaunum to 0.3.0 (@mettolen - #161255)
- Remove duplicated MQTT_ORIGIN_INFO_SCHEMA in schemas.py (@PolarBearEs - #161263)
- Use new app panel instead of ingress page (@balloob - #161264)
- Simplify logic in condition tests (@emontnemery - #161239)
- Bump pyfirefly to 0.1.12 (@erwindouna - #161278)
- Make add entry translatable (@joostlek - #159901)
- Fix nobo_hub options flow unload mocking (@MartinHjelmare - #161287)
- Bump hass-nabucasa from 1.10.0 to 1.11.0 (@klejejs - #161283)
- Pass timestamps to Tuya wrapper skip_update (@epenet - #161271)
- Switchbot Cloud: Add new supported Lock (@XiaoLing-git - #161276)
- Remove stub_blueprint_populate test fixture (@emontnemery - #161288)
- Use shorthand attributes in wyoming TTS (@epenet - #161286)
- Add siren conditions (@emontnemery - #161021)
- Add ppb as a valid uom for sensor/number CO device class (@Thomas55555 - #159554)
- Remove reference of removed stub_blueprint_populate fixture from siren tests (@emontnemery - #161294)
- Add translation for add entry to PlayStation Network integration (@tr4nt0r - #161298)
- Support target conditions in automation relation extraction (@abmantis - #161016)
- Add translation for add entry to Xbox integration (@tr4nt0r - #161296)
- Add translation for add entry to Youtube (@joostlek - #161334)
- Add translation for add entry to Withings (@joostlek - #161333)
- Add translation for add entry to SmartThings (@joostlek - #161331)
- Add translation for add entry to Twitch (@joostlek - #161332)
- Add integration_type service to sabnzbd (@joostlek - #161321)
- Add integration_type hub to rympro (@joostlek - #161320)
- Add integration_type hub to schlage (@joostlek - #161323)
- Add integration_type hub to sense (@joostlek - #161325)
- Add translation for add entry to NYT Games (@joostlek - #161327)
- Enable smart chunk size in onedrive (@zweckj - #161170)
- Add integration_type device to romy (@joostlek - #161313)
- Add integration_type device to roomba (@joostlek - #161314)
- Add integration_type hub to roon (@joostlek - #161315)
- Add integration_type service to rova (@joostlek - #161316)
- Add integration_type hub to russound_rio (@joostlek - #161317)
- Add integration_type device to ruuvi_gateway (@joostlek - #161318)
- Add integration_type device to ruuvitag_ble (@joostlek - #161319)
- Add integration_type device to qnap_qsw (@joostlek - #161299)
- Add integration_type device to rabbitair (@joostlek - #161300)
- Add integration_type device to radiotherm (@joostlek - #161302)
- Add integration_type device to rainforest_raven (@joostlek - #161306)
- Add integration_type device to rapt_ble (@joostlek - #161307)
- Add integration_type hub to refoss (@joostlek - #161308)
- Add integration_type hub to rehlko (@joostlek - #161309)
- Add integration_type device to renson (@joostlek - #161310)
- Add integration_type hub to rfxtrx (@joostlek - #161311)
- Add integration_type hub to rituals_perfume_genie (@joostlek - #161312)
- Bump pykoplenti to 1.5.0 (@stegm - #161305)
- Improve light brightness triggers (@emontnemery - #161233)
- Set integration_type for rainforest_raven to ‘hub’ (@cottsay - #161343)
- Add ppb as a valid UOM for sensor/number NO2 device class (@Thomas55555 - #159426)
- Use SO2 device_class in Google Air Quality (@Thomas55555 - #161349)
- Add translation for add entry to onedrive (@zweckj - #161336)
- Use device_class for NO2 in Google Air Quality (@Thomas55555 - #161359)
- Add ppb as a valid UOM for sensor/number Ozone device class (@Thomas55555 - #159328)
- Bump google-air-quality-api to 3.0.0 (@Thomas55555 - #161347)
- Replace deprecated test-results-action action with codecov-action (@edenhaus - #159202)
- Support target conditions in script relation extraction (@abmantis - #161338)
- Add translation for add entry to Habitica integration (@tr4nt0r - #161372)
- Add translation for add entry to Renault (@epenet - #161361)
- Bump aiontfy to 0.7.0 (@tr4nt0r - #161341)
- Add integration_type hub to sensibo (@joostlek - #161326)
- Add integration_type hub to rainbird (@joostlek - #161303)
- Migrate apps added to sidebar to use new app panel (@balloob - #161265)
- Reorder recorder constants alphabetically (@epenet - #161363)
- Bump imgw_pib to 2.0.1 (@bieniu - #161376)
- Improve automation variable name (@abmantis - #161340)
- Simplify tibber config (@Danielhiversen - #160903)
- Reorder unit conversion classes alphabetically (@epenet - #161364)
- Adjust entity condition strings (@emontnemery - #161055)
- Use device_class for O3 in Google Air Quality (@Thomas55555 - #161380)
- Add support for sequence ID to publish action in ntfy integration (@tr4nt0r - #161342)
- Update pyatv to 0.17.0 (@cdce8p - #161394)
- Add translation for add entry to RDW (@joostlek - #161329)
- Enable apple tv on Python 3.14 (@edenhaus - #161396)
- Refactor GitHub tests to patch the library instead (@joostlek - #160568)
- Update template number tests to new framework (@Petro31 - #161395)
- Update template select test framework (@Petro31 - #161389)
- Update ruff to 0.14.13 (@cdce8p - #161399)
- Bump hdfury to 1.4.2 (@glenndehaan - #161401)
- Add integration_type hub to sanix (@joostlek - #161322)
- Fix SSL context mutation by httpx/httpcore with ALPN protocol bucketing (@bdraco - #161330)
- Add integration_type device to screenlogic (@joostlek - #161324)
- Add ppb as a valid UOM for sensor/number NO device class (@Thomas55555 - #161379)
- Bump actions/setup-python from 6.1.0 to 6.2.0 (@dependabot - #161417)
- Bump xiaomi-ble to 1.6.0 (@jeremiahpslewis - #161421)
- Update binary_sensor template platform to use new template framework (@Petro31 - #159650)
- Create base entity class for Hikvision integration (@ptarjan - #161175)
- Add error handling for NVR event fetching in Hikvision integration (@ptarjan - #160251)
- Remove setting enable_cleanup_closed as it’s not required anymore (@edenhaus - #161430)
- Fix hassfest requirement check (@epenet - #161435)
- Apple tv new feature keyboard binary sensor (@toscano - #152397)
- Add device_tracker conditions (@emontnemery - #161381)
- Bump python-xbox to 0.1.3 (@tr4nt0r - #161453)
- Use device_class for NO in Google Air Quality (@Thomas55555 - #161449)
- Add delta report type support for Tuya sensors (@abelyliu - #160285)
- Bump actions/checkout from 6.0.1 to 6.0.2 (@dependabot - #161467)
- Bump uv to 0.9.26 (@edenhaus - #161458)
- Add note to config flow about token invalidation in PlayStation Network integration (@tr4nt0r - #161459)
- Add Tuya pet feeder entities (@FredrikM97 - #161440)
- Add integration_type hub to rainforest_eagle (@joostlek - #161304)
- Add integration_type service to rachio (@joostlek - #161301)
- round data for battery level to avoid small fluctuations (@torben-iometer - #161475)
- Move bang_olufsen service registration (@epenet - #161484)
- Move advantage_air service registration (@epenet - #161487)
- Add pre announce URL to Music Assistant (@arturpragacz - #161448)
- Split out integration skill from CLAUDE.md (@balloob - #161413)
- Fix LLM test to use string values for device attributes (@arturpragacz - #161490)
- Hassfest: Don’t allow placeholders in state translations (@karwosts - #161447)
- Remove next Python version warning/repair (@edenhaus - #161427)
- Improve docstrings in condition tests (@emontnemery - #161431)
- Remove macos install scripts (@cdce8p - #161506)
- Pump pyairobotrest to 0.3.0 (@mettolen - #161511)
- Align Vesync Humidifier Refresh with other platforms (@cdnninja - #161507)
- Remove Tractive sensors that are no longer supported by the Tractive API (@bieniu - #160089)
- Show installed packages in cloud support package (@ludeeus - #161516)
- Add link to emoji reference in ntfy (@tr4nt0r - #161524)
- Bump mcp to 1.26.0 (@allenporter - #161545)
- Add support for HTTP Streamable to MCP integration (@allenporter - #161547)
- Add HDFury discovery (@glenndehaan - #161523)
- Update openrouter config flow to filter out invalid LLM APIs (@allenporter - #161554)
- Update OpenAI config flow to filter out invalid LLM APIs (@allenporter - #161553)
- Update Google Gemini config flow to filter out invalid LLM APIs (@allenporter - #161552)
- Update Anthropic config flow to filter out invalid LLM APIs (@allenporter - #161551)
- Update togrill to 0.8.1 (@elupus - #161541)
- Updating aiosyncthing to latest version (@Spardz - #161536)
- Bump aioesphomeapi to 43.14.0 (@bdraco - #161550)
- Clarify Steam ID format doc string (@strugee - #161556)
- Fix TriggerEntity’s _handle_rendered_results for loop exiting early (@Petro31 - #161485)
- Fix code dev container not building (@jbouwh - #161519)
- Update types packages (@cdce8p - #161579)
- Replace deprecated mcp function call (@cdce8p - #161577)
- Add Device Type to Vesync Test Fixtures (@cdnninja - #161585)
- Fix system monitor integration FileNotFoundError (@Joao-Sousa-71 - #159534)
- Improved error handling for oauth2 configuration in ondilo_ico integration (@wmoss - #161588)
- Add 100% coverage to init for Fritz (@chemelli74 - #161583)
- Bump pyfritzhome to 0.6.19 (@mib1185 - #161565)
- Bump irm-kmi-api to 1.1.1 to fix wind bug (@jdejaegh - #161578)
- Update wefabricate/wh-python to 2026.1.25 for Weheat integration (@barryvdh - #161573)
- Bump PyViCare to 2.56.0 (@CFenner - #161563)
- Bump airOS to v0.6.3 (@CoMPaTech - #161591)
- Support SSID with spaces in Adax-integration (@torandreroland - #161596)
- Bump github/codeql-action from 4.31.10 to 4.31.11 (@dependabot - #161609)
- Bump go2rtc to 1.9.14 (@edenhaus - #161559)
- Bump PySwitchbot to 1.0.0 (@zerzhang - #161612)
- Fix reliability of internet access switches in FRITZ!Box Tools (@mib1185 - #161593)
- Bump valbuasio to 2026.1.4 (@cereal2nd - #161270)
- Bump bleak-esphome to 3.4.1 (@bdraco - #161560)
- add wifi sensor for ViCare devices (@CFenner - #161537)
- Portainer refactor availability (@erwindouna - #161589)
- Add Decora Wifi to Leviton brand (@joostlek - #161441)
- Bump Python-Roborock to 4.7.2 (@Lash-L - #161409)
- Add Reolink pet chime ringtone select entity (@starkillerOG - #161575)
- Bump env-canada to 0.12.4 (@michaeldavie - #161542)
- Consider missing togrill device okey to log real errors (@elupus - #161544)
- Add debug logging for connection failures in Overkiz (@iMicknl - #161614)
- add inverter sensors for ViCare integration (@CFenner - #161608)
- Add 100% coverage to binary_sensor for Fritz (@chemelli74 - #161592)
- Small cleanup in sensors test for system monitor (@chemelli74 - #161616)
- Bump pyOverkiz to 1.20.0 in Overkiz (@iMicknl - #161622)
- Switch to product_type instead of is_instance for vesync (@cdnninja - #161594)
- Move vacuum constants to const.py (@arturpragacz - #161620)
- Typevar T for vesync strict typing (@cdnninja - #161595)
- Update bus and train API URLs to use live data (@Network-Buzzard - #161374)
- Update orjson to 3.11.5 (@cdce8p - #161569)
- Bump openai to 2.15.0 (@Shulyaka - #161533)
- Fix module URL format in dynalite panel (@ziv1234 - #161625)
- Set quality scale of Duck DNS to platinum 🏆️ (@tr4nt0r - #158043)
- Migrate waterfurnace to config flow (@masterkoppa - #159908)
- Add more sensors to Mastodon integration (@tr4nt0r - #160835)
- Add switch conditions (@emontnemery - #160950)
- Add lock conditions (@emontnemery - #161383)
- Upgrade Airobot integration to platinum (@mettolen - #161532)
- Fix mastodon snapshots (@zweckj - #161627)
- Allow control on missing izone thermometer (@JP-Ellis - #155826)
- Update compit-inext-api to 0.6.0 (@Przemko92 - #161528)
- Add Mold index support for air-q (@Sibgatulin - #161439)
- Bump aioguardian to 2026.01.1 (@epenet - #161471)
- Add basic auth support to Libre Hardware Monitor (@Sab44 - #160248)
- Bump
aiotractiveto 1.0.0 (@bieniu - #161470) - New integration featuring the green planet energy prices API for tariff with dynamic prices (@petschni - #150010)
- added test to see that URL for module has not changed (@ziv1234 - #161628)
- Fix removal of stale Tailscale devices (@scopey - #161084)
- Add support for ecobee attisRetail model (@Vallabh-1504 - #161515)
- Always require diff for dependency bumps (@zweckj - #161633)
- Fix Hikvision NVR channel naming and device hierarchy (@ptarjan - #160866)
- Add extra enum value for cottons_hygiene (@dotdoom - #161230)
- bump pyvlx to 0.2.28 (@wollew - #161495)
- Add back support for coolmaster speeds that don’t have a direct HA equivalent (@tan-lawrence - #160825)
- Put Velux integration on quality scale (@wollew - #161500)
- Add binary sensor platform to sunricher_dali (@niracler - #161463)
- Add switch platform to Vodafone Station (@chemelli74 - #160419)
- Use same code path for friendly name as for entity ID (@arturpragacz - #161250)
- Bump influxdb-client to 1.50.0 (@epenet - #161476)
- Fix config flow abort for oauth integrations when no implementation exception (@zweckj - #161631)
- Add lawn_mower conditions (@emontnemery - #161382)
- Add climate conditions (@emontnemery - #161020)
- Add vacuum cleaner conditions (@emontnemery - #161386)
- Add person conditions (@emontnemery - #161385)
- Bump bleak-esphome to 3.5.0 (@bdraco - #161649)
- Move the state based icons to icon translations for device trackers in FRITZ!Box tools (@mib1185 - #161636)
- Add humidifier conditions (@emontnemery - #161022)
- Add Missing None return type in Vesync (@cdnninja - #161597)
- Bump github/codeql-action from 4.31.11 to 4.32.0 (@dependabot - #161654)
- Bump bleak to 2.1.1 (@bdraco - #161650)
- Add media_player conditions (@emontnemery - #161384)
- Add initial_color property to CalendarEntity (@Misiu - #145606)
- Display Z-Wave home IDs as hexadecimal (@AlCalzone - #161624)
- Improve test coverage for switch in Fritz (@chemelli74 - #161630)
- Update code translations for Miele microwave/Oven combo (@astrandb - #161657)
- Improve typing in models and entity module in FRITZ!Box tools (@mib1185 - #161635)
- Bump meteofrance-api to 1.5.0 (@epenet - #161676)
- Use HassKey in abode (@epenet - #161675)
- Bump freebox-api to 1.3.0 (@epenet - #161677)
- Fix Tuya device registry cleanup (@epenet - #161268)
- Bump python-roborock to 4.8.0 (@Lash-L - #161680)
- Update air-Q refrigerant sensors (@Sibgatulin - #161483)
- Add more sensors to openevse (@c00w - #160904)
- Improve diagnostics docstring (@epenet - #161683)
- Bump pyvesync to 3.4.1 (@cdnninja - #160573)
- And env instructions for AI agents (@piitaya - #161665)
- Clear cache when radar type is changed via service (@michaeldavie - #161601)
- Improve Control4 connection error logging (@davidrecordon - #159979)
- Add app selector as replacement for addon selector (@sairon - #161684)
- Implement Roborock dock cleaning fluid status (@pauloruberto - #161098)
- Use default time zone for boot time (@candrews - #161605)
- Support for stateChanged parameter for each folder from syncthing (@Spardz - #160376)
- Use dataclass in Google Air Quality (@Thomas55555 - #160638)
- Bump homematicip to 2.5.0 (@lackas - #161365)
- Migrate default Lovelace panel to dashboard system (@piitaya - #158265)
- Improve type hints in control4 media player (@epenet - #161234)
- Add SmartThings device info from device identification (@joostlek - #161688)
- Add integration_type device to sensirion_ble (@joostlek - #161539)
- Fix deflection switch state for Fritz (@chemelli74 - #161669)
- VeSync Multiple Config Entries (@cdnninja - #160114)
- Don’t translate URLs (@joostlek - #154224)
- Add connectivity mode diagnostics sensor for Airthings BLE (@LaStrada - #161261)
- Bump pyhik to 0.4.1 (@mezz64 - #161465)
- Add HDFury reconfiguration (@glenndehaan - #161690)
- Add silver quality scale for NINA (@DeerMaximum - #161122)
- Fix mocking of Yellow hardware probing in hassio tests (@sairon - #161695)
- Rename add-on to app in Uptime Kuma (@tr4nt0r - #161692)
- Rename group attribute in Hue (@arturpragacz - #161698)
- Add HDFury CEC switches (@glenndehaan - #161391)
- Clarify what is being discovered by the Z-Wave integration (@AlCalzone - #161626)
- Create CoIoT setting repair issue for Shelly gen 1 devices (@chemelli74 - #160056)
- Add water heater support to ESPHome (@dhoeben - #159201)
- Deprecate implicit Wake-On-LAN in Samsung TV integration (@ptarjan - #158740)
- Rename group attribute in deCONZ (@arturpragacz - #161700)
- Rename add-on to app in DeConz discovery flow (@tr4nt0r - #161699)
- Add clear/delete actions to ntfy integration (@tr4nt0r - #161388)
- Fix unit of measurement on openevse energy sensors (@firstof9 - #161705)
- Rename group attribute in PlayStation Network (@arturpragacz - #161702)
- Add support for initial color in Google Calendar (@Misiu - #161671)
- Uhoo integration (@joshsmonta - #158887)
- [esphome] add missing mapping of state class
MEASUREMENT_ANGLE(@ximex - #161464) - openevse: Change translation to max_current to Current Limit (@c00w - #161713)
- openevse: Switch to using websockets and push instead of polling (@c00w - #160758)
- Add NRGkick integration and tests (@andijakl - #159995)
- Add the myStrom WiFi Motion Sensor (@marph91 - #156880)
- Rename add-on to app in VLC telnet discovery flow (@tr4nt0r - #161710)
- Rename add-on to app in pyLoad (@tr4nt0r - #161693)
- Rename add-on to app in AdGuard discovery flow (@tr4nt0r - #161696)
- Rename add-on to app in motionEye discovery flow (@tr4nt0r - #161707)
- Rename add-on to app in Mealie discovery flow (@tr4nt0r - #161704)
- Add reauth flow to Namecheap DynamicDNS integration (@tr4nt0r - #161674)
- Make FRITZ!Box Tools tests more reliable (@mib1185 - #161719)
- Bump reolink-aio to 0.18.1 (@starkillerOG - #161714)
- Rename add-on to app in Music Assistant discovery flow (@tr4nt0r - #161720)
- Bump actions/attest-build-provenance from 3.1.0 to 3.2.0 (@dependabot - #161653)
- Add binary sensors for water boxes for Roborock docks (@Lash-L - #161732)
- Cleanup deprecated dhcp alias (@epenet - #161742)
- Bump deebot-client to 17.1.0 (@edenhaus - #161727)
- Improve abode light type hints (@epenet - #161756)
- Bump j178/prek-action from 1.0.12 to 1.1.0 (@dependabot - #161736)
- Improve flux_led light type hints (@epenet - #161760)
- Improve crownstone light type hints (@epenet - #161758)
- Improve shelly light type hints (@epenet - #161761)
- Handle wait_for_trigger service actions when extracting references (@abmantis - #161706)
- Cleanup deprecated dt util function (@epenet - #161752)
- Improve deconz light type hints (@epenet - #161769)
- Bump lunatone-rest-api-client to 0.6.3 (@MoonDevLT - #161764)
- Fix labs description url check in hassfest (@arturpragacz - #161730)
- Improve zwave_js light type hints (@epenet - #161775)
- Improve govee_light_local light type hints (@epenet - #161772)
- Improve hue light type hints (@epenet - #161766)
- Improve elgato light type hints (@epenet - #161771)
- Cleanup deprecated zeroconf aliases (@epenet - #161746)
- Cleanup deprecated vacuum state constants (@epenet - #161750)
- Cleanup deprecated water_heater alias (@epenet - #161751)
- Cleanup deprecated get access in Lovelace data (@epenet - #161749)
- Improve demo light type hints (@epenet - #161770)
- Enable snapshot analytics as labs feature (@arturpragacz - #160068)
- Improve homekit_controller light type hints (@epenet - #161773)
- Improve decora_wifi light type hints (@epenet - #161759)
- Improve tasmota light type hints (@epenet - #161762)
- Improve upb light type hints (@epenet - #161763)
- Improve cync light type hints (@epenet - #161768)
- Improve sunricher_dali light shorthand attributes (@epenet - #161765)
- Rename group attribute in LimitlessLED (@arturpragacz - #161701)
- Rename group attribute in Insteon (@arturpragacz - #161703)
- Cleanup deprecated ssdp aliases (@epenet - #161747)
- Cleanup deprecated usb alias (@epenet - #161748)
- Remove Mastodon extra field attributes (@andrew-codechimp - #161659)
- Remove bluesound sleep timer service (@joostlek - #161120)
- Pass aiohttp websession to librehardwaremonitor-api (@Sab44 - #161741)
- Add Cloudflare R2 integration (@corrreia - #152825)
- Remove str from light color mode (@epenet - #161755)
- Rename add-on to app in OTBR issue description (@tr4nt0r - #161781)
- Rename add-on to app in SABnzbd config flow (@tr4nt0r - #161783)
- Improve mqtt light tests (@epenet - #161780)
- Update template cover to new framework (@Petro31 - #161481)
- Make template weather consistent with itself and other platforms (@Petro31 - #159607)
- Cleanup deprecated vacuum battery support from mqtt (@epenet - #161745)
- Add the ability to set Cleaning mode and mop mode for Q7 Vacs (@Lash-L - #161725)
- Rename add-on to app in Reolink issue description (@tr4nt0r - #161787)
- Add API server endpoint to options for Telegram bot (@hanwg - #161580)
- Bump pysiaalarm to 3.2.2 (@amitfin - #161788)
- Rename add-on to app in Z-Wave JS discovery flow (@tr4nt0r - #161774)
- Add non standard power sensor support (@MindFreeze - #160432)
- Prana integration (@prana-dev-official - #156599)
- Remove developer tools panel, add redirects (@bramkragten - #161789)
- Add services using “apps” instead of “addons” to hassio integration (@sairon - #161689)
- Update knx-frontend to 2026.1.28.162006 (@farmio - #161798)
- Add select for compit integration (@Przemko92 - #152778)
- Update frontend to 20260128.1 (@bramkragten - #161795)
- Rename add-on to app in Wyoming discovery flow (@tr4nt0r - #161721)
- Rename add-on to app in MQTT discovery flow (@tr4nt0r - #161711)
- Rename add-on to app in common strings (@tr4nt0r - #161790)
- Bump ZHA to 0.0.87 (@puddly - #161733)
- Don’t attempt to verify ignored Doorbird devices during discovery (@Tommatheussen - #161776)
- Add number platform to openevse (@firstof9 - #161726)
- Let nibe library autodetect word swap on config (@elupus - #161786)
- Improve use of SensorEntityDescription in solax (@epenet - #161687)
- Improve min/max kelvin handling in hue_ble (@epenet - #161782)
- Exclude AI Port from camera entities and RTSP issues (@RaHehl - #161188)
- Add missing data description string in Tesla Fleet (@Bre77 - #161201)
- Analytics refactor to apps (@erwindouna - #161784)
- Rename add-ons to apps in hassio integration (@sairon - #161801)
- Fix validation of actions config in intent_script (@arturpragacz - #158266)
- Make viaggiatreno work by fixing some critical bugs (@monga - #160093)
- Bump pydexcom to 0.5.1 (@gagebenne - #161549)
- Use OpenAI schema dataclasses for cloud stream responses (@victorigualada - #161663)
- Fix use of ambiguous units for reactive power and energy (@jbouwh - #161810)
- Update todoist-api-python to 3.1.0 (@boralyl - #161811)
- Bump intents to 2026.1.28 (@synesthesiam - #161813)
- Allow lovelace path for dashboard in yaml and fix yaml dashboard migration (@piitaya - #161816)
- Fix string in Namecheap DynamicDNS integration (@tr4nt0r - #161821)
- Fix action descriptions of
alarm_control_panel(@NoRi2909 - #161852) - Fix incorrect entity_description class in radarr (@epenet - #161856)
- Bump renault-api to 0.5.3 (@sebastiaanspeck - #161857)
- Bump nibe to 2.22.0 (@bj00rn - #161873)
- Update frontend to 20260128.2 (@bramkragten - #161881)
- Update fritzconnection to 1.15.1 (@cdce8p - #161887)
- Update translations for Telegram bot (@hanwg - #161903)
- Bump ZHA to 0.0.88 (@puddly - #161904)
- Handle hostname resolution for Shelly repair issue (@chemelli74 - #161914)
- Fix Control4 HVAC state-to-action mapping (@davidrecordon - #161916)
- Update frontend to 20260128.3 (@piitaya - #161918)
- Restore the Home Connect program option entities (@Diegorro98 - #156401)
- Fix mired warning in template light (@epenet - #161923)
- Bump pyotgw to 2.2.3 (@mvn23 - #161928)
- Fix OpenTherm Gateway button availability (@mvn23 - #161933)
- Mark datetime sensors as unknown when parsing fails (@yuxincs - #161952)
- Bump opower to 0.17.0 (@tronikos - #161962)
- Bump uiprotect to version 10.1.0 (@RaHehl - #161967)
- Fix Shelly CoIoT repair issue (@thecode - #161973)
- Bump reolink-aio to 0.18.2 (@starkillerOG - #161998)
- Fix KNX fan unique_id for switch-only fans (@farmio - #162002)
- Add integration type of hub to vesync (@cdnninja - #162004)
- Fix parse_mode for Telegram bot actions (@hanwg - #162006)
- Update ical requirement version to 12.1.3 (@fiLLLip - #162010)
- Remove file description dependency in onedrive (@zweckj - #162012)
- Improved error checking during startup of SENZ (@astrandb - #162026)
- Bump pymeteoclimatic to 0.1.1 (@adrianmo - #162029)
- Bump incomfort-client to 0.6.12 (@jbouwh - #162037)
- Fix Miele dishwasher PowerDisk filling level sensor not showing up (@aturri - #162048)
- Add learn more data for Analytics in labs (@stvncode - #162094)
- Update frontend to 20260128.4 (@bramkragten - #162096)
- Handle missing battery stats in systemmonitor (@mik-laj - #158287)
- Remove invalid notification sensors for Alexa devices (@jamesonuk - #160422)
- Remove coffee machine’s hot water sensor’s state class at Home Connect (@Diegorro98 - #161246)
- Update Senz temperature sensor (@astrandb - #162016)
- Bump pyhik to 0.4.2 (@mezz64 - #162092)
- Anthropic: Switch default model to Haiku 4.5 (@Shulyaka - #162093)
- Fix Shelly xpercent sensor state_class (@thecode - #162107)
- Handle chat log attachments in Cloud integration (@victorigualada - #162121)
- Update title and description of YAML dashboard repair (@piitaya - #162138)
- Modify Analytics text on feature labs (@stvncode - #162151)
- Add Heiman virtual brand (@joostlek - #162152)
- Add Heatit virtual brand (@joostlek - #162155)
- Update frontend to 20260128.5 (@bramkragten - #162156)
- Add missing OUI to Axis integration, discovery would abort with unsup… (@Kane610 - #161943)
- Fix template weather humidity (@Petro31 - #161945)
- Jellyfin native client controls (@Liquidmasl - #161982)
- Bump bleak-esphome to 3.6.0 (@jonbng - #162028)
- Anthropic repair deprecated models (@Shulyaka - #162162)
- Update compit-inext-api to 0.7.0 (@Przemko92 - #162020)
- Bump compit-inext-api to 0.8.0 (@Przemko92 - #162166)
- Bump python-otbr-api to 2.8.0 (@emontnemery - #162167)
- Clarify action descriptions in
media_player(@NoRi2909 - #162172) - Bump growattServer to 1.9.0 (@johanzander - #162179)
- Bump denonavr to 1.3.1 (@ol-iver - #162183)
- Bump ZHA to 0.0.89 (@TheJulianJES - #162195)
- Pin auth0-python to <5.0 (@cdce8p - #162203)
- Bump yt-dlp to 2026.02.04 (@andreimoraru - #162204)
- Bump intents (@synesthesiam - #162205)
- Add missing codes for Miele coffe systems (@astrandb - #162206)
- Update frontend to 20260128.6 (@bramkragten - #162214)
- Filter out invalid trackers in fressnapf_tracker (@eifinger - #161670)
- Bump fressnapftracker to 0.2.2 (@eifinger - #161913)
- Fix evohome not updating scheduled setpoints in state attrs (@zxdavb - #162043)
- Add guard for Apple TV text focus state (@joostlek - #162207)
- Fix logic and tests for Alexa Devices utils module (@chemelli74 - #162223)
- Revert “Bump intents (#162205)” (@edenhaus - #162226)
Release 2026.2.1 - February 6
- Fix redundant
offpreset in Tuya climate (@epenet - #161040) - Fix device_class of backup reserve sensor (@jonootto - #161178)
- Bump evohome-async to 1.1.3 (@zxdavb - #162232)
- Bump google_air_quality_api to 3.0.1 (@Thomas55555 - #162233)
- Bump denonavr to 1.3.2 (@ol-iver - #162271)
- Fix multipart upload to use consistent part sizes for R2/S3 (@corrreia - #162278)
- Add mapping for
stoppedstate todenonavrmedia player (@ol-iver - #162283) - Fix unicode escaping in MCP server tool response (@luochen1990 - #162319)
- Bump pyenphase to 2.4.5 (@catsmanac - #162324)
- Fix Shelly Linkedgo Thermostat status update (@thecode - #162339)
- Update pynintendoparental requirement to version 2.3.2.1 (@pantherale0 - #162362)
- Fix conversion of data for todo.* actions (@boralyl - #162366)
- Bump python-smarttub to 0.0.47 (@mdz - #162367)
- Add missing config flow strings to SmartTub (@mdz - #162375)
- Remove entity id overwrite for ambient station (@joostlek - #162403)
- Bump librehardwaremonitor-api to version 1.9.1 (@Sab44 - #162409)
- Remove double unit of measurement for yardian (@joostlek - #162412)
- Fix invalid yardian snaphots (@epenet - #162422)
- Make bad entity ID detection more lenient (@arturpragacz - #162425)
- Bump aioamazondevices to 11.1.3 (@jamesonuk - #162437)
Release 2026.2.2 - February 13
- Bump essent-dynamic-pricing to 0.3.1 (@jaapp - #160958)
- Fix AsyncIteratorReader blocking after stream exhaustion (@ElCruncharino - #161731)
- Fix absolute humidity sensor on HmIP-WGT glass thermostats (@lackas - #162455)
- Fix device_class of backup reserve sensor in teslemetry (@Bre77 - #162458)
- Fix device_class of backup reserve sensor in Tessie (@Bre77 - #162459)
- Fix JSON serialization of time objects in OpenAI tool results (@Shulyaka - #162490)
- Fix JSON serialization of datetime objects in Google Generative AI tool results (@Shulyaka - #162495)
- Fix JSON serialization of time objects in Ollama tool results (@Shulyaka - #162502)
- Fix JSON serialization of time objects in Open Router tool results (@Shulyaka - #162505)
- Fix JSON serialization of time objects in Cloud conversation tool results (@Shulyaka - #162506)
- Fix Green Planet Energy price unit conversion (@petschni - #162511)
- Bump grpc to 1.78.0 (@allenporter - #162520)
- Fix Tesla Fleet partner registration to use all regions (@Bre77 - #162525)
- Sentence-case “speech-to-text” in
google_cloud(@NoRi2909 - #162534) - Add new Miele mappings (@aturri - #162544)
- Fix config flow bug for Telegram bot (@hanwg - #162555)
- Add timeout to B2 metadata downloads to prevent backup hang (@ElCruncharino - #162562)
- migrate velbus config entries (@cereal2nd - #162565)
- Bump aioimmich to 0.12.0 (@mib1185 - #162573)
- Bump aioautomower to 2.7.3 (@Thomas55555 - #162583)
- Increase max tasks retrieved per page to prevent timeout (@boralyl - #162587)
- Pin setuptools to 81.0.0 (@joostlek - #162589)
- Improve MCP SSE fallback error handling (@allenporter - #162655)
- Bump intellifire4py to 4.3.1 (@jeeftor - #162659)
- Bump reolink-aio to 0.19.0 (@starkillerOG - #162672)
- Fix handling when FRITZ!Box reboots in FRITZ!Smarthome (@mib1185 - #162676)
- fix to cloudflare r2 setup screen info (@corrreia - #162677)
- Fix handling when FRITZ!Box reboots in FRITZ!Box Tools (@mib1185 - #162679)
- Bump onedrive-personal-sdk to 0.1.2 (@zweckj - #162689)
- Fix unavailable status in Tuya (@epenet - #162709)
- Fix alarm refresh warning for Comelit SimpleHome (@chemelli74 - #162710)
- Fix image platform state for Vodafone Station (@chemelli74 - #162747)
- Fix bug in edit_message_media action for Telegram bot (@hanwg - #162762)
- Bump cryptography to 46.0.5 (@edenhaus - #162783)
- Bump pySmartThings to 3.5.2 (@joostlek - #162809)
- Filter out transient zero values from qBittorrent alltime stats (@Xitee1 - #162821)
- Bump slixmpp to 1.13.2 (@Lyokovic - #162837)
- Bump pydaikin to 2.17.2 (@YoshiWalsh - #162846)
- Bump pytouchlinesl to 0.6.0 (@jnsgruk - #162856)
- Add Miele TQ1000WP tumble dryer programs and program phases (@andrei-marinache - #162871)
- Bump ZHA to 0.0.90 (@puddly - #162894)
- Log remaining token duration in onedrive (@zweckj - #162933)
Release 2026.2.3 - February 20
- Add the ability to select region for Roborock (@Lash-L - #160898)
- Fix dynamic entity creation in eheimdigital (@autinerd - #161155)
- Fix HomematicIP entity recovery after access point cloud reconnect (@lackas - #162575)
- Show progress indicator during backup stage of Core/App update (@hbludworth - #162683)
- Fix Z-Wave climate set preset (@MartinHjelmare - #162728)
- Block redirect to localhost (@edenhaus - #162941)
- Bump pypck to 0.9.10 (@alengwenus - #162333)
- Bump pypck to 0.9.11 (@alengwenus - #163043)
- Fix blocking call in Xbox config flow (@tr4nt0r - #163122)
- Bump ical to 13.2.0 (@allenporter - #163123)
- Add Lux to homee units (@Taraman17 - #163180)
- Fix remote calendar event handling of events within the same update period (@allenporter - #163186)
- Fix Control4 HVAC action mapping for multi-stage and idle states (@davidrecordon - #163222)
- NRGkick: do not update vehicle connected timestamp when vehicle is not connected (@andijakl - #163292)
- Add Miele dishwasher program code (@astrandb - #163308)
- Bump pyrainbird to 6.0.5 (@allenporter - #163333)
- Fix touchline_sl zone availability when alarm state is set (@molsmadsen - #163338)
- Bump pySmartThings to 3.5.3 (@joostlek - #163375)
- Fix hassfest requirements check (@cdce8p - #163681)
- Bump eheimdigital to 1.6.0 (@autinerd - #161961)