Compare commits

...

1303 Commits

Author SHA1 Message Date
Paul Bottein cea7ea4b75 Remove default 2024-12-11 08:58:59 +01:00
Paul Bottein 71f89dd759 Allow to set icon based on state 2024-12-10 14:34:26 +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
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
2564 changed files with 62495 additions and 23781 deletions
+6 -6
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"
@@ -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
@@ -522,7 +522,7 @@ jobs:
- 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 }}
+51 -28
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.4.3
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.1
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
@@ -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.1
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
version: v0.6.0
+2 -2
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.27.6
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.27.1
uses: github/codeql-action/analyze@v3.27.6
with:
category: "/language:python"
+1 -1
View File
@@ -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"
+4 -4
View File
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.2
rev: v0.8.1
hooks:
- id: ruff
args:
@@ -18,7 +18,7 @@ repos:
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
+5 -1
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.*
@@ -364,6 +365,7 @@ 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 +387,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.*
@@ -404,6 +407,7 @@ 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 +440,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.*
+36 -6
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
+20 -10
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
@@ -586,8 +588,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
@@ -751,6 +753,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 +976,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 +1006,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
@@ -1131,6 +1135,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 +1350,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
@@ -1409,15 +1417,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 +1491,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 +1577,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 +1646,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
+2 -2
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.4
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
+3
View File
@@ -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
+5 -5
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.11.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.11.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.11.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.11.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.11.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
+1 -1
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": []
+6 -7
View File
@@ -177,17 +177,17 @@ class TotpAuthModule(MultiFactorAuthModule):
class TotpSetupFlow(SetupFlow):
"""Handler for the setup flow."""
_auth_module: TotpAuthModule
_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 +214,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),
)
+1 -1
View File
@@ -515,7 +515,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,
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "sky",
"name": "Sky",
"integrations": ["sky_hub", "sky_remote"]
}
@@ -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)
+5 -11
View File
@@ -9,7 +9,7 @@ from jaraco.abode.devices.light import Light
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
ATTR_COLOR_TEMP,
ATTR_COLOR_TEMP_KELVIN,
ATTR_HS_COLOR,
ColorMode,
LightEntity,
@@ -17,10 +17,6 @@ from homeassistant.components.light import (
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
@@ -47,10 +43,8 @@ class AbodeLight(AbodeDevice, LightEntity):
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 +79,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
+2 -1
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
}
@@ -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%]"
}
},
@@ -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)
@@ -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)
+63
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)
@@ -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,
)
+4
View File
@@ -0,0 +1,4 @@
"""Constants for component."""
DOMAIN = "acaia"
CONF_IS_NEW_STYLE_SCALE = "is_new_style_scale"
@@ -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",
)
)
@@ -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,
}
+46
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
+24
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"
}
}
}
}
@@ -0,0 +1,29 @@
{
"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"],
"requirements": ["aioacaia==0.1.11"]
}
@@ -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: todo
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
+146
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
@@ -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"
}
}
}
}
@@ -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
}
@@ -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"]
}
@@ -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"
}
-1
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."""
+1 -1
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,
@@ -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"]
}
@@ -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."""
@@ -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"]
}
+5 -3
View File
@@ -3,7 +3,7 @@
import logging
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
@@ -23,9 +23,11 @@ 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_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)
try:
await aemet.select_coordinates(latitude, longitude)
@@ -45,7 +45,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)
+1 -1
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.3"]
}
@@ -0,0 +1,80 @@
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: todo
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: done
# Gold
devices: done
diagnostics: done
discovery-update-info: done
discovery: done
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
@@ -7,6 +7,5 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["airly"],
"quality_scale": "platinum",
"requirements": ["airly==1.1.0"]
}
+1 -1
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"]
}
@@ -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."""
@@ -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):
@@ -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"]
}
@@ -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,
@@ -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"]
}
@@ -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)
@@ -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())
@@ -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())
@@ -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}."
}
}
}
+14 -8
View File
@@ -436,7 +436,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:
@@ -816,13 +816,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
@@ -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)
+21 -4
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,
)
@@ -764,9 +765,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()
@@ -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"]
}
@@ -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"]
}
@@ -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)
@@ -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())
@@ -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]:
@@ -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"]
}
@@ -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()
@@ -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"]
}
@@ -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"]
}
@@ -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"
+1 -1
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
@@ -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"]
}
@@ -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."]
}
@@ -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"]
}
@@ -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.11"]
}
@@ -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"]
}
@@ -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"]
}
@@ -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.",
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/apprise",
"iot_class": "cloud_push",
"loggers": ["apprise"],
"quality_scale": "legacy",
"requirements": ["apprise==1.9.0"]
}
@@ -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"]
}
@@ -38,6 +38,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ApSystemsConfigEntry) ->
ip_address=entry.data[CONF_IP_ADDRESS],
port=entry.data.get(CONF_PORT, DEFAULT_PORT),
timeout=8,
enable_debounce=True,
)
coordinator = ApSystemsDataCoordinator(hass, api)
await coordinator.async_config_entry_first_refresh()
@@ -5,12 +5,17 @@ from __future__ import annotations
from dataclasses import dataclass
from datetime import timedelta
from APsystemsEZ1 import APsystemsEZ1M, ReturnAlarmInfo, ReturnOutputData
from APsystemsEZ1 import (
APsystemsEZ1M,
InverterReturnedError,
ReturnAlarmInfo,
ReturnOutputData,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import LOGGER
from .const import DOMAIN, LOGGER
@dataclass
@@ -43,6 +48,11 @@ class ApSystemsDataCoordinator(DataUpdateCoordinator[ApSystemsSensorData]):
self.api.min_power = device_info.minPower
async def _async_update_data(self) -> ApSystemsSensorData:
output_data = await self.api.get_output_data()
alarm_info = await self.api.get_alarm_info()
try:
output_data = await self.api.get_output_data()
alarm_info = await self.api.get_alarm_info()
except InverterReturnedError:
raise UpdateFailed(
translation_domain=DOMAIN, translation_key="inverter_error"
) from None
return ApSystemsSensorData(output_data=output_data, alarm_info=alarm_info)
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/apsystems",
"integration_type": "device",
"iot_class": "local_polling",
"requirements": ["apsystems-ez1==2.2.1"]
"requirements": ["apsystems-ez1==2.4.0"]
}
@@ -72,5 +72,10 @@
"name": "Inverter status"
}
}
},
"exceptions": {
"inverter_error": {
"message": "Inverter returned an error"
}
}
}
+2 -1
View File
@@ -5,6 +5,7 @@ from __future__ import annotations
from typing import Any
from aiohttp.client_exceptions import ClientConnectionError
from APsystemsEZ1 import InverterReturnedError
from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity
from homeassistant.core import HomeAssistant
@@ -40,7 +41,7 @@ class ApSystemsInverterSwitch(ApSystemsEntity, SwitchEntity):
"""Update switch status and availability."""
try:
status = await self._api.get_device_power_status()
except (TimeoutError, ClientConnectionError):
except (TimeoutError, ClientConnectionError, InverterReturnedError):
self._attr_available = False
else:
self._attr_available = True
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aqualogic",
"iot_class": "local_push",
"loggers": ["aqualogic"],
"quality_scale": "legacy",
"requirements": ["aqualogic==2.6"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aquostv",
"iot_class": "local_polling",
"loggers": ["sharp_aquos_rc"],
"quality_scale": "legacy",
"requirements": ["sharp_aquos_rc==0.3.2"]
}
+2 -1
View File
@@ -3,5 +3,6 @@
"name": "aREST",
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/arest",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}
@@ -6,5 +6,6 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["arris_tg2492lg"],
"quality_scale": "legacy",
"requirements": ["arris-tg2492lg==2.2.0"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aruba",
"iot_class": "local_polling",
"loggers": ["pexpect", "ptyprocess"],
"quality_scale": "legacy",
"requirements": ["pexpect==4.6.0"]
}
+2 -1
View File
@@ -4,5 +4,6 @@
"codeowners": [],
"dependencies": ["mqtt"],
"documentation": "https://www.home-assistant.io/integrations/arwn",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}
@@ -31,6 +31,7 @@ from homeassistant.components.tts import (
)
from homeassistant.core import Context, HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import intent
from homeassistant.helpers.collection import (
CHANGE_UPDATED,
CollectionError,
@@ -109,6 +110,7 @@ PIPELINE_FIELDS: VolDictType = {
vol.Required("tts_voice"): vol.Any(str, None),
vol.Required("wake_word_entity"): vol.Any(str, None),
vol.Required("wake_word_id"): vol.Any(str, None),
vol.Optional("prefer_local_intents"): bool,
}
STORED_PIPELINE_RUNS = 10
@@ -322,6 +324,7 @@ async def async_update_pipeline(
tts_voice: str | None | UndefinedType = UNDEFINED,
wake_word_entity: str | None | UndefinedType = UNDEFINED,
wake_word_id: str | None | UndefinedType = UNDEFINED,
prefer_local_intents: bool | UndefinedType = UNDEFINED,
) -> None:
"""Update a pipeline."""
pipeline_data: PipelineData = hass.data[DOMAIN]
@@ -345,6 +348,7 @@ async def async_update_pipeline(
("tts_voice", tts_voice),
("wake_word_entity", wake_word_entity),
("wake_word_id", wake_word_id),
("prefer_local_intents", prefer_local_intents),
)
if val is not UNDEFINED
}
@@ -398,6 +402,7 @@ class Pipeline:
tts_voice: str | None
wake_word_entity: str | None
wake_word_id: str | None
prefer_local_intents: bool = False
id: str = field(default_factory=ulid_util.ulid_now)
@@ -421,6 +426,7 @@ class Pipeline:
tts_voice=data["tts_voice"],
wake_word_entity=data["wake_word_entity"],
wake_word_id=data["wake_word_id"],
prefer_local_intents=data.get("prefer_local_intents", False),
)
def to_json(self) -> dict[str, Any]:
@@ -438,6 +444,7 @@ class Pipeline:
"tts_voice": self.tts_voice,
"wake_word_entity": self.wake_word_entity,
"wake_word_id": self.wake_word_id,
"prefer_local_intents": self.prefer_local_intents,
}
@@ -1011,20 +1018,64 @@ class PipelineRun:
"intent_input": intent_input,
"conversation_id": conversation_id,
"device_id": device_id,
"prefer_local_intents": self.pipeline.prefer_local_intents,
},
)
)
try:
conversation_result = await conversation.async_converse(
hass=self.hass,
user_input = conversation.ConversationInput(
text=intent_input,
context=self.context,
conversation_id=conversation_id,
device_id=device_id,
context=self.context,
language=self.pipeline.conversation_language,
language=self.pipeline.language,
agent_id=self.intent_agent,
)
processed_locally = self.intent_agent == conversation.HOME_ASSISTANT_AGENT
conversation_result: conversation.ConversationResult | None = None
if user_input.agent_id != conversation.HOME_ASSISTANT_AGENT:
# Sentence triggers override conversation agent
if (
trigger_response_text
:= await conversation.async_handle_sentence_triggers(
self.hass, user_input
)
) is not None:
# Sentence trigger matched
trigger_response = intent.IntentResponse(
self.pipeline.conversation_language
)
trigger_response.async_set_speech(trigger_response_text)
conversation_result = conversation.ConversationResult(
response=trigger_response,
conversation_id=user_input.conversation_id,
)
# Try local intents first, if preferred.
elif self.pipeline.prefer_local_intents and (
intent_response := await conversation.async_handle_intents(
self.hass, user_input
)
):
# Local intent matched
conversation_result = conversation.ConversationResult(
response=intent_response,
conversation_id=user_input.conversation_id,
)
processed_locally = True
if conversation_result is None:
# Fall back to pipeline conversation agent
conversation_result = await conversation.async_converse(
hass=self.hass,
text=user_input.text,
conversation_id=user_input.conversation_id,
device_id=user_input.device_id,
context=user_input.context,
language=user_input.language,
agent_id=user_input.agent_id,
)
except Exception as src_error:
_LOGGER.exception("Unexpected error during intent recognition")
raise IntentRecognitionError(
@@ -1037,7 +1088,10 @@ class PipelineRun:
self.process_event(
PipelineEvent(
PipelineEventType.INTENT_END,
{"intent_output": conversation_result.as_dict()},
{
"processed_locally": processed_locally,
"intent_output": conversation_result.as_dict(),
},
)
)
-1
View File
@@ -46,7 +46,6 @@ class AtagThermostat(AtagEntity, ClimateEntity):
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
)
_enable_turn_on_off_backwards_compatibility = False
def __init__(self, coordinator: AtagDataUpdateCoordinator, atag_id: str) -> None:
"""Initialize an Atag climate device."""
@@ -4,5 +4,6 @@
"codeowners": ["@mtdcr"],
"documentation": "https://www.home-assistant.io/integrations/aten_pe",
"iot_class": "local_polling",
"quality_scale": "legacy",
"requirements": ["atenpdu==0.3.2"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/atome",
"iot_class": "cloud_polling",
"loggers": ["pyatome"],
"quality_scale": "legacy",
"requirements": ["pyAtome==0.1.1"]
}
@@ -28,5 +28,5 @@
"documentation": "https://www.home-assistant.io/integrations/august",
"iot_class": "cloud_push",
"loggers": ["pubnub", "yalexs"],
"requirements": ["yalexs==8.10.0", "yalexs-ble==2.5.0"]
"requirements": ["yalexs==8.10.0", "yalexs-ble==2.5.2"]
}
@@ -22,13 +22,14 @@ class AussieBroadbandConfigFlow(ConfigFlow, domain=DOMAIN):
VERSION = 1
_reauth_username: str
def __init__(self) -> None:
"""Initialize the config flow."""
self.data: dict = {}
self.options: dict = {CONF_SERVICES: []}
self.services: list[dict[str, Any]] = []
self.client: AussieBB | None = None
self._reauth_username: str | None = None
async def async_auth(self, user_input: dict[str, str]) -> dict[str, str] | None:
"""Reusable Auth Helper."""
@@ -92,7 +93,7 @@ class AussieBroadbandConfigFlow(ConfigFlow, domain=DOMAIN):
errors: dict[str, str] | None = None
if user_input and self._reauth_username:
if user_input:
data = {
CONF_USERNAME: self._reauth_username,
CONF_PASSWORD: user_input[CONF_PASSWORD],
+8 -2
View File
@@ -4,11 +4,12 @@ from __future__ import annotations
import asyncio
from autarco import Autarco
from autarco import Autarco, AutarcoConnectionError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_EMAIL, CONF_PASSWORD, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .coordinator import AutarcoDataUpdateCoordinator
@@ -25,7 +26,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: AutarcoConfigEntry) -> b
password=entry.data[CONF_PASSWORD],
session=async_get_clientsession(hass),
)
account_sites = await client.get_account()
try:
account_sites = await client.get_account()
except AutarcoConnectionError as err:
await client.close()
raise ConfigEntryNotReady from err
coordinators: list[AutarcoDataUpdateCoordinator] = [
AutarcoDataUpdateCoordinator(hass, client, site) for site in account_sites
@@ -2,6 +2,7 @@
from __future__ import annotations
from collections.abc import Mapping
from typing import Any
from autarco import Autarco, AutarcoAuthenticationError, AutarcoConnectionError
@@ -20,6 +21,12 @@ DATA_SCHEMA = vol.Schema(
}
)
STEP_REAUTH_SCHEMA = vol.Schema(
{
vol.Required(CONF_PASSWORD): str,
}
)
class AutarcoConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Autarco."""
@@ -55,3 +62,40 @@ class AutarcoConfigFlow(ConfigFlow, domain=DOMAIN):
errors=errors,
data_schema=DATA_SCHEMA,
)
async def async_step_reauth(
self, entry_data: Mapping[str, Any]
) -> ConfigFlowResult:
"""Handle re-authentication request from Autarco."""
return await self.async_step_reauth_confirm()
async def async_step_reauth_confirm(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle re-authentication confirmation."""
errors = {}
reauth_entry = self._get_reauth_entry()
if user_input is not None:
client = Autarco(
email=reauth_entry.data[CONF_EMAIL],
password=user_input[CONF_PASSWORD],
session=async_get_clientsession(self.hass),
)
try:
await client.get_account()
except AutarcoAuthenticationError:
errors["base"] = "invalid_auth"
except AutarcoConnectionError:
errors["base"] = "cannot_connect"
else:
return self.async_update_reload_and_abort(
reauth_entry,
data_updates=user_input,
)
return self.async_show_form(
step_id="reauth_confirm",
description_placeholders={"email": reauth_entry.data[CONF_EMAIL]},
data_schema=STEP_REAUTH_SCHEMA,
errors=errors,
)
@@ -7,6 +7,7 @@ from typing import NamedTuple
from autarco import (
AccountSite,
Autarco,
AutarcoAuthenticationError,
AutarcoConnectionError,
Battery,
Inverter,
@@ -16,6 +17,7 @@ from autarco import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN, LOGGER, SCAN_INTERVAL
@@ -60,8 +62,10 @@ class AutarcoDataUpdateCoordinator(DataUpdateCoordinator[AutarcoData]):
inverters = await self.client.get_inverters(self.account_site.public_key)
if site.has_battery:
battery = await self.client.get_battery(self.account_site.public_key)
except AutarcoConnectionError as error:
raise UpdateFailed(error) from error
except AutarcoAuthenticationError as err:
raise ConfigEntryAuthFailed(err) from err
except AutarcoConnectionError as err:
raise UpdateFailed(err) from err
return AutarcoData(
solar=solar,
inverters=inverters,
@@ -0,0 +1,99 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
This integration does not provide additional actions.
appropriate-polling: done
brands: done
common-modules:
status: todo
comment: |
The entity.py file is not used in this integration.
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: done
docs-installation-instructions: done
docs-removal-instructions: done
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 additional actions.
config-entry-unloading: done
docs-configuration-parameters:
status: exempt
comment: |
This integration does not have an options flow.
docs-installation-parameters: done
entity-unavailable: done
integration-owner: done
log-when-unavailable: done
parallel-updates:
status: exempt
comment: |
This integration only polls data using a coordinator.
Since the integration is read-only and poll-only (only provide sensor
data), there is no need to implement parallel updates.
reauthentication-flow: done
test-coverage: done
# Gold
devices: done
diagnostics: done
discovery-update-info:
status: exempt
comment: |
This integration cannot be discovered, it is a connecting to a service
provider, which uses the users home address to get the data.
discovery:
status: exempt
comment: |
This integration cannot be discovered, it is a connecting to a service
provider, which uses the users home address to get the data.
docs-data-update: done
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices:
status: exempt
comment: |
This is an service, which doesn't integrate with any devices.
docs-supported-functions: done
docs-troubleshooting: todo
docs-use-cases: done
dynamic-devices: todo
entity-category: done
entity-device-class: done
entity-disabled-by-default:
status: exempt
comment: |
This integration does not have any entities that should disabled by default.
entity-translations: done
exception-translations: done
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: todo
# Platinum
async-dependency: done
inject-websession: done
strict-typing: done
+13 -2
View File
@@ -2,7 +2,7 @@
"config": {
"step": {
"user": {
"description": "Connect to your Autarco account to get information about your solar panels.",
"description": "Connect to your Autarco account, to get information about your sites.",
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
@@ -11,6 +11,16 @@
"email": "The email address of your Autarco account.",
"password": "The password of your Autarco account."
}
},
"reauth_confirm": {
"title": "[%key:common::config_flow::title::reauth%]",
"description": "The password for {email} is no longer valid.",
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"password": "[%key:component::autarco::config::step::user::data_description::password%]"
}
}
},
"error": {
@@ -18,7 +28,8 @@
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"entity": {

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