Compare commits

..

3497 Commits

Author SHA1 Message Date
Franck Nijhof ce12d82624 2023.11.1 (#103301) 2023-11-04 14:27:14 +01:00
Raman Gupta 9eff9ee374 Fix zwave_js cover bug for Window Covering CC values (#103289)
* Fix cover bug for Window Covering CC values

* update test

* Fix fixture

* Remove no-op line from test
2023-11-04 12:53:50 +01:00
Rami Mosleh 1ef460cffe Fix sensor unique id in Islamic prayer times (#103356) 2023-11-04 12:53:24 +01:00
Robert Svensson 42243f1433 Handle UniFi traffic rules not supported on older versions (#103346) 2023-11-04 12:53:21 +01:00
Jan Rieger 8a07c10d88 Report correct weather condition at night for Met (#103334)
* Report correct weather condition at night for Met, fixes #68369, fixes #89001

* Update homeassistant/components/met/weather.py

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2023-11-04 12:53:18 +01:00
Joakim Sørensen 730a3f7870 Remove extra from traccar webhook (#103319) 2023-11-04 12:53:15 +01:00
Jan-Philipp Benecke 718901d2ad Fix typo in Todoist config flow (#103317) 2023-11-04 12:53:12 +01:00
Raman Gupta d95d4d0184 Add script to convert zwave_js device diagnostics to fixture (#102799) 2023-11-04 12:53:06 +01:00
Ian 67ce51899f Bump py_nextbusnext to v1.0.2 to fix TypeError (#103214)
* Bump py_nextbusnext to v1.0.1 to fix TypeError

Currently throwing an error as a set is passed into the method that is currently
expecting a Sequence. That method is technically compatible with Iterable, so the
latest patch relaxes that restriction.

* Bump version to v1.0.2 to fix error message
2023-11-04 12:46:05 +01:00
starkillerOG 810681b357 Bump reolink-aio to 0.7.14 and improve typing of Reolink (#103129)
* Improve typing

* fix mypy

* Further improve typing

* Restore Literal typing

* Bump reolink_aio to 0.7.13

* Bump reolink-aio to 0.7.14
2023-11-04 12:46:01 +01:00
Franck Nijhof 0b0f099d27 Bumped version to 2023.11.1 2023-11-03 13:02:22 +01:00
tronikos 4a56d0ec1d Bump opower to 0.0.39 (#103292) 2023-11-03 13:02:04 +01:00
Raman Gupta 910654bf78 Fix firmware update failure (#103277) 2023-11-03 13:02:01 +01:00
Marcel van der Veldt 1a823376d8 Fix Matter 1.2 locks with specific unlatch/unbolt support (#103275) 2023-11-03 13:01:56 +01:00
Pedro Januário ba634ac346 add library logger info on ecoforest integration manifest (#103274) 2023-11-03 13:01:24 +01:00
J. Nick Koston 92486b1ff0 Bump yalexs-ble to 2.3.2 (#103267) 2023-11-03 12:59:19 +01:00
Tom 06d26b7c7f Fix Plugwise Schedule selection (#103262) 2023-11-03 12:59:16 +01:00
Joakim Plate 1dcd66d75c Remove measurement flag from timestamp in gardena bluetooth (#103245)
Remove measurement flag from timestamp
2023-11-03 12:59:13 +01:00
Charles Garwood c811e0db49 Bump pyenphase to 1.14.1 (#103239) 2023-11-03 12:59:09 +01:00
Matthias Alphart dc30ddc24b Fix Fronius entity initialisation (#103211)
* Use None instead of raising ValueError if value invalid

* use async_dispatcher_send
2023-11-03 12:59:06 +01:00
Jan Bouwhuis 239fa04d02 Fix mqtt config validation error handling (#103210)
* Fix MQTT config check

* Fix handling invalid enity_category for sensors

* Improve docstr

* Update comment

* Use correct util for yaml dump
2023-11-03 12:59:03 +01:00
Xitee 2be229c5b5 Fix roomba error if battery stats are not available (#103196) 2023-11-03 12:59:00 +01:00
Xitee 5b4df0f7ff Fix roomba translation key mismatch (#103191) 2023-11-03 12:58:57 +01:00
mkmer 355b51d4c8 Catch unexpected response in Honeywell (#103169)
catch unexpected response
2023-11-03 12:58:54 +01:00
Joost Lekkerkerker 0c8074bab4 Bump aiowaqi to 3.0.0 (#103166) 2023-11-03 12:58:51 +01:00
G Johansson acd98e9b40 Bump python-holidays to 0.35 (#103092) 2023-11-03 12:58:45 +01:00
Franck Nijhof 0b8d4235c3 2023.11.0 (#103164) 2023-11-01 15:59:51 +01:00
Franck Nijhof 4ce859b4e4 Bumped version to 2023.11.0 2023-11-01 11:24:41 +01:00
Franck Nijhof 18acec32b8 Bumped version to 2023.11.0b6 2023-11-01 11:22:25 +01:00
Bram Kragten cfa2f2ce61 Update frontend to 20231030.1 (#103163) 2023-11-01 11:22:16 +01:00
Jan Bouwhuis aa5ea5ebc3 Fix mqtt is not reloading without yaml config (#103159) 2023-11-01 11:22:13 +01:00
J. Nick Koston bcea021c14 Allow non-admins to subscribe to the issue registry updated event (#103145) 2023-11-01 11:22:10 +01:00
Allen Porter ea2d2ba7b7 Improve fitbit oauth token error handling in config flow (#103131)
* Improve fitbit oauth token error handling in config flow

* Apply suggestions from code review

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

* Update tests with updated error reason

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-11-01 11:22:07 +01:00
Teemu R c5f21fefbe Bump python-kasa to 0.5.4 for tplink (#103038) 2023-11-01 11:22:03 +01:00
Franck Nijhof 9910f9e0ae Bumped version to 2023.11.0b5 2023-10-31 19:43:21 +01:00
J. Nick Koston f0a06efa1f Fix race in starting reauth flows (#103130) 2023-10-31 19:43:05 +01:00
J. Nick Koston 8992d15ffc Bump aiohomekit to 3.0.9 (#103123) 2023-10-31 19:43:02 +01:00
Paul Bottein e097dc02dd Don't try to load resources in safe mode (#103122) 2023-10-31 19:42:59 +01:00
starkillerOG bfae1468d6 Bump reolink-aio to 0.7.12 (#103120) 2023-10-31 19:42:52 +01:00
Christopher Fenner 09ed6e9f9b Handle exception introduced with recent PyViCare update (#103110) 2023-10-31 19:42:48 +01:00
Erik Montnemery 040ecb74e0 Add todo to core files (#103102) 2023-10-31 19:42:45 +01:00
Erik Montnemery a48e63aa28 Fix todoist todo tests (#103101) 2023-10-31 19:42:41 +01:00
Erik Montnemery 19479b2a68 Fix local_todo todo tests (#103099) 2023-10-31 19:42:36 +01:00
Franck Nijhof 9ae29e243d Bumped version to 2023.11.0b4 2023-10-31 13:30:10 +01:00
Joost Lekkerkerker e309bd764b Abort config flow if Google Tasks API is not enabled (#103114)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-31 13:29:52 +01:00
Christopher Fenner 777ffe6946 Fix client id label in ViCare integration (#103111) 2023-10-31 13:29:49 +01:00
Robert Resch fa0f679a9a Fix todo.remove_item frontend (#103108) 2023-10-31 13:29:46 +01:00
Erik Montnemery 26b7e94c4f Fix shopping_list todo tests (#103100) 2023-10-31 13:29:43 +01:00
Erik Montnemery 957998ea8d Fix google_tasks todo tests (#103098) 2023-10-31 13:29:40 +01:00
Erik Montnemery abaeacbd6b Fix restore state for light when saved attribute is None (#103096) 2023-10-31 13:29:36 +01:00
Bram Kragten d76c16fa3a Update frontend to 20231030.0 (#103086) 2023-10-31 13:29:33 +01:00
G Johansson 67edb98e59 Fix Met Device Info (#103082) 2023-10-31 13:29:30 +01:00
Robert Resch 376a79eb42 Refactor todo services and their schema (#103079) 2023-10-31 13:29:27 +01:00
Rami Mosleh 41500cbe9b Code cleanup for transmission integration (#103078) 2023-10-31 13:29:24 +01:00
Paul Manzotti 06f27e7e74 Update geniushub-client to v0.7.1 (#103071) 2023-10-31 13:29:19 +01:00
Franck Nijhof a3ebfaebe7 Bumped version to 2023.11.0b3 2023-10-30 19:59:32 +01:00
Joost Lekkerkerker 8d781ff063 Add 2 properties to Withings diagnostics (#103067) 2023-10-30 19:59:21 +01:00
Joost Lekkerkerker bac39f0061 Show a warning when no Withings data found (#103066) 2023-10-30 19:59:17 +01:00
David Knowles c7b702f3c2 Bump pyschlage to 2023.10.0 (#103065) 2023-10-30 19:59:14 +01:00
Christopher Fenner 3728f3da69 Update PyViCare to v2.28.1 for ViCare integration (#103064) 2023-10-30 19:59:11 +01:00
tronikos 31d8f4b35d Fix Opower not refreshing statistics when there are no forecast entities (#103058)
Ensure _insert_statistics is periodically called
2023-10-30 19:59:08 +01:00
Mike Woudenberg f113d9aa71 Use correct config entry field to update when IP changes in loqed (#103051) 2023-10-30 19:59:05 +01:00
Jack Boswell 891ad0b1be Bump starlink-grpc-core to 1.1.3 (#103043) 2023-10-30 19:59:02 +01:00
Jirka 5c16a8247a Update MQTT QoS description string (#103036)
Update strings.json
2023-10-30 19:58:58 +01:00
Allen Porter 483671bf9f Bump google-nest-sdm to 3.0.3 (#103035) 2023-10-30 19:58:54 +01:00
G-Two 6f73d2aac5 Bump to subarulink 0.7.8 (#103033) 2023-10-30 19:58:50 +01:00
Allen Porter f5b3661836 Fix bug in fitbit credential import for expired tokens (#103024)
* Fix bug in fitbit credential import on token refresh

* Use stable test ids

* Update homeassistant/components/fitbit/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-30 19:58:47 +01:00
kpine f70c13214c Revert "Fix temperature setting for multi-setpoint z-wave device (#102395)" (#103022)
This reverts commit 2d6dc2bccc.
2023-10-30 19:58:43 +01:00
Raman Gupta 70e8978123 Fix zwave_js siren name (#103016)
* Fix zwave_js.siren name

* Fix test
2023-10-30 19:58:40 +01:00
Diogo Gomes 031b1c26ce Fix utility_meter reset when DST change occurs (#103012) 2023-10-30 19:58:37 +01:00
Nortonko 13580a334f Bump python-androidtv to 0.0.73 (#102999)
* Update manifest.json

Bump python-androidtv to version 0.0.73

* bump androidtv 0.0.73

* bump androidtv 0.0.73
2023-10-30 19:58:34 +01:00
Michael e81bfb959e Fix proximity entity id (#102992)
* fix proximity entity id

* extend test to cover entity id
2023-10-30 19:58:31 +01:00
Tom Puttemans fefe930506 DSMR Gas currently delivered device state class conflict (#102991)
Fixes #102985
2023-10-30 19:58:28 +01:00
David Bonnes 5ac7e8b1ac Harden evohome against failures to retrieve high-precision temps (#102989)
fix hass-logger-period
2023-10-30 19:58:24 +01:00
tronikos 36512f7157 Bump opower to 0.0.38 (#102983) 2023-10-30 19:58:21 +01:00
Bouwe Westerdijk cc3ae9e103 Correct total state_class of huisbaasje sensors (#102945)
* Change all cumulative-interval sensors to TOTAL
2023-10-30 19:58:18 +01:00
Robert Hillis 12482216f6 Fix Google Mail expired authorization (#102735)
* Fix Google Mail expired authorization

* add test

* raise HomeAssistantError

* handle in api module

* uno mas
2023-10-30 19:58:14 +01:00
David Knowles 20409d0124 Make Hydrawise initialize data immediately (#101936) 2023-10-30 19:58:11 +01:00
mkmer a741bc9951 Add retry before unavailable to Honeywell (#101702)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-30 19:58:08 +01:00
Erwin Douna 59d2bce369 Enable dry mode for Tado AC's V3 (#99568) 2023-10-30 19:58:04 +01:00
Paulus Schoutsen eef318f63c Bumped version to 2023.11.0b2 2023-10-28 23:29:03 -04:00
Paulus Schoutsen 9c8a4bb4eb Fix proximity zone handling (#102971)
* fix proximity zone

* fix test
2023-10-28 23:29:03 -04:00
Paulus Schoutsen 9c9f1ea685 Fix error message strings for Todoist configuration flow (#102968)
* Fix error message strings for Todoist configuration flow

* Update error code in test
2023-10-28 23:29:03 -04:00
Paulus Schoutsen 85d999b020 Add gas device class to dsmr_reader sensor (#102953)
DSMR reader integration - can't configure gas meter in energy dashboard posible due to missing device_class
Fixes #102367
2023-10-28 23:29:03 -04:00
Paulus Schoutsen bcddf52364 Update xknxproject to 3.4.0 (#102946) 2023-10-28 23:29:03 -04:00
Paulus Schoutsen 07e4e1379a Improve diagnostic handling in HomeWizard Energy (#102935) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen f9f010643a Handle/extend number entity availability property in HomeWizard Energy (#102934) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen 974c34e2b6 Small base entity cleanup for HomeWizard Energy entities (#102933) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen 1c3de76b04 Move HomeWizard Energy identify button to config entity category (#102932) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen bee63ca654 Hide mac address from HomeWizard Energy config entry/discovery titles (#102931) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen 29c99f419f Bump velbusaio to 2023.10.2 (#102919) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen 3d321c5ca7 Update frontend to 20231027.0 (#102913) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen 4617c16a96 Update aioairzone-cloud to v0.3.1 (#102899) 2023-10-28 23:29:02 -04:00
Paulus Schoutsen a60656bf29 Improve fitbit oauth import robustness (#102833)
* Improve fitbit oauth import robustness

* Improve sensor tests and remove unnecessary client check

* Fix oauth client id/secret config key checks

* Add executor for sync call
2023-10-28 23:29:02 -04:00
Paulus Schoutsen 2eb2a65197 Use new API for Vasttrafik (#102570) 2023-10-28 23:29:02 -04:00
Franck Nijhof 867aaf10ee Bumped version to 2023.11.0b1 2023-10-27 14:02:42 +02:00
Franck Nijhof 7fe1ac901f Some textual fixes for todo (#102895) 2023-10-27 14:02:24 +02:00
Bram Kragten 5dca3844ef Add redirect from shopping list to todo (#102894) 2023-10-27 14:02:20 +02:00
Erik Montnemery b5c75a2f2f Allow missing components in safe mode (#102891) 2023-10-27 14:02:17 +02:00
Erik Montnemery 62fc9dfd6c Allow missing components in safe mode (#102888) 2023-10-27 14:02:14 +02:00
Jan Bouwhuis 0573981d6f Fix mqtt schema import not available for mqtt_room (#102866) 2023-10-27 14:02:09 +02:00
Paul Bottein cc7a4d01e3 Don't return resources in safe mode (#102865) 2023-10-27 14:02:06 +02:00
Paul Bottein 293025ab6c Update frontend to 20231026.0 (#102857) 2023-10-27 14:02:02 +02:00
Jan-Philipp Benecke a490b5e286 Add connections to PassiveBluetoothProcessorEntity (#102854) 2023-10-27 14:01:58 +02:00
Joost Lekkerkerker 7e4da1d03b Bump aiowithings to 1.0.2 (#102852) 2023-10-27 14:01:53 +02:00
Ravaka Razafimanantsoa 9e140864eb Address late review of switchbot cloud (#102842)
For Martin's review
2023-10-27 14:01:47 +02:00
Kevin Worrel a6f88fb123 Bump screenlogicpy to v0.9.4 (#102836) 2023-10-27 14:01:43 +02:00
J. Nick Koston 386c5ecc3e Bump bleak-retry-connector to 3.3.0 (#102825)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v3.2.1...v3.3.0
2023-10-27 14:01:39 +02:00
Erik Montnemery 0d7fb5b026 Use real devices in automation blueprint tests (#102824) 2023-10-27 14:01:35 +02:00
Erik Montnemery 767b7ba4d6 Correct logic for picking bluetooth local name (#102823)
* Correct logic for picking bluetooth local name

* make test more robust

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-27 14:01:31 +02:00
William Scanlon f2cef7245a Bump pyeconet to 0.1.22 to handle breaking API change (#102820) 2023-10-27 14:01:27 +02:00
J. Nick Koston 701a5d7758 Bump HAP-python 4.9.1 (#102811) 2023-10-27 14:01:23 +02:00
mkmer 244fccdae6 Move coordinator first refresh in Blink (#102805)
Move coordinator first refresh
2023-10-27 14:01:18 +02:00
Erik Montnemery 10e6a26717 Fix fan device actions (#102797) 2023-10-27 14:01:15 +02:00
Allen Porter 5fe5013198 Change todo move API to reference previous uid (#102795) 2023-10-27 14:01:11 +02:00
Marc Mueller 0a0584b053 Fix velbus import (#102780) 2023-10-27 14:01:07 +02:00
Erik Montnemery 62733e830f Improve validation of device automations (#102766)
* Improve validation of device automations

* Improve comments

* Address review comment
2023-10-27 14:01:02 +02:00
Simone Chemelli bbcfb5f30e Improve exception handling for Vodafone Station (#102761)
* improve exception handling for Vodafone Station

* address review comment

* apply review comment

* better except handling (bump library)

* cleanup
2023-10-27 14:00:55 +02:00
Amit Finkelstein 5b0e0b07b3 Apple TV: Use replacement commands for deprecated ones (#102056)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-27 14:00:45 +02:00
Franck Nijhof 05fd64fe80 Bumped version to 2023.11.0b0 2023-10-25 17:41:53 +02:00
Raman Gupta 8b1cfbc46c Bump zwave-js-server-python to 0.53.1 (#102790) 2023-10-25 17:22:33 +02:00
Marcel van der Veldt bcade5fe73 Bump python-matter-server to version 4.0.0 (#102786) 2023-10-25 16:51:42 +02:00
Marc Mueller 4cac20f835 Fix google_tasks generic typing (#102778) 2023-10-25 07:22:19 -07:00
Erik Montnemery b83ada8c19 Use real devices in automation and script tests (#102785) 2023-10-25 16:09:39 +02:00
Joost Lekkerkerker e734a4bc53 Use sentence case in Random entities default name (#102788) 2023-10-25 16:09:09 +02:00
Joost Lekkerkerker cd8e3a81db Add Update coordinator to QBittorrent (#98896) 2023-10-25 15:51:52 +02:00
Erik Montnemery 8d034a85fe Small cleanup of nest tests (#102787) 2023-10-25 15:35:58 +02:00
tronikos 89e2f06304 Flume: Add flume.notifications service (#100621)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-25 15:34:48 +02:00
J. Nick Koston 4447336083 Fix hassio delaying startup to fetch container stats (#102775) 2023-10-25 15:32:43 +02:00
Erik Montnemery 6e72499f96 Use real devices in nest device trigger tests (#102692) 2023-10-25 15:13:38 +02:00
Simone Chemelli e4a1efb680 Fix Comelit comments as per late review (#102783) 2023-10-25 14:48:33 +02:00
Bram Kragten b50f5e50c3 Update frontend to 20231025.1 (#102781) 2023-10-25 08:42:44 -04:00
Jan Stienstra 2c46a975fb Add re-authentication to Jellyfin (#97442) 2023-10-25 14:02:30 +02:00
Bram Kragten edc9aba722 Update frontend to 20231025.0 (#102776) 2023-10-25 14:01:36 +02:00
Maciej Bieniek 47c9d58b5e Override the async_update() method for Shelly sleeping devices (#102516) 2023-10-25 13:48:00 +02:00
Allen Porter 476e867fe8 Add a Local To-do component (#102627)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-25 13:21:10 +02:00
Raman Gupta 35d18a9a3e Add tests for types and functions for type conversions in templates (#100807)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-25 13:20:34 +02:00
Joost Lekkerkerker 8ca5df6fcc Guard for None color mode in ZHA (#102774) 2023-10-25 13:17:41 +02:00
Joost Lekkerkerker 0658c7b307 Add config flow to random (#100858)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-25 13:01:27 +02:00
Jan-Philipp Benecke 6fae50cb75 Add connections to Xiaomi BLE and BTHome device entry (#102773) 2023-10-25 12:15:58 +02:00
Joost Lekkerkerker d2f8c527a5 Add entity translations to Tomorrow.io (#99632) 2023-10-25 12:15:09 +02:00
Joost Lekkerkerker 4812d62ccf Bring Withings activity sensor creation in line with the others (#102771) 2023-10-25 12:14:03 +02:00
Joost Lekkerkerker 45e4f71d1a Add generics to Withings (#102770) 2023-10-25 12:00:12 +02:00
Joakim Sørensen 267721af43 Bump hass-nabucasa from 0.73.0 to 0.74.0 (#102763) 2023-10-25 11:28:52 +02:00
Simone Chemelli 4328f887be Address late review comments for Comelit login (#102768) 2023-10-25 09:19:06 +00:00
Jirka dfc454d527 Remove double full stop from Vulcan translation strings (#102758) 2023-10-25 10:54:43 +02:00
Allen Porter 7f7064ce59 Add Google Tasks create and update for todo platform (#102754)
* Add Google Tasks create and update for todo platform

* Update comments

* Update comments
2023-10-25 10:51:21 +02:00
Simone Chemelli ffed1e8274 Improve exception handling for Comelit (#102762)
improve exception handling for Comelit
2023-10-25 10:28:22 +02:00
tzagim 37cde54b2b Fix typo in Todoist translations strings 'data' -> 'date' (#102760) 2023-10-25 09:48:47 +02:00
Erik Montnemery a6c5927976 Use real devices in light device condition tests (#102756) 2023-10-25 09:42:35 +02:00
Erik Montnemery b38692f3a7 Use real devices in lock device condition tests (#102757) 2023-10-25 09:42:00 +02:00
Maciej Bieniek c89acf2abe Bump nextdns to version 2.0.0 (#102674) 2023-10-25 08:59:45 +02:00
starkillerOG 93a8b60c2b Philips Hue restore brightness after transition (#101293) 2023-10-25 07:46:49 +02:00
buzz-tee 4bf475185e Fix invalid sources in media player sources list (#102646) 2023-10-25 07:12:55 +02:00
mkmer b37e9bc79a Improve camera snap performance in Blink (#102652) 2023-10-24 23:50:10 -05:00
Ravaka Razafimanantsoa 7038bd67f7 Add Climate to switchbot cloud integration (#101660) 2023-10-24 23:46:00 -05:00
Allen Porter 0cb0e3ceeb Add Google tasks integration, with initial read-only To-do list (#102629)
* Add Google Tasks integration

* Update tests and unique id

* Revert devcontainer change

* Increase test coverage

* Apply suggestions from code review

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

* Remove ternary

* Fix JSON

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-24 21:30:29 -07:00
Matthias Alphart fb13d9ce7c Set Fronius entities to "unknown" when receiving invalid zero value (#102270) 2023-10-25 06:27:46 +02:00
Erik Montnemery 704881743b Use real devices in remote device trigger tests (#102693) 2023-10-25 06:24:23 +02:00
Jesse Hills ad692f3341 ESPHome Text entities (#102742) 2023-10-24 23:14:58 -05:00
Erik Montnemery 789a00043a Use real devices in device automation tests (#102736)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-25 06:14:53 +02:00
Raman Gupta aa36229519 Remove eight_sleep integration (#102669) 2023-10-25 06:13:10 +02:00
Erik Montnemery 626123acc0 Use real devices in select device trigger tests (#102694) 2023-10-25 06:13:00 +02:00
Erik Montnemery b870933dc7 Use real devices in remote device action tests (#102725) 2023-10-25 06:11:55 +02:00
Erik Montnemery 9047dcf242 Use real devices in text device action tests (#102728) 2023-10-25 06:11:06 +02:00
Luke Lashley dd111416e7 Add cleaning binary sensor to Roborock (#102748) 2023-10-25 06:10:31 +02:00
J. Nick Koston ece7ec6a38 Disable IPV6 in the august integration (#98003) 2023-10-25 06:08:41 +02:00
AJ Jordan 2e643c0c75 Fix dead link in Kodi log message (#102743) 2023-10-25 06:07:38 +02:00
tronikos 6294339944 Improve ZHA King of Fans (#101859) 2023-10-25 05:56:08 +02:00
puddly 8d5cb20285 Bump ZHA radio dependencies (#102750) 2023-10-24 23:36:30 -04:00
TheJulianJES 7c93d4fccf Bump zha-quirks to 0.0.106 (#102741) 2023-10-24 21:57:34 -04:00
Raman Gupta ec3ee7f02c Update zwave_js/hard_reset_controller WS cmd (#102280) 2023-10-24 21:31:03 -04:00
Robert Svensson 40817dabbf Bump aiounifi to v64 (#102700) 2023-10-24 20:27:42 -05:00
Marc Mueller eb52943d27 Update pytest to 7.4.3 (#102744) 2023-10-25 02:44:51 +02:00
Erik Montnemery a1a5713e10 Abort Improv via BLE bluetooth flow if device is provisioned (#102656)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-24 19:14:23 -05:00
J. Nick Koston f91583a0fc Add support for family to aiohttp session helper (#102702) 2023-10-24 18:40:39 -05:00
Robert Svensson a691bd26cf Support Lidl christmas light effects in deCONZ (#102731) 2023-10-25 00:32:20 +02:00
Maciej Bieniek b37253b206 Bump gios to version 3.2.0 (#102675) 2023-10-24 23:45:20 +02:00
Erik Montnemery f56343f447 Use real devices in lock device action tests (#102723) 2023-10-24 23:43:50 +02:00
Erik Montnemery 3a11a6f973 Use real devices in switch device action tests (#102727) 2023-10-24 23:43:30 +02:00
Erik Montnemery 530611c44e Use real devices in fan device action tests (#102720) 2023-10-24 21:40:24 +00:00
Erik Montnemery 21d0fa640f Use real devices in cover device action tests (#102719) 2023-10-24 23:40:22 +02:00
Erik Montnemery 8da421c442 Use real devices in climate device action tests (#102718) 2023-10-24 23:40:07 +02:00
Erik Montnemery 4bb6787909 Use real devices in button device action tests (#102717) 2023-10-24 23:39:47 +02:00
Erik Montnemery a4487637ef Use real devices in alarm_control_panel device action tests (#102716) 2023-10-24 23:39:37 +02:00
Erik Montnemery 2e9a3e8c8e Use real devices in humidifier device action tests (#102721) 2023-10-24 23:39:14 +02:00
Erik Montnemery e1394d720f Use real devices in vacuum device action tests (#102729) 2023-10-24 23:38:35 +02:00
Erik Montnemery 02a83740cc Use real devices in light device action tests (#102722) 2023-10-24 21:38:24 +00:00
Erik Montnemery 69ce85d5af Use real devices in select device action tests (#102726) 2023-10-24 23:38:19 +02:00
Erik Montnemery e708faa4d6 Use real devices in vacuum device condition tests (#102715) 2023-10-24 23:38:01 +02:00
Erik Montnemery e761d5715b Use real devices in switch device condition tests (#102714) 2023-10-24 21:37:48 +00:00
Erik Montnemery b5a6e6b9d5 Use real devices in sensor device condition tests (#102713) 2023-10-24 23:37:36 +02:00
Erik Montnemery ff60a8072e Use real devices in select device condition tests (#102712) 2023-10-24 23:37:16 +02:00
Erik Montnemery 1b61cd9179 Use real devices in remote device condition tests (#102711) 2023-10-24 23:36:31 +02:00
Erik Montnemery 2049d892ba Use real devices in media_player device condition tests (#102710) 2023-10-24 23:35:34 +02:00
Erik Montnemery 0e8bd9805a Use real devices in humidifier device condition tests (#102709) 2023-10-24 23:34:31 +02:00
Erik Montnemery 3ed67f134f Use real devices in fan device condition tests (#102708) 2023-10-24 23:32:56 +02:00
Erik Montnemery 9cf9b36637 Use real devices in device_tracker device condition tests (#102707) 2023-10-24 23:31:49 +02:00
Erik Montnemery 14485af22d Use real devices in cover device condition tests (#102706) 2023-10-24 23:30:33 +02:00
Erik Montnemery bead989e7f Use real devices in climate device condition tests (#102705) 2023-10-24 23:29:44 +02:00
Erik Montnemery 9d3cdc85ca Use real devices in binary_sensor device condition tests (#102704) 2023-10-24 23:28:29 +02:00
Erik Montnemery 4d83cffb39 Use real devices in alarm_control_panel device condition tests (#102703) 2023-10-24 23:27:29 +02:00
Erik Montnemery 56ee1753ec Use real devices in number device action tests (#102724) 2023-10-24 23:26:12 +02:00
Erik Montnemery 0ce7f44294 Use real devices in water_heater device action tests (#102730) 2023-10-24 23:25:14 +02:00
TheJulianJES fd8fdba7e8 Replace ZHA quirk class matching with quirk ID matching (#102482)
* Use fixed quirk IDs for matching instead of quirk class

* Change tests for quirk id (WIP)

* Do not default `quirk_id` to `quirk_class`

* Implement test for checking if quirk ID exists

* Change `quirk_id` for test slightly (underscore instead of dot)
2023-10-24 17:18:10 -04:00
Maciej Bieniek 5ee14f7f7d Bump accuweather to version 2.0.0 (#102670) 2023-10-24 23:14:05 +02:00
Bouwe Westerdijk a5461a9a90 Bump plugwise to v0.33.2 (#102671) 2023-10-24 23:11:16 +02:00
Bram Kragten f5a6c88051 Don't load themes in safe mode (#102683) 2023-10-24 23:00:14 +02:00
Allen Porter 0b8f48205a Add Todoist To-do list support (#102633)
* Add todoist todo platform

* Fix comment in todoist todo platform

* Revert CalData cleanup and logging

* Fix bug in fetching tasks per project

* Add test coverage for creating active tasks

* Fix update behavior on startup
2023-10-24 22:47:26 +02:00
Erik Montnemery ee1007abdb Use real devices in wemo device trigger tests (#102699) 2023-10-24 22:44:50 +02:00
Erik Montnemery 2807c9eaca Use real devices in vacuum device trigger tests (#102698) 2023-10-24 22:43:34 +02:00
Erik Montnemery d8baa38751 Use real devices in update device trigger tests (#102697) 2023-10-24 22:42:44 +02:00
Erik Montnemery 8737d84d30 Use real devices in switch device trigger tests (#102696) 2023-10-24 22:41:27 +02:00
Erik Montnemery 82cc62416e Use real devices in sensor device trigger tests (#102695) 2023-10-24 22:37:44 +02:00
Erik Montnemery 952f40a181 Use real devices in alarm_control_panel device trigger tests (#102676) 2023-10-24 22:33:08 +02:00
Erik Montnemery eac1d47ec6 Use real devices in media_player device trigger tests (#102691) 2023-10-24 22:31:16 +02:00
Erik Montnemery f9fa1edabf Use real devices in lock device trigger tests (#102690) 2023-10-24 22:30:07 +02:00
Erik Montnemery 691de148cf Use real devices in light device trigger tests (#102689) 2023-10-24 21:58:37 +02:00
Erik Montnemery 6d1d3f4207 Use real devices in device_tracker device trigger tests (#102685) 2023-10-24 21:58:22 +02:00
Erik Montnemery 6edbee75f0 Use real devices in kodi device trigger tests (#102688) 2023-10-24 21:58:06 +02:00
Erik Montnemery cedade15ef Use real devices in humidifier device trigger tests (#102687) 2023-10-24 21:58:01 +02:00
Erik Montnemery 51f6dac97f Use real devices in fan device trigger tests (#102686) 2023-10-24 21:57:57 +02:00
Erik Montnemery 4536720540 Use real devices in device_automation device trigger tests (#102684) 2023-10-24 21:57:42 +02:00
Erik Montnemery ec3596e85d Use real devices in cover device trigger tests (#102681) 2023-10-24 21:57:33 +02:00
Erik Montnemery 13be486d61 Use real devices in climate device trigger tests (#102680) 2023-10-24 21:57:22 +02:00
Erik Montnemery 223abb6dca Use real devices in button device trigger tests (#102679) 2023-10-24 21:57:14 +02:00
Erik Montnemery acc5edb088 Use real devices in binary_sensor device trigger tests (#102678) 2023-10-24 21:56:53 +02:00
Tomáš Bedřich d25b4aae14 Add ZHA cover tilt (#102072)
* cover tilt reimplementation

* rework tilt test

* Fix ZHA cover tests

* Match ZHA cover tilt code-style with the rest

* Increase coverage for ZHA cover, optimize update

---------

Co-authored-by: josef109 <josefglaze@gmail.com>
2023-10-24 15:40:41 -04:00
Maciej Bieniek 4febb2e1d3 Bump nam to version 2.2.0 (#102673) 2023-10-24 21:14:17 +02:00
Erik Montnemery f733f20834 Use real devices in arcam_fmj device trigger tests (#102677) 2023-10-24 13:39:16 -05:00
Erik Montnemery 508cffd1b5 Bump py-improv-ble-client to 1.0.3 (#102661) 2023-10-24 18:05:55 +02:00
Bouwe Westerdijk 8c3ae1b30c Add hvac_modes property to Plugwise (#102636)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-10-24 17:53:55 +02:00
Joost Lekkerkerker 9600c7fac1 Add workout calendar to Withings (#102589) 2023-10-24 16:38:11 +02:00
J. Nick Koston 80b3fec675 Bump aioesphomeapi to 18.0.12 (#102626)
changelog: https://github.com/esphome/aioesphomeapi/compare/v18.0.11...v18.0.12
2023-10-24 08:35:59 -05:00
Erik Montnemery 4604c5a152 Allow connecting an Improv via BLE device to a public network (#102655) 2023-10-24 15:24:30 +02:00
Erik Montnemery 97cc05d0b4 Make it possible to restart core in safe mode (#102606) 2023-10-24 14:47:58 +02:00
Erik Montnemery 46322a0f59 Add improv_ble integration (#102129)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-24 14:19:19 +02:00
Rami Mosleh fea15148a1 Remove scan_interval from transmission (#98858)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-24 14:17:46 +02:00
Joost Lekkerkerker 8cfb8cb084 Add serial number to Blink (#102621) 2023-10-24 11:38:54 +02:00
Erik Montnemery e20d4abfe1 Test extra javascript functionality in frontend (#102643) 2023-10-24 11:31:16 +02:00
Erik Montnemery 421832e09c Remove unused test fixture from frontend tests (#102642) 2023-10-24 11:13:44 +02:00
Joost Lekkerkerker b42c47e800 Add last workout sensors to Withings (#102541)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-24 11:07:47 +02:00
Franck Nijhof 57a10a2e0d Set cart icon for shopping list integration (#102638) 2023-10-24 10:32:27 +02:00
Matthias Alphart b0d4e5cb65 Retire Niels Mündler from Fronius codeowners (#102639) 2023-10-24 09:20:28 +02:00
Erik Montnemery b953f2998c Rename the safe_mode integration to recovery_mode (#102581)
* Rename safe mode integration to recovery mode

* Update code
2023-10-24 09:11:14 +02:00
Jan Bouwhuis 6372bc3aaa Fix missed case alexa light attr can be None (#102612)
* Fix missed cased alexa light attr can be None

* Add test
2023-10-24 00:20:03 +02:00
Joost Lekkerkerker d5e7cccff9 Add serial number to Brother (#102523) 2023-10-24 00:15:58 +02:00
Abílio Costa 2935d7d919 Remove uneeded typing on Idasen Desk (#102615) 2023-10-23 23:57:58 +02:00
ollo69 5245c94342 Exclude AsusWRT tracker state attribute from recorder (#102602) 2023-10-23 23:16:27 +02:00
Allen Porter 5d430f53cd Add todo component (#100019) 2023-10-23 22:53:00 +02:00
J. Nick Koston fa1df7e334 Bump pyatv to 0.14.3 (#102196) 2023-10-23 15:48:19 -05:00
J. Nick Koston 4c8a919ca3 Bump aioesphomeapi to 18.0.11 (#102603) 2023-10-23 15:46:05 -05:00
Michael Hansen a78e3f7b0f Delay import of webrtc to avoid blocking start up if package is missing (#102594)
* Delay import of webrtc to avoid blocking start up if package is missing

* Update homeassistant/components/assist_pipeline/pipeline.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/assist_pipeline/vad.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-10-23 13:34:32 -05:00
Erik Montnemery c481fdb7d0 Rename safe mode to recovery mode (#102580) 2023-10-23 20:33:08 +02:00
Erik Montnemery 7a009ed6cd Don't duplicate core services in hassio (#102593) 2023-10-23 20:26:56 +02:00
tronikos c555fe4462 Refactor ZHA IkeaFan (#101858)
IkeaFan refactor
2023-10-23 14:01:25 -04:00
Michael Hansen a52761171f No cooldown when wake words have the same id (#101846)
* No cooldown when wake words have the same id

* Use wake word entity id in cooldown decision
2023-10-23 13:12:34 -04:00
elmurato 54bcd70878 Increase timeouts in Minecraft Server (#101784) 2023-10-23 15:49:48 +02:00
Bouwe Westerdijk c7d2499a52 Bump plugwise to v0.33.1 (#102052) 2023-10-23 15:47:12 +02:00
mkmer 40ccae3d07 Add coordinator to Blink (#102536) 2023-10-23 15:34:28 +02:00
Franck Nijhof 5b39a08feb Update adguardhome to 0.6.2 (#102582)
Update adguard to 0.6.2
2023-10-23 14:47:43 +02:00
Guido Schmitz 04c0bca487 Remove name from device info in devolo Home Network (#102585) 2023-10-23 14:00:47 +02:00
Marc Mueller 9c0427a7ac Update pylint to 3.0.2 (#102576) 2023-10-23 13:08:47 +02:00
Joost Lekkerkerker 42c062de68 Only add Withings sleep sensors when we have data (#102578)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-23 12:59:13 +02:00
Erik Montnemery d5af6c595d Fix runaway regex in translations.develop (#102386)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-23 12:34:32 +02:00
Maikel Punie 8c9c915c45 Bump code-quality to silver for duotecno (#102284)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-23 12:14:10 +02:00
Joost Lekkerkerker 8a7de27946 Try negative WAQI station number before aborting (#102550) 2023-10-23 11:55:12 +02:00
TopdRob e27baedf32 Bump adax to 0.3.0 (#102556) 2023-10-23 11:21:33 +02:00
dependabot[bot] 3e23a4b4ee Bump github/codeql-action from 2.22.3 to 2.22.4 (#102566)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 11:11:06 +02:00
Joost Lekkerkerker 4c99d2607f Fix fibaro tests (#102575) 2023-10-23 11:04:21 +02:00
Maikel Punie 109819e9cd Only allow a single duotecno config entry (#102478) 2023-10-23 10:58:11 +02:00
Robert Resch 0c5b963847 Add lokalise multi reference check to hassfest (#101876) 2023-10-23 10:57:19 +02:00
Franck Nijhof e4af09d261 Update base image to 2023.10.1 (#102568) 2023-10-23 10:48:05 +02:00
Joost Lekkerkerker a6ade59133 Make Withings sleep sensor only show last night (#101993) 2023-10-23 10:39:17 +02:00
Paarth Shah 30ba78cf82 Fix resolving Matrix room aliases (#101928) 2023-10-23 10:35:41 +02:00
Paul Bottein 1176003b51 Move Ecowitt battery sensor into diagnostic category (#102569) 2023-10-23 10:07:31 +02:00
Rami Mosleh a2bc2bf8a0 Remove name from Transmission config flow (#102216)
* Remove name key from Transmission

* Remove name variable completely

* remove name error from strings

* Change entry title to default name
2023-10-23 09:21:15 +02:00
Joost Lekkerkerker 54ba376b4b Make Withings bed presence sensor dynamic (#102058)
* Make Withings bed presence sensor dynamic

* Make Withings bed presence sensor dynamic

* Update homeassistant/components/withings/binary_sensor.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-23 09:01:58 +02:00
J. Nick Koston 268425b5e3 Recover from previously failed statistics migrations (#101781)
* Handle statistics columns being unmigrated from previous downgrades

If the user downgraded HA from 2023.3.x to an older version without
restoring the database and they upgrade again with the same database
they will have unmigrated statistics columns since we only migrate them
once.

As its expensive to check, we do not want to check every time
at startup, so we will only do this one more time since the
risk that someone will downgrade to an older version is very
low at this point.

* add guard to sqlite to prevent re-migrate

* test

* move test to insert with old schema

* use helper

* normalize timestamps

* remove

* add check

* add fallback migration

* add fallback migration

* commit

* remove useless logging

* remove useless logging

* do the other columns at the same time

* coverage

* dry

* comment

* Update tests/components/recorder/test_migration_from_schema_32.py
2023-10-22 23:34:43 -04:00
Seth 4ee9a6f130 Implement available property for Airthings BLE sensors (#96735) 2023-10-22 12:02:15 -10:00
J. Nick Koston b980ed3eac Avoid more device_class lookups for number entities when writing state (#102381) 2023-10-22 23:55:13 +02:00
Joost Lekkerkerker a97e34f28e Add Nephelometry sensor to waqi (#102298) 2023-10-22 23:50:40 +02:00
Joost Lekkerkerker 04b883a8e9 Add activity sensors to Withings (#102501)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-22 23:47:18 +02:00
Erik Montnemery 164872e1af Improve error messages from translation script (#102098)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-22 23:45:27 +02:00
jan iversen bc45de627a Allow negative minimum temperature for modbus (#102118) 2023-10-22 23:44:38 +02:00
Mike Degatano c8007b841b Add exclude DB option to backup service call (#101958) 2023-10-22 23:40:44 +02:00
Robert Svensson 721c45b7a3 Rework UniFi client configuration (#99483) 2023-10-22 23:39:54 +02:00
rappenze 37fdb4950a Refactor fibaro scene test (#102452) 2023-10-22 23:36:41 +02:00
Jan Bouwhuis c2abc3dcec Fix brightness and color_temp can be None for alexa light entities (#102554)
* Fix brightness and color_temp can be None in alexa

* Add test
2023-10-22 23:34:04 +02:00
Joost Lekkerkerker 5e30c2ab9c Use dataclass for Withings domain data (#102547)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-22 22:42:18 +02:00
Joakim Plate 7d2fa5bf60 Correct range for nibe_heatpump numbers (#102553) 2023-10-22 22:39:40 +02:00
Joost Lekkerkerker e936ca0cb1 Build Pydantic wheels with old Cython (#101976) 2023-10-22 22:39:00 +02:00
J. Nick Koston 0adb6fb02c Bump anyio to 4.0.0 (#102552) 2023-10-22 10:34:34 -10:00
rappenze 27f6c6fdf4 Add model info in fibaro integration (#102551) 2023-10-22 22:11:43 +02:00
Joost Lekkerkerker 2dfb3ba693 Bump python-opensky to 0.2.1 (#102467) 2023-10-22 22:00:14 +02:00
Joost Lekkerkerker e3b238861d Clean up withings tests (#102548) 2023-10-22 21:58:30 +02:00
Joost Lekkerkerker 3f88c518a5 Use translated name for entity id for Picnic (#97230) 2023-10-22 21:39:01 +02:00
J. Nick Koston 4bf0d6e536 Bump aioesphomeapi to 18.0.10 (#102545) 2023-10-22 09:20:49 -10:00
Joost Lekkerkerker 6b618fc95a Add entity translations to SolarEdge (#102295)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-10-22 21:02:39 +02:00
Álvaro Fernández Rojas b416c8fbf6 Update aioairzone-cloud to v0.3.0 (#102540) 2023-10-22 20:52:17 +02:00
Guido Schmitz a77a0ef4a5 Add serial number to devolo Home Network (#102546) 2023-10-22 20:51:27 +02:00
Joost Lekkerkerker 877410bb9d Add serial number to Elgato (#102524)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-22 20:32:02 +02:00
Joost Lekkerkerker 1fd7378caf Remove abstraction in WAQI config flow (#102543) 2023-10-22 20:31:17 +02:00
rappenze c9c152d46d Bump pyfibaro to 0.7.6 (#102538) 2023-10-22 20:07:23 +02:00
Joost Lekkerkerker f8ed051f01 Bump aiowithings to 1.0.1 (#102532) 2023-10-22 19:38:48 +02:00
Joost Lekkerkerker 0b5218ec96 Migrate SolarEdge to has entity name (#98944) 2023-10-22 19:30:05 +02:00
Franck Nijhof 409afddeb5 Merge branch 'master' into dev 2023-10-22 19:05:38 +02:00
J. Nick Koston 82c0610050 Avoid core/supervisor stats API calls when no entities need them (#102362) 2023-10-22 06:40:48 -10:00
Joost Lekkerkerker af0b53cc79 Add serial number to Axis (#102522)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2023-10-22 18:34:01 +02:00
Jan-Philipp Benecke a04c37c59f Add serial number to Discovergy (#102531) 2023-10-22 18:10:47 +02:00
wittypluck b79eae2e94 Update Unifi bandwidth sensors (#101598)
* Change bandwidth sensors device class, state class, unit of measurement, icon

* Reformat imports

* Reformat imports

* Revert suggested_unit_of_measurement. Add unit tests.
2023-10-22 17:14:49 +02:00
Joost Lekkerkerker e4943dd1e6 Add serial number to Qnap (#102528) 2023-10-22 08:13:36 -07:00
Joost Lekkerkerker 392b53e256 Add serial number to Fibaro (#102525) 2023-10-22 16:53:29 +02:00
Joost Lekkerkerker 1a8558012f Add serial number to Flo (#102526) 2023-10-22 16:53:17 +02:00
Joost Lekkerkerker ee8037afc1 Add serial number to Nuheat (#102527) 2023-10-22 16:53:04 +02:00
Joost Lekkerkerker 58e84b7ba1 Add serial number to Roomba (#102529) 2023-10-22 16:52:55 +02:00
Joost Lekkerkerker 1412c2ea6e Add serial number to ViCare (#102530) 2023-10-22 16:52:38 +02:00
Jan-Philipp Benecke 3259e39170 Migrate Nuki to use dataclass for entry data (#101785)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-10-22 16:30:34 +02:00
Hessel 06a2664a07 Wallbox Improve Testing (#102519) 2023-10-22 16:22:35 +02:00
Caius-Bonus 51f989c57a Standardize _select_attr in ZCLEnumSelectEntity (#102454) 2023-10-22 16:18:38 +02:00
elmurato 8bfd418c3e Reach gold level in Minecraft Server (#102462) 2023-10-22 16:17:32 +02:00
Niklas Held af264c6e0d Fix options-flow in hvv_departures (#102484) 2023-10-22 15:17:22 +02:00
Erik Montnemery 1621310ba7 Add serial_number to device registry entries (#102334)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-22 15:14:44 +02:00
Franck Nijhof 1973287c91 2023.10.5 (#102517) 2023-10-22 14:55:13 +02:00
J. Nick Koston b3bd34a024 Avoid dispatching same state to passive bluetooth entities (#102430) 2023-10-22 14:08:28 +02:00
Álvaro Fernández Rojas 311e539c0e Update aioairzone-cloud to v0.2.8 (#102515) 2023-10-22 13:57:38 +02:00
Franck Nijhof d5862c350a Bumped version to 2023.10.5 2023-10-22 13:24:52 +02:00
Steven Looman 9820f4288f Bump async-upnp-client to 0.36.2 (#102472) 2023-10-22 13:24:34 +02:00
puddly 00607fb778 Downgrade ZHA dependency bellows (#102471)
Downgrade bellows
2023-10-22 13:24:30 +02:00
Jan-Philipp Benecke 62d8472757 Move ping classes to their own module (#102448) 2023-10-21 22:12:59 -10:00
Jan Bouwhuis 973b8900a9 Optimize mqtt platform setup (#102449)
* Optimize mqtt platform setup and correct issue

* Avoid coroutine for setup entity from discovery

* Avoid extra check

* Revert string constants

* Add comment
2023-10-22 08:31:08 +02:00
J. Nick Koston 215febc912 Bump aioesphomeapi to 18.0.9 (#102509) 2023-10-21 20:17:22 -10:00
Allen Porter c4f562ff6a Reduce unnecessary fitbit RPCs on startup (#102504)
* Reduce unnecessary fitbit RPCs on startup

* Update comment about racing user profile rpcs
2023-10-21 22:00:40 -07:00
Joost Lekkerkerker 1801a7738c Bump aiowithings to 1.0.0 (#102499) 2023-10-21 16:51:21 -10:00
J. Nick Koston 6f2245bba3 Bump aioesphomeapi to 18.0.8 (#102493) 2023-10-21 16:51:12 -10:00
J. Nick Koston 0ebc97ad85 Bump yalexs-ble to 2.3.1 (#102502) 2023-10-21 14:30:53 -10:00
Jan Bouwhuis 242124504b Improve mqtt config issue string constants (#102496)
Improve config issue string constants
2023-10-22 00:21:55 +02:00
Xitee f4d91043fc Add codeowner for roomba (#102492) 2023-10-21 23:05:04 +02:00
Steven Looman aa9301be32 Bump async-upnp-client to 0.36.2 (#102472) 2023-10-21 10:09:09 -10:00
J. Nick Koston 51596c6231 Remove useless freezing on PassiveBluetoothDataUpdate (#102434) 2023-10-21 10:07:02 -10:00
J. Nick Koston f9dbddc884 Small cleanups to Bluetooth fallback intervals (#102440) 2023-10-21 10:06:49 -10:00
J. Nick Koston 89f9d64bf5 Add early return check to passive Bluetooth entities listener (#102435) 2023-10-21 10:06:39 -10:00
J. Nick Koston f626f3bc1e Bump aiohomekit to 3.0.8 (#102479) 2023-10-21 10:06:28 -10:00
Jan-Philipp Benecke 017c699e19 Let the statistics component calculate changes in fossil energy consumption calculation (#101557) 2023-10-21 10:06:12 -10:00
Joost Lekkerkerker 235a3486ee Add sensors for Withings Goals (#102468) 2023-10-21 21:51:37 +02:00
Allen Porter f0f3a43b09 Bump ical to 5.1.0 (#102483) 2023-10-21 12:40:33 -07:00
Adrian Nöthlich e8146e5565 Add support for Bosch QR-codes for zha.permit (#102427)
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2023-10-21 15:03:24 -04:00
Simone Chemelli c36166f01d Add sensor platform to Comelit SmartHome (#102465)
* Add sensor platform to Comelit SmartHome

* apply review comments
2023-10-21 19:44:56 +02:00
puddly 864b69e586 Downgrade ZHA dependency bellows (#102471)
Downgrade bellows
2023-10-21 13:19:37 -04:00
Hessel bd0df2f18f Add energy price number entities to Wallbox (#101840) 2023-10-21 17:53:32 +02:00
Joost Lekkerkerker e5b5858915 Bump aiowithings to 0.5.0 (#102456) 2023-10-21 17:39:54 +02:00
Simone Chemelli 3896ed47be Fix switches list for Comelit SmartHome (#102336)
* fix switches list

* make entities a single list

* fix duplicate ids

* move comment to a better position
2023-10-21 16:57:11 +02:00
elmurato faa149b71a Add binary sensor tests to Minecraft Server (#102457) 2023-10-21 15:49:38 +02:00
elmurato 9f3a733f73 Add sensor tests to Minecraft Server (#102418) 2023-10-21 15:19:32 +02:00
Marc Mueller a8f0a66c27 Fix idasen_desk generic typing (#102445) 2023-10-21 13:15:43 +02:00
Franck Nijhof aa5c4d8786 2023.10.4 (#102397) 2023-10-21 12:00:26 +02:00
Paulus Schoutsen 09a8b8567d Set Reolink record switch as config (#102439)
Reolink: record switch as config
2023-10-21 08:31:00 +02:00
J. Nick Koston 5cec687247 Bump pyenphase to 1.13.1 (#102431) 2023-10-20 15:27:54 -10:00
Franck Nijhof 29f61349ea Update black to 23.10.0 (#102420) 2023-10-20 14:19:04 -10:00
Richard Kroegel 5aefe963ae Bump bimmer_connected to 0.14.2 (#102426)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-10-20 14:18:09 -10:00
Charles Garwood 013e580c02 Add support for changing Enphase battery backup modes (#102392) 2023-10-20 14:05:42 -10:00
Raman Gupta 41b59b6990 Add support for zwave_js event entities (#102285)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-20 19:11:08 -04:00
J. Nick Koston a2c60d9015 Only callback when value or status changes for processing HKC events (#102370) 2023-10-20 12:46:18 -10:00
Franck Nijhof 55a8f01dcf Update ruff to v0.1.1 (#102421) 2023-10-20 12:33:07 -10:00
Franck Nijhof 7e6c14d062 Update Pillow to 10.1.0 (#102419) 2023-10-21 00:26:02 +02:00
Jan-Philipp Benecke 3c455391c2 Use dataclass to carry data in ping (#99803)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-20 11:46:33 -10:00
Franck Nijhof b881057aa6 Update apprise to 1.6.0 (#102417) 2023-10-20 11:45:44 -10:00
J. Nick Koston f51743f123 Bump aiohomekit to 3.0.7 (#102408) 2023-10-20 23:08:41 +02:00
Franck Nijhof b70262fe8c Update psutil to 5.9.6 (#102416) 2023-10-20 23:07:14 +02:00
Franck Nijhof f08a3b96e4 Update wled to 0.17.0 (#102413) 2023-10-20 23:06:13 +02:00
Franck Nijhof f6238c16f6 Bump twentemilieu to 2.0.0 (#102407) 2023-10-20 23:00:17 +02:00
Álvaro Fernández Rojas 6f84549784 Update aioairzone-cloud to v0.2.7 (#102406) 2023-10-20 20:59:02 +02:00
Franck Nijhof 038040ffbe Update elgato to 5.0.0 (#102405) 2023-10-20 20:58:40 +02:00
Charles Garwood e1972ba3c8 Add Enphase charge from grid switch (#102394)
* Add Enphase charge from grid switch

* review comments
2023-10-20 14:30:54 -04:00
Jan Bouwhuis 1bd0b2d05f Refactor mqtt entity cleanup on reload (#102375) 2023-10-20 20:28:04 +02:00
Franck Nijhof 5ff6779f5c Update guppy3 to 3.1.4 (#102400) 2023-10-20 20:20:17 +02:00
Franck Nijhof dd4ac823d3 Update pvo to 2.0.0 (#102398) 2023-10-20 20:20:04 +02:00
J. Nick Koston 27b5a9e074 Reduce number of test states in big purge test to fix CI (#102401) 2023-10-20 08:09:59 -10:00
J. Nick Koston 6be401918e Bump aioesphomeapi to 18.0.7 (#102399) 2023-10-20 20:04:48 +02:00
kpine 2d6dc2bccc Fix temperature setting for multi-setpoint z-wave device (#102395)
* Fix temperature setting for multi-setpoint z-wave device

* Add missing fixture file

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-20 20:04:45 +02:00
J. Nick Koston 31daac61a9 Bump bluetooth-data-tools to 1.13.0 (#102208) 2023-10-20 20:04:42 +02:00
J. Nick Koston 1939beeca6 Bump dbus-fast to 2.12.0 (#102206) 2023-10-20 20:04:39 +02:00
J. Nick Koston 14483db892 Bump aioesphomeapi to 18.0.6 (#102195) 2023-10-20 20:04:35 +02:00
J. Nick Koston 0bd416e53d Bump aioesphomeapi to 18.0.7 (#102399) 2023-10-20 08:00:55 -10:00
kpine c7affa75d4 Fix temperature setting for multi-setpoint z-wave device (#102395)
* Fix temperature setting for multi-setpoint z-wave device

* Add missing fixture file

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-20 19:57:00 +02:00
Franck Nijhof 73ac2d3dcc Bumped version to 2023.10.4 2023-10-20 17:40:08 +02:00
Álvaro Fernández Rojas 00978026cd Update aioairzone to v0.6.9 (#102383) 2023-10-20 17:39:46 +02:00
Joost Lekkerkerker c9cba77940 Bump vehicle to 2.0.0 (#102379) 2023-10-20 17:38:32 +02:00
puddly 467d24548d Bump ZHA dependencies (#102358) 2023-10-20 17:38:28 +02:00
Maikel Punie ab67304ebc Bump pyduotecno to 2023.10.1 (#102344) 2023-10-20 17:36:54 +02:00
Álvaro Fernández Rojas d55b6a0839 Handle timeouts on AEMET init (#102289)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-10-20 17:36:51 +02:00
Joost Lekkerkerker dd15e3f706 Bump aiowaqi to 2.1.0 (#102209) 2023-10-20 17:36:47 +02:00
Maikel Punie 7963008a1e Bump velbusaio to 2023.10.1 (#102178) 2023-10-20 17:36:44 +02:00
Michael Hansen 3599ddfd9f Don't warn about unknown pipeline events in ESPHome (#102174)
Don't warn about unknown events (debug)
2023-10-20 17:36:41 +02:00
iain MacDonnell f5e681ad33 Explicitly set entity name for VenstarSensor (#102158)
VenstarSensor entity name

Set entity name using _attr_name instead of a name property, to
avoid warnings about name being implicitly set to None.
2023-10-20 17:36:38 +02:00
tronikos 221efd7d4d Bump opower to 0.0.36 (#102150) 2023-10-20 17:36:34 +02:00
Jesse Hills f896b82b49 Send events for tts stream start/end (#102139) 2023-10-20 17:36:31 +02:00
Robert Svensson ec6128d9c4 Fix UniFi client tracker entities being unavailable when away on restart (#102125) 2023-10-20 17:36:28 +02:00
TheJulianJES a187f05da0 Bump zha-quirks to 0.0.105 (#102113) 2023-10-20 17:36:25 +02:00
Maikel Punie f12ce41d00 Bump velbusaio to 2023.10.0 (#102100) 2023-10-20 17:36:22 +02:00
Maikel Punie 3aba98a297 Correct sensor state attribute and device class in Velbus sensors (#102099) 2023-10-20 17:36:19 +02:00
J. Nick Koston 1a45b0af28 Bump aioesphomeapi to 18.0.3 (#102085) 2023-10-20 17:36:16 +02:00
Abílio Costa c916ac67bd Call disconnected callbacks from BT ESPHome client (#102084)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-20 17:36:13 +02:00
Allen Porter f7e84fcb60 Fix bug in calendar state transitions (#102083) 2023-10-20 17:36:09 +02:00
J. Nick Koston 2d7f054058 Bump aioesphomeapi to 18.0.1 (#102028)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-20 17:36:06 +02:00
J. Nick Koston 3fb79829ef Bump aioesphomeapi to 17.2.0 (#101981)
* Bump aioesphomeapi to 17.2.0

changelog: https://github.com/esphome/aioesphomeapi/compare/v17.1.5...v17.2.0

* fix import from wrong module
2023-10-20 17:36:03 +02:00
Phil Bruckner b2bbe4f4b8 Fix google_maps same last_seen bug (#101971) 2023-10-20 17:36:00 +02:00
Maximilian edce212dc9 Bump pynina to 0.3.3 (#101960) 2023-10-20 17:35:55 +02:00
Kevin Worrel 1e1dbf3cef Bump screenlogicpy to v0.9.3 (#101957) 2023-10-20 17:35:51 +02:00
Raman Gupta 24a1e540b9 Update zwave issue repair strings (#101940) 2023-10-20 17:35:46 +02:00
Vadym Holoveichuk 1371a03d14 Fix Setpoint in Matter climate platform (#101929)
fix matter max setpoint
2023-10-20 17:35:43 +02:00
J. Nick Koston 1b83620213 Bump aioesphomeapi to 17.1.5 (#101916) 2023-10-20 17:35:35 +02:00
J. Nick Koston 08d5d5336a Bump aioesphomeapi to 17.1.4 (#101897) 2023-10-20 17:35:29 +02:00
Jan Bouwhuis 406e58df69 Fix error handling on subscribe when mqtt is not initialized (#101832) 2023-10-20 17:29:45 +02:00
Archomeda e9e677d933 Fix Spotify media position update value (#100044)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-20 17:29:34 +02:00
J. Nick Koston 3cfcffc6f2 Bump fnv-hash-fast to 0.5.0 (#102271) 2023-10-20 16:49:40 +02:00
J. Nick Koston 50c7587ab8 Bump ulid-transform to 0.9.0 (#102272) 2023-10-20 16:49:18 +02:00
Kostas Chatzikokolakis cc0491e85d Use action response in intent_script speech template (#96256) 2023-10-20 10:23:02 -04:00
Maikel Punie 5e483c5573 Create a binary sensor for each Duotecno virtual unit (#102347) 2023-10-20 16:02:56 +02:00
dupondje da653c36fd Add peak usage sensors to dsmr (#102227) 2023-10-20 15:59:34 +02:00
Marco4223 a187164bf8 Get all playlist items from sonos devices (#100924) 2023-10-20 15:18:10 +02:00
Jan Bouwhuis 485c52568d Fix error handling on subscribe when mqtt is not initialized (#101832) 2023-10-20 15:16:45 +02:00
Sjors 20a58d2314 Fix typo in fastdotcom strings (#102384) 2023-10-20 15:15:13 +02:00
Kevin Stillhammer d7e195ba40 Use snapshots in calendar tests (#102299) 2023-10-20 15:14:31 +02:00
Álvaro Fernández Rojas 8202071683 Update aioairzone to v0.6.9 (#102383) 2023-10-20 15:11:48 +02:00
Álvaro Fernández Rojas c042863486 Update aioairzone-cloud to v0.2.5 (#102382) 2023-10-20 15:10:40 +02:00
Joost Lekkerkerker 16e3ed47e7 Bump vehicle to 2.0.0 (#102379) 2023-10-20 14:54:51 +02:00
Jan-Philipp Benecke 6f83374f3e Bump pydiscovergy to 2.0.5 (#102354) 2023-10-20 14:52:32 +02:00
Jan Bouwhuis fe8fb8928c Improve test creating mqtt certificate files (#102380)
* Improve test creating mqtt certificate files

* Split tests

* Cleanup and de-duplicate

* Update tests/components/mqtt/test_util.py
2023-10-20 14:49:33 +02:00
Archomeda 712c061ac0 Fix Spotify media position update value (#100044)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-20 14:00:31 +02:00
Jan Bouwhuis 25ab622b51 Rename mqtt entry setup helpers to reflect their purpose (#102378)
Rename mqtt entry setup helpers
2023-10-20 13:36:24 +02:00
Álvaro Fernández Rojas e319b04fde Improve Airzone Cloud tests (#102377) 2023-10-20 00:58:31 -10:00
Jan Bouwhuis 7d9014ae41 Do not fail MQTT setup if events or sensors configured via yaml can't be validated (#102309)
* Add event and sensor

* Cleanup unused code

* Schema cannot be None for supported platform
2023-10-20 12:09:52 +02:00
Álvaro Fernández Rojas f85b4f734c Implement Airzone Cloud Installation climate support (#101090)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-20 00:09:38 -10:00
c0ffeeca7 4e63823970 Rename Twitter to X (#102214) 2023-10-20 12:02:43 +02:00
Franck Nijhof 554ab94782 Bump toonapi to 0.3.0 (#102369) 2023-10-20 11:13:18 +02:00
Jan Bouwhuis 1efbba2631 Do not fail MQTT setup if covers configured via yaml can't be validated (#102304)
Add cover
2023-10-20 10:51:42 +02:00
Jan Bouwhuis 12c4a10cfc Do not fail MQTT setup if numbers configured via yaml can't be validated (#102316)
Add number
2023-10-20 10:51:14 +02:00
Jan Bouwhuis f1eb28b7ac Do not fail MQTT setup if update entities configured via yaml can't be validated (#102324) 2023-10-20 10:14:25 +02:00
J. Nick Koston 3014a651c3 Reduce overhead to write HomeKit Controller state (#102365) 2023-10-20 08:50:07 +02:00
Robert Svensson 84d0907fc8 Fix UniFi client tracker entities being unavailable when away on restart (#102125) 2023-10-20 08:49:22 +02:00
puddly 8a79870e3a Clean up stale ZHA database listener when reconnecting to radio (#101850) 2023-10-20 08:48:33 +02:00
TheJulianJES 92e625636a Fix ZHA power_factor attribute not initialized (#102133) 2023-10-20 08:15:37 +02:00
Jan Bouwhuis c7b1e4186b Do not fail MQTT setup if water heaters configured via yaml can't be validated (#102326) 2023-10-20 08:15:09 +02:00
Maikel Punie 38a0d31edb Bump pyduotecno to 2023.10.1 (#102344) 2023-10-20 08:14:55 +02:00
Jan Bouwhuis 04fdcbe5fa Do not fail MQTT setup if buttons configured via yaml can't be validated (#102301) 2023-10-20 08:13:59 +02:00
Robert Resch bb90c1f168 Fix multilevel reference translations (#102338) 2023-10-20 08:12:53 +02:00
J. Nick Koston b911f242dd Use new lookup methods for homekit_controller (#102278) 2023-10-20 08:12:15 +02:00
puddly 3285c982fe Bump ZHA dependencies (#102358) 2023-10-20 08:11:49 +02:00
Jan Bouwhuis dcdd4b470c Do not fail MQTT setup if lawn mowers configured via yaml can't be validated (#102314) 2023-10-20 08:11:33 +02:00
Franck Nijhof e6d9f89991 Remove dev API docs from repository (#102274) 2023-10-20 08:10:46 +02:00
Jan Bouwhuis 5264cdf382 Do not fail MQTT setup if locks configured via yaml can't be validated (#102315)
Add lock
2023-10-20 01:13:35 +02:00
Joost Lekkerkerker fd435a5416 Address MyStrom late review (#102306)
* Address MyStrom late review

* Address MyStrom late review
2023-10-20 00:08:26 +02:00
Jan Bouwhuis f4e7c5aed3 Do not fail MQTT setup if humidifiers configured via yaml can't be validated (#102312)
Add humidifier
2023-10-19 23:29:49 +02:00
J. Nick Koston 6baa8082d5 Bump aiohomekit to 3.0.6 (#102341) 2023-10-19 11:12:56 -10:00
Jan Bouwhuis ec1b3fe6fb Do not fail MQTT setup if switches configured via yaml can't be validated (#102320)
Add switch
2023-10-19 23:04:35 +02:00
Jan Bouwhuis 54c80491e3 Do not fail MQTT setup if select's configured via yaml can't be validated (#102318)
Add select
2023-10-19 22:10:45 +02:00
Joost Lekkerkerker e6e2aa0ea0 Import Comelit state from library (#102356) 2023-10-19 21:50:14 +02:00
J. Nick Koston 5c422c61e9 Improve typing in roomba integration (#102350) 2023-10-19 09:43:48 -10:00
thatso 96b450ad39 Improve wording in NUT (#102353) 2023-10-19 21:38:15 +02:00
Joost Lekkerkerker 063d74c35d Use entity descriptions in Roomba (#102323)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-19 09:37:01 -10:00
Jan Bouwhuis e26a2596af Do not fail MQTT setup if climate's configured via yaml can't be validated (#102303)
Add climate
2023-10-19 21:14:45 +02:00
J. Nick Koston b57af4e404 Remove update_before_add from roomba (#102337) 2023-10-19 20:35:58 +02:00
Jan Bouwhuis 22c21fdc18 Do not fail MQTT setup if vacuum's configured via yaml can't be validated (#102325)
Add vacuum
2023-10-19 20:11:09 +02:00
Franck Nijhof f497bcee3a Don't run CodeQL on PRs (#102342) 2023-10-19 20:04:09 +02:00
Jan Bouwhuis 9db9f1b8a9 Fix suggested UOM cannot be set for dsmr entities (#102134)
* Supply dsmr entities jit on first telegram

* Stale docstr

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

* Simplify tuple type

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-19 19:22:03 +02:00
Simone Chemelli c574cefc30 Bump aiocomelit to 0.3.0 (#102340)
* Bump aiocomelit to 0.3.0

* missing string
2023-10-19 17:15:06 +00:00
Jan Bouwhuis 5eb0a33795 Do not fail MQTT setup if text's configured via yaml can't be validated (#102322)
Add text
2023-10-19 18:51:47 +02:00
Jan Bouwhuis 1456809f6a Do not fail MQTT setup if sirens configured via yaml can't be validated (#102319)
Add siren
2023-10-19 18:50:50 +02:00
Jan Bouwhuis d0341c9754 Do not fail MQTT setup if images configured via yaml can't be validated (#102313)
Add image
2023-10-19 18:50:02 +02:00
Jan Bouwhuis 3853214496 Do not fail MQTT setup if fans configured via yaml can't be validated (#102310)
Add fan
2023-10-19 18:48:35 +02:00
J. Nick Koston c408b60e4e Reduce internal property lookups needed to write number entity state (#102281) 2023-10-19 06:30:20 -10:00
Jan Bouwhuis 615b02be59 Do not fail MQTT setup if scenes configured via yaml can't be validated (#102317)
Add scene
2023-10-19 18:27:04 +02:00
GeoffAtHome c266583bea Smart plugs appear as Switches and Binary Sensors (#102112) 2023-10-19 18:26:34 +02:00
Robert Resch eab4c24f7f Fix KeyError in derivative and integration (#102294) 2023-10-19 18:22:22 +02:00
Jan Bouwhuis 3a4341dbeb Do not fail MQTT setup if device trackers configured via yaml can't be validated (#102308)
Add device_tracker
2023-10-19 18:18:04 +02:00
Jan Bouwhuis fb984b5218 Do not fail MQTT setup if camera's configured via yaml can't be validated (#102302)
Add camera
2023-10-19 18:17:06 +02:00
Jan Bouwhuis 651b725cc0 Do not fail MQTT setup if binary sensors configured via yaml can't be validated (#102300)
Add binary_sensor
2023-10-19 18:15:21 +02:00
Jan Bouwhuis d149bffb07 Do not fail MQTT setup if lights configured via yaml can't be validated (#101649)
* Add light

* Deduplicate code

* Follow up comment
2023-10-19 17:34:43 +02:00
Joakim Plate 90687e9794 Standardize zha attribute member name (#102182)
* Correct missed translation

* Standardize on _attribute for zha
2023-10-19 17:34:17 +02:00
Kevin Stillhammer dae742fba0 Use snapshots in weather tests (#102297) 2023-10-19 16:40:08 +02:00
Xitee 2d833fd6ea Add more diagnostic sensors to iRobot (#84995)
Co-authored-by: 930913 <3722064+930913@users.noreply.github.com>
Co-authored-by: Xitee <59659167+Xitee1@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-19 15:49:43 +02:00
Erik Montnemery dff18b4a16 Rename gather_with_concurrency to gather_with_limited_concurrency (#102241)
* Rename gather_with_concurrency to gather_with_limited_concurrency

* Update test
2023-10-19 15:08:52 +02:00
Erik Montnemery 4498c2e8c4 Validate steps in Flowhandler (#102152)
* Validate steps in Flowhandler

* Move validation to FlowManager._async_handle_step

* Fix _raise_if_not_has_step

* Fix config_entries tests

* Fix tests

* Rename

* Add test
2023-10-19 13:34:10 +02:00
Joost Lekkerkerker 9857c0fa3a Move WAQI state attributes to separate sensors (#101217)
* Migrate WAQI to has entity name

* Split WAQI extra state attributes into separate sensors

* Split WAQI extra state attributes into separate sensors

* Fix test

* Support new aiowaqi

* Bump aiowaqi to 2.1.0

* Add nephelometry as possible value

* Fix test
2023-10-19 12:30:40 +02:00
Jan Bouwhuis c377cf1ce0 Do not fail mqtt entry on single platform config schema error (#101373)
* Do not fail mqtt entry on platform config

* Raise on reload with invalid config

* Do not store issues

* Follow up
2023-10-19 12:06:33 +02:00
Joost Lekkerkerker 857f2e1d86 Patch platform in Withings sensor test (#102155)
* Patch platform in Withings sensor test

* Fix feedback
2023-10-19 11:33:31 +02:00
Christopher Fenner ea61160fd8 Reuse function to check feature support on ViCare devices (#102211)
* check feature support in utils function

* rename parameters

* restore severity

* reorder parameters

* Update .coveragerc
2023-10-19 10:55:30 +02:00
J. Nick Koston 327bdce561 Handle ATTR_HS_COLOR being None in HomeKit (#102290) 2023-10-18 22:42:39 -10:00
Álvaro Fernández Rojas 7ec2496c81 Handle timeouts on AEMET init (#102289)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-10-19 10:42:31 +02:00
J. Nick Koston d00934a8f8 Refactor automation trigger attachment to avoid creating a closure (#102288) 2023-10-18 22:42:15 -10:00
J. Nick Koston 393544b3e7 Make group _update_at_start a callback (#102286) 2023-10-18 22:41:39 -10:00
dupondje 870e38e8ba Remove unused dsmr sensors (#102223) 2023-10-19 08:57:50 +02:00
Franck Nijhof 4b39d34f4c Add CodeQL CI Job (#102273) 2023-10-19 08:56:30 +02:00
Luke Lashley ae62999457 Bump Python-Roborock to 0.35.0 (#102275) 2023-10-19 08:56:15 +02:00
tronikos afec5b6730 Bump opower to 0.0.37 (#102265) 2023-10-19 01:51:48 +02:00
J. Nick Koston 159b623b95 Bump orjson to 3.9.9 (#102267) 2023-10-19 01:48:05 +02:00
J. Nick Koston 20fdd45e60 Bump home-assistant-bluetooth to 1.10.4 (#102268) 2023-10-19 01:16:55 +02:00
Paul Bottein c98c18f25e Return 'None' for light attributes when off instead of removing them (#101946) 2023-10-19 01:08:08 +02:00
Abílio Costa 606b76c681 Add better connection management for Idasen Desk (#102135) 2023-10-18 12:58:31 -10:00
Maikel Punie 2531b0bc09 Bump velbusaio to 2023.10.1 (#102178) 2023-10-18 22:00:55 +02:00
Stefan 1372126bc0 Remove Shiftr integration (#102224) 2023-10-18 21:21:55 +02:00
J. Nick Koston 22de378d91 Bump bluetooth-data-tools to 1.13.0 (#102208) 2023-10-18 08:54:17 -10:00
Simone Chemelli b9c7613774 Add switch platform to Comelit SmartHome (#102233)
* Add switch platform to Comelit SmartHome

* add device class only when needed

* apply review comment

* small cleanup for light platform

* update functions description

* fix list of values
2023-10-18 20:49:33 +02:00
dependabot[bot] 61104dd726 Bump actions/checkout from 4.1.0 to 4.1.1 (#102248)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-18 19:50:09 +02:00
J. Nick Koston 9d6518265c Bump zeroconf to 0.119.0 (#102207) 2023-10-18 07:22:06 -10:00
J. Nick Koston d0bff10502 Bump dbus-fast to 2.12.0 (#102206) 2023-10-18 07:14:13 -10:00
Franck Nijhof 664e490cfa Update base image to 2023.10.0 (#102126) 2023-10-18 19:11:41 +02:00
dupondje 1b73219137 Bump dsmr_parser to 1.3.0 (#102225)
bump dsmr_parser==1.3.0
2023-10-18 18:13:09 +02:00
Christopher Fenner eee294d384 Get diagnostics of all devices in ViCare account (#102218)
* get diagnostics of all devices

* correct test data

* correct test data

* correct test data
2023-10-18 18:07:42 +02:00
Franck Nijhof 9d775bdbf6 Update home-assistant/wheels to 2023.10.5 (#102243) 2023-10-18 17:58:39 +02:00
jan iversen 3bb23a6d88 Correct process_raw_value for modbus sensor (#102032) 2023-10-18 17:25:57 +02:00
Philippe Wechsler 5f35eecf93 Add sensors for myStrom plugs (#97024)
* support sensors for myStrom plugs

* added myStrom sensor to coveragerc

* some improvements from pr reviews

* adapt to the SensorEntityDescription pattern

* Apply suggestions from code review

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

* Update homeassistant/components/mystrom/sensor.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update homeassistant/components/mystrom/sensor.py

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

* Update __init__.py

* Update const.py

* Update sensor.py

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-10-18 16:01:46 +02:00
Joost Lekkerkerker 799342497b Remove instances of title case in common strings (#102212) 2023-10-18 14:52:51 +02:00
Joost Lekkerkerker a65ad37c8b Change config entry title to Picnic (#102221) 2023-10-18 14:27:37 +02:00
dupondje 43aaf78f7b Fix DSMR max current device class (#102219)
Max current is CURRENT Device Class

The max current is shown as Amps. So need to change the device class to
CURRENT instead of POWER.
2023-10-18 14:05:16 +02:00
Marc Mueller a06d8c4d3f Update mypy to 1.6.1 (#102210) 2023-10-18 13:38:10 +02:00
Joost Lekkerkerker 42f830600c Bump aiowaqi to 2.1.0 (#102209) 2023-10-18 13:24:57 +02:00
Simone Chemelli 6c1bcae291 Bump aiovodafone to 0.4.1 (#102180) 2023-10-18 10:56:48 +02:00
J. Nick Koston 3cedfbcc66 Handle re-adding of accessories/services/chars in homekit_controller after removal (#102192) 2023-10-17 22:00:02 -10:00
J. Nick Koston cfb88766c7 Bump aioesphomeapi to 18.0.6 (#102195) 2023-10-17 21:31:40 -10:00
J. Nick Koston c3d1db5db6 Handle removal of accessories/services/chars in homekit_controller (#102179) 2023-10-17 20:49:35 -10:00
J. Nick Koston e2e9c84c88 Cache construction of battery icon (#102194)
This was being built every time state was written. When
a robo vac is operating it writes state often which mean building
the icon string over and over again when it rarely changes.
2023-10-18 07:35:39 +02:00
J. Nick Koston d8e541a284 Only compute homekit_controller accessory_info when entity is added or config changes (#102145) 2023-10-17 10:53:17 -10:00
Erik Montnemery e6895b5738 Fix menu in knx config flow (#102168)
* Fix menu in knx config flow

* Update tests

* Fix strings.json

* Rename new menu steps for readabiltiy

---------

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2023-10-17 22:25:35 +02:00
TheJulianJES 60c1a8d56f Remove invalid attribute reporting for enhanced_current_hue in ZHA (#102137) 2023-10-17 16:23:11 -04:00
TheJulianJES 9dd2f37b11 Remove unused variables in ZHA lighting cluster handler (#102138)
* Remove unused `UNSUPPORTED_ATTRIBUTE`

* Remove unused `CAPABILITIES_COLOR_TEMP`

* Use zigpy `ColorCapabilities` and remove `CAPABILITIES_COLOR_XY`
2023-10-17 15:04:03 -05:00
Joakim Plate 29e8814d1b Add translation entiry support (zha) (#101909)
* zha: Add translation to binary sensors

* Add some small test for name

* Add translations for sensors

* Correct some tests

* Adjust summation key

* Add translation keys for button

* Add translation keys to climate

* Add translation keys for cover

* Add translation keys to fan

* Add translations to light

* Add translations for lock

* Add translation keys to number

* Add translationk keys to select

* Add translations for switch entities

* Add translation to alarm control panel

* Map to some more standard device classes

* Use shorter references

* Remove explicit name from identify button

* Correct tests

* Correction after rebase
2023-10-17 21:59:49 +02:00
Paulus Schoutsen 4ae5757bc1 Add some entity categories to Reolink (#102141) 2023-10-17 20:19:10 +02:00
iain MacDonnell 44a5a2dc06 Explicitly set entity name for VenstarSensor (#102158)
VenstarSensor entity name

Set entity name using _attr_name instead of a name property, to
avoid warnings about name being implicitly set to None.
2023-10-17 17:59:15 +02:00
Michael Hansen 474f4329bc Don't warn about unknown pipeline events in ESPHome (#102174)
Don't warn about unknown events (debug)
2023-10-17 11:57:08 -04:00
Erik Montnemery af66bc5e3a Fix menu in homeassistant_yellow config flow (#102166) 2023-10-17 17:15:57 +02:00
Erik Montnemery f7c1dd2f79 Fix menu in here_travel_time config flow (#102163) 2023-10-17 17:08:48 +02:00
Erik Montnemery 52063537d7 Fix menu in homeassistant_hardware config flow (#102164) 2023-10-17 16:53:52 +02:00
elmurato 7cd376574e Reach full init test coverage in Minecraft Server (#102013)
* Add full init test coverage

* Fix patch location

* Use contant for test unique ID
2023-10-17 07:49:05 -07:00
Erik Montnemery 928086a9e5 Fix menu in hassio repair flow (#102162) 2023-10-17 16:43:10 +02:00
Erik Montnemery fc09d87c3c Fix menu in mysensors config flow (#102169) 2023-10-17 16:38:19 +02:00
tronikos ab29c796da Bump opower to 0.0.36 (#102150) 2023-10-17 10:35:32 +02:00
J. Nick Koston 10fd26df4b Preserve HomeKit Accessory ID when entity unique id changes (#102123) 2023-10-16 21:42:02 -10:00
J. Nick Koston 433c022687 Save previous unique id in entity registry when it changes (#102093) 2023-10-16 21:26:19 -10:00
J. Nick Koston eea9de063b Replace any expression in HomeKitWindowCover with a simple or (#102146) 2023-10-16 21:23:30 -10:00
Jesse Hills 16c5a12c87 Send events for tts stream start/end (#102139) 2023-10-17 19:46:25 +13:00
Brian Lalor 912032e8b9 Add support for Govee H5055 (#100365)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-16 18:18:03 -10:00
Michael Hansen 25671a2e42 Add HassNevermind intent (bump intents package) (#102131)
* Add HassNevermind intent

* Bump intents package to 2023.10.16
2023-10-16 19:13:26 -05:00
Joakim Plate 6d457e808f Remove class argument in favor of class variables (zha) (#102117)
* Drop id_suffix class argument

* Use lowecase attribute
2023-10-16 16:26:03 -05:00
Jan-Philipp Benecke f891fb6b41 Make location types in co2signal translatable (#102127) 2023-10-16 23:13:14 +02:00
elmurato 4130980100 Patch library instead of own code in Minecraft Server config flow tests (#102018)
* Patch library instead of own code in config flow tests

* Fix patch location
2023-10-16 14:06:22 -07:00
TheJulianJES 23b379b7da Bump zha-quirks to 0.0.105 (#102113) 2023-10-16 21:57:37 +02:00
mkmer 9444e1e2ab Address Blink late review (#102106)
* Address late review topics

* Missing await, optimize config_flow call

* Address proper mock for blink

* Address typing
2023-10-16 17:41:56 +02:00
Teemu R e151358aa1 Allow model-specific lazy_discover setting for xiaomi_miio (#100490) 2023-10-16 14:30:05 +02:00
Maikel Punie 4913e7e846 Correct sensor state attribute and device class in Velbus sensors (#102099) 2023-10-16 14:23:43 +02:00
Maikel Punie 79811e3cd9 Bump velbusaio to 2023.10.0 (#102100) 2023-10-16 14:22:01 +02:00
Christopher Fenner b8904fa173 Update device class, icons and names of Vicare binary sensors (#101476)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-16 13:43:01 +02:00
mkmer eaf6197d43 Bump Blinkpy to 0.22.2 in Blink (#98571) 2023-10-16 13:41:45 +02:00
G Johansson 6b05f51413 Migrate unique id in Trafikverket Camera (#101937) 2023-10-16 10:28:11 +02:00
J. Nick Koston 88296c1998 Migrate ESPHome unique ids to new format (#99451) 2023-10-15 17:05:20 -10:00
J. Nick Koston 17c9d85e0e Bump aioesphomeapi to 18.0.3 (#102085) 2023-10-15 16:32:55 -10:00
J. Nick Koston d0ba42283c Use stdlib ip_address method in the network helper when compatible (#102019) 2023-10-15 21:24:49 -04:00
Abílio Costa c60cc11505 Call disconnected callbacks from BT ESPHome client (#102084)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-15 14:00:19 -10:00
Allen Porter ce7573c3ad Fix bug in calendar state transitions (#102083) 2023-10-15 16:59:19 -07:00
Robert Van Gorkom 422252e3a0 Remove code owner from withings (#102081)
* Remove code owner from withings

* Update CODEOWNERS

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-16 00:44:52 +02:00
J. Nick Koston e5ebdf7ad4 Remove implict name check from Entity base class (#101905) 2023-10-15 23:40:43 +02:00
Duco Sebel d0fb994199 Set Mac as connection to link HomeWizard devices on network (#101944) 2023-10-15 23:40:06 +02:00
Phil Bruckner 8dd8af0718 Fix google_maps same last_seen bug (#101971) 2023-10-15 23:39:41 +02:00
J. Nick Koston 653da6e31f Reduce websocket event and state JSON construction overhead (#101974) 2023-10-15 23:39:09 +02:00
J. Nick Koston 36e1c740fd Fix ingress sending an empty body for GET requests (#101917) 2023-10-15 23:38:20 +02:00
ollo69 11740d1e68 Remove shorthand unique id in AsusWrt ScannerEntity (#102076)
Remove _attr_unique_id in AsusWrt ScannerEntity
2023-10-15 23:26:09 +02:00
J. Nick Koston 93f10cdce8 Move event permissions out of the websocket api into auth (#101975) 2023-10-15 23:14:19 +02:00
G Johansson 3c3f512583 Remove setup_platform for demo (#100867) 2023-10-15 23:12:41 +02:00
Joost Lekkerkerker 24afbf3ae4 Address late Withings review (#102075) 2023-10-15 23:03:45 +02:00
Kevin Worrel b4295e909c Bump screenlogicpy to v0.9.3 (#101957) 2023-10-15 22:07:32 +02:00
Allen Porter 3577547eb3 Skip CalDAV calendars that do not support events (#102059) 2023-10-15 21:55:11 +02:00
J. Nick Koston 683046272d Switch hassio to use iter_chunks (#102031) 2023-10-15 21:48:04 +02:00
Joost Lekkerkerker 471d1abe47 Add more measurement sensors to Withings (#102074) 2023-10-15 21:38:30 +02:00
Joost Lekkerkerker b95060df99 Promote Withings to Platinum quality (#102069) 2023-10-15 09:04:01 -10:00
Joost Lekkerkerker b4e4a98f17 Add diagnostics to Withings (#102066) 2023-10-15 20:29:20 +02:00
Allen Porter 6f5a72edf2 Bump gcal_sync to 5.0.0 (#102010)
* Bump gcal_sync to 5.0.0

* Update snapshots
2023-10-15 11:24:41 -07:00
Whitney Young 2c3067b9c2 Fix date observed is not sent by AirNow (#101921) (#101977)
* Fix mixed up keys

These were accidentally the wrong values, but never passed on
to the end user.

* Fix date observed is not sent by AirNow (#101921)
2023-10-15 19:48:47 +02:00
Nathan Spencer 36fcf198b1 Adjust WeatherFlow air density sensor device class and unit (#101777) 2023-10-15 07:11:34 -10:00
Joost Lekkerkerker 1a348babd4 Add Withings to strict-typing (#101761)
* Add Withings to strict-typing

* Rebase
2023-10-15 19:08:57 +02:00
Maximilian 8c14824bd5 Bump pynina to 0.3.3 (#101960) 2023-10-15 19:01:05 +02:00
J. Nick Koston d237ab6d67 Bump HAP-python to 4.9.0 (#102055) 2023-10-15 06:49:59 -10:00
J. Nick Koston e427fc511b Bump SQLAlchemy to 2.0.22 (#102033) 2023-10-15 06:14:51 -10:00
G Johansson 264eef8dd8 Allow to remove devices in Sensibo (#101890) 2023-10-15 06:14:38 -10:00
Joost Lekkerkerker 148087a1c9 Mark Withings as cloud push (#102040) 2023-10-15 18:04:03 +02:00
Joost Lekkerkerker dcb5faa305 Dynamically add sensors for new measurements in Withings (#102022)
* Dynamically add sensors for new data points in Withings

* Dynamically add sensors for new data points in Withings

* Add test

* Change docstring

* Store new measurements

* Fix feedback

* Add test back

* Add test back

* Add test back
2023-10-15 18:00:52 +02:00
Joost Lekkerkerker 05ee28cae5 Clean up Withings webhook (#102038) 2023-10-15 18:00:18 +02:00
J. Nick Koston 23e5bc20c2 Bump zeroconf to 0.118.0 (#102015) 2023-10-15 05:54:59 -10:00
J. Nick Koston 7fe2bfa990 Revert "Update numpy to 1.26.1" (#102036) 2023-10-15 05:42:25 -10:00
Joost Lekkerkerker dc19290271 Make Withings test sensors from entity registry (#102025)
Test entities from entity registry
2023-10-15 12:14:50 +02:00
Joost Lekkerkerker 0eb4567364 Check for port in Withings webhook creation (#102026)
Check if port is really 443
2023-10-15 12:12:46 +02:00
J. Nick Koston 5b8da03596 Bump aioesphomeapi to 18.0.1 (#102028)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-14 23:42:22 -10:00
Joost Lekkerkerker f9615999db Add suggested display precision to Withings (#102023) 2023-10-14 23:00:50 -10:00
Marc Mueller 1f1a27d6a5 Update numpy to 1.26.1 (#102021) 2023-10-14 16:30:43 -10:00
J. Nick Koston 547c38a515 Cache emulated_hue local ip check (#102020) 2023-10-14 16:19:10 -10:00
J. Nick Koston 7b2aa3a369 Improve performance of config/entity_registry/get* calls (#101984) 2023-10-14 08:40:16 -10:00
Aaron Bach 2d1afc1c7d Add state translations for OpenUV UV Level sensor (#101978) 2023-10-14 10:31:46 -06:00
Joost Lekkerkerker 76083a0b4c Update Withings measurements incrementally after the first update (#102002)
* Update incrementally after the first update

* Update incrementally after the first update
2023-10-14 16:19:04 +02:00
Tobias Sauerwein 302b444269 Add service set_preset_mode_with_end_datetime in Netatmo integration (#101674)
* Add Netatmo climate service set_preset_mode_with_end_datetime to allow you to specify an end datetime for a preset mode

* Make end date optional

* address review comments

* Update strings

* Update homeassistant/components/netatmo/const.py

* Update homeassistant/components/netatmo/strings.json

---------

Co-authored-by: Adrien JOLY <adrien.joly-veillith@live.fr>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-10-14 14:44:16 +02:00
Joost Lekkerkerker 8a4fe5add1 Use aiowithings (#101819)
* Subscribe to Withings webhooks outside of coordinator

* Subscribe to Withings webhooks outside of coordinator

* Split Withings coordinator

* Split Withings coordinator

* Use aiowithings

* Use aiowithings

* Use aiowithings

* Update homeassistant/components/withings/sensor.py

* Merge

* Remove startdate

* Minor fixes

* Bump to 0.4.1

* Fix snapshot

* Fix datapoint

* Bump to 0.4.2

* Bump to 0.4.3

* Bump to 0.4.4
2023-10-14 11:52:35 +02:00
J. Nick Koston 89d86fe983 Bump aioesphomeapi to 17.2.0 (#101981)
* Bump aioesphomeapi to 17.2.0

changelog: https://github.com/esphome/aioesphomeapi/compare/v17.1.5...v17.2.0

* fix import from wrong module
2023-10-14 11:48:59 +02:00
J. Nick Koston 5ed8de8348 Enable strict typing in HomeKit (#101968) 2023-10-13 14:45:59 -10:00
J. Nick Koston 0e499e07d2 Small cleanups to HomeKit thermostats (#101962) 2023-10-13 14:24:23 -10:00
J. Nick Koston f8f39a29de Update HomeKit humidifiers to handle current humidity (#101964) 2023-10-13 14:23:50 -10:00
J. Nick Koston 8fd5d89d43 Avoid polling state machine for available state in HomeKit (#101799) 2023-10-13 14:23:15 -10:00
Aaron Bach 371d988643 Simplify state update logic for OpenUV sensors (#101972)
* Clean up OpenUV entity state logic

* Reduce

* Remove old file

* Simplify
2023-10-13 18:12:00 -06:00
J. Nick Koston 76e2afbce9 Add some more typing to HomeKit (#101959) 2023-10-13 14:03:01 -10:00
Raman Gupta 2e3013f2f8 Update zwave issue repair strings (#101940) 2023-10-13 19:14:43 -04:00
Christopher Fenner ae7bb60677 Fix types in ViCare integration (#101926)
* fix type

* fix return type

* fix type

* fix type

* Apply suggestions from code review

* Update climate.py

* Apply suggestions from code review

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

* Update __init__.py

* Update climate.py

* Update __init__.py

* Apply suggestions from code review

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

* Update binary_sensor.py

* Update button.py

* Update sensor.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-13 23:13:39 +02:00
Marc Mueller 6a6f6fd99d Update pre-commit to 3.5.0 (#101956) 2023-10-13 22:56:02 +02:00
elmurato a302f1a616 Set category and enabled by default of Minecraft Server sensors (#101943)
* Use set instead of list for supported server types in sensor platform

* Set sensor categories and enabled by default

* Set edition and version as diagnostic sensors
2023-10-13 22:09:13 +02:00
Aaron Bach ce77566783 Add more specific typing to OpenUV coordinator (#101952) 2023-10-13 21:58:27 +02:00
Joakim Sørensen a0a3d91a28 Update hass-nabucasa from 0.71.0 to 0.73.0 (#101939) 2023-10-13 21:46:52 +02:00
Joost Lekkerkerker 85fa364152 Migrate Panasonic Viera to has entity name (#96746)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-13 21:45:35 +02:00
Raman Gupta 7d8ea404b3 Make Basic CC Z-Wave values a light (#101438) 2023-10-13 11:11:44 -04:00
elmurato 370e3166ee Add diagnostics support in Minecraft Server (#101787)
* Add diagnostics support

* Return diagnostics dict directly

* Use syrupy snapshots for assertions in diagnostics test

* Use parametrize for testing diagnostics

* Remove unnecessary side_effect in patch
2023-10-13 15:40:50 +02:00
Joost Lekkerkerker 2609394b9f Add device info to Launch Library (#98767) 2023-10-13 15:28:58 +02:00
Marc Mueller 02567d9bf6 Revert aiohttp to 3.8.5 for Python 3.11 (#101932) 2023-10-13 14:12:42 +02:00
J. Nick Koston 2dfc8b9d7f Avoid conversion of timestamps in jwt auth (#101856) 2023-10-13 14:11:17 +02:00
Vadym Holoveichuk 4e9ec82082 Fix Setpoint in Matter climate platform (#101929)
fix matter max setpoint
2023-10-13 14:09:35 +02:00
Joost Lekkerkerker 53e97fee0e Improve Withings test fixtures (#101931) 2023-10-13 13:35:34 +02:00
Franck Nijhof 93d7ff3779 2023.10.3 (#101930) 2023-10-13 13:01:05 +02:00
Franck Nijhof 8b8df2ec3b Bumped version to 2023.10.3 2023-10-13 11:17:45 +02:00
J. Nick Koston 2fac26c6c6 Fix implicit device name in wiz switch (#101914) 2023-10-13 11:17:30 +02:00
starkillerOG e17a25ca4a Bump reolink-aio to 0.7.11 (#101886) 2023-10-13 11:16:44 +02:00
starkillerOG e3122ec6dc Uncancel task when swallowing CancelledError (#101884) 2023-10-13 11:16:41 +02:00
G Johansson 497da016af Add missing fan mode in Sensibo (#101883)
* Add missing fan mode in Sensibo

* translations
2023-10-13 11:16:37 +02:00
J. Nick Koston 43753b841f Bump aioesphomeapi to 17.1.5 (#101916) 2023-10-13 11:05:52 +02:00
J. Nick Koston 5f91bdcfc5 Fix implicit device name in wiz switch (#101914) 2023-10-13 11:05:25 +02:00
J. Nick Koston fecaf9aa60 Bump zeroconf to 0.116.0 (#101915) 2023-10-13 10:39:44 +02:00
starkillerOG f330bc0f97 Uncancel task when swallowing CancelledError (#101884) 2023-10-13 10:23:32 +02:00
Franck Nijhof a36115993c Downgrade aiohttp to 3.8.5 (#101913) 2023-10-13 10:20:12 +02:00
Joost Lekkerkerker d712a29052 Split Withings coordinators (#101766)
* Subscribe to Withings webhooks outside of coordinator

* Subscribe to Withings webhooks outside of coordinator

* Split Withings coordinator

* Split Withings coordinator

* Update homeassistant/components/withings/sensor.py

* Fix merge

* Rename MEASUREMENT_COORDINATOR

* Update homeassistant/components/withings/__init__.py

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

* Apply suggestions from code review

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

* Fix feedback

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-13 07:34:31 +02:00
J. Nick Koston 03210d7f81 Fix implicit name in airzone_cloud (#101907) 2023-10-13 00:06:47 +02:00
J. Nick Koston dc18a7f1fb Bump aioesphomeapi to 17.1.4 (#101897) 2023-10-12 11:48:00 -10:00
Marc Mueller ff5504f55f Add strict typing for transmission (#101904) 2023-10-12 22:20:39 +02:00
Marc Mueller 8b134f26a9 Fix transmission Coordinator typing (#101903) 2023-10-12 22:13:33 +02:00
Christopher Fenner 6d2fbeb556 Migrate ViCare to has_entity_name (#101895)
* set has_entity_name

* remove sensor prefix

* Apply suggestions from code review

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-12 21:06:09 +02:00
Rami Mosleh 536ad57bf4 Use DataUpdate coordinator for Transmission (#99209)
* Switch integration to DataUpdate Coordinator

* add coordinator to .coveragerc

* Migrate TransmissionData into DUC

* update coveragerc

* Applu suggestions

* remove CONFIG_SCHEMA
2023-10-12 20:58:22 +02:00
J. Nick Koston cc3d1a11bd Add more typing to HomeKit (#101896) 2023-10-12 08:43:53 -10:00
G Johansson c4ce900567 Use CountrySelector in Prosegur Alarm (#101889) 2023-10-12 20:06:03 +02:00
Bouwe Westerdijk 0c901435bd Fix state_class of huisbaasje sensors (#101892) 2023-10-12 19:57:15 +02:00
rappenze 85af452c6e Remove unnecessary dict lookup in fibaro integration (#101885) 2023-10-12 19:51:43 +02:00
starkillerOG a92919b8fd Bump reolink-aio to 0.7.11 (#101886) 2023-10-12 19:50:29 +02:00
G Johansson 472ab437e8 Translations in Sensibo (#101887) 2023-10-12 19:16:45 +02:00
Joost Lekkerkerker 3843e91af0 Use device class translation for Sensibo update entity (#101888)
Use device class translation for Sensibo update
2023-10-12 19:13:21 +02:00
jan iversen edf510f9c0 Bump pymodbus v3.5.4 (#101877) 2023-10-12 18:19:11 +02:00
G Johansson a4e0b3140b Add missing fan mode in Sensibo (#101883)
* Add missing fan mode in Sensibo

* translations
2023-10-12 18:05:51 +02:00
G Johansson b6d8211c6c Use CountrySelector in Workday (#101879) 2023-10-12 17:39:08 +02:00
G Johansson e5f37050a9 Use CountrySelector in Buienradar (#101882) 2023-10-12 17:38:48 +02:00
G Johansson 8870991802 Remove codeowner Trafikverket (#101881) 2023-10-12 17:07:11 +02:00
G Johansson dc29190564 CountrySelector (#100963)
* CountrySelector

* rename

* remove multiple for now

* Add no_sort

* Update homeassistant/helpers/selector.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-12 16:44:30 +02:00
Franck Nijhof f5b5215247 2023.10.2 (#101871) 2023-10-12 15:26:56 +02:00
Christopher Fenner 5c52a15df7 Fix type issue in vicare integration (#101872)
* fix type issue

* fix type issue

* fix type issue

* extract from constructor

* Revert "extract from constructor"

This reverts commit a33de7ca8e.
2023-10-12 15:01:23 +02:00
Christopher Fenner 6e1c23906c Add base entity class in vicare integration (#101870)
* add entity base class

* depend on base class

* add device info to base class

* remove individual DeviceInfo

* move class

* fix imports

* add file comment

* use super()

* fix formatting

* add vicare/entity.py
2023-10-12 14:54:16 +02:00
Joost Lekkerkerker 3e4edc8edd Move Withings entity descriptions to platforms (#101820) 2023-10-12 13:42:00 +02:00
Franck Nijhof 014546c75e Bumped version to 2023.10.2 2023-10-12 13:34:26 +02:00
Joost Lekkerkerker b0dabfa3f7 Only reload Withings config entry on reauth (#101638)
* Only reload on reauth

* Reload if entry is loaded

* Make async_cloudhook_generate_url protected

* Fix feedback
2023-10-12 13:33:54 +02:00
Betacart ca1d6ddbb6 Fix typo in remember the milk strings (#101869)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-12 13:32:45 +02:00
Martin Hjelmare 7670b5d3b0 Fix mysensors battery level attribute (#101868) 2023-10-12 13:32:39 +02:00
René Klomp 04dc44c069 Fix SMA incorrect device class (#101866) 2023-10-12 13:32:36 +02:00
Joost Lekkerkerker c2cf497302 Fix translation key in Plugwise (#101862)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-12 13:32:31 +02:00
Justin Lindh 34693d4a9b Bump Python-MyQ to v3.1.13 (#101852) 2023-10-12 13:31:46 +02:00
Brandon Rothweiler c9b9851605 Remove Mazda integration (#101849)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-12 13:26:43 +02:00
Michael Hansen 3b13c9129a Close existing UDP server for ESPHome voice assistant (#101845) 2023-10-12 13:26:39 +02:00
Michael Hansen ffe60102fd Dynamic wake word loading for Wyoming (#101827)
* Change supported_wake_words property to async method

* Add test

* Add timeout + test

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-10-12 13:26:34 +02:00
Álvaro Fernández Rojas 5946681454 Update aioqsw to v0.3.5 (#101809) 2023-10-12 13:26:31 +02:00
Kevin Worrel eae6f9b0f8 Await set value function in ScreenLogic number entities (#101802) 2023-10-12 13:26:27 +02:00
Michael Davie 959d21a576 Bump env_canada to 0.6.0 (#101798) 2023-10-12 13:26:20 +02:00
Richard Kroegel 785df0c8e1 Bump bimmer_connected to 0.14.1 (#101789)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-10-12 13:26:16 +02:00
Nathan Spencer 62805aed2b Bump pyweatherflowudp to 1.4.5 (#101770) 2023-10-12 13:26:12 +02:00
Hessel 1a2c9fd9a9 Change BiDirectional Prefix (#101764) 2023-10-12 13:26:09 +02:00
Joost Lekkerkerker f0a1977d2e Subscribe to Withings webhooks outside of coordinator (#101759)
* Subscribe to Withings webhooks outside of coordinator

* Subscribe to Withings webhooks outside of coordinator

* Update homeassistant/components/withings/__init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/withings/__init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-12 13:26:03 +02:00
Maikel Punie 8b3fc107df Bump pyDuotecno to 2023.10.0 (#101754) 2023-10-12 13:25:59 +02:00
Betacart 417ba3644b Fix typo in Ombi translation strings (#101747)
Update strings.json

Fixed typo ("Sumbit" -> "Submit")
2023-10-12 13:25:56 +02:00
Kevin Worrel 49f060d95b Bump screenlogicpy to 0.9.2 (#101746) 2023-10-12 13:25:52 +02:00
Álvaro Fernández Rojas ed57d0beac Fix Airzone climate double setpoint (#101744)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-10-12 13:25:49 +02:00
Allen Porter d7a36cb6a4 Add google calendar required feature for create event service (#101741)
* Add google calendar required feature for create event service

* Update docstring
2023-10-12 13:25:44 +02:00
Brandon Rothweiler 887263d80e Update eufylife-ble-client to 0.1.8 (#101727) 2023-10-12 13:25:40 +02:00
Robert Hillis c4737e4423 Fix Slack type error for file upload (#101720)
Fix regression
2023-10-12 13:25:37 +02:00
Jan Bouwhuis 327e6d2362 Fix mqtt sensor or binary_sensor state not saved after expiry (#101670)
Fix mqtt sensor state not saved after expire
2023-10-12 13:25:33 +02:00
Joost Lekkerkerker e32044f884 Abort config flow when invalid token is received (#101642) 2023-10-12 13:25:28 +02:00
Allen Porter dbc3382dfb Add additional calendar state alarm debugging (#101631) 2023-10-12 13:20:57 +02:00
Matthew Donoughe a042703dd7 Update pylutron-caseta to 0.18.3 (#101630) 2023-10-12 13:20:53 +02:00
Aidan Timson 8109c77f6a Bump systembridgeconnector to 3.8.4 (#101621)
Update systembridgeconnector to 3.8.4
2023-10-12 13:20:49 +02:00
J. Nick Koston 2639602f5b Fix compiling missing statistics losing rows (#101616) 2023-10-12 13:20:46 +02:00
Allen Porter d5c26beb91 Additional fix for rainbird unique id (#101599)
Additiona fix for rainbird unique id
2023-10-12 13:20:42 +02:00
Marc Mueller f24843f211 Update aiohttp to 3.8.6 (#101590) 2023-10-12 13:20:39 +02:00
Joakim Plate 5f0bf4e2a3 Update ha-philipsjs to 3.1.1 (#101574)
Update philips to 3.1.1
2023-10-12 13:20:35 +02:00
Matthias Alphart bab524f264 Update pyfronius to 0.7.2 (#101571) 2023-10-12 13:20:32 +02:00
Abílio Costa ede7d13c1e Improve Ikea Idasen config flow error messages (#101567) 2023-10-12 13:20:29 +02:00
TJ Horner db91e9a720 Auto-fix common key entry issues during WeatherKit config flow (#101504) 2023-10-12 13:20:25 +02:00
Greg Dowling c11dd58c1d Improve handling of roon media players with fixed and incremental volume (#99819) 2023-10-12 13:20:20 +02:00
Betacart 6450ae8d28 Fix typo in remember the milk strings (#101869)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-12 13:18:43 +02:00
Guy Shefer 5730cb1e85 Add Tami4 Integration (#90056)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-12 13:15:25 +02:00
Brandon Rothweiler 91cf719588 Remove Mazda integration (#101849)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-12 13:13:44 +02:00
René Klomp b70e2f7749 Fix SMA incorrect device class (#101866) 2023-10-12 13:03:09 +02:00
Martin Hjelmare 52067dbfe5 Fix mysensors battery level attribute (#101868) 2023-10-12 13:01:08 +02:00
Joost Lekkerkerker 8e3c665fd3 Only reload Withings config entry on reauth (#101638)
* Only reload on reauth

* Reload if entry is loaded

* Make async_cloudhook_generate_url protected

* Fix feedback
2023-10-12 12:56:10 +02:00
Greg Dowling dcb3dc254d Improve handling of roon media players with fixed and incremental volume (#99819) 2023-10-12 12:52:01 +02:00
Joost Lekkerkerker d676d95901 Fix translation key in Plugwise (#101862)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-12 12:51:40 +02:00
Hessel 830981ddd6 Bump wallbox to 0.4.14 (#101864) 2023-10-12 11:59:30 +02:00
Justin Lindh 5523e9947d Bump Python-MyQ to v3.1.13 (#101852) 2023-10-12 10:42:40 +02:00
Kevin Worrel 2276be275d Await set value function in ScreenLogic number entities (#101802) 2023-10-12 09:18:34 +02:00
Richard Kroegel 7fd89b2959 Add brake pads condition based service attributes for BMW (#101847)
Add brake pads condition based service attributes

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-10-12 09:01:29 +02:00
J. Nick Koston 6ce5f190c1 Avoid duplicate property calls when writing sensor state (#101853)
* Avoid duplicate attribute lookups when writing sensor state

_numeric_state_expected would call self.device_class,
self.state_class, self.native_unit_of_measurement,
and self.suggested_display_precision a second time
when the `state` path already had these values.

* one more

* avoid another
2023-10-12 08:45:20 +02:00
Michael Hansen f0317f0d59 Close existing UDP server for ESPHome voice assistant (#101845) 2023-10-12 07:32:00 +13:00
Michael Hansen 257686fcfe Dynamic wake word loading for Wyoming (#101827)
* Change supported_wake_words property to async method

* Add test

* Add timeout + test

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-10-11 10:21:32 -07:00
Robert Resch 6c4ac71218 Remove "none" in favor of optional select in brottsplatskartan (#101311) 2023-10-11 17:52:18 +02:00
Robert Resch dfea1c2b7c Remove NONE_SENTINEL in favor of optional select in scrape (#101278)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-11 17:41:31 +02:00
Franck Nijhof fd72ebd733 Mark entities field of scene.create service advanced (#101810) 2023-10-11 17:40:26 +02:00
Robert Resch 952a17532f Remove NONE_SENTINEL in favor of optional select in sql (#101309) 2023-10-11 17:38:29 +02:00
Robert Resch 1915fee9ba Remove "none" in favor of optional select in integration (#101396) 2023-10-11 17:36:53 +02:00
Robert Resch 7db2fdd68c Remove "none" in favor of optional select in derivate (#101312) 2023-10-11 17:36:15 +02:00
Michał Huryn ddfad75eb7 Add basic auth to Blebox (#99320)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-11 16:09:56 +02:00
jjlawren c66f0e3305 Fix Plex update module docstring (#101815) 2023-10-11 15:05:34 +02:00
Álvaro Fernández Rojas 6771d4bda4 Update aioqsw to v0.3.5 (#101809) 2023-10-11 14:44:52 +02:00
Joakim Plate 9107e166b4 Adjust language slightly for philips_js strings (#101783) 2023-10-11 13:53:47 +02:00
Richard Kroegel f61627ea08 Bump bimmer_connected to 0.14.1 (#101789)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-10-11 13:46:02 +02:00
epenet 183397e201 Add MariaDB 10.11.2 to CI (#101807) 2023-10-11 13:32:11 +02:00
Robert Resch 87c82fb00f Remove NONE_SENTINEL in favor of optional select in workday (#101280) 2023-10-11 13:29:42 +02:00
Marc Mueller 0b2b486754 Update mypy to 1.6.0 (#101780) 2023-10-11 13:25:11 +02:00
jjlawren f116e83b62 Add update entity for Plex Media Server (#101682) 2023-10-11 13:06:10 +02:00
Robert Resch 1a7601ebbe Remove NONE_SENTINEL in favor of optional select in template (#101279) 2023-10-11 13:04:40 +02:00
Duco Sebel 8acb4dc1b6 Bumb python-homewizard-energy to 2.1.2 (#101805) 2023-10-11 11:32:22 +02:00
Michael Davie 7f7c3233bd Bump env_canada to 0.6.0 (#101798) 2023-10-11 11:04:33 +02:00
Justin Rigling 1c70cbaebd Add Opower virtual integration for Portland General Electric (#101800) 2023-10-11 10:41:35 +02:00
Kevin Stillhammer 7d1105228b Allow resetting time in google_travel_time (#88256)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-11 09:46:02 +02:00
J. Nick Koston 39fd5897cb Small typing cleanups for HomeKit (#101790) 2023-10-11 08:11:58 +02:00
Allen Porter bd38fd9516 Add google calendar required feature for create event service (#101741)
* Add google calendar required feature for create event service

* Update docstring
2023-10-10 20:48:46 -07:00
Joost Lekkerkerker ffb752c804 Subscribe to Withings webhooks outside of coordinator (#101759)
* Subscribe to Withings webhooks outside of coordinator

* Subscribe to Withings webhooks outside of coordinator

* Update homeassistant/components/withings/__init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/withings/__init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-11 00:06:42 +02:00
Jan-Philipp Benecke 9b785ef766 Add Discovergy to strict-typing (#101782) 2023-10-10 22:11:55 +02:00
Marc Mueller ba91aaa28d Add support for Python 3.12 (#101651) 2023-10-10 21:34:49 +02:00
Hessel 535e2b81ce Change BiDirectional Prefix (#101764) 2023-10-10 21:23:02 +02:00
J. Nick Koston 265f6653c3 Refactor homekit to use a dataclass for entry data (#101738) 2023-10-10 21:14:37 +02:00
Sheldon Ip 6c65db2036 Add rising sensor to sun (#93276) 2023-10-10 21:12:43 +02:00
Robert Resch b932c67eb7 Delete optional schema keys, when they are not present (#101755)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-10 21:08:54 +02:00
Mick Vleeshouwer c76ce76824 Bump pyOverkiz to 1.12.1 in Overkiz integration (#101765) 2023-10-10 21:07:50 +02:00
Nathan Spencer 1a8684e314 Bump pyweatherflowudp to 1.4.5 (#101770) 2023-10-10 20:43:40 +02:00
Caius-Bonus 5290396731 ZHA Component: Correct AttributeUpdated signal in Thermostat climate entity, ThermostatClusterHandler and ThermostatHVACAction sensor entity (#101725)
* initial

* change other Thermostat climate entities

* remove AttributeUpdateRecord
2023-10-10 14:23:03 -04:00
Jan-Philipp Benecke 71ddb282d2 Address late review from wallbox coordinator move (#101771)
Address late wallbox review comment
2023-10-10 20:02:14 +02:00
Jan Bouwhuis 4b9296f4f1 Code quality issue met integration (#101768)
* Fix unreachable code for met integration

* Make code better readable
2023-10-10 19:58:43 +02:00
J. Nick Koston 7b4b8e7516 Refactor HomeKit to allow supported features/device class to change (#101719) 2023-10-10 06:20:25 -10:00
J. Nick Koston f166e1cc1a Map switch device class outlet to Outlets in homekit (#101760) 2023-10-10 05:55:42 -10:00
Maikel Punie f7f9331c57 Bump pyDuotecno to 2023.10.0 (#101754) 2023-10-10 17:37:02 +02:00
Mick Vleeshouwer 60fa02c042 Bump pyOverkiz to 3.11 and migrate unique ids for select entries (#101024)
* Bump pyOverkiz and migrate entries

* Add comment

* Remove entities when duplicate

* Remove old entity

* Remove old entities

* Add example of entity migration

* Add support of UIWidget and UIClass

* Add tests for migrations

* Apply feedback (1)

* Apply feedback (2)
2023-10-10 17:23:58 +02:00
Erik Montnemery ecdb0bb46a Modernize metoffice weather (#99050)
* Modernize metoffice weather

* Exclude sensors from additional test
2023-10-10 16:49:36 +02:00
Jan Bouwhuis 31bd500222 Make get_channel available as generic helper (#101721)
* Make get_channel available as generic helper

* Follow up comment
2023-10-10 14:02:32 +02:00
Marc Mueller 915f5bf84e Reset the threading.local _hass object every time (#101728)
* Reset the threading.local _hass object every time

* Remove reset from hass fixture
2023-10-10 12:43:12 +02:00
Álvaro Fernández Rojas f78199df9f Fix Airzone climate double setpoint (#101744)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-10-10 10:18:52 +02:00
Kevin Worrel 00abf49637 Bump screenlogicpy to 0.9.2 (#101746) 2023-10-10 10:15:24 +02:00
Betacart 6d632bd1ab Fix typo in Ombi translation strings (#101747)
Update strings.json

Fixed typo ("Sumbit" -> "Submit")
2023-10-10 09:50:17 +02:00
Sam Reed 9afdc22818 supla: Change casing of integration name to upstream SUPLA (#101723) 2023-10-10 08:52:25 +02:00
elmurato c6a3fa30f0 Add support for Minecraft Server Bedrock Edition (#100925) 2023-10-10 08:42:35 +02:00
rappenze deffa50142 Address late review from add fibaro event platform (#101718) 2023-10-10 06:07:29 +02:00
Franck Nijhof 1944b2952c Replace object select in service calls with more UI-friendly selectors (#101722) 2023-10-10 05:50:12 +02:00
Robert Hillis e5d5440385 Fix Slack type error for file upload (#101720)
Fix regression
2023-10-10 05:35:29 +02:00
Brandon Rothweiler db3a4dec33 Update eufylife-ble-client to 0.1.8 (#101727) 2023-10-09 14:28:39 -10:00
Marc Mueller 35293eb98b Update matrix-nio to 0.22.1 (#101693) 2023-10-09 23:23:45 +02:00
Marc Mueller a21990f248 Update pytest warnings filter (#101710) 2023-10-09 21:07:16 +02:00
Joakim Plate 66f43ebdc5 Describe notification option (philip_js) (#101715) 2023-10-09 19:52:24 +02:00
Robert Resch 84fe356782 Fix sky connect tests (#101712)
* Fix sky connect tests

* Implement suggestions
2023-10-09 19:43:47 +02:00
Raman Gupta 70a0cd579d Add Z-Wave WS command to hard reset controller (#101449) 2023-10-09 13:33:31 -04:00
Simone Chemelli d46dca8950 Bump aiocomelit to 0.2.0 (#101586) 2023-10-09 15:23:25 +02:00
puddly 2e4df6d2f2 Open a ZHA repair when network settings change (#99482) 2023-10-09 15:01:05 +02:00
Joost Lekkerkerker b9090452de Migrate Vulcan to has entity name (#99020) 2023-10-09 14:41:30 +02:00
Marcel van der Veldt 6393171fa4 Adjust Hue integration to use Entity descriptions and translatable entity names (#101413)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-09 14:14:07 +02:00
Erik Montnemery 8a83e810b8 Reset the threading.local _hass object in tests (#101700) 2023-10-09 13:41:51 +02:00
Robert Resch f7292d5b00 Add check that sensors don't have EntityCategory.CONFIG set (#101471) 2023-10-09 13:37:52 +02:00
Marc Mueller 27b6325c32 Update pylint to 3.0.1 (#101692) 2023-10-09 12:37:35 +02:00
Erik Montnemery e6e190e7e2 Remove unused HideSensitiveDataFilter (#101689) 2023-10-09 12:02:52 +02:00
Ravaka Razafimanantsoa 7b78cfc090 Bump switchbot-api to 1.2.1 (#101664)
SwitchBot Cloud: Dependency version up
2023-10-09 11:15:59 +02:00
Erik Montnemery 1f122eb688 Adjust services supported by litterrobot vacuum (#95788) 2023-10-09 10:56:39 +02:00
epenet 18908740ca Fix typo in nextcloud strings (#101686) 2023-10-09 10:04:39 +02:00
Franck Nijhof de658f5ca0 Merge branch 'master' into dev 2023-10-09 09:27:59 +02:00
Brett Adams b85a078235 Add Cribl virtual integration (#101680) 2023-10-09 09:11:30 +02:00
Marc Mueller 548a73b367 Update ephem to 4.1.5 (#101676) 2023-10-09 08:49:59 +02:00
jjlawren c247170c90 Bump plexwebsocket to 0.0.14 (#101684) 2023-10-09 08:32:47 +02:00
Allen Porter d78ee96e2a Update fitbit device fetch to use a data update coordinator (#101619)
* Add a fitbit device update coordinator

* Remove unnecessary debug output

* Update comments

* Update fitbit coordinator exception handling and test coverage

* Handle reauth failures in other sensors

* Fix scope changes after rebase.
2023-10-09 08:12:59 +02:00
Abílio Costa 6d1876394e Rediscover Idasen Desk to allow re-setup (#101672) 2023-10-08 22:03:22 +02:00
rappenze fb215479d4 Add fibaro event platform (#101636) 2023-10-08 22:01:26 +02:00
Jan Bouwhuis db0c5bbbea Fix mqtt sensor or binary_sensor state not saved after expiry (#101670)
Fix mqtt sensor state not saved after expire
2023-10-08 20:57:14 +02:00
Jan-Philipp Benecke 78535b99df Move nina coordinator and entity to their own file (#101610) 2023-10-08 20:07:04 +02:00
J. Nick Koston c6ed022cce Fix compiling missing statistics losing rows (#101616) 2023-10-08 19:43:00 +02:00
Nicolas van de Walle 1b11062b27 Improved debugging for "Failed to set state" (#101657) 2023-10-08 19:40:42 +02:00
Robert Hillis ba3fd4dee1 Add Queue sensor to Radarr (#79723) 2023-10-08 19:39:56 +02:00
J. Nick Koston 6420cdb42b Bump httpx to 0.25.0 and httpcore to 0.18.0 (#101635) 2023-10-08 19:08:04 +02:00
Mike Woudenberg c48b724dde Make setup more resilient by raising ConfigNEntryNotReady on failure (#101654)
Make setup more resilient by raising ConfigNEntryNotReady on connection failure
2023-10-08 19:00:06 +02:00
Tobias Sauerwein 3c5772c1c6 Remove myself as codeowner for sonos and kodi (#101662) 2023-10-08 17:01:00 +02:00
Franck Nijhof 4a437e46aa Update home-assistant/wheels to 2023.10.4 (#101656) 2023-10-08 16:26:09 +02:00
Robert Hillis 5087f0056c Adjust Calendar doc strings and comments (#101655) 2023-10-08 16:16:59 +02:00
Joost Lekkerkerker 7c85d84133 Add entity translations to Huawei LTE (#98631) 2023-10-08 15:15:19 +02:00
Allen Porter 0f4aae4128 Add additional calendar state alarm debugging (#101631) 2023-10-08 14:20:35 +02:00
Joost Lekkerkerker faea3b1634 Abort config flow when invalid token is received (#101642) 2023-10-08 13:32:35 +02:00
Marc Mueller 3155e62510 Update aiohttp to 3.9.0b0 (#101627) 2023-10-08 13:21:46 +02:00
Cyrille 8c26f66a57 Suggest an ISO 8601 sample in datetime.set_value (#101609) 2023-10-08 13:14:27 +02:00
Joost Lekkerkerker b75a59aad0 Unregister callback on Netatmo config entry unload (#101647) 2023-10-08 12:44:27 +02:00
Aidan Timson e406b8d1e3 Address System Bridge post merge review (#101614)
Address Post Merged PR Review for #97532
2023-10-08 10:42:08 +02:00
Jan-Philipp Benecke b8b28e3ba0 Bump pydiscovergy to 2.0.4 (#101637) 2023-10-07 22:17:13 -10:00
Aidan Timson d05ba6cd92 Bump systembridgeconnector to 3.8.4 (#101621)
Update systembridgeconnector to 3.8.4
2023-10-08 10:10:20 +02:00
Allen Porter 7d202f78f5 Add fitbit nutrition sensors (#101626)
* Add fitbit nutrition sensors

* Add test coverage for unit systems
2023-10-08 10:09:26 +02:00
Matthew Donoughe d3a67cd984 Update pylutron-caseta to 0.18.3 (#101630) 2023-10-07 20:24:32 -10:00
Jan Bouwhuis 74464fd94e Ensure coverage mqtt entry disabled test (#101617) 2023-10-07 23:08:34 +02:00
Marc Mueller 3bbef476ee Update tank-utility to 1.5.0 (#101323) 2023-10-07 22:10:07 +02:00
Jan Bouwhuis 55bf309d2f Add mqtt discovery schema error tests for all platforms (#101583)
Add mqtt discovery schema error tests
2023-10-07 21:00:33 +02:00
Jan Bouwhuis 9407c49819 Remove platform key and rename schema for mqtt device_automation (#101582)
Refactor mqtt device_automation
2023-10-07 20:49:05 +02:00
Jan Bouwhuis f4ac2b7eeb Remove platform key and rename schema for mqtt tag (#101580) 2023-10-07 20:48:35 +02:00
Jan Bouwhuis 4709e60ff6 Rework on Google Assistant doorbell support (#100930)
* Rework on Google Assistant doorbell event

* Additional comment on syncing notificatiions

* Update homeassistant/components/google_assistant/trait.py

* Only sync event if state attr changed

* Update comment
2023-10-07 19:39:04 +02:00
Allen Porter 8c2a2e5c37 Additional fix for rainbird unique id (#101599)
Additiona fix for rainbird unique id
2023-10-07 10:17:08 -07:00
Abílio Costa da3e36aa3b Improve Ikea Idasen config flow error messages (#101567) 2023-10-07 18:52:31 +02:00
Marc Mueller bd93fbe91d Update aiohttp to 3.8.6 (#101590) 2023-10-07 18:14:08 +02:00
David Knowles 031a9224fb Schlage cleanup: Stop passing logs to last_changed_by (#99738) 2023-10-07 15:04:23 +02:00
Alistair Tudor b60401b2b1 Bump python-vlc to 3.0.18122 (#94739) 2023-10-07 15:00:04 +02:00
Aaron Collins 1a5ad23a10 Verify config entry id on Daikin device removal (#101507) 2023-10-07 14:32:27 +02:00
Anil Daoud f3864e6e2f Handle ClientConnectorError in Netatmo data handler (#99116) 2023-10-07 14:19:57 +02:00
enzo2 35be5957c3 Add circular mean to statistics integration (#98930)
* Add circular mean

Add support for circular mean for sensors in units of degrees, e.g. direction data.

* Update test_sensor.py

* Update sensor.py

* Remove whitespace

* Revert to degC

* Fix: shift atan2 output to positive degrees

* Add new dedicated test

* Simplify test
2023-10-07 13:51:27 +02:00
SmashedFrenzy16 3018d4edb9 Update config.py with f string (#101333)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-07 13:37:19 +02:00
Jan-Philipp Benecke e25cf7cbab Move wallbox coordinator to its own file (#101577) 2023-10-07 11:56:59 +02:00
Jan-Philipp Benecke 5ae45e398e Move wallbox base entity to its own file (#101576) 2023-10-07 11:39:36 +02:00
Joakim Plate ba5aa7759d Update ha-philipsjs to 3.1.1 (#101574)
Update philips to 3.1.1
2023-10-07 11:05:48 +02:00
Matthias Alphart 0221207b0e Update pyfronius to 0.7.2 (#101571) 2023-10-07 10:10:07 +02:00
J. Nick Koston da9c42d457 Fix failing august test (#101560) 2023-10-06 12:31:12 -10:00
Franck Nijhof 617ce994b4 Update home-assistant/wheels to 2023.10.3 (#101551) 2023-10-06 22:05:01 +02:00
Dave T e68627af7f Bump sphinx to 7.2.6 for docs generation (#101220) 2023-10-06 21:42:19 +02:00
Michael Thingnes c8eb62cf4e Remove thimic as metno code owner (#101553) 2023-10-06 21:38:05 +02:00
Tudor Sandu 43c1769004 Use walrus assignment i demo climate climate.set_temperature (#101248) 2023-10-06 21:32:06 +02:00
tronikos c70c2f4be4 Allow derivative/integration on input_number via the UI (#101439) 2023-10-06 21:27:31 +02:00
Erik Montnemery 207adaf9cd Make AugustOperatorSensor a RestoreSensor (#98526) 2023-10-06 21:25:04 +02:00
Marc Mueller 8877cafe0c Update pydrawise to 2023.10.0 (#101548) 2023-10-06 21:04:23 +02:00
Franck Nijhof 73debba60c Update home-assistant/wheels to 2023.10.2 (#101549) 2023-10-06 20:40:09 +02:00
Franck Nijhof a6edfa85b1 2023.10.1 (#101547) 2023-10-06 20:36:37 +02:00
Jan-Philipp Benecke bb7ddddd4c Use snapshot assertion for lametric diagnostics test (#99164) 2023-10-06 20:26:52 +02:00
Justin Grover 475cb7719b Add unique ID for generic hygrostat (#101503) 2023-10-06 20:15:40 +02:00
Joost Lekkerkerker 9ac5bdc832 Use modern naming for WLED (#100233) 2023-10-06 20:04:44 +02:00
TJ Horner ed8a372f4e Auto-fix common key entry issues during WeatherKit config flow (#101504) 2023-10-06 20:00:04 +02:00
Erik Montnemery 4e98d39106 Use loader.async_suggest_report_issue in async util (#101516) 2023-10-06 19:57:43 +02:00
Franck Nijhof b3080ae005 Bumped version to 2023.10.1 2023-10-06 19:38:00 +02:00
Joost Lekkerkerker 5925b6b912 Only import color extractor when domain is in config (#101522) 2023-10-06 19:37:44 +02:00
Joost Lekkerkerker 42b53c6349 Add Withings webhooks after a slight delay (#101542) 2023-10-06 19:37:18 +02:00
J. Nick Koston d26b1b370a Bump HAP-python to 4.8.0 (#101538) 2023-10-06 19:37:14 +02:00
Joost Lekkerkerker 7369ae8c9f Cancel callbacks on Withings entry unload (#101536) 2023-10-06 19:37:11 +02:00
Mike Woudenberg 6c2d1e2142 Update LoqedAPI to handle invalid transitions better (#101534) 2023-10-06 19:37:08 +02:00
jan iversen 4a5b0222ab Modbus, wrong length when reading strings (#101529) 2023-10-06 19:37:05 +02:00
Joost Lekkerkerker 76f78e249b Delete existing Withings cloudhook (#101527) 2023-10-06 19:37:02 +02:00
Joost Lekkerkerker 81f582eeb7 Use config flow in color extractor tests (#101524) 2023-10-06 19:36:58 +02:00
Kevin Stillhammer 7f6506cfcf Limit waze_travel_time to 0.5call/s over all entries (#101514) 2023-10-06 19:35:48 +02:00
Allen Porter d14934861e Fix for rainbird unique id (#101512) 2023-10-06 19:35:44 +02:00
Allen Porter d469626855 Fix bug in calendar state where alarms due to alarms not scheduled (#101510) 2023-10-06 19:35:41 +02:00
Ian 9725a0daf9 Fix key error in config flow when duplicate stop names exist (#101491) 2023-10-06 19:35:38 +02:00
J. Nick Koston 26c7ba38d0 Fix caching of latest short term stats after insertion of external stats (#101490) 2023-10-06 19:35:35 +02:00
Kevin Stillhammer 948bbdd2bf bump pywaze to 0.5.1 sets timeout to 60s (#101487) 2023-10-06 19:35:32 +02:00
J. Nick Koston eadc70ede0 Bump zeroconf to 0.115.2 (#101482) 2023-10-06 19:35:28 +02:00
Paul Bottein 2210db4ca6 Update frontend to 20231005.0 (#101480) 2023-10-06 19:35:25 +02:00
G Johansson c5585b0706 Fix Trafikverket Camera if no location data (#101463) 2023-10-06 19:35:22 +02:00
René Klomp 37cfa5efb7 SMA add missing entity descriptions (#101462) 2023-10-06 19:35:19 +02:00
Fredrik Erlandsson a506ba94d1 Fix device_class.capitalize() in Point (#101440) 2023-10-06 19:35:16 +02:00
Michael Davie f8c7d502df Bump env_canada to v0.5.37 (#101435) 2023-10-06 19:35:12 +02:00
Nathan Spencer f0cb2ba005 Adjust WeatherFlow wind sensors to appropriately match native unit and library field (#101418) 2023-10-06 19:35:10 +02:00
Michael Hansen f7ab00a8bf Add wake word cooldown to avoid duplicate wake-ups (#101417) 2023-10-06 19:35:06 +02:00
Joost Lekkerkerker e8c38fe99e Add translation for Tamper binary sensor (#101416) 2023-10-06 19:35:03 +02:00
J. Nick Koston a4f0da8286 Bump dbus-fast to 2.11.1 (#101406)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.11.0...v2.11.1
2023-10-06 19:34:54 +02:00
Jan Bouwhuis 223f3a434b Raise vol.Invalid for invalid mqtt device_tracker config (#101399)
Raise vol.Invalid for invalid mqtt device_tracker
2023-10-06 19:31:58 +02:00
Joost Lekkerkerker 10e43048bd Fix Withings translations (#101397) 2023-10-06 19:31:55 +02:00
Marty Sun 2345a2be5f Bump pyyardian to 1.1.1 (#101363)
* Update Yardian Dependency

* test requirements
2023-10-06 19:31:52 +02:00
TheJulianJES 7dfb397aef Fix ZHA device diagnostics error for unknown unsupported attributes (#101239)
* Modify test to account for scenario of unknown unsupported attributes

* Add error checking for finding unsupported attributes

* Change comment to clarify zigpy misses an attribute def

This should make it more clear that it's about an unknown attribute (where zigpy doesn't have an attribute definition).

* Increase test coverage

This increases test coverage by doing the following:
- adding the `IasZone` to our test device, so we have a cluster which actually has some attribute definitions
- adding not just an unknown unsupported attribute by id, but also by name
- adding a known unsupported attribute by id and by name

* Fix diagnostics logic
2023-10-06 19:31:48 +02:00
TheJulianJES 5d0c8947a1 Fix ZHA device diagnostics error for unknown unsupported attributes (#101239)
* Modify test to account for scenario of unknown unsupported attributes

* Add error checking for finding unsupported attributes

* Change comment to clarify zigpy misses an attribute def

This should make it more clear that it's about an unknown attribute (where zigpy doesn't have an attribute definition).

* Increase test coverage

This increases test coverage by doing the following:
- adding the `IasZone` to our test device, so we have a cluster which actually has some attribute definitions
- adding not just an unknown unsupported attribute by id, but also by name
- adding a known unsupported attribute by id and by name

* Fix diagnostics logic
2023-10-06 12:23:48 -04:00
Fredrik Erlandsson d654c4bc1e Fix device_class.capitalize() in Point (#101440) 2023-10-06 18:23:18 +02:00
Joost Lekkerkerker b2cad2370b Add Withings webhooks after a slight delay (#101542) 2023-10-06 18:21:06 +02:00
Duco Sebel 6359390a78 Add Eastron virtual integration (#101385) 2023-10-06 18:12:00 +02:00
Rami Mosleh c8d1a7ff4f Remove references to name key in android ip webcam (#99590) 2023-10-06 18:10:32 +02:00
Joost Lekkerkerker 86cf2e29b2 Cancel callbacks on Withings entry unload (#101536) 2023-10-06 17:10:19 +02:00
Allen Porter 1635cbb8a6 Add a google calendar diagnostics platform (#101175) 2023-10-06 17:08:50 +02:00
J. Nick Koston 8dffff3983 Bump HAP-python to 4.8.0 (#101538) 2023-10-06 17:06:18 +02:00
jimmyd-be 5edcd7ef0f Fix Reson sensor enum options mapping (#101380) 2023-10-06 16:50:34 +02:00
Mike Woudenberg 83c5844c2e Update LoqedAPI to handle invalid transitions better (#101534) 2023-10-06 15:37:18 +02:00
Aidan Timson 9982483395 Add media player to System Bridge integration (#97532)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-06 15:08:51 +02:00
David Knowles 96aba1c1a6 Add tests to Hydrawise (#101110)
* Add tests to Hydrawise

* Update tests/components/hydrawise/test_binary_sensor.py

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

* Changes requested during review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-10-06 14:42:08 +02:00
G Johansson adc7fc0ee4 Fix GDACS import issue creation (#97667) 2023-10-06 14:30:11 +02:00
Robert Hillis 10dcdbf537 Correct doc strings for Hassio component (#101530) 2023-10-06 14:13:59 +02:00
jan iversen d2c842ee0c Modbus, wrong length when reading strings (#101529) 2023-10-06 14:10:10 +02:00
Robert Hillis 62802dd487 Add entity translations to Goalzero (#95310)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-10-06 14:01:21 +02:00
Joost Lekkerkerker 835982ebe5 Migrate Samsung TV to has entity name (#96751)
* Migrate Samsung TV to has entity name

* Fix test

* Fix tests

---------

Co-authored-by: Simone Chemelli <simone.chemelli@gmail.com>
2023-10-06 13:54:21 +02:00
Marc Mueller d5f07ef45f Add override decorators to sensor (#94998) 2023-10-06 13:44:07 +02:00
Guido Schmitz 3cd4d26eb9 React on changed firmware version in devolo_home_network (#101513) 2023-10-06 13:37:48 +02:00
Robert Hillis 1c590f8d0e Remove unnecessary defaults from Netatmo sensor (#101528) 2023-10-06 13:35:20 +02:00
G Johansson fd2edf6c0a Allow remove devices in Scrape (#101229) 2023-10-06 13:33:28 +02:00
Kevin Stillhammer 79eaaec1a8 Limit waze_travel_time to 0.5call/s over all entries (#101514) 2023-10-06 13:23:32 +02:00
Ville Skyttä f7aad4a9e6 Call pytest as python3 -m pytest (#101185) 2023-10-06 13:22:56 +02:00
Joost Lekkerkerker 425d961489 Delete existing Withings cloudhook (#101527) 2023-10-06 13:19:39 +02:00
Joost Lekkerkerker 97d17637ea Only import color extractor when domain is in config (#101522) 2023-10-06 13:18:44 +02:00
YuriiMaiboroda ca7355b2f3 Using the MarkdownV2 parser with the Telegram bot (#101139) 2023-10-06 12:26:20 +02:00
Jan Bouwhuis 4553de5cbf Use string conversion over isinstance in mqtt message handling if possible (#101364) 2023-10-06 12:15:01 +02:00
J. Nick Koston c0904c905d Avoid updating hassio addon data when there are no entities consuming it (#101382) 2023-10-06 12:14:48 +02:00
Joost Lekkerkerker 7c8c063149 Use config flow in color extractor tests (#101524) 2023-10-06 12:02:53 +02:00
Brett Adams 00d0767628 Add missing return type in Advantage Air (#101377)
* Add None return type

* Change mypi type

* Fix mypy issue
2023-10-06 11:59:27 +02:00
Erik Montnemery 20188181f7 Fix spelling in sensor test (#101520) 2023-10-06 11:51:08 +02:00
Erik Montnemery 775751ece5 Add WS command sensor/numeric_device_classes (#101257) 2023-10-06 10:27:45 +02:00
Shay Levy b97ec2cfce Add support for Aranet2 devices (#101495) 2023-10-06 10:26:18 +02:00
Ernst Klamer fa90b0f41e Add raw sensor to BTHome (#101412) 2023-10-06 10:22:51 +02:00
rappenze d009ff8b01 Add type hints in FibaroController (#101494) 2023-10-06 10:13:30 +02:00
Marc Mueller 67dfd1a86b Update grpcio to 1.59.0 (#101287) 2023-10-06 10:08:01 +02:00
Erik Montnemery 3478666973 Use loader.async_suggest_report_issue in deprecation helper (#101393) 2023-10-06 09:51:08 +02:00
Nathan Spencer 60fa63a1f0 Adjust WeatherFlow wind sensors to appropriately match native unit and library field (#101418) 2023-10-06 09:41:01 +02:00
Franck Nijhof ed74e64f8d Merge branch 'master' into dev 2023-10-06 09:38:13 +02:00
Allen Porter 579590f7c3 Fix bug in calendar state where alarms due to alarms not scheduled (#101510) 2023-10-06 09:19:21 +02:00
Michael Hansen 244f6d8002 Add wake word cooldown to avoid duplicate wake-ups (#101417) 2023-10-06 09:18:35 +02:00
J. Nick Koston 48a23798d0 Fix caching of latest short term stats after insertion of external stats (#101490) 2023-10-06 09:18:05 +02:00
Allen Porter 920bd04099 Fix for rainbird unique id (#101512) 2023-10-06 09:16:06 +02:00
Shay Levy 442005e40f Add codeowner for Aranet (#101496) 2023-10-06 09:15:25 +02:00
René Klomp dd8bd0db5a SMA add missing entity descriptions (#101462) 2023-10-06 09:13:39 +02:00
Jan Bouwhuis 2bfb1e75d3 Correct device_class test for mqtt button (#101500) 2023-10-06 09:11:50 +02:00
Matteo Gheza da770df13f Change OpenWeatherMap unit_of_measurement from mm to mm/h (#101485)
Change OWM unit_of_measurement
2023-10-06 08:24:30 +02:00
J. Nick Koston da1d5fc862 Increase max bind vars based on database version (#101464) 2023-10-06 07:59:38 +02:00
Allen Porter c7d533d427 Update fitbit error handling (#101304)
* Update fitbit error handling

* Update exceptions to inherit HomeAssistantError and add reason code

* Revert config flow exception mapping hack
2023-10-05 22:38:15 -07:00
Joakim Plate 1d31def982 Update nibe library to 2.4.0 (#101493) 2023-10-05 23:46:07 +02:00
G Johansson 8a033ee554 Fix Trafikverket Camera if no location data (#101463) 2023-10-05 22:17:09 +02:00
Franck Nijhof 6853d54050 Remove logging of retrying config entry warning (#101483) 2023-10-05 22:12:01 +02:00
Ian fe316f2233 Fix key error in config flow when duplicate stop names exist (#101491) 2023-10-05 22:11:15 +02:00
Kevin Stillhammer ce55116eb2 bump pywaze to 0.5.1 sets timeout to 60s (#101487) 2023-10-05 22:07:27 +02:00
rappenze b8fa065467 Update pyfibaro dependency to 0.7.5 (#101481) 2023-10-05 22:02:49 +02:00
Erik Montnemery a428bbfc2e Use loader.async_suggest_report_issue in vacuum (#101391) 2023-10-05 20:39:24 +02:00
mbo18 b7914582db Update homeassistant color (#101372) 2023-10-05 20:10:27 +02:00
Guido Schmitz 285ad10624 Use snapshot in devolo_home_network update tests (#101442) 2023-10-05 20:09:52 +02:00
Erik Montnemery 62ea4b36cd Use loader.async_suggest_report_issue in number (#101388) 2023-10-05 20:08:22 +02:00
Erik Montnemery 659d437cac Use loader.async_suggest_report_issue in sensor (#101389) 2023-10-05 20:07:56 +02:00
Erik Montnemery 716a10e556 Add Python copyright and Python license to backports package (#101454) 2023-10-05 19:57:46 +02:00
Erik Montnemery 589fd58137 Use loader.async_suggest_report_issue in stt (#101390) 2023-10-05 19:57:21 +02:00
Erik Montnemery 0c40c8465e Correct checks for deprecated forecast in weather (#101392)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-05 19:56:47 +02:00
Betacart 3d9073693c Fix typo -> "Kay" to "Key" in Minio (#101472) 2023-10-05 19:55:50 +02:00
Erik Montnemery dce5099d92 Use loader.async_suggest_report_issue in frame helper (#101461) 2023-10-05 19:52:26 +02:00
J. Nick Koston cb0a05142d Bump zeroconf to 0.115.2 (#101482) 2023-10-05 19:50:35 +02:00
Paul Bottein 0e41542ff3 Update frontend to 20231005.0 (#101480) 2023-10-05 19:25:48 +02:00
Erik Montnemery 7f912cb669 Fix airnow test fixture (#101458) 2023-10-05 13:24:28 +02:00
Erik Montnemery 2464232f24 Fix call to API in airnow option flow tests (#101457) 2023-10-05 13:23:59 +02:00
Fredrik Erlandsson 5975974a37 Bumb pypoint to 2.3.2 (#101436)
version bumb point
2023-10-05 08:36:58 +02:00
Joost Lekkerkerker ef066626c8 Add translation for Tamper binary sensor (#101416) 2023-10-05 08:32:43 +02:00
Marty Sun 0c8e1a691d Bump pyyardian to 1.1.1 (#101363)
* Update Yardian Dependency

* test requirements
2023-10-05 07:14:14 +02:00
Michael Davie ca2e335ab9 Bump env_canada to v0.5.37 (#101435) 2023-10-05 07:11:17 +02:00
Raman Gupta 383c63000e Handle invalid scale for zwave_js multilevel/meter sensors (#101173)
* Handle invalid scale for zwave_js multilevel/meter sensors

* Remove logging statement
2023-10-04 22:55:18 -04:00
J. Nick Koston c951c03447 Bump dbus-fast to 2.11.1 (#101406)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.11.0...v2.11.1
2023-10-04 21:01:10 -04:00
jjlawren db71e8033c Bump plexapi to 4.15.4 (#101381) 2023-10-04 23:32:02 +02:00
Erik Montnemery 7e39acda37 Minor improvement of frame helper (#101387)
* Minor improvement of frame helper

* Add new custom integration for testing

* Make IntegrationFrame kw_only
2023-10-04 21:43:00 +02:00
Toastme c495d607d8 Update tplink manifest.json with 2 new MACs for KP200 (#101359)
* Update manifest.json with 2 new MACs for KP200

those MAC are missing from the list so there are not detected like the other K200 i have (like 68ff7b)

* run hassfest

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-04 21:09:24 +02:00
Jan Bouwhuis a3fe120457 Raise vol.Invalid for invalid mqtt device_tracker config (#101399)
Raise vol.Invalid for invalid mqtt device_tracker
2023-10-04 19:36:34 +02:00
Øyvind Matheson Wergeland 1d7d7c3540 Fix translation keys in Hue (#101403)
hue: fix key string syntax
2023-10-04 18:43:53 +02:00
Marc Mueller 2d766d43fc Prevent async_timeout import (#101378) 2023-10-04 18:19:19 +02:00
Joost Lekkerkerker 5754e8721a Fix Withings translations (#101397) 2023-10-04 16:45:13 +02:00
Franck Nijhof 22bf1a0582 2023.10.0 (#101386) 2023-10-04 16:03:55 +02:00
Maciej Bieniek ab6f617797 Use entity_registry_enabled_by_default fixture in Kraken tests (#101379)
Use entity_registry_enabled_by_default fixture
2023-10-04 15:45:59 +02:00
Franck Nijhof 01daae69ab Bumped version to 2023.10.0 2023-10-04 13:48:40 +02:00
Erik Montnemery 17779c5f0c Add loader.async_suggest_report_issue and loader.async_get_issue_tracker (#101336)
* Add loader.async_suggest_report_issue and loader.async_get_issue_tracker

* Update tests

* Add tests

* Address review comments

* Address review comments
2023-10-04 13:40:33 +02:00
Maciej Bieniek 3aa6771835 Update DeviceInfo.sw_version value for Shelly Gen2 sleeping devices (#101338)
* Update device info for gen2 sleeping devices

* Add test

* Update sw_version only if the firmware_version value has changed

* Rename device_update_info() to update_device_fw_info()

* Remove duplicate comparison
2023-10-04 11:00:17 +02:00
Franck Nijhof 512b2af13c Bumped version to 2023.10.0b9 2023-10-04 10:24:20 +02:00
Raman Gupta d3c5b9777b Notify users when zwave device gets reset (#101362)
* Notify users when zwave device gets reset

* review comments
2023-10-04 10:18:48 +02:00
Franck Nijhof 8e05df2b44 Bumped version to 2023.10.0b8 2023-10-04 10:11:43 +02:00
Franck Nijhof 0470ca3e76 Update Pillow to 10.0.1 (#101368) 2023-10-04 10:11:33 +02:00
Guido Schmitz ebde9914f2 Increase update interval of update platform in devolo_home_network (#101366)
Increase update interval of firmware platform
2023-10-04 10:11:30 +02:00
Luke Lashley 337f9197bb Check that dock error status is not None for Roborock (#101321)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-04 10:11:27 +02:00
Brett Adams 9b9a16e9c6 Fix temperature when myZone is in use for Advantage air (#101316) 2023-10-04 10:11:21 +02:00
Brett Adams cd175f679f Fix temperature when myZone is in use for Advantage air (#101316) 2023-10-04 10:05:44 +02:00
Franck Nijhof fb724472fb Update Pillow to 10.0.1 (#101368) 2023-10-04 09:54:43 +02:00
Luke Lashley f08d66741d Check that dock error status is not None for Roborock (#101321)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-10-04 09:40:03 +02:00
Guido Schmitz d14e5dc56a Increase update interval of update platform in devolo_home_network (#101366)
Increase update interval of firmware platform
2023-10-04 09:19:57 +02:00
Dave T 8626a4888c Remove deprecated temperature conversion functions (#101204) 2023-10-04 06:04:23 +02:00
Dave T efca5ba554 Remove deprecated pressure conversion functions (#101347)
Remove deprecated pressure conversion utils
2023-10-04 06:03:32 +02:00
Dave T adf6d34d95 Remove deprecated speed conversion functions (#101350) 2023-10-04 06:01:45 +02:00
Paulus Schoutsen 55ff8e1fcb Bumped version to 2023.10.0b7 2023-10-03 22:07:38 -04:00
Jesse Hills 937a26117c Allow esphome device to disable vad on stream (#101352) 2023-10-03 22:03:20 -04:00
Jesse Hills 776b26de3f Fix manual stopping of the voice assistant pipeline (#101351) 2023-10-03 22:03:19 -04:00
Michael Hansen b9a929e63b Pipeline runs are only equal with same id (#101341)
* Pipeline runs are only equal with same id

* Use dict instead of list in PipelineRuns

* Let it blow up

* Test

* Test rest of __eq__
2023-10-03 22:03:18 -04:00
Michael Hansen 9c5d9344e2 Increase pipeline timeout to 5 minutes (#101327) 2023-10-03 22:03:17 -04:00
Michael 38423ad6f1 Bump pyW800rf32 to 0.4 (#101317)
bump pyW800rf32 from 0.3 to 0.4
2023-10-03 22:03:16 -04:00
Brett Adams 9e4f9a88ad Fix reference error in Aussie Broadband (#101315) 2023-10-03 22:03:15 -04:00
Brett Adams e0cbbf7d57 Revert PR #99077 for Aussie Broadband (#101314) 2023-10-03 22:03:14 -04:00
Aaron Collins fd6eb61489 Remove duplicated device before daikin migration (#99900)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-03 22:03:13 -04:00
Franck Nijhof 3be3593ffa Revert "Add Energyzero get_prices service (#100499)" (#101332)
This reverts commit d518cf13e5.
2023-10-03 22:00:30 -04:00
Ville Skyttä 5551a345ea Remove some unnecessary uses of regular expressions (#101182) 2023-10-03 20:55:00 -05:00
Jesse Hills 09ba34fb3a Allow esphome device to disable vad on stream (#101352) 2023-10-04 13:09:12 +13:00
Jesse Hills 63946175ea Fix manual stopping of the voice assistant pipeline (#101351) 2023-10-03 19:15:56 -04:00
Michael Hansen e6504218bc Pipeline runs are only equal with same id (#101341)
* Pipeline runs are only equal with same id

* Use dict instead of list in PipelineRuns

* Let it blow up

* Test

* Test rest of __eq__
2023-10-03 16:52:31 -05:00
Maciej Bieniek d8f1023210 Use entity_registry_enabled_by_default fixture in the NextDNS tests (#101339) 2023-10-03 22:07:17 +02:00
Jan-Philipp Benecke 1c60597e41 Make co2signal state attribute translatable (#101337) 2023-10-03 21:19:32 +02:00
Erik Montnemery 2627abb9ef Improve test coverage of deprecation helper (#101335) 2023-10-03 20:57:24 +02:00
Michael Hansen cc7e35e299 Increase pipeline timeout to 5 minutes (#101327) 2023-10-03 19:41:00 +02:00
Marc Mueller d723a87ea2 Update coverage to 7.3.2 (#101319) 2023-10-03 19:30:18 +02:00
Erik Montnemery ab2de18f8f Refactor frame.get_integration_frame (#101322) 2023-10-03 19:21:27 +02:00
Shay Levy 956098ae3a Shelly - remove unused device update info call (#101295) 2023-10-03 19:21:31 +03:00
Brett Adams bdcc6c0143 Fix reference error in Aussie Broadband (#101315) 2023-10-03 16:35:26 +02:00
Robert Groot d518cf13e5 Add Energyzero get_prices service (#100499) 2023-10-03 16:21:23 +02:00
Daniel Rheinbay 135570acab Add tea time effect to Yeelight (#95936) 2023-10-03 14:53:01 +02:00
Michael 7c7f00a46d Bump pyW800rf32 to 0.4 (#101317)
bump pyW800rf32 from 0.3 to 0.4
2023-10-03 12:17:23 +02:00
Brett Adams 727074a1a6 Revert PR #99077 for Aussie Broadband (#101314) 2023-10-03 11:52:01 +02:00
Aaron Collins 99f227229e Remove duplicated device before daikin migration (#99900)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-03 10:11:21 +02:00
dependabot[bot] 69e588b15e Bump actions/setup-python from 4.7.0 to 4.7.1 (#101306)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 10:10:18 +02:00
Franck Nijhof a9bc380c32 Bumped version to 2023.10.0b6 2023-10-02 23:03:02 +02:00
Franck Nijhof be32db70a0 Update Lokalise CLI to v2.6.8 (#101297) 2023-10-02 23:02:53 +02:00
Bram Kragten 0e29ccf069 Update frontend to 20231002.0 (#101294) 2023-10-02 23:02:49 +02:00
Franck Nijhof 44acc88365 Update Lokalise CLI to v2.6.8 (#101297) 2023-10-02 23:01:30 +02:00
Bram Kragten 49e69aff0c Update frontend to 20231002.0 (#101294) 2023-10-02 22:56:50 +02:00
Shay Levy ca2f45d466 Fix Shelly typo in cover platform (#101292) 2023-10-02 22:30:58 +02:00
Franck Nijhof 2f0ba154b9 Update ruff to v0.0.292 (#101290) 2023-10-02 21:49:10 +02:00
Franck Nijhof 9834c1de9a Bumped version to 2023.10.0b5 2023-10-02 21:34:50 +02:00
Nathan Spencer 791293ca87 Bump pylitterbot to 2023.4.9 (#101285) 2023-10-02 21:34:30 +02:00
Joost Lekkerkerker 98d7945521 Revert "Use shorthand attributes in Telldus live" (#101281) 2023-10-02 21:34:26 +02:00
Michael Hansen 06d6122663 Bump intents to 2023.10.2 (#101277) 2023-10-02 21:34:23 +02:00
Luke Lashley bad9b1c95f Bump python-myq to 3.1.11 (#101266) 2023-10-02 21:34:20 +02:00
Franck Nijhof a0e5f016e1 Add documentation URL for the Home Assistant Green (#101263) 2023-10-02 21:34:17 +02:00
Joost Lekkerkerker 5370db4a3e Bump aiowaqi to 2.0.0 (#101259) 2023-10-02 21:34:14 +02:00
Erik Montnemery b069f92d95 Add missing device class to sensor.DEVICE_CLASS_UNITS (#101256) 2023-10-02 21:34:11 +02:00
Joost Lekkerkerker 9b810dcf9f Downgrade pylitterbot to 2023.4.5 (#101255) 2023-10-02 21:34:08 +02:00
Jc2k 3cfae48577 Add extra validation in private_ble_device config flow (#101254) 2023-10-02 21:34:05 +02:00
Erik Montnemery ad53ff037e Fix color temperature setting in broadlink light (#101251) 2023-10-02 21:34:02 +02:00
Erik Montnemery 63b5ba6b3a Remove dead code from broadlink light (#101063) 2023-10-02 21:33:58 +02:00
Michael Hansen d0700db7eb Bump intents to 2023.10.2 (#101277) 2023-10-02 14:23:13 -05:00
Jesse Hills e76396b184 ESPHome: fix voice assistant default audio settings (#101241) 2023-10-02 21:23:12 +02:00
Joost Lekkerkerker ebf8061117 Fix withings webhook name (#101221) 2023-10-02 21:23:09 +02:00
Kevin Stillhammer ced616fafa Remove invalid doc about multi origin/dest in google_travel_time (#101215) 2023-10-02 21:23:06 +02:00
J. Nick Koston 18f3fb42c9 Bump aioesphomeapi to 17.0.1 (#101214) 2023-10-02 21:23:03 +02:00
J. Nick Koston bfe16e2536 Bump zeroconf to 0.115.1 (#101213) 2023-10-02 21:23:00 +02:00
Aidan Timson 98ca71fc96 Split get users into chunks of 100 for Twitch sensors (#101211)
* Split get users into chunks of 100

* Move to own function
2023-10-02 21:22:57 +02:00
Luke Lashley 93033e037d Bump python-roborock to 0.34.6 (#101147) 2023-10-02 21:22:51 +02:00
Simon Lamon cfa923252b Fix loop in progress config flow (#97229)
* Fix data entry flow with multiple steps

* Update a test

* Update description and add a show progress change test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-02 21:20:40 +02:00
Nathan Spencer 9d242bf45f Bump pylitterbot to 2023.4.9 (#101285) 2023-10-02 20:44:47 +02:00
Marc Mueller f248b693d7 Update pylint to 3.0.0 (#101282) 2023-10-02 20:12:43 +02:00
Luke Lashley e4cb19f20d Bump python-roborock to 0.34.6 (#101147) 2023-10-02 20:11:16 +02:00
Joost Lekkerkerker 6fa3078cfc Revert "Use shorthand attributes in Telldus live" (#101281) 2023-10-02 19:10:15 +02:00
Mike 1a9c98e837 Add support for Levoit Vital 100S Purifier (#101273)
Add support for Levoit Vital 100S Purifier.
2023-10-02 17:53:54 +02:00
Marcel van der Veldt 35616e100d Discover switch entities from Hue behavior_script instances (#101262) 2023-10-02 17:15:41 +02:00
Luke Lashley 054407722d Bump python-myq to 3.1.11 (#101266) 2023-10-02 17:03:53 +02:00
Allen Porter 74b3c5c690 Modernize fitbit sensors (#101179)
* Improve fitbit sensors with state class and entiy category

* Revert sensor format changes
2023-10-02 16:56:46 +02:00
Erik Montnemery cab30085c5 Fix typo in config.py (#101268) 2023-10-02 15:57:04 +02:00
Erik Montnemery b5f71f9ec7 Fix stale docstring in intent_script (#101270) 2023-10-02 15:24:12 +02:00
Erik Montnemery f72f95549c Use DOMAIN constant in command_line (#101269) 2023-10-02 15:22:54 +02:00
Aidan Timson 9eaf326c0e Split get users into chunks of 100 for Twitch sensors (#101211)
* Split get users into chunks of 100

* Move to own function
2023-10-02 15:20:19 +02:00
Kevin Stillhammer 15f945c47e Remove invalid doc about multi origin/dest in google_travel_time (#101215) 2023-10-02 14:31:25 +02:00
Franck Nijhof 02f82d04fe Add documentation URL for the Home Assistant Green (#101263) 2023-10-02 14:30:33 +02:00
Simon Lamon a618e8d1cf Fix loop in progress config flow (#97229)
* Fix data entry flow with multiple steps

* Update a test

* Update description and add a show progress change test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-02 14:15:54 +02:00
Erik Montnemery e18e12a2df Fix color temperature setting in broadlink light (#101251) 2023-10-02 14:12:06 +02:00
Jc2k e23e71279f Add extra validation in private_ble_device config flow (#101254) 2023-10-02 13:56:39 +02:00
Marc Mueller 100b6fd06f Fix flaky lru_cache test (#101252) 2023-10-02 13:52:56 +02:00
Joost Lekkerkerker 4ee6f6c766 Bump aiowaqi to 2.0.0 (#101259) 2023-10-02 13:49:22 +02:00
Maciej Bieniek 0fdf04391b Use class attrs and shorthand attrs for Shelly (#101249) 2023-10-02 13:40:06 +02:00
Joost Lekkerkerker 85e782055b Downgrade pylitterbot to 2023.4.5 (#101255) 2023-10-02 13:07:56 +02:00
Erik Montnemery d0dc4d0963 Add missing device class to sensor.DEVICE_CLASS_UNITS (#101256) 2023-10-02 13:01:26 +02:00
Zehuan Li 41cb8526d1 Add secret_token support to telegram_bot component (#100869)
* Support secret_token for setWebHook api

* Revert configuration YAML changes; generate and store secret token instead

* Reformat codes

* Revert storage of secret token; use ephemeral secret token instead

* Reformat

* Update homeassistant/components/telegram_bot/webhooks.py

* Fix when header is not present

* Check for non-empty token

* Fix tests to support secret token

* Add tests for invalid secret token

* Minor: remove comment

* Revert back to 401

* ... and for tests

* Change patching method for the generation of secret tokens

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-10-02 11:44:15 +02:00
Joost Lekkerkerker 1b43d79717 Use async_at_started in Netatmo (#100996)
* Use async_at_started in Netatmo

* Make nice
2023-10-02 11:41:06 +02:00
G Johansson 56e7e20904 Remove YAML import from Brottsplatskartan (#101222) 2023-10-02 11:00:41 +02:00
Ian e652d37f29 Use data update coordinator in NextBus to reduce api calls (#100602) 2023-10-02 10:56:10 +02:00
Jesse Hills 6ce6952a06 ESPHome: fix voice assistant default audio settings (#101241) 2023-10-02 10:35:15 +02:00
Dave T 99a76ef4e6 Fix most sphinx documentation warnings (#101228) 2023-10-02 09:01:41 +02:00
G Johansson f2cf87b0b7 Remove YAML import from Workday (#101223) 2023-10-02 09:01:03 +02:00
G Johansson b56d25121f Remove platform YAML qBittorrent (#101224) 2023-10-02 09:00:09 +02:00
G Johansson b33d5fece6 Remove platform YAML from Snapcast (#101225) 2023-10-02 08:59:06 +02:00
Jan Bouwhuis 78f827697e Remove imap_email_content integration (#101233) 2023-10-02 08:57:16 +02:00
G Johansson c1cfce116d Bump pytrafikverket to 0.3.7 (#101231) 2023-10-02 08:55:35 +02:00
Allen Porter 4e4b8de448 Add reauth support in fitbit (#101178)
* Add reauth support in fitbit

* Update tests/components/fitbit/test_config_flow.py

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

* Improve http status error code handling

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-02 08:09:08 +02:00
Joost Lekkerkerker 4c24ff6847 Migrate WAQI to has entity name (#101203) 2023-10-01 23:47:32 +02:00
TJ Horner cabfbc245d Add weatherkit sensor platform (#101150)
* Add weatherkit sensor platform and tests

* Make unique ID assignment more explicit

* Fix missing argument

* Use const for top-level API response keys

* Address code review feedback
2023-10-01 23:20:09 +02:00
Simone Chemelli 9261ad14e2 Add RestoreEntity to Comelit cover (#101192)
* Add RestoreEntoty to Comelit cover

* remove logging
2023-10-01 20:56:34 +02:00
Joost Lekkerkerker 67f7c703f4 Fix withings webhook name (#101221) 2023-10-01 20:55:00 +02:00
J. Nick Koston 377f00730a Bump aioesphomeapi to 17.0.1 (#101214) 2023-10-01 19:33:53 +01:00
J. Nick Koston 1f76abe6f4 Bump zeroconf to 0.115.1 (#101213) 2023-10-01 19:33:38 +01:00
RoboMagus 1db3d3c158 icon for commandline sensors (#101195)
* Add icon to schema for commandline sensor and binary_sensor

* Add icon tests
2023-10-01 20:17:53 +02:00
Franck Nijhof 8c84237e6b Bumped version to 2023.10.0b4 2023-10-01 18:32:38 +02:00
Joost Lekkerkerker cf6f0cf266 Correct JSONDecodeError in co2signal (#101206) 2023-10-01 18:32:29 +02:00
Joost Lekkerkerker b24f09b47e Add config entry name to Withings webhook name (#101205) 2023-10-01 18:32:26 +02:00
Daniel Hjelseth Høyer e0d7c1440b Update Mill library to 0.11.6 (#101180) 2023-10-01 18:32:23 +02:00
Allen Porter b20f9c40be Clear calendar alarms after scheduling and add debug loggging (#101176) 2023-10-01 18:32:18 +02:00
Oliver b27097808d Update denonavr to 0.11.4 (#101169) 2023-10-01 18:32:15 +02:00
Allen Porter d7fa98454b Fix rainbird entity unique ids (#101168)
* Fix unique ids for rainbird entities

* Update entity unique id use based on config entry entity id

* Update tests/components/rainbird/test_binary_sensor.py

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

* Rename all entity_registry variables

* Shorten long comment under line length limits

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-01 18:32:12 +02:00
Tereza Tomcova 531479bf5b Bump PySwitchbot to 0.40.1 (#101164) 2023-10-01 18:32:09 +02:00
Raman Gupta 3941d2c897 Bump zwave-js-server-python to 0.52.1 (#101162) 2023-10-01 18:32:06 +02:00
hlyi c4d85ac41f Report unavailability for yolink sensor and binary_sensor (#100743) 2023-10-01 18:32:03 +02:00
c0ffeeca7 5106907571 Terminology: Rename Multi-PAN to Multiprotocol to be consistent (#99262) 2023-10-01 18:31:59 +02:00
Joost Lekkerkerker 8fd0a1b083 Add config entry name to Withings webhook name (#101205) 2023-10-01 18:29:53 +02:00
Joost Lekkerkerker 65c8da3bf1 Correct JSONDecodeError in co2signal (#101206) 2023-10-01 18:28:53 +02:00
Guido Schmitz 598a8890e9 Use freezer.tick in devolo_home_network image tests (#101208)
Use freezer.tick
2023-10-01 18:22:19 +02:00
Allen Porter 2d58ab0e1c Fix rainbird entity unique ids (#101168)
* Fix unique ids for rainbird entities

* Update entity unique id use based on config entry entity id

* Update tests/components/rainbird/test_binary_sensor.py

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

* Rename all entity_registry variables

* Shorten long comment under line length limits

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-01 08:12:44 -07:00
c0ffeeca7 b3b5ca9b95 Terminology: Rename Multi-PAN to Multiprotocol to be consistent (#99262) 2023-10-01 16:20:09 +02:00
Ville Skyttä f4bf8fa8f1 Catch HTML case insensitively in "no HTML" config validation (#101181) 2023-10-01 16:19:24 +02:00
G Johansson a3808383d5 Fix binary sensor test in command_line (#101198) 2023-10-01 16:18:05 +02:00
Dave T 8b7fae5200 Remove deprecated distance conversion functions (#101199) 2023-10-01 16:17:31 +02:00
Ville Skyttä 31ea00f5c7 Treat strings starting with https but not htt as soundtouch media URLs (#101183) 2023-10-01 16:16:19 +02:00
Dave T a4a99ce957 Remove deprecated volume conversion functions (#101200) 2023-10-01 16:06:14 +02:00
Allen Porter 87ecdfb84f Clear calendar alarms after scheduling and add debug loggging (#101176) 2023-10-01 15:25:04 +02:00
Franck Nijhof 5e6735ab6d Update home-assistant/wheels to 2023.10.1 (#101197) 2023-10-01 15:05:10 +02:00
hlyi 9306e60530 Report unavailability for yolink sensor and binary_sensor (#100743) 2023-10-01 13:21:26 +02:00
Oliver fd1f0b0efe Update denonavr to 0.11.4 (#101169) 2023-10-01 12:26:28 +02:00
Daniel Hjelseth Høyer 9b754a58f4 Update Mill library to 0.11.6 (#101180) 2023-10-01 10:12:06 +02:00
Raman Gupta b4555c8a92 Bump zwave-js-server-python to 0.52.1 (#101162) 2023-10-01 08:28:14 +02:00
Allen Porter bd2fee289d Update Fitbit integration to allow UI based configuration (#100897)
* Cleanup fitbit sensor API parsing

* Remove API code that is not used yet

* Configuration flow for fitbit

* Code cleanup after manual review

* Streamline code for review

* Use scopes to determine which entities to enable

* Use set for entity comparisons

* Apply fitbit string pr feedback

* Improve fitbit configuration flow error handling

* Apply suggestions from code review

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

* Fix typo in more places

* Revert typing import

* Revert custom domain back to default

* Add additional config flow tests

* Add         breaks_in_ha_version to repair issues

* Update homeassistant/components/fitbit/api.py

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

* Increase test coverage for token refresh success case

* Add breaks_in_ha_version for sensor issue

* Apply suggestions from code review

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

* Simplify translations, issue keys, and token refresh

* Config flow test improvements

* Simplify repair issue creation on fitbit import

* Remove unused strings

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-30 16:56:39 -07:00
Tereza Tomcova fe30c019b6 Bump PySwitchbot to 0.40.1 (#101164) 2023-09-30 21:53:58 +02:00
Franck Nijhof 25855a3ccb Update home-assistant/wheels to 2023.09.3 (#101165) 2023-09-30 21:17:49 +02:00
Franck Nijhof 04829f0a1b Bumped version to 2023.10.0b3 2023-09-30 10:54:01 +02:00
Raman Gupta 01182e8a5c Fix zwave_js firmware update logic (#101143)
* Fix zwave_js firmware update logic

* add comment

* tweak implementation for ssame outcome
2023-09-30 10:53:50 +02:00
Joost Lekkerkerker af041d2900 Bump aiowaqi to 1.1.1 (#101129) 2023-09-30 10:53:46 +02:00
Joost Lekkerkerker 822af4d40d Return None when value is not known in OpenHardwareMonitor (#101127)
* Return None when value is not known

* Add to coverage
2023-09-30 10:53:43 +02:00
Franck Nijhof 730acb34f2 Revert pin on AlexaPy (#101123) 2023-09-30 10:53:39 +02:00
Joost Lekkerkerker b5eb158697 Correct youtube stream selector in media extractor (#101119) 2023-09-30 10:53:36 +02:00
Joost Lekkerkerker d216fbddae Add logging to media extractor to know the selected stream (#101117) 2023-09-30 10:53:32 +02:00
Joost Lekkerkerker d84d83a42a Migrate WAQI unique id (#101112)
* Migrate unique_id

* Add docstring
2023-09-30 10:53:29 +02:00
Franck Nijhof c1ade85d65 Pin charset-normalizer in our package constraints (#101107) 2023-09-30 10:53:25 +02:00
Franck Nijhof 124eda6906 Correct binary ignore for charset-normalizer to charset_normalizer (#101106) 2023-09-30 10:53:22 +02:00
Stefan Agner 65c7b30720 Stop the Home Assistant Core container by default (#101105) 2023-09-30 10:53:18 +02:00
Franck Nijhof 1d2c570a01 Ignore binary distribution wheels for charset-normalizer (#101104) 2023-09-30 10:53:15 +02:00
Marc Mueller 2cc229ce42 Fix circular dependency on homeassistant (#101099) 2023-09-30 10:53:12 +02:00
Franck Nijhof 73356ae232 Use pep 503 compatible wheels index for builds (#101096) 2023-09-30 10:53:09 +02:00
Franck Nijhof bfd7275972 Update Home Assistant base image to 2023.09.0 (#101092) 2023-09-30 10:53:05 +02:00
jjlawren ef3bd0100c Bump plexapi to 4.15.3 (#101088)
* Bump plexapi to 4.15.3

* Update tests for updated account endpoint

* Update tests for updated resources endpoint

* Switch to non-web client fixture

* Set __qualname__ attribute for new library behavior
2023-09-30 10:53:01 +02:00
TheJulianJES 3f57c33f32 Fix ZHA exception when writing cie_addr during configuration (#101087)
Fix ZHA exception when writing `cie_addr`
2023-09-30 10:52:58 +02:00
Matthias Alphart bae3379938 Update xknxproject to 3.3.0 (#101081) 2023-09-30 10:52:55 +02:00
Michael Hansen 85838c6af9 Use wake word description if available (#101079) 2023-09-30 10:52:52 +02:00
TJ Horner 9c0bc57fed Add native precipitation unit for weatherkit (#101073) 2023-09-30 10:52:48 +02:00
tronikos 97448eff8f Bump opower to 0.0.35 (#101072) 2023-09-30 10:52:42 +02:00
Paul Bottein 2f6fefefa7 Update frontend to 20230928.0 (#101067) 2023-09-30 10:52:36 +02:00
Jan Bouwhuis 42eb849cae Use dataclass for abode system class (#101138) 2023-09-30 10:44:46 +02:00
Stefan Agner 9444a474ec Stop the Home Assistant Core container by default (#101105) 2023-09-30 10:43:07 +02:00
Erik Montnemery 47ecce4873 Allow deleting entity entries from entity_registry.async_migrate_entries (#101094)
* Allow deleting entity entries from entity_registry.async_migrate_entries

* Explicitly return None in tests
2023-09-30 10:23:10 +02:00
uvjustin d40a08958d Use dataclasses instead of attrs in stream (#101148) 2023-09-30 09:46:30 +02:00
Raman Gupta e6c9a82b5f Improve conditional on unload (#101149) 2023-09-30 08:12:44 +02:00
Joost Lekkerkerker 6e3c704a33 Return None when value is not known in OpenHardwareMonitor (#101127)
* Return None when value is not known

* Add to coverage
2023-09-29 23:07:11 -04:00
Tudor Sandu 542ab2dd76 Fix ignored argument in service call for demo climate (#101137)
Fix service call for demo climate
2023-09-29 23:06:41 -04:00
Raman Gupta 7b9c1c3953 Fix zwave_js firmware update logic (#101143)
* Fix zwave_js firmware update logic

* add comment

* tweak implementation for ssame outcome
2023-09-29 23:05:33 -04:00
jjlawren a1d632c5d1 Bump plexapi to 4.15.3 (#101088)
* Bump plexapi to 4.15.3

* Update tests for updated account endpoint

* Update tests for updated resources endpoint

* Switch to non-web client fixture

* Set __qualname__ attribute for new library behavior
2023-09-29 23:04:00 -04:00
Jan Bouwhuis facdc5e862 Fix - Make sure logging is in time in sonos CI test (#101109)
Make sure logging is in time in sonos CI test
2023-09-29 23:16:59 +02:00
Jan Bouwhuis 1546dee36e Fix zha CI test might fail on changing time (#101134) 2023-09-29 21:36:54 +02:00
Franck Nijhof 581a045617 Trigger Wheels builds in more cases (#101126) 2023-09-29 21:19:11 +02:00
Jan Bouwhuis 26ba10f4e4 Use dataclass for stream segment Part (#101128)
* Use data class for stream segement Part

* use slots
2023-09-29 21:07:30 +02:00
Joost Lekkerkerker 1b05418647 Bump aiowaqi to 1.1.1 (#101129) 2023-09-29 20:57:53 +02:00
Jan Bouwhuis a5f8774878 Use cached_property for legacy device_tracker type (#101125) 2023-09-29 20:54:24 +02:00
Jan Bouwhuis 257e608c13 Use dataclass for mqtt TimestampedPublishMessage (#101124) 2023-09-29 20:11:30 +02:00
Franck Nijhof a19c6fe9ff Revert pin on AlexaPy (#101123) 2023-09-29 19:40:13 +02:00
Joost Lekkerkerker 339b95c79f Migrate WAQI unique id (#101112)
* Migrate unique_id

* Add docstring
2023-09-29 19:30:35 +02:00
Joost Lekkerkerker edcf0b6333 Add device class pH to Flipr (#101121) 2023-09-29 19:13:24 +02:00
Joost Lekkerkerker 591ffa8b68 Add device class pH to Poolsense (#101122) 2023-09-29 19:12:56 +02:00
Joost Lekkerkerker 8d972223d8 Add logging to media extractor to know the selected stream (#101117) 2023-09-29 19:12:27 +02:00
Joost Lekkerkerker 6c39233e00 Correct youtube stream selector in media extractor (#101119) 2023-09-29 19:09:18 +02:00
Joost Lekkerkerker ce083eade9 Add device class pH to aseko pool live (#101120) 2023-09-29 19:07:33 +02:00
Erik Montnemery 50827405d0 Fix patch of PLATFORMS constant in netatmo (#101038) 2023-09-29 16:30:33 +02:00
Franck Nijhof b8a7ad916a Pin charset-normalizer in our package constraints (#101107) 2023-09-29 14:43:03 +02:00
Franck Nijhof 97e5504ddd Correct binary ignore for charset-normalizer to charset_normalizer (#101106) 2023-09-29 13:18:33 +02:00
Franck Nijhof e924622153 Ignore binary distribution wheels for charset-normalizer (#101104) 2023-09-29 12:58:29 +02:00
Marc Mueller 809abc1445 Fix circular dependency on homeassistant (#101099) 2023-09-29 11:49:19 +02:00
Franck Nijhof 4f90542394 Use pep 503 compatible wheels index for builds (#101096) 2023-09-29 09:30:00 +02:00
Mike 2a6a2fa842 Update pyvesync to 2.1.10 (#100522)
* Update manifest.json to use pyvesync 2.1.10

* Update Requirements for pyvesync

* Update test_diagnostics.ambr

---------

Co-authored-by: Thibault Cohen <47721+titilambert@users.noreply.github.com>
2023-09-29 09:01:04 +02:00
Franck Nijhof fb61e34833 Update Home Assistant base image to 2023.09.0 (#101092) 2023-09-29 08:58:05 +02:00
Matthias Alphart 845d28255e Update xknxproject to 3.3.0 (#101081) 2023-09-29 07:05:26 +02:00
TheJulianJES f5d8d41ad5 Fix ZHA exception when writing cie_addr during configuration (#101087)
Fix ZHA exception when writing `cie_addr`
2023-09-28 21:56:17 -04:00
Álvaro Fernández Rojas d1347d23de Update aioairzone-cloud to v0.2.4 (#101069) 2023-09-28 16:29:53 -05:00
TJ Horner 063bac1665 Add native precipitation unit for weatherkit (#101073) 2023-09-28 16:24:07 -05:00
tronikos 42b2a462c1 Bump opower to 0.0.35 (#101072) 2023-09-28 22:38:33 +02:00
Erik Montnemery 136fbaa2a8 Remove dead code from broadlink light (#101063) 2023-09-28 22:38:21 +02:00
Michael Hansen d73cc1eecd Use wake word description if available (#101079) 2023-09-28 15:30:43 -05:00
Paul Bottein dbd0c06518 Update frontend to 20230928.0 (#101067) 2023-09-28 20:48:07 +02:00
Jan Bouwhuis 0ded0ef4ee Use dataclass instead of attr slots for mqtt PublishMessage and ReceiveMessage (#101062)
Use dataclass instead of attr slots
2023-09-28 20:36:30 +02:00
Jan Bouwhuis 77c519220d Use dataclass for mqtt Subscription (#101064) 2023-09-28 20:35:49 +02:00
Franck Nijhof d8f96d7709 Bumped version to 2023.10.0b2 2023-09-28 20:05:38 +02:00
Joost Lekkerkerker fff3c6c6e9 Bump aiowaqi to 1.1.0 (#99751)
* Bump aiowaqi to 1.1.0

* Fix hassfest

* Fix tests
2023-09-28 20:03:43 +02:00
Michael Hansen 17362e1954 Remove fma instructions from webrtc-noise-gain (#101060) 2023-09-28 20:03:21 +02:00
TJ Horner 1bbd4662b7 Bump apple_weatherkit to 1.0.4 (#101057) 2023-09-28 20:03:18 +02:00
Joost Lekkerkerker ad8033c0f2 Don't show withings repair if it's not in YAML (#101054) 2023-09-28 20:03:15 +02:00
Álvaro Fernández Rojas 081f194f6a Update aioairzone-cloud to v0.2.3 (#101052)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-28 20:03:12 +02:00
Joost Lekkerkerker f13059eaf5 Pin pydantic to 1.10.12 (#101044) 2023-09-28 20:03:08 +02:00
Joost Lekkerkerker 0147108b89 Fix onvif creating a new entity for every new event (#101035)
Use topic value as topic
2023-09-28 20:03:05 +02:00
Jesse Hills ffad30734b ESPHome: dont send error when wake word is aborted (#101032)
* ESPHome dont send error when wake word is aborted

* Add test
2023-09-28 20:03:02 +02:00
Erik Montnemery 5bd306392f Add LED control support to Home Assistant Green (#100922)
* Add LED control support to Home Assistant Green

* Add strings.json

* Sort alphabetically

* Reorder LED schema

* Improve test coverage

* Apply suggestions from code review

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Sort + fix test

* Remove reboot menu

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-09-28 20:02:59 +02:00
Tereza Tomcova d6c42ee8e7 Bump PySwitchbot to 0.40.0 to support Curtain 3 (#100619) 2023-09-28 20:02:55 +02:00
Joost Lekkerkerker 35eaebd182 Add feature to add measuring station via number in waqi (#99992)
* Add feature to add measuring station via number

* Add feature to add measuring station via number

* Add feature to add measuring station via number
2023-09-28 20:02:52 +02:00
tyjtyj 81e8ca130f Fix google maps device_tracker same last seen timestamp (#99963)
* Update device_tracker.py 

This fix the google_maps does not show current location when HA started/restarted and also fix unnecessary update when last_seen timestamp is the same. 
Unnecessary update is causing proximity sensor switching from between stationary and certain direction.

* Remove elif

* Fix Black check

* fix black check

* Update device_tracker.py

Better patch

* Update device_tracker.py

* Update device_tracker.py

Fix Black

* Update device_tracker.py

change warning to debug
2023-09-28 20:02:48 +02:00
lennart24 9ab340047d Add shutter_tilt support for Fibaro FGR 223 (#96283)
* add support for shutter_tilt for Fibaro FGR 223
add tests for fgr 223

* Adjust comments and docstring

---------

Co-authored-by: Lennart <18117505+Ced4@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-28 19:50:52 +02:00
Joost Lekkerkerker f733c43900 Don't show withings repair if it's not in YAML (#101054) 2023-09-28 19:08:26 +02:00
TJ Horner 0a540e1cdb Bump apple_weatherkit to 1.0.4 (#101057) 2023-09-28 19:07:22 +02:00
Michael Hansen f39b2716b0 Remove fma instructions from webrtc-noise-gain (#101060) 2023-09-28 19:07:00 +02:00
Joost Lekkerkerker f255a0e546 Pin pydantic to 1.10.12 (#101044) 2023-09-28 19:06:45 +02:00
Joost Lekkerkerker 3b381f10d3 Bump aiowaqi to 1.1.0 (#99751)
* Bump aiowaqi to 1.1.0

* Fix hassfest

* Fix tests
2023-09-28 18:52:23 +02:00
Erik Montnemery dc78d15abc Add LED control support to Home Assistant Green (#100922)
* Add LED control support to Home Assistant Green

* Add strings.json

* Sort alphabetically

* Reorder LED schema

* Improve test coverage

* Apply suggestions from code review

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Sort + fix test

* Remove reboot menu

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-09-28 17:45:10 +02:00
Álvaro Fernández Rojas d8520088e7 Update aioairzone-cloud to v0.2.3 (#101052)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-28 16:52:16 +02:00
RoboMagus f0ca27fd08 Add reload to rest_command integration (#100511)
* Add YAML reload to rest_command integration

* Add rest_command reload tests

* Fix test coverage

* Remove unnecessary call to keys

Co-authored-by: J. Nick Koston <nick@koston.org>

* Perform cleanup on reload with empty config

* Fix mypy

* Fix ruff

* Update homeassistant/components/rest_command/__init__.py

* Update __init__.py

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-09-28 16:28:38 +02:00
Tereza Tomcova 217a895b5a Bump PySwitchbot to 0.40.0 to support Curtain 3 (#100619) 2023-09-28 13:15:22 +02:00
lennart24 b43262014f Add shutter_tilt support for Fibaro FGR 223 (#96283)
* add support for shutter_tilt for Fibaro FGR 223
add tests for fgr 223

* Adjust comments and docstring

---------

Co-authored-by: Lennart <18117505+Ced4@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-28 12:59:02 +02:00
Joost Lekkerkerker d1f1bdebde Add feature to add measuring station via number in waqi (#99992)
* Add feature to add measuring station via number

* Add feature to add measuring station via number

* Add feature to add measuring station via number
2023-09-28 10:55:48 +02:00
Joost Lekkerkerker 4a73ccb7db Create function to extract onvif message (#101036)
Create extract message function
2023-09-28 10:17:07 +02:00
Álvaro Fernández Rojas 3db7bdc630 Implement Airzone Cloud Group climate support (#101018)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-28 09:26:13 +02:00
Joost Lekkerkerker 089f87c45b Fix onvif creating a new entity for every new event (#101035)
Use topic value as topic
2023-09-28 09:13:33 +02:00
tyjtyj d70cb8caa5 Fix google maps device_tracker same last seen timestamp (#99963)
* Update device_tracker.py 

This fix the google_maps does not show current location when HA started/restarted and also fix unnecessary update when last_seen timestamp is the same. 
Unnecessary update is causing proximity sensor switching from between stationary and certain direction.

* Remove elif

* Fix Black check

* fix black check

* Update device_tracker.py

Better patch

* Update device_tracker.py

* Update device_tracker.py

Fix Black

* Update device_tracker.py

change warning to debug
2023-09-28 08:08:07 +02:00
Artur Pragacz e1771ae01e Fix circular dependancy detection (#100458)
* Fix _async_component_dependencies

Fix bug with circular dependency detection
Fix bug with circular after_dependency detection
Simplify interface and make the code more readable

* Implement review feedback

* Pass all conflicting deps to Exception

* Change inner docstring

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-09-28 08:05:00 +02:00
Jesse Hills d41144ee88 ESPHome: dont send error when wake word is aborted (#101032)
* ESPHome dont send error when wake word is aborted

* Add test
2023-09-27 23:39:57 -04:00
Franck Nijhof f757d4c7da Update py-cpuinfo to 9.0.0 (#101019) 2023-09-27 21:02:47 -04:00
Paulus Schoutsen b02f64196b Bumped version to 2023.10.0b1 2023-09-27 21:00:57 -04:00
Michael Hansen af37de46bd Use webrtc-noise-gain without AVX2 (#101028) 2023-09-27 21:00:50 -04:00
Marc Mueller be93793db9 Update pyweatherflowudp to 1.4.3 (#101022) 2023-09-27 21:00:49 -04:00
J. Nick Koston c287564e68 Fix HomeKit handling of unavailable state (#101021) 2023-09-27 21:00:48 -04:00
Jan Bouwhuis 115c3d6e49 Fix handling reload with invalid mqtt config (#101015)
Fix handling reload whith invalid mqtt config
2023-09-27 21:00:47 -04:00
Marcel van der Veldt 415042f356 Adopt Hue integration to latest changes in Hue firmware (#101001) 2023-09-27 21:00:46 -04:00
steffenrapp dde4b07c29 Add homeassistant reload_all translatable service name and description (#100437)
* Update services.yaml

* Update strings.json

* Update strings.json
2023-09-27 21:00:45 -04:00
Jan-Philipp Benecke 10e8173d4e Restore state of trend sensor (#100332)
* Restoring state of trend sensor

* Handle unknown state & parametrize tests
2023-09-27 21:00:44 -04:00
Franck Nijhof 4f1906ae3e Remove myself from cpuspeed codeowners (#101020) 2023-09-27 21:00:14 -04:00
Jan Bouwhuis dc1d3f727b Fix handling reload with invalid mqtt config (#101015)
Fix handling reload whith invalid mqtt config
2023-09-27 20:59:19 -04:00
Michael Hansen 5fe61ca5e7 Use webrtc-noise-gain without AVX2 (#101028) 2023-09-27 19:55:26 -05:00
Marc Mueller 38984dd939 Update pyweatherflowudp to 1.4.3 (#101022) 2023-09-27 17:58:30 -05:00
Marcel van der Veldt b569cb61e9 Adopt Hue integration to latest changes in Hue firmware (#101001) 2023-09-27 23:36:12 +02:00
J. Nick Koston 7d07694496 Fix HomeKit handling of unavailable state (#101021) 2023-09-27 23:34:25 +02:00
Álvaro Fernández Rojas 6a52283ce0 Implement Airzone Cloud Aidoo climate support (#101011)
* Implement Airzone Cloud Aidoo climate support

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

* airzone_cloud: climate: add entity naming

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-27 20:30:32 +02:00
Rami Mosleh 473d20712c Migrate islamic prayer times sensor unique_id to include entry_id (#100814)
* Migrate sensor unique_id to include entry_id

* Apply suggestion
2023-09-27 20:17:39 +02:00
steffenrapp b3b235cbb7 Add homeassistant reload_all translatable service name and description (#100437)
* Update services.yaml

* Update strings.json

* Update strings.json
2023-09-27 20:16:00 +02:00
Marc Mueller 9fe2c08913 Update astroid to 2.15.8 (#101007) 2023-09-27 20:14:56 +02:00
Franck Nijhof 97f24b855f Bump version to 2023.11.0dev0 (#101013) 2023-09-27 19:03:06 +02:00
Jan-Philipp Benecke c0c02bf6bb Restore state of trend sensor (#100332)
* Restoring state of trend sensor

* Handle unknown state & parametrize tests
2023-09-27 18:28:27 +02:00
Franck Nijhof e7fbd3b54b Bumped version to 2023.10.0b0 2023-09-27 18:14:30 +02:00
Diogo Morgado 4066f657d3 Add "UV Index" to IPMA (#100383)
* Bump pyipma to 3.0.7

* Add uv index sensor to IPMA
2023-09-27 17:45:21 +02:00
Simone Chemelli 5541181969 Address Comelit cover late review (#101008)
address late review
2023-09-27 17:38:14 +02:00
Jeef 577b664c3b Add WeatherFlow integration (#75530)
* merge upstream

* Update homeassistant/components/weatherflow/__init__.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* feat: Removing unused keys

* feat: Addressing PR to remove DEFAULT_HOST from init

* feat: Addressing PR abort case

* feat: Ensure there is a default host always

* feat: Addressing PR comments and fixing entity names via local testing

* feat: Tested units

* feat: updated variable names to hopefully add some clarity to the function

* feat: added more var names for clarity

* feat: Fixed abort

* Update homeassistant/components/weatherflow/__init__.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* feat: Removed an unnecessary line

* feat: Test updates

* feat: Removed unreachable code

* feat: Tons of improvements

* removed debug code

* feat: small tweaks

* feat: Fixed density into HA Compatibility

* feat: Handled the options incorrectly... now fixed

* feat: Handled the options incorrectly... now fixed

* Update homeassistant/components/weatherflow/manifest.json

Co-authored-by: J. Nick Koston <nick@koston.org>

* Cleaned up callback in __init__
Cleaning up config_flow as well

* feat: Cleaned up a stupid test

* feat: Simulating a timeout event

* feat: Triggering timeout in mocking

* feat: trying to pass tests

* refactor: Moved code around so easier to test

* Update homeassistant/components/weatherflow/__init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* feat: Incremental changes moving along well

* feat: Last fix before re-review

* feat: Hopefully the tests shall pass

* feat: Remove domian from unique id

* feat: Fixed entity name

* feat: Removed unneeded lambda - to make thread safe

* Working version...

* working

* working

* feat: Remove tuff

* feat: Removed dual call

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/strings.json

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

* feat: updates based on pr

* feat: removed some self refrences

* feat: Mod RSSI

* feat: Removed the custom Air Density (will add in a later PR)

* feat: Significant cleanup of config flow

* feat: Reworked the configflwo with the help of Joostlek

* feat: Updated test coverage

* feat: Removing bakcing lib attribute

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/sensor.py

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

* feat: Updated translations

* feat: Renamed CUSTOM to VOC

* feat: Extreme simplification of config flow

* feat: Pushing incremental changes

* feat: Fixing test coverage

* feat: Added lambda expressions for attributes and removed the custom AirDensity sensor

* Update homeassistant/components/weatherflow/sensor.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/weatherflow/sensor.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* feat: Removed default lambda expression from raw_data_conv_fn

* feat: Added back default variable for lambda

* feat: Updated tests accordingly

* feat: Updated tests

* made sure to patch correct import

* made sure to patch correct import

* feat: Fixed up tests ... added missing asserts

* feat: Dropped model

* Update homeassistant/components/weatherflow/sensor.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Refactor: Updated code

* refactor: Removed commented code

* feat: close out all tests

* feat: Fixing the patch

* feat: Removed a bunch of stuff

* feat: Cleaning up tests even more

* fixed patch and paramaterized a test

* feat: Addressing most recent comments

* updates help of joostlek

* feat: Updated coverage for const

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/sensor.py

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

* Update homeassistant/components/weatherflow/strings.json

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

* Update homeassistant/components/weatherflow/sensor.py

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

* feat: Addressing more PR issues... probably still a few remain

* using const logger

* Update homeassistant/components/weatherflow/strings.json

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

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-27 17:28:05 +02:00
J. Nick Koston b21451b3d1 Bump dbus-fast to 2.11.0 (#101005) 2023-09-27 10:23:06 -05:00
Álvaro Fernández Rojas 3178eac9cc Implement Airzone Cloud Zone climate support (#100792)
* Implement Airzone Cloud Zone climate support

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

* airzone_cloud: add entity naming

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

* airzone_cloud: implement requested changes

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-27 17:20:21 +02:00
Marc Mueller c59404b5bc Fix additional test cases for Python 3.12 (#101006) 2023-09-27 17:19:20 +02:00
nachonam 9fdc8494b6 Add Freebox Home binary sensors (#92196)
Co-authored-by: Quentame <polletquentin74@me.com>
2023-09-27 17:11:31 +02:00
Joost Lekkerkerker 8b5bfd8cee Add test helper for cloud status updates (#100993)
* Add helper for cloud status updates

* Move import
2023-09-27 17:08:51 +02:00
Joost Lekkerkerker 25a80cd46f Add config flow to Twitch (#93451)
* Update twitch API

* Update twitchAPI

* Add tests

* Apply suggestions from code review

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

* Update sensor.py

* Update sensor.py

* Update sensor.py

* Update sensor.py

* Update sensor.py

* Fix coverage

* Move Twitch constants to separate file

* Move Twitch constants to separate file

* Move Twitch constants to separate file

* Add application credentials

* Add config flow

* Try to add tests

* Add strings

* Add tests

* Add tests

* Improve tests

* Fix tests

* Extract Twitch client creation

* Fix reauth

* Remove import flow

* Remove import flow

* Remove reauth

* Update

* Fix Ruff

* Fix feedback

* Add strings

* Add reauth

* Do stuff in init

* Fix stuff

* Fix stuff

* Fix stuff

* Fix stuff

* Fix stuff

* Start with tests

* Test coverage

* Test coverage

* Remove strings

* Cleanup

* Fix feedback

* Fix feedback

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-09-27 15:45:52 +02:00
amitfin 91fcbb41b0 Skip timestamp check of the SIA events (#100660) 2023-09-27 15:13:38 +02:00
Luke Lashley 92694c53e0 Increase MyQ update interval (#100977) 2023-09-27 15:02:19 +02:00
Joost Lekkerkerker 7cb555739f Exclude manifest files from youtube media extraction (#100771)
* Exclude manifest files from youtube media extraction

* Simplify

* Fix
2023-09-27 14:48:03 +02:00
Joost Lekkerkerker 03827bda1e Use async_at_started in Withings (#100994)
* Use async_at_started in Withings

* Make nice
2023-09-27 14:13:11 +02:00
Erik Montnemery f232ddb85e Bump py-dormakaba-dkey to 1.0.5 (#100992) 2023-09-27 13:57:28 +02:00
Jan-Philipp Benecke 96151e7faa Use local time instead of UTC time as default backup filenames (#100959)
Use local time instead of UTC for the backup name
2023-09-27 13:32:30 +02:00
Robert Svensson 01b5854968 Rework UniFi websocket (#100614)
* Rework websocket management

* remove unnecessary fixture

* Remove controller from mock_unifi_websocket

* Mock api.login in reconnect method

* Remove unnecessary edits

* Minor clean up

* Bump aiounifi to v63

* Wait on task cancellation
2023-09-27 10:56:24 +02:00
Jan-Philipp Benecke 134c005168 Add typing to poolsense (#100984) 2023-09-27 10:14:51 +02:00
G Johansson 43954d660b Add trigger weather template (#100824)
* Add trigger weather template

* Add tests

* mod dataclass

* Remove legacy forecast

* Fix test failure

* sorting

* add hourly test

* Add tests

* Add and fix tests

* Improve tests

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-09-27 10:11:57 +02:00
Joost Lekkerkerker fd53e116bb Add config flow to color extractor (#100862) 2023-09-27 10:11:42 +02:00
Jan Bouwhuis 0f38cd5794 Allow to reset an mqtt lock to an unknown state (#100985) 2023-09-27 09:50:01 +02:00
Joost Lekkerkerker d2bcf88bbf Set device name as entity name for Comelit lights (#100986)
Fix entity name for Comelit lights
2023-09-27 09:39:57 +02:00
Marty Sun 4788dd2905 Add "start_irrigation" service for Yardian (#100257)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-27 08:59:15 +02:00
Simone Chemelli d70308ae9f Add cover support to Comelit (#100904)
* add cover support to Comelit

* coveragerc

* Update homeassistant/components/comelit/cover.py

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

* Update homeassistant/components/comelit/cover.py

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

* Update homeassistant/components/comelit/cover.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-27 08:56:38 +02:00
Simone Chemelli db5943ad6d Improve Comelit login with PIN (#100860)
* improve login

* library bump
2023-09-27 08:52:46 +02:00
Franck Nijhof 0afb060c24 Merge branch 'master' into dev 2023-09-27 08:51:27 +02:00
Joost Lekkerkerker e5567c09b9 Deprecate Withings YAML (#100967) 2023-09-27 08:33:43 +02:00
Raman Gupta 70e3da207a Automatically enable/disable zwave_js server logging in lib (#100837)
* Bump zwave-js-server-python to 0.52.0

* Add WS command to enabled zwave_js server logging in lib

* enable and disable server logging automatically

* fix conditionals

* fix tests

* Add logging

* small tweaks

* Add logger as a dependency

* fix test

* Prepare for movement of event constant

* Add constant so tests pass
2023-09-27 01:17:52 -04:00
Raman Gupta 067b94899f Move EVENT_LOGGING_CHANGED to constants (#100974)
* Move EVENT_LOGGING_CHANGED to constants

* fix test

* remove logger as dependency for bluetooth and fix test
2023-09-27 01:06:14 -04:00
Jan-Philipp Benecke 009349acf0 Move poolsense base entity to its own file (#100981) 2023-09-27 07:04:20 +02:00
puddly 4e4d4992bf Bump ZHA dependencies (#100979) 2023-09-26 23:39:07 -05:00
TheJulianJES 93e2d4b74c Bump zha-quirks to 0.0.104 (#100975) 2023-09-26 23:20:23 -04:00
Michael Hansen af8367a8c6 Send Wyoming Detect message during wake word detection (#100968)
* Send Detect message with desired wake word

* Add tests

* Fix test
2023-09-26 19:24:02 -05:00
Bram Kragten 9b574fd2c9 Update frontend to 20230926.0 (#100969) 2023-09-26 19:24:42 -04:00
Raman Gupta 65f307fe9c Add endpoint to zwave_js_notification event (#100951) 2023-09-26 18:48:59 -04:00
Michael Hansen 8a9b2f4515 Bump to webrtc-noise-gain 1.2.1 for 32-bit builds (#100942)
* Bump to 1.2.0 for 32-bit builds

* Bugfix with 1.2.1
2023-09-26 17:14:48 -05:00
Simone Chemelli b617451a25 Add button platform to Vodafone Station (#100941)
* button platform initial commit

* fix is_suitable

* cleanup

* coveragerc

* add translations

* remove redundant key
2023-09-27 00:09:42 +02:00
Steven Looman ad17f1622c Bump async-upnp-client to 0.36.1 (#100961) 2023-09-26 16:32:37 -05:00
Jan-Philipp Benecke eab428f0e2 Move poolsense coordinator to its own file (#100964) 2023-09-26 23:28:25 +02:00
Jesse Hills 4c21aa18db Add audio_settings for pipeline from ESPHome device (#100894)
* Add audio_settings for pipeline from ESPHome device

* ruff fixes

* Bump aioesphomeapi 17.0.0

* Mypy

* Fix tests

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-09-26 16:27:26 -05:00
Michael Hammer f899e5159b KNX: Provide project data and parser version via websocket (#100676)
* feat(knxproject-explore): providing knxproject via websocket, also xknxproject version in info mesage

* feat(knxproject-explore): adding test case

* reverted back adding of xknxproject version

* fix(): Enriching get project test case to check against FIXTURE

* feat(knxproject-explore): providing knxproject via websocket, also xknxproject version in info mesage

* feat(knxproject-explore): adding test case

* reverted back adding of xknxproject version

* fix(): Enriching get project test case to check against FIXTURE
2023-09-26 23:17:37 +02:00
Raman Gupta 176f5dc2d6 Bump zwave-js-server-python to 0.52.0 (#100833)
* Bump zwave-js-server-python to 0.52.0

* remove old function

* fix tests
2023-09-26 17:05:54 -04:00
Jan Bouwhuis 59a26010ba Cleanup redundant mqtt entity constructors (#100939)
* Remove redundant mqtt entity constructors

* Remove unrelated change

* Follow up comment

* Revert changes to mqtt update platform

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-26 23:03:11 +02:00
Jan-Philipp Benecke d387308f3c Move motion blinds coordinator to its own file (#100952) 2023-09-26 22:50:46 +02:00
Jan Bouwhuis 8ec11910af Allow discovery config update mqtt update entities (#100957) 2023-09-26 15:21:27 -05:00
Joost Lekkerkerker 0f95de997f Support cloudhooks in Withings (#100916)
* Support cloudhooks in Withings

* Support cloudhooks in Withings

* Support cloudhooks in Withings

* Remove strings
2023-09-26 21:52:18 +02:00
Luke Lashley 42b006a108 Update MyQ to use python-myq 3.1.9 (#100949) 2023-09-26 14:48:36 -05:00
Erik Montnemery b281fa17fc Simplify wake_word/info + improve test coverage (#100902)
* Simplify wake_word/info + improve test coverage

* Fix test

* Revert unrelated changes
2023-09-26 14:07:27 -05:00
Edouard Lafargue 4028596977 Add Medcom Bluetooth integration (#100289)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-26 13:41:34 -05:00
Simone Chemelli 60dd5f1d50 Bump aiovodafone to 0.3.1 (#100944) 2023-09-26 20:27:34 +02:00
Erik Montnemery a9bcfe5700 Abort wake word detection when assist pipeline is modified (#100918) 2023-09-26 20:24:55 +02:00
Jan Bouwhuis 9254eea9e2 Remove unused attribute for MQTT lawn_mower (#100946)
Remove unused attributes for MQTT lawn_mower
2023-09-26 20:18:52 +02:00
Simone Chemelli e18ff03244 Improve Vodafone Station setup dialog messages (#100937) 2023-09-26 20:16:50 +02:00
Jan Bouwhuis 4d7e3d2b0f Remove redundant initial assigment for mqtt siren (#100945) 2023-09-26 20:07:54 +02:00
Olen e921e4a662 Move fetching of sw_version for Twinkly (#100286) 2023-09-26 20:04:17 +02:00
Joost Lekkerkerker c7e4604cfd Call async added to hass super in Airvisual (#100449) 2023-09-26 20:03:44 +02:00
Jan-Philipp Benecke d94b09655b Use snapshot assertion for wiz diagnostics test (#99154) 2023-09-26 20:03:22 +02:00
Joost Lekkerkerker bdfdeb2bc0 Call async added to hass super in Risco (#100444) 2023-09-26 20:02:00 +02:00
Joost Lekkerkerker ae7ede1253 Call async added to hass super in Smart Meter Texas (#100445) 2023-09-26 20:01:33 +02:00
Joost Lekkerkerker 9be5005a70 Use automatic title during config flow setup in Aurora (#99199) 2023-09-26 20:00:23 +02:00
Joost Lekkerkerker bc665a1368 Remove setting name in AnthemAV config flow (#99148) 2023-09-26 19:58:47 +02:00
Jan Bouwhuis 20a2e129fb Intialize mqtt lock in an unknown state in pessimistic mode (#100943)
Intialize mqtt lock as unknown in pessimistic mode
2023-09-26 19:53:45 +02:00
Erik Montnemery 734c4e8e32 Rename WakeWord.ww_id to WakeWord.id (#100903)
* Rename WakeWord.ww_id to WakeWord.wake_word_id

* Revert unrelated changes

* Rename to id

* Correct rebase
2023-09-26 19:12:16 +02:00
Joost Lekkerkerker 074eb966dd Add config flow to AfterShip (#100872)
* Add config flow to Aftership

* Add config flow to Aftership

* Fix schema

* Update homeassistant/components/aftership/strings.json

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

* Fix feedback

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-26 18:05:23 +02:00
Michael 18fad569e0 Add support to remove orphan devices in AVM FRITZ!SmartHome (#100739) 2023-09-26 18:01:01 +02:00
Bram Kragten 82fdd8313f Update frontend manifest for new icons (#100936) 2023-09-26 17:53:26 +02:00
Joost Lekkerkerker 59207be5f8 Add body_exists to MockRequest in aiohttp util (#100932)
* Add body_exists to MockRequest in aiohttp util

* Add body_exists to MockRequest in aiohttp util

* Add body_exists to MockRequest in aiohttp util
2023-09-26 17:52:29 +02:00
Rami Mosleh 785b46af22 Add re-auth flow to glances integration (#100929)
* Add reauth flow to glances integration.

* add reauth string

* add reauth strings
2023-09-26 17:46:12 +02:00
Erik Montnemery c823e407fd Tweak test wake_word.test_init.test_detected_entity (#100910) 2023-09-26 10:42:08 -05:00
J. Nick Koston 6551e52225 Bump zeroconf to 0.115.0 (#100931) 2023-09-26 10:08:27 -05:00
J. Nick Koston c9a55c7f84 Cache the latest short term stat id for each metadata_id on each run (#100535) 2023-09-26 09:57:59 -05:00
J. Nick Koston 4b39bf7e5b Small cleanup to isy994 extra_state_attributes (#100935) 2023-09-26 09:57:25 -05:00
Allen Porter 822251a642 Update fitbit client to use asyncio (#100933) 2023-09-26 07:50:42 -07:00
Erik Montnemery bd40cbcb21 Tweak pipeline.multiply_volume (#100905) 2023-09-26 09:19:57 -05:00
Rami Mosleh 31e9ca0099 Handle authorization error in glances config flow (#100866)
* Handle authroization error in glances config flow

* Remove validate_input method and expections

* update tests
2023-09-26 14:51:04 +02:00
Joost Lekkerkerker 91bc65be9c Add entity translations to SRP Energy (#99011) 2023-09-26 14:47:19 +02:00
David Knowles 73cfe659ea Make Hydrawise compliant with new naming standards (#100921)
* Make Hydrawise compliant with new naming standards

* Update binary_sensor.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-26 14:34:43 +02:00
Álvaro Fernández Rojas 29da43b9a9 Bump aioairzone-cloud to 0.2.2 (#100915)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-26 14:04:50 +02:00
steffenrapp 2165f0a538 Add missing input_button service translation (#100387) 2023-09-26 13:58:58 +02:00
Joost Lekkerkerker 4ffac3e7ed Cleanup Withings const import (#100914) 2023-09-26 13:16:37 +02:00
Marc Mueller bd7a86a0a6 Remove async-timeout as core dependency (#100912) 2023-09-26 05:57:10 -05:00
Erik Montnemery 4df14b2625 Remove duplicated call to PipelineRun.end from PipelineInput.execute (#100909)
Remove duplicated call to PipelineRun.end from PipelineInput.execute
2023-09-26 12:38:25 +02:00
Dennis e5a151c4c3 Add state classes to Tomorrowio sensors (#100692) 2023-09-26 12:33:39 +02:00
J. Nick Koston 667f4b1ca8 Mark Bluetooth scanner as not scanning when watchdog timeout is reached (#100738) 2023-09-26 05:29:46 -05:00
Marc Mueller f837e6722c Update cryptography to 41.0.4 (#100911) 2023-09-26 05:27:56 -05:00
Joost Lekkerkerker f21d924dd5 Add entity translations to Wallbox (#99021)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-26 11:41:40 +02:00
Erik Montnemery 1e76d37cee Rename PipelineData.pipeline_runs to pipeline_debug (#100907) 2023-09-26 11:35:51 +02:00
Joost Lekkerkerker b0a7e68984 Rename Withings coordinator file (#100899)
Rename common.py to coordinator.py
2023-09-26 10:59:45 +02:00
Maikel Punie 249e20f8e5 Bump pyduotecno to 2023.9.0 (#100900) 2023-09-26 10:57:13 +02:00
Joost Lekkerkerker 4f63c7934b Add coordinator to Withings (#100378)
* Add coordinator to Withings

* Add coordinator to Withings

* Fix tests

* Remove common files

* Fix tests

* Fix tests

* Rename to Entity

* Fix

* Rename webhook handler

* Fix

* Fix external url

* Update homeassistant/components/withings/entity.py

Co-authored-by: Luke Lashley <conway220@gmail.com>

* Update homeassistant/components/withings/entity.py

Co-authored-by: Luke Lashley <conway220@gmail.com>

* Update homeassistant/components/withings/entity.py

Co-authored-by: Luke Lashley <conway220@gmail.com>

* Update homeassistant/components/withings/entity.py

Co-authored-by: Luke Lashley <conway220@gmail.com>

* fix imports

* Simplify

* Simplify

* Fix feedback

* Test if this makes changes clearer

* Test if this makes changes clearer

* Fix tests

* Remove name

* Fix feedback

---------

Co-authored-by: Luke Lashley <conway220@gmail.com>
2023-09-26 09:17:11 +02:00
David Knowles 8ba6fd7935 Add device info to Hydrawise (#100828)
* Add device info to Hydrawise

* Apply suggestions from code review

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

* Remove _attr_has_entity_name

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-26 09:15:20 +02:00
G Johansson 7b1b189f3e Add date range to Workday (#96255) 2023-09-26 08:21:36 +02:00
Jan-Philipp Benecke 9c1944f830 Enable strict typing in london underground (#100563)
* Enable strict typing in london underground

* Change typing from Any

* Remove redundant cast

* Change from Mapping to dict
2023-09-26 08:13:59 +02:00
Paulus Schoutsen c5c5d9ed0c Allow fetching wake word entity info (#100893) 2023-09-25 21:33:04 -05:00
Allen Porter fa2d77407a Add Rain Bird irrigation calendar (#87604)
* Initial version of a calendar for the rainbird integration

* Improve calendar support

* Revert changes to test fixtures

* Address ruff error

* Fix background task scheduling

* Use pytest.mark.freezetime to move to test setup

* Address PR feedback

* Make refresh a member

* Merge rainbird and calendar changes

* Increase test coverage

* Readability improvements

* Simplify timezone handling
2023-09-25 20:27:38 -04:00
Allen Porter 18f29993c5 Simplify fitbit unit system and conversions (#100825)
* Simplify fitbit unit conversions

* Use enum values in unit system schema

* Use fitbit unit system enums
2023-09-25 20:08:59 -04:00
Michael Hansen 785618909a Use webrtc-noise-gain for audio enhancement in Assist pipelines (#100698)
* Use webrtc-noise-gain instead of webrtcvad package

* Switching to ProcessedAudioChunk

* Refactor VAD and fix tests

* Add vad no chunking test

* Add test that runs audio enhancements
2023-09-25 20:03:50 -04:00
Jan Bouwhuis a4f7f3ba7e Make sure time is changed in mqtt event test (#100889) 2023-09-26 00:32:12 +02:00
Jc2k 9fe6cd61df Bump aiohomekit to 3.0.5 (#100886) 2023-09-25 23:08:38 +01:00
Jc2k cae19431d1 Simplify homekit_controller tests with snapshots (#100885) 2023-09-25 16:26:27 -05:00
Jan Bouwhuis c5b32d6307 Add doorbell event to google_assistant (#97123)
* First attempt async_report_state_all

* Move notificationSupportedByAgent to SYNC response

* Make notificationSupportedByAgent conditional

* Add generic sync_options method

* Report event

* Add event_type as ID

* User UUID, imlement query_notifications

* Refactor query_notifications

* Add test

* MyPy

* Unreachable code

* Tweak

* Correct notification message

* Timestamp was wrong unit, it should be in seconds
* Can only allow doorbell class, since it's the only type

* Fix test

* Remove unrelated changes - improve coverage

* Additional tests

---------

Co-authored-by: Joakim Plate <elupus@ecce.se>
2023-09-25 23:20:02 +02:00
J. Nick Koston 6387263007 Bump async-upnp-client to 0.36.0 (#100881) 2023-09-25 16:19:40 -05:00
J. Nick Koston d5c22bec82 Bump zeroconf to 0.114.0 (#100880) 2023-09-25 16:19:24 -05:00
J. Nick Koston dbdc513aa5 Bump dbus-fast to 2.10.0 (#100879) 2023-09-25 16:19:03 -05:00
Joost Lekkerkerker 15f40f2c5a Bump yt-dlp to 2023.9.24 (#100884) 2023-09-25 23:06:48 +02:00
Jan Bouwhuis 90bf20c6f8 Add type hints for intent_script integration (#99393)
* Add type hints for intent_script integration

* Correct 2nd typo

* omit total=False as all options are set
2023-09-25 23:01:53 +02:00
Jan Bouwhuis 60b8775f4a Avoid redundant calls to async_write_ha_state in mqtt siren (#100813)
* Avoid redundant calls to async_write_ha_state

* Add comment
2023-09-25 22:36:13 +02:00
Jan-Philipp Benecke 2eefd21dcc Parametrize more co2signal config flow tests (#100882)
* Clean up co2signal tests

* Some more clean up

* Use named parameter ids of parametrize
2023-09-25 22:21:40 +02:00
Jan Bouwhuis a242a1c107 Add tests for mqtt image (#100793)
* Rework mqtt image writing state

* Revert mixin changes, add attr

* Revert code changes
2023-09-25 22:20:32 +02:00
Jan Bouwhuis 7258bc6457 Avoid redundant calls to async_write_ha_state in mqtt vacuum (#100799)
* Avoid redundant calls to async_write_ha_state

* Add comment

* Rephrase
2023-09-25 22:17:29 +02:00
J. Nick Koston 969d6b852e Bump led-ble to 1.0.1 (#100873) 2023-09-25 14:34:02 -05:00
Jan-Philipp Benecke b9a3863645 Handle json decode exception in co2signal (#100857)
* Handle json decode exception in co2signal

* Update homeassistant/components/co2signal/coordinator.py

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

* Fix import

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-25 21:21:01 +02:00
Jan Bouwhuis ea1108503d Rework and fix mqtt siren writing state and attributes (#100871)
Rework mqtt siren writing state and attributes
2023-09-25 21:08:14 +02:00
Erik Montnemery d76c5ed351 Use wake word settings in assist pipeline runs (#100864) 2023-09-25 12:58:10 -04:00
Marc Mueller 11e8bf0b9c Update types packages (#100850) 2023-09-25 18:53:22 +02:00
Jan Bouwhuis 30c7e7fbdf Avoid redundant calls to async_ha_write_state mqtt update platform (#100819)
Avoid redundant calls to async_ha_write_state
2023-09-25 18:08:02 +02:00
Jan Bouwhuis cd3d3b76a3 Avoid redundant calls to async_ha_write_state in mqtt text (#100816)
Avoid redundant calls to async_ha_write_state
2023-09-25 18:07:24 +02:00
Jan Bouwhuis 8d10cdce4e Avoid redundant calls to async_ha_write_state in mqtt switch (#100815)
Avoid redundant calls to async_ha_write_state
2023-09-25 18:06:19 +02:00
Jan Bouwhuis 33d45b3454 Avoid redundant calls to async_write_ha_state in mqtt select (#100809)
Avoid redundant calls to async_write_ha_state
2023-09-25 18:05:42 +02:00
Jan Bouwhuis 180f248370 Avoid redundant calls to async_write_ha_state in mqtt number (#100808)
Avoid redundant calls to async_write_ha_state
2023-09-25 18:05:14 +02:00
Jan Bouwhuis 98cc2e8098 Avoid redundant calls to async_write_ha_state in mqtt lock (#100802)
Avoid redundant calls to async_write_ha_state
2023-09-25 18:04:33 +02:00
Jan Bouwhuis ce02cbefc9 Avoid redundant calls to async_write_ha_state in mqtt lawn_mower (#100795)
Avoid redundant calls to async_write_ha_state
2023-09-25 18:03:52 +02:00
Jc2k 014fb61743 Fix missing device class on Velux Windows (#100863) 2023-09-25 11:03:11 -05:00
Jan Bouwhuis 002be37257 Rework and added tests for mqtt event (#100769)
Use write_state_on_attr_change and add tests
2023-09-25 18:02:17 +02:00
Jan Bouwhuis f83a597603 Avoid redundant calls to async_write_ha_state in mqtt humidifier (#100781)
Avoid redundant calls to async_write_ha_state
2023-09-25 18:00:08 +02:00
Jan Bouwhuis 3da4815522 Avoid redundant calls to async_write_ha_state for mqtt fan (#100777)
Avoid redundant calls to async_write_ha_state
2023-09-25 17:59:33 +02:00
elmurato 84451e858e Simplify Minecraft Server SRV handling (#100726) 2023-09-25 17:56:26 +02:00
Erik Montnemery 803d24ad1a Rename wake_word.async_default_engine to wake_word.async_default_entity (#100855)
* Rename wake_word.async_default_engine to wake_word.async_default_entity

* tweak

* Some more rename

* Update tests
2023-09-25 17:08:37 +02:00
Jc2k 8ed0f05270 Add duration and sensitivity configuration for Eve Motion (#100861) 2023-09-25 09:52:27 -05:00
J. Nick Koston 4c255677c3 Add support for receivers to HomeKit (#100717) 2023-09-25 09:36:01 -05:00
J. Nick Koston c1b9400833 Provide a better model for HomeKit service entries (#100848) 2023-09-25 09:34:53 -05:00
Jc2k fb174f8063 Add valve position sensor for Eve Thermo (#100856) 2023-09-25 09:27:18 -05:00
Marc Mueller dd302b291d Update pylint to 2.17.6 (#100849) 2023-09-25 09:14:07 -05:00
Erik Montnemery 5a3efb9149 Store wakeword settings in assist pipelines (#100847)
* Store wakeword settings in assist pipelines

* wakeword -> wake_word

* Remove unneeded variable
2023-09-25 16:07:26 +02:00
Jc2k 7334bc7c9b Add a select entity for homekit temperature display units (#100853) 2023-09-25 08:53:01 -05:00
Paulus Schoutsen 23b239ba77 Allow passing a wake word ID to detect wake word (#100832)
* Allow passing a wake word ID to detect wake word

* Do not inject default wake words in wake_word integration
2023-09-25 15:33:54 +02:00
Maikel Punie 8a44adb447 Add binary sensors for duotecno (#100844)
* Add binary sensors for duotecno

* Add comments
2023-09-25 13:34:39 +02:00
Kevin Worrel 77007ef091 Explicitly define ScreenLogic entity descriptions (#100173) 2023-09-25 06:26:26 -05:00
Alex Yao 2ae07096d2 Address late review on Life360 button (#100740) 2023-09-25 06:09:16 -05:00
Maikel Punie 19854ded16 Add duotecno climate (#99333)
* Add duotecno climate

* Add climate to .coveragerc

* Update homeassistant/components/duotecno/climate.py

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

* Update homeassistant/components/duotecno/climate.py

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

* more comments

* more comments

* more comments

* more comments

* fix typo

* Add translation key

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-25 12:52:51 +02:00
dependabot[bot] 2a443648fc Bump actions/checkout from 4.0.0 to 4.1.0 (#100836)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 11:01:12 +02:00
G Johansson 8d50be379c Create repairs in Workday if country or province is wrong (#98753)
* Repairs workday

* fix if not province exist

* Tests repairs

* Add tests

* Finalize tests

* Fix feedback

* simplify

* Less translations
2023-09-25 08:59:15 +02:00
G Johansson c414e52b55 Change duration for timer.start service to only change running duration (#99628)
* Get back duration for timer

* running duration

* Mods

* Finish

* Fix start call

* remove restore idle

* running duration not None

* fix tests
2023-09-25 08:57:02 +02:00
J. Nick Koston 6b19602322 Bump aioesphomeapi to 16.0.6 (#100826)
changelog: https://github.com/esphome/aioesphomeapi/compare/v16.0.5...v16.0.6
2023-09-25 07:22:42 +02:00
Aaron Bach 7a6f337b01 Add missing SimpliSafe binary sensors (#100820) 2023-09-24 15:17:45 -06:00
Daniel Trnka 09729e8c46 Add Mysensors battery sensor (#100749)
* Move child related stuff to MySensorsChildEntity

* Dispatch signal for newly discovered MySensors node

* Create battery entity for each MySensors node

* Removed ATTR_BATTERY_LEVEL attribute from each node sensor

Attribute is redundant with newly introduced battery sensor entity

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-24 22:50:13 +02:00
Nathan Spencer 6d624ecb46 Bump pylitterbot to 2023.4.8 (#100811) 2023-09-24 22:46:43 +02:00
Allen Porter 66ebb479ea Rewrite fitbit sensor API response value parsing (#100782)
* Cleanup fitbit sensor API parsing

* Remove API code that is not used yet

* Remove dead code for battery levels

Small API parsing cleanup

* Address PR feedback

* Update homeassistant/components/fitbit/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-24 22:37:48 +02:00
Álvaro Fernández Rojas 5549f697cf Update AEMET-OpenData to v0.4.5 (#100818)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-24 22:18:31 +02:00
J. Nick Koston b9e8566608 Bump bluetooth-data-tools to 0.12.0 (#100794) 2023-09-24 20:29:29 +02:00
Jc2k 0c89f5953f Preserve private ble device broadcast interval when MAC address rotates (#100796) 2023-09-24 19:24:12 +01:00
Franck Nijhof 0cbd46592a 2023.9.3 (#100755) 2023-09-24 18:58:43 +02:00
Scott Colby 49715f300a Allow workday sensor to be configured without a country (#93048)
* Merge branch 'dev' into workday_without_country

* ruff

* remove province check

* Remove not needed test

* Mod config flow

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-09-24 16:13:45 +02:00
Simone Chemelli 49b8937bb3 Fix Comelit device info (#100587) 2023-09-24 14:54:10 +02:00
Simone Chemelli b19a0fb2e9 Fix Comelit device info (#100587) 2023-09-24 14:51:56 +02:00
Franck Nijhof 0ae285c404 Update home-assistant/builder to 2023.09.0 (#100797) 2023-09-24 14:50:50 +02:00
G Johansson f22ecf2a09 Add strong to fan mode for Sensibo (#100773) 2023-09-24 14:50:47 +02:00
David Knowles 0eac0bb3c5 Bump pyschlage to 2023.9.1 (#100760) 2023-09-24 14:50:43 +02:00
David Knowles 25cb835faf Bump pyschlage to 2023.9.0 (#99624) 2023-09-24 14:50:38 +02:00
Franck Nijhof 4fb482610b Update home-assistant/wheels to 2023.09.1 (#100758)
* Update home-assistant/wheels to 2023.09.0

* Update home-assistant/wheels to 2023.09.1
2023-09-24 14:48:24 +02:00
sdb9696 1779222062 Bump ring-doorbell to 0.7.3 (#100688)
Bump ring to 0.7.3
2023-09-24 14:48:20 +02:00
Allen Porter caacdabd3d Fix rainbird unique id (#99704)
* Don't set a unique id for devices with no serial

* Add additional check for the same config entry host/port when there is no serial

* Update homeassistant/components/rainbird/config_flow.py

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

* Update tests/components/rainbird/test_config_flow.py

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

* Update tests/components/rainbird/test_config_flow.py

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

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-24 14:48:17 +02:00
Erik Montnemery 0dc21504f5 Remove support for excluding attributes in recorder platforms (#100679) 2023-09-24 14:45:06 +02:00
Franck Nijhof 1b1901cb6d Update home-assistant/builder to 2023.09.0 (#100797) 2023-09-24 14:36:02 +02:00
Jan Bouwhuis edb28be964 Avoid redundant calls to async_write_ha_state in mqtt device_tracker (#100767)
Avoid redundant calls to async_ha_write_state
2023-09-24 12:52:13 +02:00
Jc2k f0375eb97e Expose bluetooth availability tracking interval controls to integrations (#100774) 2023-09-24 10:45:25 +02:00
AtomBrake eb020dd66c Update powerwall password description (#100389)
Update strings.json

Updated wording of how to find password on newer model gateways
2023-09-24 08:02:48 +02:00
Nathan Tilley d453f3809c Clean up FAA Delays constants (#100788)
Move const to platform
2023-09-24 07:02:34 +02:00
Allen Porter ae29ddee74 Add more test coverage for fitbit sensors (#100776) 2023-09-23 15:38:53 -07:00
Nathan Tilley 451c085587 Bump faadelays to 2023.8.0 (#100700)
* Update component to use new API version

* Revert new features, implement #95546, bump library

* Revert #95546 changes, remove NOTAM
2023-09-24 00:06:49 +02:00
David Knowles f8a8fe760d Add config flow to Hydrawise (#95589)
* Add config flow to Hydrawise

* Raise an issue when a YAML config is detected

* Add a test for YAML import

* Add missing __init__.py

* Update CODEOWNERS

* Update requirements_test_all.txt

* Add config flow data to strings.json

* Hande scan_interval not being in YAML on import

* Fix requirements

* Update deprecation dates

* Update requirements_test_all.txt

* Changes from review

* Update homeassistant/components/hydrawise/__init__.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Add already_configured to strings.json

* Add back setup_platform functions

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Add back setup_platform

* Update requirements_test_all.txt

* Run black on hydrawise/*.py

* Add missing import of HOMEASSISTANT_DOMAIN

* Use more specific errors in config flow

* Add additional tests

* Update config flow to use pydrawise.legacy

* Re-work YAML deprecation issues

* Revert some changes to binary_sensor, as requested in review

* Changes requested during review

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Remove unused STE_USER_DATA_SCHEMA

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update comment in setup_platform

* Re-work the config flow again

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update tests

* Add back the _default_watering_timer attribute

* Bump deprecation dates

* Update requirements_test_all.txt

* Update CODEOWNERS

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-24 00:03:07 +02:00
G Johansson 28dc17c0b3 Refactor Sensibo tests to use snapshot (#100775) 2023-09-23 23:37:02 +02:00
Allen Porter 8d8c7187d3 Fix rainbird unique id (#99704)
* Don't set a unique id for devices with no serial

* Add additional check for the same config entry host/port when there is no serial

* Update homeassistant/components/rainbird/config_flow.py

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

* Update tests/components/rainbird/test_config_flow.py

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

* Update tests/components/rainbird/test_config_flow.py

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

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-23 23:14:57 +02:00
G Johansson 1f66fc013c Add strong to fan mode for Sensibo (#100773) 2023-09-23 23:08:07 +02:00
G Johansson 06ade74711 Bump pysensibo 1.0.35 (#100245)
* Bump pysensibo 1.0.34

* 1.0.35

* Mod tests

* revert refactoring

* Fix tests
2023-09-23 23:01:08 +02:00
Joost Lekkerkerker 4a86892d82 Fix fitbit test code owner (#100772) 2023-09-23 13:49:08 -07:00
sdb9696 1fce60bd6f Bump ring-doorbell to 0.7.3 (#100688)
Bump ring to 0.7.3
2023-09-23 21:21:34 +02:00
Joost Lekkerkerker ba6a92756a Call async added to hass super in Flo (#100453) 2023-09-23 12:05:53 -07:00
Allen Porter 781bc5b3bc Add tests for fitbit integration (#100765)
* Add tests for fitbit integration

* Update coveragerc

* Update test requirements
2023-09-23 12:04:44 -07:00
Joost Lekkerkerker 71aef4e95a Add media extractor tests (#100462)
* Add tests for media extractor

* Complete test coverage

* Fix test dep
2023-09-23 12:04:29 -07:00
David Knowles a826f26642 Bump pyschlage to 2023.9.1 (#100760) 2023-09-23 20:37:57 +02:00
Allen Porter d833c1a598 Add myself as a fitbit codeowner (#100766) 2023-09-23 20:32:52 +02:00
rappenze a2730fb29d Fibaro finish separation of scenes (#100734) 2023-09-23 19:13:03 +02:00
Jan Bouwhuis 14b39c3bcf Correct some typo's in MQTT issue string (#100759) 2023-09-23 19:05:52 +02:00
Franck Nijhof 6383cafeb9 Update home-assistant/wheels to 2023.09.1 (#100758)
* Update home-assistant/wheels to 2023.09.0

* Update home-assistant/wheels to 2023.09.1
2023-09-23 17:38:21 +02:00
Maciej Bieniek 5c5dff034c Add event platform for Shelly gen1 devices (#100655)
* Initial commit

* Use description.key

* Add translations

* Check event_types

* Rename input_id to channel

* Fix removeal confition

* Add tests

* Sort classes and consts

* Use ShellyBlockEntity class

* Update tests

* Update homeassistant/components/shelly/event.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2023-09-23 16:03:57 +02:00
Franck Nijhof 527c7b21fd Bumped version to 2023.9.3 2023-09-23 13:47:05 +02:00
G Johansson ce8062041f Fix weather template forecast attributes (#100748) 2023-09-23 13:46:00 +02:00
Michael Hansen 862a26afad Bump intents to 2023.9.22 (#100737) 2023-09-23 13:45:57 +02:00
puddly c07a112601 Bump ZHA dependencies (#100732) 2023-09-23 13:45:53 +02:00
Erik Montnemery 88f379d08f Fix handling of unit system change in sensor (#100715) 2023-09-23 13:45:50 +02:00
Simone Chemelli bb8850e8cf Bump aiocomelit to 0.0.8 (#100714)
* Bump aiocomelit to 0.0.8

* fix import

* fix tests
2023-09-23 13:45:47 +02:00
Jan Bouwhuis 556e40add5 Fix mqtt light rgbww update without state topic (#100707)
* Fix mqtt light rgbww update without state topic

* Add @callback decprator and correct mired conv
2023-09-23 13:45:44 +02:00
Raman Gupta 161e9d10bd Bump zwave-js-server-python to 0.51.3 (#100665) 2023-09-23 13:45:40 +02:00
Luke Lashley fae063086c Bump python-roborock to 0.34.1 (#100652)
bump to 34.1
2023-09-23 13:45:37 +02:00
Robin Li 4f4f6c92d3 Fix ecobee aux_heat_off always returns to HEAT (#100630) 2023-09-23 13:45:34 +02:00
Raman Gupta 08f46ad61f Adjust hassfest.manifest based on config.action (#100577) 2023-09-23 13:45:31 +02:00
Luke Lashley 9d25ca33bb Fix Roborock send command service calling not being enum (#100574) 2023-09-23 13:45:25 +02:00
Teemu R c059b1960e Fix xiaomi_miio button platform regression (#100527) 2023-09-23 13:45:22 +02:00
Markus Friedli 0a343037a7 Fix broken reconnect capability of fritzbox_callmonitor (#100526) 2023-09-23 13:45:18 +02:00
Joost Lekkerkerker 93081bcbea Only get meteo france alert coordinator if it exists (#100493)
Only get meteo france coordinator if it exists
2023-09-23 13:45:15 +02:00
J.P. Krauss fcd9ae5a01 Fix error is measurement is not sent by AirNow (#100477) 2023-09-23 13:45:12 +02:00
Kevin Stillhammer 13028e50ea bump pywaze to 0.5.0 (#100456) 2023-09-23 13:45:08 +02:00
Robert Resch 74dbcae92f Fix timer reload description (#100433)
Fix copy/paste error of #100388
2023-09-23 13:45:05 +02:00
Matrix d6c365014a Bump yolink-api to 0.3.1 (#100426) 2023-09-23 13:45:02 +02:00
Diogo Gomes ba30e6fb1c Fix current condition in IPMA (#100412)
always use hourly forecast to retrieve current weather condition. fix #100393
2023-09-23 13:44:58 +02:00
steffenrapp 3e34fc3b82 Add missing timer service translation (#100388) 2023-09-23 13:44:55 +02:00
starkillerOG e1ab0fe295 Bump reolink-aio to 0.7.10 (#100376) 2023-09-23 13:44:52 +02:00
starkillerOG 66a1522d88 Try Reolink ONVIF long polling if ONVIF push not supported (#100375) 2023-09-23 13:44:48 +02:00
Ståle Storø Hauknes 50a41f516d Fix Airthings ble migration (#100362)
* Import Platform for tests

* Migration bugfix

* Store new unique id as a variable in tests

* Add comments to tests
2023-09-23 13:44:45 +02:00
Guido Schmitz 94ef5f751f Fix timeout issue in devolo_home_network (#100350) 2023-09-23 13:44:41 +02:00
Joakim Plate 4d1ca93973 Remove _next_refresh variable in update coordinator (#100323)
* Remove _next_refresh variable

* Adjust tomorrowio
2023-09-23 13:43:56 +02:00
Daniel Hjelseth Høyer 57cfd2ef03 Update Mill library to 0.11.5, handle rate limiting (#100315) 2023-09-23 13:42:58 +02:00
J. Nick Koston 66dbcc04eb Bump yalexs to 1.9.0 (#100305) 2023-09-23 13:40:34 +02:00
J. Nick Koston fed7fc9597 Bump yalexs-ble to 2.3.0 (#100007) 2023-09-23 13:40:11 +02:00
Charles Garwood ef0d8da4ce Bump pyenphase to 1.11.4 (#100288) 2023-09-23 13:37:26 +02:00
Erik Montnemery 29ba5a4292 Future proof assist_pipeline.Pipeline (#100277) 2023-09-23 13:37:23 +02:00
Aarni Koskela 9e0d23f9a8 Bump sensirion-ble to 0.1.1 (#100271)
Bump to sensirion-ble==0.1.1

Fixes akx/sensirion-ble#6

Refs https://github.com/home-assistant/core/issues/93678#issuecomment-1694522112
2023-09-23 13:37:19 +02:00
Charles Garwood 9ec6e63384 Bump pyenphase to 1.11.3 (#100255) 2023-09-23 13:37:16 +02:00
Charles Garwood daf21d677a Bump pyenphase to 1.11.2 (#100249)
* Bump pyenphase to 1.11.1

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-23 13:37:13 +02:00
Luke Lashley 64d5993434 Fix incorrect off peak translation key for Roborock (#100246)
fix incorrect translation key
2023-09-23 13:37:09 +02:00
starkillerOG c9bee8233e Bump pynetgear to 0.10.10 (#100242) 2023-09-23 13:37:06 +02:00
Luke Lashley 094666005e Bump python-roborock to 0.34.0 (#100236) 2023-09-23 13:37:03 +02:00
starkillerOG d2b5ffc9fc Netgear catch no info error (#100212) 2023-09-23 13:37:00 +02:00
Diogo Gomes f50d47121e Always update unit of measurement of the utility_meter on state change (#99102) 2023-09-23 13:36:51 +02:00
G Johansson 173b70c850 Fix weather template forecast attributes (#100748) 2023-09-23 13:30:11 +02:00
Erik Montnemery 7a1ee98bb6 Fix handling of unit system change in sensor (#100715) 2023-09-23 13:28:14 +02:00
Shay Levy 439ca60cb6 Fix Shelly Gen2 event get input name method (#100733) 2023-09-23 12:45:41 +03:00
puddly 44fd60bd53 Bump ZHA dependencies (#100732) 2023-09-23 09:53:56 +02:00
Kevin Worrel a087ea8b3d Bump screenlogicpy to v0.9.1 (#100744) 2023-09-23 09:40:07 +02:00
Abílio Costa 2ef69d1504 Improve Idasen Desk "no devices found" message (#100742) 2023-09-23 09:37:03 +02:00
Michael Hansen b0c9ff033e Bump intents to 2023.9.22 (#100737) 2023-09-23 02:29:00 +02:00
rappenze ad3cd72323 Remove unneeded instance check (#100736) 2023-09-23 00:42:32 +02:00
Jan Bouwhuis c6d62faff3 Avoid redundant calls to async_write_ha_state in mqtt cover (#100720)
Avoid redundant calls to async_write_ha_state
2023-09-22 22:47:07 +02:00
Simone Chemelli 55c6d41d41 Bump aiocomelit to 0.0.8 (#100714)
* Bump aiocomelit to 0.0.8

* fix import

* fix tests
2023-09-22 23:38:33 +03:00
Olen debee28856 Only get state once for all August sensor-tests (#100721) 2023-09-22 21:31:17 +02:00
Simone Chemelli 964192d246 Bump aiovodafone to 0.3.0 (#100729) 2023-09-22 21:21:44 +02:00
Joost Lekkerkerker 76cc04e52b Remove obsolete methods in HVV departures (#100451)
* Call async added to hass super in HVV departures

* Remove obsolete methods
2023-09-22 16:55:07 +02:00
Olen 2a49b6ca7e Add more august actions (#100667) 2023-09-22 14:42:17 +02:00
starkillerOG 8474c25cf1 Reolink remove unneeded str() (#100718) 2023-09-22 14:20:34 +02:00
Jan Bouwhuis 4c65c92fb0 Use shorthand attrs for MQTT cover (#100710)
* User shorthand attrs for MQTT cover

* Cleanup constructor

* Cleanup constructor
2023-09-22 13:41:31 +02:00
Daniel Weeber 4133162053 Add device class to denonavr (#100711)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-22 13:39:32 +02:00
Jan Bouwhuis 5b422daf36 Avoid redundant calls to async_write_ha_state in MQTT light (#100690)
* Limit state writes for mqtt light

* Additional tests and review follow up
2023-09-22 13:32:30 +02:00
Jan Bouwhuis 87ae5add8a Fix mqtt light rgbww update without state topic (#100707)
* Fix mqtt light rgbww update without state topic

* Add @callback decprator and correct mired conv
2023-09-22 13:31:29 +02:00
Joost Lekkerkerker d30a5f4d54 Move samsung tv device class outside of constructor (#100712) 2023-09-22 12:45:22 +02:00
Pedro Januário 794736b503 Add switch platform to ecoforest integration (#100708)
* add switch platform to ecoforest integration

* ignore switch.py from coverage

* rename mixin

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

* update translations

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

* remove translation key

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

* move attr name to description

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

* fix broken change

* use entity description action

* use lambda with awaitable

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-22 12:20:48 +02:00
Jan Bouwhuis a66ad39c4e Assign color_mode for mqtt light as ColorMode (#100709) 2023-09-22 12:09:37 +02:00
Jan Bouwhuis 384adb1c87 Avoid redundant calls to async_write_ha_state in MQTT climate & water_heater (#100696)
Limit state writes for mqtt climate & water_heater
2023-09-22 11:22:57 +02:00
Jan Bouwhuis 1041610a70 Avoid redundant calls to async_write_ha_state in MQTT mqtt alarm_control_panel (#100691)
Limit state writes for mqtt alarm_control_panel
2023-09-22 11:22:09 +02:00
J. Nick Koston 1dadfcd52c Avoid polling in sun sensor entities (#100693) 2023-09-22 11:16:37 +02:00
Pedro Januário 86a692bb22 Add additional sensors to ecoforest integration (#100681)
* add ecoforest additional sensors

* add ecoforest additional sensors

* use StateType

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

* use StateType

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

* update cpu temp translation

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

* use common translation

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

* use common on translation

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

* use common standby translation

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

* update strings

* update strings

* import state type

* relabel preheating

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

* add cpu temp disable by default

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-22 11:08:09 +02:00
Pedro Januário cd30286913 Add number platform to ecoforest (#100694)
* add power number entity to ecoforest integration

* fix number.py header

* minor fixes

* change power to power level

* update comment for native value prop

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

* exclude number.py from coverage

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-21 22:36:39 +02:00
Bouwe Westerdijk 5cf5f5b4cf Add missing step-differentiation for the Plugwise temperature_offset (#100654) 2023-09-21 19:31:53 +02:00
c0ffeeca7 f973d4cc26 ZHA multiprotocol detected message: add info (#100686) 2023-09-21 19:23:02 +02:00
Bouwe Westerdijk a609df2914 Update plugwise to v0.33.0 (#100689) 2023-09-21 19:19:03 +02:00
jimmyd-be e57156dd9c Add Renson button entity (#99494)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-21 17:55:30 +02:00
Erik Montnemery ab060b86d1 Remove async_process_integration_platform_for_component (#100680) 2023-09-21 17:06:41 +02:00
c0ffeeca7 1c7b3cb2d5 ZHA multiprotocol detected - fix typo (#100683) 2023-09-21 17:02:39 +02:00
Luke Lashley e2bfa9f9cd Add last clean sensors to Roborock (#100661)
* Add water shortage binary sensor

* add last clean sensors

* fix tests

* fix tests again

* remove accidentally added binary sensor
2023-09-21 16:00:15 +02:00
Luke Lashley 6e0ab35f85 Add water shortage binary sensor (#100662) 2023-09-21 15:43:17 +02:00
Jan-Philipp Benecke a08b74c550 Move coolmaster coordinator to its own file (#100425) 2023-09-21 15:20:58 +02:00
Pedro Januário c170babba6 Add ecoforest integration (#100647)
* Add ecoforest integration

* fix file title

* remove host default from schema, hints will be given in the documentation

* moved input validation to async_step_user

* ensure we can receive device data while doing entry setup

* remove unecessary check before unique id is set

* added shorter syntax for async create entry

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

* use variable to set unique id

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

* Use _attr_has_entity_name from base entity

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

* remove unecessary comments in coordinator

* use shorthand for device information

* remove empty objects from manifest

* remove unecessary flag

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

* use _async_abort_entries_match to ensure device is not duplicated

* remove unecessary host attr

* fixed coordinator host attr to be used by entities to identify device

* remove unecessary assert

* use default device class temperature trasnlation key

* reuse base entity description

* use device serial number as identifier

* remove unused code

* Improve logging message

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

* Remove unused errors

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

* Raise a generic update failed

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

* use coordinator directly

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

* No need to check for serial number

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

* rename variable

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

* use renamed variable

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

* improve assertion

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

* use serial number in entity unique id

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

* raise config entry not ready on setup when error in connection

* improve test readability

* Improve python syntax

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

* abort when device already configured with same serial number

* improve tests

* fix test name

* use coordinator data

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

* improve asserts

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

* fix ci

* improve error handling

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-21 15:18:55 +02:00
Erik Montnemery df73850f56 Move definition of attributes excluded from history to entity classes (#100430)
* Move definition of attributes excluded from history to entity classes

* Revert change which should be in a follow-up PR

* Fix sun unrecorded attributes

* Fix input_select unrecorded attributes
2023-09-21 15:02:47 +02:00
Jan Bouwhuis aed3ba3acd Avoid redundant calls to async_ha_write_state in MQTT (binary) sensor (#100438)
* Only call `async_ha_write_state` on changes.

* Make helper class

* Use UndefinedType

* Remove del

* Integrate monitor into MqttEntity

* Track extra state attributes and availability

* Add `__slots__`

* Add monitor to MqttAttributes and MqttAvailability

* Write out loop

* Add test

* Make common test and parameterize

* Add test for last_reset attribute

* MqttMonitorEntity base class

* Rename attr and update docstr `track` method.

* correction doct

* Implement as a decorator

* Move tracking functions into decorator

* Rename decorator

* Follow up comment
2023-09-21 13:33:26 +02:00
Fletcher 11c4c37cf9 Add Slack thread/reply support (#93384) 2023-09-21 11:06:55 +02:00
Robert Resch e4742c04f2 Fix missspelled package names (#100670) 2023-09-21 10:57:23 +02:00
Mike 15caf2ac03 Add support for Levoit Vital200s purifier (#100613) 2023-09-21 10:53:18 +02:00
Jan-Philipp Benecke 715d8dcb98 Add test to london underground (#100562)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-21 10:44:32 +02:00
J. Nick Koston 59daceafd2 Avoid calling extract_stack in system_log since it does blocking I/O (#100455) 2023-09-21 09:48:41 +02:00
elmurato f2fc62138a Clean-up Minecraft Server constants (#100666) 2023-09-21 08:40:07 +02:00
Raman Gupta 9f56aec267 Bump zwave-js-server-python to 0.51.3 (#100665) 2023-09-21 02:13:48 -04:00
anonion 5c1a3998ae Add Enmax virtual integration to Opower (#100503)
* add enmax virtual integration supported by opower

* update integrations.json
2023-09-21 06:59:05 +02:00
Luke Lashley ed3cdca454 Bump python-roborock to 0.34.1 (#100652)
bump to 34.1
2023-09-20 22:02:00 +02:00
dependabot[bot] 0525454738 Bump tibdex/github-app-token from 2.0.0 to 2.1.0 (#100632)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 20:47:38 +02:00
Andrei Demian 6752af8f27 Bump ismartgate to 5.0.1 (#100636) 2023-09-20 19:44:11 +02:00
J. Nick Koston a03ad87cfb Avoid ConfigEntry lookups in hass.config_entries.async_entries for domain index (#100598) 2023-09-20 18:43:15 +02:00
J. Nick Koston 1f0c9a48d2 Update doorbird zeroconf checks to use stdlib ipaddress methods (#100623) 2023-09-20 18:35:55 +02:00
Erik Montnemery fbcc5318c5 Move attributes to be excluded from recording to entity classes (#100239)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-20 18:09:12 +02:00
J. Nick Koston ec5675ff4b Fix hkid matching in homekit_controller when zeroconf value is not upper case (#100641) 2023-09-20 17:37:13 +02:00
Luke Lashley 77001b26de Add second test device for Roborock (#100565) 2023-09-20 17:17:32 +02:00
J. Nick Koston 6f8734167f Bump SQLAlchemy to 2.0.21 (#99745) 2023-09-20 16:19:53 +02:00
J. Nick Koston 8b5129a7d9 Bump dbus-fast to 2.9.0 (#100638) 2023-09-20 13:58:34 +02:00
Robin Li 7014ed3453 Fix ecobee aux_heat_off always returns to HEAT (#100630) 2023-09-20 13:53:05 +02:00
J. Nick Koston d675825b5a Avoid double lookups with data_entry_flow indices (#100627) 2023-09-20 11:55:51 +02:00
J. Nick Koston 06c7f0959c Update dhcp to use stdlib ipaddress methods (#100625) 2023-09-20 11:54:24 +02:00
J. Nick Koston 33f748493e Update enphase_envoy zeroconf checks to use stdlib ipaddress methods (#100624) 2023-09-20 09:49:16 +02:00
Jan-Philipp Benecke 7af62c35f5 Move faa_delays coordinator to its own file (#100548) 2023-09-20 08:59:49 +02:00
Jan-Philipp Benecke 03af467918 Move renson coordinator to its own file (#100610) 2023-09-20 08:47:20 +02:00
Abílio Costa bd9bab000e Add integration for IKEA Idasen Desk (#99173)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-20 02:44:35 +02:00
J. Nick Koston 6c095a963d Switch config flows use newer zeroconf methods to check IP Addresses (#100568) 2023-09-20 01:08:58 +02:00
J. Nick Koston 1d5905b591 Use is for UNDEFINED check in async_update_entry (#100599) 2023-09-20 01:08:32 +02:00
elmurato f1a70189ac Clean-up Minecraft Server tests (#100615)
Remove patching of getmac, fix typo
2023-09-19 22:14:21 +02:00
Maciej Bieniek c099ec19f2 Add missing translations for Shelly event type states (#100608)
Add missing translations for event type
2023-09-19 20:30:18 +02:00
J. Nick Koston 0eca433004 Update zeroconf discovery to use IPAddress objects to avoid conversions (#100567) 2023-09-19 18:58:46 +02:00
Joost Lekkerkerker 8dd3d6f989 Call async added to hass super in Livisi (#100446) 2023-09-19 17:40:55 +02:00
Raman Gupta 2ad0fd1ce1 Adjust hassfest.manifest based on config.action (#100577) 2023-09-19 17:30:38 +02:00
Teemu R 7c4f08e6b3 Fix xiaomi_miio button platform regression (#100527) 2023-09-19 17:15:43 +02:00
Ian c3f74ae022 Add config-flow to NextBus (#92149) 2023-09-19 17:10:29 +02:00
Joost Lekkerkerker d9227a7e3d Add Spotify code owner (#100597) 2023-09-19 16:43:00 +02:00
Luke Lashley ea78f419a9 Fix Roborock send command service calling not being enum (#100574) 2023-09-19 16:35:23 +02:00
elmurato a2a62839bc Add DataUpdateCoordinator to Minecraft Server (#100075) 2023-09-19 15:59:58 +02:00
Jan-Philipp Benecke 2b8690d8bc Remove platform const in co2signal coordinator (#100592) 2023-09-19 12:44:09 +02:00
Joost Lekkerkerker 11a90016d0 Change Hue zigbee connectivity sensor into an enum (#98632) 2023-09-19 12:08:13 +02:00
Joost Lekkerkerker f01c71e514 Fix lyric feedback (#100586) 2023-09-19 11:40:05 +02:00
Jan-Philipp Benecke cf6eddee74 Move uptimerobot coordinator to its own file (#100558)
* Move uptimerobot coordinator to its own file

* Fix import of coordinator in platforms
2023-09-19 09:45:56 +02:00
Simone Chemelli 2722e5ddaa Add Vodafone Station sensor platform (#99948)
* Vodafone: add sensor platform

* fix for model VOX30 v1

* fix, cleanup, 2 new sensors

* apply review comments

* apply last review comment
2023-09-18 21:31:04 +02:00
Marc Mueller 37288d7788 Add pylint plugin to check for calls to base implementation (#100432) 2023-09-18 13:39:36 -05:00
rappenze ddd62a8f63 Fibaro streamline hass.data entry (#100547)
* Fibaro streamline hass.data entry

* Fix tests
2023-09-18 20:22:23 +02:00
J. Nick Koston fa1a1715c9 Drop codeowner for LIFX (#100556) 2023-09-18 10:08:49 -05:00
J. Nick Koston 49d742ce31 Drop codeowner for Magic Home/flux_led (#100557) 2023-09-18 10:08:38 -05:00
Jan-Philipp Benecke adf34bdf8b Set co2signal integration type to service (#100543) 2023-09-18 12:56:35 +02:00
Joost Lekkerkerker ec6c374761 Clean up lyric sensor platform (#100495)
* Clean up lyric sensor platform

* Clean up lyric sensor platform

* Clean up lyric sensor platform

* Update homeassistant/components/lyric/sensor.py

Co-authored-by: Aidan Timson <aidan@timmo.dev>

* Update homeassistant/components/lyric/sensor.py

Co-authored-by: Aidan Timson <aidan@timmo.dev>

* Update homeassistant/components/lyric/sensor.py

Co-authored-by: Aidan Timson <aidan@timmo.dev>

* Update homeassistant/components/lyric/sensor.py

Co-authored-by: Aidan Timson <aidan@timmo.dev>

---------

Co-authored-by: Aidan Timson <aidan@timmo.dev>
2023-09-18 12:42:31 +02:00
jan iversen 6ac1305c64 Adjust codeowners in modbus (#100474) 2023-09-18 12:39:09 +02:00
Marc Mueller 306f39b053 Update pytest warnings filter (#100546) 2023-09-18 12:26:16 +02:00
Marc Mueller 08c4e82cf9 Update typing-extensions to 4.8.0 (#100545) 2023-09-18 11:58:47 +02:00
Jan-Philipp Benecke dc2afb71ae Move co2signal coordinator to its own file (#100541)
* Move co2signal coordinator to its own file

* Fix import
2023-09-18 11:56:28 +02:00
steffenrapp 45c0dc6854 Add missing conversation service translation (#100308)
* Update services.yaml

* Update strings.json

* Update services.yaml

* Update strings.json

* Update strings.json

* fix translation keys

* Fix translation keys
2023-09-18 11:44:41 +02:00
Ville Skyttä 902f997ee0 Fix google invalid token expiry test init for UTC offsets > 0 (#100533)
```
$ python3 -q
>>> import datetime, time
>>> time.tzname
('EET', 'EEST')
>>> datetime.datetime.max.timestamp()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: year 10000 is out of range
```
2023-09-18 12:39:43 +03:00
Marc Mueller f41e3a2beb Remove duplicate mobile_app client fixture (#100530) 2023-09-18 10:52:43 +02:00
Glenn Waters 276d245409 Bump elkm1-lib to 2.2.6 (#100537) 2023-09-17 20:39:23 -05:00
Maciej Bieniek f6243a1f79 Add event platform for Shelly gen2 devices (#99659)
* Add event platform for gen2 devices

* Add tests

* Add removal condition

* Simplify RpcEventDescription; fix availability

* Improve names and docstrings

* Improve the event entity name

* Use async_on_remove()

* Improve tests coverage

* Improve tests coverage

* Prefix the entity name with the device name in the old way

* Black

* Use DeviceInfo object
2023-09-18 00:38:08 +02:00
Marc Mueller 6acb182c38 Fix full black run condition [ci] (#100532) 2023-09-17 17:05:29 -05:00
starkillerOG 868afc037e Try Reolink ONVIF long polling if ONVIF push not supported (#100375) 2023-09-17 22:28:52 +02:00
Markus Friedli dd1dc52994 Fix broken reconnect capability of fritzbox_callmonitor (#100526) 2023-09-17 20:00:09 +02:00
Ville Skyttä 2794ab1782 Fix huawei_lte current month up/download sensor error on delete (#100506)
Deleting one of them prematurely deleted the last reset item
subscription that is shared between the two.
2023-09-17 18:11:44 +02:00
tronikos 7aa02b8621 Bump opower to 0.0.34 (#100501) 2023-09-17 09:50:17 -05:00
Marc Mueller 48f9a38c74 Update numpy to 1.26.0 (#100512) 2023-09-17 09:49:21 -05:00
Dennis ddeb2854aa Added device class to speedtestdotnet sensor entities. (#100500)
Added device class to sensor entities.
2023-09-16 15:40:16 -07:00
jan iversen 9931f45532 Deprecate modbus parameter retry_on_empty (#100292) 2023-09-16 21:14:52 +02:00
Jieyu Yan 81af45347f Add fan modes in Lyric integration (#100420)
* Add fan modes in Lyric integration

* add fan_mode only when available

* move supported_features to init

* mapped fan_modes to built-in modes

* log KeyError for fan_modes
2023-09-16 20:58:00 +02:00
Joost Lekkerkerker f715f5c76f Only get meteo france alert coordinator if it exists (#100493)
Only get meteo france coordinator if it exists
2023-09-16 18:48:41 +02:00
J.P. Krauss 01ecef7f05 Fix error is measurement is not sent by AirNow (#100477) 2023-09-16 18:16:15 +02:00
Kevin c8265a86b2 Bump python-androidtv to 0.0.72 (#100441)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-16 10:12:00 -05:00
J. Nick Koston 8a98a0e830 Avoid writing unifiprotect state when nothing has changed (#100439) 2023-09-16 09:57:43 -05:00
Joost Lekkerkerker 7b71d27637 Pass function correctly to Withings API (#100391)
* Pass function correctly to Withings API

* Add more typing
2023-09-16 16:20:24 +02:00
Ravaka Razafimanantsoa f99dedfb42 Add switchbot cloud integration (#99607)
* Switches via API

* Using external library

* UT and checlist

* Updating file .coveragerc

* Update homeassistant/components/switchbot_via_api/switch.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/switchbot_via_api/switch.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update homeassistant/components/switchbot_via_api/switch.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Review fixes

* Apply suggestions from code review

Co-authored-by: J. Nick Koston <nick@koston.org>

* This base class shouldn't know about Remote

* Fixing suggestion

* Sometimes, the state from the API is not updated immediately

* Review changes

* Some review changes

* Review changes

* Review change: Adding type on commands

* Parameterizing some tests

* Review changes

* Updating .coveragerc

* Fixing error handling in coordinator

* Review changes

* Review changes

* Adding switchbot brand

* Apply suggestions from code review

Co-authored-by: J. Nick Koston <nick@koston.org>

* Review changes

* Adding strict typing

* Removing log in constructor

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-16 16:00:41 +02:00
jan iversen 568974fcc4 Modbus 100% test coverage (again) (#100482) 2023-09-16 14:00:22 +02:00
jan iversen 48dc81eff0 Simplify code, due to better error catching in modbus. (#100483) 2023-09-16 13:49:37 +02:00
Joost Lekkerkerker 30d604c851 Use central logger in Withings (#100406) 2023-09-16 13:46:11 +02:00
Jan-Philipp Benecke 16cc87bf45 Move flipr base entity to its own file (#100481)
* Move flipr base entity to its own file

* Add forgotten __init__.py
2023-09-16 11:55:49 +02:00
Jan-Philipp Benecke b5c6e82374 Move co2signal models to their own file (#100478) 2023-09-16 11:49:49 +02:00
Jan-Philipp Benecke 57337b5cee Move flipr coordinator to its own file (#100467) 2023-09-16 11:19:49 +02:00
Jan-Philipp Benecke 024db6dadf Move cert_expiry coordinator to its own file (#100472)
* Move cert_expiry coordinator to its own file

* Add missing patched config flow test
2023-09-16 11:19:05 +02:00
Jan-Philipp Benecke c504ca906d Move co2signal exceptions to their own file (#100473)
* Move co2signal exceptions to their own file

* Add myself as codeowner
2023-09-16 11:18:19 +02:00
Jan Bouwhuis 9747e0091f Use shorthand attrs for device_class zwave_js sensor (#100414)
* Use shorthand attrs zwave_js sensor

* Simplify
2023-09-16 10:13:27 +02:00
jan iversen d25f45a957 Harden modbus against lib errors (#100469) 2023-09-16 09:57:55 +02:00
Joost Lekkerkerker a111988232 Make codespell ignore snapshots (#100463) 2023-09-15 20:39:14 +02:00
J. Nick Koston a4e0444b95 Bump sense-energy to 0.12.2 (#100459) 2023-09-15 13:38:14 -05:00
Kevin Stillhammer c9975852bb bump pywaze to 0.5.0 (#100456) 2023-09-15 19:03:04 +02:00
Matrix 06949b181f Bump yolink-api to 0.3.1 (#100426) 2023-09-15 17:20:30 +02:00
jan iversen fd83f7d87f Add test for modbus CONF_DEVICE_ADDR (#100435) 2023-09-15 16:12:44 +02:00
Robert Resch b329439fff Fix timer reload description (#100433)
Fix copy/paste error of #100388
2023-09-15 16:05:56 +02:00
jan iversen 9eb0b844bc Test VIRTUAL_COUNT parameter (#100434) 2023-09-15 15:02:24 +02:00
steffenrapp b4c095e944 Add missing timer service translation (#100388) 2023-09-15 14:42:27 +02:00
Seth 5ac149a760 Remove state class from RainMachine TIMESTAMP sensors (#100400) 2023-09-15 14:33:17 +02:00
jan iversen ec2364ef43 Add virtual_count == slave_count in modbus configuration (#100398)
* Add virtual_count as config parameter.

* Review (other PR) comments.

* Review.

* Review comment.
2023-09-15 14:00:02 +02:00
jan iversen c173ebd11a Add device_address to modbus configuration (#100399) 2023-09-15 13:49:33 +02:00
Joost Lekkerkerker 1737b27dd4 Generate withings webhook ID in config flow (#100395) 2023-09-15 12:58:56 +02:00
Erik Montnemery d1afcd773f Revert "Cache entity properties that are never expected to change in the base class" (#100422)
Revert "Cache entity properties that are never expected to change in the base class (#95315)"

This reverts commit 042776ebb8.
2023-09-15 11:25:24 +02:00
Jan-Philipp Benecke 7723a9b36b Move airtouch4 coordinator to its own file (#100424) 2023-09-15 10:04:41 +02:00
TJ Horner a8013836e1 Bump apple_weatherkit to 1.0.3 (#100416) 2023-09-15 08:28:27 +02:00
Erik Montnemery a70235046a Tweak datetime service schema (#100380) 2023-09-15 08:07:27 +02:00
Diogo Gomes 9470c71d49 Fix current condition in IPMA (#100412)
always use hourly forecast to retrieve current weather condition. fix #100393
2023-09-15 07:52:50 +02:00
Jan-Philipp Benecke 772ac9766b Move awair coordinators to their own file (#100411)
* Move awair coordinators to their file

* Add awair/coordinator.py to .coveragerc
2023-09-15 07:52:29 +02:00
J. Nick Koston b68ceb3ce4 Use more shorthand attributes in hyperion (#100213)
* Use more shorthand attributes in hyperion

There are likely some more here, but I only did the safe ones

* Update homeassistant/components/hyperion/switch.py

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

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-15 02:28:59 +00:00
J. Nick Koston 6a9c9ca735 Improve performance of mqtt_room (#100408) 2023-09-14 17:55:56 -05:00
J. Nick Koston 042776ebb8 Cache entity properties that are never expected to change in the base class (#95315) 2023-09-14 17:48:48 -05:00
Joakim Plate 5f20725fd5 Remove _next_refresh variable in update coordinator (#100323)
* Remove _next_refresh variable

* Adjust tomorrowio
2023-09-14 22:32:50 +02:00
J. Nick Koston df74ed0d40 Bump bleak-retry-connector to 3.2.1 (#100377) 2023-09-14 15:13:15 -05:00
Jan Bouwhuis 23faa0882f Avoid multiline ternary use (#100381) 2023-09-14 22:10:28 +02:00
Joost Lekkerkerker c34c4f8f03 Reload on Withings options flow update (#100397)
* Reload on Withings options flow update

* Remove reload from reauth
2023-09-14 21:54:49 +02:00
Jan-Philipp Benecke 157647dc44 Move solarlog coordinator to own file (#100402) 2023-09-14 21:52:21 +02:00
Joost Lekkerkerker a62f16b4cc Remove obsolete strings from Withings (#100396) 2023-09-14 21:41:34 +02:00
starkillerOG 3f2a660dab Bump reolink-aio to 0.7.10 (#100376) 2023-09-14 21:24:23 +02:00
Robert Svensson f909199125 Remove hard coded Icon from Unifi device scanner (#100401) 2023-09-14 20:13:46 +02:00
J. Nick Koston 1d4b731603 Bump zeroconf to 0.112.0 (#100386) 2023-09-14 12:40:47 -05:00
Jan Bouwhuis 6701a449bd Use shorthand attrs for tasmota (#100390) 2023-09-14 18:17:23 +02:00
Jan Bouwhuis 8b7061b634 Short handed device class for overkiz cover (#100394) 2023-09-14 11:10:31 -05:00
Jan Bouwhuis 89eec9990b Use shorthand device_type attr for plaato sensors (#100385) 2023-09-14 09:55:47 -05:00
jan iversen d4a2927ebe Solve racing problem in modbus test (#100287)
* Test racing problem.

* review comment.

* Revert to approved state.

This reverts commit 983d9d68e8.
2023-09-14 16:03:32 +02:00
starkillerOG 7ea2087c45 Add Netgear entity translations (#100367)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-14 13:58:53 +02:00
Joost Lekkerkerker 6fc1407613 Extract Withings API specifics in own class (#100363)
* Extract Withings API specifics in own class

* Extract Withings API specifics in own class

* Ignore api test coverage

* fix feedback
2023-09-14 13:31:54 +02:00
Ståle Storø Hauknes b858658516 Fix Airthings ble migration (#100362)
* Import Platform for tests

* Migration bugfix

* Store new unique id as a variable in tests

* Add comments to tests
2023-09-14 12:51:06 +02:00
Guido Schmitz 8a8f1aff83 Remove useless timeout guards in devolo_home_network (#100364) 2023-09-14 12:35:21 +02:00
Jan Rieger f305661dd7 Change service set_location to use number input selectors (#100360) 2023-09-14 12:13:19 +02:00
starkillerOG 98c9edc00c Netgear cleanup (#99505)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-14 12:06:40 +02:00
Guido Schmitz b84076d3d6 Fix timeout issue in devolo_home_network (#100350) 2023-09-14 10:28:45 +02:00
Franck Nijhof b0f32a3547 Update apprise to 1.5.0 (#100351) 2023-09-14 10:10:31 +02:00
Erik Montnemery 4f58df1929 Drop useless passing of update_method to DataUpdateCoordinator (#100355) 2023-09-14 10:09:55 +02:00
Franck Nijhof 85fafcad11 Update awesomeversion to 23.8.0 (#100349) 2023-09-14 10:07:09 +02:00
Joost Lekkerkerker 4a48a92cba Use f-string instead of concatenation in Velux (#100353) 2023-09-14 10:06:43 +02:00
Jan Rieger 840d881c25 Add icon to GPSD (#100347) 2023-09-14 09:27:16 +02:00
Joost Lekkerkerker 923d945267 Use shorthand attributes in Smappee (#99837) 2023-09-14 09:25:21 +02:00
Marty Sun 6692a37f0d Add missing __init__.py file in yardian test folder (#100345) 2023-09-14 09:04:12 +02:00
J. Nick Koston 182976f5d3 Use more shorthand attributes in threshold binary_sensor (#100343) 2023-09-14 09:03:39 +02:00
J. Nick Koston 58bb624b24 Bump zeroconf to 0.111.0 (#100340) 2023-09-14 07:54:17 +02:00
mkmer c265d3f3cc Late review for honeywell (#100299)
* Late review for honeywell

* Actually test same id different domain

* Update homeassistant/components/honeywell/climate.py

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

* Update climate.py

* Refactor dont_remove

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-14 06:22:28 +02:00
J. Nick Koston 547f32818c Make core States use cached_property (#100312)
Need to validate this is worth removing __slots__
2023-09-13 20:33:25 -04:00
J. Nick Koston 3cc9410a62 Bump grpcio to 1.58.0 (#100314)
* Bump grpcio to 1.58.0

attempt to fix nightly

https://github.com/home-assistant/core/actions/runs/6167125867/job/16737677629

```
```

* forgot the script as well
2023-09-13 20:26:55 -04:00
J. Nick Koston 3be4edd647 Use shorthand attributes in saj (#100317)
supports #95315
2023-09-13 20:26:22 -04:00
J. Nick Koston fe8156f013 Bump protobuf to 4.24.3 (#100329)
changelog: https://github.com/protocolbuffers/protobuf/compare/v24.0...v24.3
2023-09-13 20:25:52 -04:00
J. Nick Koston f0e607869a Use shorthand attributes for supla cover device class (#100337)
from #95315
2023-09-13 20:25:33 -04:00
Jan Bouwhuis 01410c9fbb Shorthanded attrs for met integration (#100334) 2023-09-13 17:11:47 -05:00
Jan Bouwhuis a7c6abfed1 Use shorthand atts for met_eireann (#100335) 2023-09-13 17:11:27 -05:00
Franck Nijhof a02fcbc5c4 Update sentry-sdk to 1.31.0 (#100293) 2023-09-13 23:37:48 +02:00
J. Nick Koston fe5eba9b31 Use cached_property in device registry (#100309) 2023-09-13 15:36:07 -05:00
Jan-Philipp Benecke 72f5c0741b Add missing sms coordinator to .coveragerc (#100327) 2023-09-13 15:29:16 -05:00
J. Nick Koston ef6d77586a Bump python-amcrest to 1.9.8 (#100324) 2023-09-13 15:01:28 -05:00
Jan-Philipp Benecke 7b204ca36b Use snapshot assertion for nexia diagnostics test (#100328) 2023-09-13 15:00:29 -05:00
J. Nick Koston 877eedf6d7 Use cached_property in entity_registry (#100302) 2023-09-13 14:38:40 -05:00
J. Nick Koston d8d756dd7d Bump dbus-fast to 2.7.0 (#100321) 2023-09-13 14:33:42 -05:00
Daniel Hjelseth Høyer 9ceeadc715 Update Mill library to 0.11.5, handle rate limiting (#100315) 2023-09-13 21:09:29 +02:00
Quentame 8625bf7894 Add some tests to Freebox (#99755) 2023-09-13 20:22:47 +02:00
J. Nick Koston 9631c0ba2b Use short hand attributes in onvif camera (#100319)
see #95315
2023-09-13 20:19:01 +02:00
Robert Svensson 7b00265cfe Remove legacy UniFi PoE client clean up (#100318) 2023-09-13 20:14:03 +02:00
Paulus Schoutsen 23a891ebb1 Update Roborock entity categories (#100316) 2023-09-13 13:43:28 -04:00
Jan Bouwhuis 0d33cba823 Use shorthand attrs in template integration (#100301) 2023-09-13 12:30:43 -05:00
Franck Nijhof d17957ac1a Update debugpy to 1.8.0 (#100311) 2023-09-13 11:59:35 -05:00
J. Nick Koston 6a2dd4fe74 Bump yalexs to 1.9.0 (#100305) 2023-09-13 11:25:10 -05:00
Erik Montnemery c3d1cdd0e9 Improve UserDict in device and entity registries (#100307) 2023-09-13 11:09:34 -05:00
Jan Rieger ee65aa91e8 Allow setting the elevation in set_location (#99978)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-09-13 18:09:12 +02:00
Joost Lekkerkerker f6b094dfee Add options flow to Withings (#100300) 2023-09-13 18:08:15 +02:00
Erik Montnemery 6057fe5926 Replace StateMachine._domain_index with a UserDict (#100270)
* Replace StateMachine._domain_index with a UserDict

* Access the UserDict's backing dict directly

* Optimize
2023-09-13 18:05:17 +02:00
J. Nick Koston d0feb063ec Fix missing super async_added_to_hass in lookin (#100296) 2023-09-13 10:03:36 -05:00
Jan Bouwhuis 871800778f Use shorthand attrs for velux (#100294)
* Use shorthand attrs for velux

* Update homeassistant/components/velux/cover.py

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

* black

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-13 16:50:33 +02:00
Jan Bouwhuis f2f45380a9 Use shorthand attrs in iaqualink (#100281)
* Use shorthand attrs in iaqualink

* Use super

* Update homeassistant/components/iaqualink/light.py

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

* Remove self

* More follow ups

* Remove cast and type check

* Update homeassistant/components/iaqualink/__init__.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-13 16:34:14 +02:00
Charles Garwood c3a7aee48e Bump pyenphase to 1.11.4 (#100288) 2023-09-13 16:04:34 +02:00
Joost Lekkerkerker 8498cdfb3c Remove profile from Withings config flow (#100202)
* Remove profile from Withings config flow

* Add config flow migration

* Add config flow migration

* Remove datamanager profile

* Remove datamanager profile

* Add manufacturer

* Remove migration

* Remove migration

* Fix feedback
2023-09-13 15:49:36 +02:00
starkillerOG 80aa19263b Netgear catch no info error (#100212) 2023-09-13 15:32:03 +02:00
Jan Bouwhuis d44db6ee68 Use shorthand attrs for xbox base_sensor (#100290) 2023-09-13 15:10:35 +02:00
Franck Nijhof 65c9e5ee13 Update mutagen to 1.47.0 (#100284) 2023-09-13 14:40:27 +02:00
Franck Nijhof afa0152261 Update syrupy to 4.5.0 (#100283) 2023-09-13 14:40:01 +02:00
Joost Lekkerkerker 38e013a90e Remove NZBGet configurable scan interval (#98869) 2023-09-13 14:15:40 +02:00
Jan Bouwhuis d638efdcfc Use shorthanded attrs for vera sensor (#100269)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-09-13 13:50:00 +02:00
Jan Bouwhuis 9f3b1a8d44 Use hass.loop.create_future() in zha (#100056)
* Use hass.loop.create_future() in zha

* Remove not needed method
2023-09-13 13:32:00 +02:00
Kevin Stillhammer 958b923783 Limit waze_travel_time to 1 call every 0.5s (#100191) 2023-09-13 13:29:20 +02:00
Jan-Philipp Benecke 1f1411b6a5 Move sms coordinators to their own file (#100276) 2023-09-13 13:22:37 +02:00
Jan Bouwhuis 705ee3032b Use shorthanded attrs for yamaha_musiccast select (#100273) 2023-09-13 13:13:27 +02:00
Olen 7fe78fe9e4 Add diagnostics to Twinkly (#100146) 2023-09-13 13:09:57 +02:00
Erik Montnemery 684b2d4537 Improve type hint in entity_registry (#100278) 2023-09-13 12:42:06 +02:00
Erik Montnemery 4f8e28a781 Future proof assist_pipeline.Pipeline (#100277) 2023-09-13 12:41:28 +02:00
Joost Lekkerkerker 29d8be510e Test speedtest.net config entry lifecycle (#100280) 2023-09-13 12:40:26 +02:00
Erik Montnemery aedd06b9a9 Tweak entity/source WS command handler (#100272) 2023-09-13 11:14:01 +02:00
Aarni Koskela e5de7eacad Bump sensirion-ble to 0.1.1 (#100271)
Bump to sensirion-ble==0.1.1

Fixes akx/sensirion-ble#6

Refs https://github.com/home-assistant/core/issues/93678#issuecomment-1694522112
2023-09-13 10:21:55 +02:00
dependabot[bot] 1c10091d62 Bump docker/login-action from 2.2.0 to 3.0.0 (#100264)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 09:34:45 +02:00
TJ Horner dd95b51d10 Address weatherkit late review comments (#100265)
* Address review comments from original weatherkit PR

* Use .get() for optional fields
2023-09-13 09:22:58 +02:00
John Hollowell e87603aa59 Correct Venstar firmware version to use device's FW version instead of API version (#98493) 2023-09-13 08:35:59 +02:00
Luke Lashley 09f58ec396 Bump python-roborock to 0.34.0 (#100236) 2023-09-13 08:33:48 +02:00
TJ Horner 756f542ac6 Update apple_weatherkit to 1.0.2 (#100254) 2023-09-13 08:18:07 +02:00
Charles Garwood 270df003fe Bump pyenphase to 1.11.3 (#100255) 2023-09-13 08:15:33 +02:00
Marc Mueller f5aa2559d7 Fix pylint config warning (#100251) 2023-09-13 08:14:01 +02:00
Marc Mueller 2518fbc973 Update jsonpath to 0.82.2 (#100252) 2023-09-13 01:41:50 +02:00
Simone Chemelli fe85b20502 SamsungTV: Add unique_id for when missing (legacy models) (#96829)
* Add unique_id for when missing (legacy models)

* add comment

* update tests, thx @epenet
2023-09-13 01:24:49 +02:00
Luke Lashley 5272387bd3 Fix incorrect off peak translation key for Roborock (#100246)
fix incorrect translation key
2023-09-13 01:16:31 +02:00
Charles Garwood f344000ef9 Bump pyenphase to 1.11.2 (#100249)
* Bump pyenphase to 1.11.1

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-13 00:17:29 +02:00
J. Nick Koston bbcae19d0e Disable always responding to all SSDP M-SEARCH requests with the root device (#100224) 2023-09-12 17:15:13 -05:00
starkillerOG 8aa689ebae Bump pynetgear to 0.10.10 (#100242) 2023-09-12 23:36:44 +02:00
J. Nick Koston fc75172d79 Bump async-upnp-client to 0.35.1 (#100248) 2023-09-12 16:35:39 -05:00
Joost Lekkerkerker 904913c1a6 Use shorthand attributes in VLC telnet (#99916)
* Use shorthand attributes in VLC telnet

* Apply suggestions from code review

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

* fix mypy

* Attempt 3

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-12 22:37:51 +02:00
J. Nick Koston 1b40a56e2b Update ecobee zeroconf/homekit discovery (#100091) 2023-09-12 22:24:38 +02:00
Ville Skyttä fa0b999d08 Upgrade ruff to 0.0.289 (#100238) 2023-09-12 22:22:10 +02:00
Jan Rieger f2fac40019 Add strict typing to GPSD (#100030)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-09-12 22:21:58 +02:00
Jan Bouwhuis e3837cd1e0 Use shorthand attr for mqtt assumed_state (#100241) 2023-09-12 22:21:13 +02:00
Paulus Schoutsen c6ed235010 2023.9.2 (#100223) 2023-09-12 15:41:50 -04:00
Jan Bouwhuis eb0ab3de93 User shorthand attr for mqtt alarm_control_panel (#100234) 2023-09-12 21:28:29 +02:00
Joost Lekkerkerker 458a3f0df2 Remove restore functionality in Speedtest.net (#96950) 2023-09-12 21:12:01 +02:00
Tom Harris f9ce315d1b Support for Insteon 4 button KeypadLink device (#100132) 2023-09-12 21:10:40 +02:00
Álvaro Fernández Rojas d417a27c85 Add meteoclimatic sensor statistics (#100186) 2023-09-12 21:08:58 +02:00
Allen Porter 368a1a944a Remove the uniqueid from todoist (#100206) 2023-09-12 21:08:13 +02:00
Erik Montnemery bbcbb2e322 Improve Entity._suggest_report_issue (#100204) 2023-09-12 21:07:32 +02:00
Joost Lekkerkerker 76c569c62d Clean up variables in Soundtouch (#99859) 2023-09-12 21:00:05 +02:00
J. Nick Koston 5e2bf2b015 Set dynalite cover device class in constructor (#100232) 2023-09-12 20:57:57 +02:00
Joost Lekkerkerker 8fe5a5a398 Introduce base class for Trafikverket camera (#100114)
* Introduce base class for Trafikverket camera

* fix feedback

* Fix feedback
2023-09-12 20:48:47 +02:00
Erik Montnemery 09ad1a9a36 Remove unnecessary block use of pylint disable in components p-z (#100192) 2023-09-12 20:47:48 +02:00
Jan Bouwhuis 5fcb69e004 Use shorthanded attributes for MQTT cover (#100230) 2023-09-12 13:46:43 -05:00
Erik Montnemery 51576b7214 Improve typing of entity.entity_sources (#99407)
* Improve typing of entity.entity_sources

* Calculate entity info source when generating WS response

* Adjust typing

* Update tests
2023-09-12 20:41:26 +02:00
J. Nick Koston cc252f705f Use short handle attributes for device class in netatmo cover (#100228) 2023-09-12 13:34:50 -05:00
mkmer 693a271e40 Clean up device registry for climate devices that no longer exist in Honeywell (#100072) 2023-09-12 20:29:47 +02:00
Joost Lekkerkerker 9672cdf3a9 Add entity translations to WLED (#99056) 2023-09-12 20:19:45 +02:00
J. Nick Koston 70c6bceaee Use short hand entity_registry_enabled_default in nws (#100227)
* Use short hand entity_registry_enabled_default in nws

see https://github.com/home-assistant/core/pull/95315

* Update homeassistant/components/nws/sensor.py
2023-09-12 20:12:14 +02:00
dependabot[bot] 93f3bc6c2b Bump sigstore/cosign-installer from 3.1.1 to 3.1.2 (#99563)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-12 20:11:12 +02:00
James Chaloupka a9891e40fd Update Deprecated Selector Syntax (#99308) 2023-09-12 20:10:32 +02:00
Joost Lekkerkerker 69ac8a0a2b Use shorthand attributes in NWS (#99620) 2023-09-12 13:05:57 -05:00
J. Nick Koston 9c775a8a24 Set roku media player device class in constructor (#100225) 2023-09-12 12:58:20 -05:00
J. Nick Koston 42c35da818 Use more shorthand properties in homematicip_cloud (#100210) 2023-09-12 19:45:53 +02:00
J. Nick Koston 6a7d5a0fd4 Use more shorthand attributes in huawei_lte binary_sensor (#100211) 2023-09-12 19:45:44 +02:00
Jan Rieger 74a57e8676 Use more common translations (#100135) 2023-09-12 19:44:31 +02:00
uvjustin 5021c69886 Update Stream logging on EVENT_LOGGING_CHANGED (#99256) 2023-09-12 19:38:11 +02:00
J. Nick Koston 8af7475f73 Set TriggerBaseEntity device_class in init (#100216) 2023-09-12 19:36:56 +02:00
hahn-th f5c0c7bf27 Bump homematicip_cloud to 1.0.15 (#99387) 2023-09-12 19:33:42 +02:00
Erik Montnemery 44af34083b Remove unnecessary pylint disable in tado (#100196) 2023-09-12 19:27:53 +02:00
Joost Lekkerkerker a09372590f Use shorthand attributes in Smartthings (#100215) 2023-09-12 12:26:33 -05:00
Paulus Schoutsen 583ea2fed4 Bumped version to 2023.9.2 2023-09-12 13:01:31 -04:00
Joakim Sørensen 7b9ae6755a Bump hass-nabucasa from 0.70.0 to 0.71.0 (#100193)
Bump hass-nabucasa from 0.70.0 to 0.71.1
2023-09-12 13:01:31 -04:00
Jan Bouwhuis e84a4661b0 Add intial property to imap_content event data (#100171)
* Add initial property to imap event data

* Simplify loop

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

* MyPy

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-12 18:54:32 +02:00
René Klomp 86bccf769e Add Entity Descriptions to SMA integration (#58707)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-12 11:30:55 -05:00
Jan Bouwhuis 63647d96dd Fix entity name attribute on mqtt entity is not removed on update (#100187)
Fix entity name attribute is not remove on update
2023-09-12 12:04:56 -04:00
Vincent Knoop Pathuis f13ce5daff Bump Ultraheat to version 0.5.7 (#100172) 2023-09-12 12:04:55 -04:00
Erik Montnemery 1b494fb4ba Bump hatasmota to 0.7.3 (#100169) 2023-09-12 12:04:54 -04:00
Erik Montnemery 3c27283fc1 Adjust tasmota sensor device class and icon mapping (#100168) 2023-09-12 12:04:53 -04:00
Raman Gupta 1cd80c5b78 Bump zwave-js-server-python to 0.51.2 (#100159) 2023-09-12 12:04:52 -04:00
puddly 68b0f05758 Bump ZHA dependencies (#100156) 2023-09-12 12:04:51 -04:00
Michael d1bc6df14f Fix AVM Fritz!Tools update entity (#100151)
* move update entity to coordinator

* fix tests
2023-09-12 12:04:50 -04:00
Robert Svensson 5068846fc9 Fix devices not always reporting IP - bump aiounifi to v62 (#100149) 2023-09-12 12:04:49 -04:00
Bram Kragten 04549925c2 Update frontend to 20230911.0 (#100139) 2023-09-12 12:04:48 -04:00
Erik Montnemery 8e2fa67cfd Bump hatasmota to 0.7.2 (#100129) 2023-09-12 12:04:47 -04:00
Erik Montnemery 7a4a792b7b Fix TriggerEntity.async_added_to_hass (#100119) 2023-09-12 12:04:45 -04:00
Greig Sheridan df718ca509 Remove duplicated word in enphase description text (#100098) 2023-09-12 12:04:44 -04:00
Mike Degatano 2cb84274ec Fix addon slug validation (#100070)
* Fix addon slug validation

* Don't redefine compile
2023-09-12 12:04:43 -04:00
Simone Chemelli 55a4346460 Remove Comelit alarm data retrieval (#100067)
fix: remove alarm data retrieval
2023-09-12 12:04:42 -04:00
Simone Chemelli a651e9df1d Bump aiovodafone to 0.2.0 (#100062)
bump aiovodafone to 0.2.0
2023-09-12 12:04:41 -04:00
Aidan Timson a19bc71300 Bump systembridgeconnector to 3.8.2 (#100051)
Update systembridgeconnector to 3.8.2
2023-09-12 12:04:40 -04:00
Kevin Stillhammer 82a5615d7d Bump pywaze to 0.4.0 (#99995)
bump pywaze from 0.3.0 to 0.4.0
2023-09-12 12:04:39 -04:00
jan iversen 42f62485cf Bump pymodbus to v3.5.2 (#99988) 2023-09-12 12:04:38 -04:00
J. Nick Koston 3d09e859fc Avoid probing ipp printers for unique_id when it is available via mdns (#99982)
* Avoid probing ipp printers for unique_id when it is available via mdns

We would always probe the device in the ipp flow and than
abort if it was already configured. We avoid the probe for
most printers.

* dry

* coverage

* fix test

* add test for updating host
2023-09-12 12:04:37 -04:00
J. Nick Koston f200ba7a86 Bump bluetooth-auto-recovery to 1.2.3 (#99979)
fixes #99977
2023-09-12 12:04:36 -04:00
Bouwe Westerdijk 7cdb4ec852 Bump plugwise to v0.32.2 (#99973)
* Bump plugwise to v0.32.2

* Adapt number.py to the backend updates

* Update related test-cases

* Update plugwise test-fixtures

* Update test_diagnostics.py
2023-09-12 12:04:35 -04:00
Raman Gupta e6c2833032 Handle disconnects in zwave_js repair flow (#99964)
* Handle disconnects in zwave_js repair flow

* Combine logic to reduce LoC

* only check once
2023-09-12 12:04:33 -04:00
Luke Lashley 0f9d00e4aa Bump python-roborock to 33.2 (#99962)
bump to 33.2
2023-09-12 12:04:32 -04:00
J. Nick Koston 02831ad94f Bump bleak to 0.21.1 (#99960) 2023-09-12 12:04:31 -04:00
Marc Mueller e597a6b640 Update RestrictedPython to 6.2 (#99955) 2023-09-12 12:04:30 -04:00
Ståle Storø Hauknes f0b6367444 Airthings BLE unique id migration (#99832)
* Fix sensor unique id

* Add sensor identifiers

* Migrate entities to new unique id

* Fix linting issues

* Fix crash when migrating entity fails

* Change how entities are migrated

* Remve debug logging

* Remove unneeded async

* Remove migration code from init file

* Add migration code to sensor.py

* Adjust for loops to improve speed

* Bugfixes, improve documentation

* Remove old comment

* Remove unused function parameter

* Address PR feedback

* Add tests

* Improve tests and test data

* Refactor test

* Update logger level

Co-authored-by: J. Nick Koston <nick@koston.org>

* Adjust PR comments

* Address more PR comments

* Address PR comments and adjust tests

* Fix PR comment

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-12 12:04:29 -04:00
puddly 8e6ec01bfb Cache device trigger info during ZHA startup (#99764)
* Do not connect to the radio hardware within `_connect_zigpy_app`

* Make `connect_zigpy_app` public

* Create radio manager instances from config entries

* Cache device triggers on startup

* reorg zha init

* don't reuse gateway

* don't nuke yaml configuration

* review comments

* Fix existing unit tests

* Ensure `app.shutdown` is called, not just `app.disconnect`

* Revert creating group entities and device registry entries early

* Add unit tests

---------

Co-authored-by: David F. Mulcahey <david.mulcahey@icloud.com>
2023-09-12 12:04:28 -04:00
Tiit Rätsep 4c125fda9d Fix Soma cover tilt (#99717) 2023-09-12 12:04:27 -04:00
jan iversen 7235de1a0c Make modbus retry fast on read errors (#99576)
* Fast retry on read errors.

* Review comments.
2023-09-12 12:04:26 -04:00
jan iversen d399ebb8e1 Read modbus data before scan_interval (#99243)
Read before scan_interval.
2023-09-12 12:04:25 -04:00
Michael Arthur 367d893fc8 Bugfix: Electric Kiwi reduce interval so oauth doesn't expire (#99489)
decrease interval time as EK have broken/changed their oauth again
2023-09-12 12:02:03 -04:00
jan iversen d5ff05bdf5 Remove modbus pragma no cover and solve nan (#99221)
* Remove pragma no cover.

* Ruff !

* Review comments.

* update test.

* Review.

* review.

* Add slave test.
2023-09-12 12:02:02 -04:00
Joost Lekkerkerker 71c4f675e0 Use shorthand attributes in SPC (#100217) 2023-09-12 11:01:05 -05:00
Joost Lekkerkerker 4e202eb376 Use shorthand attributes in Yamaha Musiccast (#100220) 2023-09-12 10:35:01 -05:00
Joost Lekkerkerker 6545fba549 Use shorthand attributes in Universal (#100219) 2023-09-12 10:34:41 -05:00
Erik Montnemery 6485320bc4 Improve type annotations in websocket_api tests (#100198) 2023-09-12 17:31:25 +02:00
Joost Lekkerkerker 75951dd67b Use shorthand attributes in Point (#100214) 2023-09-12 10:15:36 -05:00
Joost Lekkerkerker 54c034185f Use shorthand attributes in Isy994 (#100209) 2023-09-12 10:13:13 -05:00
Erik Montnemery 6e6680dc4d Enable asyncio debug mode in tests (#100197) 2023-09-12 10:12:22 -05:00
J. Nick Koston 83ef5450e9 Use shorthand attributes in garadget cover (#100207) 2023-09-12 10:05:31 -05:00
J. Nick Koston e2f7b3c6f8 Use shorthand attributes in buienradar camera (#100205) 2023-09-12 10:05:15 -05:00
J. Nick Koston 085a584d98 Use shorthand attributes in geniushub sensor (#100208) 2023-09-12 10:04:35 -05:00
Joost Lekkerkerker 4e17901fef Use shorthand attribute in Bloomsky (#100203) 2023-09-12 16:37:35 +02:00
Erik Montnemery d495208995 Remove unnecessary block use of pylint disable in onvif (#100194) 2023-09-12 09:19:26 -05:00
jan iversen c178388956 Remove modbus pragma no cover and solve nan (#99221)
* Remove pragma no cover.

* Ruff !

* Review comments.

* update test.

* Review.

* review.

* Add slave test.
2023-09-12 16:05:59 +02:00
jan iversen 9acca1bf58 Make modbus retry fast on read errors (#99576)
* Fast retry on read errors.

* Review comments.
2023-09-12 10:01:15 -04:00
Ståle Storø Hauknes 198532d51d Airthings BLE unique id migration (#99832)
* Fix sensor unique id

* Add sensor identifiers

* Migrate entities to new unique id

* Fix linting issues

* Fix crash when migrating entity fails

* Change how entities are migrated

* Remve debug logging

* Remove unneeded async

* Remove migration code from init file

* Add migration code to sensor.py

* Adjust for loops to improve speed

* Bugfixes, improve documentation

* Remove old comment

* Remove unused function parameter

* Address PR feedback

* Add tests

* Improve tests and test data

* Refactor test

* Update logger level

Co-authored-by: J. Nick Koston <nick@koston.org>

* Adjust PR comments

* Address more PR comments

* Address PR comments and adjust tests

* Fix PR comment

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-12 09:59:54 -04:00
Mike Degatano 2b62285eee Fix addon slug validation (#100070)
* Fix addon slug validation

* Don't redefine compile
2023-09-12 09:59:12 -04:00
Joakim Sørensen 1e2b0b65af Bump hass-nabucasa from 0.70.0 to 0.71.0 (#100193)
Bump hass-nabucasa from 0.70.0 to 0.71.1
2023-09-12 09:58:25 -04:00
Erik Montnemery fabb098ec3 Simplify WS command entity/source (#99439) 2023-09-12 15:39:11 +02:00
Joost Lekkerkerker e143bdf2f5 Use shorthand attributes in Vera (#99893) 2023-09-12 15:23:12 +02:00
Jan Bouwhuis 6b265120b3 Fix entity name attribute on mqtt entity is not removed on update (#100187)
Fix entity name attribute is not remove on update
2023-09-12 15:22:37 +02:00
Joost Lekkerkerker 76c3a638c4 Use shorthand attributes in Smarttub (#99839) 2023-09-12 15:17:57 +02:00
Joost Lekkerkerker b5275016d4 Use shorthand attributes in Twinkly (#99891) 2023-09-12 15:08:18 +02:00
Joost Lekkerkerker 1ccf9cc400 Use shorthand attributes in Squeezebox (#99863) 2023-09-12 15:02:29 +02:00
Joost Lekkerkerker 1cf2f2f8b8 Use shorthand attributes in Songpal (#99849) 2023-09-12 15:00:11 +02:00
Joost Lekkerkerker 1ca505c228 Use shorthand attributes in Wiffi (#99919) 2023-09-12 14:58:03 +02:00
jan iversen 26ada30720 Remove default from deprecated close_comm_on_error (#100188) 2023-09-12 14:12:45 +02:00
Erik Montnemery 6b628f2d29 Remove unnecessary block use of pylint disable in components a-o (#100190) 2023-09-12 14:02:50 +02:00
jan iversen 71207e112e Bring modbus naming in sync with standard (#99285) 2023-09-12 10:59:50 +02:00
Vincent Knoop Pathuis fead9d3a92 Bump Ultraheat to version 0.5.7 (#100172) 2023-09-12 10:45:35 +02:00
dependabot[bot] 0cd73e397b Bump tibdex/github-app-token from 1.8.2 to 2.0.0 (#100099)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-12 10:43:13 +02:00
Erik Montnemery 5bcb4f07a0 Bump hatasmota to 0.7.3 (#100169) 2023-09-12 09:58:05 +02:00
Joost Lekkerkerker 27c430bbac Use shorthand attributes in Smart meter texas (#99838)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-12 09:36:07 +02:00
Alex Yao 5ba573a1b4 Add Life360 Location Update Button (#99559)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: alexyao2015 <alexyao2015@users.noreply.github.com>
2023-09-12 09:34:11 +02:00
Álvaro Fernández Rojas da13afbd3c Add missing AEMET wind gust speed (#100157) 2023-09-12 09:08:06 +02:00
Erik Montnemery 80b03b4acb Adjust tasmota sensor device class and icon mapping (#100168) 2023-09-12 08:59:39 +02:00
J. Nick Koston e8ed4c1ace Bump dbus-fast to 2.6.0 (#100163)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.4.0...v2.6.0
2023-09-12 08:56:02 +02:00
Allen Porter 183b77973f Add configuration flow to Todoist integration (#100094)
* Add config flow to todoist

* Fix service calls for todoist

* Fix configuration entry test setup

* Bump test coverage to 100%

* Apply pr feedback
2023-09-11 22:56:08 -07:00
Raman Gupta 8e43f79f19 Bump zwave-js-server-python to 0.51.2 (#100159) 2023-09-11 23:03:47 -04:00
Jan-Philipp Benecke 5d46e22591 Move airly coordinator to its own file (#99545) 2023-09-11 21:52:02 -05:00
J. Nick Koston 140af44e31 Bump dbus-fast to 2.4.0 (#100158) 2023-09-11 21:40:32 -05:00
J. Nick Koston a20d1a357f Avoid probing ipp printers for unique_id when it is available via mdns (#99982)
* Avoid probing ipp printers for unique_id when it is available via mdns

We would always probe the device in the ipp flow and than
abort if it was already configured. We avoid the probe for
most printers.

* dry

* coverage

* fix test

* add test for updating host
2023-09-11 22:34:23 -04:00
Michael 3d28c6d636 Fix AVM Fritz!Tools update entity (#100151)
* move update entity to coordinator

* fix tests
2023-09-11 22:30:50 -04:00
puddly 15b9963a24 Bump ZHA dependencies (#100156) 2023-09-11 22:23:55 -04:00
Raman Gupta e231da42e1 Handle disconnects in zwave_js repair flow (#99964)
* Handle disconnects in zwave_js repair flow

* Combine logic to reduce LoC

* only check once
2023-09-12 04:21:44 +02:00
Bram Kragten e0e05f9546 Update frontend to 20230911.0 (#100139) 2023-09-11 23:06:21 +02:00
Jan-Philipp Benecke 4779cdf2ae Let the discovergy config flow test end with create entry (#100153) 2023-09-11 23:06:06 +02:00
Álvaro Fernández Rojas 851dc4cdf4 Use library for condition/wind direction conversions (#100117)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-11 22:26:58 +02:00
Joost Lekkerkerker c347c78b6d Split Withings common file out to their own file (#100150)
* Split common out in logical pieces

* Split common out in logical pieces

* Split common out in logical pieces
2023-09-11 22:25:08 +02:00
Jan-Philipp Benecke 5a56adb3f5 Refactor discovergy config flow test to use parametrize (#100115)
* Refactor discovergy config flow test to use parametrize

* Formatting

* Implement code review sugesstions
2023-09-11 21:53:07 +02:00
Robert Svensson 13cd873e38 Fix devices not always reporting IP - bump aiounifi to v62 (#100149) 2023-09-11 21:50:29 +02:00
J. Nick Koston 0571a75c99 Bump zeroconf to 0.108.0 (#100148) 2023-09-11 14:42:13 -05:00
puddly cbb28b6943 Migrate internal ZHA data to a dataclasses (#100127)
* Cache device triggers on startup

* reorg zha init

* don't reuse gateway

* don't nuke yaml configuration

* review comments

* Add unit tests

* Do not cache device and entity registries

* [WIP] Wrap ZHA data in a dataclass

* [WIP] Get unit tests passing

* Use a helper function for getting the gateway object to fix annotations

* Remove `bridge_id`

* Fix typing issues with entity references in group websocket info

* Use `Platform` instead of `str` for entity platform matching

* Use `get_zha_gateway` in a few more places

* Fix flaky unit test

* Use `slots` for ZHA data

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: David F. Mulcahey <david.mulcahey@icloud.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-11 21:39:33 +02:00
Joost Lekkerkerker 5c206de906 Decouple Withings webhook tests from YAML (#100143) 2023-09-11 14:06:20 -05:00
Niels Perfors ad5e9e9f5b Remove code owner Verisure (#100145) 2023-09-11 13:43:59 -05:00
J. Nick Koston d5fc92eb90 Bump zeroconf to 0.107.0 (#100134)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.105.0...0.107.0
2023-09-11 20:34:35 +02:00
J. Nick Koston fdb9ac20c3 Migrate mobile_app to use json helper (#100136) 2023-09-11 12:08:48 -05:00
TJ Horner 17db20fdd7 Add Apple WeatherKit integration (#99895) 2023-09-11 12:06:55 -05:00
J. Nick Koston 0fe88d60ac Guard expensive debug logging with isEnabledFor in alexa (#100137) 2023-09-11 11:39:10 -05:00
Erik Montnemery 18e08bc79f Bump hatasmota to 0.7.2 (#100129) 2023-09-11 11:35:48 -05:00
starkillerOG 56678851af Fix inverse naming of function in Reolink (#100113) 2023-09-11 18:03:22 +02:00
Erik Montnemery 6ccb74997c Fix ScrapeSensor.async_added_to_hass (#100125) 2023-09-11 16:58:56 +02:00
Álvaro Fernández Rojas 9c65e59cc8 Remove AEMET daily precipitation sensor test (#100118) 2023-09-11 09:46:59 -05:00
Robert Svensson d8445a79fc UniFi streamline loading platforms (#100071)
* Streamline loading platforms

* Move platform registration logic to UnifiController class
2023-09-11 15:55:27 +02:00
J. Nick Koston 791482406c Cleanup isinstance checks in zeroconf (#100090) 2023-09-11 08:13:25 -05:00
J. Nick Koston f4a7bb47fe Bump zeroconf to 0.105.0 (#100084) 2023-09-11 08:09:29 -05:00
J. Nick Koston 64fde640ca Bump pyunifiprotect to 4.20.0 (#100092) 2023-09-11 08:08:19 -05:00
puddly a6f325d05a Cache device trigger info during ZHA startup (#99764)
* Do not connect to the radio hardware within `_connect_zigpy_app`

* Make `connect_zigpy_app` public

* Create radio manager instances from config entries

* Cache device triggers on startup

* reorg zha init

* don't reuse gateway

* don't nuke yaml configuration

* review comments

* Fix existing unit tests

* Ensure `app.shutdown` is called, not just `app.disconnect`

* Revert creating group entities and device registry entries early

* Add unit tests

---------

Co-authored-by: David F. Mulcahey <david.mulcahey@icloud.com>
2023-09-11 14:36:01 +02:00
Erik Montnemery 42046a3ce2 Fix TriggerEntity.async_added_to_hass (#100119) 2023-09-11 14:33:43 +02:00
Joost Lekkerkerker a6e9bf830c Decouple Withings binary sensor test from YAML (#100120) 2023-09-11 13:58:47 +02:00
Joost Lekkerkerker 5781e5e03e Use json to store Withings test data fixtures (#99998)
* Decouple Withings sensor tests from yaml

* Improve Withings config flow tests

* Improve Withings config flow tests

* Fix feedback

* Use fixtures to store Withings testdata structures

* Use fixtures to store Withings testdata structures

* Use JSON

* Fix

* Use load_json_object_fixture
2023-09-11 12:36:37 +02:00
Marc Mueller 58072189fc Update black to 23.9.1 (#100108) 2023-09-11 12:14:50 +02:00
Tiit Rätsep 10bb8f5396 Fix Soma cover tilt (#99717) 2023-09-11 11:15:46 +02:00
Jan-Philipp Benecke a4cb06d09f Also handle DiscovergyClientError as UpdateFailed (#100038)
* Also handle DiscovergyClientError as UpdateFailed

* Change AccessTokenExpired to InvalidLogin

* Also add DiscovergyClientError to config flow and tests
2023-09-11 11:00:50 +02:00
Jan Bouwhuis 20d0ebe3fa Add TYPE_CHECKING condition on type assertions for mqtt (#100107)
Add TYPE_CHECKING condition on type assertions
2023-09-11 10:58:33 +02:00
Rami Mosleh eb0099dee8 Move smtp constants to const.py (#99542) 2023-09-11 09:36:55 +02:00
Joost Lekkerkerker 43fe8d16c3 Use shorthand attributes in ZAMG (#99925)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-11 09:32:43 +02:00
Greig Sheridan f121e891fd Remove duplicated word in enphase description text (#100098) 2023-09-11 09:16:21 +02:00
Simone Chemelli 0fb678abfc Remove Comelit alarm data retrieval (#100067)
fix: remove alarm data retrieval
2023-09-11 08:49:10 +02:00
Michael Arthur 8beace265b Add unit tests for sensors Electric Kiwi (#97723)
* add unit tests for sensors

* newline long strings

* unit test check and move time

* rename entry to entity

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

* add types to test

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

* fix newlined f strings

* remove if statement

* add some more explaination

* Update datetime

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

* Simpler time update

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

* add missing datetime import

* Update docustring - grammar

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

* address comments and issues raised

* address docstrings too long

* Fix docstring

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-11 01:30:25 +02:00
jimmyd-be 6c45f43c5d Renson number entity (#99358)
* Starting number sensor

* Filter change config

* Add translation to number entity

* add number entity to .coveragerc

* Moved has_entity_name to description + changed name of entity

* Add self.coordinator.async_request_refresh() after changing value

* Add device calss and unit of measurement to number entity
2023-09-11 01:24:57 +02:00
G Johansson 73a695d857 Fix incorrect docstring in TV Camera sensor test (#100083) 2023-09-11 01:22:33 +02:00
G Johansson 954293f77e Add binary sensors to Trafikverket Camera (#100082) 2023-09-11 01:12:19 +02:00
G Johansson 0fae65abde Fix missed name to translation key in Sensibo (#100080) 2023-09-11 01:10:59 +02:00
G Johansson 4ebb6bb823 Add sensors to Trafikverket Camera (#100078)
* Add sensors to Trafikverket Camera

* Remove active

* Fix test len
2023-09-11 00:56:12 +02:00
Matrix 45fc158823 Add yolink siren battery entity (#99310) 2023-09-11 00:31:58 +02:00
J. Nick Koston 80e05716c0 Bump dbus-fast to 2.2.0 (#100076) 2023-09-10 16:38:39 -05:00
dependabot[bot] 4474face88 Bump tibdex/github-app-token from 1.8.0 to 1.8.2 (#99434)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-10 22:23:18 +02:00
J. Nick Koston 2bda34b98a Bump flux_led to 1.0.4 (#100050) 2023-09-10 21:45:37 +02:00
J. Nick Koston 02a4289c6e Bump zeroconf to 0.104.0 (#100068) 2023-09-10 21:32:40 +02:00
J. Nick Koston 3b8d99dcd8 Add __slots__ to translation cache (#100069) 2023-09-10 20:46:55 +02:00
Álvaro Fernández Rojas 3238386f48 Add water heater support to Airzone (#98401)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-10 12:31:11 -05:00
Simone Chemelli a5a82b94ac Bump aiovodafone to 0.2.0 (#100062)
bump aiovodafone to 0.2.0
2023-09-10 19:09:21 +02:00
J. Nick Koston 4f0cd5589c Bump aiohomekit to 3.0.3 (#100047) 2023-09-10 12:01:12 -05:00
Tony 3b25262d6c Address ruckus_unleashed late review (#99411) 2023-09-10 18:49:17 +02:00
Jan-Philipp Benecke 7acc606dd8 Remove unnecessary argument from discovergy coordinator (#100058) 2023-09-10 11:25:55 -05:00
Jan Bouwhuis 63852c565f Use hass.loop.create_future() in envisalink (#100057) 2023-09-10 11:25:25 -05:00
J. Nick Koston 50382a609c Create recorder futures with loop.create_future() (#100049) 2023-09-10 11:24:57 -05:00
Aidan Timson 51899ce5ad Add System Bridge notifications (#82318)
* System bridge notifications

Add notify platform

Add file to coverage

Restore and fix lint after rebase

Cleanup

Use entity to register notify service

Fix pylint

Update package to 3.6.0 and add audio actions

Update package to fix conflict

Remove addition

* Run pre-commit run --all-files

* Update homeassistant/components/system_bridge/notify.py

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

* Format

* Fix

* Remove duplicate import

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-10 17:32:52 +02:00
Jan Bouwhuis 6899245020 Use hass.loop.create_future() for bluetooth (#100054) 2023-09-10 17:16:16 +02:00
Jan Bouwhuis 1a5f093397 Uer hass.loop.create_future() for MQTT client (#100053) 2023-09-10 17:15:46 +02:00
Joost Lekkerkerker 05635c913f Add device to OpenUV (#100027) 2023-09-10 17:10:45 +02:00
Aidan Timson 140bc03fb1 Bump systembridgeconnector to 3.8.2 (#100051)
Update systembridgeconnector to 3.8.2
2023-09-10 17:02:42 +02:00
Joost Lekkerkerker b165c28a7c Improve Withings config flow tests (#99697)
* Decouple Withings sensor tests from yaml

* Improve Withings config flow tests

* Improve Withings config flow tests

* Fix feedback

* Rename CONF_PROFILE to PROFILE
2023-09-10 16:18:45 +02:00
Yuxiang Zhu 739eb28b90 Make homekit RTP/RTCP source ports more deterministic (#99989) 2023-09-10 09:07:35 -05:00
mkmer 59e87c0864 Raise HomeAssistantError/ValueError for service calls in Honeywell (#100041) 2023-09-10 15:58:59 +02:00
mkmer d56ad14673 Add diagnostic platform to Honeywell (#100046)
Add diagnostic platform
2023-09-10 15:49:56 +02:00
Marc Mueller ccca12cf31 Update bthome-ble to 3.1.1 (#100042) 2023-09-10 08:42:47 -05:00
Diogo Gomes 553cdfbf99 Always update unit of measurement of the utility_meter on state change (#99102) 2023-09-10 08:29:38 -05:00
J. Nick Koston 5e81499855 Avoid json_decoder_fallback in /api/states (#100018) 2023-09-10 08:25:23 -05:00
J. Nick Koston ad4619c038 Speed up serializing event messages (#100017) 2023-09-10 08:25:13 -05:00
fender4645 e4af50f955 Add debug message to doods (#100002)
* Debug message if no detections found or
no output file configured

* fix formatting

* black

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2023-09-10 12:58:18 +02:00
Bouwe Westerdijk 446ca2e9ad Enable strict typing in Plugwise (#100033)
Add plugwise to .strict-typing
2023-09-10 12:16:59 +02:00
Bouwe Westerdijk c01a9987b5 Add Plugwise temperature_offset number (#100029)
Add temperature_offset number
2023-09-10 11:34:09 +02:00
elmurato 1f3b3b1be3 Add sensor entity descriptions in Minecraft Server (#99971)
* Add sensor entity descriptions

* Fix review findings

* Fix type of value function to avoid inline lambda if conditions and add attribute function to avoid extra sensor entity class

* Correct name of binary sensor base entity

* Simplify adding of entities in platforms

* Do not use keyword arguments while adding entities
2023-09-10 10:20:26 +02:00
J. Nick Koston 4153181cd3 Bump aiodiscover to 1.5.1 (#100020)
changelog: https://github.com/bdraco/aiodiscover/compare/v1.4.16...v1.5.1
2023-09-10 10:17:59 +02:00
J. Nick Koston 3b588a839c Bump zeroconf to 0.103.0 (#100012) 2023-09-09 19:49:26 -05:00
Luke Lashley 602e36aa12 Add new sensors to Roborock (#99983)
* Add 3 new sensor types

* add state options for dock error

* add unit of measurement
2023-09-10 00:40:28 +02:00
Kevin Worrel 092580a3ed Bump screenlogicpy to v0.9.0 (#92475)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-09 17:39:54 -05:00
Joost Lekkerkerker 8de3945bd4 Fix renamed code owner for Versasense (#99976)
Fix renamed code owner
2023-09-10 00:38:57 +02:00
Joost Lekkerkerker 6c613fd255 Move static attributes outside of ws66i constructor (#99922)
Move static attributes outside of ws66i cosntructor
2023-09-10 00:38:43 +02:00
Joost Lekkerkerker 4bc079b219 Use snapshot assertion in Plugwise diagnostic test (#100008)
* Use snapshot assertion in Plugwise diagnostic test

* Use snapshot assertion in Plugwise diagnostic test
2023-09-10 00:38:17 +02:00
J. Nick Koston e3f228ea52 Switch config_entries to use loop.create_future() (#100011) 2023-09-09 17:34:49 -05:00
J. Nick Koston b370244ed4 Switch ESPHome Bluetooth to use loop.create_future() (#100010) 2023-09-09 17:34:31 -05:00
J. Nick Koston b66437ff7b Bump yalexs-ble to 2.3.0 (#100007) 2023-09-09 17:34:11 -05:00
Bouwe Westerdijk 081d0bdce5 Bump plugwise to v0.32.2 (#99973)
* Bump plugwise to v0.32.2

* Adapt number.py to the backend updates

* Update related test-cases

* Update plugwise test-fixtures

* Update test_diagnostics.py
2023-09-09 23:50:26 +02:00
Joost Lekkerkerker af8fd6c2d9 Restore airtouch4 codeowner (#99984) 2023-09-09 23:22:03 +02:00
Joost Lekkerkerker eeaca8ae3c Use shorthand attributes in Vicare (#99915) 2023-09-09 23:18:41 +02:00
elmurato 23f4ccd4f1 Fix late review findings in Minecraft Server (#99865) 2023-09-09 22:32:13 +02:00
J. Nick Koston aff49cb67a Bump bluetooth-auto-recovery to 1.2.3 (#99979)
fixes #99977
2023-09-09 19:23:15 +02:00
Kevin Stillhammer 862506af61 Bump pywaze to 0.4.0 (#99995)
bump pywaze from 0.3.0 to 0.4.0
2023-09-09 19:16:27 +02:00
Joost Lekkerkerker a62ffeaa99 Decouple Withings sensor tests from yaml (#99691)
* Decouple Withings sensor tests from yaml

* Fix feedback

* Add pytest fixture

* Update tests/components/withings/test_sensor.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update snapshots

* Update snapshots

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-09-09 19:11:28 +02:00
Joost Lekkerkerker 868fdd81da Add entity translations to withings (#99194)
* Add entity translations to Withings

* Add entity translations to Withings
2023-09-09 18:48:09 +02:00
jan iversen 743ce46311 Deprecate CLOSE_COMM_ON_ERROR (#99946) 2023-09-09 18:34:01 +02:00
Luke Lashley 71726130c3 Add binary sensors to Roborock (#99990)
* init binary sensors commit

* add binary sensors

* fix test

* Apply suggestions from code review

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-09 18:12:14 +02:00
Joost Lekkerkerker 9be16d9d42 Add config flow to WAQI (#98220)
* Migrate WAQI to aiowaqi library

* Migrate WAQI to aiowaqi library

* Migrate WAQI to aiowaqi library

* Add config flow to WAQI

* Finish config flow

* Add tests

* Add tests

* Fix ruff

* Add issues on failing to import

* Add issues on failing to import

* Add issues on failing to import

* Add importing issue

* Finish coverage

* Remove url from translation string

* Fix feedback

* Fix feedback
2023-09-09 17:49:54 +02:00
jan iversen fdddbd7363 Bump pymodbus to v3.5.2 (#99988) 2023-09-09 17:45:19 +02:00
J. Nick Koston bb2cdbe7bc Change SSDP discovery scan interval to 10 minutes (#99975)
* Change SSDP discovery scan interval to 10 minutes

The first version used a scan interval of 1 minute which we
increased to 2 minutes because it generated too much traffic.

We kept it at 2 minutes because Sonos historicly needed to
get SSDP discovery to stay alive. This is no longer the case
as Sonos has multiple ways to keep from going unavailable:

- mDNS support was added
- We now listen for SSDP alive and good bye all the time
- Each incoming packet from the device keeps it alive now
- We probe when we think the device might be offline

This means it should no longer be necessary to have such a
frequent scan which is a drag on all devices on the network
since its multicast

* adjust tests
2023-09-09 10:54:40 -04:00
G Johansson e425662494 Bump pytrafikverket to 0.3.6 (#99869)
* Bump pytrafikverket to 0.3.6

* Fix config flow names

* str
2023-09-09 16:18:47 +02:00
Thomas Roager 74a7bccd65 Add zdb5100 light to zwave_js (#97586)
* added zdb5100 light

* added light to zdb5100

* Update tests/components/zwave_js/conftest.py

agree

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

* Update tests/components/zwave_js/conftest.py

agree

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

* Rename logic_group_zdb5100_light_state.json to logic_group_zdb5100_state.json

name change

* Update tests/components/zwave_js/test_light.py

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

* Update test_light.py

updated test and state

* Update test_light.py

incorrect endpoint

* changed the state

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-09 16:01:32 +02:00
Marc Mueller c77eb70886 Add black caching [ci] (#99967)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-09 08:36:47 -05:00
Marc Mueller 483e9c92bd Update black to 23.9.0 (#99965) 2023-09-09 07:53:25 -05:00
Luke Lashley dced72f2dd Bump python-roborock to 33.2 (#99962)
bump to 33.2
2023-09-09 14:15:28 +02:00
Robert Svensson cf47a6c515 Add UniFi device uptime and temperature sensors (#99307)
* Add UniFi device uptime and temperature sensors

* Add native_unit_of_measurement to temperature
Remove seconds and milliseconds from device uptime
2023-09-09 11:12:44 +02:00
J. Nick Koston f903cd6fc0 Bump dbus-fast to 2.0.1 (#99894) 2023-09-08 21:16:21 -05:00
J. Nick Koston 694638cbc0 Bump bleak to 0.21.1 (#99960) 2023-09-08 19:39:30 -05:00
Marc Mueller e163e00acd Update RestrictedPython to 6.2 (#99955) 2023-09-08 18:51:26 -05:00
Joost Lekkerkerker 75f923a86e Use device class translations for Devolo Update entity (#99235) 2023-09-09 01:16:51 +02:00
elmurato d59aa958b6 Add tests for Minecraft Server entry migration from v1 to v2 (#99954) 2023-09-08 23:03:27 +02:00
Bram Kragten 9e6ac1d7ec 2023.9.1 (#99950) 2023-09-08 22:46:00 +02:00
Daniel Hjelseth Høyer 2dcf6a6f5b Bump millheater to 0.11.2 (#99683)
Update Mill lib

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2023-09-08 21:17:02 +02:00
Bram Kragten 6e952134e7 Bumped version to 2023.9.1 2023-09-08 21:03:27 +02:00
Erik Montnemery ff393f6b86 Bump hatasmota to 0.7.1 (#99818) 2023-09-08 21:02:43 +02:00
Erik Montnemery f753f5af6e Make WS command render_template not give up if initial render raises (#99808) 2023-09-08 21:02:42 +02:00
Erik Montnemery 1654ef7759 Make WS command render_template not give up if initial render raises (#99808) 2023-09-08 21:02:06 +02:00
Erik Montnemery b317e04cf1 Bump hatasmota to 0.7.1 (#99818) 2023-09-08 21:01:34 +02:00
J. Nick Koston f0ee20c15c Bump orjson to 3.9.7 (#99938) 2023-09-08 13:59:35 -05:00
J. Nick Koston 19c2bbcd93 Bump zeroconf to 0.98.0 (#99748) 2023-09-08 20:57:03 +02:00
J. Nick Koston 7ded08464f Bump zeroconf to 0.97.0 (#99554)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.96.0...0.97.0
2023-09-08 20:56:23 +02:00
J. Nick Koston c1447d5ce4 Bump zeroconf to 0.96.0 (#99549) 2023-09-08 20:56:02 +02:00
J. Nick Koston 55533350d2 Bump zeroconf to 0.93.1 (#99516)
* Bump zeroconf to 0.92.0

changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.91.1...0.92.0

* drop unused argument

* Update tests/components/thread/test_diagnostics.py

* lint

* again

* bump again since actions failed to release the wheels
2023-09-08 20:55:01 +02:00
Jan Bouwhuis 06109d22fd Fix key error MQTT binary_sensor when no name is set (#99943)
Log entitty ID when instead of name
2023-09-08 20:53:06 +02:00
Joost Lekkerkerker f1bae7d37b Bump pyenphase to v1.11.0 (#99941) 2023-09-08 20:53:05 +02:00
jan iversen 0e4bf58736 Bump pymodbus v.3.5.1 (#99940) 2023-09-08 20:53:04 +02:00
jan iversen 50c34ab419 Bump pymodbus v3.5.0 (#99343)
Bump pymodbus v3.5.0.
2023-09-08 20:52:31 +02:00
Bram Kragten fed061f69c Update frontend to 20230908.0 (#99939) 2023-09-08 20:51:08 +02:00
J. Nick Koston 330e527560 Upgrade bluetooth deps to fix timeout behavior on py3.11 (#99879) 2023-09-08 20:51:06 +02:00
Jan Bouwhuis 110a17ad6d Fix NOAA tides warnings (#99856) 2023-09-08 20:51:05 +02:00
puddly dccccda502 Bump ZHA dependencies (#99855) 2023-09-08 20:51:04 +02:00
J. Nick Koston 02b6bbdcc6 Bump dbus-fast to 1.95.2 (#99852) 2023-09-08 20:51:03 +02:00
J. Nick Koston cadf56c989 Bump dbus-fast to 1.95.0 (#99749) 2023-09-08 20:50:18 +02:00
Simone Chemelli d50f9f4e51 Bump aiovodafone to 0.1.0 (#99851)
* bump aiovodafone to 0.1.0

* fix tests
2023-09-08 20:46:12 +02:00
J. Nick Koston 7dc7060825 Fix missing name and identifiers for ELKM1 connected devices (#99828) 2023-09-08 20:46:11 +02:00
Joost Lekkerkerker 0b4fedccff Use correct config entry id in Livisi (#99812) 2023-09-08 20:46:10 +02:00
Erik Montnemery 850c095988 Improve error handling in /api/states POST (#99810) 2023-09-08 20:46:09 +02:00
Erik Montnemery 31fb9d12ea Always set severity level flag on render_template error events (#99804) 2023-09-08 20:46:08 +02:00
lymanepp 590ac173ed Fix missing dew point and humidity in tomorrowio forecasts (#99793)
* Fix missing dew point and humidity in tomorrowio forecasts

* Add assertion for correct parameters to realtime_and_all_forecasts method
2023-09-08 20:46:07 +02:00
swamplynx 45e723135c Bump pylutron-caseta to v0.18.2 (#99789)
* Bump pylutron-caseta to v0.18.2

Minor bump to pylutron-caseta requirement to support wall mounted occupancy sensor device type in latest RA3 firmware.

* Update requirements_all.txt for pylutron-caseta 0.18.2

* Update requirements_test_all.txt for pylutron-caseta 0.18.2
2023-09-08 20:46:06 +02:00
J. Nick Koston c217ea7b38 Bump pyenphase to 1.9.3 (#99787)
* Bump pyenphase to 1.9.2

changelog: https://github.com/pyenphase/pyenphase/compare/v1.9.1...v1.9.2

Handle the case where the user has manually specified a password for
local auth with firmware < 7.x but its incorrect.

The integration previously accepted any wrong password and would
reduce functionality down to what works without a password. We now
preserve that behavior to avoid breaking existing installs.

* bump
2023-09-08 20:46:05 +02:00
Aaron Bach c740b79e1e Bump aiorecollect to 2023.09.0 (#99780) 2023-09-08 20:46:04 +02:00
Pawel 7c7fed0322 Add support for more busy codes for Epson (#99771)
add support for more busy codes
2023-09-08 20:46:02 +02:00
J. Nick Koston a25f6bbd09 Bump sense_energy to 0.12.1 (#99763) 2023-09-08 20:46:01 +02:00
Quentame fb56e48e07 Fix Freebox Home battery sensor (#99756) 2023-09-08 20:44:43 +02:00
Quentame 718f1a6673 Fix Freebox disk free space sensor (#99757)
* Fix Freebox disk free space sensor

* Add initial value assert to check results
2023-09-08 20:44:19 +02:00
Joost Lekkerkerker c741214ab5 Revert "Bump pyoverkiz to 1.10.1 (#97916)" (#99742) 2023-09-08 19:59:32 +02:00
Jan Bouwhuis 64408cab10 Handle alexa invalid climate temp adjustment (#99740)
* Handle temp adjust when target state not set

* Update homeassistant/components/alexa/errors.py

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

* black

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-08 19:59:30 +02:00
Marc Mueller 8b69f9fda8 Fix tradfri asyncio.wait (#99730) 2023-09-08 19:59:29 +02:00
David Knowles 39669bc788 Fix the Hydrawise status sensor (#99271) 2023-09-08 19:59:28 +02:00
J. Nick Koston d1ac4c9c46 Switch a few ssdp calls to use get_lower (#99931)
get_lower avoids lower casing already lower-cased strings
2023-09-08 13:59:25 -04:00
jan iversen be4ea32049 Bump pymodbus v.3.5.1 (#99940) 2023-09-08 19:20:06 +02:00
Jan Bouwhuis 677431ed71 Fix key error MQTT binary_sensor when no name is set (#99943)
Log entitty ID when instead of name
2023-09-08 19:10:17 +02:00
J. Nick Koston bd1d8675a9 Avoid many hass.is_stopping calls in the discovery helper (#99929)
async_has_matching_flow is more likely to be True than hass.is_stopping

This does not make much difference but it was adding noise to a profile
that I am digging into to look for another issue
2023-09-08 13:09:29 -04:00
Joost Lekkerkerker 9a45e2cf91 Bump pyenphase to v1.11.0 (#99941) 2023-09-08 19:08:32 +02:00
J. Nick Koston d624bbbc0c Migrate elkm1 to use a dataclass for integration data (#99830)
* Migrate elkm1 to use a dataclass for integration data

* fix unsaved

* slotted

* missing coveragerc

* Revert "missing coveragerc"

This reverts commit 3397b40309.
2023-09-08 13:07:09 -04:00
J. Nick Koston 3d403c9b60 Refactor entity service calls to reduce complexity (#99783)
* Refactor entity service calls to reduce complexity

gets rid of the noqa C901

* Refactor entity service calls to reduce complexity

gets rid of the noqa C901

* short
2023-09-08 13:04:53 -04:00
Bram Kragten 16f7bc7bf8 Update frontend to 20230908.0 (#99939) 2023-09-08 18:59:08 +02:00
Joost Lekkerkerker 38247ae868 Use shorthand attributes in Volumio (#99918) 2023-09-08 17:31:57 +02:00
Joost Lekkerkerker c6f8766b1e Use shorthand attributes in Zerproc (#99926) 2023-09-08 17:27:18 +02:00
Joost Lekkerkerker 5f6f2c2cab Use shorthand attributes in Wolflink (#99921) 2023-09-08 14:38:09 +02:00
Joost Lekkerkerker 5ddaf52b27 Use shorthand attributes in Wilight (#99920) 2023-09-08 14:29:59 +02:00
Michael Hansen e69c88a0d2 Use aliases when listing pipeline languages (#99672) 2023-09-08 08:22:08 -04:00
J. Nick Koston 98ff3e233d Fix missing name and identifiers for ELKM1 connected devices (#99828) 2023-09-08 13:32:21 +02:00
J. Nick Koston 8742c550be Upgrade bluetooth deps to fix timeout behavior on py3.11 (#99879) 2023-09-08 13:25:25 +02:00
dependabot[bot] 67de96adfa Bump actions/cache from 3.3.1 to 3.3.2 (#99903) 2023-09-08 13:18:26 +02:00
Ali Yousuf 47a75cc064 Add more options to Islamic Prayer Times (#95156) 2023-09-08 13:07:33 +02:00
Joost Lekkerkerker 0cf32e74d6 Use shorthand attributes in Tp-link (#99888) 2023-09-08 12:36:46 +02:00
Joost Lekkerkerker b2c3d95911 Use shorthand attributes in UPB (#99892) 2023-09-08 11:33:59 +02:00
Sam Crang b2b57c5f87 Allow exporting of update domain to Prometheus (#99400) 2023-09-07 20:43:47 -07:00
lymanepp b76ba002e2 Fix missing dew point and humidity in tomorrowio forecasts (#99793)
* Fix missing dew point and humidity in tomorrowio forecasts

* Add assertion for correct parameters to realtime_and_all_forecasts method
2023-09-07 22:12:18 -04:00
Joost Lekkerkerker 432894a401 Use shorthand attributes in SRP Energy (#99881) 2023-09-08 01:20:22 +02:00
Joost Lekkerkerker 92628ea068 Use shorthand attributes in Starline (#99882) 2023-09-08 01:16:35 +02:00
Joost Lekkerkerker 4e826f1704 Use shorthand attributes in Syncthing (#99883) 2023-09-08 01:16:08 +02:00
Joost Lekkerkerker 9e8a8012df Use shorthand attributes in Syncthru (#99884) 2023-09-08 01:15:58 +02:00
Joost Lekkerkerker a3d6c6192e Use shorthand attributes in Tado (#99886) 2023-09-08 01:15:49 +02:00
Joost Lekkerkerker 56f05bee91 Use shorthand attributes in Tradfri (#99890) 2023-09-08 01:15:34 +02:00
Joost Lekkerkerker c2b119bfaf Use shorthand attributes in Tp-link Omada (#99889) 2023-09-08 01:07:15 +02:00
Joost Lekkerkerker 5a66aac330 Use shorthand attributes in Telldus live (#99887) 2023-09-08 01:02:03 +02:00
Simone Chemelli a82cd48282 Bump aiovodafone to 0.1.0 (#99851)
* bump aiovodafone to 0.1.0

* fix tests
2023-09-08 00:32:15 +02:00
J. Nick Koston 9d5595fd7d Bump zeroconf to 0.102.0 (#99875) 2023-09-07 16:08:53 -05:00
Jan Bouwhuis cd8426152f Fix NOAA tides warnings (#99856) 2023-09-07 21:49:03 +02:00
mkmer 4ce9c1f304 Add Diagnostic platform to Aladdin Connect (#99682)
* Add diagnostics platform

* Add diagnostic platform

* Add raw data to diagnostics

* Remove config data
bump aioaladdinconnect, use new doors property for diag

* remove unnecessary component config
refactor diag output
2023-09-07 21:27:41 +02:00
jan iversen 77180a73b7 Modbus scale parameter cuts decimals (#99758) 2023-09-07 20:56:00 +02:00
jimmyd-be 1c27a0339d Renson fan (#94495)
* Add fan feature

* Changed order of platform

* Use super()._handle_coordinator_update()

* format file

* Set _attr_has_entity_name

* Cleanup Fan code

* Refresh after setting ventilation speed + translation

* remove unused translation key
2023-09-07 20:37:14 +02:00
G Johansson 0dc8e8dabe Add device class and UoM in Sensibo Number entities (#99861)
* device class and uom number platform

* icons
2023-09-07 20:34:23 +02:00
J. Nick Koston 54bd7c9af0 Bump dbus-fast to 1.95.2 (#99852) 2023-09-07 13:27:29 -05:00
J. Nick Koston c68d96cf09 Bump zeroconf to 0.99.0 (#99853) 2023-09-07 13:25:29 -05:00
Joost Lekkerkerker 4017473d51 Use str instead of string placeholders in solaredge (#99843) 2023-09-07 20:00:43 +02:00
Joost Lekkerkerker 66d16108be Use shorthand attributes in Rainforest eagle (#99825) 2023-09-07 19:52:12 +02:00
Joost Lekkerkerker 02e077daab Use shorthand attributes in Ring (#99829) 2023-09-07 19:51:35 +02:00
Joost Lekkerkerker a00cbe2677 Move shorthand attributes out of Snooz constructor (#99842) 2023-09-07 19:49:18 +02:00
Joost Lekkerkerker dcd00546ba Use shorthand attributes in Sonarr (#99844) 2023-09-07 19:47:56 +02:00
puddly e8c4ddf05c Bump ZHA dependencies (#99855) 2023-09-07 19:22:24 +02:00
Joost Lekkerkerker 94aec3e590 Use shorthand attributes in Opentherm gateway (#99630) 2023-09-07 18:30:58 +02:00
Joost Lekkerkerker c567a2c3d4 Move unit of temperature to descriptions in Sensibo (#99835) 2023-09-07 17:36:07 +02:00
Quentame c3e14d0514 Fix Freebox Home battery sensor (#99756) 2023-09-07 17:28:50 +02:00
Joost Lekkerkerker 69f6a115b6 Move shorthand attributes out of constructor in Sensibo (#99834)
Use shorthand attributes in Sensibo
2023-09-07 17:28:13 +02:00
Joost Lekkerkerker 73651dbffd Use shorthand attributes in Snapcast (#99840) 2023-09-07 16:37:30 +02:00
Joost Lekkerkerker d9b48b03f7 Use shorthand attributes in Rachio (#99823) 2023-09-07 09:20:57 -05:00
Joost Lekkerkerker 2a3ebbc26c Use shorthand attributes in SharkIQ (#99836) 2023-09-07 16:08:44 +02:00
Joost Lekkerkerker 114b5bd1f0 Use shorthand attributes in Roomba (#99831) 2023-09-07 15:56:40 +02:00
Joost Lekkerkerker 1fe17b5bed Use shorthand attributes in Sense (#99833) 2023-09-07 15:56:21 +02:00
Joost Lekkerkerker 526b587170 Remove unused variable from rainbird (#99824) 2023-09-07 15:32:03 +02:00
Jan Rieger 0d6f202eb3 Change AVM FRITZ!Box Call monitor sensor into an enum (#99762)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-09-07 15:26:57 +02:00
Marc Mueller c9a1836d45 Update coverage to 7.3.1 (#99805) 2023-09-07 14:54:56 +02:00
Joost Lekkerkerker 40a3d97230 Use shorthand attributes in Plex (#99769)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-07 13:55:16 +02:00
Joost Lekkerkerker 8a4cd913b8 Use shorthand attributes in Hisense (#99355) 2023-09-07 13:53:44 +02:00
Erik Montnemery 368acaf6fd Improve error handling in /api/states POST (#99810) 2023-09-07 13:33:38 +02:00
Erik Montnemery eee5705458 Fix typo in TrackTemplateResultInfo (#99809) 2023-09-07 13:00:26 +02:00
Joost Lekkerkerker 306c7cd9a9 Use correct config entry id in Livisi (#99812) 2023-09-07 12:45:47 +02:00
Pawel dfee5d06a6 Add support for more busy codes for Epson (#99771)
add support for more busy codes
2023-09-07 12:45:31 +02:00
elmurato 7c3605c82e Use config entry ID as unique ID and remove dependency to getmac in Minecraft Server (#97837)
* Use config entry ID as unique ID

* Add entry migration to v2 and and remove helper module

* Remove unneeded strings

* Add asserts for config, device and entity entries and improve comments

* Add debug log for config entry migration

* Reset config entry unique ID and use config entry ID instead

* Remove unnecessary unique ID debug log

* Revert usage of constants for tranlation keys and use dash as delimiter for entity unique id suffix

* Revert "Revert usage of constants for tranlation keys and use dash as delimiter for entity unique id suffix"

This reverts commit 07de334606054097e914404da04950e952bef6d2.

* Remove unused logger in entity module
2023-09-07 12:22:46 +02:00
swamplynx e8dfa7e2c8 Bump pylutron-caseta to v0.18.2 (#99789)
* Bump pylutron-caseta to v0.18.2

Minor bump to pylutron-caseta requirement to support wall mounted occupancy sensor device type in latest RA3 firmware.

* Update requirements_all.txt for pylutron-caseta 0.18.2

* Update requirements_test_all.txt for pylutron-caseta 0.18.2
2023-09-07 12:17:38 +02:00
J. Nick Koston f1ae523ff2 Bump pyenphase to 1.9.3 (#99787)
* Bump pyenphase to 1.9.2

changelog: https://github.com/pyenphase/pyenphase/compare/v1.9.1...v1.9.2

Handle the case where the user has manually specified a password for
local auth with firmware < 7.x but its incorrect.

The integration previously accepted any wrong password and would
reduce functionality down to what works without a password. We now
preserve that behavior to avoid breaking existing installs.

* bump
2023-09-07 12:17:04 +02:00
Rami Mosleh 0cc2c27115 Add strict typing to islamic prayer times (#99585)
* Add strict typing to islamic prayer times

* fix mypy errors
2023-09-07 12:16:31 +02:00
Erik Montnemery e5210c5823 Always set severity level flag on render_template error events (#99804) 2023-09-07 12:00:19 +02:00
Arda ŞEREMET 9351e79dcb Bump ProgettiHWSW to 0.1.3 (#92668)
* Update manifest.json

* Update requirements_test_all.txt

* Update requirements_all.txt

* Updated dependencies file.

* Update manifest.json with correct naming convention.

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

* Updated requirements.

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-07 10:53:59 +02:00
Ståle Storø Hauknes d2f9270bc9 Add my self as codeowner for airthings_ble (#99799)
Update airthings_ble codeowner
2023-09-07 10:36:49 +02:00
Quentame 1a22ab77e1 Fix Freebox disk free space sensor (#99757)
* Fix Freebox disk free space sensor

* Add initial value assert to check results
2023-09-07 10:28:08 +02:00
Maciej Bieniek e1f4a3fa9f Add energy meter sensors for Shelly Pro EM (#99747)
* Add support for Pro EM

* Improve get_rpc_channel_name()

* Revert an unintended change

* Add tests
2023-09-07 06:59:04 +02:00
J. Nick Koston 0c7e0f5cd9 Bump sense_energy to 0.12.1 (#99763) 2023-09-06 20:01:22 -05:00
Aaron Bach 2565f153cd Bump aiorecollect to 2023.09.0 (#99780) 2023-09-06 17:26:14 -06:00
Joost Lekkerkerker 3afdecd51f Use shorthand attributes in Plum (#99770)
Use shorthand attributes in Plum shorthand
2023-09-06 23:37:31 +02:00
Joost Lekkerkerker 61b02e9c66 Use shorthand attributes in Progetti (#99772)
Use shorthand attributes in Progetti shorthand
2023-09-06 23:34:39 +02:00
Joost Lekkerkerker b0e46f425f Remove deprecated entities from OpenTherm Gateway (#99712) 2023-09-06 21:50:48 +02:00
J. Nick Koston 533350b94a Bump dbus-fast to 1.95.0 (#99749) 2023-09-06 13:21:21 -05:00
J. Nick Koston fdf902e053 Bump zeroconf to 0.98.0 (#99748) 2023-09-06 12:37:42 -05:00
Jan Bouwhuis 7c7456df99 Handle alexa invalid climate temp adjustment (#99740)
* Handle temp adjust when target state not set

* Update homeassistant/components/alexa/errors.py

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

* black

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-06 18:54:16 +02:00
Jan-Philipp Benecke 7a6c8767b3 Improve typing of trend component (#99719)
* Some typing in trend component

* Add missing type hint

* Enable strict typing on trend
2023-09-06 18:51:38 +02:00
Tomáš Holý 9bc07f50f9 Add additional fields for 3-phase UPS to nut (#98625)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-06 11:39:33 -05:00
mkmer 54d92b649b Raise error on open/close failure in Aladdin Connect (#99746)
Raise error on open/close failure
2023-09-06 18:33:58 +02:00
James Smith f24c4ceab6 Enable strict typing for Climate component (#99301)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-06 17:55:41 +02:00
Marc Mueller 8bfdc5d3d9 Update pytest-aiohttp to 1.0.5 (#99744) 2023-09-06 17:37:11 +02:00
Joost Lekkerkerker eab76fc621 Revert "Bump pyoverkiz to 1.10.1 (#97916)" (#99742) 2023-09-06 17:16:40 +02:00
Bram Kragten f70469d6ef 2023.9.0 (#99741) 2023-09-06 17:16:35 +02:00
Marc Mueller ab3bc1b74b Improve blink config_flow typing (#99579) 2023-09-06 17:00:16 +02:00
Marc Mueller 2628a86864 Update pre-commit to 3.4.0 (#99737) 2023-09-06 16:58:57 +02:00
Marc Mueller d8035ddf47 Fix tradfri asyncio.wait (#99730) 2023-09-06 16:57:13 +02:00
Marc Mueller 5d54660802 Fix asyncio.wait typing (#99726) 2023-09-06 16:53:41 +02:00
David Knowles 0b95e4ac17 Fix the Hydrawise status sensor (#99271) 2023-09-06 16:51:27 +02:00
Bram Kragten d369a70092 Bumped version to 2023.9.0 2023-09-06 16:09:56 +02:00
Bram Kragten 02fc735c08 Update frontend to 20230906.1 (#99733) 2023-09-06 16:09:06 +02:00
Erik Montnemery b5d9014bbd Correct state attributes in group helper preview (#99723) 2023-09-06 16:09:05 +02:00
Erik Montnemery d99e5e0c4f Correct state attributes in template helper preview (#99722) 2023-09-06 16:09:03 +02:00
Erik Montnemery 6f6306b39b Don't allow changing device class in template binary sensor options (#99720) 2023-09-06 16:09:02 +02:00
Erik Montnemery 067f946129 Send template render errors to template helper preview (#99716) 2023-09-06 16:09:01 +02:00
starkillerOG 107ca83d42 Reolink onvif not supported fix (#99714)
* only subscibe to ONVIF if supported

* Catch NotSupportedError when ONVIF is not supported

* fix styling
2023-09-06 16:09:00 +02:00
Erik Montnemery c9a6ea94a7 Send template render errors to template helper preview (#99716) 2023-09-06 16:07:05 +02:00
Erik Montnemery e1ea53e72f Correct state attributes in template helper preview (#99722) 2023-09-06 16:06:33 +02:00
Erik Montnemery c376447ccd Don't allow changing device class in template binary sensor options (#99720) 2023-09-06 15:59:30 +02:00
Erik Montnemery 97710dc5b7 Correct state attributes in group helper preview (#99723) 2023-09-06 15:59:03 +02:00
David Knowles bb765449eb Add binary_sensor to Schlage (#99637)
* Add binary_sensor to Schlage

* Apply suggestions from code review

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-09-06 15:03:54 +02:00
Bram Kragten 9700888df1 Update frontend to 20230906.1 (#99733) 2023-09-06 15:00:26 +02:00
starkillerOG 0037385336 Reolink onvif not supported fix (#99714)
* only subscibe to ONVIF if supported

* Catch NotSupportedError when ONVIF is not supported

* fix styling
2023-09-06 14:46:24 +02:00
Jan Bouwhuis 397952ceea Postpone Imap_email_content removal (#99721) 2023-09-06 12:45:46 +02:00
Jan Bouwhuis b815ea1332 Revert "Remove imap_email_content integration" (#99713) 2023-09-06 11:54:18 +02:00
Marc Mueller 274507b5c9 Fix pylint plugin test DeprecationWarning (#99711) 2023-09-06 11:35:57 +02:00
J. Nick Koston 034fabe188 Use loop time to set context (#99701)
* Use loop time to set context

loop time is faster than utcnow, and since its only used internally it can
be switched without a breaking change

* fix mocking
2023-09-06 11:04:49 +02:00
Bram Kragten 98896834cd Bump version to 2023.9.0b6 2023-09-06 11:00:01 +02:00
Bram Kragten 800ff489b0 Update frontend to 20230906.0 (#99715) 2023-09-06 10:56:53 +02:00
Erik Montnemery 7b7fd35af2 Fix unit conversion for gas cost sensor (#99708) 2023-09-06 10:56:53 +02:00
J. Nick Koston f9ee18352d Bump aioesphomeapi to 16.0.5 (#99698)
changelog: https://github.com/esphome/aioesphomeapi/compare/v16.0.4...v16.0.5

fixes `RuntimeError: set changed size during iteration`

https://github.com/esphome/aioesphomeapi/pull/538

some added debug logging which may help with https://github.com/home-assistant/core/issues/98221
2023-09-06 10:56:52 +02:00
Robert Svensson e486ad735d Bump aiounifi to v61 (#99686)
* Bump aiounifi to v61

* Alter a test to cover the upstream change
2023-09-06 10:56:51 +02:00
Daniel Gangl cea1109e25 Bump zamg to 0.3.0 (#99685) 2023-09-06 10:56:50 +02:00
c0ffeeca7 71afa0ff43 Yellow LED controls: rename LEDs (#99710)
- reorder, to reflect placement on board, left to right (yellow, green, red)
2023-09-06 10:46:52 +02:00
starkillerOG 96e932dad6 Bump reolink_aio to 0.7.9 (#99680) 2023-09-06 10:43:30 +02:00
puddly aa32b658b2 Fix ZHA startup creating entities with non-unique IDs (#99679)
* Make the ZHAGateway initialization restartable so entities are unique

* Add a unit test
2023-09-06 10:43:29 +02:00
Erik Montnemery 0cbcacbbf5 Include template listener info in template preview (#99669) 2023-09-06 10:43:28 +02:00
Erik Montnemery 9d87e8d02b Allow specifying a custom log function for template render (#99572)
* Allow specifying a custom log function for template render

* Bypass template cache when reporting errors + fix tests

* Send errors as events

* Fix logic for creating new TemplateEnvironment

* Add strict mode back

* Only send error events if report_errors is True

* Force test of websocket_api only

* Debug test

* Run pytest with higher verbosity

* Timeout after 1 minute, enable syslog output

* Adjust timeout

* Add debug logs

* Fix unsafe call to WebSocketHandler._send_message

* Remove debug code

* Improve test coverage

* Revert accidental change

* Include severity in error events

* Remove redundant information from error events
2023-09-06 10:43:27 +02:00
Bram Kragten 00ada69e0b Update frontend to 20230906.0 (#99715) 2023-09-06 10:40:05 +02:00
Erik Montnemery 687e69f7c3 Fix unit conversion for gas cost sensor (#99708) 2023-09-06 10:35:04 +02:00
Erik Montnemery 48f7924e9e Allow specifying a custom log function for template render (#99572)
* Allow specifying a custom log function for template render

* Bypass template cache when reporting errors + fix tests

* Send errors as events

* Fix logic for creating new TemplateEnvironment

* Add strict mode back

* Only send error events if report_errors is True

* Force test of websocket_api only

* Debug test

* Run pytest with higher verbosity

* Timeout after 1 minute, enable syslog output

* Adjust timeout

* Add debug logs

* Fix unsafe call to WebSocketHandler._send_message

* Remove debug code

* Improve test coverage

* Revert accidental change

* Include severity in error events

* Remove redundant information from error events
2023-09-06 10:03:35 +02:00
Jan-Philipp Benecke f41b045244 Use shorthand attributes in Trend (#99695) 2023-09-06 09:55:25 +02:00
Erik Montnemery cdca4591a4 Include template listener info in template preview (#99669) 2023-09-06 09:49:42 +02:00
Jan-Philipp Benecke b28fda2433 Move template coordinator to its own file (#99419)
* Move template update coordinator to its own file

* Add coordinator.py to .coveragerc

* Remove coordinator.py to .coveragerc

* Apply suggestions from code review

* Update homeassistant/components/template/coordinator.py

* Copy over fixes from upstream

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-09-06 08:54:25 +02:00
tronikos d4ef570b0a Add a comment why state_class=total (#99703) 2023-09-06 08:43:46 +02:00
Rami Mosleh d523734db1 Display channel number in Bravia TV if title is not available (#99567)
Display channel number if title is not available
2023-09-06 08:35:34 +02:00
Maciej Bieniek d9a1ebafdd Show OTA update progress for Shelly gen2 devices (#99534)
* Show OTA update progress

* Use an event listener instead of a dispatcher

* Add tests

* Fix name

* Improve tests coverage

* Fix subscribe/unsubscribe logic

* Use async_on_remove()
2023-09-06 08:17:45 +02:00
Joost Lekkerkerker 4f05e61072 Add codeowner for Withings (#99681) 2023-09-05 21:14:56 -05:00
J. Nick Koston da45f6cbb0 Bump aioesphomeapi to 16.0.5 (#99698)
changelog: https://github.com/esphome/aioesphomeapi/compare/v16.0.4...v16.0.5

fixes `RuntimeError: set changed size during iteration`

https://github.com/esphome/aioesphomeapi/pull/538

some added debug logging which may help with https://github.com/home-assistant/core/issues/98221
2023-09-05 20:42:50 -05:00
J. Nick Koston e22b03d6b3 Switch homekit config flow sorted to use itemgetter (#99658)
Avoids unnecessary lambda
2023-09-05 21:18:46 -04:00
J. Nick Koston a2dae60170 Refactor dispatcher to reduce run time and memory overhead (#99676)
* Fix memory leak in dispatcher removal

When we removed the last job/callable from the dict for the
signal we did not remove the dict for the signal which meant
it leaked

* comment

* cleanup a bit more
2023-09-05 21:18:27 -04:00
J. Nick Koston b69cc29a78 Switch lambda to attrgetter in zha (#99660) 2023-09-05 22:45:45 +02:00
J. Nick Koston a1359c1ce3 Replace lambda in script/gen_requirements_all.py with str.lower (#99665) 2023-09-05 22:44:59 +02:00
Jan Bouwhuis c64d173fcb Remove imap_email_content integration (#99484) 2023-09-05 21:50:51 +02:00
starkillerOG 3f3d8b1e1e Bump reolink_aio to 0.7.9 (#99680) 2023-09-05 21:21:27 +02:00
Daniel Gangl 2cf25ee9ec Bump zamg to 0.3.0 (#99685) 2023-09-05 21:18:06 +02:00
Daniel Hjelseth Høyer a9c41f76e3 Bump millheater to 0.11.2 (#99683)
Update Mill lib

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2023-09-05 21:14:39 +02:00
Robert Svensson b0e40d95ad Bump aiounifi to v61 (#99686)
* Bump aiounifi to v61

* Alter a test to cover the upstream change
2023-09-05 21:13:28 +02:00
puddly 7ab1913ba4 Fix ZHA startup creating entities with non-unique IDs (#99679)
* Make the ZHAGateway initialization restartable so entities are unique

* Add a unit test
2023-09-05 20:30:28 +02:00
Bram Kragten 6b8027019b Bump version to 2023.9.0b5 2023-09-05 20:25:02 +02:00
Bram Kragten fed84ebc40 Update frontend to 20230905.0 (#99677) 2023-09-05 20:24:51 +02:00
Raman Gupta bd0fd9db77 Bump zwave-js-server-python to 0.51.1 (#99652)
* Bump zwave-js-server-python to 0.51.1

* Update test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-05 20:24:50 +02:00
J. Nick Koston 5d1fe0eb00 Fix mobile app dispatcher performance (#99647)
Fix mobile app thundering heard

The mobile_app would setup a dispatcher to listener for updates on
every entity and reject the ones that were not for the unique id
that it was intrested in.

Instead we now register for a signal per unique id since we were
previously generating O(entities*sensors*devices) callbacks which
was causing the event loop to stall when there were a large
number of mobile app users.
2023-09-05 20:24:49 +02:00
itpeters 9e03f8a8d6 Fix long press event for matter generic switch (#99645) 2023-09-05 20:24:48 +02:00
Álvaro Fernández Rojas c040672cab Update aioairzone to v0.6.8 (#99644)
* Update aioairzone to v0.6.8

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

* Trigger CI

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-05 20:24:47 +02:00
G Johansson f0cf539e15 Fix missing unique id in SQL (#99641) 2023-09-05 20:24:46 +02:00
G Johansson 2a7c12013f Fix not stripping no device class in template helper binary sensor (#99640)
Strip none template helper binary sensor
2023-09-05 20:24:45 +02:00
Erik Montnemery 4c0e4fe745 Small cleanup of TemplateEnvironment (#99571)
* Small cleanup of TemplateEnvironment

* Fix typo
2023-09-05 20:24:44 +02:00
Bram Kragten 7fbb1c0fb6 Update frontend to 20230905.0 (#99677) 2023-09-05 20:12:40 +02:00
Joost Lekkerkerker 5ccf866e22 Use shorthand attributes for Plaato (#99634)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-05 19:01:51 +02:00
J. Nick Koston e9062bb1b3 Replace lambda with attrgetter in homekit_controller (#99666) 2023-09-05 10:36:43 -05:00
J. Nick Koston abb0537928 Replace lambda with itemgetter in script/gen_requirements_all.py (#99661) 2023-09-05 10:36:01 -05:00
J. Nick Koston a04c61e77b Replace lambda with attrgetter in device_tracker device_trigger (#99663) 2023-09-05 16:41:35 +02:00
J. Nick Koston 035fea3ee0 Replace lambda with attrgetter in hassfest (#99662) 2023-09-05 16:40:25 +02:00
Joost Lekkerkerker 2c45d43e7b Use shorthand attributes in Neato (#99605)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-05 16:33:46 +02:00
Raman Gupta 5afba6327c Bump zwave-js-server-python to 0.51.1 (#99652)
* Bump zwave-js-server-python to 0.51.1

* Update test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-05 09:58:32 -04:00
Joost Lekkerkerker c6bdc380b6 Use shorthand attributes in Ondilo ico (#99627) 2023-09-05 15:40:43 +02:00
Joost Lekkerkerker 3c82045289 Use shorthand attributes in Omnilogic (#99626) 2023-09-05 15:40:11 +02:00
Joost Lekkerkerker 58af0ab0cd Use shorthand attributes in NZBGet (#99622) 2023-09-05 15:37:00 +02:00
Joost Lekkerkerker 0ae12ad08f Use shorthand attributes in Logi circle (#99592) 2023-09-05 15:27:38 +02:00
Joost Lekkerkerker 1f648feaef Use shorthand attributes in Kostal Plenticore (#99581) 2023-09-05 15:26:23 +02:00
Joost Lekkerkerker 447a9f4aad Use shorthand attributes in Konnected (#99580) 2023-09-05 15:25:00 +02:00
Joost Lekkerkerker c49f086790 Use shorthand attributes in Kodi (#99578) 2023-09-05 15:22:52 +02:00
Joost Lekkerkerker d5ad01ffbe Use shorthand attributes in Openhome (#99629) 2023-09-05 14:57:26 +02:00
itpeters 582eeea082 Fix long press event for matter generic switch (#99645) 2023-09-05 13:10:14 +02:00
Álvaro Fernández Rojas c77a0a8caa Update aioairzone to v0.6.8 (#99644)
* Update aioairzone to v0.6.8

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

* Trigger CI

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-05 12:42:19 +02:00
Joost Lekkerkerker f13e7706ed Use shorthand attributes in Nuheat (#99618) 2023-09-05 11:54:53 +02:00
dependabot[bot] 2c3a4b3497 Bump actions/checkout from 3.6.0 to 4.0.0 (#99651) 2023-09-05 08:57:09 +02:00
Joost Lekkerkerker 49bd7e6251 Use shorthand attributes for Picnic (#99633) 2023-09-04 20:59:44 -04:00
J. Nick Koston fed1cab847 Fix mobile app dispatcher performance (#99647)
Fix mobile app thundering heard

The mobile_app would setup a dispatcher to listener for updates on
every entity and reject the ones that were not for the unique id
that it was intrested in.

Instead we now register for a signal per unique id since we were
previously generating O(entities*sensors*devices) callbacks which
was causing the event loop to stall when there were a large
number of mobile app users.
2023-09-04 20:56:34 -04:00
J. Nick Koston ff2e0c570b Improve performance of google assistant supported checks (#99454)
* Improve performance of google assistant supported checks

* tweak

* tweak

* split function

* tweak
2023-09-04 20:53:59 -04:00
J. Nick Koston 63273a307a Fix Bluetooth passive update processor dispatching updates to unchanged entities (#99527)
* Fix passive update processor dispatching updates to unchanged entities

* adjust tests

* coverage

* fix

* Update homeassistant/components/bluetooth/update_coordinator.py
2023-09-04 20:42:05 -04:00
Martin Hjelmare 0b383067ef Move non legacy stt models out from legacy module (#99582) 2023-09-04 16:51:57 -04:00
J. Nick Koston d2a52230ff Speed up responding to states being polled via API (#99621)
* Speed up responding to states being polled via API

Switch to using `as_dict_json` to avoid serializing states over and over when the
states api is polled since the mobile app is already building the cache as it also
polls the states via the websocket_api

* Speed up responding to states being polled via API

Switch to using `as_dict_json` to avoid serializing states over and over when the
states api is polled since the mobile app is already building the cache as it also
polls the states via the websocket_api

* fix json

* cover
2023-09-04 16:51:19 -04:00
G Johansson 47c20495bd Fix not stripping no device class in template helper binary sensor (#99640)
Strip none template helper binary sensor
2023-09-04 22:46:19 +02:00
Joost Lekkerkerker 216a174cba Move variables out of constructor in nightscout (#99612)
* Move variables out of constructor in nightscout

* Update homeassistant/components/nightscout/sensor.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-09-04 22:35:58 +02:00
G Johansson b8f35fb577 Fix missing unique id in SQL (#99641) 2023-09-04 22:31:53 +02:00
Erik Montnemery de73cafc8b Small cleanup of TemplateEnvironment (#99571)
* Small cleanup of TemplateEnvironment

* Fix typo
2023-09-04 22:19:40 +02:00
Joost Lekkerkerker bc1575a477 Move variables out of constructor in Nobo hub (#99617) 2023-09-04 22:18:36 +02:00
J. Nick Koston cab9c97598 Bump aioesphomeapi to 16.0.4 (#99541) 2023-09-04 21:06:13 +02:00
Joakim Plate ba5822bed4 Bump gardena_bluetooth to 1.4.0 (#99530) 2023-09-04 21:06:11 +02:00
Bram Kragten 4fcb0a840a Bump version to 2023.9.0b4 2023-09-04 20:50:17 +02:00
Bram Kragten 6b988a99d5 Update frontend to 20230904.0 (#99636) 2023-09-04 20:49:43 +02:00
Erik Montnemery 0520cadfa6 Revert "Deprecate timer start optional duration parameter" (#99613)
Revert "Deprecate timer start optional duration parameter (#93471)"

This reverts commit 2ce5b08fc3.
2023-09-04 20:49:42 +02:00
Joost Lekkerkerker 89e280e136 Remove unneeded name property from Logi Circle (#99604) 2023-09-04 20:49:41 +02:00
Joost Lekkerkerker 30c6565205 Bump pyenphase to 1.9.1 (#99574) 2023-09-04 20:49:40 +02:00
Erik Montnemery 37f8f91171 Small cleanup of WS command render_template (#99562) 2023-09-04 20:49:40 +02:00
puddly a7efeb2c87 Bump ZHA dependencies (#99561) 2023-09-04 20:49:39 +02:00
Robert Svensson 5c42ea57b3 Bump aiounifi to v60 (#99548) 2023-09-04 20:49:38 +02:00
G Johansson c791ddc937 Fix loading filesize coordinator from wrong place (#99547)
* Fix loading filesize coordinator from wrong place

* aboslute in executor

* combine into executor
2023-09-04 20:49:37 +02:00
Jc2k 8ccd2b6457 Update bluetooth-data-tools to 1.11.0 (#99485) 2023-09-04 20:48:55 +02:00
J. Nick Koston a60e23caf2 Bump bleak-retry-connector to 3.1.2 (#99540) 2023-09-04 20:45:32 +02:00
jan iversen c677dae9c1 Modbus switch, allow restore "unknown" (#99533) 2023-09-04 20:45:32 +02:00
J. Nick Koston 453c5f90f8 Bump bleak to 0.21.0 (#99520)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-04 20:45:31 +02:00
J. Nick Koston 70b460f52b Bump aiohomekit to 3.0.2 (#99514) 2023-09-04 20:45:29 +02:00
J. Nick Koston 2bc08d1fcc Fix module check in _async_get_flow_handler (#99509)
We should have been checking for the module in hass.data[DATA_COMPONENTS]
and not hass.config.components as the check was ineffective if there were
no existing integrations instances for the domain which is the case for
discovery or when the integration is ignored
2023-09-04 20:45:29 +02:00
Erik Montnemery 423e8fbde3 Validate state in template helper preview (#99455)
* Validate state in template helper preview

* Deduplicate state validation
2023-09-04 20:45:28 +02:00
Erik Montnemery e5fd6961a8 Set state of entity with invalid state to unknown (#99452)
* Set state of entity with invalid state to unknown

* Add test

* Apply suggestions from code review

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

* Update test_entity.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-04 20:45:27 +02:00
Mike O'Driscoll bdc39e1d52 Fix recollect_waste month time boundary issue (#99429) 2023-09-04 20:45:26 +02:00
Tiit Rätsep 852589f025 Fix battery reading in SOMA API (#99403)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-04 20:45:25 +02:00
Erik Montnemery 2a5f8ee4a7 Don't set assumed_state in fan groups (#99399) 2023-09-04 20:45:24 +02:00
Erik Montnemery 1c2c13c938 Don't set assumed_state in cover groups (#99391) 2023-09-04 20:45:23 +02:00
Russell Cloran e0594bffa1 Enumerate available states in Prometheus startup (#97993) 2023-09-04 20:45:22 +02:00
Michael 4524b38b80 Mark AVM Fritz!Smarthome as Gold integration (#97086)
set quality scale to gold
2023-09-04 20:45:22 +02:00
Allen Porter 269bcac982 Extend template entities with a script section (#96175)
* Extend template entities with a script section

This allows making a trigger entity that triggers a few times a day,
and allows collecting data from a service resopnse which can be
fed into a template entity.

The current alternatives are to publish and subscribe to events or to
store data in input entities.

* Make variables set in actions accessible to templates

* Format code

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-09-04 20:45:21 +02:00
Bram Kragten c1cfded355 Update frontend to 20230904.0 (#99636) 2023-09-04 14:44:20 -04:00
Michael a77f1cbd9e Mark AVM Fritz!Smarthome as Gold integration (#97086)
set quality scale to gold
2023-09-04 14:23:46 -04:00
J. Nick Koston e5ebba0753 Fix module check in _async_get_flow_handler (#99509)
We should have been checking for the module in hass.data[DATA_COMPONENTS]
and not hass.config.components as the check was ineffective if there were
no existing integrations instances for the domain which is the case for
discovery or when the integration is ignored
2023-09-04 14:19:10 -04:00
Erik Montnemery 7e36da4cc0 Small cleanup of WS command render_template (#99562) 2023-09-04 14:17:30 -04:00
Erik Montnemery 26fd36dc4c Revert "Deprecate timer start optional duration parameter" (#99613)
Revert "Deprecate timer start optional duration parameter (#93471)"

This reverts commit 2ce5b08fc3.
2023-09-04 20:10:16 +02:00
David Knowles e57ed26896 Bump pyschlage to 2023.9.0 (#99624) 2023-09-04 19:51:33 +02:00
Joost Lekkerkerker 4812b21ffd Remove slugify from tomorrowio unique id (#99006) 2023-09-04 19:28:44 +02:00
Joost Lekkerkerker cb5d4ee6fa Use shorthand attributes in Octoprint (#99623) 2023-09-04 19:00:19 +02:00
Joost Lekkerkerker 2391087836 Use shorthand attributes in Nest (#99606) 2023-09-04 09:50:33 -07:00
Joost Lekkerkerker 22e90a5755 Remove default state from Nibe (#99611)
Remove start state
2023-09-04 17:53:33 +02:00
Rami Mosleh f2e0ff4f0f Bump simplepush api to 2.2.3 (#99599) 2023-09-04 16:24:20 +02:00
Duco Sebel aa943b7103 Bumb python-homewizard-energy to 2.1.0 (#99598) 2023-09-04 16:21:55 +02:00
Joost Lekkerkerker 29664d04d0 Use shorthand attributes in Mutesync (#99600) 2023-09-04 15:31:33 +02:00
Joost Lekkerkerker 799d0e591c Remove unneeded name property from Logi Circle (#99604) 2023-09-04 15:29:30 +02:00
puddly c225ee89d6 Bump ZHA dependencies (#99561) 2023-09-04 09:26:14 -04:00
Joost Lekkerkerker 8dc05894a8 Use shorthand attributes in Nanoleaf (#99601) 2023-09-04 15:18:48 +02:00
Joost Lekkerkerker f1bb7c25db Use shorthand attributes in Motion eye (#99596) 2023-09-04 15:18:22 +02:00
Joost Lekkerkerker cab0bde37b Use shorthand attributes in Lyric (#99593) 2023-09-04 15:05:33 +02:00
Rami Mosleh 3b6811dab6 Use CONF_SALT correctly in config_flow validation (#99597) 2023-09-04 14:59:18 +02:00
Erik Montnemery 7643820e59 Add loader.async_get_loaded_integration (#99440)
* Add loader.async_get_loaded_integration

* Decorate async_get_loaded_integration with @callback
2023-09-04 14:12:33 +02:00
Erik Montnemery 7c595ee2da Validate state in template helper preview (#99455)
* Validate state in template helper preview

* Deduplicate state validation
2023-09-04 14:10:43 +02:00
Erik Montnemery 709ce7e0af Set state of entity with invalid state to unknown (#99452)
* Set state of entity with invalid state to unknown

* Add test

* Apply suggestions from code review

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

* Update test_entity.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-04 14:09:51 +02:00
Erik Montnemery 6223af1899 Don't set assumed_state in fan groups (#99399) 2023-09-04 14:08:50 +02:00
Erik Montnemery f3d8a0eaaf Don't set assumed_state in cover groups (#99391) 2023-09-04 14:08:38 +02:00
Joost Lekkerkerker d5301fba90 Use shorthand attributes in Keenetic (#99577) 2023-09-04 13:50:05 +02:00
Joost Lekkerkerker 6194f7faea Bump pyenphase to 1.9.1 (#99574) 2023-09-04 07:39:24 -04:00
Joost Lekkerkerker cf2d3674b9 Use shorthand attributes in Kulersky (#99583) 2023-09-04 13:29:56 +02:00
Joost Lekkerkerker 8ea3b877f6 Use shorthand attributes in Juicenet (#99575) 2023-09-04 13:21:30 +02:00
Joost Lekkerkerker 890eed1121 Use shorthand attributes in LCN (#99587) 2023-09-04 13:18:55 +02:00
Joost Lekkerkerker 051e9e7498 Use shorthand attributes in Laundrify (#99586) 2023-09-04 13:15:02 +02:00
Jan-Philipp Benecke fa0b61e96a Move london underground coordinator to its own file (#99550) 2023-09-04 11:07:08 +02:00
Tiit Rätsep b9536732bc Fix battery reading in SOMA API (#99403)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-04 10:03:58 +02:00
J. Nick Koston de1de926a9 Bump zeroconf to 0.97.0 (#99554)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.96.0...0.97.0
2023-09-04 10:52:21 +03:00
Russell Cloran 9144ef7ed8 Enumerate available states in Prometheus startup (#97993) 2023-09-04 09:30:56 +02:00
Joost Lekkerkerker 69117cb8e3 Use shorthand attributes for DLNA dmr (#99236) 2023-09-04 09:23:33 +02:00
Joost Lekkerkerker 13ebb68b84 Use shorthand attributes in Home connect (#99385)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-09-04 09:15:25 +02:00
Joost Lekkerkerker f4f98010f9 Remove unused attributes from Econet (#99242) 2023-09-04 09:15:01 +02:00
Joost Lekkerkerker f545389549 Move static shorthand devolo attributes outside of constructor (#99234)
Co-authored-by: Guido Schmitz <Shutgun@users.noreply.github.com>
2023-09-04 09:08:32 +02:00
Rami Mosleh 8d3828ae54 Add strict typing to glances (#99537) 2023-09-04 09:07:15 +02:00
Joost Lekkerkerker 1dc724274e Use shorthand attributes for Heos (#99344) 2023-09-04 09:05:59 +02:00
G Johansson 9d6cab8fe6 Fix loading filesize coordinator from wrong place (#99547)
* Fix loading filesize coordinator from wrong place

* aboslute in executor

* combine into executor
2023-09-04 07:33:46 +02:00
Marc Mueller 735b5cf1a0 Fix sql test warning (#99556) 2023-09-03 19:58:13 -05:00
Marc Mueller 115518cab9 Fix tolo test warning (#99555) 2023-09-03 19:58:01 -05:00
J. Nick Koston 377d9f6687 Bump zeroconf to 0.96.0 (#99549) 2023-09-03 17:06:21 -05:00
Allen Porter 8afab4845a Remove nest legacy service descriptions and translations (#99510) 2023-09-03 13:52:03 -07:00
Robert Svensson f52ba7042d Bump aiounifi to v60 (#99548) 2023-09-03 21:31:25 +02:00
jan iversen f85a3861f2 Make validator for modbus table controlled (#99092) 2023-09-03 21:04:58 +02:00
J. Nick Koston 7931d74938 Make bond BPUP callback a HassJob (#99470) 2023-09-03 12:39:49 -05:00
Rami Mosleh ca44242095 Allow glances entries with same IP but different ports (#99536) 2023-09-03 19:22:59 +02:00
jan iversen d19f617c25 Modbus switch, allow restore "unknown" (#99533) 2023-09-03 17:48:25 +02:00
Allen Porter c938b9e7a3 Rename nest test_sensor_sdm.py to test_sensor.py (#99512) 2023-09-03 10:36:20 -05:00
jan iversen c94d4f501b Read modbus data before scan_interval (#99243)
Read before scan_interval.
2023-09-03 17:13:49 +02:00
Mike O'Driscoll c297eecb68 Fix recollect_waste month time boundary issue (#99429) 2023-09-03 10:08:17 -05:00
J. Nick Koston 186e796e25 Speed up fetching states by domain (#99467) 2023-09-03 09:30:39 -05:00
J. Nick Koston b752419f25 Bump aioesphomeapi to 16.0.4 (#99541) 2023-09-03 09:13:34 -05:00
J. Nick Koston d063650fec Bump bleak-retry-connector to 3.1.2 (#99540) 2023-09-03 09:13:21 -05:00
Rami Mosleh 8e22041ee9 Change calculation methods to a fixed list (#99535) 2023-09-03 16:12:37 +02:00
J. Nick Koston 8843a445c9 Reduce Bluetooth coordinator/processor overhead (#99526) 2023-09-03 08:59:15 -05:00
Yuxin Wang 9bba501057 Handle gracefully when unloading apcupsd config entries (#99513) 2023-09-03 15:54:00 +02:00
Michael Arthur 31d1752c74 Bugfix: Electric Kiwi reduce interval so oauth doesn't expire (#99489)
decrease interval time as EK have broken/changed their oauth again
2023-09-03 15:53:23 +02:00
J. Nick Koston 00893bbf14 Bump bleak to 0.21.0 (#99520)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-03 08:22:03 -05:00
J. Nick Koston 5f487b5d85 Refactor async_call_at and async_call_later event helpers to avoid creating closures (#99469) 2023-09-03 08:19:06 -05:00
Jc2k 1cd0cb4537 Add suggest_display_precision to private_ble_device (#99529) 2023-09-03 07:39:20 -05:00
Marc Mueller 6414248bee Update pytest warning filter (#99521) 2023-09-03 13:04:01 +02:00
J. Nick Koston 1183bd159e Bump zeroconf to 0.93.1 (#99516)
* Bump zeroconf to 0.92.0

changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.91.1...0.92.0

* drop unused argument

* Update tests/components/thread/test_diagnostics.py

* lint

* again

* bump again since actions failed to release the wheels
2023-09-03 11:16:26 +02:00
Joakim Plate 61dc217d92 Bump gardena_bluetooth to 1.4.0 (#99530) 2023-09-03 10:25:00 +02:00
Allen Porter 7b1c0c2df2 Extend template entities with a script section (#96175)
* Extend template entities with a script section

This allows making a trigger entity that triggers a few times a day,
and allows collecting data from a service resopnse which can be
fed into a template entity.

The current alternatives are to publish and subscribe to events or to
store data in input entities.

* Make variables set in actions accessible to templates

* Format code

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-09-02 16:19:45 -07:00
Marc Mueller 6312f34538 Fix zha test RuntimeWarning (#99519) 2023-09-03 01:07:17 +02:00
Jc2k 4b11a632a1 Add sensors to private_ble_device (#99515) 2023-09-02 17:45:46 -05:00
J. Nick Koston b8f8cd1797 Reduce overhead to retry config entry setup (#99471) 2023-09-02 16:46:53 -05:00
Richard Kroegel bec36d3914 Add long-term statistics to BMW sensors (#99506)
* Add long-term statistics to BMW ConnectedDrive sensors

* Add sensor test snapshot

---------

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-09-02 14:44:28 -07:00
J. Nick Koston f4f78cf000 Bump aiohomekit to 3.0.2 (#99514) 2023-09-02 15:25:42 -05:00
starkillerOG cf8da2fc89 Motion blinds add translations (#99078) 2023-09-02 22:13:17 +02:00
starkillerOG 3c30ad1850 Motion blinds duplication reduction using entity baseclass (#99444) 2023-09-02 21:51:58 +02:00
Bram Kragten 7b50316b3e Bump version to 2023.9.0b3 2023-09-02 21:09:52 +02:00
J. Nick Koston 46343bc261 Bump zeroconf to 0.91.1 (#99490) 2023-09-02 21:09:19 +02:00
Andrew Onyshchuk e726b49adb Update aiotractive to 0.5.6 (#99477) 2023-09-02 21:09:19 +02:00
G Johansson cb1267477b Fix default language in Workday (#99463)
Workday fix default language
2023-09-02 21:09:17 +02:00
jimmyd-be caaba5d422 Fix translation bug Renson sensors (#99461)
* Fix translation bug

* Revert "Fix translation bug"

This reverts commit 84b5e90dac.

* Fixed translation of Renson sensor
2023-09-02 21:09:17 +02:00
Erik Montnemery 9fec0be173 Log unexpected exceptions causing recorder shutdown (#99445) 2023-09-02 21:09:16 +02:00
Raman Gupta 8dcc96c083 Fix device name in zwave_js repair flow (#99414) 2023-09-02 21:09:15 +02:00
starkillerOG 270be19e1a Check new IP of Reolink camera from DHCP (#99381)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-02 21:09:14 +02:00
Daniel Hjelseth Høyer f0878addca Update Tibber library to 0.28.2 (#99115) 2023-09-02 21:09:13 +02:00
Russell Cloran f573c1e27c Handle timestamp sensors in Prometheus integration (#98001) 2023-09-02 21:09:12 +02:00
J. Nick Koston 0b065b118b Bump zeroconf to 0.91.1 (#99490) 2023-09-02 21:04:13 +02:00
starkillerOG 834f3810d3 Check new IP of Reolink camera from DHCP (#99381)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-02 21:00:33 +02:00
J. Nick Koston 1ab2e900f9 Improve lingering timer checks (#99472) 2023-09-02 12:43:27 -05:00
Allen Porter 1048f47a91 Code cleanup for nest device info (#99511) 2023-09-02 19:38:41 +02:00
Jan Bouwhuis c3841f8734 Rework on mqtt certificate tests (#99503)
* Shared fixture on TEMP_DIR_NAME mock in MQTT tests

* Improve mqtt certificate file tests

* Update tests/components/mqtt/test_util.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update tests/components/mqtt/conftest.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Avoid blocking code

* typo in sub function

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-02 19:26:11 +02:00
J. Nick Koston 6974d211e5 Switch isy994 to use async_call_later (#99487)
async_track_point_in_utc_time is not needed here since we only need to call
at timedelta(hours=25)
2023-09-02 10:14:33 -07:00
J. Nick Koston acd9cfa929 Speed up calls to the all states api (#99462) 2023-09-02 12:08:07 -05:00
J. Nick Koston 6e743a5bb2 Switch mqtt to use async_call_later where possible (#99486) 2023-09-02 11:55:11 -05:00
Erik Montnemery defd9e4001 Don't compile missing statistics when running tests (#99446) 2023-09-02 10:09:46 -05:00
Erik Montnemery 7168e71860 Log unexpected exceptions causing recorder shutdown (#99445) 2023-09-02 09:51:06 -05:00
Joost Lekkerkerker 9e9aa163f7 Use shorthand attributes in hlk_sw16 (#99383) 2023-09-02 09:42:32 -05:00
Jc2k 26b1222fae Support tracking private bluetooth devices (#99465)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-09-02 09:21:05 -05:00
Daniel Hjelseth Høyer d88ee0dbe0 Update Tibber library to 0.28.2 (#99115) 2023-09-02 15:08:49 +02:00
Paarth Shah 4d3b978398 Change matrix component to use matrix-nio instead of matrix_client (#72797) 2023-09-02 15:02:55 +02:00
Joost Lekkerkerker f48e8623da Use shorthand attributes in Hunterdouglas powerview (#99386) 2023-09-02 04:55:19 -05:00
Jan Bouwhuis 3d1efaa4ad Freeze time for MQTT sensor expire tests (#99496) 2023-09-02 04:10:57 -05:00
jimmyd-be 1e46ecbb48 Fix translation bug Renson sensors (#99461)
* Fix translation bug

* Revert "Fix translation bug"

This reverts commit 84b5e90dac.

* Fixed translation of Renson sensor
2023-09-02 10:55:12 +02:00
Russell Cloran 5fd14eade5 Handle timestamp sensors in Prometheus integration (#98001) 2023-09-02 10:20:36 +02:00
G Johansson b681dc06e0 Fix default language in Workday (#99463)
Workday fix default language
2023-09-02 09:47:59 +02:00
Jc2k e465a4f820 Update bluetooth-data-tools to 1.11.0 (#99485) 2023-09-01 17:33:19 -05:00
J. Nick Koston 7c87b38a23 Reduce overhead to process and publish MQTT messages (#99457) 2023-09-01 15:41:34 -05:00
J. Nick Koston 5a8fc43212 Refactor MQTT discovery to avoid creating closure if hash already in discovery_pending_discovered (#99458) 2023-09-01 15:40:53 -05:00
Andrew Onyshchuk 04bf126425 Update aiotractive to 0.5.6 (#99477) 2023-09-01 23:28:53 +03:00
J. Nick Koston 09f45660cf Avoid linear search of MQTT SUPPORTED_COMPONENTS (#99459)
By making this a set we avoid the linear search in async_discovery_message_received
2023-09-01 20:10:47 +02:00
Jan-Philipp Benecke cf59ea3c47 Use snapshot assertion for netatmo diagnostics test (#99159) 2023-09-01 19:27:54 +02:00
Richard Mikalsen 1e6cddaa1d Turn off Mill heaters using local API (#99348)
* Update mill_local

* Add ability to turn heater on and off

* Use OperationMode from upstream library

* Fix: compare against value
2023-09-01 19:05:35 +02:00
Raman Gupta 169a318ec4 Fix device name in zwave_js repair flow (#99414) 2023-09-01 18:06:37 +02:00
Bram Kragten 1f0b3c4e33 Bump version to 2023.9.0b2 2023-09-01 18:01:07 +02:00
Bram Kragten 528e8c0fe7 Update frontend to 20230901.0 (#99464) 2023-09-01 17:58:15 +02:00
Erik Montnemery eb8d375e35 Fix template helper strings (#99456) 2023-09-01 17:58:15 +02:00
Keilin Bickar 987a959b19 Update asynsleepiq library to 1.3.7 (#99431) 2023-09-01 17:58:14 +02:00
Paul Bottein 469a72a5f9 Use common key for away mode state translations (#99425) 2023-09-01 17:58:13 +02:00
Álvaro Fernández Rojas a95691f306 Update AEMET-OpenData to v0.4.4 (#99418)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-09-01 17:58:12 +02:00
J. Nick Koston ebf42ad342 Significantly reduce overhead to filter event triggers (#99376)
* fast

* cleanups

* cleanups

* cleanups

* comment

* comment

* add more cover

* comment

* pull more examples from forums to validate cover
2023-09-01 17:58:11 +02:00
Michael 057daa5fdb Address late review for Nextcloud (#99226) 2023-09-01 17:58:10 +02:00
puddly 2ec9abfd24 Create a ZHA repair when directly accessing a radio with multi-PAN firmware (#98275)
* Add the SiLabs flasher as a dependency

* Create a repair if the wrong firmware is detected on an EZSP device

* Update homeassistant/components/zha/strings.json

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Provide the ZHA config entry as a reusable fixture

* Create a separate repair when using non-Nabu Casa hardware

* Add unit tests

* Drop extraneous `config_entry.add_to_hass` added in 021def44

* Fully unit test all edge cases

* Move `socket://`-ignoring logic into repair function

* Open a repair from ZHA flows when the wrong firmware is running

* Fix existing unit tests

* Link to the flashing section in the documentation

* Reduce repair severity to `ERROR`

* Make issue persistent

* Add unit tests for new radio probing states

* Add unit tests for new config flow steps

* Handle probing failure raising an exception

* Implement review suggestions

* Address review comments

---------

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-09-01 17:58:09 +02:00
puddly 0bae0824b4 Initialize ZHA device database before connecting to the radio (#98082)
* Create ZHA entities before attempting to connect to the coordinator

* Delete the ZHA gateway object when unloading the config entry

* Only load ZHA groups if the coordinator device info is known offline

* Do not create a coordinator ZHA device until it is ready

* [WIP] begin fixing unit tests

* [WIP] Fix existing unit tests (one failure left)

* Fix remaining unit test
2023-09-01 17:58:08 +02:00
Bram Kragten 1d80af870d Update frontend to 20230901.0 (#99464) 2023-09-01 17:28:52 +02:00
Erik Montnemery 390c046537 Fix template helper strings (#99456) 2023-09-01 17:14:42 +02:00
Paul Bottein ac0565e3bc Use common key for away mode state translations (#99425) 2023-09-01 15:58:01 +02:00
puddly 38270ee823 Create a ZHA repair when directly accessing a radio with multi-PAN firmware (#98275)
* Add the SiLabs flasher as a dependency

* Create a repair if the wrong firmware is detected on an EZSP device

* Update homeassistant/components/zha/strings.json

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Provide the ZHA config entry as a reusable fixture

* Create a separate repair when using non-Nabu Casa hardware

* Add unit tests

* Drop extraneous `config_entry.add_to_hass` added in 021def44

* Fully unit test all edge cases

* Move `socket://`-ignoring logic into repair function

* Open a repair from ZHA flows when the wrong firmware is running

* Fix existing unit tests

* Link to the flashing section in the documentation

* Reduce repair severity to `ERROR`

* Make issue persistent

* Add unit tests for new radio probing states

* Add unit tests for new config flow steps

* Handle probing failure raising an exception

* Implement review suggestions

* Address review comments

---------

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-09-01 09:05:45 -04:00
rappenze 680775c3e0 Discover more power and energy sensors in fibaro integration (#98253) 2023-09-01 10:48:08 +02:00
Joost Lekkerkerker 65246b99ec Use shorthand attributes in iZone (#99397) 2023-09-01 10:34:09 +02:00
Joost Lekkerkerker 6c93865cee Use shorthand attributes in Insteon (#99392) 2023-09-01 10:13:34 +02:00
Jan-Philipp Benecke bbc390837e Move airnow coordinator to its own file (#99423) 2023-09-01 08:29:07 +02:00
Keilin Bickar dc4ed5fea9 Update asynsleepiq library to 1.3.7 (#99431) 2023-09-01 08:24:13 +02:00
Allen Porter 1539853c0a Update google-nest-sdm to 3.0.2 (#99175)
* Update google-nest-sdm to 3.0.2

* Fix device typing

* Update homeassistant/components/nest/device_info.py

Co-authored-by: jan iversen <jancasacondor@gmail.com>

---------

Co-authored-by: jan iversen <jancasacondor@gmail.com>
2023-08-31 20:33:36 -07:00
Joost Lekkerkerker 2dab9eaf86 Use shorthand attributes in Isy994 (#99395) 2023-08-31 19:58:40 -05:00
Keith Burzinski 5e03954e69 Add @kbx81 as esphome codeowner (#99427)
* Add @kbx81 as esphome codeowner

* Add @kbx81 as esphome codeowner, take 2
2023-08-31 23:50:25 +02:00
Álvaro Fernández Rojas 97d38f4ca5 Update AEMET-OpenData to v0.4.4 (#99418)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-31 21:59:01 +02:00
Michael d5adf33225 Address late review for Nextcloud (#99226) 2023-08-31 20:35:11 +02:00
J. Nick Koston 0da94c20b0 Significantly reduce overhead to filter event triggers (#99376)
* fast

* cleanups

* cleanups

* cleanups

* comment

* comment

* add more cover

* comment

* pull more examples from forums to validate cover
2023-08-31 13:47:01 -04:00
Jan-Philipp Benecke 2e7018a152 Move tankerkoenig coordinator and base entity to its own file (#99416)
* Move tankerkoenig coordinator and entity to its own file

* Add coordinator.py and entity.py to .coveragerc
2023-08-31 19:39:17 +02:00
puddly 22c5071270 Initialize ZHA device database before connecting to the radio (#98082)
* Create ZHA entities before attempting to connect to the coordinator

* Delete the ZHA gateway object when unloading the config entry

* Only load ZHA groups if the coordinator device info is known offline

* Do not create a coordinator ZHA device until it is ready

* [WIP] begin fixing unit tests

* [WIP] Fix existing unit tests (one failure left)

* Fix remaining unit test
2023-08-31 12:09:46 -04:00
Bram Kragten 8284c288bf Bump version to 2023.9.0b1 2023-08-31 17:19:10 +02:00
Joakim Sørensen a603a99bd6 Add remote alias to connection info response (#99410) 2023-08-31 17:17:51 +02:00
Bram Kragten 9836d17c92 Update frontend to 20230831.0 (#99405) 2023-08-31 17:17:50 +02:00
Paul Bottein db8980246b Add entity component translation for water heater away mode attribute (#99394) 2023-08-31 17:17:49 +02:00
G Johansson d1c154fc0d Revert "Sonos add yaml config issue" (#99379)
Revert "Sonos add yaml config issue (#97365)"

This reverts commit 2299430dbe.
2023-08-31 17:17:48 +02:00
Erik Montnemery 97b0815122 Add documentation URL for homeassistant_sky_connect (#99377) 2023-08-31 17:17:47 +02:00
J. Nick Koston a0d03d6bb1 Revert orjson to 3.9.2 (#99374)
* Revert "Update orjson to 3.9.4 (#98108)"

This reverts commit 3dd377cb2a.

* Revert "Update orjson to 3.9.3 (#97930)"

This reverts commit d993aa59ea.
2023-08-31 17:17:46 +02:00
Erik Montnemery eb423c39b6 Improve template sensor config flow validation (#99373) 2023-08-31 17:17:45 +02:00
Austin Brunkhorst 316f89bead Update pysnooz to 0.8.6 (#99368) 2023-08-31 17:17:44 +02:00
puddly 3066d70809 Bump ZHA dependencies (#99341)
* Bump ZHA dependencies

* Include bellows as well
2023-08-31 17:17:43 +02:00
Erik Montnemery 52f8dbf25b Add documentation URL for homeassistant_yellow (#99336)
* Add documentation URL for homeassistant_yellow

* Fix test

* Tweak
2023-08-31 17:17:42 +02:00
tronikos 794071449a Opower MFA fixes (#99317)
opower mfa fixes
2023-08-31 17:17:41 +02:00
Brett Adams cb33d82c24 Patch service validation in Aussie Broadband (#99077)
* Bump pyAussieBB

* rolling back to previous version

* patching the pydantic 2.x issue in aussie_broadband integration

* adding test for validate_service_type

* adding test for validate_service_type

* fixing tests, again

* adding additional test

* doing fixes for live tests

* Implement Feedback

* Add test to detect pydantic2

* Update test_init.py

* Update docstring

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-08-31 17:17:40 +02:00
Erik Montnemery 80caeafcb5 Add documentation URL for homeassistant_yellow (#99336)
* Add documentation URL for homeassistant_yellow

* Fix test

* Tweak
2023-08-31 10:50:53 -04:00
Joakim Sørensen 7042a02d72 Add remote alias to connection info response (#99410) 2023-08-31 10:43:32 -04:00
Bram Kragten 875809a827 Update frontend to 20230831.0 (#99405) 2023-08-31 15:32:37 +02:00
Erik Montnemery f36a300651 Improve template sensor config flow validation (#99373) 2023-08-31 15:16:32 +02:00
Paul Bottein 047f936d4c Add entity component translation for water heater away mode attribute (#99394) 2023-08-31 14:29:24 +02:00
Joost Lekkerkerker 7ead5c44ea Use shorthand attributes in iCloud (#99390)
* Use shorthand attributes in iCloud

* Use shorthand attributes in iCloud
2023-08-31 12:37:21 +02:00
Austin Brunkhorst 2c545ef3d2 Update pysnooz to 0.8.6 (#99368) 2023-08-31 11:15:45 +02:00
Erik Montnemery 35560e01b9 Add documentation URL for homeassistant_sky_connect (#99377) 2023-08-31 10:39:24 +02:00
G Johansson 0fd9327c46 Revert "Sonos add yaml config issue" (#99379)
Revert "Sonos add yaml config issue (#97365)"

This reverts commit 2299430dbe.
2023-08-31 10:24:03 +02:00
Joost Lekkerkerker c25b3e55e4 Add entity translations to Mill (#96541) 2023-08-31 10:13:39 +02:00
Brett Adams e08661dad3 Patch service validation in Aussie Broadband (#99077)
* Bump pyAussieBB

* rolling back to previous version

* patching the pydantic 2.x issue in aussie_broadband integration

* adding test for validate_service_type

* adding test for validate_service_type

* fixing tests, again

* adding additional test

* doing fixes for live tests

* Implement Feedback

* Add test to detect pydantic2

* Update test_init.py

* Update docstring

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-08-31 09:45:44 +02:00
J. Nick Koston a41af4e6d3 Revert orjson to 3.9.2 (#99374)
* Revert "Update orjson to 3.9.4 (#98108)"

This reverts commit 3dd377cb2a.

* Revert "Update orjson to 3.9.3 (#97930)"

This reverts commit d993aa59ea.
2023-08-31 09:33:57 +02:00
Jan-Philipp Benecke 70843862aa Address late review for bsblan (#99360)
* Address late review comment

* Break also comment
2023-08-31 07:31:05 +02:00
tronikos 343e8f0ecc Opower MFA fixes (#99317)
opower mfa fixes
2023-08-31 06:36:07 +02:00
Joost Lekkerkerker 99a65fb45b Collapse supported features list in Deconz (#99233)
* Use shorthand attributes for Deconz

* revert changes
2023-08-30 23:57:23 +02:00
Marc Mueller cc9f0aaf80 Escape core version [ci] (#99364) 2023-08-30 23:56:25 +02:00
Jan-Philipp Benecke 5819091af7 Move octoprint coordinator to its own file (#99359)
Move octoprint coordinator to own file
2023-08-30 22:31:51 +02:00
Erik Montnemery 03b1c7ad1d Minor improvement in tests of hardware integrations (#99361) 2023-08-30 21:11:52 +02:00
b-uwe cdd22bf0fa Revert "Remove the virtual integration for ultraloq" (#99302)
Revert "Remove the virtual integration for ultraloq (#96355)"

This reverts commit 56bc708b28.
2023-08-30 14:58:57 -04:00
puddly 5fd88f5874 Bump ZHA dependencies (#99341)
* Bump ZHA dependencies

* Include bellows as well
2023-08-30 14:56:19 -04:00
jan iversen 8a4e48532c Bump pymodbus v3.5.0 (#99343)
Bump pymodbus v3.5.0.
2023-08-30 20:26:13 +02:00
Erik Montnemery 8c04e4c7a3 Add explicit test of template config entry setup (#99345) 2023-08-30 19:56:34 +02:00
Joost Lekkerkerker 59b1d4ba69 Bump version to 2023.10.0dev0 (#99349) 2023-08-30 19:32:10 +02:00
Bram Kragten 92007fce56 2023.9.0b0 (#99347) 2023-08-30 18:21:27 +02:00
Bram Kragten 1018e82725 Bump version to 2023.9.0b0 2023-08-30 18:17:32 +02:00
Raman Gupta 867e9b73bb Add zwave_js device config file change fix/repair (#99314)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-30 17:29:22 +02:00
Erik Montnemery 501d5db375 Add config flow for template binary sensor (#99339) 2023-08-30 17:28:56 +02:00
Joost Lekkerkerker a5dcc25aab Add snapshot assertion to Airzone (#98760)
Co-authored-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-30 17:11:55 +02:00
Bram Kragten 2ee55f5086 Update frontend to 20230830.0 (#99340) 2023-08-30 16:42:04 +02:00
Joost Lekkerkerker 549399cca6 Remove unneeded variable in Flo (#99322) 2023-08-30 16:37:59 +02:00
Erik Montnemery f9b2e10f72 Add new board type (#99334) 2023-08-30 16:37:13 +02:00
Erik Montnemery 63c538b024 Add config flow for template sensor (#98970)
* Add config flow for template sensor

* Tweak error reporting

* Improve validation

* Fix test

* Rename translation strings

* Improve validation

* Fix sensor async_setup_entry

* Avoid duplicating sensor device class translations

* Avoid duplicating sensor device class translations

* Add config flow tests

* Include all units from DEVICE_CLASS_UNITS in unit_of_measurement select

* Address review comments
2023-08-30 16:22:52 +02:00
Mike Woudenberg bc5f934f35 Correct loqed token URL to production server (#99316)
* Corrects token URL to production server

* Update homeassistant/components/loqed/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-30 16:21:52 +02:00
Joost Lekkerkerker a1b2b9a78c Add entity translations to Tellduslive (#98963) 2023-08-30 16:03:13 +02:00
Joost Lekkerkerker fb6d19d08f Add pressure device class to Telldus live (#99337) 2023-08-30 15:53:30 +02:00
Joost Lekkerkerker 5f05d0d7e9 Map abode units to HA units (#99323) 2023-08-30 15:33:38 +02:00
Joost Lekkerkerker e56db78b27 Use shorthand attributes for Freebox (#99327) 2023-08-30 15:33:05 +02:00
Joost Lekkerkerker 587928223a Use shorthand attributes in Gree (#99332) 2023-08-30 15:16:45 +02:00
Joost Lekkerkerker 66ad605d3e Use shorthand attribute in Google Travel Time (#99331) 2023-08-30 15:09:02 +02:00
Maikel Punie 7170f5d36c Bump pyduotecno to 2023.8.4 (#99328) 2023-08-30 14:26:58 +02:00
Álvaro Fernández Rojas 71a6db0c9d Update AEMET-OpenData to v0.4.3 (#99312) 2023-08-30 07:23:17 -05:00
Jan-Philipp Benecke 5c8e5a7af2 Split bsblan coordinator and randomize update interval (#99269)
* Split out bsblan coordinator and randomize update interval

* Use logger const

* Add randomising update interval for following updates

* Implement review comments

* Re-add config_entry

* Remove line
2023-08-30 13:14:30 +02:00
Raman Gupta 6e5f4566d5 Add zwave_js controller status sensor (#99252)
* Add zwave_js controller status sensor

* Also update network status command

* fix tests

* Remove WS command since we have a sensor entity

* Update sensor.py

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

* move driver assertion out of closures

* store state in tests

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-30 06:50:23 -04:00
Jan-Philipp Benecke 027ce55fa6 Use snapshot assertion for google assistant diagnostics test (#99167) 2023-08-30 12:25:06 +02:00
Jan-Philipp Benecke fb42042402 Use snapshot assertion for nextdns diagnostics test (#99157) 2023-08-30 12:22:10 +02:00
Erik Montnemery 15de221c3e Trigger full CI run if assist_pipeline is modified (#99319) 2023-08-30 12:17:26 +02:00
Joost Lekkerkerker 775f815afc Use shorthand attributes for Ecobee (#99239)
* Use shorthand attributes for Ecobee

* Use shorthand attributes for Ecobee
2023-08-30 12:11:13 +02:00
Joost Lekkerkerker a4818c5f54 Use shorthand attributes for Elmax (#99277) 2023-08-30 12:07:55 +02:00
Joost Lekkerkerker 7d70b42e4a Use shorthand attributes for EnOcean (#99278) 2023-08-30 11:57:56 +02:00
Joost Lekkerkerker 38267699e5 Use device info object in ezviz (#99280) 2023-08-30 11:52:06 +02:00
Joost Lekkerkerker fae50169d9 Add typing to Blink config flow (#98873) 2023-08-30 11:50:47 +02:00
G Johansson 2ce5b08fc3 Deprecate timer start optional duration parameter (#93471)
* Deprecate timer start option duration parameter

* Add test

* Fix strings

* breaks_in_ha_version

* strings

* Mod string
2023-08-30 11:48:13 +02:00
Richard Kroegel 021b14fc17 Refactor & enhance BMW tests (#97895)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-08-30 11:45:09 +02:00
jan iversen 9ef3ec3dd3 Add modbus test for configuration errors (#98697) 2023-08-30 11:34:51 +02:00
Erik Montnemery 9e178ae2ce Fix assist_pipeline schema (#99318) 2023-08-30 11:33:41 +02:00
Raman Gupta 40748a6c34 Add zwave_js controller identify event (#99254) 2023-08-30 11:32:41 +02:00
Joost Lekkerkerker 56b99d2bc6 Add entity translations to QNAP QSW (#98915) 2023-08-30 11:20:15 +02:00
ollo69 a89a5f486d Migrate Melcloud to has entity name (#99025) 2023-08-30 10:53:52 +02:00
Michael e7462e916a Conditional category for temperature sensor entities in AVM Fritz!Smarthome (#98981) 2023-08-30 10:29:35 +02:00
Joost Lekkerkerker bd04cafb91 Use shorthand attributes for Daikin (#99225)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-08-30 10:25:53 +02:00
Michał Huryn e911b73b61 Add extra sensors to Blebox (#90516) 2023-08-30 10:20:45 +02:00
Joost Lekkerkerker 56e5c34283 Add entity translations to Garages Amsterdam (#98584) 2023-08-30 09:46:28 +02:00
Erik Montnemery 7e7cb15d5b Revert "Allows defining list of attributes excluded from history in manifest.json" (#99300)
Revert "Allows defining list of attributes excluded from history in manifest.json (#99283)"

This reverts commit 0366e14630.
2023-08-30 08:26:26 +02:00
Daniel Hjelseth Høyer fb4e93071e Update Mill lib, improve error handling (#99296) 2023-08-30 00:03:56 -04:00
Paulus Schoutsen 9e4bcd298e Move more Oral-B entities to be diagnostic (#99297) 2023-08-30 00:03:37 -04:00
Michal Jál d7d989b9fb Switchbot nightlatch feature (#98620)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-30 00:03:08 -04:00
Sebastian Mayr 6e8b3837b0 Add support for MFA auth in opower (#97878)
* Add support for MFA auth in opower

* Make MFA an extra step

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-08-29 23:37:37 -04:00
rct cc8f5ca827 Opower add new virtual integrations ConEd and ORU (#99230) 2023-08-29 23:35:19 -04:00
Willem-Jan van Rootselaar 1e37e1e355 Bump python-bsblan to 0.5.16 (#99238) 2023-08-29 23:23:20 -04:00
Michael Hansen 054a63c3a2 Add option to save Assist pipeline audio (#98928)
* Add pipeline option to save wake/stt audio to media

* Add debug_recording_dir to assist_pipeline YAML config

* Clean up and additional tests

* Remove I/O in event loop

* Organize saved audio by pipeline name and device id

* Record wake/stt debug audio in separate thread

* Fix after rebase

* Use timestamp instead of pipeline id for directory name

* Add WAV write error test

* Join thread in executor
2023-08-29 23:07:27 -04:00
Øyvind Matheson Wergeland de30712d76 Verisure: propagate lock code digits configuration immediately (#99241) 2023-08-29 22:02:09 +02:00
Richard Kroegel b403cb41c0 Allow one retry before raising ConfigEntryAuthFailed for bmw_connected_drive (#99168)
* Allow one retry before raising ConfigEntryAuthFailed

* Move time with freezer

* Update homeassistant/components/bmw_connected_drive/coordinator.py

---------

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-29 21:41:50 +02:00
Álvaro Fernández Rojas 4508e341c9 Add wind gust to AEMET hourly forecasts (#99289)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-29 21:14:37 +02:00
Stefan Agner 53c5b187c0 Update Home Assistant base image to 2023.08.0 (#99281) 2023-08-29 20:43:32 +02:00
Erik Montnemery 0366e14630 Allows defining list of attributes excluded from history in manifest.json (#99283)
* Move list of attributes excluded from history to manifest.json

* Address comments
2023-08-29 20:14:33 +02:00
kel30a 50150f5577 Bump pydaikin version to 2.11.1 (#99288) 2023-08-29 13:08:39 -05:00
Álvaro Fernández Rojas c3ef518551 Update AEMET-OpenData to v0.4.2 (#99286) 2023-08-29 13:06:46 -05:00
Mike Degatano e0eb63c588 Validate slug in addon services (#99232)
* Validate slug in addon services

* Move validator into hassio component

* Fixes from mypy

* Fix test for changes

* Adjust fixtures to current supervisor

* Fix call counts after fixture adjustment

* Increase coverage
2023-08-29 13:57:41 -04:00
Joost Lekkerkerker e2dd7f2069 Add entity translations to NZBGet (#98805) 2023-08-29 18:15:44 +02:00
Maciej Bieniek fe713cec8f Don't assume that the activity/sleep labels are always present in Tractive event (#99197)
* Don't assume that the activity_label and sleep_labes are always present in an event

* Catch KeyError
2023-08-29 17:52:29 +02:00
Joost Lekkerkerker b9fd2ee3b6 Use functions to get value and unit in Abode (#99084) 2023-08-29 17:37:26 +02:00
Phil Bruckner 10c53dd284 Fix Life360 reauthorization config flow (#99227) 2023-08-29 16:38:11 +02:00
Álvaro Fernández Rojas 2e0a22fdaf Use freezegun in AEMET tests (#99253) 2023-08-29 09:33:12 -05:00
J. Nick Koston 5006244f4c Bump aioesphomeapi to 16.0.3 (#99282) 2023-08-29 09:31:41 -05:00
Joost Lekkerkerker f28634ea11 Migrate PVPC to has entity name (#98894)
* Migrate PVPC to has entity name

* Set device name

* Fix feedback
2023-08-29 16:26:23 +02:00
Robert Resch 6223b1f599 Add ws endpoint "auth/delete_all_refresh_tokens" (#98976)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-29 15:57:54 +02:00
Erik Montnemery 691bbedfc8 Fix typo in TrackTemplateResultInfo (#99276) 2023-08-29 08:54:38 -05:00
David Knowles 9476ade34a Bump pydrawise to 2023.8.0 (#99270) 2023-08-29 15:43:27 +02:00
Álvaro Fernández Rojas fae82731e1 Simplify and improve AEMET coordinator updates (#99273) 2023-08-29 08:43:14 -05:00
Joost Lekkerkerker 98cb5b4b5d Use shorthand attributes for Elkm1 (#99275) 2023-08-29 14:46:24 +02:00
Álvaro Fernández Rojas dac77040a2 Update AEMET-OpenData to v0.4.1 (#99261)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-29 13:41:34 +02:00
Joost Lekkerkerker 00ecc108d1 Use shorthand attributes for DuneHD (#99237) 2023-08-29 13:08:24 +02:00
Quentame 750cfeb76a Refactor Freebox Home categories (#99224) 2023-08-29 12:43:22 +02:00
Maciej Bieniek 62b1211dee Remove myself from Dune HD codeowners (#99268) 2023-08-29 12:41:19 +02:00
Quentame f1ec99b9c9 Add Freebox Home battery sensor (#99222)
* Add Freebox Home battery sensor

* Review

* Review 2

* Freebox battery is a SensorEntity, not a FreeboxSensor
2023-08-29 12:13:01 +02:00
G Johansson 657ed0bcdb Clean out compatibility for deprecated methods in Weather (#99263)
Clean out compatability in Weather
2023-08-29 11:33:56 +02:00
Erik Montnemery e6eadc79e9 Small typing fix in light group (#99259) 2023-08-29 11:12:34 +02:00
escoand 4632a07f3f Add possibility to have multiple values for every modbus hvac mode (#98829)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2023-08-29 10:45:37 +02:00
G Johansson 7a690d7359 Add deprecation to legacy forecast for Weather (#97294)
* Add deprecation to legacy forecast

* Mod _reported

* issue

* remove not need variable

* kitchen_sink

* 2024.3

* remove demo and mqtt

* add checks

* fix deprecation

* remove variable

* fix kitchen_sink

* Fix deprecation warning

* Expand issue

* clean

* Fix tests

* fix kitchen_sink

* not report on core integrations
2023-08-29 10:38:59 +02:00
Erik Montnemery b22b51fe3b Fix stale docstring in trafikverket_camera tests (#99260) 2023-08-29 10:28:32 +02:00
Joost Lekkerkerker ddbf85fc38 Abort YouTube configuration if user doesn't have subscriptions (#99140) 2023-08-29 09:36:27 +02:00
liangjia2019 63c2a2994f Add new zigbee button SONOFF_SNZB_01P to deconz (#99205)
add new zigbee button
2023-08-29 09:17:27 +02:00
epenet c81d39f651 Fix Renault AssertionError (#99189) 2023-08-29 08:58:20 +02:00
Joost Lekkerkerker b5ff0b4ec2 Add entity translations to Vilfo (#99019) 2023-08-29 08:47:35 +02:00
Raman Gupta be126da72d Bump zwave-js-server-python to 0.51.0 (#99250)
* Bump zwave-js-server-python to 0.51.0

* Fix how we patch the command
2023-08-29 02:45:43 -04:00
Joost Lekkerkerker cdf39ec365 Migrate Vilfo to has entity name (#99018) 2023-08-29 08:42:37 +02:00
Joost Lekkerkerker 202b0b5300 Migrate Venstar to has entity name (#99013) 2023-08-29 08:40:35 +02:00
J. Nick Koston 5ec645161d Bump zeroconf to 0.88.0 (#99248)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.86.0...0.88.0
2023-08-29 00:01:39 -04:00
puddly c8ef3f9393 Automatic migration from multi-PAN back to Zigbee firmware (#93831)
* Initial implementation of migration back to Zigbee firmware

* Fix typo in `BACKUP_RETRIES` constant name

* Name potentially long-running tasks

* Add an explicit timeout to `_async_wait_until_addon_state`

* Guard against the addon not being installed when uninstalling

* Do not launch the progress flow unless the addon is being installed

* Use a separate translation key for confirmation before disabling multi-PAN

* Disable the bellows UART thread within the ZHA config flow radio manager

* Enhance config flow progress keys for flasher addon installation

* Allow `zha.async_unload_entry` to succeed when ZHA is not loaded

* Do not endlessly spawn task when uninstalling addon synchronously

* Include `uninstall_addon.data.*` in SkyConnect and Yellow translations

* Make `homeassistant_hardware` unit tests pass

* Fix SkyConnect unit test USB mock

* Fix unit tests in related integrations

* Use a separate constant for connection retrying

* Unit test ZHA migration from multi-PAN

* Test ZHA multi-PAN migration helper changes

* Fix flaky SkyConnect unit test being affected by system USB devices

* Unit test the synchronous addon uninstall helper

* Test failure when flasher addon is already running

* Test failure where flasher addon fails to install

* Test ZHA migration failures

* Rename `get_addon_manager` to `get_multiprotocol_addon_manager`

* Remove stray "addon uninstall" comment

* Use better variable names for the two addon managers

* Remove extraneous `self.install_task = None`

* Use the addon manager's `addon_name` instead of constants

* Migrate synchronous addon operations into a new class

* Remove wrapper functions with `finally` clause

* Use a more descriptive error message when the flasher addon is stalled

* Fix existing unit tests

* Remove `wait_until_done`

* Fully replace all addon name constants with those from managers

* Fix OTBR breakage

* Simplify `is_hassio` mocking

* Add missing tests for `check_multi_pan_addon`

* Add missing tests for `multi_pan_addon_using_device`

* Use `waiting` instead of `sync` in class name and methods
2023-08-28 17:26:34 -04:00
puddly 23839a7f10 Wrap most ZHA exceptions in HomeAssistantError (#98421)
* Wrap attribute writes in a helper throwing `HomeAssistantError`

* Do not check for `Exception` instances, they are now propagated

* Write `cie_addr` synchronously

* Fix unnecessary `if` in `async_set_native_value`

* Fix unit tests

* Use `HomeAssistantError` in cover commands

* Revert writing `cie_addr` synchronously

* Disallow proxying of some cluster methods to fix unit test warnings

* Unit test cover failures to increase coverage

* Unit test missing climate device

* Unit test remaining cover commands
2023-08-28 17:24:12 -04:00
Jan-Philipp Benecke 97fd73f9f7 Bump syrupy to 4.2.1 (#99156) 2023-08-28 23:14:07 +02:00
J. Nick Koston 0e6b3d6583 Switch async_track_same_state to use async_call_later (#99219)
* Switch async_track_same_state to use async_call_later

There was no need to use async_track_point_in_utc_time here since
we only need a delay

* update trigger tests

* remove some more utcnow patching

* remove some more utcnow patching

* remove some more utcnow patching
2023-08-28 22:30:20 +02:00
J.P. Krauss 95c03b4192 Add Options Flow to change radius after initial configuration (#97285)
* Add Options Flow to change radius after initial configuration

* Add tests for Options Flow

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Incorporate review suggestions

* Fix diagnostics test case

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Incorporate review suggestions

* Revert "Incorporate review suggestions"

This reverts commit 421e140a4fc78da22ea74c95cd1a17f9305ebbf6.

* Fix broken review comments

* Incorporate rest of review comments

* Incorporate rest of review comments

* Use Config Entry Migration

* Remove old migration code

* Update diagnostics snapshot for config entry migration

* Incorporate review feedback

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-28 21:21:52 +02:00
jimmyd-be 9e8d89c4f5 Renson binary sensors (#94490)
* Add binary sensors

* Add Renson services

* Add fan to Renson

* Revert "Add fan to Renson"

This reverts commit 8e7c09671e.

* Revert "Add Renson services"

This reverts commit d862976c81.

* Add binary sensor to coveragerc file

* Update homeassistant/components/renson/binary_sensor.py

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

* Update homeassistant/components/renson/binary_sensor.py

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

* Changed hard coded names to use translation

* Code cleaning

* Use super()._handle_coordinator_update()

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-28 21:15:18 +02:00
J. Nick Koston 80d2309896 Switch async_track_time_interval to use async_call_later internally (#99220) 2023-08-28 13:56:22 -05:00
Joost Lekkerkerker 821d74e904 Add entity translations to Switcher kis (#99223)
* Add entity translations to switcher_kis

* Add entity translations

* Fix tests
2023-08-28 20:53:42 +03:00
Joost Lekkerkerker fc6f48e076 Enhance Androidtv remote config flow typing (#99144) 2023-08-28 18:03:30 +02:00
Joost Lekkerkerker 3db61a99a4 Remove polling interval property from Aurora (#99198) 2023-08-28 18:01:23 +02:00
Joost Lekkerkerker 1c0d5f8637 Clean up Balboa entity (#99203) 2023-08-28 17:59:53 +02:00
Joost Lekkerkerker 00cc57c4ed Use shorthand attribute for Coolmaster (#99211) 2023-08-28 17:57:51 +02:00
Joost Lekkerkerker 377f7cba60 Improve aurora data schema (#99200) 2023-08-28 17:56:27 +02:00
Aidan Timson 42597f80a3 Add power service to System Bridge integration (#95719)
* Add power service to System Bridge

Add missing return types

Use in list validator and fix command

* Use attr map instead of concatination

* Update strings

* Update homeassistant/components/system_bridge/strings.json

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-28 17:44:23 +02:00
Ian Foster ef7a246f09 Fix ruckus_unleashed for python 3.11 (#94835)
Co-authored-by: Tony <29752086+ms264556@users.noreply.github.com>
2023-08-28 17:26:40 +02:00
J. Nick Koston 739eeeccb0 Switch hassio to use async_call_later (#99216) 2023-08-28 10:21:05 -05:00
J. Nick Koston 1bf7b4b2c7 Switch lifx to use async_call_later (#99217) 2023-08-28 10:20:42 -05:00
J. Nick Koston ccb91e3676 Switch axis to use async_call_later (#99215) 2023-08-28 10:19:44 -05:00
Erik Montnemery 9dac6a2948 Use loop.time in DataUpdateCoordinator (#98937) 2023-08-28 10:16:34 -05:00
J. Nick Koston d4e72c49fa Bump aiohomekit to 3.0.1 (#99210) 2023-08-28 10:02:51 -05:00
J. Nick Koston 6c16d89c1d Switch w800rf32 to use async_call_later (#99214) 2023-08-28 17:00:52 +02:00
J. Nick Koston 4eb71a534f Switch async_track_point_in_time to async_call_later in alarmdecoder (#99213) 2023-08-28 16:57:16 +02:00
Franck Nijhof f7a45e31c1 Merge branch 'master' into dev 2023-08-28 16:26:29 +02:00
Jake Colman f1378bba8e Add indoor sensors to Honeywell integration (#98609)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-28 15:45:01 +02:00
Joost Lekkerkerker a6788208fe Add entity translations to System bridge (#98959) 2023-08-28 15:36:18 +02:00
Joost Lekkerkerker 61ff53fcf7 Use shorthand attributes in August (#99196) 2023-08-28 08:14:38 -05:00
Simone Chemelli 1692d83063 Vodafone Station device tracker (#94032)
* New integration for Vodafone Station

* coveragerc

* Add ConfigFlow,ScannerEntity,DataUpdateCoordinator

* Introduce aiovodafone lib

* heavy cleanup

* bump aiovodafone to v0.0.5

* add config_flow tests (100% coverage)

* run pre-comimit scripts again

* Remove redundant parameter SSL

* rename and cleanup

* cleanup and bug fix

* cleanup exceptions

* constructor comment review

* improve test patching

* move VodafoneStationDeviceInfo to dataclass

* intriduce home field

* dispacher cleanup

* remove extra attributes (reduces state writes)

* attempt to complete test flow

* complete flow for test_exception_connection

* add comment about unique id
2023-08-28 15:10:23 +02:00
Guido Schmitz 660167cb1b Add image platform to devolo_home_network (#98036) 2023-08-28 14:55:49 +02:00
Joost Lekkerkerker 3f0a8b7a56 Initialize static shorthand attributes outside of constructor for BAF (#99202)
Initialize static shorthand attributes outside of init
2023-08-28 14:43:51 +02:00
Joost Lekkerkerker 60844954d2 Add typing to media extractor (#99207)
* Add typing to media extractor

* Add typing to media extractor

* Add typing to media extractor

* Add typing to media extractor
2023-08-28 14:43:22 +02:00
Rami Mosleh 1d403a961f Reorganize Transmission entry setup (#99195)
* simplify integration setup

* Update transmission entry setup to avoid None attributes

* keep api property in TransmissionData

* Apply suggestion

* Add __init__.py tp .coveragerc
2023-08-28 13:13:35 +02:00
Joost Lekkerkerker efcf3ddb57 Remove BleBox switch constructor (#99204) 2023-08-28 12:49:20 +02:00
Rami Mosleh 8edae37082 Add more type hints to Transmission (#99190)
* More type hints of transmssion

* More type hints
2023-08-28 11:20:18 +02:00
Shay Levy b0f3b7bb76 Revert "Change naming of Shelly entities to correspond with HA guidelines" (#99059) 2023-08-28 10:42:24 +02:00
Robert Resch bb545b1c4d Fix typos in home_plus_controls (#99188) 2023-08-28 10:15:14 +02:00
Álvaro Fernández Rojas 1683ffb830 Update aioqsw to v0.3.4 (#99183)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-28 09:35:29 +02:00
Eric Severance 30b815bfb8 Bump pywemo to 1.3.0 (#99172) 2023-08-28 09:34:30 +02:00
J. Nick Koston 01d29512ff Bump zeroconf to 0.86.0 (#99177)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.85.0...0.86.0
2023-08-28 09:33:08 +02:00
Erik Montnemery e97e9ae55a Use freezegun in trafikverket_camera tests (#99067) 2023-08-28 09:23:32 +02:00
jan iversen a3b526eef6 Address late modbus review (#99123)
Post review comments.
2023-08-28 09:07:31 +02:00
Erik Montnemery 4b50c95d1d Fix trafikverket_camera recorder platform setup (#99080) 2023-08-28 09:05:09 +02:00
Maciej Bieniek 579c760f53 Add missing low state for ENUM Tractive sensors (#99057)
* Add missing "low" option

* Use existing translations
2023-08-28 08:23:26 +02:00
Richard Kroegel c686f962b5 Bump bimmer_connected to 0.14.0 (#99161)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-08-27 18:37:08 -07:00
Joost Lekkerkerker dbb00b1725 Add code owner for Media Extractor (#99153) 2023-08-28 00:05:41 +02:00
Joost Lekkerkerker c9905fda6d Add entity translations to Watttime (#99151) 2023-08-27 23:54:49 +02:00
J. Nick Koston 16041e5127 Bump zeroconf to 0.85.0 (#99165) 2023-08-27 16:00:19 -05:00
Michael 1bd37612af Introduce more sensors to Nextcloud (#99155) 2023-08-27 20:50:27 +02:00
Michael 0ce9d21bea Rework to use list of entity descriptions in Nextcloud integration (#99150) 2023-08-27 20:18:55 +02:00
Joost Lekkerkerker c88672c352 Make Anova device unique id public (#99147) 2023-08-27 20:10:08 +02:00
Joost Lekkerkerker fbe2228c3f Extract Ambient Station base entity to separate file (#99142)
* Extract Ambient Station entity to separate file

* Add to coveragerc
2023-08-27 20:09:10 +02:00
Joost Lekkerkerker 65103d4515 Improve Anova typing (#99146) 2023-08-27 20:06:19 +02:00
Joost Lekkerkerker a48c7f67b4 Remove codeowner from airtouch4 (#99145) 2023-08-27 20:04:49 +02:00
J. Nick Koston 17fd538198 Bump zeroconf to 0.84.0 (#99138) 2023-08-27 13:00:58 -05:00
Joost Lekkerkerker e1dc133fa1 Add device info to Watttime (#99022) 2023-08-27 19:50:36 +02:00
Joost Lekkerkerker 4394fc2897 Fix typo in AnthemAV const (#99149) 2023-08-27 19:38:12 +02:00
Michael cc103ddbaa Split Owncloud CPU load in separate sensors (#99141)
* split cpu load values into own sensors

* apply suggestion
2023-08-27 19:34:58 +02:00
J. Nick Koston d17ffff3e3 Retry tplink setup later if device has an unexpected mac address (#98784)
Retry tplink setup later if device has an unexpected serial

If the DHCP reservation changed and there is now a different tplink device at
the saved IP address, retry setup later to avoid cross linking devices
2023-08-27 19:00:39 +02:00
escoand d21ee30ddf Extend Nextcloud integration (#94066) 2023-08-27 18:51:31 +02:00
J. Nick Koston f42b8e217b Bump ulid-transform to 0.8.1 (#99139) 2023-08-27 11:32:41 -05:00
J. Nick Koston 6cd28b64e8 Bump bluetooth-data-tools 1.9.1 (#99131) 2023-08-27 10:10:00 -05:00
J. Nick Koston 6992ea9af0 Bump fnv-hash-fast to 0.4.1 (#99135) 2023-08-27 10:08:21 -05:00
Robert Svensson 5e5193eeb5 Rework UniFi Network Controller device and add software version (#99136)
Rework Network Controller device and add software version
2023-08-27 17:07:38 +02:00
Robert Svensson 71bf782b22 Improve UniFi PoE control by queueing commands together (#99114)
* Working draft without timer

* Clean up
Improve tests

* Use async_call_later
2023-08-27 16:58:48 +02:00
J. Nick Koston 20b8c5dd26 Bump home-assistant-bluetooth to 1.10.3 (#99133) 2023-08-27 09:29:17 -05:00
J. Nick Koston 842a56f5c7 Bump zeroconf to 0.83.1 (#99134) 2023-08-27 09:28:23 -05:00
J. Nick Koston 5cc49f6dd6 Bump dbus-fast to 1.94.1 (#99132) 2023-08-27 09:27:30 -05:00
Joost Lekkerkerker b266096ae1 Use snapshot assertion for Watttime diagnostics test (#99023) 2023-08-27 09:19:15 -05:00
Joost Lekkerkerker 11cecc3f0a Use shorthand attributes for airtouch4 (#99086) 2023-08-27 09:11:45 -05:00
Joost Lekkerkerker faed58c01b Migrate Somfy mylink to has entity name (#98947) 2023-08-27 16:09:15 +02:00
Steven Looman 045c514c18 Bump async-upnp-client to 0.35.0 (#99129) 2023-08-27 09:08:58 -05:00
Joost Lekkerkerker 6e157fef18 Add device info to Withings (#99052) 2023-08-27 16:06:08 +02:00
Joost Lekkerkerker a73f214ead Add typing to Venstar Config flow (#99016) 2023-08-27 16:03:36 +02:00
J. Nick Koston c087e6eab6 Revert "Bump python bsblan 0.5.14" (#99130) 2023-08-27 08:59:28 -05:00
Allen Porter 7070302001 Use climate entity built in attrs for nest climate (#99093)
* Use climate entity built in attrs for nest climate

* Update homeassistant/components/nest/climate.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2023-08-27 14:05:17 +03:00
Rami Mosleh 2dd6b26fbc Add type hints to transmission (#99117)
* Add type hints

* Apply suggestions
2023-08-27 12:43:30 +02:00
J. Nick Koston 54cd0e8183 Add some missing typing to isy994 (#99110) 2023-08-27 12:33:00 +02:00
J. Nick Koston 0362ce92b5 Drop switchbot codeowner (#99108)
I picked up working on this integration because I wanted to make sure the new Bluetooth stack had a good test case to work out issues and did not generate unexpected breaking changes.

Since I do not use switchbot in production, I usually cannot help solve problems beyond the Bluetooth stack that is visible to HA.

While I am still happy to do code reviews here, the Bluetooth stack has matured to the point where watching for issues here is no longer helpful to maintaining the stack as the signal to noise ratio is too high
2023-08-27 09:37:27 +02:00
Robert Svensson 45efe29262 Bump aiounifi to v58 (#99103) 2023-08-26 18:27:45 -05:00
Willem-Jan van Rootselaar a81e6d5811 Bump python bsblan 0.5.14 (#99089)
* update python-bsblan to 0.5.14

* fix test diagnostics
2023-08-26 22:13:25 +03:00
Joost Lekkerkerker 2fc728db42 Remove unused variable from Airthings BLE (#99085)
* Remove unused variable from Airthings BLE

* Remove unused variable from Airthings BLE
2023-08-26 19:42:49 +02:00
uvjustin 407aa31adc Generate Stream snapshots using next keyframe (#96991)
* Add wait_for_next_keyframe option to stream images
Add STREAM_SNAPSHOT to CameraEntityFeature
Use wait_for_next_keyframe option for snapshots using stream

* Update stream test comments

* Add generic camera snapshot test

* Get stream still images directly in camera
Remove getting stream images from generic, nest, and ONVIF
Refactor camera preferences
Add use_stream_for_stills setting to camera
Update tests

* Only attempt to get stream image if integration supports stream

* Use property instead of entity registry setting

* Split out getting stream prerequisites from stream_source in nest

* Use cached_property for rtsp live stream trait

* Make rtsp live stream trait NestCamera attribute

* Update homeassistant/components/nest/camera.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* Change usage of async_timeout

* Change import formatting in generic/test_camera

* Simplify Nest camera property initialization

---------

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2023-08-26 10:39:40 -07:00
J. Nick Koston e003903bc5 Bump zeroconf to 0.83.0 (#99091) 2023-08-26 12:26:12 -05:00
Ville Skyttä c287bd1a3b Remove pylint configs flagged by useless-suppression (#99081) 2023-08-26 17:46:03 +03:00
tronikos a25a7ebbeb Bump opower to 0.0.32 (#99079) 2023-08-26 15:39:48 +02:00
Erik Montnemery d74a0fd6dd Use freezegun in additional fronius tests (#99066) 2023-08-26 09:11:42 +02:00
Marc Mueller 6f43dd1c14 Adjust netatmo test (#99071) 2023-08-26 07:35:10 +02:00
Allen Porter 8d9c5a61ec Update calendar handle state updates at start/end of active/upcoming event (#98037)
* Update calendar handle state updates at start/end of active/upcoming event

* Use async_write_ha_state intercept state updates

Remove unrelated changes and whitespace.

* Revert unnecessary changes

* Move demo calendar to config entries to cleanup event timers

* Fix docs on calendars

* Move method inside from PR feedback
2023-08-25 18:32:20 -07:00
Marc Mueller 544d6b05a5 Replace mock_coro with AsyncMock (#99014)
* Replace mock_coro with AsyncMock

* Remove mock_coro test helper function

* Remove redundant AsyncMock
2023-08-25 22:54:55 +02:00
Joost Lekkerkerker 57144a6064 Use entity descriptions in Switcher (#98958) 2023-08-25 21:12:21 +03:00
Erik Montnemery 3a71e21d6a Add and improve comments about staggering of event listeners (#99058) 2023-08-25 19:47:13 +02:00
Michael Hansen 8768c39021 Wake word cleanup (#98652)
* Make arguments for async_pipeline_from_audio_stream keyword-only after hass

* Use a bytearray ring buffer

* Move generator outside

* Move stt stream generator outside

* Clean up execute

* Refactor VAD to use bytearray

* More tests

* Refactor chunk_samples to be more correct and robust

* Change AudioBuffer to use append instead of setitem

* Cleanup

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-08-25 13:28:48 -04:00
Jan Bouwhuis 49897341ba Add lawn_mower platform to MQTT (#98831)
* Add MQTT lawn_mower platform

* Use separate command topics and templates

* Remove unrelated change
2023-08-25 17:56:22 +02:00
Erik Montnemery 27f7399071 Modernize accuweather weather (#99001) 2023-08-25 16:46:23 +02:00
Jan-Philipp Benecke f96c1516f8 Use snapshot assertion for gios diagnostics test (#98984) 2023-08-25 16:46:10 +02:00
Erik Montnemery b0952bc54a Use freezegun in shelly tests (#99042) 2023-08-25 09:06:43 -05:00
Erik Montnemery 452caee41a Use freezegun in pvpc_hourly_pricing tests (#99040) 2023-08-25 09:06:14 -05:00
Erik Montnemery c827af5826 Use freezegun in uptimerobot tests (#99046) 2023-08-25 09:05:44 -05:00
Erik Montnemery 0d3663c52a Use freezegun in fronius tests (#99030) 2023-08-25 09:05:16 -05:00
Erik Montnemery 5617a738c0 Use freezegun in airly tests (#99028) 2023-08-25 09:04:51 -05:00
Erik Montnemery dd39e8fe64 Use freezegun in hue tests (#99033) 2023-08-25 09:04:28 -05:00
Erik Montnemery 3b07181d87 Use freezegun in fully_kiosk tests (#99031) 2023-08-25 09:03:51 -05:00
Erik Montnemery 1f9c180233 Use freezegun in iotawatt tests (#99034) 2023-08-25 09:03:29 -05:00
Erik Montnemery e6728f2f19 Use freezegun in kraken tests (#99035) 2023-08-25 09:03:12 -05:00
Erik Montnemery cb8842b1fb Use freezegun in landisgyr_heat_meter tests (#99037) 2023-08-25 09:02:47 -05:00
Erik Montnemery 75743ed947 Use freezegun in here_travel_time tests (#99032) 2023-08-25 09:02:25 -05:00
Erik Montnemery 676f59fded Use freezegun in trafikverket_ferry tests (#99045) 2023-08-25 09:02:07 -05:00
Erik Montnemery 81aa35a9ce Use freezegun in version tests (#99047) 2023-08-25 09:01:48 -05:00
Erik Montnemery f99743bedb Use freezegun in tomorrowio tests (#99044) 2023-08-25 09:01:28 -05:00
Erik Montnemery f18a277cac Use freezegun in ws66i tests (#99049) 2023-08-25 09:00:50 -05:00
Erik Montnemery ee073e9e3e Use freezegun in lacrosse_view tests (#99036) 2023-08-25 09:00:30 -05:00
Erik Montnemery e0af9de877 Use freezegun in motioneye tests (#99038) 2023-08-25 09:00:11 -05:00
Erik Montnemery 943db9e0d5 Use freezegun in devolo_home_network tests (#99029) 2023-08-25 08:59:52 -05:00
Erik Montnemery 346674a1a8 Use freezegun in wled tests (#99048) 2023-08-25 08:59:30 -05:00
Erik Montnemery 65d555b138 Use freezegun in qnap_qsw tests (#99041) 2023-08-25 08:59:08 -05:00
Erik Montnemery 64306ec053 Use freezegun in solaredge tests (#99043) 2023-08-25 08:58:52 -05:00
Erik Montnemery 8161810159 Use freezegun in opensky tests (#99039) 2023-08-25 14:03:51 +02:00
Jan-Philipp Benecke 4fb00e448c Use snapshot assertion for rdw diagnostics test (#99027) 2023-08-25 13:40:08 +02:00
J. Nick Koston d79e8b7a02 Avoid fetching state and charging state multiple time for hkc icon (#98995) 2023-08-25 06:35:31 -05:00
Álvaro Fernández Rojas 3f2d2a85b7 Update AEMET-OpenData to v0.4.0 (#99015)
* Update AEMET-OpenData to v0.4.0

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

* Trigger Github CI

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-25 12:53:26 +02:00
Marc Mueller 3ebd7d2fd1 Fix asyncio DeprecationWarning [3.12] (#98989)
* Fix asyncio DeprecationWarning [3.12]

* Use AsyncMock

* Rewrite ffmpeg tests

* Remove test classes

* Rename test file
2023-08-25 12:27:23 +02:00
starkillerOG bab7d289a6 Reolink fix unknown value in select enums (#99012) 2023-08-25 11:42:55 +02:00
Joost Lekkerkerker da9fc495ca Improve SRP Energy coordinator (#99010)
* Improve SRP Energy coordinator

* Use time instead of asyncio
2023-08-25 11:19:40 +02:00
Joost Lekkerkerker 11c5e3534a Add unique id to srp energy entity (#99008) 2023-08-25 10:52:07 +02:00
Joost Lekkerkerker 475fd77019 Extract SRP Energy coordinator to separate file (#98956) 2023-08-25 10:33:02 +02:00
J. Nick Koston 3ebf96143a Improve performance of bluetooth coordinators (#98997) 2023-08-25 10:31:43 +02:00
Niels Perfors c2713f0aed Upgrade Verisure to 2.6.6 (#98258) 2023-08-25 10:27:35 +02:00
Erik Montnemery 48b6b1c11a Modernize openweathermap weather (#99002) 2023-08-25 10:25:03 +02:00
dependabot[bot] 07494f129c Bump actions/checkout from 3.5.3 to 3.6.0 (#99003)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.3...v3.6.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-25 10:18:43 +02:00
Ville Skyttä e7b6037419 Remove unnnecessary pylint configs from components [e-l]* (#99004) 2023-08-25 09:46:34 +02:00
Allen Porter 960d66e168 Bump ical to 5.0.1 (#98998) 2023-08-25 09:43:11 +02:00
Erik Montnemery 3e02fb1f07 Add preview support to all groups (#98951) 2023-08-25 08:59:33 +02:00
Aaron Bach a741298461 Bump simplisafe-python to 2023.08.0 (#98991) 2023-08-24 21:11:58 -05:00
Marc Mueller 72e6f79086 Replace remaining utcnow calls + add ruff check (#97964) 2023-08-25 03:23:43 +02:00
Marty Sun 588db501fb Add new integration Yardian (#97326)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-24 17:48:49 -05:00
Jan-Philipp Benecke 3bcd1d5a1a Use snapshot assertion for iqvia diagnostics test (#98983) 2023-08-24 23:26:21 +02:00
Jan-Philipp Benecke 4d8941d4b7 Use snapshot assertion for onvif diagnostics test (#98982) 2023-08-24 22:40:45 +02:00
Joost Lekkerkerker 54ed8fc914 Use device class translations for 1-wire (#98813) 2023-08-24 22:19:29 +02:00
Joost Lekkerkerker d7adc2621d Migrate Life360 to has entity name (#98796) 2023-08-24 22:03:26 +02:00
Michael Arthur b03ffe6a6a Electric Kiwi: Fix time for installations in UTC (#97881) 2023-08-24 21:57:52 +02:00
mkmer f2c475cf1b Bump aiosomecomfort to 0.0.17 (#98978)
* Clean up imports
Add refresh after login in update

* Bump somecomfort 0.0.17
Separate Somecomfort error to unauthorized

* Add tests

* Run Black format
2023-08-24 21:13:42 +02:00
Joost Lekkerkerker 417fd0838a Migrate Snooz to has entity name (#98940) 2023-08-24 21:05:00 +02:00
Jan Bouwhuis 948b34b045 Do not force update mqtt device_tracker (#98838) 2023-08-24 20:09:14 +02:00
Joost Lekkerkerker a5cced1da9 Add device to Tile (#98964) 2023-08-24 20:07:02 +02:00
Joost Lekkerkerker 7575ffa24e Add entity translations to Tankerkoenig (#98961) 2023-08-24 19:59:34 +02:00
Joost Lekkerkerker 480db1f1e6 Migrate Squeezebox to has entity name (#98948) 2023-08-24 19:58:54 +02:00
Joost Lekkerkerker be78169065 Add entity translations to Risco (#98921) 2023-08-24 19:56:02 +02:00
Joost Lekkerkerker 969063ccf8 Use shorthand attributes for SRP Energy (#98953) 2023-08-24 19:54:49 +02:00
Erik Montnemery 2066cf6b31 Remove group_type from group preview events (#98952) 2023-08-24 19:54:04 +02:00
Joost Lekkerkerker 998a390da5 Use device class in TPLink Omada Update entity (#98971) 2023-08-24 19:53:09 +02:00
Marc Mueller 089f76099d Fix stream test aiohttp DeprecationWarning (#98962) 2023-08-24 19:50:25 +02:00
Joost Lekkerkerker 7d35dcfa65 Make Sabnzbd entity translation clearer (#98938) 2023-08-24 19:49:53 +02:00
J. Nick Koston 53eb4d0ead Bump dbus-fast to 1.94.0 (#98973) 2023-08-24 11:10:38 -05:00
Joost Lekkerkerker 4e049f9bed Use snapshot assertion in Tile diagnostic test (#98965) 2023-08-24 17:11:24 +02:00
Joost Lekkerkerker d300f2d0cc Remove default model from upcloud (#98972) 2023-08-24 16:39:14 +02:00
Ville Skyttä 9da192c752 Avoid use of datetime.utc* methods deprecated in Python 3.12 (#93684)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-08-24 16:38:22 +02:00
G Johansson 61c17291fb Move TemplateEntity to template (#98957)
* Move TemplateEntity to template

* Rename template_entity in helpers
2023-08-24 15:37:04 +02:00
J. Nick Koston 99e97782b6 Improve performance of abort_entries_match (#98932)
* Improve performance of abort_entries_match

In #90406 a ChainMap was added which called __iter__
and __contains__ which ends up creating temp dicts
for matching

https://github.com/python/cpython/blob/174e9da0836844a2138cc8915dd305cb2cd7a583/Lib/collections/__init__.py#L1022

We can avoid this by removing the ChainMap since there
are only two mappings to match on.

This also means options no longer obscures data

* adjust comment
2023-08-24 15:34:45 +02:00
Franck Nijhof 7548c4aced 2023.8.4 (#98955) 2023-08-24 13:47:32 +02:00
Erik Montnemery b145352bbb Modernize meteo_france weather (#98022)
* Modernize meteofrance weather

* Remove options flow

* Remove unused constant

* Format code

---------

Co-authored-by: Quentin POLLET <polletquentin74@me.com>
2023-08-24 13:44:43 +02:00
Franck Nijhof 0d013767ee Add support for event groups (#98463)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-24 12:49:38 +02:00
Joost Lekkerkerker 87dd18cc2e Remove obsolete yaml check in SQL (#98950)
* Remove unique id check from SQL

* Remove unique id check from SQL
2023-08-24 12:35:11 +02:00
G Johansson b69e8fda77 Remove TemplateSensor from the template_entity helper (#98945)
Clean off TemplateSensor
2023-08-24 12:14:39 +02:00
Franck Nijhof 9bc4866bd2 Bumped version to 2023.8.4 2023-08-24 12:12:41 +02:00
starkillerOG e1b005128d Bump reolink-aio to 0.7.8 (#98942) 2023-08-24 12:12:28 +02:00
Nathan Spencer c8b5191984 Bump pylitterbot to 2023.4.5 (#98854) 2023-08-24 12:12:25 +02:00
Nathan Spencer 63a687c37f Bump pylitterbot to 2023.4.4 (#98414) 2023-08-24 12:12:19 +02:00
tronikos 119bc7d847 Bump androidtvremote2 to 0.0.14 (#98801) 2023-08-24 12:10:34 +02:00
Franck Nijhof e208e7da91 Remove repair issue for MQTT discovered items (#98768) 2023-08-24 12:09:58 +02:00
Florent Thiery ce8eebebc5 Reduce Freebox router Raid warning to one occurence (#98740)
* consider Freebox router does not support Raid if the first enumeration raised an http error, fixes #98274

* add router name to warning message

* reduce log level to info, remove details
2023-08-24 12:08:05 +02:00
tronikos dc6e752adf Bump opower to 0.0.31 (#98716) 2023-08-24 12:07:34 +02:00
jan iversen ebdf48e41f Correct modbus swap/datatype error message (#98698) 2023-08-24 12:06:58 +02:00
tronikos cdb088327c Bump opowerto 0.0.30 (#98660) 2023-08-24 12:06:23 +02:00
jan iversen e1eb1cf2fb modbus: slave is allowed with custom (#98644) 2023-08-24 12:05:08 +02:00
Markus Ressel bd0fe63dc8 Fix octoprint down every two minutes (#90001) 2023-08-24 12:05:02 +02:00
J. Nick Koston 849cfa3af8 Retry yeelight setup later if the wrong device is found (#98884) 2023-08-24 12:04:00 +02:00
starkillerOG 9a0507af3c Bump reolink-aio to 0.7.8 (#98942) 2023-08-24 12:01:22 +02:00
Erik Montnemery d282ba6bac Use a single WS command for group preview (#98903)
* Use a single WS command for group preview

* Fix tests
2023-08-24 11:59:24 +02:00
G Johansson 31a8a62165 SNMP sensor refactor to ManualTriggerSensorEntity (#98630)
* SNMP to ManualTriggerSensorEntity

* Mods
2023-08-24 11:45:14 +02:00
G Johansson 3b31c58eba Add coordinator test for Yale Smart Living (#98638) 2023-08-24 11:44:04 +02:00
Joost Lekkerkerker 577f545113 Add entity translations to Rachio (#98917) 2023-08-24 11:43:10 +02:00
Erik Montnemery c47983621c Teach CoordinatorWeatherEntity about multiple coordinators (#98830) 2023-08-24 11:28:20 +02:00
Joost Lekkerkerker f395147f7c Move platform specifics out of Solaredge const (#98941) 2023-08-24 11:27:24 +02:00
Joost Lekkerkerker f44215d286 Use snapshot assertion for Brother diagnostics test (#98904) 2023-08-24 11:19:16 +02:00
Joost Lekkerkerker 0a1ad8a119 Add entity translations to Ridwell (#98918) 2023-08-24 10:42:05 +02:00
G Johansson 147351be6e Add Trafikverket Camera integration (#79873) 2023-08-24 10:39:22 +02:00
Robert Resch 7926c5cea9 Add repair issue about the deprecation of home plus control (#98828)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-24 10:33:06 +02:00
Jan Bouwhuis 8b232047c4 Add origin info support for MQTT discovered items (#98782)
* Add integration info support for MQTT discovery.

* Moving logs to discovery

* Revert adding class property

* Rename to origin

* Follow up comments
2023-08-24 09:50:39 +02:00
Joost Lekkerkerker fe164d06a7 Add entity translations to Sabnzbd (#98923) 2023-08-24 09:23:48 +02:00
Joost Lekkerkerker 602a80c35c Use snapshot assertion for EasyEnergy diagnostics test (#98909) 2023-08-24 09:19:36 +02:00
Joakim Sørensen 8d576c900d Bump hass-nabucasa from 0.69.0 to 0.70.0 (#98935) 2023-08-24 09:18:25 +02:00
Joost Lekkerkerker 14f80560c0 Use snapshot assertion for Ridwell diagnostics test (#98919) 2023-08-24 08:14:46 +02:00
J. Nick Koston 46a0f84101 Bump bluetooth-data-tools to 1.9.0 (#98927) 2023-08-23 20:18:21 -05:00
Ville Skyttä b51c0f6ddc Remove unnnecessary pylint configs from components [s-z]* (#98925) 2023-08-24 01:25:32 +02:00
Joost Lekkerkerker c39f6b3bea Use snapshot assertion for Coinbase diagnostics test (#98906) 2023-08-24 01:23:31 +02:00
Joost Lekkerkerker faa4489f4c Use snapshot assertion for Co2signal diagnostics test (#98905) 2023-08-24 01:18:49 +02:00
Jan Bouwhuis a1307e117d Add additional debug logging for imap (#98877) 2023-08-24 01:02:52 +02:00
Joost Lekkerkerker f1fb28aad5 Use snapshot assertion for ESPHome diagnostics test (#98913) 2023-08-24 01:01:58 +02:00
Joost Lekkerkerker a539d851cc Use snapshot assertion for Enphase Envoy diagnostics test (#98910) 2023-08-23 17:57:55 -05:00
Joost Lekkerkerker 360d2de1e1 Use snapshot assertion for Cpuspeed diagnostics test (#98907) 2023-08-24 00:57:27 +02:00
Ville Skyttä 34b47a2597 Remove unnnecessary pylint configs from components [m-r]* (#98924) 2023-08-24 00:56:50 +02:00
Ville Skyttä 3b4774d9ed Remove unnnecessary pylint configs from components/[a-d]* (#98911) 2023-08-24 00:54:02 +02:00
Joost Lekkerkerker e471110288 Use snapshot assertion for August diagnostics test (#98901) 2023-08-23 17:52:04 -05:00
Klaas Schoute d8f0c090cf Energyzero - Add sensor entity to pick best hours (#98916)
* Add entity to pick best hours

* Add entity also to diagnostics

* Remove string translation that doesn't exists

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-23 23:02:19 +02:00
Joakim Plate 816f834807 Add moisture sensors entities for gardena (#98282)
Add support for soil moisture sensors for gardena
2023-08-23 22:46:34 +02:00
Klaas Schoute 364d872a47 Bump energyzero to v0.5.0 (#98914) 2023-08-23 22:43:08 +02:00
Joost Lekkerkerker f83c335409 Use snapshot assertion for Environment Canada diagnostics test (#98912) 2023-08-23 22:21:24 +02:00
Joost Lekkerkerker 1f0e8f93c5 Use snapshot assertion for Deconz diagnostics test (#98908) 2023-08-23 21:37:03 +02:00
Joost Lekkerkerker 82e92cdf82 Use snapshot assertion for Axis diagnostics test (#98902) 2023-08-23 21:36:18 +02:00
J. Nick Koston e1db3ecf52 Retry rainmachine setup later if the wrong device is found (#98888) 2023-08-23 14:21:18 -05:00
Jan-Philipp Benecke 4aa7fb0e35 Use snapshot assertion for Discovergy diagnostics test (#98871)
Add snapshot assertion to Discovergy
2023-08-23 21:02:11 +02:00
Jean-François Roy e96ce3f520 baf: Raise ConfigEntryNotReady when the device has a mismatched UUID (#98898) 2023-08-23 13:34:38 -05:00
Jan-Philipp Benecke 39992c2ccc Migrate BSB-Lan diagnostics test to snapshot assertion (#98899)
Migrate bsblan diagnostics test to snapshot assertion
2023-08-23 20:20:08 +02:00
Chris Talkington 22c1ddef71 Enable strict typing for ipp (#98792)
enable strict typing for ipp
2023-08-23 12:45:49 -05:00
Erik Montnemery 3c10d0e1f7 Deduplicate entities derived from GroupEntity (#98893) 2023-08-23 19:20:58 +02:00
Erik Montnemery ee1b6a60a0 Deduplicate group preview tests (#98883) 2023-08-23 19:13:24 +02:00
Michael Hansen 4a417c7dcc Wake word entity state/category fix (#98886)
* Only change wake word entity state on detection

* Wake word entity is diagnostic
2023-08-23 12:11:14 -04:00
J. Nick Koston ba9c969d91 Retry lookin setup later if the wrong device is found (#98881) 2023-08-23 10:21:38 -05:00
J. Nick Koston b884dafa81 Retry enphase_envoy setup later if the wrong device is found (#98882) 2023-08-23 10:08:47 -05:00
Chris Talkington b854551c77 Use entity descriptions for IPP (#93888) 2023-08-23 09:34:21 -05:00
Franck Nijhof 39c0689fe6 Revert "Add state classes to adguard sensors" (#98880) 2023-08-23 16:26:20 +02:00
Dennis 57990c7597 Add state classes to adguard sensors (#98577) 2023-08-23 16:09:07 +02:00
Erik Montnemery 6be20b5408 Add preview support to binary sensor group (#98872) 2023-08-23 14:24:48 +02:00
Erik Montnemery e3b945a8d0 Don't allow numerical sensor state to be NaN or inf (#98110) 2023-08-23 14:16:40 +02:00
Erik Montnemery 3b16a3e1e0 Small typing fix in binary_sensor group (#98874) 2023-08-23 14:04:06 +02:00
Nathan Spencer 0aeeac5c42 Bump pylitterbot to 2023.4.5 (#98854) 2023-08-23 12:19:25 +02:00
Marc Mueller 480c34180e Fix forked_daapd test RuntimeWarning (#98864) 2023-08-23 12:17:32 +02:00
Joost Lekkerkerker 4f9c6351b0 Use constructor in Freebox config flow (#98870)
Create data object in init
2023-08-23 12:08:01 +02:00
Joost Lekkerkerker 5b3c60527a Clean up Freebox config flow (#97347)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-08-23 11:52:28 +02:00
Joost Lekkerkerker a2b0149677 Remove config name from IPMA config flow (#98576) 2023-08-23 11:35:04 +02:00
Barry Williams 918d822ec7 Refactor openhome media player getters and attrs (#98690) 2023-08-23 11:31:46 +02:00
Erik Montnemery b143fe285f Enable code coverage for metoffice sensor + weather (#98863) 2023-08-23 12:29:03 +03:00
Marc Mueller 5ae366957f Fix imap test RuntimeWarning (#98865) 2023-08-23 10:52:19 +02:00
Álvaro Fernández Rojas 6be47b1fbd Fix Airzone Cloud diagnostics (#98857)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-23 09:20:53 +02:00
Joost Lekkerkerker 26d7e9958f Remove YAML solution from Open Exchange Rates (#98815) 2023-08-23 08:11:28 +02:00
Charles Garwood 65691fffd6 Change Enphase dry contact relay binary_sensor to switch (#98467)
* Switch relay status from binary_sensor to switch

* docstring

* Bump pyenphase to 1.7.1

* review comments pt1

* review comments pt2

* Mutate data in lib instead of HA

* Bump pyenphase to 1.8.1
2023-08-22 21:28:39 -04:00
Joost Lekkerkerker c4ae9ae430 Remove data rate converting code from NZBGet (#98806) 2023-08-22 23:23:13 +02:00
Álvaro Fernández Rojas 30628766ae Update AEMET-OpenData to v0.3.0 (#98810) 2023-08-22 23:21:42 +02:00
Ville Skyttä 6399d74c15 Remove unnnecessary pylint configs from core (#98704) 2023-08-22 23:12:12 +02:00
Joost Lekkerkerker e9af99e469 Add entity translations to PECO (#98847) 2023-08-22 23:10:02 +02:00
Joost Lekkerkerker 2ff5d6290f Migrate Prosegur to has entity name (#98845) 2023-08-22 23:09:18 +02:00
starkillerOG ade1d33367 Add entity name translations for Reolink (#98589)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-22 23:07:31 +02:00
J. Nick Koston 49d73441bf Abort ESPHome connection when both name and mac address do not match (#98787) 2023-08-22 23:02:23 +02:00
Álvaro Fernández Rojas 99b5c4932f Add hot water sensor support to Airzone (#98500)
* airzone: sensors: add hot water support

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

* airzone: sensor: dhw: enable _attr_has_entity_name

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

* Add requested changes

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-22 22:48:05 +02:00
Álvaro Fernández Rojas af915f1425 Add Airzone Cloud System binary sensors (#95121)
* airzone_cloud: add System binary sensors

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

* airzone-cloud: add error example

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-22 22:41:03 +02:00
Jan Bouwhuis 0f58007e97 Deprecate aux heat for mqtt climate (#98666) 2023-08-22 22:39:55 +02:00
Maximilian d179f8b47d Add filter for affected areas in NINA warnings (#97053)
* Add affected areas to warnings

* Update config flow

* Remove option from config_flow

* Add regex check

* Remove regex check
2023-08-22 22:23:34 +02:00
Joost Lekkerkerker b65e3ddc99 Add entity translations to OVO Energy (#98835) 2023-08-22 22:21:20 +02:00
Joost Lekkerkerker afc3899a1b Add device info to peco (#98836) 2023-08-22 22:16:30 +02:00
Joost Lekkerkerker f10a5b7ee8 Add entity translations to Dexcom (#98795) 2023-08-22 22:09:18 +02:00
Jesse Hills 57bc8ae68e Set assist pipeline binary sensor to true only when stt-start is received (#98844) 2023-08-23 08:00:38 +12:00
J. Nick Koston 35a8385d9d Bump zeroconf to 0.82.1 (#98839) 2023-08-22 22:00:25 +02:00
Joost Lekkerkerker 0ab0901f0f Add entity translations to Powerwall (#98843) 2023-08-22 21:58:57 +02:00
Shay Levy 0d55718117 Downgrade Debouncer call ignored log message (#98840) 2023-08-22 14:42:33 -05:00
Joost Lekkerkerker 342e55409a Add entity translations to OpenGarage (#98834) 2023-08-22 19:55:47 +02:00
Marc Mueller 3f2c03fe77 Add input option to skip coverage [ci] (#98821) 2023-08-22 19:53:55 +02:00
mkmer daade26466 Bump aiosomecomfort to 0.0.16 in Honeywell (#98824)
bump aiosomecomfort to 0.0.16
2023-08-22 19:35:57 +03:00
Joost Lekkerkerker 19576e6c95 Add options flow to OpenSky (#98177) 2023-08-22 18:06:19 +02:00
starkillerOG 59900a49e2 Add Reolink AI detection delay time (#98398) 2023-08-22 18:02:44 +02:00
J. Nick Koston 10b3cc4dd6 Bump zeroconf to 0.81.0 (#98826) 2023-08-22 10:58:29 -05:00
Michael Hansen 07884026c6 Detect wake word services in hassio discovery (#98827) 2023-08-22 11:31:09 -04:00
J. Nick Koston d0fc0aea40 Retry lifx setup later if device has an unexpected serial (#98783) 2023-08-22 10:17:15 -05:00
Robert Resch 426fd62ee3 Adjust hassfest to require translations for core services (#98814)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-22 17:05:53 +02:00
Joost Lekkerkerker 890efd58e0 Add entity translations to Roku (#96083)
* Add entity translations to Roku

* Add entity translations to Roku
2023-08-22 16:59:56 +02:00
Shay Levy 406f06f0fc Abort Shelly setup if MAC address mismatch (#98807) 2023-08-22 07:41:50 -05:00
Joost Lekkerkerker 097c7fbfef Add entity translations to Nexia (#98803) 2023-08-22 07:41:15 -05:00
Joost Lekkerkerker 09efd1c972 Migrate Oncue to has entity name (#98812) 2023-08-22 07:37:33 -05:00
Ernst Klamer 1369874348 Add text sensor to BTHome (#98355) 2023-08-22 07:34:26 -05:00
tronikos 32d8d65add Bump androidtvremote2 to 0.0.14 (#98801) 2023-08-22 12:28:19 +02:00
Joost Lekkerkerker 08707b4abd Add entity translations to Logi circle (#98797) 2023-08-22 12:24:23 +02:00
Joost Lekkerkerker 5ad97827cf Use snapshot assertion for Airly diagnostics (#98726) 2023-08-22 12:17:43 +02:00
Maciej Bieniek 17050a3286 Add support for Shelly Gas Valve addon (#98705)
* Support Gas Valve

* Treat opening and closing as open

* Use set_state()

* Change entity icon and name

* Add valve state sensor

* Closing == closed

* Add translations for valve state entity

* Valve state -> Valve status

* Add tests; use control_result

* Fix mypy error

* Add missing "valve" to the Mock

* Improve docstrings

* Fix climate platform tests

* Increase test coverage

* Add mising return
2023-08-22 11:53:52 +03:00
Joost Lekkerkerker c025244ac1 Add entity translations to Modem callerID (#98798) 2023-08-22 10:34:39 +02:00
Erik Montnemery b885dfa5a8 Add preview to sensor group config and option flows (#83638) 2023-08-22 10:29:16 +02:00
Erik Montnemery 52b1e34af0 Migrate openweathermap weather to CoordinatorEntity (#98799) 2023-08-22 10:27:34 +02:00
Florian Bachmann 00b75ce58d Allows the supervisor to send a session's user to addon with header X-Remote-User (#88472)
* Working draft for x-remote-user

* Adds comment

* Submits user id instead of its name

* Move lines out of try-catch block

* Updates payload attribute

* Removes unnecessary user data from user info API

* revert changes
2023-08-22 10:14:21 +02:00
Erik Montnemery 68e2809c36 Modernize nws weather (#98748) 2023-08-22 10:01:17 +02:00
Erik Montnemery 79811984f0 Modernize open_meteo weather (#98504) 2023-08-22 09:43:33 +02:00
Joost Lekkerkerker 3e56d27bf7 Add device info to FOSCAM (#98167) 2023-08-22 09:37:37 +02:00
starkillerOG 2a78d7fa2d Add Reolink zoom in/out buttons (#97638) 2023-08-22 09:33:32 +02:00
Joost Lekkerkerker 6f7c3c949c Add snapshot assertion to Airvisual Pro (#98759) 2023-08-22 09:31:31 +02:00
Joost Lekkerkerker d4b49726f4 Add snapshot assertion to Airzone cloud (#98761) 2023-08-22 09:30:43 +02:00
Joost Lekkerkerker a89c0c944a Add device info to Life360 (#98772) 2023-08-22 09:28:47 +02:00
Joost Lekkerkerker a0a06f16a7 Add entity translations to Bosch SHC (#98750) 2023-08-22 09:26:49 +02:00
Chris Talkington 2e0038b981 Require device id for Roku entities (#98734) 2023-08-22 09:22:46 +02:00
Joost Lekkerkerker 0f2b8570d2 Add device to Dexcom (#98574) 2023-08-22 09:20:30 +02:00
Chris Talkington c93fcc37c4 Update pyipp to 0.14.4 (#98791)
* update pyipp to 0.14.4

* hassfest
2023-08-22 07:48:48 +02:00
Erik Montnemery 3e7ec88703 Add CoordinatorWeatherEntity (#98777) 2023-08-21 23:10:16 +02:00
jan iversen 92258b8e6f Correct modbus swap/datatype error message (#98698) 2023-08-21 22:55:50 +02:00
Erik Montnemery 4a03f6482a Set thread dataset's preferred router on add if not set (#98639) 2023-08-21 22:46:15 +02:00
Klaas Schoute 07fb47b849 Use VehicleType enum for Garages Amsterdam integration (#98780) 2023-08-21 22:45:29 +02:00
Joost Lekkerkerker 52cabed98f Migrate LastFM to has entity name (#98766) 2023-08-21 22:31:04 +02:00
Joost Lekkerkerker 53c118f652 Migrate LG Soundbar to has entity name (#98773) 2023-08-21 22:29:09 +02:00
Joost Lekkerkerker 5a835e703f Add entity translations to Honeywell Lyric (#98775) 2023-08-21 22:28:20 +02:00
Maciej Bieniek f97f33fff7 Only create an issue if push updates fail 5 times in a row for Shelly gen1 devices (#98747) 2023-08-21 22:27:36 +02:00
J. Nick Koston 9123e13774 Remove unused code in doorbird (#98779) 2023-08-21 22:23:16 +02:00
J. Nick Koston d582e60a6e Enable strict typing for doorbird (#98778) 2023-08-21 22:22:25 +02:00
Robert Svensson d0d160f11c Unifi add port forward control to switch platform (#98309) 2023-08-21 22:01:44 +02:00
Dennis 78f0d8bc9c Add/Modify tomorrow.io sensor entity icons (#98648) 2023-08-21 21:59:56 +02:00
Joakim Plate 41db088f5d Update to 1.3.0 of gardena bluetooth (#98776) 2023-08-21 21:58:21 +02:00
Joost Lekkerkerker 30d3df2d96 Add morning and evening damping to Forecast solar (#98721)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-08-21 21:43:09 +02:00
Joost Lekkerkerker a1d554d1cb Add entity translations to Hyperion (#98635) 2023-08-21 21:40:01 +02:00
Joost Lekkerkerker baf32658e5 Set battery device class in Logi Circle (#98774) 2023-08-21 21:30:23 +02:00
Guido Schmitz 365dc47740 Add update platform to devolo Home Network (#86003)
* Add update platform

* Take care of progress

* Adapt to recent development

* Only add platform if supported

* Avoid unneeded line change

* Fix ruff in tests

* Handle update failures like in button platform

* Apply suggestions

* Fix tests

* Remove unused logger
2023-08-21 20:59:58 +02:00
Franck Nijhof c39fc0766e Remove repair issue for MQTT discovered items (#98768) 2023-08-21 20:03:19 +02:00
Joost Lekkerkerker 3eb2b7010d Add device info to LG Soundbar (#98771) 2023-08-21 19:54:17 +02:00
Joost Lekkerkerker 07ffbe82c1 Add snapshot assertion to Ambient Station (#98764) 2023-08-21 19:46:36 +02:00
Marc Mueller 2369964f27 Update aws boto dependencies (#98619) 2023-08-21 19:40:21 +02:00
Ville Skyttä 2399cd283a Python 3.10 support cleanups (#98640) 2023-08-21 19:14:07 +02:00
G Johansson faf0f5f19b Fix default values in Scrape (#98755) 2023-08-21 19:10:35 +02:00
Joost Lekkerkerker 2d46b589b9 Add entity translations to Kraken (#98765) 2023-08-21 19:09:51 +02:00
J. Nick Koston 6023ee0cc4 Bump dbus-fast to 1.93.0 (#98758) 2023-08-21 19:08:26 +02:00
Martin Hjelmare 91df9434d0 Use storage helper in feedreader (#98754) 2023-08-21 18:21:34 +02:00
Jesse Hills a42d975c49 ESPHome Wake Word support (#98544)
* ESPHome Wake Word support

* Remove all vad code from esphome integration

* Catch exception when no wake word provider found

* Remove import

* Remove esphome vad tests

* Add tests

* More tests
2023-08-21 12:13:02 -04:00
Florent Thiery c86565b9bc Reduce Freebox router Raid warning to one occurence (#98740)
* consider Freebox router does not support Raid if the first enumeration raised an http error, fixes #98274

* add router name to warning message

* reduce log level to info, remove details
2023-08-21 17:45:15 +02:00
ZigStar af0e48081f Add ZigStar UZG-01 ZHA zeroconf autodiscovery (#98657)
ZigStar UZG-01 ZHA Zeconf Autodiscovery
2023-08-21 11:28:42 -04:00
Marco Garzola b8086f3c21 Map heatercooler rotation speed as 3 level fan speed in homekit controller (#98291)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-21 10:10:24 -05:00
G Johansson 207e3f90a6 Modernize template weather (#98064)
* Modernize template weather

* mods

* adds templates

* Fixes

* review comments

* more comments

* Fix validator

* Tests

* Mods

* Fix ruff
2023-08-21 15:48:14 +02:00
G Johansson d9906b63b7 Add payload to Scrape config flow (#98412)
Payload to config flow
2023-08-21 15:47:11 +02:00
J. Nick Koston 00904a107d Bump yalexs to 1.8.0 (#98751) 2023-08-21 08:44:45 -05:00
Joost Lekkerkerker 4518dad83b Use snapshot assertion for Airnow diagnostics (#98727) 2023-08-21 14:19:21 +02:00
Álvaro Fernández Rojas 4a7088a996 Update aioairzone to v0.6.7 (#98744) 2023-08-21 14:10:41 +02:00
Joost Lekkerkerker 604964d5f0 Use shorthand attributes in GDACS (#98173) 2023-08-21 14:02:29 +02:00
G Johansson fb56dd0615 Fix LiteJet import config issue (#97679) 2023-08-21 12:20:48 +02:00
Michael Arthur 82b3ced4f1 Add lawnmower entity (#93623)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-21 12:19:55 +02:00
Joost Lekkerkerker 538de6d1f3 Introduce base class for Neato (#98071)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-08-21 12:04:12 +02:00
G Johansson 1a4fb90897 Clean off unnecessary logger in Workday (#98741) 2023-08-21 12:03:01 +02:00
Jakob Schlyter 180dd3d11a Bump pyspcwebgw to 0.7.0 (#98593) 2023-08-21 12:01:49 +02:00
Joost Lekkerkerker 9c54c4abf5 Use snapshot assertion for KNX diagnostics (#98724)
Co-authored-by: farmio <farmio@alphart.net>
2023-08-21 11:48:55 +02:00
Chris Talkington 1fca665b77 Use snapshot assertion for Roku diagnostics (#98731)
* use snapshot assertion for Roku diagnostics

* Delete roku3-diagnostics-data.json

* fix state time variation. add snapshot.
2023-08-21 11:48:27 +02:00
Joost Lekkerkerker 8f9529d376 Use snapshot assertion for Forecast solar diagnostics (#98723) 2023-08-21 11:18:18 +02:00
Joost Lekkerkerker 973928ffe9 Use snapshot assertion for Airvisual diagnostics (#98728) 2023-08-21 11:17:43 +02:00
Chris Talkington c0bb3dd6e0 Use snapshot assertion for Jellyfin diagnostics (#98732) 2023-08-21 11:15:58 +02:00
Álvaro Fernández Rojas f373b27a3b Update aioqsw to v0.3.3 (#98737) 2023-08-21 11:14:54 +02:00
Markus Ressel 30a0cb1674 Fix octoprint down every two minutes (#90001) 2023-08-21 11:09:39 +02:00
J. Nick Koston 605c55109d Bump yalexs to 1.7.0 (#98720) 2023-08-21 10:56:39 +02:00
J. Nick Koston 976f6582e1 Reduce overhead to update august activities (#98730) 2023-08-21 10:48:54 +02:00
Shay Levy a713d7585f Bump aioshelly to 6.0.0 (#98719) 2023-08-21 10:49:11 +03:00
Joost Lekkerkerker af689d7c3e Use snapshot assertion for Accuweather diagnostics (#98725) 2023-08-21 09:12:43 +02:00
Joakim Plate 687bf5e808 Ignore ble name for gardena (#98126) 2023-08-21 08:43:52 +02:00
G Johansson a29e4a5f02 Move Workday failures to __init__ (#98651)
Workday failures in init
2023-08-20 22:30:43 +02:00
tronikos 53b596101b Bump opower to 0.0.31 (#98716) 2023-08-20 22:29:16 +02:00
Ville Skyttä c6c9d23530 Remove no longer used nest binary sensor (#98714) 2023-08-20 13:09:36 -07:00
Marc Mueller 4c3640878f Filter some pytest warnings (#98689) 2023-08-20 18:30:28 +02:00
J. Nick Koston 38af44225e Refactor doorbird to avoid using events internally (#98585) 2023-08-20 07:49:33 -05:00
Erik Montnemery f07724ff52 Add additional tasmota tests (#98695) 2023-08-20 14:02:53 +02:00
Niels Perfors 614904512c Verisure Improve Unpack (#98696) 2023-08-20 13:45:58 +02:00
Erik Montnemery e484066f2b Remove dead code from __main__.py (#98694) 2023-08-20 10:17:28 +02:00
Erik Montnemery 3fc043d99e Deduplicate Tasmota sensor tests (#98628) 2023-08-20 09:04:48 +02:00
andresb5555 384cee481a Add vicare sensor gas_summary_consumption_heating_lastsevendays (#95280)
* Add missing sensor entity gas_summary_consumption_heating_lastsevendays

* Changed location of the sensor
gas_summary_consumption_heating_lastsevendays code as per suggestion by
joostlek
2023-08-19 21:38:03 +02:00
Maikel Punie 5f5c012b0a Duotecno code-cleanup (#98675)
* small code cleanup, use a wrapper for the commands

* Better decorator naming

* update the error information
2023-08-19 21:34:07 +02:00
hahn-th f020d17dd8 Support Eco Mode Preset in Climates (#98359)
* Fix #86145

* Add missing test coverage

* Add tests for state
2023-08-19 21:32:20 +02:00
Charles Garwood 91965a74d8 Enphase remove operating (#98682) 2023-08-19 12:30:12 -05:00
Benjamin Paul [MSFT] 5965918c86 Add Fan Speed number entity to Nexia (#98642)
* Add Fan Speed support to Nexia integration

Adds a new "set_fan_speed" service to the Nexia integration, to allow
setting speed of the air-handler/blower fans.

* Add Fan Speed to Nexia Tests

* Remove mistakenly-added changes to Climate tests

A previous version of this change made modifications to the base
Climate entity, but that approach was later abandonded. These changes
to Climate tests were left over from that, and should never have been
included.

* Add Fan Speed Number Entity

* Remove Set Fan Speed Service

* Remove fan_speed attribute

The fan_speed attribute is not necessary with the new Number entity.

* Address reviewer feedback

Rename test function to reflect fact that fan speed entities are
entities, and not sensors.
Added missing typing to variables.
Sorted list of platforms

* Add test_set_fan_speed

Also adds new test fixture for mock response to API call

* Update homeassistant/components/nexia/number.py

* Name change

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-19 16:42:13 +02:00
Ville Skyttä 3094991236 Upgrade ruff to 0.0.285 (#98647) 2023-08-19 08:17:17 -04:00
J. Nick Koston f318063a77 Bump dbus-fast to 1.92.0 (#98656) 2023-08-19 06:13:22 -05:00
starkillerOG 39fc4b3d66 Reolink add pan position sensor (#98592)
* Add PTZ pan position sensor

* fix typing

* fix typing
2023-08-19 12:31:40 +02:00
Maciej Bieniek 66c10facfa Add Tractive sleep and activity sensors (#98575)
* Add sleep and activity sensors

* Use device class ENUM

* Default value for value_fn
2023-08-19 11:48:23 +02:00
Jack Boswell 8a6bde1191 Add Starlink device tracker (#91445)
* Fetch location data and redact in diagnostics

* Implement device tracker

* Fix failing tests

* Update starlink-grpc-core

* Update coveragerc

* Hardcode GPS source type

* Use translations

* Move DEVICE_TRACKERS a little higher in the file

* Separate status and location check try/catches

* Revert "Separate status and location check try/catches"

This reverts commit 7628ec62f6.
2023-08-19 11:36:23 +02:00
Maciej Bieniek c526d23686 Change naming of Shelly entities to correspond with HA guidelines (#97533)
* Do not use the device name to create the entity name

* Remove unnecessary return

* Fix mypy complains

* Gen1

* Uncapitalize description.name if channel name is used

* Fix for climate and button

* switch_3 -> switch 3

* Add _attr_has_entity_name to ShellyRestAttributeEntity

* Capitalize channel name
2023-08-19 11:13:22 +02:00
tronikos 7059252164 Bump opowerto 0.0.30 (#98660) 2023-08-19 08:57:25 +02:00
Marc Mueller c1fb97f26b Fix aiohttp DeprecationWarning (#98626) 2023-08-19 02:28:27 +02:00
jan iversen 1a032cebdd modbus: slave is allowed with custom (#98644) 2023-08-18 23:18:55 +02:00
Jan Bouwhuis a39af8aff9 Fix rest debug logging (#98649)
Correct rest debug logging
2023-08-18 23:03:56 +02:00
Robert Svensson 9e42451934 UniFi refactor using site data (#98549)
* Clean up

* Simplify admin verification

* Streamline using sites in config_flow

* Bump aiounifi
2023-08-18 22:44:59 +02:00
Arkadii Yakovets 7827f9ccae Update country province validation (#84463)
* Update country `province` validation.

* Run pre-commit.

* Add tests

* Mod config flow

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-18 21:20:04 +02:00
Diogo Gomes f96446cb24 Clean up integration sensor (#98552)
always update
2023-08-18 20:45:12 +02:00
G Johansson 268e5244f0 Cleanup ManualTriggerSensorEntity (#98629)
* Cleanup ManualTriggerSensorEntity

* ConfigType
2023-08-18 20:19:17 +02:00
Erik Montnemery 7fcc2dd44e Make the check_config script open issue_registry read only (#98545)
* Don't blow up if validators can't access the issue registry

* Make the check_config script open issue_registry read only

* Update tests/helpers/test_issue_registry.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-18 20:15:00 +02:00
Erik Montnemery 90b9764578 Bump hatasmota to 0.7.0 (#98636)
* Bump hatasmota to 0.7.0

* Update tests according to new entity naming
2023-08-18 19:24:33 +02:00
Ville Skyttä 93683cef27 Use zoneinfo instead of pytz, mark pytz as banned in ruff (#98613)
Refs #43439, #49643.
2023-08-18 19:10:29 +02:00
G Johansson 4073f56c5e Remove default code in Yale Smart Living (#94675)
* Remove default code in Yale Smart Living

* Test and remove check

* Finalize

* migration

* add back

* add back 2

* Fix tests

* Fix migration if code not exist
2023-08-18 16:40:24 +02:00
G Johansson 4096de2dad Add Yale Smart Living diagnostics test (#98590)
* Yale test diagnostics

* clean

* From review
2023-08-18 16:31:07 +02:00
Franck Nijhof bdd202b873 2023.8.3 (#98623) 2023-08-18 15:44:40 +02:00
Franck Nijhof ce0f957ce4 Bumped version to 2023.8.3 2023-08-18 13:56:56 +02:00
Bram Kragten 9291fab0b4 Update frontend to 20230802.1 (#98616) 2023-08-18 13:56:42 +02:00
Niels Perfors 7c5b1c8cd2 Verisure unpack (#98605) 2023-08-18 13:56:39 +02:00
J. Nick Koston 1c069539f5 Bump ESPHome recommended BLE version to 2023.8.0 (#98586) 2023-08-18 13:56:36 +02:00
Franck Nijhof 8dcb04eab1 Pin setuptools to 68.0.0 (#98582) 2023-08-18 13:56:33 +02:00
jan iversen 88352b6ca1 Correct number of registers to read for sensors for modbus (#98534) 2023-08-18 13:56:30 +02:00
Maciej Bieniek 1c7e3005aa Fix the availability condition for Shelly N current sensor (#98518) 2023-08-18 13:56:26 +02:00
Erwin Douna aaefc29e32 Revert "Integration tado bump" (#98505)
Revert "Integration tado bump (#97791)"

This reverts commit 65365d1db5.
2023-08-18 13:56:22 +02:00
tronikos c81c0149a2 Bump opower to 0.0.29 (#98503) 2023-08-18 13:52:48 +02:00
J. Nick Koston a835d07773 Bump aiohomekit to 2.6.16 (#98490) 2023-08-18 13:50:32 +02:00
Luca Leonardo Scorcia 06d36983fe Fix inconsistent lyric temperature unit (#98457) 2023-08-18 13:50:29 +02:00
Chris Talkington c55b96eb65 Update pyipp to 0.14.3 (#98434) 2023-08-18 13:50:25 +02:00
Chris Talkington d44d84b430 Update rokuecp to 0.18.1 (#98432) 2023-08-18 13:50:22 +02:00
starkillerOG 9bbf855a7d Bump Reolink_aio to 0.7.7 (#98425) 2023-08-18 13:50:18 +02:00
mkmer a66e308857 Handle missing keys in Honeywell (#98392) 2023-08-18 13:50:14 +02:00
Øyvind Matheson Wergeland b76a4e0787 Fix GoGoGate2 configuration URL when remote access is disabled (#98387) 2023-08-18 13:50:10 +02:00
Martin Hjelmare a962d2b28d Fix tts notify config validation (#98381)
* Add test

* Require either entity_id or tts_service
2023-08-18 13:50:06 +02:00
Joost Lekkerkerker 69c61a2632 Use default translations by removing names from tplink descriptions (#98338) 2023-08-18 13:50:03 +02:00
J. Nick Koston 9f69ab1604 Bump flux-led to 1.0.2 (#98312)
changelog: https://github.com/Danielhiversen/flux_led/compare/1.0.1...1.0.2

fixes #98310
2023-08-18 13:49:59 +02:00
Luke 07bb0fc16a Bump Python-Roborock to 0.32.3 (#98303)
bump to 0.32.3
2023-08-18 13:49:55 +02:00
Allen Porter 16d2c80437 Bump pyrainbird to 4.0.0 (#98271) 2023-08-18 13:49:52 +02:00
VidFerris 3da1a611c2 Use Local Timezone for Withings Integration (#98137) 2023-08-18 13:49:48 +02:00
jan iversen 0070a5e83d modbus: Repair swap for slaves (#97960) 2023-08-18 13:49:45 +02:00
Joost Lekkerkerker d842b2574a Create abstraction for Generic YeeLight (#97939)
* Create abstraction for Generic YeeLight

* Update light.py
2023-08-18 13:49:41 +02:00
jan iversen 0daa972217 modbus config: count and slave_count can normally not be mixed. (#97902) 2023-08-18 13:49:38 +02:00
tronikos 2a0c121f65 Fix Opower utilities that have different ReadResolution than previously assumed (#97823) 2023-08-18 13:49:35 +02:00
jan iversen cf839d0ce4 Correct modbus config validator: slave/swap (#97798) 2023-08-18 13:49:30 +02:00
Robert Resch 790523126e Name unnamed update entities by their device class (#98579) 2023-08-18 13:40:35 +02:00
Nick Whyte 350e5ee9a7 Fix ness alarm armed_home state appearing as disarmed/armed_away (#94351)
* Fix nessclient arm home appearing as arm away

* patch arming mode enum and use dynamic access

* Revert "patch arming mode enum and use dynamic access"

This reverts commit b9cca8e92bcb382abe364381a8cb1674c32d1d2a.

* Remove mock enums
2023-08-18 13:37:01 +02:00
jan iversen c268adb07e modbus: Repair swap for slaves (#97960) 2023-08-18 13:23:04 +02:00
Joakim Plate fc444e4cd6 Allow control of pump mode for nibe (#98499)
* Allow control of pump mode

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-18 13:15:59 +02:00
jan iversen 1c56c39897 modbus config: count and slave_count can normally not be mixed. (#97902) 2023-08-18 13:10:13 +02:00
Bram Kragten 66685b796d Update frontend to 20230802.1 (#98616) 2023-08-18 13:09:35 +02:00
Jan Bouwhuis 5ef6c03610 Log entity_id payload and template on MQTT value template error (#98353)
* Log entity_id payload and template on error

* Also handle cases with default values.

* Do not log payload twice

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

* Tweak test to assert without payload

* black

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-18 13:05:53 +02:00
Joost Lekkerkerker 80a5e341b5 Add device to Garage Amsterdam entity (#98573) 2023-08-18 11:48:00 +02:00
Robert Resch 7ac2c61f24 Fix copy-paste error in comments of number tests (#98615) 2023-08-18 11:02:30 +02:00
jan iversen 59d37f65d5 Correct modbus config validator: slave/swap (#97798) 2023-08-18 10:55:39 +02:00
jan iversen e42b9e6c4c Modbus: set state_class etc in slaves. (#98332) 2023-08-18 10:52:57 +02:00
Luca Leonardo Scorcia 9be532cea9 Fix inconsistent lyric temperature unit (#98457) 2023-08-18 10:52:22 +02:00
Maciej Bieniek d5338e88f2 Fix the availability condition for Shelly N current sensor (#98518) 2023-08-18 10:49:43 +02:00
jan iversen 5a7084e78c Correct number of registers to read for sensors for modbus (#98534) 2023-08-18 10:48:57 +02:00
Franck Nijhof 2f204d5747 Remove unneeded startswith in content check of image upload (#98599) 2023-08-18 10:38:21 +02:00
Niels Perfors 89705a22cf Verisure unpack (#98605) 2023-08-18 10:26:01 +02:00
J. Nick Koston d3ee2366b0 Bump dbus-fast to 1.91.4 (#98600) 2023-08-18 03:09:15 -05:00
tronikos 6b82bf2bc7 Fix Flume leak detected sensor (#98560) 2023-08-18 03:07:44 -05:00
Simone Chemelli ab9d6ce61a New integration for Comelit SimpleHome (#96552)
* New integration for Comelit SimpleHome

* Address first review comments

* cleanup

* aiocomelit bump and coordinator cleanup

* address review comments

* Fix some review comments

* Use config_entry.unique_id as last resort

* review comments

* Add config_flow tests

* fix pre-commit missing checks

* test_conflig_flow coverage to 100%

* fix tests

* address latest review comments

* new ruff rule

* address review comments

* simplify unique_id
2023-08-18 08:40:23 +02:00
Faidon Liambotis 9fdad592c2 Add option to disable MQTT Alarm Control Panel supported features (#98363)
* Make MQTT Alarm Control Panel features conditional

The MQTT Alarm Control Panel currently enables all features (arm home,
arm away, arm night, arm vacation, arm custom bypass) unconditionally.
This clutters the interface and can even be potentially dangerous, by
enabling modes that the remote alarm may not support.

Make all the features conditional, by adding a new "supported_features"
configuration option, comprising a list of the supported features as
options. Feature enablement seems inconsistent across the MQTT
component; this implementation is most alike to the Humidifier modes
option, but using a generic "supported_features" name that other
implementations may reuse in the future.

The default value of this new setting remains to be all features, which
while it may be overly expansive, is necessary to maintain backwards
compatibility.

* Apply suggestions from code review

* Use vol.Optional() instead of vol.Required() for "supported_features".
* Move the initialization of _attr_supported_features to _setup_from_config.

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

* Apply suggestions from emontnemery's code review

* Use vol.In() instead of cv.multi_seelct()
* Remove superfluous _attr_supported_features initializers, already
  present in the base class.

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

* Add invalid config tests for the MQTT Alarm Control Panel

* Set expected_features to None in the invalid MQTT Alarm Control Panel tests

* Add another expected_features=None in the invalid tests

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-18 08:23:48 +02:00
lymanepp f6a9be937b Add humidity and dew point to tomorrow.io integration (#98496)
* Add humidity and dew point to tomorrow.io integration

* Fix ruff complaints

* Make mypy happy

* Merge emontnemery's changes

* Fix formatting error

* Add fake humidity and dew point to test data (first interval only)

* Fix inconsistency

* Fix inconsistency
2023-08-18 07:41:25 +02:00
Michael Hansen 49d2c60992 Add pipeline VAD events (#98603)
* Add stt-vad-start and stt-vad-end pipeline events

* Update tests
2023-08-17 19:58:58 -04:00
Erik Montnemery c17f08a3f5 Create a single entity for new met.no config entries (#98098)
* Create a single entity for new met.no config entries

* Fix lying docstring

* Fix test
2023-08-17 19:41:11 +02:00
Erwin Douna d761b5ddbf Add tests and typing to Tado config flow (#98281)
* Upgrading tests

* Code improvements and removing unused function

* Update homeassistant/components/tado/config_flow.py

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

* Update homeassistant/components/tado/config_flow.py

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

* Update homeassistant/components/tado/config_flow.py

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

* Update tests/components/tado/test_config_flow.py

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

* Update tests/components/tado/test_config_flow.py

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

* Update tests/components/tado/test_config_flow.py

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

* Update tests/components/tado/test_config_flow.py

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

* Update tests/components/tado/test_config_flow.py

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

* Importing Any

* Rerunning Blackformatter

* Adding fallback scenario to options flow

* Adding constants

* Adding a retry on the exceptions

* Refactoring to standard

* Update homeassistant/components/tado/config_flow.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Adding type to validate_input

* Updating test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-17 19:37:34 +02:00
Joost Lekkerkerker dd69ba3136 Migrate Cert Expiry to has entity name (#98160)
* Migrate Cert Expiry to has entity name

* Migrate Cert Expiry to has entity name

* Fix entity name
2023-08-17 18:29:20 +02:00
epenet a9b1f23b7f Bump renault-api to 0.2.0 (#98587) 2023-08-17 18:16:32 +02:00
Russell Cloran 49995a4667 Add tests for device tracker in Prometheus (#98054) 2023-08-17 17:58:52 +02:00
J. Nick Koston 3e14e5acba Bump aioesphomeapi to 16.0.1 (#98536) 2023-08-17 17:46:21 +02:00
Marc Mueller 529bc507a0 Fix aiohttp test RuntimeWarning (#98568) 2023-08-17 17:42:20 +02:00
J. Nick Koston e95979e9af Bump ESPHome recommended BLE version to 2023.8.0 (#98586) 2023-08-17 17:39:35 +02:00
Franck Nijhof 740cabc21e Pin setuptools to 68.0.0 (#98582) 2023-08-17 17:36:22 +02:00
Maciej Bieniek d44847bb23 Log Tractive events on debug level (#98539) 2023-08-17 17:09:16 +02:00
J. Nick Koston 30a88e9e61 Additional doorbird cleanups to prepare for event entities (#98542) 2023-08-17 09:37:54 -05:00
Erwin Douna 2d4decc9b1 Revert "Integration tado bump" (#98505)
Revert "Integration tado bump (#97791)"

This reverts commit 65365d1db5.
2023-08-17 16:16:47 +02:00
Joost Lekkerkerker 6f4294dc62 Migrate IPMA to has entity name (#98572)
* Migrate IPMA to has entity name

* Migrate IPMA to has entity name
2023-08-17 16:02:22 +02:00
Erwin Douna ea5272ba62 Revert "Fix fanSpeed issue in Tado" (#98506)
Revert "Fix fanSpeed issue (#98293)"

This reverts commit d6498aa39e.
2023-08-17 15:44:23 +02:00
Øyvind Matheson Wergeland cb4917f880 Fix GoGoGate2 configuration URL when remote access is disabled (#98387) 2023-08-17 15:12:35 +02:00
Maciej Bieniek d6a7127b84 Improve availability of Tractive entities (#97091)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-08-17 12:15:36 +02:00
Dennis 1954539e65 Add state_class to tomorrowio UV Index (#98541)
* Added state_class to UV Index

Forgot to add a state_class as other sensors got their state_class from their device class. As there is no UV Index device class I left it out.

* Forgotten a comma, whoops

* Changed measurement to string.

* Changed from "measurement" to SensorStateClass
2023-08-17 11:13:11 +02:00
Klaas Schoute 8b4937f627 Bump odp-amsterdam to v5.3.0 (#98555)
* Bump package to v5.3.0

* Load only the garages for cars
2023-08-17 10:24:58 +02:00
G Johansson 6faa9abc75 Fix Verisure config entry migration (#98546) 2023-08-17 08:51:59 +02:00
Sebastian Lövdahl fde498586e Expose dew point in Met.no (#98543) 2023-08-17 07:45:23 +02:00
puddly 52a8f01096 Make IKEA fan sensors diagnostic in ZHA (#97747) 2023-08-17 02:15:35 +01:00
Marc Mueller a776ecddb7 Update mypy to 1.5.1 (#98554) 2023-08-16 18:44:02 -05:00
Erik Montnemery 992cc56c7e Modernize buienradar weather (#98473) 2023-08-16 22:19:22 +02:00
Erik Montnemery 1897be1467 Map demo and kitchen_sink weather condition codes once (#98510)
Map demo and kitchen_sink condition codes once
2023-08-16 22:12:22 +02:00
Erik Montnemery 614d6e929d Map meteoclimatic weather condition codes once (#98514) 2023-08-16 22:11:27 +02:00
Erik Montnemery f85c2e5a92 Modernize environment_canada weather (#98502) 2023-08-16 22:10:48 +02:00
Erik Montnemery 227d4a590d Map metoffice weather condition codes once (#98515) 2023-08-16 22:09:06 +02:00
Erik Montnemery f135c42524 Map openweathermap weather condition codes once (#98516) 2023-08-16 22:08:17 +02:00
Erik Montnemery f643d2de46 Map SMHI weather condition codes once (#98517) 2023-08-16 22:07:12 +02:00
Erik Montnemery 5c1c8dc682 Modernize tomorrowio weather (#98466)
* Modernize tomorrowio weather

* Add test snapshot

* Update snapshots

* Address review comments

* Improve test coverage
2023-08-16 20:22:38 +02:00
Erik Montnemery 827e06a5c8 Improve typing of nws (#98485)
* Improve typing of nws

* Address review comments
2023-08-16 20:21:07 +02:00
Erik Montnemery b1053e8077 Map accuweather weather condition codes once (#98509)
Map accuweather condition codes once
2023-08-16 20:20:47 +02:00
Erik Montnemery 8ed7d2dd3e Don't create certain start.ca sensors for unlimited plans (#98525)
Don't create certain startca sensors for unlimited setups
2023-08-16 20:20:14 +02:00
Erik Montnemery 4eb0f1cf37 Make eufylife_ble sensors inherit RestoreSensor (#98528) 2023-08-16 20:15:47 +02:00
Erik Montnemery 31f5932fe4 Log events with no listeners (#98540)
* Log events with no listeners

* Unconditionally create the Event object

* Reformat code
2023-08-16 20:14:49 +02:00
Joost Lekkerkerker b9203cbeaf Add base entity for Dexcom (#98158) 2023-08-16 19:18:46 +02:00
mkmer 3e1d2a1000 Handle missing keys in Honeywell (#98392) 2023-08-16 18:59:34 +02:00
J. Nick Koston 5bf80a0f6d Make ESPHome deep sleep tests more robust (#98535) 2023-08-16 11:05:22 -05:00
Erik Montnemery 4180e2e477 Make EnOceanSensor a RestoreSensor (#98527)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-16 15:22:48 +02:00
Erik Montnemery a2e619155a Map ipma weather condition codes once (#98512) 2023-08-16 15:01:54 +02:00
Nick Whyte 2c48f0e416 Fix ness alarm armed_home state appearing as disarmed/armed_away (#94351)
* Fix nessclient arm home appearing as arm away

* patch arming mode enum and use dynamic access

* Revert "patch arming mode enum and use dynamic access"

This reverts commit b9cca8e92bcb382abe364381a8cb1674c32d1d2a.

* Remove mock enums
2023-08-16 13:56:52 +02:00
Mike Heath cf8c9ad184 Add PoE switch tests (#95087)
* Add PoE switch tests

* Update tests/components/tplink_omada/test_switch.py

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

* Remove files covered by tests from exclusion

* Rename entity_name to entity_id

* Fix test, use snapshot, other improvements

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-16 13:38:53 +02:00
Joost Lekkerkerker 732dac6f05 Create abstraction for Generic YeeLight (#97939)
* Create abstraction for Generic YeeLight

* Update light.py
2023-08-16 13:24:41 +02:00
Erik Montnemery 91faa53843 Don't allow hass.config.config_dir to be None (#98442) 2023-08-16 13:00:14 +02:00
VidFerris 5ed3e90607 Use Local Timezone for Withings Integration (#98137) 2023-08-16 12:57:16 +02:00
Diogo Gomes abf065ed76 Fix checks for duplicated config entries in IPMA (#98319)
* fix unique_id

* old unique id detection

* update tests

* match entry not unique_id

* address review
2023-08-16 12:56:47 +02:00
J. Nick Koston ed2f067c52 Bump zeroconf to 0.80.0 (#98416) 2023-08-16 12:03:40 +02:00
Erik Montnemery 636cb6279d Push updated ecobee weather forecast to listeners (#98511) 2023-08-16 11:59:59 +02:00
Erik Montnemery e69090b943 Map meteo_france weather condition codes once (#98513) 2023-08-16 11:41:11 +02:00
Marc Mueller 0bcc02e908 Skip writing pyc files [ci] (#98423) 2023-08-16 11:36:52 +02:00
J. Nick Koston b083f5bf89 Add some typing to doorbird (#98483) 2023-08-16 11:33:25 +02:00
J. Nick Koston b680bca5e9 Bump aiohomekit to 2.6.16 (#98490) 2023-08-16 11:30:47 +02:00
tronikos a0ea6e6a0c Bump opower to 0.0.29 (#98503) 2023-08-16 11:10:02 +02:00
Andy Barratt 6c573953e3 Update Light flash description (#98252)
* Update Light flash description

`light.turn_on` service description for the `flash` option gave the impression of a boolean value being required when in fact a string of either `short` or `long` was required.  Updated this to match the documentation found at https://www.home-assistant.io/integrations/light

`light.turn_off` also described the existence of a `flash` option when none exists.  I've removed this, which matches the aforementioned documentation too.

* Revert removal of flash from turn-off

As discussed in feedback, turn-off does indeed seem to support flash.
2023-08-16 10:06:37 +02:00
Emma Vanbrabant 8efb9dad7e Add device_class to Renault charging remaining time (#98393)
* Add device_class on charging remaining time

Set `device_class to `duration` on the `charging_remaining_time` entity in the Renault integration.

I had some issues showing this property on my dashboard, and setting this fixed it. The recommendation to open an issue against the original integration in these kinds of cases came from [here](https://community.home-assistant.io/t/how-to-format-a-card-to-show-hours-instead-of-seconds/425473/7).

* Update test const to add duration

* fix other cars

* Update test_sensor.ambr

* add duration in ambr
2023-08-16 09:42:38 +02:00
Jan Bouwhuis c010b97abf Improve test recovery MQTT certificate files (#98223)
* Improve test recovery MQTT certificate files

* Spelling
2023-08-16 09:07:14 +02:00
dalinicus 45966069b4 Bump aiolyric to 1.1.0 (#98113)
version bump aiolyric to include new features for additional room sensors
2023-08-16 08:15:28 +02:00
J. Nick Koston c671b1069e Bump protobuf to 4.24.0 (#98468) 2023-08-15 18:52:18 -05:00
Erik Montnemery 3cf86d5d1f Create a single entity for new met_eireann config entries (#98100) 2023-08-15 20:56:19 +02:00
Erik Montnemery caeb20f9c9 Modernize aemet weather (#97969)
* Modernize aemet weather

* Improve test coverage

* Only create a single entity for new config entries
2023-08-15 20:55:16 +02:00
J. Nick Koston 857369625a Remove some bound attributes from enphase_envoy sensor (#98479) 2023-08-15 13:29:22 -05:00
J. Nick Koston 80d608bb5b Remove some bound attributes from enphase_envoy binary_sensor (#98477)
Some of these were never used
2023-08-15 14:16:05 -04:00
J. Nick Koston 73f882bf36 Small cleanups to enphase_envoy select platform (#98476) 2023-08-15 13:08:55 -05:00
Charles Garwood 92535277be Add number platform & battery setpoint entities to Enphase integration (#98427)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-15 13:08:11 -05:00
J. Nick Koston 5a69f9ed04 Remove unused code in enphase_envoy (#98474) 2023-08-15 12:37:16 -05:00
Erik Montnemery 90413daa8a Update buienweather data before adding entities (#98455)
* Update buienweather data before adding entities

* Fix tests
2023-08-15 18:15:23 +02:00
Sam Reed ffe3d7c255 Replace "percents" -> "percentage" in flux_led option flow (#98059) 2023-08-15 10:44:24 -05:00
Marc Mueller 063ce9159d Use asyncio.timeout [o-s] (#98451) 2023-08-15 17:21:49 +02:00
Erik Montnemery 496a975c58 Set _attr_condition in WeatherEntity (#98459) 2023-08-15 17:17:35 +02:00
starkillerOG 92cf6ed2a0 Reolink 100% test coverage (#94763) 2023-08-15 09:50:17 -05:00
J. Nick Koston e209f3723e Restore sensorpush state when device becomes available (#98420) 2023-08-15 09:29:25 -05:00
Erik Montnemery 3de402bd15 Fix AiohttpClientMockResponse.release (#98458) 2023-08-15 09:22:42 -05:00
Marc Mueller 5dd3f05db8 Use asyncio.timeout [f-h] (#98449) 2023-08-15 08:37:06 -05:00
Marc Mueller a9ade1f84d Use asyncio.timeout [core] (#98447) 2023-08-15 08:36:05 -05:00
Marc Mueller e2d2ec8817 Use asyncio.timeout [b-e] (#98448) 2023-08-15 08:30:20 -05:00
Charles Garwood 346a7292d7 Update Enphase dry contact relay DeviceInfo and name (#98429)
Switch relay binary_sensor to relay device
2023-08-15 08:49:19 -04:00
Marc Mueller 8b0fdd6fd2 Use asyncio.timeout [s-z] (#98452) 2023-08-15 14:34:18 +02:00
Marc Mueller 71d985e4d6 Use asyncio.timeout [i-n] (#98450) 2023-08-15 14:32:15 +02:00
Erik Montnemery 35b914af97 Disable polling in buienradar weather entity (#98443) 2023-08-15 13:28:43 +02:00
Franck Nijhof a87878f723 Make image upload mimetype to match frontend (#98411) 2023-08-15 12:26:37 +02:00
G Johansson ed18c6a013 Refactor Rest Switch with ManualTriggerEntity (#97403)
* Refactor Rest Switch with ManualTriggerEntity

* Fix test

* Fix 2

* review comments

* remove async_added_to_hass

* update on startup
2023-08-15 11:43:47 +02:00
Nathan Spencer 87b7fc6c61 Bump pylitterbot to 2023.4.4 (#98414) 2023-08-15 11:04:45 +02:00
Erik Montnemery 3b9d6f2dde Add setup function to the component loader (#98148)
* Add setup function to the component loader

* Update test

* Setup the loader in safe mode and in check_config script
2023-08-15 10:59:42 +02:00
starkillerOG b1e5b3be34 Bump Reolink_aio to 0.7.7 (#98425) 2023-08-15 10:43:19 +02:00
J. Nick Koston 262483f3f6 Replace async_timeout with asyncio.timeout A-B (#98415) 2023-08-15 10:29:28 +02:00
Chris Talkington eb4745012a Update rokuecp to 0.18.1 (#98432) 2023-08-15 10:02:38 +02:00
Chris Talkington 2da3b7177d Update pyipp to 0.14.3 (#98434) 2023-08-15 09:57:10 +02:00
Erik Montnemery 94ad4786c3 Include extended address in response to WS otbr/info (#98440) 2023-08-15 09:48:29 +02:00
Erik Montnemery e6ea70fd00 Adjust thread router discovery typing (#98439)
* Adjust thread router discovery typing

* Adjust debug logs
2023-08-15 09:40:05 +02:00
Erik Montnemery 71b92265af Include border agent id in response to WS otbr/info (#98394)
* Include border agent id in response to WS otbr/info

* Assert border agent ID is not None
2023-08-15 09:17:47 +02:00
Erik Montnemery 6c7f50b5b2 Simplify error handling in otbr async_setup_entry (#98395)
* Simplify error handling in otbr async_setup_entry

* Create issue if the OTBR does not support border agent ID

* Update test

* Improve test coverage

* Catch the right exception
2023-08-15 08:27:50 +02:00
Paulus Schoutsen ced4af1e22 Ignore smartthings storage on fresh install (#98418)
* Ignore smartthings storage on fresh install

* Also unload existing things when going for clean install

* Rename param

* Fix tests
2023-08-14 21:39:05 -05:00
Charles Garwood e3438baf49 Add select platform to Enphase integration (#98368)
* Add select platform to Enphase integration

* Review comments pt1

* Review comments pt2

* Review comments

* Additional tweaks from code review

* .coveragerc

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-14 20:23:16 -04:00
Joost Lekkerkerker 49a9d0e439 Add entity translations to hunterdouglas powerview (#98232) 2023-08-14 15:26:20 -05:00
Jan-Philipp Benecke 9713466817 Add sensor when meter last sent its data to Discovergy (#97223)
* Add sensor for last reading by Discovergy

* Rename sensor to make it clear what it actually is

* Revert back to single sensor classe and extend entity_description with a value function
2023-08-14 21:42:47 +02:00
J. Nick Koston 69b3ae4588 Bump zeroconf to 0.78.0 (#98405) 2023-08-14 21:07:17 +02:00
Erik Montnemery 6294014fcd Bump python-otbr-api to 2.5.0 (#98403) 2023-08-14 20:09:50 +02:00
Abílio Costa 80fa034048 ipma: remove abmantis from codeowners (#98304)
* ipma: remove abmantis from codeowners

I am not currently maintaining this integration.

* Run hassfest

* Try again

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-14 19:36:58 +02:00
Joost Lekkerkerker 318aa9b95a Add entity translations to Goodwe (#98224)
* Add entity translations to Goodwe

* Add entity translations to Goodwe
2023-08-14 19:35:31 +02:00
Álvaro Fernández Rojas c3c00e6984 Update aioairzone to v0.6.6 (#98399) 2023-08-14 11:21:12 -05:00
Joakim Plate d6fcdeac06 Avoid leaking backtrace on connection lost in arcam (#98277)
* Avoid leaking backtrace on connection lost

* Correct ruff error after rebase
2023-08-14 18:03:17 +02:00
Franck Nijhof 85c2216cd7 Ensure headers middleware handles errors too (#98397) 2023-08-14 17:48:11 +02:00
Marco Ranieri 54223fe06c Enable Alexa Unlock directive (#97127)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2023-08-14 17:47:50 +02:00
Joost Lekkerkerker 77b421887b Add entity translations for August (#98077) 2023-08-14 16:58:57 +02:00
Erik Montnemery d4753ebd3b Include border agent ID in thread router discovery (#98378) 2023-08-14 16:46:55 +02:00
Martin Hjelmare 2272a9db00 Improve picotts (#98391) 2023-08-14 15:54:43 +02:00
Marc Mueller d059c9924a Update attrs to 23.1.0 (#98385) 2023-08-14 15:50:43 +02:00
Erik Montnemery 1869177f08 Rename some incorrectly named assist_pipeline tests (#98389) 2023-08-14 15:47:55 +02:00
Erik Montnemery e0fd83daab Store preferred border agent ID for each thread dataset (#98384) 2023-08-14 15:47:18 +02:00
Robert Resch b0f68f1ef3 Use @require_admin decorator (#98061)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-08-14 15:07:20 +02:00
Marc Mueller 525f39fe28 Update todoist-api-python to 2.1.2 (#98383) 2023-08-14 14:10:45 +02:00
G Johansson a093c383c3 Remove Verisure default lock code (#94676) 2023-08-14 13:43:08 +02:00
Erik Montnemery 318b8adbed Set preferred router when importing OTBR dataset (#98379) 2023-08-14 13:40:32 +02:00
Allen Porter 9ddf11f6cd Improve rainbird error handling (#98239) 2023-08-14 13:32:08 +02:00
Martin Hjelmare 6f97270cd2 Fix tts notify config validation (#98381)
* Add test

* Require either entity_id or tts_service
2023-08-14 13:30:25 +02:00
Joost Lekkerkerker 57cacbc2a7 Add entity translations to Aurora (#98079) 2023-08-14 13:16:02 +02:00
Joost Lekkerkerker 398a789ba2 Add entity translations to justnimbus (#98235) 2023-08-14 13:14:49 +02:00
Joost Lekkerkerker 11b1a42a1c Add entity translations to Aseko (#98117) 2023-08-14 12:52:27 +02:00
Joost Lekkerkerker 9ce033daeb Use default translations by removing names from tplink descriptions (#98338) 2023-08-14 11:51:08 +02:00
Marc Mueller 180ff24492 Add types-beautifulsoup4 dependency (#98377) 2023-08-14 11:50:14 +02:00
Erik Montnemery 4dd102f818 Bump python-otbr-api to 2.4.0 (#98376) 2023-08-14 11:33:07 +02:00
Erik Montnemery e0ee713bb2 Store preferred border agent ID in thread dataset store (#98375) 2023-08-14 11:32:55 +02:00
Michael 533a8beac2 Raise ConfigEntryNotReady when unable to connect during setup of AVM Fritz!Smarthome (#97985) 2023-08-14 10:42:20 +02:00
Marc Mueller e0d6210bd0 Create pytest output artifact [ci] (#98106) 2023-08-14 10:38:53 +02:00
Marc Mueller 7cf1ff887d Update caldav to 1.3.6 (#98371) 2023-08-14 10:31:24 +02:00
Marc Mueller f7d95e00f6 Update tqdm to 4.66.1 (#98328) 2023-08-14 10:29:26 +02:00
Marc Mueller e36a8f6e8b Update async-timeout to 4.0.3 (#98370) 2023-08-14 10:23:23 +02:00
Marc Mueller 21acb5527f Update beautifulsoup to 4.12.2 (#98372) 2023-08-14 10:22:53 +02:00
Kevin Stillhammer 066db11620 Exchange WazeRouteCalculator with pywaze in waze_travel_time (#98169)
* exchange WazeRouteCalculator with pywaze

* directly use async is_valid_config_entry

* store pywaze client as property

* fix tests

* Remove obsolete error logs

* Reuse existing httpx client

* Remove redundant typing

* Do not clcose common httpx client
2023-08-14 10:02:30 +02:00
J. Nick Koston 96f9b852a2 Bump zeroconf to 0.76.0 (#98366) 2023-08-13 22:47:29 -05:00
J. Nick Koston 790c1bc251 Decrease event loop latency by binding time.monotonic to loop.time directly (#98288)
* Decrease event loop latency by binding time.monotonic to loop.time directly

This is a small improvment to decrease event loop latency. While the goal is
is to reduce Bluetooth connection time latency, everything using asyncio
is a bit more responsive as a result.

* relo per comments

* fix too fast by adding resolution, ensure monotonic time is patchable by freezegun

* fix test that freezes time too late and has a race loop
2023-08-13 20:37:45 -04:00
Marc Mueller 07e20e1eab Downgrade todoist-api-python to 2.0.2 and attrs to 22.2.0 (#98354) 2023-08-13 17:23:38 -05:00
J. Nick Koston 429f939fee Bump zeroconf to 0.75.0 (#98360) 2023-08-13 17:23:03 -05:00
Mr-Ker 66b01bee49 Add support for Bosch 2nd Gen Shutter Contact (#98331)
Add support for Bosch 2nd Gen SHCShutterContact2

We only need to check for the shutter contact 2 types as both devices
provide the same properties that are used by the bosch_shc component.

Resolves: #86295
2023-08-13 21:05:57 +02:00
Chris 5b6a7edd8d Add Unifi outlet switches for PDU devices (#98320)
Updates the Unifi outlet switching feature to support PDU devices
2023-08-13 20:06:12 +02:00
Marc Mueller ef6e75657a Update attrs to 23.1.0 (#97095) 2023-08-13 19:05:15 +02:00
Marc Mueller e25fdebda1 Add types-caldav dependency (#98265) 2023-08-13 11:58:55 -05:00
Marc Mueller ee3af29701 Update coverage to 7.3.0 (#98327) 2023-08-13 11:58:34 -05:00
Marc Mueller 54cbc85c13 Add types-Pillow dependency (#98266) 2023-08-13 11:57:46 -05:00
Jan Bouwhuis e5f7d83912 Update entity feature constants google_assistant (#98335)
* Update entity feature constants google_assistant

* Update tests

* Direct import

* Some missed constants

* Add fan and cover feature imports
2023-08-13 17:17:47 +02:00
Jan Bouwhuis fa6ffd994a Update vacuum entity constants for Alexa tests (#98336)
* Update vacuum entity constants for Alexa tests

* Import VacuumEntityFeature
2023-08-13 15:35:00 +02:00
Jan Bouwhuis b36681b318 Update homekit entity feature constants (#98337) 2023-08-13 15:33:36 +02:00
Renier Moorcroft a74d83de66 Cleanup EZVIZ number entity (#98333)
* EZVIZ - Cleanup number entity

* NL

* Fix naming
2023-08-13 13:41:37 +02:00
Renier Moorcroft 00c60151d4 Add Ezviz siren entity (#93612)
* Initial commit

* Add siren entity

* Update coveragerc

* Cleanup unused entity description.

* Add restore and fix entity property to standards.

* Schedule turn off to match camera firmware

* Only add siren for devices that support capability

* Removed unused attribute and import.

* Add translation

* Update camera.py

* Update strings.json

* Update camera.py

* Cleanup

* Update homeassistant/components/ezviz/siren.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* use description

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update strings.json

* Dont inherit coordinator class.

* Add assumed state

* Update homeassistant/components/ezviz/siren.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Reset delay listener if trigered

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-13 13:10:53 +02:00
Bouwe Westerdijk b41d3b465c Add domestic_hot_water_setpoint number to Plugwise (#98092)
* Add max_dhw_temperature number

* Update strings.json

* Add related tests

* Correct test

* Black-fix
2023-08-13 12:57:34 +02:00
Bouwe Westerdijk 38cea8f31c Plugwise climate: add HVAC_Mode handling to set_temperature() (#98273)
* Add HVAC_Mode handling to set_temperature()

* Move added code down, as suggested

* Implement walrus as suggested

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-13 12:39:46 +02:00
tronikos fea4af69d7 Add missing logging for opower library (#98325) 2023-08-13 08:08:33 +02:00
J. Nick Koston 483567529f Bump flux-led to 1.0.2 (#98312)
changelog: https://github.com/Danielhiversen/flux_led/compare/1.0.1...1.0.2

fixes #98310
2023-08-12 21:10:36 -04:00
tronikos bdaa2285fc Google Assistant SDK: Allow responses for send_text_command (#95966)
google_assistant_sdk.send_text_command response
2023-08-12 16:20:01 -04:00
Allen Porter 79991c32dc Bump pyrainbird to 4.0.0 (#98271) 2023-08-12 13:37:43 -05:00
Marc Mueller 85b097af50 Update todoist-api-python to 2.1.1 (#98263) 2023-08-12 09:39:59 -07:00
elmurato 836b2de86f Add dataclass for Minecraft Server data (#98297)
* Add dataclass for Minecraft server data

* Sort dataclass variables
2023-08-12 09:36:03 -07:00
Luke 4780ea6a5b Bump Python-Roborock to 0.32.3 (#98303)
bump to 0.32.3
2023-08-12 09:31:14 -07:00
Chris 87753bdb82 Add UniFi power stats for PDU overall AC outlet metrics (#98217) 2023-08-12 18:12:59 +02:00
Erik Montnemery ae8f9dcb77 Modernize ipma weather (#98062)
* Modernize ipma weather

* Add test snapshots

* Don't include forecast mode in weather entity unique_id for new config entries

* Remove old migration code

* Remove outdated test
2023-08-12 15:15:09 +02:00
Joost Lekkerkerker be9afd7eae Add entity translations to DWD (#98254)
* Add device to DWD

* Add entity translations to DWD
2023-08-12 11:03:37 +02:00
Erwin Douna d6498aa39e Fix fanSpeed issue (#98293) 2023-08-12 10:27:45 +02:00
Bouwe Westerdijk 5042c25bbc Plugwise climate: remove extra_state_attributes property (#98153)
* Remove extra_state_attributes property, replaced by a number

* Support HVAC_Mode in set_temperature()

* Remove set_temperature() update, as requested
2023-08-12 09:56:23 +02:00
Erik Montnemery 8b99d4678f Correct checks for non-finite numbers in ESPHome (#98102) 2023-08-12 08:10:25 +01:00
Charles Garwood 8912b19cf4 Add Enphase Encharge aggregate sensors (#98276)
* Add Encharge aggregate sensors

* Update dependency
2023-08-11 20:15:42 -04:00
Marc Mueller 58194a5eb4 Improve wake_word generic typing (#98279) 2023-08-11 23:08:52 +02:00
Marc Mueller 78ac36e3fe Improve met_eireann generic typing (#98278) 2023-08-11 23:08:21 +02:00
Marc Mueller ff0566b11f Fix deque import (#98269) 2023-08-11 23:07:06 +02:00
Charles Garwood 4342a95be0 Add Enphase switch platform and grid enable switch (#98261)
* Add Enphase switch platform and grid enable switch

* Update dependency

* Fix docstrings

* Update .coveragerc
2023-08-11 13:31:47 -04:00
Marc Mueller 8fbcffcf9f Add types-psutil dependency (#98267) 2023-08-11 18:09:58 +02:00
Marc Mueller 2ed11d2900 Add types-xmltodict dependency (#98268) 2023-08-11 18:09:38 +02:00
Franck Nijhof 73898daff3 2023.8.2 (#98255) 2023-08-11 17:59:37 +02:00
Hessel 8bef39a2fb Wallbox Integration Change Switch Availability (#98111)
* change switch availability

* remove new test

* Update homeassistant/components/wallbox/switch.py

Also check super availability.

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* black formatting

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-11 16:39:29 +02:00
Brandon Rothweiler f641c0ba58 Bump pymazda to 0.3.11 (#98084) 2023-08-11 16:15:33 +02:00
Franck Nijhof c72a184923 Bumped version to 2023.8.2 2023-08-11 14:20:04 +02:00
MatthewFlamm 0ce0050068 Bump pynws 1.5.1; fix regression for precipitation probability (#98237)
bump pynws 1.5.1
2023-08-11 14:19:50 +02:00
Joost Lekkerkerker 63b2fa6d1b Use explicit device name in Broadlink (#98229) 2023-08-11 14:19:46 +02:00
Álvaro Fernández Rojas 819cea0ea0 Update aioairzone to v0.6.5 (#98163)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-11 14:19:43 +02:00
tronikos 773ec3adb6 Get Opower accounts from the customer endpoint (#98144)
Get accounts from the customer endpoint
2023-08-11 14:19:40 +02:00
tronikos 1ffbc8118d Opower: Add gas sensors for utilities that report CCF (#98142)
Add gas sensors for utilities that report CCF
2023-08-11 14:19:36 +02:00
tronikos a2dec234c2 Bump opower to 0.0.26 (#98141) 2023-08-11 14:19:33 +02:00
Joakim Plate 32d4c2607b Make gardena closing sensor unavailable when closed (#98133) 2023-08-11 14:19:30 +02:00
Joakim Plate b584eb757b Correct unit of rain pause (#98131) 2023-08-11 14:19:26 +02:00
Joost Lekkerkerker d488bb3dca Add missing translation key in Tuya (#98122) 2023-08-11 14:19:23 +02:00
Robert Svensson 84d185a075 Improve UniFi control PoE mode (#98119) 2023-08-11 14:19:19 +02:00
tronikos a2637ac75a Bump opower to 0.0.24 (#98091) 2023-08-11 14:19:16 +02:00
Maximilian 8bdac8fb30 Bump pynina to 0.3.2 (#98070) 2023-08-11 14:19:13 +02:00
mkmer 61cafb26ac Bump AIOAladdinConnect to 0.1.57 (#98056) 2023-08-11 14:19:10 +02:00
Sam Reed 73f0ac0542 Remove trailing . from melcloud service descriptions (#98053) 2023-08-11 14:19:06 +02:00
Joost Lekkerkerker 4e6c839065 Add translation keys to Tuya cover (#98040) 2023-08-11 14:19:03 +02:00
J. Nick Koston dbbe1456a4 Bump aiohomekit to 2.6.15 (#98005)
changelog: https://github.com/Jc2k/aiohomekit/compare/2.6.14...2.6.15
2023-08-11 14:19:00 +02:00
Aaron Bach 21f0210abd Bump pyairvisual to 2023.08.1 (#97999) 2023-08-11 14:18:56 +02:00
puddly 955c1ec215 Bump ZHA dependency bellows to 0.35.9 (#97976)
Bump bellows to 0.35.8
2023-08-11 14:18:53 +02:00
lymanepp a2227079e4 Fix tomorrowio integration for new users (#97973)
The tomorrow.io integration isn't working for new users due to changes made by tomorrow.io. This fixes that with the following changes:
* Add 60 minute timestep option
* Change default timestep to 60 minutes
2023-08-11 14:18:50 +02:00
tronikos 504d164349 Android TV Remote: Fix missing key and cert when adding a device via IP address (#97953)
Fix missing key and cert
2023-08-11 14:18:47 +02:00
Alex Yao 4b09e3b4a3 Bump yeelight to v0.7.13 (#97933)
Co-authored-by: alexyao2015 <alexyao2015@users.noreply.github.com>
2023-08-11 14:18:43 +02:00
J. Nick Koston c9f474a417 Bump pyatv to 0.13.4 (#97932) 2023-08-11 14:18:40 +02:00
jan iversen a276fd444e modbus: Adjust read count by slave_count (#97908) 2023-08-11 14:18:37 +02:00
Luke 79bb857e06 Bump python-roborock to 0.32.2 (#97907)
* bump to 0.32.2

* fix test
2023-08-11 14:18:33 +02:00
J. Nick Koston c417b1e611 Fix handling HomeKit events when the char is in error state (#97884) 2023-08-11 14:18:30 +02:00
J. Nick Koston a8c181b7fc Avoid polling event characteristic in homekit_controller (#97877) 2023-08-11 14:18:27 +02:00
J. Nick Koston 80a473682e Do not fire homekit_controller events from IP polling (#97869)
* Fix homekit_controller triggers when value is None

* fixes

* cover
2023-08-11 14:18:23 +02:00
Richard Kroegel 2b3bf36364 Bump bimmer_connected to 0.13.9, fix notify (#97860)
Bump bimmer_connected to 0.13.9

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-08-11 14:18:20 +02:00
Joost Lekkerkerker 5aa96aa6f6 Add missing translation key to Gardena Bluetooth (#97855) 2023-08-11 14:18:17 +02:00
G Johansson 379e144f84 Bump pysensibo to 1.0.33 (#97853)
* Bump pysensibo to 1.0.33

* for loop
2023-08-11 14:18:14 +02:00
MarkGodwin 60da270372 Bump Omada API version to fix #96193 (#97848) 2023-08-11 14:18:11 +02:00
G Johansson 9b090d8c7b Fix Command Line template error when data is None (#97845)
Command Line template error
2023-08-11 14:18:08 +02:00
Michael 871ab7a818 Fallback to get_hosts_info on older Fritz!OS in AVM Fritz!Tools (#97844) 2023-08-11 14:18:04 +02:00
Joost Lekkerkerker 70730e4170 Fix Samsung syncthru device info (#97843)
Fix Samsung device info
2023-08-11 14:18:00 +02:00
J. Nick Koston 922f3f2816 Bump aiohomekit to 2.6.13 (#97820) 2023-08-11 14:17:57 +02:00
Franck Nijhof 19d6c0c949 Ensure webhooks take HA cloud into account (#97801)
* Ensure webhooks take HA cloud into account

* Avoid circular import
2023-08-11 14:17:53 +02:00
Erwin Douna 136b91b539 Integration tado bump (#97791)
* Bumping to PyTado 0.16 and adding test coverage

* Removing comment

* Upgrading the deprecated functions

* Updating tests to support paramterization

* Delete test_config_flow.py

Reverting the tests, which will be placed in a different PR.

* Revert "Delete test_config_flow.py"

This reverts commit 1719ebc990.

* Reverting back changes
2023-08-11 14:17:50 +02:00
Robert Svensson cdc1de08ad Improve counting of UniFi WLAN Clients sensor (#97785) 2023-08-11 14:17:47 +02:00
Maciej Bieniek 01fad9b41c Don't assume that battery_level value is always present in Tractive hw_info (#97766)
Don't assume that battery_level value is always present in hw_info
2023-08-11 14:17:43 +02:00
Ian Harcombe f7dbe88ee0 Fix metoffice visibility range sensor device class (#97763)
* Fix for issue #97694

Issue #97694 points out that the visibility range is a string with a band of distances, not a single value, which is causing issues for front end components. Removed the device class to leave as an informational string value.

* Removed *all* empty device_class statements

* Missed an empty device_class :(
2023-08-11 14:17:40 +02:00
Joost Lekkerkerker 2e98c3f077 Add yeelight class to fix superclass issue (#97649)
* Add device naming to Yeelight

* Add extra light entity to fix superclass

* Add extra light entity to fix superclass
2023-08-11 14:17:37 +02:00
karwosts a397782ae3 Handle Alert exception on notification failure (#93632) 2023-08-11 14:17:32 +02:00
Robert Svensson 7f616b0d44 Improve UniFi control PoE mode (#98119) 2023-08-11 14:11:06 +02:00
Joost Lekkerkerker e6ba6c295c Add base entity to Garages Amsterdam (#98172) 2023-08-11 13:55:38 +02:00
Joost Lekkerkerker 3499ba3a9e Add device classes to Buienradar (#98151) 2023-08-11 13:54:57 +02:00
Joost Lekkerkerker 27876b929b Migrate iZone to has entity name (#98234) 2023-08-11 13:53:11 +02:00
tronikos fe794e2be3 Fix Opower utilities that have different ReadResolution than previously assumed (#97823) 2023-08-11 13:47:49 +02:00
Erik Montnemery 97f3199d6d Do not add entities with invalid device info (#98150) 2023-08-11 13:14:47 +02:00
Joost Lekkerkerker a2cf08a1ea Add entity translations to Keymitt ble (#98236) 2023-08-11 13:14:13 +02:00
Marc Mueller fb66ceb302 Update mypy to 1.5.0 (#98179) 2023-08-11 13:13:04 +02:00
Joakim Plate 990ec1d445 Make gardena closing sensor unavailable when closed (#98133) 2023-08-11 13:07:45 +02:00
Allen Porter a0ac8ba5a6 Enforce a minimum temperature range for nest thermostats (#98238) 2023-08-11 12:21:19 +02:00
Joost Lekkerkerker b67e290eaa Use explicit device name in Broadlink (#98229) 2023-08-11 12:15:04 +02:00
Joost Lekkerkerker 41572480fd Migrate DenonAVR to has entity name (#98155) 2023-08-11 11:58:02 +02:00
epenet c62081430b Refactor JSON attribute parsing in rest (#97526)
* Refactor JSON attribute parsing in rest

* Early return
2023-08-11 11:00:55 +02:00
G Johansson 832a8247de Fix CI mypy issues (#98241)
Fix CI
2023-08-11 10:11:13 +02:00
Joost Lekkerkerker 25231637a5 Add device to DWD (#98120) 2023-08-11 08:27:40 +02:00
MatthewFlamm 9a1bfe1e1c Bump pynws 1.5.1; fix regression for precipitation probability (#98237)
bump pynws 1.5.1
2023-08-11 08:19:06 +02:00
Joost Lekkerkerker 24add3f766 Migrate Doorbird to has entity name (#98161) 2023-08-10 17:09:26 -10:00
Joost Lekkerkerker 914baaa2ba Migrate DirecTV to has entity name (#98159)
* Migrate DirecTV to has entity name

* Migrate DirecTV to has entity name
2023-08-10 22:10:46 -04:00
Erik Montnemery 2e1a5ddf2b Don't allow creating device if config entry does not exist (#98157)
* Don't allow creating device if config entry does not exist

* Fix test

* Update test
2023-08-10 22:09:13 -04:00
Erik Montnemery 045c327928 Move DeviceInfo from entity to device registry (#98149)
* Move DeviceInfo from entity to device registry

* Update integrations
2023-08-10 22:04:26 -04:00
J. Nick Koston 108bcabf75 Add missing transmit power to ESPHome Bluetooth scanners (#98175)
We did not previously have a way to get the transmit power value when using
ESPHome scanners. bluetooth-data-tools 1.8.0 includes it in the
advertisment tuple to fully align with the bleak implementation.

txpower is not yet used in the HA codebase but may be expected by
upstream libaries that calculate estimated distance
2023-08-10 21:59:37 -04:00
Franck Nijhof 296c27859e Fix issue registry sending unneeded update events (#98230) 2023-08-10 21:57:42 -04:00
Charles Garwood b653d7f683 Fix Enphase dry contact binary sensor state updates (#98225)
Fix dry contact binary sensor state updates
2023-08-11 00:00:54 +02:00
Joost Lekkerkerker 86f94662eb Add entity translations to EZVIZ (#98123) 2023-08-10 23:49:14 +02:00
G Johansson aacb8aecfc Refactor Rest Sensor with ManualTriggerEntity (#97396)
* ManualTriggerEntity for rest sensor

* add availability test

* review comments

* last fixes
2023-08-10 21:46:56 +02:00
Joost Lekkerkerker 82ade574d8 Migrate WAQI to aiowaqi library (#98000)
* Migrate WAQI to aiowaqi library

* Migrate WAQI to aiowaqi library

* Migrate WAQI to aiowaqi library
2023-08-10 20:18:57 +02:00
Erik Montnemery 4e8b81370e Adjust device_registry tests which create devices (#98215) 2023-08-10 19:28:33 +02:00
Erik Montnemery c7b4d4f361 Adjust helpers tests which create devices (#98214) 2023-08-10 19:28:16 +02:00
Erik Montnemery f1d4a4bd26 Adjust zwave_js tests which create devices (#98213) 2023-08-10 18:27:22 +02:00
Erik Montnemery 49011f0158 Adjust hue tests which create devices (#98195) 2023-08-10 18:27:05 +02:00
Erik Montnemery 3fdc98063e Adjust bond tests which create devices (#98183) 2023-08-10 18:26:44 +02:00
Erik Montnemery fcdfeb74c8 Adjust smartthings tests which create devices (#98207) 2023-08-10 18:26:20 +02:00
Erik Montnemery 6803a62368 Adjust ruckus_unleashed tests which create devices (#98206) 2023-08-10 18:26:13 +02:00
Erik Montnemery b11dc50f9e Adjust homekit_controller tests which create devices (#98194) 2023-08-10 18:25:53 +02:00
Erik Montnemery e1e4b0dcf0 Adjust device_automation tests which create devices (#98187) 2023-08-10 18:25:42 +02:00
Erik Montnemery 57d0fd7bb1 Adjust derivative tests which create devices (#98186) 2023-08-10 18:25:28 +02:00
Chris fe1f617a35 Add unifi power stats for PDU outlets (#98081)
Adds support for power stats for PDU outlets.
2023-08-10 18:25:03 +02:00
Erik Montnemery c1b47b88f2 Adjust utility_meter tests which create devices (#98212) 2023-08-10 18:24:47 +02:00
Erik Montnemery 05ac67eba2 Adjust unifi tests which create devices (#98211) 2023-08-10 18:24:42 +02:00
Erik Montnemery fb1bb0d374 Adjust switch_as_x tests which create devices (#98210) 2023-08-10 18:24:39 +02:00
Erik Montnemery 8813140ed5 Adjust threshold tests which create devices (#98208) 2023-08-10 18:24:36 +02:00
Erik Montnemery 6ea7011a07 Adjust ps4 tests which create devices (#98205) 2023-08-10 18:24:25 +02:00
Erik Montnemery 7b157baed6 Adjust plex tests which create devices (#98204) 2023-08-10 18:24:22 +02:00
Erik Montnemery 9d3be60b05 Adjust openai_conversation tests which create devices (#98203) 2023-08-10 18:24:19 +02:00
Erik Montnemery 13a9b83ed3 Adjust mqtt tests which create devices (#98202) 2023-08-10 18:23:55 +02:00
Erik Montnemery 0b69f37d57 Adjust motioneye tests which create devices (#98201) 2023-08-10 18:23:51 +02:00
Erik Montnemery bd4d1abc28 Adjust mikrotik tests which create devices (#98200) 2023-08-10 18:23:48 +02:00
Erik Montnemery 9831498259 Adjust mazda tests which create devices (#98199) 2023-08-10 18:23:44 +02:00
Erik Montnemery e9a0436605 Adjust matter tests which create devices (#98198) 2023-08-10 18:23:41 +02:00
Erik Montnemery 3495d762a4 Adjust kraken tests which create devices (#98197) 2023-08-10 18:23:37 +02:00
Erik Montnemery 3e6c844048 Adjust integration tests which create devices (#98196) 2023-08-10 18:23:33 +02:00
Erik Montnemery 07b19b3dd9 Adjust homekit tests which create devices (#98193) 2023-08-10 18:23:17 +02:00
Erik Montnemery 4329a47ef8 Adjust google_generative_ai_conversation tests which create devices (#98192) 2023-08-10 18:23:13 +02:00
Erik Montnemery f11f7ac45c Adjust google_assistant tests which create devices (#98191) 2023-08-10 18:23:10 +02:00
Erik Montnemery 983ebeff80 Adjust freebox tests which create devices (#98190) 2023-08-10 18:22:44 +02:00
Erik Montnemery 52183d64ae Adjust fibaro tests which create devices (#98189) 2023-08-10 18:22:39 +02:00
Erik Montnemery ec143b26d7 Adjust device_tracker tests which create devices (#98188) 2023-08-10 18:22:33 +02:00
Erik Montnemery da53944a37 Adjust conversation tests which create devices (#98185) 2023-08-10 18:22:17 +02:00
Erik Montnemery 5909a1187d Adjust config tests which create devices (#98184) 2023-08-10 18:22:12 +02:00
Erik Montnemery f77387bd0f Adjust asuswrt tests which create devices (#98182) 2023-08-10 18:21:46 +02:00
RoboMagus f0e9dccb58 Only handle shell commands output when return_response requested (#97777) 2023-08-10 18:11:15 +02:00
Joost Lekkerkerker 07a701551b Add missing translation key in Tuya (#98122) 2023-08-10 18:04:24 +02:00
Maximilian 6545c46ba0 Bump pynina to 0.3.2 (#98070) 2023-08-10 16:54:19 +02:00
tronikos 9a2cb3ad1f Opower: Add gas sensors for utilities that report CCF (#98142)
Add gas sensors for utilities that report CCF
2023-08-10 16:49:23 +02:00
Álvaro Fernández Rojas 4981eadd31 Update aioairzone to v0.6.5 (#98163)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-08-10 16:47:16 +02:00
Joost Lekkerkerker 59768635f2 Fix ruff checks for opensky (#98176) 2023-08-10 16:04:00 +02:00
Joost Lekkerkerker a7f7f56342 Implement opensky data update coordinator (#97925)
Co-authored-by: Robert Resch <robert@resch.dev>
2023-08-10 15:42:46 +02:00
Stefan Agner bba57f39d5 Add Home Assistant Green (#98171) 2023-08-10 15:00:43 +02:00
Franck Nijhof 868a5f377f Ruff: isort don't split imports based on trailing comma (#98162) 2023-08-10 14:27:03 +02:00
Thijs W 726b0c5179 Address late comments in #97955 (#98165) 2023-08-10 13:58:48 +02:00
Joost Lekkerkerker e9f9c7799a Add device to cert expiry (#98152)
* Add device to cert expiry

* Apply suggestions from code review

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-10 13:05:58 +02:00
G Johansson 4531dbbe62 Refactor Rest Binary sensor with ManualTriggerEntity (#97400)
* Refactor Rest Binary sensor w/ ManualTriggerEntity

* test availability

* review comments

* Use super

* Fix config
2023-08-10 12:59:23 +02:00
Joakim Plate 9b74321487 Correct unit of rain pause (#98131) 2023-08-10 12:37:28 +02:00
Jan Bouwhuis b872d74b1f Fix lingering test alexa (#98128) 2023-08-10 12:16:52 +02:00
tronikos 5812090eff Get Opower accounts from the customer endpoint (#98144)
Get accounts from the customer endpoint
2023-08-10 12:11:01 +02:00
tronikos 84d779fab7 Bump opower to 0.0.26 (#98141) 2023-08-10 11:13:55 +02:00
Joost Lekkerkerker 5dcffca88d Move Rova constants to separate file (#97566)
* Move Rova constants to separate file

* Update homeassistant/components/rova/const.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-10 10:41:06 +02:00
Thijs W 355ef4eac8 Add unique_id to frontier_silicon media_player entity (#97955) 2023-08-10 10:19:27 +02:00
Marc Mueller 3dd377cb2a Update orjson to 3.9.4 (#98108) 2023-08-09 20:37:59 -10:00
J. Nick Koston e05b74668c Bump dbus-fast to 1.91.2 (#98105) 2023-08-09 20:31:57 -10:00
Raman Gupta 056d00fb11 Update zwave_js entity naming logic (#98140)
* Update zwave_js entity naming logic

* Update homeassistant/components/zwave_js/entity.py

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

* store primary value locally

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-08-10 02:08:14 -04:00
Raman Gupta 5d3d66e47d Bump zwave-js-server-python to 0.50.1 (#94760)
* Bump zwave-js-server-python to 0.50.0

* handle additional upstream changes

* Additional changes

* fix tests

* Convert two similar functions to be one function

* Fix docstring

* Remove conditional pydantic import

* Revert scope change

* Bump zwave-js-server-python

* Set default return value for command

* Remove line breaks

* Add coverage
2023-08-10 01:28:08 -04:00
Luke 2841cbbed2 Add Off-peak power control to Roborock (#97307)
* add off-peak switch and time

* Make off_peak disabled by default
2023-08-09 22:04:01 +02:00
Robert Svensson 02c27d8ad2 UniFi WLAN availability affected by WLAN enabled (#98020) 2023-08-09 18:52:35 +02:00
Joost Lekkerkerker 138854a9cc Migrate EAFM to has entity name (#98121) 2023-08-09 17:44:08 +02:00
G Johansson 4c03077dfe Add product filtering feature to Trafikverket Train (#86343) 2023-08-09 17:20:30 +02:00
Erik Montnemery 0317afeb17 Fix mock_integration and mock_platform test helpers (#98109) 2023-08-09 15:38:57 +02:00
David Knowles 023f2f8bb7 Add switch platform to Schlage (#98004)
* Add switch platform to Schlage

* Add a generic SchlageSwitch

* Use an is_on property instead of _attr_is_on

* Make value_fn always return a bool
2023-08-09 15:32:50 +02:00
Erik Montnemery e1f0b44ba4 Use math.isfinite instead of explicitly checking for both nan and inf (#98103) 2023-08-09 14:13:57 +02:00
J. Nick Koston 7e9d0cca44 Refactor enphase_envoy to have a shared base class (#98088)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-09 01:28:27 -10:00
Sam Reed 2cae79415d zha: Fix double spaces in strings.json (#98097) 2023-08-09 11:21:05 +02:00
tronikos 35718b2917 Bump opower to 0.0.24 (#98091) 2023-08-09 10:32:00 +02:00
J. Nick Koston 1b54b22a91 Bump pyenphase to 1.3.0 (#98090) 2023-08-08 21:11:57 -10:00
Brandon Rothweiler d569d01cfb Bump pymazda to 0.3.11 (#98084) 2023-08-09 07:17:17 +01:00
Charles Garwood ce6b759b70 Add Envoy enpower sensors (#98086) 2023-08-08 17:05:52 -10:00
Joost Lekkerkerker d975e93abc Add entity translations for Ambient station (#98075)
* Add entity translations for Ambient station

* Fix missed key
2023-08-09 01:16:55 +02:00
J. Nick Koston 331bdcc596 Bump pyenphase to 1.1.3 (#98074)
changelog: https://github.com/pyenphase/pyenphase/compare/v1.1.1...v1.1.3
2023-08-08 18:51:17 -04:00
Jan Bouwhuis 5c9bce9eac Allow float for inital MQTT climate temperature (#97995)
* Allow float for inital MQTT climate temperature

* Update tests/components/mqtt/test_climate.py

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-08 23:44:49 +02:00
Charles Garwood 25467b573e Bump pyenphase to 1.1.1 (#98065) 2023-08-08 11:27:59 -10:00
Joost Lekkerkerker 524a26d9e1 Add entity translations to Neato (#98067)
* Add entity translations to Neato

* Use robot name
2023-08-08 22:05:12 +02:00
Erik Montnemery 66e3d69606 Remove confusing comment from accuweather (#98063) 2023-08-08 22:02:45 +02:00
Sam Reed 3624e30380 Update silabs_multiprotocol_hardware change cannel options flow description (#98047)
strings.json: Update silabs_multiprotocol_hardware::options message

* Removes trailing space
* Fixes double space
* Adds word before noun
2023-08-08 20:13:19 +02:00
Charles Garwood c154077177 Add Encharge binary sensors to Enphase integration (#98039)
* Add Encharge binary sensors to Enphase integration

* Code review minor cleanup

* Add to coveragerc
2023-08-08 20:03:02 +02:00
Sam Reed 45d4c307de Hyphenate "human-readable" in light service description (#98057) 2023-08-08 19:43:09 +02:00
G Johansson 8f2e30040c Add DeviceInfo to Scrape (#97399)
* Add DeviceInfo to Scrape

* simplify

* review comment
2023-08-08 19:39:41 +02:00
mkmer 314d91692f Bump AIOAladdinConnect to 0.1.57 (#98056) 2023-08-08 19:39:26 +02:00
Erik Montnemery a77009c3ca Patch dt_util.utcnow earlier (#98050) 2023-08-08 19:16:52 +02:00
Sam Reed ba3f0372f3 Fix duplicated word in imap_email_content deprecation issue description (#98051) 2023-08-08 19:15:39 +02:00
Michael d7a1b1e941 Fallback to get_hosts_info on older Fritz!OS in AVM Fritz!Tools (#97844) 2023-08-08 19:15:06 +02:00
G Johansson d557f3b742 Add state attributes translation and available modes for Sensibo (#85234)
* Sensibo translation climate

* Add available states

* Fix keys

* Delete en.json

* invalid fan_mode and swing_mode

* Translations

* Add back sorting

* Fix fan_mode and swing_mode

* Fix raise error

* review
2023-08-08 19:13:56 +02:00
Sam Reed bfc578a757 Fix address typo in Reolink SSL issue description (#98060) 2023-08-08 19:13:35 +02:00
Erik Montnemery f36e75ecf1 Add WeatherEntity.__post_init__ (#98034) 2023-08-08 19:11:55 +02:00
Sam Reed 75fbc7a97c Hyphenate "human-readable" in LIFX service description (#98058) 2023-08-08 19:07:40 +02:00
Sam Reed 14a993d33b Remove trailing . from melcloud service descriptions (#98053) 2023-08-08 19:07:17 +02:00
Erik Montnemery eb64e89ecf Make changes in modbus trigger a full CI run (#98055) 2023-08-08 18:49:56 +02:00
Joost Lekkerkerker 466c5ce591 Add some constants back that were used to Flexit and Stiebel (#98042)
* Add some constants back that were used

* Update __init__.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-08 18:41:47 +02:00
Joost Lekkerkerker c78c2b7c3b Add translation keys to Tuya cover (#98040) 2023-08-08 18:02:47 +02:00
Joost Lekkerkerker ce1077934a Move all used modbus constants to Stiebel (#98044) 2023-08-08 17:38:38 +02:00
Jan Bouwhuis 500d9a4da0 Alexa strict type hints (#97485)
* Enable strict typing

* Adjustments for stict typing
2023-08-08 17:15:25 +02:00
Maciej Bieniek 9910da2f3d Add neutral current sensor for Shelly 3EM (#97981) 2023-08-08 16:47:18 +02:00
jan iversen fc463e5831 modbus: remove unused constants and get 100% coverage. (#97779) 2023-08-08 16:40:16 +02:00
Tom 4a4523c249 Bump plugwise to v0.31.9 (#97203)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Bouwe <bouwe.s.westerdijk@gmail.com>
2023-08-08 16:38:37 +02:00
jan iversen a224b668d7 modbus: Adjust read count by slave_count (#97908) 2023-08-08 16:09:53 +02:00
Jan Bouwhuis 2a48159b69 Alexa typing part 6 (state_report) (#97920)
state_report
2023-08-08 15:46:54 +02:00
Massimiliano Cannarozzo 8b56e28838 Add neato dismiss alert button (#97572)
* Bump pybotvac

* Add neato dismiss alert button

* fixup! Add neato dismiss alert button

* fixup! Add neato dismiss alert button

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

* fixup! Add neato dismiss alert button

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

* fixup! Add neato dismiss alert button

* fixup! Add neato dismiss alert button

* fixup! Add neato dismiss alert button

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* fixup! Add neato dismiss alert button

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* fixup! Add neato dismiss alert button

* fixup! Add neato dismiss alert button

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-08 14:35:41 +02:00
Erik Montnemery 0d55a7600e Modernize met_eireann weather (#98030) 2023-08-08 14:21:52 +02:00
Franck Nijhof 50ef674902 Use require_admin decorator for check_config permissions (#98028) 2023-08-08 12:19:20 +02:00
Jadson Santos f6273bfca5 Add prometheus requires_auth parameter (#92964)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-08-08 12:15:08 +02:00
Franck Nijhof 40e256847c Add is_admin checks to scene/script/automation APIs (#98025) 2023-08-08 12:11:52 +02:00
Erik Montnemery 55619e7d6d Modernize ecobee weather (#98023) 2023-08-08 12:06:24 +02:00
Jan Bouwhuis 0614702f98 Alexa typing part 5 (smart_home) (#97918)
* smart_home

* Fix test_disabled

* Remove unused type ignore
2023-08-08 11:48:50 +02:00
Erik Montnemery 1ee0c907b0 Improve OTBR factory reset (#98017)
Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-08-08 11:38:01 +02:00
Jan Bouwhuis 3f542c47fd Alexa typing part 4 (capabilities) (#97915)
* capabilities

* hvacmode

* tweaks

* name

* Corrections

* Missed hints

* remove unreachabe code
2023-08-08 11:07:52 +02:00
Franck Nijhof 5e020ea354 Add is_admin checks to cloud APIs (#97804) 2023-08-08 11:02:42 +02:00
Stephan Uhle 3859d2e2a6 Add edl21 sensor for positive active instantaneous power (#94736) 2023-08-08 10:35:31 +02:00
Franck Nijhof dacfa4b4dc Set up shopping list during onboarding (#97974)
Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
2023-08-08 10:32:35 +02:00
Russell Cloran dfdf592837 Update prometheus-client to 0.17.1 (#97998) 2023-08-08 10:16:37 +02:00
J. Nick Koston 2a80a63ac2 Cleanup enphase_envoy sensor inheritance (#98012) 2023-08-08 10:10:36 +02:00
Charles Garwood 128dadafae Add initial sensors for Enphase Encharge batteries (#97946) 2023-08-07 16:46:00 -10:00
Michael Hansen 7ea2998b55 Add wake word integration (#96380)
* Add wake component

* Add wake support to Wyoming

* Add helper function to assist_pipeline (not complete)

* Rename wake to wake_word

* Fix platform

* Use send_event and clean up

* Merge wake word into pipeline

* Add wake option to async_pipeline_from_audio_stream

* Add start/end stages to async_pipeline_from_audio_stream

* Add wake timeout

* Remove layer in wake_output

* Use VAD for wake word timeout

* Include audio metadata in wake-start

* Remove unnecessary websocket command

* wake -> wake_word

* Incorporate feedback

* Clean up wake_word tests

* Add wyoming wake word tests

* Add pipeline wake word test

* Add last processed state

* Fix tests

* Add tests for wake word

* More tests for the codebot
2023-08-07 22:22:16 -04:00
J. Nick Koston 798fb3e31a Bump aiohomekit to 2.6.15 (#98005)
changelog: https://github.com/Jc2k/aiohomekit/compare/2.6.14...2.6.15
2023-08-08 02:30:47 +02:00
Joost Lekkerkerker 0bdae8a382 Use global constant for enphase token (#98002) 2023-08-08 00:52:54 +02:00
Aaron Bach aff369d64c Bump pyairvisual to 2023.08.1 (#97999) 2023-08-07 16:23:27 -06:00
puddly 323657e6d7 Bump ZHA dependency bellows to 0.35.9 (#97976)
Bump bellows to 0.35.8
2023-08-07 18:14:47 -04:00
Jan Bouwhuis d403625e60 Alexa typing part 3 (handlers) (#97912)
handlers
2023-08-07 23:59:56 +02:00
Matthias Alphart 0f5d423d1e Move KNX keyring validation and storage to helper module (#97931)
* Move KNX keyfile validation and store to helper module

* Rename module and fix tests
2023-08-07 23:30:14 +02:00
J. Nick Koston 987897b0fa Add support for Yale Doorman to august (#97997) 2023-08-07 11:28:01 -10:00
Jan Bouwhuis 5657cfa052 Alexa typing part 2 (#97911)
* Alexa typing part 2

* Update homeassistant/components/alexa/intent.py

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

* Missed type hints

* precision

* Follow up comment

* value

* revert abstract class changes

* raise NotImplementedError()

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-07 23:26:44 +02:00
J. Nick Koston c8256d1d3d Optimize august timings to prepare for Yale Doorman support (#97940) 2023-08-07 11:09:32 -10:00
J. Nick Koston 7080e0c280 Bump yalexs to 1.5.2 (#97991) 2023-08-07 11:00:30 -10:00
J. Nick Koston d304d42051 Restore qingping state when device becomes available (#97980) 2023-08-07 09:27:18 -10:00
J. Nick Koston 56c2276630 Restore sleepy oralb devices state at startup (#97983) 2023-08-07 09:19:46 -10:00
J. Nick Koston b7f936fcdd Restore govee_ble state when gateway device becomes available (#97984) 2023-08-07 09:13:50 -10:00
Jan Bouwhuis 40a221c923 Alexa typing part 1 (#97909)
* Typing part 1

* mypy

* Correct typing for logbook
2023-08-07 20:36:30 +02:00
J. Nick Koston fb12c237ab Restore xiaomi_ble state at start when device is in range or sleepy (#97979) 2023-08-07 07:58:27 -10:00
Ståle Storø Hauknes b34ce3c792 Improve airthings ble (#97905)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-07 07:15:51 -10:00
J. Nick Koston a234ab51fe Restore bthome state at start when device is in range or sleepy (#97949) 2023-08-07 18:41:53 +02:00
Joost Lekkerkerker d56484e2d6 Fix docstrings in mobile app device tracker (#97963) 2023-08-07 18:41:08 +02:00
David Knowles a4721e9b36 Schlage: Set the changed by attribute on locks based on log messages (#97469) 2023-08-07 06:07:48 -10:00
lymanepp 4089bd43da Fix tomorrowio integration for new users (#97973)
The tomorrow.io integration isn't working for new users due to changes made by tomorrow.io. This fixes that with the following changes:
* Add 60 minute timestep option
* Change default timestep to 60 minutes
2023-08-07 17:54:06 +02:00
G Johansson c4da5374ae Refactor Trafikverket Train to improve config flow (#97929)
* Refactor tvt

* review fixes

* review comments
2023-08-07 17:25:02 +02:00
G Johansson 15eed166ec Modernize SMHI weather (#97275)
* SMHI forecast service

* Mod weather

* reset weather

* Fix tests

* coverage

* add test
2023-08-07 17:24:43 +02:00
Erwin Douna 65365d1db5 Integration tado bump (#97791)
* Bumping to PyTado 0.16 and adding test coverage

* Removing comment

* Upgrading the deprecated functions

* Updating tests to support paramterization

* Delete test_config_flow.py

Reverting the tests, which will be placed in a different PR.

* Revert "Delete test_config_flow.py"

This reverts commit 1719ebc990.

* Reverting back changes
2023-08-07 15:59:46 +02:00
Erik Montnemery 3a0822e03b Modernize met.no weather (#97952) 2023-08-07 14:06:16 +02:00
Erik Montnemery 683c2f8d22 Add service for getting a weather forecast (#97078)
* Add service for getting a weather forecast

* Fix translations

* Improve service description

* Improve error handling

* Adjust typing

* Adjust typing

* Adjust service response format
2023-08-07 14:05:37 +02:00
tronikos 0a2ff3a676 Android TV Remote: Fix missing key and cert when adding a device via IP address (#97953)
Fix missing key and cert
2023-08-07 14:01:35 +02:00
Charles Garwood eff7b8f81a Update enphase_envoy codeowners (#97947) 2023-08-07 13:27:51 +02:00
G Johansson 301eaa30b1 Neato add yaml config removal issue (#97447) 2023-08-07 13:14:33 +02:00
Marc Mueller cf4287cd0c Fix alexa test RuntimeWarning (#97956) 2023-08-07 12:57:37 +02:00
Mick Vleeshouwer b317d36d0f Bump pyoverkiz to 1.10.1 (#97916)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-07 12:32:59 +02:00
Guido Schmitz 5232b6ee6a Bump devolo_plc_api to 1.4.0 (#97951) 2023-08-07 12:08:19 +02:00
starkillerOG d72057f41b Add repair issue for Reolink when using it with an incompatible global ssl certificate (#91597) 2023-08-07 11:52:14 +02:00
G Johansson 001dda6345 Fix weather entities with update_before_add (#97950)
Fix weather entities update_before_add
2023-08-07 09:42:20 +02:00
J. Nick Koston 56257b7a38 Restore passive bluetooth entity data at startup (#97462) 2023-08-06 20:25:18 -10:00
J. Nick Koston 1adfa6bbeb Reduce overhead to start a config entry flow by optimizing fetching the handler (#97883) 2023-08-06 20:25:03 -10:00
Franck Nijhof 369a484a78 Add default headers to webserver responses (#97784)
* Add default headers to webserver responses

* Set default server header

* Fix other tests
2023-08-06 23:25:13 -04:00
Franck Nijhof 3df71eca45 Ensure webhooks take HA cloud into account (#97801)
* Ensure webhooks take HA cloud into account

* Avoid circular import
2023-08-06 23:23:52 -04:00
J. Nick Koston 05e131452d Add model/part number data enphase_envoy (#97942) 2023-08-06 16:55:34 -10:00
Jan Bouwhuis 3969de6c76 Freeze time for whirlpool test to avoid fail (#97935) 2023-08-06 12:37:06 -10:00
Joost Lekkerkerker b2d2de990d Remove DWD code owner (#97938) 2023-08-06 12:36:19 -10:00
Alex Yao df8f1328e9 Bump yeelight to v0.7.13 (#97933)
Co-authored-by: alexyao2015 <alexyao2015@users.noreply.github.com>
2023-08-06 12:20:48 -10:00
J. Nick Koston 157f7a3079 Bump pyatv to 0.13.4 (#97932) 2023-08-06 12:20:28 -10:00
J. Nick Koston 4230465fcd Avoid polling event characteristic in homekit_controller (#97877) 2023-08-06 11:11:03 -10:00
Marc Mueller d993aa59ea Update orjson to 3.9.3 (#97930) 2023-08-06 22:59:44 +02:00
Luke c9edc973f0 Bump python-roborock to 0.32.2 (#97907)
* bump to 0.32.2

* fix test
2023-08-06 22:34:14 +02:00
David Knowles 50ccd68de1 Bump pyschlage to 2023.8.1 (#97927) 2023-08-06 10:20:16 -10:00
J. Nick Koston 99c3ca030d Bump pyenphase to 0.11.0 (#97926) 2023-08-06 09:31:37 -10:00
G Johansson 4d24a3ffaa Bump pytrafikverket to 0.3.5 (#97923) 2023-08-06 20:58:16 +02:00
J. Nick Koston ceac5f8d5a Proactively refresh the enphase envoy token to handle cloud service downtime (#97880) 2023-08-06 08:31:45 -10:00
G Johansson a59793df4c Bump pytrafikverket to 0.3.4 (#97921) 2023-08-06 20:01:01 +02:00
Joost Lekkerkerker 42bca0f94a Complete test coverage for OpenSky (#97863)
* Use mockobject for OpenSky testing

* Complete test coverage for OpenSky

* Complete test coverage for OpenSky

* Use method patching
2023-08-06 19:39:24 +02:00
Maikel Punie 0535578440 Velbus code cleanup (#97584)
* Some cleanup and code improvements for the velbus integration

* Comments

* More comments

* Update homeassistant/components/velbus/entity.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* More comments

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-06 19:12:19 +02:00
G Johansson 6bc5b8989d Fix Trafivkerket Train coordinator exceptions (#97919)
Fix tvt coordinator exceptions
2023-08-06 19:07:18 +02:00
G Johansson 163bbe2c5d Fix Trafikverket Train departure state (#97917)
Fix tvt departure state
2023-08-06 18:50:00 +02:00
G Johansson 74d1c30f7e Trafikverket Train sensor and attributes to new sensors (#71432)
* Initial commit

* Finalize tvt sensors

* Translations

* Fix sensor translation

* migration

* migration fix 2

* Fix name

* Fix translation

* remove translation

* Fixes

* Fix isort and mypy

* translations

* logging

* Remove logging

* departure time

* Review comments

* Mod update entity unique id

* Fix uom

* not async

* UnitOfTime

* cleanup from rebase

* Remove call self

* cleanup extra attributes

* Fix rebase again

* string state
2023-08-06 18:08:07 +02:00
String-656 56dd88db17 Replace Float 'nan' with None for modbus floats (#93832)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2023-08-06 14:26:56 +02:00
Johannes Wagner c4a5373976 Handle explicit Modbus NaN values (#90800)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2023-08-06 13:47:54 +02:00
David Knowles 0511071757 Schlage: Set the battery sensor state_class to measurement (#97879)
Set state_class to measurement
2023-08-06 10:26:16 +02:00
J. Nick Koston 91b308b4ad Fix handling HomeKit events when the char is in error state (#97884) 2023-08-05 19:14:18 -10:00
J. Nick Koston 00e78fbf19 Cache envoy auth tokens to ensure integration works if cloud is offline (#97872) 2023-08-05 14:51:19 -10:00
David Knowles 6a65a97715 Bump pyschlage to 2023.8.0 (#97875) 2023-08-05 14:33:01 -10:00
Joost Lekkerkerker 3bed32f16e Add entity translations for Enphase Envoy (#97876)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-05 14:32:35 -10:00
J. Nick Koston 02e546e3ef Refactor enphase_envoy to use pyenphase library (#97862) 2023-08-05 13:33:16 -10:00
Ståle Storø Hauknes 34013ac3e9 Use PRECISION_TENTHS for Mill local integration (#97874) 2023-08-06 01:25:17 +02:00
J. Nick Koston a09090bf99 Do not fire homekit_controller events from IP polling (#97869)
* Fix homekit_controller triggers when value is None

* fixes

* cover
2023-08-06 00:31:50 +02:00
G Johansson 966784877f Remove long overdue deprecated service boost_heating from Hive (#97444)
* Hive heating_boost deprecation

* Remove strings

* Remove service

* services

* Remove strings
2023-08-05 23:37:01 +02:00
elmurato 8195c9d1a7 Use constants for translation keys and rename latency time to latency (#97866)
Use constants for translation keys, rename latency time to latency and some small cleanups
2023-08-05 23:35:54 +02:00
Ernst Klamer 0caeac1a82 Add support for toothbrushes to xiaomi-ble (#97276)
* Add support for toothbrushes to xiaomi-ble

* use str for string
2023-08-05 23:13:21 +02:00
G Johansson e4d9daf746 Migrate to SensorEntityDescriptions for Trafikverket Train (#97318)
* tvt migrate to sensor entity description

* spelling

* revert spelling
2023-08-05 22:53:14 +02:00
Jan-Philipp Benecke 71a81e1f5d Change discovergy integration type (#97391) 2023-08-05 22:47:04 +02:00
Daniel Hjelseth Høyer 41c684f36e Use new Mill api (#97497)
* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api. Wip

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

* Mill, new api

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

* Mill, new api

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

* Mill, new api

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

* Update homeassistant/components/mill/sensor.py

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

* Update homeassistant/components/mill/sensor.py

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

* Mill, new api

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

* Update homeassistant/components/mill/climate.py

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

* Update homeassistant/components/mill/climate.py

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

---------

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-05 22:46:03 +02:00
Joost Lekkerkerker c7b7ca8769 Add yeelight class to fix superclass issue (#97649)
* Add device naming to Yeelight

* Add extra light entity to fix superclass

* Add extra light entity to fix superclass
2023-08-05 22:36:45 +02:00
Richard Kroegel 74d02a1574 BMW: Remove deprecated refresh from cloud button (#97864)
* Remove deprecated refresh from cloud button

* Clean up strings.json
2023-08-05 22:28:24 +02:00
J. Nick Koston c478a81deb Bump bluetooth-data-tools to 1.7.0 (#97821) 2023-08-05 22:21:46 +02:00
Alberto Geniola e5261fe2a3 Implement Elmax cover platform (#79409)
* Implement Elmax cover platform.

* Reduce the number of code lines by leveraging the := operator

* Move _COMMAND_BY_MOTION_STATUS declaration at the top

* Remove redundant null-check

* Move conditional platform setup logic into the platform itself

* Remove redundant log

* Change log severity for stop request on IDLE cover state

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-05 22:03:51 +02:00
Jan Bouwhuis 2e8e5aabae Refactor alexa modules to avoid circular deps (#97618)
* Refactor alexa modules to avoid circula deps

* Add test http api auth and AlexaConfig

* Update test

* Improve test
2023-08-05 21:32:53 +02:00
Andreas Lindhé 6c8971f18a Improve code quality of CalDav (#97570)
* Use keyword arguments when constructing `WebDavCalendarData`

* Use keyword arguments when constructing `WebDavCalendarEntity`

* Remove random newlines
2023-08-05 20:44:26 +02:00
Richard Kroegel 4b6048b5e0 Bump bimmer_connected to 0.13.9, fix notify (#97860)
Bump bimmer_connected to 0.13.9

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-08-05 20:08:14 +02:00
Robert Svensson e43ad1c6a0 Add restart device to UniFi button platform (#97642)
* Add restart device to UniFi Button platform

* Add tests for button platform

* Small corrections
2023-08-05 20:07:20 +02:00
MarkGodwin 76c443777d Bump Omada API version to fix #96193 (#97848) 2023-08-05 19:59:03 +02:00
Jack Boswell 5fcac42a0f Add untested Starlink components to .coveragerc (#97825) 2023-08-05 19:55:35 +02:00
Jack Boswell 7436054352 Update starlink-grpc-tools to 1.1.2 (#97824) 2023-08-05 19:54:54 +02:00
Joost Lekkerkerker 24e4f0169c Fix Samsung syncthru device info (#97843)
Fix Samsung device info
2023-08-05 19:43:22 +02:00
G Johansson 249fa513c9 Bump pysensibo to 1.0.33 (#97853)
* Bump pysensibo to 1.0.33

* for loop
2023-08-05 19:02:44 +02:00
Joost Lekkerkerker 03335ae1dc Add missing translation key to Gardena Bluetooth (#97855) 2023-08-05 18:48:13 +02:00
Maikel Punie 6570517330 Add lightplatform to Duotecno (#97582)
* add light platform

* Add light to coveragerc

* Update homeassistant/components/duotecno/light.py

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

* Update homeassistant/components/duotecno/light.py

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

* Update homeassistant/components/duotecno/light.py

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

* Update homeassistant/components/duotecno/light.py

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

* Update homeassistant/components/duotecno/light.py

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

* Update homeassistant/components/duotecno/light.py

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

* comments

* revert

* re-implement comments

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-05 18:29:46 +02:00
G Johansson a22aa285d3 Fix Melcloud import issue (#97673)
* Fix Melcloud import issue

* remove old issue

* Simplify

* Update homeassistant/components/melcloud/strings.json

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

* Update homeassistant/components/melcloud/strings.json

* Update homeassistant/components/melcloud/strings.json

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-05 17:00:33 +02:00
G Johansson 2e263560ec Fix Command Line template error when data is None (#97845)
Command Line template error
2023-08-05 16:21:39 +02:00
G-Two c5e5567912 Add device tracker to Subaru integration (#79492)
* Add device tracker to subaru integration

* Fix timestamp in device tracker

* Add test for device tracker

* Incorporate PR review comments

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Incorporate code review comments

* Add tests for bad device tracker data

* Check device tracker data is available in entity

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-08-05 15:52:20 +02:00
Maciej Bieniek d611b169ac Don't assume that battery_level value is always present in Tractive hw_info (#97766)
Don't assume that battery_level value is always present in hw_info
2023-08-05 13:05:15 +02:00
J. Nick Koston c2023936c1 Bump aiohomekit to 2.6.13 (#97820) 2023-08-04 22:01:08 -10:00
jan iversen f0abea48a6 Fix Flexit mypy error in pymodbus (#97799) 2023-08-04 21:38:32 +02:00
Jan Bouwhuis 50da5c3fae Fix typo in telegram_bot translations (#97793) 2023-08-04 21:35:35 +02:00
Jason Cook 32c1ffcde1 Update strings.json to correct grammer. (#97790)
Change of to off.
2023-08-04 21:23:33 +02:00
jan iversen bbc34bae87 modbus: use pb not pymodbus consistently as name. (#97780)
Use pb not pymodbus consistently as name.
2023-08-04 20:14:32 +02:00
Franck Nijhof b286da211a Add is_admin check to check configuration API (#97788) 2023-08-04 19:25:01 +02:00
Robert Svensson 66cb407e4f Improve counting of UniFi WLAN Clients sensor (#97785) 2023-08-04 19:22:46 +02:00
Ian Harcombe b5e23ee650 Fix metoffice visibility range sensor device class (#97763)
* Fix for issue #97694

Issue #97694 points out that the visibility range is a string with a band of distances, not a single value, which is causing issues for front end components. Removed the device class to leave as an informational string value.

* Removed *all* empty device_class statements

* Missed an empty device_class :(
2023-08-04 17:04:18 +02:00
Franck Nijhof 489860a28b 2023.8.1 (#97772) 2023-08-04 14:49:38 +02:00
karwosts 41eca41638 Handle Alert exception on notification failure (#93632) 2023-08-04 14:08:49 +02:00
Franck Nijhof b00fc9660b Bumped version to 2023.8.1 2023-08-04 13:26:05 +02:00
Joost Lekkerkerker 3b48c8a0f5 Fix WAQI being zero (#97767) 2023-08-04 13:25:12 +02:00
Joost Lekkerkerker d71f16c8b1 Add has entity name to Solarlog (#97764) 2023-08-04 13:25:09 +02:00
Maikel Punie 9479a59a2f Bump pyduotecno to 2023.8.3 (#97759) 2023-08-04 13:25:06 +02:00
tronikos 39fc557189 Bump opower to 0.0.20 (#97752) 2023-08-04 13:25:03 +02:00
J. Nick Koston cdabf76d15 Avoid calling the http access logging when logging is disabled in emulated_hue (#97750) 2023-08-04 13:24:59 +02:00
J. Nick Koston 9bec7ea93b Bump zeroconf to 0.74.0 (#97745)
* Bump zeroconf to 0.74.0

changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.72.3...0.74.0

- more cython build fixes
- performance improvements (mostly for pyatv)

* handle typing

* handle typing

* remove if TYPE_CHECKING, this doesnt get called that often

* remove if TYPE_CHECKING, this doesnt get called that often
2023-08-04 13:24:56 +02:00
Marc Mueller 53ee178545 Fix keymitt_ble RuntimeWarning (#97729) 2023-08-04 13:24:52 +02:00
TheJulianJES 79486f1880 Bump zigpy to 0.56.4 (#97722) 2023-08-04 13:24:49 +02:00
Marc Mueller 5283afc116 Update zigpy to 0.56.3 (#97480) 2023-08-04 13:24:43 +02:00
Matthias Alphart 2b876fa485 Fix unloading KNX integration without sensors (#97720) 2023-08-04 13:09:32 +02:00
Michael 047a210786 Fix detection of client wan-access rule in AVM Fritz!Box Tools (#97708) 2023-08-04 13:09:29 +02:00
tronikos 16e1212572 Bump opower to 0.0.19 (#97706) 2023-08-04 13:09:26 +02:00
karwosts 6a9318b90a Fix NWS twice_daily forecast day/night detection (#97703) 2023-08-04 13:09:23 +02:00
amitfin f066b4645a Fix allow_name_translation logic (#97701) 2023-08-04 13:09:19 +02:00
Cyr-ius 0617363f53 Fix freebox enumerate raid disks (#97696) 2023-08-04 13:09:16 +02:00
Nerdix 7a244e30a4 Fix Kostal_Plenticore SELECT entities using device_info correctly (#97690) 2023-08-04 13:09:12 +02:00
Robert Svensson 694d28ae3b Fix UniFi image platform not loading when passphrase is missing from WLAN (#97684) 2023-08-04 13:09:09 +02:00
Marcel van der Veldt 12d3bce3a7 Fix color mode attribute for both official and non official Hue lights (#97683) 2023-08-04 13:09:05 +02:00
J. Nick Koston 0a24299e23 Bump pyatv to 0.13.3 (#97670)
changelog: https://github.com/postlund/pyatv/compare/v0.13.2...v0.13.3

maybe fixes #80215
2023-08-04 13:09:01 +02:00
J. Nick Koston 1945275b7c Bump zeroconf to 0.72.3 (#97668) 2023-08-04 13:08:58 +02:00
G Johansson 79729043ed Fix date and timestamp device class in Command Line Sensor (#97663)
* Fix date in Command Line sensor

* prettier
2023-08-04 13:08:55 +02:00
J. Nick Koston 6a8484b6da Fix tplink child plug state reporting (#97658)
regressed in https://github.com/home-assistant/core/pull/96246
2023-08-04 13:08:52 +02:00
Nick Iacullo 2f5f15b345 Enable the PRESET_MODE FanEntityFeature for VeSync air purifiers (#97657) 2023-08-04 13:08:48 +02:00
Joost Lekkerkerker a36e746eb4 Revert "Add device naming to Yeelight" (#97647)
Revert "Add device naming to Yeelight (#97639)"

This reverts commit 82f27115f5.
2023-08-04 13:08:45 +02:00
J. Nick Koston 5da94f40ec Fix typo in tplink OUI (#97644)
The last two were reversed for https://ouilookup.com/search/788cb5
2023-08-04 13:08:42 +02:00
Joost Lekkerkerker d131b8c80b Add device naming to Yeelight (#97639) 2023-08-04 13:08:39 +02:00
Michael Hansen 455ac084ec Bump intents to 2023.8.2 (#97636) 2023-08-04 13:08:36 +02:00
Luke 62421d9ec3 Bump python-roborock to 0.31.1 (#97632)
bump to 0.31.1
2023-08-04 13:08:32 +02:00
J. Nick Koston 72533ad292 Bump dbus-fast to 1.90.1 (#97619)
* Bump dbus-fast to 1.88.0

- cython 3 fixes
- performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.87.5...v1.88.0

* one more

* Bump dbus-fast to 1.90.0

* bump again for yet another round of cython3 fixes
2023-08-04 13:07:40 +02:00
Joost Lekkerkerker c5747dffbc Waqi State unknown if value is string (#97617) 2023-08-04 13:06:40 +02:00
Blastoise186 20bddec328 Bump Cryptography to 41.0.3 for a second security fix (#97611)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-04 13:05:40 +02:00
Maikel Punie b6671385bc Bump pyDuotecno to 2023.8.1 (#97583) 2023-08-04 13:04:13 +02:00
TheJulianJES 21f878bfa4 Fix ZHA turn_on issues with transition=0, improve tests (#97539)
* Fix turn_on ignoring transition=0 and brightness=None, add test

This fixes light.turn_on for ZHA lights ignoring a transition of 0 when no brightness is given at the same time.
It also adds a test for that case.

Fixes https://github.com/home-assistant/core/issues/93265

* Add test for "force on" lights

This test checks that "force on" lights also get an "on" command (in addition to the "move to level" command) when turn_on is called with only transition=0.

* Fix "on" command sent for transition=0 calls, fix FORCE_ON missing for transition=0

This fixes an issue where the "on" command is sent in addition to a "move_to_level_with_on_off" command, even though the latter one is enough (for non-FORCE_ON lights).
It also fixes the test to not expect the unnecessary "on" command (in addition to the expected "move_to_level_with_on_off" command).

The `brightness != 0` change is needed to fix an issue where FORCE_ON lights did not get the required "on" command (in addition to "move_to_level_with_on_off") if turn_on was called with only transition=0.
(It could have been `brightness not None`, but that would also send an "on" command if turn_on is called with brightness=0 which HA somewhat "supports". The brightness != 0 check avoids that issue.)

* Improve comments in ZHA light class
2023-08-04 13:04:10 +02:00
Matthieu Barthelemy 77eec53f63 Add overkiz battery sensor level medium (#97472) 2023-08-04 13:04:07 +02:00
uvjustin f325122da5 Raise PlatformNotReady on initial OwnTone connection failure (#97257) 2023-08-04 13:04:00 +02:00
uvjustin 9282cb21ab Raise PlatformNotReady on initial OwnTone connection failure (#97257) 2023-08-04 12:54:54 +02:00
amitfin d78e39d568 Fix allow_name_translation logic (#97701) 2023-08-04 12:51:04 +02:00
Joost Lekkerkerker 80d0f32237 Add has entity name to Solarlog (#97764) 2023-08-04 12:46:53 +02:00
Joost Lekkerkerker ecce601d3f Fix WAQI being zero (#97767) 2023-08-04 12:46:23 +02:00
Robert Svensson 2820514c33 Break long strings in Axis integration (#97254) 2023-08-04 12:43:06 +02:00
Joost Lekkerkerker 0971449b94 Remove unused translation key from OpenSky (#97699) 2023-08-04 12:42:31 +02:00
Marc Mueller 3f5a21dce4 Fix mailbox PytestCollectionWarning (#97740) 2023-08-04 12:31:32 +02:00
Marc Mueller 447479d0a0 Add packaging as default requirement (#97712) 2023-08-04 12:29:18 +02:00
Matthieu Barthelemy 6adb06956b Add overkiz battery sensor level medium (#97472) 2023-08-04 11:50:03 +02:00
J. Nick Koston 8719aa76ca Avoid calling the http access logging when logging is disabled in emulated_hue (#97750) 2023-08-04 11:46:19 +02:00
Maikel Punie 95ca609124 Bump pyduotecno to 2023.8.3 (#97759) 2023-08-04 11:33:03 +02:00
Marc Mueller cd8d6ecd81 Fix recorder DeprecationWarnings (#97738) 2023-08-04 11:32:51 +02:00
Marc Mueller b23b2ac2e8 Fix http test DeprecationWarnings (#97737) 2023-08-04 11:32:23 +02:00
Nerdix f68f9d4e01 Fix Kostal_Plenticore SELECT entities using device_info correctly (#97690) 2023-08-04 11:31:54 +02:00
Marc Mueller f39a35c4ef Fix jinja2 DeprecationWarnings (#97728) 2023-08-04 11:25:08 +02:00
Marc Mueller c33e3ce212 Fix core test RuntimeWarnings (#97730) 2023-08-04 11:21:57 +02:00
Marc Mueller e905ac173f Fix command_line tests RuntimeWarnings (#97731) 2023-08-04 09:34:55 +02:00
Marc Mueller 99145d46d2 Fix keymitt_ble RuntimeWarning (#97729) 2023-08-04 09:34:04 +02:00
tronikos b16254a0de Bump opower to 0.0.20 (#97752) 2023-08-04 09:32:59 +02:00
Luke df45e52dc5 Add battery sensor to Roborock (#97715)
* add battery sensor

* Remove translation for battery

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-04 09:28:48 +02:00
Cyr-ius 3ac2106eb8 Fix freebox enumerate raid disks (#97696) 2023-08-04 09:25:51 +02:00
Marc Mueller 37885400c9 Fix mqtt test DeprecationWarnings (#97734) 2023-08-04 09:21:36 +02:00
Joost Lekkerkerker 1587ac2137 Waqi State unknown if value is string (#97617) 2023-08-04 08:45:36 +02:00
Nathan Spencer 615d7f0da7 Add ability to remove Litter-Robot if no longer provided by integration (#97702) 2023-08-03 20:30:03 -10:00
J. Nick Koston 0cc80a9d29 Add OUI to tplink diagnostics (#97646)
* Add OUI to tplink diagnostics

The main reason discovery does not work for new devices is we
are missing the OUI. Since we redact the whole mac address in
the diagnostics, this makes it difficult to fix. We now include
the OUI in the diagnostics

* fix: use cached mac

* fix: tests
2023-08-03 22:49:55 -04:00
J. Nick Koston d1f8309423 Bump zeroconf to 0.74.0 (#97745)
* Bump zeroconf to 0.74.0

changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.72.3...0.74.0

- more cython build fixes
- performance improvements (mostly for pyatv)

* handle typing

* handle typing

* remove if TYPE_CHECKING, this doesnt get called that often

* remove if TYPE_CHECKING, this doesnt get called that often
2023-08-03 22:48:53 -04:00
Marc Mueller ddb384c2ed Fix airvisual RuntimeWarning (#97739) 2023-08-04 01:23:12 +02:00
Marc Mueller d1ad1c47e6 Fix zha test RuntimeWarnings (#97733) 2023-08-04 01:07:11 +02:00
J. Nick Koston 282ae80cc2 Fix hassfest check for schema (#97713)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-08-03 12:55:33 -10:00
Marc Mueller 52fc3c26d1 Fix yalex_ble test RuntimeWarning (#97732) 2023-08-03 12:55:18 -10:00
TheJulianJES f7aec46b69 Bump zigpy to 0.56.4 (#97722) 2023-08-03 18:11:36 -04:00
Matthias Alphart fd26739bbf Fix unloading KNX integration without sensors (#97720) 2023-08-03 23:23:12 +02:00
Michael Arthur bfa394d399 address code comments / tidy ups (#97716) 2023-08-03 23:09:14 +02:00
Paul Bottein 83af2f5b8b Allow to sort options in select selector (#97680)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-03 21:49:22 +02:00
Blastoise186 d33955c467 Bump Cryptography to 41.0.3 for a second security fix (#97611)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-08-03 21:36:12 +02:00
TheJulianJES bae5a3dbd6 Fix ZHA turn_on issues with transition=0, improve tests (#97539)
* Fix turn_on ignoring transition=0 and brightness=None, add test

This fixes light.turn_on for ZHA lights ignoring a transition of 0 when no brightness is given at the same time.
It also adds a test for that case.

Fixes https://github.com/home-assistant/core/issues/93265

* Add test for "force on" lights

This test checks that "force on" lights also get an "on" command (in addition to the "move to level" command) when turn_on is called with only transition=0.

* Fix "on" command sent for transition=0 calls, fix FORCE_ON missing for transition=0

This fixes an issue where the "on" command is sent in addition to a "move_to_level_with_on_off" command, even though the latter one is enough (for non-FORCE_ON lights).
It also fixes the test to not expect the unnecessary "on" command (in addition to the expected "move_to_level_with_on_off" command).

The `brightness != 0` change is needed to fix an issue where FORCE_ON lights did not get the required "on" command (in addition to "move_to_level_with_on_off") if turn_on was called with only transition=0.
(It could have been `brightness not None`, but that would also send an "on" command if turn_on is called with brightness=0 which HA somewhat "supports". The brightness != 0 check avoids that issue.)

* Improve comments in ZHA light class
2023-08-03 15:20:40 -04:00
Joost Lekkerkerker 415e4b2243 Bump python-opensky to 0.2.0 (#97687) 2023-08-03 21:17:00 +02:00
karwosts 9e7872e78b Fix NWS twice_daily forecast day/night detection (#97703) 2023-08-03 21:15:08 +02:00
Meow 6fd60024cc Refactored deprecated UNITS (#97368) 2023-08-03 21:12:01 +02:00
Robert Svensson e7e68907fa Fix UniFi image platform not loading when passphrase is missing from WLAN (#97684) 2023-08-03 21:11:15 +02:00
Marcel van der Veldt 6ed31840bc Fix color mode attribute for both official and non official Hue lights (#97683) 2023-08-03 21:06:45 +02:00
Franck Nijhof 9b9b746138 Merge branch 'master' into dev 2023-08-03 20:59:51 +02:00
Michael c43e6d9bd1 Fix detection of client wan-access rule in AVM Fritz!Box Tools (#97708) 2023-08-03 20:36:09 +02:00
tronikos 5e2d3b13b0 Bump opower to 0.0.19 (#97706) 2023-08-03 20:07:44 +02:00
J. Nick Koston 620525b2b4 Bump zeroconf to 0.72.3 (#97668) 2023-08-03 18:57:34 +02:00
Nick Iacullo 6f8d666b57 Enable the PRESET_MODE FanEntityFeature for VeSync air purifiers (#97657) 2023-08-03 18:30:56 +02:00
G Johansson 4c395c0124 Fix date and timestamp device class in Command Line Sensor (#97663)
* Fix date in Command Line sensor

* prettier
2023-08-03 13:59:37 +02:00
jan iversen d50b993f64 Bump pymodbus v3.4.1. (#97612)
* Bump pymodbus v3.4.1.

* Solve mypy problem.
2023-08-03 14:34:20 +03:00
J. Nick Koston 9980051c3a Bump dbus-fast to 1.90.1 (#97619)
* Bump dbus-fast to 1.88.0

- cython 3 fixes
- performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.87.5...v1.88.0

* one more

* Bump dbus-fast to 1.90.0

* bump again for yet another round of cython3 fixes
2023-08-03 14:33:05 +03:00
J. Nick Koston 6e5baeec70 Bump pyatv to 0.13.3 (#97670)
changelog: https://github.com/postlund/pyatv/compare/v0.13.2...v0.13.3

maybe fixes #80215
2023-08-03 14:31:49 +03:00
Marc Mueller 1fa66953b4 Use mirror to run black with pre-commit (#95605) 2023-08-03 13:21:07 +02:00
J. Nick Koston db5d1b10ea Fix tplink child plug state reporting (#97658)
regressed in https://github.com/home-assistant/core/pull/96246
2023-08-03 12:35:22 +02:00
J. Nick Koston 53703448ec Fix typo in tplink OUI (#97644)
The last two were reversed for https://ouilookup.com/search/788cb5
2023-08-03 12:20:35 +02:00
Luke 7b7b8689ef Bump python-roborock to 0.31.1 (#97632)
bump to 0.31.1
2023-08-03 12:15:20 +02:00
Michael Arthur 05e2acb091 Add hour of free power select to Electric Kiwi (#97515)
* add select sensor to Electric Kiwi

* Update homeassistant/components/electric_kiwi/select.py

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

* simplify the HOP select since there is only one

* remove handle coordinator state

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-08-03 12:06:42 +02:00
G Johansson 564e0110a4 Revert "OctoPrint add yaml config removal issue" (#97674)
Revert "OctoPrint add yaml config removal issue (#97431)"

This reverts commit 594d98822b.
2023-08-03 11:34:20 +02:00
Marc Mueller 1daac46635 Replace deprecated pkg_resources with importlib.metadata (#97628) 2023-08-03 09:14:00 +02:00
Joost Lekkerkerker 357bfc46bf Revert "Add device naming to Yeelight" (#97647)
Revert "Add device naming to Yeelight (#97639)"

This reverts commit 82f27115f5.
2023-08-03 09:13:23 +02:00
Marc Mueller 4196c43416 Fix deluge DeprecationWarning (#97624) 2023-08-03 09:12:08 +02:00
Marc Mueller ad0873549d Fix ssl DeprecationWarnings (#97623) 2023-08-03 09:11:41 +02:00
Marc Mueller 3c2cebea72 Fix abode DeprecationWarnings (#97620) 2023-08-03 09:10:31 +02:00
Michael Hansen 7cf2199e8b Bump intents to 2023.8.2 (#97636) 2023-08-02 20:01:30 -04:00
Joost Lekkerkerker 82f27115f5 Add device naming to Yeelight (#97639) 2023-08-02 23:48:37 +02:00
Marc Mueller 9d9af0c884 Fix pylint DeprecationWarnings (#97627) 2023-08-02 20:30:41 +02:00
Marc Mueller 887e48c440 Replace deprecated aiohttp_unused_port fixture (#97626) 2023-08-02 20:30:13 +02:00
Marc Mueller 91a83e1ad2 Fix httpx DeprecationWarning (#97625) 2023-08-02 20:29:36 +02:00
Marc Mueller 0afa964724 Fix async_timeout DeprecationWarnings (#97622) 2023-08-02 20:29:03 +02:00
Marc Mueller 1a77121c02 Fix aiohttp code DeprecationWarnings (#97621) 2023-08-02 20:28:18 +02:00
Bram Kragten 02f8000f6c Update frontend to 20230802.0 (#97614) 2023-08-02 14:43:42 +02:00
Bruno Enten 3ce05314e0 use write_registers also for target temp (#97475) 2023-08-02 13:36:05 +02:00
Robert Resch e4303e4534 Add rounding back when unique_id is not set (#97603) 2023-08-02 11:26:25 +02:00
Robert Resch f9ac102c27 Fix duotecno's name to be sync with the docs (#97602) 2023-08-02 09:09:13 +02:00
Michael db4c9c67a2 Do not set hass data before first coordinator refresh (#97343) 2023-08-02 08:29:00 +02:00
Jack Boswell 49b9dd2a4f Add Starlink to .strict-typing (#97598) 2023-08-02 08:26:50 +02:00
Maikel Punie ac9ec6e402 Bump pyDuotecno to 2023.8.1 (#97583) 2023-08-02 08:23:37 +02:00
J. Nick Koston 93d7165fe9 Bump zeroconf to 0.72.0 (#97594) 2023-08-02 08:19:22 +02:00
Jack Boswell 7a92bda514 Fix Starlink Roaming name being blank (#97597) 2023-08-02 08:12:49 +02:00
Franck Nijhof af5fc7e759 Ensure load the device registry if it contains invalid configuration URLs (#97589) 2023-08-01 23:15:31 +02:00
Franck Nijhof 33e5e3c5c2 Ensure we have an valid configuration URL in NetGear (#97590) 2023-08-01 22:29:16 +02:00
TheJulianJES cad845f5c9 Bump zha-quirks to 0.0.102 (#97588) 2023-08-01 22:26:36 +02:00
Joost Lekkerkerker 7096daa0c1 Unignore today's collection for Rova (#97567) 2023-08-01 21:31:45 +02:00
Robert Svensson 6c95e07b7d Fix UniFi image platform failing to setup on read-only account (#97580) 2023-08-01 21:18:33 +02:00
J. Nick Koston 708b00d7ab Use legacy rules for ESPHome entity_id construction if friendly_name is unset (#97578) 2023-08-01 21:08:12 +02:00
Maikel Punie b20a286b5b Bump pyduotecno to 2023.8.0 (beta fix) (#97564)
* Bump pyduotecno to 2023.7.4

* Bump to 2023.8.0
2023-08-01 14:39:31 +02:00
Bram Kragten 1773f1ead2 Update frontend to 20230801.0 (#97561) 2023-08-01 11:46:37 +02:00
Pedro Lamas 3f5c0a1285 Fixes London Air parsing error (#97557) 2023-08-01 11:04:30 +02:00
J. Nick Koston 7e134a3d44 Cleanups to the Bluetooth processor coordinators (#97546) 2023-08-01 10:27:25 +02:00
Eric Severance 8b8a51ffc8 Bump pywemo to 1.2.1 (#97550) 2023-08-01 10:08:08 +02:00
Jack Boswell 122794ada8 Fix Starlink ping drop rate reporting (#97555) 2023-08-01 10:06:19 +02:00
Michael Hansen 8ad37d7640 Send language to Wyoming STT (#97344) 2023-08-01 10:05:01 +02:00
Phil Bruckner 5aa3e36754 Bump life360 package to 6.0.0 (#97549) 2023-08-01 10:04:04 +02:00
Jan Bouwhuis 9c6c391eea Offer work- a-round for MQTT entity names that start with the device name (#97495)
Co-authored-by: SukramJ <sukramj@icloud.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-08-01 10:03:08 +02:00
J. Nick Koston 5ce8e0e33e Bump HAP-python to 4.7.1 (#97545) 2023-08-01 09:49:20 +02:00
tronikos 3a2549829e Bump opower to 0.0.18 (#97548) 2023-08-01 09:45:17 +02:00
janmolemans f0640fc057 Add frequency sensors to Nibe (#89072)
* added frequency (for compressors etc)

---------

Co-authored-by: Joakim Plate <elupus@ecce.se>
2023-07-31 22:23:32 +02:00
Jan Bouwhuis a8a3b6778e Fix unit tests for wake_on_lan (#97542) 2023-07-31 21:16:58 +02:00
starkillerOG 121fc7778d Bump reolink_aio to 0.7.6 + Timeout (#97464) 2023-07-31 21:01:25 +02:00
J. Nick Koston 094f2cbad7 Fix saving subclassed datetime objects in storage (#97502) 2023-07-31 18:49:02 +02:00
Joost Lekkerkerker c2e9fd85c2 Fix RootFolder not iterable in Radarr (#97537)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-07-31 18:44:03 +02:00
David Knowles 085e274f44 Bump pyschlage to 2023.7.0 (#97366) 2023-07-31 18:38:50 +02:00
Marc Mueller 4d9b73033d Update python-typing-update to 0.6.0 (#97531) 2023-07-31 17:59:40 +02:00
Marc Mueller dba6330fc8 Update pydiscovergy to 2.0.3 (#97509)
* Update pydiscovergy to 2.0.3

* Fix mypy

* Fix tests
2023-07-31 17:25:57 +02:00
epenet 9df1805b3b Remove myself from const and util codeowners (#97527) 2023-07-31 07:06:06 -07:00
J. Nick Koston e7069d48be Load homekit_controller test data using its json loader (#97534) 2023-07-31 07:04:41 -07:00
Joakim Plate 651d4134cf Avoid leaking exception trace for philips_js (#97491)
Avoid leaking exception trace
2023-07-31 14:21:34 +02:00
epenet 787486b68d Remove myself from rest codeowners (#97528) 2023-07-31 12:50:44 +02:00
Eric Severance 7b25702605 Bump pywemo to 1.2.0 (#97520) 2023-07-31 12:38:31 +02:00
epenet 83db3c48c2 Fix unused variable in Renault tests (#97529) 2023-07-31 12:35:30 +02:00
epenet 927905ac84 Handle http error in Renault initialisation (#97530) 2023-07-31 12:17:51 +02:00
epenet ed3ebdfea5 Remove myself from scrape codeowners (#97524) 2023-07-31 11:15:59 +02:00
J. Nick Koston 37cdd51183 Combine Bluetooth update coordinator subscriptions to reduce code duplication (#97503) 2023-07-31 01:03:19 -07:00
J. Nick Koston 5c4e47c127 Use internal imports in Bluetooth update coordinator to avoid future circular imports (#97506) 2023-07-31 01:02:57 -07:00
J. Nick Koston 28bebf338f Fix xiaomi_ble not remembering a device is a sleepy device (#97518) 2023-07-31 01:02:36 -07:00
J. Nick Koston 7bda873c2a Fix bthome not remembering a device is a sleepy device (#97517) 2023-07-31 01:02:15 -07:00
starkillerOG b266514068 Delay creation of Reolink repair issues (#97476)
* delay creation of repair issues

* fix tests
2023-07-31 09:07:13 +02:00
J. Nick Koston f218fb8cee Fix typo in PassiveBluetoothDataProcessor (#97508) 2023-07-31 08:56:30 +02:00
tronikos eb56c7e1b7 Bump androidtvremote2==0.0.13 (#97494) 2023-07-30 21:27:57 +02:00
Meow a4b2ded503 Refactor deprecated RESULT_TYPE_* (#97367) 2023-07-30 19:27:30 +02:00
Joost Lekkerkerker 04e72fec57 Add entity translation to Moon (#97404) 2023-07-30 19:10:45 +02:00
Joost Lekkerkerker 15b7035ad0 Change IoT class for Moon to calculated (#97405) 2023-07-30 19:03:25 +02:00
Jan-Philipp Benecke cb033f7a7b Change IoT class for ToD to calculated (#97422) 2023-07-30 19:02:43 +02:00
Marc Mueller 1553ff1001 Update pydantic to 1.10.12 (#97479) 2023-07-30 18:55:13 +02:00
Marc Mueller 71cc227f09 Update aiopvpc to 4.2.2 (#97482) 2023-07-30 18:54:45 +02:00
Niels Perfors a70c10d3c9 Upgrade Verisure to 2.6.4 (#97278) 2023-07-30 18:53:26 +02:00
starkillerOG f4e79bbab8 Regard long poll without events as valid (#97383) 2023-07-30 18:49:27 +02:00
starkillerOG c32b15c754 Reolink long poll recover (#97465) 2023-07-30 18:49:00 +02:00
G Johansson 1f11ce63fc Manual trigger entity fix name influence entity_id (#97398) 2023-07-30 18:47:34 +02:00
Joost Lekkerkerker 2b4387f7c2 Return the actual media url from media extractor (#97408) 2023-07-30 18:43:42 +02:00
Chris Talkington 9d2f52dbc5 Allow deleting config entry devices in jellyfin (#97377) 2023-07-30 18:42:28 +02:00
tronikos 28dc819212 Bump opower to 0.0.16 (#97437) 2023-07-30 18:41:14 +02:00
Marc Mueller 68cb7a7dde Update ha-av to 10.1.1 (#97481) 2023-07-30 18:40:38 +02:00
J. Nick Koston 84576672de Bump dbus-fast to 1.87.5 (#97364) 2023-07-30 18:39:40 +02:00
J. Nick Koston afdbbefc31 Revert using has_entity_name in ESPHome when friendly_name is not set (#97488) 2023-07-30 18:28:45 +02:00
Marc Mueller 5e3bcc1224 Update zigpy to 0.56.3 (#97480) 2023-07-30 09:30:13 -04:00
Maciej Bieniek 12426dfad4 Add entity translations for AccuWeather (#95940)
* Add entity name translations

* Some improvements

* Update tests

* Suggested changes

* day 0 -> today

* night 0 -> tonight

* Fix precipitation
2023-07-29 21:22:53 +02:00
mbo18 598e26e481 Add device and state class to humidity sensor (#97331)
Add device and state class to humidity
2023-07-29 17:40:14 +02:00
Renier Moorcroft f52876c7f6 Add entity description to EZVIZ SwitchEntity (#95672)
* Initial commit

* Update switch entity

* Add entity description

* Redundant get. Key will always be there.

* fixed dumb condition mistake.

* Removed names from entity description

* Implement suggestions

* async_add_entities has iterator so cleanup

* Update strings.json
2023-07-29 17:37:40 +02:00
Michael 750260b266 Add more sensors to PEGELONLINE (#97295)
* add further sensors

* adjust and improve tests

* add device classes were applicable

* fix doc string

* name for ph comes from device class

* use icon from device class for ph sensor
2023-07-29 17:03:29 +02:00
Richard Kroegel b7ed163caf bmw_connected_drive: Add WASHING_FLUID to correct binary sensor attribute (#97448)
BMW: Add WASHING_FLUID to correct binary sensor attribute

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2023-07-29 12:32:55 +02:00
David Knowles 0e8bbbd3d9 Add a battery sensor to Schlage (#97369) 2023-07-28 21:09:25 -07:00
G Johansson 78003886a5 GDACS add yaml config issue (#97424)
gdacs remove yaml issue
2023-07-29 02:22:54 +02:00
J. Nick Koston 0a56361ca4 Disable always_update in nexia coordinator (#97436) 2023-07-28 17:46:26 -05:00
J. Nick Koston c11222c1d0 Bump nexia to 2.0.7 (#97432) 2023-07-28 16:37:08 -05:00
J. Nick Koston a2555e71e2 Small cleanups to ambient station (#97421) 2023-07-28 16:30:29 -05:00
G Johansson fc38451faf Disable always_update in yale_smart_alarm coordinator (#97426)
always update
2023-07-28 23:29:01 +02:00
J. Nick Koston 1b6f15e3da Disable always_update in enphase_envoy coordinator (#97425)
see https://github.com/home-assistant/developers.home-assistant/pull/1863
2023-07-28 23:28:41 +02:00
J. Nick Koston a3110ef1c1 Disable always_update in oncue coordinator (#97434) 2023-07-28 16:23:37 -05:00
G Johansson 7966d8da76 LiteJet add yaml config removal issue (#97429)
litejet yaml config removal issue
2023-07-28 23:21:49 +02:00
G Johansson 05e9b63b16 MELCloud add yaml config removal issue (#97430)
melcloud yaml config removal issue
2023-07-28 23:21:34 +02:00
G Johansson 594d98822b OctoPrint add yaml config removal issue (#97431)
OctoPrint yaml config removal issue
2023-07-28 23:21:15 +02:00
G Johansson cd311f4868 meteo_france add yaml config removal issue (#97428)
meteo_france yaml removal issue
2023-07-28 23:01:21 +02:00
J. Nick Koston 1b10c44a16 Disable always_update in esphome dashboard coordinator (#97419) 2023-07-28 12:42:04 -05:00
J. Nick Koston c1ce14983c Disable always_update in filesize coordinator (#97418) 2023-07-28 12:41:45 -05:00
Joost Lekkerkerker 8101376ad5 Small cleanup in event entity (#97409) 2023-07-28 19:41:41 +02:00
J. Nick Koston e1f14ed990 Disable always_update in cert_expiry coordinator (#97417) 2023-07-28 12:41:25 -05:00
J. Nick Koston 44a3885986 Disable always_update in powerwall coordinator (#97416) 2023-07-28 12:41:05 -05:00
J. Nick Koston 5829efb5d7 Disable always_update in lookin coordinator (#97415) 2023-07-28 12:40:50 -05:00
J. Nick Koston 8a9153d004 Disable always_update in emonitor coordinator (#97414) 2023-07-28 12:39:15 -05:00
J. Nick Koston 2ec2c25f5a Disable always_update in nut coordinator (#97413) 2023-07-28 12:38:52 -05:00
J. Nick Koston e4ac8bdd6b Disable always_update in flux_led coordinator (#97412) 2023-07-28 12:38:33 -05:00
J. Nick Koston 48eebe43c9 Disable always_update in steamist coordinator (#97411) 2023-07-28 12:38:07 -05:00
J. Nick Koston 54e7185617 Disable always_update in rain machine coordinator (#97410) 2023-07-28 12:33:33 -05:00
J. Nick Koston 13349e76ed Avoid firing update coordinator callbacks when nothing has changed (#97268) 2023-07-28 12:19:20 -05:00
G Johansson 3a54448836 Bump pysensibo to 1.0.32 (#97382) 2023-07-28 11:52:23 +02:00
G Johansson 81c0dcff63 Home Connect deprecation issue yaml configuration (#97361)
Home Connect deprecation issue
2023-07-27 23:34:17 +02:00
G Johansson 2299430dbe Sonos add yaml config issue (#97365) 2023-07-27 23:33:49 +02:00
starkillerOG 053f4b08b6 Bump reolink_aio to 0.7.5 (#97357)
* bump reolink-aio to 0.7.4

* Bump reolink_aio to 0.7.5
2023-07-27 23:33:08 +02:00
Joost Lekkerkerker 973370b75e Deprecate Freebox YAML (#97345)
* Deprecate Freebox YAML

* Update homeassistant/components/freebox/__init__.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-07-27 23:01:17 +02:00
G Johansson ae3cc0b619 Sure Petcare deprecation issue yaml configuration (#97363)
Sure Petcare yaml config issue
2023-07-27 22:53:51 +02:00
G Johansson 4ac139592a Plum Lightpad deprecation issue for yaml configuration (#97362)
Plum issue yaml config
2023-07-27 22:53:24 +02:00
G Johansson 2d4040c70a Netatmo add issue for yaml deprecation (#97360)
Netatmo add issue
2023-07-27 22:50:50 +02:00
G Johansson 3fdcb67322 Add breaks_in_ha_version for Dynalite YAML import (#97359)
Dynalite breaks in version
2023-07-27 22:26:35 +02:00
J.P. Krauss 70cb8afb94 Add AirNow Reporting Station as sensor (#97273)
* Add AirNow Reporting Station as sensor attribute

* Make Reporting Station a sensor instead of attribute as requested

* Update homeassistant/components/airnow/strings.json

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

* Fix reporting station attribute names to avoid showing on map

* Add attribute name translations

* Update homeassistant/components/airnow/strings.json

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2023-07-27 21:19:16 +02:00
Michael Hansen 7e3fdd85fc Add wildcards to sentence triggers (#97236)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-07-27 20:30:42 +02:00
Franck Nijhof af286a8feb Add urllib3<2 package constraint (#97339) 2023-07-27 18:57:13 +02:00
Franck Nijhof 737ac8c600 Fix DeviceInfo configuration_url validation (#97319) 2023-07-27 18:57:01 +02:00
J. Nick Koston b92e7c5ddf Bump aiohomekit to 2.6.12 (#97342) 2023-07-27 18:56:45 +02:00
Marcel van der Veldt 7ada88eab3 Hue event entity follow up (#97336) 2023-07-27 16:58:09 +02:00
Jc2k cc47ff30b3 Split availability and data subscriptions in homekit_controller (#97337) 2023-07-27 09:32:53 -05:00
J. Nick Koston cbc8ebb427 Bump aioesphomeapi to 15.1.15 (#97335)
changelog: https://github.com/esphome/aioesphomeapi/compare/v15.1.14...v15.1.15
2023-07-27 09:30:31 -05:00
Maikel Punie 374255ce87 Duotecno beta fix (#97325)
* Fix duotecno

* Implement comments

* small cover fix
2023-07-27 16:00:27 +02:00
David Knowles 2542c5f259 Fix Hydrawise zone addressing (#97333) 2023-07-27 15:57:36 +02:00
David Knowles cd1a99a15f Bump pydrawise to 2023.7.1 (#97334) 2023-07-27 08:54:44 -05:00
dougiteixeira e99ba1b0da Move async_client_device_info_fn to entity.py (#97270)
Move client device info
2023-07-27 10:21:22 +02:00
G Johansson f610a9b1c9 Fix sql entities not loading (#97316) 2023-07-27 09:24:32 +02:00
Jan Bouwhuis 3fcfe7d0c6 Set mqtt entity name to null when it is a duplicate of the device name (#97304) 2023-07-27 09:23:23 +02:00
Franck Nijhof c2bbb0b5db Fix implicit use of device name in TPLink switch (#97293) 2023-07-27 09:22:22 +02:00
Marcel van der Veldt 265fe51169 Bump aioslimproto to 2.3.3 (#97283) 2023-07-27 09:21:30 +02:00
J. Nick Koston e9c3f0821f Fix dumping lru stats in the profiler (#97303) 2023-07-27 09:17:27 +02:00
Luke 01ba7a8698 bump python-roborock to 0.30.2 (#97306) 2023-07-27 09:13:49 +02:00
Markus Becker 3fd33c4ecc Fix typo Lomng -> Long (#97315) 2023-07-27 08:58:52 +02:00
Jan-Philipp Benecke 55beb26190 Fix authlib version constraint required by point (#97228) 2023-07-27 08:54:20 +02:00
David Knowles b31cfe0b24 Add Schlage integration (#93777)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2023-07-26 23:15:01 -05:00
G Johansson 7d8462b11c Weather remove forecast deprecation (#97292) 2023-07-26 23:12:01 +02:00
Michael dce9a1b998 Rename key of water level sensor in PEGELONLINE (#97289) 2023-07-26 22:03:38 +02:00
J.P. Krauss 7113db8da4 Improve AirNow Configuration Error Handling (#97267)
* Fix config flow error handling when no data is returned by AirNow API

* Add test for PyAirNow EmptyResponseError

* Typo Fix
2023-07-26 21:30:25 +02:00
Franck Nijhof fd3c2c2811 Fix zodiac import flow/issue (#97282) 2023-07-26 21:22:22 +02:00
Franck Nijhof 9b7dcce7ed Bump version to 2023.9.0dev0 (#97265) 2023-07-26 17:40:17 +02:00
4712 changed files with 247643 additions and 78133 deletions
+5 -1
View File
@@ -30,6 +30,7 @@ base_platforms: &base_platforms
- homeassistant/components/humidifier/**
- homeassistant/components/image/**
- homeassistant/components/image_processing/**
- homeassistant/components/lawn_mower/**
- homeassistant/components/light/**
- homeassistant/components/lock/**
- homeassistant/components/media_player/**
@@ -44,6 +45,7 @@ base_platforms: &base_platforms
- homeassistant/components/switch/**
- homeassistant/components/text/**
- homeassistant/components/time/**
- homeassistant/components/todo/**
- homeassistant/components/tts/**
- homeassistant/components/update/**
- homeassistant/components/vacuum/**
@@ -54,6 +56,7 @@ base_platforms: &base_platforms
components: &components
- homeassistant/components/alexa/**
- homeassistant/components/application_credentials/**
- homeassistant/components/assist_pipeline/**
- homeassistant/components/auth/**
- homeassistant/components/automation/**
- homeassistant/components/backup/**
@@ -86,6 +89,7 @@ components: &components
- homeassistant/components/lovelace/**
- homeassistant/components/media_source/**
- homeassistant/components/mjpeg/**
- homeassistant/components/modbus/**
- homeassistant/components/mqtt/**
- homeassistant/components/network/**
- homeassistant/components/onboarding/**
@@ -93,8 +97,8 @@ components: &components
- homeassistant/components/persistent_notification/**
- homeassistant/components/person/**
- homeassistant/components/recorder/**
- homeassistant/components/recovery_mode/**
- homeassistant/components/repairs/**
- homeassistant/components/safe_mode/**
- homeassistant/components/script/**
- homeassistant/components/shopping_list/**
- homeassistant/components/ssdp/**
+96 -27
View File
@@ -29,11 +29,13 @@ omit =
homeassistant/components/adguard/switch.py
homeassistant/components/ads/*
homeassistant/components/aemet/weather_update_coordinator.py
homeassistant/components/aftership/*
homeassistant/components/aftership/__init__.py
homeassistant/components/aftership/sensor.py
homeassistant/components/agent_dvr/alarm_control_panel.py
homeassistant/components/agent_dvr/camera.py
homeassistant/components/agent_dvr/helpers.py
homeassistant/components/airnow/__init__.py
homeassistant/components/airnow/coordinator.py
homeassistant/components/airnow/sensor.py
homeassistant/components/airq/__init__.py
homeassistant/components/airq/coordinator.py
@@ -44,6 +46,7 @@ omit =
homeassistant/components/airthings_ble/sensor.py
homeassistant/components/airtouch4/__init__.py
homeassistant/components/airtouch4/climate.py
homeassistant/components/airtouch4/coordinator.py
homeassistant/components/airvisual/__init__.py
homeassistant/components/airvisual/sensor.py
homeassistant/components/airvisual_pro/__init__.py
@@ -57,6 +60,7 @@ omit =
homeassistant/components/ambiclimate/climate.py
homeassistant/components/ambient_station/__init__.py
homeassistant/components/ambient_station/binary_sensor.py
homeassistant/components/ambient_station/entity.py
homeassistant/components/ambient_station/sensor.py
homeassistant/components/amcrest/*
homeassistant/components/ampio/*
@@ -99,6 +103,7 @@ omit =
homeassistant/components/azure_devops/__init__.py
homeassistant/components/azure_devops/sensor.py
homeassistant/components/azure_service_bus/*
homeassistant/components/awair/coordinator.py
homeassistant/components/baf/__init__.py
homeassistant/components/baf/climate.py
homeassistant/components/baf/entity.py
@@ -168,12 +173,20 @@ omit =
homeassistant/components/cmus/media_player.py
homeassistant/components/coinbase/sensor.py
homeassistant/components/comed_hourly_pricing/sensor.py
homeassistant/components/comelit/__init__.py
homeassistant/components/comelit/const.py
homeassistant/components/comelit/cover.py
homeassistant/components/comelit/coordinator.py
homeassistant/components/comelit/light.py
homeassistant/components/comelit/sensor.py
homeassistant/components/comelit/switch.py
homeassistant/components/comfoconnect/fan.py
homeassistant/components/concord232/alarm_control_panel.py
homeassistant/components/concord232/binary_sensor.py
homeassistant/components/control4/__init__.py
homeassistant/components/control4/director_utils.py
homeassistant/components/control4/light.py
homeassistant/components/coolmaster/coordinator.py
homeassistant/components/cppm_tracker/device_tracker.py
homeassistant/components/crownstone/__init__.py
homeassistant/components/crownstone/devices.py
@@ -212,10 +225,12 @@ omit =
homeassistant/components/dominos/*
homeassistant/components/doods/*
homeassistant/components/doorbird/__init__.py
homeassistant/components/doorbird/button.py
homeassistant/components/doorbird/camera.py
homeassistant/components/doorbird/button.py
homeassistant/components/doorbird/device.py
homeassistant/components/doorbird/entity.py
homeassistant/components/doorbird/util.py
homeassistant/components/doorbird/view.py
homeassistant/components/dormakaba_dkey/__init__.py
homeassistant/components/dormakaba_dkey/binary_sensor.py
homeassistant/components/dormakaba_dkey/entity.py
@@ -234,6 +249,9 @@ omit =
homeassistant/components/duotecno/entity.py
homeassistant/components/duotecno/switch.py
homeassistant/components/duotecno/cover.py
homeassistant/components/duotecno/light.py
homeassistant/components/duotecno/climate.py
homeassistant/components/duotecno/binary_sensor.py
homeassistant/components/dwd_weather_warnings/const.py
homeassistant/components/dwd_weather_warnings/coordinator.py
homeassistant/components/dwd_weather_warnings/sensor.py
@@ -247,6 +265,12 @@ omit =
homeassistant/components/ecobee/notify.py
homeassistant/components/ecobee/sensor.py
homeassistant/components/ecobee/weather.py
homeassistant/components/ecoforest/__init__.py
homeassistant/components/ecoforest/coordinator.py
homeassistant/components/ecoforest/entity.py
homeassistant/components/ecoforest/number.py
homeassistant/components/ecoforest/sensor.py
homeassistant/components/ecoforest/switch.py
homeassistant/components/econet/__init__.py
homeassistant/components/econet/binary_sensor.py
homeassistant/components/econet/climate.py
@@ -262,14 +286,11 @@ omit =
homeassistant/components/edl21/__init__.py
homeassistant/components/edl21/sensor.py
homeassistant/components/egardia/*
homeassistant/components/eight_sleep/__init__.py
homeassistant/components/eight_sleep/binary_sensor.py
homeassistant/components/eight_sleep/sensor.py
homeassistant/components/electric_kiwi/__init__.py
homeassistant/components/electric_kiwi/api.py
homeassistant/components/electric_kiwi/oauth2.py
homeassistant/components/electric_kiwi/sensor.py
homeassistant/components/electric_kiwi/coordinator.py
homeassistant/components/electric_kiwi/select.py
homeassistant/components/eliqonline/sensor.py
homeassistant/components/elkm1/__init__.py
homeassistant/components/elkm1/alarm_control_panel.py
@@ -282,7 +303,8 @@ omit =
homeassistant/components/elmax/alarm_control_panel.py
homeassistant/components/elmax/binary_sensor.py
homeassistant/components/elmax/common.py
homeassistant/components/elmax/binary_sensor.py
homeassistant/components/elmax/const.py
homeassistant/components/elmax/cover.py
homeassistant/components/elmax/switch.py
homeassistant/components/elv/*
homeassistant/components/emby/media_player.py
@@ -299,7 +321,13 @@ omit =
homeassistant/components/enocean/sensor.py
homeassistant/components/enocean/switch.py
homeassistant/components/enphase_envoy/__init__.py
homeassistant/components/enphase_envoy/binary_sensor.py
homeassistant/components/enphase_envoy/coordinator.py
homeassistant/components/enphase_envoy/entity.py
homeassistant/components/enphase_envoy/number.py
homeassistant/components/enphase_envoy/select.py
homeassistant/components/enphase_envoy/sensor.py
homeassistant/components/enphase_envoy/switch.py
homeassistant/components/entur_public_transport/*
homeassistant/components/environment_canada/__init__.py
homeassistant/components/environment_canada/camera.py
@@ -334,10 +362,12 @@ omit =
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/select.py
homeassistant/components/ezviz/sensor.py
homeassistant/components/ezviz/siren.py
homeassistant/components/ezviz/switch.py
homeassistant/components/ezviz/update.py
homeassistant/components/faa_delays/__init__.py
homeassistant/components/faa_delays/binary_sensor.py
homeassistant/components/faa_delays/coordinator.py
homeassistant/components/familyhub/camera.py
homeassistant/components/fastdotcom/*
homeassistant/components/ffmpeg/camera.py
@@ -345,6 +375,7 @@ omit =
homeassistant/components/fibaro/binary_sensor.py
homeassistant/components/fibaro/climate.py
homeassistant/components/fibaro/cover.py
homeassistant/components/fibaro/event.py
homeassistant/components/fibaro/light.py
homeassistant/components/fibaro/lock.py
homeassistant/components/fibaro/sensor.py
@@ -362,7 +393,6 @@ omit =
homeassistant/components/firmata/pin.py
homeassistant/components/firmata/sensor.py
homeassistant/components/firmata/switch.py
homeassistant/components/fitbit/*
homeassistant/components/fivem/__init__.py
homeassistant/components/fivem/binary_sensor.py
homeassistant/components/fivem/coordinator.py
@@ -399,7 +429,6 @@ omit =
homeassistant/components/freebox/device_tracker.py
homeassistant/components/freebox/home_base.py
homeassistant/components/freebox/router.py
homeassistant/components/freebox/sensor.py
homeassistant/components/freebox/switch.py
homeassistant/components/fritz/common.py
homeassistant/components/fritz/device_tracker.py
@@ -415,6 +444,7 @@ omit =
homeassistant/components/garadget/cover.py
homeassistant/components/garages_amsterdam/__init__.py
homeassistant/components/garages_amsterdam/binary_sensor.py
homeassistant/components/garages_amsterdam/entity.py
homeassistant/components/garages_amsterdam/sensor.py
homeassistant/components/gc100/*
homeassistant/components/geniushub/*
@@ -511,7 +541,6 @@ omit =
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hvv_departures/binary_sensor.py
homeassistant/components/hvv_departures/sensor.py
homeassistant/components/hydrawise/*
homeassistant/components/ialarm/alarm_control_panel.py
homeassistant/components/iammeter/sensor.py
homeassistant/components/iaqualink/binary_sensor.py
@@ -528,7 +557,6 @@ omit =
homeassistant/components/ifttt/alarm_control_panel.py
homeassistant/components/iglo/light.py
homeassistant/components/ihc/*
homeassistant/components/imap_email_content/sensor.py
homeassistant/components/incomfort/*
homeassistant/components/insteon/binary_sensor.py
homeassistant/components/insteon/climate.py
@@ -637,6 +665,7 @@ omit =
homeassistant/components/lg_soundbar/__init__.py
homeassistant/components/lg_soundbar/media_player.py
homeassistant/components/life360/__init__.py
homeassistant/components/life360/button.py
homeassistant/components/life360/coordinator.py
homeassistant/components/life360/device_tracker.py
homeassistant/components/lightwave/*
@@ -686,11 +715,13 @@ omit =
homeassistant/components/mailgun/notify.py
homeassistant/components/map/*
homeassistant/components/mastodon/notify.py
homeassistant/components/matrix/*
homeassistant/components/matrix/__init__.py
homeassistant/components/matrix/notify.py
homeassistant/components/matter/__init__.py
homeassistant/components/meater/__init__.py
homeassistant/components/meater/sensor.py
homeassistant/components/media_extractor/*
homeassistant/components/medcom_ble/__init__.py
homeassistant/components/medcom_ble/sensor.py
homeassistant/components/mediaroom/media_player.py
homeassistant/components/melcloud/__init__.py
homeassistant/components/melcloud/climate.py
@@ -708,16 +739,10 @@ omit =
homeassistant/components/meteoclimatic/__init__.py
homeassistant/components/meteoclimatic/sensor.py
homeassistant/components/meteoclimatic/weather.py
homeassistant/components/metoffice/sensor.py
homeassistant/components/metoffice/weather.py
homeassistant/components/microsoft/tts.py
homeassistant/components/mikrotik/hub.py
homeassistant/components/mill/climate.py
homeassistant/components/mill/sensor.py
homeassistant/components/minecraft_server/__init__.py
homeassistant/components/minecraft_server/binary_sensor.py
homeassistant/components/minecraft_server/entity.py
homeassistant/components/minecraft_server/sensor.py
homeassistant/components/minio/minio_helper.py
homeassistant/components/mjpeg/camera.py
homeassistant/components/mjpeg/util.py
@@ -731,7 +756,9 @@ omit =
homeassistant/components/moehlenhoff_alpha2/climate.py
homeassistant/components/moehlenhoff_alpha2/sensor.py
homeassistant/components/motion_blinds/__init__.py
homeassistant/components/motion_blinds/coordinator.py
homeassistant/components/motion_blinds/cover.py
homeassistant/components/motion_blinds/entity.py
homeassistant/components/motion_blinds/sensor.py
homeassistant/components/mpd/media_player.py
homeassistant/components/mqtt_room/sensor.py
@@ -756,6 +783,7 @@ omit =
homeassistant/components/mystrom/binary_sensor.py
homeassistant/components/mystrom/light.py
homeassistant/components/mystrom/switch.py
homeassistant/components/mystrom/sensor.py
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/__init__.py
homeassistant/components/nanoleaf/button.py
@@ -764,15 +792,18 @@ omit =
homeassistant/components/neato/__init__.py
homeassistant/components/neato/api.py
homeassistant/components/neato/camera.py
homeassistant/components/neato/entity.py
homeassistant/components/neato/hub.py
homeassistant/components/neato/sensor.py
homeassistant/components/neato/switch.py
homeassistant/components/neato/vacuum.py
homeassistant/components/neato/button.py
homeassistant/components/nederlandse_spoorwegen/sensor.py
homeassistant/components/netdata/sensor.py
homeassistant/components/netgear/__init__.py
homeassistant/components/netgear/button.py
homeassistant/components/netgear/device_tracker.py
homeassistant/components/netgear/entity.py
homeassistant/components/netgear/router.py
homeassistant/components/netgear/sensor.py
homeassistant/components/netgear/switch.py
@@ -793,7 +824,6 @@ omit =
homeassistant/components/nibe_heatpump/__init__.py
homeassistant/components/nibe_heatpump/climate.py
homeassistant/components/nibe_heatpump/binary_sensor.py
homeassistant/components/nibe_heatpump/number.py
homeassistant/components/nibe_heatpump/select.py
homeassistant/components/nibe_heatpump/sensor.py
homeassistant/components/nibe_heatpump/switch.py
@@ -825,6 +855,7 @@ omit =
homeassistant/components/obihai/connectivity.py
homeassistant/components/obihai/sensor.py
homeassistant/components/octoprint/__init__.py
homeassistant/components/octoprint/coordinator.py
homeassistant/components/oem/climate.py
homeassistant/components/ohmconnect/sensor.py
homeassistant/components/ombi/*
@@ -855,11 +886,11 @@ omit =
homeassistant/components/opengarage/cover.py
homeassistant/components/opengarage/entity.py
homeassistant/components/opengarage/sensor.py
homeassistant/components/openhardwaremonitor/sensor.py
homeassistant/components/openhome/__init__.py
homeassistant/components/openhome/const.py
homeassistant/components/openhome/media_player.py
homeassistant/components/opensensemap/air_quality.py
homeassistant/components/opensky/sensor.py
homeassistant/components/opentherm_gw/__init__.py
homeassistant/components/opentherm_gw/binary_sensor.py
homeassistant/components/opentherm_gw/climate.py
@@ -921,6 +952,7 @@ omit =
homeassistant/components/ping/__init__.py
homeassistant/components/ping/binary_sensor.py
homeassistant/components/ping/device_tracker.py
homeassistant/components/ping/helpers.py
homeassistant/components/pioneer/media_player.py
homeassistant/components/plaato/__init__.py
homeassistant/components/plaato/binary_sensor.py
@@ -937,6 +969,8 @@ omit =
homeassistant/components/point/sensor.py
homeassistant/components/poolsense/__init__.py
homeassistant/components/poolsense/binary_sensor.py
homeassistant/components/poolsense/coordinator.py
homeassistant/components/poolsense/entity.py
homeassistant/components/poolsense/sensor.py
homeassistant/components/powerwall/__init__.py
homeassistant/components/progettihwsw/__init__.py
@@ -955,6 +989,7 @@ omit =
homeassistant/components/pushsafer/notify.py
homeassistant/components/pyload/sensor.py
homeassistant/components/qbittorrent/__init__.py
homeassistant/components/qbittorrent/coordinator.py
homeassistant/components/qbittorrent/sensor.py
homeassistant/components/qnap/__init__.py
homeassistant/components/qnap/coordinator.py
@@ -987,8 +1022,13 @@ omit =
homeassistant/components/rainmachine/util.py
homeassistant/components/renson/__init__.py
homeassistant/components/renson/const.py
homeassistant/components/renson/coordinator.py
homeassistant/components/renson/entity.py
homeassistant/components/renson/sensor.py
homeassistant/components/renson/button.py
homeassistant/components/renson/fan.py
homeassistant/components/renson/binary_sensor.py
homeassistant/components/renson/number.py
homeassistant/components/raspyrfm/*
homeassistant/components/recollect_waste/sensor.py
homeassistant/components/recorder/repack.py
@@ -1049,9 +1089,10 @@ omit =
homeassistant/components/saj/sensor.py
homeassistant/components/satel_integra/*
homeassistant/components/schluter/*
homeassistant/components/screenlogic/__init__.py
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/coordinator.py
homeassistant/components/screenlogic/const.py
homeassistant/components/screenlogic/entity.py
homeassistant/components/screenlogic/light.py
homeassistant/components/screenlogic/number.py
@@ -1071,7 +1112,6 @@ omit =
homeassistant/components/sesame/lock.py
homeassistant/components/seven_segments/image_processing.py
homeassistant/components/seventeentrack/sensor.py
homeassistant/components/shiftr/*
homeassistant/components/shodan/sensor.py
homeassistant/components/sia/__init__.py
homeassistant/components/sia/alarm_control_panel.py
@@ -1115,6 +1155,7 @@ omit =
homeassistant/components/smarty/*
homeassistant/components/sms/__init__.py
homeassistant/components/sms/const.py
homeassistant/components/sms/coordinator.py
homeassistant/components/sms/gateway.py
homeassistant/components/sms/notify.py
homeassistant/components/sms/sensor.py
@@ -1131,6 +1172,7 @@ omit =
homeassistant/components/solaredge_local/sensor.py
homeassistant/components/solarlog/__init__.py
homeassistant/components/solarlog/sensor.py
homeassistant/components/solarlog/coordinator.py
homeassistant/components/solax/__init__.py
homeassistant/components/solax/sensor.py
homeassistant/components/soma/__init__.py
@@ -1167,7 +1209,13 @@ omit =
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/starlink/__init__.py
homeassistant/components/starlink/binary_sensor.py
homeassistant/components/starlink/button.py
homeassistant/components/starlink/coordinator.py
homeassistant/components/starlink/device_tracker.py
homeassistant/components/starlink/sensor.py
homeassistant/components/starlink/switch.py
homeassistant/components/starline/__init__.py
homeassistant/components/starline/account.py
homeassistant/components/starline/binary_sensor.py
@@ -1217,6 +1265,10 @@ omit =
homeassistant/components/switchbot/sensor.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switchbot/lock.py
homeassistant/components/switchbot_cloud/climate.py
homeassistant/components/switchbot_cloud/coordinator.py
homeassistant/components/switchbot_cloud/entity.py
homeassistant/components/switchbot_cloud/switch.py
homeassistant/components/switchmate/switch.py
homeassistant/components/syncthing/__init__.py
homeassistant/components/syncthing/sensor.py
@@ -1239,6 +1291,8 @@ omit =
homeassistant/components/system_bridge/__init__.py
homeassistant/components/system_bridge/binary_sensor.py
homeassistant/components/system_bridge/coordinator.py
homeassistant/components/system_bridge/media_player.py
homeassistant/components/system_bridge/notify.py
homeassistant/components/system_bridge/sensor.py
homeassistant/components/systemmonitor/sensor.py
homeassistant/components/tado/__init__.py
@@ -1250,6 +1304,8 @@ omit =
homeassistant/components/tank_utility/sensor.py
homeassistant/components/tankerkoenig/__init__.py
homeassistant/components/tankerkoenig/binary_sensor.py
homeassistant/components/tankerkoenig/coordinator.py
homeassistant/components/tankerkoenig/entity.py
homeassistant/components/tankerkoenig/sensor.py
homeassistant/components/tapsaff/binary_sensor.py
homeassistant/components/tautulli/__init__.py
@@ -1311,9 +1367,6 @@ omit =
homeassistant/components/tplink_omada/__init__.py
homeassistant/components/tplink_omada/binary_sensor.py
homeassistant/components/tplink_omada/controller.py
homeassistant/components/tplink_omada/coordinator.py
homeassistant/components/tplink_omada/entity.py
homeassistant/components/tplink_omada/switch.py
homeassistant/components/tplink_omada/update.py
homeassistant/components/traccar/device_tracker.py
homeassistant/components/tractive/__init__.py
@@ -1333,9 +1386,12 @@ omit =
homeassistant/components/trafikverket_train/__init__.py
homeassistant/components/trafikverket_train/coordinator.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_train/util.py
homeassistant/components/trafikverket_weatherstation/__init__.py
homeassistant/components/trafikverket_weatherstation/coordinator.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/__init__.py
homeassistant/components/transmission/coordinator.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
homeassistant/components/travisci/sensor.py
@@ -1410,7 +1466,9 @@ omit =
homeassistant/components/vicare/binary_sensor.py
homeassistant/components/vicare/button.py
homeassistant/components/vicare/climate.py
homeassistant/components/vicare/entity.py
homeassistant/components/vicare/sensor.py
homeassistant/components/vicare/utils.py
homeassistant/components/vicare/water_heater.py
homeassistant/components/vilfo/__init__.py
homeassistant/components/vilfo/sensor.py
@@ -1418,6 +1476,12 @@ omit =
homeassistant/components/vlc/media_player.py
homeassistant/components/vlc_telnet/__init__.py
homeassistant/components/vlc_telnet/media_player.py
homeassistant/components/vodafone_station/__init__.py
homeassistant/components/vodafone_station/button.py
homeassistant/components/vodafone_station/const.py
homeassistant/components/vodafone_station/coordinator.py
homeassistant/components/vodafone_station/device_tracker.py
homeassistant/components/vodafone_station/sensor.py
homeassistant/components/volkszaehler/sensor.py
homeassistant/components/volumio/__init__.py
homeassistant/components/volumio/browse_media.py
@@ -1438,6 +1502,9 @@ omit =
homeassistant/components/watson_tts/tts.py
homeassistant/components/watttime/__init__.py
homeassistant/components/watttime/sensor.py
homeassistant/components/weatherflow/__init__.py
homeassistant/components/weatherflow/const.py
homeassistant/components/weatherflow/sensor.py
homeassistant/components/wiffi/__init__.py
homeassistant/components/wiffi/binary_sensor.py
homeassistant/components/wiffi/sensor.py
@@ -1487,7 +1554,6 @@ omit =
homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yale_smart_alarm/binary_sensor.py
homeassistant/components/yale_smart_alarm/button.py
homeassistant/components/yale_smart_alarm/coordinator.py
homeassistant/components/yale_smart_alarm/entity.py
homeassistant/components/yale_smart_alarm/lock.py
homeassistant/components/yalexs_ble/__init__.py
@@ -1502,6 +1568,9 @@ omit =
homeassistant/components/yamaha_musiccast/select.py
homeassistant/components/yamaha_musiccast/switch.py
homeassistant/components/yandex_transport/sensor.py
homeassistant/components/yardian/__init__.py
homeassistant/components/yardian/coordinator.py
homeassistant/components/yardian/switch.py
homeassistant/components/yeelightsunflower/light.py
homeassistant/components/yi/camera.py
homeassistant/components/yolink/__init__.py
+17 -20
View File
@@ -24,12 +24,12 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -56,10 +56,10 @@ jobs:
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -98,7 +98,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
@@ -124,7 +124,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -190,14 +190,14 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2023.06.1
uses: home-assistant/builder@2023.09.0
with:
args: |
$BUILD_ARGS \
@@ -205,8 +205,6 @@ jobs:
--cosign \
--target /data \
--generic ${{ needs.init.outputs.version }}
env:
CAS_API_KEY: ${{ secrets.CAS_TOKEN }}
- name: Archive translations
shell: bash
@@ -251,9 +249,10 @@ jobs:
- raspberrypi4-64
- tinker
- yellow
- green
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set build additional args
run: |
@@ -267,22 +266,20 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2023.06.1
uses: home-assistant/builder@2023.09.0
with:
args: |
$BUILD_ARGS \
--target /data/machine \
--cosign \
--machine "${{ needs.init.outputs.version }}=${{ matrix.machine }}"
env:
CAS_API_KEY: ${{ secrets.CAS_TOKEN }}
publish_ha:
name: Publish version files
@@ -292,7 +289,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -330,21 +327,21 @@ jobs:
id-token: write
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Install Cosign
uses: sigstore/cosign-installer@v3.1.1
uses: sigstore/cosign-installer@v3.1.2
with:
cosign-release: "v2.0.2"
- name: Login to DockerHub
uses: docker/login-action@v2.2.0
uses: docker/login-action@v3.0.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
+165 -63
View File
@@ -19,6 +19,10 @@ on:
description: "Skip pytest"
default: false
type: boolean
skip-coverage:
description: "Skip coverage"
default: false
type: boolean
pylint-only:
description: "Only run pylint"
default: false
@@ -31,19 +35,22 @@ on:
env:
CACHE_VERSION: 5
PIP_CACHE_VERSION: 4
MYPY_CACHE_VERSION: 4
HA_SHORT_VERSION: 2023.8
MYPY_CACHE_VERSION: 5
BLACK_CACHE_VERSION: 1
HA_SHORT_VERSION: "2023.11"
DEFAULT_PYTHON: "3.11"
ALL_PYTHON_VERSIONS: "['3.11']"
ALL_PYTHON_VERSIONS: "['3.11', '3.12']"
# 10.3 is the oldest supported version
# - 10.3.32 is the version currently shipped with Synology (as of 17 Feb 2022)
# 10.6 is the current long-term-support
# - 10.6.10 is the version currently shipped with the Add-on (as of 31 Jan 2023)
# 10.10 is the latest short-term-support
# - 10.10.3 is the latest (as of 6 Feb 2023)
# 10.11 is the latest long-term-support
# - 10.11.2 is the version currently shipped with Synology (as of 11 Oct 2023)
# mysql 8.0.32 does not always behave the same as MariaDB
# and some queries that work on MariaDB do not work on MySQL
MARIADB_VERSIONS: "['mariadb:10.3.32','mariadb:10.6.10','mariadb:10.10.3','mysql:8.0.32']"
MARIADB_VERSIONS: "['mariadb:10.3.32','mariadb:10.6.10','mariadb:10.10.3','mariadb:10.11.2','mysql:8.0.32']"
# 12 is the oldest supported version
# - 12.14 is the latest (as of 9 Feb 2023)
# 15 is the latest version
@@ -51,6 +58,7 @@ env:
POSTGRESQL_VERSIONS: "['postgres:12.14','postgres:15.2']"
PRE_COMMIT_CACHE: ~/.cache/pre-commit
PIP_CACHE: /tmp/pip-cache
BLACK_CACHE: /tmp/black-cache
SQLALCHEMY_WARN_20: 1
PYTHONASYNCIODEBUG: 1
HASS_CI: 1
@@ -79,10 +87,11 @@ jobs:
test_groups: ${{ steps.info.outputs.test_groups }}
tests_glob: ${{ steps.info.outputs.tests_glob }}
tests: ${{ steps.info.outputs.tests }}
skip_coverage: ${{ steps.info.outputs.skip_coverage }}
runs-on: ubuntu-22.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
@@ -127,6 +136,7 @@ jobs:
test_group_count=10
tests="[]"
tests_glob=""
skip_coverage=""
if [[ "${{ steps.integrations.outputs.changes }}" != "[]" ]];
then
@@ -176,6 +186,12 @@ jobs:
test_full_suite="true"
fi
if [[ "${{ github.event.inputs.skip-coverage }}" == "true" ]] \
|| [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci-skip-coverage') }}" == "true" ]];
then
skip_coverage="true"
fi
# Output & sent to GitHub Actions
echo "mariadb_groups: ${mariadb_groups}"
echo "mariadb_groups=${mariadb_groups}" >> $GITHUB_OUTPUT
@@ -195,6 +211,8 @@ jobs:
echo "tests=${tests}" >> $GITHUB_OUTPUT
echo "tests_glob: ${tests_glob}"
echo "tests_glob=${tests_glob}" >> $GITHUB_OUTPUT
echo "skip_coverage: ${skip_coverage}"
echo "skip_coverage=${skip_coverage}" >> $GITHUB_OUTPUT
pre-commit:
name: Prepare pre-commit base
@@ -206,16 +224,16 @@ jobs:
- info
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.3.1
uses: actions/cache@v3.3.2
with:
path: venv
key: >-
@@ -230,7 +248,7 @@ jobs:
pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.3.1
uses: actions/cache@v3.3.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -251,16 +269,23 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Generate partial black restore key
id: generate-black-key
run: |
black_version=$(cat requirements_test_pre_commit.txt | grep black | cut -d '=' -f 3)
echo "version=$black_version" >> $GITHUB_OUTPUT
echo "key=black-${{ env.BLACK_CACHE_VERSION }}-$black_version-${{
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/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -269,21 +294,36 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.pre-commit_cache_key }}
- name: Restore black cache
uses: actions/cache@v3.3.2
with:
path: ${{ env.BLACK_CACHE }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-black-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-black-${{
env.BLACK_CACHE_VERSION }}-${{ steps.generate-black-key.outputs.version }}-${{
env.HA_SHORT_VERSION }}-
- name: Run black (fully)
if: needs.info.outputs.test_full_suite == 'true'
env:
BLACK_CACHE_DIR: ${{ env.BLACK_CACHE }}
run: |
. venv/bin/activate
pre-commit run --hook-stage manual black --all-files --show-diff-on-failure
- name: Run black (partially)
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
env:
BLACK_CACHE_DIR: ${{ env.BLACK_CACHE }}
run: |
. venv/bin/activate
shopt -s globstar
@@ -297,16 +337,16 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -315,7 +355,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -346,16 +386,16 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -364,7 +404,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -440,10 +480,10 @@ jobs:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -454,7 +494,7 @@ 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@v3.3.1
uses: actions/cache@v3.3.2
with:
path: venv
lookup-only: true
@@ -463,7 +503,7 @@ jobs:
needs.info.outputs.python_cache_key }}
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.3.1
uses: actions/cache@v3.3.2
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -508,16 +548,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -540,16 +580,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -573,16 +613,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -617,10 +657,10 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -633,7 +673,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@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -641,7 +681,7 @@ jobs:
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore mypy cache
uses: actions/cache@v3.3.1
uses: actions/cache@v3.3.2
with:
path: .mypy_cache
key: >-
@@ -699,16 +739,16 @@ jobs:
bluez \
ffmpeg
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -734,9 +774,19 @@ jobs:
- name: Run pytest (fully)
if: needs.info.outputs.test_full_suite == 'true'
timeout-minutes: 60
id: pytest-full
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant")
cov_params+=(--cov-report=xml)
fi
python3 -X dev -m pytest \
-qq \
--timeout=9 \
@@ -745,37 +795,54 @@ jobs:
--dist=loadfile \
--test-group-count ${{ needs.info.outputs.test_group_count }} \
--test-group=${{ matrix.group }} \
--cov="homeassistant" \
--cov-report=xml \
${cov_params[@]} \
-o console_output_style=count \
-p no:sugar \
tests
tests \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Run pytest (partially)
if: needs.info.outputs.test_full_suite == 'false'
timeout-minutes: 10
id: pytest-partial
shell: bash
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
if [[ ! -f "tests/components/${{ matrix.group }}/__init__.py" ]]; then
echo "::error:: missing file tests/components/${{ matrix.group }}/__init__.py"
exit 1
fi
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant.components.${{ matrix.group }}")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
fi
python3 -X dev -m pytest \
-qq \
--timeout=9 \
-n auto \
--cov="homeassistant.components.${{ matrix.group }}" \
--cov-report=xml \
--cov-report=term-missing \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }}
tests/components/${{ matrix.group }} \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && (steps.pytest-full.conclusion == 'failure' || steps.pytest-partial.conclusion == 'failure')
uses: actions/upload-artifact@v3.1.2
with:
name: pytest-${{ github.run_number }}
path: pytest-*.txt
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v3.1.2
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
@@ -824,16 +891,16 @@ jobs:
ffmpeg \
libmariadb-dev-compat
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -862,18 +929,27 @@ jobs:
python3 -m script.translations develop --all
- name: Run pytest (partially)
timeout-minutes: 20
id: pytest-partial
shell: bash
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
mariadb=$(echo "${{ matrix.mariadb-group }}" | sed "s/:/-/g")
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant.components.recorder")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
fi
python3 -X dev -m pytest \
-qq \
--timeout=20 \
-n 1 \
--cov="homeassistant.components.recorder" \
--cov-report=xml \
--cov-report=term-missing \
${cov_params[@]} \
-o console_output_style=count \
--durations=10 \
-p no:sugar \
@@ -881,8 +957,16 @@ jobs:
tests/components/history \
tests/components/logbook \
tests/components/recorder \
tests/components/sensor
tests/components/sensor \
2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v3.1.2
with:
name: pytest-${{ github.run_number }}
path: pytest-*.txt
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v3.1.2
with:
name: coverage-${{ matrix.python-version }}-mariadb
@@ -931,16 +1015,16 @@ jobs:
ffmpeg \
postgresql-server-dev-14
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v3.3.1
uses: actions/cache/restore@v3.3.2
with:
path: venv
fail-on-cache-miss: true
@@ -969,18 +1053,27 @@ jobs:
python3 -m script.translations develop --all
- name: Run pytest (partially)
timeout-minutes: 20
id: pytest-partial
shell: bash
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
postgresql=$(echo "${{ matrix.postgresql-group }}" | sed "s/:/-/g")
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant.components.recorder")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
fi
python3 -X dev -m pytest \
-qq \
--timeout=9 \
-n 1 \
--cov="homeassistant.components.recorder" \
--cov-report=xml \
--cov-report=term-missing \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
--durations-min=10 \
@@ -989,8 +1082,16 @@ jobs:
tests/components/history \
tests/components/logbook \
tests/components/recorder \
tests/components/sensor
tests/components/sensor \
2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v3.1.2
with:
name: pytest-${{ github.run_number }}
path: pytest-*.txt
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v3.1.0
with:
name: coverage-${{ matrix.python-version }}-postgresql
@@ -1001,6 +1102,7 @@ jobs:
coverage:
name: Upload test coverage to Codecov
if: needs.info.outputs.skip_coverage != 'true'
runs-on: ubuntu-22.04
needs:
- info
@@ -1008,7 +1110,7 @@ jobs:
timeout-minutes: 10
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Download all coverage artifacts
uses: actions/download-artifact@v3
- name: Upload coverage to Codecov (full coverage)
+39
View File
@@ -0,0 +1,39 @@
name: "CodeQL"
# yamllint disable-line rule:truthy
on:
push:
branches:
- dev
- rc
- master
schedule:
- cron: "30 18 * * 4"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
timeout-minutes: 360
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
- name: Initialize CodeQL
uses: github/codeql-action/init@v2.22.4
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2.22.4
with:
category: "/language:python"
+1 -1
View File
@@ -42,7 +42,7 @@ jobs:
id: token
# Pinned to a specific version of the action for security reasons
# v1.7.0
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ secrets.ISSUE_TRIAGE_APP_ID }}
private_key: ${{ secrets.ISSUE_TRIAGE_APP_PEM }}
+2 -2
View File
@@ -19,10 +19,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
+45 -16
View File
@@ -10,8 +10,10 @@ on:
- dev
- rc
paths:
- "requirements.txt"
- ".github/workflows/wheels.yml"
- "homeassistant/package_constraints.txt"
- "requirements_all.txt"
- "requirements.txt"
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name}}
@@ -26,7 +28,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Get information
id: info
@@ -56,7 +58,7 @@ jobs:
echo "CI_BUILD=1"
echo "ENABLE_HEADLESS=1"
# Use C-Extension for sqlalchemy
# Use C-Extension for SQLAlchemy
echo "REQUIRE_SQLALCHEMY_CEXT=1"
) > .env_file
@@ -80,11 +82,11 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp311"]
abi: ["cp311", "cp312"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Download env_file
uses: actions/download-artifact@v3
@@ -97,7 +99,7 @@ jobs:
name: requirements_diff
- name: Build wheels
uses: home-assistant/wheels@2023.04.0
uses: home-assistant/wheels@2023.10.5
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -110,7 +112,7 @@ jobs:
requirements-diff: "requirements_diff.txt"
requirements: "requirements.txt"
integrations_cp311:
integrations:
name: Build wheels ${{ matrix.abi }} for ${{ matrix.arch }}
if: github.repository_owner == 'home-assistant'
needs: init
@@ -118,11 +120,11 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp311"]
abi: ["cp311", "cp312"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.1
- name: Download env_file
uses: actions/download-artifact@v3
@@ -168,6 +170,18 @@ jobs:
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all.txt requirements_all.txt
- name: Create requirements for cython<3
run: |
# Some dependencies still require 'cython<3'
# and don't yet use isolated build environments.
# Build these first.
# grpcio: https://github.com/grpc/grpc/issues/33918
# pydantic: https://github.com/pydantic/pydantic/issues/7689
touch requirements_old-cython.txt
cat homeassistant/package_constraints.txt | grep 'grpcio==' >> requirements_old-cython.txt
cat homeassistant/package_constraints.txt | grep 'pydantic==' >> requirements_old-cython.txt
- name: Adjust build env
run: |
if [ "${{ matrix.arch }}" = "i386" ]; then
@@ -177,8 +191,8 @@ jobs:
# Do not pin numpy in wheels building
sed -i "/numpy/d" homeassistant/package_constraints.txt
- name: Build wheels (part 1)
uses: home-assistant/wheels@2023.04.0
- name: Build wheels (old cython)
uses: home-assistant/wheels@2023.10.5
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -186,13 +200,28 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;grpcio;sqlalchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_old-cython.txt"
pip: "'cython<3'"
- name: Build wheels (part 1)
uses: home-assistant/wheels@2023.10.5
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
arch: ${{ matrix.arch }}
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtaa"
- name: Build wheels (part 2)
uses: home-assistant/wheels@2023.04.0
uses: home-assistant/wheels@2023.10.5
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -200,13 +229,13 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;grpcio;sqlalchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtab"
- name: Build wheels (part 3)
uses: home-assistant/wheels@2023.04.0
uses: home-assistant/wheels@2023.10.5
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -214,7 +243,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;grpcio;sqlalchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtac"
+1 -3
View File
@@ -67,6 +67,7 @@ htmlcov/
test-reports/
test-results.xml
test-output.xml
pytest-*.txt
# Translations
*.mo
@@ -110,9 +111,6 @@ virtualization/vagrant/config
!.vscode/tasks.json
.env
# Built docs
docs/build
# Windows Explorer
desktop.ini
/home-assistant.pyproj
+1
View File
@@ -3,3 +3,4 @@ ignored:
- DL3008
- DL3013
- DL3018
- DL3042
+6 -6
View File
@@ -1,12 +1,12 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.280
rev: v0.1.1
hooks:
- id: ruff
args:
- --fix
- repo: https://github.com/psf/black
rev: 23.7.0
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 23.10.0
hooks:
- id: black
args:
@@ -21,7 +21,7 @@ repos:
- --skip="./.*,*.csv,*.json,*.ambr"
- --quiet-level=2
exclude_types: [csv, json]
exclude: ^tests/fixtures/|homeassistant/generated/
exclude: ^tests/fixtures/|homeassistant/generated/|tests/components/.*/snapshots/
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
@@ -43,7 +43,7 @@ repos:
hooks:
- id: prettier
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.5.0
rev: v0.6.0
hooks:
# Run `python-typing-update` hook manually from time to time
# to update python typing syntax.
@@ -52,7 +52,7 @@ repos:
- id: python-typing-update
stages: [manual]
args:
- --py310-plus
- --py311-plus
- --force
- --keep-updates
files: ^(homeassistant|tests|script)/.+\.py$
-1
View File
@@ -1,7 +1,6 @@
*.md
.strict-typing
azure-*.yml
docs/source/_templates/*
homeassistant/components/*/translations/*.json
homeassistant/generated/*
tests/components/lidarr/fixtures/initialize.js
-14
View File
@@ -1,14 +0,0 @@
# .readthedocs.yml
version: 2
build:
os: ubuntu-20.04
tools:
python: "3.9"
python:
install:
- method: setuptools
path: .
- requirements: requirements_docs.txt
+26 -9
View File
@@ -53,6 +53,7 @@ homeassistant.components.airzone_cloud.*
homeassistant.components.aladdin_connect.*
homeassistant.components.alarm_control_panel.*
homeassistant.components.alert.*
homeassistant.components.alexa.*
homeassistant.components.amazon_polly.*
homeassistant.components.ambient_station.*
homeassistant.components.amcrest.*
@@ -87,6 +88,7 @@ homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.clickatell.*
homeassistant.components.clicksend.*
homeassistant.components.climate.*
homeassistant.components.cloud.*
homeassistant.components.configurator.*
homeassistant.components.cover.*
@@ -101,8 +103,10 @@ homeassistant.components.devolo_home_control.*
homeassistant.components.devolo_home_network.*
homeassistant.components.dhcp.*
homeassistant.components.diagnostics.*
homeassistant.components.discovergy.*
homeassistant.components.dlna_dmr.*
homeassistant.components.dnsip.*
homeassistant.components.doorbird.*
homeassistant.components.dormakaba_dkey.*
homeassistant.components.dsmr.*
homeassistant.components.dunehd.*
@@ -134,9 +138,11 @@ homeassistant.components.fully_kiosk.*
homeassistant.components.geo_location.*
homeassistant.components.geocaching.*
homeassistant.components.gios.*
homeassistant.components.glances.*
homeassistant.components.goalzero.*
homeassistant.components.google.*
homeassistant.components.google_sheets.*
homeassistant.components.gpsd.*
homeassistant.components.greeneye_monitor.*
homeassistant.components.group.*
homeassistant.components.guardian.*
@@ -147,18 +153,11 @@ homeassistant.components.history.*
homeassistant.components.homeassistant.exposed_entities
homeassistant.components.homeassistant.triggers.event
homeassistant.components.homeassistant_alerts.*
homeassistant.components.homeassistant_green.*
homeassistant.components.homeassistant_hardware.*
homeassistant.components.homeassistant_sky_connect.*
homeassistant.components.homeassistant_yellow.*
homeassistant.components.homekit
homeassistant.components.homekit.accessories
homeassistant.components.homekit.aidmanager
homeassistant.components.homekit.config_flow
homeassistant.components.homekit.diagnostics
homeassistant.components.homekit.logbook
homeassistant.components.homekit.type_locks
homeassistant.components.homekit.type_triggers
homeassistant.components.homekit.util
homeassistant.components.homekit.*
homeassistant.components.homekit_controller
homeassistant.components.homekit_controller.alarm_control_panel
homeassistant.components.homekit_controller.button
@@ -174,6 +173,7 @@ homeassistant.components.huawei_lte.*
homeassistant.components.hydrawise.*
homeassistant.components.hyperion.*
homeassistant.components.ibeacon.*
homeassistant.components.idasen_desk.*
homeassistant.components.image.*
homeassistant.components.image_processing.*
homeassistant.components.image_upload.*
@@ -181,7 +181,9 @@ homeassistant.components.imap.*
homeassistant.components.input_button.*
homeassistant.components.input_select.*
homeassistant.components.integration.*
homeassistant.components.ipp.*
homeassistant.components.iqvia.*
homeassistant.components.islamic_prayer_times.*
homeassistant.components.isy994.*
homeassistant.components.jellyfin.*
homeassistant.components.jewish_calendar.*
@@ -193,6 +195,7 @@ homeassistant.components.lacrosse.*
homeassistant.components.lacrosse_view.*
homeassistant.components.lametric.*
homeassistant.components.laundrify.*
homeassistant.components.lawn_mower.*
homeassistant.components.lcn.*
homeassistant.components.ld2410_ble.*
homeassistant.components.lidarr.*
@@ -201,14 +204,18 @@ homeassistant.components.light.*
homeassistant.components.litejet.*
homeassistant.components.litterrobot.*
homeassistant.components.local_ip.*
homeassistant.components.local_todo.*
homeassistant.components.lock.*
homeassistant.components.logbook.*
homeassistant.components.logger.*
homeassistant.components.london_underground.*
homeassistant.components.lookin.*
homeassistant.components.luftdaten.*
homeassistant.components.mailbox.*
homeassistant.components.mastodon.*
homeassistant.components.matrix.*
homeassistant.components.matter.*
homeassistant.components.media_extractor.*
homeassistant.components.media_player.*
homeassistant.components.media_source.*
homeassistant.components.metoffice.*
@@ -247,7 +254,10 @@ homeassistant.components.peco.*
homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.ping.*
homeassistant.components.plugwise.*
homeassistant.components.poolsense.*
homeassistant.components.powerwall.*
homeassistant.components.private_ble_device.*
homeassistant.components.proximity.*
homeassistant.components.prusalink.*
homeassistant.components.pure_energie.*
@@ -296,6 +306,7 @@ homeassistant.components.sonarr.*
homeassistant.components.speedtestdotnet.*
homeassistant.components.sql.*
homeassistant.components.ssdp.*
homeassistant.components.starlink.*
homeassistant.components.statistics.*
homeassistant.components.steamist.*
homeassistant.components.stookalert.*
@@ -304,11 +315,13 @@ homeassistant.components.sun.*
homeassistant.components.surepetcare.*
homeassistant.components.switch.*
homeassistant.components.switchbee.*
homeassistant.components.switchbot_cloud.*
homeassistant.components.switcher_kis.*
homeassistant.components.synology_dsm.*
homeassistant.components.systemmonitor.*
homeassistant.components.tag.*
homeassistant.components.tailscale.*
homeassistant.components.tami4.*
homeassistant.components.tautulli.*
homeassistant.components.tcp.*
homeassistant.components.text.*
@@ -321,9 +334,12 @@ homeassistant.components.tplink.*
homeassistant.components.tplink_omada.*
homeassistant.components.tractive.*
homeassistant.components.tradfri.*
homeassistant.components.trafikverket_camera.*
homeassistant.components.trafikverket_ferry.*
homeassistant.components.trafikverket_train.*
homeassistant.components.trafikverket_weatherstation.*
homeassistant.components.transmission.*
homeassistant.components.trend.*
homeassistant.components.tts.*
homeassistant.components.twentemilieu.*
homeassistant.components.unifi.*
@@ -346,6 +362,7 @@ homeassistant.components.webostv.*
homeassistant.components.websocket_api.*
homeassistant.components.wemo.*
homeassistant.components.whois.*
homeassistant.components.withings.*
homeassistant.components.wiz.*
homeassistant.components.wled.*
homeassistant.components.worldclock.*
+3 -3
View File
@@ -16,7 +16,7 @@
{
"label": "Pytest",
"type": "shell",
"command": "pytest --timeout=10 tests",
"command": "python3 -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": "pytest --timeout=10 --picked",
"command": "python3 -m pytest --timeout=10 --picked",
"group": {
"kind": "test",
"isDefault": true
@@ -75,7 +75,7 @@
"label": "Code Coverage",
"detail": "Generate code coverage report for a given integration.",
"type": "shell",
"command": "pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0 --numprocesses=auto",
"command": "python3 -m pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0 --numprocesses=auto",
"group": {
"kind": "test",
"isDefault": true
+114 -70
View File
@@ -19,8 +19,6 @@ build.json @home-assistant/supervisor
# Other code
/homeassistant/scripts/check_config.py @kellerza
/homeassistant/const.py @epenet
/homeassistant/util/ @epenet
# Integrations
/homeassistant/components/abode/ @shred86
@@ -49,10 +47,10 @@ build.json @home-assistant/supervisor
/tests/components/airq/ @Sibgatulin @dl2080
/homeassistant/components/airthings/ @danielhiversen
/tests/components/airthings/ @danielhiversen
/homeassistant/components/airthings_ble/ @vincegio
/tests/components/airthings_ble/ @vincegio
/homeassistant/components/airtouch4/ @LonePurpleWolf
/tests/components/airtouch4/ @LonePurpleWolf
/homeassistant/components/airthings_ble/ @vincegio @LaStrada
/tests/components/airthings_ble/ @vincegio @LaStrada
/homeassistant/components/airtouch4/ @samsinnamon
/tests/components/airtouch4/ @samsinnamon
/homeassistant/components/airvisual/ @bachya
/tests/components/airvisual/ @bachya
/homeassistant/components/airvisual_pro/ @bachya
@@ -102,8 +100,8 @@ build.json @home-assistant/supervisor
/tests/components/apprise/ @caronc
/homeassistant/components/aprs/ @PhilRW
/tests/components/aprs/ @PhilRW
/homeassistant/components/aranet/ @aschmitz
/tests/components/aranet/ @aschmitz
/homeassistant/components/aranet/ @aschmitz @thecode
/tests/components/aranet/ @aschmitz @thecode
/homeassistant/components/arcam_fmj/ @elupus
/tests/components/arcam_fmj/ @elupus
/homeassistant/components/arris_tg2492lg/ @vanbalken
@@ -207,10 +205,14 @@ build.json @home-assistant/supervisor
/tests/components/cloud/ @home-assistant/cloud
/homeassistant/components/cloudflare/ @ludeeus @ctalkington
/tests/components/cloudflare/ @ludeeus @ctalkington
/homeassistant/components/co2signal/ @jpbede
/tests/components/co2signal/ @jpbede
/homeassistant/components/coinbase/ @tombrien
/tests/components/coinbase/ @tombrien
/homeassistant/components/color_extractor/ @GenericStudent
/tests/components/color_extractor/ @GenericStudent
/homeassistant/components/comelit/ @chemelli74
/tests/components/comelit/ @chemelli74
/homeassistant/components/comfoconnect/ @michaelarnauts
/tests/components/comfoconnect/ @michaelarnauts
/homeassistant/components/command_line/ @gjohansson-ST
@@ -231,8 +233,8 @@ build.json @home-assistant/supervisor
/tests/components/counter/ @fabaff
/homeassistant/components/cover/ @home-assistant/core
/tests/components/cover/ @home-assistant/core
/homeassistant/components/cpuspeed/ @fabaff @frenck
/tests/components/cpuspeed/ @fabaff @frenck
/homeassistant/components/cpuspeed/ @fabaff
/tests/components/cpuspeed/ @fabaff
/homeassistant/components/crownstone/ @Crownstone @RicArch97
/tests/components/crownstone/ @Crownstone @RicArch97
/homeassistant/components/cups/ @fabaff
@@ -295,12 +297,10 @@ build.json @home-assistant/supervisor
/tests/components/dsmr/ @Robbie1221 @frenck
/homeassistant/components/dsmr_reader/ @depl0y @glodenox
/tests/components/dsmr_reader/ @depl0y @glodenox
/homeassistant/components/dunehd/ @bieniu
/tests/components/dunehd/ @bieniu
/homeassistant/components/duotecno/ @cereal2nd
/tests/components/duotecno/ @cereal2nd
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @Hummel95 @andarotajo
/tests/components/dwd_weather_warnings/ @runningman84 @stephan192 @Hummel95 @andarotajo
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @andarotajo
/tests/components/dwd_weather_warnings/ @runningman84 @stephan192 @andarotajo
/homeassistant/components/dynalite/ @ziv1234
/tests/components/dynalite/ @ziv1234
/homeassistant/components/eafm/ @Jc2k
@@ -309,6 +309,8 @@ build.json @home-assistant/supervisor
/tests/components/easyenergy/ @klaasnicolaas
/homeassistant/components/ecobee/ @marthoc @marcolivierarsenault
/tests/components/ecobee/ @marthoc @marcolivierarsenault
/homeassistant/components/ecoforest/ @pjanuario
/tests/components/ecoforest/ @pjanuario
/homeassistant/components/econet/ @vangorra @w1ll1am23
/tests/components/econet/ @vangorra @w1ll1am23
/homeassistant/components/ecovacs/ @OverloadUT @mib1185
@@ -317,8 +319,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/efergy/ @tkdrob
/tests/components/efergy/ @tkdrob
/homeassistant/components/egardia/ @jeroenterheerdt
/homeassistant/components/eight_sleep/ @mezz64 @raman325
/tests/components/eight_sleep/ @mezz64 @raman325
/homeassistant/components/electrasmart/ @jafar-atili
/tests/components/electrasmart/ @jafar-atili
/homeassistant/components/electric_kiwi/ @mikey0000
@@ -345,8 +345,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/enigma2/ @fbradyirl
/homeassistant/components/enocean/ @bdurrer
/tests/components/enocean/ @bdurrer
/homeassistant/components/enphase_envoy/ @gtdiehl
/tests/components/enphase_envoy/ @gtdiehl
/homeassistant/components/enphase_envoy/ @bdraco @cgarwood @dgomes @joostlek
/tests/components/enphase_envoy/ @bdraco @cgarwood @dgomes @joostlek
/homeassistant/components/entur_public_transport/ @hfurubotten
/homeassistant/components/environment_canada/ @gwww @michaeldavie
/tests/components/environment_canada/ @gwww @michaeldavie
@@ -358,8 +358,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/eq3btsmart/ @rytilahti
/homeassistant/components/escea/ @lazdavila
/tests/components/escea/ @lazdavila
/homeassistant/components/esphome/ @OttoWinter @jesserockz @bdraco
/tests/components/esphome/ @OttoWinter @jesserockz @bdraco
/homeassistant/components/esphome/ @OttoWinter @jesserockz @kbx81 @bdraco
/tests/components/esphome/ @OttoWinter @jesserockz @kbx81 @bdraco
/homeassistant/components/eufylife_ble/ @bdr99
/tests/components/eufylife_ble/ @bdr99
/homeassistant/components/event/ @home-assistant/core
@@ -388,6 +388,8 @@ build.json @home-assistant/supervisor
/tests/components/fireservicerota/ @cyberjunky
/homeassistant/components/firmata/ @DaAwesomeP
/tests/components/firmata/ @DaAwesomeP
/homeassistant/components/fitbit/ @allenporter
/tests/components/fitbit/ @allenporter
/homeassistant/components/fivem/ @Sander0542
/tests/components/fivem/ @Sander0542
/homeassistant/components/fjaraskupan/ @elupus
@@ -400,8 +402,8 @@ build.json @home-assistant/supervisor
/tests/components/flo/ @dmulcahey
/homeassistant/components/flume/ @ChrisMandich @bdraco @jeeftor
/tests/components/flume/ @ChrisMandich @bdraco @jeeftor
/homeassistant/components/flux_led/ @icemanch @bdraco
/tests/components/flux_led/ @icemanch @bdraco
/homeassistant/components/flux_led/ @icemanch
/tests/components/flux_led/ @icemanch
/homeassistant/components/forecast_solar/ @klaasnicolaas @frenck
/tests/components/forecast_solar/ @klaasnicolaas @frenck
/homeassistant/components/forked_daapd/ @uvjustin
@@ -419,8 +421,8 @@ build.json @home-assistant/supervisor
/tests/components/fritzbox/ @mib1185 @flabbamann
/homeassistant/components/fritzbox_callmonitor/ @cdce8p
/tests/components/fritzbox_callmonitor/ @cdce8p
/homeassistant/components/fronius/ @nielstron @farmio
/tests/components/fronius/ @nielstron @farmio
/homeassistant/components/fronius/ @farmio
/tests/components/fronius/ @farmio
/homeassistant/components/frontend/ @home-assistant/frontend
/tests/components/frontend/ @home-assistant/frontend
/homeassistant/components/frontier_silicon/ @wlcrs
@@ -475,6 +477,8 @@ build.json @home-assistant/supervisor
/tests/components/google_mail/ @tkdrob
/homeassistant/components/google_sheets/ @tkdrob
/tests/components/google_sheets/ @tkdrob
/homeassistant/components/google_tasks/ @allenporter
/tests/components/google_tasks/ @allenporter
/homeassistant/components/google_travel_time/ @eifinger
/tests/components/google_travel_time/ @eifinger
/homeassistant/components/govee_ble/ @bdraco @PierreAronnax
@@ -525,6 +529,8 @@ build.json @home-assistant/supervisor
/tests/components/homeassistant/ @home-assistant/core
/homeassistant/components/homeassistant_alerts/ @home-assistant/core
/tests/components/homeassistant_alerts/ @home-assistant/core
/homeassistant/components/homeassistant_green/ @home-assistant/core
/tests/components/homeassistant_green/ @home-assistant/core
/homeassistant/components/homeassistant_hardware/ @home-assistant/core
/tests/components/homeassistant_hardware/ @home-assistant/core
/homeassistant/components/homeassistant_sky_connect/ @home-assistant/core
@@ -556,6 +562,7 @@ build.json @home-assistant/supervisor
/homeassistant/components/hvv_departures/ @vigonotion
/tests/components/hvv_departures/ @vigonotion
/homeassistant/components/hydrawise/ @dknowles2 @ptcryan
/tests/components/hydrawise/ @dknowles2 @ptcryan
/homeassistant/components/hyperion/ @dermotduffy
/tests/components/hyperion/ @dermotduffy
/homeassistant/components/ialarm/ @RyuzakiKK
@@ -567,6 +574,8 @@ build.json @home-assistant/supervisor
/tests/components/ibeacon/ @bdraco
/homeassistant/components/icloud/ @Quentame @nzapponi
/tests/components/icloud/ @Quentame @nzapponi
/homeassistant/components/idasen_desk/ @abmantis
/tests/components/idasen_desk/ @abmantis
/homeassistant/components/ign_sismologia/ @exxamalte
/tests/components/ign_sismologia/ @exxamalte
/homeassistant/components/image/ @home-assistant/core
@@ -577,6 +586,8 @@ build.json @home-assistant/supervisor
/tests/components/image_upload/ @home-assistant/core
/homeassistant/components/imap/ @jbouwh
/tests/components/imap/ @jbouwh
/homeassistant/components/improv_ble/ @emontnemery
/tests/components/improv_ble/ @emontnemery
/homeassistant/components/incomfort/ @zxdavb
/homeassistant/components/influxdb/ @mdegat01
/tests/components/influxdb/ @mdegat01
@@ -608,8 +619,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/iotawatt/ @gtdiehl @jyavenard
/tests/components/iotawatt/ @gtdiehl @jyavenard
/homeassistant/components/iperf3/ @rohankapoorcom
/homeassistant/components/ipma/ @dgomes @abmantis
/tests/components/ipma/ @dgomes @abmantis
/homeassistant/components/ipma/ @dgomes
/tests/components/ipma/ @dgomes
/homeassistant/components/ipp/ @ctalkington
/tests/components/ipp/ @ctalkington
/homeassistant/components/iqvia/ @bachya
@@ -651,8 +662,8 @@ build.json @home-assistant/supervisor
/tests/components/kmtronic/ @dgomes
/homeassistant/components/knx/ @Julius2342 @farmio @marvin-w
/tests/components/knx/ @Julius2342 @farmio @marvin-w
/homeassistant/components/kodi/ @OnFreund @cgtobi
/tests/components/kodi/ @OnFreund @cgtobi
/homeassistant/components/kodi/ @OnFreund
/tests/components/kodi/ @OnFreund
/homeassistant/components/konnected/ @heythisisnate
/tests/components/konnected/ @heythisisnate
/homeassistant/components/kostal_plenticore/ @stegm
@@ -673,6 +684,8 @@ build.json @home-assistant/supervisor
/tests/components/launch_library/ @ludeeus @DurgNomis-drol
/homeassistant/components/laundrify/ @xLarry
/tests/components/laundrify/ @xLarry
/homeassistant/components/lawn_mower/ @home-assistant/core
/tests/components/lawn_mower/ @home-assistant/core
/homeassistant/components/lcn/ @alengwenus
/tests/components/lcn/ @alengwenus
/homeassistant/components/ld2410_ble/ @930913
@@ -684,8 +697,6 @@ build.json @home-assistant/supervisor
/tests/components/lidarr/ @tkdrob
/homeassistant/components/life360/ @pnbruckner
/tests/components/life360/ @pnbruckner
/homeassistant/components/lifx/ @bdraco
/tests/components/lifx/ @bdraco
/homeassistant/components/light/ @home-assistant/core
/tests/components/light/ @home-assistant/core
/homeassistant/components/linux_battery/ @fabaff
@@ -699,6 +710,8 @@ build.json @home-assistant/supervisor
/tests/components/local_calendar/ @allenporter
/homeassistant/components/local_ip/ @issacg
/tests/components/local_ip/ @issacg
/homeassistant/components/local_todo/ @allenporter
/tests/components/local_todo/ @allenporter
/homeassistant/components/lock/ @home-assistant/core
/tests/components/lock/ @home-assistant/core
/homeassistant/components/logbook/ @home-assistant/core
@@ -707,6 +720,8 @@ build.json @home-assistant/supervisor
/tests/components/logger/ @home-assistant/core
/homeassistant/components/logi_circle/ @evanjd
/tests/components/logi_circle/ @evanjd
/homeassistant/components/london_underground/ @jpbede
/tests/components/london_underground/ @jpbede
/homeassistant/components/lookin/ @ANMalko @bdraco
/tests/components/lookin/ @ANMalko @bdraco
/homeassistant/components/loqed/ @mikewoudenberg
@@ -723,12 +738,16 @@ build.json @home-assistant/supervisor
/homeassistant/components/lyric/ @timmo001
/tests/components/lyric/ @timmo001
/homeassistant/components/mastodon/ @fabaff
/homeassistant/components/matrix/ @PaarthShah
/tests/components/matrix/ @PaarthShah
/homeassistant/components/matter/ @home-assistant/matter
/tests/components/matter/ @home-assistant/matter
/homeassistant/components/mazda/ @bdr99
/tests/components/mazda/ @bdr99
/homeassistant/components/meater/ @Sotolotl @emontnemery
/tests/components/meater/ @Sotolotl @emontnemery
/homeassistant/components/medcom_ble/ @elafargue
/tests/components/medcom_ble/ @elafargue
/homeassistant/components/media_extractor/ @joostlek
/tests/components/media_extractor/ @joostlek
/homeassistant/components/media_player/ @home-assistant/core
/tests/components/media_player/ @home-assistant/core
/homeassistant/components/media_source/ @hunterjm
@@ -740,8 +759,8 @@ build.json @home-assistant/supervisor
/tests/components/melissa/ @kennedyshead
/homeassistant/components/melnor/ @vanstinator
/tests/components/melnor/ @vanstinator
/homeassistant/components/met/ @danielhiversen @thimic
/tests/components/met/ @danielhiversen @thimic
/homeassistant/components/met/ @danielhiversen
/tests/components/met/ @danielhiversen
/homeassistant/components/met_eireann/ @DylanGore
/tests/components/met_eireann/ @DylanGore
/homeassistant/components/meteo_france/ @hacf-fr @oncleben31 @Quentame
@@ -765,8 +784,8 @@ build.json @home-assistant/supervisor
/tests/components/moat/ @bdraco
/homeassistant/components/mobile_app/ @home-assistant/core
/tests/components/mobile_app/ @home-assistant/core
/homeassistant/components/modbus/ @adamchengtkc @janiversen @vzahradnik
/tests/components/modbus/ @adamchengtkc @janiversen @vzahradnik
/homeassistant/components/modbus/ @janiversen
/tests/components/modbus/ @janiversen
/homeassistant/components/modem_callerid/ @tkdrob
/tests/components/modem_callerid/ @tkdrob
/homeassistant/components/modern_forms/ @wonderslug
@@ -792,8 +811,8 @@ build.json @home-assistant/supervisor
/tests/components/mutesync/ @currentoor
/homeassistant/components/my/ @home-assistant/core
/tests/components/my/ @home-assistant/core
/homeassistant/components/myq/ @ehendrix23
/tests/components/myq/ @ehendrix23
/homeassistant/components/myq/ @ehendrix23 @Lash-L
/tests/components/myq/ @ehendrix23 @Lash-L
/homeassistant/components/mysensors/ @MartinHjelmare @functionpointer
/tests/components/mysensors/ @MartinHjelmare @functionpointer
/homeassistant/components/mystrom/ @fabaff
@@ -934,6 +953,8 @@ build.json @home-assistant/supervisor
/tests/components/picnic/ @corneyl
/homeassistant/components/pilight/ @trekky12
/tests/components/pilight/ @trekky12
/homeassistant/components/ping/ @jpbede
/tests/components/ping/ @jpbede
/homeassistant/components/plaato/ @JohNan
/tests/components/plaato/ @JohNan
/homeassistant/components/plex/ @jjlawren
@@ -948,6 +969,8 @@ build.json @home-assistant/supervisor
/tests/components/poolsense/ @haemishkyd
/homeassistant/components/powerwall/ @bdraco @jrester @daniel-simpson
/tests/components/powerwall/ @bdraco @jrester @daniel-simpson
/homeassistant/components/private_ble_device/ @Jc2k
/tests/components/private_ble_device/ @Jc2k
/homeassistant/components/profiler/ @bdraco
/tests/components/profiler/ @bdraco
/homeassistant/components/progettihwsw/ @ardaseremet
@@ -1016,6 +1039,8 @@ build.json @home-assistant/supervisor
/tests/components/recollect_waste/ @bachya
/homeassistant/components/recorder/ @home-assistant/core
/tests/components/recorder/ @home-assistant/core
/homeassistant/components/recovery_mode/ @home-assistant/core
/tests/components/recovery_mode/ @home-assistant/core
/homeassistant/components/rejseplanen/ @DarkFox
/homeassistant/components/remote/ @home-assistant/core
/tests/components/remote/ @home-assistant/core
@@ -1028,8 +1053,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/repairs/ @home-assistant/core
/tests/components/repairs/ @home-assistant/core
/homeassistant/components/repetier/ @MTrab @ShadowBr0ther
/homeassistant/components/rest/ @epenet
/tests/components/rest/ @epenet
/homeassistant/components/rflink/ @javicalle
/tests/components/rflink/ @javicalle
/homeassistant/components/rfxtrx/ @danielhiversen @elupus @RobBie1221
@@ -1048,8 +1071,8 @@ build.json @home-assistant/supervisor
/tests/components/roborock/ @humbertogontijo @Lash-L
/homeassistant/components/roku/ @ctalkington
/tests/components/roku/ @ctalkington
/homeassistant/components/roomba/ @pschmitt @cyr-ius @shenxn
/tests/components/roomba/ @pschmitt @cyr-ius @shenxn
/homeassistant/components/roomba/ @pschmitt @cyr-ius @shenxn @Xitee1
/tests/components/roomba/ @pschmitt @cyr-ius @shenxn @Xitee1
/homeassistant/components/roon/ @pavoni
/tests/components/roon/ @pavoni
/homeassistant/components/rpi_power/ @shenxn @swetoast
@@ -1058,8 +1081,8 @@ build.json @home-assistant/supervisor
/tests/components/rss_feed_template/ @home-assistant/core
/homeassistant/components/rtsp_to_webrtc/ @allenporter
/tests/components/rtsp_to_webrtc/ @allenporter
/homeassistant/components/ruckus_unleashed/ @gabe565
/tests/components/ruckus_unleashed/ @gabe565
/homeassistant/components/ruckus_unleashed/ @lanrat @ms264556 @gabe565
/tests/components/ruckus_unleashed/ @lanrat @ms264556 @gabe565
/homeassistant/components/ruuvi_gateway/ @akx
/tests/components/ruuvi_gateway/ @akx
/homeassistant/components/ruuvitag_ble/ @akx
@@ -1068,8 +1091,6 @@ build.json @home-assistant/supervisor
/tests/components/rympro/ @OnFreund @elad-bar @maorcc
/homeassistant/components/sabnzbd/ @shaiu
/tests/components/sabnzbd/ @shaiu
/homeassistant/components/safe_mode/ @home-assistant/core
/tests/components/safe_mode/ @home-assistant/core
/homeassistant/components/saj/ @fredericvl
/homeassistant/components/samsungtv/ @chemelli74 @epenet
/tests/components/samsungtv/ @chemelli74 @epenet
@@ -1077,9 +1098,11 @@ build.json @home-assistant/supervisor
/tests/components/scene/ @home-assistant/core
/homeassistant/components/schedule/ @home-assistant/core
/tests/components/schedule/ @home-assistant/core
/homeassistant/components/schlage/ @dknowles2
/tests/components/schlage/ @dknowles2
/homeassistant/components/schluter/ @prairieapps
/homeassistant/components/scrape/ @fabaff @gjohansson-ST @epenet
/tests/components/scrape/ @fabaff @gjohansson-ST @epenet
/homeassistant/components/scrape/ @fabaff @gjohansson-ST
/tests/components/scrape/ @fabaff @gjohansson-ST
/homeassistant/components/screenlogic/ @dieselrabbit @bdraco
/tests/components/screenlogic/ @dieselrabbit @bdraco
/homeassistant/components/script/ @home-assistant/core
@@ -1134,8 +1157,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/sky_hub/ @rogerselwyn
/homeassistant/components/skybell/ @tkdrob
/tests/components/skybell/ @tkdrob
/homeassistant/components/slack/ @tkdrob
/tests/components/slack/ @tkdrob
/homeassistant/components/slack/ @tkdrob @fletcherau
/tests/components/slack/ @tkdrob @fletcherau
/homeassistant/components/sleepiq/ @mfugate1 @kbickar
/tests/components/sleepiq/ @mfugate1 @kbickar
/homeassistant/components/slide/ @ualex73
@@ -1172,8 +1195,8 @@ build.json @home-assistant/supervisor
/tests/components/sonarr/ @ctalkington
/homeassistant/components/songpal/ @rytilahti @shenxn
/tests/components/songpal/ @rytilahti @shenxn
/homeassistant/components/sonos/ @cgtobi @jjlawren
/tests/components/sonos/ @cgtobi @jjlawren
/homeassistant/components/sonos/ @jjlawren
/tests/components/sonos/ @jjlawren
/homeassistant/components/soundtouch/ @kroimon
/tests/components/soundtouch/ @kroimon
/homeassistant/components/spaceapi/ @fabaff
@@ -1183,8 +1206,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/spider/ @peternijssen
/tests/components/spider/ @peternijssen
/homeassistant/components/splunk/ @Bre77
/homeassistant/components/spotify/ @frenck
/tests/components/spotify/ @frenck
/homeassistant/components/spotify/ @frenck @joostlek
/tests/components/spotify/ @frenck @joostlek
/homeassistant/components/sql/ @gjohansson-ST @dougiteixeira
/tests/components/sql/ @gjohansson-ST @dougiteixeira
/homeassistant/components/squeezebox/ @rajlaud
@@ -1226,8 +1249,10 @@ build.json @home-assistant/supervisor
/tests/components/switch_as_x/ @home-assistant/core
/homeassistant/components/switchbee/ @jafar-atili
/tests/components/switchbee/ @jafar-atili
/homeassistant/components/switchbot/ @bdraco @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/tests/components/switchbot/ @bdraco @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/homeassistant/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/tests/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/homeassistant/components/switchbot_cloud/ @SeraphicRav
/tests/components/switchbot_cloud/ @SeraphicRav
/homeassistant/components/switcher_kis/ @thecode
/tests/components/switcher_kis/ @thecode
/homeassistant/components/switchmate/ @danielhiversen @qiz-li
@@ -1246,6 +1271,8 @@ build.json @home-assistant/supervisor
/tests/components/tag/ @balloob @dmulcahey
/homeassistant/components/tailscale/ @frenck
/tests/components/tailscale/ @frenck
/homeassistant/components/tami4/ @Guy293
/tests/components/tami4/ @Guy293
/homeassistant/components/tankerkoenig/ @guillempages @mib1185
/tests/components/tankerkoenig/ @guillempages @mib1185
/homeassistant/components/tapsaff/ @bazwilliams
@@ -1280,6 +1307,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/time_date/ @fabaff
/tests/components/time_date/ @fabaff
/homeassistant/components/tmb/ @alemuro
/homeassistant/components/todo/ @home-assistant/core
/tests/components/todo/ @home-assistant/core
/homeassistant/components/todoist/ @boralyl
/tests/components/todoist/ @boralyl
/homeassistant/components/tolo/ @MatthiasLohr
@@ -1298,22 +1327,26 @@ build.json @home-assistant/supervisor
/tests/components/trace/ @home-assistant/core
/homeassistant/components/tractive/ @Danielhiversen @zhulik @bieniu
/tests/components/tractive/ @Danielhiversen @zhulik @bieniu
/homeassistant/components/trafikverket_camera/ @gjohansson-ST
/tests/components/trafikverket_camera/ @gjohansson-ST
/homeassistant/components/trafikverket_ferry/ @gjohansson-ST
/tests/components/trafikverket_ferry/ @gjohansson-ST
/homeassistant/components/trafikverket_train/ @endor-force @gjohansson-ST
/tests/components/trafikverket_train/ @endor-force @gjohansson-ST
/homeassistant/components/trafikverket_weatherstation/ @endor-force @gjohansson-ST
/tests/components/trafikverket_weatherstation/ @endor-force @gjohansson-ST
/homeassistant/components/trafikverket_train/ @gjohansson-ST
/tests/components/trafikverket_train/ @gjohansson-ST
/homeassistant/components/trafikverket_weatherstation/ @gjohansson-ST
/tests/components/trafikverket_weatherstation/ @gjohansson-ST
/homeassistant/components/transmission/ @engrbm87 @JPHutchins
/tests/components/transmission/ @engrbm87 @JPHutchins
/homeassistant/components/trend/ @jpbede
/tests/components/trend/ @jpbede
/homeassistant/components/tts/ @home-assistant/core @pvizeli
/tests/components/tts/ @home-assistant/core @pvizeli
/homeassistant/components/tuya/ @Tuya @zlinoliver @frenck
/tests/components/tuya/ @Tuya @zlinoliver @frenck
/homeassistant/components/twentemilieu/ @frenck
/tests/components/twentemilieu/ @frenck
/homeassistant/components/twinkly/ @dr1rrb @Robbie1221
/tests/components/twinkly/ @dr1rrb @Robbie1221
/homeassistant/components/twinkly/ @dr1rrb @Robbie1221 @Olen
/tests/components/twinkly/ @dr1rrb @Robbie1221 @Olen
/homeassistant/components/twitch/ @joostlek
/tests/components/twitch/ @joostlek
/homeassistant/components/ukraine_alarm/ @PaulAnnekov
@@ -1349,11 +1382,11 @@ build.json @home-assistant/supervisor
/homeassistant/components/velbus/ @Cereal2nd @brefra
/tests/components/velbus/ @Cereal2nd @brefra
/homeassistant/components/velux/ @Julius2342
/homeassistant/components/venstar/ @garbled1
/tests/components/venstar/ @garbled1
/homeassistant/components/verisure/ @frenck @niro1987
/tests/components/verisure/ @frenck @niro1987
/homeassistant/components/versasense/ @flamm3blemuff1n
/homeassistant/components/venstar/ @garbled1 @jhollowe
/tests/components/venstar/ @garbled1 @jhollowe
/homeassistant/components/verisure/ @frenck
/tests/components/verisure/ @frenck
/homeassistant/components/versasense/ @imstevenxyz
/homeassistant/components/version/ @ludeeus
/tests/components/version/ @ludeeus
/homeassistant/components/vesync/ @markperdue @webdjoe @thegardenmonkey
@@ -1365,6 +1398,8 @@ build.json @home-assistant/supervisor
/tests/components/vizio/ @raman325
/homeassistant/components/vlc_telnet/ @rodripf @MartinHjelmare
/tests/components/vlc_telnet/ @rodripf @MartinHjelmare
/homeassistant/components/vodafone_station/ @paoloantinori @chemelli74
/tests/components/vodafone_station/ @paoloantinori @chemelli74
/homeassistant/components/voip/ @balloob @synesthesiam
/tests/components/voip/ @balloob @synesthesiam
/homeassistant/components/volumio/ @OnFreund
@@ -1375,9 +1410,12 @@ build.json @home-assistant/supervisor
/tests/components/vulcan/ @Antoni-Czaplicki
/homeassistant/components/wake_on_lan/ @ntilley905
/tests/components/wake_on_lan/ @ntilley905
/homeassistant/components/wake_word/ @home-assistant/core @synesthesiam
/tests/components/wake_word/ @home-assistant/core @synesthesiam
/homeassistant/components/wallbox/ @hesselonline
/tests/components/wallbox/ @hesselonline
/homeassistant/components/waqi/ @andrey-git
/homeassistant/components/waqi/ @joostlek
/tests/components/waqi/ @joostlek
/homeassistant/components/water_heater/ @home-assistant/core
/tests/components/water_heater/ @home-assistant/core
/homeassistant/components/watson_tts/ @rutkai
@@ -1387,6 +1425,10 @@ build.json @home-assistant/supervisor
/tests/components/waze_travel_time/ @eifinger
/homeassistant/components/weather/ @home-assistant/core
/tests/components/weather/ @home-assistant/core
/homeassistant/components/weatherflow/ @natekspencer @jeeftor
/tests/components/weatherflow/ @natekspencer @jeeftor
/homeassistant/components/weatherkit/ @tjhorner
/tests/components/weatherkit/ @tjhorner
/homeassistant/components/webhook/ @home-assistant/core
/tests/components/webhook/ @home-assistant/core
/homeassistant/components/webostv/ @thecode
@@ -1404,8 +1446,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/wilight/ @leofig-rj
/tests/components/wilight/ @leofig-rj
/homeassistant/components/wirelesstag/ @sergeymaysak
/homeassistant/components/withings/ @vangorra
/tests/components/withings/ @vangorra
/homeassistant/components/withings/ @joostlek
/tests/components/withings/ @joostlek
/homeassistant/components/wiz/ @sbidy
/tests/components/wiz/ @sbidy
/homeassistant/components/wled/ @frenck
@@ -1438,6 +1480,8 @@ build.json @home-assistant/supervisor
/tests/components/yamaha_musiccast/ @vigonotion @micha91
/homeassistant/components/yandex_transport/ @rishatik92 @devbis
/tests/components/yandex_transport/ @rishatik92 @devbis
/homeassistant/components/yardian/ @h3l1o5
/tests/components/yardian/ @h3l1o5
/homeassistant/components/yeelight/ @zewelor @shenxn @starkillerOG @alexyao2015
/tests/components/yeelight/ @zewelor @shenxn @starkillerOG @alexyao2015
/homeassistant/components/yeelightsunflower/ @lindsaymarkward
+2 -17
View File
@@ -14,44 +14,29 @@ COPY requirements.txt homeassistant/
COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
RUN \
pip3 install \
--no-cache-dir \
--no-index \
--only-binary=:all: \
--find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements.txt
COPY requirements_all.txt home_assistant_frontend-* home_assistant_intents-* homeassistant/
RUN \
if ls homeassistant/home_assistant_frontend*.whl 1> /dev/null 2>&1; then \
pip3 install \
--no-cache-dir \
--no-index \
homeassistant/home_assistant_frontend-*.whl; \
pip3 install homeassistant/home_assistant_frontend-*.whl; \
fi \
&& if ls homeassistant/home_assistant_intents*.whl 1> /dev/null 2>&1; then \
pip3 install \
--no-cache-dir \
--no-index \
homeassistant/home_assistant_intents-*.whl; \
pip3 install homeassistant/home_assistant_intents-*.whl; \
fi \
&& \
LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" \
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000" \
pip3 install \
--no-cache-dir \
--no-index \
--only-binary=:all: \
--find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements_all.txt
## Setup Home Assistant Core
COPY . homeassistant/
RUN \
pip3 install \
--no-cache-dir \
--no-index \
--only-binary=:all: \
--find-links "${WHEELS_LINKS}" \
-e ./homeassistant \
&& python3 -m compileall \
homeassistant/homeassistant
+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:2023.07.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2023.07.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2023.07.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2023.07.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2023.07.0
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2023.10.1
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2023.10.1
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2023.10.1
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2023.10.1
i386: ghcr.io/home-assistant/i386-homeassistant-base:2023.10.1
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
-230
View File
@@ -1,230 +0,0 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " livehtml to make standalone HTML files via sphinx-autobuild"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " epub3 to make an epub3"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@echo " dummy to check syntax errors of document sources"
.PHONY: clean
clean:
rm -rf $(BUILDDIR)/*
.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: livehtml
livehtml:
sphinx-autobuild -z ../homeassistant/ --port 0 -B -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
.PHONY: dirhtml
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Home-Assistant.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Home-Assistant.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Home-Assistant"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Home-Assistant"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: epub3
epub3:
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
@echo
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
.PHONY: dummy
dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."
View File
-281
View File
@@ -1,281 +0,0 @@
@ECHO OFF
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
if "%1" == "" goto help
if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. dirhtml to make HTML files named index.html in directories
echo. singlehtml to make a single large HTML file
echo. pickle to make pickle files
echo. json to make JSON files
echo. htmlhelp to make HTML files and a HTML help project
echo. qthelp to make HTML files and a qthelp project
echo. devhelp to make HTML files and a Devhelp project
echo. epub to make an epub
echo. epub3 to make an epub3
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
echo. text to make text files
echo. man to make manual pages
echo. texinfo to make Texinfo files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. xml to make Docutils-native XML files
echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
echo. coverage to run coverage check of the documentation if enabled
echo. dummy to check syntax errors of document sources
goto end
)
if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 1>NUL 2>NUL
if errorlevel 9009 goto sphinx_python
goto sphinx_ok
:sphinx_python
set SPHINXBUILD=python -m sphinx.__init__
%SPHINXBUILD% 2> nul
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
:sphinx_ok
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)
if "%1" == "dirhtml" (
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
goto end
)
if "%1" == "singlehtml" (
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
goto end
)
if "%1" == "pickle" (
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the pickle files.
goto end
)
if "%1" == "json" (
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the JSON files.
goto end
)
if "%1" == "htmlhelp" (
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run HTML Help Workshop with the ^
.hhp project file in %BUILDDIR%/htmlhelp.
goto end
)
if "%1" == "qthelp" (
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Home-Assistant.qhcp
echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Home-Assistant.ghc
goto end
)
if "%1" == "devhelp" (
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished.
goto end
)
if "%1" == "epub" (
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub file is in %BUILDDIR%/epub.
goto end
)
if "%1" == "epub3" (
%SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub3 file is in %BUILDDIR%/epub3.
goto end
)
if "%1" == "latex" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
if errorlevel 1 exit /b 1
echo.
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdf" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdfja" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf-ja
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "text" (
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The text files are in %BUILDDIR%/text.
goto end
)
if "%1" == "man" (
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The manual pages are in %BUILDDIR%/man.
goto end
)
if "%1" == "texinfo" (
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
goto end
)
if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)
if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)
if "%1" == "doctest" (
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
if errorlevel 1 exit /b 1
echo.
echo.Testing of doctests in the sources finished, look at the ^
results in %BUILDDIR%/doctest/output.txt.
goto end
)
if "%1" == "coverage" (
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
if errorlevel 1 exit /b 1
echo.
echo.Testing of coverage in the sources finished, look at the ^
results in %BUILDDIR%/coverage/python.txt.
goto end
)
if "%1" == "xml" (
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The XML files are in %BUILDDIR%/xml.
goto end
)
if "%1" == "pseudoxml" (
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
goto end
)
if "%1" == "dummy" (
%SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy
if errorlevel 1 exit /b 1
echo.
echo.Build finished. Dummy builder generates no files.
goto end
)
:end
Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

-45
View File
@@ -1,45 +0,0 @@
"""Sphinx extension for ReadTheDocs-style "Edit on GitHub" links on the sidebar.
Loosely based on https://github.com/astropy/astropy/pull/347
"""
import os
import warnings
__licence__ = "BSD (3 clause)"
def get_github_url(app, view, path):
"""Build the GitHub URL."""
return (
f"https://github.com/{app.config.edit_on_github_project}/"
f"{view}/{app.config.edit_on_github_branch}/"
f"{app.config.edit_on_github_src_path}{path}"
)
def html_page_context(app, pagename, templatename, context, doctree):
"""Build the HTML page."""
if templatename != "page.html":
return
if not app.config.edit_on_github_project:
warnings.warn("edit_on_github_project not specified")
return
if not doctree:
warnings.warn("doctree is None")
return
path = os.path.relpath(doctree.get("source"), app.builder.srcdir)
show_url = get_github_url(app, "blob", path)
edit_url = get_github_url(app, "edit", path)
context["show_on_github_url"] = show_url
context["edit_on_github_url"] = edit_url
def setup(app):
"""Set up the app."""
app.add_config_value("edit_on_github_project", "", True)
app.add_config_value("edit_on_github_branch", "master", True)
app.add_config_value("edit_on_github_src_path", "", True) # 'eg' "docs/"
app.connect("html-page-context", html_page_context)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

-6
View File
@@ -1,6 +0,0 @@
<ul>
<li><a href="https://home-assistant.io/">Homepage</a></li>
<li><a href="https://community.home-assistant.io">Community Forums</a></li>
<li><a href="https://github.com/home-assistant/core">GitHub</a></li>
<li><a href="https://discord.gg/c5DvZ4e">Discord</a></li>
</ul>
-13
View File
@@ -1,13 +0,0 @@
{%- if show_source and has_source and sourcename %}
<h3>{{ _('This Page') }}</h3>
<ul class="this-page-menu">
{%- if show_on_github_url %}
<li><a href="{{ show_on_github_url }}"
rel="nofollow">{{ _('Show on GitHub') }}</a></li>
{%- endif %}
{%- if edit_on_github_url %}
<li><a href="{{ edit_on_github_url }}"
rel="nofollow">{{ _('Edit on GitHub') }}</a></li>
{%- endif %}
</ul>
{%- endif %}
-29
View File
@@ -1,29 +0,0 @@
:mod:`homeassistant.auth`
=========================
.. automodule:: homeassistant.auth
:members:
homeassistant.auth.auth\_store
------------------------------
.. automodule:: homeassistant.auth.auth_store
:members:
:undoc-members:
:show-inheritance:
homeassistant.auth.const
------------------------
.. automodule:: homeassistant.auth.const
:members:
:undoc-members:
:show-inheritance:
homeassistant.auth.models
-------------------------
.. automodule:: homeassistant.auth.models
:members:
:undoc-members:
:show-inheritance:
-7
View File
@@ -1,7 +0,0 @@
.. _bootstrap_module:
:mod:`homeassistant.bootstrap`
------------------------------
.. automodule:: homeassistant.bootstrap
:members:
-170
View File
@@ -1,170 +0,0 @@
:mod:`homeassistant.components`
===============================
air\_quality
--------------------------------------------
.. automodule:: homeassistant.components.air_quality
:members:
:undoc-members:
:show-inheritance:
alarm\_control\_panel
--------------------------------------------
.. automodule:: homeassistant.components.alarm_control_panel
:members:
:undoc-members:
:show-inheritance:
binary\_sensor
--------------------------------------------
.. automodule:: homeassistant.components.binary_sensor
:members:
:undoc-members:
:show-inheritance:
camera
---------------------------
.. automodule:: homeassistant.components.camera
:members:
:undoc-members:
:show-inheritance:
calendar
---------------------------
.. automodule:: homeassistant.components.calendar
:members:
:undoc-members:
:show-inheritance:
climate
---------------------------
.. automodule:: homeassistant.components.climate
:members:
:undoc-members:
:show-inheritance:
conversation
---------------------------
.. automodule:: homeassistant.components.conversation
:members:
:undoc-members:
:show-inheritance:
cover
---------------------------
.. automodule:: homeassistant.components.cover
:members:
:undoc-members:
:show-inheritance:
device\_tracker
---------------------------
.. automodule:: homeassistant.components.device_tracker
:members:
:undoc-members:
:show-inheritance:
fan
---------------------------
.. automodule:: homeassistant.components.fan
:members:
:undoc-members:
:show-inheritance:
light
---------------------------
.. automodule:: homeassistant.components.light
:members:
:undoc-members:
:show-inheritance:
lock
---------------------------
.. automodule:: homeassistant.components.lock
:members:
:undoc-members:
:show-inheritance:
media\_player
---------------------------
.. automodule:: homeassistant.components.media_player
:members:
:undoc-members:
:show-inheritance:
notify
---------------------------
.. automodule:: homeassistant.components.notify
:members:
:undoc-members:
:show-inheritance:
remote
---------------------------
.. automodule:: homeassistant.components.remote
:members:
:undoc-members:
:show-inheritance:
switch
---------------------------
.. automodule:: homeassistant.components.switch
:members:
:undoc-members:
:show-inheritance:
sensor
-------------------------------------
.. automodule:: homeassistant.components.sensor
:members:
:undoc-members:
:show-inheritance:
vacuum
-------------------------------------
.. automodule:: homeassistant.components.vacuum
:members:
:undoc-members:
:show-inheritance:
water\_heater
-------------------------------------
.. automodule:: homeassistant.components.water_heater
:members:
:undoc-members:
:show-inheritance:
weather
---------------------------
.. automodule:: homeassistant.components.weather
:members:
:undoc-members:
:show-inheritance:
webhook
---------------------------
.. automodule:: homeassistant.components.webhook
:members:
:undoc-members:
:show-inheritance:
-7
View File
@@ -1,7 +0,0 @@
.. _config_entries_module:
:mod:`homeassistant.config_entries`
-----------------------------------
.. automodule:: homeassistant.config_entries
:members:
-7
View File
@@ -1,7 +0,0 @@
.. _core_module:
:mod:`homeassistant.core`
-------------------------
.. automodule:: homeassistant.core
:members:
-7
View File
@@ -1,7 +0,0 @@
.. _data_entry_flow_module:
:mod:`homeassistant.data_entry_flow`
-----------------------------
.. automodule:: homeassistant.data_entry_flow
:members:
-7
View File
@@ -1,7 +0,0 @@
.. _exceptions_module:
:mod:`homeassistant.exceptions`
-------------------------------
.. automodule:: homeassistant.exceptions
:members:
-335
View File
@@ -1,335 +0,0 @@
:mod:`homeassistant.helpers`
============================
.. automodule:: homeassistant.helpers
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.aiohttp\_client
-------------------------------------
.. automodule:: homeassistant.helpers.aiohttp_client
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.area\_registry
------------------------------------
.. automodule:: homeassistant.helpers.area_registry
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.check\_config
-----------------------------------
.. automodule:: homeassistant.helpers.check_config
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.collection
--------------------------------
.. automodule:: homeassistant.helpers.collection
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.condition
-------------------------------
.. automodule:: homeassistant.helpers.condition
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.config\_entry\_flow
-----------------------------------------
.. automodule:: homeassistant.helpers.config_entry_flow
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.config\_entry\_oauth2\_flow
-------------------------------------------------
.. automodule:: homeassistant.helpers.config_entry_oauth2_flow
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.config\_validation
----------------------------------------
.. automodule:: homeassistant.helpers.config_validation
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.data\_entry\_flow
---------------------------------------
.. automodule:: homeassistant.helpers.data_entry_flow
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.debounce
------------------------------
.. automodule:: homeassistant.helpers.debounce
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.deprecation
---------------------------------
.. automodule:: homeassistant.helpers.deprecation
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.device\_registry
--------------------------------------
.. automodule:: homeassistant.helpers.device_registry
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.discovery
-------------------------------
.. automodule:: homeassistant.helpers.discovery
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.dispatcher
--------------------------------
.. automodule:: homeassistant.helpers.dispatcher
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entity
----------------------------
.. automodule:: homeassistant.helpers.entity
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entity\_component
---------------------------------------
.. automodule:: homeassistant.helpers.entity_component
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entity\_platform
--------------------------------------
.. automodule:: homeassistant.helpers.entity_platform
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entity\_registry
--------------------------------------
.. automodule:: homeassistant.helpers.entity_registry
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entity\_values
------------------------------------
.. automodule:: homeassistant.helpers.entity_values
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.entityfilter
----------------------------------
.. automodule:: homeassistant.helpers.entityfilter
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.event
---------------------------
.. automodule:: homeassistant.helpers.event
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.icon
--------------------------
.. automodule:: homeassistant.helpers.icon
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.integration\_platform
-------------------------------------------
.. automodule:: homeassistant.helpers.integration_platform
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.intent
----------------------------
.. automodule:: homeassistant.helpers.intent
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.json
--------------------------
.. automodule:: homeassistant.helpers.json
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.location
------------------------------
.. automodule:: homeassistant.helpers.location
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.logging
-----------------------------
.. automodule:: homeassistant.helpers.logging
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.network
-----------------------------
.. automodule:: homeassistant.helpers.network
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.restore\_state
------------------------------------
.. automodule:: homeassistant.helpers.restore_state
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.script
----------------------------
.. automodule:: homeassistant.helpers.script
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.service
-----------------------------
.. automodule:: homeassistant.helpers.service
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.signal
-----------------------------
.. automodule:: homeassistant.helpers.signal
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.state
---------------------------
.. automodule:: homeassistant.helpers.state
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.storage
-----------------------------
.. automodule:: homeassistant.helpers.storage
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.sun
-------------------------
.. automodule:: homeassistant.helpers.sun
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.system\_info
----------------------------------
.. automodule:: homeassistant.helpers.system_info
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.temperature
---------------------------------
.. automodule:: homeassistant.helpers.temperature
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.template
------------------------------
.. automodule:: homeassistant.helpers.template
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.translation
---------------------------------
.. automodule:: homeassistant.helpers.translation
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.typing
----------------------------
.. automodule:: homeassistant.helpers.typing
:members:
:undoc-members:
:show-inheritance:
homeassistant.helpers.update\_coordinator
-----------------------------------------
.. automodule:: homeassistant.helpers.update_coordinator
:members:
:undoc-members:
:show-inheritance:
-7
View File
@@ -1,7 +0,0 @@
.. _loader_module:
:mod:`homeassistant.loader`
---------------------------
.. automodule:: homeassistant.loader
:members:
-151
View File
@@ -1,151 +0,0 @@
:mod:`homeassistant.util`
=========================
.. automodule:: homeassistant.util
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.yaml
-----------------------
.. automodule:: homeassistant.util.yaml
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.aiohttp
--------------------------
.. automodule:: homeassistant.util.aiohttp
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.async\_
--------------------------
.. automodule:: homeassistant.util.async_
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.color
------------------------
.. automodule:: homeassistant.util.color
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.decorator
----------------------------
.. automodule:: homeassistant.util.decorator
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.distance
---------------------------
.. automodule:: homeassistant.util.distance
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.dt
---------------------
.. automodule:: homeassistant.util.dt
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.json
-----------------------
.. automodule:: homeassistant.util.json
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.location
---------------------------
.. automodule:: homeassistant.util.location
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.logging
--------------------------
.. automodule:: homeassistant.util.logging
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.network
--------------------------
.. automodule:: homeassistant.util.network
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.package
--------------------------
.. automodule:: homeassistant.util.package
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.pil
----------------------
.. automodule:: homeassistant.util.pil
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.pressure
---------------------------
.. automodule:: homeassistant.util.pressure
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.ssl
----------------------
.. automodule:: homeassistant.util.ssl
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.temperature
------------------------------
.. automodule:: homeassistant.util.temperature
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.unit\_system
-------------------------------
.. automodule:: homeassistant.util.unit_system
:members:
:undoc-members:
:show-inheritance:
homeassistant.util.volume
-------------------------
.. automodule:: homeassistant.util.volume
:members:
:undoc-members:
:show-inheritance:
-438
View File
@@ -1,438 +0,0 @@
#!/usr/bin/env python3
"""Home Assistant documentation build configuration file.
This file is execfile()d with the current directory set to its
containing dir.
Note that not all possible configuration values are present in this
autogenerated file.
All configuration values have a default; values that are commented out
serve to show the default.
If extensions (or modules to document with autodoc) are in another directory,
add these directories to sys.path here. If the directory is relative to the
documentation root, use os.path.abspath to make it absolute, like shown here.
"""
import inspect
import os
import sys
from homeassistant.const import __short_version__, __version__
PROJECT_NAME = "Home Assistant"
PROJECT_PACKAGE_NAME = "homeassistant"
PROJECT_AUTHOR = "The Home Assistant Authors"
PROJECT_COPYRIGHT = PROJECT_AUTHOR
PROJECT_LONG_DESCRIPTION = (
"Home Assistant is an open-source "
"home automation platform running on Python 3. "
"Track and control all devices at home and "
"automate control. "
"Installation in less than a minute."
)
PROJECT_GITHUB_USERNAME = "home-assistant"
PROJECT_GITHUB_REPOSITORY = "home-assistant"
GITHUB_PATH = f"{PROJECT_GITHUB_USERNAME}/{PROJECT_GITHUB_REPOSITORY}"
GITHUB_URL = f"https://github.com/{GITHUB_PATH}"
sys.path.insert(0, os.path.abspath("_ext"))
sys.path.insert(0, os.path.abspath("../homeassistant"))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.linkcode",
"sphinx_autodoc_annotation",
"edit_on_github",
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = ".rst"
# The encoding of source files.
#
# source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = "index"
# General information about the project.
project = PROJECT_NAME
copyright = PROJECT_COPYRIGHT
author = PROJECT_AUTHOR
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = __short_version__
# The full version, including alpha/beta/rc tags.
release = __version__
code_branch = "dev" if "dev" in __version__ else "master"
# Edit on Github config
edit_on_github_project = GITHUB_PATH
edit_on_github_branch = code_branch
edit_on_github_src_path = "docs/source/"
def linkcode_resolve(domain, info):
"""Determine the URL corresponding to Python object."""
if domain != "py":
return None
modname = info["module"]
fullname = info["fullname"]
submod = sys.modules.get(modname)
if submod is None:
return None
obj = submod
for part in fullname.split("."):
try:
obj = getattr(obj, part)
except Exception: # pylint: disable=broad-except
return None
try:
fn = inspect.getsourcefile(obj)
except Exception: # pylint: disable=broad-except
fn = None
if not fn:
return None
try:
source, lineno = inspect.findsource(obj)
except Exception: # pylint: disable=broad-except
lineno = None
if lineno:
linespec = "#L%d" % (lineno + 1)
else:
linespec = ""
index = fn.find("/homeassistant/")
if index == -1:
index = 0
fn = fn[index:]
return f"{GITHUB_URL}/blob/{code_branch}/{fn}{linespec}"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#
# today = ''
#
# Else, today_fmt is used as the format for a strftime call.
#
# today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all
# documents.
#
# default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#
# add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#
# add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#
# show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"
# A list of ignored prefixes for module index sorting.
# modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
# keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "alabaster"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
"logo": "logo.png",
"logo_name": PROJECT_NAME,
"description": PROJECT_LONG_DESCRIPTION,
"github_user": PROJECT_GITHUB_USERNAME,
"github_repo": PROJECT_GITHUB_REPOSITORY,
"github_type": "star",
"github_banner": True,
"touch_icon": "logo-apple.png",
# 'fixed_sidebar': True, # Re-enable when we have more content
}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
# The name for this set of Sphinx documents.
# "<project> v<release> documentation" by default.
#
# html_title = 'Home-Assistant v0.27.0'
# A shorter title for the navigation bar. Default is the same as html_title.
#
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#
# html_logo = '_static/logo.png'
# The name of an image file (relative to this directory) to use as a favicon of
# the docs.
# This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#
html_favicon = "_static/favicon.ico"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#
# html_extra_path = []
# If not None, a 'Last updated on:' timestamp is inserted at every page
# bottom, using the given strftime format.
# The empty string is equivalent to '%b %d, %Y'.
#
html_last_updated_fmt = "%b %d, %Y"
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#
html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#
html_sidebars = {
"**": [
"about.html",
"links.html",
"searchbox.html",
"sourcelink.html",
"navigation.html",
"relations.html",
]
}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#
# html_additional_pages = {}
# If false, no module index is generated.
#
# html_domain_indices = True
# If false, no index is generated.
#
# html_use_index = True
# If true, the index is split into individual pages for each letter.
#
# html_split_index = False
# If true, links to the reST sources are added to the pages.
#
# html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#
# html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#
# html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#
# html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
# html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'
#
# html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# 'ja' uses this config value.
# 'zh' user can custom change `jieba` dictionary path.
#
# html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#
# html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = "Home-Assistantdoc"
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(
master_doc,
"home-assistant.tex",
"Home Assistant Documentation",
"Home Assistant Team",
"manual",
)
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#
# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#
# latex_use_parts = False
# If true, show page references after internal links.
#
# latex_show_pagerefs = False
# If true, show URL addresses after external links.
#
# latex_show_urls = False
# Documents to append as an appendix to all manuals.
#
# latex_appendices = []
# It false, will not define \strong, \code, itleref, \crossref ... but only
# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
# packages.
#
# latex_keep_old_macro_names = True
# If false, no module index is generated.
#
# latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, "home-assistant", "Home Assistant Documentation", [author], 1)
]
# If true, show URL addresses after external links.
#
# man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(
master_doc,
"Home-Assistant",
"Home Assistant Documentation",
author,
"Home Assistant",
"Open-source home automation platform.",
"Miscellaneous",
)
]
# Documents to append as an appendix to all manuals.
#
# texinfo_appendices = []
# If false, no module index is generated.
#
# texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#
# texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#
# texinfo_no_detailmenu = False
-22
View File
@@ -1,22 +0,0 @@
================================
Home Assistant API Documentation
================================
Public API documentation for `Home Assistant developers`_.
Contents:
.. toctree::
:maxdepth: 2
:glob:
api/*
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. _Home Assistant developers: https://developers.home-assistant.io/
+8 -13
View File
@@ -93,7 +93,9 @@ def get_arguments() -> argparse.Namespace:
help="Directory that contains the Home Assistant configuration",
)
parser.add_argument(
"--safe-mode", action="store_true", help="Start Home Assistant in safe mode"
"--recovery-mode",
action="store_true",
help="Start Home Assistant in recovery mode",
)
parser.add_argument(
"--debug", action="store_true", help="Start Home Assistant in debug mode"
@@ -148,16 +150,6 @@ def get_arguments() -> argparse.Namespace:
return arguments
def cmdline() -> list[str]:
"""Collect path and arguments to re-execute the current hass instance."""
if os.path.basename(sys.argv[0]) == "__main__.py":
modulepath = os.path.dirname(sys.argv[0])
os.environ["PYTHONPATH"] = os.path.dirname(modulepath)
return [sys.executable, "-m", "homeassistant"] + list(sys.argv[1:])
return sys.argv
def check_threads() -> None:
"""Check if there are any lingering threads."""
try:
@@ -193,7 +185,9 @@ def main() -> int:
ensure_config_path(config_dir)
# pylint: disable-next=import-outside-toplevel
from . import runner
from . import config, runner
safe_mode = config.safe_mode_enabled(config_dir)
runtime_conf = runner.RuntimeConfig(
config_dir=config_dir,
@@ -203,9 +197,10 @@ def main() -> int:
log_no_color=args.log_no_color,
skip_pip=args.skip_pip,
skip_pip_packages=args.skip_pip_packages,
safe_mode=args.safe_mode,
recovery_mode=args.recovery_mode,
debug=args.debug,
open_ui=args.open_ui,
safe_mode=safe_mode,
)
fault_file_name = os.path.join(config_dir, FAULT_LOG_FILENAME)
+4 -3
View File
@@ -5,6 +5,7 @@ import asyncio
from collections import OrderedDict
from collections.abc import Mapping
from datetime import timedelta
import time
from typing import Any, cast
import jwt
@@ -12,7 +13,6 @@ import jwt
from homeassistant import data_entry_flow
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.util import dt as dt_util
from . import auth_store, jwt_wrapper, models
from .const import ACCESS_TOKEN_EXPIRATION, GROUP_ID_ADMIN
@@ -505,12 +505,13 @@ class AuthManager:
self._store.async_log_refresh_token_usage(refresh_token, remote_ip)
now = dt_util.utcnow()
now = int(time.time())
expire_seconds = int(refresh_token.access_token_expiration.total_seconds())
return jwt.encode(
{
"iss": refresh_token.id,
"iat": now,
"exp": now + refresh_token.access_token_expiration,
"exp": now + expire_seconds,
},
refresh_token.jwt_key,
algorithm="HS256",
+2 -2
View File
@@ -50,7 +50,7 @@ class MultiFactorAuthModule:
Default is same as type
"""
return self.config.get(CONF_ID, self.type)
return self.config.get(CONF_ID, self.type) # type: ignore[no-any-return]
@property
def type(self) -> str:
@@ -60,7 +60,7 @@ class MultiFactorAuthModule:
@property
def name(self) -> str:
"""Return the name of the auth module."""
return self.config.get(CONF_NAME, self.DEFAULT_TITLE)
return self.config.get(CONF_NAME, self.DEFAULT_TITLE) # type: ignore[no-any-return]
# Implement by extending class
@@ -1,32 +1,25 @@
"""Permission constants for the websocket API.
Separate file to avoid circular imports.
"""
"""Permission for events."""
from __future__ import annotations
from typing import Final
from homeassistant.components.frontend import EVENT_PANELS_UPDATED
from homeassistant.components.lovelace import EVENT_LOVELACE_UPDATED
from homeassistant.components.persistent_notification import (
EVENT_PERSISTENT_NOTIFICATIONS_UPDATED,
)
from homeassistant.components.recorder import (
EVENT_RECORDER_5MIN_STATISTICS_GENERATED,
EVENT_RECORDER_HOURLY_STATISTICS_GENERATED,
)
from homeassistant.components.shopping_list import EVENT_SHOPPING_LIST_UPDATED
from homeassistant.const import (
EVENT_COMPONENT_LOADED,
EVENT_CORE_CONFIG_UPDATE,
EVENT_LOVELACE_UPDATED,
EVENT_PANELS_UPDATED,
EVENT_RECORDER_5MIN_STATISTICS_GENERATED,
EVENT_RECORDER_HOURLY_STATISTICS_GENERATED,
EVENT_SERVICE_REGISTERED,
EVENT_SERVICE_REMOVED,
EVENT_SHOPPING_LIST_UPDATED,
EVENT_STATE_CHANGED,
EVENT_THEMES_UPDATED,
)
from homeassistant.helpers.area_registry import EVENT_AREA_REGISTRY_UPDATED
from homeassistant.helpers.device_registry import EVENT_DEVICE_REGISTRY_UPDATED
from homeassistant.helpers.entity_registry import EVENT_ENTITY_REGISTRY_UPDATED
from homeassistant.helpers.issue_registry import EVENT_REPAIRS_ISSUE_REGISTRY_UPDATED
# These are events that do not contain any sensitive data
# Except for state_changed, which is handled accordingly.
@@ -36,9 +29,9 @@ SUBSCRIBE_ALLOWLIST: Final[set[str]] = {
EVENT_CORE_CONFIG_UPDATE,
EVENT_DEVICE_REGISTRY_UPDATED,
EVENT_ENTITY_REGISTRY_UPDATED,
EVENT_REPAIRS_ISSUE_REGISTRY_UPDATED,
EVENT_LOVELACE_UPDATED,
EVENT_PANELS_UPDATED,
EVENT_PERSISTENT_NOTIFICATIONS_UPDATED,
EVENT_RECORDER_5MIN_STATISTICS_GENERATED,
EVENT_RECORDER_HOURLY_STATISTICS_GENERATED,
EVENT_SERVICE_REGISTERED,
+1 -1
View File
@@ -109,4 +109,4 @@ def test_all(policy: CategoryType, key: str) -> bool:
if not isinstance(all_policy, dict):
return bool(all_policy)
return all_policy.get(key, False)
return all_policy.get(key, False) # type: ignore[no-any-return]
+1 -1
View File
@@ -67,7 +67,7 @@ class AuthProvider:
@property
def name(self) -> str:
"""Return the name of the auth provider."""
return self.config.get(CONF_NAME, self.DEFAULT_TITLE)
return self.config.get(CONF_NAME, self.DEFAULT_TITLE) # type: ignore[no-any-return]
@property
def support_mfa(self) -> bool:
+279
View File
@@ -0,0 +1,279 @@
A. HISTORY OF THE SOFTWARE
==========================
Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
as a successor of a language called ABC. Guido remains Python's
principal author, although it includes many contributions from others.
In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.
In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
year, the PythonLabs team moved to Digital Creations, which became
Zope Corporation. In 2001, the Python Software Foundation (PSF, see
https://www.python.org/psf/) was formed, a non-profit organization
created specifically to own Python-related Intellectual Property.
Zope Corporation was a sponsoring member of the PSF.
All Python releases are Open Source (see https://opensource.org for
the Open Source Definition). Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.
Release Derived Year Owner GPL-
from compatible? (1)
0.9.0 thru 1.2 1991-1995 CWI yes
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
1.6 1.5.2 2000 CNRI no
2.0 1.6 2000 BeOpen.com no
1.6.1 1.6 2001 CNRI yes (2)
2.1 2.0+1.6.1 2001 PSF no
2.0.1 2.0+1.6.1 2001 PSF yes
2.1.1 2.1+2.0.1 2001 PSF yes
2.1.2 2.1.1 2002 PSF yes
2.1.3 2.1.2 2002 PSF yes
2.2 and above 2.1.1 2001-now PSF yes
Footnotes:
(1) GPL-compatible doesn't mean that we're distributing Python under
the GPL. All Python licenses, unlike the GPL, let you distribute
a modified version without making your changes open source. The
GPL-compatible licenses make it possible to combine Python with
other software that is released under the GPL; the others don't.
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
because its license has a choice of law clause. According to
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
is "not incompatible" with the GPL.
Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================
Python software and documentation are licensed under the
Python Software Foundation License Version 2.
Starting with Python 3.8.6, examples, recipes, and other code in
the documentation are dual licensed under the PSF License Version 2
and the Zero-Clause BSD license.
Some software incorporated into Python is under different licenses.
The licenses are listed with code falling under that license.
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------
1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.
2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.
4. PSF is making Python available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").
2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.
3. BeOpen is making the Software available to Licensee on an "AS IS"
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions. Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee. This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party. As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.
7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------
1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.
2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee. Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement. This Agreement together with
Python 1.6.1 may be located on the internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013. This
Agreement may also be obtained from a proxy server on the internet
using the following URL: http://hdl.handle.net/1895.22/1013".
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee. This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.
8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.
ACCEPT
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands. All rights reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
----------------------------------------------------------------------
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
+5
View File
@@ -0,0 +1,5 @@
This package contains backports of Python functionality from future Python
versions.
Some of the backports have been copied directly from the CPython project,
and are subject to license agreement as detailed in LICENSE.Python.
+12 -2
View File
@@ -1,4 +1,14 @@
"""Functools backports from standard lib."""
# This file contains parts of Python's module wrapper
# for the _functools C module
# to allow utilities written in Python to be added
# to the functools module.
# Written by Nick Coghlan <ncoghlan at gmail.com>,
# Raymond Hettinger <python at rcn.com>,
# and Łukasz Langa <lukasz at langa.pl>.
# Copyright © 2001-2023 Python Software Foundation; All Rights Reserved
from __future__ import annotations
from collections.abc import Callable
@@ -8,7 +18,7 @@ from typing import Any, Generic, Self, TypeVar, overload
_T = TypeVar("_T")
class cached_property(Generic[_T]): # pylint: disable=invalid-name
class cached_property(Generic[_T]):
"""Backport of Python 3.12's cached_property.
Includes https://github.com/python/cpython/pull/101890/files
@@ -68,4 +78,4 @@ class cached_property(Generic[_T]): # pylint: disable=invalid-name
raise TypeError(msg) from None
return val
__class_getitem__ = classmethod(GenericAlias)
__class_getitem__ = classmethod(GenericAlias) # type: ignore[var-annotated]
+20 -16
View File
@@ -110,8 +110,7 @@ async def async_setup_hass(
runtime_config: RuntimeConfig,
) -> core.HomeAssistant | None:
"""Set up Home Assistant."""
hass = core.HomeAssistant()
hass.config.config_dir = runtime_config.config_dir
hass = core.HomeAssistant(runtime_config.config_dir)
async_enable_logging(
hass,
@@ -121,6 +120,7 @@ async def async_setup_hass(
runtime_config.log_no_color,
)
hass.config.safe_mode = runtime_config.safe_mode
hass.config.skip_pip = runtime_config.skip_pip
hass.config.skip_pip_packages = runtime_config.skip_pip_packages
if runtime_config.skip_pip or runtime_config.skip_pip_packages:
@@ -134,17 +134,18 @@ async def async_setup_hass(
_LOGGER.info("Config directory: %s", runtime_config.config_dir)
loader.async_setup(hass)
config_dict = None
basic_setup_success = False
if not (safe_mode := runtime_config.safe_mode):
if not (recovery_mode := runtime_config.recovery_mode):
await hass.async_add_executor_job(conf_util.process_ha_config_upgrade, hass)
try:
config_dict = await conf_util.async_hass_config_yaml(hass)
except HomeAssistantError as err:
_LOGGER.error(
"Failed to parse configuration.yaml: %s. Activating safe mode",
"Failed to parse configuration.yaml: %s. Activating recovery mode",
err,
)
else:
@@ -156,46 +157,49 @@ async def async_setup_hass(
)
if config_dict is None:
safe_mode = True
recovery_mode = True
elif not basic_setup_success:
_LOGGER.warning("Unable to set up core integrations. Activating safe mode")
safe_mode = True
_LOGGER.warning("Unable to set up core integrations. Activating recovery mode")
recovery_mode = True
elif (
"frontend" in hass.data.get(DATA_SETUP, {})
and "frontend" not in hass.config.components
):
_LOGGER.warning("Detected that frontend did not load. Activating safe mode")
_LOGGER.warning("Detected that frontend did not load. Activating recovery mode")
# Ask integrations to shut down. It's messy but we can't
# do a clean stop without knowing what is broken
with contextlib.suppress(asyncio.TimeoutError):
async with hass.timeout.async_timeout(10):
await hass.async_stop()
safe_mode = True
recovery_mode = True
old_config = hass.config
old_logging = hass.data.get(DATA_LOGGING)
hass = core.HomeAssistant()
hass = core.HomeAssistant(old_config.config_dir)
if old_logging:
hass.data[DATA_LOGGING] = old_logging
hass.config.skip_pip = old_config.skip_pip
hass.config.skip_pip_packages = old_config.skip_pip_packages
hass.config.internal_url = old_config.internal_url
hass.config.external_url = old_config.external_url
hass.config.config_dir = old_config.config_dir
# Setup loader cache after the config dir has been set
loader.async_setup(hass)
if safe_mode:
_LOGGER.info("Starting in safe mode")
hass.config.safe_mode = True
if recovery_mode:
_LOGGER.info("Starting in recovery mode")
hass.config.recovery_mode = True
http_conf = (await http.async_get_last_config(hass)) or {}
await async_from_config_dict(
{"safe_mode": {}, "http": http_conf},
{"recovery_mode": {}, "http": http_conf},
hass,
)
elif hass.config.safe_mode:
_LOGGER.info("Starting in safe mode")
if runtime_config.open_ui:
hass.add_job(open_hass_ui, hass)
@@ -470,7 +474,7 @@ def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
domains = {key.partition(" ")[0] for key in config if key != core.DOMAIN}
# Add config entry domains
if not hass.config.safe_mode:
if not hass.config.recovery_mode:
domains.update(hass.config_entries.async_domains())
# Make sure the Hass.io component is loaded
+2 -1
View File
@@ -7,6 +7,7 @@
"homekit",
"ibeacon",
"icloud",
"itunes"
"itunes",
"weatherkit"
]
}
+1
View File
@@ -11,6 +11,7 @@
"google_maps",
"google_pubsub",
"google_sheets",
"google_tasks",
"google_translate",
"google_travel_time",
"google_wifi",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"domain": "ikea",
"name": "IKEA",
"integrations": ["symfonisk", "tradfri"]
"integrations": ["symfonisk", "tradfri", "idasen_desk"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "switchbot",
"name": "SwitchBot",
"integrations": ["switchbot", "switchbot_cloud"]
}
+1
View File
@@ -2,6 +2,7 @@
"domain": "trafikverket",
"name": "Trafikverket",
"integrations": [
"trafikverket_camera",
"trafikverket_ferry",
"trafikverket_train",
"trafikverket_weatherstation"
+1 -1
View File
@@ -1,5 +1,5 @@
{
"domain": "u_tec",
"name": "U-tec",
"iot_standards": ["zwave"]
"integrations": ["ultraloq"]
}
+15 -14
View File
@@ -1,6 +1,7 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from dataclasses import dataclass, field
from functools import partial
from jaraco.abode.automation import Automation as AbodeAuto
@@ -25,9 +26,10 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
Platform,
)
from homeassistant.core import Event, HomeAssistant, ServiceCall
from homeassistant.core import CALLBACK_TYPE, Event, HomeAssistant, ServiceCall
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv, entity
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.dispatcher import dispatcher_send
from .const import ATTRIBUTION, CONF_POLLING, DOMAIN, LOGGER
@@ -70,15 +72,14 @@ PLATFORMS = [
]
@dataclass
class AbodeSystem:
"""Abode System class."""
def __init__(self, abode: Abode, polling: bool) -> None:
"""Initialize the system."""
self.abode = abode
self.polling = polling
self.entity_ids: set[str | None] = set()
self.logout_listener = None
abode: Abode
polling: bool
entity_ids: set[str | None] = field(default_factory=set)
logout_listener: CALLBACK_TYPE | None = None
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@@ -287,14 +288,14 @@ class AbodeDevice(AbodeEntity):
"""Initialize Abode device."""
super().__init__(data)
self._device = device
self._attr_unique_id = device.device_uuid
self._attr_unique_id = device.uuid
async def async_added_to_hass(self) -> None:
"""Subscribe to device events."""
await super().async_added_to_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.add_device_callback,
self._device.device_id,
self._device.id,
self._update_callback,
)
@@ -302,7 +303,7 @@ class AbodeDevice(AbodeEntity):
"""Unsubscribe from device events."""
await super().async_will_remove_from_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.remove_all_device_callbacks, self._device.device_id
self._data.abode.events.remove_all_device_callbacks, self._device.id
)
def update(self) -> None:
@@ -313,17 +314,17 @@ class AbodeDevice(AbodeEntity):
def extra_state_attributes(self) -> dict[str, str]:
"""Return the state attributes."""
return {
"device_id": self._device.device_id,
"device_id": self._device.id,
"battery_low": self._device.battery_low,
"no_response": self._device.no_response,
"device_type": self._device.type,
}
@property
def device_info(self) -> entity.DeviceInfo:
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return entity.DeviceInfo(
identifiers={(DOMAIN, self._device.device_id)},
return DeviceInfo(
identifiers={(DOMAIN, self._device.id)},
manufacturer="Abode",
model=self._device.type,
name=self._device.name,
@@ -69,7 +69,7 @@ class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanelEntity):
def extra_state_attributes(self) -> dict[str, str]:
"""Return the state attributes."""
return {
"device_id": self._device.device_id,
"device_id": self._device.id,
"battery_backup": self._device.battery,
"cellular_backup": self._device.is_cellular,
}
+1 -1
View File
@@ -30,7 +30,7 @@ async def async_setup_entry(
data: AbodeSystem = hass.data[DOMAIN]
async_add_entities(
AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE) # pylint: disable=no-member
AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE)
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA)
)
+44 -21
View File
@@ -1,6 +1,8 @@
"""Support for Abode Security System sensors."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import cast
from jaraco.abode.devices.sensor import Sensor as AbodeSense
@@ -12,25 +14,52 @@ from homeassistant.components.sensor import (
SensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import LIGHT_LUX
from homeassistant.const import LIGHT_LUX, PERCENTAGE, UnitOfTemperature
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeDevice, AbodeSystem
from .const import DOMAIN
SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(
ABODE_TEMPERATURE_UNIT_HA_UNIT = {
CONST.UNIT_FAHRENHEIT: UnitOfTemperature.FAHRENHEIT,
CONST.UNIT_CELSIUS: UnitOfTemperature.CELSIUS,
}
@dataclass
class AbodeSensorDescriptionMixin:
"""Mixin for Abode sensor."""
value_fn: Callable[[AbodeSense], float]
native_unit_of_measurement_fn: Callable[[AbodeSense], str]
@dataclass
class AbodeSensorDescription(SensorEntityDescription, AbodeSensorDescriptionMixin):
"""Class describing Abode sensor entities."""
SENSOR_TYPES: tuple[AbodeSensorDescription, ...] = (
AbodeSensorDescription(
key=CONST.TEMP_STATUS_KEY,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement_fn=lambda device: ABODE_TEMPERATURE_UNIT_HA_UNIT[
device.temp_unit
],
value_fn=lambda device: cast(float, device.temp),
),
SensorEntityDescription(
AbodeSensorDescription(
key=CONST.HUMI_STATUS_KEY,
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement_fn=lambda _: PERCENTAGE,
value_fn=lambda device: cast(float, device.humidity),
),
SensorEntityDescription(
AbodeSensorDescription(
key=CONST.LUX_STATUS_KEY,
device_class=SensorDeviceClass.ILLUMINANCE,
native_unit_of_measurement_fn=lambda _: LIGHT_LUX,
value_fn=lambda device: cast(float, device.lux),
),
)
@@ -52,32 +81,26 @@ async def async_setup_entry(
class AbodeSensor(AbodeDevice, SensorEntity):
"""A sensor implementation for Abode devices."""
entity_description: AbodeSensorDescription
_device: AbodeSense
def __init__(
self,
data: AbodeSystem,
device: AbodeSense,
description: SensorEntityDescription,
description: AbodeSensorDescription,
) -> None:
"""Initialize a sensor for an Abode device."""
super().__init__(data, device)
self.entity_description = description
self._attr_unique_id = f"{device.device_uuid}-{description.key}"
if description.key == CONST.TEMP_STATUS_KEY:
self._attr_native_unit_of_measurement = device.temp_unit
elif description.key == CONST.HUMI_STATUS_KEY:
self._attr_native_unit_of_measurement = device.humidity_unit
elif description.key == CONST.LUX_STATUS_KEY:
self._attr_native_unit_of_measurement = LIGHT_LUX
self._attr_unique_id = f"{device.uuid}-{description.key}"
@property
def native_value(self) -> float | None:
def native_value(self) -> float:
"""Return the state of the sensor."""
if self.entity_description.key == CONST.TEMP_STATUS_KEY:
return cast(float, self._device.temp)
if self.entity_description.key == CONST.HUMI_STATUS_KEY:
return cast(float, self._device.humidity)
if self.entity_description.key == CONST.LUX_STATUS_KEY:
return cast(float, self._device.lux)
return None
return self.entity_description.value_fn(self._device)
@property
def native_unit_of_measurement(self) -> str:
"""Return the native unit of measurement."""
return self.entity_description.native_unit_of_measurement_fn(self._device)
@@ -1,6 +1,7 @@
"""The AccuWeather component."""
from __future__ import annotations
from asyncio import timeout
from datetime import timedelta
import logging
from typing import Any
@@ -8,7 +9,6 @@ from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
from homeassistant.components.sensor import DOMAIN as SENSOR_PLATFORM
from homeassistant.config_entries import ConfigEntry
@@ -16,8 +16,7 @@ from homeassistant.const import CONF_API_KEY, CONF_NAME, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN, MANUFACTURER
@@ -2,12 +2,12 @@
from __future__ import annotations
import asyncio
from asyncio import timeout
from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientError
from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
import voluptuous as vol
from homeassistant import config_entries
@@ -50,3 +50,8 @@ CONDITION_CLASSES: Final[dict[str, list[int]]] = {
ATTR_CONDITION_SUNNY: [1, 2, 5],
ATTR_CONDITION_WINDY: [32],
}
CONDITION_MAP = {
cond_code: cond_ha
for cond_ha, cond_codes in CONDITION_CLASSES.items()
for cond_code in cond_codes
}
@@ -8,5 +8,5 @@
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"quality_scale": "platinum",
"requirements": ["accuweather==1.0.0"]
"requirements": ["accuweather==2.0.0"]
}
+272 -192
View File
@@ -59,193 +59,280 @@ class AccuWeatherSensorDescription(
"""Class describing AccuWeather sensor entities."""
attr_fn: Callable[[dict[str, Any]], dict[str, Any]] = lambda _: {}
day: int | None = None
FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="AirQuality",
icon="mdi:air-filter",
name="Air quality",
value_fn=lambda data: cast(str, data[ATTR_CATEGORY]),
device_class=SensorDeviceClass.ENUM,
options=["good", "hazardous", "high", "low", "moderate", "unhealthy"],
translation_key="air_quality",
*(
AccuWeatherSensorDescription(
key="AirQuality",
icon="mdi:air-filter",
value_fn=lambda data: cast(str, data[ATTR_CATEGORY]),
device_class=SensorDeviceClass.ENUM,
options=["good", "hazardous", "high", "low", "moderate", "unhealthy"],
translation_key=f"air_quality_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="CloudCoverDay",
icon="mdi:weather-cloudy",
name="Cloud cover day",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
*(
AccuWeatherSensorDescription(
key="CloudCoverDay",
icon="mdi:weather-cloudy",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"cloud_cover_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="CloudCoverNight",
icon="mdi:weather-cloudy",
name="Cloud cover night",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
*(
AccuWeatherSensorDescription(
key="CloudCoverNight",
icon="mdi:weather-cloudy",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"cloud_cover_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="Grass",
icon="mdi:grass",
name="Grass pollen",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="grass_pollen",
*(
AccuWeatherSensorDescription(
key="Grass",
icon="mdi:grass",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"grass_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="HoursOfSun",
icon="mdi:weather-partly-cloudy",
name="Hours of sun",
native_unit_of_measurement=UnitOfTime.HOURS,
value_fn=lambda data: cast(float, data),
*(
AccuWeatherSensorDescription(
key="HoursOfSun",
icon="mdi:weather-partly-cloudy",
native_unit_of_measurement=UnitOfTime.HOURS,
value_fn=lambda data: cast(float, data),
translation_key=f"hours_of_sun_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="LongPhraseDay",
name="Condition day",
value_fn=lambda data: cast(str, data),
*(
AccuWeatherSensorDescription(
key="LongPhraseDay",
value_fn=lambda data: cast(str, data),
translation_key=f"condition_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="LongPhraseNight",
name="Condition night",
value_fn=lambda data: cast(str, data),
*(
AccuWeatherSensorDescription(
key="LongPhraseNight",
value_fn=lambda data: cast(str, data),
translation_key=f"condition_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="Mold",
icon="mdi:blur",
name="Mold pollen",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="mold_pollen",
*(
AccuWeatherSensorDescription(
key="Mold",
icon="mdi:blur",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"mold_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="Ragweed",
icon="mdi:sprout",
name="Ragweed pollen",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="ragweed_pollen",
*(
AccuWeatherSensorDescription(
key="Ragweed",
icon="mdi:sprout",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"ragweed_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature max",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_max_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature min",
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_min_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade max",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_shade_max_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade min",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_shade_min_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="SolarIrradianceDay",
icon="mdi:weather-sunny",
name="Solar irradiance day",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="SolarIrradianceDay",
icon="mdi:weather-sunny",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"solar_irradiance_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="SolarIrradianceNight",
icon="mdi:weather-sunny",
name="Solar irradiance night",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
*(
AccuWeatherSensorDescription(
key="SolarIrradianceNight",
icon="mdi:weather-sunny",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"solar_irradiance_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
icon="mdi:weather-lightning",
name="Thunderstorm probability day",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
*(
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
icon="mdi:weather-lightning",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"thunderstorm_probability_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
icon="mdi:weather-lightning",
name="Thunderstorm probability night",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
*(
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
icon="mdi:weather-lightning",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"thunderstorm_probability_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="Tree",
icon="mdi:tree-outline",
name="Tree pollen",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="tree_pollen",
*(
AccuWeatherSensorDescription(
key="Tree",
icon="mdi:tree-outline",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"tree_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV index",
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="uv_index",
*(
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"uv_index_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="WindGustDay",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind gust day",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
*(
AccuWeatherSensorDescription(
key="WindGustDay",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_gust_speed_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="WindGustNight",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind gust night",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
*(
AccuWeatherSensorDescription(
key="WindGustNight",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_gust_speed_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="WindDay",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind day",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
*(
AccuWeatherSensorDescription(
key="WindDay",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_speed_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
AccuWeatherSensorDescription(
key="WindNight",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind night",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
*(
AccuWeatherSensorDescription(
key="WindNight",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_speed_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
),
)
@@ -253,118 +340,117 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="ApparentTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Apparent temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="apparent_temperature",
),
AccuWeatherSensorDescription(
key="Ceiling",
device_class=SensorDeviceClass.DISTANCE,
icon="mdi:weather-fog",
name="Cloud ceiling",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfLength.METERS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
suggested_display_precision=0,
translation_key="cloud_ceiling",
),
AccuWeatherSensorDescription(
key="CloudCover",
icon="mdi:weather-cloudy",
name="Cloud cover",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="cloud_cover",
),
AccuWeatherSensorDescription(
key="DewPoint",
device_class=SensorDeviceClass.TEMPERATURE,
name="Dew point",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="dew_point",
),
AccuWeatherSensorDescription(
key="RealFeelTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="realfeel_temperature",
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShade",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="realfeel_temperature_shade",
),
AccuWeatherSensorDescription(
key="Precipitation",
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
name="Precipitation",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
attr_fn=lambda data: {"type": data["PrecipitationType"]},
translation_key="precipitation",
),
AccuWeatherSensorDescription(
key="PressureTendency",
device_class=SensorDeviceClass.ENUM,
icon="mdi:gauge",
name="Pressure tendency",
options=["falling", "rising", "steady"],
translation_key="pressure_tendency",
value_fn=lambda data: cast(str, data["LocalizedText"]).lower(),
translation_key="pressure_tendency",
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV index",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data),
attr_fn=lambda data: {ATTR_LEVEL: data["UVIndexText"]},
translation_key="uv_index",
),
AccuWeatherSensorDescription(
key="WetBulbTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wet bulb temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="wet_bulb_temperature",
),
AccuWeatherSensorDescription(
key="WindChillTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wind chill temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="wind_chill_temperature",
),
AccuWeatherSensorDescription(
key="Wind",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][API_METRIC][ATTR_VALUE]),
translation_key="wind_speed",
),
AccuWeatherSensorDescription(
key="WindGust",
device_class=SensorDeviceClass.WIND_SPEED,
name="Wind gust",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][API_METRIC][ATTR_VALUE]),
translation_key="wind_gust_speed",
),
)
@@ -381,14 +467,12 @@ async def async_setup_entry(
]
if coordinator.forecast:
# Some air quality/allergy sensors are only available for certain
# locations.
sensors.extend(
AccuWeatherSensor(coordinator, description, forecast_day=day)
for day in range(MAX_FORECAST_DAYS + 1)
for description in FORECAST_SENSOR_TYPES
if description.key in coordinator.data[ATTR_FORECAST][0]
)
for description in FORECAST_SENSOR_TYPES:
# Some air quality/allergy sensors are only available for certain
# locations.
if description.key not in coordinator.data[ATTR_FORECAST][description.day]:
continue
sensors.append(AccuWeatherSensor(coordinator, description))
async_add_entities(sensors)
@@ -406,25 +490,21 @@ class AccuWeatherSensor(
self,
coordinator: AccuWeatherDataUpdateCoordinator,
description: AccuWeatherSensorDescription,
forecast_day: int | None = None,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self.forecast_day = description.day
self.entity_description = description
self._sensor_data = _get_sensor_data(
coordinator.data, description.key, forecast_day
coordinator.data, description.key, self.forecast_day
)
if forecast_day is not None:
self._attr_name = f"{description.name} {forecast_day}d"
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}-{forecast_day}".lower()
)
if self.forecast_day is not None:
self._attr_unique_id = f"{coordinator.location_key}-{description.key}-{self.forecast_day}".lower()
else:
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}".lower()
)
self._attr_device_info = coordinator.device_info
self.forecast_day = forecast_day
@property
def native_value(self) -> str | int | float | None:
+721 -46
View File
@@ -24,14 +24,8 @@
},
"entity": {
"sensor": {
"pressure_tendency": {
"state": {
"steady": "Steady",
"rising": "Rising",
"falling": "Falling"
}
},
"air_quality": {
"air_quality_0d": {
"name": "Air quality today",
"state": {
"good": "Good",
"hazardous": "Hazardous",
@@ -41,80 +35,761 @@
"unhealthy": "Unhealthy"
}
},
"grass_pollen": {
"air_quality_1d": {
"name": "Air quality day 1",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_2d": {
"name": "Air quality day 2",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_3d": {
"name": "Air quality day 3",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_4d": {
"name": "Air quality day 4",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"apparent_temperature": {
"name": "Apparent temperature"
},
"cloud_ceiling": {
"name": "Cloud ceiling"
},
"cloud_cover": {
"name": "Cloud cover"
},
"cloud_cover_day_0d": {
"name": "Cloud cover today"
},
"cloud_cover_day_1d": {
"name": "Cloud cover day 1"
},
"cloud_cover_day_2d": {
"name": "Cloud cover day 2"
},
"cloud_cover_day_3d": {
"name": "Cloud cover day 3"
},
"cloud_cover_day_4d": {
"name": "Cloud cover day 4"
},
"cloud_cover_night_0d": {
"name": "Cloud cover tonight"
},
"cloud_cover_night_1d": {
"name": "Cloud cover night 1"
},
"cloud_cover_night_2d": {
"name": "Cloud cover night 2"
},
"cloud_cover_night_3d": {
"name": "Cloud cover night 3"
},
"cloud_cover_night_4d": {
"name": "Cloud cover night 4"
},
"condition_day_0d": {
"name": "Condition today"
},
"condition_day_1d": {
"name": "Condition day 1"
},
"condition_day_2d": {
"name": "Condition day 2"
},
"condition_day_3d": {
"name": "Condition day 3"
},
"condition_day_4d": {
"name": "Condition day 4"
},
"condition_night_0d": {
"name": "Condition tonight"
},
"condition_night_1d": {
"name": "Condition night 1"
},
"condition_night_2d": {
"name": "Condition night 2"
},
"condition_night_3d": {
"name": "Condition night 3"
},
"condition_night_4d": {
"name": "Condition night 4"
},
"dew_point": {
"name": "Dew point"
},
"grass_pollen_0d": {
"name": "Grass pollen today",
"state_attributes": {
"level": {
"name": "Level",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen": {
"grass_pollen_1d": {
"name": "Grass pollen day 1",
"state_attributes": {
"level": {
"name": "Level",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen": {
"grass_pollen_2d": {
"name": "Grass pollen day 2",
"state_attributes": {
"level": {
"name": "Level",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen": {
"grass_pollen_3d": {
"name": "Grass pollen day 3",
"state_attributes": {
"level": {
"name": "Level",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"grass_pollen_4d": {
"name": "Grass pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"hours_of_sun_0d": {
"name": "Hours of sun today"
},
"hours_of_sun_1d": {
"name": "Hours of sun day 1"
},
"hours_of_sun_2d": {
"name": "Hours of sun day 2"
},
"hours_of_sun_3d": {
"name": "Hours of sun day 3"
},
"hours_of_sun_4d": {
"name": "Hours of sun day 4"
},
"mold_pollen_0d": {
"name": "Mold pollen today",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_1d": {
"name": "Mold pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_2d": {
"name": "Mold pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_3d": {
"name": "Mold pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_4d": {
"name": "Mold pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"precipitation": {
"name": "[%key:component::sensor::entity_component::precipitation::name%]"
},
"pressure_tendency": {
"name": "Pressure tendency",
"state": {
"steady": "Steady",
"rising": "Rising",
"falling": "Falling"
}
},
"ragweed_pollen_0d": {
"name": "Ragweed pollen today",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_1d": {
"name": "Ragweed pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_2d": {
"name": "Ragweed pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_3d": {
"name": "Ragweed pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_4d": {
"name": "Ragweed pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"realfeel_temperature": {
"name": "RealFeel temperature"
},
"realfeel_temperature_max_0d": {
"name": "RealFeel temperature max today"
},
"realfeel_temperature_max_1d": {
"name": "RealFeel temperature max day 1"
},
"realfeel_temperature_max_2d": {
"name": "RealFeel temperature max day 2"
},
"realfeel_temperature_max_3d": {
"name": "RealFeel temperature max day 3"
},
"realfeel_temperature_max_4d": {
"name": "RealFeel temperature max day 4"
},
"realfeel_temperature_min_0d": {
"name": "RealFeel temperature min today"
},
"realfeel_temperature_min_1d": {
"name": "RealFeel temperature min day 1"
},
"realfeel_temperature_min_2d": {
"name": "RealFeel temperature min day 2"
},
"realfeel_temperature_min_3d": {
"name": "RealFeel temperature min day 3"
},
"realfeel_temperature_min_4d": {
"name": "RealFeel temperature min day 4"
},
"realfeel_temperature_shade": {
"name": "RealFeel temperature shade"
},
"realfeel_temperature_shade_max_0d": {
"name": "RealFeel temperature shade max today"
},
"realfeel_temperature_shade_max_1d": {
"name": "RealFeel temperature shade max day 1"
},
"realfeel_temperature_shade_max_2d": {
"name": "RealFeel temperature shade max day 2"
},
"realfeel_temperature_shade_max_3d": {
"name": "RealFeel temperature shade max day 3"
},
"realfeel_temperature_shade_max_4d": {
"name": "RealFeel temperature shade max day 4"
},
"realfeel_temperature_shade_min_0d": {
"name": "RealFeel temperature shade min today"
},
"realfeel_temperature_shade_min_1d": {
"name": "RealFeel temperature shade min day 1"
},
"realfeel_temperature_shade_min_2d": {
"name": "RealFeel temperature shade min day 2"
},
"realfeel_temperature_shade_min_3d": {
"name": "RealFeel temperature shade min day 3"
},
"realfeel_temperature_shade_min_4d": {
"name": "RealFeel temperature shade min day 4"
},
"solar_irradiance_day_0d": {
"name": "Solar irradiance today"
},
"solar_irradiance_day_1d": {
"name": "Solar irradiance day 1"
},
"solar_irradiance_day_2d": {
"name": "Solar irradiance day 2"
},
"solar_irradiance_day_3d": {
"name": "Solar irradiance day 3"
},
"solar_irradiance_day_4d": {
"name": "Solar irradiance day 4"
},
"solar_irradiance_night_0d": {
"name": "Solar irradiance tonight"
},
"solar_irradiance_night_1d": {
"name": "Solar irradiance night 1"
},
"solar_irradiance_night_2d": {
"name": "Solar irradiance night 2"
},
"solar_irradiance_night_3d": {
"name": "Solar irradiance night 3"
},
"solar_irradiance_night_4d": {
"name": "Solar irradiance night 4"
},
"thunderstorm_probability_day_0d": {
"name": "Thunderstorm probability today"
},
"thunderstorm_probability_day_1d": {
"name": "Thunderstorm probability day 1"
},
"thunderstorm_probability_day_2d": {
"name": "Thunderstorm probability day 2"
},
"thunderstorm_probability_day_3d": {
"name": "Thunderstorm probability day 3"
},
"thunderstorm_probability_day_4d": {
"name": "Thunderstorm probability day 4"
},
"thunderstorm_probability_night_0d": {
"name": "Thunderstorm probability tonight"
},
"thunderstorm_probability_night_1d": {
"name": "Thunderstorm probability night 1"
},
"thunderstorm_probability_night_2d": {
"name": "Thunderstorm probability night 2"
},
"thunderstorm_probability_night_3d": {
"name": "Thunderstorm probability night 3"
},
"thunderstorm_probability_night_4d": {
"name": "Thunderstorm probability night 4"
},
"tree_pollen_0d": {
"name": "Tree pollen today",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_1d": {
"name": "Tree pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_2d": {
"name": "Tree pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_3d": {
"name": "Tree pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_4d": {
"name": "Tree pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index": {
"name": "UV index",
"state_attributes": {
"level": {
"name": "Level",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_0d": {
"name": "UV index today",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_1d": {
"name": "UV index day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_2d": {
"name": "UV index day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_3d": {
"name": "UV index day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_4d": {
"name": "UV index day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"wet_bulb_temperature": {
"name": "Wet bulb temperature"
},
"wind_speed": {
"name": "[%key:component::weather::entity_component::_::state_attributes::wind_speed::name%]"
},
"wind_chill_temperature": {
"name": "Wind chill temperature"
},
"wind_gust_speed": {
"name": "[%key:component::weather::entity_component::_::state_attributes::wind_gust_speed::name%]"
},
"wind_gust_speed_day_0d": {
"name": "Wind gust speed today"
},
"wind_gust_speed_day_1d": {
"name": "Wind gust speed day 1"
},
"wind_gust_speed_day_2d": {
"name": "Wind gust speed day 2"
},
"wind_gust_speed_day_3d": {
"name": "Wind gust speed day 3"
},
"wind_gust_speed_day_4d": {
"name": "Wind gust speed day 4"
},
"wind_gust_speed_night_0d": {
"name": "Wind gust speed tonight"
},
"wind_gust_speed_night_1d": {
"name": "Wind gust speed night 1"
},
"wind_gust_speed_night_2d": {
"name": "Wind gust speed night 2"
},
"wind_gust_speed_night_3d": {
"name": "Wind gust speed night 3"
},
"wind_gust_speed_night_4d": {
"name": "Wind gust speed night 4"
},
"wind_speed_day_0d": {
"name": "Wind speed today"
},
"wind_speed_day_1d": {
"name": "Wind speed day 1"
},
"wind_speed_day_2d": {
"name": "Wind speed day 2"
},
"wind_speed_day_3d": {
"name": "Wind speed day 3"
},
"wind_speed_day_4d": {
"name": "Wind speed day 4"
},
"wind_speed_night_0d": {
"name": "Wind speed tonight"
},
"wind_speed_night_1d": {
"name": "Wind speed night 1"
},
"wind_speed_night_2d": {
"name": "Wind speed night 2"
},
"wind_speed_night_3d": {
"name": "Wind speed night 3"
},
"wind_speed_night_4d": {
"name": "Wind speed night 4"
}
}
},
+14 -19
View File
@@ -17,7 +17,8 @@ from homeassistant.components.weather import (
ATTR_FORECAST_UV_INDEX,
ATTR_FORECAST_WIND_BEARING,
Forecast,
WeatherEntity,
SingleCoordinatorWeatherEntity,
WeatherEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@@ -27,9 +28,8 @@ from homeassistant.const import (
UnitOfSpeed,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.dt import utc_from_timestamp
from . import AccuWeatherDataUpdateCoordinator
@@ -40,7 +40,7 @@ from .const import (
ATTR_SPEED,
ATTR_VALUE,
ATTRIBUTION,
CONDITION_CLASSES,
CONDITION_MAP,
DOMAIN,
)
@@ -58,7 +58,7 @@ async def async_setup_entry(
class AccuWeatherEntity(
CoordinatorEntity[AccuWeatherDataUpdateCoordinator], WeatherEntity
SingleCoordinatorWeatherEntity[AccuWeatherDataUpdateCoordinator]
):
"""Define an AccuWeather entity."""
@@ -68,9 +68,6 @@ class AccuWeatherEntity(
def __init__(self, coordinator: AccuWeatherDataUpdateCoordinator) -> None:
"""Initialize."""
super().__init__(coordinator)
# Coordinator data is used also for sensors which don't have units automatically
# converted, hence the weather entity's native units follow the configured unit
# system
self._attr_native_precipitation_unit = UnitOfPrecipitationDepth.MILLIMETERS
self._attr_native_pressure_unit = UnitOfPressure.HPA
self._attr_native_temperature_unit = UnitOfTemperature.CELSIUS
@@ -79,18 +76,13 @@ class AccuWeatherEntity(
self._attr_unique_id = coordinator.location_key
self._attr_attribution = ATTRIBUTION
self._attr_device_info = coordinator.device_info
if self.coordinator.forecast:
self._attr_supported_features = WeatherEntityFeature.FORECAST_DAILY
@property
def condition(self) -> str | None:
"""Return the current condition."""
try:
return [
k
for k, v in CONDITION_CLASSES.items()
if self.coordinator.data["WeatherIcon"] in v
][0]
except IndexError:
return None
return CONDITION_MAP.get(self.coordinator.data["WeatherIcon"])
@property
def cloud_coverage(self) -> float:
@@ -180,9 +172,12 @@ class AccuWeatherEntity(
],
ATTR_FORECAST_UV_INDEX: item["UVIndex"][ATTR_VALUE],
ATTR_FORECAST_WIND_BEARING: item["WindDay"][ATTR_DIRECTION]["Degrees"],
ATTR_FORECAST_CONDITION: [
k for k, v in CONDITION_CLASSES.items() if item["IconDay"] in v
][0],
ATTR_FORECAST_CONDITION: CONDITION_MAP.get(item["IconDay"]),
}
for item in self.coordinator.data[ATTR_FORECAST]
]
@callback
def _async_forecast_daily(self) -> list[Forecast] | None:
"""Return the daily forecast in native units."""
return self.forecast
+2 -2
View File
@@ -74,9 +74,9 @@ class AcmedaBase(entity.Entity):
return self.roller.id
@property
def device_info(self) -> entity.DeviceInfo:
def device_info(self) -> dr.DeviceInfo:
"""Return the device info."""
return entity.DeviceInfo(
return dr.DeviceInfo(
identifiers={(DOMAIN, self.unique_id)},
manufacturer="Rollease Acmeda",
name=self.roller.name,
@@ -2,11 +2,11 @@
from __future__ import annotations
import asyncio
from asyncio import timeout
from contextlib import suppress
from typing import Any
import aiopulse
import async_timeout
import voluptuous as vol
from homeassistant import config_entries
@@ -43,7 +43,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
hubs: list[aiopulse.Hub] = []
with suppress(asyncio.TimeoutError):
async with async_timeout.timeout(5):
async with timeout(5):
async for hub in aiopulse.Hub.discover():
if hub.id not in already_configured:
hubs.append(hub)
+1 -1
View File
@@ -23,7 +23,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import ACCOUNT_ID, CONNECTION_TYPE, DOMAIN, LOCAL
+1 -1
View File
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/adax",
"iot_class": "local_polling",
"loggers": ["adax", "adax_local"],
"requirements": ["adax==0.2.0", "Adax-local==0.1.5"]
"requirements": ["adax==0.3.0", "Adax-local==0.1.5"]
}
+2 -2
View File
@@ -4,8 +4,8 @@ from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeError
from homeassistant.config_entries import SOURCE_HASSIO, ConfigEntry
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo, Entity
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity import Entity
from .const import DATA_ADGUARD_VERSION, DOMAIN, LOGGER
@@ -7,5 +7,5 @@
"integration_type": "service",
"iot_class": "local_polling",
"loggers": ["adguardhome"],
"requirements": ["adguardhome==0.6.1"]
"requirements": ["adguardhome==0.6.2"]
}
+2 -2
View File
@@ -1,12 +1,12 @@
"""Support for Automation Device Specification (ADS)."""
import asyncio
from asyncio import timeout
from collections import namedtuple
import ctypes
import logging
import struct
import threading
import async_timeout
import pyads
import voluptuous as vol
@@ -301,7 +301,7 @@ class AdsEntity(Entity):
self._ads_hub.add_device_notification, ads_var, plctype, update
)
try:
async with async_timeout.timeout(10):
async with timeout(10):
await self._event.wait()
except asyncio.TimeoutError:
_LOGGER.debug("Variable %s: Timeout during first update", ads_var)
@@ -125,6 +125,13 @@ class AdvantageAirAC(AdvantageAirAcEntity, ClimateEntity):
@property
def target_temperature(self) -> float | None:
"""Return the current target temperature."""
# If the system is in MyZone mode, and a zone is set, return that temperature instead.
if (
self._myzone
and not self._ac.get(ADVANTAGE_AIR_MYAUTO_ENABLED)
and not self._ac.get(ADVANTAGE_AIR_MYTEMP_ENABLED)
):
return self._myzone["setTemp"]
return self._ac["setTemp"]
@property
@@ -4,7 +4,7 @@ from typing import Any
from advantage_air import ApiError
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
@@ -62,6 +62,12 @@ class AdvantageAirAcEntity(AdvantageAirEntity):
def _ac(self) -> dict[str, Any]:
return self.coordinator.data["aircons"][self.ac_key]["info"]
@property
def _myzone(self) -> dict[str, Any] | None:
return self.coordinator.data["aircons"][self.ac_key]["zones"].get(
f"z{self._ac['myZone']:02}"
)
class AdvantageAirZoneEntity(AdvantageAirAcEntity):
"""Parent class for Advantage Air Zone Entities."""
@@ -4,7 +4,7 @@ from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import ADVANTAGE_AIR_STATE_ON, DOMAIN as ADVANTAGE_AIR_DOMAIN
@@ -3,7 +3,7 @@
from homeassistant.components.update import UpdateEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
+16 -5
View File
@@ -1,11 +1,16 @@
"""The AEMET OpenData component."""
import asyncio
import logging
from aemet_opendata.interface import AEMET
from aemet_opendata.exceptions import TownNotFound
from aemet_opendata.interface import AEMET, ConnectionOptions
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client
from .const import (
CONF_STATION_UPDATES,
@@ -27,11 +32,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
longitude = entry.data[CONF_LONGITUDE]
station_updates = entry.options.get(CONF_STATION_UPDATES, True)
aemet = AEMET(api_key)
weather_coordinator = WeatherUpdateCoordinator(
hass, aemet, latitude, longitude, station_updates
)
options = ConnectionOptions(api_key, station_updates, True)
aemet = AEMET(aiohttp_client.async_get_clientsession(hass), options)
try:
await aemet.select_coordinates(latitude, longitude)
except TownNotFound as err:
_LOGGER.error(err)
return False
except asyncio.TimeoutError as err:
raise ConfigEntryNotReady("AEMET OpenData API timed out") from err
weather_coordinator = WeatherUpdateCoordinator(hass, aemet)
await weather_coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})
+8 -11
View File
@@ -1,13 +1,14 @@
"""Config flow for AEMET OpenData."""
from __future__ import annotations
from aemet_opendata import AEMET
from aemet_opendata.exceptions import AuthError
from aemet_opendata.interface import AEMET, ConnectionOptions
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.schema_config_entry_flow import (
SchemaFlowFormStep,
SchemaOptionsFlowHandler,
@@ -39,8 +40,11 @@ class AemetConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
await self.async_set_unique_id(f"{latitude}-{longitude}")
self._abort_if_unique_id_configured()
api_online = await _is_aemet_api_online(self.hass, user_input[CONF_API_KEY])
if not api_online:
options = ConnectionOptions(user_input[CONF_API_KEY], False, True)
aemet = AEMET(aiohttp_client.async_get_clientsession(self.hass), options)
try:
await aemet.select_coordinates(latitude, longitude)
except AuthError:
errors["base"] = "invalid_api_key"
if not errors:
@@ -70,10 +74,3 @@ class AemetConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
) -> SchemaOptionsFlowHandler:
"""Get the options flow for this handler."""
return SchemaOptionsFlowHandler(config_entry, OPTIONS_FLOW)
async def _is_aemet_api_online(hass, api_key):
aemet = AEMET(api_key)
return await hass.async_add_executor_job(
aemet.get_conventional_observation_stations, False
)
+24 -101
View File
@@ -1,6 +1,19 @@
"""Constant values for the AEMET OpenData component."""
from __future__ import annotations
from aemet_opendata.const import (
AOD_COND_CLEAR_NIGHT,
AOD_COND_CLOUDY,
AOD_COND_FOG,
AOD_COND_LIGHTNING,
AOD_COND_LIGHTNING_RAINY,
AOD_COND_PARTLY_CLODUY,
AOD_COND_POURING,
AOD_COND_RAINY,
AOD_COND_SNOWY,
AOD_COND_SUNNY,
)
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -33,6 +46,7 @@ ATTR_API_FORECAST_TEMP = "temperature"
ATTR_API_FORECAST_TEMP_LOW = "templow"
ATTR_API_FORECAST_TIME = "datetime"
ATTR_API_FORECAST_WIND_BEARING = "wind_bearing"
ATTR_API_FORECAST_WIND_MAX_SPEED = "wind_max_speed"
ATTR_API_FORECAST_WIND_SPEED = "wind_speed"
ATTR_API_HUMIDITY = "humidity"
ATTR_API_PRESSURE = "pressure"
@@ -54,94 +68,16 @@ ATTR_API_WIND_MAX_SPEED = "wind-max-speed"
ATTR_API_WIND_SPEED = "wind-speed"
CONDITIONS_MAP = {
ATTR_CONDITION_CLEAR_NIGHT: {
"11n", # Despejado (de noche)
},
ATTR_CONDITION_CLOUDY: {
"14", # Nuboso
"14n", # Nuboso (de noche)
"15", # Muy nuboso
"15n", # Muy nuboso (de noche)
"16", # Cubierto
"16n", # Cubierto (de noche)
"17", # Nubes altas
"17n", # Nubes altas (de noche)
},
ATTR_CONDITION_FOG: {
"81", # Niebla
"81n", # Niebla (de noche)
"82", # Bruma - Neblina
"82n", # Bruma - Neblina (de noche)
},
ATTR_CONDITION_LIGHTNING: {
"51", # Intervalos nubosos con tormenta
"51n", # Intervalos nubosos con tormenta (de noche)
"52", # Nuboso con tormenta
"52n", # Nuboso con tormenta (de noche)
"53", # Muy nuboso con tormenta
"53n", # Muy nuboso con tormenta (de noche)
"54", # Cubierto con tormenta
"54n", # Cubierto con tormenta (de noche)
},
ATTR_CONDITION_LIGHTNING_RAINY: {
"61", # Intervalos nubosos con tormenta y lluvia escasa
"61n", # Intervalos nubosos con tormenta y lluvia escasa (de noche)
"62", # Nuboso con tormenta y lluvia escasa
"62n", # Nuboso con tormenta y lluvia escasa (de noche)
"63", # Muy nuboso con tormenta y lluvia escasa
"63n", # Muy nuboso con tormenta y lluvia escasa (de noche)
"64", # Cubierto con tormenta y lluvia escasa
"64n", # Cubierto con tormenta y lluvia escasa (de noche)
},
ATTR_CONDITION_PARTLYCLOUDY: {
"12", # Poco nuboso
"12n", # Poco nuboso (de noche)
"13", # Intervalos nubosos
"13n", # Intervalos nubosos (de noche)
},
ATTR_CONDITION_POURING: {
"27", # Chubascos
"27n", # Chubascos (de noche)
},
ATTR_CONDITION_RAINY: {
"23", # Intervalos nubosos con lluvia
"23n", # Intervalos nubosos con lluvia (de noche)
"24", # Nuboso con lluvia
"24n", # Nuboso con lluvia (de noche)
"25", # Muy nuboso con lluvia
"25n", # Muy nuboso con lluvia (de noche)
"26", # Cubierto con lluvia
"26n", # Cubierto con lluvia (de noche)
"43", # Intervalos nubosos con lluvia escasa
"43n", # Intervalos nubosos con lluvia escasa (de noche)
"44", # Nuboso con lluvia escasa
"44n", # Nuboso con lluvia escasa (de noche)
"45", # Muy nuboso con lluvia escasa
"45n", # Muy nuboso con lluvia escasa (de noche)
"46", # Cubierto con lluvia escasa
"46n", # Cubierto con lluvia escasa (de noche)
},
ATTR_CONDITION_SNOWY: {
"33", # Intervalos nubosos con nieve
"33n", # Intervalos nubosos con nieve (de noche)
"34", # Nuboso con nieve
"34n", # Nuboso con nieve (de noche)
"35", # Muy nuboso con nieve
"35n", # Muy nuboso con nieve (de noche)
"36", # Cubierto con nieve
"36n", # Cubierto con nieve (de noche)
"71", # Intervalos nubosos con nieve escasa
"71n", # Intervalos nubosos con nieve escasa (de noche)
"72", # Nuboso con nieve escasa
"72n", # Nuboso con nieve escasa (de noche)
"73", # Muy nuboso con nieve escasa
"73n", # Muy nuboso con nieve escasa (de noche)
"74", # Cubierto con nieve escasa
"74n", # Cubierto con nieve escasa (de noche)
},
ATTR_CONDITION_SUNNY: {
"11", # Despejado
},
AOD_COND_CLEAR_NIGHT: ATTR_CONDITION_CLEAR_NIGHT,
AOD_COND_CLOUDY: ATTR_CONDITION_CLOUDY,
AOD_COND_FOG: ATTR_CONDITION_FOG,
AOD_COND_LIGHTNING: ATTR_CONDITION_LIGHTNING,
AOD_COND_LIGHTNING_RAINY: ATTR_CONDITION_LIGHTNING_RAINY,
AOD_COND_PARTLY_CLODUY: ATTR_CONDITION_PARTLYCLOUDY,
AOD_COND_POURING: ATTR_CONDITION_POURING,
AOD_COND_RAINY: ATTR_CONDITION_RAINY,
AOD_COND_SNOWY: ATTR_CONDITION_SNOWY,
AOD_COND_SUNNY: ATTR_CONDITION_SUNNY,
}
FORECAST_MONITORED_CONDITIONS = [
@@ -186,16 +122,3 @@ FORECAST_MODE_ATTR_API = {
FORECAST_MODE_DAILY: ATTR_API_FORECAST_DAILY,
FORECAST_MODE_HOURLY: ATTR_API_FORECAST_HOURLY,
}
WIND_BEARING_MAP = {
"C": None,
"N": 0.0,
"NE": 45.0,
"E": 90.0,
"SE": 135.0,
"S": 180.0,
"SO": 225.0,
"O": 270.0,
"NO": 315.0,
}
+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.2.2"]
"requirements": ["AEMET-OpenData==0.4.5"]
}
+9 -1
View File
@@ -30,6 +30,7 @@ from .const import (
ATTR_API_FORECAST_TEMP_LOW,
ATTR_API_FORECAST_TIME,
ATTR_API_FORECAST_WIND_BEARING,
ATTR_API_FORECAST_WIND_MAX_SPEED,
ATTR_API_FORECAST_WIND_SPEED,
ATTR_API_HUMIDITY,
ATTR_API_PRESSURE,
@@ -99,6 +100,12 @@ FORECAST_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
name="Wind bearing",
native_unit_of_measurement=DEGREE,
),
SensorEntityDescription(
key=ATTR_API_FORECAST_WIND_MAX_SPEED,
name="Wind max speed",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
),
SensorEntityDescription(
key=ATTR_API_FORECAST_WIND_SPEED,
name="Wind speed",
@@ -206,13 +213,14 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
name="Wind max speed",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
device_class=SensorDeviceClass.WIND_SPEED,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_WIND_SPEED,
name="Wind speed",
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.WIND_SPEED,
state_class=SensorStateClass.MEASUREMENT,
),
)
+68 -16
View File
@@ -1,14 +1,20 @@
"""Support for the AEMET OpenData service."""
from typing import cast
from homeassistant.components.weather import (
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_NATIVE_PRECIPITATION,
ATTR_FORECAST_NATIVE_TEMP,
ATTR_FORECAST_NATIVE_TEMP_LOW,
ATTR_FORECAST_NATIVE_WIND_GUST_SPEED,
ATTR_FORECAST_NATIVE_WIND_SPEED,
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
ATTR_FORECAST_TIME,
ATTR_FORECAST_WIND_BEARING,
WeatherEntity,
DOMAIN as WEATHER_DOMAIN,
Forecast,
SingleCoordinatorWeatherEntity,
WeatherEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@@ -17,9 +23,9 @@ from homeassistant.const import (
UnitOfSpeed,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import (
ATTR_API_CONDITION,
@@ -30,11 +36,13 @@ from .const import (
ATTR_API_FORECAST_TEMP_LOW,
ATTR_API_FORECAST_TIME,
ATTR_API_FORECAST_WIND_BEARING,
ATTR_API_FORECAST_WIND_MAX_SPEED,
ATTR_API_FORECAST_WIND_SPEED,
ATTR_API_HUMIDITY,
ATTR_API_PRESSURE,
ATTR_API_TEMPERATURE,
ATTR_API_WIND_BEARING,
ATTR_API_WIND_MAX_SPEED,
ATTR_API_WIND_SPEED,
ATTRIBUTION,
DOMAIN,
@@ -64,6 +72,7 @@ FORECAST_MAP = {
ATTR_API_FORECAST_TEMP: ATTR_FORECAST_NATIVE_TEMP,
ATTR_API_FORECAST_TIME: ATTR_FORECAST_TIME,
ATTR_API_FORECAST_WIND_BEARING: ATTR_FORECAST_WIND_BEARING,
ATTR_API_FORECAST_WIND_MAX_SPEED: ATTR_FORECAST_NATIVE_WIND_GUST_SPEED,
ATTR_API_FORECAST_WIND_SPEED: ATTR_FORECAST_NATIVE_WIND_SPEED,
},
}
@@ -79,15 +88,33 @@ async def async_setup_entry(
weather_coordinator = domain_data[ENTRY_WEATHER_COORDINATOR]
entities = []
for mode in FORECAST_MODES:
name = f"{domain_data[ENTRY_NAME]} {mode}"
unique_id = f"{config_entry.unique_id} {mode}"
entities.append(AemetWeather(name, unique_id, weather_coordinator, mode))
entity_registry = er.async_get(hass)
# Add daily + hourly entity for legacy config entries, only add daily for new
# config entries. This can be removed in HA Core 2024.3
if entity_registry.async_get_entity_id(
WEATHER_DOMAIN,
DOMAIN,
f"{config_entry.unique_id} {FORECAST_MODE_HOURLY}",
):
for mode in FORECAST_MODES:
name = f"{domain_data[ENTRY_NAME]} {mode}"
unique_id = f"{config_entry.unique_id} {mode}"
entities.append(AemetWeather(name, unique_id, weather_coordinator, mode))
else:
entities.append(
AemetWeather(
domain_data[ENTRY_NAME],
config_entry.unique_id,
weather_coordinator,
FORECAST_MODE_DAILY,
)
)
async_add_entities(entities, False)
class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
class AemetWeather(SingleCoordinatorWeatherEntity[WeatherUpdateCoordinator]):
"""Implementation of an AEMET OpenData sensor."""
_attr_attribution = ATTRIBUTION
@@ -95,6 +122,9 @@ class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
_attr_native_pressure_unit = UnitOfPressure.HPA
_attr_native_temperature_unit = UnitOfTemperature.CELSIUS
_attr_native_wind_speed_unit = UnitOfSpeed.KILOMETERS_PER_HOUR
_attr_supported_features = (
WeatherEntityFeature.FORECAST_DAILY | WeatherEntityFeature.FORECAST_HOURLY
)
def __init__(
self,
@@ -117,15 +147,32 @@ class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
"""Return the current condition."""
return self.coordinator.data[ATTR_API_CONDITION]
@property
def forecast(self):
def _forecast(self, forecast_mode: str) -> list[Forecast]:
"""Return the forecast array."""
forecasts = self.coordinator.data[FORECAST_MODE_ATTR_API[self._forecast_mode]]
forecast_map = FORECAST_MAP[self._forecast_mode]
return [
{ha_key: forecast[api_key] for api_key, ha_key in forecast_map.items()}
for forecast in forecasts
]
forecasts = self.coordinator.data[FORECAST_MODE_ATTR_API[forecast_mode]]
forecast_map = FORECAST_MAP[forecast_mode]
return cast(
list[Forecast],
[
{ha_key: forecast[api_key] for api_key, ha_key in forecast_map.items()}
for forecast in forecasts
],
)
@property
def forecast(self) -> list[Forecast]:
"""Return the forecast array."""
return self._forecast(self._forecast_mode)
@callback
def _async_forecast_daily(self) -> list[Forecast]:
"""Return the daily forecast in native units."""
return self._forecast(FORECAST_MODE_DAILY)
@callback
def _async_forecast_hourly(self) -> list[Forecast]:
"""Return the hourly forecast in native units."""
return self._forecast(FORECAST_MODE_HOURLY)
@property
def humidity(self):
@@ -147,6 +194,11 @@ class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
"""Return the wind bearing."""
return self.coordinator.data[ATTR_API_WIND_BEARING]
@property
def native_wind_gust_speed(self):
"""Return the wind gust speed in native units."""
return self.coordinator.data[ATTR_API_WIND_MAX_SPEED]
@property
def native_wind_speed(self):
"""Return the wind speed."""
@@ -1,22 +1,21 @@
"""Weather data coordinator for the AEMET OpenData service."""
from __future__ import annotations
from dataclasses import dataclass, field
from asyncio import timeout
from datetime import timedelta
import logging
from typing import Any, Final
from aemet_opendata.const import (
AEMET_ATTR_DATE,
AEMET_ATTR_DAY,
AEMET_ATTR_DIRECTION,
AEMET_ATTR_ELABORATED,
AEMET_ATTR_FEEL_TEMPERATURE,
AEMET_ATTR_FORECAST,
AEMET_ATTR_HUMIDITY,
AEMET_ATTR_ID,
AEMET_ATTR_IDEMA,
AEMET_ATTR_MAX,
AEMET_ATTR_MIN,
AEMET_ATTR_NAME,
AEMET_ATTR_PRECIPITATION,
AEMET_ATTR_PRECIPITATION_PROBABILITY,
AEMET_ATTR_SKY_STATE,
@@ -25,24 +24,25 @@ from aemet_opendata.const import (
AEMET_ATTR_SPEED,
AEMET_ATTR_STATION_DATE,
AEMET_ATTR_STATION_HUMIDITY,
AEMET_ATTR_STATION_LOCATION,
AEMET_ATTR_STATION_PRESSURE,
AEMET_ATTR_STATION_PRESSURE_SEA,
AEMET_ATTR_STATION_TEMPERATURE,
AEMET_ATTR_STORM_PROBABILITY,
AEMET_ATTR_TEMPERATURE,
AEMET_ATTR_TEMPERATURE_FEELING,
AEMET_ATTR_WIND,
AEMET_ATTR_WIND_GUST,
ATTR_DATA,
)
from aemet_opendata.exceptions import AemetError
from aemet_opendata.forecast import ForecastValue
from aemet_opendata.helpers import (
get_forecast_day_value,
get_forecast_hour_value,
get_forecast_interval_value,
)
import async_timeout
from aemet_opendata.interface import AEMET
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util
@@ -57,6 +57,7 @@ from .const import (
ATTR_API_FORECAST_TEMP_LOW,
ATTR_API_FORECAST_TIME,
ATTR_API_FORECAST_WIND_BEARING,
ATTR_API_FORECAST_WIND_MAX_SPEED,
ATTR_API_FORECAST_WIND_SPEED,
ATTR_API_HUMIDITY,
ATTR_API_PRESSURE,
@@ -78,22 +79,19 @@ from .const import (
ATTR_API_WIND_SPEED,
CONDITIONS_MAP,
DOMAIN,
WIND_BEARING_MAP,
)
_LOGGER = logging.getLogger(__name__)
API_TIMEOUT: Final[int] = 120
STATION_MAX_DELTA = timedelta(hours=2)
WEATHER_UPDATE_INTERVAL = timedelta(minutes=10)
def format_condition(condition: str) -> str:
"""Return condition from dict CONDITIONS_MAP."""
for key, value in CONDITIONS_MAP.items():
if condition in value:
return key
_LOGGER.error('Condition "%s" not found in CONDITIONS_MAP', condition)
return condition
val = ForecastValue.parse_condition(condition)
return CONDITIONS_MAP.get(val, val)
def format_float(value) -> float | None:
@@ -112,128 +110,33 @@ def format_int(value) -> int | None:
return None
class TownNotFound(UpdateFailed):
"""Raised when town is not found."""
class WeatherUpdateCoordinator(DataUpdateCoordinator):
"""Weather data update coordinator."""
def __init__(self, hass, aemet, latitude, longitude, station_updates):
def __init__(
self,
hass: HomeAssistant,
aemet: AEMET,
) -> None:
"""Initialize coordinator."""
self.aemet = aemet
super().__init__(
hass, _LOGGER, name=DOMAIN, update_interval=WEATHER_UPDATE_INTERVAL
hass,
_LOGGER,
name=DOMAIN,
update_interval=WEATHER_UPDATE_INTERVAL,
)
self._aemet = aemet
self._station = None
self._town = None
self._latitude = latitude
self._longitude = longitude
self._station_updates = station_updates
self._data = {
"daily": None,
"hourly": None,
"station": None,
}
async def _async_update_data(self):
data = {}
async with async_timeout.timeout(120):
weather_response = await self._get_aemet_weather()
data = self._convert_weather_response(weather_response)
return data
async def _get_aemet_weather(self):
"""Poll weather data from AEMET OpenData."""
weather = await self.hass.async_add_executor_job(self._get_weather_and_forecast)
return weather
def _get_weather_station(self):
if not self._station:
self._station = (
self._aemet.get_conventional_observation_station_by_coordinates(
self._latitude, self._longitude
)
)
if self._station:
_LOGGER.debug(
"station found for coordinates [%s, %s]: %s",
self._latitude,
self._longitude,
self._station,
)
if not self._station:
_LOGGER.debug(
"station not found for coordinates [%s, %s]",
self._latitude,
self._longitude,
)
return self._station
def _get_weather_town(self):
if not self._town:
self._town = self._aemet.get_town_by_coordinates(
self._latitude, self._longitude
)
if self._town:
_LOGGER.debug(
"Town found for coordinates [%s, %s]: %s",
self._latitude,
self._longitude,
self._town,
)
if not self._town:
_LOGGER.error(
"Town not found for coordinates [%s, %s]",
self._latitude,
self._longitude,
)
raise TownNotFound
return self._town
def _get_weather_and_forecast(self):
"""Get weather and forecast data from AEMET OpenData."""
self._get_weather_town()
daily = self._aemet.get_specific_forecast_town_daily(self._town[AEMET_ATTR_ID])
if not daily:
_LOGGER.error(
'Error fetching daily data for town "%s"', self._town[AEMET_ATTR_ID]
)
hourly = self._aemet.get_specific_forecast_town_hourly(
self._town[AEMET_ATTR_ID]
)
if not hourly:
_LOGGER.error(
'Error fetching hourly data for town "%s"', self._town[AEMET_ATTR_ID]
)
station = None
if self._station_updates and self._get_weather_station():
station = self._aemet.get_conventional_observation_station_data(
self._station[AEMET_ATTR_IDEMA]
)
if not station:
_LOGGER.error(
'Error fetching data for station "%s"',
self._station[AEMET_ATTR_IDEMA],
)
if daily:
self._data["daily"] = daily
if hourly:
self._data["hourly"] = hourly
if station:
self._data["station"] = station
return AemetWeather(
self._data["daily"],
self._data["hourly"],
self._data["station"],
)
async def _async_update_data(self) -> dict[str, Any]:
"""Update coordinator data."""
async with timeout(API_TIMEOUT):
try:
await self.aemet.update()
except AemetError as error:
raise UpdateFailed(error) from error
weather_response = self.aemet.legacy_weather()
return self._convert_weather_response(weather_response)
def _convert_weather_response(self, weather_response):
"""Format the weather response correctly."""
@@ -428,6 +331,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
),
ATTR_API_FORECAST_TEMP: self._get_temperature(day, hour),
ATTR_API_FORECAST_TIME: dt_util.as_utc(forecast_dt).isoformat(),
ATTR_API_FORECAST_WIND_MAX_SPEED: self._get_wind_max_speed(day, hour),
ATTR_API_FORECAST_WIND_SPEED: self._get_wind_speed(day, hour),
ATTR_API_FORECAST_WIND_BEARING: self._get_wind_bearing(day, hour),
}
@@ -518,14 +422,14 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
def _get_station_id(self):
"""Get station ID from weather data."""
if self._station:
return self._station[AEMET_ATTR_IDEMA]
if self.aemet.station:
return self.aemet.station.get_id()
return None
def _get_station_name(self):
"""Get station name from weather data."""
if self._station:
return self._station[AEMET_ATTR_STATION_LOCATION]
if self.aemet.station:
return self.aemet.station.get_name()
return None
@staticmethod
@@ -561,19 +465,19 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
@staticmethod
def _get_temperature_feeling(day_data, hour):
"""Get temperature from weather data."""
val = get_forecast_hour_value(day_data[AEMET_ATTR_TEMPERATURE_FEELING], hour)
val = get_forecast_hour_value(day_data[AEMET_ATTR_FEEL_TEMPERATURE], hour)
return format_int(val)
def _get_town_id(self):
"""Get town ID from weather data."""
if self._town:
return self._town[AEMET_ATTR_ID]
if self.aemet.town:
return self.aemet.town.get_id()
return None
def _get_town_name(self):
"""Get town name from weather data."""
if self._town:
return self._town[AEMET_ATTR_NAME]
if self.aemet.town:
return self.aemet.town.get_name()
return None
@staticmethod
@@ -582,10 +486,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
val = get_forecast_hour_value(
day_data[AEMET_ATTR_WIND_GUST], hour, key=AEMET_ATTR_DIRECTION
)[0]
if val in WIND_BEARING_MAP:
return WIND_BEARING_MAP[val]
_LOGGER.error("%s not found in Wind Bearing map", val)
return None
return ForecastValue.parse_wind_direction(val)
@staticmethod
def _get_wind_bearing_day(day_data):
@@ -593,10 +494,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
val = get_forecast_day_value(
day_data[AEMET_ATTR_WIND], key=AEMET_ATTR_DIRECTION
)
if val in WIND_BEARING_MAP:
return WIND_BEARING_MAP[val]
_LOGGER.error("%s not found in Wind Bearing map", val)
return None
return ForecastValue.parse_wind_direction(val)
@staticmethod
def _get_wind_max_speed(day_data, hour):
@@ -623,12 +521,3 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
if val:
return format_int(val)
return None
@dataclass
class AemetWeather:
"""Class to harmonize weather data model."""
daily: dict = field(default_factory=dict)
hourly: dict = field(default_factory=dict)
station: dict = field(default_factory=dict)
+42 -1
View File
@@ -1 +1,42 @@
"""The aftership component."""
"""The AfterShip integration."""
from __future__ import annotations
from pyaftership import AfterShip, AfterShipException
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN
PLATFORMS: list[Platform] = [Platform.SENSOR]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up AfterShip from a config entry."""
hass.data.setdefault(DOMAIN, {})
session = async_get_clientsession(hass)
aftership = AfterShip(api_key=entry.data[CONF_API_KEY], session=session)
try:
await aftership.trackings.list()
except AfterShipException as err:
raise ConfigEntryNotReady from err
hass.data[DOMAIN][entry.entry_id] = aftership
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
@@ -0,0 +1,90 @@
"""Config flow for AfterShip integration."""
from __future__ import annotations
import logging
from typing import Any
from pyaftership import AfterShip, AfterShipException
import voluptuous as vol
from homeassistant.config_entries import ConfigFlow
from homeassistant.const import CONF_API_KEY, CONF_NAME
from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN
from homeassistant.data_entry_flow import AbortFlow, FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
class AfterShipConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for AfterShip."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the initial step."""
errors: dict[str, str] = {}
if user_input is not None:
self._async_abort_entries_match({CONF_API_KEY: user_input[CONF_API_KEY]})
try:
aftership = AfterShip(
api_key=user_input[CONF_API_KEY],
session=async_get_clientsession(self.hass),
)
await aftership.trackings.list()
except AfterShipException:
_LOGGER.exception("Aftership raised exception")
errors["base"] = "cannot_connect"
else:
return self.async_create_entry(title="AfterShip", data=user_input)
return self.async_show_form(
step_id="user",
data_schema=vol.Schema({vol.Required(CONF_API_KEY): str}),
errors=errors,
)
async def async_step_import(self, config: dict[str, Any]) -> FlowResult:
"""Import configuration from yaml."""
try:
self._async_abort_entries_match({CONF_API_KEY: config[CONF_API_KEY]})
except AbortFlow as err:
async_create_issue(
self.hass,
DOMAIN,
"deprecated_yaml_import_issue_already_configured",
breaks_in_ha_version="2024.4.0",
is_fixable=False,
issue_domain=DOMAIN,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml_import_issue_already_configured",
translation_placeholders={
"domain": DOMAIN,
"integration_title": "AfterShip",
},
)
raise err
async_create_issue(
self.hass,
HOMEASSISTANT_DOMAIN,
f"deprecated_yaml_{DOMAIN}",
breaks_in_ha_version="2024.4.0",
is_fixable=False,
issue_domain=DOMAIN,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml",
translation_placeholders={
"domain": DOMAIN,
"integration_title": "AfterShip",
},
)
return self.async_create_entry(
title=config.get(CONF_NAME, "AfterShip"),
data={CONF_API_KEY: config[CONF_API_KEY]},
)
@@ -2,6 +2,7 @@
"domain": "aftership",
"name": "AfterShip",
"codeowners": [],
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/aftership",
"iot_class": "cloud_polling",
"requirements": ["pyaftership==21.11.0"]
+36 -10
View File
@@ -11,6 +11,7 @@ from homeassistant.components.sensor import (
PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA,
SensorEntity,
)
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_NAME
from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@@ -20,6 +21,7 @@ from homeassistant.helpers.dispatcher import (
async_dispatcher_send,
)
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import Throttle
@@ -58,19 +60,43 @@ async def async_setup_platform(
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the AfterShip sensor platform."""
apikey = config[CONF_API_KEY]
name = config[CONF_NAME]
session = async_get_clientsession(hass)
aftership = AfterShip(api_key=apikey, session=session)
aftership = AfterShip(
api_key=config[CONF_API_KEY], session=async_get_clientsession(hass)
)
try:
await aftership.trackings.list()
except AfterShipException as err:
_LOGGER.error("No tracking data found. Check API key is correct: %s", err)
return
except AfterShipException:
async_create_issue(
hass,
DOMAIN,
"deprecated_yaml_import_issue_cannot_connect",
breaks_in_ha_version="2024.4.0",
is_fixable=False,
issue_domain=DOMAIN,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml_import_issue_cannot_connect",
translation_placeholders={
"integration_title": "AfterShip",
"url": "/config/integrations/dashboard/add?domain=aftership",
},
)
async_add_entities([AfterShipSensor(aftership, name)], True)
hass.async_create_task(
hass.config_entries.flow.async_init(
DOMAIN, context={"source": SOURCE_IMPORT}, data=config
)
)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AfterShip sensor entities based on a config entry."""
aftership: AfterShip = hass.data[DOMAIN][config_entry.entry_id]
async_add_entities([AfterShipSensor(aftership, config_entry.title)], True)
async def handle_add_tracking(call: ServiceCall) -> None:
"""Call when a user adds a new Aftership tracking from Home Assistant."""
@@ -1,4 +1,19 @@
{
"config": {
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"services": {
"add_tracking": {
"name": "Add tracking",
@@ -32,5 +47,15 @@
}
}
}
},
"issues": {
"deprecated_yaml_import_issue_already_configured": {
"title": "The {integration_title} YAML configuration import failed",
"description": "Configuring {integration_title} using YAML is being removed but the YAML configuration was already imported.\n\nRemove the YAML configuration and restart Home Assistant."
},
"deprecated_yaml_import_issue_cannot_connect": {
"title": "The {integration_title} YAML configuration import failed",
"description": "Configuring {integration_title} using YAML is being removed but there was an connection error importing your YAML configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the {integration_title} YAML configuration from your configuration.yaml file and continue to [set up the integration]({url}) manually."
}
}
}
@@ -13,7 +13,7 @@ from homeassistant.const import (
STATE_ALARM_DISARMED,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import CONNECTION, DOMAIN as AGENT_DOMAIN
+1 -1
View File
@@ -8,7 +8,7 @@ from homeassistant.components.camera import CameraEntityFeature
from homeassistant.components.mjpeg import MjpegCamera, filter_urllib3_logging
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import (
AddEntitiesCallback,
async_get_current_platform,
+2 -119
View File
@@ -3,13 +3,6 @@ from __future__ import annotations
from datetime import timedelta
import logging
from math import ceil
from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
from airly import Airly
from airly.exceptions import AirlyError
import async_timeout
from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM
from homeassistant.config_entries import ConfigEntry
@@ -17,53 +10,15 @@ from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, Pla
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util
from .const import (
ATTR_API_ADVICE,
ATTR_API_CAQI,
ATTR_API_CAQI_DESCRIPTION,
ATTR_API_CAQI_LEVEL,
CONF_USE_NEAREST,
DOMAIN,
MAX_UPDATE_INTERVAL,
MIN_UPDATE_INTERVAL,
NO_AIRLY_SENSORS,
)
from .const import CONF_USE_NEAREST, DOMAIN, MIN_UPDATE_INTERVAL
from .coordinator import AirlyDataUpdateCoordinator
PLATFORMS = [Platform.SENSOR]
_LOGGER = logging.getLogger(__name__)
def set_update_interval(instances_count: int, requests_remaining: int) -> timedelta:
"""Return data update interval.
The number of requests is reset at midnight UTC so we calculate the update
interval based on number of minutes until midnight, the number of Airly instances
and the number of remaining requests.
"""
now = dt_util.utcnow()
midnight = dt_util.find_next_time_expression_time(
now, seconds=[0], minutes=[0], hours=[0]
)
minutes_to_midnight = (midnight - now).total_seconds() / 60
interval = timedelta(
minutes=min(
max(
ceil(minutes_to_midnight / requests_remaining * instances_count),
MIN_UPDATE_INTERVAL,
),
MAX_UPDATE_INTERVAL,
)
)
_LOGGER.debug("Data will be update every %s", interval)
return interval
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Airly as config entry."""
api_key = entry.data[CONF_API_KEY]
@@ -131,75 +86,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
class AirlyDataUpdateCoordinator(DataUpdateCoordinator):
"""Define an object to hold Airly data."""
def __init__(
self,
hass: HomeAssistant,
session: ClientSession,
api_key: str,
latitude: float,
longitude: float,
update_interval: timedelta,
use_nearest: bool,
) -> None:
"""Initialize."""
self.latitude = latitude
self.longitude = longitude
# Currently, Airly only supports Polish and English
language = "pl" if hass.config.language == "pl" else "en"
self.airly = Airly(api_key, session, language=language)
self.use_nearest = use_nearest
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
async def _async_update_data(self) -> dict[str, str | float | int]:
"""Update data via library."""
data: dict[str, str | float | int] = {}
if self.use_nearest:
measurements = self.airly.create_measurements_session_nearest(
self.latitude, self.longitude, max_distance_km=5
)
else:
measurements = self.airly.create_measurements_session_point(
self.latitude, self.longitude
)
async with async_timeout.timeout(20):
try:
await measurements.update()
except (AirlyError, ClientConnectorError) as error:
raise UpdateFailed(error) from error
_LOGGER.debug(
"Requests remaining: %s/%s",
self.airly.requests_remaining,
self.airly.requests_per_day,
)
# Airly API sometimes returns None for requests remaining so we update
# update_interval only if we have valid value.
if self.airly.requests_remaining:
self.update_interval = set_update_interval(
len(self.hass.config_entries.async_entries(DOMAIN)),
self.airly.requests_remaining,
)
values = measurements.current["values"]
index = measurements.current["indexes"][0]
standards = measurements.current["standards"]
if index["description"] == NO_AIRLY_SENSORS:
raise UpdateFailed("Can't retrieve data: no Airly sensors in this area")
for value in values:
data[value["name"]] = value["value"]
for standard in standards:
data[f"{standard['pollutant']}_LIMIT"] = standard["limit"]
data[f"{standard['pollutant']}_PERCENT"] = standard["percent"]
data[ATTR_API_CAQI] = index["value"]
data[ATTR_API_CAQI_LEVEL] = index["level"].lower().replace("_", " ")
data[ATTR_API_CAQI_DESCRIPTION] = index["description"]
data[ATTR_API_ADVICE] = index["advice"]
return data
@@ -1,13 +1,13 @@
"""Adds config flow for Airly."""
from __future__ import annotations
from asyncio import timeout
from http import HTTPStatus
from typing import Any
from aiohttp import ClientSession
from airly import Airly
from airly.exceptions import AirlyError
import async_timeout
import voluptuous as vol
from homeassistant import config_entries
@@ -105,7 +105,7 @@ async def test_location(
measurements = airly.create_measurements_session_point(
latitude=latitude, longitude=longitude
)
async with async_timeout.timeout(10):
async with timeout(10):
await measurements.update()
current = measurements.current
@@ -0,0 +1,126 @@
"""DataUpdateCoordinator for the Airly integration."""
from asyncio import timeout
from datetime import timedelta
import logging
from math import ceil
from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
from airly import Airly
from airly.exceptions import AirlyError
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util
from .const import (
ATTR_API_ADVICE,
ATTR_API_CAQI,
ATTR_API_CAQI_DESCRIPTION,
ATTR_API_CAQI_LEVEL,
DOMAIN,
MAX_UPDATE_INTERVAL,
MIN_UPDATE_INTERVAL,
NO_AIRLY_SENSORS,
)
_LOGGER = logging.getLogger(__name__)
def set_update_interval(instances_count: int, requests_remaining: int) -> timedelta:
"""Return data update interval.
The number of requests is reset at midnight UTC so we calculate the update
interval based on number of minutes until midnight, the number of Airly instances
and the number of remaining requests.
"""
now = dt_util.utcnow()
midnight = dt_util.find_next_time_expression_time(
now, seconds=[0], minutes=[0], hours=[0]
)
minutes_to_midnight = (midnight - now).total_seconds() / 60
interval = timedelta(
minutes=min(
max(
ceil(minutes_to_midnight / requests_remaining * instances_count),
MIN_UPDATE_INTERVAL,
),
MAX_UPDATE_INTERVAL,
)
)
_LOGGER.debug("Data will be update every %s", interval)
return interval
class AirlyDataUpdateCoordinator(DataUpdateCoordinator):
"""Define an object to hold Airly data."""
def __init__(
self,
hass: HomeAssistant,
session: ClientSession,
api_key: str,
latitude: float,
longitude: float,
update_interval: timedelta,
use_nearest: bool,
) -> None:
"""Initialize."""
self.latitude = latitude
self.longitude = longitude
# Currently, Airly only supports Polish and English
language = "pl" if hass.config.language == "pl" else "en"
self.airly = Airly(api_key, session, language=language)
self.use_nearest = use_nearest
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
async def _async_update_data(self) -> dict[str, str | float | int]:
"""Update data via library."""
data: dict[str, str | float | int] = {}
if self.use_nearest:
measurements = self.airly.create_measurements_session_nearest(
self.latitude, self.longitude, max_distance_km=5
)
else:
measurements = self.airly.create_measurements_session_point(
self.latitude, self.longitude
)
async with timeout(20):
try:
await measurements.update()
except (AirlyError, ClientConnectorError) as error:
raise UpdateFailed(error) from error
_LOGGER.debug(
"Requests remaining: %s/%s",
self.airly.requests_remaining,
self.airly.requests_per_day,
)
# Airly API sometimes returns None for requests remaining so we update
# update_interval only if we have valid value.
if self.airly.requests_remaining:
self.update_interval = set_update_interval(
len(self.hass.config_entries.async_entries(DOMAIN)),
self.airly.requests_remaining,
)
values = measurements.current["values"]
index = measurements.current["indexes"][0]
standards = measurements.current["standards"]
if index["description"] == NO_AIRLY_SENSORS:
raise UpdateFailed("Can't retrieve data: no Airly sensors in this area")
for value in values:
data[value["name"]] = value["value"]
for standard in standards:
data[f"{standard['pollutant']}_LIMIT"] = standard["limit"]
data[f"{standard['pollutant']}_PERCENT"] = standard["percent"]
data[ATTR_API_CAQI] = index["value"]
data[ATTR_API_CAQI_LEVEL] = index["level"].lower().replace("_", " ")
data[ATTR_API_CAQI_DESCRIPTION] = index["description"]
data[ATTR_API_ADVICE] = index["advice"]
return data
+1 -2
View File
@@ -20,8 +20,7 @@ from homeassistant.const import (
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
+30 -92
View File
@@ -2,11 +2,6 @@
import datetime
import logging
from aiohttp.client_exceptions import ClientConnectorError
from pyairnow import WebServiceAPI
from pyairnow.conv import aqi_to_concentration
from pyairnow.errors import AirNowError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_API_KEY,
@@ -17,26 +12,9 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import (
ATTR_API_AQI,
ATTR_API_AQI_DESCRIPTION,
ATTR_API_AQI_LEVEL,
ATTR_API_AQI_PARAM,
ATTR_API_CAT_DESCRIPTION,
ATTR_API_CAT_LEVEL,
ATTR_API_CATEGORY,
ATTR_API_PM25,
ATTR_API_POLLUTANT,
ATTR_API_REPORT_DATE,
ATTR_API_REPORT_HOUR,
ATTR_API_STATE,
ATTR_API_STATION,
ATTR_API_STATION_LATITUDE,
ATTR_API_STATION_LONGITUDE,
DOMAIN,
)
from .const import DOMAIN
from .coordinator import AirNowDataUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
PLATFORMS = [Platform.SENSOR]
@@ -47,7 +25,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
api_key = entry.data[CONF_API_KEY]
latitude = entry.data[CONF_LATITUDE]
longitude = entry.data[CONF_LONGITUDE]
distance = entry.data[CONF_RADIUS]
# Station Radius is a user-configurable option
distance = entry.options[CONF_RADIUS]
# Reports are published hourly but update twice per hour
update_interval = datetime.timedelta(minutes=30)
@@ -65,11 +45,33 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = coordinator
# Listen for option changes
entry.async_on_unload(entry.add_update_listener(update_listener))
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Migrate old entry."""
_LOGGER.debug("Migrating from version %s", entry.version)
if entry.version == 1:
new_options = {CONF_RADIUS: entry.data[CONF_RADIUS]}
new_data = entry.data.copy()
del new_data[CONF_RADIUS]
entry.version = 2
hass.config_entries.async_update_entry(
entry, data=new_data, options=new_options
)
_LOGGER.info("Migration to version %s successful", entry.version)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
@@ -80,70 +82,6 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return unload_ok
class AirNowDataUpdateCoordinator(DataUpdateCoordinator):
"""Define an object to hold Airly data."""
def __init__(
self, hass, session, api_key, latitude, longitude, distance, update_interval
):
"""Initialize."""
self.latitude = latitude
self.longitude = longitude
self.distance = distance
self.airnow = WebServiceAPI(api_key, session=session)
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
async def _async_update_data(self):
"""Update data via library."""
data = {}
try:
obs = await self.airnow.observations.latLong(
self.latitude,
self.longitude,
distance=self.distance,
)
except (AirNowError, ClientConnectorError) as error:
raise UpdateFailed(error) from error
if not obs:
raise UpdateFailed("No data was returned from AirNow")
max_aqi = 0
max_aqi_level = 0
max_aqi_desc = ""
max_aqi_poll = ""
for obv in obs:
# Convert AQIs to Concentration
pollutant = obv[ATTR_API_AQI_PARAM]
concentration = aqi_to_concentration(obv[ATTR_API_AQI], pollutant)
data[obv[ATTR_API_AQI_PARAM]] = concentration
# Overall AQI is the max of all pollutant AQIs
if obv[ATTR_API_AQI] > max_aqi:
max_aqi = obv[ATTR_API_AQI]
max_aqi_level = obv[ATTR_API_CATEGORY][ATTR_API_CAT_LEVEL]
max_aqi_desc = obv[ATTR_API_CATEGORY][ATTR_API_CAT_DESCRIPTION]
max_aqi_poll = pollutant
# Copy other data from PM2.5 Value
if obv[ATTR_API_AQI_PARAM] == ATTR_API_PM25:
# Copy Report Details
data[ATTR_API_REPORT_DATE] = obv[ATTR_API_REPORT_DATE]
data[ATTR_API_REPORT_HOUR] = obv[ATTR_API_REPORT_HOUR]
# Copy Station Details
data[ATTR_API_STATE] = obv[ATTR_API_STATE]
data[ATTR_API_STATION] = obv[ATTR_API_STATION]
data[ATTR_API_STATION_LATITUDE] = obv[ATTR_API_STATION_LATITUDE]
data[ATTR_API_STATION_LONGITUDE] = obv[ATTR_API_STATION_LONGITUDE]
# Store Overall AQI
data[ATTR_API_AQI] = max_aqi
data[ATTR_API_AQI_LEVEL] = max_aqi_level
data[ATTR_API_AQI_DESCRIPTION] = max_aqi_desc
data[ATTR_API_POLLUTANT] = max_aqi_poll
return data
async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Handle options update."""
await hass.config_entries.async_reload(entry.entry_id)
+43 -3
View File
@@ -1,11 +1,12 @@
"""Config flow for AirNow integration."""
import logging
from typing import Any
from pyairnow import WebServiceAPI
from pyairnow.errors import AirNowError, EmptyResponseError, InvalidKeyError
import voluptuous as vol
from homeassistant import config_entries, core, exceptions
from homeassistant import config_entries, core, data_entry_flow, exceptions
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_RADIUS
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
@@ -48,7 +49,7 @@ async def validate_input(hass: core.HomeAssistant, data):
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for AirNow."""
VERSION = 1
VERSION = 2
async def async_step_user(self, user_input=None):
"""Handle the initial step."""
@@ -75,12 +76,14 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
errors["base"] = "unknown"
else:
# Create Entry
radius = user_input.pop(CONF_RADIUS)
return self.async_create_entry(
title=(
f"AirNow Sensor at {user_input[CONF_LATITUDE]},"
f" {user_input[CONF_LONGITUDE]}"
),
data=user_input,
options={CONF_RADIUS: radius},
)
return self.async_show_form(
@@ -94,12 +97,49 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
vol.Optional(
CONF_LONGITUDE, default=self.hass.config.longitude
): cv.longitude,
vol.Optional(CONF_RADIUS, default=150): int,
vol.Optional(CONF_RADIUS, default=150): vol.All(
int, vol.Range(min=5)
),
}
),
errors=errors,
)
@staticmethod
@core.callback
def async_get_options_flow(
config_entry: config_entries.ConfigEntry,
) -> config_entries.OptionsFlow:
"""Return the options flow."""
return OptionsFlowHandler(config_entry)
class OptionsFlowHandler(config_entries.OptionsFlowWithConfigEntry):
"""Handle an options flow for AirNow."""
async def async_step_init(
self, user_input: dict[str, Any] | None = None
) -> data_entry_flow.FlowResult:
"""Manage the options."""
if user_input is not None:
return self.async_create_entry(data=user_input)
options_schema = vol.Schema(
{
vol.Optional(CONF_RADIUS): vol.All(
int,
vol.Range(min=5),
),
}
)
return self.async_show_form(
step_id="init",
data_schema=self.add_suggested_values_to_schema(
options_schema, self.config_entry.options
),
)
class CannotConnect(exceptions.HomeAssistantError):
"""Error to indicate we cannot connect."""
+3 -2
View File
@@ -9,8 +9,9 @@ ATTR_API_CAT_DESCRIPTION = "Name"
ATTR_API_O3 = "O3"
ATTR_API_PM25 = "PM2.5"
ATTR_API_POLLUTANT = "Pollutant"
ATTR_API_REPORT_DATE = "HourObserved"
ATTR_API_REPORT_HOUR = "DateObserved"
ATTR_API_REPORT_DATE = "DateObserved"
ATTR_API_REPORT_HOUR = "HourObserved"
ATTR_API_REPORT_TZ = "LocalTimeZone"
ATTR_API_STATE = "StateCode"
ATTR_API_STATION = "ReportingArea"
ATTR_API_STATION_LATITUDE = "Latitude"

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