Compare commits

...

2069 Commits

Author SHA1 Message Date
Bram Kragten
c10175e25c Bump version to 2025.1.0b4 2024-12-30 20:06:44 +01:00
Bram Kragten
82f0e8cc19 Update frontend to 20241230.0 (#134284) 2024-12-30 20:06:32 +01:00
Andrew Jackson
623e1b08b8 Bump aiomealie to 0.9.5 (#134274) 2024-12-30 20:06:31 +01:00
Norbert Rittel
0c73251004 Remove excessive period at end of action name (#134272) 2024-12-30 20:06:30 +01:00
Arne Keller
d9057fc43e ollama: update to 0.4.5 (#134265) 2024-12-30 20:06:29 +01:00
Josef Zweck
077c9e62b4 Bump pylamarzocco to 1.4.5 (#134259)
* Bump pylamarzocco to 1.4.4

* Bump pylamarzocco to 1.4.5

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-30 20:06:28 +01:00
tronikos
7456ce1c01 Fix 400 This voice does not support speaking rate or pitch parameters at this time for Google Cloud Journey voices (#134255) 2024-12-30 20:06:28 +01:00
tronikos
a627fa70a7 Avoid KeyError for ignored entries in async_step_zeroconf of Android TV Remote (#134250) 2024-12-30 20:06:27 +01:00
Michael
c402eaec3f Bump aiopegelonline to 0.1.1 (#134230)
bump aiopegelonline to 0.1.1
2024-12-30 20:06:26 +01:00
tronikos
ea51ecd384 Bump opower to 0.8.7 (#134228)
* Bump opower to 0.8.7

* update deps
2024-12-30 20:06:25 +01:00
Artur Pragacz
0873d27d7b Fix Onkyo volume rounding (#134157) 2024-12-30 20:06:23 +01:00
G Johansson
45fd7fb6d5 Fix duplicate sensor disk entities in Systemmonitor (#134139) 2024-12-30 20:06:23 +01:00
Alberto Geniola
e22685640c Bump elmax-api (#133845) 2024-12-30 20:06:22 +01:00
Adam Goode
5756166545 Quickly process unavailable metrics in Prometheus (#133219) 2024-12-30 20:06:21 +01:00
Norbert Rittel
2f8a92c725 Make triggers and condition for monetary sensor consistent (#131184) 2024-12-30 20:06:20 +01:00
Paul Daumlechner
cf9ccc6fb4 Bump pyvlx to 0.2.26 (#115483) 2024-12-30 20:06:19 +01:00
Paulus Schoutsen
b05b9b9a33 Bump version to 2025.1.0b3 2024-12-29 18:37:17 +00:00
Paulus Schoutsen
352d5d14a3 Bump frontend to 20241229.0 (#134225) 2024-12-29 18:37:04 +00:00
Michael Hansen
52e47f55c8 Bump VoIP utils to 0.2.2 (#134219) 2024-12-29 18:37:03 +00:00
Lucas Gasenzer
0470bff9a2 Fix Wake on LAN Port input as Box instead of Slider (#134216) 2024-12-29 18:37:02 +00:00
Michael
a38839b420 Make feedreader recoverable (#134202)
raise ConfigEntryNotReady on connection errors during setup
2024-12-29 18:37:01 +00:00
Michael
394b2be40a Make PEGELONLINE recoverable (#134199) 2024-12-29 18:37:00 +00:00
Matthias Alphart
291dd6dc66 Update knx-frontend to 2024.12.26.233449 (#134184) 2024-12-29 18:36:59 +00:00
G Johansson
ef87366346 Add missing device classes in scrape (#134141) 2024-12-29 18:36:57 +00:00
Joost Lekkerkerker
bd243f68a4 Bump yt-dlp to 2024.12.23 (#134131) 2024-12-29 18:36:57 +00:00
Aaron Bach
951baa3972 Bump pytile to 2024.12.0 (#134103) 2024-12-29 18:36:56 +00:00
Joost Lekkerkerker
1874eec8b3 Bump python-homeassistant-analytics to 0.8.1 (#134101) 2024-12-29 18:36:55 +00:00
Joost Lekkerkerker
3120a90f26 Make elevenlabs recoverable (#134094)
* Make elevenlabs recoverable

* Add tests for entry setup

* Use the same fixtures for setup and config flow

* Update tests/components/elevenlabs/test_setup.py

Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>

---------

Co-authored-by: Simon Sorg <simon.sorg@student.hpi.de>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>
2024-12-29 18:36:54 +00:00
Joost Lekkerkerker
7032361bf5 Make google tasks recoverable (#134092) 2024-12-29 18:36:53 +00:00
Matthias Alphart
bd786b53ee Fix KNX config flow translations and add data descriptions (#134078)
* Fix KNX config flow translations and add data descriptions

* Update strings.json

* typo
2024-12-29 18:36:53 +00:00
Noah Husby
f6a9cd38c0 Remove timeout from Russound RIO initialization (#134070) 2024-12-29 18:36:51 +00:00
Aaron Bach
1a909d3a8a Change SimpliSafe websocket reconnection log to DEBUG-level (#134063)
* Change SimpliSafe websocket reconnection log to `DEBUG`-level

* revert
2024-12-29 18:36:51 +00:00
Noah Husby
b84ae2abc3 Bump aiorussound to 4.1.1 (#134058)
* Bump aiorussound to 4.1.1

* Trigger Build

* Trigger Build
2024-12-29 18:36:50 +00:00
G Johansson
15b80c59fc Cleanup devices in Nord Pool from reconfiguration (#134043)
* Cleanup devices in Nord Pool from reconfiguration

* Mods

* Mod
2024-12-29 18:36:49 +00:00
G Johansson
c11bdcc949 Fix Nord Pool empty response (#134033)
* Fix Nord Pool empty response

* Mods

* reset validate prices
2024-12-29 18:36:48 +00:00
Allen Porter
1957ab1ccf Improve Google Tasks error messages (#134023) 2024-12-29 18:36:47 +00:00
Josef Zweck
ef2af44795 Bump pylamarzocco to 1.4.3 (#134008) 2024-12-29 18:36:47 +00:00
J. Nick Koston
f0e8360401 Ensure all states have been migrated to use timestamps (#134007) 2024-12-29 18:36:46 +00:00
Cyrill Raccaud
03fb136218 Fix swiss public transport line field none (#133964)
* fix #133116

The line can theoretically be none, when no line info is available (lets say walking sections first?)

* fix line field

* add unit test with missing line field
2024-12-29 18:36:45 +00:00
Bram Kragten
d415b7bc8d Bump version to 2025.1.0b2 2024-12-24 16:42:54 +01:00
Bram Kragten
9242b67e0d Update frontend to 20241224.0 (#133963) 2024-12-24 16:42:36 +01:00
Marc Mueller
6e7d095831 Update Jinja2 to 3.1.5 (#133951) 2024-12-24 16:42:35 +01:00
Joost Lekkerkerker
ef05133a66 Use SignedSession in Xbox (#133938) 2024-12-24 16:42:34 +01:00
Franck Nijhof
7b2fc282e5 Update apprise to v1.9.1 (#133936) 2024-12-24 16:42:33 +01:00
Philipp Danner
4ca17dbb9e fix "Slow" response leads to "Could not find a charging station" #124129 (#133889)
fix #124129
2024-12-24 16:42:32 +01:00
Khole
5d7a22fa76 Hive: Fix error when device goes offline (#133848) 2024-12-24 16:42:31 +01:00
Claudio Ruggeri - CR-Tech
502fbe65ee Fix reload modbus component issue (#133820)
fix issue 116675
2024-12-24 16:42:31 +01:00
Franck Nijhof
ce83071900 Bump version to 2025.1.0b1 2024-12-24 08:24:58 +00:00
G-Two
4f1e9b2338 Stop using shared aiohttp client session for Subaru integration (#133931) 2024-12-24 08:24:37 +00:00
Franck Nijhof
f23bc51b88 Fix Peblar import in data coordinator (#133926) 2024-12-24 08:24:34 +00:00
Dave T
44150e9fd7 Fix missing % in string for generic camera (#133925)
Fix missing % in generic camera string
2024-12-24 08:24:31 +00:00
Brett Adams
cf9686a802 Slow down polling in Teslemetry (#133924) 2024-12-24 08:24:27 +00:00
Abílio Costa
657e5b73b6 Add cronsim to default dependencies (#133913) 2024-12-24 08:24:24 +00:00
J. Nick Koston
d3666ecf8a Fix duplicate call to async_register_preload_platform (#133909) 2024-12-24 08:24:21 +00:00
J. Nick Koston
bed186cce4 Ensure cloud and recorder backup platforms do not have to wait for the import executor (#133907)
* Ensure cloud and recorder backup platforms do not have to wait for the import executor

partially fixes #133904

* backup.backup as well
2024-12-24 08:24:18 +00:00
J. Nick Koston
2b8240746a Sort integration platforms preload list (#133905)
* Sort integration platforms preload list

https://github.com/home-assistant/core/pull/133856#discussion_r1895385026

* sort

* Sort them all

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-12-24 08:24:14 +00:00
Martin Mrazik
efabb82cb6 Map RGB+CCT to RGB for WLED (#133900) 2024-12-24 08:24:11 +00:00
Jordi
80955ba821 Add Harvey virtual integration (#133874)
Add harvey virtual integration
2024-12-24 08:24:07 +00:00
karwosts
bb371c87d5 Fix a history stats bug when window and tracked state change simultaneously (#133770) 2024-12-24 08:24:04 +00:00
Thomas55555
7ce563b0b4 Catch ClientConnectorError and TimeOutError in APSystems (#132027) 2024-12-24 08:24:00 +00:00
Franck Nijhof
c2f6e5036e Bump version to 2025.1.0b0 2024-12-23 15:56:12 +00:00
Michael
bbb5f9e717 Preload supported color properties in fritzbox lights (#133798) 2024-12-23 16:40:38 +01:00
Duco Sebel
6cbc803b28 Streamline Peblar translations (#133883) 2024-12-23 16:38:34 +01:00
Steven B.
abe00884ea Use SD stream for tplink mpeg stream (#133879) 2024-12-23 16:37:42 +01:00
Steven B.
0cbc77ad3f Make tplink entities unavailable if camera is off (#133877) 2024-12-23 16:36:57 +01:00
Bram Kragten
5487e8673c Update frontend to 20241223.1 (#133886) 2024-12-23 16:03:56 +01:00
Matthias Alphart
45ae2f4736 Set Fronius integration quality scale to gold (#133884) 2024-12-23 15:54:57 +01:00
Robert Resch
8e86c3c775 Add Ecovacs station entities (#133876)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-23 15:54:40 +01:00
Álvaro Fernández Rojas
5ef12c3993 Add AEMET Weather Radar images (#131386)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-23 15:51:21 +01:00
Glenn Vandeuren (aka Iondependent)
43a420cf01 Add cover to the niko_home_control integration (#133801)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-23 15:47:09 +01:00
starkillerOG
70648da8fd Improve firmware update required issue (#133878) 2024-12-23 15:05:45 +01:00
Steven B.
7f6a77ad2f Fix tplink camera entity unique id (#133880) 2024-12-23 15:53:17 +02:00
Simon
386a722393 ElevenLabs invalid api key config flow testing (#133822) 2024-12-23 12:05:31 +01:00
Robert Resch
c5fe25a001 Bump deebot-client to 10.0.1 (#133634) 2024-12-23 12:05:29 +01:00
Omni Flux
cf3d4eb26a Respect ESPHome ClimateTrait supports_current_temperature (#132149) 2024-12-23 11:35:59 +01:00
Joost Lekkerkerker
939365887f Add coordinator to Twinkly (#133793) 2024-12-23 11:35:37 +01:00
epenet
e3cf5c47b2 Add compatibility code for deprecated WaterHeaterEntityEntityDescription (#133351) 2024-12-23 11:28:20 +01:00
Franck Nijhof
b2170ad732 Mark Peblar Rocksolid EV Chargers Platinum (#133823) 2024-12-23 11:23:26 +01:00
Franck Nijhof
ed7da35de4 Add coordinator error handling for Peblar Rocksolid EV Chargers (#133809) 2024-12-23 11:11:25 +01:00
Marcel van der Veldt
83f5ca5a30 Add actions with response values to Music Assistant (#133521)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: OzGav <gavnosp@hotmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-23 11:10:10 +01:00
Franck Nijhof
1f8f85d6eb Merge branch 'master' into dev 2024-12-23 09:40:42 +00:00
Duco Sebel
59d8c79371 Use user defined charge limit for charge limit range in Peblar (#133868) 2024-12-23 10:27:53 +01:00
Matrix
a6f6317299 Add Leak detect entity for YoLink water meter controller (#131682) 2024-12-23 09:24:02 +01:00
dontinelli
b1fe247eed Upgrade QS from silver to gold for slide_local (#133863)
Upgrade QS to gold
2024-12-23 09:23:13 +01:00
mrtlhfr
8991cd4f46 Adding initial support for Tuya Electric Fireplaces (#133503) 2024-12-23 09:23:04 +01:00
Matthias Alphart
9e1ba004d4 Add translated enum entity for Fronius error code (#133394) 2024-12-23 09:17:52 +01:00
J. Nick Koston
ddb3edca5d Bump PySwitchbot to 0.55.4 (#133861) 2024-12-23 08:44:01 +01:00
jon6fingrs
4321d27ed3 Ensure icalendar==6.1.0 is installed for caldav integration (#133541) 2024-12-23 08:39:43 +01:00
dependabot[bot]
ad0ee8f2d6 Bump github/codeql-action from 3.27.9 to 3.28.0 (#133862) 2024-12-23 08:18:23 +01:00
Teemu R.
6cdbdadc24 Ignore devices (bravias) with 'video' service_type for songpal discovery (#133724) 2024-12-22 19:38:10 -10:00
Martin Weinelt
cf45c67055 Fix TypeError in maxcube climate action inference logic (#133853)
The maxcube-api library initializes the valve_position as a None value,
so that during initialization if the cube does not respond quickly enough
the comparison fails to compare a None-Type to an integer.
2024-12-22 23:26:11 -05:00
J. Nick Koston
3658cdba4c Ensure late import in backup of hassio.backup does not block the event loop (#133857)
* Ensure late import in backup of components.hassio.backup does not block the event loop

Preload backup when loading hassio to ensure it happens in the executor

67f0de441b/homeassistant/components/backup/__init__.py (L57)

* improve comment
2024-12-22 23:19:44 -05:00
TheJulianJES
dcc9be02ca Bump ZHA to 0.0.43 (#133854)
* Bump ZHA to 0.0.43

* Add strings for v2 quirk entities
2024-12-22 23:19:05 -05:00
J. Nick Koston
de1b6a0dfc Add backup to the list of storage preloads (#133855) 2024-12-22 23:17:13 -05:00
J. Nick Koston
29fa40a5cf Add backup the list of integrations platforms to preload (#133856)
`backup` is now at the top of the startup time list. This will help reduce it.
2024-12-22 23:07:05 -05:00
Christopher Fenner
67f0de441b Fulfill IQS rule runtime-data in ViCare integration (#133633) 2024-12-23 00:06:01 +01:00
J. Nick Koston
353f085474 Bump anyio to 4.7.0 (#133842) 2024-12-22 13:05:51 -10:00
J. Nick Koston
00a1ae0eeb Bump protobuf to 5.29.2 (#133839) 2024-12-22 23:58:39 +01:00
Raphael Hehl
df26166047 Unifiprotect: add error message if the get_user_keyring_info permissions are not sufficient (#133841) 2024-12-22 23:58:13 +01:00
Steven B.
8ab936b87c Add detection switches to tplink integration (#133828) 2024-12-22 23:54:44 +01:00
Mick Vleeshouwer
4ed0c21a4a Add data descriptions to Config Flow in Overkiz (#133758) 2024-12-22 23:35:50 +01:00
jb101010-2
a3657a0fef Suez_water: fix yesterday sensor extra_state invalid typing (#133425) 2024-12-22 23:21:52 +01:00
Andre Lengwenus
74b425a06e Reload on connection lost for LCN integration (#133638) 2024-12-22 23:20:01 +01:00
Norbert Rittel
0560b634e3 Make To-do action names and descriptions consistent with HA standard (#133734) 2024-12-22 23:14:01 +01:00
Mick Vleeshouwer
8eebbd45bd Bump pyOverkiz to 1.15.5 (#133835) 2024-12-22 22:52:35 +01:00
Joost Lekkerkerker
c9ad87d464 Add light tests for Niko Home Control (#133750) 2024-12-22 22:44:15 +01:00
Lucas Gasenzer
c2358d5158 Add Switchbot Water Leak Detector (BLE) (#133799)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-22 11:37:57 -10:00
Josef Zweck
2d2b979c7d Bump pylamarzocco to 1.4.2 (#133826) 2024-12-22 21:55:04 +01:00
Steven B.
ebcb478f52 Add pan/tilt features to tplink integration (#133829) 2024-12-22 10:53:14 -10:00
Raphael Hehl
0f18f128fd Unifiprotect Add user information retrieval for NFC and fingerprint events (#132604)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-22 10:50:30 -10:00
G Johansson
368e958457 Load data for multiple days in Nord Pool (#133371)
* Load data for multiple days in Nord Pool

* Fix current day

* Fix tests

* Fix services

* Fix fixtures

* Mod get_data_current_day

* Mods

* simplify further
2024-12-22 21:10:12 +01:00
Noah Husby
26180486e7 Add media browsing to Cambridge Audio (#129106)
* Add media browsing to Cambridge Audio

* Remove one folder logic

* Remove class mapping for presets
2024-12-22 21:05:07 +01:00
Robert Resch
0ad9af0feb Add already exists config flow tests for Ecovacs (#133572)
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-22 20:23:55 +01:00
dontinelli
07322c6992 Add reconfigure flow to slide_local (#133669) 2024-12-22 19:57:34 +01:00
Steven B.
b1f6563fb2 Add camera platform to tplink integration (#129180)
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-12-22 19:56:33 +01:00
J. Nick Koston
475f19c140 Bump flux_led to 1.1.0 (#133818) 2024-12-22 19:56:09 +01:00
Andre Lengwenus
344a03d9ce Remove unused fixture from LCN tests (#133821) 2024-12-22 19:55:45 +01:00
Raphael Hehl
6c70586f7e Add get_user_keyring_info service to UniFi Protect integration (#133138)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-22 08:54:14 -10:00
Franck Nijhof
0f1835139f Add number error handling for Peblar Rocksolid EV Chargers (#133803) 2024-12-22 19:53:00 +01:00
Franck Nijhof
de5a49363e Add switch error handling for Peblar Rocksolid EV Chargers (#133805) 2024-12-22 19:47:31 +01:00
Arie Catsman
c6789d70a4 Remove unneeded type for enphase_envoy coordinator in async_unload_entry (#133817) 2024-12-22 19:26:35 +01:00
Simon
a2aba77973 Fix typo in ElevenLabs (#133819) 2024-12-22 19:26:15 +01:00
Franck Nijhof
84a3a9d495 Add select error handling for Peblar Rocksolid EV Chargers (#133804) 2024-12-22 19:25:55 +01:00
Barry vd. Heuvel
d994884726 Add binary states for Weheat indoor unit (#133811)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-22 19:07:01 +01:00
Joost Lekkerkerker
0e9965150e Show device name in Twinkly discovery (#133814) 2024-12-22 19:00:49 +01:00
Barry vd. Heuvel
feca7c28cf Add Compressor, Inside Unit and Energy Output fields to Weheat (#129632) 2024-12-22 18:45:33 +01:00
Steven Looman
0ba32e1d3a Bump async-upnp-client to 0.42.0 (#133806) 2024-12-22 07:18:05 -10:00
J. Nick Koston
6179da4321 Bump PySwitchbot to 0.55.3 (#133812)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-22 18:16:47 +01:00
jesperraemaekers
93c0eb73d2 Bump Weheat to 2024.12.22 (#133796) 2024-12-22 17:44:15 +01:00
Dave T
484f149e61 Add config flow stream preview to generic camera (#122563)
Co-authored-by: Allen Porter <allen.porter@gmail.com>
2024-12-22 17:31:03 +01:00
Steven B.
3cc75c3cf6 Use feature checks in tplink integration (#133795)
Clean up to use new upstream API:

* Use Feature attributes to check for supported

* Use color_temp range and update tests
2024-12-22 16:17:23 +01:00
Franck Nijhof
26d5c55d11 Add button error handling for Peblar Rocksolid EV Chargers (#133802) 2024-12-22 15:35:45 +01:00
Franck Nijhof
959f20c523 Add reconfigure flow to Peblar Rocksolid EV Chargers integration (#133785) 2024-12-22 14:23:12 +01:00
Franck Nijhof
075f95b9c4 Add base entity to Peblar Rocksolid EV Chargers integration (#133794) 2024-12-22 14:01:31 +01:00
PierreAronnax
1e68ae1bb8 Remove myself from govee_ble codeowners (#133790) 2024-12-22 13:35:36 +01:00
Joost Lekkerkerker
5ef3901b44 Add base entity for Niko Home Control (#133744) 2024-12-22 13:32:15 +01:00
Mick Vleeshouwer
56b58cec3e Fix errors in HitachiDHW in Overkiz (#133765)
* Small changes to fix errors in DHW

* Update

* Bugfix in float/int mistake

* Fix typing

* Fix code style

* Fix mypy
2024-12-22 12:17:09 +01:00
Franck Nijhof
cdd73a5c5a Set parallel updates for Peblar Rocksolid EV Chargers integration (#133786) 2024-12-22 12:16:08 +01:00
Arie Catsman
88eb550ec1 Update quality-scale status for enphase_envoy config_flow missing data descriptions (#133726) 2024-12-22 12:01:13 +01:00
Joost Lekkerkerker
7be3cad1db Refactor Twinkly tests (#133725) 2024-12-22 12:00:24 +01:00
Franck Nijhof
31c6443a9b Add button platform to Peblar Rocksolid EV Chargers integration (#133780) 2024-12-22 11:51:01 +01:00
Mick Vleeshouwer
84d359c0d9 Fix binary_sensor typing in Overkiz (#133782) 2024-12-22 11:33:32 +01:00
Mick Vleeshouwer
619aed39b7 Use new UnitOfEnergy constants in Overkiz (#133778) 2024-12-22 10:36:07 +01:00
Mick Vleeshouwer
3f1acff652 Add support for HitachiAirToWaterHeatingZone in Overkiz (#133768)
* Add support for HitachiAirToWaterHeatingZone in Overkiz

* Clean up

* Fix typing

* Fix typing

* Fix typing

* Adapt to new PyOverkiz
2024-12-22 10:31:09 +01:00
Mick Vleeshouwer
c3d0a01776 Migrate to runtime data in Overkiz (#133760)
* Migrate to runtime data

* Revert

* Improve typing
2024-12-22 10:25:59 +01:00
Arie Catsman
cd6da9d9e8 Merge similar tests to parameterized tests for enphase_envoy (#133740) 2024-12-22 10:07:35 +01:00
Franck Nijhof
0c24afec6c Update integration quality scale for Peblar Rocksolid EV Chargers (#133764) 2024-12-22 10:03:16 +01:00
Mick Vleeshouwer
284ccbc778 Add additional Hitachi sensors to Overkiz (#133772)
Add additional Hitachi sensors
2024-12-22 09:40:06 +01:00
Mick Vleeshouwer
cef182c596 Bump pyOverkiz to 1.15.4 (#133769)
Bump pyoverkiz to 1.15.4
2024-12-22 10:02:58 +02:00
Austin Mroczek
d322398d06 TotalConnect use entry.runtime_data (#133756)
* use entry.runtime_data

* type the entry

* update quality scale

* recommended fixes

* Update homeassistant/components/totalconnect/alarm_control_panel.py

* Update homeassistant/components/totalconnect/binary_sensor.py

* Update homeassistant/components/totalconnect/button.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-22 08:59:54 +01:00
J. Nick Koston
c2a9b0ff52 Reduce complexity to find unused data_ids and attributes_ids for db engines with slow range select (#133752) 2024-12-21 19:38:11 -10:00
J. Nick Koston
662dea28ed Replace queries using distinct with correlated scalar subqueries to significantly improve purge performance (#133748)
Replace queries using distinct with correlated scalar subqueries

like #133553 and #133699 PostgreSQL does not support skip/loose index scan https://wiki.postgresql.org/wiki/Loose_indexscan

This makes the `distinct` query (see section `Selecting Distinct Values` in the wiki above) to find the unused ids
very expense. We can replace them with correlated scalar subqueries
as done in #133553 to avoid the `distinct`
2024-12-21 22:25:48 -05:00
Franck Nijhof
9fcf8f22d2 Add reauthentication support to Peblar Rocksolid EV Chargers integration (#133757) 2024-12-21 23:00:29 +01:00
Franck Nijhof
9dc20b5709 Add more sensors to Peblar Rocksolid EV Chargers integration (#133754)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-21 22:40:15 +01:00
Franck Nijhof
5e4e1ce5a7 Add binary sensor platform to Peblar Rocksolid EV Chargers integration (#133755) 2024-12-21 22:29:11 +01:00
Franck Nijhof
85519a312c Fix Peblar current limit user setting value (#133753) 2024-12-21 22:23:36 +01:00
Franck Nijhof
81ce5f4505 Update peblar to v0.3.0 (#133751) 2024-12-21 21:26:40 +01:00
Franck Nijhof
c67e2047e3 Add switch platform to Peblar Rocksolid EV Chargers integration (#133749) 2024-12-21 20:28:55 +01:00
Franck Nijhof
04276d3523 Add number platform to Peblar Rocksolid EV Chargers integration (#133739) 2024-12-21 20:16:18 +01:00
Joost Lekkerkerker
f2df57e230 Add DHCP discovery to Withings (#133737) 2024-12-21 19:36:13 +01:00
Glenn Vandeuren (aka Iondependent)
0037799bfe Change niko_home_control library to nhc to get push updates (#132750)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: VandeurenGlenn <8685280+VandeurenGlenn@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-12-21 19:28:11 +01:00
Steven B.
944ad9022d Bump tplink python-kasa dependency to 0.9.0 (#133735)
Release notes: https://github.com/python-kasa/python-kasa/releases/tag/0.9.0
2024-12-21 19:04:09 +01:00
Tom
4b6febc757 Add reconfiguration flow to Plugwise (#132878)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-21 16:44:14 +01:00
Norbert Rittel
ac2090d2f5 Replace "service" with "action" in Z-Wave action descriptions (#133727)
Replace all occurrence of "service" with "action"

Clean up the remaining occurrences of "service" with "action" to be consistent with the new terminology in Home Assistant.
2024-12-21 16:16:12 +01:00
Norbert Rittel
3dad5f6896 Replace two outdated occurrences of "service" with "action" (#133728) 2024-12-21 15:54:02 +01:00
Arie Catsman
cc134c820b Reuse title of deleted enphase_envoy config entry if present (#133611) 2024-12-21 15:49:24 +01:00
Arie Catsman
ef31413a59 Add missing asserts to enphase_envoy config flow test (#133730) 2024-12-21 15:20:10 +01:00
Álvaro Fernández Rojas
9292bfc6ed Update AEMET-OpenData to v0.6.4 (#133723) 2024-12-21 15:19:55 +01:00
Franck Nijhof
9e6c1d5b62 Add power and energy related sensors to Peblar Rocksolid EV Chargers (#133729) 2024-12-21 15:18:08 +01:00
Franck Nijhof
7e2d382ff4 Update aiohasupervisor to 0.2.2b5 (#133722) 2024-12-21 15:10:35 +01:00
Matthias Alphart
b5a7a41ebe KNX: Option to select specific tunnel endpoint on TCP connections (#131996) 2024-12-21 15:10:14 +01:00
Franck Nijhof
a3febc4449 Add select platform to Peblar Rocksolid EV Chargers integration (#133720) 2024-12-21 14:23:16 +01:00
Norbert Rittel
5abc03c21e Fix spelling of "Gateway PIN" and remove two excessive spaces (#133716) 2024-12-21 13:26:48 +01:00
Joost Lekkerkerker
dc9133f919 Use mac address in Twinkly for unique id (#133717) 2024-12-21 13:26:09 +01:00
Arie Catsman
a3fad89d0d Use super constructor self.config_entry in enphase_envoy coordinator (#133718) 2024-12-21 13:19:04 +01:00
Franck Nijhof
a3fab094c3 Add device test for Peblar Rocksolid EV Chargers (#133713) 2024-12-21 13:03:44 +01:00
G Johansson
11efec49db Fix test coverage in workday (#133616) 2024-12-21 12:45:00 +01:00
Jan Bouwhuis
6b666b3a0f Test color_temp updates are processed when an mqtt json light is turned off (#133715) 2024-12-21 12:44:00 +01:00
Franck Nijhof
7e24b353ac Add updates tests for Peblar Rocksolid EV Chargers (#133712) 2024-12-21 12:31:58 +01:00
Maciej Bieniek
5665abf991 Store Twinkly runtime data in config entry (#133714) 2024-12-21 12:31:40 +01:00
Artur Pragacz
6314d7a44c Fix section translations check (#133683) 2024-12-21 12:31:17 +01:00
Manu
b106b88f5c Adjust freezer tick in settings tests of IronOS integration (#133707) 2024-12-21 12:21:11 +01:00
Franck Nijhof
dbe04f17ad Add sensors tests for Peblar Rocksolid EV Chargers (#133710) 2024-12-21 12:20:03 +01:00
Maciej Bieniek
aad1d6a25d Use MAC address in Twinkly DeviceInfo.connections (#133708) 2024-12-21 12:19:11 +01:00
Franck Nijhof
7326555f03 Add diagnostic to Peblar Rocksolid EV Chargers integration (#133706) 2024-12-21 11:38:33 +01:00
Álvaro Fernández Rojas
5c2d769b54 Enable AEMET data cache (#131226) 2024-12-21 11:30:46 +01:00
Josef Zweck
66e863a2e3 Allow lamarzocco to reconnect websocket (#133635) 2024-12-21 11:29:24 +01:00
Richard Kroegel
78c9e47428 Improve BMW config flow (#133705) 2024-12-21 11:20:46 +01:00
J. Nick Koston
4e316429d3 Handle WebsocketConnectionError during mqtt auto reconnect (#133697)
followup to #133610 to handle the exception in the auto reconnect
path as well

fixes #132985
2024-12-21 11:18:47 +01:00
Norbert Rittel
989a3d1e24 Change "pin" to correct "PIN" for consistent translations (#133681) 2024-12-21 11:15:11 +01:00
Norbert Rittel
4efcf18c70 Change "pin" to "PIN" for consistency with common string (#133682) 2024-12-21 11:14:47 +01:00
Norbert Rittel
7998a05742 Replace lowercase "pin" in error message with the correct "PIN" (#133684) 2024-12-21 11:14:14 +01:00
Norbert Rittel
4ee9f813aa Fix inconsistent use of "pin" vs. "PIN" (#133685) 2024-12-21 11:13:44 +01:00
Franck Nijhof
859993e443 Add update platform to Peblar Rocksolid EV Chargers integration (#133570)
* Add update platform to Peblar Rocksolid EV Chargers integration

* Use device class translations
2024-12-21 10:55:00 +01:00
Allen Porter
4a063c3f9e Update the Google Tasks quality scale with documentation improvements (#133701) 2024-12-21 10:54:13 +01:00
J. Nick Koston
43fab48d4e Improve purge performance for PostgreSQL with large databases (#133699) 2024-12-21 10:53:15 +01:00
J. Nick Koston
02785a4ded Simplify query to find oldest state (#133700) 2024-12-21 10:37:16 +01:00
Andrew Sayre
e43f4466e0 Improve HEOS group handling (#132213)
* Move register method to GroupManager

* Remove GroupManager mapping when entity removed

* Add test for when unloaded

* Error when group member not found

* Use entity registery to remove entity

* Update tests per feedback
2024-12-21 09:40:33 +01:00
Erik Montnemery
82f54eb9d2 Adjust the default backup name (#133668) 2024-12-21 09:38:59 +01:00
Abílio Costa
954b6133cb Use common mock fixture in Idasen Desk config flow tests (#133679) 2024-12-21 09:35:47 +01:00
Florent Thoumie
9c70ec4150 iaqualink: fix load_verify_locations() blocking call (#133459)
* Try to fix blocking call

* Fix lint
2024-12-21 09:26:38 +01:00
Dan Raper
3788e942a7 Bump Ohme library version to 1.2.0 (#133666)
Bump library version
2024-12-21 09:25:34 +01:00
Kevin Worrel
e38a85da64 Add entity translation strings for ScreenLogic (#130708)
* Add translation strings for entities

* Translation key updates

* Mach original name

* Remove state translations

* Sentence case entity names

* Fix tests

* Add missing translation_key for Air temperature

* Revert inadvertant entity_id change on last_dose_time sensors

* Update homeassistant/components/screenlogic/strings.json

Lowercase 'entry'

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Define translations for each circuit delay sensor

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-21 09:25:21 +01:00
greyeee
861d9b3341 Add initial support for SwitchBot relay switch (#130863)
* Support relay switch

* 更新下版本

* add test case

* change to async_abort

* Upgrade PySwitchbot to 0.53.2

* change unit to volt

* upgrade pySwitchbot dependency

* bump lib, will be split into a seperate PR after testing is finished

* dry

* dry

* dry

* dry

* dry

* dry

* dry

* update tests

* fixes

* fixes

* cleanups

* fixes

* fixes

* fixes

* bump again

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-21 00:49:30 +01:00
J. Nick Koston
b6819cbff3 Bump PySwitchbot to 0.55.2 (#133690)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.54.0...0.55.2
2024-12-21 00:13:21 +01:00
Joost Lekkerkerker
9a0035e090 Fix Mealie test coverage (#133659) 2024-12-20 23:45:54 +01:00
Luke Lashley
1e420f16f7 Update Roborock to 2.8.4 (#133680) 2024-12-20 22:01:56 +01:00
G Johansson
b29be34f55 Allow Filter title to be translated (#128929) 2024-12-20 21:21:41 +01:00
Michael Hansen
8607ba884c Bump intents to 2024.12.20 (#133676) 2024-12-20 14:23:12 -05:00
Joost Lekkerkerker
2639bdbefd Add parallel updates to Mealie (#133660) 2024-12-20 19:21:37 +00:00
Norbert Rittel
c780933fa0 Reword invoke_pin action to avoid misunderstanding with "PIN" (#133665)
* Reword invoke_pin action to avoid misunderstanding with "PIN"

The previous mismatch between "PIN" and "pin" in the invoke_pin caused wrong translations as "PIN" was interpreted as the abbreviation for "Personal Identification Number".

This commit fixes this by explaining "pin" as related to "pinning" content on the device.

In addition the very "invoke" is replaced by "play" which every user and translator will understand immediately.

Along with those changes this commit reverts my previous change to "PIN" in all strings that made things worse.

* Use "Pin ID" for the field variable
2024-12-20 19:12:48 +01:00
Erik Montnemery
a23b37114e Improve recorder data migrator tests (#133628) 2024-12-20 07:41:14 -10:00
Abílio Costa
17f0c24895 Replace tests for Idasen Desk with parameterized test (#133672) 2024-12-20 18:24:57 +01:00
Steven B.
6ed345f773 Add check for client errors to stream component (#132866) 2024-12-20 07:20:24 -10:00
elmurato
233395c181 Add missing await in Minecraft Server (#133670) 2024-12-20 17:58:31 +01:00
Andre Lengwenus
92195ff77d Bump pypck to 0.8.1 (#133646)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-12-20 17:10:37 +01:00
Joost Lekkerkerker
ad7a334147 Add translations to Mealie exceptions (#133648) 2024-12-20 16:08:31 +01:00
Mick Vleeshouwer
87f5a7057e Fix target temperature for AtlanticElectricalTowelDryer in Overkiz (#133657) 2024-12-20 16:00:44 +01:00
Erik Montnemery
5afb9a5053 Validate password before restoring backup (#133647)
* Validate password before restoring backup

* Raise specific error when password is incorrect
2024-12-20 15:43:46 +01:00
shapournemati-iotty
1c0135880d Add outlet device class to iotty switch entity (#132912)
* upgrade iottycloud lib to 0.3.0

* Add outlet

* test outlet turn on and turn off

* test add outlet

* Refactor code to use only one SwitchEntity  with an EntityDescription to distinguish Outlet and Lightswitch

* Refactor switch entities to reduce duplicated code

* Refactor tests to reduce duplicated code

* Refactor code to improve abstraction layer using specific types instead of generics

* Remove print and redundant field
2024-12-20 15:33:05 +01:00
Erik Montnemery
f49111a4d9 Bump aiohasupervisor to version 0.2.2b4 (#133652)
* Bump aiohasupervisor to version 0.2.2b4

* Update test
2024-12-20 09:23:21 -05:00
Erik Montnemery
10478f4ca5 Fix logic in backup retention filter (#133654) 2024-12-20 09:19:57 -05:00
Norbert Rittel
9f43a7a17b Fix inconsistent spelling of "PIN" and "ID" (#133653)
* Fix inconsistent spelling of "PIN" and "ID"

Several actions contain an inconsistent spelling of "PIN" and "ID" with lowercase characters.

Especially to avoid (automated) mistranslations as (connection) pin etc. this needs to be corrected.

* Fix lowercase "blink" as well

Additional commit to fix the wrong spelling of "blink" along the way.
2024-12-20 15:17:47 +01:00
Joost Lekkerkerker
cbb4c06195 Add Mealie to strict typing (#133644) 2024-12-20 15:17:08 +01:00
Norbert Rittel
83fdc07df0 Fix inconsistent spelling of "PIN" vs. "pin" (#133655)
As "PIN" is an abbreviation it should be all-caps throughout the UI.

This commit fixes two inconsistent occurrences in the invoke_pin action.
2024-12-20 15:15:16 +01:00
Norbert Rittel
0d309aa632 Fix inconsistent spelling of "PIN" vs. "pin" (#133656)
Part of the strings in the strings.json use an inconsistent spelling of "PIN" as "pin"

This commit fixes this to ensure correct and consistent translations, too.
2024-12-20 15:14:04 +01:00
Erik Montnemery
7d04eef5c5 Reject duplicates in WS command backup/config/update (#133650)
* Reject duplicates in WS command backup/config/update

* Add tests
2024-12-20 15:06:55 +01:00
Joost Lekkerkerker
870dc4dbea Record Analytics Insights quality scale (#133571)
* Record Analytics Insights quality scale

* Record Analytics Insights quality scale

* Record Analytics Insights quality scale

* Update homeassistant/components/analytics_insights/quality_scale.yaml

Co-authored-by: Josef Zweck <josef@zweck.dev>

* Update homeassistant/components/analytics_insights/quality_scale.yaml

Co-authored-by: Josef Zweck <josef@zweck.dev>

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2024-12-20 13:14:41 +01:00
Erik Montnemery
4c96b83297 Fix reading extra metadata for local backups (#133643) 2024-12-20 13:13:25 +01:00
Erik Montnemery
5834ecb13e Fix homeassistant_included flag for local backups (#133640) 2024-12-20 12:36:54 +01:00
Cyrill Raccaud
e62a563ec1 Add Swiss Public Transport quality scale record (#131629) 2024-12-20 12:30:55 +01:00
Joost Lekkerkerker
6a599dc27a Record NYT Games quality scale (#133592)
* Record NYT Games quality scale

* Record NYT Games quality scale

* Fix
2024-12-20 12:30:35 +01:00
Joost Lekkerkerker
df383a3a31 Record Mealie quality scale (#133587)
* Record Mealie quality scale

* Record NYT Games quality scale

* Fix

* Fix

* Fix
2024-12-20 12:29:54 +01:00
Joost Lekkerkerker
86e43b7196 Record Knocki quality scale (#133582)
* Record Knocki quality scale

* Record Knocki quality scale

* Fix
2024-12-20 12:29:04 +01:00
dontinelli
b5c4608373 Upgrade QS from bronze to silver for slide_local (#133560) 2024-12-20 12:25:45 +01:00
Josef Zweck
bddd8624bb Add scale support to lamarzocco (#133335) 2024-12-20 12:24:15 +01:00
Franck Nijhof
6974f61703 2024.12.5 (#133636) 2024-12-20 11:45:57 +01:00
Erik Montnemery
3df992790d Bump aiohasupervisor to version 0.2.2b3 (#133631) 2024-12-20 10:59:52 +01:00
Kenny Root
b391dfe647 Switch to official Zabbix Python API (#131674) 2024-12-20 10:59:30 +01:00
Franck Nijhof
e7bdf1467b Bump version to 2024.12.5 2024-12-20 09:51:57 +00:00
J. Nick Koston
ff9df15cb0 Handle mqtt.WebsocketConnectionError when connecting to the MQTT broker (#133610)
fixes #132985
2024-12-20 09:43:13 +00:00
Joost Lekkerkerker
fdde9d3a52 Fix Twinkly raise on progress (#133601) 2024-12-20 09:43:09 +00:00
Marcel van der Veldt
8c1a18b383 Handle null value for elapsed time in Music Assistant (#133597) 2024-12-20 09:43:05 +00:00
J. Nick Koston
367749d93c Bump aiohttp to 3.11.11 (#133530) 2024-12-20 09:42:34 +00:00
Joakim Plate
13f32c6720 Bump gardena_bluetooth to 1.5.0 (#133502) 2024-12-20 09:41:07 +00:00
Joakim Plate
f8e1a786be Update fjäråskupan to 2.3.2 (#133499) 2024-12-20 09:41:03 +00:00
Joakim Plate
cd5a46f11d Update fjäråskupan to 2.3.1 (#133493) 2024-12-20 09:41:00 +00:00
Luke Lashley
0140aa7240 Update Roborock to 2.8.1 (#133492) 2024-12-20 09:40:56 +00:00
Mick Vleeshouwer
92f50c63b1 Don't raise Overkiz user flow unique_id check (#133471) 2024-12-20 09:40:52 +00:00
Mick Vleeshouwer
1afeabfd64 Bump pyOverkiz to 1.15.3 (#133458) 2024-12-20 09:40:49 +00:00
Quentame
709d15a79b Bump Freebox to 1.2.1 (#133455) 2024-12-20 09:40:45 +00:00
J. Nick Koston
cf4dbcfebf Ensure screenlogic retries if the protocol adapter is still booting (#133444)
* Ensure screenlogic retries if the protocol adapter is still booting

If the protocol adapter is still booting, it will disconnect and never
retry

```
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 640, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/screenlogic/__init__.py", line 65, in async_setup_entry
    await gateway.async_connect(**connect_info)
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/gateway.py", line 142, in async_connect
    connectPkg = await async_connect_to_gateway(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/requests/login.py", line 107, in async_connect_to_gateway
    mac_address = await async_gateway_connect(transport, protocol, max_retries)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/requests/login.py", line 77, in async_gateway_connect
    raise ScreenLogicConnectionError("Host unexpectedly disconnected.")
screenlogicpy.const.common.ScreenLogicConnectionError: Host unexpectedly disconnected.
```

* coverage
2024-12-20 09:40:42 +00:00
Ron Weikamp
59e6fa5138 Bugfix: also schedule time based integration when source is 0 (#133438)
* Bugfix also schedule time based integration when source is 0

* Update tests/components/integration/test_sensor.py

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>

* Improve comment in test. Remove redundant assertion.

---------

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2024-12-20 09:40:38 +00:00
IceBotYT
8400ef8441 Add support for Nice G.O. HAE00080 wall station (#133186) 2024-12-20 09:40:35 +00:00
IceBotYT
6188db18c2 Bump nice-go to 1.0.0 (#133185)
* Bump Nice G.O. to 1.0.0

* Mypy

* Pytest
2024-12-20 09:40:31 +00:00
Jonas Fors Lellky
7e6392f062 Define setpoints as constants in flexit_bacnet (#133580)
* Define setpoints as consts

* Use a regular comment instead of docstring

* Un-indent comment
2024-12-20 10:11:50 +01:00
Joakim Sørensen
10191e7a23 Add async_register_backup_agents_listener to cloud/backup (#133584)
* Add async_register_backup_agents_listener to cloud/backup

* Coverage

* more coverage
2024-12-20 08:55:00 +01:00
G Johansson
ad34bc8910 Add min/max price sensor to Nord Pool (#133534)
* Add min/max price sensor to Nord Pool

* Last fixes

* Make link in strings

* Replace func
2024-12-20 08:26:36 +01:00
Manu
26212798a3 Fixes and code cleanup for IronOS integration (#133579)
* Fix typing and cleanup in IronOS integration

* fix test not using freezer

* changes

* fix timedelta
2024-12-20 08:25:08 +01:00
J. Nick Koston
3d20c5c5d6 Remove lower bound for history start time state query (#133607)
Remove lower bound for start time state query

With the new query in #133553 we do not need a lower bound
on the search since it will always use index now and we
always want the newest value in the index before the
provided timestamp. The lower bound is redudant at this
point as it will always be older than the oldest
time point for the state. It only made sense when
the query would have had to examine a time window
of states instead of doing an index only search.
2024-12-20 08:24:47 +01:00
Christopher Fenner
afae257a12 Bump PyViCare to 2.39.1 (#133619) 2024-12-20 01:14:48 +01:00
Quentame
64aba0c1a3 Bump Freebox to 1.2.1 (#133455) 2024-12-20 00:48:03 +01:00
J. Nick Koston
551a584ca6 Handle mqtt.WebsocketConnectionError when connecting to the MQTT broker (#133610)
fixes #132985
2024-12-19 21:39:39 +01:00
Jan-Philipp Benecke
b261c7f18a Mark docs-installation-parameters for SABnzbd as done (#133609) 2024-12-19 20:29:12 +01:00
Joost Lekkerkerker
61e5f10d12 Fix Twinkly raise on progress (#133601) 2024-12-19 20:27:08 +01:00
adam-the-hero
2413fc4c0d Fix Watergate Water meter volume sensor (#133606) 2024-12-19 20:25:24 +01:00
Abílio Costa
e6ef3fe507 Update Idasen Desk user flow step strings (#133605) 2024-12-19 20:24:10 +01:00
J. Nick Koston
04bcc8d3d3 Bump yalexs-ble to 2.5.6 (#133593) 2024-12-19 09:13:51 -10:00
Joost Lekkerkerker
52683c5f75 Improve Airgradient config flow tests (#133594) 2024-12-19 19:58:33 +01:00
Raphael Hehl
2f77cda822 Add basic UniFi Protect AiPort support (#133523)
* UnifiProtect add basic support for AiPort devices

* Sort ignore-words

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-19 08:18:21 -10:00
Marcel van der Veldt
a97434976e Handle null value for elapsed time in Music Assistant (#133597) 2024-12-19 19:00:18 +01:00
epenet
e357e0a406 Set default min/max color temperature in template lights (#133549) 2024-12-19 18:40:04 +01:00
Andrew Jackson
1a068d99d6 Add data descriptions to Mealie integration (#133590) 2024-12-19 18:28:50 +01:00
Joost Lekkerkerker
95b3d27b60 Update Airgradient quality scale (#133569) 2024-12-19 18:23:40 +01:00
Allen Porter
a3ef3cce3e Improve Google Tasks coordinator updates behavior (#133316) 2024-12-19 16:41:47 +01:00
Erik Montnemery
255f85eb2f Fix boot loop after restoring backup (#133581) 2024-12-19 16:04:59 +01:00
Josef Zweck
94c7d18346 Bump pylamarzocco to 1.4.1 (#133557) 2024-12-19 13:36:32 +01:00
Noah Husby
eb8ee1339c Set Russound RIO quality scale to silver (#133494) 2024-12-19 12:40:23 +01:00
Stefan Agner
962f1bad32 Add mW as unit of measurement for Matter electrical power sensors (#133504) 2024-12-19 11:40:05 +00:00
Erik Montnemery
dd215b3d5d Revert "Revert "Simplify recorder RecorderRunsManager (#131785)"" (#133564)
Revert "Revert "Simplify recorder RecorderRunsManager" (#133201)"

This reverts commit 980b8a91e6.
2024-12-19 12:32:15 +01:00
Erik Montnemery
bb7abd037c Revert "Revert "Improve recorder history queries (#131702)"" (#133561)
Revert "Revert "Improve recorder history queries (#131702)" (#133203)"

This reverts commit 74e4654c26.
2024-12-19 11:50:12 +01:00
J. Nick Koston
d35b34f142 Replace start time state query with single correlated scalar subquery (#133553) 2024-12-19 00:14:32 -10:00
dependabot[bot]
1c119518db Bump codecov/codecov-action from 5.1.1 to 5.1.2 (#133547)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 10:52:10 +01:00
Norbert Rittel
9a6c749714 Change 'GSuite' to 'Workspace', fix 'Start' field label (#133554)
* Change 'GSuite' to 'Workspace', fix 'Start' field label

Several years ago Google renamed "G Suite" to "Google Workspace", this commit applies the same change to one of the  field descriptions of the set_vacation action.

In addition the "Start" field of the action currently uses the common action (!) for Start which is wrong in this context, it stands for the beginning here.

This commit changes this back to a local definition of this label just like "End".

In German for example "Start" needs to be "Beginn" in this context while the common action is translated as "Starten".

* Use "Google Workspace" for more clarity

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-19 10:51:30 +01:00
Norbert Rittel
79484ea7f5 Grammar fixes for action names and descriptions (#133559)
Several KNX actions contain a wrong "s" at the end of their verbs while those are missing in several of the descriptions.

This commit changes all those to make them consistent with the remaining actions in KNX and the standard terminology in Home Assistant.
2024-12-19 10:50:12 +01:00
Franck Nijhof
3568bdca65 Update Home Assistant base image to 2024.12.0 (#133558) 2024-12-19 10:48:43 +01:00
Erik Montnemery
a76f82080b Create repair issues when automatic backup fails (#133513)
* Create repair issues when automatic backup fails

* Improve test coverage

* Adjust issues
2024-12-19 10:40:07 +01:00
Christopher Fenner
cd384cadbe Fulfill IQS rule config-flow in ViCare integration (#133524)
* add data_description

* Apply suggestions from code review

Co-authored-by: Josef Zweck <josef@zweck.dev>

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2024-12-19 10:04:26 +01:00
J. Nick Koston
69a8d3f3c1 Revert "Optimize start time state queries for PostgreSQL" (#133555) 2024-12-18 23:01:58 -10:00
J. Nick Koston
a3fb6e8f92 Bump pydantic to 2.10.4 (#133539)
changelog: https://github.com/pydantic/pydantic/compare/v2.10.3...v2.10.4
2024-12-19 10:01:40 +01:00
Erik Montnemery
c8480627ca Add comment motivating magic number for MySQL error codes (#133516)
* Add comment motivating magic number for MySQL error codes

* Pick nits
2024-12-19 09:56:32 +01:00
Franck Nijhof
893f605d61 Revert "Update docker base image to 2024.12.1" (#133552)
Revert "Update docker base image to 2024.12.1 (#133323)"

This reverts commit 66dcd38701.
2024-12-19 09:42:22 +01:00
epenet
ddd2ba6c4a Set default min/max color temperature in hue lights (#133548) 2024-12-19 08:36:29 +01:00
Stefan Agner
681863f80e Use mV and mA as units for electrical power measurement in Matter (#133505) 2024-12-19 08:32:46 +01:00
J. Nick Koston
99698ef95d Optimize start time state queries for PostgreSQL (#133228) 2024-12-18 19:41:53 -10:00
Franck Nijhof
3fe08a7223 Add zeroconf discovery to Peblar Rocksolid EV chargers (#133529) 2024-12-19 00:39:14 +01:00
J. Nick Koston
35601480d2 Bump aiohttp to 3.11.11 (#133530) 2024-12-18 23:48:39 +01:00
Abílio Costa
0076bd8389 Simplify Idasen Desk entity properties (#133536) 2024-12-18 23:47:24 +01:00
Franck Nijhof
9f3c549f8d Add integration setup tests to Peblar Rocksolid EV Chargers (#133532) 2024-12-18 23:46:18 +01:00
Norbert Rittel
03707e6308 Improve field descriptions for Download file action (#133413)
* Improve field descriptions for Download file action

Currently two of the field descriptions for the Download file action don't explain exactly what should be entered but rather explain these like additional actions.

The third, the Overwrite file option is misleading as it does not refer to an existing file.

This commit fixes both issues by explaining the purpose of all three fields in a slightly more detailed fashion.

* Update homeassistant/components/downloader/strings.json

Co-authored-by: Josef Zweck <josef@zweck.dev>

* Update homeassistant/components/downloader/strings.json

Co-authored-by: Josef Zweck <josef@zweck.dev>

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2024-12-18 22:40:30 +01:00
Abílio Costa
9e6a8638dd Bump idasen-ha to 2.6.3 (#133508)
This is a minor bump that adds py.typed
2024-12-18 22:38:57 +01:00
Norbert Rittel
2a9082559a Fix names and description of two actions (#133528)
The two actions enable_motion_recording and disable_motion_recording use "Enables" and "Disables" in their names.

This is inconsistent with the name of the actions, all other actions of this component, and the standard way of naming them, too.

In addition the description of the latter misses the "s" which causes additional inconsistency – especially in translations.
2024-12-18 22:35:58 +01:00
starkillerOG
ba3fca53b0 Reolink platinum quality scale (#133514) 2024-12-18 21:49:32 +01:00
Raphael Hehl
e4bb351d2d Bump uiprotect to 7.1.0 (#133520)
* Bump uiprotect to version 7.1.0

* Add aiports to bootstrap fixture in unifiprotect tests
2024-12-18 21:41:22 +01:00
Christopher Fenner
1bdda0249e Bump PyViCare to 2.39.0 (#133519) 2024-12-18 21:38:52 +01:00
Erik Montnemery
ff8bc763c3 Ensure indices needed by data migrators exist (#133367)
* Ensure indices needed by data migrators exist

* Update test

* Improve test

* Ignore index error on char(0) columns

* Adjust tests

* Address review comments

* Add comment motivating magic number
2024-12-18 21:29:52 +01:00
dontinelli
8a8be71f96 Add tests for cover and increase test coverage for slide_local (#133515) 2024-12-18 20:53:05 +01:00
starkillerOG
19e6867f1a Reolink translate errors (#132301) 2024-12-18 20:22:33 +01:00
Norbert Rittel
c8f050ecbc Fix the local_file.update_file_path action's name and description (#133509) 2024-12-18 20:08:57 +01:00
IceBotYT
b7ff27122a Add support for Nice G.O. HAE00080 wall station (#133186) 2024-12-18 19:47:41 +01:00
Shay Levy
3a8b0b3ea6 Use Switcher _async_call_api in climate (#133230) 2024-12-18 19:46:52 +01:00
mvn23
0ff2a0d66d Add "cancel room setpoint override" button to opentherm_gw (#132162) 2024-12-18 19:46:30 +01:00
Joakim Plate
4daf6dd41d Bump gardena_bluetooth to 1.5.0 (#133502) 2024-12-18 19:39:35 +01:00
Thomas55555
51bead3229 Update number platform values before add in APSystems and add tests (#131938)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-18 19:34:49 +01:00
Manu
352e948d56 Add tests for already_configured erros in IronOS integration (#132265) 2024-12-18 19:33:33 +01:00
Manu
70ad4ee454 Add select platform to IronOS (#132218) 2024-12-18 19:32:51 +01:00
TJ Horner
53ef96c63e weatherkit: use stale data for up to an hour if updates fail (#130398) 2024-12-18 19:21:03 +01:00
Franck Nijhof
bb2d027532 Add Peblar Rocksolid EV Chargers integration (#133501)
* Add Peblar Rocksolid EV Chargers integration

* Process review comments
2024-12-18 19:11:13 +01:00
Erik Montnemery
51d63ba508 Store automatic backup flag in backup metadata (#133500) 2024-12-18 18:30:46 +01:00
Arie Catsman
fc622e398f add exception translation to enphase_envoy (#132483) 2024-12-18 18:24:12 +01:00
peteS-UK
920de90603 Increase Squeezebox config_flow test coverage to 100% (#133484)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-18 18:22:22 +01:00
Joakim Plate
a6089b497a Update fjäråskupan to 2.3.2 (#133499) 2024-12-18 18:03:27 +01:00
Erik Montnemery
5516f3609d Rename strategy backup to automatic backup (#133489)
* Rename strategy backup to automatic backup

* Update homeassistant/components/backup/config.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-18 17:35:11 +01:00
Joakim Plate
a1558213c4 Update fjäråskupan to 2.3.1 (#133493) 2024-12-18 16:53:15 +01:00
Luke Lashley
2564533dae Update Roborock to 2.8.1 (#133492) 2024-12-18 16:22:39 +01:00
Noah Husby
f46e764982 Update quality scale for Russound RIO (#133093) 2024-12-18 16:06:48 +01:00
dontinelli
d6c201de4a Add exceptions and translations for slide_local (#133490) 2024-12-18 15:33:11 +01:00
mkmer
c9f1829c0b Add (de)humidifier platform to Honeywell (#132287)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-18 15:27:40 +01:00
dontinelli
1e075cdac7 Add diagnostics to slide_local (#133488) 2024-12-18 15:21:17 +01:00
Philip Baylas
fce6d6246f Change log level of connection failure to info (#132625)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-18 15:07:03 +01:00
Maciej Bieniek
3132700492 Add ability to translate ENUM sensor states in Unifi integration (#131921) 2024-12-18 15:02:44 +01:00
adam-the-hero
943b1d9f08 Add sensors platform to Watergate integration (#133015) 2024-12-18 14:52:25 +01:00
Markus Jacobsen
2d6d313e5c Complete adding custom integration action sections support to hassfest (#132443) 2024-12-18 14:50:12 +01:00
Guido Schmitz
9716183997 Add entity translations to devolo Home Control (#132927) 2024-12-18 14:38:29 +01:00
Andre Lengwenus
a46a0ad2b4 Add device_id parameter to LCN actions (service calls) (#129590) 2024-12-18 14:35:02 +01:00
J. Diego Rodríguez Royo
c06bc53724 Deprecate Home Connect program switches (#131641) 2024-12-18 14:26:37 +01:00
Bas Brussee
4399d09820 Allow data description in sections (#128965)
* Allow data description in sections

* update format with ruff

* Add data_description to kitchen_sink input section

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-12-18 14:02:08 +01:00
Abílio Costa
ca2c7280eb Remove uneeded logger param from Idasen Desk Coordinator (#133485) 2024-12-18 13:59:56 +01:00
Erik Montnemery
ecb3bf79f3 Revert "Add support for subentries to config entries" (#133470)
Revert "Add support for subentries to config entries (#117355)"

This reverts commit ad15786115.
2024-12-18 13:51:05 +01:00
Joost Lekkerkerker
2aba1d399b Rename test file to singular form (#133482) 2024-12-18 12:47:30 +00:00
greyeee
be25cb7aa7 Add support for SwitchBot Relay Switch 1 and Relay Switch 1PM (#132327) 2024-12-18 13:19:45 +01:00
Mick Vleeshouwer
3bb6256572 Add test button for SmokeSensor in Overkiz (#133476) 2024-12-18 11:48:10 +01:00
Mick Vleeshouwer
fc4100833e Change device class from Volume to Volume Storage in Overkiz (#133473)
Change device class from Volume to Volume Storage
2024-12-18 11:43:04 +01:00
Erik Montnemery
992afc4cd3 Set the with_strategy_settings to None for unknown backups (#133466) 2024-12-18 11:27:07 +01:00
Mick Vleeshouwer
7730f423b3 Add identify device class in Overkiz (#133474) 2024-12-18 11:22:32 +01:00
Mick Vleeshouwer
05b0c56191 Use enum instead of string for button entities key in Overkiz (#133472) 2024-12-18 11:22:22 +01:00
Mick Vleeshouwer
fa0e54e658 Don't raise Overkiz user flow unique_id check (#133471) 2024-12-18 11:05:52 +01:00
Joakim Sørensen
869a0d7abc Add name to cloud connection info response (#133468) 2024-12-18 11:01:38 +01:00
dotvav
90208d2eb1 Bump pypalazzetti to 0.1.15 (#133433) 2024-12-18 10:58:25 +01:00
J. Diego Rodríguez Royo
a6520d2627 Handle Home Connect error at diagnostics (#131644) 2024-12-18 10:52:45 +01:00
epenet
8b8c409916 Fix test-before-setup IQS check (#133467) 2024-12-18 10:44:19 +01:00
Ron Weikamp
a2be5a383c Bugfix: also schedule time based integration when source is 0 (#133438)
* Bugfix also schedule time based integration when source is 0

* Update tests/components/integration/test_sensor.py

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>

* Improve comment in test. Remove redundant assertion.

---------

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2024-12-18 10:41:46 +01:00
Tomer Shemesh
39d781905d Add ssdp discovery to Onkyo (#131066) 2024-12-18 10:21:37 +01:00
Abílio Costa
5fb5e933e2 Use a common base entity for Idasen Desk (#132496)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-18 10:20:14 +01:00
Mick Vleeshouwer
413a578fdb Bump pyOverkiz to 1.15.3 (#133458) 2024-12-18 10:19:57 +01:00
Jan-Philipp Benecke
c1cf0e23b2 Lift SABnzbd to bronze quality scale (#133453) 2024-12-18 10:10:42 +01:00
Noah Husby
a449ca65be Improve test coverage for Russound RIO (#133096)
* Improve test coverage for Russound RIO

* Update

* Update
2024-12-18 09:33:17 +01:00
Arie Catsman
4c91d1b402 Add support for ACB batteries to Enphase Envoy (#131298)
* Add support for ACB batteries to Enphase Envoy

* Add tests for ACB battery support in ENphase Envoy

* make acb state sensordeviceclass ENUM

* Capitalize strings and use common idle
2024-12-18 08:48:37 +01:00
Noah Husby
fab92d1cf8 Add reconfigure flow to Russound RIO (#133091)
* Add reconfigure flow to Russound RIO

* Mark reconfiguration flow as done

* Update

* Update
2024-12-18 08:40:27 +01:00
Assaf Inbal
c10473844f Add sensors to Ituran integration (#133359)
Add sensors to Ituran
2024-12-18 08:36:42 +01:00
dependabot[bot]
dfdd83789a Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#133461) 2024-12-18 08:05:39 +01:00
J. Nick Koston
9bff9c5e7b Ensure screenlogic retries if the protocol adapter is still booting (#133444)
* Ensure screenlogic retries if the protocol adapter is still booting

If the protocol adapter is still booting, it will disconnect and never
retry

```
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 640, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/screenlogic/__init__.py", line 65, in async_setup_entry
    await gateway.async_connect(**connect_info)
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/gateway.py", line 142, in async_connect
    connectPkg = await async_connect_to_gateway(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/requests/login.py", line 107, in async_connect_to_gateway
    mac_address = await async_gateway_connect(transport, protocol, max_retries)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/screenlogicpy/requests/login.py", line 77, in async_gateway_connect
    raise ScreenLogicConnectionError("Host unexpectedly disconnected.")
screenlogicpy.const.common.ScreenLogicConnectionError: Host unexpectedly disconnected.
```

* coverage
2024-12-17 20:57:43 -05:00
Abílio Costa
e73512e11c Add integration_type to Idasen Desk (#132486)
* Add Idasen Desk quality scale record

* Update wrong checks

* Add integration_type to Idasen Desk
2024-12-17 23:49:04 +01:00
G Johansson
4c60e36f4f Add Get price service to Nord Pool (#130185)
* Add get_price service to Nord Pool

* Tests and fixes

* Fixes

* Not used fixtures

* update qs

* Fixes

* docstring

* Remove selector from strings

* Mod service
2024-12-17 21:59:20 +01:00
G Johansson
f8cd6204ca Fix reconfigure in Nord Pool (#133431) 2024-12-17 21:30:49 +01:00
Jan-Philipp Benecke
eae25023e7 Do not remove services when last config entry is unloaded in SABnzbd (#133449) 2024-12-17 21:27:41 +01:00
Klaas Schoute
21c3bf48f9 Allow only single instance of easyenergy integration (#133447) 2024-12-17 21:02:39 +01:00
Jan-Philipp Benecke
5014f305bf Mark docs-removal-instructions for SABnzbd as done (#133446) 2024-12-17 20:57:04 +01:00
benjamin-dcs
b124ebeb1f Differentiate File integration entries by prefixing the title with the platform instead (#131016)
Differentiate File integration entries by prefixes the title with the platform
2024-12-17 20:54:30 +01:00
jimmyd-be
935bf3fb11 Bump renson-endura-delta to 1.7.2 (#129491) 2024-12-17 20:49:42 +01:00
Louis Christ
9c26654db7 Use entity services in bluesound integration (#129266) 2024-12-17 20:44:38 +01:00
Klaas Schoute
c9ca1f63ea Allow only single instance of energyzero integration (#133443) 2024-12-17 20:44:24 +01:00
Jan-Philipp Benecke
5e5bebd7eb Remove unused constants from SABnzbd (#133445) 2024-12-17 20:43:53 +01:00
Richard Kroegel
8bbbbb00d5 Limit unique_id migration to platform for BMW (#131582) 2024-12-17 20:43:09 +01:00
Mick Vleeshouwer
a7ba63bf86 Add missing CozyTouch servers to ConfigFlow expection handler in Overkiz (#131696) 2024-12-17 20:22:07 +01:00
G Johansson
d785c4b0b1 Add optional category in OptionsFlow to holiday (#129514) 2024-12-17 20:20:26 +01:00
Mick Vleeshouwer
e9e8228f07 Improve empty state handling for SomfyThermostat in Overkiz (#131700) 2024-12-17 20:18:16 +01:00
Erik Montnemery
d22668a166 Don't run recorder data migration on new databases (#133412)
* Don't run recorder data migration on new databases

* Add tests
2024-12-17 20:02:12 +01:00
Erik Montnemery
633433709f Clean up backups after manual backup (#133434)
* Clean up backups after manual backup

* Address review comments
2024-12-17 20:00:02 +01:00
Artur Pragacz
af1222e97b Distinct sources per zone in Onkyo (#130547) 2024-12-17 19:31:25 +01:00
epenet
b5f6734197 Simplify modern_forms config flow (part 2) (#130494) 2024-12-17 19:23:54 +01:00
Kevin Stillhammer
98d5020690 Support units and filters in async_get_travel_times_service for waze_travel_time (#130776) 2024-12-17 18:00:23 +01:00
DrBlokmeister
da85c497bf Add transmission download path to events + add_torrent service (#121371)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-17 17:48:54 +01:00
Norbert Rittel
1de8d63a63 Remove three duplicated space characters in strings.json (#133436) 2024-12-17 17:48:18 +01:00
Erik Montnemery
89eda9e068 Don't raise when removing non-existing cloud backup (#133429) 2024-12-17 17:47:17 +01:00
Norbert Rittel
3341e3d95b Fix two occurrences of "HomeAssistant" adding the missing space (#133435) 2024-12-17 17:43:56 +01:00
Erik Montnemery
25a63863cb Adapt hassio backup agent to supervisor changes (#133428) 2024-12-17 17:21:13 +01:00
Matthias Alphart
44a86f537f Add quality scale for Fronius (#131770) 2024-12-17 17:12:11 +01:00
Jan-Philipp Benecke
d9fb5a7582 Record current IQS state for SABnzbd (#131656)
* Record current IQS state for SAbnzbd

* Convert review comments to IQS comments
2024-12-17 17:10:04 +01:00
Krisjanis Lejejs
a14aca31e5 Add MFA login flow support for cloud component (#132497)
* Add MFA login flow support for cloud component

* Add tests for cloud MFA login

* Update code to reflect used package changes

* Update code to use underlying package changes

* Remove unused change

* Fix login required parameters

* Fix parameter validation

* Use cv.has_at_least_one_key for param validation

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-17 16:44:50 +01:00
Franck Nijhof
5b1c5bf9f6 Record current IQS scale for Tailwind (#133158)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-17 16:34:48 +01:00
Josef Zweck
a9f6982ac0 Mark acaia as platinum quality (#131723)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-17 15:45:16 +01:00
Josef Zweck
9cc5f7ff84 Mark lamarzocco as platinum quality (#131609) 2024-12-17 15:41:34 +01:00
Franck Nijhof
a5eb816dcf 2024.12.4 (#133422) 2024-12-17 15:28:28 +01:00
Erik Montnemery
4adfd52dc0 Improve hassio backup agent test coverage (#133426) 2024-12-17 15:08:03 +01:00
Erik Montnemery
8b3cd41396 Improve hassio backup agent test coverage (#133424) 2024-12-17 13:55:04 +01:00
Cyrill Raccaud
89946348df Add reconfigure to Cookidoo integration (#133144)
* add reconfigure

* merge steps

* comments
2024-12-17 13:54:07 +01:00
Erik Montnemery
a4588c80d5 Bump aiohasupervisor to version 0.2.2b2 (#133417)
* Bump aiohasupervisor to version 0.2.2b2

* Update test
2024-12-17 13:18:26 +01:00
Franck Nijhof
517f3faa0a Bump version to 2024.12.4 2024-12-17 12:14:26 +00:00
G Johansson
b4015805f7 Bump holidays to 0.63 (#133391) 2024-12-17 12:14:04 +00:00
Jonas Fors Lellky
a56ad0273b Fix fan setpoints for flexit_bacnet (#133388) 2024-12-17 12:14:00 +00:00
Maciej Bieniek
2bc917c842 Bump imgw-pib to version 1.0.7 (#133364) 2024-12-17 12:13:57 +00:00
Michael
97f22b3a3d Allow load_verify_locations with only cadata passed (#133299) 2024-12-17 12:13:53 +00:00
J. Nick Koston
a48a5adc81 Set code_arm_required to False for homekit_controller (#133284) 2024-12-17 12:13:50 +00:00
J. Nick Koston
eb86b00dd4 Bump yalexs-ble to 2.5.5 (#133229)
changelog: https://github.com/bdraco/yalexs-ble/compare/v2.5.4...v2.5.5
2024-12-17 12:13:47 +00:00
Jan Bouwhuis
e93256951e Bump incomfort-client to v0.6.4 (#133205) 2024-12-17 12:13:43 +00:00
Erik Montnemery
3b0ab421b0 Revert "Improve recorder history queries (#131702)" (#133203) 2024-12-17 12:11:13 +00:00
Erik Montnemery
ca47253d81 Revert "Simplify recorder RecorderRunsManager" (#133201)
Revert "Simplify recorder RecorderRunsManager (#131785)"

This reverts commit cf0ee63507.
2024-12-17 12:08:41 +00:00
epenet
e61142c2c2 Check if requirement is typed in strict_typing IQS validation (#133415)
* Check if requirement is typed in strict_typing IQS validation

* Apply suggestions from code review

* Apply suggestions from code review

* Return a list

* Adjust

* Improve
2024-12-17 12:53:27 +01:00
Avi Miller
9b0a489753 Bump aiolifx to 1.1.2 and add new HomeKit product prefixes (#133191)
Signed-off-by: Avi Miller <me@dje.li>
2024-12-17 11:44:54 +00:00
Conor Eager
9b02db008e Bump starlink-grpc-core to 1.2.1 to fix missing ping (#133183) 2024-12-17 11:44:50 +00:00
J. Nick Koston
223817a7fb Bump yalexs-ble to 2.5.4 (#133172) 2024-12-17 11:44:47 +00:00
G Johansson
cdea9b5d3a Fix strptime in python_script (#133159)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-12-17 11:44:41 +00:00
Joost Lekkerkerker
8286ec9e60 Bump yt-dlp to 2024.12.13 (#133129) 2024-12-17 11:44:38 +00:00
rappenze
cce7b9ac34 Fix fibaro climate hvac mode (#132508) 2024-12-17 11:44:34 +00:00
Erik Montnemery
a42c0230c9 Simplify recorder RecorderRunsManager (#131785) 2024-12-17 11:44:30 +00:00
G Johansson
637614299c Fix strptime in python_script (#133159)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-12-17 12:41:18 +01:00
epenet
991864b38c Fix schema translation checks for nested config-flow sections (#133392) 2024-12-17 12:02:53 +01:00
Jonas Fors Lellky
ce0117b2b8 Fix fan setpoints for flexit_bacnet (#133388) 2024-12-17 11:36:45 +01:00
Arie Catsman
084ef20695 Add quality_scale.yaml to enphase_envoy (#132489) 2024-12-17 11:33:04 +01:00
epenet
0dbd5bffe6 Fix incorrect schema in config tests (#133404) 2024-12-17 11:26:51 +01:00
G Johansson
d8e853941a Bump holidays to 0.63 (#133391) 2024-12-17 11:10:38 +01:00
dotvav
c0264f73b0 Add palazzetti status sensor (#131348)
* Add status sensor

* Lower the case of strings keys

* Make const Final

* Fix typo

* Fix typo

* Merge similar statuses

* Increase readability

* Update snapshot
2024-12-17 10:17:50 +01:00
Jan Bouwhuis
ac6d718094 Fix mqtt reconfigure flow (#133315)
* FIx mqtt reconfigure flow

* Follow up on code review
2024-12-17 09:37:46 +01:00
Manu
9ca9e787b2 Add tests for Habitica integration (#131780)
* Add tests for Habitica integration

* update iqs
2024-12-17 09:07:18 +01:00
Vivien Chene
fc9d32ef65 Fix issue when no data, where the integer sensor value is given a string (#132123)
* Fix issue when no data, where the integer sensor value is given a string

* Use None and not '0'
2024-12-17 08:57:43 +01:00
Marc Mueller
2d8e693cdb Update mypy-dev to 1.14.0a7 (#133390) 2024-12-17 07:34:59 +01:00
Ludovic BOUÉ
1512cd5fb7 Add Matter battery replacement description (#132974) 2024-12-17 00:03:32 +01:00
G Johansson
73e3e91af2 Nord Pool iqs platinum (#133389) 2024-12-16 23:54:56 +01:00
Dan Raper
a374c7e4ca Add reauth flow to Ohme (#133275)
* Add reauth flow to ohme

* Reuse config flow user step for reauth

* Tidying up

* Add common _validate_account method for reauth and user config flow steps

* Add reauth fail test
2024-12-16 23:54:33 +01:00
Franck Nijhof
9cdc36681a Remove setup entry mock assert from LaMetric config flow (#133387) 2024-12-16 23:01:24 +01:00
Marc Mueller
8c67819f50 Update axis to v64 (#133385) 2024-12-16 22:40:00 +01:00
Michael Hansen
308200781f Add required domain to vacuum intents (#133166) 2024-12-16 21:49:15 +01:00
Franck Nijhof
3a622218f4 Improvements to the LaMetric config flow tests (#133383) 2024-12-16 21:47:31 +01:00
G Johansson
40182fc197 Load sun via entity component (#132598)
* Load sun via entity component

* Remove unique id

* Remove entity registry
2024-12-16 21:35:55 +01:00
dontinelli
2da7a93139 Add switch platform to local_slide (#133369) 2024-12-16 20:53:17 +01:00
Alexandre CUER
6a54edce19 Gives a friendly name to emoncms entities if unit is not specified (#133358) 2024-12-16 19:26:47 +01:00
Erik Montnemery
34ab3e033f Remove support for live recorder data post migration of entity IDs (#133370) 2024-12-16 19:23:05 +01:00
Simon
e6e9788ecd Add quality scale to ElevenLabs (#133276) 2024-12-16 19:18:09 +01:00
Joakim Sørensen
482ad6fbee Increase backup upload timeout (#132990) 2024-12-16 19:12:15 +01:00
Maciej Bieniek
77fb440ed4 Bump imgw-pib to version 1.0.7 (#133364) 2024-12-16 19:06:06 +01:00
epenet
239767ee62 Set default min/max color temperature in mqtt lights (#133356) 2024-12-16 17:48:59 +01:00
Andrew Sayre
cefb4a4ccc Add HEOS reconfigure flow (#133326)
* Add reconfig flow

* Add reconfigure tests

* Mark reconfigure_flow done

* Review feedback

* Update tests to always end in terminal state

* Correct test name and docstring
2024-12-16 10:08:14 -06:00
Åke Strandberg
5adb7f4542 Translate exception messages in myUplink (#131626)
* Translate exceptions

* Add one more translation

* Adding more translations

* Make message easier to understand for end-user

* Clarify message

* Address review comments
2024-12-16 15:42:15 +01:00
Erik Montnemery
14f4f8aeb5 Update hassio backup agents on mount added or removed (#133344)
* Update hassio backup agents on mount added or removed

* Address review comments
2024-12-16 15:37:29 +01:00
Maikel Punie
a34992c0b5 Velbus add PARALLEL_UPDATES to all platforms (#133155) 2024-12-16 15:13:50 +01:00
Matthias Alphart
6f278fb856 Remove custom "unknown" state from Fronius Enum sensor (#133361) 2024-12-16 14:13:19 +01:00
Assaf Inbal
a953abf5c3 Add reauth flow to Ituran (#132755) 2024-12-16 14:00:06 +01:00
Maikel Punie
38fdfba169 Velbus finish config-flow-test-coverage (#133149)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-16 13:56:17 +01:00
Åke Strandberg
0a0f482702 Update myuplink quality scale (#133083)
Updated documentation
2024-12-16 13:39:46 +01:00
Guido Schmitz
cc27c95bad Use unique_id in devolo Home Network tests (#133147) 2024-12-16 13:35:55 +01:00
Franck Nijhof
836fd94a56 Record current IQS state for LaMetric (#133040) 2024-12-16 13:31:13 +01:00
Manu
34911a78bd Add Habitica quality scale record (#131429)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-16 13:17:38 +01:00
Abílio Costa
739832691e Add Idasen Desk quality scale record (#132368) 2024-12-16 13:14:01 +01:00
epenet
cd2cc1d99f Reduce false-positives in test-before-setup IQS check (#133349) 2024-12-16 13:10:15 +01:00
epenet
4b3893eadf Set default min/max color temperature in homekit_controller lights (#133334) 2024-12-16 12:26:29 +01:00
jb101010-2
d062171be3 Suez_water: mark reached bronze scale level (#133352) 2024-12-16 12:19:21 +01:00
epenet
9667a12030 Set default min/max color temperature in matter lights (#133340) 2024-12-16 10:32:57 +01:00
Jan-Philipp Benecke
d78a24ba33 Use ConfigEntry.runtime_data in Twitch (#133337)
* Use `ConfigEntry.runtime_data` in Twitch

* Process code review

* Process code review
2024-12-16 09:54:01 +01:00
epenet
f2674f3262 Set default min/max color temperature in deconz lights (#133333) 2024-12-16 09:49:18 +01:00
Erik Montnemery
06f6869da5 Avoid string manipulations in hassio backup reader/writer (#133339) 2024-12-16 09:47:49 +01:00
epenet
22d03afb9b Set default min/max color temperature in wemo lights (#133338) 2024-12-16 09:08:37 +01:00
Franck Nijhof
3129151ea9 Merge branch 'master' into dev 2024-12-16 07:52:34 +00:00
Chris Talkington
4566ebbb3d Add reconfigure flow to Roku (#132986)
* add reconfigure flow to roku

* Update strings.json

* aimplify

* Apply suggestions from code review

Co-authored-by: Josef Zweck <josef@zweck.dev>

* Update test_config_flow.py

* Update config_flow.py

* Update config_flow.py

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2024-12-16 08:51:01 +01:00
epenet
5f2b1bd622 Set default min/max color temperature in demo lights (#133330) 2024-12-16 08:45:59 +01:00
epenet
909eb045cc Set default min/max color temperature in abode lights (#133331) 2024-12-16 08:27:10 +01:00
Marc Mueller
66dcd38701 Update docker base image to 2024.12.1 (#133323) 2024-12-16 08:10:37 +01:00
Paulus Schoutsen
e24dc33259 Conversation: Use [] when we know key exists (#133305) 2024-12-15 21:45:50 +01:00
Josef Zweck
0030a970a1 Split coordinator in lamarzocco (#133208) 2024-12-15 21:31:18 +01:00
Josef Zweck
89387760d3 Cleanup tests for tedee (#133306) 2024-12-15 20:44:28 +01:00
Simone Chemelli
5cc8d9e105 Full test coverage for Vodafone Station button platform (#133281) 2024-12-15 20:27:19 +01:00
Allen Porter
b77e42e8f3 Increase test coverage for google tasks init (#133252) 2024-12-15 20:23:56 +01:00
Matthias Alphart
81c12db6cd Fix missing Fronius data_description translation for reconfigure flow (#133304) 2024-12-15 20:19:56 +01:00
Jan Bouwhuis
2003fc7ae0 Adjust MQTT tests not to assert on deprecated color_temp attribute (#133198) 2024-12-15 19:42:54 +01:00
Allen Porter
6ca5f3e828 Mark Google Tasks test-before-setup quality scale rule as done (#133298) 2024-12-15 19:42:22 +01:00
Matthias Alphart
be6ed05aa2 Improve Fronius tests (#132872) 2024-12-15 19:40:51 +01:00
Norbert Rittel
544ebcf310 Fix typo "configurered" in MQTT (#133295) 2024-12-15 19:35:50 +01:00
Bouwe Westerdijk
9e8a158c89 Bump plugwise to v1.6.4 and adapt (#133293) 2024-12-15 19:35:36 +01:00
J. Nick Koston
e81add5a06 Set code_arm_required to False for homekit_controller (#133284) 2024-12-15 19:28:29 +01:00
G Johansson
6d6445bfcf Update quality scale for Nord Pool (#133282) 2024-12-15 19:28:10 +01:00
Michael
e951511132 Allow load_verify_locations with only cadata passed (#133299) 2024-12-15 19:26:46 +01:00
Tomer Shemesh
2a49378f4c Refactor Onkyo tests to patch underlying pyeiscp library (#132653)
* Refactor Onkyo tests to patch underlying pyeiscp library instead of home assistant methods

* limit test patches to specific component, move atches into conftest

* use patch.multiple and restrict patches to specific component

* use side effect instead of mocking method
2024-12-15 10:27:17 -07:00
Allen Porter
f069f340a3 Explicitly set PARALLEL_UPDATES for Google Tasks (#133296) 2024-12-15 17:53:36 +01:00
Conor Eager
042d4cd39b Bump starlink-grpc-core to 1.2.1 to fix missing ping (#133183) 2024-12-15 17:43:21 +01:00
G Johansson
51422a4502 Bump pynordpool 0.2.3 (#133277) 2024-12-15 17:41:43 +01:00
Norbert Rittel
95babbef21 Fix two typos in KEF strings (#133294) 2024-12-15 17:39:25 +01:00
Richard Kroegel
b4b6067e8e Use typed BMWConfigEntry (#133272) 2024-12-15 14:41:35 +01:00
Dan Raper
b13a54f605 Add button platform to Ohme (#133267)
* Add button platform and reauth flow

* CI fixes

* Test comment change

* Remove reauth from this PR

* Move is_supported_fn to OhmeEntityDescription

* Set parallel updates to 1

* Add coordinator refresh to button press

* Add exception handling to button async_press
2024-12-15 14:22:21 +01:00
Manu
c2ee020eee Update quality scale documentation rules in IronOS integration (#133245) 2024-12-15 13:14:32 +01:00
Jan Bouwhuis
16ad2d52c7 Improve MQTT json color_temp validation (#133174)
* Improve MQTT json color_temp validation

* Revert unrelated changes and assert on logs

* Typo
2024-12-15 13:07:10 +01:00
Erik Montnemery
74e4654c26 Revert "Improve recorder history queries (#131702)" (#133203) 2024-12-15 12:28:32 +01:00
Matthias Alphart
aa4b64386e Don't update existing Fronius config entries from config flow (#132886) 2024-12-15 12:25:35 +01:00
Claudio Ruggeri - CR-Tech
760c3ac98c Bump pymodbus version 3.7.4 (#133175)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-15 12:24:27 +01:00
Allen Porter
85ef2c0fb1 Mark Google Tasks action-exceptions quality scale as done (#133253) 2024-12-15 12:19:57 +01:00
Marc Mueller
d1e466e615 Update elevenlabs to 1.9.0 (#133264) 2024-12-15 12:19:25 +01:00
Richard Kroegel
8953ac1357 Improve BMW translations (#133236) 2024-12-15 12:16:10 +01:00
Norbert Rittel
ebc8ca8419 Replace "this" with "a" to fix Install Update action description (#133210) 2024-12-15 12:10:54 +01:00
Jan Bouwhuis
73cb3fa88d Fix lingering mqtt device_trigger unload entry test (#133202) 2024-12-15 11:55:33 +01:00
rappenze
14a61d94e2 Use entry.runtime_data in fibaro (#133235) 2024-12-15 11:49:23 +01:00
Manu
314076b85f Replace aiogithub dependency with pynecil update check (#133213) 2024-12-15 11:48:11 +01:00
rappenze
879d809e5a Enhance translation strings in fibaro (#133234) 2024-12-15 11:47:18 +01:00
Sid
412aa60e8f Fix enigma2 integration for devices not reporting MAC address (#133226) 2024-12-15 11:05:17 +01:00
Thomas55555
f8da2c3e5c Bump aioautomower to 2024.12.0 (#132962) 2024-12-15 11:04:11 +01:00
rappenze
80e4d7ee12 Fix fibaro climate hvac mode (#132508) 2024-12-15 11:02:26 +01:00
Marc Mueller
af6948a911 Fix pydantic warnings in purpleair (#133247) 2024-12-15 10:34:33 +01:00
Avi Miller
9494128395 Bump aiolifx to 1.1.2 and add new HomeKit product prefixes (#133191)
Signed-off-by: Avi Miller <me@dje.li>
2024-12-15 11:24:41 +02:00
jb101010-2
1b2cf68e82 Suez_water: store coordinator in runtime_data (#133204)
* Suez_water: store coordinator in runtime_data

* jhfg
2024-12-15 09:46:14 +01:00
Arie Catsman
229a68dc73 set PARALLEL_UPDATES to 1 for enphase_envoy (#132373)
* set PARALLEL_UPDATES to 1 for enphase_envoy

* move PARALLEL_UPDATES from _init_ to platform files.

* Implement review feedback

* set parrallel_update 0 for read-only platforms
2024-12-15 09:27:14 +01:00
J. Nick Koston
2117e35d53 Bump yalexs-ble to 2.5.5 (#133229)
changelog: https://github.com/bdraco/yalexs-ble/compare/v2.5.4...v2.5.5
2024-12-14 23:06:26 +02:00
Matthias Alphart
74aa1a8f7e Update Fronius translations (#132876)
* Remove exception translation that's handled by configflow errors dict

* Remove entity name translations handled by device class

* Add data_description for Fronius config flow

* Remove unnecessary exception case

* review suggestion
2024-12-14 21:47:27 +01:00
Jan Bouwhuis
4dc1405e99 Bump incomfort-client to v0.6.4 (#133205) 2024-12-14 20:51:30 +01:00
Manu
35d5a16a3c Bump pynecil to 2.1.0 (#133211) 2024-12-14 20:47:06 +01:00
jb101010-2
79ecb4a87c Suez_water: add removal instructions (#133206) 2024-12-14 20:43:27 +01:00
YogevBokobza
ff1df757b1 Switcher move _async_call_api to entity.py (#132877)
* Switcher move _async_call_api to entity.py

* fix based on requested changes

* fix based on requested changes
2024-12-14 21:06:36 +02:00
Dan Raper
9e2a3ea0e5 Add Ohme integration (#132574) 2024-12-14 18:12:44 +01:00
Erik Montnemery
980b8a91e6 Revert "Simplify recorder RecorderRunsManager" (#133201)
Revert "Simplify recorder RecorderRunsManager (#131785)"

This reverts commit cf0ee63507.
2024-12-14 14:21:19 +01:00
dontinelli
d85d986075 Add button entity to slide_local (#133141)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-12-14 12:19:42 +01:00
dontinelli
06391d4635 Add reconfiguration to slide_local (#133182)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-12-14 12:10:28 +01:00
Sid
ca1bcbf5d5 Bump openwebifpy to 4.3.0 (#133188) 2024-12-14 12:07:38 +01:00
Joost Lekkerkerker
d2dfba3116 Improve Slide Local device tests (#133197) 2024-12-14 12:00:28 +01:00
IceBotYT
bce6127264 Bump nice-go to 1.0.0 (#133185)
* Bump Nice G.O. to 1.0.0

* Mypy

* Pytest
2024-12-14 09:36:15 +01:00
J. Nick Koston
165ca5140c Bump uiprotect to 7.0.2 (#132975) 2024-12-13 20:05:41 -06:00
J. Nick Koston
1aabbec3dd Bump yalexs-ble to 2.5.4 (#133172) 2024-12-13 22:37:26 +01:00
Sid
0c8db8c8d6 Add eheimdigital integration (#126757)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-13 22:29:18 +01:00
Michael Hansen
f06fda8023 Add response slot to HassRespond intent (#133162) 2024-12-13 15:19:43 -05:00
Michael Hansen
50b897bdaa Add STT error code for cloud authentication failure (#133170) 2024-12-13 14:59:46 -05:00
Franck Nijhof
e13fa8346a Update debugpy to 1.8.11 (#133169) 2024-12-13 20:15:05 +01:00
Sid
8b6495f456 Bump ruff to 0.8.3 (#133163) 2024-12-13 19:06:44 +01:00
Franck Nijhof
a812b594aa Fix Tailwind config entry typing in async_unload_entry signature (#133153) 2024-12-13 16:55:30 +01:00
epenet
1fbe880c5f Deprecate light constants (#132680)
* Deprecate light constants

* Reference deprecated values in MQTT light

* Reference deprecated values in test_recorder

* Adjust

* Adjust

* Add specific test
2024-12-13 16:52:47 +01:00
Jan Bouwhuis
97da8481d2 Add reconfigure flow to MQTT (#132246)
* Add reconfigure flow for MQTT integration

* Add test and translation strings

* Update quality scale configuration

* Do not cache ConfigEntry in flow

* Make sorce condition explictit

* Rework from suggested changes

* Do not allow reconfigure_entry and reconfigure_entry_data to be `None`
2024-12-13 16:11:45 +01:00
Maikel Punie
f03f24f036 Velbus test before setup (#133069)
* Velbus test before setup

* Update homeassistant/components/velbus/__init__.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Add the connect named argument to make it clear we are testing the connection

* Correctly cleanup after the test

* Sync code for velbusaio 2024.12.2

* follow up

* rename connect_task to scan_task

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-13 16:05:20 +01:00
Christopher Fenner
5f91676df0 Bump PyViCare to 2.38.0 (#133126) 2024-12-13 16:02:13 +01:00
dontinelli
d6c81830a4 Fix missing password for slide_local (#133142) 2024-12-13 15:42:40 +01:00
epenet
8080ad14bf Add warning when light entities do not provide kelvin attributes or properties (#132723) 2024-12-13 15:34:02 +01:00
Klaas Schoute
067daad70e Set quality scale to silver for Powerfox integration (#133095) 2024-12-13 15:29:34 +01:00
Guido Schmitz
579ac01eb1 Fix typos in devolo Home Network tests (#133139) 2024-12-13 15:26:02 +01:00
Maikel Punie
5d8e997319 Bump velbusaio to 2024.12.2 (#133130)
* Bump velbusaio to 2024.12.2

* mistakely pushed this file
2024-12-13 13:49:00 +01:00
Cyrill Raccaud
fe46fd24bd Improve data description and title for Cookidoo integration (#133106)
* fix data description typo for cookidoo

* use placeholder for cookidoo as it is non-translatable

* set title of language step

* fix for reauth

* fix reauth
2024-12-13 13:34:17 +01:00
Joost Lekkerkerker
b4e065d331 Bump yt-dlp to 2024.12.13 (#133129) 2024-12-13 13:30:22 +01:00
epenet
a131497e1f Reduce functools.partial with ServiceCall.hass in easyenergy (#133133) 2024-12-13 13:30:05 +01:00
epenet
4a5e47d2f0 Replace functools.partial with ServiceCall.hass in tibber (#133132) 2024-12-13 13:29:42 +01:00
epenet
c7adc98408 Replace functools.partial with ServiceCall.hass in unifiprotect (#133131) 2024-12-13 13:28:54 +01:00
epenet
f816a0667c Reduce functools.partial with ServiceCall.hass in energyzero (#133134) 2024-12-13 13:28:11 +01:00
Franck Nijhof
684667e8e7 Update open-meteo to v0.3.2 (#133122) 2024-12-13 13:24:46 +01:00
Jan-Philipp Benecke
d658073246 Make Twitch sensor state and attributes translatable (#133127) 2024-12-13 13:01:55 +01:00
Martijn Russchen
81c8d7153b Push Nibe package to 2.14.0 (#133125) 2024-12-13 12:50:50 +01:00
Franck Nijhof
46db3964f3 2024.12.3 (#133123) 2024-12-13 12:16:14 +01:00
Marc Mueller
7e2d3eb482 Add contact vip info to fritzbox_callmonitor sensor (#132913) 2024-12-13 11:59:55 +01:00
Ludovic BOUÉ
c0f6535d11 Fix typo in WaterHeaterEntityDescription name (#132888) 2024-12-13 11:11:47 +01:00
Franck Nijhof
9b83a00285 Bump version to 2024.12.3 2024-12-13 11:04:47 +01:00
Joost Lekkerkerker
9a7fda5b25 Bump aiowithings to 3.1.4 (#133117) 2024-12-13 11:04:34 +01:00
Robert Resch
f9bdc29546 Bump deebot-client to 9.4.0 (#133114) 2024-12-13 11:04:31 +01:00
Brandon Rothweiler
d9bb1f6035 Bump py-aosmith to 1.0.12 (#133100) 2024-12-13 11:04:28 +01:00
David Bonnes
01359b32c4 Bugfix to use evohome's new hostname (#133085) 2024-12-13 11:04:25 +01:00
jb101010-2
d0c00aaa67 Bump pysuezV2 to 1.3.5 (#133076) 2024-12-13 11:04:22 +01:00
Bram Kragten
73465a7aa8 Update frontend to 20241127.8 (#133066) 2024-12-13 11:04:19 +01:00
Franck Nijhof
ed03c0a294 Fix LaMetric config flow for cloud import path (#133039) 2024-12-13 11:04:16 +01:00
Michael Hansen
b38a7186d2 Change warning to debug for VAD timeout (#132987) 2024-12-13 11:04:13 +01:00
J. Nick Koston
31348930cc Bump led-ble to 1.1.1 (#132977)
changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v1.0.2...v1.1.1
2024-12-13 11:04:09 +01:00
Simone Chemelli
83e1353c01 Guard Vodafone Station updates against bad data (#132921)
guard Vodafone Station updates against bad data
2024-12-13 11:04:07 +01:00
Simone Chemelli
ede9c3ecd2 fix AndroidTV logging when disconnected (#132919) 2024-12-13 11:04:04 +01:00
Michael Hansen
c08ffcff9b Fix pipeline conversation language (#132896) 2024-12-13 11:04:01 +01:00
Stefano Angeleri
038115fea2 Bump pydaikin to 2.13.8 (#132759) 2024-12-13 11:03:58 +01:00
Simon Lamon
4e5ceb3aa4 Bump python-linkplay to v0.1.1 (#132091) 2024-12-13 11:03:53 +01:00
Cyrill Raccaud
91f7afc2c5 Cookidoo reauth config flow for silver (#133110)
* reauth

* add check for duplicate email in reauth

* fix reauth double email check

* parametrize tests

* check reauth double entry data as well
2024-12-13 10:40:23 +01:00
Allen Porter
7f3373d233 Add a quality scale for Google Tasks (#131497)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-13 10:27:35 +01:00
Joost Lekkerkerker
c0ef60bb98 Bump aiowithings to 3.1.4 (#133117) 2024-12-13 10:22:46 +01:00
Franck Nijhof
fb5cca877b Fix failing CI due to Russound Rio incorrect IQS (#133118) 2024-12-13 10:12:35 +01:00
G Johansson
8cde404997 Raise issue for deprecated imperial unit system (#130979) 2024-12-13 10:05:46 +01:00
epenet
8b579d83ce Add data/data_description translation checks (#131705) 2024-12-13 09:50:10 +01:00
epenet
f7b6f4b927 Replace functools.partial with ServiceCall.hass in knx (#133111) 2024-12-13 09:48:24 +01:00
Jan Rieger
3d93561e0a Remove native_unit_of_measurement from rfxtrx counters (#133108) 2024-12-13 09:47:39 +01:00
Andrew Sayre
566843591e Remove HEOS yaml import (#133082) 2024-12-13 09:46:52 +01:00
Robert Resch
2cd4ebbfb2 Bump deebot-client to 9.4.0 (#133114) 2024-12-13 09:45:38 +01:00
Stefan Agner
9ab69aa41c Add mWh as unit of measurement for Matter energy sensors (#133005) 2024-12-13 09:33:58 +01:00
epenet
a0e49ebc97 Use internal min/max mireds in template (#133113) 2024-12-13 09:33:40 +01:00
epenet
899fb091fc Simplify access to hass in service calls (#133062) 2024-12-13 09:31:21 +01:00
Maikel Punie
f9f37b9932 Velbus docs quality bump (#133070) 2024-12-13 09:23:53 +01:00
Marc Mueller
e4cca3fe40 Update devcontainer to Python 3.13 (#132313) 2024-12-13 09:22:01 +01:00
Martin Weinelt
11b65b1eb3 Bump watchdog to 6.0.0 (#132895) 2024-12-13 09:21:14 +01:00
jb101010-2
e3d14e6993 Bump pysuezV2 to 1.3.5 (#133076) 2024-12-13 09:01:48 +01:00
Åke Strandberg
53439d6e2a Handle step size correctly in myuplink number platform (#133016) 2024-12-13 08:55:44 +01:00
David Bonnes
de89be0512 Bugfix to use evohome's new hostname (#133085) 2024-12-13 08:54:14 +01:00
Brandon Rothweiler
8bd2c183e2 Bump py-aosmith to 1.0.12 (#133100) 2024-12-13 08:46:15 +01:00
epenet
263eb41e79 Remove unused constant from blink (#133109) 2024-12-13 08:24:18 +01:00
Klaas Schoute
0ffb588d5c Move config entry type of energyzero integration (#133094)
Move config_entry type to coordinator file
2024-12-13 07:53:25 +01:00
dependabot[bot]
09b06f839d Bump github/codeql-action from 3.27.7 to 3.27.9 (#133104) 2024-12-13 07:47:40 +01:00
epenet
72cc1f4d39 Use correct ATTR_KELVIN constant in yeelight tests (#133088) 2024-12-13 06:51:55 +01:00
Allen Porter
2af5c5ecda Update Rainbird quality scale grading on the Silver quality checks (#131498)
* Grade Rainbird on the Silver quality scale

* Remove done comments

* Update quality_scale.yaml

* Update config-flow-test-coverage
2024-12-12 20:26:30 -08:00
epenet
bf9788b9c4 Fix CI failure in russound_rio (#133081)
* Fix CI in russound_rio

* Adjust
2024-12-12 22:16:28 +01:00
epenet
2cff7526d0 Add test-before-setup rule to quality_scale validation (#132255)
* Add test-before-setup rule to quality_scale validation

* Use ast_parse_module

* Add rules_done

* Add Config argument
2024-12-12 22:15:49 +01:00
Franck Nijhof
61b1b50c34 Improve Solar.Forecast configuration flow tests (#133077) 2024-12-12 21:19:05 +01:00
epenet
aa7e024853 Migrate lifx light tests to use Kelvin (#133020) 2024-12-12 21:17:52 +01:00
epenet
d02bceb6f3 Migrate alexa color_temp handlers to use Kelvin (#132995) 2024-12-12 21:17:31 +01:00
epenet
b9a7307df8 Refactor light reproduce state to use kelvin attribute (#132854) 2024-12-12 21:17:05 +01:00
Noah Husby
d79dc8d22f Add source zone exclusion to Russound RIO (#130392)
* Add source zone exclusion to Russound RIO

* Ruff format
2024-12-12 22:13:37 +02:00
Franck Nijhof
839f06b2dc Small improvements to the AdGuard tests (#133073) 2024-12-12 21:12:11 +01:00
Maikel Punie
3baa432bae Use runtime_data in velbus (#132988) 2024-12-12 20:48:01 +01:00
epenet
b189bc6146 Migrate smartthings light tests to use Kelvin (#133022) 2024-12-12 20:38:49 +01:00
epenet
708084d300 Migrate switch_as_x light tests to use Kelvin (#133023) 2024-12-12 20:38:13 +01:00
epenet
7c9992f5d3 Migrate demo light tests to use Kelvin (#133003) 2024-12-12 20:37:32 +01:00
Franck Nijhof
483688dba2 Promote Twente Milieu quality scale to silver (#133074) 2024-12-12 20:32:59 +01:00
epenet
e276f8ee89 Migrate zwave_js light tests to use Kelvin (#133034) 2024-12-12 20:32:39 +01:00
epenet
de35bfce77 Migrate yeelight light tests to use Kelvin (#133033) 2024-12-12 20:29:15 +01:00
epenet
f0391f4963 Migrate tradfri light tests to use Kelvin (#133030) 2024-12-12 20:28:42 +01:00
epenet
fd811c85e9 Migrate wemo light tests to use Kelvin (#133031) 2024-12-12 20:28:08 +01:00
Cyrill Raccaud
56db536883 Add Cookidoo integration (#129800) 2024-12-12 20:23:14 +01:00
epenet
55fa717f10 Migrate flux_led light tests to use Kelvin (#133009) 2024-12-12 20:18:27 +01:00
dontinelli
c164507952 Add new integration slide_local (#132632)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-12 20:18:19 +01:00
epenet
798f3a34f3 Migrate abode light tests to use Kelvin (#133001) 2024-12-12 20:17:45 +01:00
epenet
a358491970 Migrate wiz light tests to use Kelvin (#133032) 2024-12-12 20:16:54 +01:00
Erik Montnemery
ad15786115 Add support for subentries to config entries (#117355)
* Add support for subentries to config entries

* Improve error handling and test coverage

* Include subentry_id in subentry containers

* Auto-generate subentry_id and add optional unique_id

* Tweak

* Update tests

* Fix stale docstring

* Address review comments

* Typing tweaks

* Add methods to ConfigEntries to add and remove subentry

* Improve ConfigSubentryData typed dict

* Update test snapshots

* Adjust tests

* Fix unique_id logic

* Allow multiple subentries with None unique_id

* Add number of subentries to config entry JSON representation

* Add subentry translation support

* Allow integrations to implement multiple subentry flows

* Update translations schema

* Adjust exception text

* Change subentry flow init step to user

* Prevent creating a subentry with colliding unique_id

* Update tests

* Address review comments

* Remove duplicaetd unique_id collision check

* Remove change from the future

* Improve test coverage

* Add default value for unique_id
2024-12-12 20:16:18 +01:00
Marc Mueller
32c1b519ad Improve auth generic typing (#133061) 2024-12-12 20:14:56 +01:00
Klaas Schoute
ce70cb9e33 Use ConfigEntry runtime_data in easyEnergy (#133053) 2024-12-12 20:13:41 +01:00
epenet
40c3dd2095 Migrate group light tests to use Kelvin (#133010) 2024-12-12 20:08:07 +01:00
Franck Nijhof
3c7502dd5d Explicitly pass config entry to coordinator in Tailwind (#133065) 2024-12-12 19:46:35 +01:00
Franck Nijhof
b8ce1b010f Update demetriek to v1.1.0 (#133064) 2024-12-12 19:39:24 +01:00
Andrew Sayre
1205178702 Add HEOS quality scale (#132311) 2024-12-12 19:32:00 +01:00
Bram Kragten
a6b785d937 Update frontend to 20241127.8 (#133066) 2024-12-12 19:11:07 +01:00
Martin Hjelmare
39e4719a43 Fix backup strategy retention filter (#133060)
* Fix lint

* Update tests

* Fix backup strategy retention filter
2024-12-12 18:47:37 +01:00
epenet
e7a43cfe09 Migrate deconz light tests to use Kelvin (#133002) 2024-12-12 18:13:24 +01:00
Maikel Punie
0726809228 Bump velbusaio to 2024.12.1 (#133056) 2024-12-12 17:00:11 +01:00
Erik Montnemery
3d201690ce Fix load of backup store (#133024)
* Fix load of backup store

* Tweak type annotations in test

* Fix tests

* Remove the new test

* Remove snapshots
2024-12-12 16:54:21 +01:00
epenet
0b18e51a13 Remove reference to self.min/max_mireds in mqtt light (#133055) 2024-12-12 16:49:50 +01:00
epenet
2ce2765e67 Adjust light test helpers to use Kelvin, and cleanup unused helpers (#133048)
Cleanup light test helper methods
2024-12-12 16:49:25 +01:00
epenet
33c799b2d0 Migrate mqtt light tests to use Kelvin (#133035) 2024-12-12 16:42:10 +01:00
Marc Mueller
5c6e4ad191 Use PEP 695 TypeVar syntax (#133049) 2024-12-12 16:01:57 +01:00
Marc Mueller
0a748252e7 Improve Callable annotations (#133050) 2024-12-12 15:14:28 +01:00
epenet
839312c65c Migrate homekit light tests to use Kelvin (#133011) 2024-12-12 15:11:52 +01:00
epenet
37f2bde6f5 Migrate esphome light tests to use Kelvin (#133008) 2024-12-12 15:11:34 +01:00
epenet
6d042d987f Migrate emulated_hue light tests to use Kelvin (#133006) 2024-12-12 15:11:13 +01:00
Robert Resch
006b3b0e22 Bump uv to 0.5.8 (#133036) 2024-12-12 14:51:15 +01:00
Franck Nijhof
f05d18ea70 Small test improvements to Tailwind tests (#133051) 2024-12-12 14:42:05 +01:00
Sid
dc18e62e1e Bump ruff to 0.8.2 (#133041) 2024-12-12 14:38:55 +01:00
Marc Mueller
4b5d717898 Fix music_assistant decorator typing (#133044) 2024-12-12 14:35:11 +01:00
Franck Nijhof
8e15287662 Add data descriptions to Twente Milieu config flow (#133046) 2024-12-12 14:26:34 +01:00
Marc Mueller
2e133df549 Improve husqvarna_automower decorator typing (#133047) 2024-12-12 14:26:17 +01:00
Krisjanis Lejejs
c18cbf5994 Bump hass-nabucasa from 0.86.0 to 0.87.0 (#133043) 2024-12-12 14:25:54 +01:00
Franck Nijhof
bcaf1dc20b Clean up Elgato config flow tests (#133045) 2024-12-12 14:24:38 +01:00
Franck Nijhof
6005b6d01c Explicitly pass config entry to coordinator in Elgato (#133014)
* Explicitly pass config entry to coordinator in Elgato

* Make it noice!

* Apply suggestions from code review

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Adjustment from review comment

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-12 13:55:57 +01:00
epenet
7bdf034b93 Migrate template light tests to use Kelvin (#133025) 2024-12-12 13:54:22 +01:00
Franck Nijhof
5c80ddb891 Fix LaMetric config flow for cloud import path (#133039) 2024-12-12 13:49:17 +01:00
Erik Montnemery
85d4572a17 Adjust backup agent platform (#132944)
* Adjust backup agent platform

* Adjust according to discussion

* Clean up the local agent dict too

* Add test

* Update kitchen_sink

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Adjust tests

* Clean up

* Fix kitchen sink reload

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-12 13:41:56 +01:00
Franck Nijhof
f2aaf2ac4a Small test cleanups in Twente Milieu (#133028) 2024-12-12 12:55:25 +01:00
epenet
52491bb75e Migrate tplink light tests to use Kelvin (#133026) 2024-12-12 12:52:01 +01:00
Simone Chemelli
ded7cee6e5 fix AndroidTV logging when disconnected (#132919) 2024-12-12 11:42:00 +01:00
Klaas Schoute
0006672489 Improve diagnostics code of EnergyZero integration (#133019) 2024-12-12 11:39:55 +01:00
Klaas Schoute
a9d71e0a5f Add reconfigure flow for Powerfox integration (#132260) 2024-12-12 11:34:36 +01:00
epenet
0e45ccb956 Migrate google_assistant color_temp handlers to use Kelvin (#132997) 2024-12-12 11:13:24 +01:00
Franck Nijhof
7dc31dec3b Fix config entry import in Twente Milieu diagnostic (#133017) 2024-12-12 10:52:03 +01:00
Erik Montnemery
a30c942fa7 Don't use kitchen_sink integration in config entries tests (#133012) 2024-12-12 10:42:27 +01:00
Klaas Schoute
d49b1b2d6b Use ConfigEntry runtime_data in EnergyZero (#132979) 2024-12-12 10:28:41 +01:00
Maikel Punie
4a7039f51d Bump velbusaio to 2024.12.0 (#132989) 2024-12-12 10:25:21 +01:00
Franck Nijhof
0377dc5b5a Move coordinator for TwenteMilieu into own module (#133000) 2024-12-12 10:18:11 +01:00
epenet
bb610acb86 Migrate elgato light tests to use Kelvin (#133004) 2024-12-12 09:53:55 +01:00
Franck Nijhof
85d4c48d6f Set parallel updates in Elgato (#132998) 2024-12-12 09:53:26 +01:00
Michael Hansen
053f03ac58 Change warning to debug for VAD timeout (#132987) 2024-12-12 09:03:05 +01:00
Chris Talkington
0d4780e91b Set parallel updates for roku (#132892)
* Set parallel updates for roku

* Update sensor.py

* Update media_player.py

* Update remote.py

* Update select.py

* Update media_player.py

* Update remote.py

* Update select.py

* Update remote.py

* Update media_player.py
2024-12-12 08:00:24 +01:00
Noah Husby
2d0c4e4a59 Improve config flow test coverage for Russound RIO (#132981) 2024-12-12 07:56:29 +01:00
Noah Husby
e39897ff9a Enforce strict typing for Russound RIO (#132982) 2024-12-12 07:55:29 +01:00
Tom
7e071d1fc6 Introduce parallel updates for Plugwise (#132940)
* Plugwise indicate parallel updates

* Update homeassistant/components/plugwise/number.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-12 07:49:08 +01:00
Christopher Fenner
b02ccd0813 Add missing body height icon in Withings integration (#132991)
Update icons.json
2024-12-12 07:47:57 +01:00
J. Nick Koston
eea781f34a Bump led-ble to 1.1.1 (#132977)
changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v1.0.2...v1.1.1
2024-12-11 23:46:31 -05:00
Åke Strandberg
95f48963d4 Set strict typing for myuplink (#132972)
Set strict typing
2024-12-11 23:11:11 +01:00
Åke Strandberg
4c5965ffc9 Add reconfiguration flow to myuplink (#132970)
* Add reconfiguration flow

* Tick reconfiguration-flow rule
2024-12-11 22:47:14 +01:00
Erik Montnemery
8e991fc92f Merge feature branch with backup changes to dev (#132954)
* Reapply "Make WS command backup/generate send events" (#131530)

This reverts commit 9b8316df3f.

* MVP implementation of Backup sync agents (#126122)

* init sync agent

* add syncing

* root import

* rename list to info and add sync state

* Add base backup class

* Revert unneded change

* adjust tests

* move to kitchen_sink

* split

* move

* Adjustments

* Adjustment

* update

* Tests

* Test unknown agent

* adjust

* Adjust for different test environments

* Change /info WS to contain a dictinary

* reorder

* Add websocket command to trigger sync from the supervisor

* cleanup

* Make mypy happier

---------

Co-authored-by: Erik <erik@montnemery.com>

* Make BackupSyncMetadata model a dataclass (#130555)

Make backup BackupSyncMetadata model a dataclass

* Rename backup sync agent to backup agent (#130575)

* Rename sync agent module to agent

* Rename BackupSyncAgent to BackupAgent

* Fix test typo

* Rename async_get_backup_sync_agents to async_get_backup_agents

* Rename and clean up remaining sync things

* Update kitchen sink

* Apply suggestions from code review

* Update test_manager.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Add additional options to WS command backup/generate (#130530)

* Add additional options to WS command backup/generate

* Improve test

* Improve test

* Align parameter names in backup/agents/* WS commands (#130590)

* Allow setting password for backups (#110630)

* Allow setting password for backups

* use is_hassio from helpers

* move it

* Fix getting psw

* Fix restoring with psw

* Address review comments

* Improve docstring

* Adjust kitchen sink

* Adjust

---------

Co-authored-by: Erik <erik@montnemery.com>

* Export relevant names from backup integration (#130596)

* Tweak backup agent interface (#130613)

* Tweak backup agent interface

* Adjust kitchen_sink

* Test kitchen sink backup (#130609)

* Test agents_list_backups

* Test agents_info

* Test agents_download

* Export Backup from manager

* Test agents_upload

* Update tests after rebase

* Use backup domain

* Remove WS command backup/upload (#130588)

* Remove WS command backup/upload

* Disable failing kitchen_sink test

* Make local backup a backup agent (#130623)

* Make local backup a backup agent

* Adjust

* Adjust

* Adjust

* Adjust tests

* Adjust

* Adjust

* Adjust docstring

* Adjust

* Protect members of CoreLocalBackupAgent

* Remove redundant check for file

* Make the backup.create service use the first local agent

* Add BackupAgent.async_get_backup

* Fix some TODOs

* Add support for downloading backup from a remote agent

* Fix restore

* Fix test

* Adjust kitchen_sink test

* Remove unused method BackupManager.async_get_backup_path

* Re-enable kitchen sink test

* Remove BaseBackupManager.async_upload_backup

* Support restore from remote agent

* Fix review comments

* Include backup agent error in response to WS command backup/info (#130884)

* Adjust code related to WS command backup/info (#130890)

* Include backup agent error in response to WS command backup/details (#130892)

* Remove LOCAL_AGENT_ID constant from backup manager (#130895)

* Add backup config storage (#130871)

* Add base for backup config

* Allow updating backup config

* Test loading backup config

* Add backup config update method

* Add temporary check for BackupAgent.async_remove_backup (#130893)

* Rename backup slug to backup_id (#130902)

* Improve backup websocket API tests (#130912)

* Improve backup websocket API tests

* Add missing snapshot

* Fix tests leaving files behind

* Improve backup manager backup creation tests (#130916)

* Remove class backup.backup.LocalBackup (#130919)

* Add agent delete backup (#130921)

* Add backup agent delete backup

* Remove agents delete websocket command

* Update docstring

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Disable core local backup agent in hassio (#130933)

* Rename remove backup to delete backup (#130940)

* Rename remove backup to delete backup

* Revert "backup/delete"

* Refactor BackupManager (#130947)

* Refactor BackupManager

* Adjust

* Adjust backup creation

* Copy in executor

* Fix BackupManager.async_get_backup (#130975)

* Fix typo in backup tests (#130978)

* Adjust backup NewBackup class (#130976)

* Remove class backup.BackupUploadMetadata (#130977)

Remove class backup.BackupMetadata

* Report backup size in bytes instead of MB (#131028)

Co-authored-by: Robert Resch <robert@resch.dev>

* Speed up CI for feature branch (#131030)

* Speed up CI for feature branch

* adjust

* fix

* fix

* fix

* fix

* Rename remove to delete in backup websocket type (#131023)

* Revert "Speed up CI for feature branch" (#131074)

Revert "Speed up CI for feature branch (#131030)"

This reverts commit 791280506d.

* Rename class BaseBackup to AgentBackup (#131083)

* Rename class BaseBackup to AgentBackup

* Update tests

* Speed up CI for backup feature branch (#131079)

* Add backup platform to the hassio integration (#130991)

* Add backup platform to the hassio integration

* Add hassio to after_dependencies of backup

* Address review comments

* Remove redundant hassio parametrization of tests

* Add tests

* Address review comments

* Bump CI cache version

* Revert "Bump CI cache version"

This reverts commit 2ab4d2b179.

* Extend backup info class AgentBackup (#131110)

* Extend backup info class AgentBackup

* Update kitchen sink

* Update kitchen sink test

* Update kitchen sink test

* Exclude cloud and hassio from core files (#131117)

* Remove unnecessary **kwargs from backup API (#131124)

* Fix backup tests (#131128)

* Freeze backup dataclasses (#131122)

* Protect CoreLocalBackupAgent.load_backups (#131126)

* Use backup metadata v2 in core/container backups (#131125)

* Extend backup creation API (#131121)

* Extend backup creation API

* Add tests

* Fix merge

* Fix merge

* Return agent errors when deleting a backup (#131142)

* Return agent errors when deleting a backup

* Remove redundant calls to dict.keys()

* Add enum type for backup folder (#131158)

* Add method AgentBackup.from_dict (#131164)

* Remove WS command backup/agents/list_backups (#131163)

* Handle backup schedule (#131127)

* Add backup schedule handling

* Fix unrelated incorrect type annotation in test

* Clarify delay save

* Make the backup time compatible with the recorder nightly job

* Update create backup parameters

* Use typed dict for create backup parameters

* Simplify schedule state

* Group create backup parameters

* Move parameter

* Fix typo

* Use Folder model

* Handle deserialization of folders better

* Fail on attempt to include addons or folders in core backup (#131204)

* Fix AgentBackup test (#131201)

* Add options to WS command backup/restore (#131194)

* Add options to WS command backup/restore

* Add tests

* Fix test

* Teach core backup to restore only database or only settings (#131225)

* Exclude tmp_backups/*.tar from backups (#131243)

* Add WS command backup/subscribe_events (#131250)

* Clean up temporary directory after restoring backup (#131263)

* Improve hassio backup agent list (#131268)

* Include `last_automatic_backup` in reply to backup/info (#131293)

Include last_automatic_backup in reply to backup/info

* Handle backup delete after config (#131259)

* Handle delete after copies

* Handle delete after days

* Add some test examples

* Test config_delete_after_logic

* Test config_delete_after_copies_logic

* Test more delete after days

* Add debug logs

* Always delete the oldest backup first

* Never remove the last backup

* Clean up words

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Fix after cleaning words

* Use utcnow

* Remove duplicate guard

* Simplify sorting

* Delete backups even if there are agent errors on get backups

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Rename backup delete after to backup retention (#131364)

* Rename backup delete after to backup retention

* Tweak

* Remove length limit on `agent_ids` when configuring backup (#132057)

Remove length limit on agent_ids when configuring backup

* Rename backup retention_config to retention (#132068)

* Modify backup agent API to be stream oriented (#132090)

* Modify backup agent API to be stream oriented

* Fix tests

* Adjust after code review

* Remove no longer needed pylint override

* Improve test coverage

* Change BackupAgent API to work with AsyncIterator objects

* Don't close files in the event loop

* Don't close files in the event loop

* Fix backup manager create backup log (#132174)

* Fix debug log level (#132186)

* Add cloud backup agent (#129621)

* Init cloud backup sync

* Add more metadata

* Fix typo

* Adjust to base changes

* Don't raise on list if more than one backup is available

* Adjust to base branch

* Fetch always and verify on download

* Update homeassistant/components/cloud/backup.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Adjust to base branch changes

* Not required anymore

* Workaround

* Fix blocking event loop

* Fix

* Add some tests

* some tests

* Add cloud backup delete functionality

* Enable check

* Fix ruff

* Use fixture

* Use iter_chunks instead

* Remove read

* Remove explicit export of read_backup

* Align with BackupAgent API changes

* Improve test coverage

* Improve error handling

* Adjust docstrings

* Catch aiohttp.ClientError bubbling up from hass_nabucasa

* Improve iteration

---------

Co-authored-by: Erik <erik@montnemery.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Krisjanis Lejejs <krisjanis.lejejs@gmail.com>

* Extract file receiver from `BackupManager.async_receive_backup` to util (#132271)

* Extract file receiver from BackupManager.async_receive_backup to util

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Make sure backup directory exists (#132269)

* Make sure backup directory exists

* Hand off directory creation to executor

* Use mkdir's exist_ok feeature

* Organize BackupManager instance attributes (#132277)

* Don't store received backups in a TempDir (#132272)

* Don't store received backups in a TempDir

* Fix tests

* Make sure backup directory exists

* Address review comments

* Fix tests

* Rewrite backup manager state handling (#132375)

* Rewrite backup manager state handling

* Address review comments

* Modify backup reader/writer API to be stream oriented (#132464)

* Internalize backup tasks (#132482)

* Internalize backup tasks

* Update test after rebase

* Handle backup error during automatic backup (#132511)

* Improve backup manager state logging (#132549)

* Fix backup manager state when restore completes (#132548)

* Remove WS command backup/agents/download (#132664)

* Add WS command backup/generate_with_stored_settings (#132671)

* Add WS command backup/generate_with_stored_settings

* Register the new command, add tests

* Refactor local agent backup tests (#132683)

* Refactor test_load_backups

* Refactor test loading agents

* Refactor test_delete_backup

* Refactor test_upload

* Clean up duplicate tests

* Refactor backup manager receive tests (#132701)

* Refactor backup manager receive tests

* Clean up

* Refactor pre and post platform tests (#132708)

* Refactor backup pre platform test

* Refactor backup post platform test

* Bump aiohasupervisor to version 0.2.2b0 (#132704)

* Bump aiohasupervisor to version 0.2.2b0

* Adjust tests

* Publish event when manager is idle after creating backup (#132724)

* Handle busy backup manager when uploading backup (#132736)

* Adjust hassio backup agent to supervisor changes (#132732)

* Adjust hassio backup agent to supervisor changes

* Fix typo

* Refactor test for create backup with wrong parameters (#132763)

* Refactor test not loading bad backup platforms (#132769)

* Improve receive backup coverage (#132758)

* Refactor initiate backup test (#132829)

* Rename Backup to ManagerBackup (#132841)

* Refactor backup config (#132845)

* Refactor backup config

* Remove unnecessary condition

* Adjust tests

* Improve initiate backup test (#132858)

* Store the time of automatic backup attempts (#132860)

* Store the time of automatic backup attempts

* Address review comments

* Update test

* Update cloud test

* Save agent failures when creating backups (#132850)

* Save agent failures when creating backups

* Update tests

* Store KnownBackups

* Add test

* Only clear known_backups on no error, add tests

* Address review comments

* Store known backups as a list

* Update tests

* Track all backups created with backup strategy settings (#132916)

* Track all backups created with saved settings

* Rename

* Add explicit call to save the store

* Don't register service backup.create in HassOS installations (#132932)

* Revert changes to action service backup.create (#132938)

* Fix logic for cleaning up temporary backup file (#132934)

* Fix logic for cleaning up temporary backup file

* Reduce scope of patch

* Fix with_strategy_settings info not sent over websocket (#132939)

* Fix with_strategy_settings info not sent over websocket

* Fix kitchen sink tests

* Fix cloud and hassio tests

* Revert backup ci changes (#132955)

Revert changes speeding up CI

* Fix revert of CI changes (#132960)

---------

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: Krisjanis Lejejs <krisjanis.lejejs@gmail.com>
2024-12-11 21:49:34 +01:00
G Johansson
a1e4b3b0af Update quality scale for nordpool (#132964)
* Update quality scale for nordpool

* more
2024-12-11 21:23:26 +01:00
Noah Husby
d43d84a67f Add parallel updates & use typed config entry for Russound RIO (#132958) 2024-12-11 21:07:29 +01:00
Josef Zweck
525614b7cd Bump pylamarzocco to 1.4.0 (#132917)
* Bump pylamarzocco to 1.4.0

* update device snapshot
2024-12-11 21:52:20 +02:00
Franck Nijhof
73e68971e8 Remove port from Elgato configuration flow (#132961) 2024-12-11 20:48:55 +01:00
Marc Mueller
833557fad5 Trigger full ci run on global mypy config change (#132909) 2024-12-11 19:16:49 +01:00
epenet
0e8fe1eb41 Improve coverage in light reproduce state (#132929) 2024-12-11 19:15:36 +01:00
Allen Porter
fa05cc5e70 Add quality scale for nest integration (#131330)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-12-11 19:04:16 +01:00
Noah Husby
096d653059 Record current IQS state for Russound RIO (#131219) 2024-12-11 19:03:43 +01:00
Jan Bouwhuis
3a7fc15656 Add Dutch locale on supported Alexa interfaces (#132936) 2024-12-11 19:01:20 +01:00
Matthias Alphart
233d927c01 Update xknx to 3.4.0 (#132943) 2024-12-11 18:56:21 +01:00
Michael Hansen
94260147d7 Fix pipeline conversation language (#132896) 2024-12-11 18:52:02 +01:00
Robert Resch
502a221feb Set go2rtc quality scale to internal (#132945) 2024-12-11 17:20:49 +01:00
epenet
39f8de0159 Fix mqtt light attributes (#132941) 2024-12-11 17:18:54 +01:00
Maikel Punie
00ab5db661 Split the velbus services code in its own file (#131375) 2024-12-11 16:41:48 +01:00
epenet
0d71828def Migrate mqtt lights to use Kelvin (#132828)
* Migrate mqtt lights to use Kelvin

* Adjust restore_cache tests

* Adjust tests
2024-12-11 16:11:14 +01:00
jb101010-2
ee4db13c2a Add data description to suez_water config flow (#132466)
* Suez_water: config flow data_descriptions

* Rename counter by meter

* Use placeholders
2024-12-11 15:52:43 +01:00
Simone Chemelli
555d7f1ea4 Guard Vodafone Station updates against bad data (#132921)
guard Vodafone Station updates against bad data
2024-12-11 15:40:18 +01:00
epenet
1753382307 Adjust lifx to use local _ATTR_COLOR_TEMP constant (#132840) 2024-12-11 14:11:29 +00:00
Åke Strandberg
05b23d081b Set quality_scale for myUplink to Silver (#132923) 2024-12-11 13:09:33 +00:00
Maikel Punie
f974479970 Velbus add quality_scale.yaml (#131377)
Co-authored-by: Allen Porter <allen.porter@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-11 13:53:14 +01:00
Matthias Alphart
ecfa888918 Create quality_scale.yaml from integration scaffold script (#132199)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-12-11 13:52:53 +01:00
Åke Strandberg
7103b7fd80 Use snapshot tests for remaining myuplink platforms (#132915)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-11 13:01:02 +01:00
Marc Mueller
dc8b7cfede Allow bytearray for mqtt payload type (#132906) 2024-12-11 11:51:16 +01:00
Simon Lamon
b26583b0bf Bump python-linkplay to v0.1.1 (#132091) 2024-12-11 11:12:05 +01:00
shapournemati-iotty
beda273721 upgrade iottycloud lib to 0.3.0 (#132836) 2024-12-11 10:52:47 +01:00
Marc Mueller
0e8961276f Enable pydantic.v1 mypy plugin (#132907) 2024-12-11 10:50:42 +01:00
epenet
9c9e82a93e Migrate zha lights to use Kelvin (#132816) 2024-12-11 09:58:08 +01:00
epenet
7ef3e92e2d Migrate tasmota lights to use Kelvin (#132798) 2024-12-11 09:57:29 +01:00
G Johansson
2bb05296b8 Add remaining test coverage to yale_smart_alarm (#132869) 2024-12-11 09:46:53 +01:00
epenet
b780f31e63 Migrate flux to use Kelvin over Mireds (#132839) 2024-12-11 08:55:23 +01:00
Robert Resch
af838077cc Fix docker hassfest (#132823) 2024-12-11 08:55:00 +01:00
shapournemati-iotty
5e17721568 Remove old codeowner no longer working on the integration (#132807) 2024-12-11 08:53:19 +01:00
epenet
4ff41ed2f8 Refactor light significant change to use kelvin attribute (#132853) 2024-12-11 08:42:48 +01:00
dependabot[bot]
f0f0b4b8fa Bump github/codeql-action from 3.27.6 to 3.27.7 (#132900)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-11 08:24:25 +01:00
Ludovic BOUÉ
9f40074d66 Fix typo in water heater integration (#132891)
Fix typo in water heater componant
2024-12-11 07:36:09 +01:00
Chris Talkington
73feeacc39 Use runtime_data for roku (#132781)
* use runtime_data for roku

* unload cleanup

* tweaks

* tweaks

* fix tests

* fix tests

* Update config_flow.py

* Update config_flow.py
2024-12-11 06:55:58 +01:00
Allen Porter
355e80aa56 Test the google tasks api connection in setup (#132657)
Improve google tasks setup
2024-12-10 19:01:50 -08:00
Marc Mueller
77debcbe8b Update numpy to 2.2.0 (#132874) 2024-12-10 22:28:30 +01:00
Franck Nijhof
3fe2c14a79 2024.12.2 (#132846) 2024-12-10 21:45:06 +01:00
Jonas Fors Lellky
b46392041f Add model_id to flexit (bacnet) entity (#132875)
* Add model_id to flexit (bacnet) entity

* Add model to mock
2024-12-10 21:44:00 +01:00
epenet
fb3ffaf18d Migrate demo lights to use Kelvin (#132837)
* Migrate demo lights to use Kelvin

* Adjust google_assistant tests
2024-12-10 20:59:12 +01:00
Manu
1b300a4389 Set config-flow rule in IQS to todo in Bring integration (#132855)
Set config-flow rule in IQS to todo
2024-12-10 20:52:39 +01:00
G Johansson
5dc2757324 Add quality scale to Nord Pool (#132415)
* Add quality scale to Nord Pool

* Update

* a

* fix
2024-12-10 19:35:21 +01:00
G Johansson
76b73fa9b1 Use floats instead of datetime in statistics (#132746)
* Use floats instead of datetime in statistics

* check if debug log
2024-12-10 19:03:43 +01:00
Stefano Angeleri
7fb5b17ac5 Bump pydaikin to 2.13.8 (#132759) 2024-12-10 19:29:28 +02:00
J. Nick Koston
d2303eb83f Bump pydantic to 2.10.3 and update required deps (#131963) 2024-12-10 18:27:40 +01:00
G Johansson
f99239538c Add retry to api calls in Nord Pool (#132768) 2024-12-10 19:26:49 +02:00
Markus Jacobsen
dba405dd88 Bump mozart-api to 4.1.1.116.4 (#132859)
Bump API
2024-12-10 19:21:59 +02:00
Markus Jacobsen
d4546c94b0 Add beolink_join source_id parameter to Bang & Olufsen (#132377)
* Add source as parameter to beolink join service

* Add beolink join source and responses

* Improve comment
Add translation

* Remove result from beolink join custom action

* Cleanup

* Use options selector instead of string for source ID
Fix test docstring

* Update options

* Use translation dict for source ids
Add input validation
Add tests for invalid sources
Improve source id description

* Use list instead of translation dict
Remove platform prefixes
Add test for Beolink Converter source

* Fix source_id naming and order
2024-12-10 11:01:12 -06:00
Allen Porter
8fd64d2ca4 Add a quality scale for fitbit integration (#131326)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-10 17:04:00 +01:00
Tom
2b17037edc Plugwise improve platform tests (#132748) 2024-12-10 16:43:08 +01:00
epenet
6a323a1d3c Fix wrong name attribute in mqtt ignore list (#132831) 2024-12-10 15:32:08 +01:00
epenet
7014317e9e Cleanup unnecessary mired attributes in esphome (#132833)
* Cleanup unnecessary mired attributes in esphome

* Adjust
2024-12-10 15:29:33 +01:00
Guido Schmitz
0a786394f5 Add data descriptions to devolo Home Control (#132703) 2024-12-10 15:15:57 +01:00
Franck Nijhof
238cf691a4 Bump version to 2024.12.2 2024-12-10 15:07:18 +01:00
Josef Zweck
5a5bb139fa Bump aioacaia to 0.1.11 (#132838) 2024-12-10 14:59:48 +01:00
Robert Resch
01a9a58327 Bump deebot-client to 9.3.0 (#132834) 2024-12-10 14:59:45 +01:00
David Knowles
fc34c6181c Pass an application identifier to the Hydrawise API (#132779) 2024-12-10 14:59:42 +01:00
David Knowles
60e8a38ba3 Catch Hydrawise authorization errors in the correct place (#132727) 2024-12-10 14:59:37 +01:00
starkillerOG
e4765c40fe Bump reolink-aio to 0.11.5 (#132757) 2024-12-10 14:55:48 +01:00
Bram Kragten
e239871566 Update frontend to 20241127.7 (#132729)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-10 14:55:43 +01:00
Michael Hansen
c8e5a6df5d Bump intents to 2024.12.9 (#132726) 2024-12-10 14:54:48 +01:00
Simone Rescio
cac4eef795 Revert "Bump pyezviz to 0.2.2.3" (#132715) 2024-12-10 14:51:04 +01:00
Joost Lekkerkerker
8fc50c776e Bump yt-dlp to 2024.12.06 (#132684) 2024-12-10 14:51:00 +01:00
Bouwe Westerdijk
da344a44e5 Bump plugwise to v1.6.3 (#132673) 2024-12-10 14:50:57 +01:00
puddly
1993142e44 Bump ZHA dependencies (#132630) 2024-12-10 14:50:54 +01:00
Thomas55555
382d32c7a7 Fix config flow in Husqvarna Automower (#132615) 2024-12-10 14:50:50 +01:00
Bouwe Westerdijk
ef89563bad Bump plugwise to v1.6.2 and adapt (#132608) 2024-12-10 14:50:46 +01:00
Bouwe Westerdijk
26012ac922 Bump plugwise to v1.6.1 (#131950) 2024-12-10 14:50:42 +01:00
J. Nick Koston
a33c69a2a2 Bump yalexs-ble to 2.5.2 (#132560) 2024-12-10 14:45:34 +01:00
Franck Nijhof
0096ffb659 Update twentemilieu to 2.2.0 (#132554) 2024-12-10 14:45:31 +01:00
Robert Svensson
db141ce449 Bump aiounifi to v81 to fix partitioned cookies on python 3.13 (#132540) 2024-12-10 14:45:26 +01:00
Austin Mroczek
af5f718a71 bump total_connect_client to 2023.12 (#132531) 2024-12-10 14:43:52 +01:00
Franck Nijhof
f1284178ed Update debugpy to 1.8.8 (#132519) 2024-12-10 14:41:15 +01:00
J. Nick Koston
b0005cedff Bump pycups to 2.0.4 (#132514) 2024-12-10 14:41:11 +01:00
Erwin Douna
5d01f7db85 Fix PyTado dependency (#132510) 2024-12-10 14:41:08 +01:00
Alex
d6a4a7f052 Update pyrisco to 0.6.5 (#132493) 2024-12-10 14:41:02 +01:00
Ravaka Razafimanantsoa
1f6c5b4d8b Fix API change for AC not supporting floats in SwitchBot Cloud (#132231) 2024-12-10 14:36:09 +01:00
David Knowles
4e56f9c014 Bump pydrawise to 2024.12.0 (#132015) 2024-12-10 14:36:06 +01:00
Åke Strandberg
f343dce418 Enable additional entities on myUplink model SMO20 (#131688)
* Add a couple of entities to SMO 20

* Enable additional entities on SMO20
2024-12-10 14:35:58 +01:00
David Knowles
9614a8d1ca Pass an application identifier to the Hydrawise API (#132779) 2024-12-10 14:23:14 +01:00
Josef Zweck
1a60f0e668 Bump aioacaia to 0.1.11 (#132838) 2024-12-10 14:22:49 +01:00
Matthias Alphart
9551a12c9c Add exception translations for Fronius (#132830)
* Add exception translations for Fronius

* Update sensor.py
2024-12-10 13:58:02 +01:00
epenet
416a4c02b4 Migrate hue lights to use Kelvin (#132835) 2024-12-10 13:55:28 +01:00
Xiretza
6f3a230524 spaceapi: fix sensor values (#132099) 2024-12-10 13:47:20 +01:00
Robert Resch
25d092c8eb Bump deebot-client to 9.3.0 (#132834) 2024-12-10 13:31:22 +01:00
epenet
95107cf670 Add check for typed ConfigEntry in quality scale validation (#132028) 2024-12-10 13:07:08 +01:00
Åke Strandberg
46d4081ec6 Address review comment on myuplink tests (#132819) 2024-12-10 12:58:42 +01:00
Franck Nijhof
71d7e14032 Update wled to v0.21.0 (#132822) 2024-12-10 12:46:56 +01:00
Åke Strandberg
f6621023c2 Improve myuplink tests to reach full coverage for all modules (#131937) 2024-12-10 12:20:21 +01:00
epenet
03c6dab143 Add missing Kelvin attributes to mqtt ignore list (#132820) 2024-12-10 11:47:08 +01:00
Franck Nijhof
e343b69557 Update gotailwind to v0.3.0 (#132817) 2024-12-10 11:35:00 +01:00
Guido Schmitz
ea12a7c9a7 Remove config flow option to set mydevolo URL (#132821) 2024-12-10 11:27:58 +01:00
epenet
13a37da917 Migrate zwave_js lights to use Kelvin (#132818) 2024-12-10 11:01:22 +01:00
Norbert Rittel
b7018deebc Use "remove" in description of "Clear playlist" action (#132079) 2024-12-10 10:57:56 +01:00
epenet
28aa9c2fa3 Migrate vesync lights to use Kelvin (#132806) 2024-12-10 10:56:17 +01:00
Franck Nijhof
30e9c45c7f Update pvo to v2.2.0 (#132812) 2024-12-10 10:55:39 +01:00
epenet
611cef5cd1 Migrate xiaomi_miio lights to use Kelvin (#132811) 2024-12-10 10:41:38 +01:00
epenet
d724488376 Migrate yeelight lights to use Kelvin (#132814) 2024-12-10 10:29:32 +01:00
Åke Strandberg
be1c225c70 Address misc comments from myuplink quality scale review (#132802) 2024-12-10 10:20:30 +01:00
epenet
28d01d88a2 Migrate nanoleaf lights to use Kelvin (#132797) 2024-12-10 10:17:55 +01:00
epenet
4880849074 Migrate homematic lights to use Kelvin (#132794) 2024-12-10 10:17:40 +01:00
epenet
7b0a309fa7 Migrate template lights to use Kelvin (#132799) 2024-12-10 10:11:06 +01:00
epenet
36ce90177f Migrate tradfri lights to use Kelvin (#132800) 2024-12-10 10:09:55 +01:00
epenet
f0e7cb5794 Migrate tuya lights to use Kelvin (#132803) 2024-12-10 10:09:20 +01:00
epenet
bd6df06248 Migrate wemo lights to use Kelvin (#132808) 2024-12-10 10:07:36 +01:00
epenet
e31e4c5d75 Migrate wiz lights to use Kelvin (#132809) 2024-12-10 10:07:02 +01:00
Maciej Bieniek
2a127d19dd Use UnitOfEnergy.KILO_CALORIE in Tractive integration (#131909) 2024-12-10 09:50:53 +01:00
YogevBokobza
790edea4a0 Bump aioswitcher to 5.1.0 (#132753)
* Bump aioswitcher to 5.0.0

* fix tests
2024-12-10 10:43:09 +02:00
Noah Husby
bcedb004be Add diagnostics platform to Russound RIO (#132776) 2024-12-10 09:40:51 +01:00
Assaf Inbal
3bf4ef095d bump pyituran to 0.1.4 (#132791) 2024-12-10 10:39:33 +02:00
Franck Nijhof
988ca114a0 Update ciso8601 to v2.3.2 (#132793) 2024-12-10 09:35:01 +01:00
epenet
b0b3f04a05 Migrate iglo lights to use Kelvin (#132796) 2024-12-10 09:34:15 +01:00
epenet
82692f9a8f Migrate mired attributes to kelvin in limitlessled (#132785) 2024-12-10 09:20:35 +01:00
epenet
a11bf5cce1 Migrate blebox lights to use Kelvin (#132787) 2024-12-10 08:43:07 +01:00
David Knowles
cd420aee88 Catch Hydrawise authorization errors in the correct place (#132727) 2024-12-10 08:38:34 +01:00
epenet
3d1258ddc1 Migrate eufy lights to use Kelvin (#132790) 2024-12-10 08:36:43 +01:00
Brett Adams
17521f25b6 Remove sleep and forbidden handling from Teslemetry (#132784) 2024-12-10 08:35:53 +01:00
epenet
1ee3b68824 Migrate homekit_controller lights to use Kelvin (#132792) 2024-12-10 08:28:38 +01:00
dependabot[bot]
53e528e9b6 Bump actions/attest-build-provenance from 2.0.1 to 2.1.0 (#132788)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-10 08:27:05 +01:00
David Rapan
397091cc7d Add Starlink usage sensors (#132738)
* Add usage metrics returned from history_stats

* Add upload and download usage sensors

* Add strings for upload and download usage sensors

* Add usage to test_diagnostics.ambr

* Add icons for upload and download usage sensors

* Add suggested_unit_of_measurement to GIGABYTES
2024-12-10 08:26:42 +01:00
G Johansson
580a8d66b2 Change fields allowed to change in options flow for Mold indicator (#132400) 2024-12-10 08:20:28 +01:00
epenet
e83a50b88d Migrate elgato lights to use Kelvin (#132789) 2024-12-10 08:15:47 +01:00
Paulus Schoutsen
5062a7fec8 Add new api to fetch sentence triggers (#132764)
* Add new api to fetch sentence triggers

* With latest packages
2024-12-09 23:21:27 -05:00
epenet
cd39e4ac80 Migrate abode lights to use Kelvin (#132690) 2024-12-09 23:51:27 +01:00
jb101010-2
f210b74790 Suez_water: close session after config flow (#132714) 2024-12-09 23:50:04 +01:00
G Johansson
b1c17334f6 Set Nord Pool device as a service (#132717) 2024-12-09 23:48:23 +01:00
epenet
020db5f822 Migrate matter lights to use Kelvin (#132685) 2024-12-09 23:43:45 +01:00
epenet
879e082b54 Migrate osramlightify lights to use Kelvin (#132688) 2024-12-09 23:17:57 +01:00
Norbert Rittel
d2478b4058 Use consistent UI name for system_log.clear action (#132083) 2024-12-09 23:16:23 +01:00
Norbert Rittel
bd4e21aa9d Improve description of 'vapid_email' field (#131349) 2024-12-09 23:15:23 +01:00
Franck Nijhof
1256a7ea96 Update demetriek to v1.0.0 (#132765) 2024-12-09 23:11:30 +01:00
Brett Adams
1929b368fe Remove legacy behavior from Teslemetry (#132760) 2024-12-09 23:11:23 +01:00
J. Nick Koston
f177336025 Add missing last_reported_timestamp to LazyState (#132761)
followup to #132752
2024-12-09 23:08:01 +01:00
epenet
be34d302df Use local ATTR_KELVIN constant in yeelight (#132731) 2024-12-09 23:04:32 +01:00
epenet
f2500e5a32 Remove deprecated supported features warning in MediaPlayer (#132365) 2024-12-09 23:03:55 +01:00
Richard Kroegel
772b047d44 Change BMW reauth/reconfigure to only allow password (#132767)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-09 23:00:38 +01:00
epenet
4cb23ce562 Migrate hive lights to use Kelvin (#132686) 2024-12-09 22:59:21 +01:00
epenet
dcbedb5ae5 Migrate smartthings lights to use Kelvin (#132699) 2024-12-09 22:55:06 +01:00
starkillerOG
abc79a9f1c Bump reolink-aio to 0.11.5 (#132757) 2024-12-09 22:53:17 +01:00
epenet
07d8778870 Remove old compatibility code (and add new warning) in lifx (#132730) 2024-12-09 22:49:47 +01:00
epenet
da0454e24e Migrate limitlessled lights to use Kelvin (#132689) 2024-12-09 22:40:16 +01:00
Norbert Rittel
2d4fe5853f Add clearer descriptions to all Timer actions (#132571)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-12-09 22:37:32 +01:00
Noah Husby
3a65d1b611 Mark Cambridge Audio quality scale as platinum (#132762) 2024-12-09 22:28:14 +01:00
Åke Strandberg
af7caeae53 Add quality scale to myUplink - reflect current state (#131686) 2024-12-09 22:20:23 +01:00
epenet
b139af9a9c Migrate deconz lights to use Kelvin (#132698)
* Use ATTR_COLOR_TEMP_KELVIN in kelvin light

* Adjust
2024-12-09 21:46:46 +01:00
J. Nick Koston
e4ba94f939 Fix LazyState compatibility with State under_cached_property change (#132752) 2024-12-09 21:41:08 +01:00
Noah Husby
aa7b69afd4 Add reconfigure flow to Cambridge Audio (#131091)
* Add reconfigure flow to Cambridge Audio

* Update

* Add reconfigure flow to Cambridge Audio

* Fix

* Add helper method to reconfigure tests

* Update quality scale
2024-12-09 20:39:09 +01:00
Assaf Inbal
d3fab7d87a Add Ituran integration (#129067) 2024-12-09 20:19:15 +01:00
Norbert Rittel
e91cb99512 Improve name and description of Include list, fix holidays keyword name (#132188)
* Improve description of Include list, fix the keyword name

* Use "Days to include / exclude" to make more user-friendly

* Reworded both descriptions as suggested

* Updated up the exclude description, re-added reference to docs
2024-12-09 20:18:21 +01:00
epenet
7ba5038509 Remove YAML support from cert_expiry (#132350)
* Deprecate yaml import in cert_expiry

* Simplify

* Do full cleanup

* Cleanup more
2024-12-09 20:15:46 +01:00
adam-the-hero
c6bcd5a036 Add Watergate Sonic Local Integration (#129686)
Co-authored-by: Mark Breen <markvader@users.noreply.github.com>
2024-12-09 19:40:13 +01:00
Tom
674d42d8a0 Plugwise improve exception translations (#132663) 2024-12-09 19:05:10 +01:00
Tom
0c08e88953 Improve Plugwise tests (#132677) 2024-12-09 19:00:51 +01:00
epenet
b1217f5792 Use ATTR_COLOR_TEMP_KELVIN in alexa (#132733) 2024-12-09 18:01:24 +01:00
Raphael Hehl
9d79d905a4 Bump uiprotect to 6.8.0 (#132735)
Update uiprotect to version 6.8.0
2024-12-09 17:44:13 +01:00
Simone Rescio
85ed1d2ac8 Revert "Bump pyezviz to 0.2.2.3" (#132715) 2024-12-09 17:19:10 +01:00
Bram Kragten
5b06acfabd Update frontend to 20241127.7 (#132729)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-09 17:10:52 +01:00
Joost Lekkerkerker
241026ef67 Bump yt-dlp to 2024.12.06 (#132684) 2024-12-09 17:09:17 +01:00
Michael Hansen
887f1621e5 Bump intents to 2024.12.9 (#132726) 2024-12-09 17:08:58 +01:00
epenet
46e513615e Migrate switchbot lights to use Kelvin (#132695) 2024-12-09 09:25:25 -06:00
epenet
a20347963e Migrate flux_led lights to use Kelvin (#132687) 2024-12-09 09:25:15 -06:00
David Rapan
21a2ce6b59 Add Starlink consumption sensors (#132262) 2024-12-09 16:19:23 +01:00
Marc Mueller
49800f9aaa Update pylint to 3.3.2 and astroid to 3.3.6 (#132718)
* Update pylint to 3.3.2 and astroid to 3.3.6

* Fix
2024-12-09 16:05:40 +01:00
G Johansson
3be0d0d085 Add myself as code owner to statistics (#132719) 2024-12-09 16:04:47 +01:00
epenet
786a417ac9 Use kelvin attributes in baf (#132725) 2024-12-09 09:00:59 -06:00
epenet
ac791bdd20 Migrate opple lights to use Kelvin (#132697) 2024-12-09 14:55:07 +00:00
Åke Strandberg
8d72443fd6 Set unique_id in myuplink config entry (#132672) 2024-12-09 15:47:40 +01:00
G Johansson
74eddce3d3 Change to module function in statistics (#132648) 2024-12-09 15:23:21 +01:00
epenet
72de5d0fa3 Fix reading of max mireds from Matter lights (#132710) 2024-12-09 15:14:24 +01:00
dotvav
bd0da03eb9 Palazzetti power control (#131833)
* Add number entity

* Catch exceptions

* Add test coverage

* Add translation

* Fix exception message

* Simplify number.py

* Remove dead code
2024-12-09 14:02:17 +01:00
G Johansson
4e2e6619d0 Increase test coverage in yale_smart_alarm (#132650) 2024-12-09 13:52:51 +01:00
Manu
f4e48c31bd Add binary platform to IronOS (#132691)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-09 13:37:38 +01:00
Jan-Philipp Benecke
4bb3d6123d Move SABnzbd action setup to async_setup (#132629) 2024-12-09 13:37:17 +01:00
epenet
549afbc27e Use ATTR_COLOR_TEMP_KELVIN in baf light (#132692) 2024-12-09 12:55:39 +01:00
epenet
b1791aae63 Use ATTR_COLOR_TEMP_KELVIN in emulated_hue light (#132693) 2024-12-09 12:53:24 +01:00
Bouwe Westerdijk
fa9ee2adc6 Bump plugwise to v1.6.3 (#132673) 2024-12-09 12:27:15 +01:00
Thomas55555
ad34082435 Set quality scale to silver for Husqvarna Automower (#132293) 2024-12-09 12:18:45 +01:00
Norbert Rittel
97cd3cd7dc Add slightly more detailed descriptions for Counter actions (#132576) 2024-12-09 11:51:58 +01:00
epenet
6cf10cd0b2 Remove deprecated supported features warning in Update (#132667) 2024-12-09 11:25:18 +01:00
Manu
ee8f720253 Add tip connected detection to IronOS (#131946)
* Add binary platform and tip connected detection to IronOS

* suggested changes

* fix

* fix mypy

* revert accidental overwriting

* Remove binary sensor

* snapshot
2024-12-09 10:50:37 +01:00
epenet
5e8012f3f5 Remove deprecated supported features warning in WaterHeater (#132668) 2024-12-09 10:48:40 +01:00
epenet
57d5d7d2f2 Remove deprecated supported features warning in Vacuum (#132670) 2024-12-09 10:47:38 +01:00
epenet
31150bf897 Remove deprecated supported features warning in Siren (#132666) 2024-12-09 10:19:07 +01:00
epenet
427db02029 Remove deprecated supported features warning in AlarmControlPanel (#132665) 2024-12-09 10:16:48 +01:00
epenet
24b1eeb900 Remove YAML support from vizio (#132351) 2024-12-09 10:15:01 +01:00
epenet
1ec91e7c89 Remove deprecated supported features warning in Lock (#132642) 2024-12-09 08:45:36 +01:00
epenet
9ef9f2fafb Remove deprecated supported features warning in Humidifier (#132641) 2024-12-09 08:32:49 +01:00
epenet
f7ce112653 Remove deprecated supported features warning in Remote (#132643) 2024-12-09 08:32:30 +01:00
G Johansson
e0bb044782 Remove not needed code check in yale_smart_alarm (#132649) 2024-12-09 08:31:42 +01:00
Franck Nijhof
eddb416f6d Remove Stookalert integration (#132569) 2024-12-09 08:30:18 +01:00
epenet
6c3e56748c Use ast_parse_module in parallel_updates IQS rule (#132646) 2024-12-09 08:29:31 +01:00
epenet
644b07d084 Remove deprecated supported features warning in Camera (#132640) 2024-12-09 08:24:09 +01:00
dependabot[bot]
206cac6811 Bump actions/attest-build-provenance from 2.0.0 to 2.0.1 (#132661)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 08:17:15 +01:00
Åke Strandberg
182c85cf23 Enable additional entities on myUplink model SMO20 (#131688)
* Add a couple of entities to SMO 20

* Enable additional entities on SMO20
2024-12-09 07:51:03 +01:00
Thomas55555
9f0356fcfe Increase test coverage in apsystems coordinator (#132631)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-09 00:20:53 +01:00
hahn-th
ed938ba315 Bump homematicip from 1.1.3 to 1.1.5 (#132537) 2024-12-08 23:38:23 +01:00
Bouwe Westerdijk
0b7447c562 Bump plugwise to v1.6.2 and adapt (#132608) 2024-12-08 23:36:55 +01:00
Ravaka Razafimanantsoa
ce8c5fc3a9 Fix API change for AC not supporting floats in SwitchBot Cloud (#132231) 2024-12-08 23:35:41 +01:00
Franck Nijhof
be10d79c75 Update twentemilieu to 2.2.0 (#132554) 2024-12-08 23:30:12 +01:00
Hugo Ideler
d166e5fdcc Bump nsapi to 3.1.2 (#132596) 2024-12-08 23:29:43 +01:00
Tom
421e2411d3 Plugwise Quality improvements (#132175) 2024-12-08 22:58:17 +01:00
G Johansson
a4ceed776e Add tests to Nord Pool (#132468) 2024-12-08 22:50:22 +01:00
puddly
2f0e6a6dc7 Bump ZHA dependencies (#132630) 2024-12-08 22:32:39 +02:00
Thomas55555
d32e69dcb6 Fix config flow in Husqvarna Automower (#132615) 2024-12-08 15:59:27 +01:00
mkmer
b40d8074c0 Use runtime_data in Whirlpool (#132613)
Use runtime_data in whirlpool
2024-12-08 15:46:44 +01:00
Robert Svensson
a8713af8b8 Bump aiounifi to v81 to fix partitioned cookies on python 3.13 (#132540) 2024-12-07 15:31:11 -06:00
Raphael Hehl
09908153f8 Bump uiprotect to 6.7.0 (#132565) 2024-12-07 19:22:35 +01:00
J. Nick Koston
e04fd48a05 Bump yalexs-ble to 2.5.2 (#132560) 2024-12-07 18:12:58 +01:00
Josef Zweck
b9002d0c64 Bump pylamarzocco to 1.3.3 (#132534) 2024-12-07 12:18:04 +01:00
Austin Mroczek
acf207ad1c bump total_connect_client to 2024.12 (#132531) 2024-12-07 10:43:55 +01:00
Jan-Philipp Benecke
35fa6e5121 Set PARALLEL_UPDATES in Bring sensor platform (#132538)
* Set IQS `parallel-updates` to todo in Bring integration

* Set parallel_updates in sensor
2024-12-07 09:57:18 +01:00
Artur Pragacz
61fbfc3d40 Use device area/floor in intent_script (#130644)
* Use device area/floor in intent_script

* Add test
2024-12-07 00:49:07 -05:00
Franck Nijhof
16484dcee5 Update debugpy to 1.8.8 (#132519) 2024-12-06 16:26:24 -06:00
Franck Nijhof
d2463b9e7b Update go2rtc-client to 0.1.2 (#132517) 2024-12-06 23:08:12 +01:00
J. Diego Rodríguez Royo
0d0ef6bf03 Add exception handlers to Home Connect action calls (#131895)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 22:58:13 +01:00
Tom
18e8b080e0 Plugwise add missing translation (#132239)
Co-authored-by: Bouwe Westerdijk <bouwe.s.westerdijk@gmail.com>
2024-12-06 22:56:45 +01:00
Duco Sebel
5f3bb7e89e Use build in unit of measurement in HomeWizard 'Water usage' sensor (#132261) 2024-12-06 22:55:39 +01:00
Alex
a248a6d991 Update pyrisco to 0.6.5 (#132493) 2024-12-06 15:43:57 -06:00
epenet
12be82fdbc Add parallel-updates rule to quality_scale validation (#132041) 2024-12-06 22:40:29 +01:00
J. Nick Koston
5bae000db5 Bump pycups to 2.0.4 (#132514) 2024-12-06 22:05:27 +01:00
G Johansson
f02989e631 Removes previously deprecated simulated integration (#132111) 2024-12-06 21:54:01 +01:00
Jan Rieger
4fe8a43cc9 Remove native_unit_of_measurement from Onewire counters (#132076) 2024-12-06 21:23:45 +01:00
Erwin Douna
3fb1b8e79a Fix PyTado dependency (#132510) 2024-12-06 21:13:26 +01:00
Erik Montnemery
552613d949 Remove support for live recorder data migration of event type IDs (#131826) 2024-12-06 21:08:08 +01:00
Erik Montnemery
d26d483a2f Improve recorder util resolve_period (#132264) 2024-12-06 21:06:56 +01:00
G Johansson
40239945c1 Remove not needed name from yale_smart_alarm (#132204) 2024-12-06 21:01:41 +01:00
epenet
9771998415 Cache AST module parsing in hassfest (#132244) 2024-12-06 20:55:34 +01:00
G Johansson
e54d929573 Small cleanup in sensibo (#132118) 2024-12-06 20:54:50 +01:00
G Johansson
0111205f81 Remove migration for tag (#132200) 2024-12-06 20:54:05 +01:00
dependabot[bot]
a661e60511 Bump actions/attest-build-provenance from 1.4.4 to 2.0.0 (#132332)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 20:50:13 +01:00
Brett Adams
71f5f4bcdd Remove default OAuth implementation from Tesla Fleet (#132431) 2024-12-06 20:43:37 +01:00
Brett Adams
b30795e1f4 Add more models to Tesla Fleet (#132430) 2024-12-06 20:42:52 +01:00
Manu
2fd3aac268 Add check for unique id mismatch in reauth of Bring integration (#132499) 2024-12-06 20:39:50 +01:00
epenet
1f8913d6cd Remove deprecated supported features warning in LightEntity (#132371) 2024-12-06 20:29:30 +01:00
epenet
23461d2cfd Add tests for media player support_* properties (#132458) 2024-12-06 20:26:50 +01:00
epenet
3c06fe1e21 Move light constants to separate module (#132473) 2024-12-06 20:25:17 +01:00
Manu
49621aedb0 Set parallel updates in Bring integration (#132504) 2024-12-06 20:22:48 +01:00
Franck Nijhof
cf53a9743f 2024.12.1 (#132509) 2024-12-06 20:21:31 +01:00
Franck Nijhof
4884891b2c Bump version to 2024.12.1 2024-12-06 18:54:13 +01:00
Allen Porter
30504fc9bd Fix google tasks due date timezone handling (#132498) 2024-12-06 18:53:42 +01:00
Bram Kragten
8827454dbd Update frontend to 20241127.6 (#132494) 2024-12-06 18:53:39 +01:00
Bram Kragten
3b30bbb85e Update frontend to 20241127.5 (#132475) 2024-12-06 18:53:35 +01:00
epenet
df9eb482b5 Bump samsungtvws to 2.7.2 (#132474) 2024-12-06 18:53:32 +01:00
Steven B.
32aee61441 Bump tplink python-kasa dependency to 0.8.1 (#132472) 2024-12-06 18:53:29 +01:00
Robert Resch
35873cbe27 Point to the Ecovacs issue in the library for unspoorted devices (#132470)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-06 18:53:26 +01:00
Robert Resch
6fe492a51c Bump deebot-client to 9.2.0 (#132467) 2024-12-06 18:53:22 +01:00
G Johansson
b1bc35f1c3 Fix nordpool dont have previous or next price (#132457) 2024-12-06 18:53:19 +01:00
Joakim Sørensen
56d10a0a7a Bump hass-nabucasa from 0.85.0 to 0.86.0 (#132456)
Bump hass-nabucasa fro 0.85.0 to 0.86.0
2024-12-06 18:53:16 +01:00
Allen Porter
d091936ac6 Update exception handling for python3.13 for getpass.getuser() (#132449)
* Update exception handling for python3.13 for getpass.getuser()

* Add comment

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Cleanup trailing space

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 18:53:12 +01:00
J. Nick Koston
1dfd4e80b9 Bump aioesphomeapi to 28.0.0 (#132447) 2024-12-06 18:53:09 +01:00
J. Nick Koston
d919de6734 Bump aiohttp to 3.11.10 (#132441) 2024-12-06 18:53:06 +01:00
Blake Bryant
3f9f0f8ac2 Bump pydeako to 0.6.0 (#132432)
feat: update deako integration to use improved version of pydeako

Some things of note:
- simplified errors
- pydeako has introduced some connection improvements

See here: https://github.com/DeakoLights/pydeako/releases/tag/0.6.0
2024-12-06 18:53:03 +01:00
Glenn Waters
bf20ffae96 Bump upb-lib to 0.5.9 (#132411) 2024-12-06 18:53:00 +01:00
Diogo Gomes
dad81927cb Removes references to croniter from utility_meter (#132364)
remove croniter
2024-12-06 18:52:56 +01:00
robinostlund
92392ab3d4 Add missing UnitOfPower to sensor (#132352)
* Add missing UnitOfPower to sensor

* Update homeassistant/components/sensor/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* adding to number

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 18:52:53 +01:00
Brett Adams
a47e5398f0 Bump tesla-fleet-api to 0.8.5 (#132339) 2024-12-06 18:52:50 +01:00
J. Nick Koston
cf6d33635b Fix deprecated call to mimetypes.guess_type in CachingStaticResource (#132299) 2024-12-06 18:52:47 +01:00
Alberto Geniola
6a4031a383 Bump elmax-api to 0.0.6.3 (#131876) 2024-12-06 18:52:39 +01:00
dependabot[bot]
4de179c4c1 Bump codecov/codecov-action from 5.0.7 to 5.1.1 (#132455)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-06 18:43:13 +01:00
Allen Porter
7630ea4f09 Fix google tasks due date timezone handling (#132498) 2024-12-06 16:58:48 +01:00
Bram Kragten
20e0913286 Update frontend to 20241127.6 (#132494) 2024-12-06 16:58:09 +01:00
Allen Porter
35438f65e5 Update exception handling for python3.13 for getpass.getuser() (#132449)
* Update exception handling for python3.13 for getpass.getuser()

* Add comment

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Cleanup trailing space

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 06:54:21 -08:00
Steven B.
1a0a2ebdb1 Bump tplink python-kasa dependency to 0.8.1 (#132472) 2024-12-06 15:27:52 +01:00
epenet
4b4c886438 Bump samsungtvws to 2.7.2 (#132474) 2024-12-06 12:23:07 +01:00
Bram Kragten
0d1abc31b5 Update frontend to 20241127.5 (#132475) 2024-12-06 12:22:42 +01:00
Robert Resch
773ad6529c Bump deebot-client to 9.2.0 (#132467) 2024-12-06 12:22:05 +01:00
G Johansson
2eaf206562 Implement new state property for vacuum which is using an enum (#126353)
* Implement new state property for vacuum which is using an enum

* Mod

* Mod init

* Mods

* Fix integrations

* Tests

* Fix state

* Add vacuum tests

* Fix last test

* Litterrobot tests

* Fixes

* Tests

* Fixes

* Fix VacuumEntity

* Mods

* Mods

* Mods

* Update demo

* LG

* Fix vacuum

* Fix Matter

* Fix deprecation version

* Mods

* Fixes

* Fix ruff

* Fix tests

* Fix roomba

* Fix breaking dates
2024-12-06 11:16:03 +01:00
Robert Resch
bd9aefda62 Point to the Ecovacs issue in the library for unspoorted devices (#132470)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-06 11:01:00 +01:00
epenet
b4d01dfd0c Adjust scope of zha global quirks fixture (#132463) 2024-12-06 10:11:52 +01:00
epenet
0c8ebbe588 Log warning on use of deprecated light constants (#132387) 2024-12-06 09:56:28 +01:00
epenet
4a7e6bc068 Fix flaky CI from azure_event_hub (#132461) 2024-12-06 09:55:00 +01:00
Petar Petrov
30f84f55a4 Handle Z-Wave JS S2 inclusion via Inclusion Controller (#132073)
* ZwaveJS: Handle S2 inclusion via Inclusion Controller

* improved tests
2024-12-06 09:35:48 +01:00
G Johansson
ce3db31b30 Fix nordpool dont have previous or next price (#132457) 2024-12-06 08:33:05 +01:00
dependabot[bot]
ff46b3a2bb Bump actions/cache from 4.1.2 to 4.2.0 (#132419) 2024-12-06 08:29:09 +01:00
Blake Bryant
ef55a8e665 Bump pydeako to 0.6.0 (#132432)
feat: update deako integration to use improved version of pydeako

Some things of note:
- simplified errors
- pydeako has introduced some connection improvements

See here: https://github.com/DeakoLights/pydeako/releases/tag/0.6.0
2024-12-06 08:28:02 +01:00
Joakim Sørensen
9058e00aef Bump hass-nabucasa from 0.85.0 to 0.86.0 (#132456)
Bump hass-nabucasa fro 0.85.0 to 0.86.0
2024-12-06 08:20:06 +01:00
Marc Mueller
60fd9d5027 Update mypy-dev to 1.14.0a6 (#132440) 2024-12-05 21:34:05 -06:00
Glenn Waters
28d6a21189 Bump upb-lib to 0.5.9 (#132411) 2024-12-05 21:32:33 -06:00
J. Nick Koston
909b13809e Bump aioesphomeapi to 28.0.0 (#132447) 2024-12-05 21:23:24 -06:00
J. Nick Koston
88eb611eef Fix deprecated call to mimetypes.guess_type in CachingStaticResource (#132299) 2024-12-05 21:52:48 -05:00
J. Nick Koston
edc857b365 Bump aiohttp to 3.11.10 (#132441) 2024-12-05 19:50:02 -06:00
Brett Adams
0aeb8f44f4 Bump tesla-fleet-api to 0.8.5 (#132339) 2024-12-05 23:04:02 +01:00
Jan Bouwhuis
3e98df707d Remove deprecated integration dte_energy_bridge (#132276)
* Remove deprecated integration dte_energy_bridge

* Update quality scale script and ran hassfest
2024-12-05 22:23:31 +01:00
epenet
841773bb68 Remove yaml import from hive (#132354)
* Raise issue on hive deprecated YAML configuration

* Remove YAML import
2024-12-05 22:16:18 +01:00
G Johansson
e7f44048e9 Remove _enable_turn_on_off_backwards_compatibility T-Z (#132423) 2024-12-05 21:48:02 +01:00
G Johansson
60563ae88a Remove _enable_turn_on_off_backwards_compatibility N-S (#132422) 2024-12-05 21:47:31 +01:00
G Johansson
ee6be6bfd6 Remove _enable_turn_on_off_backwards_compatibility G-M (#132418) 2024-12-05 21:47:13 +01:00
G Johansson
768c2b0f3d Remove _enable_turn_on_off_backwards_compatibility A-F (#132417)
Remove _enable_turn_on_off_backwards_compatibility A-G
2024-12-05 21:46:59 +01:00
epenet
b1379f6a89 Avoid access to self.context["source"] in integration config flows (#132355)
* Avoid access to `self.context["source"]` in integration config flows

* One more

* One more
2024-12-05 21:20:02 +01:00
epenet
b2ac16e95f Remove deprecated supported features warning in CoverEntity (#132367)
Cleanup magic numbers for cover supported features
2024-12-05 21:18:45 +01:00
Artur Pragacz
1ca2f3393c Add data description for Onkyo config flow (#132349) 2024-12-05 21:15:40 +01:00
Jan Bouwhuis
5fdd705edf Remove yaml import from incomfort integration after deprecation time (#132275)
* Remove yaml import from incomfort integration after deprecation time

* Cleanup CONFIG_SCHEMA

* restore missing DOMAIN import

* Import DOMAIN from const
2024-12-05 21:15:26 +01:00
robinostlund
f4896f7b09 Add missing UnitOfPower to sensor (#132352)
* Add missing UnitOfPower to sensor

* Update homeassistant/components/sensor/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* adding to number

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-05 21:14:04 +01:00
Jan Bouwhuis
3a2460f9f9 Remove yaml import from feedreader integration (#132278)
* Remove yaml import from feedreader integration

* Update homeassistant/components/feedreader/config_flow.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Drop _max_entries class attribute

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-05 20:57:43 +01:00
epenet
e5851c20e9 Mark test-before-setup as exempt in mqtt (#132334) 2024-12-05 20:55:54 +01:00
G Johansson
c41cf570d3 Remove deprecated supported features warning in ClimateEntity (#132206)
* Remove deprecated features from ClimateEntity

* Remove not needed tests

* Remove add_to_platform_start
2024-12-05 20:37:17 +01:00
epenet
17afe1ae51 Remove deprecated supported features warning in FanEntity (#132369) 2024-12-05 20:32:59 +01:00
epenet
39abeb4600 Use typed config entry in husqvarna_automower (#132346) 2024-12-05 20:24:21 +01:00
Artur Pragacz
c38a33d330 Fix missing AV info in Onkyo (#132328)
Add additional AV info to Onkyo
2024-12-05 11:48:15 -06:00
Diogo Gomes
7de9e9d37a Removes references to croniter from utility_meter (#132364)
remove croniter
2024-12-05 11:45:04 -06:00
Franck Nijhof
52e6afdcca Merge branch 'master' into dev 2024-12-05 13:22:49 +01:00
epenet
13a59dee5a Remove dead code in fritzbox_callmonitor (#132353) 2024-12-05 10:26:11 +00:00
Josef Zweck
33ad27d569 Bump pylamarzocco to 1.3.2 (#132344) 2024-12-05 10:28:57 +01:00
epenet
9fd23a6d30 Revert "Pin rpds-py to 0.21.0 to fix CI" (#132331)
Revert "Pin rpds-py to 0.21.0 to fix CI (#132170)"

This reverts commit 7e07930342.
2024-12-05 08:41:53 +01:00
Tobias Perschon
5137b06ee7 Remove stale requirement for androidtv (#132319)
* removed stale pure-python-adb reference

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* reverted wrong changes

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* removed wrong file

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* cosmetic update

Signed-off-by: Tobias Perschon <tobias@perschon.at>

---------

Signed-off-by: Tobias Perschon <tobias@perschon.at>
2024-12-05 02:53:33 +01:00
Artur Pragacz
f68b78d00e Add quality scale to Onkyo (#131322)
* Add quality scale to Onkyo

* Update homeassistant/components/onkyo/quality_scale.yaml

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* docs limitations todo

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* entity event setup

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-12-05 02:34:07 +01:00
Noah Husby
1456d5802d Fix runtime data in Cambridge Audio (#132285)
* Fix runtime data in Cambridge Audio

* Update
2024-12-04 17:20:27 -06:00
Alberto Geniola
84e6c0b9ac Bump elmax-api to 0.0.6.3 (#131876) 2024-12-04 23:59:40 +01:00
G Johansson
94b16da90f Set command_line quality scale to legacy (#132306) 2024-12-04 15:58:45 -06:00
mkmer
950563cf32 Use config_entry.runtime_data in Honeywell (#132297)
* Use entry.runtime_data

* switch

* create new type

* Extend ConfigEntry

* simplify runtime_data, clean up data types

* More config_entry types

* Yet more missing type changes
2024-12-04 21:54:12 +01:00
mkmer
437111453b Bump aiosomecomfort to 0.0.28 in Honeywell (#132294)
Bump aiosomecomfort
2024-12-04 21:49:23 +01:00
Jeff Terrace
106c5d4248 Add support for onvif tplink person and vehicle events (#130769)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-04 14:15:30 -06:00
Thomas55555
de0ffea52d Clean up common modules in Husqvarna Automower (#132290) 2024-12-04 20:28:43 +01:00
G Johansson
80ad154dcd Refactor template lock to only return LockState or None (#132093)
* Refactor template lock to only return LockState or None

* Test for false states

* Use strings
2024-12-04 20:04:50 +01:00
Franck Nijhof
2b40844171 2024.12.0 (#132195) 2024-12-04 19:58:02 +01:00
Thomas55555
e55d8b2d2b Check token scope earlier in Husqvarna Automower (#132289) 2024-12-04 19:50:15 +01:00
Manu
2977cf227e Add Bring! quality scale record (#131584) 2024-12-04 19:49:58 +01:00
J. Nick Koston
719cbd3070 Fix test_dump_log_object timeouts in the CI (#132234) 2024-12-04 19:30:48 +01:00
Franck Nijhof
9b90df74a6 Bump version to 2024.12.0 2024-12-04 19:18:48 +01:00
Thomas55555
bd40e1e7df Add quality scale for Husqvarna Automower (#131560) 2024-12-04 19:12:26 +01:00
Michael Hansen
dcdf033fa9 Bump intents to 2024.12.4 (#132274) 2024-12-04 19:03:26 +01:00
Noah Husby
8910dbbcd1 Record current IQS state for Cambridge Audio (#131080) 2024-12-04 18:22:34 +01:00
Manu
bd1ad04dab Add ista EcoTrend quality scale record (#131580) 2024-12-04 18:20:59 +01:00
Klaas Schoute
d92dbbf58b Set new polling interval for Powerfox integration (#132263) 2024-12-04 17:26:04 +01:00
Tucker Kern
b3ff8f56b9 Refactor Snapcast client and group classes to use a common base clase (#124499)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-04 17:22:31 +01:00
Manu
b6b340ae63 Add IronOS quality scale record (#131598) 2024-12-04 17:18:21 +01:00
Michael Hansen
5c60cffd4d Bump intents to 2024.12.4 (#132274) 2024-12-04 11:02:00 -05:00
Franck Nijhof
4c3ae395a4 Bump version to 2024.12.0b6 2024-12-04 15:33:47 +01:00
Jan Bouwhuis
333ada7670 Ensure MQTT subscriptions can be made when the broker is disconnected (#132270) 2024-12-04 15:33:35 +01:00
Bram Kragten
4fd4ba7813 Update frontend to 20241127.4 (#132268) 2024-12-04 15:33:31 +01:00
Robert Resch
7e96666dc5 Bump deebot-client to 9.1.0 (#132253) 2024-12-04 15:33:28 +01:00
Joost Lekkerkerker
e463d5d16f Bump yt-dlp to 2024.12.03 (#132220) 2024-12-04 15:33:24 +01:00
Raphael Hehl
f28579357e fix: unifiprotect prevent RTSP repair for third-party cameras (#132212)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-04 15:33:21 +01:00
cnico
d40a9bd9ef Fix blocking call in netdata (#132209)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-12-04 15:33:17 +01:00
lunmay
28ecee6479 Fix typo in exception message in google_photos integration (#132194) 2024-12-04 15:33:14 +01:00
Michael Hansen
512ac7d572 Ensure entity names are not hassil templates (#132184) 2024-12-04 15:33:11 +01:00
Pete
22b353f7d5 Fix recorder "year" period in leap year (#132167)
* FIX: make "year" period work in leap year

* Add test

* Set second and microsecond to non-zero in test start times

* FIX: better fix for leap year problem

* Revert "FIX: better fix for leap year problem"

This reverts commit 06aba46ec6.

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-12-04 15:33:07 +01:00
Jan-Philipp Benecke
49c40cd902 Track if intent was processed locally (#132166) 2024-12-04 15:33:04 +01:00
LG-ThinQ-Integration
629c7a53ce Bump thinqconnect to 1.0.2 (#132131)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-12-04 15:32:58 +01:00
G Johansson
66e3ffffa7 Bump holidays to 0.62 (#132108) 2024-12-04 15:32:55 +01:00
Joost Lekkerkerker
139b424717 Bump knocki to 0.4.2 (#129261) 2024-12-04 15:32:50 +01:00
Jan Bouwhuis
8f43a71ff6 Ensure MQTT subscriptions can be made when the broker is disconnected (#132270) 2024-12-04 15:18:04 +01:00
Bram Kragten
02db5ec88f Update frontend to 20241127.4 (#132268) 2024-12-04 14:57:25 +01:00
Joost Lekkerkerker
d88f6dc6b9 Bump knocki to 0.4.2 (#129261) 2024-12-04 14:56:42 +01:00
dependabot[bot]
977d8fd1c8 Bump github/codeql-action from 3.27.5 to 3.27.6 (#132237)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 14:51:10 +01:00
Erik Montnemery
deab285db8 Improve tests of recorder util resolve_period (#132259) 2024-12-04 14:01:49 +01:00
Pete
a417d3dcf8 Fix recorder "year" period in leap year (#132167)
* FIX: make "year" period work in leap year

* Add test

* Set second and microsecond to non-zero in test start times

* FIX: better fix for leap year problem

* Revert "FIX: better fix for leap year problem"

This reverts commit 06aba46ec6.

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-12-04 13:21:10 +01:00
Robert Resch
545a780fcb Bump deebot-client to 9.1.0 (#132253) 2024-12-04 11:50:55 +01:00
G Johansson
5a1d5802c4 Fix sensibo test coverage to 100% (#132202) 2024-12-04 11:19:11 +01:00
Klaas Schoute
f0c07d68c5 Catch exceptions on entry setup for Autarco integration (#132227) 2024-12-04 11:17:39 +01:00
G Johansson
db266d80ec Pass config entry to UpdateCoordinator in yale_smart_alarm (#132205) 2024-12-04 10:45:47 +01:00
epenet
8c6d638354 Improve discovery rule in IQS validation (#132251)
* Improve discovery rule in IQS validation

* Adjust fyta/powerfox
2024-12-04 10:43:44 +01:00
Christopher Masto
ea9301aa9e Fix Visual Studio Code tasks to use selected Python interpreter (#132219) 2024-12-04 10:39:54 +01:00
Franck Nijhof
33633f885d Ran hassfest 2024-12-04 09:59:28 +01:00
epenet
2ebc229d8d Use typed config entry in mastodon (#132249) 2024-12-04 09:54:29 +01:00
cnico
5600ad0d82 Fix blocking call in netdata (#132209)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-12-04 09:53:29 +01:00
epenet
cafd2092d4 Use typed config entry in fyta (#132248) 2024-12-04 09:52:31 +01:00
Jan-Philipp Benecke
6b7724c556 Track if intent was processed locally (#132166) 2024-12-04 09:52:15 +01:00
Klaas Schoute
ab1f03f392 Add diagnostics to Powerfox integration (#132226)
* Add diagnostics to Powerfox integration

* Update quality scale list
2024-12-04 09:37:17 +01:00
Joost Lekkerkerker
58d06ebc39 Bump yt-dlp to 2024.12.03 (#132220) 2024-12-04 09:35:53 +01:00
Jeff Terrace
ce11ac5ecd Bump onvif-zeep-async to 3.1.13 (#132229)
Bump onvif-zeep-async to 3.1.13.
2024-12-04 07:34:00 +01:00
Raphael Hehl
cb36184511 fix: unifiprotect prevent RTSP repair for third-party cameras (#132212)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-03 23:03:31 -06:00
Klaas Schoute
1fe2a928a2 Add reauthentication flow for Powerfox integration (#132225)
* Add reauthentication flow for Powerfox integration

* Update quality scale
2024-12-04 01:48:35 +01:00
LG-ThinQ-Integration
7a98497710 Bump thinqconnect to 1.0.2 (#132131)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-12-04 01:46:36 +01:00
Allen Porter
3ef9b71807 Add quality_scale.yaml for Google Photos integration (#131329)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-04 01:18:34 +01:00
Andrew Jackson
3b39c53479 Add quality scale for Mastodon (#131357) 2024-12-04 01:08:58 +01:00
dontinelli
c0303bc652 Add quality scale for fyta (#131508)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-04 00:59:57 +01:00
jb101010-2
2696405c63 Suez water add quality_scale.yaml (#131360)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-04 00:59:36 +01:00
Tom
9a17389cd0 Plugwise quality docs benchmark data update and removal (#132082) 2024-12-04 00:42:53 +01:00
Manu
c484568e75 Bump pynecil to v2.0.2 (#132221) 2024-12-04 00:40:41 +01:00
dontinelli
5b365fc0bd Add missing data description for solarlog (#131712) 2024-12-04 00:39:53 +01:00
Klaas Schoute
abd3466d19 Add powerfox integration (#131640) 2024-12-04 00:35:50 +01:00
Richard Kroegel
535b47789f Improve BMWDataUpdateCoordinator typing (#132087)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-04 00:33:45 +01:00
G Johansson
4deaeaeda0 Fix next mypy issue in airzone_cloud (#132217) 2024-12-03 23:08:08 +01:00
dontinelli
5ae875be77 Update test_config_flow for solarlog (#132104)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-03 22:29:58 +01:00
G Johansson
14897f921c Fix mypy issue in airzone cloud (#132208) 2024-12-03 22:25:29 +01:00
G Johansson
f31ff3ca14 Bump holidays to 0.62 (#132108) 2024-12-03 22:24:39 +01:00
Hugh Saunders
bb51837346 Generic Thermostat Add Target Min Max to UI config (#131168)
Currently you can configure the minium and maximum target temperatures
if you create a generic thermostat in YAML. If you create it via the
UI, there is no option to configure them, you just get the climate
domain defaults.

This commit adds minimum and maximum fields to the first stage of the
generic thermostat config flow, so that UI users can also set min and
max.

Min and max are important as usually users want to select target
temperatures within a relatively narrow band, while the defaults create
a wide band. The wide band makes it hard to be accurate enough with the
arc style temperatue selector on the thermostat card.
2024-12-03 22:23:04 +01:00
epenet
a405d2b724 Bump pytest to 8.3.4 (#132179) 2024-12-03 21:49:24 +01:00
Erik Montnemery
1a714276cc Remove support for live recorder data migration of entity IDs (#131952) 2024-12-03 14:43:33 -06:00
dontinelli
09d7fed6cd Add dhcp discovery for fyta (#132185)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-03 21:23:52 +01:00
G Johansson
b9e4855e05 Refactor roomba to set vacuums in vacuum file (#132102) 2024-12-03 21:18:54 +01:00
Michael Hansen
ab83ec61e0 Ensure entity names are not hassil templates (#132184) 2024-12-03 19:37:05 +01:00
lunmay
74b713fa97 Fix typo in exception message in google_photos integration (#132194) 2024-12-03 19:31:28 +01:00
Austin Mroczek
e401fee3da Add initial quality scale for TotalConnect (#132012) 2024-12-03 18:43:49 +01:00
Franck Nijhof
759a2b84f5 Bump version to 2024.12.0b5 2024-12-03 18:03:36 +01:00
epenet
6c98cd49ea Fix check dirty in Prepare dependencies CI (#132180) 2024-12-03 18:03:13 +01:00
Bram Kragten
ebffcb455f Update frontend to 20241127.3 (#132176) 2024-12-03 18:01:38 +01:00
epenet
08773cefb7 Pin rpds-py to 0.21.0 to fix CI (#132170)
* Pin rpds-py==0.21.0 to fix CI

* Add carriage return
2024-12-03 18:01:35 +01:00
Jon Seager
79352ea0f0 Bump pytouchlinesl to 0.3.0 (#132157) 2024-12-03 18:01:32 +01:00
Raphael Hehl
b7038d4eb7 Bump uiprotect to 6.6.5 (#132147) 2024-12-03 18:01:29 +01:00
Tobias Perschon
8a310cbbf8 Improve error logging for unifi-ap (#132141) 2024-12-03 18:01:26 +01:00
Paulus Schoutsen
07196b0fda Fix bad hassil tests on CI (#132132)
* Fix CI

* Fix whitespace

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-12-03 18:01:23 +01:00
Tobias Perschon
0a38af7e48 Bump unifi_ap to 0.0.2 (#132125) 2024-12-03 18:01:19 +01:00
Bram Kragten
155fafb735 Update frontend to 20241127.2 (#132109)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-03 17:59:19 +01:00
J. Nick Koston
54ec41f25d Bump PyJWT to 2.10.1 (#132100) 2024-12-03 17:56:59 +01:00
Abílio Costa
f480cc3396 Use translations on NumberEntity unit_of_measurement property (#132095)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-03 17:55:30 +01:00
Michael Hansen
2aea738032 Bump hassil and intents (#132092) 2024-12-03 17:54:28 +01:00
Jan Bouwhuis
ab5165fdfa Fix imap sensor in case of alternative empty search response (#132081) 2024-12-03 17:36:08 +01:00
Jan-Philipp Benecke
c6468aca2b Mark trend sensor unavailable when source entity is unknown/unavailable (#132080) 2024-12-03 17:36:04 +01:00
Duco Sebel
895ffbabf7 Round status light brightness number in HomeWizard (#132069) 2024-12-03 17:36:01 +01:00
Josef Zweck
3f1286b338 Set connections on device for acaia (#132064) 2024-12-03 17:35:57 +01:00
Simone Rescio
d3a577ad89 Bump pyezviz to 0.2.2.3 (#132060) 2024-12-03 17:35:54 +01:00
Jan Rieger
f44103ac7f Add translated native unit of measurement to Jellyfin (#132055) 2024-12-03 17:35:51 +01:00
Josef Zweck
f1ebda7c6f Instantiate new httpx client for lamarzocco (#132016) 2024-12-03 17:35:47 +01:00
starkillerOG
905769f0e8 Fix Reolink dispatcher ID for onvif fallback (#131953) 2024-12-03 17:35:44 +01:00
Thomas55555
43899b6f28 Catch InverterReturnedError in APSystems (#131930)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-03 17:35:40 +01:00
Andrew Jackson
b5e7da4262 Add translated native unit of measurement - QBitTorrent (#131918)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-03 17:35:37 +01:00
Andrew Jackson
3dc0ca7e1e Add translated native unit of measurement - PiHole (#131915) 2024-12-03 17:35:34 +01:00
Andrew Jackson
42c46a15b4 Add translated native unit of measurement - Transmission (#131913) 2024-12-03 17:35:31 +01:00
Andrew Jackson
97a725c2c6 Add translated native unit of measurement - squeezebox (#131912) 2024-12-03 17:35:28 +01:00
Abílio Costa
c3499e5294 Update buienradar sensors only after being added to HA (#131830)
* Update buienradar sensors only after being added to HA

* Move check to util

* Check for platform in sensor state property

* Move check to unit translation key property

* Add test for sensor check

* Properly handle added_to_hass

* Remove redundant comment
2024-12-03 17:35:25 +01:00
Marcel van der Veldt
110935461e Add support for features changing at runtime in Matter integration (#129426) 2024-12-03 17:35:21 +01:00
Abílio Costa
208b14dd2b Use translations on NumberEntity unit_of_measurement property (#132095)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-03 17:08:09 +01:00
Raphael Hehl
13e4c51ce5 Bump uiprotect to 6.6.5 (#132147) 2024-12-03 17:03:43 +01:00
G Johansson
56fc8a1f92 Pass config entry directly to update coordinator in Sensibo (#132114) 2024-12-03 16:20:48 +01:00
Bram Kragten
92f38ef1a1 Update frontend to 20241127.3 (#132176) 2024-12-03 10:13:15 -05:00
J. Nick Koston
33db95f6be Bump PyJWT to 2.10.1 (#132100) 2024-12-03 16:03:43 +01:00
Jan-Philipp Benecke
7ae80b542a Use typed config entry in SABnzbd coordinator (#132098) 2024-12-03 15:48:56 +01:00
epenet
6fc4f45def Dump pip freeze in CI (#132173)
* Dump pip freeze in CI

* adjust

* adjust

* adjust

* Include python version
2024-12-03 15:24:05 +01:00
epenet
7c9b8552cb Reapply "bump hassil and intents" (#132138) (#132151)
This reverts commit 39b2cf6ed2.
2024-12-03 15:21:41 +01:00
Thomas55555
6a09474623 Catch InverterReturnedError in APSystems (#131930)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-03 15:11:15 +01:00
Josef Zweck
e3885b8117 Instantiate new httpx client for lamarzocco (#132016) 2024-12-03 15:10:58 +01:00
Maciej Bieniek
9e723752f8 Bump nettigo-air-monitor to version 4.0.0 (#132106) 2024-12-03 15:08:36 +01:00
epenet
7e07930342 Pin rpds-py to 0.21.0 to fix CI (#132170)
* Pin rpds-py==0.21.0 to fix CI

* Add carriage return
2024-12-03 15:01:35 +01:00
epenet
76ba3afeae Cleanup dead code in renault (#132172) 2024-12-03 14:33:40 +01:00
Michael Hansen
af5574f71c Bump voip-utils (#132110)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-12-03 14:08:55 +01:00
Bram Kragten
ff77ecd2ce Update frontend to 20241127.2 (#132109)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-03 14:08:31 +01:00
starkillerOG
f6beefced3 Improve Reolink config flow tests (#131693)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-03 13:50:50 +01:00
Richard Kroegel
f59cf8fa54 Set PARALLEL_UPDATES for all BMW platforms (#132088) 2024-12-03 13:36:41 +01:00
Jon Seager
3e64d148cc Bump pytouchlinesl to 0.3.0 (#132157) 2024-12-03 13:34:50 +01:00
Tobias Perschon
c4ba15bb8c Improve error logging for unifi-ap (#132141) 2024-12-03 13:34:13 +01:00
Tobias Perschon
bebbb87aa2 Bump unifi_ap to 0.0.2 (#132125) 2024-12-03 13:33:47 +01:00
Petar Petrov
3a19c2f47f Support Z-Wave JS abort S2 bootstrapping (#132140)
ZWaveJS: abort S2 bootstrapping when inclusion is canceled
2024-12-03 13:29:44 +01:00
epenet
ffccdbbcec Bump renault-api to 0.2.8 (#132135) 2024-12-03 13:10:55 +01:00
Jan Bouwhuis
d66a6d9596 Fix imap sensor in case of alternative empty search response (#132081) 2024-12-03 13:06:54 +01:00
Marcel van der Veldt
50936b4e28 Add support for features changing at runtime in Matter integration (#129426) 2024-12-03 13:06:18 +01:00
Tom
aeab8a0143 Plugwise fixes from quality review (#132158) 2024-12-03 12:34:03 +01:00
epenet
003d4d712a Bump syrupy to 4.8.0 (#132134) 2024-12-03 11:31:54 +01:00
mvn23
3e2bac96e6 Move set_room_setpoint to opentherm_gw hub (#132152) 2024-12-03 10:49:32 +01:00
epenet
39b2cf6ed2 Revert "bump hassil and intents" (#132138)
* Revert "Fix bad hassil tests on CI (#132132)"

This reverts commit 101bb091ba.

* Revert "Bump hassil and intents (#132092)"

This reverts commit e52182940b.
2024-12-03 09:37:33 +01:00
starkillerOG
bb7dc079ce Remove unneeded step from reauth in Reolink (#132143) 2024-12-03 09:11:44 +01:00
Paulus Schoutsen
101bb091ba Fix bad hassil tests on CI (#132132)
* Fix CI

* Fix whitespace

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-12-02 23:08:51 -06:00
G Johansson
03be1b9f38 Drop operating mode property in sharkiq (#132097) 2024-12-03 00:12:49 +01:00
G Johansson
5dadabe50c Add data description to Nord pool config flow (#132115) 2024-12-02 23:11:44 +01:00
starkillerOG
0e5b03b343 Rename 'Reolink IP NVR/camera' to 'Reolink' (#132113) 2024-12-02 22:39:48 +01:00
starkillerOG
db430beb5b Fix Reolink dispatcher ID for onvif fallback (#131953) 2024-12-02 22:18:24 +01:00
epenet
0a977d070b Improve Renault reauth test (#132077) 2024-12-02 21:57:45 +01:00
epenet
e1772d25f2 Cleanup dead code in renault coordinator (#132078) 2024-12-02 21:56:13 +01:00
Jan-Philipp Benecke
755d36d82f Mark trend sensor unavailable when source entity is unknown/unavailable (#132080) 2024-12-02 21:54:57 +01:00
Manu
32b8c8985e Fix type hints in IronOS coordinators (#132107)
Fix coordinators return type in IronOS
2024-12-02 21:41:13 +01:00
Michael Hansen
e52182940b Bump hassil and intents (#132092) 2024-12-02 14:09:35 -05:00
starkillerOG
d7cdb357dc Add Reolink quality scale yaml (#131123)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-02 15:39:44 +01:00
Josef Zweck
54c5d1002b Set connections on device for acaia (#132064) 2024-12-02 15:27:44 +01:00
Tom
13e9f1935d Record Plugwise Quality Scale (#131888)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-02 15:21:03 +01:00
David Knowles
92520fe365 Ensure Schlage config entry uniqueness (#131732)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-02 15:18:17 +01:00
starkillerOG
2f644eb61c Remove option to update settings using second config flow in Reolink (#131695) 2024-12-02 15:01:28 +01:00
dontinelli
4b9d89a480 Change wording in config flow dialog for fyta (#132075) 2024-12-02 14:57:47 +01:00
Marc Mueller
fe0f414e99 Update mypy-dev to 1.14.0a5 (#132063) 2024-12-02 14:40:13 +01:00
Duco Sebel
89ee49e50c Round status light brightness number in HomeWizard (#132069) 2024-12-02 14:04:39 +01:00
Abílio Costa
6db8fced60 Update buienradar sensors only after being added to HA (#131830)
* Update buienradar sensors only after being added to HA

* Move check to util

* Check for platform in sensor state property

* Move check to unit translation key property

* Add test for sensor check

* Properly handle added_to_hass

* Remove redundant comment
2024-12-02 13:52:59 +01:00
Mike Degatano
99063ba141 Reboot host to aiohasupervisor (#130391)
* Reboot host to aiohasupervisor

* Remove invalid test

* Remove unnecessary init
2024-12-02 13:34:39 +01:00
Jan Rieger
0c693b6ae1 Add translated native unit of measurement to Jellyfin (#132055) 2024-12-02 13:28:54 +01:00
dependabot[bot]
c610f16e90 Bump dawidd6/action-download-artifact from 6 to 7 (#132040)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 13:25:38 +01:00
Petar Petrov
29b48d02de Bump zwave-js-server-python to 0.60.0 (#132059) 2024-12-02 13:21:54 +01:00
Simone Rescio
a419fde0eb Bump pyezviz to 0.2.2.3 (#132060) 2024-12-02 13:18:53 +01:00
Franck Nijhof
be40db3dff Bump version to 2024.12.0b4 2024-12-02 13:02:23 +01:00
Josef Zweck
c3c500955a Use format_mac correctly for acaia (#132062) 2024-12-02 12:59:41 +01:00
ashionky
1e5a5925e6 Bump refoss to v1.2.5 (#132051) 2024-12-02 12:59:37 +01:00
TimL
d956e4b11d Bump psymlight v0.1.4 (#132045) 2024-12-02 12:59:33 +01:00
J. Nick Koston
8ff8cd8b65 Bump aiohttp to 3.11.9 (#132036)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.8...v3.11.9
2024-12-02 12:59:29 +01:00
Joost Lekkerkerker
fab35f227d Handle not found playlists in Spotify (#132033)
* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Update homeassistant/components/spotify/coordinator.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-12-02 12:59:26 +01:00
Joost Lekkerkerker
e4d19541f5 Bump spotifyaio to 0.8.11 (#132032) 2024-12-02 12:59:22 +01:00
Joost Lekkerkerker
6b6fc6bbeb Bump yt-dlp to 2024.11.18 (#132026) 2024-12-02 12:59:18 +01:00
J. Nick Koston
f2bafee84a Bump yarl to 1.18.3 (#132025)
changelog: https://github.com/aio-libs/yarl/compare/v1.18.0...v1.18.3
2024-12-02 12:59:15 +01:00
J. Nick Koston
4e0cdb0537 Bump propcache to 0.2.1 (#132022) 2024-12-02 12:59:06 +01:00
Richard Kroegel
79c919f62d Bump bimmer_connected to 0.17.2 (#132005) 2024-12-02 12:58:53 +01:00
Erik Montnemery
b6dec11487 Freeze integration setup timeout for recorder during non-live data migration (#131998) 2024-12-02 12:58:44 +01:00
Bouwe Westerdijk
e2073d7762 Bugfix for Plugwise, small code optimization (#131990) 2024-12-02 12:58:37 +01:00
Josef Zweck
1cf00d9bbc Use format_mac correctly for acaia (#132062) 2024-12-02 12:38:39 +01:00
Manu
ea7f1b2a4e Add additional number entities to IronOS (#131943)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-12-02 12:35:36 +01:00
Marc Mueller
11a2a62144 Update livisi to 0.0.24 (#132058) 2024-12-02 12:33:54 +01:00
nasWebio
3d26fa7864 Bump webio_api to 0.1.11 (#131730) 2024-12-02 11:07:37 +01:00
ashionky
e37ae8bf8d Bump refoss to v1.2.5 (#132051) 2024-12-02 11:05:09 +01:00
Andrew Jackson
56ec70815c Add translated native unit of measurement - squeezebox (#131912) 2024-12-02 10:54:37 +01:00
Andrew Jackson
584bb7bca8 Add translated native unit of measurement - PiHole (#131915) 2024-12-02 10:51:50 +01:00
Andrew Jackson
79ed6d865f Add translated native unit of measurement - Transmission (#131913) 2024-12-02 10:51:32 +01:00
Andrew Jackson
66d0d2eb6c Add translated native unit of measurement - QBitTorrent (#131918)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-02 10:50:49 +01:00
epenet
8d1493036a Set PARALLEL_UPDATES in renault and bump quality scale (#132047) 2024-12-02 09:59:57 +01:00
TimL
5dc390b6b9 Bump psymlight v0.1.4 (#132045) 2024-12-02 09:24:49 +01:00
Andrew Sayre
4eb75a56e6 Use runtime data in HEOS (#132030)
* Adopt runtime_data

* Fix missing variable assignment

* Address PR feedback
2024-12-02 08:19:43 +01:00
dontinelli
4eb5734d73 Remove CONF_NAME from config entry in solarlog (#131738)
* Remove CONF_NAME from config entry

* Remove name from strings.json
2024-12-02 07:39:48 +01:00
epenet
5458ee2fa9 Use typed config entry in imap (#132029)
* Use typed config entry in imap

* Adjust
2024-12-02 07:28:29 +01:00
epenet
28eb4f3dff Use typed config entry in rainbird (#132031)
* Use typed config entry in rainbird

* Adjust
2024-12-02 07:27:47 +01:00
J. Nick Koston
80f28302a1 Bump yarl to 1.18.3 (#132025)
changelog: https://github.com/aio-libs/yarl/compare/v1.18.0...v1.18.3
2024-12-01 21:17:36 -05:00
Joost Lekkerkerker
782fff198c Handle not found playlists in Spotify (#132033)
* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Update homeassistant/components/spotify/coordinator.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-12-01 21:17:07 -05:00
J. Nick Koston
b6458ff9b8 Bump cryptography to 44.0.0 and pyOpenSSL to 24.3.0 (#132035)
These should be bumped together to make sure we do not
have any incompatibility issues.

> Note: The Python Cryptographic Authority strongly suggests the use of pyca/cryptography where possible. If you are using pyOpenSSL for anything other than making a TLS connection you should move to cryptography and drop your pyOpenSSL dependency.
2024-12-01 21:06:14 -05:00
J. Nick Koston
c6cd7e38f7 Bump aiohttp to 3.11.9 (#132036)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.8...v3.11.9
2024-12-01 21:05:45 -05:00
Yazan AbdAl-Rahman
c2e6f8e761 Improve service names and descriptions for 'remote_connect' and 'remote_disconnect' in Home Assistant Cloud (#131993)
* Rename and reword 'remote_connect' and 'remote_disconnect' services for clarity

* Trigger pipeline

* Trigger pipeline

* Trigger pipeline

* Trigger pipeline

* Apply suggestions from code review

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-12-01 20:56:15 -05:00
Joost Lekkerkerker
b17b1f6db8 Bump spotifyaio to 0.8.11 (#132032) 2024-12-01 23:05:34 +01:00
Joost Lekkerkerker
b94a47ceb2 Change library to livisi (#132001)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-01 15:41:01 -06:00
Joost Lekkerkerker
86f8b5893f Bump yt-dlp to 2024.11.18 (#132026) 2024-12-01 22:39:26 +01:00
Klaas Schoute
78ced997e2 Add reauthentication flow for Autarco integration (#131816) 2024-12-01 22:02:50 +01:00
Bouwe Westerdijk
bd8cd87fae Bugfix for Plugwise, small code optimization (#131990) 2024-12-01 22:01:19 +01:00
Charles Garwood
521505f9b5 Add additional data_descriptions for Fully Kiosk Browser fields (#131716) 2024-12-01 22:00:21 +01:00
Richard Kroegel
98734ebe4f Bump bimmer_connected to 0.17.2 (#132005) 2024-12-01 21:45:31 +01:00
David Knowles
ffc3aca41f Bump pydrawise to 2024.12.0 (#132015) 2024-12-01 21:44:14 +01:00
dotvav
8fdd095dab Add pre-commit VSCode task (#131637) 2024-12-01 21:43:09 +01:00
Norbert Rittel
36ca4e8866 Fix description of 'clear_completed_items' to use "remove" (#132014) 2024-12-01 21:42:16 +01:00
Richard Kroegel
e706a5ef27 Set parallel updates for BMW entities (#132019) 2024-12-01 21:37:35 +01:00
J. Nick Koston
82e190dc4b Bump propcache to 0.2.1 (#132022) 2024-12-01 21:37:03 +01:00
Norbert Rittel
bd3f432376 Clarify description of fan actions, fix typo (#132023) 2024-12-01 20:55:27 +01:00
Erik Montnemery
ff1702eefa Remove unnecessary assignment in Recorder._process_state_changed_event_into_session (#132011) 2024-12-01 13:40:40 -05:00
Erik Montnemery
cf0ee63507 Simplify recorder RecorderRunsManager (#131785) 2024-12-01 11:26:29 -06:00
Erik Montnemery
c54eed3607 Improve recorder migration logging (#132006) 2024-12-01 16:58:24 +01:00
epenet
a0541c7fe6 Improve renault config flow tests (#131698) 2024-12-01 16:55:43 +01:00
epenet
2b094ee25d Improve renault config-flow translation strings (#131706) 2024-12-01 16:54:05 +01:00
Jan Bouwhuis
3aae9b629f Add exception translation for entity action not supported (#131956) 2024-12-01 16:53:06 +01:00
epenet
c55a4e9584 Cleanup pylint obsolete import checks (#131904) 2024-12-01 16:49:51 +01:00
epenet
8343d7f348 Use typed ConfigEntry in twentemilieu (#131894) 2024-12-01 16:40:30 +01:00
epenet
fd42c01a21 Use typed ConfigEntry in tedee (#131893) 2024-12-01 16:40:06 +01:00
epenet
bc7cfb6761 Use typed ConfigEntry in lamarzocco (#131892) 2024-12-01 16:39:33 +01:00
Erik Montnemery
598ce1f3b0 Freeze integration setup timeout for recorder during non-live data migration (#131998) 2024-12-01 09:17:55 -06:00
J. Nick Koston
8878d0f0e1 Reduce time syscalls needed to insert new statistics (#131984) 2024-12-01 08:55:07 -06:00
Jan Bouwhuis
47aebabc51 Add final translations to mqtt exceptions (#131933) 2024-12-01 12:20:45 +01:00
Norbert Rittel
37972ec88e Match "delete" with "create" in the action descriptions (#131989) 2024-12-01 12:08:35 +01:00
Paulus Schoutsen
6103cea3f5 Make the full conversation input available to sentence triggers (#131982)
Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-11-30 22:04:29 -06:00
Paulus Schoutsen
d7428786cd Bump version to 2024.12.0b3 2024-12-01 03:14:16 +00:00
J. Nick Koston
673bdcc556 Reduce precision loss when converting HomeKit temperature (#131973) 2024-12-01 03:14:11 +00:00
J. Nick Koston
e8ef990e72 Strip trailing spaces from HomeKit names (#131971) 2024-12-01 03:14:10 +00:00
starkillerOG
0d155c416a Bump reolink_aio to 0.11.4 (#131957) 2024-12-01 03:14:10 +00:00
Andrew Jackson
e48be5c406 Bump aiomealie to 0.9.4 (#131951) 2024-12-01 03:14:09 +00:00
Matthias Alphart
787a1613ec Fix KNX IP Secure tunnelling endpoint selection with keyfile (#131941) 2024-12-01 03:14:08 +00:00
Raphael Hehl
bb847b346d Bump uiprotect to 6.6.4 (#131931) 2024-12-01 03:14:07 +00:00
Jc2k
e9b34eaad0 Bump aiohomekit to 3.2.7 (#131924) 2024-12-01 03:14:06 +00:00
Marcel van der Veldt
572347025b Fix media player join action for Music Assistant integration (#131910)
* Fix media player join action for Music Assistant integration

* Add tests for join/unjoin

* add one more test
2024-12-01 03:14:05 +00:00
Josef Zweck
29e80e56c6 Bump aioacaia to 0.1.10 (#131906) 2024-12-01 03:14:04 +00:00
Oliver
b60b2fdd7c Bump denonavr to v1.0.1 (#131882) 2024-12-01 03:14:04 +00:00
Josef Zweck
aaf3f61675 Guard against hostname change in lamarzocco discovery (#131873)
* Guard against hostname change in lamarzocco discovery

* switch to abort_entries_match
2024-12-01 03:13:50 +00:00
karwosts
5bf972ff16 Fix history stats count update immediately after change (#131856)
* Fix history stats count update immediately after change

* rerun CI
2024-12-01 03:13:45 +00:00
Glenn Vandeuren (aka Iondependent)
8eb52edabf Fix modbus state not dumped on restart (#131319)
* Fix modbus state not dumped on restart

* Update test_init.py

* Set event back  to stop

* Update test_init.py

---------

Co-authored-by: VandeurenGlenn <8685280+VandeurenGlenn@users.noreply.github.com>
2024-12-01 03:13:44 +00:00
J. Nick Koston
4326689f52 Bump SQLAlchemy to 2.0.36 (#126683)
* Bump SQLAlchemy to 2.0.35

changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.35

* fix mocking

* adjust to .36

* remove ignored as these are now typed

* fix SQLAlchemy
2024-12-01 03:13:44 +00:00
J. Nick Koston
ffeefd4856 Bump SQLAlchemy to 2.0.36 (#126683)
* Bump SQLAlchemy to 2.0.35

changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.35

* fix mocking

* adjust to .36

* remove ignored as these are now typed

* fix SQLAlchemy
2024-11-30 22:07:51 -05:00
Bouwe Westerdijk
44ed83a829 Bump plugwise to v1.6.1 (#131950) 2024-11-30 22:01:33 -05:00
J. Nick Koston
a0d5fda4b6 Reduce precision loss when converting HomeKit temperature (#131973) 2024-11-30 16:09:37 -06:00
J. Nick Koston
2b907ee56e Strip trailing spaces from HomeKit names (#131971) 2024-11-30 14:47:40 -06:00
Andy
bcdac7ed37 Add support for linked_doorbell_sensor to HomeKit locks (#131660)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-30 13:30:21 -06:00
starkillerOG
6da2515d7a Bump reolink_aio to 0.11.4 (#131957) 2024-11-30 10:32:53 -06:00
Josef Zweck
6c6980a550 Improvements for bluetooth device for lamarzocco (#131875) 2024-11-30 10:32:41 -06:00
Oliver
bd29aaffb8 Bump denonavr to v1.0.1 (#131882) 2024-11-30 10:27:31 -06:00
Glenn Vandeuren (aka Iondependent)
74522390ad Add config flow to NHC (#130554)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: VandeurenGlenn <8685280+VandeurenGlenn@users.noreply.github.com>
2024-11-30 12:16:12 +01:00
Andrew Jackson
92204e6c92 Bump aiomealie to 0.9.4 (#131951) 2024-11-30 12:15:19 +01:00
Glenn Vandeuren (aka Iondependent)
5d71533c7b Fix modbus state not dumped on restart (#131319)
* Fix modbus state not dumped on restart

* Update test_init.py

* Set event back  to stop

* Update test_init.py

---------

Co-authored-by: VandeurenGlenn <8685280+VandeurenGlenn@users.noreply.github.com>
2024-11-30 09:30:24 +01:00
karwosts
9209e43e4c Fix history stats count update immediately after change (#131856)
* Fix history stats count update immediately after change

* rerun CI
2024-11-30 00:43:31 -05:00
karwosts
2c1a754e5d Make uploaded images browsable in media (#131468)
* Make uploaded images browsable in media

* tests

* Update homeassistant/components/image_upload/media_source.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* use executor

* more executor

* use thumbnail

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-30 06:25:59 +01:00
Josef Zweck
e8ced4fa12 Bump aioacaia to 0.1.10 (#131906) 2024-11-29 22:32:20 -05:00
Josef Zweck
d9cef1e708 Guard against hostname change in lamarzocco discovery (#131873)
* Guard against hostname change in lamarzocco discovery

* switch to abort_entries_match
2024-11-29 22:31:56 -05:00
Marcel van der Veldt
a760786faf Fix media player join action for Music Assistant integration (#131910)
* Fix media player join action for Music Assistant integration

* Add tests for join/unjoin

* add one more test
2024-11-29 22:11:57 -05:00
J. Diego Rodríguez Royo
8c6a24c368 Use HomeAssistant error in the right cases (#131923)
* Use the correct exceptions

* Improved exception strings
2024-11-29 22:11:15 -05:00
Manu
24bd61be3b Add missing state_class in IronOS (#131928)
Add missing state class in IronOS
2024-11-29 22:10:12 -05:00
Matthias Alphart
1abd2209b3 Fix KNX IP Secure tunnelling endpoint selection with keyfile (#131941) 2024-11-30 01:13:52 +01:00
epenet
aa206c7608 Use typed ConfigEntry in discovergy (#131891) 2024-11-29 20:28:18 +01:00
Sid
87020e8945 Bump ruff to 0.8.1 (#131927) 2024-11-29 20:23:57 +01:00
Manu
dd62fb387e Bump pynecil to v1.0.1 (#131935) 2024-11-29 20:23:10 +01:00
Raphael Hehl
c19038ced6 Bump uiprotect to 6.6.4 (#131931) 2024-11-29 12:47:33 -06:00
Jc2k
6144cc26ba Bump aiohomekit to 3.2.7 (#131924) 2024-11-29 11:29:10 -06:00
Allen Porter
920c958ec7 Add runtime_data rule to quality_scale hassfest validation (#131857)
* Add quality scale check for runtime_data

* Linter fixes

* Add developer documentation link

* Update script/hassfest/quality_scale_validation/runtime_data.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update validation to check explicitly for ConfigEntry.runtime_data

* Update script/hassfest/quality_scale_validation/runtime_data.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Refine check for setting attributes

* Patch with changes from epenet

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-29 17:56:26 +01:00
epenet
0fc365a114 Add discovery rule to quality_scale hassfest validation (#131890) 2024-11-29 07:06:38 -08:00
David Knowles
954ac0d288 Ensure Schlage exceptions are translated (#131733) 2024-11-28 20:34:20 -08:00
epenet
28cfa37248 Add unique_config_entry rule to quality_scale hassfest validation (#131878)
* Add unique_config_entry rule to quality_scale hassfest validation

* Improve message
2024-11-28 20:08:43 -08:00
epenet
24f7bae5f2 Add documentation URL to quality_scale hassfest validation (#131879)
* Add documentation URL to quality_scale hassfest validation

* Adjust
2024-11-28 18:32:01 -08:00
Manu
8e12fbff88 Refactor calendars in Habitica (#131020)
* Refactor calendars

* changes
2024-11-28 18:31:38 -08:00
Robert Resch
5c8fb5ec2c Remove deprecated climate constants (#131798)
* Remove deprecated climate constants

* Fix

* Fix

* Fix

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-29 00:38:05 +01:00
Robert Resch
a68cf21179 Remove deprecated data entry flow constants (#131800)
* Remove deprecated data entry flow constants

* Fix

* Fix

* Fix

* Fix

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-29 00:37:26 +01:00
epenet
d596b4169d Add strict_typing rule to quality_scale hassfest validation (#131877)
* Add strict_typing rule to quality_scale hassfest validation

* Add acaia to .strict-typing
2024-11-28 22:05:34 +01:00
IceBotYT
8b467268df Add data descriptions to Nice G.O. config flow (#131865)
* Add data descriptions to Nice G.O. config flow

* Reference other strings instead
2024-11-28 12:09:01 -08:00
Franck Nijhof
06838c0280 Bump version to 2024.12.0b2 2024-11-28 21:02:37 +01:00
Richard Kroegel
f97d96e3ae Add captcha to BMW ConfigFlow (#131351)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-28 21:02:23 +01:00
Richard Kroegel
6dd93253c6 Add captcha to BMW ConfigFlow (#131351)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-28 21:01:00 +01:00
karwosts
ee960933db Fix flaky test in history stats (#131869) 2024-11-28 20:55:34 +01:00
Joost Lekkerkerker
2ea0c54788 Only download translation strings we have defined (#131864) 2024-11-28 20:55:31 +01:00
Madhan
dd18672341 Bump PyMetEireann to 2024.11.0 (#131860)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-28 20:55:26 +01:00
Bram Kragten
ac4ae0430e Update frontend to 20241127.1 (#131855) 2024-11-28 20:55:23 +01:00
Joost Lekkerkerker
eeb63d42a0 Bump pyatv to 0.16.0 (#131852) 2024-11-28 20:55:20 +01:00
Michael
9d48f36754 Allow empty trigger sentence responses in conversations (#131849)
allow empty trigger sentence responses
2024-11-28 20:55:16 +01:00
Joost Lekkerkerker
157198bf41 Make wake word selection part of configuration (#131832) 2024-11-28 20:55:13 +01:00
Joost Lekkerkerker
be25b9d4d0 Bump spotifyaio to 0.8.10 (#131827) 2024-11-28 20:55:10 +01:00
epenet
e08b71086f Fix more flaky translation checks (#131824) 2024-11-28 20:55:07 +01:00
Norbert Rittel
9677c6e24c Remove wrong plural "s" in 'todo.remove_item' action (#131814) 2024-11-28 20:55:03 +01:00
Franck Nijhof
e2cda54473 Ensure custom integrations are assigned the custom IQS scale (#131795) 2024-11-28 20:55:00 +01:00
epenet
3ca49dc8a6 Bump samsungtvws to 2.7.1 (#131784) 2024-11-28 20:54:57 +01:00
Joost Lekkerkerker
80bc70771e Remove Spotify featured playlists and categories from media browser (#131758) 2024-11-28 20:54:54 +01:00
Erik Montnemery
7ab1bfcf1f Improve recorder history queries (#131702)
* Improve recorder history queries

* Remove some comments

* Update StatesManager._oldest_ts when adding pending state

* Update after review

* Improve tests

* Improve post-purge logic

* Avoid calling dt_util.utc_to_timestamp in new code

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-28 20:54:50 +01:00
Richard Kroegel
99f8dbd278 Bump bimmer_connected to 0.17.0 (#131352) 2024-11-28 20:54:46 +01:00
Joost Lekkerkerker
9db6f0ffc4 Only download translation strings we have defined (#131864) 2024-11-28 20:52:51 +01:00
karwosts
889ac1552b Fix flaky test in history stats (#131869) 2024-11-28 20:51:23 +01:00
Bram Kragten
18db16b82c Update frontend to 20241127.1 (#131855) 2024-11-28 20:50:53 +01:00
Robert Resch
1f9ecfe839 Remove deprecated sensor constants (#131843) 2024-11-28 20:49:49 +01:00
Allen Porter
4d32fe97c3 Use ConfigEntry.runtime_data in Nest (#131871) 2024-11-28 20:45:27 +01:00
rd-blue
8feb6c7e06 Correction of prices update time in Tibber integration (with CLA now) (#131861)
correction of prices update time
2024-11-28 19:58:38 +01:00
Madhan
0b36a6d7f3 Bump PyMetEireann to 2024.11.0 (#131860)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-28 19:48:38 +01:00
epenet
837716b69e Add diagnostics rule to quality_scale hassfest validation (#131859) 2024-11-28 19:42:31 +01:00
Michael
1a9ab07742 Allow empty trigger sentence responses in conversations (#131849)
allow empty trigger sentence responses
2024-11-28 18:30:05 +01:00
Allen Porter
8862c5c4d8 Remove unnecessary hass.data defaults from Rainbird (#131858) 2024-11-28 09:16:58 -08:00
Joost Lekkerkerker
87320609dc Bump pyatv to 0.16.0 (#131852) 2024-11-28 11:04:00 -06:00
epenet
62e788c7da Add config flow rules to quality_scale hassfest validation (#131791)
* Add config flow rules to quality_scale hassfest validation

* Use integration.config_flow property
2024-11-28 17:58:56 +01:00
Erik Montnemery
bbce183faf Deprecate dt_util.utc_to_timestamp (#131787) 2024-11-28 17:00:20 +01:00
Robert Resch
0389800e2a Remove deprecated humidifier constants (#131844) 2024-11-28 16:59:11 +01:00
Robert Resch
0c5c09390c Remove deprecated fan constants (#131845) 2024-11-28 16:56:04 +01:00
Manu
57b099c2aa Add unit translations to Ista EcoTrend integration (#131768) 2024-11-28 16:55:07 +01:00
Robert Resch
ed408eb1a1 Remove deprecated device tracker constants (#131846) 2024-11-28 16:54:23 +01:00
Erik Montnemery
f7d2d06c9b Add comments in homeassistant/components/recorder/migration.py (#131820)
* Add comments in homeassistant/components/recorder/migration.py

* Update homeassistant/components/recorder/migration.py
2024-11-28 16:22:56 +01:00
Manu
3071aa2da1 Use common string for items unit in Bring (#131834) 2024-11-28 14:59:16 +01:00
Joost Lekkerkerker
474544abd8 Make wake word selection part of configuration (#131832) 2024-11-28 13:45:51 +01:00
Joost Lekkerkerker
dc064237ca Bump spotifyaio to 0.8.10 (#131827) 2024-11-28 13:45:10 +01:00
Robert Resch
a0584a0516 Remove deprecated switch constants (#131806)
* Remove deprecated switch constants

* Fix
2024-11-28 13:45:00 +01:00
Norbert Rittel
96dfa0e0cf Remove wrong plural "s" in 'todo.remove_item' action (#131814) 2024-11-28 13:44:40 +01:00
epenet
00d82363fe Delay "Split tests for full run" in CI (#131813)
Adjust split tests requirements in CI
2024-11-28 13:44:02 +01:00
epenet
c4e5b59326 Fix more flaky translation checks (#131824) 2024-11-28 13:41:30 +01:00
Erik Montnemery
d9832f8c3a Rename constant in tests/components/recorder/test_migration_from_schema_32.py (#131819) 2024-11-28 13:26:58 +01:00
epenet
f41bc98fe2 Cleanup deprecated exception in websocket tests (#131808) 2024-11-28 12:40:34 +01:00
Joost Lekkerkerker
3a76bfb857 Remove Spotify featured playlists and categories from media browser (#131758) 2024-11-28 12:34:06 +01:00
epenet
6ce5c89711 Fix group flaky test (#131815) 2024-11-28 12:29:38 +01:00
Franck Nijhof
9d387acb97 Ensure custom integrations are assigned the custom IQS scale (#131795) 2024-11-28 12:25:16 +01:00
Robert Resch
1d09a5bf89 Remove deprecated lock constants (#131812) 2024-11-28 12:21:13 +01:00
Robert Resch
a01e7cd6cf Remove deprecated number constants (#131810) 2024-11-28 12:20:43 +01:00
Robert Resch
3e0326dd66 Remove deprecated siren constants (#131807) 2024-11-28 12:14:43 +01:00
Robert Resch
4d27a32905 Remove deprecated cover constants (#131797) 2024-11-28 12:14:25 +01:00
Robert Resch
c5f68bcc58 Remove deprecated remote constants (#131809) 2024-11-28 12:14:06 +01:00
Robert Resch
3866176e1d Remove deprecated water heater constants (#131805) 2024-11-28 12:13:03 +01:00
Robert Resch
a67045ee6c Remove deprecated home assistant const constants (#131799) 2024-11-28 12:12:37 +01:00
Robert Resch
54ff6feadc Remove deprecated alarm control panel constants (#131790) 2024-11-28 12:11:08 +01:00
Robert Resch
fd14add67b Remove deprecated device registry constants (#131802) 2024-11-28 11:20:44 +01:00
Robert Resch
b28f352902 Remove deprecated binary sensor constants (#131793) 2024-11-28 11:08:18 +01:00
Robert Resch
fb152c7d22 Remove deprecated automation constants (#131792) 2024-11-28 11:07:00 +01:00
Robert Resch
be81fd86d3 Remvove deprecated core constants (#131803) 2024-11-28 11:06:04 +01:00
Robert Resch
28ec8272ee Remove deprecated camera constants (#131796) 2024-11-28 11:05:45 +01:00
Richard Kroegel
717f2ee206 Bump bimmer_connected to 0.17.0 (#131352) 2024-11-28 09:58:16 +01:00
epenet
5972da495a Bump samsungtvws to 2.7.1 (#131784) 2024-11-28 09:18:00 +01:00
Manu
2fcd9be3f2 Set parallel updates in IronOS integration (#131721) 2024-11-28 08:48:15 +01:00
Franck Nijhof
3af0bc2c33 Bump version to 2024.12.0b1 2024-11-28 08:44:28 +01:00
TheJulianJES
b8c4ce932c Fix Home Connect microwave programs (#131782) 2024-11-28 08:44:14 +01:00
puddly
0a3a3edf77 Bump ZHA to 0.0.41 (#131776) 2024-11-28 08:44:11 +01:00
J. Nick Koston
71376229f6 Bump aioesphomeapi to 27.0.3 (#131773) 2024-11-28 08:44:07 +01:00
Manu
c9dde419a2 Fix rounding of attributes in Habitica integration (#131772) 2024-11-28 08:44:04 +01:00
Josef Zweck
2fc01a02db Bump pylamarzocco to 1.2.12 (#131765) 2024-11-28 08:44:01 +01:00
J. Nick Koston
f02d2344fc Bump uiprotect to 6.6.3 (#131764) 2024-11-28 08:43:58 +01:00
Joost Lekkerkerker
509311ac19 Remove Spotify audio feature sensors (#131754) 2024-11-28 08:43:54 +01:00
J. Nick Koston
47e7c4f1c1 Bump orjson to 3.10.12 (#131752)
changelog: https://github.com/ijl/orjson/compare/3.10.11...3.10.12
2024-11-28 08:43:51 +01:00
J. Nick Koston
c9d3ba900e Bump aiohttp to 3.11.8 (#131744) 2024-11-28 08:43:48 +01:00
Allen Porter
74a3d11aea Add a missing rainbird data description (#131740) 2024-11-28 08:43:45 +01:00
Marcel van der Veldt
897abc114e Bump music assistant client 1.0.8 (#131739) 2024-11-28 08:43:41 +01:00
Josef Zweck
3fff3003f2 Add missing data_description for lamarzocco OptionsFlow (#131708) 2024-11-28 08:43:37 +01:00
David Knowles
a0ea9a1e83 Store Schlage runtime data in entry.runtime_data (#131731) 2024-11-28 08:29:29 +01:00
David Knowles
a831c37511 Enable strict typing for Schlage (#131734) 2024-11-28 08:29:15 +01:00
Jan Bouwhuis
d26c7a0536 Log warning if via_device reference not exists when creating or updating a device registry entry (#131746) 2024-11-28 08:27:24 +01:00
Manu
4257277086 Add units of measurement to Bring integration (#131763) 2024-11-28 08:13:15 +01:00
Manu
fe2bca51a4 Add translations for units of measurement to Habitica integration (#131761) 2024-11-28 08:12:52 +01:00
Manu
17236a5698 Remove unreachable code in Habitica (#131778) 2024-11-28 08:08:00 +01:00
Joost Lekkerkerker
39c2a529d1 Remove Spotify audio feature sensors (#131754) 2024-11-28 08:07:19 +01:00
TheJulianJES
0f5e0dd4bf Fix Home Connect microwave programs (#131782) 2024-11-28 08:06:31 +01:00
J. Nick Koston
eac6673c2b Bump orjson to 3.10.12 (#131752)
changelog: https://github.com/ijl/orjson/compare/3.10.11...3.10.12
2024-11-28 01:35:49 +01:00
Manu
bf4d6d2029 Fix rounding of attributes in Habitica integration (#131772) 2024-11-28 01:35:23 +01:00
puddly
f61a5b78cc Bump ZHA to 0.0.41 (#131776) 2024-11-28 01:34:57 +01:00
Marcel van der Veldt
cc9a97a5cf Bump music assistant client 1.0.8 (#131739) 2024-11-28 01:34:36 +01:00
J. Nick Koston
cf7acb5ae8 Bump aioesphomeapi to 27.0.3 (#131773) 2024-11-27 15:29:29 -08:00
J. Nick Koston
6edb2c0252 Bump uiprotect to 6.6.3 (#131764) 2024-11-27 15:55:51 -06:00
Josef Zweck
fb4d86196e Bump pylamarzocco to 1.2.12 (#131765) 2024-11-27 15:55:33 -06:00
Josef Zweck
44fc5c7871 Add missing data_description for lamarzocco OptionsFlow (#131708) 2024-11-27 22:37:15 +01:00
Allen Porter
c82e408138 Add a missing rainbird data description (#131740) 2024-11-27 22:36:17 +01:00
Marc Mueller
7110df04e6 Bump version to 2025.1.0dev0 (#131751) 2024-11-27 22:32:56 +01:00
J. Nick Koston
1635074aae Bump aiohttp to 3.11.8 (#131744) 2024-11-27 14:15:44 -06:00
Erik Montnemery
381d5453b1 Improve recorder history queries (#131702)
* Improve recorder history queries

* Remove some comments

* Update StatesManager._oldest_ts when adding pending state

* Update after review

* Improve tests

* Improve post-purge logic

* Avoid calling dt_util.utc_to_timestamp in new code

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-27 21:12:42 +01:00
Franck Nijhof
db5c93f96d Bump version to 2024.12.0b0 2024-11-27 18:36:24 +01:00
epenet
e04b6f0cd8 Add quality scale hassfest check for config-entry-unload (#131720)
* Add dataclass to hassfest quality_scale

* Add basic check for config-entry-unloading

* Future-proof with a list of errors
2024-11-27 18:17:53 +01:00
Jan Bouwhuis
a6cb6fd239 Create MQTT device referenced by via device (#131588) 2024-11-27 18:12:46 +01:00
Paul Bottein
e8975cffe6 Update hash regex for frontend file in tests (#131742) 2024-11-27 18:07:26 +01:00
Paulus Schoutsen
ae34a6b375 Do not double expose scripts in LLM tools (#131726) 2024-11-27 18:04:08 +01:00
Raphael Hehl
1f1fdf80db Unifiprotect replace direct mocks with MockConfigEntry for test_async_ufp_instance_for_config_entry_ids (#131736)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-27 11:03:34 -06:00
Lutz
fda178da23 Add video event proxy endpoint for unifiprotect (#129980)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-27 11:03:21 -06:00
G Johansson
1450fe0880 Improve test quality in alarm_control_panel (#130541) 2024-11-27 17:49:02 +01:00
Abílio Costa
e4e9d76b45 Raise error if sensor has translated and hardcoded unit (#131657) 2024-11-27 17:45:53 +01:00
Marcel van der Veldt
3485ce9c71 Add actions to Music Assistant integration (#129515)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 17:43:48 +01:00
Michael Hansen
3eb483c1b0 Bump intents to 2024.11.27 (#131727) 2024-11-27 17:42:59 +01:00
J. Diego Rodríguez Royo
c2d6599736 Home connect program select entities (#126157)
* Home connect selector for programs

* Mark program switches as deprecated

* Simplified translation keys

* Improvements for program select entity

* Revert mark program switches as deprecated

* Return `None` if program is `None` or empty string

* Fix program format

* Use `is` instead of `==`

* Program selector entity selects program instead of start the selected program

* Fix typo

* Active and selected program

* Added ServiceValidationError

* Delete unnecessary `service` param at tests

* Use full program keys

* Fix again typos in programs states

* Use map for translations

* Add error handling for when the selected program is not registered on the program map

* Reverse map for programs and translation keys

* Remove stale string

* Log only once that the program is not part of the official Home Connect API specification

* pop programs

* Move `RE_CAMEL_CASE` to a better place

* Added warning if updated program is not valid

* Stale test function name

* Improve log about unknown program at update

* Add underscore before numbers in translation keys

* Added suggested changes

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Use target for adding an executor job

* Apply suggestions from code review

* Clean whitespace

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 16:34:41 +01:00
Bram Kragten
b2537a45e0 Update frontend to 20241127.0 (#131722) 2024-11-27 16:33:05 +01:00
epenet
e05401a922 Update snapshot to fix CI (#131725) 2024-11-27 16:28:36 +01:00
Raphael Hehl
f4b57617fb Unifiprotect fix missing domain check (#131724) 2024-11-27 16:23:59 +01:00
Manu
c21e221f65 Add data description to Iron OS integration (#131719) 2024-11-27 16:20:38 +01:00
epenet
d6f4a79b46 Remove workaround for flaky translation tests (#131628) 2024-11-27 08:37:36 -06:00
G Johansson
a7db35c76c Add horizontal swing support to ClimateEntity (#125578)
* Add horizontal swing support to ClimateEntity

* Fixes + tests

* Fixes
2024-11-27 15:06:46 +01:00
epenet
88feb8a7ad Fix ADS platform schema (#131701) 2024-11-27 14:47:17 +01:00
Abílio Costa
d8dd6a99b3 Use default translation on SensorEntity unit_of_measurement (#131633)
* Use translations on SensorEntity unit_of_measurement property

* Use default language for unit translation

* Update brother integration snapshot

* Update snapshots
2024-11-27 14:45:53 +01:00
epenet
137db5ac79 Bump samsungtvws to 2.7.0 (#131690) 2024-11-27 14:45:37 +01:00
Shay Levy
326f51a019 Bump aioshelly to 12.1.0 (#131714) 2024-11-27 15:20:47 +02:00
G Johansson
3464ffc53e Add open to Template lock (#129292)
* Add open to Template lock

* Update from review
2024-11-27 13:26:57 +01:00
Cyrill Raccaud
284fe17b1c Add time and offset config to Swiss public transport connections (#120357)
* add time and offset config for connections

* split the config flow

* fix arrival config

* add time_mode data description

* use delta as dict instead of string

* simplify the config_flow

* improve descriptions of config_flow

* improve config flow

* remove obsolete string

* switch priority of the config options

* improvements
2024-11-27 13:22:28 +01:00
Diogo Gomes
345c1fe0b2 Have Utility Meter monitor Timezone changes in configuration (#131112)
* listen to config changes for possible DST changes

* Add test

* check tz actually changed

* Update tests/components/utility_meter/test_sensor.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update tests/components/utility_meter/test_sensor.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Clean up comment

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 12:12:45 +01:00
Franck Nijhof
56b4733e4a Clean up early assignment in script response (#131691) 2024-11-27 10:24:06 +01:00
Louis Christ
96eae1221c Fix bluesound_group attribute in bluesound integration (#130815)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-11-27 09:40:20 +01:00
Guido Schmitz
507bb4a685 Add data_description to devolo Home Network (#131511) 2024-11-27 09:26:19 +01:00
Petro31
33222436d2 Nested stop actions will now return response_variables (#126393)
fix-nested-stop-variable-response
2024-11-27 09:18:02 +01:00
G Johansson
1e05f98ddd Use report_usage for deprecation warning in alarm_control_panel (#130543)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-27 08:57:32 +01:00
epenet
2b939ce6ec Add translation checks for service exceptions (#131266)
* Add translation checks for service exceptions

* Adjust

* Remove invalid comment
2024-11-27 08:46:45 +01:00
Manu
00c4fa4146 Add missing section data_description to translation validator in hassfest (#131675)
Add missing data_description to translation validator in hassfest
2024-11-27 08:45:18 +01:00
TheJulianJES
605651f364 Bump ZHA to 0.0.40 (#131680) 2024-11-27 08:42:37 +01:00
Klaas Schoute
67ba44c3fa Use entity description class for Garages Amsterdam (#131672) 2024-11-27 08:42:19 +01:00
Bouwe Westerdijk
8bb0fab732 Bump plugwise to v1.6.0 and adapt (#131659) 2024-11-27 08:34:15 +01:00
dependabot[bot]
81d0bcde53 Bump docker/build-push-action from 6.9.0 to 6.10.0 (#131685)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 08:26:50 +01:00
J. Nick Koston
b8f81abbed Bump zeroconf to 0.136.2 (#131681) 2024-11-27 08:26:28 +01:00
Paulus Schoutsen
7e03100af2 Allow an LLM to see script response values (#131683) 2024-11-26 23:51:21 -06:00
Michael Hansen
46fe3dcbf1 Add wake word select for ESPHome Assist satellite (#131309)
* Add wake word select

* Fix linting

* Move to ESPHome

* Clean up and add more tests

* Update homeassistant/components/esphome/select.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-11-26 22:59:49 -05:00
Markus Jacobsen
a97eeaf189 Add Bang & Olufsen diagnostics (#131538)
* Add diagnostics

* Add tests for diagnostics

* Add media_player diagnostics

* Use media_player entity's state instead of registryentry

* Update tests

* Reorganize code
Remove context from media_player state

* Fix dict being read only
Simplify naming
Update test snapshot

* Update test snapshot
2024-11-26 20:56:36 -05:00
Jozef Kruszynski
40a4ff1c84 Adds media_browser functionality to the music assistant integration (#131577)
* Add test fixtures for all library loading

* Add media browser

* Add tests for media_browser
2024-11-26 20:52:08 -05:00
Markus Jacobsen
f04c50c59e Fix Bang & Olufsen WebSocket debug log and test (#131671)
* Fix test and debug message

* Reorder dict order
2024-11-26 20:48:46 -05:00
J. Nick Koston
dc62ef8bef Bump PySwitchbot to 0.54.0 (#131664) 2024-11-26 18:03:24 -06:00
Michael
70c8c57401 Dump ffmpeg stderr to ESPhome debug log (#130808)
* dump the stderr from ffmpeg to debug log

* add pid to indentify the ffmpeg process

* be more explosive :)

* move stderr task into _write_ffmpeg_data
2024-11-27 00:09:04 +01:00
J. Nick Koston
ce20670d84 Add a constraint for aiofiles to ensure it does not get downgraded (#131666) 2024-11-26 16:04:39 -06:00
Steven B.
4093a68cc0 Bump tplink python-kasa dependency to 0.8.0 (#131249) 2024-11-26 15:04:42 -06:00
prabhjotsbhatia-ca
1e6b96131a Bump androidtv to 0.0.75 (#131642) 2024-11-26 21:57:57 +01:00
Thomas55555
055c38a3c8 Don't enable number of collisions by default for Husqvarna Automower (#131665) 2024-11-26 21:38:46 +01:00
Duco Sebel
a0893bb9f7 Mark HomeWizard quality scale as platinum (#131663) 2024-11-26 21:33:45 +01:00
epenet
859daefeb8 Record current quality scale in renault (#131394) 2024-11-26 21:32:51 +01:00
dontinelli
06f9678414 Add quality scale for solarlog (#131440)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-11-26 21:24:57 +01:00
Josef Zweck
a7113cff68 Record current IQS state for acaia (#131086) 2024-11-26 21:14:52 +01:00
Thomas55555
7a107cac41 Add PARALLEL_UPDATES to Husqvarna Automower (#131662) 2024-11-26 21:09:45 +01:00
Steven B.
f3964596de tplink: forward compatible typing and test changes for kasa 0.8 (#131623) 2024-11-26 13:50:26 -06:00
Manu
2edcda47b0 Add diagnostics platform to Habitica (#131489) 2024-11-26 20:02:01 +01:00
Marco Aceti
6e8f3d9393 Add missing sensors to Tuya CO2 Detector (#131313) 2024-11-26 20:00:13 +01:00
Franck Nijhof
f095aea5c3 Record current IQS state for Stookwijzer (#131592)
* Record current IQS state for Stookwijzer

* Also mark test coverage

* Process review comment
2024-11-26 19:59:19 +01:00
blackovercoat
35f6ae0759 Add support for single phase power meter aqcz in Tuya (#126470) 2024-11-26 19:38:52 +01:00
Andrew Jackson
132a8cc31b Detect ingress host used when adding a Mealie integration (#130418)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-26 19:30:05 +01:00
Martin Hjelmare
ccbbcbb264 Make set value template number option required (#131625) 2024-11-26 19:27:59 +01:00
Jake Martin
dfa7ababfb Raise HomeAssistantError if update fails (#129727) 2024-11-26 19:27:17 +01:00
Alexandre CUER
f1655c5d1a Use SensorEntityDescription in emoncms (#130451) 2024-11-26 19:25:00 +01:00
Per Øyvind Øygard
7d5ba342c6 Add base entity class for Touchline zones (#131094)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-26 19:23:18 +01:00
Duco Sebel
a252faf9af Add reconfiguration flow in HomeWizard (#131535) 2024-11-26 19:20:50 +01:00
Norbert Rittel
7ba0f54412 Clarify 'item' and 'rename' descriptions of 'update_item' action (#131336) 2024-11-26 19:19:27 +01:00
Duco Sebel
a9cab28474 Add DHCP configuration update in HomeWizard (#131547) 2024-11-26 19:17:04 +01:00
Jan-Philipp Benecke
a5becfaff0 Add more supported lines to London Underground (#131650) 2024-11-26 19:03:50 +01:00
Jan-Philipp Benecke
e31d398811 Add binary sensor to SABnzbd (#131651) 2024-11-26 19:01:19 +01:00
Michael Hansen
192ffc09ee Add area slot to response for cancel all timers (#131638)
Add area slot to response
2024-11-26 10:58:39 -06:00
Alexey ALERT Rubashёff
15bf0c728c Sync overkiz Atlantic Water Heater datetime before switching the away mode on (#127408)
Set device datetime before turning on the away mode
2024-11-26 17:45:28 +01:00
Jan-Philipp Benecke
883c6121cf Prevent changing email address in inexogy reauth (#131632)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-26 17:17:10 +01:00
jesperraemaekers
bf9e7e4a0c Bump Weheat wh-python to 2024.11.26 (#131630) 2024-11-26 17:00:51 +01:00
Jan-Philipp Benecke
1a71fbe427 Add intent to cancel all timers (#130873)
* Add intent to cancel all timers

* Add intent to llm test
2024-11-26 09:59:41 -06:00
starkillerOG
a2ebfe6e83 Add Reolink binning mode select entity (#131570) 2024-11-26 16:19:41 +01:00
Steven B.
0e88e22fd2 Bump ring_doorbell to 0.9.13 (#131627) 2024-11-26 16:14:39 +01:00
Simon Lamon
ee74a35417 Support time entities in time conditions (#124575)
Co-authored-by: Mark Bergsma <mark@wikked.net>
2024-11-26 15:37:31 +01:00
Steven B.
147679f803 Add live view camera entity to ring integration (#127579) 2024-11-26 15:20:25 +01:00
Jan-Philipp Benecke
9510ef56f9 Add configuration url to SABnzbd device info (#131617) 2024-11-26 08:39:21 -05:00
dotvav
1fc3194613 Add diagnostics to Palazzetti (#131608) 2024-11-26 14:07:37 +01:00
Duco Sebel
1ddc8a35c2 Add test to validate HomeWizard updates discovery info (#131540) 2024-11-26 13:14:59 +01:00
Klaas Schoute
f5d323679f Fix bug on creating entities with unknown state - Garages Amsterdam (#131619) 2024-11-26 13:07:32 +01:00
Michael
b0b72326d8 Add Update syrupy snapshots VScode task (#131536)
* add Update syrupy snapshots task

* don't use xdist
2024-11-26 13:02:17 +01:00
Lenn
41c7cc6e81 Bump motionblindsble to 0.1.3 (#131613) 2024-11-26 12:54:50 +01:00
Franck Nijhof
551d778a31 Merge branch 'master' into dev 2024-11-26 12:48:56 +01:00
Jan-Philipp Benecke
3af751c129 Fix SABnzbd number icon (#131615) 2024-11-26 12:40:02 +01:00
Klaas Schoute
9a999e8742 Use ConfigEntry runtime_data in Garages Amsterdam (#131611) 2024-11-26 12:30:50 +01:00
Thomas55555
5da7b1dd05 Test connection in config flow for Husqvarna Automower (#131557) 2024-11-26 11:06:48 +01:00
starkillerOG
5f7c7b323e Add Reolink bitrate and framerate select entities (#131571) 2024-11-26 10:58:57 +01:00
Josef Zweck
666b908242 Allow dhcp discovery to update host for lamarzocco (#131047) 2024-11-26 10:57:46 +01:00
Noah Husby
d2f862b7b9 Add disconnect/reconnect tests to Cambridge Audio (#131100) 2024-11-26 10:55:03 +01:00
Christopher Fenner
0b7fbe1d17 Adjust the fan entity icon to it's state in ViCare integration (#131553) 2024-11-26 10:46:12 +01:00
Manu
d587e71f8d Add descriptions for config flow in Habitica integration (#131461) 2024-11-26 10:42:03 +01:00
Raphael Hehl
04b8a686dc Fix Values for Recording mode and Infrared mode entities are not showing correctly (#131487) 2024-11-26 10:36:05 +01:00
Jan-Philipp Benecke
b800db9f52 Abort SABnzbd config flow when instance already configured (#131607) 2024-11-26 10:33:01 +01:00
Guido Schmitz
1539558935 Remove non-translated string from exceptions in devolo Home Network (#131606) 2024-11-26 10:32:35 +01:00
Marc Mueller
0a16595a15 Update coverage to 7.6.8 (#131515) 2024-11-26 10:32:05 +01:00
G Johansson
066af3a5da Add reconfigure flow to filesize (#131106) 2024-11-26 10:29:46 +01:00
dotvav
7e58aa8af1 Bump pypalazzetti to 0.1.14 (#131443) 2024-11-26 10:28:04 +01:00
Maciej Bieniek
f81955ef25 Add unit translations for Brother integration (#131275) 2024-11-26 10:27:02 +01:00
Allen Porter
6b28748d60 Update rainbird to meet the runtime-data quality scale check (#131391) 2024-11-26 10:26:16 +01:00
Norbert Rittel
245c785a5c Update two strings for creating a Utility meter Helper (#131196) 2024-11-26 10:25:56 +01:00
Josef Zweck
2d8b595b95 Set PARALLEL_UPDATES for lamarzocco and UpdateFailed translation (#131099) 2024-11-26 10:25:37 +01:00
dontinelli
f6ef2d730b Add translation to coordinator exceptions in solarlog (#131523) 2024-11-26 10:11:36 +01:00
Manu
bd69af5500 Add and improve descriptions in ista EcoTrand config flow (#131566) 2024-11-26 10:07:35 +01:00
Duco Sebel
bee34fe954 Set PARALLEL_UPDATES in remaining HomeWizard platforms (#131316) 2024-11-26 10:02:23 +01:00
Raphael Hehl
91e4939bf0 Add fingerprint and nfc event support to unifiprotect (#130840)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-26 10:00:34 +01:00
Duco Sebel
521cc67d45 Streamline HomeWizard unit test MAC-addresses (#131310)
* Streamline HomeWizard unit test MAC-addresses

* Also streamline mock_config_entry
2024-11-26 09:54:23 +01:00
Jan-Philipp Benecke
725d49ca9e Use hostname as config entry title in SABnzbd (#131604) 2024-11-26 09:43:39 +01:00
Guido Schmitz
60e1fb5d4f Translate UpdateFailed in devolo Home Network (#131603) 2024-11-26 09:43:25 +01:00
Michael Hansen
752df5a8cb Filter entity names before intent matching (#131563) 2024-11-26 09:42:31 +01:00
dontinelli
6947800d93 Pass websession to fyta_cli (#131311) 2024-11-26 09:30:45 +01:00
Klaas Schoute
e7030f5704 Refactor coordinator for Garages Amsterdam integration (#131054) 2024-11-26 09:25:36 +01:00
Markus Jacobsen
f5b2f9dcbf Add parallel updates setting to Bang & Olufsen (#131526) 2024-11-26 09:23:23 +01:00
Markus Jacobsen
ad19c5f9c1 Remove Bang & Olufsen static icon (#131528) 2024-11-26 09:23:08 +01:00
dontinelli
875623f889 Add translation for exceptions in coordinator for fyta (#131521) 2024-11-26 09:22:44 +01:00
Jan-Philipp Benecke
1ddd31673a Add reconfigure flow to SABnzbd (#131555)
* Add reconfigure flow to SABnzbd

* Process code review

* Add suggested values
2024-11-26 09:09:56 +01:00
LG-ThinQ-Integration
db07483c40 Fix twoSet temp and fan_mode error in LG ThinQ integration (#131130)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-26 09:05:16 +01:00
Simon Lamon
17466684a6 Add timesync and restart functionality to linkplay (#130167)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-26 09:01:13 +01:00
epenet
db198d4da2 Ignore flaky cloud translations (#131600) 2024-11-26 09:00:54 +01:00
David Knowles
5d5ab82ba0 Bump pyschlage to 2024.11.0 (#131593) 2024-11-26 09:00:42 +01:00
Max R
687a3149b9 Update instructions for setting up ecowitt (#131502) 2024-11-26 08:59:04 +01:00
Noah Husby
2217fc4507 Add parallel updates to Cambridge Audio (#131596) 2024-11-26 08:58:10 +01:00
Noah Husby
b1a540a772 Add action exceptions to Cambridge Audio (#131597) 2024-11-26 08:56:11 +01:00
Franck Nijhof
4702d8ddb0 Enable strict typing for Stookwijzer (#131590) 2024-11-26 08:48:42 +01:00
Andrew Jackson
4e9f03a5ca Add unit of measurement to translations for Mealie (#131345) 2024-11-26 08:29:15 +01:00
Dave Leaver
9a46135367 Bump airtouch5py to 0.2.11 (#131436) 2024-11-26 08:26:53 +01:00
Erik Montnemery
44f90dca0c Fix logic for purge of recorder runs (#130378)
* Fix logic for purge of recorder runs

* Make test more explicit

* Explicitly don't remove unclosed recorder runs in purge
2024-11-26 07:47:47 +01:00
cedeherd
ec8fe3db4e Bump nibe to 2.13.0 (#131572) 2024-11-26 07:08:55 +01:00
Franck Nijhof
8e9b5eb4e1 Extend tests for Stookwijzer init (#131589) 2024-11-26 00:45:47 +01:00
Franck Nijhof
5868a4fa21 Add data description for Stookwijzer config flow (#131591) 2024-11-26 00:45:25 +01:00
Franck Nijhof
af29bfceb0 Add new sensors to Stookwijzer (#131587) 2024-11-26 00:20:35 +01:00
starkillerOG
442a270473 Bump reolink-aio to 0.11.3 (#131568) 2024-11-26 00:18:36 +01:00
Franck Nijhof
327aa8a51a Add entity descriptions to Stookwijzer (#131585) 2024-11-26 00:09:31 +01:00
Marc Mueller
54d530c410 Update types packages (#131573) 2024-11-25 23:59:33 +01:00
Norbert Rittel
4e22da2a75 Update climate strings for consistent names and descriptions (#130967) 2024-11-25 23:05:26 +01:00
Charles Garwood
b60f981c3e Update Fully Kiosk quality scale progress (#131411) 2024-11-25 22:44:37 +01:00
Franck Nijhof
4ba8db1de4 Add data coordinator to Stookwijzer (#131574) 2024-11-25 22:15:23 +01:00
Robert Resch
cf74532cc6 Bump uv to 0.5.4 (#131513) 2024-11-25 21:59:20 +01:00
Franck Nijhof
4a8f3eea69 Bump stookwijzer to v1.5.1 (#131567) 2024-11-25 21:33:47 +01:00
Robert Resch
1b62e12261 Deprecate RTSPtoWebRTC (#131467)
* Deprecate RTSPtoWebRTC

* Update homeassistant/components/rtsp_to_webrtc/strings.json

Co-authored-by: Allen Porter <allen@thebends.org>

* Updated text

---------

Co-authored-by: Allen Porter <allen@thebends.org>
2024-11-25 12:17:19 -08:00
Mick Vleeshouwer
7aa30758f9 Bump pyoverkiz 1.15.0 (#131478) 2024-11-25 19:58:12 +01:00
Marc Mueller
19c42774a4 Update pytest-cov to 6.0.0 (#131518) 2024-11-25 19:57:48 +01:00
Maikel Punie
fe3cdad06f Bump velbusaio to 2024.11.1 (#131506) 2024-11-25 19:43:03 +01:00
avee87
5ef5838b20 Bump aio-geojson-generic-client to 0.5 (#131514) 2024-11-25 15:55:16 +01:00
Josef Zweck
5c56275310 Bump aioacaia to 0.1.9 (#131533) 2024-11-25 15:46:13 +01:00
G Johansson
2a52de48c5 Remove deprecated v2 api from glances (#131427) 2024-11-25 14:29:35 +01:00
Erik Montnemery
9b8316df3f Revert "Make WS command backup/generate send events" (#131530)
Revert "Make WS command backup/generate send events (#130524)"

This reverts commit 093b16c723.
2024-11-25 13:52:32 +01:00
Robert Resch
2bf7518dab Bump deebot-client to 9.0.0 (#131525) 2024-11-25 13:31:31 +01:00
dotvav
f5b2002057 Make every palazzetti entity unavailable if appropriate (#131385) 2024-11-25 10:37:05 +01:00
Duco Sebel
904c3291d9 Add exception translation in HomeWizard coordinator (#131404) 2024-11-25 10:23:07 +01:00
Michael Hansen
d4071e7123 Hide TTS filename behind random token (#131192)
* Hide TTS filename behind random token

* Clean up and fix test snapshots

* Fix tests

* Fix cloud tests
2024-11-24 20:52:21 -05:00
Raphael Hehl
cb4636ada1 Bump uiprotect to 6.6.2 (#131475)
* Bump uiprotect to 6.6.2

* test(data): update test data to include readLive permissions

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-25 01:48:05 +01:00
epenet
69cc856d57 Fix incorrect already_configured string in bang olufsen (#131484) 2024-11-25 01:01:35 +01:00
Robert Resch
1c2e86d824 Deprecate async_register_rtsp_to_web_rtc_provider (#131462) 2024-11-24 15:56:05 -08:00
epenet
43e467a309 Set single_config_entry in canary (#131485) 2024-11-24 15:55:33 -08:00
Manu
8b71362ae1 Set parallelism for Habitica (#131480)
* Set parallelism for Habitica

* remove from coordinator
2024-11-24 15:55:11 -08:00
Noah Husby
dc4a2d6f33 Bump aiostreammagic to 2.10.0 (#131415) 2024-11-24 15:35:34 -08:00
epenet
9f8a656eff Set single_config_entry in cpuspeed (#131486)
* Set single_config_entry in cpuspeed

* Adjust tests
2024-11-24 23:55:03 +01:00
Jan-Philipp Benecke
428d7d1ad8 Rename .sab module to .helpers in SABnzbd (#131481)
Rename sab module to helpers in SABnzbd
2024-11-24 21:53:52 +01:00
epenet
8baa477efe Set single_config_entry in azure event hub (#131483)
Set single_config_entry in azure-event-hub
2024-11-24 21:35:26 +01:00
Jan-Philipp Benecke
1e169d185f Add version to SABnzbd device info (#131479) 2024-11-24 20:36:59 +01:00
kongo09
4c603913ca Fix humidifier entity feature docstring (#131470)
fix docstring to refer to the correct entity
2024-11-24 20:27:22 +01:00
Christopher Fenner
84630ef8cc Define ViCare fan entity presets based on the actual by the device supported presets (#130886)
* only show supported presets

* update snapshot

* Apply suggestions from code review

* move code to init

* async executor

* Revert "update snapshot"

This reverts commit ca92b5ed27.

* Update fan.py
2024-11-24 19:37:40 +01:00
Allen Porter
1dc99ebc05 Add reauthentication support for Rainbird (#131434)
* Add reauthentication support for Rainbird

* Add test coverage for getting the password wrong on reauth

* Improve the reauth test
2024-11-24 19:33:19 +01:00
Michael
b7e960f0bc Translate UpdateFailed error in AVM Fritz/BOX Tools (#131466)
translate UpdateFailed error
2024-11-24 18:32:37 +01:00
Jan Bouwhuis
d790a2d74c Allow Alexa to stop a cover (#130846)
* Allow Alexa to stop a cover

* Fix tests

* Update tests/components/alexa/test_smart_home.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2024-11-24 17:11:56 +01:00
Jan Bouwhuis
076a351ce4 Add keepalive data_description for mqtt (#131446) 2024-11-24 06:28:07 -08:00
Josef Zweck
5b27f07f81 Add data description for lamarzocco (#131435) 2024-11-24 11:41:50 +01:00
Josef Zweck
5bdbd4360e Add data description for acaia (#131437) 2024-11-24 11:41:05 +01:00
dontinelli
7b139b75ae Add data description to config flow for fyta (#131441) 2024-11-24 11:40:27 +01:00
Allen Porter
106602669d Set data description for all Rainbird config flow fields (#131432) 2024-11-24 11:39:04 +01:00
G Johansson
767ac40685 Fix language picker in workday (#131423) 2024-11-24 11:37:29 +01:00
G Johansson
ca3be6661a Remove deprecated yaml import in media extractor (#131426) 2024-11-24 11:36:40 +01:00
Manu
c9ede11b1f Add entity picture for mystic hourglasses to Habitica (#131428) 2024-11-24 11:31:32 +01:00
Jan Bouwhuis
00ea56e085 Add quality scale for IMAP integration (#131289) 2024-11-24 11:30:05 +01:00
epenet
66450d7912 Add quality_scale.yaml to hassfest pre-commit filter (#131392) 2024-11-24 11:28:37 +01:00
Duco Sebel
c402bb5da0 Mark HomeWizard docs quality scale requirements as done (#131414) 2024-11-24 11:27:39 +01:00
Josef Zweck
07e8d2d11d Set parallel updates for acaia (#131306) 2024-11-24 11:26:11 +01:00
G Johansson
d65d5ceac7 Small cleanup in Trafikverket Camera (#131424) 2024-11-24 11:09:46 +01:00
J. Nick Koston
60cf797650 Bump aioesphomeapi to 27.0.2 (#131397)
Fixes for cancellation during Bluetooth connect

changelog: https://github.com/esphome/aioesphomeapi/compare/v27.0.1...v27.0.2

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-23 17:25:45 -08:00
Brandon Rothweiler
d527788a60 Bump py-aosmith to 1.0.11 (#131422) 2024-11-24 00:44:31 +01:00
epenet
7ba3ce67f1 Use short namespace for dr and er in config_entries (#131412) 2024-11-24 00:12:40 +01:00
J. Nick Koston
0a8dde3740 Bump yalexs-ble to 2.5.1 (#131398)
changelog: https://github.com/bdraco/yalexs-ble/compare/v2.5.0...v2.5.1

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-23 23:17:20 +01:00
Michael
2d779a4e4c Mark IQS rule config-flow as todo in AVM Fritz!BOX Tools (#131419)
mark rule `config-flow` as todo
2024-11-23 23:12:39 +01:00
Matthias Alphart
832d5e27fe Remove deprecation warnings for KNX yaml (#131402) 2024-11-23 23:01:33 +01:00
Norbert Rittel
9a2eb8410e Replace "Add" with "Create" in description of Helper (#131405)
The user can create Mold indicator helpers for different purposes.

Following the HA Design guidelines this means that the description in the dialog should use "Create" not "Add".
2024-11-23 22:59:09 +01:00
Norbert Rittel
913ec53f8c Replace "Add" with "Create" in description of Helper (#131407)
The user can create Statistics helpers for different purposes.

Following the HA Design guidelines this means that the description in the dialog should use "Create" not "Add".
2024-11-23 22:58:38 +01:00
Norbert Rittel
cfa8ca877f Replace "Add" with "Create" in description of Helper (#131403)
Replace "Add" with "Create" for Helper type

The user can create History stats sensor helpers for different purposes. Following the HA Design guidelines this means that the description should use "Create" not "Add".
2024-11-23 22:58:16 +01:00
epenet
b11d951ed7 Add ability to get config_entry as required (#131400)
* Add ability to get config_entry as required

* One more

* Use new API
2024-11-23 22:26:16 +01:00
Paulus Schoutsen
33983fa9a7 Update snapshots for mashumaro 3.15 (#131406)
* Update snapshots

* Add it back
2024-11-23 15:32:05 -05:00
Duco Sebel
1e313c6ff5 Bumb python-homewizard-energy to 7.0.0 (#131366) 2024-11-23 14:29:03 -05:00
Manu
e6715fd4d7 Fix errors in fixtures and tests (#131388)
* Fix errors in fixtures and tests

* stale function name
2024-11-23 10:44:40 -08:00
epenet
c7485b94d5 Use breaks_in_ha_version in report_usage (#131137)
* Use breaks_in_ha_version in report_usage

* Revert behavior change
2024-11-23 18:58:24 +01:00
Maciej Bieniek
50013cf5c7 Add unit translations for NextDNS integration (#131281)
* Add unit translations for NextDNS integration

* Use translation keys
2024-11-23 18:04:49 +01:00
dontinelli
ea4bbfea7e Pass websession to solarlog_cli (#131300) 2024-11-23 18:03:51 +01:00
Andrew Jackson
f93525e0fc Add unit of measurement to translations for Mastodon (#131343)
* Add unit of measurement to translations

* Fix strings lint
2024-11-23 18:00:28 +01:00
Michael
7b70f2d83b Translate UpdateFailed exception in PEGELONLINE (#131380)
translate UpdateFailed exception
2024-11-23 17:59:41 +01:00
Brett Adams
fa1b7d73d5 Add dict of translated errors to Tessie (#131346)
* Add dict of translated errors

* Fix test
2024-11-23 17:58:58 +01:00
Allen Porter
0d14005602 Remove unused config flow import step (#131379)
Remove unused config flow import removed in #130783
2024-11-23 17:55:08 +01:00
dotvav
34df6ef64c Add quality_scale.yaml to palazzetti (#131335)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-11-23 17:40:34 +01:00
Norbert Rittel
2609fdf2a1 Improve description of Elevation field in homeassistant.set_location (#131356) 2024-11-23 17:30:00 +01:00
Álvaro Fernández Rojas
0033ce4f96 Update AEMET-OpenData to v0.6.3 (#131303) 2024-11-23 17:27:56 +01:00
Allen Porter
460ce2463d Add quality scale for rainbird (#131332) 2024-11-23 17:23:37 +01:00
Duco Sebel
557a80497e Mark quality_scale docs-removal-instructions as done (#131370) 2024-11-23 17:07:34 +01:00
Norbert Rittel
6e298f1b9b Add missing apostrophe for possessive form (#131368) 2024-11-23 17:05:31 +01:00
Duco Sebel
30c176b400 Mark quality_scale docs-installation-parameters as done (#131372) 2024-11-23 17:03:00 +01:00
Robin Wohlers-Reichel
aa79321a2b Bump solax to 3.2.1 (#131373) 2024-11-23 17:00:50 +01:00
Josef Zweck
e856ba11d0 Bump pylamarzocco to 1.2.11 (#131331)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-11-23 14:34:03 +01:00
Steven B.
7d1a7b0870 Webrtc use RTCIceCandidateInit messages with frontend (#129879)
* Add sdp m line index to WebRtc Ice Candidates

* Send RTCIceCandidate object in messages

* Update tests

* Update go2rtc to hardcode spdMid to 0 string on receive

* Update for latest webrtc-model changes

* Add error check for mushamuro error

* Remove sdp_line_index from expected fail tests

* Validate and parse message dict

* Catch mashumaro error and raise vol.Invalid

* Revert conftest change

* Use custom validator instead

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-11-23 13:51:26 +01:00
Duco Sebel
d55eb896d2 Add Config Flow data descriptions for HomeWizard (#131315)
* Add data_description to HomeWizard setup flow

* Make quality_scale config-flow as done
2024-11-23 13:17:28 +01:00
Noah Husby
27926caf77 Bump aiostreammagic to 2.8.6 (#131312)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-11-23 13:05:48 +01:00
Charles Garwood
fe2260851e Bump Fully Kiosk Browser to Bronze quality scale (#131221) 2024-11-23 10:48:40 +01:00
Jan Bouwhuis
5a06e237e3 Add quality scale for MQTT (#131113)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-23 10:35:53 +01:00
Klaas Schoute
b7e13bbab0 Record current IQS state for Autarco (#131090)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-23 10:31:00 +01:00
Christopher Fenner
630afeefdb Record current IQS state for ViCare (#131202) 2024-11-23 10:15:18 +01:00
Jan-Philipp Benecke
789cc7608a Record current IQS state for inexogy (#131208) 2024-11-23 09:37:51 +01:00
Josef Zweck
f3a4a31412 Record current IQS state for tedee (#131081) 2024-11-23 09:37:41 +01:00
Joost Lekkerkerker
a88edc7130 Add quality scale to airgradient (#131292) 2024-11-23 09:23:13 +01:00
Allen Porter
fd11fc3b3e Update quality scale validation to sort output (#131324) 2024-11-23 09:16:47 +01:00
Michael Hansen
f47840d83c Cache intent recognition results (#131114) 2024-11-22 20:57:42 -05:00
Franck Nijhof
8f9095ba67 Record current IQS state for Elgato (#131077) 2024-11-22 21:20:39 +01:00
Franck Nijhof
ec127fb61e Clean up hassfest, fix CI (#131305) 2024-11-22 21:07:50 +01:00
LG-ThinQ-Integration
02f16ff568 Add config_flow's seperated reaseon and more debug information (#131131)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-22 20:12:01 +01:00
Marcel van der Veldt
49eeb2d99e Add test foundation to Music Assistant integration (#129534) 2024-11-22 20:09:20 +01:00
Markus Jacobsen
ecb945e08c Bump mozart-api to 4.1.1.116.3 (#131269) 2024-11-22 20:07:11 +01:00
Franck Nijhof
e690c1026c Record current IQS state for HomeWizard Energy (#131082) 2024-11-22 19:49:04 +01:00
Josef Zweck
19183fcc6c Record current IQS state for lamarzocco (#131084)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-22 19:48:36 +01:00
Federico D'Amico
36bc564862 Bump microBeesPy to 0.3.5 (#131034) 2024-11-22 19:35:31 +01:00
Joost Lekkerkerker
11f00895f7 Add legacy to integrations that have not moved to the UI (#131171) 2024-11-22 19:33:50 +01:00
J. Diego Rodríguez Royo
53b87f47fb Fix Home Connect service validation error placeholders (#131294) 2024-11-22 19:28:08 +01:00
Norbert Rittel
c61e94dac2 Remove wrong periods from action names (#131290) 2024-11-22 19:27:49 +01:00
Allen Porter
96e67373db Validate quality scale tiers against the tier declared in the integration manifest (#131286)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-22 19:27:40 +01:00
Michael
0626b005e2 Bump aiopegelonline to 0.1.0 (#131295) 2024-11-22 19:26:41 +01:00
Michael Hansen
7621012ee6 Ensure sentence triggers are only checked once (#131210)
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
2024-11-22 17:38:19 +01:00
Robert Resch
754cf1fdb4 Deprecate camera async_handle_web_rtc_offer (#131285) 2024-11-22 17:37:56 +01:00
epenet
97f574a86a Fix lamarzocco translation_placeholder (#131284) 2024-11-22 17:37:40 +01:00
epenet
3052e29689 Fix missing exception translation in alarm_control_panel (#131280) 2024-11-22 17:37:24 +01:00
epenet
9991a3b688 Fix missing exception translation in tibber (#131287) 2024-11-22 17:37:11 +01:00
epenet
46abf9790b Fix honeywell translation_placeholder (#131288) 2024-11-22 17:36:57 +01:00
Jan Bouwhuis
6064055150 Improve imap config flow strings and add data descriptions (#131279) 2024-11-22 17:14:23 +01:00
rappenze
1dbb92e7f3 Use _attr_is_on in fibaro light (#131211) 2024-11-22 17:10:38 +01:00
epenet
0460046d32 Fix incorrect translation string in palazzetti (#131272) 2024-11-22 17:08:12 +01:00
Norbert Rittel
d4e362486d Add "Create …" for new Random Helper dialog (#131283) 2024-11-22 17:07:55 +01:00
G Johansson
d4dbceba02 Bump pytrafikverket to 1.1.1 (#131270) 2024-11-22 16:58:58 +01:00
Norbert Rittel
61bfc59d51 Change "Add …" to "Create …" for New Helper dialog (#131278) 2024-11-22 16:56:53 +01:00
epenet
f65d97322f Add default placeholders for config validation errors (#131277) 2024-11-22 16:55:04 +01:00
Sid
9e98e446a2 Bump ruff to 0.8.0 (#131273) 2024-11-22 16:53:26 +01:00
Krisjanis Lejejs
d3f3fdc7ef Bump hass-nabucasa to 0.85.0 (#131271) 2024-11-22 17:08:31 +02:00
Per Øyvind Øygard
11ef2b6da8 Populate HVACAction/HVACMode for TouchlineSL zones (#131075) 2024-11-22 15:27:25 +01:00
J. Diego Rodríguez Royo
7fba788f18 Use ConfigEntry.runtime_data to store runtime data at Home Connect (#131014)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 15:25:22 +01:00
Norbert Rittel
32dca7d4a5 Fix typo in humidity::name of Nexia integration (#131267) 2024-11-22 15:20:01 +01:00
Tsvi Mostovicz
e82130e6fe Bump hdate to 0.11.1 (#130456) 2024-11-22 15:06:31 +01:00
epenet
f51662f31b Mark abode as single_config_entry (#131241) 2024-11-22 15:04:41 +01:00
Jan Bouwhuis
384b2af31e Add entity translations and entity category for IMAP mail count sensor (#131152)
* Add entity translations and entity category for IMAP mail count sensor

* Update tests

* Support unit_of_measurement

* Add unit_of_measurement
2024-11-22 15:03:24 +01:00
epenet
ae592a0c35 Use ServiceValidationError in Renault (#131265) 2024-11-22 14:59:11 +01:00
Norbert Rittel
7a42c42384 Fix incorrect action descriptions of Nexia integration (#131087) 2024-11-22 14:51:44 +01:00
Andrew Jackson
3d98be8593 Add data descriptions for all config fields in Mastodon integration (#131260) 2024-11-22 13:44:52 +01:00
Robert Resch
154282ff5c Deprecate camera frontend_stream_type (#130932) 2024-11-22 13:42:33 +01:00
Norbert Rittel
4b5a8bf9fe Replace "Add …" with "Create …" for New Helper title (#131253) 2024-11-22 13:36:18 +01:00
Jan-Philipp Benecke
c16f14c856 Enhance data_description in SABnzbd (#131256) 2024-11-22 13:34:49 +01:00
Josef Zweck
ce46bac245 Add flow rate sensor to acaia (#131254) 2024-11-22 13:26:16 +01:00
Norbert Rittel
430a47138a Add consistent descriptions to turn on / off and toggle commands (#130985) 2024-11-22 13:22:29 +01:00
Jan-Philipp Benecke
f58a6fa2cb Use TextSelector in SABnzbd config flow (#131255) 2024-11-22 13:20:32 +01:00
Sid
040a73421f Update manifest JSON schema for new quality scale (#131213) 2024-11-22 13:07:29 +01:00
Josef Zweck
047b16ec96 Bump aioacaia to 0.1.8 (#131235) 2024-11-22 13:05:13 +01:00
dotvav
b38a614170 Palazzetti sensors (#130804) 2024-11-22 12:53:39 +01:00
epenet
2da73ea068 Add connectivity checks to renault config flow (#131251)
* Add connectivity checks to renault config flow

* Parametrize

* Sort

* merge
2024-11-22 12:33:04 +01:00
epenet
849ebd1435 Cleanup AWS config flow (#131244) 2024-11-22 12:22:26 +01:00
Willem-Jan van Rootselaar
37edf982ca Add waterheater platform bsblan (#129053)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 12:17:53 +01:00
Franck Nijhof
0644d782cd 2024.11.3 (#131248) 2024-11-22 11:55:45 +01:00
starkillerOG
65652c0adb Enable strict typing for Reolink (#131239) 2024-11-22 11:47:49 +01:00
Nikolay Vasilchuk
9e4368cfd4 Add StarLine flex logic and panic buttons (#130819)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 11:44:04 +01:00
Franck Nijhof
4ef50ffd88 Bump version to 2024.11.3 2024-11-22 11:05:59 +01:00
starkillerOG
bfcd4194f3 Bump reolink_aio to 0.11.2 (#131237) 2024-11-22 11:05:37 +01:00
rappenze
2f05240e4c Fix fibaro cover state is not always correct (#131206) 2024-11-22 11:05:34 +01:00
starkillerOG
44ad8081a3 Reolink log fast poll errors once (#131203) 2024-11-22 11:05:30 +01:00
Jesse Hills
780eaa8379 Fix typo in ESPHome repair text (#131200) 2024-11-22 11:05:26 +01:00
Norbert Rittel
75dcdfb087 Fix cast translation string (#131156) 2024-11-22 11:05:23 +01:00
Norbert Rittel
c88ff2ca44 Fix typo in name of "Alarm arm home instant" action (#131151) 2024-11-22 11:05:19 +01:00
Norbert Rittel
402c668f05 Replace "service" with "action" in zha:reconfigure_device (#131111)
Replace "service" with "action" in one description

As services are now actions in HA this needs to be fixed.
2024-11-22 11:05:14 +01:00
Álvaro Fernández Rojas
93b4570c04 Update aioairzone to v0.9.7 (#131033) 2024-11-22 10:57:08 +01:00
Álvaro Fernández Rojas
50a610914b Bump aioairzone to 0.9.6 (#130559)
* Update aioairzone to v0.9.6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove _async_migrator_mac_empty and improve tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove WebServer empty mac fixes as requested by @epenet

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-11-22 10:57:04 +01:00
G Johansson
8db18181d0 Bump holidays to 0.61 (#130984) 2024-11-22 10:52:43 +01:00
G Johansson
335124acc6 Add missing catholic category in workday (#130983) 2024-11-22 10:52:40 +01:00
Norbert Rittel
24ccb9b894 Add more UI user-friendly description to six Supervisor actions (#130971) 2024-11-22 10:52:36 +01:00
Jan-Philipp Benecke
a75ce850b8 Strip whitespaces from host in ping config flow (#130970) 2024-11-22 10:52:33 +01:00
Renat Sibgatulin
4753510ace Bump aioairq to 0.4.3 (#130963) 2024-11-22 10:52:30 +01:00
ElmaxSrl
fc607ea7e5 Update elmax_api to v0.0.6.1 (#130917)
Co-authored-by: Alberto Geniola <albertogeniola@gmail.com>
2024-11-22 10:52:27 +01:00
Sergio Conde Gómez
477141c22a Unscape HTML Entities from RSS feeds (#130915)
* Unscape HTML Entities from RSS feeds

* Improve tests
2024-11-22 10:52:23 +01:00
Charles Yuan
aaa36adbcc Fixed Small Inaccuracy in Description String for myUplink (#130900) 2024-11-22 10:52:20 +01:00
J. Nick Koston
9447180c04 Bump bluetooth-adapters to 0.20.2 (#130877) 2024-11-22 10:52:17 +01:00
epenet
6853234f9d Pass config_entry explicitly in rachio (#130865) 2024-11-22 10:52:14 +01:00
G Johansson
6944ba0333 Use default device sensors also for AirQ devices in Sensibo (#130841) 2024-11-22 10:52:10 +01:00
starkillerOG
04bc041174 Reolink fix dev/entity id migration (#130836) 2024-11-22 10:52:07 +01:00
Glenn Waters
a024acf096 UPB integration: Change unique ID from int to string. (#130832) 2024-11-22 10:52:04 +01:00
hahn-th
5b1aca53ac Bump homematicip to 1.1.3 (#130824) 2024-11-22 10:52:00 +01:00
Michael
a588ced2e3 Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices (#130788)
disable writing progress stats to stderr in ffmpeg command
2024-11-22 10:51:57 +01:00
Franck Nijhof
876112ff54 Update twentemilieu to 2.1.0 (#130752) 2024-11-22 10:51:54 +01:00
Jan Bouwhuis
a48f88033d Fix file uploads in MQTT config flow not processed in executor (#130746)
Process file uploads in MQTT config flow in executor
2024-11-22 10:51:49 +01:00
Patrick
5deba1766e Fix and bump apsystems-ez1 to 2.4.0 (#130740) 2024-11-22 10:51:45 +01:00
Davin Kevin
4863243f5a Prevent endless loop in recorder when using a filter and there are no more states to purge (#126149)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-22 10:51:35 +01:00
starkillerOG
65a64ff7c4 Bump reolink_aio to 0.11.2 (#131237) 2024-11-22 09:52:30 +01:00
Josef Zweck
cd631abe88 Bump pylamarzocco to 1.2.7 (#131236) 2024-11-22 09:50:57 +01:00
Josef Zweck
60e19967b1 Add parallel updates & exception translations to tedee (#131146) 2024-11-22 09:48:42 +01:00
Josef Zweck
e2183a81aa Make UpdateFailed translateable (#131098) 2024-11-22 09:37:35 +01:00
Josef Zweck
786b779a68 Fix title upon discovery for lamarzocco (#131207)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-22 08:56:10 +01:00
ElmaxSrl
e12db0c88e Update elmax_api to v0.0.6.1 (#130917)
Co-authored-by: Alberto Geniola <albertogeniola@gmail.com>
2024-11-22 08:52:14 +01:00
Josef Zweck
764f72bdc3 Patch entry setup in lamarzocco tests (#131217) 2024-11-22 08:49:46 +01:00
Antoine Reversat
0ce8d8d749 Upgrade to ayla-iot-unofficial 1.4.4 (#131228) 2024-11-22 08:47:59 +01:00
Jan-Philipp Benecke
caac22f09f Improve SABnzbd config flow tests (#131234) 2024-11-22 08:44:33 +01:00
Jan-Philipp Benecke
fa3d2a3031 Remove configurable name in config flow from SABnzbd (#131073) 2024-11-22 07:58:43 +01:00
Charles Garwood
8a292184a5 Add data_description for password in Fully Kiosk config flow (#131222)
* Add data_description for password

* Update phrasing

* Add data_description in discovery as well
2024-11-21 17:03:08 -05:00
Sid
c94122e105 Fix manifest.json schema violations (#131220) 2024-11-21 22:50:33 +01:00
Per Øyvind Øygard
158b0c8ce2 Bump pytouchlinesl to 0.2.0 (#131088) 2024-11-21 22:02:15 +01:00
Norbert Rittel
52147b1515 Fix group translation strings (#131150) 2024-11-21 21:37:50 +01:00
G Johansson
da023ffbd5 Use config entry title as sensor name in Filesize (#131109)
* Use config entry title as sensor name in Filesize

* snapshot

* snapshot
2024-11-21 21:36:54 +01:00
Norbert Rittel
88b54bbaf7 Fix calendar translation strings (#131160) 2024-11-21 21:36:06 +01:00
Norbert Rittel
c0396a1268 Fix Xiaomi Miio translation strings (#131154) 2024-11-21 21:35:31 +01:00
Norbert Rittel
c81edfea44 Fix alarm_control_panel translation string (#131157) 2024-11-21 21:35:01 +01:00
Norbert Rittel
d4bc200cef Improve description of Random helper by removing repetition (#131092) 2024-11-21 21:34:31 +01:00
Norbert Rittel
ed3140da76 Input number: Make description of decrement option consistent (#131089) 2024-11-21 21:33:30 +01:00
Norbert Rittel
a67c5e1fba Change "Add …" to "Create …" for consistency (#131197) 2024-11-21 21:27:54 +01:00
Norbert Rittel
f64c81b7f8 Change "Add …" to "Create …" for consistency (#131199) 2024-11-21 21:27:26 +01:00
Norbert Rittel
96849f2e16 Change "Add …" to "Create …" for consistency (#131198) 2024-11-21 21:26:50 +01:00
Josef Zweck
de9f9f32c7 Add translation for ConfigEntryAuthFailed to lamarzocco (#131145) 2024-11-21 21:25:23 +01:00
epenet
2a6e08caf9 Add missing unique_id check on blink user flows (#131209) 2024-11-21 21:23:05 +01:00
Arie Catsman
d6170eb071 Bump pyenphase to 1.23.0 (#131205) 2024-11-21 21:16:54 +01:00
rappenze
c6c7e86548 Fix fibaro cover state is not always correct (#131206) 2024-11-21 21:16:37 +01:00
Joost Lekkerkerker
7e752c051f Add check for quality_scale.yaml (#131096) 2024-11-21 21:02:01 +01:00
starkillerOG
f9bd4ccc3f Reolink log fast poll errors once (#131203) 2024-11-21 20:51:38 +01:00
Davin Kevin
f42386de44 Prevent endless loop in recorder when using a filter and there are no more states to purge (#126149)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-21 20:50:49 +01:00
puddly
50fdbe9b3b Generic ZHA Zeroconf discovery (#126294) 2024-11-21 20:50:21 +01:00
G Johansson
e9286971aa Add remaining snapshot testing to Sensibo (#131105) 2024-11-21 20:49:59 +01:00
Josef Zweck
3cfd958dc2 Allow mL/s as UnitOfVolumeFlowRate (#130771) 2024-11-21 20:47:24 +01:00
G Johansson
797eb606fe Fix correct handling in ManualTriggerEntity (#130135) 2024-11-21 20:46:03 +01:00
J. Diego Rodríguez Royo
1ab2bbe3b0 Don't save Home Assistant device ID at Home Connect device (#131013) 2024-11-21 20:45:43 +01:00
G Johansson
3c96c559dc Remove config entry unique id from trafikverket_train (#130989) 2024-11-21 20:42:36 +01:00
Álvaro Fernández Rojas
1020d75b94 Bump AEMET-OpenData to v0.6.2 (#131178) 2024-11-21 20:21:00 +01:00
Jesse Hills
ba042e2325 Fix typo in ESPHome repair text (#131200) 2024-11-21 19:42:08 +01:00
starkillerOG
1195a79479 Add PARALLEL_UPDATES = 0 to Reolink platforms (#131165) 2024-11-21 19:21:57 +01:00
Erik Montnemery
5fa4739e2d Bump securetar to 2024.11.0 (#131172) 2024-11-21 19:15:37 +01:00
Norbert Rittel
bd3352c1f0 Fix two strings for the Generic hygrostat UI (#131185)
* Fix two strings for the Generic hygrostat UI

The 'min_cycle_duration' key shown when setting up a Generic hygrostat contains the words "in the humidifier option" which makes no  sense anymore in the UI context.

So these words can be dropped, making this explanation exactly identical to the same key in the Generic thermostat.

In addition there is an "s" missing in the main description here.

* Replace "be" with "remain" and use "toggle"

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Fix the title string to use "Create" instead of "Add"

Anything the user creates should use "Create …", not "Add …".

The description we're addressing in the fix already has this correct. This commit adds the fix for the title.

Makes it consistent with the majority of Helpers, rest needs to be addressed in separate PRs.

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-11-21 18:53:23 +01:00
Marcel van der Veldt
9bbf9be95f Add optional flag to bypass the media proxy in esphome media players (#131191)
* Add optional flag to play_media to bypass media proxy

* use constants

* add test
2024-11-21 11:47:22 -05:00
Matthias Alphart
bd0a2b6f68 Add unit translations for KNX integration (#131176)
* Add unit translations for KNX integration

* re-use values
2024-11-21 17:42:12 +01:00
J. Nick Koston
fd392eea31 Bump aiohttp to 3.11.7 (#131188) 2024-11-21 17:36:36 +01:00
J. Nick Koston
3550d5838d Bump yarl to 1.18.0 (#131183) 2024-11-21 17:35:42 +01:00
Jan Bouwhuis
9444f7aea2 Set PARALLEL_UPDATES = 0 for MQTT components as no semaphore is needed (#131174) 2024-11-21 17:30:25 +01:00
Jan Bouwhuis
3474642afe Set up MQTT websocket_api and dump, publish actions from async_setup (#131170)
* Set up MQTT websocket_api and dump, publish actions from `async_setup`

* Follow up comments
2024-11-21 17:29:59 +01:00
karwosts
3d499ab849 Dont count unrecorded time for history_stats (#126271) 2024-11-21 10:24:06 -06:00
Erik Montnemery
23acc31616 Improve comments in ConfigEntriesFlowManager.async_finish_flow (#131175) 2024-11-21 16:33:43 +01:00
Michael Arthur
d8549409f7 Area units and conversion between metric and US (#123563)
* area conversions

* start work on tests

* add number device class

* update unit conversions to utilise distance constants

* add area unit

* update test unit system

* update device condition and trigger

* update statistic unit converters

* further tests work WIP

* update test unit system

* add missing string translations

* fix websocket tests

* add deprecated notice

* add more missing strings and missing initialisation of unit system

* adjust icon and remove strings from scrape and random

* Fix acre to meters conversion

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Tidy up valid units

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* fix ordering of area

* update order alphabetically

* fix broken test

* update test_init

* Update homeassistant/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* remove deprecated unit and fix alphabetical order

* change deprecation and add tests, change to millimeter conversion for inches

* fix order

* re-order defs alphabetically

* add measurement as well

* update icons

* fix up Deprecation of area square meters

* Update core integrations to UnitOfArea

* update test recorder tests

* unit system tests in alphabetical

* update snapshot

* rebuild

* revert alphabetization of functions

* other revert of alphabetical order

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-21 16:10:44 +01:00
epenet
9add3a6c9b Add ability to pass integration domain to report_usage (#130705)
* Add ability to pass integration domain to report_usage

* Adjust

* Fix

* Add tests

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Finish tests

* Docstring

* Replace logger warning with report_usage

* Improve

* docstring

* Improve tests

* Adjust docstring for exclude_integrations

* Fix behavior and improve tests
2024-11-21 16:01:36 +01:00
Charles Garwood
42dcfae6e7 Add quality_scale.yaml for Fully Kiosk Browser integration (#131071)
* Add quality_scale.yaml for Fully Kiosk Browser integration

* Forgot to fill out a couple rules

* missed another...

* Rebase and update a couple rules
2024-11-21 09:45:32 -05:00
epenet
c267170616 Use reauth helpers in renault (#131147) 2024-11-21 15:39:35 +01:00
Steven B.
1018a77c91 Update websockets package constraint to 13.1 (#131039) 2024-11-21 15:26:24 +01:00
Charles Garwood
fc987ee794 Use runtime_data for Fully Kiosk Browser integration (#131101) 2024-11-21 15:07:39 +01:00
Norbert Rittel
3ed462f7a7 Improve explanation of 'device_tracker.see' action (#131095) 2024-11-21 13:39:06 +01:00
Norbert Rittel
1e1759c030 Fix cast translation string (#131156) 2024-11-21 13:38:34 +01:00
LG-ThinQ-Integration
afe986b39c Bump thinqconnect to 1.0.1 (#131132)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-21 11:12:36 +01:00
Josef Zweck
f1a4baa1b5 Add diagnostics to acaia (#131153) 2024-11-21 10:55:21 +01:00
Norbert Rittel
deb82cf072 Fix typo in name of "Alarm arm home instant" action (#131151) 2024-11-21 10:26:40 +01:00
puddly
51e592f450 Add informative header to ZHA update entity release notes (#130099) 2024-11-21 10:17:44 +01:00
Norbert Rittel
27695095dd Fix wrong "(s)" that was leftover changing from "service(s)" to "actions" (#131141)
* Fix wrong "(s)" that was leftover when changing from "service(s)" to "actions"

* Update homeassistant/components/notify/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-21 09:41:52 +01:00
bobpaul
092d97a0b0 Bump pylutron-caseta to 0.22.0 (#131129) 2024-11-21 08:53:47 +01:00
Raphael Hehl
08f9d5bdfd Add codeowner for unifiprotect (#131136) 2024-11-21 08:53:27 +01:00
G Johansson
e7fedef651 Add created sensor in filesize (#131108) 2024-11-21 08:31:50 +01:00
DeerMaximum
5529cfda09 Nina: Add URL for more information to warning (#131070) 2024-11-21 08:15:27 +01:00
dependabot[bot]
ac56a70948 Bump github/codeql-action from 3.27.4 to 3.27.5 (#131134)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 08:07:23 +01:00
dependabot[bot]
1aa95c746e Bump codecov/codecov-action from 5.0.5 to 5.0.7 (#131135)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 08:07:04 +01:00
Michael
98ec0390bc Add current quality scale status to AVM FRITZ!Box Tools (#131102)
* add current quality_scale .yaml

* Update homeassistant/components/fritz/quality_scale.yaml

* Update homeassistant/components/fritz/quality_scale.yaml

* Update homeassistant/components/fritz/quality_scale.yaml
2024-11-21 04:33:38 +01:00
starkillerOG
b8e0d92848 Add Reolink push for battery info and sleep status (#131103)
Add push for battery info and sleep status
2024-11-21 01:48:14 +01:00
Norbert Rittel
782cad97af Replace "service" with "action" in zha:reconfigure_device (#131111)
Replace "service" with "action" in one description

As services are now actions in HA this needs to be fixed.
2024-11-21 01:47:26 +01:00
Raphael Hehl
bab9ef7ada Set UniFi Protect icr_lux min to 0 allowing "below 1 lux" (#131115)
unifiprotect set icr_lux min 0 to allow setting "below 1 lux"

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-11-20 18:11:41 -06:00
Raphael Hehl
d03fc71bfb Bump uiprotect to 6.6.1 (#131107) 2024-11-21 00:19:17 +01:00
G Johansson
926689ee4f Add startup exception handling to nordpool (#131104) 2024-11-20 22:54:51 +01:00
J. Diego Rodríguez Royo
80e8b8d61b Add diagnostics per device to Home Connect (#131010)
* Add diagnostics per device to Home Connect

* Include programs at device diagnostics

* Applied suggestions from epenet

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Applied more suggestions from epenet

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Test naming consistency

Co-authored-by: abmantis <amfcalt@gmail.com>

* Add return type to `_generate_entry_diagnostics`

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: abmantis <amfcalt@gmail.com>
2024-11-20 22:01:57 +01:00
epenet
deeb55ac50 Add ability to set HA breaking version in report_usage (#130858)
* Add ability to set breaking version in report_usage

* Adjust tests

* Adjust test

* Adjust tests

* Rename breaks_in_version => breaks_in_ha_version
2024-11-20 21:41:57 +01:00
epenet
5539228ba2 Split async_get_issue_tracker loader function (#130856) 2024-11-20 21:41:38 +01:00
Joost Lekkerkerker
ae0cd431a0 Implement new Integration Quality Scale (#130518) 2024-11-20 21:39:24 +01:00
Joost Lekkerkerker
e6225e3dcc Drop current quality scale (#131072) 2024-11-20 20:54:15 +01:00
Jan-Philipp Benecke
74f24e86c1 Remove import from config flow in SABnzbd (#131078) 2024-11-20 20:51:43 +01:00
Franck Nijhof
8d6fe8b546 Record current IQS state for Twente Milieu (#131063) 2024-11-20 20:25:19 +01:00
Jan-Philipp Benecke
f29c6963dc Bump codecov/codecov-action to v5.0.5 (#131055) 2024-11-20 20:22:04 +01:00
Jan-Philipp Benecke
e389ef9920 Use runtime_data in sabnzbd (#131069) 2024-11-20 20:20:12 +01:00
Klaas Schoute
75e15ec6ea Use ConfigEntry runtime_data in Pure Energie (#131061) 2024-11-20 20:01:32 +01:00
Jan-Philipp Benecke
06db5a55f8 Add number platform to sabnzbd and deprecate custom action (#131029)
* Add number platform to sabnzbd

* Copy & waste error

* Move to icon translations

* Update snapshot
2024-11-20 19:59:10 +01:00
Jan-Philipp Benecke
309dd5ed1b Remove old entity unique id migration from sabnzbd (#131064) 2024-11-20 19:55:54 +01:00
DeerMaximum
b188f8284c Bump pynina to 0.3.4 (#131059) 2024-11-20 19:55:17 +01:00
Michael Hansen
60774575c6 Set HA time zone with freeze_time in agent test (#131058)
* Patch dt_util instead of using freeze_time

* Use freeze_time but set HA timezone
2024-11-20 19:29:36 +01:00
Abílio Costa
4776865584 Add unit translations for github integration (#130538)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-20 18:43:17 +01:00
Álvaro Fernández Rojas
3542bca13d Update aioairzone to v0.9.7 (#131033) 2024-11-20 18:41:14 +01:00
jb101010-2
8e2b78178d Bump pysuezV2 to 1.3.2 (#131037) 2024-11-20 18:40:07 +01:00
Klaas Schoute
a0ee8eac37 Use ConfigEntry runtime_data in P1 Monitor (#131048) 2024-11-20 18:38:24 +01:00
Franck Nijhof
74f68316c8 Ensure a comment is required when making an exempt for the IQS (#131051) 2024-11-20 18:37:07 +01:00
Jan-Philipp Benecke
771952d292 Remove deprecated yaml import from sabnzbd (#131052) 2024-11-20 18:36:20 +01:00
Sergio Conde Gómez
94bf77606b Unscape HTML Entities from RSS feeds (#130915)
* Unscape HTML Entities from RSS feeds

* Improve tests
2024-11-20 18:21:16 +01:00
Klaas Schoute
e7a2377c7e Update forecast-solar to 4.0.0 (#131044) 2024-11-20 17:54:09 +01:00
Joost Lekkerkerker
514af896f3 Change to rule slugs (#131043) 2024-11-20 17:43:02 +01:00
Paulus Schoutsen
c56f377cd5 Use now() from dt_util for Date and Time intents (#131049)
Use now() from dt_util
2024-11-20 10:27:57 -06:00
Joost Lekkerkerker
2cd05e224a Add quality_scale.yaml to track IQS progress (#130953) 2024-11-20 13:49:02 +01:00
Manu
5d804d3172 Remove code-owner from Habitica (#131024) 2024-11-20 12:54:11 +01:00
Petar Petrov
061c19fbf8 Add Z-Wave installer_mode yaml option (#129888)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-20 12:04:29 +01:00
Myles Eftos
621c66a214 Update Amberelectric to use amberelectric version 2.0.12 (#125701)
* Add price descriptor attribute to price sensors

* Adding price descriptor sensor

* Use correct number of sensors in spike sensor tests

* Add tests for normalize_descriptor

* Removing debug message

* Removing price_descriptor attribute from the current sensor

* Refactoring everything to use the new API

* Use SiteStatus object, fix some typnig issues

* fixing test

* Adding predicted price to attributes

* Fix advanced price in forecast

* Testing advanced forecasts

* WIP: Adding advanced forecast sensor. need to add attributes, and tests

* Add advanced price attributes

* Adding forecasts to the advanced price sensor

* Appending forecasts corectly

* Appending forecasts correctly. Again

* Removing sensor for the moment. Will do in another PR

* Fix failing test that had the wrong sign

* Adding test to improve coverage on config_flow test

* Bumping amberelectric dependency to version 2

* Remove advanced code from helpers

* Use f-strings

* Bumping to version 2.0.1

* Bumping amberelectric to version 2.0.2

* Bumping amberelectric to version 2.0.2

* Bumping verion amberelectric.py to 2.0.3. Using correct enums

* Bumping amberelectric.py version to 2.0.4

* Bump version to 2.0.5

* Fix formatting

* fixing mocks to include interval_length

* Bumping to 2.0.6

* Bumping to 2.0.7

* Bumping to 2.0.8

* Bumping to 2.0.9

* Bumping version 2.0.12
2024-11-20 11:27:24 +01:00
Jan-Philipp Benecke
2cfacd8bc5 Add button platform to sabnzbd and deprecate custom actions (#130999) 2024-11-20 09:30:06 +01:00
J. Diego Rodríguez Royo
85610901e0 Add programs to Home Connect diagnostics (#131011) 2024-11-20 09:09:50 +01:00
Raphael Hehl
139f3e294a UniFi Protect small textual fix in action description (#131009) 2024-11-20 09:06:31 +01:00
dependabot[bot]
3d495fe690 Bump codecov/codecov-action from 5.0.2 to 5.0.4 (#131008)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 09:02:57 +01:00
Bouwe Westerdijk
a857041570 Bump plugwise to v1.5.2 (#131012) 2024-11-20 08:44:34 +01:00
Jan-Philipp Benecke
2a1cdf6ff2 Strip whitespaces from host in ping config flow (#130970) 2024-11-19 21:57:57 -05:00
Manu
5daf95ec8f Add calendars for to-do and daily reminders to Habitica integration (#130789)
* Add calendars for to-do and daily reminders

* revert order

* changes
2024-11-19 18:37:23 -08:00
Manu
397a299f15 Add µV as UnitOfElectricPotential (#130838) 2024-11-19 22:38:22 +01:00
Norbert Rittel
85f3ff94cc Add more UI user-friendly description to six Supervisor actions (#130971) 2024-11-19 22:31:57 +01:00
dotvav
cdf0e1363a Bump pypalazzetti to 0.1.13 (#130956) 2024-11-19 22:29:49 +01:00
Franck Nijhof
07051d0d0e Clean up old migration in Twente Milieu (#130998) 2024-11-19 22:28:59 +01:00
G Johansson
fa28936995 Use snapshot in Sensibo tests (#130994) 2024-11-19 22:21:12 +01:00
epenet
ea989f7ca1 Simplify FanEntity percentage and speed_count shorthand attributes (#130935) 2024-11-19 22:17:29 +01:00
Federico D'Amico
c1f03f34b2 Bump microBeesPy to 0.3.3 (#130942) 2024-11-19 22:12:00 +01:00
J. Nick Koston
7fda534d91 Bump aiohttp to 3.11.6 (#130993) 2024-11-19 15:11:00 -06:00
Jan-Philipp Benecke
25f922d87b Add base entity to sabnzbd (#130995) 2024-11-19 22:08:16 +01:00
Petar Petrov
c68cadad7a Improve precision of HSV color conversion (#130880) 2024-11-19 22:06:57 +01:00
Bouwe Westerdijk
6f0139389f Bump plugwise to v1.5.1 (#130966) 2024-11-19 22:04:00 +01:00
Jan-Philipp Benecke
81fc83398b Use HassKey in ping (#130973) 2024-11-19 22:02:36 +01:00
Jan-Philipp Benecke
b9ff8ebe3a Pass sabnzdb config entry explicitly to coordinator (#130990)
Pass config entry explicitly to coordinator
2024-11-19 21:23:22 +01:00
Jan-Philipp Benecke
e53d97db6f Add sensor test to sabnzbd (#130988) 2024-11-19 21:17:38 +01:00
G Johansson
3cb8dedacc Bump holidays to 0.61 (#130984) 2024-11-19 20:53:11 +01:00
Steve Venzerul
c4568e6632 Add missing translations and icons for ZHA Sinope devices (#130826)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-11-19 20:25:12 +01:00
G Johansson
0199418ba9 Add missing catholic category in workday (#130983) 2024-11-19 20:19:53 +01:00
G Johansson
c5622df386 Remove deprecated yaml import from dynalite (#130982) 2024-11-19 20:19:30 +01:00
G Johansson
71e8c79cad Remove deprecated not used constants in switchbot (#130980) 2024-11-19 20:19:09 +01:00
Renat Sibgatulin
4adf1992e1 Bump aioairq to 0.4.3 (#130963) 2024-11-19 20:13:33 +01:00
J. Nick Koston
8b4983087b Bump PyJWT to 2.10.0 (#130907)
* Bump PyJWT to 2.10.0

changelog: https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0

* handle new keys

* add test to verify all default options are checked for merge
2024-11-19 19:55:55 +01:00
J. Nick Koston
3a8a8861d2 Bump aiohttp to 3.11.5 (#130964) 2024-11-19 12:03:13 -06:00
Marco Glauser
42bba24247 Add Hejhome Fingerbot (Tuya whitelabel) configuration (#130732) 2024-11-19 17:30:56 +01:00
Norbert Rittel
48703db78a Update strings.json to replace wrong "todo" with "lawn mower" (#130962) 2024-11-19 16:51:48 +01:00
Norbert Rittel
b1260dc4ec Update strings.json to fix typo in "Husqavarna" (#130954) 2024-11-19 15:01:22 +00:00
epenet
7dc2102545 Simplify FanEntity preset_mode shorthand attributes (#130930) 2024-11-19 09:11:47 +01:00
J. Nick Koston
b6d79415fe Bump aiohttp to 3.11.4 (#130924) 2024-11-19 01:36:44 -06:00
Daniel Hjelseth Høyer
f9a0cc5c31 Add new sensors to Mill (#130896)
* Mill sensors

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

* Update homeassistant/components/mill/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/mill/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update const.py

* Update sensor.py

---------

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-19 08:30:41 +01:00
Thomas55555
4836f4af2b Bump pre-commit-hooks to v5.0.0 (#130888) 2024-11-19 07:47:38 +01:00
Allen Porter
1941850685 Modernize Fitbit entity names (#130828)
* Modernize fitbit entity names

* Use placeholder with tracker device name

* Make names sentence case

* Apply name simplifications from PR feedback

* Remove translations that are duplicate of device class

* Update homeassistant/components/fitbit/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Add a test for tracker distance and update snapshots

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-19 07:47:15 +01:00
Kevin Stillhammer
c7f0745f48 Catch googlemaps exceptions in google_travel_time (#130903)
Catch googlemaps exceptions
2024-11-18 21:54:09 -05:00
Robert Resch
999f3e0d77 Use RTCIceCandidateInit instead of RTCIceCandidate (#130901) 2024-11-18 21:41:50 -05:00
J. Nick Koston
00250843c6 Bump PySwitchbot to 0.53.2 (#130906)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.53.0...0.53.2
2024-11-18 16:49:19 -05:00
YogevBokobza
2cf3f2b243 Bump aioswitcher to 5.0.0 (#130874)
* Bump aioswitcher to 5.0.0

* fix linting
2024-11-18 21:42:58 +02:00
Robert Resch
e48857987b Use camera_capabilities instead frontend_stream_type (#130604) 2024-11-18 20:26:45 +01:00
Charles Yuan
069e6c4554 Fixed Small Inaccuracy in Description String for myUplink (#130900) 2024-11-18 20:23:32 +01:00
Steven B.
5288775941 Bump webrtc-models to 0.3.0 (#130889) 2024-11-18 19:50:31 +01:00
Michael Hansen
fb83d30d9d Bump hassil to 2.0.2 (#130891) 2024-11-18 13:48:46 -05:00
starkillerOG
a379535127 Reolink fix dev/entity id migration (#130836) 2024-11-18 18:59:17 +01:00
J. Nick Koston
039df1070e Bump bluetooth-adapters to 0.20.2 (#130877) 2024-11-18 18:56:33 +01:00
Raphael Hehl
efa86293aa Bump uiprotect to 6.6.0 (#130872) 2024-11-18 16:09:30 +01:00
Josef Zweck
003ae881bf Add binary_sensor platform to acaia (#130676)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-18 15:26:53 +01:00
greyeee
eb06dc214f Bump PySwitchbot to 0.53.0 (#130869)
Upgrade PySwitchbot to 0.53.0
2024-11-18 15:02:23 +01:00
Josef Zweck
4c816f54bf Add sensor platform to acaia (#130614)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-18 14:52:49 +01:00
epenet
1ac0b006b2 Pass config_entry explicitly in rachio (#130865) 2024-11-18 14:19:40 +01:00
Jan Bouwhuis
db5cc4fcd4 Fix mqtt subscription signature (#130866) 2024-11-18 14:19:11 +01:00
Maciej Bieniek
40fb28a94d Bump accuweather to 4.0.0 (#130868) 2024-11-18 14:12:11 +01:00
MahrWe
44a93a0076 Linkplay additional models (#130262)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-18 13:52:06 +01:00
Jon Seager
370ea36797 Bump pytouchlinesl to 0.1.9 (#130867) 2024-11-18 13:30:08 +01:00
Johnny Willemsen
a6094c4cce Add diagnostics to HomeConnect (#130500)
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-18 13:01:07 +01:00
Glenn Waters
75199a901f UPB integration: Change unique ID from int to string. (#130832) 2024-11-18 10:56:47 +01:00
Manu
e9eaeedf2b Add entity picture for gems to Habitica integration (#130827) 2024-11-18 10:52:23 +01:00
Matthias Alphart
2f1c1d66cb Support KNX lights with multiple color modes (#130842) 2024-11-18 10:22:10 +01:00
Brunno Vanelli
c154ac26eb Bump pykoplenti to 1.3.0 (#130719) 2024-11-18 09:48:22 +01:00
hahn-th
caaea1d45b Bump homematicip to 1.1.3 (#130824) 2024-11-18 09:11:51 +01:00
Jack Boswell
9c3ec3319b Bump starlink-grpc-core to 1.2.0 (#130488) 2024-11-18 09:02:11 +01:00
Shay Levy
f94e80d4c1 Fix missing Shelly MAC address checks (#130833)
* Fix missing Shelly MAC address checks

* Make new error for mac_address_mismatch

* Use reference in translation
2024-11-18 01:34:33 +02:00
G Johansson
6f947d2612 Use default device sensors also for AirQ devices in Sensibo (#130841) 2024-11-17 23:28:54 +01:00
Santobert
43235713c7 Remove myself from codeowners (#130805) 2024-11-17 14:29:27 -06:00
Raphael Hehl
dcadd2d37c Bump uiprotect to 6.5.0 (#130834) 2024-11-17 14:27:29 -06:00
J. Nick Koston
23bf4154f5 Bump yarl to 1.17.2 (#130830)
changelog: https://github.com/aio-libs/yarl/compare/v1.17.1...v1.17.2
2024-11-17 19:41:48 +01:00
dotvav
db3d385447 Bump pypalazzetti to 0.1.12 (#130800) 2024-11-17 12:13:24 +01:00
Allen Porter
445690588c Update Google calendar OAuth instructions (#130775)
* Update google calendar oauth instructions

* Replace photos with calendar
2024-11-16 23:10:22 -05:00
Allen Porter
96299b16e2 Remove code for old fitbit config import (#130783)
* Remove code for old fitbit config import

* Remove translations related to issues
2024-11-16 23:09:59 -05:00
Matthias Alphart
f58b5418ea Update knx-frontend to 2024.11.16.205004 (#130786) 2024-11-16 23:07:16 -05:00
Allen Porter
b64f33e1d7 Remove Nest code related to Works with Nest API removal (#130785) 2024-11-16 23:07:00 -05:00
Michael
d8dd6d6abe Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices (#130788)
disable writing progress stats to stderr in ffmpeg command
2024-11-17 01:58:25 +01:00
Patrick
fece83d882 Fix and bump apsystems-ez1 to 2.4.0 (#130740) 2024-11-16 18:49:30 -05:00
David Knowles
9711816542 Increase Hydrawise polling time to 5 minutes (#130759) 2024-11-16 11:42:10 -05:00
Pete Sage
acfc4711cd Fix Sonos get_queue action may fail if track metadata is missing (#130756)
initial commit
2024-11-16 11:40:49 -05:00
Jan Bouwhuis
c219b512eb Fix file uploads in MQTT config flow not processed in executor (#130746)
Process file uploads in MQTT config flow in executor
2024-11-16 11:40:01 -05:00
Franck Nijhof
0ada59a4fe Update twentemilieu to 2.1.0 (#130752) 2024-11-16 15:06:41 +01:00
TheJulianJES
a047abd510 Fix and bump codecov-action to 5.0.2 (#130729) 2024-11-16 08:02:37 +01:00
Sid
9b989ff3d5 Bump ruff to 0.7.4 (#130716) 2024-11-15 22:57:29 +01:00
Franck Nijhof
847afabed1 2024.11.2 (#130713) 2024-11-15 20:16:10 +01:00
Matthias Alphart
57212bbf57 KNX: Cache last telegram for each group address (#130566) 2024-11-15 20:06:57 +01:00
YogevBokobza
6279979d50 Switcher add current current temperature sensor (#130653)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-15 20:03:20 +01:00
Franck Nijhof
ac270e19be Bump version to 2024.11.2 2024-11-15 19:35:42 +01:00
Matt Zimmerman
ca40b96a89 Bump python-smarttub to 0.0.38 (#130679) 2024-11-15 19:35:14 +01:00
epenet
045e285bfe Fix missing translations in onewire (#130673) 2024-11-15 19:35:11 +01:00
epenet
8d6f2e78f5 Fix missing translations in generic (#130672) 2024-11-15 19:35:07 +01:00
epenet
9e4d26137e Fix missing translations in madvr (#130656) 2024-11-15 19:35:04 +01:00
epenet
f74bfdc974 Fix missing translations in toon (#130655) 2024-11-15 19:35:00 +01:00
epenet
1cabcdf257 Fix missing translations in tradfri (#130654)
* Fix missing translations in tradfri

* Simplify
2024-11-15 19:34:57 +01:00
epenet
c6931d656e Fix missing translations in utility_meter (#130652) 2024-11-15 19:34:54 +01:00
epenet
942830505a Fix missing translations in vilfo (#130650) 2024-11-15 19:34:51 +01:00
Jan-Philipp Benecke
880f28e28a Remove dumping config entry to log in setup of roborock (#130648) 2024-11-15 19:34:48 +01:00
Johan Nenzén
f406ffa75a Bump pyplaato to 0.0.19 (#130641)
Bumps version of pyplaato to 0.0.19
2024-11-15 19:34:44 +01:00
epenet
0d695c843f Add missing translation string to philips_js (#130637) 2024-11-15 19:34:41 +01:00
epenet
5f09eb97e1 Add missing translation string to lg_netcast (#130635) 2024-11-15 19:34:38 +01:00
epenet
6d561ca373 Add missing translation string to hvv_departures (#130634) 2024-11-15 19:34:34 +01:00
Alistair Galbraith
663ebe199d Fix scene loading issue (#130627) 2024-11-15 19:34:31 +01:00
Keilin Bickar
8b9c4db2b3 Bump sense-energy to 0.13.4 (#130625) 2024-11-15 19:34:27 +01:00
epenet
e478b9b599 Add missing translation string to smarty (#130624) 2024-11-15 19:34:23 +01:00
Robert Resch
5acdf58976 Fix hassfest by adding go2rtc reqs (#130602) 2024-11-15 19:33:09 +01:00
starkillerOG
6d861e7f47 Bump reolink-aio to 0.11.1 (#130600) 2024-11-15 19:32:30 +01:00
Johan Nenzén
281a8eda31 Fixes webhook schema for different temp and volume units (#130578) 2024-11-15 19:32:26 +01:00
Simone Chemelli
1bc005d0d4 Update uptime deviation for Vodafone Station (#130571)
Update sensor.py
2024-11-15 19:32:23 +01:00
puddly
95d60987ab Bump ZHA dependencies (#130563) 2024-11-15 19:32:19 +01:00
J. Nick Koston
53e38454b2 Fix non-thread-safe operation in powerview number (#130557) 2024-11-15 19:32:16 +01:00
Brig Lamoreaux
876b86cd3d fix translation in srp_energy (#130540) 2024-11-15 19:32:13 +01:00
Robert Resch
cb104935ea Add go2rtc recommended version (#130508) 2024-11-15 19:32:10 +01:00
Joost Lekkerkerker
4c24e26926 Bump aiowithings to 3.1.3 (#130504) 2024-11-15 19:32:06 +01:00
Robert Resch
4b13d8bc47 Bump go2rtc-client to 0.1.1 (#130498) 2024-11-15 19:30:50 +01:00
Tony
433e3718f8 Bump aioruckus to 0.42 (#130487) 2024-11-15 19:28:38 +01:00
Sheldon Ip
1e3c2c0631 Fix translations in subaru (#130486) 2024-11-15 19:28:34 +01:00
starkillerOG
3a2f996c13 Bump reolink_aio to 0.11.0 (#130481) 2024-11-15 19:28:30 +01:00
G Johansson
e4cb3c67d9 Fix legacy _attr_state handling in AlarmControlPanel (#130479) 2024-11-15 19:28:27 +01:00
puddly
8a22433168 Ensure ZHA setup works with container installs (#130470) 2024-11-15 19:28:23 +01:00
Joost Lekkerkerker
0976476d16 Bump aiowithings to 3.1.2 (#130469) 2024-11-15 19:28:19 +01:00
Kelvin Dekker
28f46a0f88 Fix typo in file strings (#130465) 2024-11-15 19:28:16 +01:00
G Johansson
8b173656e7 Fix translation in statistics (#130455)
* Fix translation in statistics

* Update homeassistant/components/statistics/strings.json
2024-11-15 19:28:12 +01:00
Joost Lekkerkerker
08f6f2759b Add title to water heater component (#130446) 2024-11-15 19:28:09 +01:00
Steven B.
f4798d27c7 Do not trigger events for updated ring events (#130430) 2024-11-15 19:28:05 +01:00
Steven B.
103a84b4bd Bump ring-doorbell to 0.9.12 (#130419) 2024-11-15 19:28:01 +01:00
Steven B.
4d3502e061 Bump ring library ring-doorbell to 0.9.9 (#129966) 2024-11-15 19:26:59 +01:00
J. Nick Koston
79329e16cf Fix missing title placeholders in powerwall reauth (#130389) 2024-11-15 19:24:37 +01:00
Daniel Hjelseth Høyer
929164251a Bump Tibber 0.30.8 (#130388) 2024-11-15 19:24:34 +01:00
Joost Lekkerkerker
300724443a Bump spotifyaio to 0.8.8 (#130372) 2024-11-15 19:24:30 +01:00
Robert Resch
70ef3a355c Go2rtc bump and set ffmpeg logs to debug (#130371) 2024-11-15 19:24:26 +01:00
Jan Bouwhuis
83162c1461 Fix typo in go2rtc (#130165)
Fix typo in original
2024-11-15 19:24:20 +01:00
Jan Bouwhuis
a12c76dbdd Use f-strings in go2rtc code and test and do not use abbreviation (#130158) 2024-11-15 19:22:09 +01:00
Lennard Beers
5b0d8eb75e Add sensor platform to eq3btsmart (#130438) 2024-11-15 19:03:37 +01:00
Noah Husby
9292b6da3d Disable brightness from devices with no display in Cambridge Audio (#130369) 2024-11-15 19:03:04 +01:00
Simon Lamon
8d05183de2 Add Spotify and Tidal to playingmode mapping (#130351) 2024-11-15 19:03:01 +01:00
Simon Lamon
a86ff41bbc Add seek support to LinkPlay (#130349) 2024-11-15 19:02:58 +01:00
Simon Lamon
ce92f3de44 Bump python-linkplay to 0.0.20 (#130348) 2024-11-15 19:02:54 +01:00
LG-ThinQ-Integration
465d8b2ee2 Fix fan's warning TURN_ON, TURN_OFF (#130327)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-15 19:02:51 +01:00
G Johansson
218eedfd93 Fix Homekit error handling alarm state unknown or unavailable (#130311) 2024-11-15 19:02:47 +01:00
Simone Chemelli
afec354b84 Avoid Shelly data update during shutdown (#130301) 2024-11-15 19:02:44 +01:00
Allen Porter
282f92e5f3 Ignore WebRTC candidates for nest cameras (#130294) 2024-11-15 19:02:41 +01:00
David Knowles
f6cd74e2d7 Make Hydrawise poll non-critical data less frequently (#130289) 2024-11-15 19:02:37 +01:00
Åke Strandberg
f821ddeab8 Add more f-series models to myuplink (#130283) 2024-11-15 19:02:34 +01:00
Allen Porter
d408b7ac62 Improve nest camera stream expiration to be defensive against errors (#130265) 2024-11-15 19:02:31 +01:00
Michael
83baa1a788 Fix translation key for done response in conversation (#130247) 2024-11-15 19:02:27 +01:00
Max Shcherbina
07a8cf14cd Update generic thermostat strings for clarity and accuracy (#130243) 2024-11-15 19:02:24 +01:00
Olivier Corradi
9f447af468 Rename "CO2 Signal" display name to Electricity Maps for consistency (#130242)
* Update strings.json for Electricity Maps

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Fix test
2024-11-15 19:02:20 +01:00
Allen Porter
c399d8f571 Bump google-nest-sdm to 6.1.5 (#130229) 2024-11-15 19:02:17 +01:00
jjlawren
4ea9574229 Bump SoCo to 0.30.6 (#130223) 2024-11-15 19:02:14 +01:00
Daniel Hjelseth Høyer
592b8ed0a0 Bump pyTibber (#130216) 2024-11-15 19:02:10 +01:00
Simone Chemelli
6b91c0810a Fix uptime sensor for Vodafone Station (#130215) 2024-11-15 19:02:06 +01:00
Max Shcherbina
9579e4a9c1 Fix wording in Google Calendar create_event strings for consistency (#130183) 2024-11-15 19:00:06 +01:00
IceBotYT
7f4f90f06d Bump nice-go to 0.3.10 (#130173)
Bump Nice G.O. to 0.3.10
2024-11-15 19:00:02 +01:00
Sheldon Ip
701a901fe4 Fix translations in ollama (#130164) 2024-11-15 18:59:59 +01:00
Simon Lamon
f914642e31 No longer thrown an error when device is offline in linkplay (#130161) 2024-11-15 18:59:55 +01:00
Simon Lamon
32dc9fc238 Allow dynamic max preset in linkplay play preset (#130160) 2024-11-15 18:59:52 +01:00
Simon Lamon
b27e0f9fe7 Bump python-linkplay to v0.0.18 (#130159) 2024-11-15 18:59:47 +01:00
Thomas55555
f040060b3c Fix RecursionError in Husqvarna Automower coordinator (#123085)
* reach maximum recursion depth exceeded in tests

* second background task

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* test

* modify test

* tests

* use correct exception

* reset mock

* use recursion_limit

* remove unneeded ticks

* test TimeoutException

* set lower recursionlimit

* remove not that important comment and move the other

* test that we connect and listen successfully

* Simulate hass shutting down

* skip testing against the recursion limit

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* mock

* Remove comment

* Revert "mock"

This reverts commit e8ddaea3d7.

* Move patch to decorator

* Make execution of patched methods predictable

* Parametrize test, make mocked start_listening block

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-11-15 18:47:59 +01:00
Manu
e26142949d Add action for using transformation items to Habitica (#129606) 2024-11-15 17:38:30 +01:00
G Johansson
50cc6b4e01 Use shorthand attribute for extra state attributes in statistics (#129353) 2024-11-15 17:37:57 +01:00
Jesse Hills
a1f5e4f37a Do not create ESPHome Dashboard update entity if no configuration found (#129751) 2024-11-15 17:22:06 +01:00
dnikles
92aa2f700d Add two WiiM models to linkplay (#130707) 2024-11-15 17:08:10 +01:00
Tristan Bastian
ab5ddb8edf Allow reconnecting wireless omada clients (#128491) 2024-11-15 17:02:31 +01:00
Nikolay Vasilchuk
23bac67550 Add starline run sensor (#130444) 2024-11-15 16:21:23 +01:00
dotvav
58087d67d1 Add HVACAction state to palazzetti climate (#130502) 2024-11-15 16:09:33 +01:00
Alistair Galbraith
cd79a606d7 Fix scene loading issue (#130627) 2024-11-15 16:08:43 +01:00
David Knowles
9a07f58890 Inline hydrawise sensor value_fn definitions as lambdas (#130702) 2024-11-15 15:37:51 +01:00
Maciej Bieniek
c3857661f1 Bump nextdns to version 4.0.0 (#130701) 2024-11-15 15:33:06 +01:00
epenet
821f9b8a41 Fix modern_forms config flow test logic (#130491) 2024-11-15 15:05:59 +01:00
epenet
3c3a6dff04 Add translation checks for issue registry (#130593) 2024-11-15 15:05:04 +01:00
epenet
e772eef035 Prevent None strings in description_placeholders (#127103) 2024-11-15 14:39:57 +01:00
Marc Mueller
dc09b7a532 Remove old setuptools keys from metadata (#130699) 2024-11-15 14:37:16 +01:00
epenet
ca7e73c42f Improve type hints in system_bridge config flow (#130697) 2024-11-15 13:53:42 +01:00
epenet
4140999bdb Improve type hints in modern_forms config flow (#130698) 2024-11-15 13:52:44 +01:00
Marc Mueller
46ecdc680c Update velbus-aio to 2024.11.0 (#130695) 2024-11-15 12:59:11 +01:00
epenet
b6d981fe9e Improve type hints in Time-based One Time Password auth module (#130420) 2024-11-15 12:48:11 +01:00
epenet
600f83ddab Finish migration from report to report_usage (#130412) 2024-11-15 12:35:50 +01:00
epenet
b57b22f6e3 Drop restore_state backwards compatibility (#130411) 2024-11-15 12:35:09 +01:00
epenet
b24931c775 Remove checks for DeviceEntryDisabler and DeviceEntryType enum (#130367) 2024-11-15 12:33:47 +01:00
epenet
de1905a529 Use reauth helpers in system_bridge (#130422) 2024-11-15 12:33:03 +01:00
epenet
20b1e38d24 Improve type hints in tolo config flow (#130421) 2024-11-15 12:26:38 +01:00
epenet
e45d4434e7 Improve type hints in soundtouch config flow (#130431) 2024-11-15 12:25:19 +01:00
epenet
7b1be8af30 Improve type hints in smlight config flow (#130435) 2024-11-15 12:21:26 +01:00
epenet
5ba5ffdacd Improve type hints in motionblinds_ble config flow (#130439) 2024-11-15 12:19:30 +01:00
epenet
2788ddec3a Improve type hints in aussie_broadband config flow (#130506) 2024-11-15 12:14:20 +01:00
epenet
747c05a263 Improve type hints in starline config flow (#130507) 2024-11-15 12:13:58 +01:00
epenet
a57233c152 Improve type hints in roomba config flow (#130512) 2024-11-15 12:13:43 +01:00
epenet
1277e83038 Use BLOOD_GLUCOSE_CONCENTRATION device class in dexcom (#130526) 2024-11-15 12:13:21 +01:00
dependabot[bot]
6e94466f47 Bump github/codeql-action from 3.27.3 to 3.27.4 (#130670)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 10:54:45 +01:00
starkillerOG
76f065ce44 Fix Reolink firmware updates by uploading directly (#127007) 2024-11-15 10:41:23 +01:00
Matt Zimmerman
c1f3372980 Bump python-smarttub to 0.0.38 (#130679) 2024-11-15 10:36:24 +01:00
David Knowles
027a643f24 Make Hydrawise poll non-critical data less frequently (#130289) 2024-11-15 10:30:37 +01:00
Thomas55555
35bf584a9c Deprecate returning to dock in Husqvarna Automower (#130649) 2024-11-15 10:06:30 +01:00
puddly
390b83a963 Bump ZHA dependencies (#130563) 2024-11-15 09:55:22 +01:00
epenet
0a2535cf8f Fix missing argument in translation checks (#130674) 2024-11-15 09:51:28 +01:00
epenet
1e303dd706 Fix missing translations in generic (#130672) 2024-11-15 09:48:02 +01:00
Johan Nenzén
b3fcc0cf60 Fixes webhook schema for different temp and volume units (#130578) 2024-11-15 09:46:12 +01:00
dependabot[bot]
6ee85e9094 Bump codecov/codecov-action from 4.6.0 to 5.0.0 (#130671)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 09:44:33 +01:00
J. Nick Koston
cc45793896 Bump aiohttp to 3.10.11 (#130483)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-15 09:42:20 +01:00
Johan Nenzén
b549c0f67c Bump pyplaato to 0.0.19 (#130641)
Bumps version of pyplaato to 0.0.19
2024-11-15 09:41:35 +01:00
epenet
ae95d802cc Fix missing translations in onewire (#130673) 2024-11-15 08:40:57 +01:00
epenet
5806304d79 Use single_config_entry in google_assistant_sdk (#130632)
* Use single_config_entry in google_assistant_sdk

* Cleanup
2024-11-14 22:43:13 -05:00
epenet
e8b0b3e05c Fix missing translations in tradfri (#130654)
* Fix missing translations in tradfri

* Simplify
2024-11-14 22:42:15 -05:00
epenet
aea8e8abac Fix missing translations in utility_meter (#130652) 2024-11-14 22:42:01 -05:00
epenet
62a5a219d9 Fix missing translations in madvr (#130656) 2024-11-14 22:41:15 -05:00
J. Nick Koston
4a7ae081df Bump aiohttp 3.11.2 (#130663)
fix for cleaning up incorrectly closed WebSocket connections
when a WebSocket task is cancelled

changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.1...v3.11.2
2024-11-14 22:40:48 -05:00
epenet
b2d98ae931 Fix missing translations in vilfo (#130650) 2024-11-14 18:50:47 -06:00
epenet
eaa8a5a750 Fix missing translations in toon (#130655) 2024-11-14 18:50:09 -06:00
Jan-Philipp Benecke
7688770522 Remove dumping config entry to log in setup of roborock (#130648) 2024-11-14 17:09:16 -05:00
Marc Mueller
3db4d951bf Update mypy-dev to 1.14.0a3 (#130629) 2024-11-14 21:27:40 +01:00
J. Nick Koston
f4719a21ea Bump aiohttp to 3.11.1 (#130636) 2024-11-14 14:12:59 -06:00
Mike Degatano
2344b7c9eb Fix translation missing errors in supervisor tests (#130640)
* Fix translation missing errors in supervisor tests

* Add suggestion to suggestions_by_issue mock
2024-11-14 21:11:33 +01:00
Joost Lekkerkerker
a1e3c7513b Make Switch as x platform options translatable (#130443)
Make Switch as x options translatable
2024-11-14 19:45:42 +01:00
epenet
a97090e0d5 Fix incorrect patch in flume tests (#130631) 2024-11-14 19:41:51 +01:00
epenet
2c8f038c39 Add missing translation string to philips_js (#130637) 2024-11-14 19:40:38 +01:00
epenet
7c34f5ea56 Add missing translation string to lg_netcast (#130635) 2024-11-14 19:40:01 +01:00
epenet
7418466064 Add missing translation string to hvv_departures (#130634) 2024-11-14 19:39:14 +01:00
J. Nick Koston
f9a4dd91c1 Bump aiohttp-fast-zlib to 0.2.0 (#130628) 2024-11-14 11:08:53 -06:00
Michael Hansen
5fa9a945d9 Handle sentence triggers and local intents before pipeline agent (#129058)
* Handle sentence triggers and registered intents in Assist LLM API

* Remove from LLM

* Check sentence triggers and local intents first

* Fix type

* Fix type again

* Use pipeline language

* Fix cloud test

* Clean up and fix translation key

* Refactor async_recognize
2024-11-14 10:50:50 -06:00
epenet
df55d198c8 Add translation checks for repair flows (#130619)
* Add translation checks for repair flows

* Ignore fake_integration in repairs
2024-11-14 17:25:47 +01:00
Keilin Bickar
bfec48cc0e Bump sense-energy to 0.13.4 (#130625) 2024-11-14 16:50:34 +01:00
Josef Zweck
1ce8bfdaa4 Use test helpers for acaia buttons (#130626) 2024-11-14 16:34:17 +01:00
Robert Resch
cd12720085 Add Python version to issue ID (#130611) 2024-11-14 16:31:33 +01:00
epenet
c7ee7dc880 Refactor translation checks (#130585)
* Refactor translation checks

* Adjust

* Improve

* Restore await

* Delay pytest.fail until the end of the test
2024-11-14 16:26:05 +01:00
epenet
472414a8d6 Add missing translation string to smarty (#130624) 2024-11-14 16:17:08 +01:00
Lennard Beers
0c44c632d4 Add number platform to eq3btsmart (#130429) 2024-11-14 15:38:38 +01:00
Álvaro Fernández Rojas
61d0de3042 Bump aioairzone to 0.9.6 (#130559)
* Update aioairzone to v0.9.6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove _async_migrator_mac_empty and improve tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove WebServer empty mac fixes as requested by @epenet

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-11-14 15:27:10 +01:00
Thibaut
01332a542c Removing myself from template codeowners (#130617)
* Removing myself as codeowners

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-14 15:23:55 +01:00
Andre Lengwenus
3d84e35268 Move lcn non-config_entry related code to async_setup (#130603)
* Move non-config_entry related code to async_setup

* Remove action unload
2024-11-14 14:27:19 +01:00
Josef Zweck
eea782bbfe Add acaia integration (#130059)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-14 13:28:38 +01:00
Lennard Beers
a949d18c30 Bump eq3btsmart to 1.4.1 (#130426) 2024-11-14 13:04:22 +01:00
Marc Mueller
a748897bd2 Update hassfest image to Python 3.13 (#130607) 2024-11-14 12:44:06 +01:00
Robert Resch
3201142fd8 Fix hassfest by adding go2rtc reqs (#130602) 2024-11-14 11:01:26 +01:00
starkillerOG
d0a58b68e8 Bump reolink-aio to 0.11.1 (#130600) 2024-11-14 10:48:25 +01:00
Simone Chemelli
93f79be2f4 Update uptime deviation for Vodafone Station (#130571)
Update sensor.py
2024-11-14 10:35:03 +01:00
Robert Resch
46cfe6aa32 Refactor camera WebRTC tests (#130581) 2024-11-14 10:28:04 +01:00
Robert Resch
301043ec38 Add require_webrtc_support decorator (#130519) 2024-11-14 10:27:45 +01:00
puddly
245fc246d8 Ensure ZHA setup works with container installs (#130470) 2024-11-14 10:13:29 +01:00
Noah Husby
58fd917cb7 Disable brightness from devices with no display in Cambridge Audio (#130369) 2024-11-14 10:11:44 +01:00
Steven B.
2c1d1f5777 Do not trigger events for updated ring events (#130430) 2024-11-14 10:09:58 +01:00
Luke Lashley
938b1eca22 Fix when the Roborock map is being provisioned (#130574) 2024-11-14 09:52:28 +01:00
Brett Adams
2fda4c82de Force login prompt in Tesla Fleet (#130576) 2024-11-14 09:46:24 +01:00
J. Nick Koston
4200913d03 Fix non-thread-safe operation in powerview number (#130557) 2024-11-14 09:45:08 +01:00
Tony
4aad614497 Bump aioruckus to 0.42 (#130487) 2024-11-14 09:43:59 +01:00
epenet
6a3b4a6a23 Adjust minimum scapy version to 2.6.1 (#130565) 2024-11-13 17:49:39 -06:00
Michael Hansen
51c6ee97b1 Upgrade to hassil 2.0 (#130544)
* Working on hassil 2.0

* Bump to hassil 2.0

* Update snapshots

* Remove debug logging
2024-11-13 16:50:08 -05:00
Simon Lamon
4002bc3c25 Downgrade devcontainer to Python 3.12 again (#130562) 2024-11-13 22:03:34 +01:00
J. Nick Koston
c35ef6bda3 Bump aiohttp to 3.11.0 (#130542) 2024-11-13 19:32:14 +01:00
Marc Mueller
ed5560aec2 Update base image to Python 3.13 and deprecated 3.12 (#130425) 2024-11-13 19:28:53 +01:00
Sheldon Ip
0a5a2de78e Fix translations in subaru (#130486) 2024-11-13 18:46:52 +01:00
Brig Lamoreaux
7fd337d67f fix translation in srp_energy (#130540) 2024-11-13 18:42:26 +01:00
Marc Mueller
5f68d405b2 Update huum to 0.7.12 (#130527) 2024-11-13 17:26:27 +01:00
Erik Montnemery
093b16c723 Make WS command backup/generate send events (#130524)
* Make WS command backup/generate send events

* Update backup.create service
2024-11-13 16:16:49 +01:00
Steven B.
ac4cb52dbb Bump ring-doorbell to 0.9.12 (#130419) 2024-11-13 08:04:23 -06:00
dunnmj
72b976f832 Add Sky remote integration (#124507)
Co-authored-by: Kyle Cooke <saty9@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-13 14:29:04 +01:00
Daniel Hjelseth Høyer
f6bc5f050e Bump millheater to 0.12.2 (#130454) 2024-11-13 14:28:19 +01:00
epenet
8300afc00d Improve type hints in fritz config flow (#130511)
* Improve type hints in fritz config flow

* Improve coverage

* Apply suggestions from code review

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-11-13 13:45:52 +01:00
epenet
ab11b84678 Improve type hints in fritzbox config flow (#130509) 2024-11-13 13:01:54 +01:00
Joost Lekkerkerker
b78453b85b Bump aiowithings to 3.1.3 (#130504) 2024-11-13 12:21:15 +01:00
Joost Lekkerkerker
b270e4556c Avoid core manifest to have an issue tracker (#130514) 2024-11-13 12:16:07 +01:00
Joost Lekkerkerker
e90893e2bc Fix Music Assistant manifest (#130515) 2024-11-13 11:43:31 +01:00
dependabot[bot]
a06e7e31b9 Bump github/codeql-action from 3.27.1 to 3.27.3 (#130489)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.1 to 3.27.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.27.1...v3.27.3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 11:06:38 +01:00
Robert Resch
2eaaadd736 Add go2rtc recommended version (#130508) 2024-11-13 11:01:05 +01:00
G Johansson
0ac00ef092 Fix legacy _attr_state handling in AlarmControlPanel (#130479) 2024-11-13 10:55:28 +01:00
Robert Resch
3092297979 Bump go2rtc-client to 0.1.1 (#130498) 2024-11-13 09:55:52 +01:00
Thomas55555
827875473b Fix RecursionError in Husqvarna Automower coordinator (#123085)
* reach maximum recursion depth exceeded in tests

* second background task

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* test

* modify test

* tests

* use correct exception

* reset mock

* use recursion_limit

* remove unneeded ticks

* test TimeoutException

* set lower recursionlimit

* remove not that important comment and move the other

* test that we connect and listen successfully

* Simulate hass shutting down

* skip testing against the recursion limit

* Update homeassistant/components/husqvarna_automower/coordinator.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* mock

* Remove comment

* Revert "mock"

This reverts commit e8ddaea3d7.

* Move patch to decorator

* Make execution of patched methods predictable

* Parametrize test, make mocked start_listening block

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-11-13 09:54:37 +01:00
Joost Lekkerkerker
5cce369ce8 Bump aiowithings to 3.1.2 (#130469) 2024-11-13 07:55:33 +01:00
Joost Lekkerkerker
fdb773c921 Add title to water heater component (#130446) 2024-11-13 07:55:13 +01:00
starkillerOG
8b505a2273 Bump reolink_aio to 0.11.0 (#130481) 2024-11-13 07:35:51 +01:00
Charles Garwood
a9f468509b Bump zwave-js-server-python to 0.59.1 (#130468) 2024-11-13 07:14:39 +01:00
J. Nick Koston
4ff8b8015c Bump aiohttp to 3.11.0rc2 (#130484) 2024-11-12 22:07:26 -06:00
mrspouse
5c52e865a0 Correct spelling of BloodGlucoseConcentrationConverter (#130449)
* Correct spelling of BloodGlucoseConcentrationConverter

* Correct spelling of BloodGlucoseConcentrationConverter
2024-11-12 21:48:42 +01:00
Kelvin Dekker
6bfc0cbb0c Fix typo in file strings (#130465) 2024-11-12 21:33:52 +01:00
G Johansson
388473ecd7 Add diagnostics to Nord Pool (#130461) 2024-11-12 19:55:27 +01:00
G Johansson
285468d85f Fix translation in statistics (#130455)
* Fix translation in statistics

* Update homeassistant/components/statistics/strings.json
2024-11-12 18:44:32 +01:00
epenet
167025a18c Simplify modern_forms config flow (#130441)
* Simplify modern_forms config flow

* Rename variable

* Drop CONF_NAME
2024-11-12 18:03:37 +01:00
Joakim Sørensen
ac0c75a598 Add upload capability to the backup integration (#128546)
* Add upload capability to the backup integration

* Limit context switch

* rename

* coverage for http

* Test receiving a backup file

* Update test_manager.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-12 15:27:53 +01:00
Robert Resch
cb9cc0f801 Go2rtc bump and set ffmpeg logs to debug (#130371) 2024-11-12 11:53:14 +01:00
Lennard Beers
7758d8ba48 Add switch platform to eq3btsmart (#130363) 2024-11-12 11:42:25 +01:00
epenet
7045b776b6 Use report_usage in helpers (#130365) 2024-11-12 09:25:13 +01:00
J. Nick Koston
22aed92461 Bump aiohttp to 3.11.0rc1 (#130320) 2024-11-12 08:29:01 +01:00
LG-ThinQ-Integration
60bf0f6b06 Fix fan's warning TURN_ON, TURN_OFF (#130327)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-12 08:26:28 +01:00
G Johansson
3eab72b2aa Improve exception handling in Nord Pool (#130386)
* Improve exception handling in Nord Pool

* Improve auth string

* Remove auth
2024-11-11 23:02:48 +01:00
Daniel Hjelseth Høyer
d1c3e1caa9 Bump Tibber 0.30.8 (#130388) 2024-11-11 21:05:52 +01:00
Sid
8b547551e2 Bump ruff to 0.7.3 (#130390) 2024-11-11 21:05:41 +01:00
epenet
f1ce7ee8ce Adjust logging for OptionsFlow deprecation (#130360) 2024-11-11 21:02:09 +01:00
J. Nick Koston
e388e9f396 Fix missing title placeholders in powerwall reauth (#130389) 2024-11-11 20:48:49 +01:00
Markus Lanthaler
96c12fdd10 Update tuya-device-sharing-sdk to version 0.2.1 (#130333) 2024-11-11 20:40:37 +01:00
Noah Husby
e97a5f927c Bump aiorussound to 4.1.0 (#130382) 2024-11-11 20:26:45 +01:00
epenet
313309a7e0 Remove deprecated YAML loaders (#130364) 2024-11-11 20:24:51 +01:00
Barry vd. Heuvel
ebe62501d6 Bump Weheat wh-python to 2024.11.02 (#130337) 2024-11-11 20:14:12 +01:00
Robert Resch
c54369fe93 Add go2rtc to devcontainer (#130380) 2024-11-11 20:13:20 +01:00
Marc Mueller
c89bf6a9aa Update pillow to 11.0.0 (#130194) 2024-11-11 20:12:32 +01:00
epenet
906bdda6fa Use report_usage in integrations (#130366) 2024-11-11 20:09:26 +01:00
Andre Lengwenus
f3708549f0 Code cleanup for LCN integration (#130385) 2024-11-11 20:08:38 +01:00
Andre Lengwenus
3f34ddd74f Bump lcn-frontend to 0.2.2 (#130383) 2024-11-11 20:07:12 +01:00
Marc Mueller
b19c44b4a5 Update pydantic to 1.10.19 (#130373) 2024-11-11 12:01:47 -06:00
Erik Montnemery
0cc50bc7bc Fix copy-paste error in STATISTIC_UNIT_TO_UNIT_CONVERTER (#130375) 2024-11-11 11:09:06 -06:00
Joost Lekkerkerker
e56dec2c8e Bump spotifyaio to 0.8.8 (#130372) 2024-11-11 17:35:54 +01:00
Olivier Corradi
e797149a16 Rename "CO2 Signal" display name to Electricity Maps for consistency (#130242)
* Update strings.json for Electricity Maps

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Fix test
2024-11-11 17:34:29 +01:00
Simon Lamon
c96f1c87a6 Bump python-linkplay to 0.0.20 (#130348) 2024-11-11 17:30:27 +01:00
Erik Elkins
388c5807ea Add Switchbot Hub 2, Switchbot Meter Pro and Switchbot Meter Pro (CO2) devices to Switchbot Cloud integration. (#130295) 2024-11-11 16:10:52 +01:00
Robert Resch
41c6eeedca Bump deebot-client to 8.4.1 (#130357) 2024-11-11 15:41:18 +01:00
Lennard Beers
829632b0af Add binary sensor platform to eq3btsmart (#130352) 2024-11-11 14:27:52 +01:00
Franck Nijhof
ab0556227c 2024.11.1 (#130156) 2024-11-08 19:42:10 +01:00
Franck Nijhof
c16fb9c93d Bump version to 2024.11.1 2024-11-08 18:58:21 +01:00
Jan Bouwhuis
da8fc7a2fc Refrase imap fetch service description string (#130152) 2024-11-08 18:58:07 +01:00
Allen Porter
864b4d86f2 Fix bugs in nest stream expiration handling (#130150) 2024-11-08 18:58:04 +01:00
Louis Christ
1bb0ced7c0 Fix volume_up not working in some cases in bluesound integration (#130146) 2024-11-08 18:58:00 +01:00
Martin Hjelmare
2fe4fc908b Bump ha-ffmpeg to 3.2.2 (#130142) 2024-11-08 18:57:25 +01:00
Joost Lekkerkerker
aa2c3b046f Bump spotifyaio to 0.8.7 (#130140) 2024-11-08 18:56:15 +01:00
Robert Resch
22822cb8aa Add go2rtc workaround for HA managed one until upstream fixes it (#130139) 2024-11-08 18:56:12 +01:00
Shai Ungar
b71383c997 Fix issue when timestamp is None (#130133)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 18:56:09 +01:00
Bram Kragten
b0b163df48 Update frontend to 20241106.2 (#130128) 2024-11-08 18:56:06 +01:00
Luke Lashley
35539dbf60 Bump python-roborock to 2.7.2 (#130100) 2024-11-08 18:56:02 +01:00
Bram Kragten
09d03e8edf Update frontend to 20241106.1 (#130086) 2024-11-08 18:55:59 +01:00
Kelvin Dekker
46e37f3bdd Fix typo in insteon strings (#130085) 2024-11-08 18:55:55 +01:00
Klaas Schoute
0206c149cf Force int value on port in P1Monitor (#130084) 2024-11-08 18:55:52 +01:00
Josef Zweck
29620ef977 Add missing string to tedee plus test (#130081) 2024-11-08 18:55:49 +01:00
Erik Montnemery
9012b113ad Don't create repairs asking user to remove duplicate flipr config entries (#130058)
* Don't create repairs asking user to remove duplicate flipr config entries

* Improve comments
2024-11-08 18:55:46 +01:00
Allen Porter
5f5f6cc3d5 Fix KeyError in nest integration when the old key format does not exist (#130057)
* Fix bug in nest setup when the old key format does not exist

* Further simplify the entry.data check

* Update homeassistant/components/nest/api.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-08 18:55:42 +01:00
Erik Montnemery
7ff501f3ec Don't create repairs asking user to remove duplicate ignored config entries (#130056) 2024-11-08 18:55:39 +01:00
sean t
b0f110b9ab Bump agent-py to 0.0.24 (#130018)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 18:55:36 +01:00
epenet
2692bc23a5 Add missing placeholder description to twitch (#130013) 2024-11-08 18:55:33 +01:00
Allen Porter
1beac5f0f8 Bump google-nest-sdm to 6.1.4 (#130005)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 18:55:29 +01:00
Keilin Bickar
ec7ba1b7fd Update sense energy library to 0.13.3 (#129998) 2024-11-08 18:55:25 +01:00
Brett Adams
5bd1b0dd9c Fix Trunks in Teslemetry and Tesla Fleet (#129986) 2024-11-08 18:55:21 +01:00
Michael Hansen
a2ad4c9cfd Bump intents to 2024.11.6 (#129982) 2024-11-08 18:52:43 +01:00
3456 changed files with 137276 additions and 33537 deletions

View File

@@ -6,6 +6,7 @@ core: &core
- homeassistant/helpers/**
- homeassistant/package_constraints.txt
- homeassistant/util/**
- mypy.ini
- pyproject.toml
- requirements.txt
- setup.cfg
@@ -131,6 +132,7 @@ tests: &tests
- tests/components/conftest.py
- tests/components/diagnostics/**
- tests/components/history/**
- tests/components/light/common.py
- tests/components/logbook/**
- tests/components/recorder/**
- tests/components/repairs/**

View File

@@ -10,7 +10,7 @@ on:
env:
BUILD_TYPE: core
DEFAULT_PYTHON: "3.12"
DEFAULT_PYTHON: "3.13"
PIP_TIMEOUT: 60
UV_HTTP_TIMEOUT: 60
UV_SYSTEM_PYTHON: "true"
@@ -69,7 +69,7 @@ jobs:
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload translations
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: translations
path: translations.tar.gz
@@ -94,7 +94,7 @@ jobs:
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v6
uses: dawidd6/action-download-artifact@v7
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/frontend
@@ -105,7 +105,7 @@ jobs:
- name: Download nightly wheels of intents
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v6
uses: dawidd6/action-download-artifact@v7
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/intents-package
@@ -509,7 +509,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
@@ -517,12 +517,12 @@ jobs:
tags: ${{ env.HASSFEST_IMAGE_TAG }}
- name: Run hassfest against core
run: docker run --rm -v ${{ github.workspace }}/homeassistant:/github/workspace/homeassistant ${{ env.HASSFEST_IMAGE_TAG }} --core-integrations-path=/github/workspace/homeassistant/components
run: docker run --rm -v ${{ github.workspace }}:/github/workspace ${{ env.HASSFEST_IMAGE_TAG }} --core-path=/github/workspace
- name: Push Docker image
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
id: push
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
@@ -531,7 +531,7 @@ jobs:
- name: Generate artifact attestation
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
uses: actions/attest-build-provenance@ef244123eb79f2f7a7e75d99086184180e6d0018 # v1.4.4
uses: actions/attest-build-provenance@7668571508540a607bdfd90a87a560489fe372eb # v2.1.0
with:
subject-name: ${{ env.HASSFEST_IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}

View File

@@ -40,7 +40,7 @@ env:
CACHE_VERSION: 11
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 9
HA_SHORT_VERSION: "2024.12"
HA_SHORT_VERSION: "2025.1"
DEFAULT_PYTHON: "3.12"
ALL_PYTHON_VERSIONS: "['3.12', '3.13']"
# 10.3 is the oldest supported version
@@ -240,7 +240,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.1.2
uses: actions/cache@v4.2.0
with:
path: venv
key: >-
@@ -256,7 +256,7 @@ jobs:
uv pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.1.2
uses: actions/cache@v4.2.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -286,7 +286,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -295,7 +295,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -326,7 +326,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -335,7 +335,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -366,7 +366,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -375,7 +375,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -482,16 +482,15 @@ jobs:
env.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@v4.1.2
uses: actions/cache@v4.2.0
with:
path: venv
lookup-only: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore uv wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v4.1.2
uses: actions/cache@v4.2.0
with:
path: ${{ env.UV_CACHE_DIR }}
key: >-
@@ -531,6 +530,26 @@ jobs:
python -m script.gen_requirements_all ci
uv pip install -r requirements_all_pytest.txt -r requirements_test.txt
uv pip install -e . --config-settings editable_mode=compat
- name: Dump pip freeze
run: |
python -m venv venv
. venv/bin/activate
python --version
uv pip freeze >> pip_freeze.txt
- name: Upload pip_freeze artifact
uses: actions/upload-artifact@v4.5.0
with:
name: pip-freeze-${{ matrix.python-version }}
path: pip_freeze.txt
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
hassfest:
name: Check hassfest
@@ -559,7 +578,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -592,7 +611,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -630,7 +649,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -642,7 +661,7 @@ jobs:
. venv/bin/activate
python -m script.licenses extract --output-file=licenses-${{ matrix.python-version }}.json
- name: Upload licenses
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: licenses-${{ github.run_number }}-${{ matrix.python-version }}
path: licenses-${{ matrix.python-version }}.json
@@ -673,7 +692,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -720,7 +739,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -772,7 +791,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -780,7 +799,7 @@ jobs:
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore mypy cache
uses: actions/cache@v4.1.2
uses: actions/cache@v4.2.0
with:
path: .mypy_cache
key: >-
@@ -819,6 +838,12 @@ jobs:
needs:
- info
- base
- gen-requirements-all
- hassfest
- lint-other
- lint-ruff
- lint-ruff-format
- mypy
name: Split tests for full run
steps:
- name: Install additional OS dependencies
@@ -840,7 +865,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -852,7 +877,7 @@ jobs:
. venv/bin/activate
python -m script.split_tests ${{ needs.info.outputs.test_group_count }} tests
- name: Upload pytest_buckets
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: pytest_buckets
path: pytest_buckets.txt
@@ -904,7 +929,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -954,14 +979,14 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-full.conclusion == 'failure'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -1025,7 +1050,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -1081,7 +1106,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1089,7 +1114,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1154,7 +1179,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -1211,7 +1236,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1219,7 +1244,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1248,12 +1273,11 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v4.6.0
uses: codecov/codecov-action@v5.1.2
with:
fail_ci_if_error: true
flags: full-suite
token: ${{ secrets.CODECOV_TOKEN }}
version: v0.6.0
pytest-partial:
runs-on: ubuntu-24.04
@@ -1301,7 +1325,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
uses: actions/cache/restore@v4.2.0
with:
path: venv
fail-on-cache-miss: true
@@ -1354,14 +1378,14 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -1387,8 +1411,7 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v4.6.0
uses: codecov/codecov-action@v5.1.2
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
version: v0.6.0

View File

@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.27.1
uses: github/codeql-action/init@v3.28.0
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.27.1
uses: github/codeql-action/analyze@v3.28.0
with:
category: "/language:python"

View File

@@ -79,7 +79,7 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: env_file
path: ./.env_file
@@ -87,7 +87,7 @@ jobs:
overwrite: true
- name: Upload requirements_diff
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -99,7 +99,7 @@ jobs:
python -m script.gen_requirements_all ci
- name: Upload requirements_all_wheels
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: requirements_all_wheels
path: ./requirements_all_wheels_*.txt
@@ -143,7 +143,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "libffi-dev;openssl-dev;yaml-dev;nasm;zlib-dev"
skip-binary: aiohttp;multidict;yarl
skip-binary: aiohttp;multidict;propcache;yarl;SQLAlchemy
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements.txt"
@@ -197,33 +197,6 @@ jobs:
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all_wheels_${{ matrix.arch }}.txt requirements_all.txt
- name: Create requirements for cython<3
if: matrix.abi == 'cp312'
run: |
# Some dependencies still require 'cython<3'
# and don't yet use isolated build environments.
# Build these first.
# pydantic: https://github.com/pydantic/pydantic/issues/7689
touch requirements_old-cython.txt
cat homeassistant/package_constraints.txt | grep 'pydantic==' >> requirements_old-cython.txt
- name: Build wheels (old cython)
uses: home-assistant/wheels@2024.11.0
if: matrix.abi == 'cp312'
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
arch: ${{ matrix.arch }}
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pydantic;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_old-cython.txt"
pip: "'cython<3'"
- name: Build wheels (part 1)
uses: home-assistant/wheels@2024.11.0
with:

View File

@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.2
rev: v0.8.3
hooks:
- id: ruff
args:
@@ -12,13 +12,13 @@ repos:
hooks:
- id: codespell
args:
- --ignore-words-list=astroid,checkin,currenty,hass,iif,incomfort,lookin,nam,NotIn
- --ignore-words-list=aiport,astroid,checkin,currenty,hass,iif,incomfort,lookin,nam,NotIn
- --skip="./.*,*.csv,*.json,*.ambr"
- --quiet-level=2
exclude_types: [csv, json, html]
exclude: ^tests/fixtures/|homeassistant/generated/|tests/components/.*/snapshots/
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v5.0.0
hooks:
- id: check-executables-have-shebangs
stages: [manual]
@@ -83,14 +83,14 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements.+\.txt)$
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/.+/(quality_scale)\.yaml|homeassistant/brands/.*\.json|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements.+\.txt)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata,docker
pass_filenames: false
language: script
types: [text]
files: ^(script/hassfest/metadata\.py|homeassistant/const\.py$|pyproject\.toml)$
files: ^(script/hassfest/metadata\.py|homeassistant/const\.py$|pyproject\.toml|homeassistant/components/go2rtc/const\.py)$
- id: hassfest-mypy-config
name: hassfest-mypy-config
entry: script/run-in-env.sh python3 -m script.hassfest -p mypy_config

View File

@@ -41,6 +41,7 @@ homeassistant.util.unit_system
# --- Add components below this line ---
homeassistant.components
homeassistant.components.abode.*
homeassistant.components.acaia.*
homeassistant.components.accuweather.*
homeassistant.components.acer_projector.*
homeassistant.components.acmeda.*
@@ -136,6 +137,7 @@ homeassistant.components.co2signal.*
homeassistant.components.command_line.*
homeassistant.components.config.*
homeassistant.components.configurator.*
homeassistant.components.cookidoo.*
homeassistant.components.counter.*
homeassistant.components.cover.*
homeassistant.components.cpuspeed.*
@@ -168,6 +170,7 @@ homeassistant.components.easyenergy.*
homeassistant.components.ecovacs.*
homeassistant.components.ecowitt.*
homeassistant.components.efergy.*
homeassistant.components.eheimdigital.*
homeassistant.components.electrasmart.*
homeassistant.components.electric_kiwi.*
homeassistant.components.elevenlabs.*
@@ -268,6 +271,7 @@ homeassistant.components.ios.*
homeassistant.components.iotty.*
homeassistant.components.ipp.*
homeassistant.components.iqvia.*
homeassistant.components.iron_os.*
homeassistant.components.islamic_prayer_times.*
homeassistant.components.isy994.*
homeassistant.components.jellyfin.*
@@ -307,6 +311,7 @@ homeassistant.components.manual.*
homeassistant.components.mastodon.*
homeassistant.components.matrix.*
homeassistant.components.matter.*
homeassistant.components.mealie.*
homeassistant.components.media_extractor.*
homeassistant.components.media_player.*
homeassistant.components.media_source.*
@@ -359,11 +364,13 @@ homeassistant.components.otbr.*
homeassistant.components.overkiz.*
homeassistant.components.p1_monitor.*
homeassistant.components.panel_custom.*
homeassistant.components.peblar.*
homeassistant.components.peco.*
homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.ping.*
homeassistant.components.plugwise.*
homeassistant.components.powerfox.*
homeassistant.components.powerwall.*
homeassistant.components.private_ble_device.*
homeassistant.components.prometheus.*
@@ -385,6 +392,7 @@ homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.reolink.*
homeassistant.components.repairs.*
homeassistant.components.rest.*
homeassistant.components.rest_command.*
@@ -399,11 +407,13 @@ homeassistant.components.romy.*
homeassistant.components.rpi_power.*
homeassistant.components.rss_feed_template.*
homeassistant.components.rtsp_to_webrtc.*
homeassistant.components.russound_rio.*
homeassistant.components.ruuvi_gateway.*
homeassistant.components.ruuvitag_ble.*
homeassistant.components.samsungtv.*
homeassistant.components.scene.*
homeassistant.components.schedule.*
homeassistant.components.schlage.*
homeassistant.components.scrape.*
homeassistant.components.script.*
homeassistant.components.search.*
@@ -436,7 +446,7 @@ homeassistant.components.ssdp.*
homeassistant.components.starlink.*
homeassistant.components.statistics.*
homeassistant.components.steamist.*
homeassistant.components.stookalert.*
homeassistant.components.stookwijzer.*
homeassistant.components.stream.*
homeassistant.components.streamlabswater.*
homeassistant.components.stt.*

42
.vscode/tasks.json vendored
View File

@@ -16,7 +16,7 @@
{
"label": "Pytest",
"type": "shell",
"command": "python3 -m pytest --timeout=10 tests",
"command": "${command:python.interpreterPath} -m pytest --timeout=10 tests",
"dependsOn": ["Install all Test Requirements"],
"group": {
"kind": "test",
@@ -31,7 +31,7 @@
{
"label": "Pytest (changed tests only)",
"type": "shell",
"command": "python3 -m pytest --timeout=10 --picked",
"command": "${command:python.interpreterPath} -m pytest --timeout=10 --picked",
"group": {
"kind": "test",
"isDefault": true
@@ -56,6 +56,20 @@
},
"problemMatcher": []
},
{
"label": "Pre-commit",
"type": "shell",
"command": "pre-commit run --show-diff-on-failure",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
},
{
"label": "Pylint",
"type": "shell",
@@ -75,7 +89,23 @@
"label": "Code Coverage",
"detail": "Generate code coverage report for a given integration.",
"type": "shell",
"command": "python3 -m pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0 --numprocesses=auto",
"command": "${command:python.interpreterPath} -m pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0 --numprocesses=auto",
"dependsOn": ["Compile English translations"],
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
},
{
"label": "Update syrupy snapshots",
"detail": "Update syrupy snapshots for a given integration.",
"type": "shell",
"command": "${command:python.interpreterPath} -m pytest ./tests/components/${input:integrationName} --snapshot-update",
"dependsOn": ["Compile English translations"],
"group": {
"kind": "test",
@@ -133,7 +163,7 @@
"label": "Compile English translations",
"detail": "In order to test changes to translation files, the translation strings must be compiled into Home Assistant's translation directories.",
"type": "shell",
"command": "python3 -m script.translations develop --all",
"command": "${command:python.interpreterPath} -m script.translations develop --all",
"group": {
"kind": "build",
"isDefault": true
@@ -143,7 +173,7 @@
"label": "Run scaffold",
"detail": "Add new functionality to a integration using a scaffold.",
"type": "shell",
"command": "python3 -m script.scaffold ${input:scaffoldName} --integration ${input:integrationName}",
"command": "${command:python.interpreterPath} -m script.scaffold ${input:scaffoldName} --integration ${input:integrationName}",
"group": {
"kind": "build",
"isDefault": true
@@ -153,7 +183,7 @@
"label": "Create new integration",
"detail": "Use the scaffold to create a new integration.",
"type": "shell",
"command": "python3 -m script.scaffold integration",
"command": "${command:python.interpreterPath} -m script.scaffold integration",
"group": {
"kind": "build",
"isDefault": true

View File

@@ -40,6 +40,8 @@ build.json @home-assistant/supervisor
# Integrations
/homeassistant/components/abode/ @shred86
/tests/components/abode/ @shred86
/homeassistant/components/acaia/ @zweckj
/tests/components/acaia/ @zweckj
/homeassistant/components/accuweather/ @bieniu
/tests/components/accuweather/ @bieniu
/homeassistant/components/acmeda/ @atmurray
@@ -282,6 +284,8 @@ build.json @home-assistant/supervisor
/tests/components/control4/ @lawtancool
/homeassistant/components/conversation/ @home-assistant/core @synesthesiam
/tests/components/conversation/ @home-assistant/core @synesthesiam
/homeassistant/components/cookidoo/ @miaucl
/tests/components/cookidoo/ @miaucl
/homeassistant/components/coolmaster/ @OnFreund
/tests/components/coolmaster/ @OnFreund
/homeassistant/components/counter/ @fabaff
@@ -383,6 +387,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/efergy/ @tkdrob
/tests/components/efergy/ @tkdrob
/homeassistant/components/egardia/ @jeroenterheerdt
/homeassistant/components/eheimdigital/ @autinerd
/tests/components/eheimdigital/ @autinerd
/homeassistant/components/electrasmart/ @jafar-atili
/tests/components/electrasmart/ @jafar-atili
/homeassistant/components/electric_kiwi/ @mikey0000
@@ -572,8 +578,8 @@ build.json @home-assistant/supervisor
/tests/components/google_tasks/ @allenporter
/homeassistant/components/google_travel_time/ @eifinger
/tests/components/google_travel_time/ @eifinger
/homeassistant/components/govee_ble/ @bdraco @PierreAronnax
/tests/components/govee_ble/ @bdraco @PierreAronnax
/homeassistant/components/govee_ble/ @bdraco
/tests/components/govee_ble/ @bdraco
/homeassistant/components/govee_light_local/ @Galorhallen
/tests/components/govee_light_local/ @Galorhallen
/homeassistant/components/gpsd/ @fabaff @jrieger
@@ -586,8 +592,8 @@ build.json @home-assistant/supervisor
/tests/components/group/ @home-assistant/core
/homeassistant/components/guardian/ @bachya
/tests/components/guardian/ @bachya
/homeassistant/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/tests/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/homeassistant/components/habitica/ @tr4nt0r
/tests/components/habitica/ @tr4nt0r
/homeassistant/components/hardkernel/ @home-assistant/core
/tests/components/hardkernel/ @home-assistant/core
/homeassistant/components/hardware/ @home-assistant/core
@@ -725,8 +731,8 @@ build.json @home-assistant/supervisor
/tests/components/ios/ @robbiet480
/homeassistant/components/iotawatt/ @gtdiehl @jyavenard
/tests/components/iotawatt/ @gtdiehl @jyavenard
/homeassistant/components/iotty/ @pburgio @shapournemati-iotty
/tests/components/iotty/ @pburgio @shapournemati-iotty
/homeassistant/components/iotty/ @shapournemati-iotty
/tests/components/iotty/ @shapournemati-iotty
/homeassistant/components/iperf3/ @rohankapoorcom
/homeassistant/components/ipma/ @dgomes
/tests/components/ipma/ @dgomes
@@ -751,6 +757,8 @@ build.json @home-assistant/supervisor
/tests/components/ista_ecotrend/ @tr4nt0r
/homeassistant/components/isy994/ @bdraco @shbatm
/tests/components/isy994/ @bdraco @shbatm
/homeassistant/components/ituran/ @shmuelzon
/tests/components/ituran/ @shmuelzon
/homeassistant/components/izone/ @Swamp-Ig
/tests/components/izone/ @Swamp-Ig
/homeassistant/components/jellyfin/ @j-stienstra @ctalkington
@@ -972,8 +980,6 @@ build.json @home-assistant/supervisor
/tests/components/nanoleaf/ @milanmeu @joostlek
/homeassistant/components/nasweb/ @nasWebio
/tests/components/nasweb/ @nasWebio
/homeassistant/components/neato/ @Santobert
/tests/components/neato/ @Santobert
/homeassistant/components/nederlandse_spoorwegen/ @YarmoM
/homeassistant/components/ness_alarm/ @nickw444
/tests/components/ness_alarm/ @nickw444
@@ -1004,6 +1010,8 @@ build.json @home-assistant/supervisor
/tests/components/nice_go/ @IceBotYT
/homeassistant/components/nightscout/ @marciogranzotto
/tests/components/nightscout/ @marciogranzotto
/homeassistant/components/niko_home_control/ @VandeurenGlenn
/tests/components/niko_home_control/ @VandeurenGlenn
/homeassistant/components/nilu/ @hfurubotten
/homeassistant/components/nina/ @DeerMaximum
/tests/components/nina/ @DeerMaximum
@@ -1045,6 +1053,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/octoprint/ @rfleming71
/tests/components/octoprint/ @rfleming71
/homeassistant/components/ohmconnect/ @robbiet480
/homeassistant/components/ohme/ @dan-r
/tests/components/ohme/ @dan-r
/homeassistant/components/ollama/ @synesthesiam
/tests/components/ollama/ @synesthesiam
/homeassistant/components/ombi/ @larssont
@@ -1056,8 +1066,8 @@ build.json @home-assistant/supervisor
/tests/components/ondilo_ico/ @JeromeHXP
/homeassistant/components/onewire/ @garbled1 @epenet
/tests/components/onewire/ @garbled1 @epenet
/homeassistant/components/onkyo/ @arturpragacz
/tests/components/onkyo/ @arturpragacz
/homeassistant/components/onkyo/ @arturpragacz @eclair4151
/tests/components/onkyo/ @arturpragacz @eclair4151
/homeassistant/components/onvif/ @hunterjm
/tests/components/onvif/ @hunterjm
/homeassistant/components/open_meteo/ @frenck
@@ -1103,6 +1113,8 @@ build.json @home-assistant/supervisor
/tests/components/palazzetti/ @dotvav
/homeassistant/components/panel_custom/ @home-assistant/frontend
/tests/components/panel_custom/ @home-assistant/frontend
/homeassistant/components/peblar/ @frenck
/tests/components/peblar/ @frenck
/homeassistant/components/peco/ @IceBotYT
/tests/components/peco/ @IceBotYT
/homeassistant/components/pegel_online/ @mib1185
@@ -1131,6 +1143,8 @@ build.json @home-assistant/supervisor
/tests/components/point/ @fredrike
/homeassistant/components/poolsense/ @haemishkyd
/tests/components/poolsense/ @haemishkyd
/homeassistant/components/powerfox/ @klaasnicolaas
/tests/components/powerfox/ @klaasnicolaas
/homeassistant/components/powerwall/ @bdraco @jrester @daniel-simpson
/tests/components/powerwall/ @bdraco @jrester @daniel-simpson
/homeassistant/components/private_ble_device/ @Jc2k
@@ -1344,6 +1358,8 @@ build.json @home-assistant/supervisor
/tests/components/siren/ @home-assistant/core @raman325
/homeassistant/components/sisyphus/ @jkeljo
/homeassistant/components/sky_hub/ @rogerselwyn
/homeassistant/components/sky_remote/ @dunnmj @saty9
/tests/components/sky_remote/ @dunnmj @saty9
/homeassistant/components/skybell/ @tkdrob
/tests/components/skybell/ @tkdrob
/homeassistant/components/slack/ @tkdrob @fletcherau
@@ -1351,6 +1367,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/sleepiq/ @mfugate1 @kbickar
/tests/components/sleepiq/ @mfugate1 @kbickar
/homeassistant/components/slide/ @ualex73
/homeassistant/components/slide_local/ @dontinelli
/tests/components/slide_local/ @dontinelli
/homeassistant/components/slimproto/ @marcelveldt
/tests/components/slimproto/ @marcelveldt
/homeassistant/components/sma/ @kellerza @rklomp
@@ -1409,15 +1427,13 @@ build.json @home-assistant/supervisor
/tests/components/starline/ @anonym-tsk
/homeassistant/components/starlink/ @boswelja
/tests/components/starlink/ @boswelja
/homeassistant/components/statistics/ @ThomDietrich
/tests/components/statistics/ @ThomDietrich
/homeassistant/components/statistics/ @ThomDietrich @gjohansson-ST
/tests/components/statistics/ @ThomDietrich @gjohansson-ST
/homeassistant/components/steam_online/ @tkdrob
/tests/components/steam_online/ @tkdrob
/homeassistant/components/steamist/ @bdraco
/tests/components/steamist/ @bdraco
/homeassistant/components/stiebel_eltron/ @fucm
/homeassistant/components/stookalert/ @fwestenberg @frenck
/tests/components/stookalert/ @fwestenberg @frenck
/homeassistant/components/stookwijzer/ @fwestenberg
/tests/components/stookwijzer/ @fwestenberg
/homeassistant/components/stream/ @hunterjm @uvjustin @allenporter
@@ -1485,8 +1501,8 @@ build.json @home-assistant/supervisor
/tests/components/tedee/ @patrickhilker @zweckj
/homeassistant/components/tellduslive/ @fredrike
/tests/components/tellduslive/ @fredrike
/homeassistant/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/tests/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/homeassistant/components/template/ @PhracturedBlue @home-assistant/core
/tests/components/template/ @PhracturedBlue @home-assistant/core
/homeassistant/components/tesla_fleet/ @Bre77
/tests/components/tesla_fleet/ @Bre77
/homeassistant/components/tesla_wall_connector/ @einarhauks
@@ -1571,6 +1587,8 @@ build.json @home-assistant/supervisor
/tests/components/unifi/ @Kane610
/homeassistant/components/unifi_direct/ @tofuSCHNITZEL
/homeassistant/components/unifiled/ @florisvdk
/homeassistant/components/unifiprotect/ @RaHehl
/tests/components/unifiprotect/ @RaHehl
/homeassistant/components/upb/ @gwww
/tests/components/upb/ @gwww
/homeassistant/components/upc_connect/ @pvizeli @fabaff
@@ -1638,6 +1656,8 @@ build.json @home-assistant/supervisor
/tests/components/waqi/ @joostlek
/homeassistant/components/water_heater/ @home-assistant/core
/tests/components/water_heater/ @home-assistant/core
/homeassistant/components/watergate/ @adam-the-hero
/tests/components/watergate/ @adam-the-hero
/homeassistant/components/watson_tts/ @rutkai
/homeassistant/components/watttime/ @bachya
/tests/components/watttime/ @bachya
@@ -1722,6 +1742,7 @@ build.json @home-assistant/supervisor
/tests/components/youless/ @gjong
/homeassistant/components/youtube/ @joostlek
/tests/components/youtube/ @joostlek
/homeassistant/components/zabbix/ @kruton
/homeassistant/components/zamg/ @killer0071234
/tests/components/zamg/ @killer0071234
/homeassistant/components/zengge/ @emontnemery

View File

@@ -13,7 +13,7 @@ ENV \
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.5.0
RUN pip3 install uv==0.5.8
WORKDIR /usr/src
@@ -55,7 +55,7 @@ RUN \
"armv7") go2rtc_suffix='arm' ;; \
*) go2rtc_suffix=${BUILD_ARCH} ;; \
esac \
&& curl -L https://github.com/AlexxIT/go2rtc/releases/download/v1.9.6/go2rtc_linux_${go2rtc_suffix} --output /bin/go2rtc \
&& curl -L https://github.com/AlexxIT/go2rtc/releases/download/v1.9.7/go2rtc_linux_${go2rtc_suffix} --output /bin/go2rtc \
&& chmod +x /bin/go2rtc \
# Verify go2rtc can be executed
&& go2rtc --version

View File

@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/devcontainers/python:1-3.12
FROM mcr.microsoft.com/devcontainers/python:1-3.13
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
@@ -35,6 +35,9 @@ RUN \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Add go2rtc binary
COPY --from=ghcr.io/alexxit/go2rtc:latest /usr/local/bin/go2rtc /bin/go2rtc
# Install uv
RUN pip3 install uv

View File

@@ -1,10 +1,10 @@
image: ghcr.io/home-assistant/{arch}-homeassistant
build_from:
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.06.1
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.06.1
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.06.1
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.06.1
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.06.1
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.12.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.12.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.12.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.12.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.12.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io

View File

@@ -115,7 +115,7 @@ class AuthManagerFlowManager(
*,
context: AuthFlowContext | None = None,
data: dict[str, Any] | None = None,
) -> LoginFlow:
) -> LoginFlow[Any]:
"""Create a login flow."""
auth_provider = self.auth_manager.get_auth_provider(*handler_key)
if not auth_provider:

View File

@@ -18,7 +18,7 @@ from homeassistant.util.json import json_loads
JWT_TOKEN_CACHE_SIZE = 16
MAX_TOKEN_SIZE = 8192
_VERIFY_KEYS = ("signature", "exp", "nbf", "iat", "aud", "iss")
_VERIFY_KEYS = ("signature", "exp", "nbf", "iat", "aud", "iss", "sub", "jti")
_VERIFY_OPTIONS: dict[str, Any] = {f"verify_{key}": True for key in _VERIFY_KEYS} | {
"require": []

View File

@@ -4,8 +4,9 @@ from __future__ import annotations
import logging
import types
from typing import Any
from typing import Any, Generic
from typing_extensions import TypeVar
import voluptuous as vol
from voluptuous.humanize import humanize_error
@@ -34,6 +35,12 @@ DATA_REQS: HassKey[set[str]] = HassKey("mfa_auth_module_reqs_processed")
_LOGGER = logging.getLogger(__name__)
_MultiFactorAuthModuleT = TypeVar(
"_MultiFactorAuthModuleT",
bound="MultiFactorAuthModule",
default="MultiFactorAuthModule",
)
class MultiFactorAuthModule:
"""Multi-factor Auth Module of validation function."""
@@ -71,7 +78,7 @@ class MultiFactorAuthModule:
"""Return a voluptuous schema to define mfa auth module's input."""
raise NotImplementedError
async def async_setup_flow(self, user_id: str) -> SetupFlow:
async def async_setup_flow(self, user_id: str) -> SetupFlow[Any]:
"""Return a data entry flow handler for setup module.
Mfa module should extend SetupFlow
@@ -95,11 +102,14 @@ class MultiFactorAuthModule:
raise NotImplementedError
class SetupFlow(data_entry_flow.FlowHandler):
class SetupFlow(data_entry_flow.FlowHandler, Generic[_MultiFactorAuthModuleT]):
"""Handler for the setup flow."""
def __init__(
self, auth_module: MultiFactorAuthModule, setup_schema: vol.Schema, user_id: str
self,
auth_module: _MultiFactorAuthModuleT,
setup_schema: vol.Schema,
user_id: str,
) -> None:
"""Initialize the setup flow."""
self._auth_module = auth_module

View File

@@ -162,7 +162,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
return sorted(unordered_services)
async def async_setup_flow(self, user_id: str) -> SetupFlow:
async def async_setup_flow(self, user_id: str) -> NotifySetupFlow:
"""Return a data entry flow handler for setup module.
Mfa module should extend SetupFlow
@@ -268,7 +268,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
await self.hass.services.async_call("notify", notify_service, data)
class NotifySetupFlow(SetupFlow):
class NotifySetupFlow(SetupFlow[NotifyAuthModule]):
"""Handler for the setup flow."""
def __init__(
@@ -280,8 +280,6 @@ class NotifySetupFlow(SetupFlow):
) -> None:
"""Initialize the setup flow."""
super().__init__(auth_module, setup_schema, user_id)
# to fix typing complaint
self._auth_module: NotifyAuthModule = auth_module
self._available_notify_services = available_notify_services
self._secret: str | None = None
self._count: int | None = None

View File

@@ -114,7 +114,7 @@ class TotpAuthModule(MultiFactorAuthModule):
self._users[user_id] = ota_secret # type: ignore[index]
return ota_secret
async def async_setup_flow(self, user_id: str) -> SetupFlow:
async def async_setup_flow(self, user_id: str) -> TotpSetupFlow:
"""Return a data entry flow handler for setup module.
Mfa module should extend SetupFlow
@@ -174,20 +174,19 @@ class TotpAuthModule(MultiFactorAuthModule):
return bool(pyotp.TOTP(ota_secret).verify(code, valid_window=1))
class TotpSetupFlow(SetupFlow):
class TotpSetupFlow(SetupFlow[TotpAuthModule]):
"""Handler for the setup flow."""
_ota_secret: str
_url: str
_image: str
def __init__(
self, auth_module: TotpAuthModule, setup_schema: vol.Schema, user: User
) -> None:
"""Initialize the setup flow."""
super().__init__(auth_module, setup_schema, user.id)
# to fix typing complaint
self._auth_module: TotpAuthModule = auth_module
self._user = user
self._ota_secret: str = ""
self._url: str | None = None
self._image: str | None = None
async def async_step_init(
self, user_input: dict[str, str] | None = None
@@ -214,12 +213,11 @@ class TotpSetupFlow(SetupFlow):
errors["base"] = "invalid_code"
else:
hass = self._auth_module.hass
(
self._ota_secret,
self._url,
self._image,
) = await hass.async_add_executor_job(
) = await self._auth_module.hass.async_add_executor_job(
_generate_secret_and_qr_code,
str(self._user.name),
)

View File

@@ -5,8 +5,9 @@ from __future__ import annotations
from collections.abc import Mapping
import logging
import types
from typing import Any
from typing import Any, Generic
from typing_extensions import TypeVar
import voluptuous as vol
from voluptuous.humanize import humanize_error
@@ -46,6 +47,8 @@ AUTH_PROVIDER_SCHEMA = vol.Schema(
extra=vol.ALLOW_EXTRA,
)
_AuthProviderT = TypeVar("_AuthProviderT", bound="AuthProvider", default="AuthProvider")
class AuthProvider:
"""Provider of user authentication."""
@@ -105,7 +108,7 @@ class AuthProvider:
# Implement by extending class
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow:
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow[Any]:
"""Return the data flow for logging in with auth provider.
Auth provider should extend LoginFlow and return an instance.
@@ -192,12 +195,15 @@ async def load_auth_provider_module(
return module
class LoginFlow(FlowHandler[AuthFlowContext, AuthFlowResult, tuple[str, str]]):
class LoginFlow(
FlowHandler[AuthFlowContext, AuthFlowResult, tuple[str, str]],
Generic[_AuthProviderT],
):
"""Handler for the login flow."""
_flow_result = AuthFlowResult
def __init__(self, auth_provider: AuthProvider) -> None:
def __init__(self, auth_provider: _AuthProviderT) -> None:
"""Initialize the login flow."""
self._auth_provider = auth_provider
self._auth_module_id: str | None = None

View File

@@ -6,7 +6,7 @@ import asyncio
from collections.abc import Mapping
import logging
import os
from typing import Any, cast
from typing import Any
import voluptuous as vol
@@ -59,7 +59,9 @@ class CommandLineAuthProvider(AuthProvider):
super().__init__(*args, **kwargs)
self._user_meta: dict[str, dict[str, Any]] = {}
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow:
async def async_login_flow(
self, context: AuthFlowContext | None
) -> CommandLineLoginFlow:
"""Return a flow to login."""
return CommandLineLoginFlow(self)
@@ -133,7 +135,7 @@ class CommandLineAuthProvider(AuthProvider):
)
class CommandLineLoginFlow(LoginFlow):
class CommandLineLoginFlow(LoginFlow[CommandLineAuthProvider]):
"""Handler for the login flow."""
async def async_step_init(
@@ -145,9 +147,9 @@ class CommandLineLoginFlow(LoginFlow):
if user_input is not None:
user_input["username"] = user_input["username"].strip()
try:
await cast(
CommandLineAuthProvider, self._auth_provider
).async_validate_login(user_input["username"], user_input["password"])
await self._auth_provider.async_validate_login(
user_input["username"], user_input["password"]
)
except InvalidAuthError:
errors["base"] = "invalid_auth"

View File

@@ -305,7 +305,7 @@ class HassAuthProvider(AuthProvider):
await data.async_load()
self.data = data
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow:
async def async_login_flow(self, context: AuthFlowContext | None) -> HassLoginFlow:
"""Return a flow to login."""
return HassLoginFlow(self)
@@ -400,7 +400,7 @@ class HassAuthProvider(AuthProvider):
pass
class HassLoginFlow(LoginFlow):
class HassLoginFlow(LoginFlow[HassAuthProvider]):
"""Handler for the login flow."""
async def async_step_init(
@@ -411,7 +411,7 @@ class HassLoginFlow(LoginFlow):
if user_input is not None:
try:
await cast(HassAuthProvider, self._auth_provider).async_validate_login(
await self._auth_provider.async_validate_login(
user_input["username"], user_input["password"]
)
except InvalidAuth:

View File

@@ -4,7 +4,6 @@ from __future__ import annotations
from collections.abc import Mapping
import hmac
from typing import cast
import voluptuous as vol
@@ -36,7 +35,9 @@ class InvalidAuthError(HomeAssistantError):
class ExampleAuthProvider(AuthProvider):
"""Example auth provider based on hardcoded usernames and passwords."""
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow:
async def async_login_flow(
self, context: AuthFlowContext | None
) -> ExampleLoginFlow:
"""Return a flow to login."""
return ExampleLoginFlow(self)
@@ -93,7 +94,7 @@ class ExampleAuthProvider(AuthProvider):
return UserMeta(name=name, is_active=True)
class ExampleLoginFlow(LoginFlow):
class ExampleLoginFlow(LoginFlow[ExampleAuthProvider]):
"""Handler for the login flow."""
async def async_step_init(
@@ -104,7 +105,7 @@ class ExampleLoginFlow(LoginFlow):
if user_input is not None:
try:
cast(ExampleAuthProvider, self._auth_provider).async_validate_login(
self._auth_provider.async_validate_login(
user_input["username"], user_input["password"]
)
except InvalidAuthError:

View File

@@ -104,7 +104,9 @@ class TrustedNetworksAuthProvider(AuthProvider):
"""Trusted Networks auth provider does not support MFA."""
return False
async def async_login_flow(self, context: AuthFlowContext | None) -> LoginFlow:
async def async_login_flow(
self, context: AuthFlowContext | None
) -> TrustedNetworksLoginFlow:
"""Return a flow to login."""
assert context is not None
ip_addr = cast(IPAddress, context.get("ip_address"))
@@ -214,7 +216,7 @@ class TrustedNetworksAuthProvider(AuthProvider):
self.async_validate_access(ip_address(remote_ip))
class TrustedNetworksLoginFlow(LoginFlow):
class TrustedNetworksLoginFlow(LoginFlow[TrustedNetworksAuthProvider]):
"""Handler for the login flow."""
def __init__(
@@ -235,9 +237,7 @@ class TrustedNetworksLoginFlow(LoginFlow):
) -> AuthFlowResult:
"""Handle the step of the form."""
try:
cast(
TrustedNetworksAuthProvider, self._auth_provider
).async_validate_access(self._ip_address)
self._auth_provider.async_validate_access(self._ip_address)
except InvalidAuthError:
return self.async_abort(reason="not_allowed")

View File

@@ -1,6 +1,10 @@
"""Home Assistant module to handle restoring backups."""
from __future__ import annotations
from collections.abc import Iterable
from dataclasses import dataclass
import hashlib
import json
import logging
from pathlib import Path
@@ -14,7 +18,12 @@ import securetar
from .const import __version__ as HA_VERSION
RESTORE_BACKUP_FILE = ".HA_RESTORE"
KEEP_PATHS = ("backups",)
KEEP_BACKUPS = ("backups",)
KEEP_DATABASE = (
"home-assistant_v2.db",
"home-assistant_v2.db-wal",
)
_LOGGER = logging.getLogger(__name__)
@@ -24,6 +33,21 @@ class RestoreBackupFileContent:
"""Definition for restore backup file content."""
backup_file_path: Path
password: str | None
remove_after_restore: bool
restore_database: bool
restore_homeassistant: bool
def password_to_key(password: str) -> bytes:
"""Generate a AES Key from password.
Matches the implementation in supervisor.backups.utils.password_to_key.
"""
key: bytes = password.encode()
for _ in range(100):
key = hashlib.sha256(key).digest()
return key[:16]
def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent | None:
@@ -32,20 +56,27 @@ def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent |
try:
instruction_content = json.loads(instruction_path.read_text(encoding="utf-8"))
return RestoreBackupFileContent(
backup_file_path=Path(instruction_content["path"])
backup_file_path=Path(instruction_content["path"]),
password=instruction_content["password"],
remove_after_restore=instruction_content["remove_after_restore"],
restore_database=instruction_content["restore_database"],
restore_homeassistant=instruction_content["restore_homeassistant"],
)
except (FileNotFoundError, json.JSONDecodeError):
except (FileNotFoundError, KeyError, json.JSONDecodeError):
return None
finally:
# Always remove the backup instruction file to prevent a boot loop
instruction_path.unlink(missing_ok=True)
def _clear_configuration_directory(config_dir: Path) -> None:
"""Delete all files and directories in the config directory except for the backups directory."""
keep_paths = [config_dir.joinpath(path) for path in KEEP_PATHS]
config_contents = sorted(
[entry for entry in config_dir.iterdir() if entry not in keep_paths]
def _clear_configuration_directory(config_dir: Path, keep: Iterable[str]) -> None:
"""Delete all files and directories in the config directory except entries in the keep list."""
keep_paths = [config_dir.joinpath(path) for path in keep]
entries_to_remove = sorted(
entry for entry in config_dir.iterdir() if entry not in keep_paths
)
for entry in config_contents:
for entry in entries_to_remove:
entrypath = config_dir.joinpath(entry)
if entrypath.is_file():
@@ -54,12 +85,15 @@ def _clear_configuration_directory(config_dir: Path) -> None:
shutil.rmtree(entrypath)
def _extract_backup(config_dir: Path, backup_file_path: Path) -> None:
def _extract_backup(
config_dir: Path,
restore_content: RestoreBackupFileContent,
) -> None:
"""Extract the backup file to the config directory."""
with (
TemporaryDirectory() as tempdir,
securetar.SecureTarFile(
backup_file_path,
restore_content.backup_file_path,
gzip=False,
mode="r",
) as ostf,
@@ -88,22 +122,41 @@ def _extract_backup(config_dir: Path, backup_file_path: Path) -> None:
f"homeassistant.tar{'.gz' if backup_meta["compressed"] else ''}",
),
gzip=backup_meta["compressed"],
key=password_to_key(restore_content.password)
if restore_content.password is not None
else None,
mode="r",
) as istf:
for member in istf.getmembers():
if member.name == "data":
continue
member.name = member.name.replace("data/", "")
_clear_configuration_directory(config_dir)
istf.extractall(
path=config_dir,
members=[
member
for member in securetar.secure_path(istf)
if member.name != "data"
],
path=Path(tempdir, "homeassistant"),
members=securetar.secure_path(istf),
filter="fully_trusted",
)
if restore_content.restore_homeassistant:
keep = list(KEEP_BACKUPS)
if not restore_content.restore_database:
keep.extend(KEEP_DATABASE)
_clear_configuration_directory(config_dir, keep)
shutil.copytree(
Path(tempdir, "homeassistant", "data"),
config_dir,
dirs_exist_ok=True,
ignore=shutil.ignore_patterns(*(keep)),
)
elif restore_content.restore_database:
for entry in KEEP_DATABASE:
entrypath = config_dir / entry
if entrypath.is_file():
entrypath.unlink()
elif entrypath.is_dir():
shutil.rmtree(entrypath)
for entry in KEEP_DATABASE:
shutil.copy(
Path(tempdir, "homeassistant", "data", entry),
config_dir,
)
def restore_backup(config_dir_path: str) -> bool:
@@ -119,8 +172,13 @@ def restore_backup(config_dir_path: str) -> bool:
backup_file_path = restore_content.backup_file_path
_LOGGER.info("Restoring %s", backup_file_path)
try:
_extract_backup(config_dir, backup_file_path)
_extract_backup(
config_dir=config_dir,
restore_content=restore_content,
)
except FileNotFoundError as err:
raise ValueError(f"Backup file {backup_file_path} does not exist") from err
if restore_content.remove_after_restore:
backup_file_path.unlink(missing_ok=True)
_LOGGER.info("Restore complete, restarting")
return True

View File

@@ -50,6 +50,12 @@ def _check_sleep_call_allowed(mapped_args: dict[str, Any]) -> bool:
return False
def _check_load_verify_locations_call_allowed(mapped_args: dict[str, Any]) -> bool:
# If only cadata is passed, we can ignore it
kwargs = mapped_args.get("kwargs")
return bool(kwargs and len(kwargs) == 1 and "cadata" in kwargs)
@dataclass(slots=True, frozen=True)
class BlockingCall:
"""Class to hold information about a blocking call."""
@@ -158,7 +164,7 @@ _BLOCKING_CALLS: tuple[BlockingCall, ...] = (
original_func=SSLContext.load_verify_locations,
object=SSLContext,
function="load_verify_locations",
check_allowed=None,
check_allowed=_check_load_verify_locations_call_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,

View File

@@ -252,6 +252,7 @@ PRELOAD_STORAGE = [
"assist_pipeline.pipelines",
"core.analytics",
"auth_module.totp",
"backup",
]
@@ -515,7 +516,7 @@ async def async_from_config_dict(
issue_registry.async_create_issue(
hass,
core.DOMAIN,
"python_version",
f"python_version_{required_python_version}",
is_fixable=False,
severity=issue_registry.IssueSeverity.WARNING,
breaks_in_ha_version=REQUIRED_NEXT_PYTHON_HA_RELEASE,

View File

@@ -0,0 +1,5 @@
{
"domain": "sky",
"name": "Sky",
"integrations": ["sky_hub", "sky_remote"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "slide",
"name": "Slide",
"integrations": ["slide", "slide_local"]
}

View File

@@ -112,9 +112,6 @@ class AbodeFlowHandler(ConfigFlow, domain=DOMAIN):
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
if self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
if user_input is None:
return self.async_show_form(
step_id="user", data_schema=vol.Schema(self.data_schema)

View File

@@ -9,18 +9,16 @@ from jaraco.abode.devices.light import Light
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
ATTR_COLOR_TEMP,
ATTR_COLOR_TEMP_KELVIN,
ATTR_HS_COLOR,
DEFAULT_MAX_KELVIN,
DEFAULT_MIN_KELVIN,
ColorMode,
LightEntity,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util.color import (
color_temperature_kelvin_to_mired,
color_temperature_mired_to_kelvin,
)
from . import AbodeSystem
from .const import DOMAIN
@@ -44,13 +42,13 @@ class AbodeLight(AbodeDevice, LightEntity):
_device: Light
_attr_name = None
_attr_max_color_temp_kelvin = DEFAULT_MAX_KELVIN
_attr_min_color_temp_kelvin = DEFAULT_MIN_KELVIN
def turn_on(self, **kwargs: Any) -> None:
"""Turn on the light."""
if ATTR_COLOR_TEMP in kwargs and self._device.is_color_capable:
self._device.set_color_temp(
int(color_temperature_mired_to_kelvin(kwargs[ATTR_COLOR_TEMP]))
)
if ATTR_COLOR_TEMP_KELVIN in kwargs and self._device.is_color_capable:
self._device.set_color_temp(kwargs[ATTR_COLOR_TEMP_KELVIN])
return
if ATTR_HS_COLOR in kwargs and self._device.is_color_capable:
@@ -85,10 +83,10 @@ class AbodeLight(AbodeDevice, LightEntity):
return None
@property
def color_temp(self) -> int | None:
def color_temp_kelvin(self) -> int | None:
"""Return the color temp of the light."""
if self._device.has_color:
return color_temperature_kelvin_to_mired(self._device.color_temp)
return int(self._device.color_temp)
return None
@property

View File

@@ -9,5 +9,6 @@
},
"iot_class": "cloud_push",
"loggers": ["jaraco.abode", "lomond"],
"requirements": ["jaraco.abode==6.2.1"]
"requirements": ["jaraco.abode==6.2.1"],
"single_config_entry": true
}

View File

@@ -28,7 +28,6 @@
"invalid_mfa_code": "Invalid MFA code"
},
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},

View File

@@ -0,0 +1,31 @@
"""Initialize the Acaia component."""
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from .coordinator import AcaiaConfigEntry, AcaiaCoordinator
PLATFORMS = [
Platform.BINARY_SENSOR,
Platform.BUTTON,
Platform.SENSOR,
]
async def async_setup_entry(hass: HomeAssistant, entry: AcaiaConfigEntry) -> bool:
"""Set up acaia as config entry."""
coordinator = AcaiaCoordinator(hass, entry)
await coordinator.async_config_entry_first_refresh()
entry.runtime_data = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: AcaiaConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)

View File

@@ -0,0 +1,61 @@
"""Binary sensor platform for Acaia scales."""
from collections.abc import Callable
from dataclasses import dataclass
from aioacaia.acaiascale import AcaiaScale
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
BinarySensorEntity,
BinarySensorEntityDescription,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
# Coordinator is used to centralize the data updates
PARALLEL_UPDATES = 0
@dataclass(kw_only=True, frozen=True)
class AcaiaBinarySensorEntityDescription(BinarySensorEntityDescription):
"""Description for Acaia binary sensor entities."""
is_on_fn: Callable[[AcaiaScale], bool]
BINARY_SENSORS: tuple[AcaiaBinarySensorEntityDescription, ...] = (
AcaiaBinarySensorEntityDescription(
key="timer_running",
translation_key="timer_running",
device_class=BinarySensorDeviceClass.RUNNING,
is_on_fn=lambda scale: scale.timer_running,
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up binary sensors."""
coordinator = entry.runtime_data
async_add_entities(
AcaiaBinarySensor(coordinator, description) for description in BINARY_SENSORS
)
class AcaiaBinarySensor(AcaiaEntity, BinarySensorEntity):
"""Representation of an Acaia binary sensor."""
entity_description: AcaiaBinarySensorEntityDescription
@property
def is_on(self) -> bool:
"""Return true if the binary sensor is on."""
return self.entity_description.is_on_fn(self._scale)

View File

@@ -0,0 +1,63 @@
"""Button entities for Acaia scales."""
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from typing import Any
from aioacaia.acaiascale import AcaiaScale
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
PARALLEL_UPDATES = 0
@dataclass(kw_only=True, frozen=True)
class AcaiaButtonEntityDescription(ButtonEntityDescription):
"""Description for acaia button entities."""
press_fn: Callable[[AcaiaScale], Coroutine[Any, Any, None]]
BUTTONS: tuple[AcaiaButtonEntityDescription, ...] = (
AcaiaButtonEntityDescription(
key="tare",
translation_key="tare",
press_fn=lambda scale: scale.tare(),
),
AcaiaButtonEntityDescription(
key="reset_timer",
translation_key="reset_timer",
press_fn=lambda scale: scale.reset_timer(),
),
AcaiaButtonEntityDescription(
key="start_stop",
translation_key="start_stop",
press_fn=lambda scale: scale.start_stop_timer(),
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up button entities and services."""
coordinator = entry.runtime_data
async_add_entities(AcaiaButton(coordinator, description) for description in BUTTONS)
class AcaiaButton(AcaiaEntity, ButtonEntity):
"""Representation of an Acaia button."""
entity_description: AcaiaButtonEntityDescription
async def async_press(self) -> None:
"""Handle the button press."""
await self.entity_description.press_fn(self._scale)

View File

@@ -0,0 +1,149 @@
"""Config flow for Acaia integration."""
import logging
from typing import Any
from aioacaia.exceptions import AcaiaDeviceNotFound, AcaiaError, AcaiaUnknownDevice
from aioacaia.helpers import is_new_scale
import voluptuous as vol
from homeassistant.components.bluetooth import (
BluetoothServiceInfoBleak,
async_discovered_service_info,
)
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_ADDRESS, CONF_NAME
from homeassistant.helpers.device_registry import format_mac
from homeassistant.helpers.selector import (
SelectOptionDict,
SelectSelector,
SelectSelectorConfig,
SelectSelectorMode,
)
from .const import CONF_IS_NEW_STYLE_SCALE, DOMAIN
_LOGGER = logging.getLogger(__name__)
class AcaiaConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for acaia."""
def __init__(self) -> None:
"""Initialize the config flow."""
self._discovered: dict[str, Any] = {}
self._discovered_devices: dict[str, str] = {}
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
errors: dict[str, str] = {}
if user_input is not None:
mac = user_input[CONF_ADDRESS]
try:
is_new_style_scale = await is_new_scale(mac)
except AcaiaDeviceNotFound:
errors["base"] = "device_not_found"
except AcaiaError:
_LOGGER.exception("Error occurred while connecting to the scale")
errors["base"] = "unknown"
except AcaiaUnknownDevice:
return self.async_abort(reason="unsupported_device")
else:
await self.async_set_unique_id(format_mac(mac))
self._abort_if_unique_id_configured()
if not errors:
return self.async_create_entry(
title=self._discovered_devices[mac],
data={
CONF_ADDRESS: mac,
CONF_IS_NEW_STYLE_SCALE: is_new_style_scale,
},
)
for device in async_discovered_service_info(self.hass):
self._discovered_devices[device.address] = device.name
if not self._discovered_devices:
return self.async_abort(reason="no_devices_found")
options = [
SelectOptionDict(
value=device_mac,
label=f"{device_name} ({device_mac})",
)
for device_mac, device_name in self._discovered_devices.items()
]
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Required(CONF_ADDRESS): SelectSelector(
SelectSelectorConfig(
options=options,
mode=SelectSelectorMode.DROPDOWN,
)
)
}
),
errors=errors,
)
async def async_step_bluetooth(
self, discovery_info: BluetoothServiceInfoBleak
) -> ConfigFlowResult:
"""Handle a discovered Bluetooth device."""
self._discovered[CONF_ADDRESS] = discovery_info.address
self._discovered[CONF_NAME] = discovery_info.name
await self.async_set_unique_id(format_mac(discovery_info.address))
self._abort_if_unique_id_configured()
try:
self._discovered[CONF_IS_NEW_STYLE_SCALE] = await is_new_scale(
discovery_info.address
)
except AcaiaDeviceNotFound:
_LOGGER.debug("Device not found during discovery")
return self.async_abort(reason="device_not_found")
except AcaiaError:
_LOGGER.debug(
"Error occurred while connecting to the scale during discovery",
exc_info=True,
)
return self.async_abort(reason="unknown")
except AcaiaUnknownDevice:
_LOGGER.debug("Unsupported device during discovery")
return self.async_abort(reason="unsupported_device")
return await self.async_step_bluetooth_confirm()
async def async_step_bluetooth_confirm(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle confirmation of Bluetooth discovery."""
if user_input is not None:
return self.async_create_entry(
title=self._discovered[CONF_NAME],
data={
CONF_ADDRESS: self._discovered[CONF_ADDRESS],
CONF_IS_NEW_STYLE_SCALE: self._discovered[CONF_IS_NEW_STYLE_SCALE],
},
)
self.context["title_placeholders"] = placeholders = {
CONF_NAME: self._discovered[CONF_NAME]
}
self._set_confirm_only()
return self.async_show_form(
step_id="bluetooth_confirm",
description_placeholders=placeholders,
)

View File

@@ -0,0 +1,4 @@
"""Constants for component."""
DOMAIN = "acaia"
CONF_IS_NEW_STYLE_SCALE = "is_new_style_scale"

View File

@@ -0,0 +1,86 @@
"""Coordinator for Acaia integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from aioacaia.acaiascale import AcaiaScale
from aioacaia.exceptions import AcaiaDeviceNotFound, AcaiaError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ADDRESS
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import CONF_IS_NEW_STYLE_SCALE
SCAN_INTERVAL = timedelta(seconds=15)
_LOGGER = logging.getLogger(__name__)
type AcaiaConfigEntry = ConfigEntry[AcaiaCoordinator]
class AcaiaCoordinator(DataUpdateCoordinator[None]):
"""Class to handle fetching data from the scale."""
config_entry: AcaiaConfigEntry
def __init__(self, hass: HomeAssistant, entry: AcaiaConfigEntry) -> None:
"""Initialize coordinator."""
super().__init__(
hass,
_LOGGER,
name="acaia coordinator",
update_interval=SCAN_INTERVAL,
config_entry=entry,
)
self._scale = AcaiaScale(
address_or_ble_device=entry.data[CONF_ADDRESS],
name=entry.title,
is_new_style_scale=entry.data[CONF_IS_NEW_STYLE_SCALE],
notify_callback=self.async_update_listeners,
)
@property
def scale(self) -> AcaiaScale:
"""Return the scale object."""
return self._scale
async def _async_update_data(self) -> None:
"""Fetch data."""
# scale is already connected, return
if self._scale.connected:
return
# scale is not connected, try to connect
try:
await self._scale.connect(setup_tasks=False)
except (AcaiaDeviceNotFound, AcaiaError, TimeoutError) as ex:
_LOGGER.debug(
"Could not connect to scale: %s, Error: %s",
self.config_entry.data[CONF_ADDRESS],
ex,
)
self._scale.device_disconnected_handler(notify=False)
return
# connected, set up background tasks
if not self._scale.heartbeat_task or self._scale.heartbeat_task.done():
self._scale.heartbeat_task = self.config_entry.async_create_background_task(
hass=self.hass,
target=self._scale.send_heartbeats(),
name="acaia_heartbeat_task",
)
if not self._scale.process_queue_task or self._scale.process_queue_task.done():
self._scale.process_queue_task = (
self.config_entry.async_create_background_task(
hass=self.hass,
target=self._scale.process_queue(),
name="acaia_process_queue_task",
)
)

View File

@@ -0,0 +1,31 @@
"""Diagnostics support for Acaia."""
from __future__ import annotations
from dataclasses import asdict
from typing import Any
from homeassistant.core import HomeAssistant
from . import AcaiaConfigEntry
async def async_get_config_entry_diagnostics(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator = entry.runtime_data
scale = coordinator.scale
# collect all data sources
return {
"model": scale.model,
"device_state": (
asdict(scale.device_state) if scale.device_state is not None else ""
),
"mac": scale.mac,
"last_disconnect_time": scale.last_disconnect_time,
"timer": scale.timer,
"weight": scale.weight,
}

View File

@@ -0,0 +1,46 @@
"""Base class for Acaia entities."""
from dataclasses import dataclass
from homeassistant.helpers.device_registry import (
CONNECTION_BLUETOOTH,
DeviceInfo,
format_mac,
)
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import AcaiaCoordinator
@dataclass
class AcaiaEntity(CoordinatorEntity[AcaiaCoordinator]):
"""Common elements for all entities."""
_attr_has_entity_name = True
def __init__(
self,
coordinator: AcaiaCoordinator,
entity_description: EntityDescription,
) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self.entity_description = entity_description
self._scale = coordinator.scale
formatted_mac = format_mac(self._scale.mac)
self._attr_unique_id = f"{formatted_mac}_{entity_description.key}"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, formatted_mac)},
manufacturer="Acaia",
model=self._scale.model,
suggested_area="Kitchen",
connections={(CONNECTION_BLUETOOTH, self._scale.mac)},
)
@property
def available(self) -> bool:
"""Returns whether entity is available."""
return super().available and self._scale.connected

View File

@@ -0,0 +1,24 @@
{
"entity": {
"binary_sensor": {
"timer_running": {
"default": "mdi:timer",
"state": {
"on": "mdi:timer-play",
"off": "mdi:timer-off"
}
}
},
"button": {
"tare": {
"default": "mdi:scale-balance"
},
"reset_timer": {
"default": "mdi:timer-refresh"
},
"start_stop": {
"default": "mdi:timer-play"
}
}
}
}

View File

@@ -0,0 +1,30 @@
{
"domain": "acaia",
"name": "Acaia",
"bluetooth": [
{
"manufacturer_id": 16962
},
{
"local_name": "ACAIA*"
},
{
"local_name": "PYXIS-*"
},
{
"local_name": "LUNAR-*"
},
{
"local_name": "PROCHBT001"
}
],
"codeowners": ["@zweckj"],
"config_flow": true,
"dependencies": ["bluetooth_adapters"],
"documentation": "https://www.home-assistant.io/integrations/acaia",
"integration_type": "device",
"iot_class": "local_push",
"loggers": ["aioacaia"],
"quality_scale": "platinum",
"requirements": ["aioacaia==0.1.11"]
}

View File

@@ -0,0 +1,106 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
No custom actions are defined.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: |
No custom actions are defined.
docs-high-level-description: done
docs-installation-instructions: done
docs-removal-instructions: done
entity-event-setup:
status: exempt
comment: |
No explicit event subscriptions.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: done
test-before-setup:
status: exempt
comment: |
Device is expected to be offline most of the time, but needs to connect quickly once available.
unique-config-entry: done
# Silver
action-exceptions:
status: exempt
comment: |
No custom actions are defined.
config-entry-unloading: done
docs-configuration-parameters: done
docs-installation-parameters: done
entity-unavailable: done
integration-owner: done
log-when-unavailable:
status: done
comment: |
Handled by coordinator.
parallel-updates: done
reauthentication-flow:
status: exempt
comment: |
No authentication required.
test-coverage: done
# Gold
devices: done
diagnostics: done
discovery-update-info:
status: exempt
comment: |
No IP discovery.
discovery:
status: done
comment: |
Bluetooth discovery.
docs-data-update: done
docs-examples: done
docs-known-limitations: done
docs-supported-devices: done
docs-supported-functions: done
docs-troubleshooting: done
docs-use-cases: done
dynamic-devices:
status: exempt
comment: |
Device type integration.
entity-category: done
entity-device-class: done
entity-disabled-by-default:
status: exempt
comment: |
No noisy/non-essential entities.
entity-translations: done
exception-translations:
status: exempt
comment: |
No custom exceptions.
icon-translations: done
reconfiguration-flow:
status: exempt
comment: |
Only parameter that could be changed (MAC = unique_id) would force a new config entry.
repair-issues:
status: exempt
comment: |
No repairs/issues.
stale-devices:
status: exempt
comment: |
Device type integration.
# Platinum
async-dependency: done
inject-websession:
status: exempt
comment: |
Bluetooth connection.
strict-typing: done

View File

@@ -0,0 +1,146 @@
"""Sensor platform for Acaia."""
from collections.abc import Callable
from dataclasses import dataclass
from aioacaia.acaiascale import AcaiaDeviceState, AcaiaScale
from aioacaia.const import UnitMass as AcaiaUnitOfMass
from homeassistant.components.sensor import (
RestoreSensor,
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorExtraStoredData,
SensorStateClass,
)
from homeassistant.const import PERCENTAGE, UnitOfMass, UnitOfVolumeFlowRate
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
# Coordinator is used to centralize the data updates
PARALLEL_UPDATES = 0
@dataclass(kw_only=True, frozen=True)
class AcaiaSensorEntityDescription(SensorEntityDescription):
"""Description for Acaia sensor entities."""
value_fn: Callable[[AcaiaScale], int | float | None]
@dataclass(kw_only=True, frozen=True)
class AcaiaDynamicUnitSensorEntityDescription(AcaiaSensorEntityDescription):
"""Description for Acaia sensor entities with dynamic units."""
unit_fn: Callable[[AcaiaDeviceState], str] | None = None
SENSORS: tuple[AcaiaSensorEntityDescription, ...] = (
AcaiaDynamicUnitSensorEntityDescription(
key="weight",
device_class=SensorDeviceClass.WEIGHT,
native_unit_of_measurement=UnitOfMass.GRAMS,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda data: (
UnitOfMass.OUNCES
if data.units == AcaiaUnitOfMass.OUNCES
else UnitOfMass.GRAMS
),
value_fn=lambda scale: scale.weight,
),
AcaiaDynamicUnitSensorEntityDescription(
key="flow_rate",
device_class=SensorDeviceClass.VOLUME_FLOW_RATE,
native_unit_of_measurement=UnitOfVolumeFlowRate.MILLILITERS_PER_SECOND,
suggested_display_precision=1,
state_class=SensorStateClass.MEASUREMENT,
value_fn=lambda scale: scale.flow_rate,
),
)
RESTORE_SENSORS: tuple[AcaiaSensorEntityDescription, ...] = (
AcaiaSensorEntityDescription(
key="battery",
device_class=SensorDeviceClass.BATTERY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value_fn=lambda scale: (
scale.device_state.battery_level if scale.device_state else None
),
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up sensors."""
coordinator = entry.runtime_data
entities: list[SensorEntity] = [
AcaiaSensor(coordinator, entity_description) for entity_description in SENSORS
]
entities.extend(
AcaiaRestoreSensor(coordinator, entity_description)
for entity_description in RESTORE_SENSORS
)
async_add_entities(entities)
class AcaiaSensor(AcaiaEntity, SensorEntity):
"""Representation of an Acaia sensor."""
entity_description: AcaiaDynamicUnitSensorEntityDescription
@property
def native_unit_of_measurement(self) -> str | None:
"""Return the unit of measurement of this entity."""
if (
self._scale.device_state is not None
and self.entity_description.unit_fn is not None
):
return self.entity_description.unit_fn(self._scale.device_state)
return self.entity_description.native_unit_of_measurement
@property
def native_value(self) -> int | float | None:
"""Return the state of the entity."""
return self.entity_description.value_fn(self._scale)
class AcaiaRestoreSensor(AcaiaEntity, RestoreSensor):
"""Representation of an Acaia sensor with restore capabilities."""
entity_description: AcaiaSensorEntityDescription
_restored_data: SensorExtraStoredData | None = None
async def async_added_to_hass(self) -> None:
"""Handle entity which will be added."""
await super().async_added_to_hass()
self._restored_data = await self.async_get_last_sensor_data()
if self._restored_data is not None:
self._attr_native_value = self._restored_data.native_value
self._attr_native_unit_of_measurement = (
self._restored_data.native_unit_of_measurement
)
if self._scale.device_state is not None:
self._attr_native_value = self.entity_description.value_fn(self._scale)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle updated data from the coordinator."""
if self._scale.device_state is not None:
self._attr_native_value = self.entity_description.value_fn(self._scale)
self._async_write_ha_state()
@property
def available(self) -> bool:
"""Return True if entity is available."""
return super().available or self._restored_data is not None

View File

@@ -0,0 +1,46 @@
{
"config": {
"flow_title": "{name}",
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"unsupported_device": "This device is not supported."
},
"error": {
"device_not_found": "Device could not be found.",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:common::config_flow::data::device%]"
},
"data_description": {
"address": "Select Acaia scale you want to set up"
}
}
}
},
"entity": {
"binary_sensor": {
"timer_running": {
"name": "Timer running"
}
},
"button": {
"tare": {
"name": "Tare"
},
"reset_timer": {
"name": "Reset timer"
},
"start_stop": {
"name": "Start/stop timer"
}
}
}
}

View File

@@ -7,7 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"quality_scale": "platinum",
"requirements": ["accuweather==3.0.0"],
"requirements": ["accuweather==4.0.0"],
"single_config_entry": true
}

View File

@@ -4,5 +4,6 @@
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"iot_class": "local_polling",
"quality_scale": "legacy",
"requirements": ["pyserial==3.5"]
}

View File

@@ -3,5 +3,6 @@
"name": "Actiontec",
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/actiontec",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}

View File

@@ -75,7 +75,6 @@ class AdaxDevice(ClimateEntity):
)
_attr_target_temperature_step = PRECISION_WHOLE
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_enable_turn_on_off_backwards_compatibility = False
def __init__(self, heater_data: dict[str, Any], adax_data_handler: Adax) -> None:
"""Initialize the heater."""

View File

@@ -37,7 +37,7 @@ STATE_KEY_POSITION = "position"
PLATFORM_SCHEMA = COVER_PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_ADS_VAR): cv.string,
vol.Required(CONF_ADS_VAR): cv.string,
vol.Optional(CONF_ADS_VAR_POSITION): cv.string,
vol.Optional(CONF_ADS_VAR_SET_POS): cv.string,
vol.Optional(CONF_ADS_VAR_CLOSE): cv.string,

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/ads",
"iot_class": "local_push",
"loggers": ["pyads"],
"quality_scale": "legacy",
"requirements": ["pyads==3.4.0"]
}

View File

@@ -102,7 +102,6 @@ class AdvantageAirAC(AdvantageAirAcEntity, ClimateEntity):
_attr_max_temp = 32
_attr_min_temp = 16
_attr_name = None
_enable_turn_on_off_backwards_compatibility = False
_support_preset = ClimateEntityFeature(0)
def __init__(self, instance: AdvantageAirData, ac_key: str) -> None:
@@ -261,7 +260,6 @@ class AdvantageAirZone(AdvantageAirZoneEntity, ClimateEntity):
_attr_target_temperature_step = PRECISION_WHOLE
_attr_max_temp = 32
_attr_min_temp = 16
_enable_turn_on_off_backwards_compatibility = False
def __init__(self, instance: AdvantageAirData, ac_key: str, zone_key: str) -> None:
"""Initialize an AdvantageAir Zone control."""

View File

@@ -6,6 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/advantage_air",
"iot_class": "local_polling",
"loggers": ["advantage_air"],
"quality_scale": "platinum",
"requirements": ["advantage-air==0.4.4"]
}

View File

@@ -1,17 +1,19 @@
"""The AEMET OpenData component."""
import logging
import shutil
from aemet_opendata.exceptions import AemetError, TownNotFound
from aemet_opendata.interface import AEMET, ConnectionOptions
from aemet_opendata.interface import AEMET, ConnectionOptions, UpdateFeature
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers.storage import STORAGE_DIR
from .const import CONF_STATION_UPDATES, PLATFORMS
from .const import CONF_RADAR_UPDATES, CONF_STATION_UPDATES, DOMAIN, PLATFORMS
from .coordinator import AemetConfigEntry, AemetData, WeatherUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
@@ -23,10 +25,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: AemetConfigEntry) -> boo
api_key = entry.data[CONF_API_KEY]
latitude = entry.data[CONF_LATITUDE]
longitude = entry.data[CONF_LONGITUDE]
station_updates = entry.options.get(CONF_STATION_UPDATES, True)
update_features: int = UpdateFeature.FORECAST
if entry.options.get(CONF_RADAR_UPDATES, False):
update_features |= UpdateFeature.RADAR
if entry.options.get(CONF_STATION_UPDATES, True):
update_features |= UpdateFeature.STATION
options = ConnectionOptions(api_key, station_updates)
options = ConnectionOptions(api_key, update_features)
aemet = AEMET(aiohttp_client.async_get_clientsession(hass), options)
aemet.set_api_data_dir(hass.config.path(STORAGE_DIR, f"{DOMAIN}-{entry.unique_id}"))
try:
await aemet.select_coordinates(latitude, longitude)
except TownNotFound as err:
@@ -55,3 +63,11 @@ async def async_update_options(hass: HomeAssistant, entry: ConfigEntry) -> None:
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Remove a config entry."""
await hass.async_add_executor_job(
shutil.rmtree,
hass.config.path(STORAGE_DIR, f"{DOMAIN}-{entry.unique_id}"),
)

View File

@@ -17,10 +17,11 @@ from homeassistant.helpers.schema_config_entry_flow import (
SchemaOptionsFlowHandler,
)
from .const import CONF_STATION_UPDATES, DEFAULT_NAME, DOMAIN
from .const import CONF_RADAR_UPDATES, CONF_STATION_UPDATES, DEFAULT_NAME, DOMAIN
OPTIONS_SCHEMA = vol.Schema(
{
vol.Required(CONF_RADAR_UPDATES, default=False): bool,
vol.Required(CONF_STATION_UPDATES, default=True): bool,
}
)
@@ -45,7 +46,7 @@ class AemetConfigFlow(ConfigFlow, domain=DOMAIN):
await self.async_set_unique_id(f"{latitude}-{longitude}")
self._abort_if_unique_id_configured()
options = ConnectionOptions(user_input[CONF_API_KEY], False)
options = ConnectionOptions(user_input[CONF_API_KEY])
aemet = AEMET(aiohttp_client.async_get_clientsession(self.hass), options)
try:
await aemet.select_coordinates(latitude, longitude)

View File

@@ -51,8 +51,9 @@ from homeassistant.components.weather import (
from homeassistant.const import Platform
ATTRIBUTION = "Powered by AEMET OpenData"
CONF_RADAR_UPDATES = "radar_updates"
CONF_STATION_UPDATES = "station_updates"
PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
PLATFORMS = [Platform.IMAGE, Platform.SENSOR, Platform.WEATHER]
DEFAULT_NAME = "AEMET"
DOMAIN = "aemet"

View File

@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import Any
from aemet_opendata.const import AOD_COORDS
from aemet_opendata.const import AOD_COORDS, AOD_IMG_BYTES
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import (
@@ -26,6 +26,7 @@ TO_REDACT_CONFIG = [
TO_REDACT_COORD = [
AOD_COORDS,
AOD_IMG_BYTES,
]

View File

@@ -0,0 +1,86 @@
"""Support for the AEMET OpenData images."""
from __future__ import annotations
from typing import Final
from aemet_opendata.const import AOD_DATETIME, AOD_IMG_BYTES, AOD_IMG_TYPE, AOD_RADAR
from aemet_opendata.helpers import dict_nested_value
from homeassistant.components.image import Image, ImageEntity, ImageEntityDescription
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AemetConfigEntry, WeatherUpdateCoordinator
from .entity import AemetEntity
AEMET_IMAGES: Final[tuple[ImageEntityDescription, ...]] = (
ImageEntityDescription(
key=AOD_RADAR,
translation_key="weather_radar",
),
)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AemetConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AEMET OpenData image entities based on a config entry."""
domain_data = config_entry.runtime_data
name = domain_data.name
coordinator = domain_data.coordinator
unique_id = config_entry.unique_id
assert unique_id is not None
async_add_entities(
AemetImage(
hass,
name,
coordinator,
description,
unique_id,
)
for description in AEMET_IMAGES
if dict_nested_value(coordinator.data["lib"], [description.key]) is not None
)
class AemetImage(AemetEntity, ImageEntity):
"""Implementation of an AEMET OpenData image."""
entity_description: ImageEntityDescription
def __init__(
self,
hass: HomeAssistant,
name: str,
coordinator: WeatherUpdateCoordinator,
description: ImageEntityDescription,
unique_id: str,
) -> None:
"""Initialize the image."""
super().__init__(coordinator, name, unique_id)
ImageEntity.__init__(self, hass)
self.entity_description = description
self._attr_unique_id = f"{unique_id}-{description.key}"
self._async_update_attrs()
@callback
def _handle_coordinator_update(self) -> None:
"""Update attributes when the coordinator updates."""
self._async_update_attrs()
super()._handle_coordinator_update()
@callback
def _async_update_attrs(self) -> None:
"""Update image attributes."""
image_data = self.get_aemet_value([self.entity_description.key])
self._cached_image = Image(
content_type=image_data.get(AOD_IMG_TYPE),
content=image_data.get(AOD_IMG_BYTES),
)
self._attr_image_last_updated = image_data.get(AOD_DATETIME)

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/aemet",
"iot_class": "cloud_polling",
"loggers": ["aemet_opendata"],
"requirements": ["AEMET-OpenData==0.5.4"]
"requirements": ["AEMET-OpenData==0.6.4"]
}

View File

@@ -18,10 +18,18 @@
}
}
},
"entity": {
"image": {
"weather_radar": {
"name": "Weather radar"
}
}
},
"options": {
"step": {
"init": {
"data": {
"radar_updates": "Gather data from AEMET weather radar",
"station_updates": "Gather data from AEMET weather stations"
}
}

View File

@@ -0,0 +1,86 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
This integration does not provide additional actions.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: |
This integration does not provide additional actions.
docs-high-level-description: todo
docs-installation-instructions: todo
docs-removal-instructions: todo
entity-event-setup:
status: exempt
comment: |
Entities of this integration does not explicitly subscribe to events.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: done
test-before-setup: done
unique-config-entry: done
# Silver
action-exceptions: todo
config-entry-unloading: done
docs-configuration-parameters:
status: exempt
comment: No options to configure
docs-installation-parameters: todo
entity-unavailable: done
integration-owner: done
log-when-unavailable: done
parallel-updates: todo
reauthentication-flow:
status: exempt
comment: |
This integration does not require authentication.
test-coverage: todo
# Gold
devices: done
diagnostics: done
discovery-update-info:
status: todo
comment: DHCP is still possible
discovery:
status: todo
comment: DHCP is still possible
docs-data-update: todo
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices: todo
docs-supported-functions: todo
docs-troubleshooting: todo
docs-use-cases: todo
dynamic-devices:
status: exempt
comment: |
This integration has a fixed single device.
entity-category: done
entity-device-class: done
entity-disabled-by-default: done
entity-translations: done
exception-translations: todo
icon-translations: done
reconfiguration-flow: todo
repair-issues:
status: exempt
comment: |
This integration doesn't have any cases where raising an issue is needed.
stale-devices:
status: exempt
comment: |
This integration has a fixed single device.
# Platinum
async-dependency: done
inject-websession: done
strict-typing: done

View File

@@ -7,6 +7,5 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["airly"],
"quality_scale": "platinum",
"requirements": ["airly==1.1.0"]
}

View File

@@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["aioairq"],
"requirements": ["aioairq==0.3.2"]
"requirements": ["aioairq==0.4.3"]
}

View File

@@ -95,7 +95,6 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
| ClimateEntityFeature.TURN_ON
)
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_enable_turn_on_off_backwards_compatibility = False
def __init__(self, coordinator, ac_number, info):
"""Initialize the climate device."""
@@ -205,7 +204,6 @@ class AirtouchGroup(CoordinatorEntity, ClimateEntity):
)
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_attr_hvac_modes = AT_GROUP_MODES
_enable_turn_on_off_backwards_compatibility = False
def __init__(self, coordinator, group_number, info):
"""Initialize the climate device."""

View File

@@ -124,7 +124,6 @@ class Airtouch5ClimateEntity(ClimateEntity, Airtouch5Entity):
_attr_translation_key = DOMAIN
_attr_target_temperature_step = 1
_attr_name = None
_enable_turn_on_off_backwards_compatibility = False
class Airtouch5AC(Airtouch5ClimateEntity):

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airtouch5",
"iot_class": "local_push",
"loggers": ["airtouch5py"],
"requirements": ["airtouch5py==0.2.10"]
"requirements": ["airtouch5py==0.2.11"]
}

View File

@@ -136,7 +136,6 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity):
_attr_name = None
_speeds: dict[int, str] = {}
_speeds_reverse: dict[str, int] = {}
_enable_turn_on_off_backwards_compatibility = False
def __init__(
self,

View File

@@ -11,5 +11,5 @@
"documentation": "https://www.home-assistant.io/integrations/airzone",
"iot_class": "local_polling",
"loggers": ["aioairzone"],
"requirements": ["aioairzone==0.9.5"]
"requirements": ["aioairzone==0.9.7"]
}

View File

@@ -177,7 +177,6 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
_attr_name = None
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_enable_turn_on_off_backwards_compatibility = False
def _init_attributes(self) -> None:
"""Init common climate device attributes."""
@@ -194,12 +193,6 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
)
if (
self.get_airzone_value(AZD_SPEED) is not None
and self.get_airzone_value(AZD_SPEEDS) is not None
):
self._initialize_fan_speeds()
@callback
def _handle_coordinator_update(self) -> None:
"""Update attributes when the coordinator updates."""
@@ -214,8 +207,6 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
self._attr_hvac_action = HVAC_ACTION_LIB_TO_HASS[
self.get_airzone_value(AZD_ACTION)
]
if self.supported_features & ClimateEntityFeature.FAN_MODE:
self._attr_fan_mode = self._speeds.get(self.get_airzone_value(AZD_SPEED))
if self.get_airzone_value(AZD_POWER):
self._attr_hvac_mode = HVAC_MODE_LIB_TO_HASS[
self.get_airzone_value(AZD_MODE)
@@ -252,6 +243,22 @@ class AirzoneDeviceClimate(AirzoneClimate):
_speeds: dict[int, str]
_speeds_reverse: dict[str, int]
def _init_attributes(self) -> None:
"""Init common climate device attributes."""
super()._init_attributes()
if (
self.get_airzone_value(AZD_SPEED) is not None
and self.get_airzone_value(AZD_SPEEDS) is not None
):
self._initialize_fan_speeds()
@callback
def _async_update_attrs(self) -> None:
"""Update climate attributes."""
super()._async_update_attrs()
if self.supported_features & ClimateEntityFeature.FAN_MODE:
self._attr_fan_mode = self._speeds.get(self.get_airzone_value(AZD_SPEED))
def _initialize_fan_speeds(self) -> None:
"""Initialize fan speeds."""
azd_speeds: dict[int, int] = self.get_airzone_value(AZD_SPEEDS)

View File

@@ -4,9 +4,8 @@ from __future__ import annotations
import asyncio
from datetime import timedelta
from functools import partial
import logging
from typing import Any, Final, final
from typing import TYPE_CHECKING, Any, Final, final
from propcache import cached_property
import voluptuous as vol
@@ -27,26 +26,14 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ServiceValidationError
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.config_validation import make_entity_service_schema
from homeassistant.helpers.deprecation import (
all_with_deprecated_constants,
check_if_deprecated_constant,
dir_with_deprecated_constants,
)
from homeassistant.helpers.entity import Entity, EntityDescription
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.entity_platform import EntityPlatform
from homeassistant.helpers.frame import ReportBehavior, report_usage
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.hass_dict import HassKey
from .const import ( # noqa: F401
_DEPRECATED_FORMAT_NUMBER,
_DEPRECATED_FORMAT_TEXT,
_DEPRECATED_SUPPORT_ALARM_ARM_AWAY,
_DEPRECATED_SUPPORT_ALARM_ARM_CUSTOM_BYPASS,
_DEPRECATED_SUPPORT_ALARM_ARM_HOME,
_DEPRECATED_SUPPORT_ALARM_ARM_NIGHT,
_DEPRECATED_SUPPORT_ALARM_ARM_VACATION,
_DEPRECATED_SUPPORT_ALARM_TRIGGER,
from .const import (
ATTR_CHANGED_BY,
ATTR_CODE_ARM_REQUIRED,
DOMAIN,
@@ -163,7 +150,6 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
_alarm_control_panel_option_default_code: str | None = None
__alarm_legacy_state: bool = False
__alarm_legacy_state_reported: bool = False
def __init_subclass__(cls, **kwargs: Any) -> None:
"""Post initialisation processing."""
@@ -173,17 +159,15 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
# setting the state directly.
cls.__alarm_legacy_state = True
def __setattr__(self, __name: str, __value: Any) -> None:
def __setattr__(self, name: str, value: Any, /) -> None:
"""Set attribute.
Deprecation warning if setting '_attr_state' directly
unless already reported.
"""
if __name == "_attr_state":
if self.__alarm_legacy_state_reported is not True:
self._report_deprecated_alarm_state_handling()
self.__alarm_legacy_state_reported = True
return super().__setattr__(__name, __value)
if name == "_attr_state":
self._report_deprecated_alarm_state_handling()
return super().__setattr__(name, value)
@callback
def add_to_platform_start(
@@ -194,7 +178,7 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
) -> None:
"""Start adding an entity to a platform."""
super().add_to_platform_start(hass, platform, parallel_updates)
if self.__alarm_legacy_state and not self.__alarm_legacy_state_reported:
if self.__alarm_legacy_state:
self._report_deprecated_alarm_state_handling()
@callback
@@ -203,27 +187,30 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
Integrations should implement alarm_state instead of using state directly.
"""
self.__alarm_legacy_state_reported = True
if "custom_components" in type(self).__module__:
# Do not report on core integrations as they have been fixed.
report_issue = "report it to the custom integration author."
_LOGGER.warning(
"Entity %s (%s) is setting state directly"
" which will stop working in HA Core 2025.11."
" Entities should implement the 'alarm_state' property and"
" return its state using the AlarmControlPanelState enum, please %s",
self.entity_id,
type(self),
report_issue,
)
report_usage(
"is setting state directly."
f" Entity {self.entity_id} ({type(self)}) should implement the 'alarm_state'"
" property and return its state using the AlarmControlPanelState enum",
core_integration_behavior=ReportBehavior.ERROR,
custom_integration_behavior=ReportBehavior.LOG,
breaks_in_ha_version="2025.11",
integration_domain=self.platform.platform_name if self.platform else None,
exclude_integrations={DOMAIN},
)
@final
@property
def state(self) -> str | None:
"""Return the current state."""
if (alarm_state := self.alarm_state) is None:
return None
return alarm_state
if (alarm_state := self.alarm_state) is not None:
return alarm_state
if self._attr_state is not None:
# Backwards compatibility for integrations that set state directly
# Should be removed in 2025.11
if TYPE_CHECKING:
assert isinstance(self._attr_state, str)
return self._attr_state
return None
@cached_property
def alarm_state(self) -> AlarmControlPanelState | None:
@@ -269,7 +256,6 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
"""Check if arm code is required, raise if no code is given."""
if not (_code := self.code_or_default_code(code)) and self.code_arm_required:
raise ServiceValidationError(
f"Arming requires a code but none was given for {self.entity_id}",
translation_domain=DOMAIN,
translation_key="code_arm_required",
translation_placeholders={
@@ -369,12 +355,7 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
@cached_property
def supported_features(self) -> AlarmControlPanelEntityFeature:
"""Return the list of supported features."""
features = self._attr_supported_features
if type(features) is int: # noqa: E721
new_features = AlarmControlPanelEntityFeature(features)
self._report_deprecated_supported_features_values(new_features)
return new_features
return features
return self._attr_supported_features
@final
@property
@@ -412,13 +393,3 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
self._alarm_control_panel_option_default_code = default_code
return
self._alarm_control_panel_option_default_code = None
# As we import constants of the const module here, we need to add the following
# functions to check for deprecated constants again
# These can be removed if no deprecated constant are in this module anymore
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
__dir__ = partial(
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
)
__all__ = all_with_deprecated_constants(globals())

View File

@@ -1,16 +1,8 @@
"""Provides the constants needed for component."""
from enum import IntFlag, StrEnum
from functools import partial
from typing import Final
from homeassistant.helpers.deprecation import (
DeprecatedConstantEnum,
all_with_deprecated_constants,
check_if_deprecated_constant,
dir_with_deprecated_constants,
)
DOMAIN: Final = "alarm_control_panel"
ATTR_CHANGED_BY: Final = "changed_by"
@@ -39,12 +31,6 @@ class CodeFormat(StrEnum):
NUMBER = "number"
# These constants are deprecated as of Home Assistant 2022.5, can be removed in 2025.1
# Please use the CodeFormat enum instead.
_DEPRECATED_FORMAT_TEXT: Final = DeprecatedConstantEnum(CodeFormat.TEXT, "2025.1")
_DEPRECATED_FORMAT_NUMBER: Final = DeprecatedConstantEnum(CodeFormat.NUMBER, "2025.1")
class AlarmControlPanelEntityFeature(IntFlag):
"""Supported features of the alarm control panel entity."""
@@ -56,27 +42,6 @@ class AlarmControlPanelEntityFeature(IntFlag):
ARM_VACATION = 32
# These constants are deprecated as of Home Assistant 2022.5
# Please use the AlarmControlPanelEntityFeature enum instead.
_DEPRECATED_SUPPORT_ALARM_ARM_HOME: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.ARM_HOME, "2025.1"
)
_DEPRECATED_SUPPORT_ALARM_ARM_AWAY: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.ARM_AWAY, "2025.1"
)
_DEPRECATED_SUPPORT_ALARM_ARM_NIGHT: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.ARM_NIGHT, "2025.1"
)
_DEPRECATED_SUPPORT_ALARM_TRIGGER: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.TRIGGER, "2025.1"
)
_DEPRECATED_SUPPORT_ALARM_ARM_CUSTOM_BYPASS: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS, "2025.1"
)
_DEPRECATED_SUPPORT_ALARM_ARM_VACATION: Final = DeprecatedConstantEnum(
AlarmControlPanelEntityFeature.ARM_VACATION, "2025.1"
)
CONDITION_TRIGGERED: Final = "is_triggered"
CONDITION_DISARMED: Final = "is_disarmed"
CONDITION_ARMED_HOME: Final = "is_armed_home"
@@ -84,10 +49,3 @@ CONDITION_ARMED_AWAY: Final = "is_armed_away"
CONDITION_ARMED_NIGHT: Final = "is_armed_night"
CONDITION_ARMED_VACATION: Final = "is_armed_vacation"
CONDITION_ARMED_CUSTOM_BYPASS: Final = "is_armed_custom_bypass"
# These can be removed if no deprecated constant are in this module anymore
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
__dir__ = partial(
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
)
__all__ = all_with_deprecated_constants(globals())

View File

@@ -130,7 +130,7 @@
},
"alarm_trigger": {
"name": "Trigger",
"description": "Enables an external alarm trigger.",
"description": "Trigger the alarm manually.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
@@ -138,5 +138,10 @@
}
}
}
},
"exceptions": {
"code_arm_required": {
"message": "Arming requires a code but none was given for {entity_id}."
}
}
}

View File

@@ -317,6 +317,7 @@ class Alexa(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -403,6 +404,7 @@ class AlexaPowerController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -436,7 +438,7 @@ class AlexaPowerController(AlexaCapability):
elif self.entity.domain == remote.DOMAIN:
is_on = self.entity.state not in (STATE_OFF, STATE_UNKNOWN)
elif self.entity.domain == vacuum.DOMAIN:
is_on = self.entity.state == vacuum.STATE_CLEANING
is_on = self.entity.state == vacuum.VacuumActivity.CLEANING
elif self.entity.domain == timer.DOMAIN:
is_on = self.entity.state != STATE_IDLE
elif self.entity.domain == water_heater.DOMAIN:
@@ -469,6 +471,7 @@ class AlexaLockController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -523,6 +526,7 @@ class AlexaSceneController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -562,6 +566,7 @@ class AlexaBrightnessController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -611,6 +616,7 @@ class AlexaColorController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -669,6 +675,7 @@ class AlexaColorTemperatureController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -715,6 +722,7 @@ class AlexaSpeaker(AlexaCapability):
"fr-FR", # Not documented as of 2021-12-04, see PR #60489
"it-IT",
"ja-JP",
"nl-NL",
}
def name(self) -> str:
@@ -772,6 +780,7 @@ class AlexaStepSpeaker(AlexaCapability):
"es-ES",
"fr-FR", # Not documented as of 2021-12-04, see PR #60489
"it-IT",
"nl-NL",
}
def name(self) -> str:
@@ -801,6 +810,7 @@ class AlexaPlaybackController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -816,13 +826,19 @@ class AlexaPlaybackController(AlexaCapability):
"""
supported_features = self.entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
operations = {
media_player.MediaPlayerEntityFeature.NEXT_TRACK: "Next",
media_player.MediaPlayerEntityFeature.PAUSE: "Pause",
media_player.MediaPlayerEntityFeature.PLAY: "Play",
media_player.MediaPlayerEntityFeature.PREVIOUS_TRACK: "Previous",
media_player.MediaPlayerEntityFeature.STOP: "Stop",
}
operations: dict[
cover.CoverEntityFeature | media_player.MediaPlayerEntityFeature, str
]
if self.entity.domain == cover.DOMAIN:
operations = {cover.CoverEntityFeature.STOP: "Stop"}
else:
operations = {
media_player.MediaPlayerEntityFeature.NEXT_TRACK: "Next",
media_player.MediaPlayerEntityFeature.PAUSE: "Pause",
media_player.MediaPlayerEntityFeature.PLAY: "Play",
media_player.MediaPlayerEntityFeature.PREVIOUS_TRACK: "Previous",
media_player.MediaPlayerEntityFeature.STOP: "Stop",
}
return [
value
@@ -853,6 +869,7 @@ class AlexaInputController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -1098,6 +1115,7 @@ class AlexaThermostatController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -1239,6 +1257,7 @@ class AlexaPowerLevelController(AlexaCapability):
"fr-CA",
"fr-FR",
"it-IT",
"nl-NL",
"ja-JP",
}
@@ -1717,6 +1736,7 @@ class AlexaRangeController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -2060,6 +2080,7 @@ class AlexaToggleController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -2206,6 +2227,7 @@ class AlexaPlaybackStateReporter(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -2261,6 +2283,7 @@ class AlexaSeekController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -2354,6 +2377,7 @@ class AlexaEqualizerController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}
@@ -2464,6 +2488,7 @@ class AlexaCameraStreamController(AlexaCapability):
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}

View File

@@ -59,6 +59,7 @@ CONF_SUPPORTED_LOCALES = (
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
)

View File

@@ -559,6 +559,10 @@ class CoverCapabilities(AlexaEntity):
)
if supported & cover.CoverEntityFeature.SET_TILT_POSITION:
yield AlexaRangeController(self.entity, instance=f"{cover.DOMAIN}.tilt")
if supported & (
cover.CoverEntityFeature.STOP | cover.CoverEntityFeature.STOP_TILT
):
yield AlexaPlaybackController(self.entity, instance=f"{cover.DOMAIN}.stop")
yield AlexaEndpointHealth(self.hass, self.entity)
yield Alexa(self.entity)

View File

@@ -2,6 +2,7 @@
from __future__ import annotations
import asyncio
from collections.abc import Callable, Coroutine
import logging
import math
@@ -358,7 +359,7 @@ async def async_api_set_color_temperature(
await hass.services.async_call(
entity.domain,
SERVICE_TURN_ON,
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_KELVIN: kelvin},
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_COLOR_TEMP_KELVIN: kelvin},
blocking=False,
context=context,
)
@@ -375,14 +376,14 @@ async def async_api_decrease_color_temp(
) -> AlexaResponse:
"""Process a decrease color temperature request."""
entity = directive.entity
current = int(entity.attributes[light.ATTR_COLOR_TEMP])
max_mireds = int(entity.attributes[light.ATTR_MAX_MIREDS])
current = int(entity.attributes[light.ATTR_COLOR_TEMP_KELVIN])
min_kelvin = int(entity.attributes[light.ATTR_MIN_COLOR_TEMP_KELVIN])
value = min(max_mireds, current + 50)
value = max(min_kelvin, current - 500)
await hass.services.async_call(
entity.domain,
SERVICE_TURN_ON,
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_COLOR_TEMP: value},
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_COLOR_TEMP_KELVIN: value},
blocking=False,
context=context,
)
@@ -399,14 +400,14 @@ async def async_api_increase_color_temp(
) -> AlexaResponse:
"""Process an increase color temperature request."""
entity = directive.entity
current = int(entity.attributes[light.ATTR_COLOR_TEMP])
min_mireds = int(entity.attributes[light.ATTR_MIN_MIREDS])
current = int(entity.attributes[light.ATTR_COLOR_TEMP_KELVIN])
max_kelvin = int(entity.attributes[light.ATTR_MAX_COLOR_TEMP_KELVIN])
value = max(min_mireds, current - 50)
value = min(max_kelvin, current + 500)
await hass.services.async_call(
entity.domain,
SERVICE_TURN_ON,
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_COLOR_TEMP: value},
{ATTR_ENTITY_ID: entity.entity_id, light.ATTR_COLOR_TEMP_KELVIN: value},
blocking=False,
context=context,
)
@@ -526,6 +527,7 @@ async def async_api_unlock(
"hi-IN",
"it-IT",
"ja-JP",
"nl-NL",
"pt-BR",
}:
msg = (
@@ -764,9 +766,25 @@ async def async_api_stop(
entity = directive.entity
data: dict[str, Any] = {ATTR_ENTITY_ID: entity.entity_id}
await hass.services.async_call(
entity.domain, SERVICE_MEDIA_STOP, data, blocking=False, context=context
)
if entity.domain == cover.DOMAIN:
supported: int = entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
feature_services: dict[int, str] = {
cover.CoverEntityFeature.STOP.value: cover.SERVICE_STOP_COVER,
cover.CoverEntityFeature.STOP_TILT.value: cover.SERVICE_STOP_COVER_TILT,
}
await asyncio.gather(
*(
hass.services.async_call(
entity.domain, service, data, blocking=False, context=context
)
for feature, service in feature_services.items()
if feature & supported
)
)
else:
await hass.services.async_call(
entity.domain, SERVICE_MEDIA_STOP, data, blocking=False, context=context
)
return directive.response()

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/alpha_vantage",
"iot_class": "cloud_polling",
"loggers": ["alpha_vantage"],
"quality_scale": "legacy",
"requirements": ["alpha-vantage==2.3.1"]
}

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/amazon_polly",
"iot_class": "cloud_push",
"loggers": ["boto3", "botocore", "s3transfer"],
"quality_scale": "legacy",
"requirements": ["boto3==1.34.131"]
}

View File

@@ -1,7 +1,6 @@
"""Support for Amber Electric."""
from amberelectric import Configuration
from amberelectric.api import amber_api
import amberelectric
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_TOKEN
@@ -15,8 +14,9 @@ type AmberConfigEntry = ConfigEntry[AmberUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: AmberConfigEntry) -> bool:
"""Set up Amber Electric from a config entry."""
configuration = Configuration(access_token=entry.data[CONF_API_TOKEN])
api_instance = amber_api.AmberApi.create(configuration)
configuration = amberelectric.Configuration(access_token=entry.data[CONF_API_TOKEN])
api_client = amberelectric.ApiClient(configuration)
api_instance = amberelectric.AmberApi(api_client)
site_id = entry.data[CONF_SITE_ID]
coordinator = AmberUpdateCoordinator(hass, api_instance, site_id)

View File

@@ -3,8 +3,8 @@
from __future__ import annotations
import amberelectric
from amberelectric.api import amber_api
from amberelectric.model.site import Site, SiteStatus
from amberelectric.models.site import Site
from amberelectric.models.site_status import SiteStatus
import voluptuous as vol
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
@@ -23,11 +23,15 @@ API_URL = "https://app.amber.com.au/developers"
def generate_site_selector_name(site: Site) -> str:
"""Generate the name to show in the site drop down in the configuration flow."""
# For some reason the generated API key returns this as any, not a string. Thanks pydantic
nmi = str(site.nmi)
if site.status == SiteStatus.CLOSED:
return site.nmi + " (Closed: " + site.closed_on.isoformat() + ")" # type: ignore[no-any-return]
if site.closed_on is None:
return f"{nmi} (Closed)"
return f"{nmi} (Closed: {site.closed_on.isoformat()})"
if site.status == SiteStatus.PENDING:
return site.nmi + " (Pending)" # type: ignore[no-any-return]
return site.nmi # type: ignore[no-any-return]
return f"{nmi} (Pending)"
return nmi
def filter_sites(sites: list[Site]) -> list[Site]:
@@ -35,7 +39,7 @@ def filter_sites(sites: list[Site]) -> list[Site]:
filtered: list[Site] = []
filtered_nmi: set[str] = set()
for site in sorted(sites, key=lambda site: site.status.value):
for site in sorted(sites, key=lambda site: site.status):
if site.status == SiteStatus.ACTIVE or site.nmi not in filtered_nmi:
filtered.append(site)
filtered_nmi.add(site.nmi)
@@ -56,7 +60,8 @@ class AmberElectricConfigFlow(ConfigFlow, domain=DOMAIN):
def _fetch_sites(self, token: str) -> list[Site] | None:
configuration = amberelectric.Configuration(access_token=token)
api: amber_api.AmberApi = amber_api.AmberApi.create(configuration)
api_client = amberelectric.ApiClient(configuration)
api = amberelectric.AmberApi(api_client)
try:
sites: list[Site] = filter_sites(api.get_sites())

View File

@@ -5,13 +5,13 @@ from __future__ import annotations
from datetime import timedelta
from typing import Any
from amberelectric import ApiException
from amberelectric.api import amber_api
from amberelectric.model.actual_interval import ActualInterval
from amberelectric.model.channel import ChannelType
from amberelectric.model.current_interval import CurrentInterval
from amberelectric.model.forecast_interval import ForecastInterval
from amberelectric.model.interval import Descriptor
import amberelectric
from amberelectric.models.actual_interval import ActualInterval
from amberelectric.models.channel import ChannelType
from amberelectric.models.current_interval import CurrentInterval
from amberelectric.models.forecast_interval import ForecastInterval
from amberelectric.models.price_descriptor import PriceDescriptor
from amberelectric.rest import ApiException
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -31,22 +31,22 @@ def is_forecast(interval: ActualInterval | CurrentInterval | ForecastInterval) -
def is_general(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool:
"""Return true if the supplied interval is on the general channel."""
return interval.channel_type == ChannelType.GENERAL # type: ignore[no-any-return]
return interval.channel_type == ChannelType.GENERAL
def is_controlled_load(
interval: ActualInterval | CurrentInterval | ForecastInterval,
) -> bool:
"""Return true if the supplied interval is on the controlled load channel."""
return interval.channel_type == ChannelType.CONTROLLED_LOAD # type: ignore[no-any-return]
return interval.channel_type == ChannelType.CONTROLLEDLOAD
def is_feed_in(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool:
"""Return true if the supplied interval is on the feed in channel."""
return interval.channel_type == ChannelType.FEED_IN # type: ignore[no-any-return]
return interval.channel_type == ChannelType.FEEDIN
def normalize_descriptor(descriptor: Descriptor) -> str | None:
def normalize_descriptor(descriptor: PriceDescriptor | None) -> str | None:
"""Return the snake case versions of descriptor names. Returns None if the name is not recognized."""
if descriptor is None:
return None
@@ -71,7 +71,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
"""AmberUpdateCoordinator - In charge of downloading the data for a site, which all the sensors read."""
def __init__(
self, hass: HomeAssistant, api: amber_api.AmberApi, site_id: str
self, hass: HomeAssistant, api: amberelectric.AmberApi, site_id: str
) -> None:
"""Initialise the data service."""
super().__init__(
@@ -93,12 +93,13 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
"grid": {},
}
try:
data = self._api.get_current_price(self.site_id, next=48)
data = self._api.get_current_prices(self.site_id, next=48)
intervals = [interval.actual_instance for interval in data]
except ApiException as api_exception:
raise UpdateFailed("Missing price data, skipping update") from api_exception
current = [interval for interval in data if is_current(interval)]
forecasts = [interval for interval in data if is_forecast(interval)]
current = [interval for interval in intervals if is_current(interval)]
forecasts = [interval for interval in intervals if is_forecast(interval)]
general = [interval for interval in current if is_general(interval)]
if len(general) == 0:
@@ -137,7 +138,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
interval for interval in forecasts if is_feed_in(interval)
]
LOGGER.debug("Fetched new Amber data: %s", data)
LOGGER.debug("Fetched new Amber data: %s", intervals)
return result
async def _async_update_data(self) -> dict[str, Any]:

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/amberelectric",
"iot_class": "cloud_polling",
"loggers": ["amberelectric"],
"requirements": ["amberelectric==1.1.1"]
"requirements": ["amberelectric==2.0.12"]
}

View File

@@ -8,9 +8,9 @@ from __future__ import annotations
from typing import Any
from amberelectric.model.channel import ChannelType
from amberelectric.model.current_interval import CurrentInterval
from amberelectric.model.forecast_interval import ForecastInterval
from amberelectric.models.channel import ChannelType
from amberelectric.models.current_interval import CurrentInterval
from amberelectric.models.forecast_interval import ForecastInterval
from homeassistant.components.sensor import (
SensorEntity,
@@ -52,7 +52,7 @@ class AmberSensor(CoordinatorEntity[AmberUpdateCoordinator], SensorEntity):
self,
coordinator: AmberUpdateCoordinator,
description: SensorEntityDescription,
channel_type: ChannelType,
channel_type: str,
) -> None:
"""Initialize the Sensor."""
super().__init__(coordinator)
@@ -73,7 +73,7 @@ class AmberPriceSensor(AmberSensor):
"""Return the current price in $/kWh."""
interval = self.coordinator.data[self.entity_description.key][self.channel_type]
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
return format_cents_to_dollars(interval.per_kwh) * -1
return format_cents_to_dollars(interval.per_kwh)
@@ -87,9 +87,9 @@ class AmberPriceSensor(AmberSensor):
return data
data["duration"] = interval.duration
data["date"] = interval.date.isoformat()
data["date"] = interval.var_date.isoformat()
data["per_kwh"] = format_cents_to_dollars(interval.per_kwh)
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
data["per_kwh"] = data["per_kwh"] * -1
data["nem_date"] = interval.nem_time.isoformat()
data["spot_per_kwh"] = format_cents_to_dollars(interval.spot_per_kwh)
@@ -120,7 +120,7 @@ class AmberForecastSensor(AmberSensor):
return None
interval = intervals[0]
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
return format_cents_to_dollars(interval.per_kwh) * -1
return format_cents_to_dollars(interval.per_kwh)
@@ -142,10 +142,10 @@ class AmberForecastSensor(AmberSensor):
for interval in intervals:
datum = {}
datum["duration"] = interval.duration
datum["date"] = interval.date.isoformat()
datum["date"] = interval.var_date.isoformat()
datum["nem_date"] = interval.nem_time.isoformat()
datum["per_kwh"] = format_cents_to_dollars(interval.per_kwh)
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
datum["per_kwh"] = datum["per_kwh"] * -1
datum["spot_per_kwh"] = format_cents_to_dollars(interval.spot_per_kwh)
datum["start_time"] = interval.start_time.isoformat()

View File

@@ -6,5 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/amcrest",
"iot_class": "local_polling",
"loggers": ["amcrest"],
"quality_scale": "legacy",
"requirements": ["amcrest==1.9.8"]
}

View File

@@ -41,7 +41,7 @@
}
},
"enable_motion_recording": {
"name": "Enables motion recording",
"name": "Enable motion recording",
"description": "Enables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
@@ -51,8 +51,8 @@
}
},
"disable_motion_recording": {
"name": "Disables motion recording",
"description": "Disable recording a clip to camera storage when motion is detected.",
"name": "Disable motion recording",
"description": "Disables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/ampio",
"iot_class": "cloud_polling",
"loggers": ["asmog"],
"quality_scale": "legacy",
"requirements": ["asmog==0.0.6"]
}

View File

@@ -11,12 +11,7 @@ from python_homeassistant_analytics import (
from python_homeassistant_analytics.models import IntegrationType
import voluptuous as vol
from homeassistant.config_entries import (
ConfigEntry,
ConfigFlow,
ConfigFlowResult,
OptionsFlow,
)
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult, OptionsFlow
from homeassistant.core import callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.selector import (
@@ -25,6 +20,7 @@ from homeassistant.helpers.selector import (
SelectSelectorConfig,
)
from . import AnalyticsInsightsConfigEntry
from .const import (
CONF_TRACKED_ADDONS,
CONF_TRACKED_CUSTOM_INTEGRATIONS,
@@ -46,7 +42,7 @@ class HomeassistantAnalyticsConfigFlow(ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_options_flow(
config_entry: ConfigEntry,
config_entry: AnalyticsInsightsConfigEntry,
) -> HomeassistantAnalyticsOptionsFlowHandler:
"""Get the options flow for this handler."""
return HomeassistantAnalyticsOptionsFlowHandler()

View File

@@ -7,6 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["python_homeassistant_analytics"],
"requirements": ["python-homeassistant-analytics==0.8.0"],
"requirements": ["python-homeassistant-analytics==0.8.1"],
"single_config_entry": true
}

View File

@@ -0,0 +1,100 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
This integration does not provide additional actions.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: |
This integration does not provide additional actions.
docs-high-level-description: todo
docs-installation-instructions: todo
docs-removal-instructions: todo
entity-event-setup:
status: exempt
comment: |
Entities of this integration does not explicitly subscribe to events.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: done
test-before-setup: done
unique-config-entry: done
# Silver
action-exceptions:
status: exempt
comment: |
This integration does not provide actions.
config-entry-unloading: done
docs-configuration-parameters: todo
docs-installation-parameters: todo
entity-unavailable:
status: done
comment: |
The coordinator handles this.
integration-owner: done
log-when-unavailable:
status: done
comment: |
The coordinator handles this.
parallel-updates: todo
reauthentication-flow:
status: exempt
comment: |
This integration does not require authentication.
test-coverage: todo
# Gold
devices: done
diagnostics: todo
discovery-update-info:
status: exempt
comment: |
This integration is a cloud service and thus does not support discovery.
discovery:
status: exempt
comment: |
This integration is a cloud service and thus does not support discovery.
docs-data-update: todo
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices: todo
docs-supported-functions: todo
docs-troubleshooting: todo
docs-use-cases: todo
dynamic-devices:
status: exempt
comment: |
This integration has a fixed single service.
entity-category: done
entity-device-class:
status: exempt
comment: |
This integration does not have entities with device classes.
entity-disabled-by-default: done
entity-translations: done
exception-translations: todo
icon-translations: done
reconfiguration-flow:
status: exempt
comment: All the options of this integration are managed via the options flow
repair-issues:
status: exempt
comment: |
This integration doesn't have any cases where raising an issue is needed.
stale-devices:
status: exempt
comment: |
This integration has a fixed single service.
# Platinum
async-dependency: done
inject-websession: done
strict-typing: done

View File

@@ -110,7 +110,7 @@ def _setup_androidtv(
adb_log = f"using Python ADB implementation with adbkey='{adbkey}'"
else:
# Use "pure-python-adb" (communicate with ADB server)
# Communicate via ADB server
signer = None
adb_log = (
"using ADB server at"
@@ -135,15 +135,16 @@ async def async_connect_androidtv(
)
aftv = await async_androidtv_setup(
config[CONF_HOST],
config[CONF_PORT],
adbkey,
config.get(CONF_ADB_SERVER_IP),
config.get(CONF_ADB_SERVER_PORT, DEFAULT_ADB_SERVER_PORT),
state_detection_rules,
config[CONF_DEVICE_CLASS],
timeout,
signer,
host=config[CONF_HOST],
port=config[CONF_PORT],
adbkey=adbkey,
adb_server_ip=config.get(CONF_ADB_SERVER_IP),
adb_server_port=config.get(CONF_ADB_SERVER_PORT, DEFAULT_ADB_SERVER_PORT),
state_detection_rules=state_detection_rules,
device_class=config[CONF_DEVICE_CLASS],
auth_timeout_s=timeout,
signer=signer,
log_errors=False,
)
if not aftv.available:

View File

@@ -151,5 +151,5 @@ class AndroidTVEntity(Entity):
# Using "adb_shell" (Python ADB implementation)
self.exceptions = ADB_PYTHON_EXCEPTIONS
else:
# Using "pure-python-adb" (communicate with ADB server)
# Communicate via ADB server
self.exceptions = ADB_TCP_EXCEPTIONS

View File

@@ -6,10 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/androidtv",
"integration_type": "device",
"iot_class": "local_polling",
"loggers": ["adb_shell", "androidtv", "pure_python_adb"],
"requirements": [
"adb-shell[async]==0.4.4",
"androidtv[async]==0.0.73",
"pure-python-adb[async]==0.3.0.dev0"
]
"loggers": ["adb_shell", "androidtv"],
"requirements": ["adb-shell[async]==0.4.4", "androidtv[async]==0.0.75"]
}

View File

@@ -156,7 +156,12 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
# and one of them, which could end up being in discovery_info.host, is from a
# different device. If any of the discovery_info.ip_addresses matches the
# existing host, don't update the host.
if existing_config_entry and len(discovery_info.ip_addresses) > 1:
if (
existing_config_entry
# Ignored entries don't have host
and CONF_HOST in existing_config_entry.data
and len(discovery_info.ip_addresses) > 1
):
existing_host = existing_config_entry.data[CONF_HOST]
if existing_host != self.host:
if existing_host in [

View File

@@ -7,7 +7,6 @@
"integration_type": "device",
"iot_class": "local_push",
"loggers": ["androidtvremote2"],
"quality_scale": "platinum",
"requirements": ["androidtvremote2==0.1.2"],
"zeroconf": ["_androidtvremote2._tcp.local."]
}

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/anel_pwrctrl",
"iot_class": "local_polling",
"loggers": ["anel_pwrctrl"],
"quality_scale": "legacy",
"requirements": ["anel-pwrctrl-homeassistant==0.0.1.dev2"]
}

View File

@@ -5,5 +5,5 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/aosmith",
"iot_class": "cloud_polling",
"requirements": ["py-aosmith==1.0.10"]
"requirements": ["py-aosmith==1.0.12"]
}

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/apache_kafka",
"iot_class": "local_push",
"loggers": ["aiokafka", "kafka_python"],
"quality_scale": "legacy",
"requirements": ["aiokafka==0.10.0"]
}

View File

@@ -6,6 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/apcupsd",
"iot_class": "local_polling",
"loggers": ["apcaccess"],
"quality_scale": "silver",
"requirements": ["aioapcaccess==0.4.2"]
}

View File

@@ -7,7 +7,7 @@
"documentation": "https://www.home-assistant.io/integrations/apple_tv",
"iot_class": "local_push",
"loggers": ["pyatv", "srptools"],
"requirements": ["pyatv==0.15.1"],
"requirements": ["pyatv==0.16.0"],
"zeroconf": [
"_mediaremotetv._tcp.local.",
"_companion-link._tcp.local.",

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/apprise",
"iot_class": "cloud_push",
"loggers": ["apprise"],
"requirements": ["apprise==1.9.0"]
"quality_scale": "legacy",
"requirements": ["apprise==1.9.1"]
}

View File

@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aprs",
"iot_class": "cloud_push",
"loggers": ["aprslib", "geographiclib", "geopy"],
"quality_scale": "legacy",
"requirements": ["aprslib==0.7.2", "geopy==2.3.0"]
}

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