Compare commits

...

367 Commits

Author SHA1 Message Date
MoonDevLT
bacb8a8fea Update discovery description wording (#170325) 2026-05-11 15:57:40 +02:00
Maciej Bieniek
c9926915ff Fix Shelly media player availability (#170319) 2026-05-11 15:57:37 +02:00
Joshua Leaper
0772034d9d Add quality scale file to Ness Alarm (#163425)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-11 15:46:30 +02:00
r2xj
8cfdc52762 Only use SmartThings switch for light if it should (#166424)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-11 15:16:18 +02:00
Brett Adams
738b9936d9 Add quality scale to Tesla Fleet integration (#160475)
Co-authored-by: Claude <noreply@anthropic.com>
2026-05-11 15:10:21 +02:00
lucsansag
b3bb5c9abc Google assistant temperature setting active thermostat mode (#166448)
Co-authored-by: Lucas Sanchez Sagrado <lucas.sansag@educa.jcyl.es>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-11 15:08:00 +02:00
Jan Bouwhuis
3149da12a4 Fix MQTT device discovery not using shared QoS and encoding options (#170195)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 14:53:32 +02:00
Tomeamis
e2805e4489 Z-Wave.me: Allow updating entities (#167839) 2026-05-11 14:49:40 +02:00
noifen
14a8ef6e48 Allow setting hvac_mode in generic_thermostat.set_temperature (#168062)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-11 14:41:53 +02:00
Peter
015fc5809a Add countdown number for Tuya sfkzq single-valve timers (#170318) 2026-05-11 14:14:55 +02:00
Simone Chemelli
2e4f4040c7 Bump aiovodafone to 3.2.0 (#170322) 2026-05-11 14:14:41 +02:00
TomFilsell
095de73a53 Fix coordinator data mutation in YouTube diagnostics (#170300)
Co-authored-by: FIls0010 <a1867444@adelaide.edu.au>
2026-05-11 08:03:33 -04:00
Nikolai Rahimi
7dca14e78a Add Mitsubishi brand (#169924)
Co-authored-by: Nikolai Rahimi <nikolairahimi@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 08:02:10 -04:00
nayfield
0a974cbc7a Add cover support to control4 (#169417)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:37:49 +02:00
Øyvind Matheson Wergeland
2e37a0bba6 Fix nobo_hub NoboProfileSelector class-level mutable defaults (#170119) 2026-05-11 13:35:38 +02:00
HoffmanEl
7e2ec795d6 Add quality scale for airnow integration (#169709)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 13:28:52 +02:00
theobld-ww
7ba7700d5e Watts: add HVAC action + preset mode (#169546)
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2026-05-11 13:27:01 +02:00
Greg Haines
261ca2dd9a Add new CentriConnect component (#166933)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-11 13:23:50 +02:00
Jan Bouwhuis
284478f620 Add Message Expire Interval option to MQTT publish service (#169317)
Co-authored-by: Copilot <copilot@github.com>
2026-05-11 13:01:06 +02:00
Paulus Schoutsen
62ac3f9834 Update rf-protocols to 3.0.0 (#170301)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 12:46:26 +02:00
Marcos A L M Macedo
3bf57ae9cd Add Tuya DLQ fixture (#169585) 2026-05-11 12:28:11 +02:00
Kamil Breguła
ed0abfb238 Add more entities for Tuya camera (#169966)
Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
2026-05-11 12:25:42 +02:00
Peter
0789eb0db6 Add tuya water timer data points (#170314) 2026-05-11 12:24:14 +02:00
Marc Mueller
980d43accc Add backoff to forbidden packages (#170242)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 12:14:37 +02:00
Stefan Agner
6d8b010245 Fix hassio.backup_partial AttributeError when folders are specified (#170312)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 12:10:37 +02:00
Jordan Harvey
dc9eba372a Add player specific sensor to nintendo_parental_controls (#155786)
Co-authored-by: Joshua Peisach (ItzSwirlz) <itzswirlz2020@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2026-05-11 12:00:17 +02:00
Simone Chemelli
20827b66d9 Update IQS to platinum for UptimeRobot (#170260) 2026-05-11 11:26:30 +02:00
A. Gideonse
a43ab34302 Bump indevolt api to 1.7.2 (#170310) 2026-05-11 10:37:48 +02:00
Craig Dean
b14e863877 Bump renault-api to 0.5.8 (#170309) 2026-05-11 10:36:47 +02:00
Paulus Schoutsen
af41b704d5 Add shared test mocks for the Infrared integration (#170296)
Co-authored-by: Claude <noreply@anthropic.com>
2026-05-11 09:46:09 +02:00
Crocmagnon
d5f2cd8b17 data grand lyon: implement reconfiguration flow (#170210) 2026-05-11 09:17:31 +02:00
Paulus Schoutsen
f96afda959 Fix spelling of RS-232 in Denon RS-232 integration (#170298) 2026-05-11 07:30:16 +02:00
Paulus Schoutsen
94bf13c6bb Fix flaky diagnostics test for Novy Cooker Hood (#170299) 2026-05-11 07:29:51 +02:00
iluvdata
b7dca79743 Add RepairsFlowResult TypeAlias (#170263) 2026-05-10 23:42:47 -04:00
Mick Vleeshouwer
df84d7a32d Fix local API incorrectly marking devices as unavailable in Overkiz (#170118)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2026-05-10 23:40:13 -04:00
Christian Lackas
c217acd7ab Skip offline devices instead of aborting ViCare diagnostics (#170106) 2026-05-10 23:31:10 -04:00
Abílio Costa
f008f1501f Fix deprecated_class to work with inheritance (#170137) 2026-05-10 23:28:19 -04:00
Michael
739a5780b7 Add diagnostics platform to Home Assistant Connect ZBT-2 (#170158) 2026-05-10 23:27:13 -04:00
Willem-Jan van Rootselaar
0ef221611a Handle empty BSB-LAN heating circuits (#170249) 2026-05-10 23:25:55 -04:00
Crocmagnon
59e04c2169 data grand lyon: use test fixture instead of manual patching (#170294) 2026-05-10 22:08:06 -04:00
renovate[bot]
5b0bf09fdc Update infrared-protocols to 4.0.0 (#170297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-10 22:07:13 -04:00
puddly
c07d176467 Set serial port description from description, not product (#170160)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2026-05-10 22:06:04 -04:00
Crocmagnon
c39f0127ca data grand lyon: implement diagnostics (#170184) 2026-05-10 21:09:48 -04:00
Heikki Henriksen
cdf5d39f57 prusalink: add continue-job button for ATTENTION state (#170193)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:56:22 -04:00
Sören
90b6aa4d91 Use standby for HDMI-CEC turn off (#170206) 2026-05-10 20:53:17 -04:00
Florent Thoumie
f8ebc6c1e2 iaqualink: set system specific polling interval (#170279) 2026-05-10 20:07:13 -04:00
A. Gideonse
e4b4503c10 Apply strict typing to Indevolt integration (#170288) 2026-05-10 20:06:22 -04:00
A. Gideonse
7db1c855c1 Align Indevolt quality scale with documentation (#170289) 2026-05-10 20:06:01 -04:00
A. Gideonse
aa45f90a87 Complete icon translations for Indevolt (#170292) 2026-05-10 20:00:20 -04:00
Sören Beye
cd945a42e6 fix: Do not forget segments from state when a new config arrives (#170265)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-10 22:17:52 +02:00
Ronald van der Meer
afc97268de Migrate Duco to python-duco-connectivity and remove temperature sensors (#170237) 2026-05-10 13:09:46 -04:00
Heikki Henriksen
497faeb103 Use VERSION from PrusaLinkConfigFlow in prusalink (#170200)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:51:02 +01:00
Luka Matijević
84625678d3 Bump qbittorrent-api to 2026.5.1 (#170181) 2026-05-10 17:44:46 +01:00
Perry Naseck
95daee9f07 Update upb-lib to 0.7.0 (#170051) 2026-05-10 17:42:35 +01:00
Simone Chemelli
ff1552e317 Bump aioamazondevices to 13.5.0 (#170258) 2026-05-10 17:40:36 +01:00
Pascal Brunot
ff6b69c929 Bump serialx to 1.7.2 (#170272) 2026-05-10 17:39:04 +01:00
Maciej Bieniek
2a74d5a81c Bump imgw-pib to 2.1.2 (#170274) 2026-05-10 17:37:48 +01:00
Michael
52237247ae Migrate Sensirion BLE to config entry runtime data (#170227)
Co-authored-by: Josef Zweck <josef@zweck.dev>
2026-05-10 17:46:12 +02:00
Michael
62d958682a Migrate Thermo Beacon to config entry runtime data (#170226) 2026-05-10 16:46:13 +02:00
Joris Pelgröm
b2dad41d35 Bump letpot to 0.7.0 (#169868) 2026-05-10 11:39:17 +02:00
Karl Beecken
83c5dbb111 Add more Gen1 sensors to indevolt (#170191) 2026-05-10 11:37:46 +02:00
Klaas Schoute
cf73ef8a20 Update easyEnergy exception and icon translations (#170218) 2026-05-10 08:19:18 +02:00
Simone Chemelli
6555db12b1 Fix entities refresh for UptimeRobot (#170217) 2026-05-10 08:14:03 +02:00
Jan-Philipp Benecke
20b81e9c74 Bump aiotankerkoenig to 0.5.3 (#170224) 2026-05-10 08:12:27 +02:00
Yogev Kriger
51d004a5bb Require admin for webhook list websocket command (#170216) 2026-05-09 21:23:42 +02:00
Michael
9c9b626ade Use has_entity_name for all entities in FRITZ!SmartHome integration (#170199) 2026-05-09 19:01:51 +02:00
Klaas Schoute
e0d3eb0fe3 Add config flow connection check to easyEnergy integration (#170207) 2026-05-09 17:18:27 +02:00
Øyvind Matheson Wergeland
5f5df558c6 Drop redundant HVAC mode validation in nobo_hub (#170140) 2026-05-09 16:28:46 +02:00
Klaas Schoute
fbc5884ce8 Update easyEnergy integration to v3.0.1 (#170201) 2026-05-09 15:59:35 +02:00
Crocmagnon
e72346c222 data grand lyon: exception translations (#170188) 2026-05-09 15:44:56 +02:00
Jan Bouwhuis
266f7b8dbe Fix overkiz snapshots (#170196) 2026-05-09 14:49:19 +02:00
Crocmagnon
3ae4811e99 data grand lyon: icon translations (#170189) 2026-05-09 14:28:15 +02:00
Crocmagnon
526ed271ae data grand lyon: mark repair-issues as exempt (#170194) 2026-05-09 14:26:32 +02:00
renovate[bot]
6c823cd970 Update infrared-protocols to 3.5.0 (#170169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-09 13:05:54 +02:00
Paul Bottein
fb4b36b7f0 Add reconfigure flow to Novy Cooker Hood (#169410) 2026-05-09 10:27:27 +02:00
Paul Bottein
86898f9111 Add diagnostics to Novy Cooker Hood (#169891) 2026-05-09 08:38:58 +02:00
Abílio Costa
27969c34a5 Stop using make_command in LG Infrared (#170149) 2026-05-09 00:24:51 +03:00
Mick Vleeshouwer
74fabca890 Add button entity tests to Overkiz (#170122) 2026-05-09 00:24:37 +03:00
Crocmagnon
af6fcae8b6 data grand lyon: update quality scale in manifest (#170109) 2026-05-08 23:04:47 +02:00
Thijs W.
818b420cb5 Update afsapi to 1.0.1 (#170073) 2026-05-08 23:02:43 +02:00
Øyvind Matheson Wergeland
ef2a065784 Use suggested_display_precision in nobo_hub temperature sensor (#170138) 2026-05-08 21:03:25 +02:00
Mick Vleeshouwer
15943a737a Fix is_closed state for DynamicGate covers in Overkiz (#170130) 2026-05-08 20:42:50 +02:00
Heikki Henriksen
1647c0bf84 Bump pyprusalink to 2.2.0 (#170105)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 16:26:52 +02:00
bkobus-bbx
42aefd67dd Bump blebox_uniapi to v2.5.3 (#170115) 2026-05-08 16:21:54 +02:00
Mick Vleeshouwer
c281c51fc9 Set is_closed state to None when a cover state returns "unknown" in Overkiz (#170081) 2026-05-08 16:20:10 +02:00
Robert Svensson
fa09c6d29a Fix websocket certificate verification Bump axis to v70 (#170038) 2026-05-08 16:18:24 +02:00
Ronald van der Meer
9f7ddcca22 Add system health platform for Duco integration (#169517) 2026-05-08 13:25:28 +02:00
Willem-Jan van Rootselaar
e488c7f3a5 Bump python-bsblan to 5.2.1 (#170100) 2026-05-08 13:17:47 +02:00
wollew
bb924e79b1 Speed up Velux setup by avoiding disconnect from gateway (#167932)
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-08 12:57:48 +02:00
Øyvind Matheson Wergeland
39d60faa42 Add DHCP discovery to nobo_hub (#169595)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:57:05 +02:00
Mick Vleeshouwer
378a26f778 Add number entity tests to Overkiz (#170098) 2026-05-08 12:23:07 +02:00
Mick Vleeshouwer
5c12d59ab7 Fix tilt support for UpDownVenetianBlind (rts:VenetianBlindRTSComponent) in Overkiz (#170047) 2026-05-08 12:22:23 +02:00
TheJulianJES
c9e44d2d51 Bump ZHA to 1.3.1 (#170095) 2026-05-08 12:18:19 +02:00
Heikki Henriksen
c195ddd8f2 prusalink: extract PrusaLinkEntityDescription base class (#170092)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:11:22 +02:00
Mick Vleeshouwer
4e388e1435 Fix cover controls for UpDownBioclimaticPergola in Overkiz (#170058) 2026-05-08 12:09:04 +02:00
Heikki Henriksen
191143d12d prusalink: expose printer location as suggested_area (#170099)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:08:09 +02:00
Mick Vleeshouwer
bb6087cf87 Fix tilt controls for TiltOnlyVenetianBlind in Overkiz (#170055)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-08 11:57:37 +02:00
Rob Treacy
70e18fc196 Fix WiZ Light config flow timeout by properly closing UDP connections (#168456) 2026-05-08 10:35:13 +02:00
TheJulianJES
526ddc4770 Fix Z-Wave discovery crash with unknown node firmware version (#170090) 2026-05-08 10:21:39 +02:00
Mick Vleeshouwer
5f6bd9b6a7 Fix sensors getting wrong unit from MeasuredValueType attribute in Overkiz (#170088) 2026-05-08 10:15:20 +02:00
Maciej Bieniek
9b525bf1cb Use SensorDeviceClass.UPTIME in System Monitor (#170084) 2026-05-08 10:13:15 +02:00
Maciej Bieniek
3bc2c0d097 Use SensorDeviceClass.UPTIME in Unifi (#170087) 2026-05-08 10:12:57 +02:00
Mattie
b5bdff7068 Add water_heater platform to Qube heat pump (#169851) 2026-05-08 10:12:26 +02:00
Erwin Douna
7103b07638 Portainer refactor tests to use enums from pyportainer (#170044) 2026-05-08 09:05:36 +02:00
Mick Vleeshouwer
d52c281826 Fix is_closed state for DynamicGarageDoor in Overkiz (#170052) 2026-05-08 09:04:49 +02:00
Crocmagnon
9fca2f284b data grand lyon: implement reauth (#170059) 2026-05-08 09:04:16 +02:00
dependabot[bot]
f1986d5fc3 Bump github/codeql-action from 4.35.2 to 4.35.3 (#170077) 2026-05-08 08:47:31 +02:00
Thomas Bouron
ce9c83e33c Add fixture for Tuya pool heating pump (#170064) 2026-05-08 07:33:59 +02:00
renovate[bot]
aa98fce92e Update infrared-protocols to 3.2.0 (#170070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-08 06:11:27 +02:00
Robert Resch
b01e56582a Bump deebot-client to 18.3.0 (#170066) 2026-05-08 01:43:54 +02:00
Mick Vleeshouwer
9be078475d Bump pyOverkiz to 1.20.3 (#170060) 2026-05-08 01:23:43 +02:00
Ronald van der Meer
9174ae4e00 Bump python-duco-client to 0.5.0 (#170065) 2026-05-08 01:10:50 +02:00
th3spis
d4aa1b53f2 Added wfsens as a occupancy source in wiz (#166799)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-08 00:06:23 +02:00
mayerwin
ba29f210c2 Translate switchbot_cloud library errors to HomeAssistantError (#169715)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-08 00:01:49 +02:00
Joost Lekkerkerker
845572927c Fix CI (#170061) 2026-05-07 22:51:44 +01:00
MoonDevLT
9cd7ac2722 Add sensor entity to lunatone integration (#167873)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-07 23:34:48 +02:00
Muhammad Ihsan
a7fd763570 Add Cielo Home integration (#158511)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Owais Amin <141307092+owais-cielo@users.noreply.github.com>
Co-authored-by: Owais Amin <owais@cielowigle.com>
Co-authored-by: Maria Nadeem <maria@cielowigle.com>
2026-05-07 23:12:19 +02:00
theobld-ww
65491372c2 Bump visionpluspython 1.0.2 to 1.1.0 (#169842)
Co-authored-by: Joostlek <joostlek@outlook.com>
2026-05-07 22:41:16 +02:00
Mattie
de96ee44e5 Add switch platform to Qube heat pump (#169407) 2026-05-07 22:40:37 +02:00
Crocmagnon
6edcf5722e Add Data Grand Lyon integration (#167946)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 22:12:57 +02:00
Jeef
e6acebb322 Fix IntelliFire setup recovery (#169739) 2026-05-07 21:55:17 +02:00
Christian Lackas
277daf2dba vicare: migrate to OAuth2 with application credentials (#165621)
Co-authored-by: home-assistant[bot] <78085893+home-assistant[bot]@users.noreply.github.com>
2026-05-07 21:23:46 +02:00
Paulus Schoutsen
1b935314f8 Represent ThinQ hoods as fans instead of number entities (#159601)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2026-05-07 21:17:01 +02:00
G Johansson
cad5c9e8fa Remove advanced mode from dnsip (#170040) 2026-05-07 21:03:15 +02:00
Midori Kochiya
f7201f1910 Bump xiaomi-ble to 1.11.0 (#170018) 2026-05-07 19:34:12 +01:00
Glenn Waters
c406e1aeed ElkM1 integration: Add time entity for settings (#170035) 2026-05-07 20:17:42 +02:00
G Johansson
946a3bcf11 Add missing areas in Nord Pool services (#169752) 2026-05-07 20:10:02 +02:00
Erwin Douna
2c8d9c7207 Add disk space coordinator for Portainer (#165855) 2026-05-07 20:05:29 +02:00
Michael
db25f1911e Proper handling of malformed data during FRITZ!Box Tools setup (#170030) 2026-05-07 19:59:06 +02:00
Yevhenii Vaskivskyi
7e2fa90773 Remove Advanced mode from asuswrt (#170029) 2026-05-07 19:54:12 +02:00
Felipe Santos
ef83ccc423 Allow selecting input source on SmartThings TVs (#160034)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2026-05-07 18:53:38 +01:00
Ronald van der Meer
046b48df43 Bump python-duco-client to 0.4.2 (#170027) 2026-05-07 19:51:54 +02:00
epenet
66cd719f85 Fix KeyError in hydrawise (#169853) 2026-05-07 18:50:29 +01:00
renovate[bot]
b0c2e57649 Update infrared-protocols to 3.1.0 (#169968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: abmantis <amfcalt@gmail.com>
2026-05-07 18:26:33 +01:00
Glenn Waters
cb92fa27ba Add number entity to ElkM1 integration (#169861) 2026-05-07 17:39:30 +02:00
Erik Montnemery
c3f8f6f310 Use modern API in condition tests (#170002) 2026-05-07 17:33:00 +02:00
Tomasz Dylewski
a82205fed7 Added PAJ GPS integration (#165070)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-07 17:04:19 +02:00
epenet
776fd69e39 Use SensorDeviceClass.ENUM in Tuya sensors (#169987) 2026-05-07 17:02:31 +02:00
Christian Lackas
2863b59be4 Bump homematicip to 2.11.0 (#170005) 2026-05-07 16:58:13 +02:00
epenet
676e9c7f29 Migrate Cast to use runtime_data (#168856)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:57:29 +02:00
Petro31
05c3c058d6 Remove legacy alarm control panel template entities (#169608)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-07 15:54:59 +02:00
Petro31
fd93f24208 Remove legacy binary sensor template entities (#169610) 2026-05-07 15:52:43 +02:00
Petro31
544b21f014 Remove legacy cover template entities (#169611) 2026-05-07 15:51:41 +02:00
Petro31
8d30abab9e Remove legacy fan template entities (#169613) 2026-05-07 15:51:08 +02:00
Petro31
ee19c11565 Remove legacy lock template entities (#169725) 2026-05-07 15:50:22 +02:00
Heikki Henriksen
c26eb2374d prusalink: add X/Y axis, location, and min extrusion temp sensors (#169312)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 15:39:07 +02:00
Kamil Breguła
59bc46a9d2 Fix Tuya siren entity naming to avoid incorrect main entity assignment (#170008)
Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2026-05-07 15:24:37 +02:00
Petro31
ab668ac576 Remove legacy sensor template entities (#169728) 2026-05-07 15:22:22 +02:00
Petro31
c4836600c4 Remove legacy vacuum template entities (#169732) 2026-05-07 15:18:45 +02:00
Petro31
f4e0349825 Remove legacy light template entities (#169615) 2026-05-07 15:00:39 +02:00
Petro31
4d578b6c98 Remove legacy switch template entities (#169730) 2026-05-07 14:58:27 +02:00
chiro79
741779efd7 Remove name field from pvpc_hourly_pricing config flow #168955 (#169998) 2026-05-07 14:34:31 +02:00
Erik Montnemery
eb1babedfd Improve condition docstrings (#170000)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-07 14:33:37 +02:00
Aidan Timson
de0d24e91c Add default icon translations for lg_infrared (#170004) 2026-05-07 14:21:11 +02:00
Jan Bouwhuis
0de23f2636 Remove not used None defaults on MQTT publish API (#169936) 2026-05-07 13:53:29 +02:00
Ronald van der Meer
ff69557b17 Bump python-duco-client to 0.4.1 (#169991) 2026-05-07 13:26:22 +02:00
G Johansson
3b93ccc7ba Fix double reloading in unifi (#155147)
Co-authored-by: Copilot <copilot@github.com>
2026-05-07 13:09:30 +02:00
G Johansson
f886b60e2c Deprecate use of config entry listener with reloading methods in config entries (#169198)
Co-authored-by: Copilot <copilot@github.com>
2026-05-07 11:51:24 +02:00
Marc Mueller
d0f126f945 Update mypy to 2.0 (#169960) 2026-05-07 11:41:48 +02:00
epenet
ce5f2330eb Read Tuya device info from quirk (#169888) 2026-05-07 11:28:11 +02:00
Erik Montnemery
427758ef15 Filter excluded states in entity trigger base class (#169956) 2026-05-07 10:30:33 +02:00
Daniel Hjelseth Høyer
c2ce313ec8 Bump pyTibber to 0.37.5 (#169981)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2026-05-07 09:41:08 +02:00
Zoltán Farkasdi
b8ba1c123d netatmo: add doortag direct category fetch (#169711)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2026-05-07 09:18:39 +02:00
Daniel Hjelseth Høyer
10f1cbb51e Migrate mill to use entry.runtime_data (#169948)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2026-05-07 09:15:21 +02:00
Christian Lackas
e3bcce06bf Bump PyViCare to 2.60.2 (#169918)
Co-authored-by: home-assistant[bot] <78085893+home-assistant[bot]@users.noreply.github.com>
2026-05-07 08:30:41 +02:00
Kamil Breguła
4e0472feb5 Add fixture for Tuya camera (knkaf1d0dytgyhix) (#169967)
Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com>
2026-05-07 07:33:28 +02:00
Jan Bouwhuis
046298f2ca No need for a local import of the paho mqtt client (#169925) 2026-05-06 22:45:36 +02:00
Jan Bouwhuis
c92128b282 Remove advanced setting dependency for IMAP integration (#169827) 2026-05-06 22:37:27 +02:00
Christian Lackas
886e66e7e3 Bump homematicip to 2.10.0 (#169950) 2026-05-06 22:20:16 +02:00
Erik Montnemery
7da49570b5 Add support for options to todo triggers (#169947) 2026-05-06 22:16:55 +02:00
G Johansson
b8baa3271b Bump holidays to 0.96 (#169939) 2026-05-06 22:08:38 +02:00
Erik Montnemery
65bc4bf1d0 Add missing trigger and condition tests (#169945) 2026-05-06 21:53:40 +02:00
Erik Montnemery
27a8d185c9 Add StatelessEntityTriggerBase base class (#169937) 2026-05-06 21:43:29 +02:00
Andriy Kushnir
1e5992f2b5 Remove myself as codeowner for roomba (#169922) 2026-05-06 20:33:15 +02:00
puddly
ac84a14846 Bump serialx to 1.7.1 (#169928) 2026-05-06 21:04:13 +03:00
Robert Resch
fa265b18ce Shorten docker publish job name (#169926) 2026-05-06 18:12:13 +02:00
Stefan Agner
38634ddd55 Fix hassio auth IndexError on Supervisor Unix socket requests (#169911) 2026-05-06 17:48:35 +02:00
Joakim Plate
13dd831874 Update gardena ble to 2.8.1 (#169914) 2026-05-06 16:25:37 +02:00
Tom Wilkie
3be5906398 Register Hive Hub MAC address as device connection (#169040)
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
2026-05-06 16:12:59 +02:00
Erik Montnemery
cef918d6f8 Remove _get_tracked_value method from EntityConditionBase (#169906) 2026-05-06 14:59:57 +02:00
Jan Bouwhuis
19aa1b6578 Remove advanced options dependency from MQTT integration (#169833) 2026-05-06 14:52:07 +02:00
Daniel Hjelseth Høyer
b0eb69936e Bump pyTibber to 0.37.4 (#169907) 2026-05-06 14:47:10 +02:00
Erik Montnemery
b6096a71d1 Exclude incompatible humidifier entities from humidifier automations (#169905) 2026-05-06 14:44:30 +02:00
Erik Montnemery
059d7011ba Exclude incompatible water_heater entities from water_heater automations (#169904) 2026-05-06 14:44:19 +02:00
epenet
bbe00ef79e De-duplicate code to build Tuya device info (#169899) 2026-05-06 14:29:47 +02:00
Erik Montnemery
7f447abc3a Exclude incompatible climate entities from climate automations (#169903) 2026-05-06 14:18:14 +02:00
Erik Montnemery
923e099467 Unload scripts and conditions created by template entities (#169366) 2026-05-06 14:11:37 +02:00
Erik Montnemery
26714c6d9f Add media_player volume condition (#169897) 2026-05-06 13:15:01 +02:00
Erik Montnemery
5f1201dbbe Exclude incompatible entities from temperature automations (#169901) 2026-05-06 13:10:53 +02:00
Erik Montnemery
52e1d9443c Exclude incompatible entities from humidity automations (#169898) 2026-05-06 13:10:24 +02:00
Manu
824f5205e9 Record notification from legacy notify action in Mobile App (#169749) 2026-05-06 12:57:57 +02:00
Erik Montnemery
cf8bc55add Add media_player muted conditions (#169892) 2026-05-06 12:38:05 +02:00
Bram Kragten
1e9244f4fc Update frontend to 20260429.3 (#169893) 2026-05-06 12:19:24 +02:00
Tom Matheussen
be4f4928d5 Bump satel_integra to 1.3.1 (#169889) 2026-05-06 11:27:14 +02:00
Erik Montnemery
80f6f8ee31 Improve entity trigger tests (#169881) 2026-05-06 10:48:36 +02:00
Erik Montnemery
267d52491a Add media_player volume triggers (#169885) 2026-05-06 10:48:10 +02:00
Ludovic BOUÉ
ee84d625cd Expose SET_SPEED for all fans via PercentSetting in Matter (#169696)
Co-authored-by: Ludovic BOUÉ <132135057+lboue@users.noreply.github.com>
2026-05-06 10:16:31 +02:00
dependabot[bot]
5d091d25d5 Bump j178/prek-action from 2.0.2 to 2.0.3 (#169882) 2026-05-06 09:50:18 +02:00
Erik Montnemery
97b5f1cf64 Add method _should_include to EntityConditionBase (#169884)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-06 09:49:22 +02:00
Zoltán Farkasdi
d89bcd83d9 netatmo: bump pyatmo v9.4.0 (#169735)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2026-05-06 09:16:22 +02:00
Joost Lekkerkerker
073b20c4b2 Fix Zinvolt select options (#169886) 2026-05-06 09:09:24 +02:00
epenet
2af9405750 Cleanup unused code in Tuya util (#169883) 2026-05-06 08:42:05 +02:00
Erik Montnemery
10084c8c0c Add trigger timer.time_remaining (#169763) 2026-05-05 23:54:49 -04:00
Erik Montnemery
7e8f5365ce Add method _should_include to EntityTriggerBase (#169837) 2026-05-06 00:50:22 +02:00
Erik Montnemery
65f9dcd7bf Improve condition test helper docstrings (#169871) 2026-05-06 00:32:37 +02:00
epenet
4c8f37fef6 Bump tuya-device-handlers to 0.0.19 (#169848) 2026-05-05 22:23:14 +02:00
Erik Montnemery
d1295fa260 Validate yaml matches implementation in automation options_supported tests (#169798) 2026-05-05 22:20:28 +02:00
Diogo Gomes
9b2eea920f Add V2C LED lights (#169778)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 22:19:59 +02:00
Petro31
c81c1cbb14 Remove legacy weather template entities (#169734) 2026-05-05 22:18:46 +02:00
Erik Montnemery
11ee05874a Improve trigger test helper docstrings (#169869) 2026-05-05 22:11:08 +02:00
puddly
7d7c47b56e Bump serialx to 1.7.0 (#169867) 2026-05-05 21:06:30 +02:00
epenet
dc4210595f Fix flaky test_set_scan_interval_via_platform (#169856)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:49:15 +02:00
Freekers
7430366d9b Enable web search support for gpt-5-nano (#169710) 2026-05-05 20:47:52 +03:00
Crocmagnon
ae3bd54ca7 switchbot: remove unwanted future annotations import preventing build on all new PRs (#169863) 2026-05-05 19:40:27 +02:00
Glenn Waters
e3ce7fb000 Bump elkm1-lib to 2.2.15 (#169843)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 18:50:17 +02:00
epenet
9286b517d3 Add ruff rule to prevent __future__ annotations (#169852)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 18:42:10 +02:00
elgris
4d62e4765d Add a number entity to set display time offset (in minutes) for Switchbot Meter CO2 devices. (#169603)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 17:45:47 +02:00
Michael Hansen
ea55ef90a6 Bump intents to 2026.5.5 (#169855) 2026-05-05 18:22:22 +03:00
epenet
751765b97b Cleanup from __future__ import annotations (#169850) 2026-05-05 16:35:21 +02:00
Denis Shulyaka
11ed1fe20f Return the requested format for OpenAI TTS (#169839)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 10:28:20 -04:00
Joost Lekkerkerker
9b5166769a Add Sensereo matter brand (#169836) 2026-05-05 10:18:01 -04:00
Joost Lekkerkerker
70c2a323ce Add Zunzunbee Zigbee brand (#169838) 2026-05-05 10:17:49 -04:00
Ronald van der Meer
0ec5d6b273 Add API version to Duco diagnostics for support triage (#169802) 2026-05-05 15:48:43 +02:00
Robert Resch
b1e8dc2ebb Remove show_advanced_options in Ecovacs and always show all options (#169831) 2026-05-05 15:42:08 +02:00
Artur Pragacz
e144804d28 Fix async_unload teardown race in scripts (#169562) 2026-05-05 15:03:37 +02:00
cengelen
8521a49986 Bump growatt server to 2.1.0 (#169495)
Co-authored-by: Copilot <copilot@github.com>
2026-05-05 14:11:50 +02:00
Raj Laud
3587f9613f Bump victron-ble-ha-parser to 0.7.0 (#169736)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-05 13:57:19 +02:00
Jan Bouwhuis
2f1dd3a817 Deprecate MQTT protocol versions 3.x and migrate to version 5 (#169759)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-05 13:43:18 +02:00
wollew
2c2e8db19f Remove deprecated reboot service for Velux gateway (#169796) 2026-05-05 11:08:00 +02:00
Erik Montnemery
64a3f91132 Improve template reload (#169480) 2026-05-05 10:16:22 +02:00
dependabot[bot]
bd61c893e4 Bump dawidd6/action-download-artifact from 20 to 21 (#169793)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-05 10:12:07 +02:00
renovate[bot]
6bb759b887 Update infrared-protocols to 2.1.0 (#169785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 10:11:52 +02:00
Matthias Alphart
280b5ef388 Update xknxproject to 3.9.0 (#169775) 2026-05-05 10:09:24 +02:00
Erik Montnemery
416d4e02a0 Add trigger media_player.unmuted (#169797) 2026-05-05 09:45:45 +02:00
kw6423
c99f261a2d Restore OwnTracks custom device tracker attributes (#169753)
Co-authored-by: Ariel Ebersberger <ariel@ebersberger.io>
2026-05-05 09:44:53 +02:00
Thomas D
9c9a058eb0 Add missing initialization charging power status option to Volvo (#169727) 2026-05-05 09:10:13 +02:00
Nathan Spencer
7b51b929ef Bump pylitterbot to 2025.4.0 (#169652) 2026-05-05 09:05:16 +02:00
Ronald van der Meer
74971ebcd1 Bump python-duco-client to 0.4.0 (#169776) 2026-05-05 08:55:22 +02:00
Åke Strandberg
1f5d80ca44 Add missing code for miele washing machine (#169795) 2026-05-05 08:54:12 +02:00
Erik Montnemery
9075c6a5cb Add trigger media_player.muted (#156736) 2026-05-05 08:22:03 +02:00
Manu
ab4162601f Remove YAML import from Duck DNS integration (#169769) 2026-05-05 07:45:40 +02:00
HoffmanEl
38de48ac9d Add data_description to airnow config flow strings (#169783) 2026-05-05 07:43:18 +02:00
Nikolai Rahimi
597d9a2ada Add Mitsubishi Comfort integration (#167472)
Co-authored-by: Nikolai Rahimi <nikolairahimi@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2026-05-05 00:16:00 +02:00
optimusbasti
71494b6c97 Bump aioautomower to 2.7.5 (#169758) 2026-05-04 22:27:46 +01:00
A. Gideonse
57e66baf53 Update Indevolt integration quality scale to silver (#167843)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-04 23:05:11 +02:00
Nathan Spencer
63dfc97346 Limit power status binary sensor to non-LR5 devices (#169659) 2026-05-04 22:51:17 +02:00
shbatm
1b4a7d55c0 Add precipitation device class to WeatherFlow Cloud accumulation sensors (#169638)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 22:29:12 +02:00
Matthew Gibson
8c8a863867 Add ptdevices Integration (#156307)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2026-05-04 22:15:52 +02:00
Keilin Bickar
28d65e987c bump sense-energy to 0.14.1 (#169761) 2026-05-04 21:22:45 +02:00
Daniel Hjelseth Høyer
d0c0f02311 Bump pyTibber to 0.37.3 (#169762) 2026-05-04 21:21:57 +02:00
kernelpanic85
f90e9ceb6c Add Celsius and Fahrenheit to Smartthings UNITS mapping (#169686) 2026-05-04 21:20:04 +02:00
G Johansson
553ba5e7ab Add binary sensor to Nord Pool (#169684) 2026-05-04 21:10:06 +02:00
Erwin Douna
6633f16d13 Add system health to Portainer (#169698) 2026-05-04 21:07:16 +02:00
Kamil Breguła
1beeecdf04 Use SensorDeviceClass.UPTIME in WLED (#169708)
Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com>
2026-05-04 21:02:15 +02:00
G Johansson
6319b3b4ef Raise repairs on platform setup for command_line (#153565)
Co-authored-by: Copilot <copilot@github.com>
2026-05-04 20:59:28 +02:00
Steve Syrell
2ed550c2c9 Bump Insteon-panel to 0.6.2 (#169757) 2026-05-04 20:55:41 +02:00
Mike Degatano
6f28902a4f Refactor hassio coordinators to use typed dataclasses instead of dicts (#168847)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-04 20:24:33 +02:00
optimusbasti
fcd23353f2 Add set_cover_position_and_tilt service to Overkiz (#169275)
Co-authored-by: optimusbasti <optimusbasti@users.noreply.github.com>
Co-authored-by: ThomasCZ <noreply@users.github.com>
2026-05-04 20:23:26 +02:00
Leonardo Rivera
2846dcc035 Add delete service action to OneDrive integration (#168064)
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-04 20:17:41 +02:00
Christian Lackas
5858db1cda Use all_devices in ViCare diagnostics for completeness (#169429) 2026-05-04 19:56:36 +02:00
Diogo Gomes
1140d52735 Bump pytrydan to 1.0.0 (#169742) 2026-05-04 19:39:46 +02:00
G Johansson
664354c4fe Fix config flow validation in Nord Pool (#169751) 2026-05-04 19:34:17 +02:00
Petro31
dfb8c7edb8 Fix uptime template sensor (#169743) 2026-05-04 18:09:46 +01:00
Cristoforo Cervino
c22edbec30 Add opening/closing state icons to valve domain (#169644) 2026-05-04 18:42:21 +02:00
kw6423
86415c1906 OwnTracks: expose message tst as update_timestamp in device_tracker attribute (#165203)
Co-authored-by: Ariel Ebersberger <31776703+justanotherariel@users.noreply.github.com>
2026-05-04 18:35:18 +02:00
Paul Bottein
e4f8d1ac64 Update frontend to 20260429.2 (#169748) 2026-05-04 12:22:51 -04:00
Tom
3f97230c25 Improve ProxmoxVE config flow preparing bug fixing (#169682)
Co-authored-by: Erwin Douna <e.douna@gmail.com>
2026-05-04 17:20:25 +02:00
Simone Chemelli
14aa87f026 Bump pyuptimerobot to 25.0.0 (#169572) 2026-05-04 16:13:55 +01:00
Erik Montnemery
2521f6d825 Adjust mobile_app unknown location test (#169746) 2026-05-04 16:54:24 +02:00
Phil-Rad
c80677f86e Add data_description blocks to dnsip strings (#169744) 2026-05-04 16:47:30 +02:00
Erik Montnemery
a421a8ab9c Add ExtraStoredData container for mobile_app device_tracker (#169731) 2026-05-04 16:36:03 +02:00
bkobus-bbx
bfb85949ff Remove stateclass from blebox powerConsumption sensor (#169435) 2026-05-04 16:26:52 +02:00
Manu
960855eb58 Bump bring-api to 1.1.2 (#169729) 2026-05-04 15:49:53 +02:00
Mike O'Driscoll
395341b9a7 Casper Glow: bump quality to platinum (#167519) 2026-05-04 15:47:01 +02:00
Michael
c80e421492 Fix detection of CPU temperature sensor support on olde FRITZ!Box models (#169620) 2026-05-04 14:38:39 +01:00
Allen Porter
05c006038f Update Nest doorbell event to use standard DoorbellEventType.RING (#169691) 2026-05-04 14:34:16 +01:00
HoffmanEl
d1b2f69713 Add reconfiguration flow to actron_air integration (#169712)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-04 15:32:00 +02:00
Thomas D
bff4aef233 Ignore location FORBIDDEN response for the Volvo integration (#169713) 2026-05-04 15:31:34 +02:00
Khole
88c716901a Check device registration before completing Hive reauth flow (#168035)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Erwin Douna <e.douna@gmail.com>
2026-05-04 15:05:42 +02:00
Marcello
fa7ecddb66 Improve availability in Fluss (#168154)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-04 14:59:05 +02:00
A. Gideonse
db2dfbbc41 Refactored generation variable for indevolt (#169396) 2026-05-04 13:53:02 +01:00
Erik Montnemery
bfcf663784 Improve mobile_app device tracker tests (#169724) 2026-05-04 13:49:33 +02:00
A. Gideonse
a54b188789 Refactor exceptions to align on library (#169622)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-04 08:42:29 +02:00
Colin
9bea2d149a openevse: Add reathentication flow (#169632) 2026-05-04 08:38:31 +02:00
Matthieu Bauny
77bd6a720d Fix mode description typo in homekit/strings.json (#169605) 2026-05-03 18:29:00 -05:00
Manu
967c374a48 Change uptime sensor to SensorDeviceClass.UPTIME in IronOS integration (#169699) 2026-05-03 22:45:21 +02:00
Midori Kochiya
c1c62e6313 Fix M1S-T500 update error (#169651) 2026-05-03 19:00:51 +02:00
karwosts
744e8ae324 Use uptime device_class for Uptime sensor (#169692) 2026-05-03 18:58:53 +02:00
shbatm
11969c69fa Bump pyisy to 3.5.1 (#169663)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 14:20:02 +02:00
Ronald van der Meer
4c5f09a3e0 Bump python-duco-client to 0.3.10 (#169677) 2026-05-03 10:39:09 +02:00
OMEGA_RAZER
c2f783ed76 Updated prowlpy to 1.1.5 (#169671) 2026-05-03 09:56:23 +02:00
Tom Matheussen
a4f16eb68d Bump satel_integra to 1.3.0 (#169668) 2026-05-02 23:56:42 +02:00
SeifEddineMezned
98b28ebb85 Fix grammar in mqtt/strings.json: "Minimal one" → "At least one" (#169666) 2026-05-02 22:08:19 +02:00
Andres Ruiz
849bc03728 Fix race condition in waterfurnace login_credential_error test (#169645) 2026-05-02 14:07:54 +02:00
Andres Ruiz
b3e1674852 Catch additional errors as potentially retryable errors during energy data updates (#169646) 2026-05-02 13:52:14 +02:00
jftkcs
4ecd47f533 Fix reasoning summary handling for OpenAI o-models (#168093)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Denis Shulyaka <Shulyaka@gmail.com>
2026-05-02 12:02:51 +03:00
Michael
400f75739f Pass None config entry to schluter coordinator (#169621) 2026-05-02 00:32:30 +02:00
Marc Mueller
01c4ce4278 Improve uv cache save (#169612) 2026-05-02 00:31:50 +02:00
A. Gideonse
73f4be8bb1 Bump indevolt-api to 1.7.1 (#169623) 2026-05-02 00:21:26 +02:00
Dan Raper
d177d55cb8 Add state of charge input number to Ohme (#169557) 2026-05-02 00:11:41 +02:00
SeifEddineMezned
f5031692e8 Add PARALLEL_UPDATES to goodwe sensor platform (#169624) 2026-05-01 23:57:40 +02:00
Raman Gupta
85aa229149 Bump zwave-js-server-python to 0.70.0 (#169578) 2026-05-01 20:26:34 +02:00
Petro31
d35dc0e67b Change vacuum template config names for clean area (#169599)
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
2026-05-01 19:33:12 +02:00
Øyvind Matheson Wergeland
866b8ce2ca Surface IP-vs-serial connection failures as distinct errors in nobo_hub (#169575) 2026-05-01 15:24:34 +02:00
Ronald van der Meer
294ee9f0cd Fix Duco unknown node type not re-evaluated after becoming known (#169579) 2026-05-01 11:23:50 +02:00
Jan-Philipp Benecke
3f22b65e94 Decrease WebDAV client timeout (#169591) 2026-05-01 10:18:28 +02:00
Boris Bolshem
0958f81578 Fix KeyError in telegram_bot media group download debug log (#169519) 2026-05-01 08:36:41 +02:00
tronikos
1ad931745d Bump opower to 0.18.2 (#169588) 2026-05-01 08:32:06 +02:00
Manu
23f088308e Bump pythonkuma to 0.5.1 (#169587) 2026-05-01 08:31:17 +02:00
Paul Bottein
923bd160ef Update frontend to 20260429.1 (#169565) 2026-04-30 23:34:27 -04:00
SeifEddineMezned
1828931593 Fix possessive apostrophe errors in mqtt/strings.json (#169576)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2026-05-01 00:04:03 +02:00
SeifEddineMezned
b52aaa737e Fix grammar and clarity in samsungtv/strings.json (#169574) 2026-04-30 23:52:36 +02:00
Simon Bach
22239f9bbe Fix Proxmox VE config flow failing when cluster has offline nodes (#169108)
Co-authored-by: Erwin Douna <e.douna@gmail.com>
2026-04-30 23:25:36 +02:00
Shay Levy
276d3ed5b8 Bump aioshelly to 13.25.0 (#169569) 2026-04-30 22:58:17 +03:00
epenet
d766aae436 Remove import annotations from components (#169536)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: frenck <195327+frenck@users.noreply.github.com>
2026-04-30 21:14:48 +02:00
epenet
9b1977e02c Remove import annotations from script (#169548) 2026-04-30 20:39:12 +02:00
epenet
7169d52010 Remove import annotations from core (#169547) 2026-04-30 20:34:43 +02:00
epenet
9224856919 Fix flaky dsmr tests broken by Python 3.14.3 asyncio changes (#169431) 2026-04-30 20:33:43 +02:00
epenet
27c76f130e Fix stream recorder losing recording when worker exits very fast (#169530)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 20:31:05 +02:00
epenet
3f7070fd54 Fix flaky Switchbot keypad vision doorbell event test (#169504)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 20:30:44 +02:00
epenet
3fcd087dee Fix venstar YAML import skipping additional devices (#169544)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 20:26:02 +02:00
Jeef
4321c279d6 Bump weatherflow4py to 1.5.4 (#168994) 2026-04-30 19:17:07 +01:00
Raphael Hehl
85c0780199 Add alarm profile select entity to UniFi Protect (#169403)
Co-authored-by: RaHehl <rahehl@users.noreply.github.com>
2026-04-30 20:14:33 +02:00
Dan Raper
175a12852e Bump ohme to 1.9.0 (#169556) 2026-04-30 18:51:28 +02:00
Øyvind Matheson Wergeland
6c08950995 Drop auto_discovered config in nobo_hub (#169558) 2026-04-30 18:29:13 +02:00
Tomer
b57e2814a7 Victron GX: Bug fix: parent device is mapped to the wrong device (#169525)
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 18:13:59 +02:00
Erik Montnemery
05eeb6a1bc Enable duration support in all entity conditions (#169532)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: frenck <195327+frenck@users.noreply.github.com>
2026-04-30 18:13:06 +02:00
epenet
f8c608dc69 Remove import annotations from generated files (#169549) 2026-04-30 18:10:14 +02:00
Simone Chemelli
090ef8d82b Fix uptime sensor for Synology DSM (#169512) 2026-04-30 18:10:02 +02:00
Guido Schmitz
6f081ed967 Change MAC adresses in devolo Home Network tests (#169555) 2026-04-30 17:59:17 +02:00
Robert Resch
a4527390a4 Optimize uv cache (#169554)
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 17:58:38 +02:00
Abílio Costa
84b2f952be Use the correct schema for triggers/conditions "for" option (#169539) 2026-04-30 16:52:49 +02:00
Robert Resch
b0e18e432e Use HassKey for webhook data (#169360)
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 12:44:54 +02:00
epenet
13d285298c Fix flaky switcher_kis reauth_successful config flow test (#169545) 2026-04-30 12:39:12 +02:00
bkobus-bbx
44742a970b fix: incorrect position inversion for blebox gateBox cover (#168893) 2026-04-30 12:08:14 +02:00
Ronald van der Meer
fd34aa0de8 Add target flow level and mode end time sensors to Duco integration (#169298) 2026-04-30 12:06:40 +02:00
A. Gideonse
fd6cf11dda Add indevolt battery temp sensors for Gen-1 devices (#169404) 2026-04-30 12:05:58 +02:00
Abílio Costa
6fe0409dc2 Add AI instructions for common pitfalls found on PRs (#169488) 2026-04-30 10:48:42 +01:00
epenet
01784efa89 Remove future annotations import from backup integration (#169542)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 11:38:49 +02:00
Robert Resch
49c3a73102 Remove useless execution script.gen_requirements_all in ci (#169543) 2026-04-30 11:31:03 +02:00
epenet
793b84034b Remove future annotations import from wemo (#169540) 2026-04-30 10:59:29 +02:00
Jan Čermák
6fbff94af8 Remove redundant variable assignment in rapt_ble init (#169538) 2026-04-30 10:52:23 +02:00
Tomer
764075f917 Victron GX: bug fix for missing translation key (#168461)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-30 10:47:34 +02:00
Manu
09817aff8e Fix: Migrate also device entries to subentry in GitHub integration (#169523) 2026-04-30 10:46:09 +02:00
bkobus-bbx
44e14136d7 Bump blebox_uniapi to 2.5.2 (#169534) 2026-04-30 10:44:58 +02:00
Matthias Alphart
a1802f4072 Update knx-frontend to 2026.4.30.60856 (#169529) 2026-04-30 10:35:00 +02:00
epenet
88525955ce Remove import annotations from tests (#169527) 2026-04-30 09:30:46 +02:00
Tom
2d87280ea8 Bump airOS for additional device support (#169502) 2026-04-30 09:25:47 +02:00
epenet
92897b92bd Update AI instructions for Python 3.14 forward references (#169524)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-30 09:21:00 +02:00
Ariel Ebersberger
a24e3bc703 Fix flaky wyoming test (#169510) 2026-04-30 07:56:32 +02:00
Christian Lackas
3ed0d8a1d5 Bump homematicip to 2.9.0 (#169499) 2026-04-29 23:31:26 +02:00
epenet
fe577eaa1f Remove deprecated alias in Tuya definitions (#169505) 2026-04-29 22:54:05 +02:00
TheJulianJES
62232a8bff Re-interview ZHA device on websocket reconfigure (#169483) 2026-04-29 22:27:09 +02:00
Robert Resch
269ec1e5ac Bump base image to 2026.04.0 with Python 3.14.4, use 3.14.4 in CI (#169444)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2026-04-29 22:01:01 +02:00
Simone Chemelli
9c7ac4d608 Storage problem management for Comelit Serial Bridge (#169297) 2026-04-29 21:48:03 +02:00
Erik Montnemery
d888d17ef6 Correct wake_on_lan entity behavior when entity_id changes (#169486)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-29 20:33:50 +02:00
Franck Nijhof
3725e498ff Add switch platform to Fumis integration (#169096)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: frenck <195327+frenck@users.noreply.github.com>
2026-04-29 19:50:48 +02:00
Jan Čermák
dba17323a7 Migrate rapt_ble to use entry.runtime_data (#169487) 2026-04-29 19:45:30 +02:00
Yuval Weiss
ee88b6ac0d Add Broadlink infrared emitter support (#168889) 2026-04-29 17:50:52 +01:00
Kurt Chrisford
a7a2387a2e Implement current setpoint method in actron air integration (#169358) 2026-04-29 18:33:18 +02:00
Franck Nijhof
9442790fba Bump version to 2026.6.0dev0 (#169482) 2026-04-29 18:32:16 +02:00
Abílio Costa
da1889d312 Add AI instruction on async_added_to_hass/async_will_remove_from_hass (#169481) 2026-04-29 18:18:11 +02:00
Franck Nijhof
f79f386044 Upgrade Tailwind quality scale to platinum (#169318)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: frenck <195327+frenck@users.noreply.github.com>
2026-04-29 18:16:16 +02:00
Erik Montnemery
4b28928702 Remove scripts from DATA_SCRIPTS on unload (#169415) 2026-04-29 18:09:49 +02:00
A. Gideonse
859ce55c96 Bump indevolt-api to 1.6.5 (#169406) 2026-04-29 16:57:53 +01:00
MohamedBarrak3
9a9f19cb9e Fix Schlage add_code service failing when code is passed as integer (#168399)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2026-04-29 17:42:16 +02:00
Heikki Henriksen
d8b1bfb268 prusalink: populate serial number and firmware version in device info (#169309)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 17:38:32 +02:00
7863 changed files with 51302 additions and 23261 deletions

View File

@@ -15,11 +15,15 @@ description: Everything you need to know to build, test and review Home Assistan
- For entity actions and entity services, avoid requesting redundant defensive checks for fields already enforced by Home Assistant validation schemas and entity filters; only request extra guards when values bypass validation or are transformed unsafely.
- When validation guarantees a key is present, prefer direct dictionary indexing (`data["key"]`) over `.get("key")` so invalid assumptions fail fast.
- Integrations should be thin wrappers. Protocol parsing, device state machines, or other domain logic belong in a separate PyPI library, not in the integration itself. If unsure, ask before inlining.
- Integrations should not implement fixes or workarounds for limitations in libraries. Instead, the library should be updated to fix the issue.
The following platforms have extra guidelines:
- **Diagnostics**: [`platform-diagnostics.md`](platform-diagnostics.md) for diagnostic data collection
- **Repairs**: [`platform-repairs.md`](platform-repairs.md) for user-actionable repair issues
## Entity platforms
- Ensure `async_added_to_hass()` and `async_will_remove_from_hass()` have symmetrical behavior. For example, if a subscription is created in `async_added_to_hass()`, it should be unsubscribed in `async_will_remove_from_hass()`. Also, if something is torn down in `async_will_remove_from_hass()`, it should be set up in `async_added_to_hass()`.
## Integration Quality Scale

View File

@@ -6,6 +6,7 @@
- Start review comments with a short, one-sentence summary of the suggested fix.
- Do not comment on code style, formatting or linting issues.
- A Pull Request with a dependency version bump should only contain changes required for the version bump. If the PR includes other changes, request that they are removed from the PR.
# GitHub Copilot & Claude Code Instructions
@@ -21,16 +22,20 @@ This repository contains the core of Home Assistant, a Python 3 based home autom
## Python Syntax Notes
- Python 3.14 explicitly allows `except TypeA, TypeB:` without parentheses. Never flag this as an issue since Home Assistant officially supports Python 3.14.
- Home Assistant officially supports Python 3.14 as its minimum version. Do not flag syntax or features that require Python 3.14 as issues, and do not suggest workarounds for older Python versions.
- Python 3.14 explicitly allows `except TypeA, TypeB:` without parentheses. Never flag this as an issue.
- Python 3.14 evaluates annotations lazily (PEP 649). Forward references in annotations do not need to be quoted — annotations can reference names defined later in the module without quoting them or using `from __future__ import annotations`. Do not flag unquoted forward references in annotations as issues.
## Testing
When writing or modifying tests, ensure all test function parameters have type annotations.
Prefer concrete types (for example, `HomeAssistant`, `MockConfigEntry`, etc.) over `Any`.
- When writing or modifying tests, ensure all test function parameters have type annotations.
- Prefer concrete types (for example, `HomeAssistant`, `MockConfigEntry`, etc.) over `Any`.
- Avoid using conditions/branching in tests. Instead, either split tests or adjust the test parametrization to cover all cases without branching.
- If multiple tests share most of their code, use `pytest.mark.parametrize` to merge them into a single parameterized test instead of duplicating the body.
## Good practices
Integrations with Platinum or Gold level in the Integration Quality Scale reflect a high standard of code quality and maintainability. When looking for examples of something, these are good places to start. The level is indicated in the manifest.json of the integration.
When reviewing entity actions, do not suggest extra defensive checks for input fields that are already validated by Home Assistant's service/action schemas and entity selection filters. Suggest additional guards only when data bypasses those validators or is transformed into a less-safe form.
When validation guarantees a dict key exists, prefer direct key access (`data["key"]`) instead of `.get("key")` so contract violations are surfaced instead of silently masked.
- Integrations with Platinum or Gold level in the Integration Quality Scale reflect a high standard of code quality and maintainability. When looking for examples of something, these are good places to start. The level is indicated in the manifest.json of the integration.
- When reviewing entity actions, do not suggest extra defensive checks for input fields that are already validated by Home Assistant's service/action schemas and entity selection filters. Suggest additional guards only when data bypasses those validators or is transformed into a less-safe form.
- When validation guarantees a dict key exists, prefer direct key access (`data["key"]`) instead of `.get("key")` so contract violations are surfaced instead of silently masked.
- Do not add comments that just restate the code on the following line(s) (e.g. `# Check if initialized` above `if self.initialized:`). Comments should only explain why — non-obvious constraints, surprising behavior, or workarounds — never what.

View File

@@ -18,11 +18,15 @@ excludeAgent: "cloud-agent"
- For entity actions and entity services, avoid requesting redundant defensive checks for fields already enforced by Home Assistant validation schemas and entity filters; only request extra guards when values bypass validation or are transformed unsafely.
- When validation guarantees a key is present, prefer direct dictionary indexing (`data["key"]`) over `.get("key")` so invalid assumptions fail fast.
- Integrations should be thin wrappers. Protocol parsing, device state machines, or other domain logic belong in a separate PyPI library, not in the integration itself. If unsure, ask before inlining.
- Integrations should not implement fixes or workarounds for limitations in libraries. Instead, the library should be updated to fix the issue.
The following platforms have extra guidelines:
- **Diagnostics**: [`platform-diagnostics.md`](platform-diagnostics.md) for diagnostic data collection
- **Repairs**: [`platform-repairs.md`](platform-repairs.md) for user-actionable repair issues
## Entity platforms
- Ensure `async_added_to_hass()` and `async_will_remove_from_hass()` have symmetrical behavior. For example, if a subscription is created in `async_added_to_hass()`, it should be unsubscribed in `async_will_remove_from_hass()`. Also, if something is torn down in `async_will_remove_from_hass()`, it should be set up in `async_added_to_hass()`.
## Integration Quality Scale

View File

@@ -14,7 +14,7 @@ env:
UV_HTTP_TIMEOUT: 60
UV_SYSTEM_PYTHON: "true"
# Base image version from https://github.com/home-assistant/docker
BASE_IMAGE_VERSION: "2026.01.0"
BASE_IMAGE_VERSION: "2026.04.0"
ARCHITECTURES: '["amd64", "aarch64"]'
permissions: {}
@@ -108,7 +108,7 @@ jobs:
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/frontend
@@ -119,7 +119,7 @@ jobs:
- name: Download nightly wheels of intents
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: OHF-Voice/intents-package
@@ -323,7 +323,7 @@ jobs:
exclude-list: '["odroid-xu","qemuarm","qemux86","raspberrypi","raspberrypi2","raspberrypi3","raspberrypi4","tinker"]'
publish_container:
name: Publish meta container for ${{ matrix.registry }}
name: Publish to ${{ matrix.registry }}
environment: ${{ needs.init.outputs.channel }}
if: github.repository_owner == 'home-assistant'
needs: ["init", "build_base"]

View File

@@ -38,9 +38,8 @@ on:
env:
CACHE_VERSION: 3
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 1
HA_SHORT_VERSION: "2026.5"
HA_SHORT_VERSION: "2026.6"
ADDITIONAL_PYTHON_VERSIONS: "[]"
# 10.3 is the oldest supported version
# - 10.3.32 is the version currently shipped with Synology (as of 17 Feb 2022)
@@ -282,7 +281,7 @@ jobs:
echo "::add-matcher::.github/workflows/matchers/check-executables-have-shebangs.json"
echo "::add-matcher::.github/workflows/matchers/codespell.json"
- name: Run prek
uses: j178/prek-action@cbc2f23eb5539cf20d82d1aabd0d0ecbcc56f4e3 # v2.0.2
uses: j178/prek-action@6ad80277337ad479fe43bd70701c3f7f8aa74db3 # v2.0.3
env:
PREK_SKIP: no-commit-to-branch,mypy,pylint,gen_requirements_all,hassfest,hassfest-metadata,hassfest-mypy-config,zizmor
RUFF_OUTPUT_FORMAT: github
@@ -303,7 +302,7 @@ jobs:
with:
persist-credentials: false
- name: Run zizmor
uses: j178/prek-action@cbc2f23eb5539cf20d82d1aabd0d0ecbcc56f4e3 # v2.0.2
uses: j178/prek-action@6ad80277337ad479fe43bd70701c3f7f8aa74db3 # v2.0.3
with:
extra-args: --all-files zizmor
@@ -358,12 +357,6 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Generate partial uv restore key
id: generate-uv-key
run: |
uv_version=$(cat requirements.txt | grep uv | cut -d '=' -f 3)
echo "version=${uv_version}" >> $GITHUB_OUTPUT
echo "key=uv-${UV_CACHE_VERSION}-${uv_version}-${HA_SHORT_VERSION}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
@@ -372,19 +365,25 @@ jobs:
key: >-
${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Generate partial uv restore key
if: steps.cache-venv.outputs.cache-hit != 'true'
id: generate-uv-key
env:
RUNNER_OS: ${{ runner.os }}
RUNNER_ARCH: ${{ runner.arch }}
PYTHON_VERSION: ${{ steps.python.outputs.python-version }}
HASH_FILES: ${{ hashFiles('requirements.txt', 'requirements_all.txt', 'requirements_test.txt', 'homeassistant/package_constraints.txt') }}
run: |
partial_key="${RUNNER_OS}-${RUNNER_ARCH}-${PYTHON_VERSION}-uv-"
echo "partial_key=${partial_key}" >> $GITHUB_OUTPUT
echo "full_key=${partial_key}${HASH_FILES}" >> $GITHUB_OUTPUT
- name: Restore uv wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
id: cache-uv
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ env.UV_CACHE_DIR }}
key: >-
${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-uv-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version }}-uv-${{
env.UV_CACHE_VERSION }}-${{ steps.generate-uv-key.outputs.version }}-${{
env.HA_SHORT_VERSION }}-
key: ${{ steps.generate-uv-key.outputs.full_key }}
restore-keys: ${{ steps.generate-uv-key.outputs.partial_key }}
- name: Check if apt cache exists
id: cache-apt-check
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
@@ -454,8 +453,7 @@ jobs:
pip install "$(grep '^uv' < requirements.txt)"
uv pip install -U "pip>=25.2"
uv pip install -r requirements.txt
python -m script.gen_requirements_all ci
uv pip install -r requirements_all_pytest.txt -r requirements_test.txt
uv pip install -r requirements_all.txt -r requirements_test.txt
uv pip install -e . --config-settings editable_mode=compat
- name: Dump pip freeze
run: |
@@ -471,24 +469,21 @@ jobs:
overwrite: true
- name: Remove pip_freeze
run: rm pip_freeze.txt
- name: Remove generated requirements_all
if: steps.cache-venv.outputs.cache-hit != 'true'
run: rm requirements_all_pytest.txt requirements_all_wheels_*.txt
- name: Check dirty
run: |
./script/check_dirty
- name: Prune uv cache
if: steps.cache-venv.outputs.cache-hit != 'true'
id: prune-uv-cache
run: |
. venv/bin/activate
uv cache prune --ci
- name: Save uv wheel cache
if: |
(success() && steps.cache-venv.outputs.cache-hit != 'true')
|| (always()
&& steps.create-venv.outcome == 'success'
&& steps.cache-uv.outputs.cache-matched-key == '')
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ env.UV_CACHE_DIR }}
key: >-
${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-uv-key.outputs.key }}
key: ${{ steps.generate-uv-key.outputs.full_key }}
- name: Save base Python virtual environment
if: always() && steps.create-venv.outcome == 'success'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5

View File

@@ -28,11 +28,11 @@ jobs:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
with:
category: "/language:python"

View File

@@ -1 +1 @@
3.14.2
3.14.4

View File

@@ -139,6 +139,7 @@ homeassistant.components.cambridge_audio.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.casper_glow.*
homeassistant.components.centriconnect.*
homeassistant.components.cert_expiry.*
homeassistant.components.clickatell.*
homeassistant.components.clicksend.*
@@ -155,6 +156,7 @@ homeassistant.components.counter.*
homeassistant.components.cover.*
homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*
homeassistant.components.data_grand_lyon.*
homeassistant.components.date.*
homeassistant.components.datetime.*
homeassistant.components.deako.*
@@ -295,6 +297,7 @@ homeassistant.components.imap.*
homeassistant.components.imgw_pib.*
homeassistant.components.immich.*
homeassistant.components.incomfort.*
homeassistant.components.indevolt.*
homeassistant.components.inels.*
homeassistant.components.infrared.*
homeassistant.components.input_button.*
@@ -423,6 +426,7 @@ homeassistant.components.otp.*
homeassistant.components.overkiz.*
homeassistant.components.overseerr.*
homeassistant.components.p1_monitor.*
homeassistant.components.paj_gps.*
homeassistant.components.panel_custom.*
homeassistant.components.paperless_ngx.*
homeassistant.components.peblar.*
@@ -442,6 +446,7 @@ homeassistant.components.private_ble_device.*
homeassistant.components.prometheus.*
homeassistant.components.proximity.*
homeassistant.components.prusalink.*
homeassistant.components.ptdevices.*
homeassistant.components.pure_energie.*
homeassistant.components.purpleair.*
homeassistant.components.pushbullet.*

View File

@@ -12,16 +12,20 @@ This repository contains the core of Home Assistant, a Python 3 based home autom
## Python Syntax Notes
- Python 3.14 explicitly allows `except TypeA, TypeB:` without parentheses. Never flag this as an issue since Home Assistant officially supports Python 3.14.
- Home Assistant officially supports Python 3.14 as its minimum version. Do not flag syntax or features that require Python 3.14 as issues, and do not suggest workarounds for older Python versions.
- Python 3.14 explicitly allows `except TypeA, TypeB:` without parentheses. Never flag this as an issue.
- Python 3.14 evaluates annotations lazily (PEP 649). Forward references in annotations do not need to be quoted — annotations can reference names defined later in the module without quoting them or using `from __future__ import annotations`. Do not flag unquoted forward references in annotations as issues.
## Testing
When writing or modifying tests, ensure all test function parameters have type annotations.
Prefer concrete types (for example, `HomeAssistant`, `MockConfigEntry`, etc.) over `Any`.
- When writing or modifying tests, ensure all test function parameters have type annotations.
- Prefer concrete types (for example, `HomeAssistant`, `MockConfigEntry`, etc.) over `Any`.
- Avoid using conditions/branching in tests. Instead, either split tests or adjust the test parametrization to cover all cases without branching.
- If multiple tests share most of their code, use `pytest.mark.parametrize` to merge them into a single parameterized test instead of duplicating the body.
## Good practices
Integrations with Platinum or Gold level in the Integration Quality Scale reflect a high standard of code quality and maintainability. When looking for examples of something, these are good places to start. The level is indicated in the manifest.json of the integration.
When reviewing entity actions, do not suggest extra defensive checks for input fields that are already validated by Home Assistant's service/action schemas and entity selection filters. Suggest additional guards only when data bypasses those validators or is transformed into a less-safe form.
When validation guarantees a dict key exists, prefer direct key access (`data["key"]`) instead of `.get("key")` so contract violations are surfaced instead of silently masked.
- Integrations with Platinum or Gold level in the Integration Quality Scale reflect a high standard of code quality and maintainability. When looking for examples of something, these are good places to start. The level is indicated in the manifest.json of the integration.
- When reviewing entity actions, do not suggest extra defensive checks for input fields that are already validated by Home Assistant's service/action schemas and entity selection filters. Suggest additional guards only when data bypasses those validators or is transformed into a less-safe form.
- When validation guarantees a dict key exists, prefer direct key access (`data["key"]`) instead of `.get("key")` so contract violations are surfaced instead of silently masked.
- Do not add comments that just restate the code on the following line(s) (e.g. `# Check if initialized` above `if self.initialized:`). Comments should only explain why — non-obvious constraints, surprising behavior, or workarounds — never what.

20
CODEOWNERS generated
View File

@@ -288,12 +288,16 @@ CLAUDE.md @home-assistant/core
/tests/components/cast/ @emontnemery
/homeassistant/components/ccm15/ @ocalvo
/tests/components/ccm15/ @ocalvo
/homeassistant/components/centriconnect/ @gresrun
/tests/components/centriconnect/ @gresrun
/homeassistant/components/cert_expiry/ @jjlawren
/tests/components/cert_expiry/ @jjlawren
/homeassistant/components/chacon_dio/ @cnico
/tests/components/chacon_dio/ @cnico
/homeassistant/components/chess_com/ @joostlek
/tests/components/chess_com/ @joostlek
/homeassistant/components/cielo_home/ @ihsan-cielo @mudasar-cielo
/tests/components/cielo_home/ @ihsan-cielo @mudasar-cielo
/homeassistant/components/cisco_ios/ @fbradyirl
/homeassistant/components/cisco_mobility_express/ @fbradyirl
/homeassistant/components/cisco_webex_teams/ @fbradyirl
@@ -345,6 +349,8 @@ CLAUDE.md @home-assistant/core
/tests/components/cync/ @Kinachi249
/homeassistant/components/daikin/ @fredrike
/tests/components/daikin/ @fredrike
/homeassistant/components/data_grand_lyon/ @Crocmagnon
/tests/components/data_grand_lyon/ @Crocmagnon
/homeassistant/components/date/ @home-assistant/core
/tests/components/date/ @home-assistant/core
/homeassistant/components/datetime/ @home-assistant/core
@@ -851,8 +857,8 @@ CLAUDE.md @home-assistant/core
/tests/components/input_select/ @home-assistant/core
/homeassistant/components/input_text/ @home-assistant/core
/tests/components/input_text/ @home-assistant/core
/homeassistant/components/insteon/ @teharris1
/tests/components/insteon/ @teharris1
/homeassistant/components/insteon/ @teharris1 @ssyrell
/tests/components/insteon/ @teharris1 @ssyrell
/homeassistant/components/integration/ @dgomes
/tests/components/integration/ @dgomes
/homeassistant/components/intelliclima/ @dvdinth
@@ -1092,6 +1098,8 @@ CLAUDE.md @home-assistant/core
/tests/components/minecraft_server/ @elmurato @zachdeibert
/homeassistant/components/minio/ @tkislan
/tests/components/minio/ @tkislan
/homeassistant/components/mitsubishi_comfort/ @nikolairahimi
/tests/components/mitsubishi_comfort/ @nikolairahimi
/homeassistant/components/moat/ @bdraco
/tests/components/moat/ @bdraco
/homeassistant/components/mobile_app/ @home-assistant/core
@@ -1306,6 +1314,8 @@ CLAUDE.md @home-assistant/core
/tests/components/ovo_energy/ @timmo001
/homeassistant/components/p1_monitor/ @klaasnicolaas
/tests/components/p1_monitor/ @klaasnicolaas
/homeassistant/components/paj_gps/ @skipperro
/tests/components/paj_gps/ @skipperro
/homeassistant/components/palazzetti/ @dotvav
/tests/components/palazzetti/ @dotvav
/homeassistant/components/panel_custom/ @home-assistant/frontend
@@ -1378,6 +1388,8 @@ CLAUDE.md @home-assistant/core
/tests/components/proxmoxve/ @Corbeno @erwindouna @CoMPaTech
/homeassistant/components/ps4/ @ktnrg45
/tests/components/ps4/ @ktnrg45
/homeassistant/components/ptdevices/ @ParemTech-Inc @frogman85978
/tests/components/ptdevices/ @ParemTech-Inc @frogman85978
/homeassistant/components/pterodactyl/ @elmurato
/tests/components/pterodactyl/ @elmurato
/homeassistant/components/pure_energie/ @klaasnicolaas
@@ -1491,8 +1503,8 @@ CLAUDE.md @home-assistant/core
/tests/components/roku/ @ctalkington
/homeassistant/components/romy/ @xeniter
/tests/components/romy/ @xeniter
/homeassistant/components/roomba/ @pschmitt @cyr-ius @shenxn @Orhideous
/tests/components/roomba/ @pschmitt @cyr-ius @shenxn @Orhideous
/homeassistant/components/roomba/ @pschmitt @cyr-ius @shenxn
/tests/components/roomba/ @pschmitt @cyr-ius @shenxn
/homeassistant/components/roon/ @pavoni
/tests/components/roon/ @pavoni
/homeassistant/components/route_b_smart_meter/ @SeraphicRav

View File

@@ -1,7 +1,5 @@
"""Start Home Assistant."""
from __future__ import annotations
import argparse
from contextlib import suppress
import faulthandler

View File

@@ -1,7 +1,5 @@
"""Provide an authentication layer for Home Assistant."""
from __future__ import annotations
import asyncio
from collections import OrderedDict
from collections.abc import Mapping

View File

@@ -1,7 +1,5 @@
"""Storage for auth models."""
from __future__ import annotations
from datetime import timedelta
import hmac
import itertools

View File

@@ -5,8 +5,6 @@ we can cache the result of the decode of valid tokens
to speed up the process.
"""
from __future__ import annotations
from collections.abc import Container, Iterable, Sequence
from datetime import timedelta
from functools import lru_cache

View File

@@ -1,7 +1,5 @@
"""Pluggable auth modules for Home Assistant."""
from __future__ import annotations
import logging
import types
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Example auth module."""
from __future__ import annotations
from typing import Any
import voluptuous as vol

View File

@@ -3,8 +3,6 @@
Sending HOTP through notify service
"""
from __future__ import annotations
import asyncio
import logging
from typing import Any, cast

View File

@@ -1,7 +1,5 @@
"""Time-based One Time Password auth module."""
from __future__ import annotations
import asyncio
from io import BytesIO
from typing import Any, cast

View File

@@ -1,7 +1,5 @@
"""Auth models."""
from __future__ import annotations
from datetime import datetime, timedelta
from ipaddress import IPv4Address, IPv6Address
import secrets

View File

@@ -1,7 +1,5 @@
"""Permissions for Home Assistant."""
from __future__ import annotations
from collections.abc import Callable, Iterable
from typing import TYPE_CHECKING

View File

@@ -1,7 +1,5 @@
"""Entity permissions."""
from __future__ import annotations
from collections import OrderedDict
from collections.abc import Callable

View File

@@ -1,7 +1,5 @@
"""Permission for events."""
from __future__ import annotations
from typing import Any, Final
from homeassistant.const import (

View File

@@ -1,7 +1,5 @@
"""Merging of policies."""
from __future__ import annotations
from typing import cast
from .types import CategoryType, PolicyType

View File

@@ -1,7 +1,5 @@
"""Models for permissions."""
from __future__ import annotations
from typing import TYPE_CHECKING
import attr

View File

@@ -1,7 +1,5 @@
"""Helpers to deal with permissions."""
from __future__ import annotations
from collections.abc import Callable
from functools import wraps
from typing import cast

View File

@@ -1,7 +1,5 @@
"""Auth providers for Home Assistant."""
from __future__ import annotations
from collections.abc import Mapping
import logging
import types

View File

@@ -1,7 +1,5 @@
"""Auth provider that validates credentials via an external command."""
from __future__ import annotations
import asyncio
from collections.abc import Mapping
import logging

View File

@@ -1,7 +1,5 @@
"""Home Assistant auth provider."""
from __future__ import annotations
import asyncio
import base64
from collections.abc import Mapping

View File

@@ -1,7 +1,5 @@
"""Example auth provider."""
from __future__ import annotations
from collections.abc import Mapping
import hmac

View File

@@ -4,8 +4,6 @@ It shows list of users if access from trusted network.
Abort login flow if not access from trusted network.
"""
from __future__ import annotations
from collections.abc import Mapping
from ipaddress import (
IPv4Address,

View File

@@ -1,7 +1,5 @@
"""Home Assistant module to handle restoring backups."""
from __future__ import annotations
from collections.abc import Iterable
from dataclasses import dataclass
import json

View File

@@ -1,7 +1,5 @@
"""Provide methods to bootstrap a Home Assistant instance."""
from __future__ import annotations
import asyncio
from collections import defaultdict
import contextlib

View File

@@ -0,0 +1,5 @@
{
"domain": "mitsubishi",
"name": "Mitsubishi",
"integrations": ["melcloud", "mitsubishi_comfort"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "sensereo",
"name": "Sensereo",
"iot_standards": ["matter"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "zunzunbee",
"name": "Zunzunbee",
"iot_standards": ["zigbee"]
}

View File

@@ -1,7 +1,5 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from dataclasses import dataclass, field
from functools import partial
from pathlib import Path

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System alarm control panels."""
from __future__ import annotations
from jaraco.abode.devices.alarm import Alarm
from homeassistant.components.alarm_control_panel import (

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System binary sensors."""
from __future__ import annotations
from typing import cast
from jaraco.abode.devices.binary_sensor import BinarySensor

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System cameras."""
from __future__ import annotations
from datetime import timedelta
from typing import Any, cast

View File

@@ -1,7 +1,5 @@
"""Config flow for the Abode Security System component."""
from __future__ import annotations
from collections.abc import Mapping
from http import HTTPStatus
from typing import Any, cast

View File

@@ -1,7 +1,5 @@
"""Constants for the Abode Security System component."""
from __future__ import annotations
import logging
LOGGER = logging.getLogger(__package__)

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System lights."""
from __future__ import annotations
from math import ceil
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System sensors."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import cast

View File

@@ -1,7 +1,5 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from typing import TYPE_CHECKING
from jaraco.abode.exceptions import Exception as AbodeException

View File

@@ -1,7 +1,5 @@
"""Support for Abode Security System switches."""
from __future__ import annotations
from typing import Any, cast
from jaraco.abode.devices.switch import Switch

View File

@@ -1,7 +1,5 @@
"""Coordinator for Acaia integration."""
from __future__ import annotations
from datetime import timedelta
import logging

View File

@@ -1,7 +1,5 @@
"""Diagnostics support for Acaia."""
from __future__ import annotations
from dataclasses import asdict
from typing import Any

View File

@@ -1,7 +1,5 @@
"""The AccuWeather component."""
from __future__ import annotations
import asyncio
import logging

View File

@@ -1,7 +1,5 @@
"""Adds config flow for AccuWeather."""
from __future__ import annotations
from asyncio import timeout
from collections.abc import Mapping
from typing import TYPE_CHECKING, Any

View File

@@ -1,7 +1,5 @@
"""Constants for AccuWeather integration."""
from __future__ import annotations
from datetime import timedelta
from typing import Final

View File

@@ -1,7 +1,5 @@
"""The AccuWeather coordinator."""
from __future__ import annotations
from asyncio import timeout
from collections.abc import Awaitable, Callable
from dataclasses import dataclass

View File

@@ -1,7 +1,5 @@
"""Diagnostics support for AccuWeather."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data

View File

@@ -1,7 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import Any, cast

View File

@@ -1,7 +1,5 @@
"""Provide info to system health."""
from __future__ import annotations
from typing import Any
from accuweather.const import ENDPOINT

View File

@@ -1,7 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from typing import cast
from homeassistant.components.weather import (

View File

@@ -1,7 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
from typing import Final
from homeassistant.const import STATE_OFF, STATE_ON

View File

@@ -5,5 +5,5 @@
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"iot_class": "local_polling",
"quality_scale": "legacy",
"requirements": ["serialx==1.4.1"]
"requirements": ["serialx==1.7.2"]
}

View File

@@ -1,7 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
import logging
import re
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Config flow for Rollease Acmeda Automate Pulse Hub."""
from __future__ import annotations
from asyncio import timeout
from contextlib import suppress
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Support for Acmeda Roller Blinds."""
from __future__ import annotations
from typing import Any
from homeassistant.components.cover import (

View File

@@ -1,7 +1,5 @@
"""Base class for Acmeda Roller Blinds."""
from __future__ import annotations
import aiopulse
from homeassistant.core import callback

View File

@@ -1,7 +1,5 @@
"""Helper functions for Acmeda Pulse."""
from __future__ import annotations
from typing import TYPE_CHECKING
from aiopulse import Roller

View File

@@ -1,7 +1,5 @@
"""Code to handle a Pulse Hub."""
from __future__ import annotations
import asyncio
from collections.abc import Callable

View File

@@ -1,7 +1,5 @@
"""Support for Acmeda Roller Blind Batteries."""
from __future__ import annotations
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.const import PERCENTAGE
from homeassistant.core import HomeAssistant, callback

View File

@@ -1,7 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import re
from typing import Final

View File

@@ -1,7 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import logging
from typing import Final

View File

@@ -147,7 +147,7 @@ class ActronSystemClimate(ActronAirAcEntity, ActronAirClimateEntity):
@property
def target_temperature(self) -> float:
"""Return the target temperature."""
return self._status.user_aircon_settings.temperature_setpoint_cool_c
return self._status.user_aircon_settings.current_setpoint
@actron_air_command
async def async_set_fan_mode(self, fan_mode: str) -> None:
@@ -239,7 +239,7 @@ class ActronZoneClimate(ActronAirZoneEntity, ActronAirClimateEntity):
@property
def target_temperature(self) -> float | None:
"""Return the target temperature."""
return self._zone.temperature_setpoint_cool_c
return self._zone.current_setpoint
@actron_air_command
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:

View File

@@ -6,7 +6,12 @@ from typing import Any
from actron_neo_api import ActronAirAPI, ActronAirAuthError
from homeassistant.config_entries import SOURCE_REAUTH, ConfigFlow, ConfigFlowResult
from homeassistant.config_entries import (
SOURCE_REAUTH,
SOURCE_RECONFIGURE,
ConfigFlow,
ConfigFlowResult,
)
from homeassistant.const import CONF_API_TOKEN
from homeassistant.exceptions import HomeAssistantError
@@ -105,6 +110,14 @@ class ActronAirConfigFlow(ConfigFlow, domain=DOMAIN):
data_updates={CONF_API_TOKEN: self._api.refresh_token_value},
)
# Check if this is a reconfigure flow
if self.source == SOURCE_RECONFIGURE:
self._abort_if_unique_id_mismatch(reason="wrong_account")
return self.async_update_reload_and_abort(
self._get_reconfigure_entry(),
data_updates={CONF_API_TOKEN: self._api.refresh_token_value},
)
self._abort_if_unique_id_configured()
return self.async_create_entry(
title=user_data.email,
@@ -138,6 +151,20 @@ class ActronAirConfigFlow(ConfigFlow, domain=DOMAIN):
return self.async_show_form(step_id="reauth_confirm")
async def async_step_reconfigure(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle reconfiguration request."""
return await self.async_step_reconfigure_confirm()
async def async_step_reconfigure_confirm(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Confirm reconfiguration dialog."""
if user_input is not None:
return await self.async_step_user()
return self.async_show_form(step_id="reconfigure_confirm")
async def async_step_connection_error(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:

View File

@@ -1,7 +1,5 @@
"""Coordinator for Actron Air integration."""
from __future__ import annotations
from dataclasses import dataclass
from datetime import timedelta

View File

@@ -1,7 +1,5 @@
"""Diagnostics support for Actron Air."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data

View File

@@ -60,7 +60,7 @@ rules:
entity-translations: done
exception-translations: done
icon-translations: done
reconfiguration-flow: todo
reconfiguration-flow: done
repair-issues:
status: exempt
comment: This integration does not have any known issues that require repair.

View File

@@ -4,7 +4,8 @@
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"oauth2_error": "Failed to start authentication flow",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"wrong_account": "You must reauthenticate with the same Actron Air account that was originally configured."
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"wrong_account": "You must authenticate with the same Actron Air account that was originally configured."
},
"error": {
"oauth2_error": "Failed to start authentication flow. Please try again later."
@@ -22,6 +23,10 @@
"description": "Your Actron Air authentication has expired. Select continue to reauthenticate with your Actron Air account. You will be prompted to log in again to restore the connection.",
"title": "Authentication expired"
},
"reconfigure_confirm": {
"description": "Reconfigure your Actron Air account. You will be prompted to log in again. Note: you must use the same account that was originally configured.",
"title": "Reconfigure Actron Air"
},
"timeout": {
"data": {},
"description": "The authentication process timed out. Please try again.",

View File

@@ -1,7 +1,5 @@
"""The Adax integration."""
from __future__ import annotations
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant

View File

@@ -1,7 +1,5 @@
"""Support for Adax wifi-enabled home heaters."""
from __future__ import annotations
from typing import Any, cast
from adax import Adax

View File

@@ -1,7 +1,5 @@
"""Config flow for Adax integration."""
from __future__ import annotations
import logging
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Support for Adax energy sensors."""
from __future__ import annotations
from dataclasses import dataclass
from typing import cast

View File

@@ -1,7 +1,5 @@
"""Support for AdGuard Home."""
from __future__ import annotations
from dataclasses import dataclass
from adguardhome import AdGuardHome, AdGuardHomeConnectionError

View File

@@ -1,7 +1,5 @@
"""Config flow to configure the AdGuard Home integration."""
from __future__ import annotations
from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError

View File

@@ -1,7 +1,5 @@
"""AdGuard Home base entity."""
from __future__ import annotations
from adguardhome import AdGuardHomeError
from homeassistant.config_entries import SOURCE_HASSIO

View File

@@ -1,7 +1,5 @@
"""Support for AdGuard Home sensors."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from datetime import timedelta

View File

@@ -1,7 +1,5 @@
"""Support for AdGuard Home switches."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from datetime import timedelta

View File

@@ -1,7 +1,5 @@
"""AdGuard Home Update platform."""
from __future__ import annotations
from datetime import timedelta
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Support for ADS binary sensors."""
from __future__ import annotations
import pyads
import voluptuous as vol

View File

@@ -1,7 +1,5 @@
"""Support for Automation Device Specification (ADS)."""
from __future__ import annotations
from enum import StrEnum
from typing import TYPE_CHECKING

View File

@@ -1,7 +1,5 @@
"""Support for ADS covers."""
from __future__ import annotations
from typing import Any
import pyads

View File

@@ -1,7 +1,5 @@
"""Support for ADS light sources."""
from __future__ import annotations
from typing import Any
import pyads

View File

@@ -1,7 +1,5 @@
"""Support for ADS select entities."""
from __future__ import annotations
import pyads
import voluptuous as vol

View File

@@ -1,7 +1,5 @@
"""Support for ADS sensors."""
from __future__ import annotations
import voluptuous as vol
from homeassistant.components.sensor import (

View File

@@ -1,7 +1,5 @@
"""Support for ADS switch platform."""
from __future__ import annotations
from typing import Any
import pyads

View File

@@ -1,7 +1,5 @@
"""Support for ADS valves."""
from __future__ import annotations
import pyads
import voluptuous as vol

View File

@@ -1,7 +1,5 @@
"""Binary Sensor platform for Advantage Air integration."""
from __future__ import annotations
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
BinarySensorEntity,

View File

@@ -1,7 +1,5 @@
"""Climate platform for Advantage Air integration."""
from __future__ import annotations
from decimal import Decimal
import logging
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Config Flow for Advantage Air integration."""
from __future__ import annotations
from typing import Any
from advantage_air import ApiError, advantage_air

View File

@@ -1,7 +1,5 @@
"""Coordinator for the Advantage Air integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Provides diagnostics for Advantage Air."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data

View File

@@ -1,7 +1,5 @@
"""Sensor platform for Advantage Air integration."""
from __future__ import annotations
from decimal import Decimal
from typing import Any

View File

@@ -1,7 +1,5 @@
"""Services for Advantage Air integration."""
from __future__ import annotations
import voluptuous as vol
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN

View File

@@ -1,7 +1,5 @@
"""Config flow for AEMET OpenData."""
from __future__ import annotations
from typing import Any
from aemet_opendata.exceptions import AuthError

View File

@@ -1,7 +1,5 @@
"""Constant values for the AEMET OpenData component."""
from __future__ import annotations
from aemet_opendata.const import (
AOD_COND_CLEAR_NIGHT,
AOD_COND_CLOUDY,

View File

@@ -1,7 +1,5 @@
"""Weather data coordinator for the AEMET OpenData service."""
from __future__ import annotations
from asyncio import timeout
from dataclasses import dataclass
from datetime import timedelta

Some files were not shown because too many files have changed in this diff Show More