Full changelog for Home Assistant 2026.3
These are all the changes included in the Home Assistant 2026.3 release. For a summary in a more readable format Release notes blog for this release.
All changes
- Bump version to 2026.3.0dev0 (@frenck - #161809)
- Append ID to flood monitoring station name in EAFM (@michaeljones32 - #161794)
- Add sensor for energy remaining to tessie integration (@jrhillery - #161796)
- Use Python 3.14 as default one (@edenhaus - #161426)
- Switch back to mypy 1.19.1 (@cdce8p - #161817)
- Improve quality scale to gold HDFury integration (@glenndehaan - #161800)
- Bump docker/login-action from 3.6.0 to 3.7.0 (@dependabot - #161825)
- Modernize knx light tests (@epenet - #161851)
- Modernize tradfri light tests (@epenet - #161849)
- Modernize matter light tests (@epenet - #161850)
- Cleanup deprecated color_temp support in lifx (@epenet - #161848)
- Modernize govee_light_local light tests (@epenet - #161845)
- Modernize homekit_controller light tests (@epenet - #161844)
- Do not use base class of pyvlx in velux light platform (@wollew - #161837)
- Bump mozart_api to 5.3.1.108.2 (@mj23000 - #161846)
- Add quality scale to openesve (@c00w - #161651)
- Modernize template light tests (@epenet - #161833)
- Modernize zha light tests (@epenet - #161826)
- Modernize hue light tests (@epenet - #161828)
- Modernize abode light tests (@epenet - #161829)
- Modernize tasmota light tests (@epenet - #161830)
- Add service for switchbot keypad vision (@zerzhang - #160659)
- Add additional JVC Projector entities (@SteveEasley - #161134)
- Add new Liebherr integration (@mettolen - #161197)
- Remove outdated device registry cleanup in derivative (@epenet - #161858)
- Remove outdated device registry cleanup in integration (@epenet - #161863)
- Remove outdated device registry cleanup in utility_meter (@epenet - #161868)
- Cleanup deprecated YAML import from datadog (@epenet - #161870)
- Remove deprecated Snapcast group entities and custom grouping services (@mill1000 - #160945)
- Delete unused Liebherr snapshot (@mettolen - #161879)
- Clarify action descriptions for input numbers (@NoRi2909 - #161847)
- Add prune images service to Portainer (@erwindouna - #161009)
- Add wsdot code-owner (@ucodery - #160807)
- Fix small typo in Portainer strings (@erwindouna - #161889)
- Add device_class inheritance to min_max sensor (@ssam18 - #157602)
- Add quality scale to Teslemetry (@Bre77 - #159589)
- Introduce common string for data description of
verify_ssl(@Thomas55555 - #160703) - Re-add Claude code to devcontainer via native install script (@jbouwh - #161807)
- Add subscription pattern for conversation intents (@arturpragacz - #158456)
- Remove outdated device registry cleanup in trend (@epenet - #161867)
- Ensure Renault buttons are supported by the vehicle (@sebastiaanspeck - #161893)
- Bump actions/cache from 5.0.2 to 5.0.3 (@dependabot - #161906)
- Bump JVC Projector dependency to 2.0.1 (@SteveEasley - #161898)
- Remove pydantic v1 mypy plugin (@cdce8p - #161901)
- Improve action descriptions of
camera(@NoRi2909 - #161876) - Convert flexit_bacnet fireplace mode to climate preset- Rename ’Boost… (@magnusoverli - #155760)
- Bump media source upload limit from 10mb to 20mb (@uptimeZERO - #161436)
- Enable prompt caching for Anthropic conversation integration (@arminghofrani - #158957)
- Rename drive inverter unavailable state in Teslemetry (@Bre77 - #161960)
- Add parallel updates to Portainer (@erwindouna - #161947)
- Rename “service” to “action”, use common state for “High” (@NoRi2909 - #161940)
- Pattern fix for Proxmox config flow (@erwindouna - #161946)
- Clarify action descriptions for
input_boolean(@NoRi2909 - #161924) - Add reauthentication flow to Liebherr integration (@mettolen - #161902)
- Remove outdated device registry cleanup in threshold (@epenet - #161866)
- Remove outdated device registry cleanup in statistics (@epenet - #161865)
- Remove outdated device registry cleanup in mold_indicator (@epenet - #161864)
- Remove outdated device registry cleanup in history_stats (@epenet - #161862)
- Remove outdated device registry cleanup in generic_thermostat (@epenet - #161861)
- Remove outdated device registry cleanup in generic_hygrostat (@epenet - #161859)
- Clarify action description for
input_buttonhelper (@NoRi2909 - #161963) - openevse: Turn on strict typing (@c00w - #161957)
- Add reconfigure to Proxmox (@erwindouna - #161941)
- Remove unused variables in SMA (@erwindouna - #161989)
- Add reauth to Proxmox (@erwindouna - #161944)
- Bthome encryption downgrade (@dafal - #159646)
- Complete config-flow-test-coverage quality in Teslemetry (@Bre77 - #161955)
- Move initial_color to CalendarEntityDescription (@Misiu - #161831)
- Remove unneeded NotImplementedError in Volvlo entity (@erwindouna - #161990)
- Optimize attribute lookup in DSMR Reader (@erwindouna - #161994)
- bump iometer to v0.4.0 (@jukrebs - #162027)
- Bump python-roborock to 4.12.0 (@Lash-L - #162054)
- Move agent_dvr service registration (@epenet - #162062)
- Move alarmdecoder service registration (@epenet - #162063)
- Bump waterfurnace to 1.5.1 (@masterkoppa - #162042)
- Replace hass.data[DATA_ENOCEAN] by config_entry.runtime_data (@henningkerstan - #161997)
- Bump dawidd6/action-download-artifact from 12 to 14 (@dependabot - #162058)
- Improve accuracy of blood glucose conversion factor (@gagebenne - #161644)
- Rename Matter Mock devices (@lboue - #161949)
- Rename service registration function in growatt_server (@epenet - #162073)
- Update Electricity Maps translations (@VIKTORVAV99 - #162074)
- Rename Matter Mock air purifier fixture file (@lboue - #161937)
- Move blink service registration (@epenet - #162078)
- Rename Matter Inovelli VTM31-SN fixture (@lboue - #162076)
- Move elgato service registration (@epenet - #162086)
- Move roborock service registration (@epenet - #162090)
- Move litterrobot service registration (@epenet - #162088)
- Move husqvarna_automower service registration (@epenet - #162087)
- Move reolink service registration (@epenet - #162085)
- Move webostv service registration (@epenet - #162091)
- Mark device_tracker method type hints as mandatory (@epenet - #161232)
- Mark tts method type hints as mandatory (@epenet - #161235)
- Move rainbird service registration (@epenet - #162089)
- Move bond service registration (@epenet - #162075)
- Add number entity to Liebherr integration (@mettolen - #162011)
- Add model_id and sw_version to Teslemetry device info (@Bre77 - #161959)
- Move bring service registration (@epenet - #162077)
- Add target_humidity_step attribute to climate (@CoMPaTech - #160418)
- Add option to use frontend PR artifact to frontend integration (@wendevlin - #161291)
- Move epson service registration (@epenet - #162124)
- Move kodi service registration (@epenet - #162125)
- Move vizio service registration (@epenet - #162133)
- Move denonavr service registration (@epenet - #162123)
- Move linkplay service registration (@epenet - #162126)
- Move roku service registration (@epenet - #162128)
- Move roon service registration (@epenet - #162129)
- Move snapcast service registration (@epenet - #162130)
- Move songpal service registration (@epenet - #162131)
- Move squeezebox service registration (@epenet - #162132)
- Move openhome service registration (@epenet - #162127)
- Fix oauth debug log bug in Teslemetry (@Bre77 - #161652)
- Use asyncio.gather pattern in portainer (@erwindouna - #160888)
- Add get_queue and get_movies service calls to Radarr (@Liquidmasl - #160753)
- Simplify reolink method arguments (@epenet - #162137)
- Mark reconfiguration-flow as done for Teslemetry (@Bre77 - #162139)
- Add temperature sensor to Huum integration (@blaine - #161405)
- Mark test-coverage as done for Teslemetry quality scale (@Bre77 - #161958)
- Use Generator and AsyncGenerator for contextmanager typing (@cdce8p - #162144)
- Add sound horn and flash lights buttons to Renault (@sebastiaanspeck - #161976)
- Add entity_id parameter for Telegram bot actions (@hanwg - #159745)
- Move ecovacs service registration (@epenet - #162145)
- Move xiaomi_miio service registration (@epenet - #162148)
- Move sharkiq service registration (@epenet - #162147)
- Move neato service registration (@epenet - #162146)
- Remove duplicated exception handler in systemmonitor (@mik-laj - #162170)
- Remove duplicated exception handler in overkiz (@mik-laj - #162171)
- Cleanup deprecated mired handling in light platform (@epenet - #161777)
- Enable check for duplicate exception handlers (@mik-laj - #162169)
- Adjust radarr constants and strings (@Liquidmasl - #162159)
- Bump py-aosmith to 1.0.16 (@bdr99 - #162160)
- Bump github/codeql-action from 4.32.0 to 4.32.1 (@dependabot - #162118)
- Fix test_before_setup IQS check (@epenet - #162187)
- Improve typing in telegram_bot (@epenet - #162190)
- Fix incorrect exception in telegram_bot (@epenet - #162191)
- Add action exceptions to Xbox integration (@tr4nt0r - #162198)
- Cleanup deprecated COLOR_MODE light constants (@epenet - #162197)
- Compress container image with zstd (@duhow - #160665)
- Improve typing in syncthing (@Spardz - #162193)
- Extract waterfurnace sensor names for translation (@masterkoppa - #162025)
- Upgrade Liebherr integration to Silver (@mettolen - #162178)
- Add redgtech integration (@Jonhsady - #136947)
- Improve description of
camera.play_streamaction (@NoRi2909 - #162264) - Update redgtech snapshots (@emontnemery - #162267)
- Cleanup legacy support for extracting color modes from light supported features (@epenet - #162265)
- Update Vesync quality-scale to Bronze (@cdnninja - #162260)
- Cleanup deprecated SUPPORT_ light constants (@epenet - #162210)
- Clean up unused cover constants (@Petro31 - #162225)
- Bump hass-nabucasa from 1.12.0 to 1.13.0 (@klejejs - #162274)
- Improve type hints in abode lights (@epenet - #162281)
- Remove unnecessary shorthand attribute init in template (@epenet - #162279)
- Improve type hints in nanoleaf lights (@epenet - #162284)
- Bump pysmarlaapi to 0.13.0 (@rlint-explicatis - #162277)
- Improve type hints in switchbot lights (@epenet - #162286)
- Improve type hints in tradfri lights (@epenet - #162287)
- Use shorthand attributes in demo lights (@epenet - #162282)
- Use shorthand attributes in zwave_js lights (@epenet - #162293)
- Add support for
media_stopcommand fordenonavrreceivers (@ol-iver - #162236) - Adjust unknown color mode handling in ZHA lights (@epenet - #162292)
- Migrate supported_color_modes to shorthand attribute in zwave_js lights (@epenet - #162296)
- Add config entry tests to alexa_devices (@jamesonuk - #162295)
- Fix missing color_mode attribute in mqtt light (@epenet - #162311)
- Add type option “first_available” to sensor group in group component (@mpotthoff - #155525)
- Adjust color mode handling in esphome lights (@epenet - #162294)
- Bump anthropic to 0.78.0 (@Shulyaka - #162349)
- Add PARALLEL_UPDATES to SmartTub platform files (@mdz - #162373)
- Add Claude Opus 4.6 support (@Shulyaka - #162365)
- Add remote action exceptions to Xbox (@tr4nt0r - #162347)
- Add dismiss protection to config flows (@odlund - #162270)
- Use StrEnum in uptimerobot tests (@epenet - #162392)
- Use StrEnum in cloud (@epenet - #162385)
- Use StrEnum in easyenergy (@epenet - #162386)
- Bump github/codeql-action from 4.32.1 to 4.32.2 (@dependabot - #162369)
- Use StrEnum in modbus (@epenet - #162388)
- Use StrEnum in intent helper (@epenet - #162391)
- Use StrEnum in unifiprotect (@epenet - #162390)
- Add Ghost integration (@JohnONolan - #162041)
- Cleanup default None value from dict.get (@epenet - #162396)
- Remove parentheses for except statements where it is not needed in mqtt integration (@jbouwh - #162398)
- Use StrEnum in stt (@epenet - #162389)
- Cleanup ternary if expressions (@epenet - #162394)
- Use StrEnum in eq3btsmart (@epenet - #162387)
- Add gpt-image-1.5 model support (@Shulyaka - #162208)
- Remove external url from config for local_only users (@abmantis - #161891)
- Remove str from sensor state class (@epenet - #161686)
- Add timestamp sensors for highest and lowest price times (@petschni - #161639)
- Add device_info to waterfurnace sensors (@masterkoppa - #162080)
- Update template image platform to new entity framework (@Petro31 - #162343)
- Reformat lambda (a-l) (@epenet - #162377)
- Reformat lambda (m-s) (@epenet - #162379)
- Reformat lambda (t-z) (@epenet - #162381)
- Reformat lambda (core) (@epenet - #162382)
- Reformat lambda (tests) (@epenet - #162383)
- Simplify sun condition schema by re-using an existing type (@learn-more - #161894)
- Add Start session action to Saunum integration (@mettolen - #162177)
- Cleanup unnecessary brackets for except statements (i-p) (@epenet - #162405)
- Cleanup unnecessary brackets for except statements (q-z) (@epenet - #162408)
- Cleanup unnecessary brackets for except statements (core) (@epenet - #162410)
- Cleanup unnecessary brackets for except statements (a-h) (@epenet - #162404)
- Add Fan mode support to Control4 integration (@davidrecordon - #159980)
- Improve (r)split performance (@epenet - #162418)
- Simplify (in-)equality checks (@epenet - #162416)
- Remove duplicate class field in incomfort (@epenet - #162420)
- Bump ruff to 0.15.0 (@Thomas55555 - #162356)
- Add ebusd sensors for Vaillant 700 (@arstom - #161180)
- Add hassfest check for action-setup IQS (@epenet - #162084)
- Remove duplicate call of format_mac() (@rrooggiieerr - #162469)
- Update snapcast to 2.3.7 (@Links2004 - #162452)
- Use shorthand attributes in tasmota lights (@epenet - #162290)
- Add vesync Data Types (@cdnninja - #162461)
- Add coverage for Shelly init (@thecode - #162497)
- Use hass httpx client for Anthropic (@Shulyaka - #162518)
- Sentence-case “text-to-speech” and “speech-to-text” (@NoRi2909 - #162532)
- Sentence-case “text-to-speech” and “speech-to-text” in
elevenlabs(@NoRi2909 - #162533) - Add regression testing to Axis OUI support list (@Kane610 - #162508)
- Validate conversation_command in start timer intent (@Lesekater - #149915)
- Update template sensor platform to new template entity framework (@Petro31 - #162554)
- Increase polling in Husqvarna Automower (@Thomas55555 - #162582)
- Bump aiostreammagic to 2.12.0 (@noahhusby - #162570)
- Update template switch platform to new template entity framework (@Petro31 - #162556)
- Update template vacuum platform to new template entity framework (@Petro31 - #162564)
- Update template select platform to new template entity framework (@Petro31 - #162543)
- Add additional sensors for waterfurnace integration (@masterkoppa - #162581)
- update template number platform to new template entity framework (@Petro31 - #162540)
- Add diagnostics to Liebherr integration (@mettolen - #162360)
- Update template lock platform to new template entity framework (@Petro31 - #162493)
- Deprecate unknown fan mode in coolmaster (@tan-lawrence - #161737)
- Update
waterfurnaceintegration to use Coordinator, instead of its own thread. (@masterkoppa - #161494) - Remove legacy fallback in light color_mode property (@epenet - #162276)
- Add new template entity framework to event platform (@Petro31 - #162228)
- Cleanup mired light test (@epenet - #162622)
- Bump j178/prek-action from 1.1.0 to 1.1.1 (@dependabot - #162610)
- Add missing features in tplink light tests (@epenet - #162631)
- Adjust esphome light test (@epenet - #162633)
- Add translation for MFA code (@timmo001 - #162635)
- Fix matter light color_mode (@epenet - #162637)
- Add slow mode option for SwitchBot curtains (@ljmerza - #155272)
- Add sensor state class to eufylife_ble (@NickBeeuwsaert - #162607)
- Add subscribe preview feature helper to labs (@arturpragacz - #161778)
- Rename Matter Heiman smoke detector fixture file (@lboue - #162632)
- Update template fan platform to the new entity framework (@Petro31 - #162328)
- Update template light to new entity framework (@Petro31 - #162445)
- Raise error when light reports an invalid color_mode (@epenet - #162620)
- Update template weather platform to new template entity framework (@Petro31 - #162569)
- Add drying mode switch to vesync (@cdnninja - #161905)
- Limit actions on omada controller to one at a time (@MarkGodwin - #162499)
- Adjust openrgb default color mode handling (@epenet - #162650)
- Add local temperature calibration for all Matter thermostats (@lboue - #161724)
- Make “Reasoning Summary” configurable in OpenAI (@XHyperDEVX - #157557)
- Bump actions/ai-inference from 2.0.5 to 2.0.6 (@dependabot - #162609)
- Simplify subscribe feature websocket in labs (@arturpragacz - #162646)
- Add smoke detector test to Matter binary sensor tests (@lboue - #162638)
- Sort Matter fixture files list (@lboue - #162693)
- Miele: Added support for Plate #5 on Miele KM 7699 (@joel-bourquard - #162503)
- Bump py-aosmith to 1.0.17 (@bdr99 - #162685)
- Raise error when light reports invalid supported color modes (@epenet - #162644)
- Update template update to new template entity framework (@Petro31 - #162561)
- Use icon translations for Teslemetry battery percent entities (@Bre77 - #162140)
- Add exception translations to Teslemetry (@Bre77 - #162141)
- Add config entry diagnostics to lunatone (@MoonDevLT - #162406)
- Add support for attachments from media sources in ntfy notifications (@tr4nt0r - #152329)
- Bump aioesphomeapi to 44.0.0 (@bdraco - #162712)
- Add edenhaus as devcontainer codeowner (@joostlek - #162707)
- Add @lackas as code owner for homematicip_cloud (@lackas - #162696)
- Improve descriptions of
xiaomi_miio.vacuum_clean_segmentaction (@NoRi2909 - #162698) - Bump aranet lib version to 2.6.0 (@Anrijs - #162656)
- Fix flaky lunatone test (@epenet - #162727)
- Refactor Watts Vision+ to generic device, in preparation for switch support (@theobld-ww - #162721)
- Set device entry type and integration type to service in Portainer integration (@tr4nt0r - #162732)
- Add last_changed and last_updated for the Opower statistics (@tronikos - #159101)
- Bump nrgkick-api to 1.7.1 (@andijakl - #162738)
- Bump homematicip to 2.6.0 (@lackas - #162702)
- Improve recognizability of Wi-Fi qr code in FRITZ!Box Tools (@mib1185 - #162752)
- Add integration for Hegel Music Systems amplifiers (@boazca - #153867)
- Bump aiostreammagic to 2.12.1 (@noahhusby - #162744)
- Add Matter CO alarm state (@Leo2442926161 - #162627)
- Bump aioamazondevices to 12.0.0 (@jamesonuk - #162778)
- Move matter fixture list to a constant (@epenet - #162776)
- Raise on missing color mode (@epenet - #162715)
- Add IntelliClima integration and tests (@dvdinth - #157363)
- feat: add info skills to alexa devices (@jamesonuk - #162097)
- Add pagination support for AWS S3 (@mik-laj - #162578)
- Fix deadlock in ReloadServiceHelper (@emontnemery - #162775)
- Add quality scale for devolo Home Control (@Shutgun - #147483)
- Add service helper to get config entry (@epenet - #162068)
- Add HVAC action support for BSBLAN climate entity (@liudger - #156828)
- Use service helper to extract amberelectric config entry (@epenet - #162788)
- Add integration type to mobile_app (@arturpragacz - #157719)
- Use service helper to extract immich config entry (@epenet - #162797)
- Bump python-bsblan to version 4.2.0 (@liudger - #162786)
- Use service helper to extract risco config entry (@epenet - #162806)
- Use service helper to extract overseerr config entry (@epenet - #162804)
- Use service helper to extract radarr config entry (@epenet - #162805)
- Use service helper to extract stookwijzer config entry (@epenet - #162808)
- Use service helper to extract swiss public transport config entry (@epenet - #162810)
- Move TadoConfigEntry declaration (@epenet - #162811)
- Fix BSBLAN water heater mapping and add on/off (@liudger - #160256)
- Use service helper to extract seventeentrack config entry (@epenet - #162807)
- Add support for Nanoleaf Essentials / Replace aionanoleaf through aionanoleaf2 (@loebi-ch - #157295)
- Fix missing values in battery_level in iometer (@torben-iometer - #162781)
- Use service helper to extract ohme config entry (@epenet - #162801)
- Use service helper to extract mealie config entry (@epenet - #162800)
- Use service helper to extract mastodon config entry (@epenet - #162798)
- Use service helper to extract google_sheets config entry (@epenet - #162794)
- Use service helper to extract google_photos config entry (@epenet - #162792)
- Use service helper to extract easyenergy config entry (@epenet - #162791)
- Add Reolink PTZ patrol status (@starkillerOG - #162796)
- Add additional Reolink PTZ buttons (@starkillerOG - #162793)
- Add switch entities to Watts Vision + (@theobld-ww - #162699)
- Add ELV-SH-SB8 Status Board switch support to homematicip_cloud (@lackas - #161668)
- Move entity name helper to module-level function (@arturpragacz - #162766)
- Add smoke detector extended properties to homematicip_cloud (@lackas - #161629)
- Improve EnOcean config flow (@CFenner - #162751)
- Use service helper to extract velbus config entry (@epenet - #162813)
- Use service helper to extract tado config entry (@epenet - #162812)
- Use service helper to extract onedrive config entry (@epenet - #162803)
- Portainer fix multiple environments & containers (@erwindouna - #153674)
- Add endpoint system df information (@erwindouna - #160134)
- Bump pythonkuma to 0.4.1 (@tr4nt0r - #162773)
- Add switch platform to nrgkick integration for enabling or pausing car charging (@andijakl - #162563)
- Use chained comparison in Teslemetry update platform (@Bre77 - #161950)
- Complete config-entry-unloading quality check in Teslemetry (@Bre77 - #161956)
- Bump typedmonarchmoney to 0.7.0 (@jeeftor - #162686)
- Bump pyvlx to 0.2.29 (@wollew - #162829)
- Support dual cook oven in Smartthing (@mik-laj - #156561)
- Add TTS support for OpenAI (@Shulyaka - #162468)
- Google Gen AI: Increase max iterations for AI Task (@balloob - #162600)
- Add charge state to Victron BLE (@badgerwithagun - #162593)
- Mark log unavailable as complete for vesync (@cdnninja - #162464)
- Handle config entry not loaded for Telegram bot (@hanwg - #161951)
- Add uptime ratio and avg. response time sensors to Uptime Kuma (@tr4nt0r - #162785)
- Split up coordinators in solarlog (@dontinelli - #161169)
- Add snapshot tests to waterfurnace sensors (@joostlek - #162594)
- Improve device information in Overkiz (@iMicknl - #162419)
- Align number unit converters with sensor (@abmantis - #162662)
- Use direct DHW status for ViCare water heater state (@lackas - #162591)
- Deprecate OpenAI actions (@Shulyaka - #162211)
- Anthropic Structured Outputs support (@Shulyaka - #162515)
- Add DHCP Discovery to vesync (@cdnninja - #162259)
- Add WATER_LEVEL sensor to homekit_controller (@romanlytvyn - #161900)
- Use service helper to extract transmission config entry (@epenet - #162814)
- Fix devcontainer defaultFormatter blocks (@staticdev - #162750)
- Rename registry imports in intent helper (@arturpragacz - #162765)
- Use service helper to extract bosch alarm config entry (@epenet - #162789)
- Use service helper to extract bring config entry (@epenet - #162790)
- Improve weatherflow type hints (@pkolbus - #162843)
- Fix Venstar integration crash when thermostat is unreachable (@wh1t3f1r3 - #162524)
- Add vacuum’s activity table to LG ThinQ (@LG-ThinQ-Integration - #162616)
- Bump docker/build-push-action from 6.18.0 to 6.19.1 (@dependabot - #162844)
- Bump pyweatherflowudp to 1.5.0 (@pkolbus - #162841)
- Add Homevolt battery integration (@Danielhiversen - #160416)
- Validate core_files.yaml base_platforms completeness (@abmantis - #162826)
- Add get_lock_usercode service to zwave_js integration (@odlund - #162057)
- Bump pywmspro to 0.3.3 (@mback2k - #162832)
- Add JVC Projector switch platform (@SteveEasley - #161899)
- Use https for media player cover images in Xbox integration (@tr4nt0r - #162859)
- Improve error validation in service tests (@epenet - #162851)
- Expose ActuatorEnabled attr of matter DoorLock (@Triodes - #162598)
- Use service helper to extract habitica config entry (@epenet - #162795)
- Improve tests in Bring! integration (@tr4nt0r - #162853)
- Move entity service registration to async_setup in ntfy integration (@tr4nt0r - #162833)
- Add analytics platform to mobile_app (@arturpragacz - #162736)
- add quality scale to manifest of velux integration (@wollew - #162869)
- Add water heater support for Compit (@Przemko92 - #162021)
- Fix keys for Homevolt (@Danielhiversen - #162874)
- Catch AccessoryDisconnectedError in homekit pairing (@odlund - #162466)
- Update UptimeRobot to API v3 (@chemelli74 - #153508)
- Remove unused snapshots for Homevolt (@joostlek - #162885)
- Melcloud move ConfigEntry declaration (@erwindouna - #160890)
- Categorize all immich sensor entities as diagnostic (@mib1185 - #162887)
- Add reauth flow to HomeLink integration (@ryanjones-gentex - #158454)
- Add diagnostics to Homevolt (@Danielhiversen - #162873)
- Adjust discovery interval in govee-light-local (@mnederlof - #160914)
- Add reauthentication flow to Homevolt (@Danielhiversen - #162868)
- Add parent device for Satel Integra (@Tommatheussen - #160933)
- add services to google_travel_time (@eifinger - #160740)
- Add missing exception translations in immich (@mib1185 - #162889)
- Add more Melcloud sensors (@ffourcot - #160770)
- Improve type hints in utility_meter (@epenet - #160993)
- Cync - allow updating multiple attributes in one command (@Kinachi249 - #159574)
- Add action exception handling to Actron Air (@kclif9 - #160579)
- Add number to Compit (@Przemko92 - #162165)
- KNX Expose: Add support for sending value periodically (@farmio - #160883)
- Add switch controls for dishwashers in SmartThings (@edu-tsen - #160266)
- Add reconfigure flow to immich (@mib1185 - #162892)
- Add IQS to openai_conversation (@zweckj - #161051)
- Added Ambient Weather station sensors for AQIN monitor. (@n-6 - #161082)
- Add config flow to Splunk (@Bre77 - #160478)
- Disable mobile devices in tado (@erwindouna - #160881)
- Expose power and energy sensors for vera metered switches (@jronnols - #161028)
- Use service helper to retrieve config entry in Duck DNS integration (@tr4nt0r - #162879)
- Support KNX number entity configuration from UI (@farmio - #161269)
- Add room correction setting to Cambridge Audio (@noahhusby - #162743)
- Add annual statistics aggregation (@karwosts - #160857)
- Increase test coverage in Xbox integration (@tr4nt0r - #162876)
- Only show trains for configured time if configured in nederlandse_spoorwegen (@heindrichpaul - #159261)
- Re-implement Cloudflare using coordinator (@davidrapan - #156817)
- Do not unregister adguard services (@epenet - #158308)
- IDrive e2 backup provider (@patrickvorgers - #144910)
- Add play/pause ability & media info to LG soundbars integration (@alexmerkel - #161184)
- Switchbot Cloud: Add new supported device Ai Art Frame (@XiaoLing-git - #160754)
- Recorder total_increasing warning clarifications (@scop - #157453)
- Support KNX time server configuration from UI (@farmio - #161854)
- Cache get api calls in FRITZ!Box tools (@mib1185 - #160246)
- Add energy sensor platform to sunricher_dali (@niracler - #161415)
- Implement automatic migration for Growatt Server DEFAULT_PLANT_ID entries (@johanzander - #159972)
- Immich reached platinum 🏆 (@mib1185 - #162891)
- Bump docker/build-push-action from 6.19.1 to 6.19.2 (@dependabot - #162896)
- Move evohome hasskey to const module (@epenet - #162899)
- Fix capitalization of “Immich” and “MIME type” (@NoRi2909 - #162900)
- Move evohome service registration to services.py (@zxdavb - #162902)
- Drop yardian custom translation overrides in tests (@epenet - #162904)
- Cleanup code for UptimeRobot (@chemelli74 - #162905)
- Replace repeated patches in config_flow_test with fixtures for Squeezebox (@peteS-UK - #153032)
- Fix google_travel_time get_travel_times config_entry_id description (@eifinger - #162910)
- Improve smarla typing in tests (@rlint-explicatis - #162163)
- Optimize coordinator data type for UptimeRobot (@chemelli74 - #162912)
- Specifiy number of parallel updates in Smarla (@rlint-explicatis - #162914)
- Raise on missing supported color modes (@epenet - #162717)
- Use constants for update_entity calls in tests (@epenet - #162920)
- Make template lock code error consistent between state based and trigger based template entities (@Petro31 - #162923)
- Ensure numeric template sensors only use numbers in _attr_native_state (@Petro31 - #162878)
- Use APPLICATION_CREDENTIALS_DOMAIN constant in tests (@epenet - #162932)
- Add integration for onedrive for business (@zweckj - #155709)
- Add quality scale for GIOS (@mik-laj - #155603)
- Add fixture to give tests their own unique copy of testing_config (@emontnemery - #162938)
- OpenAI: Increase max iterations for AI Task (@balloob - #162599)
- Add remove item intent for todo component (@mistic100 - #152922)
- add OnOffLight without brightness control to velux integration (@wollew - #162835)
- Parametrize yeelight test_device_types test (@epenet - #161838)
- Bump ruff to 0.15.1 (@Thomas55555 - #162903)
- Always include homeassistant translations in tests (@epenet - #162850)
- Fix incorrect type HDFury select platform (@glenndehaan - #162948)
- Add Switcher heater support (@YogevBokobza - #162588)
- Don’t mock out filesystem operations in backup tests (@emontnemery - #162877)
- Bump pysmarlaapi to 1.0.1 and compatibility changes (@rlint-explicatis - #162911)
- Bump hdfury to 1.5.0 (@glenndehaan - #162944)
- Fix
home-assistant-intentsbreaking nightly builds (@TheJulianJES - #162957) - Bump intents to 2026.2.13 (@synesthesiam - #162959)
- Handle Z-Wave values (re-)added at runtime (@AlCalzone - #162921)
- Bump python-tesla-fleet-api to v1.4.3 (@Bre77 - #162977)
- Improve types and code in SpaceAPI (@ximex - #162970)
- Set default file transfer timeouts for Telegram bot (@hanwg - #162978)
- Improve SpaceAPI Manifest (@ximex - #160805)
- Update knx-frontend to 2026.2.13.222258 (@farmio - #162963)
- Z-Wave lock service action modernization (@odlund - #162967)
- Replace the manufacturer name of lunatone (@MoonDevLT - #162854)
- Remove YAML anchors / expand GitHub CI workflows (@frenck - #162987)
- Refactor Velux cover class (@wollew - #162984)
- Improve quality scale to platinum HDFury integration (@glenndehaan - #162985)
- Anthropic: Increase max iterations for AI Task (@Shulyaka - #162954)
- Move DATA_MP_ENTITIES in Onkyo (@arturpragacz - #162674)
- Add Matter TVOC level entity (@lboue - #162964)
- Add HDFury CEC and 5v switches (@glenndehaan - #162988)
- fix: info skill reference (@jamesonuk - #162823)
- Small test cleanup for Fritz (@chemelli74 - #162993)
- Fix lingering test_waiting_for_client_not_loaded test (@jbouwh - #162994)
- Fix failing sftp_storage test (@frenck - #163000)
- S3 backup - Improved buffer handling (@patrickvorgers - #162955)
- add switch platform for Velux on/off switches (@wollew - #163002)
- Added
ppmsupport for the ozone device class in sensor (@lboue - #162996) - Enable strict typing check for Anthropic (@Shulyaka - #163013)
- Add data descriptions for Anthropic data flow (@Shulyaka - #162961)
- CI security hardening actions/checkout to not persist-credentials (@frenck - #162991)
- Add zeroconf support to Homevolt (@Danielhiversen - #162897)
- Add entity descriptions to Hikvision binary sensors (@ptarjan - #160875)
- Improve Anthropic coverage (@Shulyaka - #163011)
- Add switch entities to Liebherr integration (@mettolen - #162688)
- Add reauthentication to Anthropic (@Shulyaka - #163019)
- Update homevolt quality scale (@Danielhiversen - #163022)
- Add air quality monitor sensors to Alexa Devices (@jamesonuk - #162095)
- Add bedtime end time entity Nintendo parental controls (@pantherale0 - #160927)
- Bump openai to 2.21.0 (@Shulyaka - #163032)
- Fix authentication error handling in Liebherr coordinator (@mettolen - #163036)
- Use suggested_display_precision for HmIP absolute humidity sensor (@lackas - #162834)
- Miele: add WASHER_DRYER to twindos compatibles (@Rezoran - #162875)
- Bump thermopro-ble to 1.1.3 (@upsuper - #163026)
- Add battery percentage sensor to weatherflow (@pkolbus - #161200)
- Add ELV-SH-SMSI soil moisture sensor to homematicip_cloud (@lackas - #161662)
- Bump pysmlight v0.2.14 (@tl-sl - #163035)
- Fix default value of DurationSelector allow_negative (@eifinger - #162924)
- Add island_status sensor and grid_status binary sensor to Tessie (@Bre77 - #162975)
- CI security hardening: restrict permissions in stale workflow (@frenck - #163049)
- CI security hardening: restrict permissions in lock workflow (@frenck - #163050)
- CI security hardening: restrict permissions in restrict-task-creation workflow (@frenck - #163051)
- CI security hardening: restrict permissions in CodeQL workflow (@frenck - #163053)
- Add reauth to onedrive_for_business (@zweckj - #163052)
- Save failed intent results to chat log (@Shulyaka - #163031)
- Add get_account service to Mastodon (@andrew-codechimp - #161930)
- CI security hardening: restrict permissions in wheels workflow (@frenck - #163059)
- CI security hardening: restrict permissions in translations workflow (@frenck - #163057)
- Fix reauth flow for onedrive (@zweckj - #163061)
- CI security hardening: restrict permissions in builder workflow (@frenck - #163062)
- CI security hardening: restrict permissions in CI workflow (@frenck - #163063)
- Bump aiomealie to 1.2.1 (@andrew-codechimp - #163064)
- Bump pywebpush to 2.3.0 (@tr4nt0r - #163066)
- Add reconfiguration to onedrive_for_business (@zweckj - #163054)
- Fix strings for onedrive for business (@zweckj - #163070)
- Improve coordinator coverage for Fritz (@chemelli74 - #163012)
- Add energy history support to Tessie (@Bre77 - #162976)
- Cloudflare R2 backup - Improved buffer handling (@patrickvorgers - #162958)
- CI security hardening: prevent template injection in wheels workflow (@frenck - #163073)
- CI security hardening: prevent template injection in translations workflow (@frenck - #163074)
- CI security hardening: prevent template injection in builder workflow (@frenck - #163075)
- CI security hardening: prevent template injection in CI workflow (@frenck - #163076)
- CI security hardening: restrict permissions in AI issue detection workflows (@frenck - #163068)
- Add missing supported languages to Google Generative AI TTS (@janvanicek - #163048)
- Bump python-roborock to version 4.14.0 in requirements files (@lboue - #163098)
- Add additional Miele fillingLevel sensors (@aturri - #162104)
- Remove extra friendly name from trend (@arturpragacz - #163105)
- Update powerfox to v2.1.0 (@klaasnicolaas - #163095)
- Bump PyViCare to 2.57.0 (@CFenner - #163071)
- Pump pysaunum to 0.5.0 (@mettolen - #163021)
- Assign no-stale to Tasks/Epic/Opportunity issue type (@frenck - #163080)
- Remove deprecated yaml import from HTML5 integration (@tr4nt0r - #163094)
- Fix Z-Wave fan speed (@arturpragacz - #163093)
- Bump github/codeql-action from 4.32.2 to 4.32.3 (@dependabot - #163126)
- CI security hardening: pin actions and images in builder and CI workflows (@frenck - #163116)
- Migrate grid connections to single objects with import/export/power (@MindFreeze - #162200)
- Update xknx to 3.15.0 (@farmio - #163111)
- Cleanup removed options from MQTT json light schema (@jbouwh - #163119)
- Bump hass-nabucasa from 1.13.0 to 1.15.0 (@ludeeus - #163129)
- Handle orphaned ignored config entries (@erwindouna - #153093)
- Fix orphaned ignored typo (@erwindouna - #163137)
- Improve GitHub Actions workflow metadata and concurrency settings (@frenck - #163117)
- Fix Matter translation key not set for primary entities (@TheJulianJES - #161708)
- Fix incorrect use of Platform enum in evohome tests (@epenet - #163143)
- Fix incorrect use of Platform enum in huum tests (@epenet - #163145)
- Fix incorrect use of Platform enum in flexit_bacnet tests (@epenet - #163144)
- Fix incorrect use of Platform enum in roborock tests (@epenet - #163142)
- Fix incorrect use of Platform enum in wmspro tests (@epenet - #163152)
- Deprecate async_listen in labs (@arturpragacz - #162648)
- Fix incorrect use of Platform enum in utility_meter tests (@epenet - #163153)
- Add
ppmtoNITROGEN_DIOXIDEunits (@lboue - #162983) - Fix incorrect use of Platform enum in zha tests (@epenet - #163150)
- Fix HDFury volt symbol (@glenndehaan - #163160)
- Fix incorrect use of Platform enum in threshold tests (@epenet - #163154)
- Remove unused MQTT CONF_COLOR_MODE const and abbreviation (@jbouwh - #163146)
- Fix incorrect use of Platform enum in wsdot tests (@epenet - #163151)
- Fix incorrect use of Platform enum in homematicip_cloud tests (@epenet - #163149)
- Cleanup unused code for Telegram bot (@hanwg - #163147)
- Prefer explicit parametrize in litterrobot tests (@epenet - #163155)
- Add dependabot cooldown (@AlexSperka - #163082)
- Fix dependabot cooldown config for github-actions ecosystem (@frenck - #163166)
- Fix device class for Matter Nitrogen Dioxide Sensor (@lboue - #162965)
- Add py_vapid to requirements in HTML5 integration (@tr4nt0r - #163165)
- Add zizmor as a CI check for GitHub Actions workflows (@frenck - #163161)
- Improve typing in HTML5 webpush integration (@tr4nt0r - #163162)
- Fix flaky fritz update tests caused by class attribute pollution in test fixtures (@frenck - #163169)
- Fix CI partial run glob expansion without reintroducing template injection (@frenck - #163170)
- Add battery health sensors to Tessie (@Bre77 - #162908)
- Homevolt quality scale (@Danielhiversen - #163038)
- Use HassKey in usb (@epenet - #163138)
- Add reauth to Mastodon (@andrew-codechimp - #163148)
- Change Facebook notify tag from ACCOUNT_UPDATE to HUMAN_AGENT (@doggyben - #162890)
- Use hardware/usb domain constant in tests (@epenet - #162934)
- Add quality scale to Advantage Air integration (@Bre77 - #160476)
- Fix title for onedrive for business (@zweckj - #163134)
- Add MTA New York City Transit integration (@OnFreund - #156846)
- Rename DOMAIN aliases in tests (@epenet - #163176)
- Add missing native_unit_of_measurement in WLED (@mik-laj - #157802)
- Rename devolo test variables and aliases (@epenet - #163175)
- Update quality scale of WLED integration to platinum (@mik-laj - #162680)
- KNX Sensor: set device and state class for YAML entities based on DPT (@farmio - #159465)
- minecraft_server: do not use mcstatus’ internal objects (@PerchunPak - #163101)
- Add Mastodon reconfigure flow (@andrew-codechimp - #163178)
- Mark update method type hints as mandatory (@epenet - #163182)
- Improve type hints in roomba vacuum (@epenet - #163184)
- Add snapshot testing to SleepIQ (@joostlek - #163179)
- Improve type hints in atag water_heater (@epenet - #163192)
- Improve type hints in aosmith water_heater (@epenet - #163191)
- Improve type hints in econet water_heater (@epenet - #163193)
- Mark vacuum method type hints as mandatory (@epenet - #163185)
- Mark water_heater method type hints as mandatory (@epenet - #163190)
- Add zone temperature support to Daikin integration (@barneyonline - #152642)
- add upper and lower shutter of Velux dualrollershutters as entities (@wollew - #162998)
- GIOS quality scale fixes to platinum (@mik-laj - #162510)
- Reauthentication flow for Watts Vision + integration (@theobld-ww - #163141)
- Don’t mock out filesystem operations in backup_restore tests (@emontnemery - #163172)
- Fix
reboot_gatewayaction deprecation message invelux(@NoRi2909 - #163201) - Refactor HTML5 integration to use aiohttp instead of requests (@tr4nt0r - #163202)
- bump pyvlx to 0.2.30 (@wollew - #163203)
- Add 100% coverage of sensors for Fritz (@chemelli74 - #163005)
- Saunum integration fix: close client on unload (@mettolen - #163183)
- Add Celsius Temperature Support for Control4 Integration (@davidrecordon - #163196)
- Store nest media in a .cache subdirectory (@allenporter - #163200)
- Mealie add get shopping list items action (@andrew-codechimp - #163090)
- Add
quality_scalewithstrict-typingdone for SpaceAPI (@ximex - #163003) - Add on-grid discharge stop SOC control for Growatt MIN devices (@johanzander - #160634)
- Add port link speed sensor to UniFi integration (@com6056 - #162847)
- Add test coverage for tplink_omada update entities (@MarkGodwin - #162549)
- Control time display format on SwitchBot Meter Pro CO2 (@elgris - #163008)
- Fix common-modules quality scale for advantage_air (@Bre77 - #163209)
- Hypontech micro invertors support via Hyponcloud (@jcisio - #159442)
- Add Pressure Stall Information (PSI) to Systemmonitor integration (@ajfriesen - #151946)
- Raise in EntityComponent.async_prepare_reload on configuration error (@emontnemery - #101267)
- Add diagnostics support for Watts Vision integration (@theobld-ww - #163177)
- Use unique node_id in matter fixtures (@epenet - #162779)
- Add full debug logs for coordinator failures (@zweckj - #163228)
- Add 100% coverage to helpers for Fritz (@chemelli74 - #162999)
- Remove unnecessary set up of other integration from automation tests (@emontnemery - #163230)
- Netatmo doortag binary sensor addition (@farkasdi - #160608)
- Improve type hints in aemet weather (@epenet - #163239)
- Cleanup for 100% coverage of entity for Fritz (@chemelli74 - #163237)
- Improve type hints in ecobee weather (@epenet - #163240)
- Improve type hints in environment_canada weather (@epenet - #163241)
- Improve type hints in ipma weather (@epenet - #163242)
- Improve type hints in meteo_france weather (@epenet - #163243)
- Bump onedrive-personal-sdk to 0.1.4 (@zweckj - #163238)
- Improve type hints in tomorrowio weather (@epenet - #163246)
- Debug logging for service calls (@zweckj - #163235)
- Refactor BSB-Lan tests (@liudger - #163245)
- Rename DOMAIN aliases (@epenet - #163253)
- Rename DOMAIN aliases in tests (@epenet - #163254)
- Fix warning in Fritz switch tests (@chemelli74 - #163256)
- Add quality scale to Splunk (@Bre77 - #162893)
- Improve type hints in meteoclimatic weather (@epenet - #163244)
- Mark weather method type hints as mandatory (@epenet - #163247)
- Add coordinator for Satel Integra (@Tommatheussen - #158533)
- Removed more warnings from Fritz tests (@chemelli74 - #163262)
- Use shorthand attributes in currencylayer (@epenet - #163267)
- Rename DOMAIN_xxx aliases in template (@epenet - #163259)
- Rename DOMAIN_xxx aliases in components (@epenet - #163260)
- Rename DOMAIN_xxx aliases in tests (@epenet - #163261)
- Use shorthand attributes in geo_rss_events (@epenet - #163268)
- Add DHCP Discovery for SmartThings (@joostlek - #160314)
- Add quality scale to Anthropic (@Shulyaka - #162953)
- Mark RestoreEntity/RestoreSensor type hints as mandatory (@epenet - #163272)
- Improve haveibeenpwned type hints (@epenet - #163280)
- Add Indevolt integration (@Xirt - #160595)
- Fix frontend development PR download cache (@wendevlin - #162928)
- Add type hints to extra_state_attributes [a-l] (@epenet - #163279)
- Add type hints to extra_state_attributes [m-z] (@epenet - #163281)
- Translation keys for exceptions Watts Vision + integration (@theobld-ww - #163231)
- Ensure DOMAIN constant is always aliased with _DOMAIN suffix (@epenet - #163270)
- Use shorthand attributes in omnilogic (@epenet - #163283)
- Use shorthand attributes in hp_ilo (@epenet - #163282)
- Use shorthand attributes in openhardwaremonitor (@epenet - #163284)
- Use shorthand attributes in sigfox (@epenet - #163286)
- Use shorthand attributes in repetier (@epenet - #163291)
- Remove deprecated starline state attribute (@epenet - #163289)
- Use shorthand attributes in vasttrafik (@epenet - #163285)
- Use shorthand attributes in skybeacon (@epenet - #163295)
- Use shorthand attributes in sony_projector (@epenet - #163293)
- Use shorthand attributes in tank_utility (@epenet - #163288)
- Use shorthand attributes in serial (@epenet - #163287)
- Improve derivative units and auto-device_class (@karwosts - #157369)
- Add sensors to onedrive_for_business (@zweckj - #163135)
- ADS Light Color Temperature Support (@christian9712 - #153913)
- Type fixture in Fritz tests (@chemelli74 - #163271)
- Bump Idasen Desk dependency (@abmantis - #163309)
- Update quality scale of Namecheap DynamicDNS integration to platinum 🏆️ (@tr4nt0r - #161682)
- Allow Gemini CLI and Anti-gravity SKILL discovery (@allenporter - #163194)
- Bump victron-ble-ha-parser to 0.4.10 (@JamieMagee - #163310)
- Bump actions/stale from 10.1.1 to 10.2.0 (@dependabot - #163223)
- Use shorthand attributes in osramlightify (@epenet - #163296)
- Add support for voltage sensors to eGauge integration (@neggert - #163206)
- add teltonika integration (@karlbeecken - #157539)
- Reconfiguration flow Watts Vision + and platinium level (@theobld-ww - #163346)
- Set last_reported timestamp for Satel Integra entities (@Tommatheussen - #163352)
- Change lunatone config entry title to only include the URL (@MoonDevLT - #162855)
- Add missing data_description for reauth_confirm token in Splunk (@Bre77 - #163356)
- Add coordinator to Proxmox (@erwindouna - #161146)
- Do not send empty snapshots in analytics (@arturpragacz - #163351)
- Proxmox polish strings & tests (@erwindouna - #163361)
- Add clean_area action to vacuum (@arturpragacz - #149315)
- Fix MySensors battery sensors attachment to correct gateway (@JochenFriedrich - #151167)
- Reconfiguration support for webhook flow helper (@tr4nt0r - #151729)
- OAuth2.0 token request error handling (@erwindouna - #153167)
- Add diagnostics to onedrive for business (@zweckj - #163336)
- Fix spelling of reconfigure in strings (@tr4nt0r - #163370)
- Ecovacs controller pattern optimization (@erwindouna - #160895)
- Mark onedrive for business as platinum (@zweckj - #163376)
- Fix XMLParsedAsHTMLWarning in scrape integration (@vaind - #159433)
- Fix uses of
reconfigureandre-configurein ZHA (@puddly - #163377) - Mark siren/stt/todo method type hints as mandatory (@epenet - #163265)
- Refactor extra_state_attributes in xiaomi_aqara (@epenet - #163299)
- Use shorthand attributes in wirelesstag (@epenet - #161214)
- Ignore None keys in meteo_france extra state attributes (@epenet - #163297)
- Add fixture to SmartThings (@joostlek - #163374)
- Update asyncsleepiq to 1.7.0 (@rhcp011235 - #163214)
- Fix 0°C when the temperature is unavailable in HKO API (@MisterCommand - #162052)
- Add HDFury number platform (@glenndehaan - #163381)
- Bump Kaleidescape integration dependancy to v1.1.1 (@SteveEasley - #163384)
- Improve Transmission error handling (@andrew-codechimp - #163388)
- Redact Thread dataset and format them as readable dicts in log messages (@agners - #163385)
- Fix data update in WebhookFlowHandler to preserve existing entry data (@tr4nt0r - #163372)
- Add Mastodon mute/unmute actions (@andrew-codechimp - #163366)
- Replace “the” with “a” in
vacuumaction descriptions (@NoRi2909 - #163409) - Deduplicate strings in Teltonika integration (@karlbeecken - #163410)
- Add ConfigEntryAuthFailed to Proxmox (@erwindouna - #163407)
- Add integration_type service to smhi (@joostlek - #163400)
- Add integration_type hub to smarttub (@joostlek - #163399)
- Add integration_type device to sensorpro (@joostlek - #163386)
- Migrate SleepIQ sensors to entity descriptions (@rhcp011235 - #163213)
- Mark runtime-data quality as exempt in Splunk (@Bre77 - #163359)
- Add integration_type device to sensorpush (@joostlek - #163389)
- Add integration_type hub to senz (@joostlek - #163391)
- Refactor optimistic update and delayed refresh for Liebherr integration (@mettolen - #163121)
- Add channel muting switches to Onkyo (@arturpragacz - #162605)
- Add Powerfox Local integration (@klaasnicolaas - #163302)
- Add metadata validation for missing backup files in OneDrive backup agent (@zweckj - #163072)
- Simplify ecovacs unload and register teardown before initialize (@edenhaus - #163350)
- Bump aiostreammagic to 2.13.0 (@noahhusby - #163408)
- Bump hass-splunk to 0.1.4 (@Bre77 - #163413)
- Mark Splunk dependency-transparency quality scale rule as done (@Bre77 - #163355)
- Add Config Flow for Ness Alarm (@Poshy163 - #162414)
- add support for multi tariff meter data in iometer (@torben-iometer - #161767)
- Control datetime on SwitchBot Meter Pro CO2 (@elgris - #161808)
- Add LED light support for WiredPushButton (HmIPW-WRC2/WRC6) (@lackas - #161841)
- Add integration_type service to simplepush (@joostlek - #163394)
- Debug logging for config_entries (@zweckj - #163378)
- Don’t set last notification timestamp when sending message failed (@tr4nt0r - #163251)
- Add sleep health metrics to SleepIQ integration (@rhcp011235 - #163403)
- Fix midnight bounce suppression for Growatt today sensors (@johanzander - #163106)
- Add integration_type hub to sensorpush_cloud (@joostlek - #163390)
- Add integration_type hub to sleepiq (@joostlek - #163395)
- Add integration_type device to slimproto (@joostlek - #163396)
- Add integration_type hub to smappee (@joostlek - #163397)
- Add sensor showing total size of AWS S3 backups (@mik-laj - #162513)
- Enable strict typing for 10 components (@mik-laj - #163420)
- Bump py-nymta to 0.4.0 (@OnFreund - #163418)
- Add integration_type hub to sharkiq (@joostlek - #163392)
- Deprecate action call without config entry in DuckDNS integration (@tr4nt0r - #163269)
- Bump pythonkuma to 0.5.0 (@tr4nt0r - #163430)
- Refactor write_ha_state logic in Tuya (@epenet - #163431)
- Allow history_stats to configure state_class: total_increasing (@karwosts - #148637)
- Add charge control to NRGkick integration (new number platform) (@andijakl - #163273)
- Add config flow to InfluxDB integration (@RobBie1221 - #134463)
- Use opening/closing state for Z-Wave covers (@AlCalzone - #163368)
- Bump indevolt-api requirement to 1.2.3 (@Xirt - #163429)
- Add return type hint to is_on property (@epenet - #163441)
- Add custom headers support to downloader (@holyhope - #160541)
- Add config URL to Proxmox (@erwindouna - #163414)
- Use a coordinator per appliance in Home Connect (@Diegorro98 - #152518)
- Fix pytest warnings in screenlogic (@epenet - #163455)
- System Nexa 2 Core Integration (@konsulten - #159140)
- Add diagnostics support to Splunk integration (@Bre77 - #163453)
- Add charge cable and charge port latch sensors to Tessie (@Bre77 - #163207)
- Improve type hints in philips_js light (@epenet - #163448)
- Improve type hints in tesla_wall_connector binary sensor (@epenet - #163445)
- Use shorthand attribute in x10 light (@epenet - #163444)
- Use shorthand attribute in tellstick toggle entities (@epenet - #163443)
- Use shorthand attributes in versasense switch (@epenet - #163442)
- Bump python-bsblan version to 4.2.1 (@liudger - #163439)
- Ignore WAKEUP_CHANNEL addition in Thread dataset with same timestamp (@agners - #163440)
- Add new sensor to Uptime Kuma (@tr4nt0r - #163468)
- Add numbers platform to Indevolt integration (@Xirt - #163298)
- Add strict typing for BSB-Lan integration (@liudger - #163236)
- Use shorthand attribute in danfoss_air switch (@epenet - #163486)
- Use shorthand attribute in edimax switch (@epenet - #163487)
- Use shorthand attribute in elv switch (@epenet - #163488)
- Use shorthand attributes in orvibo switch (@epenet - #163508)
- Use shorthand attribute in eufy switch (@epenet - #163503)
- Use shorthand attributes in kankun switch (@epenet - #163505)
- Use shorthand attributes in hikvisioncam switch (@epenet - #163504)
- Use shorthand attributes in pencom switch (@epenet - #163509)
- Add state_class to sensors in Uptime Kuma (@tr4nt0r - #163495)
- Use shorthand attributes in raincloud (@epenet - #163515)
- Use shorthand attributes in itach remote (@epenet - #163516)
- Use shorthand attributes in scsgate switch (@epenet - #163510)
- Use shorthand attributes in mystrom binary sensor (@epenet - #163518)
- Use shorthand attributes in rflink (@epenet - #163555)
- Use shorthand attributes in scsgate light (@epenet - #163537)
- Use shorthand attributes in lw12wifi light (@epenet - #163532)
- Use shorthand attributes in futurenow light (@epenet - #163523)
- Use shorthand attributes in greenwave light (@epenet - #163526)
- Use shorthand attributes in eufy light (@epenet - #163521)
- Use shorthand attributes in pilight (@epenet - #163542)
- Use shorthand attributes in opple light (@epenet - #163519)
- Mark is_on property as mandatory in binary sensors and toggle entities (@epenet - #163556)
- Mark entity capability/state attribute type hints as mandatory (@epenet - #163300)
- Update Anthropic repair flow (@Shulyaka - #163303)
- Pump pyliebherrhomeapi to 0.3.0 (@mettolen - #163450)
- Improve error handling in Uptime Kuma (@tr4nt0r - #163477)
- Fixing minor case errors in strings for systemnexa2 (@konsulten - #163567)
- Add switch platform to Indevolt integration (@Xirt - #163522)
- Use shorthand attributes in geonetnz_quakes (@epenet - #163568)
- Add notify platform to HTML5 integration (@tr4nt0r - #163229)
- Add callback inline keyboard tests for Telegram bot (@hanwg - #163328)
- Add flow rate (stat_rate) tracking for gas and water (@MindFreeze - #163274)
- Handle Mastodon auth fail in coordinator (@andrew-codechimp - #163234)
- Update json fixture to reflect response from current LHM versions (@Sab44 - #163248)
- Handle gateway issues during setup in EnOcean integration (@CFenner - #163168)
- Add test for device_class inheritance in the min/max integration (@JannisPohle - #161123)
- Add proper ImplementationUnvailable handling to onedrive for business (@zweckj - #163258)
- Add room correction intensity to Cambridge Audio (@noahhusby - #163306)
- Mark action-setup quality scale rule as done for Advantage Air (@Bre77 - #163208)
- Combine matter snapshot tests (@epenet - #162695)
- Add Trane Local integration (@bdraco - #163301)
- add number platform to Velux integration for ExteriorHeating nodes (@wollew - #162857)
- Add pagination support for IDrive e2 (@patrickvorgers - #162960)
- Add exception translations for Splunk setup errors (@Bre77 - #163579)
- Impprove oauth2 exception handling in Xbox (@tr4nt0r - #163588)
- Add state_class to Xbox sensors (@tr4nt0r - #163590)
- Add state_class to PlayStation Network sensors (@tr4nt0r - #163591)
- Add reconfiguration flow to Splunk integration (@Bre77 - #163577)
- Use shorthand attributes in geonetnz_volcano (@epenet - #163596)
- Use shorthand attributes in torque (@epenet - #163597)
- Use shorthand attributes in transport_nsw (@epenet - #163598)
- Use shorthand attributes in rmvtransport (@epenet - #163599)
- Use shorthand attributes in netdata (@epenet - #163605)
- Use shorthand attributes in reddit (@epenet - #163600)
- Add type hint for icon property (@epenet - #163609)
- Use shorthand attributes in homematic (@epenet - #163610)
- Use shorthand attributes in london_air (@epenet - #163601)
- Add integration_type service to streamlabswater (@joostlek - #163642)
- Add integration_type device to stiebel_eltron (@joostlek - #163641)
- Add integration_type hub to somfy_mylink (@joostlek - #163631)
- Add integration_type hub to subaru (@joostlek - #163643)
- Add integration_type device to songpal (@joostlek - #163633)
- Add integration_type hub to sunricher_dali (@joostlek - #163645)
- Add integration_type service to suez_water (@joostlek - #163644)
- Add integration_type service to swiss_public_transport (@joostlek - #163647)
- Add integration_type hub to switchbee (@joostlek - #163648)
- Add integration_type hub to snoo (@joostlek - #163626)
- Add integration_type device to snooz (@joostlek - #163627)
- Add integration_type device to solax (@joostlek - #163629)
- Add integration_type hub to soma (@joostlek - #163630)
- Add integration_type service to sonarr (@joostlek - #163632)
- Add integration_type service to splunk (@joostlek - #163635)
- Add integration_type device to soundtouch (@joostlek - #163634)
- Add integration_type service to srp_energy (@joostlek - #163636)
- Add integration_type hub to switcher_kis (@joostlek - #163650)
- Add integration_type device to starlink (@joostlek - #163639)
- Add integration_type hub to starline (@joostlek - #163638)
- Add integration_type device to steamist (@joostlek - #163640)
- Add integration_type service to syncthing (@joostlek - #163651)
- Add integration_type device to togrill (@joostlek - #163669)
- Add integration_type service to telegram_bot (@joostlek - #163660)
- Add integration_type device to tami4 (@joostlek - #163659)
- Add integration_type device to syncthru (@joostlek - #163658)
- Add integration_type hub to tibber (@joostlek - #163665)
- Add integration_type device to thermopro (@joostlek - #163664)
- Add integration_type device to thermobeacon (@joostlek - #163663)
- Add integration_type device to tesla_wall_connector (@joostlek - #163662)
- Add integration_type hub to tellduslive (@joostlek - #163661)
- Add integration_type service to trafikverket_weatherstation (@joostlek - #163677)
- Add integration_type service to trafikverket_train (@joostlek - #163676)
- Add integration_type service to trafikverket_ferry (@joostlek - #163675)
- Add integration_type service to trafikverket_camera (@joostlek - #163674)
- Add integration_type hub to totalconnect (@joostlek - #163672)
- Add integration_type device to toon (@joostlek - #163671)
- Add integration_type device to tolo (@joostlek - #163670)
- Add integration_type service to todoist (@joostlek - #163668)
- Add integration_type device to tilt_ble (@joostlek - #163666)
- Add integration_type hub to tradfri (@joostlek - #163673)
- Improve type hints in homematic hub (@epenet - #163614)
- Add integration_type hub to surepetcare (@joostlek - #163646)
- Use shorthand attributes in swiss_hydrological_data (@epenet - #163607)
- Bump pyportainer 1.0.27 (@erwindouna - #163613)
- Mark entity icon type hints as mandatory (@epenet - #163617)
- Replace “add-on” with “app” in
matter(@NoRi2909 - #163695) - Bump aiontfy to 0.8.0 (@tr4nt0r - #163693)
- Bump pylitterbot to 2025.1.0 (@natekspencer - #163691)
- Cleanup error handling for Telegram bot (@hanwg - #163689)
- Replace “add-on” with “app” in
homeassistant_hardware(@NoRi2909 - #163696) - Replace “add-on” with “app” in
zwave_me(@NoRi2909 - #163698) - Revert “Replace “add-on” with “app” in
zwave_me” (@zweckj - #163701) - Bump pyportainer 1.0.28 (@erwindouna - #163700)
- Add translated reasons to Govee Light Local setup failures (@abmantis - #163576)
- NRGkick integration: add reauth config flow (@andijakl - #163619)
- Bump PyViCare to 2.58.0 (@CFenner - #163686)
- Bump python-roborock to 4.15.0 in manifest and requirements files (@lboue - #163719)
- Add integration_type device to vallox (@joostlek - #163743)
- Add integration_type device to vivotek (@joostlek - #163749)
- Add integration_type service to vlc_telnet (@joostlek - #163750)
- Add support for clean_area to Roborock V1 vacuums (@Lash-L - #163760)
- Add integration_type service to twitch (@joostlek - #163736)
- Add integration_type service to twilio (@joostlek - #163734)
- Add integration_type service to ukraine_alarm (@joostlek - #163738)
- Add integration_type service to upcloud (@joostlek - #163740)
- Add integration_type service to uptimerobot (@joostlek - #163741)
- Add integration_type hub to vegehub (@joostlek - #163744)
- Add integration_type device to twinkly (@joostlek - #163735)
- Add integration_type hub to uhoo (@joostlek - #163737)
- Add integration_type device to v2c (@joostlek - #163742)
- Add integration_type hub to vera (@joostlek - #163747)
- Add integration_type device to venstar (@joostlek - #163745)
- Add integration_type device to vilfo (@joostlek - #163748)
- Add integration_type device to volumio (@joostlek - #163751)
- Buomp aiovodafone to 3.1.2 (@chemelli74 - #163779)
- Rename evohome’s test_evo_services.py to test_services.py (@zxdavb - #163731)
- Roborock: Q7 Model Split and Refactor (@lboue - #163769)
- Bump python-robroock to 4.17.1 (@Lash-L - #163765)
- Bump systembridgeconnector to 5.4.3 (@timmo001 - #163784)
- Update pylint to 4.0.5 (@cdce8p - #163777)
- Update sqlparse to 0.5.5 (@cdce8p - #163774)
- Update pillow to 12.1.1 (@cdce8p - #163773)
- Improve type hints in lights (@epenet - #163792)
- Remove CumulativeEnergyExported in fixtures where not needed (@lboue - #163775)
- Replace “add-on” with “app” in
homeassistant_yellow(@NoRi2909 - #163715) - Replace “add-on” with “app” in
recorder(@NoRi2909 - #163714) - Replace “add-on” with “app” in
zwave_me(user-facing strings only) (@NoRi2909 - #163703) - Improve type hints in igloohome lock (@epenet - #163795)
- Require product_id for Inovelli LED intensity Matter Number entities (@harryh - #163680)
- Unifiprotect ptz support (@RaHehl - #161353)
- Fix grammar of
amcrest.ptz_controlaction description (@NoRi2909 - #163802) - Allow unit of measurement translation in Analytics Insights (@bieniu - #163811)
- Mark fan entity type hints as mandatory (@epenet - #163789)
- Use async_add_executor_job in Fitbit to prevent event loop blocking (@bieniu - #163815)
- Bump uiprotect to 10.2.1 (@RaHehl - #163816)
- Remove myself as code owner from dwd_weather_warnings (@andarotajo - #163810)
- Typing fix for Proxmox coordinator (@erwindouna - #163808)
- Bump renault-api to 0.5.5 (@sebastiaanspeck - #163821)
- Bump pyfritzhome to 0.6.20 (@mib1185 - #163817)
- Add test for Tuya event (@epenet - #163812)
- Adjust sensors to support new Litter-Robot lineup (@natekspencer - #163823)
- Adjust selects to support new Litter-Robot lineup (@natekspencer - #163824)
- Adjust buttons to support new Litter-Robot lineup (@natekspencer - #163825)
- Ikea bilresa dual button fixture (@lboue - #163781)
- Refactoring for Telegram bot (@hanwg - #163767)
- Bump airOS to 0.6.4 (@CoMPaTech - #163716)
- Bump librehardwaremonitor-api to version 1.10.1 (@Sab44 - #163572)
- Add allow_none_value=True to MatterDiscoverySchema for electrical power attributes (@lboue - #163195)
- Bump deebot-client to 18.0.0 (@edenhaus - #163835)
- Fix Matter energy sensor discovery when value is null (@kshypachov - #162044)
- Teltonika integration: add reauth config flow (@karlbeecken - #163712)
- Add integration_type hub to waqi (@joostlek - #163754)
- Add integration_type hub to wallbox (@joostlek - #163752)
- Add integration_type device to tilt_pi (@joostlek - #163667)
- Add integration_type device to smart_meter_texas (@joostlek - #163398)
- Add integration_type service to snapcast (@joostlek - #163401)
- Add support for current sensors to egauge integration (@neggert - #163728)
- Bump securetar to 2026.2.0 (@emontnemery - #163226)
- Fix Matter speaker mute toggle (@lboue - #161128)
- Increase request timeout from 10 to 20s in FRITZ!SmartHome (@mib1185 - #163818)
- Add integration_type device to sia (@joostlek - #163393)
- Add Zinvolt integration (@joostlek - #163449)
- Deprecate Libre Hardware Monitor versions below v0.9.5 (@Sab44 - #163838)
- Bump forecast-solar to v5.0.0 (@klaasnicolaas - #163841)
- Add configurable panel properties to frontend (@piitaya - #162742)
- Mark geo_location entity type hints as mandatory (@epenet - #163790)
- Mark light entity type hints as mandatory (@epenet - #163794)
- Change weheat codeowner (@jesperraemaekers - #163860)
- Mark lock entity type hints as mandatory (@epenet - #163796)
- Replace Matter python client (@Apollon77 - #163704)
- Add new MyNeomitis integration (@l-pr - #151377)
- Minor type fixes (@liudger - #163606)
- Add integration_type device to solarlog (@joostlek - #163628)
- Add Matter KNX bridge fixture (@lboue - #163875)
- Bump Kaleidescape integration dependency to v1.1.3 (@SteveEasley - #163884)
- Add airOS device reboot button (@CoMPaTech - #163718)
- Fix notification service exceptions fot Telegram bot (@Shulyaka - #163882)
- Rename Litter-Robot integration to Whisker (@natekspencer - #163826)
- Teltonika quality scale: mark test-coverage done (@karlbeecken - #163707)
- Enable strict typing in Velux integration (@wollew - #163798)
- Add refrigerator temperature level select to whirlpool (@abmantis - #162110)
- Bump python-bsblan to 5.0.1 (@liudger - #163840)
- Improve Plugwise set_hvac_mode() logic (@bouwew - #163713)
- Bump python-overseerr to 0.9.0 (@joostlek - #163883)
- Handle PyViCare device communication and server errors in ViCare integration (@lackas - #162618)
- Fix ZHA number entity not using device class and mode (@TheJulianJES - #163827)
- Add heat pump sensors to ViCare integration (@lackas - #161422)
- Add discovery for airOS devices (@CoMPaTech - #154568)
- Correct EnOcean integration type (@CFenner - #163725)
- Improve config flow tests for Anthropic (@Shulyaka - #163757)
- Add climate platform to Trane Local integration (@bdraco - #163571)
- Update Teslemetry quality scale to silver (@Bre77 - #163611)
- Add diagnostics to Proxmox (@erwindouna - #163800)
- Anthropic interleaved thinking (@Shulyaka - #163583)
- Add DeviceInfo to Google Translate (@tr4nt0r - #163762)
- Allow support of Graph QL 4.0 / Bump pytibber 0.36.0 (@jeeftor - #163305)
- Add IntelliClima Select platform (@dvdinth - #163637)
- Weheat energy logs update (@barryvdh - #163621)
- Add stale device removal to portainer (@erwindouna - #160017)
- fix(snapcast): do not crash when stream is not found (@Links2004 - #162439)
- Homevolt switch platform (@Danielhiversen - #163415)
- Portainer gold standard review (@erwindouna - #155231)
- Add handling of 2 IP addresses to homee (@Taraman17 - #162731)
- homee: add one-button-remote to event platform (@Taraman17 - #163690)
- Add support for action buttons to ntfy integration (@tr4nt0r - #152014)
- Add select entities to Liebherr integration (@mettolen - #163581)
- Add Hikvision integration quality scale (@ptarjan - #159252)
- Update quality scale of Xbox integration to platinum 🏆️ (@tr4nt0r - #155577)
- Add debounce to Satel Integra alarm panel state (@Tommatheussen - #163602)
- Update Anthropic models (@Shulyaka - #163897)
- Bump aioesphomeapi 44.1.0 (@bdraco - #163894)
- Portainer Platinum score (@erwindouna - #163898)
- Bring aladdin_connect to Bronze quality scale (@JamieMagee - #163221)
- Add clean_area support for Ecovacs mqtt vacuums (@edenhaus - #163580)
- Bump anthropic to 0.83.0 (@Shulyaka - #163899)
- Make Google Assistant fan speed percent and step speeds mutually exclusive (@corbantek - #162770)
- Update strings in ntfy integration (@tr4nt0r - #163912)
- Bump yt-dlp to 2026.2.21 (@andreimoraru - #163916)
- Skip unknown entity types in ESPHome integration (@bdraco - #163887)
- Improve backup_restore tests (@emontnemery - #163921)
- Clean up duplicated code in Telegram bot (@hanwg - #163917)
- Bump lunatone-rest-api-client to 0.7.0 (@MoonDevLT - #163594)
- Remove myself as codeowner for fritzbox_callmonitor (@cdce8p - #163927)
- Update Splunk integration to bronze quality scale (@Bre77 - #163616)
- Replace discovery with user flow in Philips Hue BLE (@emontnemery - #163924)
- Fix nightlies by reverting the builder to a version instead of a sha (@edenhaus - #163935)
- Add energy sensor to bsblan (@liudger - #163879)
- Add gateway discovery via USB for EnOcean integration (@CFenner - #162756)
- Add support for reading backups using securetar v3 (@emontnemery - #163920)
- Add button platform to Proxmox (@erwindouna - #163791)
- Avoid adding Content-Type to non-body responses (@agners - #163885)
- Rename Powerfox integration to Powerfox Cloud (@klaasnicolaas - #163723)
- Allow to disable seconds in DurationSelector (@eifinger - #163803)
- Add DHCP ip_addresses update to airOS (@CoMPaTech - #163936)
- Fix flaky netatmo test (@farkasdi - #163941)
- Add bus support to MTA integration (@OnFreund - #163220)
- Econet friedrich support (@JamieMagee - #163904)
- Add diagnostics support to homematicip_cloud (@lackas - #163829)
- Add IQS to Anthropic (@Shulyaka - #163891)
- Centralize ViCare error handling in base entity class (@lackas - #162619)
- Teltonika quality scale: mark unavailable rules done (@karlbeecken - #163705)
- Fix Sonos browse album art lookup for multi-segment A:ALBUM IDs (@mollux - #163786)
- Add reconfiguration flow to NRGkick (@andijakl - #163828)
- OAuth helper enhance response text logger (@erwindouna - #163371)
- Resolve pylance complaints for Fritz (@chemelli74 - #163313)
- Allow worxlandroid PIN to contain letters (@Eagle3386 - #163266)
- Update BSB-LAN strings, error handling, and code cleanup (@liudger - #163480)
- Add reauthentication flow to smarla (@rlint-explicatis - #163250)
- Add button platform for BSB-Lan integration (@liudger - #160243)
- Add binary sensor for Compit (@Przemko92 - #161709)
- Bump imgw_pib to 2.0.2 (@bieniu - #163940)
- Disable seconds in Husqvarna Automower services (@Thomas55555 - #163948)
- Add STT support for OpenAI (@Shulyaka - #162931)
- Bump pyrainbird to 6.1.0 (@rblakemesser - #163919)
- Fix API key check during config flow for openai_conversation (@Shulyaka - #163025)
- Restart SimpliSafe websocket after request failures (@rlippmann - #160974)
- Add diagnostics to Velux integration (@wollew - #163896)
- Add select platform to Indevolt integration (@Xirt - #163955)
- bugfix tests to use model_validate_json for device time (@liudger - #163950)
- Handle 403 authentication errors in HomematicIP Cloud (@lackas - #162579)
- Add stack management to Portainer (@erwindouna - #163612)
- Add light platform to systemnexa2 (@konsulten - #163710)
- Add quality scale to bsblan integration (@liudger - #146323)
- Add diagnostics to met (@mik-laj - #157805)
- Add sensor platform to Proxmox (@erwindouna - #163404)
- Fix small typo in Portainer containers (@erwindouna - #163957)
- Add sensor for compit integration (@Przemko92 - #161527)
- Proxmox separate errors and patch tests (@erwindouna - #163922)
- Fix Saunum session parameters to use timedelta (@mettolen - #163962)
- Add tests to lutron (@cdheiser - #162055)
- Implement changes for Clean area for Roborock. (@Lash-L - #163956)
- Fix HmIP-RGBW monochrome mode FEATURE_NOT_SUPPORTED error (@lackas - #161917)
- Use native ARM runner for builder action, update to builder 2026.02.1 (@sairon - #163942)
- Update availability of entities when connection changes (@rlint-explicatis - #163252)
- Add ZoneMinder integration test suite (@nabbi - #163115)
- Add reauthentication flow for Powerfox Local integration (@klaasnicolaas - #163966)
- Implement dynamic devices for Liebherr integration (@mettolen - #163951)
- Fix accessing optional username and password for nrgkick integration (@andijakl - #163963)
- Update quality scale to silver for nrgkick integration (@andijakl - #163964)
- Update Teltonika IQS to silver (@karlbeecken - #163943)
- Update airOS quality_scale (@CoMPaTech - #163895)
- Add integration_type device to wiz (@joostlek - #163981)
- Add diagnostics support for Powerfox Local integration (@klaasnicolaas - #163985)
- Add v6 firmware support to airOS (@CoMPaTech - #163889)
- Update IQS to gold for UptimeRobot (@chemelli74 - #162926)
- Add reconfiguration flow for Powerfox Local integration (@klaasnicolaas - #164002)
- Set quality scale to platinum for Powerfox Local integration (@klaasnicolaas - #164003)
- Ecobee username/password authentication (@MizterB - #161716)
- Bump powerfox to v2.1.1 (@klaasnicolaas - #164004)
- Bump aiontfy to 0.8.1 (@tr4nt0r - #164010)
- Add integration_type service to waze_travel_time (@joostlek - #163974)
- Add integration_type hub to withings (@joostlek - #163980)
- Add integration_type service to worldclock (@joostlek - #163986)
- Add integration_type hub to xiaomi_aqara (@joostlek - #163988)
- Add integration_type hub to zimi (@joostlek - #163999)
- Add integration_type device to watergate (@joostlek - #163972)
- Add integration_type hub to weatherflow_cloud (@joostlek - #163975)
- Add integration_type service to weatherkit (@joostlek - #163976)
- Add integration_type hub to weheat (@joostlek - #163977)
- Add integration_type hub to wilight (@joostlek - #163979)
- Add integration_type device to wolflink (@joostlek - #163982)
- Add integration_type device to yalexs_ble (@joostlek - #163991)
- Add integration_type device to yamaha_musiccast (@joostlek - #163992)
- Add integration_type hub to yale_smart_alarm (@joostlek - #163990)
- Add integration_type hub to yale (@joostlek - #163989)
- Add integration_type device to yardian (@joostlek - #163993)
- Add integration_type device to yeelight (@joostlek - #163994)
- Add integration_type hub to yolink (@joostlek - #163995)
- Add integration_type device to youless (@joostlek - #163996)
- Add integration_type service to zamg (@joostlek - #163997)
- Add integration_type hub to zwave_me (@joostlek - #164000)
- Add Full support for roborock Zeo washing/drying machines (@yangqian - #159575)
- Update MCP client integration to use new OAuth spec (@allenporter - #161611)
- Add pet last seen flap device id and user id sensors to Sure Petcare (@Zhephyr54 - #160215)
- Add integration_type hub to watts (@joostlek - #163973)
- Add integration_type device to ws66i (@joostlek - #163987)
- Bump ZHA to 1.0.0 (@TheJulianJES - #164013)
- Move Tuya helpers to external library (@epenet - #158791)
- Add vacuum area mapping not configured issue (@arturpragacz - #163965)
- Add CLEAN_AREA feature to Matter vacuum entity (@lboue - #163570)
- Use constants in calendar test (@epenet - #164021)
- Enrich DeviceInfo with meter metadata in route_b_smart_meter (@yufeikang - #164006)
- Fix ingress compression breaking SSE and streaming responses (@tomquist - #160704)
- Drop single-use service name constants in Renault (@epenet - #164043)
- Add base entity to Zinvolt (@joostlek - #164051)
- Use constants in counter tests (@epenet - #164020)
- Categorize update entity as diagnostic in IronOS integration (@tr4nt0r - #164023)
- Categorize update entity as diagnostic in Uptime Kuma (@tr4nt0r - #164022)
- Add a service to retrieve images for the Volvo integration (@thomasddn - #159603)
- Bump zinvolt to 0.3.0 (@joostlek - #164046)
- Improve configuration url in Uptime Kuma (@tr4nt0r - #164057)
- Add diagnostics to NRGkick integration (@andijakl - #164047)
- Mark docs-examples done for Liebherr integration (@mettolen - #163034)
- Add update platform to ntfy integration (@tr4nt0r - #164018)
- Add number platform to Zinvolt (@joostlek - #164058)
- Add Update Platform to Smarla Integration (@rlint-explicatis - #163255)
- Add binary sensor platform to Zinvolt (@joostlek - #164050)
- Fix MatterValve state handling and allow None values for attributes (@lboue - #164066)
- Bump python-bsblan to 5.1.0 (@liudger - #164064)
- Improve platforms pylint plugin (@joostlek - #164067)
- Add platform tests for aladdin_connect cover and sensor (@JamieMagee - #164011)
- Use show in sidebar property instead of removing panel title and icon (@piitaya - #164025)
- Use has_entity_name in SmartTub entities (@mdz - #162374)
- Add reconfigure flow to Fully Kiosk (@erwindouna - #161840)
- Sonarr service calls instead of sensor attributes (@Liquidmasl - #161199)
- Add brands system integration to proxy brand images through local API (@frenck - #163960)
- Add quality scale to Tessie integration (@Bre77 - #160499)
- Add siren support for HmIP-MP3P (Combination Signalling Device) (@lackas - #161634)
- Align airOS add_entities consumption in sensor (@CoMPaTech - #164055)
- Portainer optimize switch (@erwindouna - #163520)
- Sonarr coordinator refactor (@Liquidmasl - #164077)
- Adjust service description for Volvo integration (@thomasddn - #164073)
- Fix ntfy test snapshots (@emontnemery - #164079)
- Fix smarla test snapshots (@emontnemery - #164078)
- Update frontend to 20260225.0 (@bramkragten - #164076)
- Remove building wheels for Python 3.13 (@edenhaus - #164083)
- Add parallel updates to aladdin_connect (@JamieMagee - #164082)
- Handle coordinator update errors in aladdin_connect (@JamieMagee - #164084)
- dwd_weather_warnings: Filter expired warnings (@tribut - #163096)
- Fix AWS S3 config flow endpoint URL validation (@mik-laj - #164085)
- Add integration_type device to wiffi (@joostlek - #163978)
- Add integration_type device to zerproc (@joostlek - #163998)
- Set initiate flow for Zinvolt (@joostlek - #164054)
- Add sensor platform to systemnexa2 (@konsulten - #163961)
- Use different name source in Zinvolt (@joostlek - #164072)
- Refresh coordinator in Zinvolt after setting value (@joostlek - #164069)
- Make Zinvolt battery state a non diagnostic sensor (@joostlek - #164071)
- Bump uv to 0.10.6 (@edenhaus - #164086)
- Add action exceptions for cover commands in aladdin_connect (@JamieMagee - #164087)
- Update knx-frontend to 2026.2.25.165736 (@farmio - #164089)
- Add diagnostic to systemnexa2 integration (@konsulten - #164090)
- Add Zinvolt power sensor (@joostlek - #164092)
- Bump hdfury to 1.6.0 (@glenndehaan - #164088)
- Bump velbusaio to 2026.2.0 (@cereal2nd - #164093)
- add codeowner to homevolt (@liudger - #164097)
- Remove redundant get_status call from Tessie coordinator (@Bre77 - #163219)
- Add Code execution tool to Anthropic (@Shulyaka - #164065)
- Add PowerfoxPrivacyError handling for Powerfox integration (@klaasnicolaas - #164100)
- Change icon for Anthropic entities to
mdi:asterisk(@Shulyaka - #164099) - Bump accuweather to 5.1.0 (@bieniu - #164034)
- Fix Matter vacuum clean area status check (@arturpragacz - #164108)
- Sonarr post merge changes (@Liquidmasl - #164112)
- Remove error translation placeholders from Saunum (@mettolen - #164121)
- Simplify Anthropic integration name (@balloob - #164124)
- Replace “add-ons” with “apps” in
backupissues (@NoRi2909 - #164129) - Fix stack devices merging with container devices in Portainer (@erwindouna - #164135)
- Rename “Z-Wave Supervisor app” to “Z-Wave JS app” (@AlCalzone - #164147)
- Update reasoning options for gpt-5.3-codex (@Shulyaka - #164179)
- Remove invalid color mode from philips_js (@joostlek - #164204)
- Disable code interpreter with minimal reasoning for OpenAI (@Shulyaka - #164254)
- Simplify portainer entity initialisation (@epenet - #164256)
- Update state labels to use common keys in compit (@jwillemsen - #164261)
- Update frontend to 20260226.0 (@bramkragten - #164262)
- Fix RpcSensorDescription for Shelly (@chemelli74 - #150719)
- Google Cast: detect state and attributes when device is doing active non-media casting (@nopoz - #160819)
- Fix AccuWeather daily forecast crash when humidity average is missing (@HadiAyache - #163968)
- Pass encoding to AtomicWriter in write_utf8_file_atomic (@yzlnew - #164015)
- Rename Overseerr integration to Seerr (@joostlek - #164060)
- Add diagnostics platform to AWS S3 (@mik-laj - #164118)
- Handle missing Daikin zone temperature keys (@barneyonline - #164170)
- Set entity_registry_enabled_default to False for total energy sensor (@liudger - #164197)
- Remove vacuum area mapping not configured issue (@arturpragacz - #164259)
- Create reauth flow for Anthropic for auth errors during conversation (@Shulyaka - #164267)
- Bump uiprotect to version 10.2.2 (@RaHehl - #164269)
- Fix ZHA update entities not working after reload (@TheJulianJES - #164290)
- Proxmox expand data descriptions (@erwindouna - #164304)
- Update state labels to use common keys in indevolt (@jwillemsen - #164308)
- Fix int vs float template sensor issue (@Petro31 - #164339)
- Mock firmware data during reauth flow init in airos tests (@frenck - #164341)
- Add missing volume supported features to dunehd (@balloob - #164343)
- Add state for washing mop in SmartThings (@joostlek - #164348)
- Fix SmartThings EHS power (@joostlek - #164395)
- Bump pySmartThings to 3.6.0 (@joostlek - #164397)
- Reject relative paths in SFTP storage backup location config flow (@frenck - #164408)
- Fix Matter vacuum crash on nullable ServiceArea location info (@agners - #164411)
- Remove error translation placeholders from Airobot (@mettolen - #164436)
- Hive - Bump pyhive-integration to v1.0.8 (@KJonline - #164453)
- Bump weheat to 2026.2.28 (@barryvdh - #164456)
- Update error handling messages for Powerfox Local integration (@klaasnicolaas - #164465)
- Require user code to be set when toggling Satel Integra switches (@Tommatheussen - #164483)
- Bump DSMR parser to 1.5.0 (@willemstuursma - #164484)
- Update nest access token error handling to use specific OAuth2 token request exceptions (@allenporter - #164506)
- Bump aioamazondevices to 12.0.2 (@chemelli74 - #164518)
- Bump yalexs-ble to 3.2.7 (@bdraco - #164555)
- Bump aiowebdav2 to 0.6.1 (@jpbede - #164560)
- Fix large WebDAV backup metadata download (@jpbede - #164563)
- Change one remaining string from “Overseerr” to “Seerr” (@NoRi2909 - #164569)
- Bump aiogithubapi to 26.0.0 (@edenhaus - #164579)
- Bump aiotankerkoenig to 0.5.1 (@jpbede - #164590)
- Raise on vacuum area mapping not configured (@arturpragacz - #164595)
- Update frontend to 20260302.0 (@bramkragten - #164612)
- Bump ring-doorbell to 0.9.14 (@Schneidoa - #158074)
- Improve mobile_app
notify.notifywith not connected targets (@Diegorro98 - #161855) - Fix HomematicIP heating group availability with unreachable members (@lackas - #162571)
- Fix infinite loop in esphome assist_satellite (@miguelangel-nubla - #163097)
- Add repair issue after importing influxdb yaml config (@justanotherariel - #164145)
- Add Ubisys virtual integration (@abmantis - #164314)
- Trigger recovery mode on registry major version downgrade (@arturpragacz - #164340)
- Add informative errors to Proxmox VE buttons (@CoMPaTech - #164417)
- Bump aioamazondevices to 13.0.0 (@chemelli74 - #164618)
- Fix key error in Reolink DHCP if still setting up (@starkillerOG - #164619)
- Update knx-frontend to 2026.3.2.183756 (@farmio - #164623)
- Update subentry description for Telegram bot (@hanwg - #164642)
- Bump pysmlight to v0.2.16 (@tl-sl - #164665)
- Fix Reolink entity unique_id migration when unique_id already exists (@starkillerOG - #164667)
- Fix wheels building by using arch dependent requirements_all file (@edenhaus - #164675)
- Bump intents to 2026.3.3 (@synesthesiam - #164676)
- Influxdb repair issue follow up (@justanotherariel - #164684)
- Bump ZHA to 1.0.1 (@TheJulianJES - #164709)
- Bump reolink-aio to 0.19.1 (@starkillerOG - #164732)
- Bump pyportainer 1.0.31 (@erwindouna - #164733)
- Add backup integration to recovery mode (@arturpragacz - #164734)
- Restore handling of is active input for chromecast (@elupus - #164735)
- Update frontend to 20260304.0 (@bramkragten - #164736)
- Ignore transient empty segments in Matter vacuum (@agners - #164737)
- Fix handling of several thermostat QuickApp’s in fibaro (@rappenze - #164344)
- Fix this variable preview issue with template entities from the UI (@Petro31 - #164740)
Release 2026.3.1 - March 6
- Fix Rain Bird controllers updated by Rain Bird 2.x (@rblakemesser - #163915)
- Bump spotifyaio to 2.0.2 (@joostlek - #164114)
- Hunter Douglas Powerview: Fix missing class in hierarchy. (@gwww - #164264)
- Ensure Snapcast client has a valid current group before accessing group attributes. (@mill1000 - #164683)
- Fix button entity creation for devices with more than two radios (@tl-sl - #164699)
- Fix IntesisHome outdoor_temp not reported when value is 0.0 (@antonio-mello-ai - #164703)
- Update keyboard_remote dependencies (@lanrat - #164755)
- more programs for Miele steam ovens (@sean797 - #164768)
- Enforce SSRF redirect protection only for connector allowed_protocol_schema_set (@RaHehl - #164769)
- Remove caio from licenses exception list (@epenet - #164806)
- Add device class to active_liter_lpm sensor (@glenndehaan - #164809)
- Update ness_alarm scan interval to 5 secs (@Poshy163 - #164835)
- Fix Ghost config flow using wrong field name for site UUID (@JohnONolan - #164836)
- Fix KNX sensor default attributes for energy and volume DPTs (@farmio - #164838)
- Fix volvo test RuntimeWarning (@cdce8p - #164845)
- Fix ‘this’ variable in template options flow (@Petro31 - #164866)
- Bump onedrive-personal-sdk to 0.1.5 (@zweckj - #164880)
- Pass in Base Url during Roborock reauth (@Lash-L - #164903)
- Bump aiovodafone to 3.1.3 (@chemelli74 - #164955)
- Fix energy unit in Homevolt (@Danielhiversen - #164959)
- Bump python-bsblan to 5.1.1 (@liudger - #164591)
- Bump python-bsblan to 5.1.2 (@liudger - #164963)
- Change setpoint step size in IronOS integration (@tr4nt0r - #164979)
- Bump aioswitcher to 6.1.1 (@thecode - #164981)
- Bump teltasync to 0.2.0 (@karlbeecken - #164995)
Release 2026.3.2 - March 16
- Fix wifi switch status and add 100% coverage for Fritz (@chemelli74 - #164696)
- Fix dnd switch status for Alexa Devices (@chemelli74 - #164953)
- Fix cover state updates for legacy Multilevel Switch based Z-Wave covers (@AlCalzone - #165003)
- Bump yalexs-ble to 3.2.8 (@bdraco - #165018)
- Update pychromecast to 14.0.10 (@elupus - #165069)
- Fix forced VERIFY_SSL in Portainer (@erwindouna - #165079)
- Bump pyportainer 1.0.32 (@erwindouna - #164803)
- Bump pyportainer to 1.0.33 (@erwindouna - #165080)
- Make restore state resilient to extra_restore_state_data errors (@arturpragacz - #165086)
- Bump pyanglianwater to 3.1.1 (@pantherale0 - #165097)
- Bump jvc_projector dependency to 2.0.2 (@SteveEasley - #165099)
- Add missing code for Miele dryer (@astrandb - #165122)
- Add reorder support to area selector (@bramkragten - #165211)
- Bump onedrive-personal-sdk to 0.1.6 (@zweckj - #165219)
- Fix switch set for Vodafone Station (@chemelli74 - #165273)
- Bump python-otbr-api to 2.9.0 (@TheJulianJES - #165298)
- Bump ohme to 1.7.0 (@dan-r - #165318)
- Bump pyjvcprojector to 2.0.3 (@SteveEasley - #165327)
- August oauth2 exception migration (@zachfeldman - #165397)
- Bump onedrive-personal-sdk to 0.1.7 (@zweckj - #165401)
- Remove stateclass from timestamp entity in Intellifire (@joostlek - #165403)
- Update govee local api to 2.4.0 (@Galorhallen - #165418)
- Update frontend to 20260312.0 (@bramkragten - #165420)
- Bump ZHA to 1.0.2 (@TheJulianJES - #165423)
- Handle OAuth token request exceptions in Yale setup (@bdraco - #165430)
- Bump orjson to 3.11.7 (@edenhaus - #165443)
- Bump pySmartThings to 3.7.0 (@joostlek - #165468)
- Bump aioamazondevices to 13.0.1 (@chemelli74 - #165476)
- Fix victron_ble warning sensor using duplicate alarm translation key (@rajlaud - #165502)
- Fix MQTT device tracker overrides via JSON state attributes without reset (@jbouwh - #165529)
- Upgrade ical dependency to 13.2.2. (@allenporter - #165642)
- Bump aiocomelit to 2.0.1 (@chemelli74 - #165663)
Release 2026.3.3 - March 20
- Fix Tibber update token (@Danielhiversen - #164295)
- Add correct speed fan mapping for Z-Wave GE/Jasco Enbrighten ZWA4013 (@martinecker - #164500)
- Improve ProxmoxVE permissions validation (@CoMPaTech - #164770)
- Start orphaned entries in normal mode only (@erwindouna - #164815)
- Skip unmapped and watchdog event types in Hikvision NVR event injection (@ptarjan - #165009)
- Snapcast: Fix incorrect identifier extraction in
async_join_players(@mill1000 - #165020) - Hive: Fix bug in config flow for authentication and device registration (@KJonline - #165061)
- LG Soundbar: Fix incorrect state and outdated track information (@alexmerkel - #165148)
- Fix optional static values in bsblan (@liudger - #165488)
- Fix SmartLithium 8-cell support in victron_ble (@rajlaud - #165496)
- Fix Matter firmware update detection when version strings are identical (@lboue - #165509)
- Bump pyOpenSSL to 26.0.0 (@edenhaus - #165770)
- Bump pySmartThings to 3.7.2 (@joostlek - #165810)
- Bump axis to v67 (@Kane610 - #165840)
- Fix Abort exception caught by wrong handler in backup encrypt/decrypt (@agners - #165852)
- Proxmox fix restart/reboot action (@erwindouna - #165901)
- Do not use moving states for Multilevel Switch CC v1-3 Z-Wave covers (@AlCalzone - #165909)
- Fix unit when plant power is above 1000W in Hypontech (@jcisio - #165959)
- Bump hyponcloud from 0.3.0 to 0.9.0 (@jcisio - #166005)
- Don’t create fridge setpoint if no range in SmartThings (@joostlek - #166018)
- Fix enable/disable device tracking feature during setup of FRITZ!Box Tools (@mib1185 - #166027)
- Bump opower to 0.17.1 (@tronikos - #166044)
- Properly handle buttons of SMLIGHT SLZB-MRxU devices (@tl-sl - #166058)
- Bump Pysmlight to 0.3.0 (@tl-sl - #165658)
- Bump Pysmlight 0.3.1 (@tl-sl - #166060)
Release 2026.3.4 - March 24
- Correct validation of scripts in template entities (@Petro31 - #165226)
- Update starlink-grpc-core to 1.2.4 (@boswelja - #165882)
- Bump python-google-weather-api to 0.0.6 (@tronikos - #166085)
- Bump xiaomi-ble to 1.10.0 (@xuejuhui - #166099)
- Add additional miele oven programs (@sean797 - #166100)
- Bump aiotedee to 0.2.27 (@zweckj - #166101)
- Fix reload of FRITZ!Box Tools in case of connection issues (@mib1185 - #166111)
- Bump wolf_comm to 0.0.48 (@EnjoyingM - #166144)
- Bump oralb-ble to 1.1.0 (@bdraco - #166165)
- Fix zwave_js fan speed mapping for GE/Jasco Enbrighten 55258 / ZW4002 (@airdrummingfool - #166169)
- Bump tplink-omada-client to fix breaking changes in Omada API (@MarkGodwin - #166206)
- Bump greenplanet-energy-api from 0.1.4 to 0.1.10 (@petschni - #166217)
- Bump yolink-api to 0.6.3 (@matrixd2 - #166232)
- Update frontend to 20260312.1 (@bramkragten - #166251)
- Update template light test framework (@Petro31 - #164688)