Compare commits

...

1944 Commits

Author SHA1 Message Date
Paulus Schoutsen
dbae448fe5 Merge pull request #59951 from home-assistant/rc 2021-11-19 12:40:52 -08:00
jjlawren
754fba1fb7 Ignore non-Sonos SSDP devices with Sonos-like identifiers (#59809) 2021-11-19 12:40:35 -08:00
Paulus Schoutsen
66d91544e8 Fix some tests 2021-11-18 22:33:46 -08:00
Erik Montnemery
04a36e0679 Remove test_check_package_version_does_not_match (#59785) 2021-11-18 20:25:59 -08:00
Paulus Schoutsen
090c65488d Bumped version to 2021.11.5 2021-11-18 16:18:05 -08:00
Paulus Schoutsen
ca74d3c79e Store: copy pending data (#59934) 2021-11-18 16:17:41 -08:00
Franck Nijhof
6bed1a8800 Fix Tuya back scaling in Climate and Humidifer entities (#59909) 2021-11-18 15:56:59 -08:00
PlusPlus-ua
7b6d55bd88 Bugfix in Tuya Number value scaling (#59903) 2021-11-18 15:56:58 -08:00
J. Nick Koston
684efd3fe5 Strip out deleted entities when configuring homekit (#59844) 2021-11-18 15:56:57 -08:00
Philip Allgaier
0d44328f42 Fix invalid string syntax in OwnTracks config flow translations (#59838) 2021-11-18 15:56:57 -08:00
Maikel Punie
845f75868d Bump velbusaio to 2021.11.7 (#59817) 2021-11-18 15:56:56 -08:00
starkillerOG
85abc4034d Fix Netgear init error on orbi models (#59799)
* fix Netgear init error on orbi models

* Update sensor.py
2021-11-18 15:56:55 -08:00
Simone Chemelli
7316e0555b Fix typo in attribute for Fritz (#59791) 2021-11-18 15:56:54 -08:00
Maciej Bieniek
711a00225f Use source list property instead of the attribute in Denon AVR integration (#59768) 2021-11-18 15:56:53 -08:00
Paulus Schoutsen
6069899179 Merge pull request #59753 from home-assistant/rc 2021-11-15 16:02:30 -08:00
Paulus Schoutsen
0e12bce174 Bumped version to 2021.11.4 2021-11-15 14:37:30 -08:00
Philip Allgaier
ca3c0057d3 Fix invalid string syntax in French OwnTracks config flow (#59752) 2021-11-15 14:37:25 -08:00
J. Nick Koston
6596ebfe43 Bump flux_led to 0.24.24 (#59740) 2021-11-15 14:37:24 -08:00
J. Nick Koston
702c57f389 Bump flux_led to 0.24.21 (#59662) 2021-11-15 14:37:07 -08:00
Clifford Roche
5c0e34db6c Bump greeclimate to 0.12.5 (#59730) 2021-11-15 14:32:53 -08:00
Aaron Bach
6a4274b280 Fix bug in AirVisual re-auth (#59685) 2021-11-15 14:32:52 -08:00
Anton Malko
c2aeeec129 Update aiolookin to 0.0.4 version (#59684) 2021-11-15 14:32:51 -08:00
J. Nick Koston
cb889281a6 Ensure flux_led bulbs turn on even if brightness is 0 (#59661) 2021-11-15 14:32:50 -08:00
Clifford Roche
f0fdd4388c Bump greecliamate to 0.12.4 (#59645) 2021-11-15 14:32:50 -08:00
J. Nick Koston
84358fa770 Bump zeroconf to 0.36.13 (#59644)
- Closes #59415
- Fixes #58453
- Fixes #57678

- Changelog: https://github.com/jstasiak/python-zeroconf/compare/0.36.12...0.36.13
2021-11-15 14:32:49 -08:00
J. Nick Koston
b122774b12 Bump zeroconf to 0.36.12 (#59133)
- Changelog: https://github.com/jstasiak/python-zeroconf/compare/0.36.11...0.36.12

Bugfix: Prevent service lookups from deadlocking if time abruptly moves backwards
2021-11-15 14:32:48 -08:00
Maciej Bieniek
0153580def Fix favorite RPM max value in Xiaomi Miio (#59631) 2021-11-15 14:31:23 -08:00
Michael Kowalchuk
7042fdb145 Always use a step size of 1 for z-wave js fans (#59622) 2021-11-15 14:31:22 -08:00
Simone Chemelli
e7aa90a5b1 Fix firmware status check for Fritz (#59578) 2021-11-15 14:31:21 -08:00
Joakim Sørensen
3c4d5e6c91 Override api url in norway_air (#59573) 2021-11-15 14:31:20 -08:00
jugla
89877a0685 Air visual : robustness at startup when evaluate time interval (#59544) 2021-11-15 14:31:19 -08:00
Paulus Schoutsen
6f3f16dbc9 Merge pull request #59555 from home-assistant/rc 2021-11-11 13:48:35 -08:00
Paulus Schoutsen
4cae92a533 Bumped version to 2021.11.3 2021-11-11 10:33:14 -08:00
uvjustin
0f0ca36aa8 Remove incomplete segment on stream restart (#59532) 2021-11-11 10:33:10 -08:00
Sergiy Maysak
04e1dc3a10 Fix wirelesstag switch arm/disarm (#59515) 2021-11-11 10:32:55 -08:00
Diogo Gomes
9cb4a5ca39 Ignore None state in state_change_event (#59485) 2021-11-11 10:31:39 -08:00
J. Nick Koston
c2f227bf16 Fix zeroconf with sonos v1 firmware (#59460) 2021-11-11 10:31:39 -08:00
Bram Kragten
66c5d75fbb Update frontend to 20211109.0 (#59451) 2021-11-11 10:31:38 -08:00
Keilin Bickar
aacc0edde7 Fix state of sense net_production sensor (#59391) 2021-11-11 10:31:37 -08:00
enegaard
5336845452 Fix rpi_camera setup hanging on initialization (#59316) 2021-11-11 10:31:36 -08:00
Paulus Schoutsen
435f278053 Merge pull request #59397 from home-assistant/rc 2021-11-08 21:44:29 -08:00
Paulus Schoutsen
4d62d41cc1 Bumped version to 2021.11.2 2021-11-08 20:48:00 -08:00
Bram Kragten
a6d795fce1 Update frontend to 20211108.0 (#59364) 2021-11-08 20:47:52 -08:00
Maikel Punie
0f4a35dd28 Bump velbusaio to 2021.11.6 (#59353) 2021-11-08 20:47:51 -08:00
Erik Montnemery
6d3e380f64 Bump paho-mqtt to 1.6.1 (#59339) 2021-11-08 20:47:51 -08:00
Kevin Hellemun
0873c3e92b Support generic xiaomi_miio vacuums (#59317)
* Support generic xiaomi_miio vacuums

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Fix lint

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Remove warning log

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>
2021-11-08 20:47:50 -08:00
Shay Levy
250160f007 Revert "Use DeviceInfo in shelly (#58520)" (#59315)
This reverts commit df6351f86b.
2021-11-08 20:47:49 -08:00
Maciej Bieniek
e1b8e2ded3 Remove illuminance sensor (#59305) 2021-11-08 20:47:48 -08:00
Simone Chemelli
8b7686f4f2 Fix condition for fritz integration (#59281) 2021-11-08 20:47:48 -08:00
Alexei Chetroi
f9fc92c36b Add Battery sensor regardless if the battery_percent_remaining attribute is supported or not (#59264) 2021-11-08 20:47:47 -08:00
Michael
a4253ff54e Increase timeout for fetching camera data on Synology DSM (#59237) 2021-11-08 20:47:46 -08:00
jan iversen
dcada92cef Fix tradfri group reachable access (#59217) 2021-11-08 20:47:45 -08:00
J. Nick Koston
a6ff89c3e6 Bump flux_led to 0.24.17 (#59211)
* Bump flux_led to 0.24.16

- Changes: https://github.com/Danielhiversen/flux_led/compare/0.24.15...0.24.16

- Fixes turning on/off when device is out of sync internally (seen on 0x33 firmware 8)

- Fixes #59190

* Bump to .17 to fix typing
2021-11-08 20:47:45 -08:00
Michael
f5d04de523 bump aioshelly to 1.0.4 (#59209) 2021-11-08 20:47:44 -08:00
Aaron Bach
1cc8e688c3 Change ReCollect Waste device class to date (#59180) 2021-11-08 20:47:43 -08:00
Aaron Bach
f47e64e218 Guard against missing data in ReCollect Waste (#59177) 2021-11-08 20:47:42 -08:00
Aaron Bach
3d8ca26c00 Guard against flaky SimpliSafe API calls (#59175) 2021-11-08 20:47:42 -08:00
Aaron Bach
e233730494 Bump aioguardian to 2021.11.0 (#59161) 2021-11-08 20:47:41 -08:00
J. Nick Koston
2309dd48c9 Bump flux_led to 0.24.15 (#59159)
- Changes: https://github.com/Danielhiversen/flux_led/compare/0.24.14...0.24.15

- Fixes color reporting for addressable devices
2021-11-08 20:47:40 -08:00
uvjustin
96c08df883 Adjust frag_duration setting in stream (#59135) 2021-11-08 20:47:39 -08:00
Austin Mroczek
c150a296d2 Bump total_connect_client to 2021.11.2 (#58818)
* update total_connect_client to 2021.10

* update for total_connect_client changes

* remove unused return value

* bump total_connect_client to 2021.11.1

* bump total_connect_client to 2021.11.2

* Move to public ResultCode

* load locations to prevent 'unknown error occurred'

* add test for zero locations

* Revert "load locations to prevent 'unknown error occurred'"

This reverts commit 28b8984be5b1c8839fc8077d8d59bdba97eacc38.

* Revert "add test for zero locations"

This reverts commit 77bf7908d508d539d6165fc986930b041b13ca97.
2021-11-08 20:47:39 -08:00
Paulus Schoutsen
2c21f0ad18 Merge pull request #59129 from home-assistant/rc 2021-11-04 21:57:54 -07:00
Paulus Schoutsen
189677c713 Bumped version to 2021.11.1 2021-11-04 20:14:07 -07:00
J. Nick Koston
039e361bff Bump flux_led to 0.24.14 (#59121) 2021-11-04 20:13:54 -07:00
Erik Montnemery
61918e0e44 Correct rescheduling of ExternalStatisticsTask (#59076) 2021-11-04 20:13:53 -07:00
Erik Montnemery
d9d8b538b0 Change minimum supported SQLite version to 3.31.0 (#59073) 2021-11-04 20:13:52 -07:00
Teemu R
c3882d0782 Remove use_time sensor from mjjsq humidifers (#59066) 2021-11-04 20:13:51 -07:00
Franck Nijhof
c6d651e283 Increase time to authorize OctoPrint (#59051) 2021-11-04 20:13:51 -07:00
Erik Montnemery
543381b6f2 Correct migration to recorder schema 22 (#59048) 2021-11-04 20:13:50 -07:00
Franck Nijhof
433743b0d1 Constrain urllib3 to >=1.26.5 (#59043) 2021-11-04 20:13:49 -07:00
Maikel Punie
58d88c8371 Bump velbus-aio to 2021.11.0 (#59040) 2021-11-04 20:13:49 -07:00
Glenn Waters
6e08cb815b Environment Canada config_flow fix (#59029) 2021-11-04 20:13:48 -07:00
ollo69
b125e2c425 Fix Nut resources option migration (#59020)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 20:13:47 -07:00
Teemu R
c4aa6af953 Accept all roborock vacuum models for xiaomi_miio (#59018) 2021-11-04 20:13:46 -07:00
Eugenio Panadero
dcf6004166 Bump aiopvpc to 2.2.1 (#59008)
happening because some config change in the ESIOS API server,
solved with a version patch in aiopvpc
(details in https://github.com/azogue/aiopvpc/pull/28)
2021-11-04 20:13:45 -07:00
Teemu R
af28d927b4 Fix timedelta-based sensors for xiaomi_miio (#58995) 2021-11-04 20:13:44 -07:00
Kevin Hellemun
5e6cac3834 Fix mop attribute for unified mop and water box in Xiaomi Miio (#58990)
Co-authored-by: Teemu R. <tpr@iki.fi>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 20:13:43 -07:00
Thomas G
397f303d6d Swap sharkiq vacuum is_docked with is_charging (#58975) 2021-11-04 20:13:43 -07:00
Franck Nijhof
85a4ee68e3 Merge pull request #58994 from home-assistant/rc 2021-11-03 16:31:23 +01:00
Franck Nijhof
e3c021a910 Bumped version to 2021.11.0 2021-11-03 15:03:43 +01:00
Bram Kragten
5568121251 Update frontend to 20211103.0 (#58988) 2021-11-03 15:02:39 +01:00
Sergio Gutierrez Alvarez
7afb38ff96 Fix battery_is_charging sensor on system bridge (#58980) 2021-11-03 15:02:35 +01:00
Daniel Hjelseth Høyer
1a08da7856 Bump pyMill to 0.7.4 (#58977) 2021-11-03 12:31:22 +01:00
Hans Oischinger
ded0785700 Fix broken ViCare burner & compressor sensors (#58962) 2021-11-03 10:50:09 +01:00
Robert Hillis
4163ba5dbf Add missing ZMW currency (#58959) 2021-11-03 10:50:06 +01:00
Dave T
dff98b024c Aurora abb defer unique_id assignment during yaml import (#58887)
* Defer unique_id assignment during yaml import if dark

* Back out variable name change to simplify.

* Allow config flow yaml setup deferral.

* Fix deferred yaml import

* Code review: only wrap necessary lines in try blk

* Code review: catch possible duplicate unique_id

* Simplify assignment.

* Code review: use timedelta to retry yaml import

* Code review: if a different error occurs, raise it

* Remove current config entry if duplicate unique_id

* Code review: remove unnecessary line.

* Code review: revert change, leave to other PR.

* Code review: remove unnecessary patch & min->sec

* Remove unnecessary else after raise.

* Increase test coverage.

* Check the number of config entries at each stage

* Raise ConfigEntryNotReady when connection fails.

* Log & return false for error on yaml import
2021-11-03 10:50:01 +01:00
Dave T
0a27b0f353 Aurora abb energy metering (#58454)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-03 10:49:58 +01:00
kodsnutten
ae99b678dd Fix unique_id of derived sent-sensors (#58298) 2021-11-03 10:49:54 +01:00
Franck Nijhof
e43cb82f29 Merge branch 'master' into rc 2021-11-03 10:22:39 +01:00
Paulus Schoutsen
608b89a6ad Bumped version to 2021.11.0b5 2021-11-02 11:28:43 -07:00
Ernst Klamer
a897dfa5b7 Add device configuration URL to Solar-Log (#58954) 2021-11-02 11:28:39 -07:00
Franck Nijhof
f8290ed026 Add support for IoT Switches (tdq) in Tuya (#58952) 2021-11-02 11:28:39 -07:00
Franck Nijhof
44334ea4da Extend Tuya Dimmer (tgq) support (#58951) 2021-11-02 11:28:38 -07:00
Erik Montnemery
e4143142bf Revert "Add offset support to time trigger" (#58947) 2021-11-02 11:28:37 -07:00
uvjustin
d4ba9a137c Add libav.mpegts to logging filter (#58937) 2021-11-02 11:28:36 -07:00
J. Nick Koston
6cd256f26b Fix recursive limit in find_next_time_expression_time (#58914)
* Fix recursive limit in find_next_time_expression_time

* Add test case

* Update test_event.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-02 11:28:35 -07:00
Maciej Bieniek
53cc9f35b9 Add configuration_url to Airly integration (#58911) 2021-11-02 11:28:34 -07:00
Tom Harris
26e925d885 Bump pyinsteon to 1.0.13 (#58908) 2021-11-02 11:28:34 -07:00
Kevin Hellemun
5e09685700 Add ROCKROBO_S6_PURE to supported vacuums for xiaomi_miio (#58901) 2021-11-02 11:28:33 -07:00
Franck Nijhof
c97160bf97 Fix incorrect entity category in Advantage Air (#58754) 2021-11-02 11:28:32 -07:00
Peter A. Bigot
34953c4c08 Fix color temp selection when brightness changed in Tuya light (#58341)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-02 11:28:31 -07:00
Paulus Schoutsen
632164f283 Bumped version to 2021.11.0b4 2021-11-01 10:56:45 -07:00
Otto Winter
b4021de2b0 Fix find_next_time_expression_time (#58894)
* Better tests

* Fix find_next_time_expression_time

* Add tests for Nov 7th 2021, Chicago transtion

* Update event tests

* Update test_event.py

* small performance improvement

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-01 10:56:35 -07:00
Maciej Bieniek
cfa4f24395 Handle None values in Xiaomi Miio integration (#58880)
* Initial commit

* Improve _handle_coordinator_update()

* Fix entity_description define

* Improve sensor & binary_sensor platforms

* Log None value

* Use coordinator variable

* Improve log strings

* Filter attributes with None values

* Add hasattr condition

* Update homeassistant/components/xiaomi_miio/sensor.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-01 10:56:35 -07:00
purcell-lab
77c25aa141 Fix renamed solaredge sensor keys (#58875) 2021-11-01 10:56:34 -07:00
Kevin Hellemun
7a0443e2a6 Add ROCKROBO_S4_MAX to supported xiaomi vacuums (#58826) 2021-11-01 10:56:33 -07:00
Marc Hörsken
6e9d759798 Fix OpenWeatherMap options not being initialized the first time (#58736) 2021-11-01 10:56:33 -07:00
Paulus Schoutsen
82b6bbda76 Merge pull request #58905 from home-assistant/2021.10.7 2021-11-01 10:51:04 -07:00
Paulus Schoutsen
ad55af4f67 Bumped version to 2021.10.7 2021-11-01 10:01:08 -07:00
Otto Winter
5295ffd6f1 Fix find_next_time_expression_time (#58894)
* Better tests

* Fix find_next_time_expression_time

* Add tests for Nov 7th 2021, Chicago transtion

* Update event tests

* Update test_event.py

* small performance improvement

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-01 10:01:01 -07:00
Simone Chemelli
96d1810019 Abort Fritz config flow for configured hostnames (#58140)
* Abort Fritz config flow for configured hostnames

* Fix tests + consider all combinations

* Fix async context
2021-11-01 09:59:18 -07:00
Brandon Rothweiler
fe5b9c75b3 Bump pymazda to 0.2.2 (#58113) 2021-11-01 09:59:17 -07:00
Erik Montnemery
97ba368950 Fix template sensor when name template doesn't render (#58088) 2021-11-01 09:59:17 -07:00
Michael Chisholm
698ceda7c5 Sleep between device requests to detect socket closes (#58087) 2021-11-01 09:59:16 -07:00
micha91
a3c0f7b167 Fix Yamaha MusicCast media_stop (#58024) 2021-11-01 09:59:15 -07:00
Andrey Kupreychik
ae463cb210 Abort keenetic SSDP discovery if the unique id is already setup or ignored (#58009) 2021-11-01 09:59:14 -07:00
starkillerOG
387413b5f5 Fix netgear NoneType and discovery (#57904) 2021-11-01 09:59:13 -07:00
Joakim Sørensen
2de74c86e3 Fix Tuya documentation URL (#57889) 2021-11-01 09:59:13 -07:00
Paulus Schoutsen
5ad1ec611d Bumped version to 2021.11.0b3 2021-10-31 20:24:09 -07:00
Maciej Bieniek
375e9fffd1 Add configuration_url to GIOS integration (#58840) 2021-10-31 20:24:03 -07:00
uvjustin
868fbc063d Improve part metadata in stream (#58822) 2021-10-31 20:24:02 -07:00
Robert Hillis
68b0413c98 Bump pyefergy to 0.1.3 (#58821) 2021-10-31 20:24:01 -07:00
Franck Nijhof
6908fa6127 Fix Plugwise not updating config entry with discovery information (#58819) 2021-10-31 20:24:00 -07:00
Kevin Hellemun
a0fba15267 Add ROCKROBO_E2 to supported vacuums for xiaomi_miio (#58817)
e1adea55f3/miio/vacuum.py (L129)
2021-10-31 20:24:00 -07:00
Michael Chisholm
7fae711e0c dlna_dmr: less eager discovery (#58780) 2021-10-31 20:23:59 -07:00
J. Nick Koston
e031917a30 Workaround brightness transition delay from off in older yeelight models (#58774) 2021-10-31 20:23:58 -07:00
purcell-lab
184342804e Fix solaredge energy sensor names (#58773) 2021-10-31 20:23:58 -07:00
Michael
2cc3290794 Fix channel.send in Discord (#58756) 2021-10-31 20:23:57 -07:00
J. Nick Koston
0f367722ed Bump zeroconf 0.36.11 (#58755) 2021-10-31 20:23:56 -07:00
Franck Nijhof
9b715383c3 Add configuration_url to OctoPrint (#58753)
* Add configuration_url to Octoprint

* fix device_info() return

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2021-10-31 20:23:56 -07:00
Kapernicus
8800ceba4d Bump nad_receiver to version 0.3.0 (#58751) 2021-10-31 20:23:55 -07:00
J. Nick Koston
2c509bfc06 Add additional test coverage for RYSE smartbridges with HK (#58746) 2021-10-31 20:23:55 -07:00
Anders Liljekvist
aae8c2f5dd Fix bluesound player internally used id (#58732) 2021-10-31 20:23:54 -07:00
Tobias Sauerwein
73dfa2d205 Set Netatmo max default temperature (#58718) 2021-10-31 20:23:53 -07:00
Kevin Hellemun
b6d2a7a562 Add ROCKROBO_S4 to xiaomi_miio vaccum models (#58682) 2021-10-31 20:23:53 -07:00
Erik Montnemery
8c2af76a51 Coerce to tuple before asserting the sequence (#58672) 2021-10-31 20:23:52 -07:00
Paulus Schoutsen
4086a40c05 Mobile app to update entity registry on re-register sensors (#58378)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-31 20:23:51 -07:00
Michael
2ea90b803c Add configuration url to AVM Fritz!Smarthome (#57711)
* add configuration url

* extend data update coordinator

* improve exception handling during data update

* store coordinator after first refresh

* fix light init
2021-10-31 20:23:51 -07:00
Paulus Schoutsen
94fb8adbdc Bumped version to 2021.11.0b2 2021-10-29 22:18:17 -07:00
J. Nick Koston
030f19c1ed Improve handling of invalid serial numbers in HomeKit Controller (#58723)
Fixes #58719
2021-10-29 22:18:05 -07:00
Aaron Bach
f930a1fb06 Fix bug with volumes in SimpliSafe set_system_properties service (#58721)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-29 22:18:04 -07:00
Matthias Alphart
d7531096ef reload service: remove entities before disconnection (#58712) 2021-10-29 22:18:04 -07:00
Aaron Bach
8cfdd49f36 Bump aioambient to 2021.10.1 (#58708) 2021-10-29 22:18:03 -07:00
jjlawren
9dda5c5f8a Disable polling Sonos switches by default (#58705) 2021-10-29 22:18:02 -07:00
J. Nick Koston
23c407969f Avoid doorbird device probe during discovery for known devices (#58701) 2021-10-29 22:18:01 -07:00
Franck Nijhof
9af8c60838 Fix OctoPrint SSDP URL parsing and discovered values (#58698) 2021-10-29 22:18:00 -07:00
Marc Mueller
45dc01b8f4 Fix round - wallbox (#58689)
* Fix wallbox round

* Add test case
2021-10-29 22:18:00 -07:00
Franck Nijhof
9821169cea Fix OctoPrint config flow schema (#58688) 2021-10-29 22:17:59 -07:00
Franck Nijhof
76593d6473 Fix spelling of OctoPrint (#58686) 2021-10-29 22:17:58 -07:00
Erik Montnemery
6d000c7d1a Fix regression in MQTT discovery (#58684)
* Fix regression in MQTT discovery

* Update test
2021-10-29 22:17:58 -07:00
Erik Montnemery
ec3f730b5e Convert RGBW and RGBWW colors in light turn_on calls (#58680) 2021-10-29 22:17:57 -07:00
Erik Montnemery
e9b67b3590 Update light turn_on schema to coerce colors to tuple before asserting sequence type (#58670)
* Make color_name_to_rgb return a tuple

* Tweak

* Tweak

* Update test

* Tweak test
2021-10-29 22:17:56 -07:00
mezz64
78082afa94 Bump pyhik to 0.3.0 (#58659) 2021-10-29 22:17:56 -07:00
Paulus Schoutsen
96d145f2f0 Bumped version to 2021.11.0b1 2021-10-28 21:18:17 -07:00
Franck Nijhof
6ca92812ae Fix missing temperature level on Tuya Heater (qn) devices (#58643) 2021-10-28 21:16:47 -07:00
Clifford Roche
26f3c1adea Bump greeclimate to 0.12.3 (#58635) 2021-10-28 21:16:47 -07:00
Aaron Bach
da2addf15a Fix incorrect RainMachine service helper (#58633) 2021-10-28 21:16:46 -07:00
Franck Nijhof
ffe008cbef Migrate Tuya unique IDs for switches & lights (#58631) 2021-10-28 21:16:45 -07:00
Hans Oischinger
6858191ca3 Improve ViCare energy units (#58630) 2021-10-28 21:16:45 -07:00
Bram Kragten
2546efe026 Update frontend to 20211028.0 (#58629) 2021-10-28 21:16:44 -07:00
Aaron Bach
92af39cf89 Fix missing triggered state in SimpliSafe alarm control panel (#58628) 2021-10-28 21:16:44 -07:00
J. Nick Koston
22773d0503 Add package constraint to websockets (#58626) 2021-10-28 21:16:43 -07:00
Chen-IL
23841c4b74 Add entity category for load sensors to AsusWRT (#58625) 2021-10-28 21:16:42 -07:00
J. Nick Koston
cc9b9a8f95 Fix uncaught exception in sense and retry later (#58623) 2021-10-28 21:16:42 -07:00
Robert Hillis
f942131d6a Fix missing config string in sense (#58597) 2021-10-28 21:16:41 -07:00
Guido Schmitz
c513516237 Add configuration_url to devolo Home Control (#58594) 2021-10-28 21:16:40 -07:00
Kevin Hellemun
e729ee24f8 Add ROCKROBO_S5_MAX to xiaomi_miio vacuum models (#58591)
* Add ROCKROBO_S5_MAX to xiaomi_miio vacuum models.

https://github.com/home-assistant/core/issues/58550

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* disable pylint for todo

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Minor refactor

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>
2021-10-28 21:16:40 -07:00
Robert Chmielowiec
15c2d5c278 Add configuration_url to Huawei LTE integration (#58584) 2021-10-28 21:16:39 -07:00
Paulus Schoutsen
a23c1624fb Fix default value for host in octoprint config flow (#58568) 2021-10-28 21:16:39 -07:00
Jesse Hills
d36df72701 Add configuration_url to ESPHome (#58565) 2021-10-28 21:16:03 -07:00
Jesse Hills
07c9d77414 Allow configuration_url to be removed/nullified from device registry (#58564)
* Allow configuration_url to be removed from device registry

* Add test

* Check for None before stringifying and url parsing

* Add type to dict to remove mypy error on assigning None
2021-10-28 21:12:47 -07:00
Quentame
928b8bcdbd Add configuration_url to iCloud integration (#58557) 2021-10-28 21:12:46 -07:00
Quentame
211041eb3a Add configuration_url to Freebox integration (#58555) 2021-10-28 21:12:46 -07:00
Paulus Schoutsen
e1f9ae4b96 Add entity category to ZHA battery (#58553) 2021-10-28 21:12:45 -07:00
Tom Matheussen
c9f4972b59 Add service configuration URL to Doorbird (#58549) 2021-10-28 21:12:44 -07:00
J. Nick Koston
49e0bbe3df Add tplink KP303 to discovery (#58548) 2021-10-28 21:12:44 -07:00
Avi Miller
2cae44c98a Return the real MAC address for LIFX bulbs with newer firmware (#58511) 2021-10-28 21:12:43 -07:00
J. Nick Koston
41007c2864 Reduce rainmachine intervals to avoid device overload (#58319) 2021-10-28 21:12:42 -07:00
Allen Porter
695bc3f23c Add an image placeholder for Nest WebRTC cameras (#58250) 2021-10-28 21:12:42 -07:00
Pieter Mulder
59bee8e830 Allow initialized callback to have arguments (#58129) 2021-10-28 21:12:41 -07:00
Dave Lowper
3650a5e2a4 Fix ZeroDivisionError on freebox/sensor (#57077)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-28 21:12:41 -07:00
Franck Nijhof
4fffeb1155 Bumped version to 2021.11.0b0 2021-10-27 22:01:47 +02:00
Bram Kragten
f56802f8e9 Update frontend to 20211027.0 (#58545) 2021-10-27 21:55:58 +02:00
Hans Oischinger
066610923e Support ViCare energy units (#58433) 2021-10-27 21:15:54 +02:00
yeahme49
15c4f3906b Blink arm camera (#56474) 2021-10-27 13:24:55 -05:00
hesselonline
6d6cb03848 Add Number platform to Wallbox (#52786)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2021-10-27 12:53:14 -05:00
Erik Montnemery
abb84d9756 Serialize dates and times to isoformat (#58157) 2021-10-27 10:51:38 -07:00
Marc Mueller
ced89d8f29 Enable strict typing - bmw_connected_drive (#58506) 2021-10-27 12:32:10 -05:00
epenet
b85217c62e Adjust onewire device model (#58516)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 12:19:55 -05:00
Austin Mroczek
baaaf3d2bc Add multi-partition support for TotalConnect (#55429) 2021-10-27 12:15:13 -05:00
Paulus Schoutsen
6cd83d1f66 Allow storing picture in area registry (#58539) 2021-10-27 10:11:05 -07:00
Erik Montnemery
f228537458 Fix energy cost sensor for MWh + improve tests (#58540) 2021-10-27 19:07:05 +02:00
jan iversen
55534cfedd When tradfri device goes offline set attr_available false (#58487) 2021-10-27 18:27:16 +02:00
Colin Robbins
39998f5387 Add kWh as cost option for gas (#58426)
* Add kWh as cost option for GAS

* Add kWh as cost option for GAS (pylint)

* Add kWh as cost option for GAS (make CONST)

* Change GAS_UNITS to VALID_ENERGY_UNITS

* Add test for Gas cost in kWh (2)

* Back off ENERGY_WATT_HOUR - unlikely for gas

* Add MEGA_WATT_HOUR support (2)

* Normalise pricing for MEGA_WATT_HOUR

* Normalise pricing for MEGA_WATT_HOUR
2021-10-27 18:06:32 +02:00
terminet85
0111b28a67 Add Solar Edge entity device and state class (#55902) 2021-10-27 16:42:56 +02:00
Erik Montnemery
41e14c4871 Correct changes in Allow extra keys in MQTT discovery messages (#58534) 2021-10-27 16:33:02 +02:00
Franck Nijhof
e70606eee9 Merge branch 'master' into dev 2021-10-27 16:11:28 +02:00
Erik Montnemery
bed4096430 Allow specifying a super template for async_track_template_result (#58477) 2021-10-27 16:07:17 +02:00
Erik Montnemery
dfa50a842a Simplify recorder PgSQL version checks (#58533) 2021-10-27 16:05:40 +02:00
drizzle1
a835917311 Add new orange pi boards to orangepi integration (#58392)
Co-authored-by: Pascal Roeleven <pascal.roeleven@hotmail.com>
Co-authored-by: Pascal Roeleven <dev@pascalroeleven.nl>
2021-10-27 16:00:01 +02:00
epenet
8c1935ce0e Use DeviceInfo in smappee (#58522)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 15:13:18 +02:00
Hans Oischinger
e656974e8d Increase setMode flexibility (#58491) 2021-10-27 14:22:16 +02:00
Hans Oischinger
8e8ccb7ce4 Fix Vicare unique_ids (#58531) 2021-10-27 14:19:26 +02:00
epenet
4be8d5ebde Use DeviceInfo in solarlog (#58526)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:57:45 +02:00
Franck Nijhof
bf693e85b1 Revert "Add warning when entity used in template doesn't exist" (#58527) 2021-10-27 13:53:26 +02:00
Diogo Gomes
ad48d78315 Simplify utility_meter code base with croniter (#55625) 2021-10-27 06:41:44 -05:00
J. Nick Koston
5581f58aad Handle accessories without a serial number in homekit_controller (#58498) 2021-10-27 06:24:57 -05:00
epenet
3b7f620aad Use DeviceInfo in sma (#58521)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:19:07 +02:00
epenet
6db7f73032 Use DeviceInfo in smartthings (#58523)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:17:47 +02:00
epenet
80bbfde07e Use DeviceInfo in smarttub (#58524)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:17:20 +02:00
epenet
8e62fc254a Use DeviceInfo in sms (#58525)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:16:59 +02:00
Franck Nijhof
6f14f954f9 Move WLED palette to config entity category (#58517) 2021-10-27 13:16:07 +02:00
epenet
df6351f86b Use DeviceInfo in shelly (#58520)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 13:44:47 +03:00
epenet
c1dc2bbf28 Use DeviceInfo in sharkiq (#58519)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 12:35:53 +02:00
epenet
9d3c75510f Use DeviceInfo in screenlogic (#58518)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 12:20:19 +02:00
Tom Schneider
a3dbe8e1e7 Fix media_player grouping while media_player is off (#58070)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-10-27 12:08:19 +02:00
epenet
8017a1e141 Adjust onewire device manufacturer (#58515)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 12:02:07 +02:00
Simone Chemelli
f8af44cac2 Fritz clean device_tracker service (#56535) 2021-10-27 05:01:06 -05:00
epenet
19eba5a3a0 Use constants for device registry checks (#58514)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-27 11:34:58 +02:00
Daniel Hjelseth Høyer
91b07cce20 Fix available for Mill (#58510) 2021-10-27 11:10:54 +02:00
muppet3000
ac08d05b76 Refactor Growatt sensor types (#56544) 2021-10-27 11:09:57 +02:00
uvjustin
35acca1063 Use PyAV fork and set hvc1 codec tag for H.265 (#58309) 2021-10-27 11:04:46 +02:00
Robert Svensson
f6e38fc4e2 Fix issue where UniFi DPI groups state wasn't being updated (#58502) 2021-10-27 10:35:44 +02:00
Andreas Sansano
d827b2ff56 Add myStrom LED Strip support extending rgblamp bulb_type (#57322) 2021-10-27 10:11:26 +02:00
J. Nick Koston
4653d0b079 Retry yeelight setup later if first update fails (#58446) 2021-10-27 10:09:45 +02:00
Colby Rome
58b6b5854d Bump quantum_gateway to v0.0.6 (#58452) 2021-10-27 10:04:14 +02:00
yeahme49
7d459c03c4 Fix min_humidity and max_humidity in homekit_controller (#58507)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-27 10:02:07 +02:00
Tyler Gibson
fab93491cc Fix Microsoft tts defaults to resolve broken settings (#58499) 2021-10-27 09:54:12 +02:00
Oliver Ou
433541862f Fix endpoints issues for Tuya Integration (#58411) 2021-10-26 20:19:26 -07:00
L-I-Am
3727fb5288 Broadlink Integration add support for LB1 (#50953)
Co-authored-by: Felipe Martins Diel <41558831+felipediel@users.noreply.github.com>
2021-10-26 21:20:11 -05:00
Brett Adams
b57b2e0243 Add Select platform to Advantage Air (#54747)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-26 20:58:14 -05:00
GitHub Action
e75e40f26e [ci skip] Translation update 2021-10-27 00:11:52 +00:00
Jesse Hills
c656bf1646 Add entity categories to esphome (#58495) 2021-10-27 12:53:39 +13:00
Aaron Bach
e2e19cf4b4 Bump aioambient to 2021.10.0 (#58494) 2021-10-26 17:44:40 -06:00
Glenn Waters
de4a4c3ba9 Add async lib and DataUpdateCoordinator for environment_canada (#57746) 2021-10-26 14:23:43 -07:00
Paulus Schoutsen
3715286969 Bump frontend to 20211026.0 (#58500) 2021-10-26 14:08:35 -07:00
Petro31
11034a93c3 Add average template function and filter (#57727) 2021-10-26 22:43:45 +02:00
Erik Montnemery
953ad71d22 Fix flaky UPNP test (#58493) 2021-10-26 13:35:09 -07:00
uvjustin
7024a5d7d9 Minor cleanup on stream (#58486)
* Allow for rounding errors in playlist validation

* Allow EXT-X-TARGETDURATION to change

* Reuse original source in test_record_stream_audio
2021-10-26 13:11:33 -07:00
epenet
577d8b1469 Fix device_info for xiaomi_aqara (#58465)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-26 13:11:05 -07:00
Robert Svensson
26c5f89207 Allow data sources to affect client tracker state after reconnecting to UniFi controller (#58269) 2021-10-26 22:04:16 +02:00
Daniel Hjelseth Høyer
6860acd28f Add Mill Sense Air sensors (#57776)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-26 21:15:33 +02:00
J. Nick Koston
c3c0a52929 Fix overriding the yeelight model if it is not known (#56967) 2021-10-26 21:04:19 +02:00
Philip Allgaier
5e88760fa7 Add translations for binary_sensor device classes (#58471)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-26 20:41:44 +02:00
Christian Bilevits
370c7a7ccf Bump pyotp to 2.6.0 (#58413) 2021-10-26 20:41:12 +02:00
Yuval Aboulafia
4db743d01f Remove Huawei Router (ADR-0004) (#57136) 2021-10-26 20:32:22 +02:00
Marc Mueller
b60934b10d Enable type checking - bmw_connected_drive (#58310) 2021-10-26 13:27:26 -05:00
Robert Svensson
47f6313e5b Add entity category to UniFi sensors and switches (#58484) 2021-10-26 20:23:20 +02:00
David F. Mulcahey
dd1154ad08 Bump ZHA quirks version to 0.0.63 (#58478) 2021-10-26 20:22:18 +02:00
Michael Chisholm
2ea537e1a6 dlna_dmr will gracefully handle device's rejection of subscription attempt (#58451) 2021-10-26 20:19:18 +02:00
FlavorFx
c5cf69dd9b Support Energy Sensor and Statistics in Homematic IP Cloud Integration (#57734)
* Update sensor.py

* Update test_device.py
2021-10-26 20:01:42 +02:00
Joakim Sørensen
f15840e7ff Limit add-on stats to add-ons that are running (#58479) 2021-10-26 19:58:17 +02:00
Martin Hjelmare
8b021ea06b Fix mysensors metric/non-metric gateway (#58476) 2021-10-26 18:47:10 +02:00
Martin Hjelmare
777589cdcc Add vlc telnet error handler decorator (#58468)
* Add vlc telnet error handler decorator

* Delint

* Update stale docstring
2021-10-26 18:43:33 +02:00
Joakim Plate
6b1b8c9880 Fjaraskupan number entity for periodic venting (#58179) 2021-10-26 10:53:13 -05:00
Paulus Schoutsen
5deeeed672 Add some more required/optional tags to condition schemas (#58424) 2021-10-26 17:25:15 +02:00
Allen Porter
f1b082a369 Publish nest event ids in camera related events (#58299) 2021-10-26 10:14:12 -05:00
Tom Brien
11d8bcf0e2 Register Coinbase service in Device Registry and provide configuration URL (#58472) 2021-10-26 16:39:46 +02:00
Tobias Sauerwein
3970a50553 Add reauth for Netatmo when token or token scope is invalid (#57487) 2021-10-26 16:09:10 +02:00
Robert Meijers
c9966a3b04 Add offset support to time trigger (#56838) 2021-10-26 15:52:43 +02:00
Allen Porter
d49c5d511b Add entity_category to SmartThings sensors (#58375) 2021-10-26 14:55:03 +02:00
Paulus Schoutsen
77d02d08bc Validate device automation capablities WS calls (#58444) 2021-10-26 14:47:07 +02:00
Erik Montnemery
ac5e32d648 Corrections for external statistics (#58469) 2021-10-26 14:05:45 +02:00
Tobias Sauerwein
ac4496b985 Use async_on_unload in Netatmo (#58461) 2021-10-26 13:43:54 +02:00
Erik Montnemery
e9ba5f3b4b Warn when recorder connects to an unsupported database (#58161) 2021-10-26 13:41:59 +02:00
Lukas
abf6edea6a Add device_class and state_class as optional attributes to the scrape sensor, to support statistics (#58164) 2021-10-26 13:39:34 +02:00
Brent Petit
6b9fb4bda3 Clean up rounding in Ecobee integration (#56319) 2021-10-26 07:37:43 -04:00
Ville Skyttä
b0e1bab58b Use http.HTTPStatus in util.aiohttp (#58456) 2021-10-26 13:13:27 +02:00
Maikel Punie
339d041925 Address late review of velbus (#58463) 2021-10-26 12:45:42 +02:00
Peter Nijssen
fd45a07677 Automatic spider supported fan speed and hvac (#58308)
* Automatic fill of supported fan speed and hvac

Automatic fill of supported fan speed and hvac

* Update manifest of spiderpy to 1.5.0

Update manifest of spiderpy to 1.5.0

* Update spiderpy version to 1.5.0 in requirements files

* Code formatted using Black

* Move support fan and hvac values into a class variable

* Move convert to HA value to hvac_modes method

* Log a warning for any invalid operation mode

* Update homeassistant/components/spider/climate.py

Update as suggested by @mivn23

Co-authored-by: mvn23 <schopdiedwaas@gmail.com>

* PR feedback update + dependency update

* Remove logging

Co-authored-by: Bennert <info@bennert.nl>
Co-authored-by: mvn23 <schopdiedwaas@gmail.com>
2021-10-26 11:05:03 +02:00
Andre Richter
486866b576 Use NamedTuple in Vallox service_to_method mapping (#58361) 2021-10-26 10:55:29 +02:00
Maikel Punie
00377a926e Fix velbus climate (#58408)
* Initial work on velbus climate fixes home-assistant/core#58382

* Clean up the code, fixed the preset_mode

* Fix climate havc mode return value
2021-10-26 10:53:13 +02:00
Matthias Alphart
d0cc2a530a Remove redundant value test in KNX Number entity (#58455)
* remove redundant test for out of bound value

* increase test coverage for number
2021-10-26 10:42:42 +02:00
Joakim Sørensen
d16304a201 Allow homeassistant prefix for device info configuration url (#58414)
* Allow panel prefix for device info configuration url

* Add to add-ons

* Use homeassistant as the prefix

* Update homeassistant/components/hassio/__init__.py

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

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-26 10:34:02 +02:00
J. Nick Koston
def7c80e71 Add support for fan groups (#57941)
* Add support for fan groups

* dry

* dry

* fix refactor error

* tweaks

* wip

* tweaks

* tweaks

* fix

* fixes

* coverage

* tweaks
2021-10-26 10:32:49 +02:00
Erik Montnemery
f594bc353b Add support for external statistics (#56607)
* Support external statistics

* Update tests

* Lint

* Adjust code after rebase

* Separate external statistic_id with :, add name to metadata

* Adjust tests

* Simplify get_metadata_with_session

* Address review comments

* Allow updating external statistics

* Validate input

* Adjust tests after rebase

* Pylint

* Adjust tests

* Improve test coverage
2021-10-26 10:26:50 +02:00
Teemu R
2f346a8048 Add speed & intensity controls to wled (#56862)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-26 00:04:19 -07:00
Kevin Stillhammer
bd5c131675 Add all kraken entities on startup (#58027)
* Add all kraken entities on startup

* Add _async_add_kraken_sensors

* Add test sensors available after restart

* Add test for config update

* Update tests/components/kraken/test_sensor.py

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

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2021-10-26 00:02:49 -07:00
Raman Gupta
cee51ead91 Add typehints to eight_sleep (#58442) 2021-10-25 21:33:44 -07:00
Robert Hillis
2517ba59b5 Fix Aurora abb incorrect attr (#58450) 2021-10-25 23:12:21 -05:00
Franck Nijhof
65b19da3ff Refactor input_select (#53334) 2021-10-25 20:38:06 -07:00
J. Nick Koston
3732ae738e Fix flux_led with RGB/W bulbs (model 0x44) (#58438) 2021-10-25 21:53:13 -05:00
Raman Gupta
207a5029e8 Use class attribute instead of property decorator (#58448) 2021-10-25 21:51:11 -04:00
Dave T
e22aaea5b2 Aurora abb (solar) configflow (#36300)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-25 20:04:42 -05:00
Michael Chisholm
44aa1fdc66 dlna_dmr won't support devices that don't provide all DMR services (#58374) 2021-10-25 19:54:58 -05:00
GitHub Action
a9a74e0415 [ci skip] Translation update 2021-10-26 00:12:23 +00:00
Paulus Schoutsen
cd3e51b3e7 Ensure domain is correct format (#58429) 2021-10-25 15:56:07 -07:00
Aaron Bach
a813608185 Re-add support for realtime SimpliSafe websocket (#58061)
* Migrate SimpliSafe to new web-based authentication

* Ensure we're storing data correctly

* Re-add support for realtime websocket in SimpliSafe

* Updates

* Better lock state from websocket

* Unknown states

* Streamline

* Unnecessary assertion

* Remove conditions we can't reach

* Require multiple error states from REST API before reacting

* Only disconnect when needed

* Typing

* Code review
2021-10-25 16:45:13 -06:00
Joakim Sørensen
8b223be073 Add binary sensor to add-ons to show if they are running (#58120) 2021-10-26 00:21:44 +02:00
Raman Gupta
b71773fd1d Set entity_category for node status sensor (#58434) 2021-10-25 17:54:13 -04:00
Aaron Bach
fbdd445999 Add WattTime config option for showing the monitored location on the map (#57129)
* Add WattTime configuration option for showing the monitored location on the map

* Update tests

* Explicitly pass entry

* Tests
2021-10-25 15:52:14 -06:00
Tim Rightnour
dad5d19a35 Add config flow to venstar (#58152) 2021-10-25 23:40:36 +02:00
jjlawren
2d6fa5c453 Fix updating sensor on unlinked Plex server (#58418) 2021-10-25 23:36:26 +02:00
Robert Hillis
f2a5c4602e Use DeviceInfo Class L-M (#58312) 2021-10-25 23:26:40 +02:00
Joakim Sørensen
6341dd4883 Add running device class to binary sensor (#58423) 2021-10-25 23:05:27 +02:00
Franck Nijhof
ba901bbbbf Complete Air Conditioner (kt) device support for Tuya (#58417) 2021-10-25 22:55:21 +02:00
Simone Chemelli
9d231ac2f8 Abort Fritz config flow for configured hostnames (#58140)
* Abort Fritz config flow for configured hostnames

* Fix tests + consider all combinations

* Fix async context
2021-10-25 22:44:23 +02:00
Raman Gupta
6bc5961f8a Switch to UpdateCoordinator for eight sleep (#52614)
* Switch to UpdateCoordinator for eight sleep

* use super call

* add self as codeowner

* Call API update method directly when creating coordinator

* Update homeassistant/components/eight_sleep/__init__.py

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

* Update homeassistant/components/eight_sleep/__init__.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-25 16:18:33 -04:00
Artem Draft
787de8ba66 bump pylgnetcast to 0.3.5 (#58419) 2021-10-25 21:58:17 +02:00
Hans Oischinger
d5142bcf51 Update PyVicare to 2.13.1 (#58422)
See changelog: https://github.com/somm15/PyViCare/releases/tag/2.13.1
2021-10-25 21:54:21 +02:00
Robert Hillis
7ccfaed736 Use DeviceInfo Class P-R (#58324) 2021-10-25 18:26:03 +02:00
Martin Hjelmare
5642350070 Add zwave_js sensor entity categories (#58416) 2021-10-25 18:14:44 +02:00
Franck Nijhof
585dcf84f1 Add state_class/entity_category to Verisure (#58403) 2021-10-25 16:32:29 +02:00
Alexei Chetroi
fe15736418 Log correct ZHA channel initialization step (#58410) 2021-10-25 16:30:00 +02:00
Alexei Chetroi
0c684cee51 Bump up ZHA dependencies (#58409) 2021-10-25 10:29:47 -04:00
David Le Brun
ffd7c998d0 Meteofrance - Add state_class to appropriate sensors (#58401)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-10-25 15:55:49 +02:00
epenet
42793927f7 Use ATTR_VIA_DEVICE constant in onewire tests (#58405)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 09:42:40 -04:00
epenet
29c95a0b34 Use constants in renault tests (#58406)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 09:42:01 -04:00
Brett Adams
71230f1f1c Advantage Air fix logic for motion sensors (#58376)
* Check correct value for motion

* Update fixture for motion

* Small cleanup in fixture
2021-10-25 14:14:41 +02:00
epenet
d7c41c0b05 Use DeviceInfo in asuswrt (#58399)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 14:12:49 +02:00
epenet
3c83f31dea Drop unused ATTR_ENTRY_TYPE constant (#58400)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 14:10:56 +02:00
Franck Nijhof
367c4d3676 Add Smart Kettle (bh) device support to Tuya (#58347) 2021-10-25 13:48:43 +02:00
Erik Montnemery
640a7fee9d Allow extra keys in MQTT discovery messages (#58390)
* Allow extra keys in MQTT discovery messages

* Remove extra keys
2021-10-25 13:47:06 +02:00
epenet
a8a8b532d0 Use DeviceInfo in mqtt (#58389)
* Use DeviceInfo in mqtt

* Updates for mypy

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 13:46:09 +02:00
Hans Oischinger
66ae116023 Update PyVicare to 2.13.0 (#57700)
* Update PyVicare to 2.x

With PyViCare 2.8.1 a breaking change was introduced which required changes on sensor and binary_sensor platforms:
- Circuit, Burner and Compressor have been separated out from the "main" device
- Multiple circuits and burners allow "duplicate sensors". We add the circuit or burner number as suffix now

At the same time the sensors are now created only when available:
During entity creation we can check if the value is provided for the user's device.

Sensors are not created by heating type anymore but instead the new API structure is reflected, providing device, burner or circuit sensors.

For details of breaking changes from PyViCare 1.x to 2.x please see https://github.com/somm15/PyViCare#breaking-changes-in-version-2x

* Integrate review comments

* variables cleanup

* Update unique ids

The unique ids shall not depend on the name but on the entity
description key (which should not change) and the id of the circuit,
burner or device.
2021-10-25 13:43:43 +02:00
Steven Looman
be4b1d15ec Add configuration_url to upnp device (#58385) 2021-10-25 13:19:04 +02:00
epenet
cfe1bbcda0 Use DeviceInfo in huawei-lte (#58398)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 13:17:55 +02:00
epenet
48c85fb839 Use DeviceInfo on esphome (#58396)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 13:16:53 +02:00
epenet
4d7c55ff0e Use DeviceInfo on hassio (#58397)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 13:15:00 +02:00
epenet
f3ca61ffe0 Use DeviceInfo on awair (#58395)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 13:09:21 +02:00
Brett Adams
e529a56430 Add entity category to Advantage Air (#58371) 2021-10-25 12:45:09 +02:00
Simone Chemelli
6d5dd3ee77 Add entity category to MotionEye (#58370) 2021-10-25 12:44:03 +02:00
J. Nick Koston
a36ac11d57 Add entity category to hunterdouglas_powerview (#58368) 2021-10-25 12:43:00 +02:00
J. Nick Koston
b09f6620eb Add entity category to nut battery (#58363) 2021-10-25 12:42:15 +02:00
Sagi Bernstein
07f268de1f Run nuki bidge.info() on executor (#58345)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-10-25 12:41:32 +02:00
Tobias Sauerwein
ab66efba0e Add entity categories to Netatmo (#58383) 2021-10-25 12:38:59 +02:00
epenet
c47ac1d9d6 Use DeviceInfo on accuweather (#58394)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 12:38:38 +02:00
epenet
9d952d0242 Use DeviceInfo in control4 (#58388)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 12:23:11 +02:00
Steven Looman
e5e38ace6c Bump async-upnp-client to 0.22.10 (#58387) 2021-10-25 12:22:19 +02:00
Franck Nijhof
21709e7170 Upgrade Tuya IoT Python SDK to 0.6.3 (#58240) 2021-10-25 12:09:54 +02:00
epenet
ef48238ac3 Adjust DeviceInfo registration on zwave_js (#58391)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-25 12:05:45 +02:00
Andre Richter
b3f6be0cec Minor cleanups for Vallox (#58384) 2021-10-25 10:15:18 +02:00
gjong
f30963e15b Upgrade youless library to fix LS110 power total is not a number (#58333) 2021-10-25 09:46:08 +02:00
Franck Nijhof
027e167d95 Add support for unit of measurement in MQTT number platform (#58343) 2021-10-25 09:44:43 +02:00
Simone Chemelli
34b936da98 Add entity category to Neato (#58367) 2021-10-25 09:44:15 +02:00
J. Nick Koston
3abb4bd3e5 Add configuration_url to isy994 (#58372) 2021-10-25 09:37:37 +02:00
Franck Nijhof
35872a212b Add Temperature and Humidity Sensor (wsdcg) device support to Tuya (#58335) 2021-10-25 09:19:00 +02:00
J. Nick Koston
80b12346d8 Add entity category to elkm1 (#58364) 2021-10-25 09:00:06 +02:00
J. Nick Koston
837e343c56 Add entity category to gogogate2 (#58366) 2021-10-25 08:59:06 +02:00
J. Nick Koston
1a261f7802 Add entity category to roomba (#58362) 2021-10-25 08:56:51 +02:00
J. Nick Koston
d05127cb71 Add entity category to august (#58359) 2021-10-25 08:56:15 +02:00
jan iversen
79f68b050a Bump pytradfri to 7.1.1 (#58379) 2021-10-25 08:55:50 +02:00
J. Nick Koston
9885b3de47 Fix configuration url in gogogate2 (#58365)
- I missed that https:// needed to be prepended because the existing
  device already had the url from previous testing
2021-10-25 08:16:15 +02:00
Patrik Lindgren
c950f1ccfa Initial support for Tradfri STARKVIND Air purifier (#58295)
* Initial commit

* Update homeassistant/components/tradfri/const.py

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

* Feedback

* Updates

* Remove logger

* Fix codestring

* Update homeassistant/components/tradfri/fan.py

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

* Update homeassistant/components/tradfri/fan.py

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

* Update homeassistant/components/tradfri/fan.py

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

* Percent value

* Add tests

* Typo

* Update tests

* Fix util function

* Update homeassistant/components/tradfri/fan.py

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

* Update after review

* Review

* Coverage

* Fix test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-25 08:15:46 +02:00
Paulus Schoutsen
a69416521e Add entity category to MyQ (#58377)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-24 22:21:20 -07:00
uvjustin
06008bc343 Fix EXT-X-PROGRAM-DATE-TIME in stream (#58036)
* Fix EXT-X-PROGRAM-DATE-TIME in stream

* Update fragment duration comments in worker

* Update duration test in worker

* Augment test on low latency playlists

* Reset start_time on discontinuity
2021-10-25 11:33:41 +08:00
Marvin Wichmann
e9ca511327 Add support for entity category for necessary KNX platforms (#58357) 2021-10-24 20:12:26 -07:00
GitHub Action
f3a1c81e22 [ci skip] Translation update 2021-10-25 00:12:33 +00:00
Andre Richter
2fe758edd4 Add Cell State sensor to Vallox (#58358) 2021-10-24 13:30:09 -10:00
jjlawren
5a20d9fce3 Set Sonos alarm and battery entity categories (#58340) 2021-10-24 12:52:15 -10:00
jjlawren
3672889609 Add warning if Sonos not linked to Plex (#58150) 2021-10-24 12:51:45 -10:00
J. Nick Koston
2a6247cf20 Fix lookin push updates when sensor entities disabled (#58346) 2021-10-24 11:53:11 -10:00
jjlawren
0600a21e02 Allow advanced Plex play_media search options (#56226) 2021-10-24 11:22:16 -10:00
Andre Richter
6c01ed8d97 Use DataUpdateCoordinator in Vallox (#56966) 2021-10-24 11:21:35 -10:00
J. Nick Koston
02372cd65a Fix lookin device validation in config flow (#58349)
These need to be prefixed with http:// or validation will fail
2021-10-24 14:13:49 -07:00
Marvin Wichmann
85ecb7ce3a feat: Add unit of measurement to KNX number platform (#58353) 2021-10-24 13:16:19 -07:00
javicalle
137a346d15 add BitronVideo AV2021 ZHA stick (#58337) 2021-10-24 15:57:29 -04:00
Franck Nijhof
c6a278a544 Pin pytest-github-actions-annotate-failures to fix broken CI (#58351) 2021-10-24 09:22:17 -10:00
alexanv1
f4c2c54e84 Extend Tuya Humidifier (#58260) 2021-10-24 20:34:05 +02:00
Ivan Belokobylskiy
8c3b711c5e Support suburban railways stations in yandex transport (#58281)
* Add unique ids to yandex_transport entities

* Add support for railway routes to yandex_transport component

* Test suburban timetable parsed correctly

* Remove redundant default value

* Make unique_id unique and stable

* Remove unique_id from yandex_transport component
2021-10-24 17:36:35 +02:00
Ville Skyttä
0de95610e3 Use http.HTTPStatus in components/[wxyz]* (#58330) 2021-10-24 17:25:01 +02:00
Ville Skyttä
1a9bb47f78 Add more Huawei LTE sensor state classes (#57983) 2021-10-24 17:01:50 +03:00
Franck Nijhof
f2923d8a91 Add PM2.5 Sensor (pm25) device support to Tuya (#58329) 2021-10-24 07:01:17 -07:00
Franck Nijhof
a225d28089 Add Methane Detector (jwbj) device support to Tuya (#58328) 2021-10-24 07:01:03 -07:00
Franck Nijhof
539fdaad69 Add VOC Sensor (voc) device support to Tuya (#58332) 2021-10-24 06:58:11 -07:00
TheNogl
0f965c6b31 Add long-term statistics for Ondilo ICO (#58290) 2021-10-24 11:52:25 +02:00
Franck Nijhof
6f0c1d2345 Complete Solar Light (tyndj) device support to Tuya (#58302) 2021-10-24 11:46:46 +02:00
J. Nick Koston
438ca73aba Complete removal of auto_start, zeroconf_default_interface, and safe_mode from HomeKit (#58320) 2021-10-24 11:46:35 +02:00
Allen Porter
31aa168bbb Fix bug in MediaSource definintion and enable strict type checking (#58321) 2021-10-24 11:39:39 +02:00
Maciej Bieniek
0aa06d22f1 Move configuration_url abbreviation to MQTT DEVICE_ABBREVIATIONS const (#58313) 2021-10-24 11:35:46 +02:00
Robert Hillis
2df13d0118 Use DeviceInfo Class N-O (#58314) 2021-10-24 11:34:45 +02:00
J. Nick Koston
0c94fcecf6 Pull configuration_url from library in gogogate2 (#58318) 2021-10-24 11:32:45 +02:00
Ville Skyttä
cc0c79ac9a Use http.HTTPStatus in components/[tuv]* (#58325) 2021-10-24 11:27:17 +02:00
Matthias Alphart
45a98aee10 Configurable mode for KNX number entity (#58268) 2021-10-24 11:24:05 +02:00
Simone Chemelli
da7e26c287 Filter by connections instead of identifiers for Shelly (#58305)
* Fix connections

* Switch to helper
2021-10-24 09:51:02 +02:00
GitHub Action
30fb619095 [ci skip] Translation update 2021-10-24 00:12:57 +00:00
jjlawren
084fd2d19f Expose Sonos features as switch entities (#54502)
Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
2021-10-23 23:11:27 +02:00
Nathan Spencer
21daffe905 Bump pylitterbot to 2021.10.1 (#58307) 2021-10-23 11:07:28 -10:00
Daniel Hjelseth Høyer
26f0ea4a24 OpenGarage binary sensor (#58030)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-23 10:53:49 -10:00
fOmey
8bfd5e4d06 Add switch platform to Tuya Light (dj) devices (#58196)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-10-23 22:44:22 +02:00
Franck Nijhof
75e561f1fa Complete Smart Camera (sp) device support to Tuya (#58301) 2021-10-23 12:24:40 -07:00
Chris Browet
e961d92b5e Allow service data template to return a dict (#57105) 2021-10-23 21:10:30 +02:00
epenet
9ae7f0ecd7 Add new attribute constants for DeviceInfo registration (#58289)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-23 21:01:34 +02:00
Ville Skyttä
380cff167e Use HTTPStatus in components/[nop]* (#58279) 2021-10-23 20:56:30 +02:00
Ville Skyttä
5626cc4524 Use http.HTTPStatus in components/r* (#58288) 2021-10-23 20:53:39 +02:00
J. Nick Koston
5958e6a3f9 Ensure zeroconf uses the newest non-link local address in discovery (#58257) 2021-10-23 08:50:19 -10:00
Ville Skyttä
50e0c58310 Use http.HTTPStatus in components/s* (#58291) 2021-10-23 20:49:04 +02:00
Robert Hillis
05671557f0 Use DeviceInfo Class I-K (#58300) 2021-10-23 20:42:50 +02:00
Ville Skyttä
b52c5c82b1 Use http.HTTPStatus in components/[gh]* (#58246) 2021-10-23 20:34:53 +02:00
Aaron Bach
583ae3c953 Make sure Flu Near You data storage conforms to standards (#57808) 2021-10-23 20:18:34 +02:00
Franck Nijhof
43abf38d92 Complete Heater (qn) device support to Tuya (#58296) 2021-10-23 20:06:46 +02:00
Franck Nijhof
7d0fc8ca98 Add Pressure Sensor (ylcg) device support to Tuya (#58294) 2021-10-23 09:16:28 -07:00
Franck Nijhof
3cdfb84b79 Add Gas Detector (rqbj) device support to Tuya (#58293) 2021-10-23 09:15:52 -07:00
Franck Nijhof
0a272669ed Add CO Detector (cobj) device support to Tuya (#58292) 2021-10-23 09:15:12 -07:00
ANMalko
581d9ec281 Update aiolookin to 0.0.3 version (#58249) 2021-10-23 16:17:25 +02:00
Robert Hillis
4a8e9df026 Use DeviceInfo Class H (#58276) 2021-10-23 15:35:33 +02:00
jrester
f176dc512c Update tesla_powerwall to 0.3.12 (#58284) 2021-10-23 15:35:23 +02:00
Robert Hillis
cbf236b2f6 Fix modem callerid callback (#58275)
* fix async_on_hass_stop

* fix
2021-10-23 15:15:43 +02:00
Franck Nijhof
a4641a91ff Ensure all devices show up in Tuya (#58280) 2021-10-23 15:00:53 +02:00
Joakim Sørensen
23e362faf3 Bump awesomeversion from 21.8.1 to 21.10.1 (#58258) 2021-10-23 14:00:18 +02:00
Joakim Sørensen
2a7192167d Use regex instead of partition to section package definition (#58278) 2021-10-23 13:19:56 +02:00
Franck Nijhof
e38754a836 Address Watson TTS review comment (#58277) 2021-10-23 12:14:15 +02:00
epenet
513c90123e Use DeviceInfo on components with suggested_area (#58225)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-23 12:03:14 +02:00
Robert Hillis
63646a19cc Use DeviceInfo Class F-G (#58255) 2021-10-23 12:01:21 +02:00
Robert Hillis
12c067970a Use DeviceInfo Class E (#58230) 2021-10-23 11:44:51 +02:00
Robert Hillis
137d41d8b4 Use DeviceInfo Class B-C (#58217) 2021-10-23 11:41:32 +02:00
Ivan Belokobylskiy
059880ebdc Fix yandex captcha detecting (#56132)
Yandex recently switched to the new captcha page and the new version of aiomaps supports it.
The check for captcha is moved to platform setup.

Fixes #56035
2021-10-23 11:14:32 +02:00
Clifford Roche
a0c96f2a9a Bump greeclimate to 0.12.2 (#58256) 2021-10-23 10:19:19 +02:00
Allen Porter
400e85a299 Rename tests filenames to conform to Home Assistant standards (#58266) 2021-10-22 22:25:55 -07:00
Allen Porter
fc7be8aa00 Fix a bug in a nest test that causes side effects for other tests (#58264)
Fix a bug where a constant configuration variable in the common test library
is modified during the test, causing side effects for other tests.

This was found by renaming the tests, which caused other tests to fail.
2021-10-22 21:33:40 -07:00
Allen Porter
7627b959f8 Fix format bug in nest log statement (#58263)
* Fix format bug in nest log statement

* Resolve lint error logging-fstring-interpolation
2021-10-22 21:33:19 -07:00
Michael Davie
e481c862a6 Change precision of Nest sensors (#56993)
* Change precision of Nest sensors

* Add comment to temp rounding

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

* Update rounding and tests

* Add test for rounding

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2021-10-22 20:31:25 -07:00
Nicolas Mowen
93b061e9d9 Update ismartgate dependency (#58259) 2021-10-22 16:33:30 -10:00
Maikel Punie
37b7eda37a Bump velbusaio to 2021.10.6 (#58168)
* Bump velbusaio to 2021.10.3

* Bump velbusaio to 2021.10.5

* Bump velbusaio to 2021.10.6
2021-10-23 03:42:33 +02:00
some-guy-in-oz
b2d67f8d19 Add grid services active sensor to telsa powerwall integration (#56317)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-22 14:25:25 -10:00
GitHub Action
1b42caa34a [ci skip] Translation update 2021-10-23 00:11:40 +00:00
Ville Skyttä
77120a5137 Use http.HTTPStatus in components/m* (#58251) 2021-10-22 23:54:36 +02:00
drinfernoo
b49b975999 Allow different voices in Watson TTS calls (#56811) 2021-10-22 23:50:32 +02:00
Allen Porter
7d6ad6e5e3 Add additional nest stream test coverage (#58013) 2021-10-22 23:30:15 +02:00
John James Jacoby
750a8f2d37 Spelling & grammar improvements to bug_report.yml (#56800)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-10-22 23:22:19 +02:00
itairaz1
8d46802558 Apple TV power management (#51520) 2021-10-22 23:13:14 +02:00
Yuval Aboulafia
a9ccd70e71 Fully type Jewish Calendar (#56232) 2021-10-22 23:11:41 +02:00
Nihaal Sangha
fe0151491e Improve Discord notifier (#52523) 2021-10-22 23:09:30 +02:00
Ville Skyttä
ce1eda9809 Use http.HTTPStatus in components/[ikl]* (#58248) 2021-10-22 23:06:18 +02:00
Chris Browet
1867d24b18 Add state_class support to Rest (#58026) 2021-10-22 13:48:13 -07:00
Michael Chisholm
ee087c7a05 Discovery ignores DLNA DMR devices when they are better supported by another integration (#57363) 2021-10-22 10:26:33 -10:00
Yuval Aboulafia
a195418dd3 ISS cleanup (#55801) 2021-10-22 22:17:05 +02:00
Joakim Plate
8da3b4c79f Bump arcam library to 0.12 with new series support (#53843) 2021-10-22 22:13:17 +02:00
Ville Skyttä
b1360ffafb Use http.HTTPStatus in components/f* (#58244) 2021-10-22 22:10:47 +02:00
rik-v
4369b0b8be Fix Fibaro light features (#56385) 2021-10-22 22:09:19 +02:00
Robert Hillis
23710d1496 Add strict typing to modem_callerid (#57683) 2021-10-22 22:04:06 +02:00
Dennis Schroer
f1091b80a7 Add statistics support to Huisbaasje (#54651) 2021-10-22 22:00:44 +02:00
Marc Mueller
823ca7ee40 Use attributes octoprint (#58241) 2021-10-22 21:41:06 +02:00
Sören
b0b49c611e Nello removal (#57926) 2021-10-22 21:40:39 +02:00
Marvin Wichmann
5193e3115d Restore the previous state of a KNX binary sensor (#57891) 2021-10-22 20:52:41 +02:00
Franck Nijhof
b413f7434f Add support for min/max dimmer brightness in Tuya (#58165) 2021-10-22 20:28:16 +02:00
J. Nick Koston
c7b4542624 Enable strict typing in lookin (#58238) 2021-10-22 20:14:33 +02:00
avee87
d9b87ee5c5 Add warning when entity used in template doesn't exist (#57316) 2021-10-22 20:09:54 +02:00
Robert Svensson
9c1bee9c16 Add support for device configuration URL to UniFi Controller (#58237) 2021-10-22 20:04:25 +02:00
Raman Gupta
e5255cf21f Add area_entities and area_devices template functions/filters (#55228) 2021-10-22 19:59:01 +02:00
Petro31
806dc51125 Add datetime_today template method (#57435) 2021-10-22 19:51:22 +02:00
epenet
001a452bb7 Update naming scheme for Renault entities (#57922)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 19:46:02 +02:00
Ville Skyttä
73d192b3f3 Use HTTPStatus instead of HTTP_ consts and magic values in comp.../[bc]* (#57989) 2021-10-22 19:43:40 +02:00
Robert Svensson
ab7a34fc71 Add support for device configuration URL to deCONZ gateway (#58184) 2021-10-22 19:41:49 +02:00
Franck Nijhof
843296c1a3 Add product ID to model for Tuya (#58235) 2021-10-22 19:39:31 +02:00
J. Nick Koston
3b7dce8b95 Index in-progress flows to avoid linear search (#58146)
Co-authored-by: Steven Looman <steven.looman@gmail.com>
2021-10-22 07:19:49 -10:00
Marc Mueller
fa56be7cc0 Use value_fn for bmw_connected_drive binary_sensor (#57540) 2021-10-22 18:55:13 +02:00
Bouwe Westerdijk
1aa7a8170c Fix plugwise longterm statistics (#58127)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-22 09:46:21 -07:00
Artem Draft
5a102d793e Bump pylgnetcast to 0.3.4 (#58233) 2021-10-22 18:25:01 +02:00
Klaas Schoute
efbe8a8689 Fix unit of measurement for P1 Montior (#57495) 2021-10-22 18:24:12 +02:00
Paul Monigatti
a3b3c4ebad Consolidate ESPHome icon-handling code into EsphomeEntity (#57744) 2021-10-22 18:21:41 +02:00
Robert Hillis
da7b67cc29 Add strict typing to efergy (#57682) 2021-10-22 18:20:39 +02:00
epenet
f6ffae9e10 Use DeviceInfo on components with configuration_url (#58223)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 17:40:13 +02:00
Lars
416d87c01c Fix fritzbox tests (#58227) 2021-10-22 17:29:36 +02:00
epenet
51a10f88de Use DeviceInfo on components with via_device (#58222)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 17:04:25 +02:00
Robert Hillis
fc3e7f5b7e Use DeviceInfo Class D (#58218) 2021-10-22 17:00:00 +02:00
Robert Hillis
59fe30e589 Use DeviceInfo class - A (#57859) 2021-10-22 16:35:39 +02:00
Ville Skyttä
8bc1509afa Use HTTPStatus instead of HTTP_ consts and magic values in comp.../[de]* (#57990) 2021-10-22 16:28:56 +02:00
Ryan Fleming
c84fee7c6e Rework octoprint (#58040)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-22 15:25:12 +02:00
Simone Chemelli
1a9ac6b657 Switch Fritz to device selector for services (#58005) 2021-10-22 14:34:02 +02:00
Lars
2148c84386 Support for Fritz!DECT 500 lightbulbs (#52830) 2021-10-22 14:30:03 +02:00
Erik Montnemery
ab2ff45726 Warn if state_changed events are excluded from recorder (#58021) 2021-10-22 14:25:36 +02:00
thomas-svrts
f25d3cf9b3 Gogogate2 add statistics (#58178)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-22 14:24:43 +02:00
Michael Chisholm
164f09c1f0 Sleep between device requests to detect socket closes (#58087) 2021-10-22 14:22:10 +02:00
Ville Skyttä
a598d9f353 Use HTTPStatus instead of HTTP_ consts and magic values in components/a* (#57988) 2021-10-22 14:21:34 +02:00
David K Turner
55ffc85a0a Enable long-term statistics for OpenWeatherMap sensors (#57781) 2021-10-22 14:19:19 +02:00
Regev Brody
3c52bc214d Add Smoke Detector (ywbj) device support to Tuya (#58170) 2021-10-22 14:18:01 +02:00
Marc Mueller
ea2e94a4e5 Use assignment expressions 24 (#58181) 2021-10-22 14:07:19 +02:00
Marc Mueller
eab235173b Use assignment expressions 28 (#58189) 2021-10-22 14:06:04 +02:00
epenet
a3d1159a13 Use DeviceInfo on components with via_device (R-X) (#58213)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 12:52:33 +02:00
epenet
176ed4f7ba Use DeviceInfo on components with via_device (I-T) (#58212)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 12:31:12 +02:00
Aaron Bach
6dd72869a6 Make sure Guardian data storage conforms to standards (#57809) 2021-10-22 12:25:05 +02:00
avee87
a0bb2c8b33 Add memory/cpu percentage to Supervisor addons entities (#57468)
* Add memory/cpu percentage to Supervisor addons entities

* fixed lint

* Use a single update function. Fixed tests

* use constant

* review comments

* oops
2021-10-22 12:23:21 +02:00
Aaron Bach
61e093cecd Make sure Ambient PWS data storage conforms to standards (#57807) 2021-10-22 12:17:25 +02:00
Aaron Bach
8bc10db0bb Make sure RainMachine data storage conforms to standards (#57816) 2021-10-22 12:14:58 +02:00
epenet
8dfa628af0 Use DeviceInfo on components with via_device (A-G) (#58210)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 12:12:19 +02:00
Aaron Bach
5c3d2a5071 Make sure IQVIA data storage conforms to standards (#57811) 2021-10-22 12:11:10 +02:00
Tom Brien
024c892b2a Remove black color name for light dropdowns (#58207) 2021-10-22 12:04:12 +02:00
epenet
58c5b5058c Use DeviceInfo on components with via_device (H) (#58211)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 11:52:48 +02:00
epenet
c00a5fad8f Cleanup device registration in Onewire (#58101)
* Add checks for device registry

* Move registry checks to init.py

* Run device registry check on disabled devices

* Empty commit for testing

* Register devices during initialisation

* Adjust tests accordingly

* Add via_device to device info

* Adjust access to device registry

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 11:45:40 +02:00
Tomer
766a693514 Fix registration UI to work for Israel devices (#58192) 2021-10-22 11:45:16 +02:00
Allen Porter
4242711301 Bump google-nest-sdm to 0.3.8 (#58186) 2021-10-22 11:37:30 +02:00
epenet
0b302ab141 Use DeviceInfo on zwave (#58183)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 11:36:40 +02:00
Marc Mueller
9990385926 Use assignment expressions 25 (#58182) 2021-10-22 11:34:45 +02:00
epenet
2e5c9b69d4 Use DeviceInfo on zha (#58202)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-22 11:32:15 +02:00
Marc Mueller
184e0d7fdf Use assignment expressions 26 (#58187) 2021-10-22 11:31:17 +02:00
Marc Mueller
be201e3ebe Use assignment expressions 27 (#58188) 2021-10-22 11:29:21 +02:00
Tobias Sauerwein
83e45300c2 Add configuration_url to Netatmo devices (#58160) 2021-10-22 11:14:28 +02:00
Marc Mueller
70469e0979 Use assignment expressions 23 (#58180) 2021-10-22 11:13:05 +02:00
Robert Svensson
281adfe3c9 Add support for device configuration URL to Axis devices (#58176) 2021-10-22 11:09:50 +02:00
Maciej Bieniek
038158508c Add configuration_url to AsusWrt integration (#58172) 2021-10-22 11:08:46 +02:00
Álvaro Fernández Rojas
f740302287 Add long-term statistics for Tado sensors (#58111) 2021-10-22 11:07:33 +02:00
Joakim Plate
c0934ce03c Fjaraskupan entity categories (#57846) 2021-10-22 10:50:21 +02:00
Erik Montnemery
547e36ae94 Tweak energy validator (#58018)
* Tweak energy validator

* Update code and tests

* Tweak implementation

* Update tests

* Update after rebase
2021-10-22 10:38:04 +02:00
J. Nick Koston
d67c1118dc Cleanup lookin entity MRO and inheritance (#58194) 2021-10-21 20:22:51 -10:00
J. Nick Koston
d27ee4c1a4 Allow setting the nexia run mode with the hvac mode (#57940) 2021-10-21 18:25:25 -10:00
GitHub Action
f9d985553c [ci skip] Translation update 2021-10-22 00:14:10 +00:00
J. Nick Koston
7cc924e83c Remove unreachable code in data_entry_flow.py (#58193)
- bc1daf1802 removed the need for this
  guard
2021-10-22 01:45:16 +02:00
Martin Hjelmare
cc4241836e Move notify setup to legacy (#58033) 2021-10-21 16:09:08 -07:00
ANMalko
749258a05d Add climate platform to lookin (#58175)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-21 12:00:48 -10:00
J. Nick Koston
4a9209ebc8 Bump async-upnp-client to 0.22.9 (#58185)
Co-authored-by: Steven Looman <steven.looman@gmail.com>
2021-10-21 10:58:34 -10:00
Steven Looman
dcf60b54ce Improve SSDP discovery compatibility when device was discovery through an SSDP advertisement (#58133) 2021-10-21 10:57:34 -10:00
ANMalko
626bd25129 Add LOOKin integration (#58125)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-21 07:10:23 -10:00
Álvaro Fernández Rojas
946df49ca8 Add long-term statistics for AEMET sensors (#57844) 2021-10-21 09:03:37 -07:00
Erik Montnemery
df1154395e Revert "Swap order of int template helper kwargs (#57729)" (#58015)
This reverts commit f8dbcb953c.
2021-10-21 15:03:33 +02:00
Aaron Bach
2ff356393c Clean up SimpliSafe entity inheritance structure (#58063)
* Migrate SimpliSafe to new web-based authentication

* Ensure we're storing data correctly

* Re-organize SimpliSafe device structure

* Constants

* More work

* Code review
2021-10-21 12:54:50 +02:00
Simone Chemelli
c7ff6eb5ee Address late review for Fritz entity_category (#58141) 2021-10-21 08:36:52 +02:00
Brig Lamoreaux
50686bd06d Add Device Type Energy to Srp Energy Sensor (#58147) 2021-10-21 08:35:59 +02:00
Marc Mueller
62c20860ac Use assignment expressions 22 (#57971) 2021-10-21 08:33:10 +02:00
Robert Hillis
ea2bc3fde1 Add entity categories to goalzero (#57906) 2021-10-21 08:31:32 +02:00
Marc Mueller
1bcf39517a Use assignment expressions 13 (#57938) 2021-10-21 08:27:42 +02:00
Marc Mueller
c979e89b70 Use assignment expressions 14 (#57939) 2021-10-21 08:26:01 +02:00
Paulus Schoutsen
4eea618cc4 input_datetime: Move has_date, has_time to capability_attributes (#58138) 2021-10-21 08:22:34 +02:00
Daniel Perna
acb24788d0 Update pyhomematic to 0.1.76 (#58136) 2021-10-21 08:21:48 +02:00
Philip Allgaier
8f1ba96d0b Remove accidental blanks from Shelly trigger type translations (#58151) 2021-10-21 08:21:04 +02:00
Philip Allgaier
548b872229 Add missing names for notify service fields (#58154) 2021-10-21 08:20:37 +02:00
jjlawren
3ffe0b3625 Add configuration_url to Plex integration (#58149) 2021-10-21 08:01:00 +02:00
jjlawren
379a0e2b53 Add configuration_url to Sonos devices (#58148) 2021-10-21 08:00:34 +02:00
Franck Nijhof
dcaa689023 Add auto slider/box mode to number entity (#57737) 2021-10-21 07:20:39 +02:00
Paulus Schoutsen
3bdc637d1b Bump frontend to 20211020.0 (#58139) 2021-10-20 20:26:25 -07:00
GitHub Action
4634b65924 [ci skip] Translation update 2021-10-21 00:12:43 +00:00
Brandon Rothweiler
a496465235 Bump pymazda to 0.2.2 (#58113) 2021-10-21 00:58:40 +02:00
Ville Skyttä
840dc2b931 Run tests with -X dev and -bb (#58079) 2021-10-20 15:43:04 -07:00
J. Nick Koston
20c35e6032 Move Screenlogic lights to the light platform (#55467)
Co-authored-by: Kevin Worrel <37058192+dieselrabbit@users.noreply.github.com>
2021-10-20 12:38:21 -10:00
Maciej Bieniek
18ce799f74 Add configuration_url to Denon AVR integration (#58116) 2021-10-20 15:34:42 -07:00
Aaron Bach
47678c5995 Add entity categories for appropriate AirVisual entities (#58102) 2021-10-20 15:22:48 -07:00
jan iversen
f2a5d92e61 Fix connect_fail test and modbus.py 100% coverage (#57894)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-10-20 15:22:24 -07:00
jan iversen
cca7da77ad Report modbus buffer too small or too big to unpack (#57838) 2021-10-20 15:22:01 -07:00
Aaron Bach
38586d2cf1 Add entity categories for appropriate Ambient PWS entities (#58100) 2021-10-20 15:17:28 -07:00
Aaron Bach
388761922b Add entity categories for appropriate Guardian entities (#58104) 2021-10-20 14:58:09 -07:00
Aaron Bach
03b1150115 Add entity categories for appropriate Notion entities (#58105) 2021-10-20 14:57:45 -07:00
Aaron Bach
745e42621b Add entity categories for appropriate RainMachine entities (#58107) 2021-10-20 14:57:28 -07:00
Andrey Kupreychik
a824fa9a7b Abort keenetic SSDP discovery if the unique id is already setup or ignored (#58009) 2021-10-20 14:53:23 -07:00
Erik Montnemery
c1d671b817 Fix template sensor when name template doesn't render (#58088) 2021-10-20 14:53:06 -07:00
Marc Mueller
4513ee4ea5 Use assignment expressions 12 (#57937) 2021-10-20 14:34:08 -07:00
Franck Nijhof
7353ea5416 Add Dimmer Switch (tgkg) device support to Tuya (#58134) 2021-10-20 23:19:42 +02:00
Franck Nijhof
c204196a7a Add Formaldehyde Detector (jqbj) device support to Tuya (#58118) 2021-10-20 11:49:10 -07:00
Marc Mueller
487fa0a905 Use assignment expressions 20 (#57969) 2021-10-20 20:31:00 +02:00
Erik Montnemery
398061706c Correct unit_of_measurement for statistics sensor (#58023) 2021-10-20 20:28:48 +02:00
Jesse Hills
35e9cf68a2 Add configuration url to Sonarr (#58085) 2021-10-20 20:25:29 +02:00
Aaron Bach
70fc3f84fc Add entity categories for appropriate SimpliSafe entities (#58108) 2021-10-20 20:24:38 +02:00
Robert Svensson
333c80a694 Assign entity category diagnostics to deCONZ tampering sensors (#58112) 2021-10-20 20:24:11 +02:00
Yuval Aboulafia
2fcce7fd12 Bump hdate to 0.10.4 (#58121) 2021-10-20 20:17:46 +02:00
J. Nick Koston
ad463b7994 Ensure lutron_caseta triggers can still be attached in setup retry state (#57873) 2021-10-20 07:34:38 -10:00
Franck Nijhof
3e57d0d3d3 Complete Switch/Socket/Power Strip device support for Tuya (#58106) 2021-10-20 19:08:43 +02:00
Franck Nijhof
5fc2897c08 Complete Ceiling Light (xdd) device support for Tuya (#58095) 2021-10-20 09:24:34 -07:00
Marc Mueller
ea7252e377 Use assignment expressions 21 (#57970) 2021-10-20 17:47:46 +02:00
Robert Hillis
d20936d175 Fix referenced before assignment error in sonos speaker (#57924) 2021-10-20 17:44:08 +02:00
Marc Mueller
9a58bfdf41 Use assignment expressions 17 (#57963)
Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
2021-10-20 17:42:26 +02:00
Robert Svensson
326a302c22 Fix issue where Number still would send force_update to super method (#58110) 2021-10-20 17:06:27 +02:00
Erik Montnemery
b301ab25a3 Purge short term statistics (#58028)
* Purge short term statistics

* Less meep

* Add tests
2021-10-20 16:00:59 +02:00
Erik Montnemery
558c2556f1 Report all unrecorded sensors in statistics tool (#58092) 2021-10-20 15:58:28 +02:00
Erik Montnemery
e3534eec87 Report orphaned statistics in statistic validation (#57324) 2021-10-20 15:57:22 +02:00
Jan Bouwhuis
e2303dc713 bitwise and for test supported_features (#58097) 2021-10-20 15:31:23 +02:00
J. Nick Koston
b507b9ebfb Bump ismartgate to 4.0.3 (#58073)
* Bump ismartgate to 4.0.3

Fixes #56245

Changelog: https://github.com/bdraco/ismartgate/compare/v4.0.0...v4.0.3

* restart ci
2021-10-20 15:02:08 +02:00
Robert Svensson
3ad3f4e2ba Simplify signalling for updating available property of deCONZ entities (#58078) 2021-10-20 14:59:36 +02:00
David Le Brun
2bd64cec11 Add state_class to current bandwith sensors for bbox integration (#58086)
* Add state_class to current bandwith sensors

* Fix isort test
2021-10-20 14:53:14 +02:00
Franck Nijhof
c75346addc Add CO2 Detector (co2bj) device support to Tuya (#58093) 2021-10-20 14:20:24 +02:00
jan iversen
b3117ced75 Please pylint for modbus test (#58089) 2021-10-20 13:38:55 +02:00
jan iversen
45983b5edf Activate tradfri in coverage and clean conftest for tradfri (#58058) 2021-10-20 13:36:02 +02:00
Jan Bouwhuis
62b7453719 Fix supported_features behaviour for fan platform (#58065) 2021-10-20 13:06:06 +02:00
Jan Bouwhuis
a679ebcee7 Patch for Alexa percentage_step to precision (#58062)
* speed_step must be an integer and a divider of 100

* use percentage_step in tests to test patch

* test with not supported percentage_step

* undo change in test_capabilities

* Use a default precision of one not percentage_step

* typo 2

* Update tests/components/alexa/test_smart_home.py

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

* Update homeassistant/components/alexa/capabilities.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-10-20 13:05:11 +02:00
Robert Svensson
4736bf3c32 Don't use deprecated ways of retrieving registries in Axis (#58083) 2021-10-20 13:03:52 +02:00
epenet
dfd2501c2c Cleanup duplicate code in Onewire tests (#58082)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-20 11:43:59 +02:00
Robert Svensson
008b784fc5 Add deCONZ number config entity for Hue motion sensor delay (#58076)
* First working draft of number platform

* Replace duration with delay for Hue motion sensors
Improve tests

* Bump dependency to v85

* Use constant for entity category

* Use type rather than using __class__

* Fix unique ID
2021-10-20 11:23:24 +02:00
Robert Svensson
25f4f2d86e Don't use deprecated methods of retrieving registries in deCONZ (#58081) 2021-10-20 11:16:28 +02:00
Robert Svensson
b8cf6513d9 Address late review of unifi (#58080)
* Fix late comment from 57570

* Remove other references to legacy ways
2021-10-20 10:59:07 +02:00
Erik Montnemery
5f37fffcd1 Bump pychromecast to 9.3.1 (#58035) 2021-10-20 09:44:20 +02:00
Robert Svensson
edefa9f4f4 Assign entity category diagnostics to deCONZ battery sensors (#58077) 2021-10-20 09:11:17 +02:00
epenet
704929ddd0 Remove legacy tests in onewire (#58075)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-20 09:10:32 +02:00
J. Nick Koston
cafb3067ce Bump flux_led to 0.24.12 (#58071) 2021-10-20 09:02:02 +02:00
GitHub Action
7a7f5ccc31 [ci skip] Translation update 2021-10-20 00:12:17 +00:00
micha91
518151fbe6 Fix Yamaha MusicCast media_stop (#58024) 2021-10-20 00:18:08 +02:00
Tom Schneider
c6aa767be6 Add volume_up and volume_down to musiccast (#57919) 2021-10-20 00:14:55 +02:00
J. Nick Koston
4f0886fd7d Bump flux_led to 0.24.11 (#58020) 2021-10-19 11:40:35 -10:00
Franck Nijhof
e65345900f Add Human Presence Sensor (hps) device support to Tuya (#58054) 2021-10-19 23:17:00 +02:00
Aaron Bach
0fe5baa425 Rework RainMachine entity ID generation (#58055) 2021-10-19 10:10:51 -10:00
Aaron Bach
bf7c99c1f8 Migrate SimpliSafe to new web-based authentication (#57212) 2021-10-19 10:09:48 -10:00
Ville Skyttä
8e0cb5fcec Fix clickatell send_error error check (#57985) 2021-10-19 22:04:13 +02:00
Erik Montnemery
dde8ac4eb5 Add support for kPa to sensor statistics (#58032) 2021-10-19 21:43:08 +02:00
epenet
1b0118a81b Use constants in Onewire tests (#58017)
* Use ATTR_ENTITY_ID constant

* Add ATTR_UNIQUE_ID constant

* Add new attribute constants

* Fix missing ATTR_DEFAULT_DISABLED

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-19 21:41:01 +02:00
Paulus Schoutsen
ab0247d112 Add entity category and state class to mobile app (#58012) 2021-10-19 12:29:22 -07:00
Franck Nijhof
bc9b134c5d Clean up self references from Tuya climate platform constructor (#58051) 2021-10-19 21:04:46 +02:00
Daniel Hjelseth Høyer
d2f7f418c3 Add more sensors to Opengarage (#58042) 2021-10-19 11:15:40 -07:00
Franck Nijhof
6d898a631c Add Water Detector (sj) device support to Tuya (#58049) 2021-10-19 20:09:06 +02:00
Erik Montnemery
bb9053e93d Add MWh as an energy unit (#58034) 2021-10-19 11:08:44 -07:00
Daniel Hjelseth Høyer
8eef2113c7 Add more info to OpenGarage device info (#58037) 2021-10-19 11:08:03 -07:00
Daniel Hjelseth Høyer
b7db8dd62a Add configuration url to Surepetcare (#58039)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-19 20:00:08 +02:00
Daniel Hjelseth Høyer
24d3bf0930 Add configuration url to Tractive (#58038)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-19 19:57:01 +02:00
Franck Nijhof
fbe3ce1bf7 Add cover platform to Tuya (#58045) 2021-10-19 19:36:15 +02:00
Daniel Hjelseth Høyer
eb2f2d3905 Add configuration url to Airthings (#58041)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-19 18:47:14 +02:00
Brig Lamoreaux
d1e30fdd54 Rewrite test for feedreader (#57292)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-19 17:15:56 +02:00
Paulus Schoutsen
4fe4e65e3e Add entity category to Hue (#58011) 2021-10-19 12:29:43 +02:00
Franck Nijhof
d8a354fa8f Add humidifier platform to Tuya (#58025) 2021-10-19 12:10:05 +02:00
Martin Hjelmare
9a5f16d85c Deprecate OpenZWave in manifest (#57987) 2021-10-19 12:07:57 +02:00
Jan Bouwhuis
58569a58a9 MQTT Alarm control panel - Enable remote code validation (#57764)
* Enable remote code validation

* Update homeassistant/components/mqtt/alarm_control_panel.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-10-19 12:07:38 +02:00
Franck Nijhof
4f2d313a4a Remove device category filtering from Tuya init (#58019) 2021-10-19 10:56:37 +02:00
Erik Montnemery
961ee717ef Store automation and script traces (#56894)
* Store automation and script traces

* Pylint

* Deduplicate code

* Fix issues when no stored traces are available

* Store serialized data for restored traces

* Update WS API

* Update test

* Restore context

* Improve tests

* Add new test files

* Rename restore_traces to async_restore_traces

* Refactor trace.websocket_api

* Defer loading stored traces

* Lint

* Revert refactoring which is no longer needed

* Correct order when restoring traces

* Apply suggestion from code review

* Improve test coverage

* Apply suggestions from code review
2021-10-19 10:23:23 +02:00
epenet
29c062fcc4 Rework Onewire tests to enable disabled entities (#58014)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-19 09:10:26 +02:00
Daniel Hjelseth Høyer
a3cae17d88 Open garage sensor (#57976) 2021-10-19 09:05:55 +02:00
Steven Looman
db474707a0 Preventing working with incomplete discoveries from user config flow in upnp (#57994) 2021-10-18 20:57:48 -10:00
Robert Hillis
4625a05706 Add init tests for agent dvr (#57022)
* Add init tests for agent dvr

* ci
2021-10-19 08:53:30 +02:00
rikroe
8debb7c784 Add service to stop air conditioning to bmw_connected_drive (#57772)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-10-19 08:46:04 +02:00
Brian Egge
708f2ae089 Fix issue parsing color effect None in flux_led (#57979)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-18 20:36:25 -10:00
Erik Montnemery
9a26a8cfd8 Add support for daily and monthly statistics (#57576)
* Add support for daily and monthly statistics

* Remove debug code

* Format code

* Don't use dateutil package

* Remove 2 TODOs

* Remove TODO

* Add comments
2021-10-19 08:29:23 +02:00
J. Nick Koston
6576225c48 Log unhandled loop exception traces when asyncio debug is on (#57602) 2021-10-18 20:07:51 -07:00
jan iversen
f92fe38bbd Change warning to info when modbus is ready (#57953)
* Change warning to info.

* Make level info implicit.
2021-10-18 19:38:33 -07:00
Marc Mueller
9561c51276 Use assignment expressions 16 (#57962) 2021-10-18 19:36:35 -07:00
Erik Montnemery
2bae113748 Mark Tasmota status sensors as diagnostic sensors (#57958)
* Mark Tasmota status sensors as diagnostic sensors

* Disable IP and firmware version sensors by default
2021-10-18 19:33:26 -07:00
Simone Chemelli
1a978662ec Add configuration_url and entity_category to Fritz (#58004) 2021-10-18 19:30:45 -07:00
Zac West
1904019b5f Include webhook_id in mobile_app's notify registration_info (#58007) 2021-10-18 19:29:13 -07:00
rikroe
58417f509b BMW: Fix check_control_message short description (#57998)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-10-18 19:28:19 -07:00
J. Nick Koston
5138efcd92 Bump flux_led to 0.24.9 (#58006)
- Adds missing description for 0x04 models
2021-10-18 19:27:26 -07:00
GitHub Action
3855bb43ec [ci skip] Translation update 2021-10-19 00:12:08 +00:00
Jesse Hills
334e3062a6 Add configuration url to Juicenet (#57999) 2021-10-19 11:51:29 +13:00
Felipe Martins Diel
6f0a7d2921 Add to the Broadlink integration support for voltage, current, overload and total consumption sensors (#53628) 2021-10-18 11:38:51 -10:00
starkillerOG
9bd2115a20 Motion blinds add interface and wait_for_push options (#50067)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-18 23:34:51 +02:00
Franck Nijhof
174eaefe61 Add vacuum platform to Tuya (#57996) 2021-10-18 23:30:26 +02:00
J. Nick Koston
ae660d9366 Pickup codeowner for bond (#57995) 2021-10-18 22:27:33 +02:00
Joakim Plate
bc5422d737 Bump fjaraskupan to 1.0.2 (#57992) 2021-10-18 22:23:06 +02:00
Erik Montnemery
fe8b9caf99 Bump pychromecast to 9.3.0 (#57991) 2021-10-18 21:48:50 +02:00
René Klomp
8b21a36e37 Bump pysma to 0.6.7 (#57978) 2021-10-18 20:59:37 +02:00
Franck Nijhof
be73b21f81 Refactor Tuya light platform (#57980) 2021-10-18 20:35:01 +02:00
ollo69
b01170d917 Add Nut missing tests for config flow (#57964) 2021-10-18 07:17:10 -10:00
epenet
24737d4d1d Use pytest fixtures on Onewire tests (#57973)
* Add pytest fixtures

* Add sysbus fixtures

* Adjust parameter name

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-18 19:16:53 +02:00
Peter Nijssen
3d8e802141 Mark spider YAML configuration as deprecated (#57974) 2021-10-18 18:56:10 +02:00
J. Nick Koston
698f3ca96c Bump flux_led to 0.24.8 (#57934) 2021-10-18 06:52:17 -10:00
David Le Brun
4f25b2ca08 Support device and state classes for WAQI sensor (#57762) 2021-10-18 18:45:26 +02:00
Erik Montnemery
47fdf078e4 Bump hatasmota to 0.2.21 (#57966) 2021-10-18 18:41:18 +02:00
Marc Mueller
f149bef9f3 Use assignment expressions 18 (#57967) 2021-10-18 18:36:35 +02:00
Marc Mueller
ff853b2d53 Use assignment expressions 19 (#57968) 2021-10-18 15:54:38 +02:00
Erik Montnemery
786e1f9b6a Add configuration url to Tasmota (#57957) 2021-10-18 14:53:47 +02:00
Marc Mueller
1e98761f30 Use assignment expressions 15 (#57961) 2021-10-18 14:01:23 +02:00
epenet
a421c524c1 Use pytest fixtures on Renault tests (#57955)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-18 13:27:44 +02:00
starkillerOG
04f51e599a Fix netgear NoneType and discovery (#57904) 2021-10-18 12:01:58 +02:00
Franck Nijhof
55c80b4093 Tuya tweaks to entity category, registry enabled, icons & device classes (#57949) 2021-10-18 09:24:59 +02:00
dependabot[bot]
81efdb2df2 Bump actions/checkout from 2.3.4 to 2.3.5 (#57947)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-18 08:50:33 +02:00
Paulus Schoutsen
388339fee2 Merge pull request #57944 from home-assistant/rc 2021-10-17 23:32:02 -07:00
Robert Svensson
ed37d2a794 New service reconnect_client for UniFi integration (#57570)
* Initial proposal of a client reconnect service

* Slim setup and teardown of services

* Minor improvements

* Add tests
2021-10-18 08:06:06 +02:00
Paulus Schoutsen
c3766a8136 Bumped version to 2021.10.6 2021-10-17 22:31:40 -07:00
Aaron Bach
b5f2bffc96 Fix bug that prevents multiple instances of Tile (#57942) 2021-10-17 22:31:36 -07:00
Marc Mueller
589db0615f Revert "Fix bmw_conntected_drive check_control_message short description" (#57928)
This reverts commit acda3afe63.
2021-10-17 22:31:35 -07:00
J. Nick Koston
bb6a9a7e2e Bump bond-api to 0.1.14 (#57874) 2021-10-17 22:31:34 -07:00
J. Nick Koston
be3f32ef71 Prevent yeelight discovery from overloading the bulb (#57820) 2021-10-17 22:31:33 -07:00
Johannes la Poutre
60eb47e1ae Fix device class for energy plugwise sensors (#57803)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-17 22:31:32 -07:00
J. Nick Koston
010daaf990 Avoid setting up harmony websocket from discovery (#57589) 2021-10-17 22:30:59 -07:00
Aaron Bach
6a8ff9ffe7 Fix bug that prevents multiple instances of Tile (#57942) 2021-10-17 20:32:18 -07:00
J. Nick Koston
cac0c04a91 Avoid setting up harmony websocket from discovery (#57589) 2021-10-17 20:32:02 -07:00
J. Nick Koston
147febb18a Prevent yeelight discovery from overloading the bulb (#57820) 2021-10-17 20:30:43 -07:00
Allen Porter
dafea00f41 Rename stream_type to frontend_stream_type (#57923)
Camera devices may support multiple stream sources so we want to clarify that
this is meant to decide which stream source is used in the frontend only.

Will set stream_type temporarily to allow rollout without breaking nightly,
and this will be removed after frontend is updated.
2021-10-17 20:16:29 -07:00
GitHub Action
a1176cc79a [ci skip] Translation update 2021-10-18 00:11:59 +00:00
Marc Mueller
3c4b715524 Revert "Fix bmw_conntected_drive check_control_message short description" (#57928)
This reverts commit acda3afe63.
2021-10-18 01:21:56 +02:00
Felipe Martins Diel
32d6c27ba0 Bump broadlink to 0.18.0 (#57929) 2021-10-17 12:47:53 -10:00
Allen Porter
4501906da3 Fix additional nest camera_sdm_tests to use STATE_STREAMING (#57920) 2021-10-17 22:04:12 +02:00
Marc Mueller
6ca23c67ff Use EntityDescription - bmw_connected_drive sensor (#57796) 2021-10-17 21:05:06 +02:00
Franck Nijhof
4fd8b27ce6 Add Vibration Sensor (zd) device support to Tuya (#57795) 2021-10-17 20:56:15 +02:00
Daniel Hjelseth Høyer
f390812183 Adax attr (#57867) 2021-10-17 20:56:03 +02:00
J. Nick Koston
284861c8bb Add support for push updates to flux_led (#57890) 2021-10-17 08:47:35 -10:00
Marc Mueller
4f8148f9ea Use assignment expressions 07 (#57787) 2021-10-17 20:24:34 +02:00
Marc Mueller
2b72b7b7b9 Use assignment expressions 09 (#57790) 2021-10-17 20:19:56 +02:00
Marc Mueller
aa7dc78a1e Use assignment expressions 11 (#57792) 2021-10-17 20:15:48 +02:00
Marc Mueller
238b488642 Use assignment expressions 03 (#57710) 2021-10-17 20:08:11 +02:00
Marc Mueller
2a8eaf0e0f Use assignment expressions 06 (#57786) 2021-10-17 20:05:11 +02:00
Marc Mueller
d5116810d4 Use assignment expressions 08 (#57788) 2021-10-17 20:02:42 +02:00
Marc Mueller
5048bad050 Use assignment expressions 05 (#57785) 2021-10-17 19:56:00 +02:00
J. Nick Koston
d09ee11c54 Fix bond reloading on zeroconf discovery when host has not changed (#57799) 2021-10-17 19:50:13 +02:00
Daniel Hjelseth Høyer
e9d601a688 Opengarage dataupdater (#56931) 2021-10-17 07:48:45 -10:00
Daniel Hjelseth Høyer
8f6ed2d27e Add category diagnostic to Surepetcare binary sensor (#57908) 2021-10-17 19:47:07 +02:00
Allen Porter
3d33cad655 Improve nest error handling for websocket streams (#57885) 2021-10-17 19:46:18 +02:00
Allen Porter
95b07c138c Set nest camera always on STATE_STREAMING (#57882) 2021-10-17 19:45:31 +02:00
ollo69
fe0291012c Use attr_device_info and add init tests for nut (#57725) 2021-10-17 07:43:15 -10:00
Daniel Hjelseth Høyer
bcd431e848 Add device info to Adax (#57907) 2021-10-17 19:40:47 +02:00
Daniel Hjelseth Høyer
9b693f7f2b Airthings entity category diagnostic (#57850) 2021-10-17 07:30:13 -10:00
Daniel Hjelseth Høyer
64145d6ccf Add category diagnostic to Switchbot battery and signal sensor (#57854) 2021-10-17 07:27:03 -10:00
Daniel Hjelseth Høyer
9c3aa8156d Add category diagnostic to Surepetcare battery sensor (#57852) 2021-10-17 07:26:29 -10:00
Daniel Hjelseth Høyer
dd2d708cb9 Add category diagnostic to Tibber signal sensor (#57840) 2021-10-17 07:25:49 -10:00
Franck Nijhof
4aadb848e1 Add unit/device_class validation and normalization to Tuya (#57913)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-17 19:24:49 +02:00
Johannes la Poutre
0fc2946f88 Fix device class for energy plugwise sensors (#57803)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-17 18:49:18 +02:00
Robert Svensson
93ba966808 Add the correct device class to deCONZ Tamper entity (#57834) 2021-10-17 17:45:32 +02:00
J. Nick Koston
2edad82078 Fix order of arguments in rainmachine sensors (#57895) 2021-10-17 17:44:48 +02:00
starkillerOG
58f13e4e34 push motionblinds to 0.5.7 (#57902) 2021-10-17 16:53:49 +03:00
Robert Hillis
f5e2960a92 Fix mode_callerid attributes (#57774)
* Allow mode_callerid to display number only

* alphabetize

* tweak

* only include attr if there is data
2021-10-17 14:53:18 +02:00
Maciej Bieniek
85c6942f55 Bump brother library to version 1.1.0 (#57892) 2021-10-17 00:12:35 -10:00
Maciej Bieniek
0b932b53c9 Do not probe nam device if the host is already configured (#57843) 2021-10-17 00:12:01 -10:00
J. Nick Koston
378c48da15 Improve lutron caseta error reporting when bridge is offline (#57832) 2021-10-16 23:11:35 -10:00
Joakim Sørensen
f4918b2d9a Fix Tuya documentation URL (#57889) 2021-10-17 10:50:48 +02:00
Fredrik Erlandsson
4b55893781 Bump pypoint (#57888) 2021-10-17 10:50:23 +02:00
jan iversen
c9f55c01af Bump pymodbus to 2.5.3. (#57887) 2021-10-17 10:11:28 +02:00
Joakim Plate
a1e9a06675 Add sensor category for rssi and battery (#57848) 2021-10-17 09:45:11 +02:00
Marvin Wichmann
48d4cdf882 Update xknx to 0.18.11 and fix flaky test (#57877)
* Update xknx to 0.18.11

* review: join the queue before actually asserting
2021-10-17 09:43:18 +02:00
Aaron Bach
b6ed8ca206 Make sure Notion data storage conforms to standards (#57812) 2021-10-16 23:59:36 -06:00
Aaron Bach
fd49da37b8 Make sure OpenUV data storage conforms to standards (#57813) 2021-10-16 23:59:19 -06:00
Aaron Bach
3da3d26573 Make sure AirVisual data storage conforms to standards (#57806) 2021-10-16 23:58:39 -06:00
Maciej Bieniek
6fb0609f0c Add use time sensor for air purifiers (#57775) 2021-10-17 07:39:25 +02:00
J. Nick Koston
d46ae04ec7 Add additional models to flux_led DHCP discovery (#57881) 2021-10-16 18:43:41 -10:00
J. Nick Koston
5461fa9a2d Bump bond-api to 0.1.14 (#57874) 2021-10-16 15:57:11 -10:00
Maciej Bieniek
276345e20a Decrease timeout and update_interval in Xiaomi Miio integration (#57339)
* Decrease timeout and update_interval

* Improve UPDATE_INTERVAL const

* Update values after testing
2021-10-17 03:13:12 +02:00
GitHub Action
c76e15149c [ci skip] Translation update 2021-10-17 00:12:27 +00:00
avee87
6a80559fa8 Use separate weather condition for clear night in MetOffice forecasts (#55135) 2021-10-17 00:57:47 +02:00
Franck Nijhof
d64f210b67 Add camera platform to Tuya (#57865) 2021-10-16 14:57:30 -07:00
Michael
2fa08ae6ab Add hassio discovery to VLC telnet (#57815) 2021-10-16 14:53:57 -07:00
b-pass
c09c8f424f Set state class in JuiceNet component (#57870) 2021-10-16 14:52:30 -07:00
J. Nick Koston
0dcb8ca270 Avoid probing brother devices that have an existing config entry (#57829) 2021-10-16 14:52:10 -07:00
J. Nick Koston
bdf96943ae Restore dhcp discovery support to tuya (#57826)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-16 14:51:37 -07:00
Daniel Hjelseth Høyer
4300f1de46 Use DeviceInfo class (#57868) 2021-10-16 14:51:10 -07:00
Franck Nijhof
441b0b2fb7 Add tamper device class for binary sensor (#57632) 2021-10-16 14:30:52 -07:00
Robert Hillis
aa3e17cae9 Add new mac vendor to sense DHCP (#57858) 2021-10-16 23:17:25 +02:00
Franck Nijhof
74d72957b2 Add support for 'freeze' mode in Tuya thermostats (wk) (#57851) 2021-10-16 22:26:00 +02:00
jan iversen
623d0ae932 Bump pytradfri to v.7.1.0 (#57861) 2021-10-16 22:19:14 +02:00
Maciej Bieniek
a9f940d8a2 Add support for device configuration URL to Nettigo Air Monitor integration (#57695) 2021-10-16 21:34:04 +02:00
Robert Hillis
4b474f47f2 Add configuration URL to Efergy (#57839)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-16 20:33:17 +02:00
Aaron Bach
845652da15 Make sure ReCollect Waste data storage conforms to standards (#57817) 2021-10-16 09:37:47 -06:00
Aaron Bach
a71c5b760f Make sure Tile data storage conforms to standards (#57818) 2021-10-16 09:37:36 -06:00
Martin Hjelmare
5e2a9aa781 Fix vlc_telnet disconnect on unload (#57836) 2021-10-16 14:39:13 +02:00
Franck Nijhof
71e2fb62af Add myself as codeowner for Tuya (#57837) 2021-10-16 12:20:02 +02:00
J. Nick Koston
76b6fce19c Avoid exposing effects to flux_led lights that do not support them (#57810) 2021-10-15 18:54:00 -10:00
J. Nick Koston
8405331204 Add configuration_url to Sense (#57814) 2021-10-15 18:53:27 -10:00
J. Nick Koston
1cf7634942 Discover plex via zeroconf (#57825) 2021-10-15 18:53:05 -10:00
Aaron Bach
f13eeee969 Add configuration URL to RainMachine (#57732) 2021-10-15 17:33:26 -10:00
GitHub Action
34fee4ba60 [ci skip] Translation update 2021-10-16 00:12:06 +00:00
jan iversen
34984d78a1 Add float32 test to modbus (#57805) 2021-10-15 16:06:36 -07:00
Robert Hillis
0ad5ad5ca7 Don't use cast when possible for goalzero (#57742)
* Don't use cast when possible for goalzero

* tweak

* tweak

* tweak

* Call first refresh on coordinator

* don't use dict.get if not needed

* tweak
2021-10-15 23:34:13 +02:00
Franck Nijhof
a7c7e58a5b Add Luminance Sensor (ldcg) device support to Tuya (#57797) 2021-10-15 23:08:21 +02:00
Paulus Schoutsen
eb30fb1f3b Merge pull request #57793 from home-assistant/rc 2021-10-15 13:57:41 -07:00
Franck Nijhof
6e5d49144a Add siren platform to Tuya (#57780) 2021-10-15 22:28:14 +02:00
Steven Looman
31b1d170a1 Fix broken upnp derived sensors reporting b/s instead of kb/s (#57681) 2021-10-15 13:03:23 -07:00
Steven Looman
b75f1b8951 Fix broken upnp derived sensors reporting b/s instead of kb/s (#57681) 2021-10-15 13:03:03 -07:00
Marc Mueller
12d1dfdaf9 Use assignment expressions 10 (#57791) 2021-10-15 21:36:03 +02:00
Franck Nijhof
9be3278ffa Add Emergency Button (sos) device support to Tuya (#57794) 2021-10-15 21:32:12 +02:00
Martin Hjelmare
31ccaac865 Add vlc telnet config flow (#57513) 2021-10-15 11:46:58 -07:00
Paulus Schoutsen
0505891ab1 Bumped version to 2021.10.5 2021-10-15 10:27:39 -07:00
gjong
a2bc69003e Fix Youless state class for power total sensor (#57758) 2021-10-15 10:27:19 -07:00
J. Nick Koston
aac798660f Always send color/temp when switching from an effect in yeelight (#57745) 2021-10-15 10:27:17 -07:00
J. Nick Koston
1e8030b53e Reconnect and retry yeelight commands after previous wifi drop out (#57741) 2021-10-15 10:27:16 -07:00
Shay Levy
a6590549ff Fix Shelly humidity sensor available condition (#57721) 2021-10-15 10:24:47 -07:00
Peter Nijssen
51e204a55b Bump spiderpy to 1.4.3 (#57675) 2021-10-15 10:24:46 -07:00
Aaron Bach
3d1cbe40ac Ensure Notion device name is stored as a string (#57670) 2021-10-15 10:24:46 -07:00
Erik Montnemery
39091b01c6 Correct detection of row_number support for MariaDB (#57663) 2021-10-15 10:24:45 -07:00
Aaron Bach
1235493a0e Bump simplisafe-python to 11.0.7 (#57573) 2021-10-15 10:24:44 -07:00
Mark Mäkinen
599a94fda6 Fix Fast.com autoupdate (#57552) 2021-10-15 10:24:43 -07:00
Daniel Hjelseth Høyer
06844ee2de Bump Mill library to 0.6.2 (#57533) 2021-10-15 10:24:42 -07:00
Michael Chisholm
6193b31072 Log reason for DLNA-DMR device becoming unavailable (#57516) 2021-10-15 10:24:42 -07:00
Michael Chisholm
aeb00823aa Log reason for DLNA-DMR device becoming unavailable (#57516) 2021-10-15 19:24:04 +02:00
Paulus Schoutsen
fcd0a877d6 Identify onetime listeners (#57751) 2021-10-15 10:23:36 -07:00
Franck Nijhof
892bf62dd5 Add PIR Detector (pir) device support to Tuya (#57784) 2021-10-15 19:11:06 +02:00
Marc Mueller
19443b474c Merge bmw_connected_drive metric and imperial sensor types (#56910) 2021-10-15 10:02:12 -07:00
Chris
f8d0f76721 Add device class to temperature sensors for octoprint (#56997) 2021-10-15 09:45:04 -07:00
jan iversen
42803e6ac0 Clean startup of modbus by moving service schemas (#57763) 2021-10-15 09:40:27 -07:00
J. Nick Koston
fb5d117df4 Always send color/temp when switching from an effect in yeelight (#57745) 2021-10-15 09:37:23 -07:00
J. Nick Koston
427f2a085b Reconnect and retry yeelight commands after previous wifi drop out (#57741) 2021-10-15 09:37:13 -07:00
Martin Hjelmare
5aba8a7c81 Fix modem_callerid test warning (#57760) 2021-10-15 09:36:26 -07:00
Erik Montnemery
0f2b5ea28e Don't expose config or diagnostic entities to cloud (#57771) 2021-10-15 09:35:32 -07:00
Erik Montnemery
8b33aa3702 Don't expose config or diagnostic entities to Google Assistant (#57669) 2021-10-15 09:12:34 -07:00
Erik Montnemery
7c1ba8be3d Don't expose config or diagnostic entities to Amazon Alexa by default (#57770) 2021-10-15 09:09:24 -07:00
Erik Montnemery
2b37943355 Don't add indirectly referenced config entities to service calls (#57671) 2021-10-15 08:46:43 -07:00
epenet
6881ab58d1 Add renault last activity sensors (#57750)
* Add battery and location last_activity sensors

* Drop state attributes

* Drop ATTR_LAST_UPDATE

* Adjust tests

* Mark new sensors as disabled_default

* Add default_disabled attribute

* Add context managers

* Adjust tests for disabled entities
2021-10-15 16:27:12 +02:00
Erik Montnemery
1eebe45154 Add support for entity categories to MQTT entities (#57656)
* Add support for entity categories to MQTT entities

* Improve test

* Apply suggestions from code review

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

* Update homeassistant/components/mqtt/mixins.py

Co-authored-by: Paul Monigatti <paulmonigatti@users.noreply.github.com>

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paul Monigatti <paulmonigatti@users.noreply.github.com>
2021-10-15 14:28:30 +02:00
Petro31
f8dbcb953c Swap order of int template helper kwargs (#57729)
* swap order of int kwargs

* Add binary and kwargless base tests
2021-10-15 13:04:26 +02:00
Joakim Sørensen
0e0430ba36 Remove YAML import from UptimeRobot (#57761) 2021-10-15 12:33:10 +02:00
gjong
cb625d1c7a Fix Youless state class for power total sensor (#57758) 2021-10-15 12:24:51 +02:00
Maciej Bieniek
f02522783a Add entity category to Nettigo Air Monitor entities (#57698) 2021-10-15 11:42:21 +02:00
Franck Nijhof
b97d5a703c Renamed variables in Tuya (#57759) 2021-10-15 11:33:30 +02:00
J. Nick Koston
b7c52d0485 Add configuration url to rachio (#57738) 2021-10-14 23:23:32 -10:00
Franck Nijhof
6e6313272d Move Tuya value scaling into IntegerTypeData (#57757) 2021-10-15 10:33:20 +02:00
Robert Hillis
19d812602e Activate strict typing for nfandroidtv (#57743)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-15 10:27:26 +02:00
Erik Montnemery
aed6eee1ff Minor tweak of entityfilter typing (#57756) 2021-10-15 10:19:27 +02:00
Maciej Bieniek
38688e5263 Add configuration URL to Brother (#57726) 2021-10-15 10:08:00 +02:00
Franck Nijhof
f6c6ec3578 Centralize entity naming for Tuya entities (#57755) 2021-10-15 10:07:25 +02:00
avee87
8b422a7bd5 Add documentation link for Supervisor integration (#57733) 2021-10-15 09:26:54 +02:00
avee87
727d8c7a37 Fix signature for hassio.restore_partial service (#57735) 2021-10-15 09:04:55 +02:00
Paulus Schoutsen
8dbff0b4b3 Fix WLED exception on close (#57752) 2021-10-15 09:04:43 +02:00
Steffen Ronalter
49b07224bf Add onewire support for DS2413 (#55921) 2021-10-15 08:23:26 +02:00
Paulus Schoutsen
12b6922875 Add entity category to cloud (#57747) 2021-10-15 08:17:40 +02:00
jan iversen
4417ffb407 COnvert DATA_TYPE to enum. (#57699) 2021-10-15 07:09:59 +02:00
J. Nick Koston
faf5c2eb40 Add discovery support for single channel magichome controllers (#57736) 2021-10-14 20:53:35 -07:00
J. Nick Koston
bcff2b7858 Add configuration url to nexia (#57740) 2021-10-14 20:52:26 -07:00
J. Nick Koston
e7ac734d01 Add configuration_url to gogogate2 (#57739) 2021-10-14 20:51:12 -07:00
Michael
148d2480ac Add configuration url to Pi hole (#57718) 2021-10-14 19:32:24 -07:00
Shay Levy
e232bdc082 Add Shelly "installed version" extra state attribute to Gen2 firmware update sensor (#57722) 2021-10-14 19:02:37 -07:00
Franck Nijhof
eed9f67402 Add service configuration URL to MQTT (#57731) 2021-10-14 18:27:40 -07:00
Maciej Bieniek
e34fb4cfb9 Add entity category to Brother (#57728) 2021-10-14 18:10:24 -07:00
Shay Levy
9000e5b2d9 Fix Shelly humidity sensor available condition (#57721) 2021-10-14 17:48:28 -07:00
Maciej Bieniek
e7e88d6a19 Add entity category to Tractive (#57720) 2021-10-14 17:46:25 -07:00
Maciej Bieniek
b0ff28ceb4 Add entity category to Xiaomi Miio (#57719) 2021-10-14 17:31:25 -07:00
starkillerOG
e34aed743c Xiaomi Miio appropriatly raise ConfigEntryAuthFailed/ConfigEntryNotReady (#54696)
* Add reties to cloud login

* push to version 0.4 of micloud

* distinguish between authentication error and socket errors

* raise from error

* Update homeassistant/components/xiaomi_miio/gateway.py

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

* move ConfigEntryNotReady to connect function

* remove unused import

* also add ConfigEntryNotReady for device

* catch exceptions in config flow

* fixes

* bring tests back to 100%

* add missing catch exception

* add test

* fix black

* Update homeassistant/components/xiaomi_miio/device.py

Co-authored-by: Teemu R. <tpr@iki.fi>

* Update homeassistant/components/xiaomi_miio/gateway.py

Co-authored-by: Teemu R. <tpr@iki.fi>

* Update tests/components/xiaomi_miio/test_config_flow.py

Co-authored-by: Teemu R. <tpr@iki.fi>

* fix tests

* define specific exceptions

* fix styling

* fix tests

* use proper DeviceException

* Revert "use proper DeviceException"

This reverts commit 0bd16135387cd6d9e563cd62ac147d0a25c577f3.

* use appropriate side-effect

* remove unused returns

* Update homeassistant/components/xiaomi_miio/const.py

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

* remove unused returns

Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Teemu R. <tpr@iki.fi>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-15 01:25:44 +02:00
Joakim Sørensen
c243dca58e Change name from Uptime Robot to UptimeRobot (#57714) 2021-10-15 00:50:09 +02:00
Franck Nijhof
e077fb13ce Add device configuration URL to WLED (#57692) 2021-10-14 15:46:26 -07:00
Joakim Sørensen
a9737865ae Fix platform typo in Tuya const (#57716) 2021-10-14 15:46:06 -07:00
Franck Nijhof
4a20d28ec6 Add service configuration URL to Speedtest.net (#57715) 2021-10-14 15:37:31 -07:00
Franck Nijhof
efb6300359 Add service configuration URL to Verisure (#57713) 2021-10-14 15:35:09 -07:00
starkillerOG
9280215d69 push motionblinds to 0.5.6 (#57707) 2021-10-14 15:32:17 -07:00
Joakim Sørensen
cc6030cff2 Add configuration_url to Uptime Robot (#57709) 2021-10-14 15:31:46 -07:00
Robert Hillis
abf6720cd3 Add strict typing to goalzero (#57680) 2021-10-15 00:20:08 +02:00
Maciej Bieniek
3127074f76 Add entity category to Shelly (#57705) 2021-10-14 15:17:00 -07:00
Aaron Bach
4745e58a92 Remove long-term statistics from IQVIA forecast sensor (#57687) 2021-10-15 00:13:12 +02:00
David Le Brun
2601d71f5d Add state_class to EnOcean sensors (#57666) 2021-10-14 23:15:16 +02:00
Michael
2e5af5d8e2 Add configuration url to Synology DSM (#57704) 2021-10-14 23:13:01 +02:00
Paulus Schoutsen
9c7dc5865c Add url to CO2signal (#57703) 2021-10-14 14:11:57 -07:00
Peter Nijssen
f8ea2f9b08 Bump spiderpy to 1.4.3 (#57675) 2021-10-14 23:11:07 +02:00
Michael
445c7301f8 Skip auto-update when fqdn and ssl-verfiy is used for Synology DSM (#57568) 2021-10-14 13:55:31 -07:00
Michael
a6aff613d7 Optimize update calls for AVM Fritz!Smarthome devices (#57579) 2021-10-14 13:53:05 -07:00
Michael
e395e33663 Add support for entity categories to Synology DSM entities (#57690) 2021-10-14 13:52:17 -07:00
Michael
997d014111 Add support for entity categories to NUT entities (#57689) 2021-10-14 13:51:31 -07:00
Paulus Schoutsen
7104750008 Bump frontend to 20211014.0 (#57706) 2021-10-14 13:44:04 -07:00
Franck Nijhof
93e15ef88c Add service configuration URL to Spotify (#57701) 2021-10-14 22:42:34 +02:00
Franck Nijhof
5382ab8562 Add device configuration URL to Plugwise (#57696) 2021-10-14 22:31:23 +02:00
Franck Nijhof
a584d7b5c9 Add service configuration URL to Stookalert (#57697) 2021-10-14 22:31:12 +02:00
Paulus Schoutsen
3c11e2a097 Add entity category to WLED (#57693) 2021-10-14 13:31:01 -07:00
Franck Nijhof
0407a56fdf Add number platform to Tuya (#57672) 2021-10-14 13:15:41 -07:00
Peter A. Bigot
d6d6929e2b Port unmerged fixes from tuya_v2 (#57624) 2021-10-14 13:14:48 -07:00
Franck Nijhof
cef34356e2 Add sensor platform to Tuya (#57668) 2021-10-14 12:04:02 -07:00
Paulus Schoutsen
7546c766dd Fix lint issue (#57694) 2021-10-14 12:03:39 -07:00
Aaron Bach
681b5c48e2 Ensure Notion device name is stored as a string (#57670) 2021-10-14 11:21:44 -07:00
Erik Montnemery
8ef8838801 Correct detection of row_number support for MariaDB (#57663) 2021-10-14 11:19:39 -07:00
Erik Montnemery
e27e4c3561 Add support for device configuration URL (#57539)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-14 11:16:56 -07:00
Marvin Wichmann
addb91d49e Update xknx to version 0.18.10 (#57635)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-14 10:54:48 -07:00
Robert Hillis
488a636aec Clean up unused loggers (#57662) 2021-10-14 10:03:38 -07:00
Franck Nijhof
fdc6d9e004 Add select platform to Tuya (#57674) 2021-10-14 09:50:51 -07:00
uvjustin
ce186c5935 Only pass libav logger messages when stream logger is set to debug (#57616) 2021-10-14 23:43:00 +08:00
Franck Nijhof
b28062789f Remove deprecated Lyft integration (#57638) 2021-10-14 11:27:09 +02:00
Franck Nijhof
2ec352ce96 Migrate attribution attribute for Aftership (#57649) 2021-10-14 10:25:19 +02:00
Franck Nijhof
f43bba8cfd Migrate attribution attribute for bitcoin (#57651) 2021-10-14 10:24:30 +02:00
Franck Nijhof
1dcba44199 Migrate attribution attribute for bbox (#57650) 2021-10-14 10:23:54 +02:00
jan iversen
debcdc382f Late review comments. (#57654) 2021-10-14 10:22:21 +02:00
J. Nick Koston
d3e24cc1d6 Bump flux_led to 0.24.5 (#57653)
- Fixes fallback to old protocol with asyncio

- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.24.4...0.24.5
2021-10-14 11:15:29 +03:00
Erik Montnemery
4b3d423767 Add config and diagnostic entities (#57528)
* Add config entity concept

* Rename is_config_entity to entity_category

* Add test

* Add 'diagnostic' entity category
2021-10-14 10:04:26 +02:00
Joakim Sørensen
24509503bb Remove snapshot from hassio integration (#57652) 2021-10-14 10:00:44 +02:00
Franck Nijhof
5cd2167924 Upgrade pyyaml to 6.0 (#57648) 2021-10-14 09:29:31 +02:00
Jason Madigan
f62cadf32c Use reference strings in soma (#57564) 2021-10-14 08:54:16 +02:00
Ville Skyttä
8e18ca3b6e Use HTTPStatus instead of HTTP_* int constants in mobile_app responses (#56418) 2021-10-14 08:47:13 +02:00
Franck Nijhof
26faac0567 Remove YAML configuration from Rainforest Eagle (#57636) 2021-10-14 08:46:39 +02:00
Michael
0da1f9544e Correct state classes for systemmonitor sensors (#57615) 2021-10-14 08:45:58 +02:00
ollo69
827501659c Nut: Use coordinator data, code cleanup and add test coverage (#57643) 2021-10-13 16:05:06 -10:00
GitHub Action
8c326198cf [ci skip] Translation update 2021-10-14 00:11:41 +00:00
Franck Nijhof
45f3eb6991 Remove deprecated Wink integration (#57634) 2021-10-14 00:20:13 +02:00
ollo69
b54fc0229d Use entity_registry_enabled_default for Nut sensors (#56854) 2021-10-13 11:33:03 -10:00
Franck Nijhof
b220ab6e91 Prettify Tuya entity class names (#57629) 2021-10-13 23:30:25 +02:00
Franck Nijhof
b854a2537f Use classmethod in Tuya TypeData classes (#57627) 2021-10-13 22:58:10 +02:00
Franck Nijhof
158dd1556c Remove myself as code owner from Toon (#57625) 2021-10-13 22:36:49 +02:00
Erik Montnemery
838f79be3d Update tests searching for areas referenced in automations (#57558) 2021-10-13 13:27:56 -07:00
Franck Nijhof
b2cef78d90 Add binary sensor platform to Tuya (#57623) 2021-10-13 22:12:07 +02:00
Paulus Schoutsen
835e07f63e Remove debug log (#57619) 2021-10-13 13:03:52 -07:00
Franck Nijhof
14c380fb57 Use EntityDescription in Tuya Switch platform (#57581) 2021-10-13 21:15:34 +02:00
jan iversen
2734ae17f3 Modbus baseplatform.py and Validators.py 100% coverage (activate coverage) (#57546) 2021-10-13 11:51:51 -07:00
Franck Nijhof
6a72af63c2 Refactor Tuya climate platform (#57609) 2021-10-13 20:29:11 +02:00
Christian Manivong
16b7375e60 Provide device_id in hue_event (#56982)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-13 20:20:38 +02:00
Otto Winter
df4e8721e9 ESPHome move ReconnectLogic to aioesphomeapi (#57601) 2021-10-13 10:04:23 -07:00
Jason Nader
628e59ff11 Clarify that only HTTPS can be used in fitbit (#57116) 2021-10-13 08:45:59 -07:00
J. Nick Koston
b86e19143d Prevent event loop delay / instability from discovery (#57463) 2021-10-13 08:37:14 -07:00
Paulus Schoutsen
ffbe4cffae Guard linking credential that is already linked (#57595)
* Guard linking credential that is already linked

* Update test descriptions
2021-10-13 17:36:31 +02:00
Paulus Schoutsen
0ae1186554 Use gather ipv wait to remove credentials to catch exceptions (#57596) 2021-10-13 17:34:57 +02:00
Maikel Punie
e130c8671b Bump version (#57607) 2021-10-13 17:21:32 +02:00
Erik Montnemery
a5603c0076 Improve warning prints for sensor statistics (#57605) 2021-10-13 08:15:04 -07:00
Abílio Costa
c97acf8713 Add support for multiple Whirlpool airconditioners (#57588) 2021-10-13 15:45:02 +02:00
Lukas Kempf
3b1938d5ec Add unique_id support for eq3btsmart (#57603) 2021-10-13 15:33:37 +02:00
Jan Bouwhuis
c470a03a4e Add a use_time sensor for Xiaomi_miio humidifiers (#57560)
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
2021-10-13 13:36:02 +02:00
Allen Porter
1fa6329c2e Add Nest WebRTC and support Nest Battery Camera and Nest Battery Doorbell (#57299)
* Add WebSocket API for intiting a WebRTC stream

See https://github.com/home-assistant/architecture/discussions/640

* Add nest support for initiating webrtc streams

Add an implementation of async_handle_web_rtc_offer in nest, with test coverage.
Issue #55302

* Rename offer variable to match overriden variable name

* Remove unnecessary checks covered by websocket function

* Update homeassistant/components/camera/__init__.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-13 03:28:52 -07:00
jan iversen
8d7744a74f Warn user if Gateway is already paired (#57530)
* Warn user if Gateway is already paired.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-13 07:16:55 +02:00
J. Nick Koston
abcacd2a00 Use a human readable model name in flux_led (#57519) 2021-10-12 21:40:49 -07:00
J. Nick Koston
f41aedc0f9 Fix single channel controllers with flux_led (#57458) 2021-10-12 21:40:18 -07:00
J. Nick Koston
2adb9a8bec Refresh the bond token if it has changed and available (#57583) 2021-10-12 21:39:46 -07:00
GitHub Action
282300f3e4 [ci skip] Translation update 2021-10-13 00:11:33 +00:00
Aaron Bach
deec3dfae4 Bump simplisafe-python to 11.0.7 (#57573) 2021-10-12 12:35:10 -06:00
Erik Montnemery
ee98849360 Always include start point for statistics (#57182) 2021-10-12 10:39:36 -07:00
Franck Nijhof
a4357fdb95 Replace all Tuya device property constants with an Enum (#57559) 2021-10-12 10:36:14 -07:00
Mark Mäkinen
c55e9136ee Fix Fast.com autoupdate (#57552) 2021-10-12 09:35:35 -07:00
Erik Montnemery
ffeb73a4f6 Add statistics tests for sensor with changing device class (#57317) 2021-10-12 09:09:32 -07:00
Erik Montnemery
007af4a7aa Search for areas, devices and entities in script choose actions (#57554) 2021-10-12 08:49:07 -07:00
Franck Nijhof
8ec38ef034 Refactor Tuya device handling (#57545)
* Refactor Tuya device handling

* Tweak
2021-10-12 16:49:46 +02:00
shbatm
fb18c108d1 Add service to Rainmachine to push weather data from Home Assistant (#57354) 2021-10-12 07:40:46 -06:00
Marc Mueller
bf24090463 Update flake8 related packages (#57538) 2021-10-12 15:33:08 +02:00
jan iversen
4afb4d9076 Bump pytradfri to 7.0.7 (#57543) 2021-10-12 15:07:20 +02:00
Franck Nijhof
f82af47f6a Use Tuya endpoints values from upstream library (#57537) 2021-10-12 14:33:19 +02:00
Franck Nijhof
c943677675 Tweaks to Tuya base entity (#57526) 2021-10-12 12:25:03 +02:00
Daniel Hjelseth Høyer
d90d804260 Bump Mill library to 0.6.2 (#57533) 2021-10-12 12:09:12 +02:00
Erik Montnemery
bdbedd0f06 Alphabetize parts of device registry code (#57532) 2021-10-12 12:08:59 +02:00
Marc Mueller
c4f8c52df9 Use EntityDescription - bmw_connected_drive (#56861) 2021-10-12 11:46:23 +02:00
Franck Nijhof
d44e323e95 Move Tuya remap method from base to light entity class (#57527) 2021-10-12 11:34:18 +02:00
Franck Nijhof
e23d35c6f0 Move all Tuya device handling into device listener class (#57523) 2021-10-12 11:32:57 +02:00
Jan Bouwhuis
879144b48d MQTT rework constants (#57529)
* reference CONF_TOPIC to .const

* Organize common mqtt constants
2021-10-12 11:26:38 +02:00
Maciej Bieniek
931032667c Bump accuweather library to version 0.3.0 (#57497) 2021-10-12 11:23:49 +02:00
Allen Porter
d0cc890d2b Add statistics support to nest sensors (#57393)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-12 10:56:57 +02:00
Franck Nijhof
1b71eafeba Upgrade coverage to 6.0.2 (#57518) 2021-10-12 10:47:34 +02:00
Franck Nijhof
70aa8b6f00 Upgrade flake8-comprehensions to 3.7.0 (#57520) 2021-10-12 10:15:45 +02:00
Franck Nijhof
42ba907dc5 Merge pull request #57517 from home-assistant/rc 2021-10-12 08:46:35 +02:00
Paulus Schoutsen
acb6c4ea1d Bumped version to 2021.10.4 2021-10-11 22:37:03 -07:00
J. Nick Koston
a07a2a1120 Simplify yeelight setup to improve reliability (#57500) 2021-10-11 22:36:55 -07:00
chpego
989807dc89 Bump youtube-dl to 2021.06.06 (#57490) 2021-10-11 22:36:54 -07:00
Erik Montnemery
6db010f4ab Detect if mysql and sqlite support row_number (#57475) 2021-10-11 22:36:53 -07:00
micha91
60d9bc68d9 Upgrade aiomusiccast to tolererate not decodable characters (#57461) 2021-10-11 22:36:52 -07:00
Robert Hillis
fd657e5979 Fix referenced before assignment in modem_callerid (#57460) 2021-10-11 22:36:51 -07:00
Steven Looman
7b8b0d815a Fix upnp creating derived sensors (#57436) 2021-10-11 22:36:50 -07:00
starkillerOG
ca21447b13 Fix Netgear orbi port in ssdp discovery (#57432) 2021-10-11 22:36:49 -07:00
gjong
cbd6e7aa1d Upgrade youless library to fix missing sensor LS110 (#57366) 2021-10-11 22:36:49 -07:00
Erik Montnemery
0139bfa749 Detect if mysql and sqlite support row_number (#57475) 2021-10-11 21:17:18 -07:00
Franck Nijhof
3ff30f53a7 Migrate attribution attribute for Stookalert (#57503) 2021-10-11 21:08:36 -07:00
Franck Nijhof
f561543e92 Migrate attribution attribute for Arlo (#57504) 2021-10-11 20:40:40 -07:00
Franck Nijhof
1a68784852 Migrate attribution attribute for UptimeRobot (#57508) 2021-10-11 20:40:21 -07:00
Franck Nijhof
813e27a46a Migrate attribution attribute for AmberElectric (#57505) 2021-10-11 20:40:08 -07:00
Franck Nijhof
e94bebdf7b Migrate attribution attribute for Picnic (#57507) 2021-10-11 20:39:51 -07:00
Franck Nijhof
580b5fb812 Entity attributes cleanup in Tuya base entity (#57510) 2021-10-11 20:37:18 -07:00
Franck Nijhof
71a3daa8ce Pass device manager directly in Tuya registry cleanup (#57511) 2021-10-11 20:36:46 -07:00
Franck Nijhof
f0abd5b815 Fix Tuya error when removing device (#57512) 2021-10-11 20:32:15 -07:00
J. Nick Koston
58362404ea Simplify yeelight setup to improve reliability (#57500) 2021-10-11 20:30:23 -07:00
GitHub Action
10b62370ff [ci skip] Translation update 2021-10-12 00:12:28 +00:00
Erik Montnemery
7acb1b6eb9 Override the jinja2 int filter (#57470) 2021-10-12 00:12:42 +02:00
Jan Bouwhuis
a36a765352 Allow MQTT discovery availability shortcut (#57479)
* replace base in availability topic

* add tests for availability shortcuts - fix import

* group constants

* simplified loop

* Moving constants to .const

* rename value to topic

* move CONF_TOPIC to .const

* move CONF_AVAILABILITY to .const

* remove check for string

* Silently ignore if no config topic is found.

* CONF_TOPIC should be required
2021-10-11 23:37:31 +02:00
Franck Nijhof
13db867c1d Move attribution attribute to Entity base class (#57492) 2021-10-11 23:15:32 +02:00
Martin Hjelmare
d10b1d9fe0 Fix watttime config flow and tests (#57498) 2021-10-11 22:08:57 +02:00
Aaron Bach
0c04ca20c6 Add ability to re-auth WattTime (#56582)
* Tests cleanup

* Still store the abbreviation

* Code review

* Remove unused attribute

* Add ability to re-auth WattTime

* Consolidate logic for entry unique ID

* Fix tests

* Fix docstring
2021-10-11 13:41:39 -05:00
jan iversen
6a39119ccc Streamline modbus before 100% coverage. (#57478) 2021-10-11 13:26:36 -05:00
RenierM26
48c2cfa6f8 Use entity description for Ezviz sensors (#56634) 2021-10-11 20:09:19 +02:00
chpego
b155d2bbe5 Bump youtube-dl to 2021.06.06 (#57490) 2021-10-11 20:07:23 +02:00
J. Nick Koston
02c30aed5e Add DHCP discovery for additional Zengge devices, generic magichome strips (#57408) 2021-10-11 07:20:24 -10:00
J. Nick Koston
381301d978 Add the switch platform to flux_led (#57444) 2021-10-11 07:20:11 -10:00
Glenn Waters
d0b37229dd Switch to config_flow for Environment Canada (#57127)
* Add config_flow to Environment Canada

* Add unique_id

* Remove erroneous directory.

* Tests working!!

* Add back setup.

* First cut of import.

* Temp

* Tweak names.

* Import config.yaml.

* Clean up imports.

* Import working! Some refactor to clean it up.

* Add import test.

* Small optimization.

* Fix comments from code review.

* Remove CONF_NAME and config_flow for it.

* Fixup strings to match new config_flow.

* Fixes for comments from last review.

* Update tests to match new import code.

* Clean up use of CONF_TITLE; fix lint error on push.

* Phew. More cleanup on import. Really streamlined now!

* Update tests.

* Fix lint error.

* Fix lint error, try 2.

* Revert unique_id to use location as part of ID.

* Fix code review comments.

* Fix review comments.
2021-10-11 17:33:29 +02:00
Maciej Bieniek
8ee6662cff Bump nettigo_air_monitor library to version 1.1.1 (#57483) 2021-10-11 17:27:04 +02:00
Aaron Bach
b72f1553ea Use current config entry standards for AirVisual (#57132) 2021-10-11 09:17:43 -06:00
J. Nick Koston
6c470ac28b Add dhcp support for tplink KP401 (#57456) 2021-10-11 17:15:31 +02:00
Marc Mueller
858739949b Use EntityDescription - openweathermap (#56888) 2021-10-11 16:18:18 +02:00
Marc Mueller
748d915909 Don't override methods marked as final (#57477) 2021-10-11 15:24:06 +02:00
Robert Hillis
a827521138 Add energy management for efergy (#57472) 2021-10-11 13:16:55 +02:00
Kevin Hellemun
30154763f8 Add xiaomi vacuum -9999 fix back (#57473) 2021-10-11 13:11:45 +02:00
Fredrik Erlandsson
cadbf7f6a9 Bump Daikin version, catch new exception during config_flow (#57080) 2021-10-11 13:11:02 +02:00
starkillerOG
1fbc94f56d Add Netgear ssid and conn_ap_mac sensors (#57226)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-11 13:08:56 +02:00
RDFurman
9040b6a59e Update somecomfort library to 0.7.0 (#57214) 2021-10-11 12:49:02 +02:00
jan iversen
199cf649be Add test of lazy_error in modbus (#57170) 2021-10-11 12:43:05 +02:00
Yuval Aboulafia
3a2d6a6343 Use _attr for Suez water (#57278) 2021-10-11 12:20:19 +02:00
Robert Hillis
8275110c44 Fix referenced before assignment in modem_callerid (#57460) 2021-10-11 11:36:53 +02:00
starkillerOG
d84722c3c2 Fix Netgear orbi port in ssdp discovery (#57432) 2021-10-11 11:35:29 +02:00
micha91
20d08fa470 Upgrade aiomusiccast to tolererate not decodable characters (#57461) 2021-10-11 11:34:37 +02:00
gjong
3dc1a268ae Upgrade youless library to fix missing sensor LS110 (#57366) 2021-10-11 11:30:23 +02:00
Robert Hillis
c4eeebd7a7 Add config flow for efergy (#56890) 2021-10-11 10:07:31 +02:00
Steven Looman
3825f80a2d Fix upnp creating derived sensors (#57436) 2021-10-11 09:35:26 +02:00
Robert Hillis
ba0196137e Bump pytautulli to 21.10.0 (#57449) 2021-10-11 08:32:00 +02:00
spahlimi
14050966cc Upgrade rvx to 0.7.0 (#57430) 2021-10-11 06:47:38 +02:00
Paulus Schoutsen
a3ae25efdb Merge pull request #57455 from home-assistant/rc 2021-10-10 21:14:45 -07:00
Paulus Schoutsen
ce75c11033 Bumped version to 2021.10.3 2021-10-10 20:34:53 -07:00
Shay Levy
862527782e Fix netgear renamed mdi icons (#57431) 2021-10-10 20:34:46 -07:00
Shay Levy
4129119b69 Fix netgear renamed mdi icons (#57431) 2021-10-10 20:30:16 -07:00
J. Nick Koston
b102a45bdf Bump zeroconf to 0.36.8 (#57451)
- Changelog: https://github.com/jstasiak/python-zeroconf/releases/tag/0.36.8
2021-10-10 20:22:50 -07:00
Shay Levy
fc5a2e3e06 Fix Shelly button type in roller mode (#57429) 2021-10-10 20:22:49 -07:00
Shay Levy
c01549999a Fix Shelly button filter empty event (#57427) 2021-10-10 20:22:48 -07:00
J. Nick Koston
7ed50bb9e6 Restore yeelight workaround for failing to update state after on/off (#57400) 2021-10-10 20:22:48 -07:00
mvn23
975b48859e Fix opentherm_gw.set_clock time parameter name (#57398) 2021-10-10 20:22:47 -07:00
mvn23
e92adde417 Fix default parameter values for service opentherm_gw.set_clock (#57397) 2021-10-10 20:22:46 -07:00
J. Nick Koston
d929faaeff Remove executor calls in isy994 as its fully async (#57394) 2021-10-10 20:22:46 -07:00
J. Nick Koston
8c44f9b501 Do all of dhcp scapy startup in the executor (#57392) 2021-10-10 20:22:45 -07:00
Bram Kragten
2e9bbe5219 Update frontend to 20211007.1 (#57385) 2021-10-10 20:22:44 -07:00
Joakim Sørensen
a4b6b74997 Bump pyhaversion to 21.10.0 (#57377) 2021-10-10 20:22:43 -07:00
RenierM26
307a07611e Bump Switchbot library (#57367)
* Bump dependency to fix SB password problem.

* Bump API version.
2021-10-10 20:22:42 -07:00
MatthewFlamm
0f2b9a6d77 Bump pynws to 1.3.2 (#57361) 2021-10-10 20:22:42 -07:00
Shay Levy
1e48bef74e Fix Shelly RGB/W supported color mode detection (#57359) 2021-10-10 20:22:41 -07:00
J. Nick Koston
438bdcbd8b Use switch format unique ids for tplink dimmers (#57346) 2021-10-10 20:22:40 -07:00
Robert Hillis
67e5f4e823 Catch errors for efergy (#57326)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-10 20:22:39 -07:00
J. Nick Koston
6e95ce70bc Bump aiodiscover to 2.4.5 (#57439)
- Disable scanning if the network size exceeds the maximum number of
  allowed hosts (8192)

- Changelog: https://github.com/bdraco/aiodiscover/compare/v1.4.4...v1.4.5

- Closes #57378
2021-10-11 05:14:42 +02:00
J. Nick Koston
77c7709323 Bump zeroconf to 0.36.8 (#57451)
- Changelog: https://github.com/jstasiak/python-zeroconf/releases/tag/0.36.8
2021-10-11 04:40:17 +02:00
Matthias Alphart
c0a3c7a4b7 Update pyfronius to 0.7.0 (#57279)
* update to pyfronius 0.7.0

* exception handling

* exception handling
2021-10-11 04:37:44 +02:00
J. Nick Koston
e148939b78 Convert flux_led to use asyncio (#57440) 2021-10-10 15:12:54 -10:00
GitHub Action
5c91d8d379 [ci skip] Translation update 2021-10-11 00:12:43 +00:00
Shay Levy
6820faf5a0 Fix Shelly button type in roller mode (#57429) 2021-10-10 22:39:57 +03:00
Shay Levy
ee80ccf7a6 Fix Shelly button filter empty event (#57427) 2021-10-10 22:39:34 +03:00
icemanch
3efbd6a1c9 Flux led color support (#57353)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-10 09:18:15 -10:00
J. Nick Koston
5b3711ed19 Use switch format unique ids for tplink dimmers (#57346) 2021-10-10 00:02:33 -07:00
J. Nick Koston
a58085639e Restore yeelight workaround for failing to update state after on/off (#57400) 2021-10-10 00:01:45 -07:00
J. Nick Koston
45b60b8346 Remove executor calls in isy994 as its fully async (#57394) 2021-10-10 00:01:18 -07:00
J. Nick Koston
be8724a6f8 Do all of dhcp scapy startup in the executor (#57392) 2021-10-10 00:00:28 -07:00
Abílio Costa
49d97e13de Improve Whirlpool component code quality (#57357)
* Improve Whirlpool component code

This implements a few suggestions given in
https://github.com/home-assistant/core/pull/48346#pullrequestreview-773552670

* Add return typing

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

* Add reason assertion to config_flow test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-10 08:49:02 +02:00
GitHub Action
80ee583418 [ci skip] Translation update 2021-10-10 00:12:54 +00:00
Aidan Timson
9f34d010e6 Add System Bridge display sensors (#57019)
* System Bridge - Add Display Sensors

* Omit default
2021-10-09 16:57:55 -07:00
mvn23
8b013b823b Fix default parameter values for service opentherm_gw.set_clock (#57397) 2021-10-10 00:15:21 +02:00
mvn23
97187069a7 Fix opentherm_gw.set_clock time parameter name (#57398) 2021-10-10 00:09:01 +02:00
Joakim Sørensen
d0101f67da Bump pyhaversion to 21.10.0 (#57377) 2021-10-09 23:46:25 +02:00
Maciej Bieniek
6ef70c85ee Add -9999 error fix back in Xiaomi Miio (#57399) 2021-10-09 23:42:20 +02:00
MatthewFlamm
5829f93b53 Bump pynws to 1.3.2 (#57361) 2021-10-09 23:38:45 +02:00
Bram Kragten
b2cfbb7d1e Update frontend to 20211007.1 (#57385) 2021-10-09 22:57:13 +02:00
indykoning
325d5e1c22 Create devices for Growatt (#57068) 2021-10-09 11:36:38 -07:00
Shay Levy
8de7966104 Add Shelly config entry reload on device config change (#57356) 2021-10-09 19:10:43 +03:00
Robert Hillis
6a5895222e Catch errors for efergy (#57326)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-09 11:23:40 +02:00
RenierM26
b27bcf1b00 Bump Switchbot library (#57367)
* Bump dependency to fix SB password problem.

* Bump API version.
2021-10-09 10:02:35 +02:00
Ben
fe065b2de8 Add Sure Petcare Felaqua device (#56823)
* add a SurePetcareSensor

* add the felaqua sensor

* add felaqua battery test

* fix felaqua product_id

* actually add a felaqua sensor 😅

* remove superclass
2021-10-09 01:33:41 -05:00
Paulus Schoutsen
6d0da631bf Handle prepare timeout in websocket API (#55989) 2021-10-08 22:12:06 -07:00
GitHub Action
d55a7e5cc7 [ci skip] Translation update 2021-10-09 00:11:46 +00:00
Clifford Roche
204b901464 Bump greeclimate to 0.11.9 (#57358) 2021-10-08 18:08:52 -06:00
Shay Levy
722d3862db Fix Shelly RGB/W supported color mode detection (#57359) 2021-10-09 02:22:14 +03:00
Paulus Schoutsen
b110a5bbfc Merge pull request #57355 from home-assistant/rc 2021-10-08 15:47:54 -07:00
Paulus Schoutsen
3c2f3f2ade Bumped version to 2021.10.2 2021-10-08 14:58:39 -07:00
Paulus Schoutsen
1ea0891602 Guard for bad last reset (#57344) 2021-10-08 14:58:34 -07:00
Steven Looman
54acc5bade Fix multiple upnp/ssdp issues (#57314) 2021-10-08 14:58:19 -07:00
Erik Montnemery
0c886e2990 Improve state of cover groups (#57313)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-08 14:51:11 -07:00
Milan Meulemans
f10a469d4f Upgrade aionanoleaf to 0.0.3 to fix deadlock (#57312) 2021-10-08 14:51:10 -07:00
J. Nick Koston
0358a13536 Migrate tplink hosts that were previously imported from yaml (#57308) 2021-10-08 14:51:10 -07:00
Milan Meulemans
1a78c461a0 Fix Nanoleaf light turn_off transition (#57305) 2021-10-08 14:51:09 -07:00
starkillerOG
c6d506cb4f Netgear fix port and device model beeing overwritten (#57277)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-08 14:51:08 -07:00
Aaron Bach
fe3b5e8804 Use current config entry standards for SimpliSafe (#57141)
* Use current config entry standards for SimpliSafe

* Include tests
2021-10-08 14:22:29 -05:00
Aaron Bach
4104a3dee6 Use built-in logic for options handler in AirVisual (#57131) 2021-10-08 14:20:57 -05:00
MatthewFlamm
fb063928ce Add device info to nws (#57153)
* Add base entity

* Use function for device_info

Multiple inheritance makes this tricky with a base class

* Device info in sensor

* Device info weather

* parantheses

* isort
2021-10-08 14:15:45 -05:00
Aaron Bach
0364405595 Reorganize RainMachine services (#57145)
* Reorganize RainMachine services

* Code review

* Ensure integration services aren't tied to a particular config entry

* Cleanup

* linting

* Code review

* Code review

* Code review

* Code review
2021-10-08 20:03:47 +02:00
Paulus Schoutsen
eba1d7d16a Guard for bad last reset (#57344) 2021-10-08 10:48:52 -07:00
Erik Montnemery
7e34860615 Improve state of cover groups (#57313)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-08 09:52:58 -07:00
David Boslee
7f966613bd Disconnect websockets after token is revoked (#57091)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-08 09:38:22 -07:00
starkillerOG
830e2bc47a Netgear fix port and device model beeing overwritten (#57277)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-08 09:03:21 -07:00
Milan Meulemans
4dafd42154 Fix Nanoleaf light turn_off transition (#57305) 2021-10-08 09:02:01 -07:00
Milan Meulemans
c04be4f5d0 Upgrade aionanoleaf to 0.0.3 to fix deadlock (#57312) 2021-10-08 08:59:19 -07:00
J. Nick Koston
e77fae56d9 Migrate tplink hosts that were previously imported from yaml (#57308) 2021-10-08 08:58:18 -07:00
Steven Looman
ba83433c64 Fix multiple upnp/ssdp issues (#57314) 2021-10-08 08:57:49 -07:00
Paulus Schoutsen
b0f24b65d6 Drop more persistent notification patches (#57295) 2021-10-08 16:45:05 +02:00
Franck Nijhof
82160fa350 Add config flow to Stookalert (#57119) 2021-10-08 11:34:22 +02:00
Yuval Aboulafia
db7d2de8bc Use _attr in 17track (#57187)
* use _attr

* fix name

* attributes

* set fixed attr before init

* access parameters directly
2021-10-08 10:03:09 +03:00
Allen Porter
7d4dd94da8 Add WebSocket API for intiting a WebRTC stream (#57034)
* Add WebSocket API for intiting a WebRTC stream

See https://github.com/home-assistant/architecture/discussions/640

* Increase test coverage for webrtc camera stream

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-07 22:13:14 -07:00
Paulus Schoutsen
5bb4bc3d13 Merge pull request #57294 from home-assistant/rc 2021-10-07 20:57:08 -07:00
Paulus Schoutsen
387249b593 Bumped version to 2021.10.1 2021-10-07 20:19:53 -07:00
J. Nick Koston
1a376b25af Bump yeelight to 0.7.7 (#57290) 2021-10-07 20:19:46 -07:00
Teemu R
ed4b44c126 Stopgap fix for inconsistent upstream API of tplink dimmers (#57285) 2021-10-07 20:19:45 -07:00
J. Nick Koston
ef7f1ffddc Bump HAP-python to 4.30 (#57284) 2021-10-07 20:19:44 -07:00
Teemu R
e3e64130f1 Fix transition handling for tplink lights (#57272)
* Fix transition handling for tplink light

* Apply suggestions from code review

* Test that all transitions are passed correctly

* Fix linting

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-07 20:19:44 -07:00
Bram Kragten
4e49e3a3fb Update frontend to 20211007.0 (#57268) 2021-10-07 20:19:43 -07:00
J. Nick Koston
fd371f2887 Fix RGB only (no color temp) devices with tplink (#57267) 2021-10-07 20:19:42 -07:00
Daniel Hjelseth Høyer
ec0256e27f Bump Mill library to 0.6.1 (#57261) 2021-10-07 20:19:41 -07:00
Erik Montnemery
425015eb8b Validate initial value for input_datetime (#57256) 2021-10-07 20:19:41 -07:00
Martin Hjelmare
0b26b15749 Fix netgear config flow import (#57253) 2021-10-07 20:19:40 -07:00
Erik Montnemery
06befe906b Correct SQL query generated by get_metadata_with_session (#57225)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-07 20:19:39 -07:00
J. Nick Koston
bf4a3d8d35 Discover tplink devices periodically (#57221)
- These devices sometimes do not respond on the first try
  or may be subject to transient broadcast failures, or
  overloads. We now try discovery periodically once the
  integration has been loaded.

- We used to try this 4x at startup, but that solution
  seemed to aggressive as we want to be sure we pickup
  the devices after startup as well since the network
  will likely be more calm after startup.
2021-10-07 20:19:15 -07:00
Raman Gupta
691d8d6b80 Convert val to str when needed while calling zwave_js.set_value (#57216) 2021-10-07 20:16:20 -07:00
Maciej Bieniek
7f49e02a4d Update led brightness select state only if valid data is available, Xiaomi Miio integration (#57197)
* Update state if there is valid data

* Add comment
2021-10-07 20:16:19 -07:00
J. Nick Koston
7544ec2399 Recreate the powerwall session/object when attempting relogin (#56935) 2021-10-07 20:16:19 -07:00
J. Nick Koston
56d6173d70 Recreate the powerwall session/object when attempting relogin (#56935) 2021-10-07 20:15:29 -07:00
Teemu R
8fb0da7720 Stopgap fix for inconsistent upstream API of tplink dimmers (#57285) 2021-10-07 20:15:13 -07:00
J. Nick Koston
ddab7f3024 Bump HAP-python to 4.30 (#57284) 2021-10-07 20:06:27 -07:00
J. Nick Koston
49e6f84b1c Bump yeelight to 0.7.7 (#57290) 2021-10-07 14:48:08 -10:00
GitHub Action
01d883d7c9 [ci skip] Translation update 2021-10-08 00:13:12 +00:00
Teemu R
36a22400e5 Fix transition handling for tplink lights (#57272)
* Fix transition handling for tplink light

* Apply suggestions from code review

* Test that all transitions are passed correctly

* Fix linting

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-08 00:20:26 +02:00
starkillerOG
cd1a71b070 Motion_blinds fix up button not available for unidirection blinds (#57266) 2021-10-07 13:27:48 -07:00
Erik Montnemery
be61009030 Correct SQL query generated by get_metadata_with_session (#57225)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-07 13:23:23 -07:00
Raman Gupta
3476b430db Convert val to str when needed while calling zwave_js.set_value (#57216) 2021-10-07 13:22:33 -07:00
Bram Kragten
33b8130002 Update frontend to 20211007.0 (#57268) 2021-10-07 13:18:12 -07:00
J. Nick Koston
ac3741df41 Fix RGB only (no color temp) devices with tplink (#57267) 2021-10-07 10:14:14 -10:00
Michael Chisholm
667e730946 Improve dlna_dmr code quality (#56886)
* Listen for config updates from DlnaDmrEntity.async_added_to_hass

Use `Entity.async_on_remove` for dealing with callback cancellation,
instead of re-inventing the wheel with `_remove_ssdp_callbacks`.

* Use async_write_ha_state within async methods

* Import YAML config from async_setup_platform

* Import flow prompts user when device is uncontactable during migration

When config flow is able to contact a device, or when it has information
from SSDP, it will create config entries without error. If the device is
uncontactable at this point then it will appear as unavailable in HA
until it is turned on again.

When import flow cannot migrate an entry because it needs to contact the
device and can't, it will notify the user with a config flow form.

* Don't del unused parameters, HA pylint doesn't care

* Remove unused imports from tests

* Abort config flow at earliest opportunity

* Return async_abort instead of raising AbortFlow

* Consolidate config entry test cleanup into a single function

* fixup! Consolidate config entry test cleanup into a single function

Revert "Consolidate config entry test cleanup into a single function"

This reverts commit 8220da7263e346a37c3e1a219dc374c4a43c7df5.

* Check resource acquisition/release in specific tests

* fixup! Check resource acquisition/release in specific tests

* Remove unused network dependency from manifest

* _on_event runs in async context

* Call async_write_ha_state directly (not via shedule_update)

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-07 22:14:00 +02:00
Aaron Bach
b980dc7e33 Use current config entry standards for Ambient PWS (#57133) 2021-10-07 22:19:03 +03:00
Franck Nijhof
f142d0a945 Upgrade ambee to 0.4.0 (#57264) 2021-10-07 21:11:38 +02:00
Kevin Hellemun
dc5e4392ae Refactor Xiaomi vacuum to sensors (#54990)
* Refactor Xiaomi vacuum with sensors.

This is the first step into refactoring xiaomi vacuum attributes into sensors.
What is missing are some switches and binary sensors etc.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Use generic sensor for Xiaomi vacuum sensors.

By using HA coordinator, the generic Xiaomi sensor class can be used with these
coordinators to get the status sensors from vacuum. This also means now that
sensors are available as soon as HA starts, which is a nice plus.

Now the only reason to create a subclass of the generic sensors is when custom
value parsing needs to be done.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Working vacuum sensors via 1 coordinator.

Vacuum needs a custom coordinator to ensure that it fetches all the needed data
and puts it in a dict. From this dict the sensors will then get their data
accordingly.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Remove vacuum setup method in sensor

Sensor is generic enough that vacuum does not require its own setup method.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Don't auto register generic sensors.

Let the user decide which sensor is useful for them and enable them.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Remove converted attributes from xiaomi vacuum.

The attributes that have been converted so far should be removed from the vacuum
attributes list.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Fetch data from vacuum sequentially.

It seems some vacuums do not like parallel requests. The requests that came
before are ignored.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Refactor vacuum sensors to its own container.

By moving vacuum sensors to its own container, there is no more key collisions.
This in turns means that there is need for the split hack to ensure key names
are correct.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* fixup! fix bad rebase.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Fix sensor naming and default registration.

Use proper names for sensors, no need to include from which device status it
came.

Registration of the sensor by default has been parameterised. If the param is
not set, the sensor is not registered.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Make vacuum platform also use coordinator for its data.

By using the coordinator for data in vacuum platfrom, removes the cases where
request gets ignored during the case where the requests are done concurrently by
separate platforms.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Add binary sensor for vacuum

Add binary sensor for waterbox, mop, and water shortage.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Added proper icons to sensors.

https://github.com/home-assistant/core/issues/51361

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Refactor sensors to use dataclass.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Make vacuum use coordinator for its data.

This commit also insures that the binary sensors are only registered for devices
that include a mop.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Apply suggestions from code review

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

* Minor refactoring

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Update data from coordinator after running command.

This is is to have a faster status change when executing a command like changing
fan speeds. If a manual refresh is not triggered. Worst case scenario it will
take 10s for the new fan speed to be reported in HA.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Refresh within coroutine is ok.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Move logging to _handle_coordinator_update

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Use internal state attribute.

Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>

* Fix vacuum typing

* Fix tests constants

* Fix vacuum inconsistent return values

* Fix vacuum state update

* Fix vacuum tests

* Remove impossible cases

* Parametrize custom services test

* Move goto test

* Move clean segment test

* Move clean single segment test

* Test service pause

* Include vacuum in coverage

* Delint

* Fix vacuum sensor dict collision.

This also prevents collision for unique id. As the key is used to construct
unique ids.

* Use f strings as dict keys

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-07 18:30:17 +02:00
Daniel Hjelseth Høyer
c651cff6a0 Bump Mill library to 0.6.1 (#57261) 2021-10-07 18:23:03 +02:00
J. Nick Koston
a2dcc0308b Discover tplink devices periodically (#57221)
- These devices sometimes do not respond on the first try
  or may be subject to transient broadcast failures, or
  overloads. We now try discovery periodically once the
  integration has been loaded.

- We used to try this 4x at startup, but that solution
  seemed to aggressive as we want to be sure we pickup
  the devices after startup as well since the network
  will likely be more calm after startup.
2021-10-07 17:52:24 +02:00
Maciej Bieniek
a238cce37c Update led brightness select state only if valid data is available, Xiaomi Miio integration (#57197)
* Update state if there is valid data

* Add comment
2021-10-07 17:44:25 +02:00
Erik Montnemery
0e48985fc5 Validate initial value for input_datetime (#57256) 2021-10-07 17:13:07 +02:00
Jeff Irion
9dfb684002 Enable template icons for template selects (#57092)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-10-07 15:38:02 +02:00
Martin Hjelmare
82828b5a1b Fix netgear config flow import (#57253) 2021-10-07 15:08:53 +02:00
Marc Mueller
e5b93cdcaf Use EntityDescription - darksky (#57083)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-10-07 14:07:17 +02:00
Erik Montnemery
7223c59e79 Allow resetting an MQTT number (#57161)
* Allow resetting an MQTT number

* Add abbreviation
2021-10-07 13:54:34 +02:00
Paulus Schoutsen
a4d9019ffc Refactor persistent notification to no longer route all data via a service (#57157)
* Convert persistent notification tests to async

* Create/dismiss persistent notifications in exposed functions, not service calls

* Fix notify persistent_notification

* Remove setting up persistent_notification

* Drop more setups

* Empty methods

* Undeprecate sync methods because too big task

* Fix setup clearing notifications

* Fix a bunch of tests

* Fix more tests

* Uno mas

* Test persistent notification events

* Clean up stale comment

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-07 12:58:00 +02:00
Robert Svensson
750dd9186e Improve deCONZ signal strings (#57140) 2021-10-07 12:48:27 +02:00
Aaron Bach
2ba8e1030c Ensure that WattTime is strictly typed (#57130) 2021-10-07 12:40:10 +02:00
Franck Nijhof
24fa2a714a Toon, support Energy dashboard by default (#57233) 2021-10-07 11:59:04 +02:00
Franck Nijhof
19b0212ff0 Upgrade coverage to 6.0.1 (#57235) 2021-10-07 10:46:43 +02:00
Erik Montnemery
947ae23749 Add home-assistant/core as codeowner for recorder (#57224) 2021-10-07 08:56:43 +02:00
GitHub Action
8fea54fff7 [ci skip] Translation update 2021-10-07 00:10:57 +00:00
Franck Nijhof
32889dbfbe Merge pull request #57179 from home-assistant/rc 2021-10-06 16:36:51 +02:00
Franck Nijhof
46394b50d8 Bumped version to 2021.10.0 2021-10-06 15:53:41 +02:00
Erik Montnemery
25fc479cd4 Correct migration to recorder schema 18 (#57165) 2021-10-06 15:52:20 +02:00
Bram Kragten
9636799dfb Update frontend to 20211006.0 (#57164) 2021-10-06 15:52:14 +02:00
Thomas Schamm
e01e575092 Skip link local addresses in bosch_shc discovery step (#57074) 2021-10-06 15:52:11 +02:00
Fredrik Erlandsson
2fc9cdbe68 Update Daikin config_flow with better error handling (#57069) 2021-10-06 15:52:07 +02:00
starkillerOG
72b3bc13e4 Remove Netgear tracker link_rate check on Orbi (#57032)
* Netgear tracker: remove link_rate check on Orbi

* fix debug message

* Add orbi models

* check start of model in V2 check

* fix black
2021-10-06 15:52:04 +02:00
Jean-Yves Avenard
9e755fcc49 Change energy state class to STATE_CLASS_TOTAL (#56974) 2021-10-06 15:52:00 +02:00
starkillerOG
3e89ebb1cb Remove Netgear tracker link_rate check on Orbi (#57032)
* Netgear tracker: remove link_rate check on Orbi

* fix debug message

* Add orbi models

* check start of model in V2 check

* fix black
2021-10-06 13:30:13 +02:00
Erik Montnemery
8337baa354 Correct migration to recorder schema 18 (#57165) 2021-10-06 13:29:42 +02:00
Jean-Yves Avenard
9d84d41f81 Change energy state class to STATE_CLASS_TOTAL (#56974) 2021-10-06 13:24:17 +02:00
Bram Kragten
e69a1c3546 Update frontend to 20211006.0 (#57164) 2021-10-06 11:33:55 +02:00
Tomasz
e9f6bc7364 Add missing return type to async_unload_entry and async_setup_entry (#57115) 2021-10-06 10:48:11 +02:00
Thomas Schamm
aa03b63884 Skip link local addresses in bosch_shc discovery step (#57074) 2021-10-06 10:09:02 +02:00
Fredrik Erlandsson
a809f5fcf7 Update Daikin config_flow with better error handling (#57069) 2021-10-06 10:07:30 +02:00
Paulus Schoutsen
a692d4de64 Bumped version to 2021.10.0b9 2021-10-05 21:34:22 -07:00
Paulus Schoutsen
bb617d7b89 Bump netdisco to 3.0.0 (#56903) 2021-10-05 21:34:18 -07:00
Paulus Schoutsen
790a61cfae Bumped version to 2021.10.0b8 2021-10-05 21:32:11 -07:00
Paulus Schoutsen
8e02ea1936 Guard upnp create device (#57156) 2021-10-05 21:32:06 -07:00
Simone Chemelli
7502956d2b Fix SamsungTV shutdown race condition (#57149) 2021-10-05 21:32:06 -07:00
Simone Chemelli
8394157c0a Fix Fritz shutdown race condition (#57148) 2021-10-05 21:32:05 -07:00
Lawrence
76a6edb4ed Updated amberelectic attributes to reflect unit change to $/kWh (#57109) 2021-10-05 21:32:04 -07:00
Paulus Schoutsen
222a0c26e0 Guard upnp create device (#57156) 2021-10-05 21:31:11 -07:00
Lawrence
205b40cf16 Updated amberelectic attributes to reflect unit change to $/kWh (#57109) 2021-10-05 20:34:23 -07:00
Simone Chemelli
d51d70d3be Fix Fritz shutdown race condition (#57148) 2021-10-05 20:26:18 -07:00
Simone Chemelli
9de3bd77d8 Fix SamsungTV shutdown race condition (#57149) 2021-10-05 20:25:57 -07:00
J. Nick Koston
7e5dfadc27 Add sw_version and model to flux_led device info (#56958) 2021-10-05 14:53:39 -10:00
J. Nick Koston
286ffb2d71 Write flux_led state after turning on/off (#57152) 2021-10-05 14:49:42 -10:00
Erik Montnemery
f6682ba99d Block tests from opening sockets (#55516) 2021-10-05 14:46:09 -10:00
GitHub Action
a8b7c521f6 [ci skip] Translation update 2021-10-06 00:12:58 +00:00
J. Nick Koston
d60f6a9943 Add additional devices to flux_led discovery (#57086) 2021-10-05 13:06:17 -10:00
Tom Brien
659229e255 Add support for POLY and RLY in Coinbase (#57144)
* Support POLY currency

* Support RLY currency
2021-10-05 15:18:17 -06:00
Aaron Bach
25253f2b7a Use current config entry standards for OpenUV (#57137) 2021-10-05 15:03:39 -06:00
Paulus Schoutsen
73bf538736 Bumped version to 2021.10.0b7 2021-10-05 13:45:52 -07:00
Raman Gupta
dbde2f1b92 Bump zwave-js-server-python to 0.31.3 (#57143) 2021-10-05 13:45:42 -07:00
Paulus Schoutsen
78bb2f5b73 Reinstate asking for country in Tuya flow (#57142) 2021-10-05 13:45:41 -07:00
J. Nick Koston
657037553a Fix yeelight connection when bulb stops responding to SSDP (#57138) 2021-10-05 13:45:40 -07:00
Paulus Schoutsen
0e00075628 Bump aiohue to 2.6.3 (#57125) 2021-10-05 13:45:39 -07:00
jrester
ecdbb5ff17 Update tesla_powerwall to 0.3.11 (#57112) 2021-10-05 13:45:38 -07:00
Franck Nijhof
a13a6bc9c9 Bump tuya-iot-py-sdk to 0.5.0 (#57110)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-05 13:45:38 -07:00
Paulus Schoutsen
5b550689e0 Update Tuya code owners (#57078) 2021-10-05 13:45:37 -07:00
Otto Winter
c5992e2967 Bump aioesphomeapi from 9.1.4 to 9.1.5 (#57106) 2021-10-05 13:43:48 -07:00
Franck Nijhof
b76e19c8c2 Remove Python shebang line from Tuya integration files (#57103) 2021-10-05 13:43:47 -07:00
Franck Nijhof
d1f790fab0 Small code styling tweaks for Tuya (#57102) 2021-10-05 13:43:47 -07:00
Franck Nijhof
4d44beb938 Prevent Tuya from accidentally logging credentials in debug mode (#57100) 2021-10-05 13:43:46 -07:00
indykoning
70a6930a8a Fix Growatt login invalid auth response (#57071) 2021-10-05 13:43:45 -07:00
J. Nick Koston
eba7cad33f Fix yeelight connection when bulb stops responding to SSDP (#57138) 2021-10-05 13:41:56 -07:00
Raman Gupta
e22407ba16 Bump zwave-js-server-python to 0.31.3 (#57143) 2021-10-05 22:33:23 +02:00
Paulus Schoutsen
34544da449 Reinstate asking for country in Tuya flow (#57142) 2021-10-05 22:32:48 +02:00
indykoning
f76cb12945 Fix Growatt login invalid auth response (#57071) 2021-10-05 12:31:23 -07:00
Paulus Schoutsen
1a7a4c52f1 Bump aiohue to 2.6.3 (#57125) 2021-10-05 19:42:45 +02:00
jrester
e66064fb3e Update tesla_powerwall to 0.3.11 (#57112) 2021-10-05 19:40:37 +02:00
Franck Nijhof
86852df2fc Bump tuya-iot-py-sdk to 0.5.0 (#57110)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-05 10:21:55 -07:00
Raman Gupta
3c074ab865 Add additional properties to node_status WS cmd (#56927)
* Add node.zwave_plus_version to node_status WS command

* Add highest security class to node_status
2021-10-05 11:23:44 -04:00
Franck Nijhof
80a04124a2 Small code styling tweaks for Tuya (#57102) 2021-10-05 12:59:51 +02:00
Otto Winter
5b218d7e1c Bump aioesphomeapi from 9.1.4 to 9.1.5 (#57106) 2021-10-05 11:49:39 +02:00
Boris K
8b02703585 Fix color util links to Philips Hue documentation (#57099) 2021-10-05 11:19:09 +02:00
Erik Montnemery
f548d1dba7 Prevent opening of sockets in mqtt tests (#57101) 2021-10-05 11:14:53 +02:00
Franck Nijhof
2059cbacbd Remove Python shebang line from Tuya integration files (#57103) 2021-10-05 11:12:55 +02:00
Franck Nijhof
653eb3e29d Upgrade debugpy to 1.5.0 (#57098) 2021-10-05 11:12:35 +02:00
Franck Nijhof
b5916c8310 Upgrade sentry-sdk to 1.4.3 (#57096) 2021-10-05 11:11:33 +02:00
Franck Nijhof
3645568dcc Upgrade jinja2 to 3.0.2 (#57095) 2021-10-05 11:03:51 +02:00
Franck Nijhof
f364d53c7b Prevent Tuya from accidentally logging credentials in debug mode (#57100) 2021-10-05 10:22:28 +02:00
Robert Svensson
59b1433e5c Additional place to use isinstance rather than do a string compare (#57094) 2021-10-05 09:17:45 +02:00
Paulus Schoutsen
b024d88b36 Deprecate Python 3.8 (#57079) 2021-10-05 08:58:20 +02:00
Paulus Schoutsen
b289bb2f57 Bumped version to 2021.10.0b6 2021-10-04 21:07:16 -07:00
GitHub Action
a457bb7446 [ci skip] Translation update 2021-10-04 21:07:12 -07:00
Paulus Schoutsen
f0b22e2f40 Fix energy gas price validation (#57075) 2021-10-04 21:06:47 -07:00
Bram Kragten
d42350f986 Update frontend to 20211004.0 (#57073) 2021-10-04 21:06:47 -07:00
Shay Levy
74aa57e764 Fix: Shelly Gen2 - filter unsupported sensors (#57065) 2021-10-04 21:06:46 -07:00
J. Nick Koston
fb9a119fc7 Update esphome reconnect logic to use newer RecordUpdateListener logic (#57057) 2021-10-04 21:06:45 -07:00
Erik Montnemery
f82fe9d8bb Improve sensor statistics validation (#56892) 2021-10-04 21:06:44 -07:00
Allen Porter
8026a14bc8 Bump nest 0.3.7 to prepare for WebRTC support (#57089) 2021-10-04 20:59:23 -07:00
Paulus Schoutsen
11ed70b774 Fix energy gas price validation (#57075) 2021-10-04 20:52:40 -07:00
Bram Kragten
91d3d39f6c Update frontend to 20211004.0 (#57073) 2021-10-04 20:52:17 -07:00
GitHub Action
1e5d408426 [ci skip] Translation update 2021-10-05 00:12:33 +00:00
Paulus Schoutsen
d743891842 Update Tuya code owners (#57078) 2021-10-04 15:44:17 -07:00
Shay Levy
c8dc5d15ee Fix: Shelly Gen2 - filter unsupported sensors (#57065) 2021-10-04 13:46:46 -07:00
Tomasz
08cebb247f Activate mypy for rpi_power (#57047) 2021-10-04 22:13:11 +02:00
J. Nick Koston
2f960e558f Prevent dlna_dmr from opening sockets in tests (#57059)
Supports #55516
2021-10-04 20:25:46 +02:00
J. Nick Koston
77af741099 Prevent tplink from opening sockets in tests (#57058)
Supports #55516
2021-10-04 20:25:09 +02:00
J. Nick Koston
d08b65db7d Update esphome reconnect logic to use newer RecordUpdateListener logic (#57057) 2021-10-04 19:52:08 +02:00
Alexei Chetroi
723596076d Add ZHA HVAC Action sensor (#57021)
* WIP

* Refactor multi-entity matching

Eliminate the notion on primary channel.

* Cleanup climate tests

* Refactor multi-entity match

Remove the "primary channel" in multiple entity matches

* Cleanup

* Add HVAC Action sensor

* Add a "stop_on_match" option for multi entities matches

Nominally working HVAC state sensors

* Add id_suffix for HVAC action sensor

* Fix Zen HVAC action sensor

* Pylint
2021-10-04 12:57:58 -04:00
Erik Montnemery
69875cbd11 Improve sensor statistics validation (#56892) 2021-10-04 09:47:44 -07:00
Marc Mueller
2f9943fe7a Use NamedTuple for repetier API methods (#56941) 2021-10-04 17:41:51 +02:00
Paulus Schoutsen
b086266508 [ci skip] Translation update 2021-10-04 08:38:35 -07:00
Paulus Schoutsen
eb9b9c57a4 [ci skip] Translation update 2021-10-04 08:38:24 -07:00
Paulus Schoutsen
491abf0608 Bumped version to 2021.10.0b5 2021-10-04 08:35:42 -07:00
GitHub Action
da61696566 [ci skip] Translation update 2021-10-04 08:35:37 -07:00
GitHub Action
688884ccfe [ci skip] Translation update 2021-10-04 08:35:28 -07:00
Joakim Sørensen
62390b9531 Rewrite tuya config flow (#57043)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-04 08:30:00 -07:00
Erik Montnemery
7ddb399178 Prevent opening of sockets in watttime tests (#57040) 2021-10-04 08:30:00 -07:00
Otto Winter
1fe4e08003 Bump aioesphomeapi from 9.1.2 to 9.1.4 (#57036) 2021-10-04 08:29:59 -07:00
Otto Winter
b106dab916 ESPHome fix zeroconf add_listener issue (#57031) 2021-10-04 08:29:58 -07:00
Chris Browet
36bac936d1 Universal media player: consider unknown as inactive child state (#57029) 2021-10-04 08:29:57 -07:00
Raman Gupta
4ca0c0d3a9 Bump zwave-js-server-python to 0.31.2 (#57007) 2021-10-04 08:29:56 -07:00
Paulus Schoutsen
cdaa7b7db7 Mark auth voluptuous schema fields as required (#57003) 2021-10-04 08:29:56 -07:00
Oliver Ou
d1f3602732 Fix Tuya v2 login issue (#56973)
* fix login issue

* fix:login error

* update COUNTRY_CODE_CHINA line location

* added one blank line

* feat:added line #L88 was not covered by tests

* ci build errors

Co-authored-by: erchuan <jie.zheng@tuya.com>
2021-10-04 08:29:55 -07:00
Erik Montnemery
8ee8aade86 Evict purged states from recorder's old_state cache (#56877)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-04 08:29:54 -07:00
Joakim Sørensen
745298408a Rewrite tuya config flow (#57043)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-10-04 08:27:24 -07:00
Erik Montnemery
8567aa9e13 Evict purged states from recorder's old_state cache (#56877)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-04 08:21:40 -07:00
Chris Browet
12c32ac806 Universal media player: consider unknown as inactive child state (#57029) 2021-10-04 17:10:41 +02:00
Marc Mueller
771740c5f9 Fix multiline lambda formatting - homekit_controller (#57046) 2021-10-04 16:12:22 +02:00
Erik Montnemery
582788026a Mock out network.util.async_get_source_ip in tests (#57039) 2021-10-04 15:33:13 +02:00
Erik Montnemery
70f4bdf63e Prevent opening of sockets in watttime tests (#57040) 2021-10-04 07:09:42 -06:00
Franck Nijhof
bdf6c79062 Upgrade coverage to 6.0 (#57041) 2021-10-04 14:17:43 +02:00
Marc Mueller
96681ab3a9 Use NamedTuple for darksky condition picture (#56942) 2021-10-04 13:38:32 +02:00
Erik Montnemery
099428fa73 Use hass_client_no_auth test fixture in additional tests (#57037) 2021-10-04 13:37:05 +02:00
Marc Mueller
e0ab4ee842 Use NamedTuple for homekit valve type + service info (#56944) 2021-10-04 13:35:31 +02:00
Erik Montnemery
80a225ca98 Prevent opening of sockets in kira tests (#57038) 2021-10-04 13:33:29 +02:00
Sylvia van Os
dc6f6b7f68 Remove Essent integration (#56991) 2021-10-04 13:31:40 +02:00
Otto Winter
bf9f55c376 Bump aioesphomeapi from 9.1.2 to 9.1.4 (#57036) 2021-10-04 13:23:11 +02:00
Otto Winter
da63a96273 ESPHome fix zeroconf add_listener issue (#57031) 2021-10-04 13:17:42 +02:00
Oliver Ou
7446e388ed Fix Tuya v2 login issue (#56973)
* fix login issue

* fix:login error

* update COUNTRY_CODE_CHINA line location

* added one blank line

* feat:added line #L88 was not covered by tests

* ci build errors

Co-authored-by: erchuan <jie.zheng@tuya.com>
2021-10-04 10:45:37 +02:00
Paulus Schoutsen
2d374d65b6 Mark auth voluptuous schema fields as required (#57003) 2021-10-03 22:02:30 -07:00
Paulus Schoutsen
6aad751056 Bumped version to 2021.10.0b4 2021-10-03 22:01:21 -07:00
jjlawren
2d8684283f Shorten album titles when browsing artist (#57027) 2021-10-03 22:01:13 -07:00
J. Nick Koston
779ae6c801 Add DHCP support for TPLink KP400 (#57023) 2021-10-03 22:01:13 -07:00
Tobias Sauerwein
48fecc916a Fix camera tests (#57020) 2021-10-03 22:01:12 -07:00
Oncleben31
0084db3ad2 Meteofrance fix #56975 (#57016) 2021-10-03 22:01:11 -07:00
Tobias Sauerwein
ea2113d5d2 Bump pyatmo to v6.1.0 (#57014) 2021-10-03 22:01:10 -07:00
Diogo Gomes
c22ec32726 Ignore utility_meter restore state if state is invalid (#57010)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-03 22:01:09 -07:00
J. Nick Koston
645cb53284 Bump yeelight to 0.7.6 (#57009)
- Fixes compat with Lamp15 model

- May improvment Monob model drops seen in #56646

Changes: 0b94e5214e
2021-10-03 22:01:09 -07:00
J. Nick Koston
5237817109 Round tplink energy sensors to prevent insignificant updates (#56999)
- These sensors wobble quite a bit and the precision did
  not have sensible limits which generated a massive amount
  of data in the database which was not very useful
2021-10-03 22:01:08 -07:00
Phil Cole
45b7922a6a Use pycarwings2.12 for Nissan Leaf integration (#56996) 2021-10-03 22:01:07 -07:00
Steven Looman
6f39632583 Bump async-upnp-client to 0.22.5 (#56989) 2021-10-03 22:01:06 -07:00
Steven Looman
757c5b9201 Fix upnp invalid key in ssdp discovery_info (#56986) 2021-10-03 22:01:06 -07:00
Shay Levy
7203f58b69 Bump aioshelly to 1.0.2 (#56980) 2021-10-03 22:01:05 -07:00
Aaron Bach
a527c451c3 Fix incorrect handling of hass.data in WattTime setup (#56971) 2021-10-03 22:01:04 -07:00
J. Nick Koston
201be1a59d Fix yeelight state when controlled outside of Home Assistant (#56964) 2021-10-03 22:01:03 -07:00
Oliver Ou
e454c6628a Fix Tuya v2 fan percentage (#56954)
* fix:Some fans do not have a fan_speed_percent key

* fix comment format issue

Co-authored-by: erchuan <jie.zheng@tuya.com>
2021-10-03 22:01:03 -07:00
Michael Chisholm
2dac92df0c Disable discovery for dlna_dmr until it is more selective (#56950) 2021-10-03 22:01:02 -07:00
Diogo Gomes
79b10c43d8 Ignore utility_meter restore state if state is invalid (#57010)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-03 21:59:36 -07:00
Paulus Schoutsen
255ffe801b Fix tractive flaky test (#57026) 2021-10-04 06:46:06 +02:00
Oncleben31
378cfab501 Meteofrance fix #56975 (#57016) 2021-10-03 21:15:41 -07:00
Phil Cole
c72a34dbec Use pycarwings2.12 for Nissan Leaf integration (#56996) 2021-10-03 21:14:45 -07:00
jjlawren
33541ab287 Shorten album titles when browsing artist (#57027) 2021-10-03 21:13:08 -07:00
J. Nick Koston
19d54399c2 Add DHCP support for TPLink KP400 (#57023) 2021-10-04 02:40:27 +02:00
GitHub Action
a4530d2bfc [ci skip] Translation update 2021-10-04 00:11:57 +00:00
Tobias Sauerwein
1747578be5 Fix camera tests (#57020) 2021-10-03 16:55:07 -07:00
Marc Mueller
3976443292 Use EntityDescription - homekit_controller (#56945) 2021-10-03 13:42:25 -10:00
J. Nick Koston
9d671eff27 Bump yeelight to 0.7.6 (#57009)
- Fixes compat with Lamp15 model

- May improvment Monob model drops seen in #56646

Changes: 0b94e5214e
2021-10-04 01:07:25 +02:00
Raman Gupta
2b464b00dd Bump zwave-js-server-python to 0.31.2 (#57007) 2021-10-03 18:24:23 -04:00
Tobias Sauerwein
c46e8cfbc1 Bump pyatmo to v6.1.0 (#57014) 2021-10-03 15:09:58 -07:00
Robert Svensson
1d643d6da7 Minor improvements to deCONZ light platform (#56953)
Use library constnats for flash and effect
Use attr_effect_list to specify supported effects
Use isinstance to identify if it is light or group
2021-10-03 22:14:28 +02:00
Maciej Bieniek
946a265c9e Use Final type only when needed in Tractive (#57000) 2021-10-03 22:12:59 +02:00
Maciej Bieniek
1488019cd9 Bump nettigo_air_monitor library to version 1.1.0 (#56952) 2021-10-03 22:56:50 +03:00
J. Nick Koston
4c51d0d2cf Round tplink energy sensors to prevent insignificant updates (#56999)
- These sensors wobble quite a bit and the precision did
  not have sensible limits which generated a massive amount
  of data in the database which was not very useful
2021-10-03 21:28:39 +02:00
Glenn Waters
57851e9623 Support connecting to ElkM1 over TLS 1.2 (#56887) 2021-10-03 08:06:29 -10:00
Daniel Perna
0d91167cdd Update pyhomematic to 0.1.75 (#56995) 2021-10-03 19:37:38 +02:00
Steven Looman
641f0babce Fix upnp invalid key in ssdp discovery_info (#56986) 2021-10-03 07:29:01 -10:00
Steven Looman
41d2f03b2f Bump async-upnp-client to 0.22.5 (#56989) 2021-10-03 07:28:41 -10:00
Michael Chisholm
64d4e8537f Disable discovery for dlna_dmr until it is more selective (#56950) 2021-10-03 09:09:30 -06:00
Daniel Hjelseth Høyer
2fdef0e144 Update surepetcare test (#56871)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-03 14:28:52 +03:00
Maciej Bieniek
f8b6fba3eb Bump gios library to 2.1.0 (#56984) 2021-10-03 12:41:22 +02:00
Shay Levy
ddc99afba9 Bump aioshelly to 1.0.2 (#56980) 2021-10-03 13:07:17 +03:00
Maciej Bieniek
f3c76fb859 Add strict typing to Tractive integration (#56948)
* Strict typing

* Add few missing types

* Run hassfest

* Fix mypy errors

* Use List instead of list
2021-10-03 09:13:12 +02:00
J. Nick Koston
1aeab65f56 Fix yeelight state when controlled outside of Home Assistant (#56964) 2021-10-03 00:08:31 -07:00
Alexei Chetroi
d0827a9129 ZHA support for additional entities on ElectricalMeasurement ZCL cluster (#56909)
* Add electrical measurement type state attribute.

* Add active_power_max attribute

* Skip unsupported attributes on entity update

* Fix tests

* Create sensor only if the main attribute is supported

* Refactor ElectricalMeasurement sensor to use attr specific divisor and multiplier

* Multiple entities for electrical measurement cluster

* Update discovery tests

* Sensor clean up

* update tests

* Pylint
2021-10-02 21:57:49 -04:00
Eduard van Valkenburg
7e5a991de5 Sia package update to 3.0.2 (#56896)
* update SIA package

* update SIA package to 3.0.2
2021-10-02 19:05:41 -06:00
Marc Mueller
6a1d7c7ad9 Remove icon if device_class is defined - homekit_controller (#56946) 2021-10-02 18:59:38 -06:00
Aaron Bach
0e1630e46d Fix incorrect handling of hass.data in WattTime setup (#56971) 2021-10-02 18:58:10 -06:00
Oliver Ou
6c2a18c3e5 Fix Tuya v2 fan percentage (#56954)
* fix:Some fans do not have a fan_speed_percent key

* fix comment format issue

Co-authored-by: erchuan <jie.zheng@tuya.com>
2021-10-03 02:41:31 +02:00
GitHub Action
06602e6cc5 [ci skip] Translation update 2021-10-03 00:13:50 +00:00
Bram Kragten
fc373563bd Update frontend to 20211002.0 (#56963) 2021-10-02 23:17:04 +02:00
Bram Kragten
ad6129c505 Update frontend to 20211002.0 (#56963) 2021-10-02 23:16:29 +02:00
Paulus Schoutsen
180316026b Bumped version to 2021.10.0b3 2021-10-02 13:54:13 -07:00
J. Nick Koston
e4d295c80a Add dhcp discovery for TPLink EP10 (#56955) 2021-10-02 13:54:07 -07:00
Simone Chemelli
14cddc75c2 Add sleep_period to log for easier debugging (#56949) 2021-10-02 13:54:06 -07:00
J. Nick Koston
427200e258 Bump PyFlume to 0.6.5 to fix compat with new JWT (#56936)
Changelog: 5476fd67cf...v0.6.5
2021-10-02 13:54:06 -07:00
Fredrik Erlandsson
4438fc55e0 Update pypoint to use v5 of backend API (#56934) 2021-10-02 13:54:05 -07:00
J. Nick Koston
8ecf03569d Add DHCP support for TPLink KL430, KP115 (#56932) 2021-10-02 13:54:04 -07:00
Maciej Bieniek
7a75506b02 Fix Unable to serialize to JSON error in Xiaomi Miio (#56929) 2021-10-02 13:54:04 -07:00
RenierM26
b1b23ef67d Fix Switchbot unsupported SB types (#56928) 2021-10-02 13:54:03 -07:00
MatthewFlamm
baae7089ed Bump pynws: fix unit code bug (#56923) 2021-10-02 13:54:02 -07:00
Aaron Bach
5f68192109 Address beta review comments for WattTime (#56919) 2021-10-02 13:54:01 -07:00
Michael
3579d638a8 Set unique id while SSDP discovery of Synology DSM (#56914) 2021-10-02 13:54:01 -07:00
Martin
75b6526cdc Fix vicare binary sensor (#56912) 2021-10-02 13:54:00 -07:00
J. Nick Koston
2f35cadba7 Add dhcp discovery for TPLink EP10 (#56955) 2021-10-02 13:53:37 -07:00
Fredrik Erlandsson
b563a41482 Update pypoint to use v5 of backend API (#56934) 2021-10-02 13:53:19 -07:00
Michael
2d174d0cbb Set unique id while SSDP discovery of Synology DSM (#56914) 2021-10-02 13:52:28 -07:00
RenierM26
7d6b4a985d Fix Switchbot unsupported SB types (#56928) 2021-10-02 13:51:53 -07:00
GitHub Action
94b8877e2a [ci skip] Translation update 2021-10-02 13:50:58 -07:00
icemanch
a95c6b10f7 Flux led config flow (#56354)
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-02 07:19:36 -10:00
Aaron Bach
80c97a2416 Remove injected logger in Ambient PWS and OpenUV (#56920)
* Remove injected log in OpenUV

* Add Ambient
2021-10-02 10:45:33 -06:00
Milan Meulemans
2874ca2e08 Log when Nanoleaf is unavailable (#56921) 2021-10-02 04:55:16 -10:00
Marc Mueller
1d00bc8a62 Use NamedTuple - iqvia Rating (#56943) 2021-10-02 08:46:57 -06:00
Simone Chemelli
62f1a16918 Add sleep_period to log for easier debugging (#56949) 2021-10-02 16:31:23 +02:00
GitHub Action
f42c2f5170 [ci skip] Translation update 2021-10-02 12:59:05 +00:00
Oliver
a99d92cdb4 Update denonavr codeowner (#56940) 2021-10-02 13:10:54 +02:00
J. Nick Koston
deea9ee22e Bump PyFlume to 0.6.5 to fix compat with new JWT (#56936)
Changelog: 5476fd67cf...v0.6.5
2021-10-02 12:47:28 +02:00
Aaron Bach
7c805f048c Address beta review comments for WattTime (#56919) 2021-10-02 12:20:17 +02:00
Franck Nijhof
39d73ecc19 Upgrade watchdog to 2.1.6 (#56933) 2021-10-02 10:19:54 +02:00
J. Nick Koston
da3cc25234 Add DHCP support for TPLink KL430, KP115 (#56932) 2021-10-02 10:19:11 +02:00
Milan Meulemans
d41832de59 Get min and max color temperature for Nanoleaf light from library (#56863) 2021-10-01 21:30:20 -10:00
Milan Meulemans
538773a14a Add SSDP discovery to Nanoleaf (#56907) 2021-10-01 21:29:56 -10:00
Simone Chemelli
73e58c8c62 Bump fritzconnection to 1.7.0 (#56924) 2021-10-02 09:13:40 +02:00
MatthewFlamm
11690bed58 Bump pynws: fix unit code bug (#56923) 2021-10-02 09:11:31 +02:00
Robert Svensson
818f695227 Replace strings with library constants in deCONZ fan platform 2021-10-02 09:09:26 +02:00
Robert Svensson
8258443a9e Replace strings with library constants in deCONZ climate platform 2021-10-02 09:08:01 +02:00
Maciej Bieniek
4cdbd3c576 Fix Unable to serialize to JSON error in Xiaomi Miio (#56929) 2021-10-02 09:05:49 +02:00
Ville Skyttä
2730a27fd0 Use HTTPStatus instead of HTTP_* constants in various test mocks (#56543) 2021-10-01 15:52:45 -07:00
Paulus Schoutsen
e5b0bbcca6 Bump netdisco to 3.0.0 (#56903) 2021-10-01 15:38:49 -07:00
Martin
316070f1e9 Fix vicare binary sensor (#56912) 2021-10-01 21:46:44 +02:00
Robert Svensson
8d06527cb1 Improve deCONZ services code quality (#56904)
* setup and unload services does not need to be async

* Only use DECONZ_DOMAIN to decide if service should be setup

* Consolidation of functionality

* Make a service to schema dictionary
2021-10-01 14:31:38 -04:00
Jeff Irion
15a8f6741b Enable template icons for template numbers (#56154) 2021-10-01 09:35:44 -07:00
Paulus Schoutsen
d6357bcbbe Bumped version to 2021.10.0b2 2021-10-01 09:31:17 -07:00
Robert Svensson
9a218ff241 CLIPGenericFlag should be deCONZ sensor not binary sensor (#56901) 2021-10-01 09:30:44 -07:00
Robert Svensson
f102bf3850 Use native unit of measurement in deCONZ sensors (#56897) 2021-10-01 09:30:43 -07:00
Simone Chemelli
c9346e9af1 Revert fritz pref_disable_new_entities handling (#56891) 2021-10-01 09:30:43 -07:00
Marc Mueller
2856355c28 Fix bmw_connected_drive battery icon (#56884) 2021-10-01 09:30:42 -07:00
Otto Winter
91b8d5fcd1 Bump aioesphomeapi from 9.1.0 to 9.1.2 (#56879) 2021-10-01 09:30:41 -07:00
Marc Mueller
666fbc9877 Fix check_control_message short description (#56876) 2021-10-01 09:30:40 -07:00
Daniel Hjelseth Høyer
1f1f2a6811 Opengarage bug fix (#56869)
* Opengarage bug fix

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

* Opengarage bug fix

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

* Deprecated open garage config

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

* Deprecated open garage config

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-01 09:30:40 -07:00
Ricardo Steijn
74a1f60441 Handle missing serial extended parameters in crownstone (#56864) 2021-10-01 09:30:39 -07:00
Erik Montnemery
d97286bcd6 Adjust state class of solarlog yield and consumption sensors (#56824) 2021-10-01 09:30:39 -07:00
Ville Skyttä
cc97502a0c Use HTTPStatus instead of HTTP_* consts in aiohttp web response statuses (#56541) 2021-10-01 09:27:44 -07:00
Marc Mueller
451199338c Fix bmw_connected_drive battery icon (#56884) 2021-10-01 18:27:32 +02:00
Ricardo Steijn
c0016415aa Handle missing serial extended parameters in crownstone (#56864) 2021-10-01 08:42:32 -07:00
Robert Svensson
1c1bb057d7 CLIPGenericFlag should be deCONZ sensor not binary sensor (#56901) 2021-10-01 17:10:01 +02:00
Erik Montnemery
061c335673 Remove some redundant code from trace (#56883) 2021-10-01 08:08:43 -07:00
Glenn Waters
e4f15c42e0 Add kPa as a pressure unit (#56885) 2021-10-01 08:08:04 -07:00
Robert Svensson
369412547a Use native unit of measurement in deCONZ sensors (#56897) 2021-10-01 16:50:09 +02:00
Erik Montnemery
ab037383ed Adjust state class of solarlog yield and consumption sensors (#56824) 2021-10-01 16:42:42 +02:00
Simone Chemelli
735c9f8f0b Revert fritz pref_disable_new_entities handling (#56891) 2021-10-01 16:18:49 +02:00
Robert Svensson
0916322a43 Deduplicate controls of UniFi services (#56834)
* Fix left over comments from #56717 - no need to keep UNIFI_SERVICES if we control it is only called while UNIFI_DOMAIN is empty

* Fix late comments as well

* Improve service tests

* mock.called_with was not reliable
2021-10-01 15:59:29 +02:00
Marc Mueller
954bd49849 Rename state to value_fn - picnic sensor (#56889) 2021-10-01 15:21:43 +02:00
Otto Winter
dc40de6b62 Bump aioesphomeapi from 9.1.0 to 9.1.2 (#56879) 2021-10-01 12:11:06 +02:00
Marc Mueller
acda3afe63 Fix check_control_message short description (#56876) 2021-10-01 11:50:49 +02:00
Daniel Hjelseth Høyer
d4201eaa23 Opengarage bug fix (#56869)
* Opengarage bug fix

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

* Opengarage bug fix

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

* Deprecated open garage config

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

* Deprecated open garage config

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-10-01 09:12:45 +02:00
Ian Foster
3f5725c6ea removing excess variable (#56849) 2021-10-01 07:25:28 +02:00
Tobias Sauerwein
7560c7b3de Add long-term statistics support for rain sensors (#56847) 2021-10-01 07:24:55 +02:00
Milan Meulemans
25b76964a5 Add Device Info to Nanoleaf (#56856) 2021-09-30 18:25:57 -05:00
Milan Meulemans
e757cb2ab4 Strictly type Nanoleaf (#56852) 2021-09-30 16:48:28 -05:00
Paulus Schoutsen
21aa635ad8 Bumped version to 2021.10.0b1 2021-09-30 14:11:43 -07:00
Erik Montnemery
a70daabcea Correct database migration to schema version 22 (#56848) 2021-09-30 14:11:35 -07:00
Milan Meulemans
baad8100f9 Upgrade aionanoleaf to 0.0.2 (#56845) 2021-09-30 14:11:35 -07:00
Raman Gupta
6ed46bf549 Add strings for new zwave_js config flow keys (#56844) 2021-09-30 14:11:34 -07:00
Erik Montnemery
dfb3a0c528 Correct database migration to schema version 22 (#56848) 2021-09-30 14:11:00 -07:00
Milan Meulemans
efeee27be1 Upgrade aionanoleaf to 0.0.2 (#56845) 2021-09-30 14:04:09 -07:00
Raman Gupta
b00822f93a Add strings for new zwave_js config flow keys (#56844) 2021-09-30 22:32:17 +02:00
Franck Nijhof
11f127c1a3 Bump version to 2021.11.0dev0 (#56835) 2021-09-30 19:32:25 +02:00
Franck Nijhof
0c765a40ae Bumped version to 2021.10.0b0 2021-09-30 18:48:14 +02:00
Daniel Hjelseth Høyer
4a2ed97e0d Add locking state to surepetcare locks (#56830) 2021-09-30 08:16:35 -07:00
Erik Montnemery
6af1a835e6 Optimize statistics generation (#56821)
* Optimize statistics generation

* pylint
2021-09-30 17:14:36 +02:00
Daniel Hjelseth Høyer
d5bda3ac14 Surepetcare reauthorize (#56402)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-30 10:11:45 -05:00
Daniel Hjelseth Høyer
08719af794 Bump Mill library (#56833) 2021-09-30 16:59:00 +02:00
Erik Montnemery
6954614e62 Warn if total_increasing sensor has negative states (#56564) 2021-09-30 07:49:16 -07:00
Niels Mündler
3a56e3a823 Correctly handle offline and unsupported printers during setup (#55894) 2021-09-30 16:29:51 +02:00
Bram Kragten
8196a84538 Update frontend to 20210930.0 (#56827) 2021-09-30 16:22:36 +02:00
Robert Svensson
d61a9e8b72 Service to remove clients from UniFi Controller (#56717) 2021-09-30 14:38:29 +02:00
Daniel Hjelseth Høyer
e729339538 Bump surepy to 0.7.2 (#56828) 2021-09-30 14:33:21 +02:00
Daniel Hjelseth Høyer
53e130d9a8 Deprecated open garage yaml config (#56829) 2021-09-30 14:19:46 +02:00
Erik Montnemery
55328d2c6f Adjust state class of growatt_server lifetime energy sensors (#56826) 2021-09-30 13:48:01 +02:00
Erik Montnemery
942db3fcbc Adjust state class of solaredge lifetime energy sensor (#56825) 2021-09-30 13:38:33 +02:00
Sean Vig
f18e4bab60 Add resolution to Amcrest camera unique id (#56207)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2021-09-30 13:38:18 +02:00
Kevin Stillhammer
dd52ec78c7 Add Kraken delay after first update to avoid limit (#55736)
* Add delay after first update to avoid limit

* Apply suggestions
2021-09-30 13:23:46 +02:00
Fabrizio Tarizzo
ef4b6d7bdf Update viaggiatreno component due to API changes (#56463) 2021-09-30 13:22:43 +02:00
Marko Korhonen
c9e1a03fe2 Remove webostv service description github link (#53502)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-09-30 13:03:38 +02:00
deosrc
d4ed0f9637 Fix OVO Energy reporting consumption as cost (#55856) 2021-09-30 12:31:06 +02:00
logan893
cf6398a949 Fix hue turning on eWeLink switch (#56318) 2021-09-30 12:22:42 +02:00
Simone Chemelli
ee28dd57c1 Rename var to compliant name in August integration (#56812) 2021-09-30 12:15:17 +02:00
Oxan van Leeuwen
c6f48056fd Remove dead code from ESPHome light entity (#55519) 2021-09-30 12:12:37 +02:00
Oliver Ou
d3b1ccb668 Tuya v2 Integration Release (#56820)
Co-authored-by: 乾启 <18442047+tsutsuku@users.noreply.github.com>
Co-authored-by: dengweijun <dengweijunben@gmail.com>
Co-authored-by: dengweijun <mengzi.deng@tuya.com>
Co-authored-by: erchuan <jie.zheng@tuya.com>
Co-authored-by: erchuan <erchuan365@outlook.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-30 12:02:56 +02:00
Julian Löhr
26042bdad7 Add Fritz!DECT 440 humidity sensor (#54597)
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2021-09-30 11:56:38 +02:00
acshef
4ae887ad34 Correct unit of measurement for qbittorrent data rate sensors (#55758) 2021-09-30 11:52:21 +02:00
Mas2112
1f5720199c Add DC voltage and current to Kostal inverter (#54878) 2021-09-30 11:41:55 +02:00
Tim Niemueller
0c1c1f7845 Fix Onvif PTZ for Imou cameras (#56592) 2021-09-30 11:36:49 +02:00
Greg
6a266ae3c0 Change state_class so older Envoys can use Energy Dashboard (#55383) 2021-09-30 11:34:41 +02:00
Ville Skyttä
4c854a06d9 Add some huawei_lte sensor state classifications (#55601) 2021-09-30 11:27:52 +02:00
Chris Talkington
a035615016 Use entity descriptions for sonarr (#55818) 2021-09-30 11:25:42 +02:00
Aaron Bach
4b68700763 Add long-term statistics for Ambient PWS sensors (#55412) 2021-09-30 11:20:14 +02:00
Simone Chemelli
8993ff0377 Fritz new binary sensor for link and firmware status + code cleanup (#55446) 2021-09-30 11:18:04 +02:00
ehendrix23
a6a3745413 Handle UpnpError exceptions when getting WAN status and external IP address (#56744) 2021-09-30 10:41:28 +02:00
Ian Foster
2e02945833 Add keyboard event type to keyboard_remote (#56668)
* added keyboard event type to keyboard_remote

* fix emulated hold event

* Update homeassistant/components/keyboard_remote/__init__.py

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

* removed event value

* set key_hold to use string constant

* don't use dict.get() for keyboard event type

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-09-30 09:17:57 +02:00
Marc Mueller
54abd80462 Use EntityDescription - smappee (#56747) 2021-09-30 09:15:09 +02:00
Rami Mosleh
51addfc164 Add device_info to Speedtestdotnet and some code cleanup (#56612)
* Apply code cleanup suggestions from previous PRs

* Update homeassistant/components/speedtestdotnet/const.py

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

* fix native_value, and ping value in test

* use self._state instead of _attr_native_value

* update identifiers and add more tests

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-09-30 08:28:04 +02:00
J. Nick Koston
2ed35debdc Fix dhcp discovery matching due to deferred imports (#56814) 2021-09-29 23:50:21 -05:00
David F. Mulcahey
a7f554e6da Bump ZHA quirks module to 0.0.62 (#56809) 2021-09-29 22:47:15 -04:00
Raman Gupta
e9d25974b8 Switch to using constants wherever possible in zwave_js (#56518) 2021-09-30 02:21:53 +02:00
jjlawren
2ff1fc83bc Add latest added media as Plex library sensor attribute (#56235) 2021-09-29 17:11:53 -07:00
João Pedro Hickmann
a967a1d1df Get the currency from the api (#56806) 2021-09-29 16:25:07 -07:00
Martin Hjelmare
12b2076351 Fix zwave_js config flow import step (#56808) 2021-09-30 01:15:05 +02:00
Simone Chemelli
b9d81c3a7e Handle Fritz portmapping with same name (#56398) 2021-09-29 15:11:22 -07:00
Martin Hjelmare
fa716d92ad Manage s2 keys in zwave_js (#56783) 2021-09-29 15:04:24 -07:00
Erik Montnemery
8c3fc95fb8 Fallback to state machine in statistics (#56785) 2021-09-29 14:57:16 -07:00
Martin Hjelmare
7dfcccd43e Bump holidays to 0.11.3.1 (#56804) 2021-09-29 23:57:07 +02:00
RDFurman
f8903e11e0 Fix honeywell connection error (#56757)
* Catch ConnectionError and retry

* Add unload and reload functionality

* Update listener on retry

* Call reload directly and await

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-29 16:10:22 -05:00
Raman Gupta
18340b2fd9 Bump zwave-js-server-python to 0.31.1 (#56517) 2021-09-29 22:33:35 +02:00
Robert Svensson
f224ab6d67 Use isinstance to verify class in deCONZ integration (#56794)
* Don't enable any variants of the daylight sensor entities by default

* Use isinstance rather than doing ZHATYPE compare

* Accidentally removed an import
2021-09-29 21:19:21 +02:00
Maciej Bieniek
0463007050 Add switch platform to Tractive integration (#55517) 2021-09-29 21:06:11 +02:00
J. Nick Koston
23cbd9075a Wait for yeelight internal state to change before update after on/off (#56795) 2021-09-29 13:49:33 -05:00
Franck Nijhof
25ce7f951a Merge branch 'master' into dev 2021-09-29 20:47:34 +02:00
Erik Montnemery
a966714032 Minor cleanup of recorder statistics code (#55339) 2021-09-29 11:42:39 -07:00
jjlawren
8f4ba564d4 Plex media browser improvements (#56312) 2021-09-29 11:17:55 -07:00
Erik Montnemery
ef13e473cf Warn if template functions fail and no default is specified (#56453)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-29 20:16:02 +02:00
Aaron Bach
ae00c221e0 Add long-term statistics for Guardian sensors (#55413)
* Add long-term statistics for Guardian sensors

* Code review
2021-09-29 12:06:48 -06:00
J. Nick Koston
f7ef973c68 Bump aiodiscover to 1.4.4 to fix mac matching with leading 0s (#56791) 2021-09-29 13:18:13 -04:00
Alexei Chetroi
dbba2c4afe Add "Summation Delivered" Sensor for SmartEnergy metering ZHA channel (#56666) 2021-09-29 09:35:20 -07:00
Daniel Hjelseth Høyer
60eb426451 Add Surepetcare locks (#56396)
* Surepetcare, add lock

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

* Fix tests

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

* Surepetcare, lock name

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

* surepetcare_id

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

* typing

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

* Fix review comment

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

* Fix review comment

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

* Fix review comment

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

* add more tests

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

* Fix review comment

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-29 09:17:12 -07:00
Martin Hjelmare
50fffe48f8 Add zwave to zwave_js migration (#56159)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-29 08:55:27 -07:00
Daniel Hjelseth Høyer
d5c3d234ec Open garage, add config flow (#55290) 2021-09-29 09:43:51 -06:00
Erik Montnemery
40ecf22bac Remove automatic splitting of net meters from statistics (#56772) 2021-09-29 17:20:17 +02:00
Andre Richter
d13c3e3917 Migrate Vallox to new fan entity model (#56663)
* Migrate Vallox to new fan entity model

* Review comments 1

* Minor corrections

* Review comments 2
2021-09-29 17:14:41 +02:00
Erik Montnemery
00651a4055 Optimize _get_states_with_session (#56734)
* Optimize _get_states_with_session

* Move custom filters to derived table

* Remove useless derived table

* Filter old states after grouping

* Split query

* Add comments

* Simplify state update period criteria

* Only apply custom filters if we didn't get an include list of entities

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-29 17:08:27 +02:00
avee87
daebc34f4d Add code_format to template alarm (#56700)
* Added code_format to template alarm

* review comment

* review comment

* use constant

* back to enum

* none -> no_code
2021-09-29 16:59:46 +02:00
Marc Mueller
77ee72cbb9 Import Callable from collections.abc (1) (#56775) 2021-09-29 16:32:11 +02:00
Marc Mueller
d51487f82a Import Callable from collections.abc (3) (#56777) 2021-09-29 16:19:06 +02:00
Marc Mueller
364767ff22 Import Callable from collections.abc (4) (#56778) 2021-09-29 16:15:36 +02:00
jan iversen
19685ecff0 Set strict typing for modbus. (#56779) 2021-09-29 16:15:55 +03:00
Marc Mueller
565a9fea6b Import Callable from collections.abc (2) (#56776) 2021-09-29 14:06:51 +02:00
Franck Nijhof
41e5f05d99 Fix energy validation when not tracking costs (#56768) 2021-09-29 13:24:34 +02:00
Maciej Bieniek
d3df6f26f9 Add missing voltage sensor in Shelly integration (#56773)
* Disable voltage sensor by default

* Add voltage sensor for Shelly 2/2.5

* Enable emeter voltage by default
2021-09-29 14:22:42 +03:00
Erik Montnemery
52e9f76f94 Tweak DB migration to schema version 21 (#56767) 2021-09-29 11:25:50 +02:00
Fabian Affolter
be34a2ddea Upgrade beautifulsoup4 to 4.10.0 (#56764) 2021-09-29 11:25:29 +02:00
Fabian Affolter
deb0cc4116 Upgrade holidays to 0.11.3 (#56762) 2021-09-29 11:25:06 +02:00
Joakim Sørensen
6a9b484f2d Remove timeout for backup services (#56763) 2021-09-29 09:46:05 +02:00
Regev Brody
115bb39c10 Fix cover group to handle unknown state properly (#56739)
* fix cover group unknown state

* fix cover grup state

* fix cover group issue
2021-09-29 08:37:16 +02:00
Simone Chemelli
34ef47db55 Fritz honor sys option pref_disable_new_entities (#56740) 2021-09-28 20:59:03 -07:00
João Pedro Hickmann
4513a46248 Add zeroconf support for yeelight (#56758) 2021-09-28 20:53:43 -05:00
Myles Eftos
8e91e6e97e Adding price spike binary sensor to the Amber electric integration (#56736) 2021-09-28 18:01:35 -07:00
J. Nick Koston
cf36d0966d Add coverage to verify tplink unique ids (#56746) 2021-09-28 17:57:22 -07:00
Michael Chisholm
f7d95588f8 Provide most media metadata in DlnaDmrEntity (#56728)
Co-authored-by: Steven Looman <steven.looman@gmail.com>
2021-09-28 19:37:23 -05:00
Marc Mueller
718f8d8bf7 Use NamedTuple for xbox media type details (#56753) 2021-09-28 17:00:19 -07:00
Marc Mueller
15aafc8db6 Use NamedTuple for discovery service details (#56751) 2021-09-28 16:59:40 -07:00
Marc Mueller
a91fbec198 Use NamedTuple for esphome service metadata (#56754) 2021-09-28 16:58:36 -07:00
Marc Mueller
160571888c Use NamedTuple for intesishome swing settings (#56752) 2021-09-28 16:56:58 -07:00
Raman Gupta
e76ddb4b27 Add proper S2 support for adding zwave_js nodes (#56516)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-28 15:37:45 -07:00
Milan Meulemans
db30c27455 Clean up Nanoleaf (#56732) 2021-09-28 15:39:54 -05:00
J. Nick Koston
bc59387437 Explictly close the TPLink SmartDevice protocol on unload (#56743)
* Explictly close the TPLink SmartDevice protocol on unload

- There is a destructor that will eventually do this when
  the object gets gc. Its better to explictly do it at
  unload.

* fix coro mock
2021-09-28 18:36:45 +02:00
J. Nick Koston
c95f7a5ba6 Add network support to tplink for discovery across subnets (#56721) 2021-09-28 09:58:25 -05:00
Maciej Bieniek
0044fa9fb9 Add support for pedestal MIOT fans to Xiaomi Miio integration (#56555)
* Add initial support for Xiaomi Fan ZA5

* Add sensor, number and switch platform

* Addionizer switch

* Improve ionizer icon

* Fix parent of XiaomiFanMiot class

* Add another MIOT models

* Fix consts

* Add powersupply attached binary sensor

* Simplify async_create_miio_device_and_coordinator

* Simplify XiaomiGenericFan

* Fix XiaomiFanZA5 parent

* Remove pass

* Remove unused _available variable

* 1C doesn't support direction

* Suggested change

* Use elif

* Clean up oscillation angle

* Fix typo
2021-09-28 10:21:14 +02:00
Joakim Sørensen
b179301152 Adjust lock configuration (#56731) 2021-09-28 10:15:45 +02:00
Adrian Huber
b64b926e13 Add raid monitoring to glances (#56623) 2021-09-28 10:04:08 +02:00
gjong
495e5cb1c0 Update YouLess library for support for PVOutput firmware (#55784) 2021-09-28 09:59:40 +02:00
Maciej Bieniek
2581a3a735 Add binary sensor platform to Tractive integration (#56635)
* Add binary sensor platform

* Update .coveragerc file

* Create battery charging sensor only if tracker supports it

* Improve async_setup_entry

* Add TRAXL1 model
2021-09-28 09:56:06 +02:00
jjlawren
0d6aa89fd4 Refactor Sonos alarms and favorites updating (#55529) 2021-09-28 09:49:32 +02:00
Diogo Gomes
922d4c42a3 Inherit Filter sensor state_class from source sensor (#56407) 2021-09-28 09:30:21 +02:00
Regev Brody
9d89e1ae00 Bump WazeRouteCalculator to 0.13 (#56718) 2021-09-28 09:25:34 +02:00
dependabot[bot]
8dc4824aac Bump dessant/lock-threads from 2.1.2 to 3 (#56727)
Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 2.1.2 to 3.
- [Release notes](https://github.com/dessant/lock-threads/releases)
- [Changelog](https://github.com/dessant/lock-threads/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dessant/lock-threads/compare/v2.1.2...v3)

---
updated-dependencies:
- dependency-name: dessant/lock-threads
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-28 10:19:57 +03:00
Raman Gupta
e690d4b006 Add support for zwave_js device actions (#53038)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-28 09:06:02 +02:00
Erik Montnemery
552485bb05 Tweak list_statistic_ids (#55845)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-28 00:05:26 -07:00
Oscar Calvo
c48527858d Activate fault handler (#56550) 2021-09-28 00:05:06 -07:00
Myles Eftos
412ecacca3 Amberelectric (#56448)
* Add Amber Electric integration

* Linting

* Fixing some type hinting

* Adding docstrings

* Removing files that shouldn't have been changed

* Splitting out test helpers

* Testing the price sensor

* Testing Controlled load and feed in channels

* Refactoring mocks

* switching state for native_value and unit_of_measurement for native_unit_of_measurement

* Fixing docstrings

* Fixing requiremennts_all.txt

* isort fixes

* Fixing pylint errors

* Omitting __init__.py from test coverage

* Add missing config_flow tests

* Adding more sensor tests

* Applying suggested changes to __init.py__

* Refactor coordinator to return the data object with all of the relevent data already setup

* Another coordinator refactor - Better use the dictionary for when we build the sensors

* Removing first function

* Refactoring sensor files to use entity descriptions, remove factory

* Rounding renewable percentage, return icons correctly

* Cleaning up translation strings

* Fixing relative path, removing TODO

* Coordintator tests now accept new (more accurate) fixtures

* Using a description placeholder

* Putting missing translations strings back in

* tighten up the no site error logic - self._site_id should never be None at the point of loading async_step_site

* Removing DEVICE_CLASS, replacing the units with AUD/kWh

* Settings _attr_unique_id

* Removing icon function (it's already the default)

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Adding strings.json

* Tighter wrapping for try/except

* Generating translations

* Removing update_method - not needed as it's being overriden

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Fixing tests

* Add missing description placeholder

* Fix warning

* changing name from update to update_data to match async_update_data

* renaming [async_]update_data => [async_]update_price_data to avoid confusion

* Creating too man renewable sensors

* Override update method

* Coordinator tests use _async_update_data

* Using $/kWh as the units

* Using isinstance instead of __class__ test. Removing a zero len check

* Asserting self._sites in second step

* Linting

* Remove useless tests

Co-authored-by: jan iversen <jancasacondor@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-09-28 00:03:51 -07:00
J. Nick Koston
f93539ef4c Add api to the network integration to get ipv4 broadcast addresses (#56722) 2021-09-27 21:43:39 -07:00
J. Nick Koston
aea754df5d Add dhcp support for TPLink KL60 and EP40 (#56726) 2021-09-27 22:45:53 -05:00
Erik Montnemery
8ef123259e Add WS API for updating unit_of_measurement in statistics metadata (#56184)
* Add WS API for updating statistics metadata

* Update homeassistant/components/recorder/websocket_api.py

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

* Update homeassistant/components/recorder/websocket_api.py

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

* Fix typo

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-28 00:43:29 +02:00
Diogo Gomes
ec9fc0052d Define unit_of_measurement of all utility_meter sensors on HA start (#56112)
* define unit_of_measurement on hass start

* delay utility_meter state

* check state

* store siblings

* don't check unit_of_measurement
2021-09-28 00:42:27 +02:00
Erik Montnemery
5976f898da Add WS API for removing statistics for a list of statistic_ids (#55078)
* Add WS API for removing statistics for a list of statistic_ids

* Refactor according to code review, enable foreign keys support for sqlite

* Adjust tests

* Move clear_statistics WS API to recorder

* Adjust tests after rebase

* Update docstring

* Update homeassistant/components/recorder/websocket_api.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Adjust tests after rebase

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-09-27 23:30:13 +02:00
tube0013
0653693dff Add usb discovery for tubeszb ch340B serial devices (#56719) 2021-09-27 16:19:42 -05:00
Michael Chisholm
a28fd7d61b Config-flow for DLNA-DMR integration (#55267)
* Modernize dlna_dmr component: configflow, test, types

* Support config-flow with ssdp discovery
* Add unit tests
* Enforce strict typing
* Gracefully handle network devices (dis)appearing

* Fix Aiohttp mock response headers type to match actual response class

* Fixes from code review

* Fixes from code review

* Import device config in flow if unavailable at hass start

* Support SSDP advertisements

* Ignore bad BOOTID, fix ssdp:byebye handling

* Only listen for events on interface connected to device

* Release all listeners when entities are removed

* Warn about deprecated dlna_dmr configuration

* Use sublogger for dlna_dmr.config_flow for easier filtering

* Tests for dlna_dmr.data module

* Rewrite DMR tests for HA style

* Fix DMR strings: "Digital Media *Renderer*"

* Update DMR entity state and device info when changed

* Replace deprecated async_upnp_client State with TransportState

* supported_features are dynamic, based on current device state

* Cleanup fully when subscription fails

* Log warnings when device connection fails unexpectedly

* Set PARALLEL_UPDATES to unlimited

* Fix spelling

* Fixes from code review

* Simplify has & can checks to just can, which includes has

* Treat transitioning state as playing (not idle) to reduce UI jerking

* Test if device is usable

* Handle ssdp:update messages properly

* Fix _remove_ssdp_callbacks being shared by all DlnaDmrEntity instances

* Fix tests for transitioning state

* Mock DmrDevice.is_profile_device (added to support embedded devices)

* Use ST & NT SSDP headers to find DMR devices, not deviceType

The deviceType is extracted from the device's description XML, and will not
be what we want when dealing with embedded devices.

* Use UDN from SSDP headers, not device description, as unique_id

The SSDP headers have the UDN of the embedded device that we're interested
in, whereas the device description (`ATTR_UPNP_UDN`) field will always be
for the root device.

* Fix DMR string English localization

* Test config flow with UDN from SSDP headers

* Bump async-upnp-client==0.22.1, fix flake8 error

* fix test for remapping

* DMR HA Device connections based on root and embedded UDN

* DmrDevice's UpnpDevice is now named profile_device

* Use device type from SSDP headers, not device description

* Mark dlna_dmr constants as Final

* Use embedded device UDN and type for unique ID when connected via URL

* More informative connection error messages

* Also match SSDP messages on NT headers

The NT header is to ssdp:alive messages what ST is to M-SEARCH responses.

* Bump async-upnp-client==0.22.2

* fix merge

* Bump async-upnp-client==0.22.3

Co-authored-by: Steven Looman <steven.looman@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-27 15:47:01 -05:00
RenierM26
b15f11f46a Discover Switchbot MAC in config flow (#56616)
* Update config_flow.py

* Switchbot Config_flow discover mac instead of needing to type it.

* Do not show already configured devices in config flow, abort if no unconfigured devices.

* Apply suggestions from code review

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

* Move MAC to top of config flow form dict.

* Update homeassistant/components/switchbot/config_flow.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-27 15:12:40 -05:00
Teemu R
b40d229369 Rework TPLink integration to use python-kasa (#56701)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Teemu R. <tpr@iki.fi>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-27 14:11:55 -05:00
Hung Nguyen
7a2bc130b7 Bump elkm1-lib to 1.0.0 (#56703) 2021-09-27 14:10:09 -05:00
Bastien Gautier
806fdc0095 Patch coinbase (#56426)
* Add Clover Finance coin to coinbase

* Add Fetch.ai coin to coinbase

* Fix typo
2021-09-27 20:39:43 +02:00
Marc Mueller
2f4e992662 Use EntityDescription - daikin (#55929) 2021-09-27 20:26:10 +02:00
Raman Gupta
f0e0b41f77 Use entity attributes for vizio integration (#56093) 2021-09-27 20:20:15 +02:00
Marc Mueller
0dcd8b32ab Use EntityDescription - meteo_france (#55677) 2021-09-27 19:40:55 +02:00
Marc Mueller
71ce858378 Use EntityDescription - toon (#55035) 2021-09-27 19:37:12 +02:00
Erik Montnemery
fe66d6295c Improve migration to recorder schema version 21 (#56204) 2021-09-27 19:31:40 +02:00
Steffen Zimmermann
e5642a8648 Add state_class measurements in wiffi integration (#54279)
* add support for state_class measurements in wiffi integration

* use new STATE_CLASS_TOTAL_INCREASING for metered entities

like
- amount of rainfall per hour/day
- rainfall hours per day
- sunshine hours per day

* Update homeassistant/components/wiffi/sensor.py

Co-authored-by: Greg <greg.diehl.gtd@gmail.com>

Co-authored-by: Greg <greg.diehl.gtd@gmail.com>
2021-09-27 18:28:20 +02:00
Erik Montnemery
4d7e3cde5a Minor cleanup and test coverage improvement for MQTT (#55265) 2021-09-27 17:45:52 +02:00
Franck Nijhof
eae828a15a Upgrade lupupy to 0.0.21 (#56636) 2021-09-27 17:42:13 +02:00
Michael Chisholm
805e73f78c Add UPNP device connection for Sonos (#56702) 2021-09-27 17:36:47 +02:00
Marc Mueller
70cc6295b5 Use EntityDescription - hydrawise (#55924) 2021-09-27 17:35:09 +02:00
Fredrik Oterholt
4d433e18ac Add more sensor types for airthings devices (#56706)
* add additional sensor types for airthings devices

* remove "out of ten" unit

* change unit on rssi

* remove device class for light

* disable by default
2021-09-27 13:27:02 +02:00
Marius
4ce7166afd Add node sensor status icons (#56137)
Co-authored-by: kpine <keith.pine@gmail.com>
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
2021-09-27 12:50:14 +02:00
Marc Mueller
83b1b3e92c Use EntityDescription - tellduslive (#55928) 2021-09-27 12:28:58 +02:00
Michael
f2debf5c01 Remove unnecessary extra attribute from Pi-hole sensors (#56076) 2021-09-27 12:27:03 +02:00
jan iversen
6da548b56a Strictly type modbus cover.py (#56381) 2021-09-27 12:26:25 +02:00
jan iversen
50f97b26eb Strictly type modbus climate.py (#56380) 2021-09-27 12:25:05 +02:00
Simone Chemelli
b612e16120 Add current and latest firmware info to Synology_dsm (#56460) 2021-09-27 12:23:26 +02:00
Erik Montnemery
58f465f271 Don't reset meter when last_reset is set to None (#56609) 2021-09-27 12:17:09 +02:00
jjlawren
931cf4eaab Improve Sonos handling of TuneIn stations (#56479) 2021-09-27 12:07:14 +02:00
Robert Svensson
ca6b53c16d Remove UniFi config entry reference from device when removing last entity of said device (#56501) 2021-09-27 12:04:29 +02:00
Erik Montnemery
efe467217a Don't round in energy cost sensor (#56258) 2021-09-27 12:01:17 +02:00
Aaron Bach
56b94d6809 Simplify native value property for WattTime (#56664) 2021-09-27 11:58:51 +02:00
Franck Nijhof
4f5d6b8ba1 Upgrade sentry-sdk to 1.4.1 (#56707) 2021-09-27 11:20:43 +02:00
Erik Montnemery
14a1bb423c Add is_number template filter and function (#56705) 2021-09-27 10:47:57 +02:00
Fabian Affolter
e4dc646237 Upgrade praw to 7.4.0 (#56682) 2021-09-27 08:48:21 +02:00
Michael Chisholm
6c2674734a SSDP starts config flow only for alive devices (#56551)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-27 08:39:22 +02:00
dependabot[bot]
0f313ec73c Bump home-assistant/builder from 2021.07.0 to 2021.09.0 (#56704)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-27 08:37:54 +02:00
J. Nick Koston
0fce9f39b3 Avoid checking if a package is installed if it already failed (#56698) 2021-09-26 22:32:25 -07:00
Fabian Affolter
01bd3ff138 Upgrade sendgrid to 6.8.2 (#56688) 2021-09-27 07:03:29 +02:00
Fabian Affolter
8884e9691e Upgrade TwitterAPI to 2.7.5 (#56687) 2021-09-27 07:03:09 +02:00
Fabian Affolter
55c9abc58d Upgrade discord.py to 1.7.3 (#56686) 2021-09-27 07:02:46 +02:00
Fabian Affolter
44a4507b51 Upgrade requests to 2.26.0 (#56683)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-26 21:44:28 -05:00
Fabian Affolter
115d34f55a Set certifi to >=2021.5.30 (#56679)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-26 21:19:30 -05:00
J. Nick Koston
7ab6c82ad2 Drop defusedxml dep from ssdp manifest (#56699) 2021-09-26 19:49:43 -05:00
J. Nick Koston
26e031984b Ensure sonos always gets ssdp callbacks from searches (#56591) 2021-09-26 17:16:03 -05:00
J. Nick Koston
6399730d2f Optimize SSDP matching (#56622)
* Optimize SSDP matching

* tweak

* remove

* remove dupe
2021-09-26 16:30:39 -05:00
J. Nick Koston
f268227d64 Implement retry and backoff strategy for requirements install (#56580)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-09-26 14:47:03 -05:00
Raman Gupta
8716aa011a Add support for multilevel switch CC select entities (#56656)
* Add support for multilevel switch CC select entities

* Use state names from docs and include more device identifiers from device DB

* black

* pylint

* type fix

* Add failure scenario test

* Update homeassistant/components/zwave_js/select.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-26 14:22:41 -04:00
Fabian Affolter
2326e3ed94 Upgrade voluptuous to 0.12.2 (#56680) 2021-09-26 18:59:00 +02:00
J. Nick Koston
52410ff0d7 Ensure yeelight can be unloaded when device is offline (#56464) 2021-09-26 09:54:43 -07:00
J. Nick Koston
26f73779cc Avoid enabling ipv6 dual stack for zeroconf on unsupported platforms (#56584) 2021-09-26 09:51:34 -07:00
J. Nick Koston
f74291ccb6 Expose the ability to move an entity/device between config entries (#56661) 2021-09-26 09:50:57 -07:00
Marc Mueller
e35e584b60 Use EntityDescription - sht31 (#56435)
* Use EntityDescription - sht31

* Add device_class for humidity

* Fix monitored conditions

* Add pylint disable
2021-09-26 18:19:36 +02:00
Fabian Affolter
65bce33a63 Upgrade emoji to 1.5.0 (#56684) 2021-09-26 15:09:13 +02:00
Franck Nijhof
bfefe82605 Upgrade pre-commit to 2.15.0 (#56677) 2021-09-26 14:47:47 +02:00
Fabian Affolter
a0a359e2ef Upgrade ciso8601 to 2.2.0 (#56678) 2021-09-26 14:47:29 +02:00
Daniel Hjelseth Høyer
d8387744ec Correct the device name for Airthings (#56655) 2021-09-26 12:48:27 +02:00
Aaron Bach
01e03a223b Simplify native value and attributes properties for Flu Near You (#56665) 2021-09-26 11:12:54 +02:00
Aaron Bach
aeba3a703f Revert "Simplify state update for Flu Near You (#56650)" (#56662)
This reverts commit d4ebcf2ba5.
2021-09-25 17:19:17 -06:00
Robert Svensson
8db0bd3c0e Fix state_class for deCONZ power sensors (#56586)
* Fix state_class for power sensors
Rewrite entity descriptions for binary sensor and sensor platforms

* Remove icon if device_class is specified
2021-09-25 20:54:55 +02:00
Aaron Bach
d4ebcf2ba5 Simplify state update for Flu Near You (#56650) 2021-09-25 20:22:51 +02:00
Franck Nijhof
fabf5204be Ignore config directory symlink in development (#56639) 2021-09-25 12:53:41 +02:00
Franck Nijhof
83f1116432 Upgrade numpy to 1.21.2 (#56640) 2021-09-25 12:39:21 +02:00
Franck Nijhof
23e1c663d4 Upgrade pytest-xdist to 2.4.0 (#56606) 2021-09-25 12:07:29 +02:00
Matt Zimmerman
754ff7e3cb Update python-smarttub to 0.0.27 (#56626) 2021-09-25 12:06:41 +02:00
MatthewFlamm
8bc8081e81 Add state_class_measurement to nws (#56629) 2021-09-25 11:58:07 +02:00
Franck Nijhof
917254e956 Upgrade pyupgrade to v2.27.0 (#56638) 2021-09-25 11:48:47 +02:00
Franck Nijhof
57aaf55678 Upgrade pipdeptree to 2.1.0 (#56637) 2021-09-25 11:48:31 +02:00
Daniel Hjelseth Høyer
f0de6dc21a Use SurePetcareEntity for surepetcare binary sensor (#56601)
* Use SurePetcareEntity for surepetcare binary sensor

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

* tests

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-25 11:17:55 +02:00
Joakim Plate
5c1f55ffa4 Bump fjäråskupan to 1.0.1 (#56628) 2021-09-25 11:17:26 +02:00
Raman Gupta
b1f4ccfd6b Reuse zwave_js device when replacing removed node with same node (#56599)
* Reuse zwave_js device when a removed node is replaced with the same node

* Ensure change is backwards compatible with servers that don't include replaced

* Remove lambda

* Add assertions to remove type ignores

* fix tests by always copying state and setting manufacturer/label attributes
2021-09-25 10:43:37 +02:00
Michaël Arnauts
5d3d6fa1cd Add state_class and use SensorEntityDescription for comfoconnect (#54066)
* Add state_class=measurement and use SensorEntityDescriptions

* Use attributes from entity_description

* Improvements

* Adress remarks

* Revert changes to fan

* move method

* Fix tests

* Revert fan/__init__.py

* Revert key change

* Set default percentage in turn_on
2021-09-24 22:26:56 +02:00
Aaron Bach
0ea5f25594 Add ability to re-auth Notion (#55616) 2021-09-24 11:23:19 -07:00
Robert Hillis
a7d56d1c3f Bump goalzero to 0.2.0 (#56613)
* Bump goalzero to 0.1.8

* bump

* recheck

* bump
2021-09-24 12:18:14 -06:00
Eduard van Valkenburg
ac576a2bc6 update SIA package (#56615) 2021-09-24 12:15:21 -06:00
RenierM26
3c80e05100 Set Switchbot _attr_is_closed on init (#56611)
* self._attr_is_closed needs to be set initially.

* Set _attr_is_closed on init.
2021-09-24 12:13:45 -06:00
Maikel Punie
8aff51042b Bump velbus-aio to 2021.9.4 (#56478)
* Bump version, move the cache-dir to the home-assistant config

* Moved the cahce into the storage dir

* Bump version, 2021.9.3 will use pathlib

* Bump version to 2021.9.4

* Clean config path

* Remove leading slash

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-24 20:09:44 +02:00
Robert Hillis
e078f4ce14 Move efergy api to pyefergy (#56594)
* Move efergy api to pyefergy

* fix permissions

* tweak

* tweak
2021-09-24 12:54:15 +02:00
Franck Nijhof
d7e121f3e8 Upgrade pytest to 6.2.5 (#56603) 2021-09-24 10:11:36 +02:00
Daniel Hjelseth Høyer
aca00667df Add device info to Surepetcare (#56600) 2021-09-24 09:21:47 +02:00
Erik Montnemery
64393b462d Add migration for 5-minute statistics (#56585)
* Add migration for 5-minute statistics

* Tweaks
2021-09-24 09:19:22 +02:00
Erik Montnemery
7452998081 Convert last_reset timestamps to UTC (#56561)
* Convert last_reset timestamps to UTC

* Add test

* Apply suggestion from code review
2021-09-24 09:16:50 +02:00
Maciej Bieniek
e62c9d338e Rework Tractive integration init (#55741)
* Rework integration init

* Suggested chancge

* Use Trackables class

* Use try..except for trackable_objects

* Check that the pet has tracker linked
2021-09-24 08:45:03 +02:00
Jan Bouwhuis
e73ca9bd18 Alexa fix Fan support and cleanup (#56053)
* del PowerLevelController, ena fan PowerController

* Use AlexaRangeContoller for speed or default

* Update tests

* no-else-return

* Avoid cases with only one preset_mode

* Only report ghost_mode to Alexa - fix bug

* Add some tests for patched code

* pylint

* pylint and tests with one preset_mode

* correct ghost preset mode check in test

* add tests for RangeController

* ghost preset_mode locale agnostic

* isort

* Update homeassistant/components/alexa/capabilities.py

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

* Update homeassistant/components/alexa/entities.py

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

* Update homeassistant/components/alexa/entities.py

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

* Update homeassistant/components/alexa/entities.py

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

* Update homeassistant/components/alexa/entities.py

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

* Update entities.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-09-24 08:14:45 +02:00
J. Nick Koston
0363c22dd8 Fix Sonos going offline with 13.3 firmware (#56590) 2021-09-23 20:39:20 -07:00
RenierM26
915afedcfc Add binary_sensor to switchbot (#56415)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-23 17:10:34 -05:00
Milan Meulemans
0b53f73fe2 Convert Nanoleaf integration to use Async library aionanoleaf (#56548) 2021-09-23 15:37:37 -05:00
Michael
7ece35cd6f Assume Fritz!Smarthome device as unavailable (#56542) 2021-09-23 13:29:12 -07:00
RenierM26
972db29c88 Add sensor to switchbot platform (#56416)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-23 15:27:34 -05:00
Daniel Hjelseth Høyer
6e7bc65e2e Airthings (#56578) 2021-09-23 13:20:30 -07:00
Daniel Hjelseth Høyer
a94514b00d Add Surepetcare entity class (#56430) 2021-09-23 13:19:46 -07:00
Rami Mosleh
4c40d1767a Remove config for Speedtest.net (#55642) 2021-09-23 20:44:59 +02:00
Franck Nijhof
7fc0717ab1 Upgrade debugpy to 1.4.3 (#56576) 2021-09-23 11:12:19 -07:00
Franck Nijhof
750a1b84ad Add date device_class to Twente Milieu sensors (#56579) 2021-09-23 11:09:00 -07:00
Marc Mueller
fed5f5e3b9 Use EntityDescription - fitbit (#55925) 2021-09-23 20:08:47 +02:00
Franck Nijhof
60bb3121b6 Upgrade apprise to 0.9.5.1 (#56577) 2021-09-23 11:00:45 -07:00
Kevin Worrel
b43d377b53 Create but disable-by-default RPM and GPM sensors (#56549) 2021-09-23 11:00:33 -07:00
Andre Richter
a5c6a65161 Activate mypy for Vallox (#55874) 2021-09-23 10:59:28 -07:00
Franck Nijhof
2fe8c78811 Fix Toon push updates (#56583) 2021-09-23 19:50:30 +02:00
jan iversen
1cc850877f strictly type: fan.py, light.py, switch.py. (#56379) 2021-09-23 18:35:50 +01:00
Brian O'Connor
cce906f968 Fix OpenWeatherMap dewpoint conversion (#56303) 2021-09-23 10:14:15 -07:00
Marc Mueller
70f10338cc Use EntityDescription - solaredge_local (#56434) 2021-09-23 18:29:58 +02:00
Joakim Sørensen
98d0c84468 Enable strict typing for the tautulli integration (#55448) 2021-09-23 16:56:21 +02:00
Aaron Bach
1a47fcc4e3 Add long-term statistics for OpenUV sensors (#55417) 2021-09-23 16:54:06 +02:00
Marc Mueller
b634bd26d0 Use EntityDescription - kraken (#56436) 2021-09-23 16:42:55 +02:00
Franck Nijhof
c1df49e9fc Upgrade black to 21.9b0 (#56575) 2021-09-23 16:33:24 +02:00
Jc2k
442d850fc9 Bump aiohomekit to 0.6.3 (#56574) 2021-09-23 16:30:15 +02:00
Franck Nijhof
237efcf6b1 Upgrade colorlog to 6.4.1 (#56573) 2021-09-23 16:12:13 +02:00
Franck Nijhof
bdef131294 Upgrade watchdog to 2.1.5 (#56572) 2021-09-23 16:11:47 +02:00
Franck Nijhof
71ab24f350 Upgrade pre-commit to 2.14.1 (#56569) 2021-09-23 16:11:29 +02:00
Franck Nijhof
655dc890e4 Upgrade PyTurboJPEG to 1.6.1 (#56571) 2021-09-23 15:34:34 +02:00
J. Nick Koston
a6ccb1821e Update zeroconf to 0.36.7 (#56553) 2021-09-23 08:00:17 -05:00
Erik Montnemery
f0a4a89d21 Add comments to recorder statistics code (#56545)
* Add comments to recorder statistics code

* Revert accidental change of list_statistic_ids
2021-09-23 13:14:45 +02:00
Ricardo Steijn
63610eadc9 Address Crownstone review comments (#56485) 2021-09-23 09:23:45 +02:00
Oscar Calvo
ea8f624f28 Fix an issue where core process crashes when an SMS is received (#56552) 2021-09-22 21:49:08 -07:00
Erik Montnemery
83156fb9ec Energy validation: Require last_reset attribute to be set for state_class measurement energy and cost sensors (#56254)
* Require last_reset attribute to be set for measurement state_class

* Tweak

* Improve tests

* Lint

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-22 21:48:37 -07:00
Paulus Schoutsen
974376a8de Bump frontend to 20210922.0 (#56546) 2021-09-22 16:20:58 -07:00
Paulus Schoutsen
677abcd484 Allow confirming local push notifications (#54947)
* Allow confirming local push notifications

* Fix from Zac

* Add tests
2021-09-22 23:17:04 +02:00
Erik Montnemery
f77e93ceeb Fix validation of cost entities for energy dashboard (#56219) 2021-09-22 13:57:58 -07:00
Sian
351ef0ab44 Register Google assistant energy storage trait (#56520) 2021-09-22 13:36:03 -07:00
Erik Montnemery
92253f5192 Minor refactoring of periodic statistics (#56492) 2021-09-22 13:31:33 -07:00
Ville Skyttä
d8d34fdd3b Prefer HTTPStatus over int in HA view JSON functions (#56504)
* Prefer HTTPStatus over int in HA view JSON functions

* Update zwave tests to not expect a fixed typo
2021-09-22 21:59:52 +03:00
Paulus Schoutsen
39aaa383b3 Fix flaky srp energy test (#56536) 2021-09-22 17:41:10 +02:00
Alexei Chetroi
a5d405700c ZHA channel ZCL attributes initialization (#56476)
* Add dict of attributes to initialize

* Refactor get_attributes() method

Read 5 attributes at the time.

* Add ZCL_INIT_ATTRS attribute to base Zigbee channel

* Update tests and general clusters

* Update channels to use ZCL_INIT_ATTRS

* Update channels to use ZCL_INIT_ATTRS

* Fix tests

* Refactor async_initialize() to be a retryable request

* Maky pylint happy again
2021-09-22 11:34:30 -04:00
Tobias Sauerwein
2478ec887a Allow camera usage with HA cloud (#56533) 2021-09-22 16:54:12 +02:00
Paulus Schoutsen
e34c985534 Simplify cloud request connection handling (#56243)
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-09-22 07:51:31 -07:00
Erik Montnemery
ac053388b4 Convert image_processing tests to pytest (#56451)
* Convert image_processing tests to pytest

* Use existing fixtures and test helpers

* Remove useless code
2021-09-22 15:00:28 +02:00
Tobias Sauerwein
26d310fc8a Split Netatmo camera persons by home (#55598)
* Split persons by home
* Bump pyatmo to 6.0.0
* Check is person exists
* Extract method for fetching person ids
2021-09-22 14:32:30 +02:00
Roel van der Ark
aab4b5ec06 Add extra power meter for YouLess (#56528)
* #55535 added extra power meter

* Update sensor.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-09-22 14:08:23 +02:00
Niklas Åström
783cc1eacd Optimise requests to the tado servers (#56261)
This avoids calling the tado servers unnecessarily many times, especially for bigger homes. This is done by calling aggregating endpoints instead of iterating over the zones and devices and calling endpoints over and over.
2021-09-22 14:01:30 +02:00
Robert Hillis
a653da137c Use EntityDescription - efergy (#54210) 2021-09-21 16:53:35 -05:00
Bas Nijholt
b7a758bd0c raise PlatformNotReady when speakers unreachable (#56508)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-09-21 14:35:51 -07:00
J. Nick Koston
9831ff0487 Avoid deadlock on shutdown when a task is shielded from cancelation (#56499) 2021-09-21 14:35:14 -07:00
Erik Montnemery
d494b3539d Prevent 3rd party lib from opening sockets in google_assistant tests (#56346) 2021-09-21 11:27:10 -07:00
Ville Skyttä
1aa7c87151 Remove redundant aiohttp response status=200 kwargs (#56417)
* Remove redundant aiohttp response status=200 kwargs

* Remove some more in h.c.auth

* Restore explicit status=HTTP_OK for auth and webhook per review request
2021-09-21 10:51:12 -07:00
RenierM26
26e9590927 Add cover platform to switchbot (#56414)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-21 12:35:47 -05:00
jan iversen
34de74d869 Strictly type tradfri config_flow.py (#56391)
* Strictly type config_flow.py.

* Review comments.
2021-09-21 16:23:10 +02:00
Justin Goette
56b66d5124 typo (#56477) 2021-09-21 15:09:21 +01:00
jan iversen
c7c789f618 Strictly type modbus __init__.py, validator.py (#56378)
* strictly type: __init__.py, validator.py
2021-09-21 13:43:41 +02:00
jan iversen
518c99c8b7 Strictly type tradfri cover.py (#56390)
* Strictly type cover.py.

* Review comments from other PR.

* Update homeassistant/components/tradfri/cover.py

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>

* Update homeassistant/components/tradfri/cover.py

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>

* Update homeassistant/components/tradfri/cover.py

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>

* Update homeassistant/components/tradfri/cover.py

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-09-21 12:15:45 +01:00
Pascal Vizeli
7698c179ac Upgrade cryptography to 3.4.8 (#56481)
* Upgrade cryptography to 3.4.8

* Fix file
2021-09-21 11:06:52 +02:00
Oscar Calvo
f9fde7f7a1 Support unicode in SMS messages (#56468) 2021-09-21 10:07:14 +02:00
Elliot Morales Solé
097fae0348 Correct Alexa scene activation (#56469)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-20 22:51:17 -07:00
Paulus Schoutsen
d4864f5750 Deprecate passing template to notify (#56069) 2021-09-20 21:49:02 -07:00
Aaron Bach
aabc8cd2d5 Add WattTime integration (#56149) 2021-09-20 21:10:24 -07:00
Paulus Schoutsen
9059ee6604 Merge pull request #56472 from home-assistant/shelly-gen2 2021-09-20 20:19:19 -07:00
Marcin Ciupak
b9ffd74db5 Fix recorder Oracle DB models (#55564)
* Fix recorder models for Oracle DB

* Fix StatisticsRuns

* Update migration for Oracle Identity columns.

* Update migration logic

Migration to schema version 22 done only for engine dialect oracle

* Add missing table check in schema 22 migration
2021-09-21 00:38:42 +02:00
Marc Mueller
20ddd092f6 Remove xiaomi_aqara entity_description property (#56456) 2021-09-21 00:14:33 +02:00
Shay Levy
47340802b3 Add Shelly RPC device trigger and logbook platforms (#56428)
* Add RPC device trigger and logbook platforms

* Single input event for Block and RPC

* Add device generation to shelly.click
2021-09-21 00:09:44 +03:00
jan iversen
df56953c98 Strictly type tradfri light.py (#56389)
* Strictly type light.py.
2021-09-20 21:54:50 +02:00
Shay Levy
542f637ac4 Improve Shelly light application/consumption type handling (#56461) 2021-09-20 11:12:18 -07:00
J. Nick Koston
9e2a29dc37 Improve yeelight stability by moving timeout handling to upstream library (#56432) 2021-09-20 12:32:01 -05:00
jan iversen
f3ad4ca0cc Strictly type modbus.py. (#56375) 2021-09-20 18:47:05 +02:00
Marc Mueller
4c4bd740f3 Use EntityDescription - flume (#56433) 2021-09-20 11:13:09 -05:00
Erik Montnemery
6f36419c6f Improve statistics validation (#56457) 2021-09-20 17:54:25 +02:00
Erik Montnemery
fc4bb40a63 Prevent opening sockets in panasonic_viera tests (#56441) 2021-09-20 15:01:49 +02:00
jan iversen
a84e86ff13 Strictly type modbus base_platform.py (#56343) 2021-09-20 14:59:30 +02:00
Maciej Bieniek
bb6f97c4d3 Rework Xiaomi Miio fan platform (#55846) 2021-09-20 14:49:39 +02:00
jan iversen
93e9a67d7d Make tradfri base_class.py strictly typed (#56341)
* Make base_class.py strictly typed.
2021-09-20 14:33:50 +02:00
Erik Montnemery
5c717cbb1d Prevent opening of sockets in onboarding tests (#56443) 2021-09-20 13:56:50 +02:00
Otto Winter
a54854d129 ESPHome Noise Transport Encryption support (#56216) 2021-09-20 09:02:17 +02:00
mbo18
be19c676fa Add missing generic-x86-64 image (#56424) 2021-09-20 08:55:07 +02:00
jan iversen
ddd31951bc Strictly type sensor.py. (#56377) 2021-09-20 07:35:11 +02:00
Diogo Gomes
b05c1b516e restore float and not string (#56406) 2021-09-20 07:31:58 +02:00
J. Nick Koston
b060c025ce Bump zeroconf to 0.36.6 (#56438)
- Performance improvements (faster HomeKit startup)

Changelog: https://github.com/jstasiak/python-zeroconf/compare/0.36.5...0.36.6
2021-09-20 07:00:46 +02:00
Daniel Hjelseth Høyer
00f7548fa0 Surepetcare, strict typing (#56425)
* Surepetcare, strict typing

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

* Surepetcare, strict typing

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-19 20:57:28 +02:00
Milan Meulemans
d76163e5be Add tests for Rituals Perfume Genie number, select and binary_sensor platforms (#55224) 2021-09-19 08:51:57 -10:00
Maciej Bieniek
ea189f930a Use attrs in Xiaomi Miio humidifier platform (#56371)
* Use attrs in humidifier platform

* Cleanup min/max humidity attrs
2021-09-19 17:04:33 +02:00
Joakim Sørensen
713d294627 Use _attr_* for the GitHub integration (#56419) 2021-09-19 15:10:51 +02:00
J. Nick Koston
88e42a540e Remove leftover debug prints in tests (#56409) 2021-09-19 12:43:02 +02:00
Erik Montnemery
ec52763706 Prevent 3rd party lib from opening sockets in samsungtv tests (#56334) 2021-09-18 22:24:27 -10:00
Erik Montnemery
80a57f5118 Prevent 3rd party lib from opening sockets in smhi tests (#56335) 2021-09-19 10:18:45 +02:00
J. Nick Koston
75c029c56b Bump zeroconf to 0.36.5 (#56413) 2021-09-18 21:52:09 -10:00
Daniel Hjelseth Høyer
a57d7717a8 Improve Surepetcare set_pet_location service (#56401)
* Surepetcare, improve set_pet_location

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

* Surepetcare, improve set_pet_location

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

* Surepetcare, improve set_pet_location

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

* Surepetcare, improve set_pet_location

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

* Surepetcare, improve set_pet_location

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-19 08:38:43 +02:00
Aidan Timson
53d4c0ce2d Increase Lyric update interval to 300 seconds (#56393) 2021-09-18 13:34:28 -10:00
Marc Mueller
7af67d34cf Use assignment expressions 01 (#56394) 2021-09-18 13:31:35 -10:00
Marc Mueller
a4f6c3336f Use EntityDescription - august (#56395) 2021-09-18 13:10:15 -10:00
jan iversen
9b710cad5d Add strict typing to tradfri __init__ and switch (#56002)
* Add strict typing to __init__ and switch.

* Review comments.

* Review comments.

* Corrected switch.
2021-09-18 23:24:35 +02:00
Erik Montnemery
f6526de7b6 Use hass_client_no_auth test fixture in nest tests (#56326) 2021-09-18 23:17:09 +02:00
Daniel Hjelseth Høyer
8b64cd7e7d Bump pyTibber to 0.19.1 (#56405)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-18 23:15:39 +02:00
Erik Montnemery
43b5dcff76 Use hass_client_no_auth test fixture in withings tests (#56337) 2021-09-18 23:12:02 +02:00
Robert Svensson
bf7c2753d5 deCONZ use siren platform (#56397)
* Add siren.py

* Working siren platform with 100% test coverage

* Also add test file...

* Add test to verify that switch platform cleans up legacy entities now that sirens are their own platform

* Update homeassistant/components/deconz/siren.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-09-18 21:59:04 +02:00
jan iversen
6b6e26c96d Strictly type binary_sensor.py. (#56376) 2021-09-18 20:54:11 +01:00
jan iversen
5c19368ce3 Strictly type sensor.py (#56388) 2021-09-18 20:49:47 +01:00
RenierM26
3ce8109e5e Add config flow to Switchbot (#50653)
Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-18 09:25:05 -10:00
jjlawren
f31b9eae61 Fix creating cert_expiry configs during runtime (#56298)
* Fix creating cert_expiry configs during runtime

* Address review feedback on tests

* Improve delayed startup test
2021-09-18 19:54:54 +02:00
Ashley 'DrToxic' Devine
312a9e5df2 Add Shiba Inu coin to coinbase (#56304)
Added SHIB coin
2021-09-18 18:49:29 +02:00
Daniel Hjelseth Høyer
f97cce6f57 Surepetcare, service to set pet location (#56198)
* Surepetcare, add handle_set_pet_location

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

* Surepetcare, add handle_set_pet_location

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

* Surepetcare, add handle_set_pet_location

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-18 17:48:58 +02:00
Paulus Schoutsen
9ffdc2594f Merge pull request #56366 from home-assistant/rc 2021-09-18 08:29:25 -07:00
Maciej Bieniek
0a5948dc8b Fetch the data a second time when -9999 error occurs in Xiaomi Miio integration (#56288) 2021-09-18 07:39:28 -07:00
Marc Mueller
811feb69ba Fix dangerous brackets (#56384) 2021-09-18 16:08:22 +02:00
Simone Chemelli
0a5fdb2e68 Address late review of samsungtv (#56382) 2021-09-18 15:42:36 +02:00
Marc Mueller
48bada5a18 Update pylint to 2.11.1 (#56364) 2021-09-18 13:52:59 +02:00
jan iversen
476d04e2fb Activate mypy. (#55965) 2021-09-18 10:02:24 +01:00
Erik Montnemery
39bc127dd6 Prevent 3rd party lib from opening sockets in glances tests (#56345) 2021-09-17 22:22:44 -10:00
Erik Montnemery
be0819b456 Mock out network.util.async_get_source_ip in tests (#56339) 2021-09-17 21:40:58 -10:00
J. Nick Koston
0830100df1 Do not reload the isy994 on ip change since there is already a reload listener (#54602) 2021-09-17 21:22:14 -10:00
Robert Svensson
539ef31046 Reflect changes to pydeconz v84 (#56361)
Mostly snake case conversions and typing
But also a change in retry mechanism
Added a more complete set_* call to most types to remove the direct relation to rest API of deCONZ
2021-09-18 09:05:08 +02:00
jan iversen
6947912fa9 Modbus entity update does not occur until after scan_interval (#56221)
* Secure update is called when integration is started.

* Review comments.

* Update homeassistant/components/modbus/base_platform.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Update homeassistant/components/modbus/base_platform.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-09-18 08:57:27 +02:00
Sean Vig
02ba3c6089 Update amcrest version to 1.9.3 (#56348)
This version fixes a bug that affects the current non-async Home Assistant integration
2021-09-18 08:34:51 +02:00
Paulus Schoutsen
f8d62866e5 Bumped version to 2021.9.7 2021-09-17 22:48:16 -07:00
J. Nick Koston
3046adf3b2 Fix yeelight nightlight mode (#56363) 2021-09-17 22:48:09 -07:00
Shay Levy
22307066bb Bump aioswitcher to 2.0.6 (#56358) 2021-09-17 22:48:08 -07:00
Joakim Plate
8c936b320e Avoid sending Standby when already off (#56306) 2021-09-17 22:48:07 -07:00
Erik Montnemery
9c4d6afb3c Bump pychromecast to 9.2.1 (#56296) 2021-09-17 22:48:06 -07:00
Aaron Bach
0442ed54e8 Bump pyopenuv to 2.2.1 (#56270) 2021-09-17 22:48:06 -07:00
J. Nick Koston
3224fc8710 Fix HomeKit requests with hvac mode and temperature in the same call (#56239) 2021-09-17 22:48:05 -07:00
Joakim Sørensen
6f40759ed0 Update docker base image to 2021.09.0 (#56191) 2021-09-17 22:48:04 -07:00
jjlawren
07ba24ac5a Bump plexapi to 4.7.1 (#56163) 2021-09-17 22:48:03 -07:00
Martin Ilievski
c0c85a6641 Bump pykodi to 0.2.6 (#56148) 2021-09-17 22:48:03 -07:00
J. Nick Koston
162fab91b2 Ensure rainmachine device name is a string (#56121) 2021-09-17 22:48:02 -07:00
muppet3000
6e80d27770 Bump growattServer to 1.1.0 (#56084) 2021-09-17 22:48:01 -07:00
Brian Egge
2b58a266cc Fix generic thermostat switch state initialization (#56073) 2021-09-17 22:48:00 -07:00
Oscar Calvo
bd17da0524 Support incoming SMS messages via polling (#54237)
* Add support to incomming SMS via polling

* Update dependencies

* Only send notification for unread messages

* Only inform if callback is not getting used

* Update gateway.py

* Apply PR feedback

* Update homeassistant/components/sms/gateway.py

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

* Apply PR comments

* Make black happy

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-17 22:47:59 -07:00
J. Nick Koston
7524daad86 Fix HomeKit requests with hvac mode and temperature in the same call (#56239) 2021-09-17 22:47:06 -07:00
Shay Levy
aaadd42539 Bump aioswitcher to 2.0.6 (#56358) 2021-09-17 22:42:58 -07:00
J. Nick Koston
b6763c7245 Fix yeelight nightlight mode (#56363) 2021-09-17 22:26:25 -07:00
J. Nick Koston
eb98ac9415 Allow IntegrationNotFound when checking config in safe mode (#56283)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2021-09-17 22:25:50 -07:00
J. Nick Koston
bad6b2f7f5 Standardize yeelight exception handling (#56362) 2021-09-17 22:25:19 -07:00
Simone Chemelli
4160a5ee3b Strict typing for SamsungTV (#53585)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-17 18:51:07 -10:00
Alexei Chetroi
f5dd71d1e0 Bump up ZHA dependencies (#56359) 2021-09-17 19:52:49 -04:00
jan iversen
c4195c547c Update template/test_init.py to use pytest (#56336) 2021-09-17 15:13:17 -07:00
Milan Meulemans
f64aa0f8df Fix netgear strings (#56351) 2021-09-17 22:43:23 +02:00
J. Nick Koston
e880f1c8f9 Index config entries by domain (#56316) 2021-09-17 10:39:00 -10:00
Alexei Chetroi
5b0e00a74b Refactor ZHA HVAC thermostat channel (#56238)
* Refactor HVAC channel to use zigpy cached attributes

* Allow named attributes in ZHA test attribute reports

* Let attribute write to update cache

* WIP Update tests

* Cleanup
2021-09-17 15:17:34 -04:00
Daniel Hjelseth Høyer
16832bc35b AutomationTriggerInfo as type in rfxtrx (#56353)
* AutomationTriggerInfo as type in rfxtrx

* style

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-17 20:01:00 +02:00
Erik Montnemery
45046941c6 Avoid creating sockets in homekit port available tests (#56342) 2021-09-17 04:16:57 -10:00
Joakim Plate
9b00e0cb7a Rfxtrx device triggers and actions (#47909)
* Add helper

* Add device actions

* Add trigger

* Just make use of standard command

* Generalize code a bit

* Switch tests to currently existing features

* Add tests for capabilities

* Don't check schema asserted value

* Adjust strings somewhat

* Directly expose action subtypes

* Add a status event test

* Switch to modern typing

* Drop chime that is now part of command

* Adjust strings a bit

* Drop ability to set custom value

* Adjust changed base schema

* Validate triggers

* Try fix typing for 3.8
2021-09-17 15:28:43 +02:00
Erik Montnemery
ecf4a7813a Prevent 3rd party lib from opening sockets in wilight tests (#56310) 2021-09-17 15:27:26 +02:00
Shay Levy
5249c89c3f Add Shelly RPC sensor and binary sensor platforms (#56253) 2021-09-17 15:53:39 +03:00
Erik Montnemery
797b68b42d Prevent 3rd party lib from opening sockets in rfxtrx tests (#56331) 2021-09-17 12:51:40 +02:00
Erik Montnemery
55a77b2ba2 Prevent 3rd party lib from opening sockets in ps4 tests (#56330) 2021-09-17 12:51:25 +02:00
Erik Montnemery
327bf24940 Prevent 3rd party lib from opening sockets in cloud tests (#56328) 2021-09-17 12:50:59 +02:00
Erik Montnemery
e0a232aa36 Prevent 3rd party lib from opening sockets in wallbox tests (#56308) 2021-09-17 12:50:11 +02:00
Erik Montnemery
a793fd4134 Prevent 3rd party lib from opening sockets in ping tests (#56329) 2021-09-16 23:41:19 -10:00
Erik Montnemery
bce4c5eb11 Prevent 3rd party lib from opening sockets in zeroconf tests (#56324) 2021-09-16 23:19:32 -10:00
Erik Montnemery
fce7f0873e Prevent 3rd party lib from opening sockets in sia tests (#56325) 2021-09-16 23:19:19 -10:00
J. Nick Koston
8814c53504 Bump zeroconf to 0.36.4 (#56314) 2021-09-16 21:04:54 -10:00
Sean Vig
6d99a7a730 Add unique id to amcrest sensors (#55243)
* Add unique id to amcrest sensors

* Change 'unique_id' to 'serial_number' on api wrapper

* Update unique id's with channel value that can be used in future changes and remove unrelated camera changes
2021-09-17 07:48:17 +02:00
Joakim Plate
175f207d28 Avoid sending Standby when already off (#56306) 2021-09-17 06:50:46 +02:00
Erik Montnemery
8341ae12d3 Mock out zeroconf in homekit_controller tests (#56307) 2021-09-16 11:29:41 -10:00
jan iversen
70eb519f76 Update template/test_light.py to use pytest (#56300) 2021-09-16 11:05:00 -07:00
jan iversen
94f06f86cf Activate mypy for gpmdp. (#55967) 2021-09-16 20:05:08 +03:00
Erik Montnemery
15a7fe219d Bump pychromecast to 9.2.1 (#56296) 2021-09-16 20:01:02 +03:00
Maciej Bieniek
41bf1eb610 Fetch the data a second time when -9999 error occurs in Xiaomi Miio integration (#56288) 2021-09-16 09:19:41 -07:00
Shay Levy
8418d4ade2 Address Switcher late review comments (#56264)
* Address Switcher late review comments

* Rename wrapper to coordinator
2021-09-16 17:06:58 +02:00
Chris Browet
1609d069bb Fix Meteoalarm expired alerts (#56255) 2021-09-16 16:07:53 +02:00
Paul Owen
28b4b5407b Fix return value of preset_mode in hive climate (#56247) 2021-09-16 13:57:42 +02:00
jjlawren
0438c9308c Delay startup for cert_expiry to allow for self checks (#56266)
* Delay startup of cert_expiry

* Update tests
2021-09-16 13:31:36 +02:00
Erik Montnemery
c668dcb1ac Allow smaller step size for input number (#56211)
* Allow smaller step size for input number

* Tweak

* Tweak
2021-09-16 11:07:14 +02:00
Erik Montnemery
8c5efafdd8 Add 5-minute statistics for sensors (#56006)
* Add 5-minute statistics for sensors

* Address pylint issues

* Black

* Apply suggestion from code review

* Apply suggestions from code review

* Improve tests
2021-09-16 10:57:15 +02:00
Malachi Soord
0656407561 Upgrade pylast from 4.2.0 to 4.2.1 (#56015)
* Upgrade pylast from 4.2.0 to 4.2.1

* Fix test

* Use MockNetwork

* Tidy

* Fix lint
2021-09-16 07:00:25 +02:00
Sean Vig
69ff7a968a Bump amcrest version to 1.9.2 (#56281) 2021-09-16 06:53:40 +02:00
Daniel Hjelseth Høyer
4eb656d5d9 Fix Surepetcare string reference (#56262)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-15 22:18:35 +02:00
Aaron Bach
ecd827722b Bump pyopenuv to 2.2.1 (#56270) 2021-09-15 21:05:12 +02:00
Daniel Hjelseth Høyer
c5544550b4 Deprecate Surepetcare yaml config (#56209) 2021-09-15 10:43:39 +02:00
muppet3000
19054e1ffe Bump growattServer to 1.1.0 (#56084) 2021-09-15 10:08:15 +02:00
jjlawren
0619069ae6 Avoid a zeroconf race condition (#56240) 2021-09-14 22:07:31 -10:00
jan iversen
53d5a59257 Activate mypy for directv (#55963)
* Activate mypy for directv.

* Activate mypy for directv.
2021-09-15 07:58:04 +02:00
Shulyaka
ddfe94187e generic_hygrostat: enable tests (#56193) 2021-09-15 07:55:43 +02:00
epenet
0d842a8f01 Adjust charging_power unit (#56167) 2021-09-15 07:54:56 +02:00
Steven Looman
30c25d4448 Clean up upnp YAML config (#56200)
* Put back local_ip option to config schema + deprecate config schema

* More cleanup

* Remove log

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-15 06:57:02 +02:00
Paulus Schoutsen
0a426b5686 Bump aiohue to 2.6.2 (#56234) 2021-09-15 06:23:19 +02:00
J. Nick Koston
98cf34c7c3 Bump zeroconf to 0.36.3 (#56233) 2021-09-14 13:02:37 -10:00
jan iversen
692f611109 Update template/test_fan.py to use pytest (#56215) 2021-09-14 13:51:46 -07:00
Aaron Bach
bbc75b5c00 Add long-term statistics for Flu Near You sensors (#55416) 2021-09-14 22:09:45 +02:00
Aaron Bach
441e99b439 Add long-term statistics for AirVisual sensors (#55415) 2021-09-14 22:08:54 +02:00
jan iversen
96a9af8cc4 Update template/test_weather.py to use pytest (#56223) 2021-09-14 13:06:55 -07:00
Aaron Bach
2c348dd2d7 Add long-term statistics for RainMachine sensors (#55418)
* Add long-term statistics for RainMachine sensors

* Code review
2021-09-14 22:06:40 +02:00
jan iversen
4b2ff0a0ba Update template/alarm_control_panel.py to use pytest (#56229) 2021-09-14 13:06:29 -07:00
Marc Mueller
2b51896d7a Use EntityDescription - vicare (#55932)
* Use EntityDescription - vicare binary_sensor

* Use EntityDescription - vicare sensor

* Fix typing

* Remove default values

* Fix pylint
2021-09-14 22:06:06 +02:00
Aaron Bach
0364922d80 Add long-term statistics for AirNow sensors (#56230) 2021-09-14 22:04:55 +02:00
Ricardo Steijn
2a51bb5bba Add Crownstone integration (#50677) 2021-09-14 09:46:52 -10:00
Erik Montnemery
bac55b78fe Enforce device class for gas and energy sensors used by energy dashboard (#56218)
* Enforce device class for gas and energy sensors used by energy dashboard

* Adjust tests
2021-09-14 16:56:36 +02:00
jan iversen
aaa62dadec Add service to stop/restart modbus (#55599)
* Add service to stop/restart modbus.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-14 09:42:50 +02:00
dependabot[bot]
31623368c8 Bump codecov/codecov-action from 2.0.3 to 2.1.0 (#56210)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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>
2021-09-14 08:50:29 +02:00
Daniel Hjelseth Høyer
dba2998e8c Clean up Surepetcare binary sensor (#56070) 2021-09-14 08:44:20 +02:00
Alexei Chetroi
fe1311ba34 Bump up zha dependencies (#56206) 2021-09-13 21:27:29 -04:00
Robert Hillis
14aa9c91eb Add Config Flow to Modem Caller ID integration (#46677)
* Add phone_modem integration

* Use original domain

* Add init tests for Modem Caller ID

* Clean up tests

* Clean up tests

* apply suggestions

* Fix tests

* Make only one instance possible

* Allow more than 1 device and remove hangup service

* simplify already configured

* Update sensor.py

* Update config_flow.py

* Fix manifest

* More cleanup

* Fix tests

* Ue target

* Clean up sensor.py

* Minor tweaks

* Close modem on restart and unload

* Update requirements

* fix tests

* Bump phone_modem

* rework

* add typing

* use async_setup_platform

* typing

* tweak

* cleanup

* fix init

* preserve original name

* remove callback line

* use list of serial devices on host

* tweak

* rework

* Rework for usb dicsovery

* Update requirements_test_all.txt

* Update config_flow.py

* tweaks

* tweak

* move api out of try statement

* suggested tweaks

* clean up

* typing

* tweak

* tweak

* async name the service
2021-09-13 14:22:54 -10:00
tube0013
9bb9f0e070 Add description to match TubesZB Coordinators for USB Discovery (#56201) 2021-09-13 11:22:55 -10:00
Brian Egge
8d87f4148b Fix generic thermostat switch state initialization (#56073) 2021-09-13 22:27:06 +02:00
Abílio Costa
c869b78ac1 Add Whirlpool integration (#48346)
* Add Whirlpool integration

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Apply suggestions from code review

* Fix lint

* Fix lint and tests

* Apply suggestions from code review

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

* Use dict lookups

* Lint

* Apply code changes from PR review

* Do real integration setup in tests

* Apply suggestions from review & fix test

* Replace get with array operator

* Add suggestions from code review

* Rename test var

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-13 10:02:34 -10:00
Martin Ilievski
f023ec24d7 Bump pykodi to 0.2.6 (#56148) 2021-09-13 10:00:10 -10:00
Daniel Hjelseth Høyer
f9de8fb49a Surepetcare config flow (#56127)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-13 09:57:06 -10:00
Michael
d661a76462 Use entity description and set state class to all System Monitor sensors (#56140) 2021-09-13 09:55:33 -10:00
Joakim Sørensen
20d96ef4ef Update docker base image to 2021.09.0 (#56191) 2021-09-13 21:11:10 +02:00
Erik Montnemery
17efafb2ea Do not set assumed state for binary sensor groups (#56190) 2021-09-13 10:40:24 -07:00
Bram Kragten
86d24bec75 Update icons for MDI 6 (#56170) 2021-09-13 19:29:38 +02:00
starkillerOG
5f86388f1c Netgear config flow (#54479)
* Original work from Quentame

* Small adjustments

* Add properties and method_version

* fix unknown name

* add consider_home functionality

* fix typo

* fix key

* swao setup order

* use formatted mac

* add tracked_list option

* add options flow

* add config flow

* add config flow

* clean up registries

* only remove if no other integration has that device

* tracked_list formatting

* convert tracked list

* add import

* move imports

* use new tracked list on update

* use update_device instead of remove

* add strings

* initialize already known devices

* Update router.py

* Update router.py

* Update router.py

* small fixes

* styling

* fix typing

* fix spelling

* Update router.py

* get model of router

* add router device info

* fix api

* add listeners

* update router device info

* remove method version option

* Update __init__.py

* fix styling

* ignore typing

* remove typing

* fix mypy config

* Update mypy.ini

* add options flow tests

* Update .coveragerc

* fix styling

* Update homeassistant/components/netgear/__init__.py

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

* Update homeassistant/components/netgear/__init__.py

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

* Update homeassistant/components/netgear/__init__.py

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

* Update homeassistant/components/netgear/config_flow.py

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

* Update homeassistant/components/netgear/router.py

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

* add ConfigEntryNotReady

* Update router.py

* use entry.async_on_unload

* Update homeassistant/components/netgear/device_tracker.py

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

* use cv.ensure_list_csv

* add hostname property

* Update device_tracker.py

* fix typo

* fix isort

* add myself to codeowners

* clean config flow

* further clean config flow

* deprecate old netgear discovery

* split out _async_remove_untracked_registries

* Update homeassistant/components/netgear/config_flow.py

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

* Update homeassistant/components/netgear/config_flow.py

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

* cleanup

* fix rename

* fix typo

* remove URL option

* fixes

* add sensor platform

* fixes

* fix removing multiple entities

* remove extra attributes

* initialize sensors correctly

* extra sensors disabled by default

* fix styling and unused imports

* fix tests

* Update .coveragerc

* fix requirements

* remove tracked list

* remove tracked registry editing

* fix styling

* fix discovery test

* simplify unload

* Update homeassistant/components/netgear/router.py

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

* add typing

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

* add typing

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

* add typing

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

* condense NetgearSensorEntities

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

* Update homeassistant/components/netgear/router.py

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

* Update homeassistant/components/netgear/router.py

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

* Update homeassistant/components/netgear/router.py

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

* Update homeassistant/components/netgear/router.py

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

* add typing

* styling

* add typing

* use ForwardRefrence for typing

* Update homeassistant/components/netgear/device_tracker.py

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

* add typing

* Apply suggestions from code review

Thanks!

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

* process review comments

* fix styling

* fix devicename not available on all models

* ensure DeviceName is not needed

* Update homeassistant/components/netgear/config_flow.py

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

* Update homeassistant/components/netgear/config_flow.py

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

* Update __init__.py

* fix styling

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-13 18:18:21 +02:00
jjlawren
37f263e2ac Bump plexapi to 4.7.1 (#56163) 2021-09-13 15:46:54 +02:00
Brian Egge
e638e5bb42 Add component for binary sensor groups (#55365)
* Add component for binary sensor groups
https://github.com/home-assistant/home-assistant.io/pull/19239

* Accidental push over prior commit

* Add test for any case

* Add unavailable attribute and tests for unique_id

* Added tests for attributes

link to documentation: https://github.com/home-assistant/home-assistant.io/pull/19297
2021-09-13 15:28:37 +02:00
Vilppu Vuorinen
ee616ed992 Support hvac mode in melcloud climate.set_temperature service (#56082)
Setting the HVAC_MODE via the set_temperature service has not been
possible before this change.
2021-09-13 14:14:47 +02:00
epenet
5ccc3c17d9 Use list comprehension in onewire entity descriptions (#56168)
* Use list comprehension in onewire binary sensors

* Use list comprehension in onewire switches
2021-09-13 13:46:21 +02:00
Erik Montnemery
d899d15a1e Add statistics validation (#56020)
* Add statistics validation

* Remove redundant None-check

* Move validate_statistics WS API to recorder

* Apply suggestion from code review
2021-09-13 13:44:22 +02:00
Erik Montnemery
d2a9f7904a Include end time of statistics data points in API response (#56063)
* Include end time of statistics data points in API response

* Correct typing

* Update tests
2021-09-13 10:02:24 +02:00
Shay Levy
e9eb76c7db Add switch support for RPC device (#56153)
* Add switch support for RPC device

* Apply review comments

* Apply review comments
2021-09-13 09:31:35 +03:00
Maikel Punie
7472fb2049 Switch velbus from python-velbus to velbusaio (#54032)
* initial commit

* use new release

* Update for sensors

* big update

* pylint fixes, bump dependancy to 2021.8.2

* New version to try to fix the tests

* Fix a lot of errors, bump version

* more work

* Bump version

* Adde dimmer support

* Make sure the counters are useable in the energy dashboard

* bump version

* Fix testcases

* Update after review

* Bump version to be able to have some decent exception catches, add the temperature device class

* Readd the import of the platform from config file, but add a deprecation warning

* More comments updated

* Fix lefover index

* Fix unique id to be backwards compatible

* Fix small bug in covers

* Fix testcases

* Changes for theenery dashboard

* Fixed services

* Fix memo text

* Make the interface for a service the port string instead of the device selector

* Fix set_memo_text

* added an async scan task, more comments

* Accidently disabled some paltforms

* More comments, bump version

* Bump version, add extra attributes, enable mypy

* Removed new features

* More comments

* Bump version

* Update homeassistant/components/velbus/__init__.py

Co-authored-by: brefra <frank_van_breugel@hotmail.com>

* Readd the import step

Co-authored-by: brefra <frank_van_breugel@hotmail.com>
2021-09-13 08:22:46 +02:00
jan iversen
1f997fcd58 Update pymodbus fixtures to use autospec (#55686) 2021-09-12 21:16:48 -07:00
Sean Vig
a180c3f813 Fix polling on online Amcrest binary sensor (#56106) 2021-09-12 20:45:52 -07:00
Paulus Schoutsen
32212651fe Add zeroconf discovery to Hue (#55358)
* Add zeroconf discovery to Hue

* Add coverage for already exists case

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-12 20:00:51 -07:00
joshs85
41b25a765c Changed wording of bond state belief feature from belief to tracked state (#56147)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-12 15:46:43 -10:00
jan iversen
990d474d02 use fixtures. (#56130) 2021-09-12 15:08:46 -07:00
J. Nick Koston
673519f6bf Prefer more targeted matchers in USB discovery (#56142)
- If there is a more targeted match it should win discovery
2021-09-12 15:07:40 -07:00
J. Nick Koston
0fc89780e9 Fix listener leak in HomeKit on reload (#56143)
* Fix listener leak in HomeKit on reload

* Fix mocking
2021-09-12 15:06:03 -07:00
Aaron Bach
4e8db7173a Use EntityDescription - iqvia (#55218) 2021-09-12 09:34:44 -06:00
Greg Thornton
f1556ead6d Don't cache HomeKit camera stream source from entity (#56136) 2021-09-12 08:09:09 -07:00
Marc Mueller
2b019b0911 Use EntityDescription - xiaomi_aqara (#55931)
* Use EntityDescription - xiaomi_aqara

* Remove default values

* Add missing SENSOR_TYPES
2021-09-12 12:48:02 +02:00
cdheiser
ec28f7eef2 Don't return a unique_id if Lutron doesn't have a UUID for the device. (#56113)
This is a workaround for https://github.com/thecynic/pylutron/issues/70

Co-authored-by: cdheiser <cdheiser@users.noreply.github.com>
2021-09-12 09:24:02 +02:00
Daniel Hjelseth Høyer
4a449902a5 Surepetcare, upgrade library (#56067)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-12 08:12:32 +02:00
J. Nick Koston
2b7cdb70a8 Ensure rainmachine device name is a string (#56121) 2021-09-11 21:38:34 -06:00
Greg Thornton
371aa03bca Add audio support option to HomeKit camera UI config flow (#56107) 2021-09-11 16:41:30 -10:00
J. Nick Koston
eff59e8b00 Use the same server name for all HomeKit bridges (#55860) 2021-09-11 19:00:26 -07:00
J. Nick Koston
459bc55e32 Bump HAP-python to 4.2.1 (#55804) 2021-09-11 18:58:19 -07:00
Steven Looman
73260c5b88 Move parts of ssdp to async_upnp_client (#55540)
* Move parts of ssdp to async_upnp_client

* Fix test for environments with multiple sources

* Fix sonos tests

* More fixes/changes

* More fixes

* Use async_upnp_client==0.21.0

* Pylint/test fixes

* More changes after review

* Fix tests

* Improve testing

* Fix mypy

* Fix yamaha_musiccast tests?

* Changes after review

* Pylint

* Reduce calls to combined_headers

* Update to async_upnp_client==0.21.1

* Update to async_upnp_client==0.21.2

* use as_dict

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-11 13:38:16 -10:00
Shay Levy
f1a88f0563 Add config flow support for RPC device (#56118) 2021-09-11 23:28:33 +03:00
Paulus Schoutsen
ddb0a6092f Merge pull request #56116 from home-assistant/rc 2021-09-11 13:02:14 -07:00
Jaroslav Hanslík
a4a6bf8a85 New icon names based on MDI 6.1.95 (#56085) 2021-09-11 12:34:31 -07:00
Joakim Sørensen
bcb3c426f4 Blank out discovery info (#56097) 2021-09-11 12:34:19 -07:00
Paulus Schoutsen
64fd496932 Bump frontend to 20210911.0 (#56115) 2021-09-11 12:34:01 -07:00
Paulus Schoutsen
292c05ab9f Bumped version to 2021.9.6 2021-09-11 12:02:44 -07:00
ehendrix23
a900c02c10 Bump pymyq to 3.1.4 (#56089) 2021-09-11 12:02:39 -07:00
Paulus Schoutsen
0cfbff3ff9 Fix singleton not working with falsey values (#56072) 2021-09-11 12:02:38 -07:00
Sean Vig
ee892beceb Bump amcrest version to 1.8.1 (#56058)
The current version of the `amcrest` package has a bug in exposing if
the video stream is enabled, which leads to the substream status being
used to set if the camera is on or off.  The updated version of
`amcrest` fixes this bug.

Fixes #55661
2021-09-11 12:02:37 -07:00
micha91
fe713b943f Fix UDP message handling by upgrading aiomusiccast to 0.9.2 (#56041) 2021-09-11 12:02:36 -07:00
Erik Montnemery
2079956350 Suppress last_reset deprecation warning for energy cost sensor (#56037) 2021-09-11 12:02:36 -07:00
Erik Montnemery
c424f99aab Correct confusing log message in sensor statistics (#56016) 2021-09-11 12:02:35 -07:00
Paulus Schoutsen
8a611eb640 Fix singleton not working with falsey values (#56072) 2021-09-11 12:02:01 -07:00
Oxan van Leeuwen
6e7ce89c64 Fix attribute access on None on startup in ESPHome (#56105) 2021-09-11 20:53:29 +02:00
jan iversen
cb8c0cb123 Update template/test_lock.py to use pytest (#56102) 2021-09-11 11:48:25 -07:00
Ruslan Sayfutdinov
a9ed4fa405 Bump awesomeversion to 21.8.1 (#55817) 2021-09-11 11:40:46 -07:00
Aaron Bach
ed9b271fd0 Enforce strict typing for IQVIA (#53408)
* Enforce strict typing for IQVIA

* Cleanup

* Code review

* Ignore untyped numpy function
2021-09-11 12:27:13 -06:00
Joakim Sørensen
1b46190a0c Add view to get installation type during onboarding (#56095) 2021-09-11 15:38:38 +02:00
Vilppu Vuorinen
ec21c5f4a9 Update pymelcloud to 2.5.4 (#56096) 2021-09-11 12:51:04 +02:00
Brent Petit
97f28878bb Add state_class to Ecobee sensors (#55996) 2021-09-10 22:00:24 -07:00
Michael
b11db0b1d7 Remove unnecessary extra attribute from NUT sensors (#56078) 2021-09-10 19:17:46 -07:00
ehendrix23
bd18bc9f3a Bump pymyq to 3.1.4 (#56089) 2021-09-10 19:09:54 -07:00
Raman Gupta
c785983cce Handle entity creation on new added zwave_js value (#55987)
* Handle new entity creation when a new value is added

* spacing

* Update homeassistant/components/zwave_js/__init__.py

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

* change variable name and use asyncio.gather

* Centralized where discovered value IDs gets managed

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-10 23:49:31 +02:00
Shay Levy
8c3c2ad8e3 Updated changes for aioshelly 1.0.0 (#56083) 2021-09-11 00:48:55 +03:00
jan iversen
ac1251c52b Update template/test_trigger.py to use pytest (#55950) 2021-09-10 09:55:51 -07:00
Paulus Schoutsen
dec7877671 Handle logout prefs update for Google/Alexa (#56045) 2021-09-10 09:08:43 -07:00
Erik Montnemery
443147e132 Wait for entities when updating energy preferences (#56057) 2021-09-10 09:07:52 -07:00
Joakim Sørensen
c59540cfc7 Revert "Bump pillow to 8.3.2 (#55970)" (#56048)
This reverts commit ee7202d10a.
2021-09-10 17:01:51 +02:00
Daniel Hjelseth Høyer
aa39e582c3 Surepetcare, fix late review (#56065)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-09-10 16:49:42 +02:00
Sean Vig
03df48af9c Bump amcrest version to 1.8.1 (#56058)
The current version of the `amcrest` package has a bug in exposing if
the video stream is enabled, which leads to the substream status being
used to set if the camera is on or off.  The updated version of
`amcrest` fixes this bug.

Fixes #55661
2021-09-10 15:38:01 +02:00
micha91
948a942a0d Fix UDP message handling by upgrading aiomusiccast to 0.9.2 (#56041) 2021-09-10 15:03:34 +02:00
Erik Montnemery
d5a8f1af1d Revert "Suppress last_reset deprecation warning for energy cost sensor (#56037)" (#56042)
This reverts commit e990ef249d.
2021-09-10 11:27:47 +02:00
J. Nick Koston
ff1b39cda6 Fix circular import of scapy in dhcp (#56040)
* Fix circular import of scapy in dhcp

* Tweak import, add comment

* Tweak import, add comment

* pylint
2021-09-10 10:04:54 +02:00
Oxan van Leeuwen
970a7f9662 Fix compounds in sensor device class comments (#55900) 2021-09-10 09:46:21 +02:00
Erik Montnemery
78909b5227 Add support for state class total to energy cost sensor (#55955)
* Add support for all state classes to energy cost sensor

* Fix bug, adjust tests

* Fix rebase mistake
2021-09-10 09:05:32 +02:00
Erik Montnemery
e990ef249d Suppress last_reset deprecation warning for energy cost sensor (#56037) 2021-09-10 08:59:23 +02:00
Daniel Hjelseth Høyer
c27ad3078a Surepetcare, use DataUpdateCoordinator (#55982)
* Surepetcare, use dataupdater

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

* Review comment

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

* Apply suggestions from code review

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

* style

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-10 08:37:00 +02:00
Erik Montnemery
89281a273c Correct confusing log message in sensor statistics (#56016) 2021-09-09 23:26:29 -07:00
wranglatang
e3a7a253ea Add nut Watts datapoint (#55491)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-10 06:02:06 +02:00
J. Nick Koston
5709640453 Report integrations that block startup wrap up (#56003) 2021-09-09 20:39:22 -07:00
Erik Montnemery
2a8121bdcd Really change character set of statistics_meta table to utf8 (#56029) 2021-09-09 22:55:51 +02:00
Raman Gupta
1fd3faf766 Fix state class for zwave_js energy entities (#56026) 2021-09-09 16:19:28 -04:00
Erik Montnemery
3af4b2639b Exclude @overload from coverage (#56021) 2021-09-09 21:24:23 +02:00
popoviciri
f79de2a5bc Bump pysma to 0.6.6 & Fix Unit Checks (#56018) 2021-09-09 20:19:49 +02:00
Raman Gupta
113288cb1f Fix zwave_js/node_state WS API command (#55979)
* Fix zwave_js/node_state WS API command

* Add negative assertion check to avoid regression

* Update tests/components/zwave_js/test_api.py

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

* use constant

Co-authored-by: jan iversen <jancasacondor@gmail.com>
2021-09-09 14:04:27 -04:00
Erik Montnemery
88dbc6373f Make sure character set of events, states tables is utf8 (#56012)
* Make sure character set of events, states tables is utf8

* Pylint

* Apply suggestions from code review
2021-09-09 19:26:28 +02:00
Oscar Calvo
1b0e014783 Support incoming SMS messages via polling (#54237)
* Add support to incomming SMS via polling

* Update dependencies

* Only send notification for unread messages

* Only inform if callback is not getting used

* Update gateway.py

* Apply PR feedback

* Update homeassistant/components/sms/gateway.py

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

* Apply PR comments

* Make black happy

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-09 18:29:11 +02:00
Erik Montnemery
a47532c69b Change character set of statistics_meta table to utf8 (#56011) 2021-09-09 17:24:20 +02:00
uvjustin
dd9bfe7aa0 Add package constraint anyio>=3.3.1 (#55997) 2021-09-09 15:33:09 +02:00
Jean-Yves Avenard
556dcf6abb Add iotawatt high-accuracy energy readout sensors (#55512) 2021-09-09 15:32:43 +02:00
joshs85
011817b122 Add state belief services to bond integration (#54735)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-09 15:32:32 +02:00
Adam Feldman
cbbbc3c4f0 Add state class to Smart Meter Texas sensor (#55665) 2021-09-09 15:32:03 +02:00
jan iversen
9d2861afe3 Add mypy to elkm1. (#55964) 2021-09-09 13:14:28 +02:00
cnico
065e858a03 Address post merge review of flipr binary sensor (#55983) 2021-09-09 09:45:58 +02:00
Erik Montnemery
80fd330479 Add sum_decrease and sum_increase statistics (#55850) 2021-09-08 23:35:53 -07:00
Joakim Plate
a8cbb949fa Rfxtrx drop yaml configuration (#54173) 2021-09-08 22:17:02 -07:00
Alan Tse
98ecf2888c Remove tesla integration (#55988)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-08 22:12:03 -07:00
GitHub Action
675426dc25 [ci skip] Translation update 2021-09-09 00:11:32 +00:00
Erik Montnemery
a1aca20818 Address review comment from #55833 (#55985) 2021-09-08 13:48:31 -07:00
Paulus Schoutsen
5cc54618c5 Merge pull request #55969 from home-assistant/rc 2021-09-08 13:42:09 -07:00
Philip Allgaier
4d2432cffb Consistent lower-case spelling of "optional" (#55976) 2021-09-08 22:16:12 +02:00
Erik Montnemery
8f344252c4 Add significant change support to AQI type sensors (#55833) 2021-09-08 12:47:59 -07:00
Erik Montnemery
232943c93d Add significant change support to AQI type sensors (#55833) 2021-09-08 12:47:48 -07:00
Erik Montnemery
cbe4b2dc1d Add support for state class measurement to energy cost sensor (#55962) 2021-09-08 12:46:43 -07:00
Erik Montnemery
bb6c2093a2 Add support for state class measurement to energy cost sensor (#55962) 2021-09-08 12:46:28 -07:00
Paulus Schoutsen
a17d2d7c71 Fix gas validation (#55886) 2021-09-08 12:45:41 -07:00
Paulus Schoutsen
ee7202d10a Bump pillow to 8.3.2 (#55970) 2021-09-08 12:06:30 -07:00
Ruslan Sayfutdinov
e3815c6c2e Pin setuptools<58 2021-09-08 12:04:32 -07:00
Paulus Schoutsen
5cba7932f3 Bumped version to 2021.9.5 2021-09-08 08:22:38 -07:00
Erik Montnemery
413430bdba Fix handling of imperial units in long term statistics (#55959) 2021-09-08 08:22:34 -07:00
Erik Montnemery
81462d8655 Do not allow inf or nan sensor states in statistics (#55943) 2021-09-08 08:22:33 -07:00
Erik Montnemery
8ee4b49aa9 Do not let one bad statistic spoil the bunch (#55942) 2021-09-08 08:22:32 -07:00
Shay Levy
19d7cb4439 Bump aioswitcher to 2.0.5 (#55934) 2021-09-08 08:22:31 -07:00
Raman Gupta
21ebf4f3e6 Allow multiple template.select platform entries (#55908) 2021-09-08 08:22:31 -07:00
Maciej Bieniek
980fcef36f Fix available property for Xiaomi Miio fan platform (#55889)
* Fix available

* Suggested change
2021-09-08 08:22:30 -07:00
Diogo Gomes
e7fd24eade Integration Sensor Initial State (#55875)
* initial state is UNAVAILABLE

* update tests
2021-09-08 08:22:08 -07:00
Pascal Winters
9ecb75dc70 Edit unit of measurement for gas/electricity supplier prices (#55771)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-08 08:20:49 -07:00
RDFurman
7f3adce675 Try to avoid rate limiting in honeywell (#55304)
* Limit parallel update and sleep loop

* Use asyncio sleep instead

* Extract sleep to const for testing

* Make loop sleep 0 in test
2021-09-08 08:20:48 -07:00
Erik Montnemery
27764e9985 Fix handling of imperial units in long term statistics (#55959) 2021-09-08 08:08:48 -07:00
Erik Montnemery
9f1e503784 Do not allow inf or nan sensor states in statistics (#55943) 2021-09-08 08:05:16 -07:00
Erik Montnemery
22e6ddf8df Do not let one bad statistic spoil the bunch (#55942) 2021-09-08 07:55:40 -07:00
Shay Levy
c514f72c70 Bump aioswitcher to 2.0.5 (#55934) 2021-09-08 07:54:44 -07:00
Diogo Gomes
84140a547b deprecated unit_of_measurement (#55876) 2021-09-08 16:33:53 +02:00
Marc Mueller
0b23ce658e Use EntityDescription - konnected (#55923) 2021-09-08 15:14:03 +02:00
Marc Mueller
32b8be5a6e Use EntityDescription - repetier (#55926) 2021-09-08 14:28:04 +02:00
Marc Mueller
69d6d5ffce Use EntityDescription - incomfort (#55930) 2021-09-08 08:51:17 +02:00
Marc Mueller
5429a67877 Use EntityDescription - zoneminder (#55922) 2021-09-08 08:48:55 +02:00
Ruslan Sayfutdinov
7195b8222b Bump PyJWT to 2.1.0 (#55911) 2021-09-07 20:59:02 -07:00
Pascal Winters
a764c79b6f Edit unit of measurement for gas/electricity supplier prices (#55771)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-09-07 20:54:40 -07:00
Paulus Schoutsen
ec337101dd Fix gas validation (#55886) 2021-09-07 20:53:43 -07:00
Fuzzy
efafe82799 Remove Trackr integration (API removed) (#55917)
* Delete Trackr component directory

* Update .coverage.rc to remove Trackr

* Update requirements_all.txt
2021-09-08 05:01:58 +02:00
GitHub Action
f9e6e616f4 [ci skip] Translation update 2021-09-08 00:10:52 +00:00
Paulus Schoutsen
f0649855f9 Merge pull request #55870 from home-assistant/rc 2021-09-06 16:05:08 -07:00
Paulus Schoutsen
823c3735ce Bumped version to 2021.9.4 2021-09-06 13:41:39 -07:00
Diogo Gomes
68131a5c00 Integration Sensor unit of measurement overwrite (#55869) 2021-09-06 13:41:33 -07:00
J. Nick Koston
be0f767c34 Fix exception during rediscovery of ignored zha config entries (#55859)
Fixes #55709
2021-09-06 13:41:33 -07:00
Maciej Bieniek
450652a501 Fix target humidity step for Xiaomi MJJSQ humidifiers (#55858) 2021-09-06 13:41:32 -07:00
Daniel Hjelseth Høyer
8523f569c0 Surepetcare, bug fix (#55842) 2021-09-06 13:41:31 -07:00
mrwhite31
5f289434d3 Fix typo in in rfxtrx Barometer sensor (#55839)
Fix typo in sensor.py to fix barometer unavailability
2021-09-06 13:41:31 -07:00
Maciej Bieniek
3df6dfecab Fix a lazy preset mode update for Xiaomi Miio fans (#55837) 2021-09-06 13:41:30 -07:00
Martin Hjelmare
d6eda65302 Bump zwave-js-server-python to 0.30.0 (#55831) 2021-09-06 13:41:29 -07:00
Brandon Rothweiler
7a5bc2784a Upgrade pymazda to 0.2.1 (#55820) 2021-09-06 13:41:28 -07:00
David Bonnes
00878467cc Fix incomfort min/max temperatures (#55806) 2021-09-06 13:41:28 -07:00
Maciej Bieniek
899d8164b0 Fix xiaomi miio Air Quality Monitor initialization (#55773) 2021-09-06 13:41:27 -07:00
jan iversen
823fd60991 Allow same address different register types in modbus (#55767) 2021-09-06 13:41:26 -07:00
jan iversen
a6bb0eadca Allow same IP if ports are different on modbus (#55766) 2021-09-06 13:41:25 -07:00
Tatham Oddie
eb70354ee7 Fix logbook entity_matches_only query mode (#55761)
The string matching template needs to match the same compact JSON format
as the data is now written in.
2021-09-06 13:41:25 -07:00
Joshi
bd53185bed Fix switch name attribute for thinkingcleaner (#55730) 2021-09-06 13:41:24 -07:00
Paulus Schoutsen
df9a899bbd Merge pull request #55753 from home-assistant/rc 2021-09-04 14:51:15 -07:00
Paulus Schoutsen
37cf295e20 Bumped version to 2021.9.3 2021-09-04 14:13:37 -07:00
Simone Chemelli
04816fe26d Fix SamsungTV sendkey when not connected (#55723) 2021-09-04 14:13:34 -07:00
Anders Melchiorsen
eb48e75fc5 Fix LIFX firmware version information (#55713) 2021-09-04 14:13:33 -07:00
Simone Chemelli
9d5431fba1 Handle Fritz InternalError (#55711) 2021-09-04 14:13:32 -07:00
Erik Montnemery
a4f2c5583d Handle negative numbers in sensor long term statistics (#55708)
* Handle negative numbers in sensor long term statistics

* Use negative states in tests
2021-09-04 14:13:32 -07:00
Paulus Schoutsen
a37c3af2b4 better detect legacy eagly devices (#55706) 2021-09-04 14:13:31 -07:00
Paulus Schoutsen
33047d7260 Merge pull request #55673 from home-assistant/rc 2021-09-03 10:53:16 -07:00
Paulus Schoutsen
e3405d226a Bumped version to 2021.9.2 2021-09-03 10:16:36 -07:00
Paulus Schoutsen
3008ff03b2 Guard for doRollover failing (#55669) 2021-09-03 10:16:31 -07:00
Joakim Sørensen
8592d94a3c Fix hdmi_cec switches (#55666) 2021-09-03 10:16:30 -07:00
Nikolay Vasilchuk
b36e86d95c Fix Starline sensor state AttributeError (#55654)
* Fix starline sensors state

* Black
2021-09-03 10:16:29 -07:00
Paulus Schoutsen
f61a1ecae7 Guard for unexpected exceptions in device automation (#55639)
* Guard for unexpected exceptions in device automation

* merge

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-03 10:16:28 -07:00
Paulus Schoutsen
80c074ca82 Better handle invalid trigger config (#55637) 2021-09-03 10:16:28 -07:00
Paulus Schoutsen
ff91ff4cd2 Fix template sensor availability (#55635) 2021-09-03 10:16:27 -07:00
J. Nick Koston
93c2a7dd70 Narrow zwave_js USB discovery (#55613)
- Avoid triggering discovery when we can know in advance the
  device is not a Z-Wave stick
2021-09-03 10:16:26 -07:00
Michael
da3ee9ed4b Fix CONFIG_SCHEMA validation in Speedtest.net (#55612) 2021-09-03 10:16:25 -07:00
Pascal Vizeli
2ef607651d Disable observer for USB on containers (#55570)
* Disable observer for USB on containers

* remove operating system test

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-03 10:16:24 -07:00
J. Nick Koston
88ca83a30b Ignore missing devices when in ssdp unsee (#55553) 2021-09-03 10:16:24 -07:00
Paulus Schoutsen
f883fa9eef Merge pull request #55608 from home-assistant/rc 2021-09-02 13:35:47 -07:00
Paulus Schoutsen
5b705dba36 Bumped version to 2021.9.1 2021-09-02 12:50:56 -07:00
Pascal Vizeli
1592408a4b Downgrade sqlite-libs on docker image (#55591) 2021-09-02 12:50:48 -07:00
jan iversen
89b7be52af Correct duplicate address. (#55578) 2021-09-02 12:50:47 -07:00
Alexei Chetroi
8f85472df3 Pick right coordinator (#55555) 2021-09-02 12:50:45 -07:00
Teemu R
6aa771e5e8 xiaomi_miio: bump python-miio dependency (#55549) 2021-09-02 12:50:44 -07:00
Joakim Sørensen
7193e82963 Bump pyuptimerobot to 21.9.0 (#55546) 2021-09-02 12:50:43 -07:00
Paulus Schoutsen
245eec7041 Merge pull request #55532 from home-assistant/rc 2021-09-01 11:28:21 -07:00
Bram Kragten
493309daa7 Bumped version to 2021.9.0 2021-09-01 19:40:48 +02:00
Paulus Schoutsen
af68802c17 Tweaks for the iotawatt integration (#55510) 2021-09-01 19:37:43 +02:00
Brian Egge
576cece7a9 Fix None support_color_modes TypeError (#55497)
* Fix None support_color_modes TypeError 

https://github.com/home-assistant/core/issues/55451

* Update __init__.py
2021-09-01 19:37:43 +02:00
Otto Winter
3b9859940f ESPHome light color mode use capabilities (#55206)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2021-09-01 19:37:41 +02:00
Paulus Schoutsen
a315fd059a Bumped version to 2021.9.0b7 2021-08-31 22:57:33 -07:00
Brett Adams
ba9ef004c8 Add missing device class for temperature sensor in Advantage Air (#55508) 2021-08-31 22:57:13 -07:00
Felipe Martins Diel
22f745b17c Fix BroadlinkSwitch._attr_assumed_state (#55505) 2021-08-31 22:57:12 -07:00
muppet3000
05cf223146 Added trailing slash to US growatt URL (#55504) 2021-08-31 22:57:12 -07:00
Erik Montnemery
d4aadd8af0 Improve log for sum statistics (#55502) 2021-08-31 22:56:28 -07:00
Erik Montnemery
4045eee2e5 Correct sum statistics when only last_reset has changed (#55498)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-08-31 22:53:58 -07:00
Joakim Sørensen
83a51f7f30 Add cache-control headers to supervisor entrypoint (#55493) 2021-08-31 22:52:05 -07:00
gjong
29110fe157 Remove Youless native unit of measurement (#55492) 2021-08-31 22:52:05 -07:00
gjong
e87b7e24b4 Increase YouLess polling interval (#55490) 2021-08-31 22:52:04 -07:00
uvjustin
d9056c01a6 Fix ArestSwitchBase missing is on attribute (#55483) 2021-08-31 22:52:03 -07:00
Matthew Garrett
a724bc21b6 Assistant sensors (#55480) 2021-08-31 22:52:03 -07:00
Paulus Schoutsen
ef00178339 Add Eagle 200 name back (#55477)
* Add Eagle 200 name back

* add comment

* update tests
2021-08-31 22:52:02 -07:00
Erik Montnemery
b8770c3958 Make new cycles for sensor sum statistics start with 0 as zero-point (#55473) 2021-08-31 22:52:01 -07:00
Eric Severance
f0c0cfcac0 Wemo Insight devices need polling when off (#55348) 2021-08-31 22:52:00 -07:00
Bram Kragten
4c48ad9108 Bumped version to Bumped version to 2021.9.0b6 2021-08-30 23:35:50 +02:00
Bram Kragten
92b0453749 Update frontend to 20210830.0 (#55472) 2021-08-30 23:33:47 +02:00
Raman Gupta
8ab801a7b4 Fix area_id and area_name template functions (#55470) 2021-08-30 23:33:46 +02:00
Aaron Bach
f92c7b1aea Bump aioambient to 1.3.0 (#55468) 2021-08-30 23:33:45 +02:00
Aaron Bach
0d9fbf864f Bump pyiqvia to 1.1.0 (#55466) 2021-08-30 23:33:44 +02:00
Aaron Bach
275f9c8a28 Bump pyopenuv to 2.2.0 (#55464) 2021-08-30 23:33:43 +02:00
Erik Montnemery
84f3b1514f Fix race in MQTT sensor when last_reset_topic is configured (#55463) 2021-08-30 23:33:43 +02:00
Greg
802f5613c4 Add IoTaWatt integration (#55364)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-08-30 23:33:42 +02:00
Paulus Schoutsen
8be40cbb00 Bumped version to 2021.9.0b5 2021-08-30 09:41:51 -07:00
Raman Gupta
46ce4e92f6 Bump zwave-js-server-python to 0.29.1 (#55460) 2021-08-30 09:41:42 -07:00
J. Nick Koston
39f11bb46d Bump zeroconf to 0.36.2 (#55459)
- Now sends NSEC records when requesting non-existent address types
  Implements RFC6762 sec 6.2 (http://datatracker.ietf.org/doc/html/rfc6762#section-6.2)

- This solves a case where a HomeKit bridge can take a while to update
  because it is waiting to see if an AAAA (IPv6) address is available
2021-08-30 09:41:42 -07:00
Erik Montnemery
3b0fe9adde Revert "Deprecate last_reset options in MQTT sensor" (#55457)
This reverts commit f9fa5fa804.
2021-08-30 09:41:41 -07:00
Simone Chemelli
707778229b Fix noise/attenuation units to UI display for Fritz (#55447) 2021-08-30 09:41:40 -07:00
Erik Montnemery
a474534c08 Fix exception when shutting down DSMR (#55441)
* Fix exception when shutting down DSMR

* Update homeassistant/components/dsmr/sensor.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-08-30 09:41:39 -07:00
Erik Montnemery
65ad99d51c Fix crash in buienradar sensor due to self.hass not set (#55438) 2021-08-30 09:41:39 -07:00
Erik Montnemery
4052a0db89 Improve statistics error messages when sensor's unit is changing (#55436)
* Improve error messages when sensor's unit is changing

* Improve test coverage
2021-08-30 09:41:38 -07:00
Raman Gupta
b546fc5067 Don't set zwave_js sensor device class to energy when unit is wrong (#55434) 2021-08-30 09:41:37 -07:00
Christopher Kochan
5dcc760755 Add Sense energy sensors (#54833)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-08-30 09:41:36 -07:00
Paulus Schoutsen
fb06acf39d Bumped version to 2021.9.0b4 2021-08-29 20:45:45 -07:00
Raman Gupta
948f191f16 Make zwave_js discovery log message more descriptive (#55432) 2021-08-29 20:45:33 -07:00
Klaas Schoute
2c0d9105ac Update entity names for P1 Monitor integration (#55430) 2021-08-29 20:45:32 -07:00
J. Nick Koston
10df9f3542 Bump zeroconf to 0.36.1 (#55425)
- Fixes duplicate records in the cache

- Changelog: https://github.com/jstasiak/python-zeroconf/compare/0.36.0...0.36.1
2021-08-29 20:45:32 -07:00
Aaron Bach
6cf799459b Ensure ReCollect Waste shows pickups for midnight on the actual day (#55424) 2021-08-29 20:44:57 -07:00
Marc Mueller
47e2d1caa5 Fix device_class - qnap drive_temp sensor (#55409) 2021-08-29 20:41:25 -07:00
J. Nick Koston
69d8f94e3b Show device_id in HomeKit when the device registry entry is missing a name (#55391)
- Reported at: https://community.home-assistant.io/t/homekit-unknown-error-occurred/333385
2021-08-29 20:41:24 -07:00
Aaron Bach
4b7803ed03 Bump simplisafe-python to 11.0.6 (#55385) 2021-08-29 20:41:24 -07:00
J. Nick Koston
ff6015ff89 Implement import of consider_home in nmap_tracker to avoid breaking change (#55379) 2021-08-29 20:41:23 -07:00
Matt Krasowski
fbd144de46 Handle incorrect values reported by some Shelly devices (#55042) 2021-08-29 20:41:22 -07:00
Paulus Schoutsen
adaebdeea8 Bumped version to 2021.9.0b3 2021-08-28 08:59:25 -07:00
Maciej Bieniek
910cb5865a Address late review for Tractive integration (#55371) 2021-08-28 08:58:38 -07:00
Joakim Sørensen
baf0d9b2d9 Pin regex to 2021.8.28 (#55368) 2021-08-28 08:58:37 -07:00
Jason Hunter
c1bce68549 close connection on connection retry, bump onvif lib (#55363) 2021-08-28 08:58:36 -07:00
Nathan Spencer
bde4c0e46f Bump pylitterbot to 2021.8.1 (#55360) 2021-08-28 08:58:35 -07:00
Paulus Schoutsen
a275e7aa67 Fix wolflink super call (#55359) 2021-08-28 08:58:35 -07:00
Aaron Bach
d96e416d26 Ensure ReCollect Waste starts up even if no future pickup is found (#55349) 2021-08-28 08:58:34 -07:00
Paulus Schoutsen
efc3894303 Convert solarlog to coordinator (#55345) 2021-08-28 08:58:33 -07:00
Daniel Hjelseth Høyer
06b47ee2f5 Tractive name (#55342) 2021-08-28 08:58:33 -07:00
Raman Gupta
08ca43221f Listen to node events in the zwave_js node status sensor (#55341) 2021-08-28 08:58:32 -07:00
J. Nick Koston
8641740ed8 Ensure yeelights resync state if they are busy on first connect (#55333) 2021-08-28 08:58:31 -07:00
Paulus Schoutsen
d0ada6c6e2 Bumped version to 2021.9.0b2 2021-08-27 10:00:20 -07:00
Anders Melchiorsen
76bb036968 Upgrade aiolifx to 0.6.10 (#55344) 2021-08-27 10:00:00 -07:00
J. Nick Koston
d8b64be41c Retrigger config flow when the ssdp location changes for a UDN (#55343)
Fixes #55229
2021-08-27 09:59:59 -07:00
jan iversen
b3e0b7b86e Add modbus name to log_error (#55336) 2021-08-27 09:59:59 -07:00
Chris Talkington
e097e4c1c2 Fix reauth for sonarr (#55329)
* fix reauth for sonarr

* Update config_flow.py

* Update config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update config_flow.py
2021-08-27 09:59:58 -07:00
Robert Hillis
34f0fecef8 Fix sonos alarm schema (#55318) 2021-08-27 09:59:57 -07:00
Erik Montnemery
f53a10d39a Handle statistics for sensor with changing state class (#55316) 2021-08-27 09:59:56 -07:00
J. Nick Koston
5b993129d6 Fix lifx model to be a string (#55309)
Fixes #55307
2021-08-27 09:59:56 -07:00
J. Nick Koston
865656d436 Always send powerview move command in case shade is out of sync (#55308) 2021-08-27 09:59:55 -07:00
Aaron Bach
fb25c6c115 Bump simplisafe-python to 11.0.5 (#55306) 2021-08-27 09:59:54 -07:00
Aaron Bach
c963cf8743 Bump aiorecollect to 1.0.8 (#55300) 2021-08-27 09:59:54 -07:00
rikroe
ddb28db21a Bump bimmer_connected to 0.7.20 (#55299) 2021-08-27 09:59:53 -07:00
J. Nick Koston
bfc98b444f Fix creation of new nmap tracker entities (#55297) 2021-08-27 09:59:52 -07:00
realPy
f9a0f44137 Correct flash light livarno when use hue (#55294)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-08-27 09:59:51 -07:00
J. Nick Koston
93750d71ce Gracefully handle pyudev failing to filter on WSL (#55286)
* Gracefully handle pyudev failing to filter on WSL

* add debug message

* add mocks so we reach the new check
2021-08-27 09:59:51 -07:00
Paulus Schoutsen
06e4003640 Bump ring to 0.7.1 (#55282) 2021-08-27 09:59:50 -07:00
J. Nick Koston
97ff5e2085 Set yeelight capabilities from external discovery (#55280) 2021-08-27 09:59:49 -07:00
J. Nick Koston
8a2c07ce19 Ensure yeelight model is set in the config entry (#55281)
* Ensure yeelight model is set in the config entry

- If the model was not set in the config entry the light could
  be sent commands it could not handle

* update tests

* fix test
2021-08-27 09:59:21 -07:00
J. Nick Koston
9f7398e0df Fix yeelight brightness when nightlight switch is disabled (#55278) 2021-08-27 09:57:07 -07:00
J. Nick Koston
7df84dadad Fix some yeelights showing wrong state after on/off (#55279) 2021-08-27 09:56:22 -07:00
Chris
2a1e943b18 Fix unique_id conflict in smarttthings (#55235) 2021-08-27 09:54:26 -07:00
prwood80
e6e72bfa82 Improve performance of ring camera still images (#53803)
Co-authored-by: Pat Wood <prwood80@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-08-27 09:54:25 -07:00
Paulus Schoutsen
219868b308 Bumped version to 2021.9.0b1 2021-08-26 09:37:25 -07:00
Maciej Bieniek
67dd861d8c Fix AttributeError for non-MIOT Xiaomi Miio purifiers (#55271) 2021-08-26 09:37:20 -07:00
Florian Gareis
f2765ba320 Don't create DSL sensor for devices that don't support DSL (#55269) 2021-08-26 09:37:19 -07:00
Erik Montnemery
aefd3df914 Warn if a sensor with state_class_total has a decreasing value twice (#55251) 2021-08-26 09:37:18 -07:00
Franck Nijhof
3658eeb8d1 Fix MQTT add-on discovery to be ignorable (#55250) 2021-08-26 09:37:07 -07:00
Erik Montnemery
080cb6b6e9 Fix double precision float for postgresql (#55249) 2021-08-26 09:37:06 -07:00
Joakim Sørensen
20796303da Only postfix image name for container (#55248) 2021-08-26 09:37:06 -07:00
J. Nick Koston
dff6151ff4 Abort zha usb discovery if deconz is setup (#55245)
* Abort zha usb discovery if deconz is setup

* Update tests/components/zha/test_config_flow.py

* add deconz domain const

* Update homeassistant/components/zha/config_flow.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2021-08-26 09:37:05 -07:00
Alexei Chetroi
6f24f4e302 Bump up ZHA dependencies (#55242)
* Bump up ZHA dependencies

* Bump up zha-device-handlers
2021-08-26 09:37:04 -07:00
J. Nick Koston
175febe635 Defer zha auto configure probe until after clicking configure (#55239) 2021-08-26 09:37:03 -07:00
J. Nick Koston
aa907f4d10 Only warn once per entity when the async_camera_image signature needs to be updated (#55238) 2021-08-26 09:37:02 -07:00
J. Nick Koston
3d09478aea Limit USB discovery to specific manufacturer/description/serial_number matches (#55236)
* Limit USB discovery to specific manufacturer/description/serial_number matches

* test for None case
2021-08-26 09:37:01 -07:00
Marc Mueller
05df9b4b8b Remove temperature conversion - tado (#55231) 2021-08-26 09:37:01 -07:00
jjlawren
1865a28083 Set up polling task with subscriptions in Sonos (#54355) 2021-08-26 09:37:00 -07:00
Franck Nijhof
f78d57515a Bumped version to 2021.9.0b0 2021-08-25 22:11:21 +02:00
4285 changed files with 125035 additions and 52539 deletions

View File

@@ -29,13 +29,13 @@ omit =
homeassistant/components/ads/*
homeassistant/components/aemet/weather_update_coordinator.py
homeassistant/components/aftership/*
homeassistant/components/agent_dvr/__init__.py
homeassistant/components/agent_dvr/alarm_control_panel.py
homeassistant/components/agent_dvr/camera.py
homeassistant/components/agent_dvr/const.py
homeassistant/components/agent_dvr/helpers.py
homeassistant/components/airnow/__init__.py
homeassistant/components/airnow/sensor.py
homeassistant/components/airthings/__init__.py
homeassistant/components/airthings/sensor.py
homeassistant/components/airtouch4/__init__.py
homeassistant/components/airtouch4/climate.py
homeassistant/components/airtouch4/const.py
@@ -49,6 +49,7 @@ omit =
homeassistant/components/alarmdecoder/sensor.py
homeassistant/components/alpha_vantage/sensor.py
homeassistant/components/amazon_polly/*
homeassistant/components/amberelectric/__init__.py
homeassistant/components/ambiclimate/climate.py
homeassistant/components/ambient_station/*
homeassistant/components/amcrest/*
@@ -82,7 +83,6 @@ omit =
homeassistant/components/aurora/binary_sensor.py
homeassistant/components/aurora/const.py
homeassistant/components/aurora/sensor.py
homeassistant/components/aurora_abb_powerone/sensor.py
homeassistant/components/avea/light.py
homeassistant/components/avion/light.py
homeassistant/components/azure_devops/__init__.py
@@ -131,6 +131,7 @@ omit =
homeassistant/components/braviatv/remote.py
homeassistant/components/broadlink/__init__.py
homeassistant/components/broadlink/const.py
homeassistant/components/broadlink/light.py
homeassistant/components/broadlink/remote.py
homeassistant/components/broadlink/switch.py
homeassistant/components/broadlink/updater.py
@@ -171,6 +172,13 @@ omit =
homeassistant/components/coolmaster/const.py
homeassistant/components/cppm_tracker/device_tracker.py
homeassistant/components/cpuspeed/sensor.py
homeassistant/components/crownstone/__init__.py
homeassistant/components/crownstone/const.py
homeassistant/components/crownstone/listeners.py
homeassistant/components/crownstone/helpers.py
homeassistant/components/crownstone/devices.py
homeassistant/components/crownstone/entry_manager.py
homeassistant/components/crownstone/light.py
homeassistant/components/cups/sensor.py
homeassistant/components/currencylayer/sensor.py
homeassistant/components/daikin/*
@@ -203,7 +211,6 @@ omit =
homeassistant/components/dlib_face_detect/image_processing.py
homeassistant/components/dlib_face_identify/image_processing.py
homeassistant/components/dlink/switch.py
homeassistant/components/dlna_dmr/media_player.py
homeassistant/components/dnsip/sensor.py
homeassistant/components/dominos/*
homeassistant/components/doods/*
@@ -260,7 +267,10 @@ omit =
homeassistant/components/enphase_envoy/__init__.py
homeassistant/components/enphase_envoy/sensor.py
homeassistant/components/entur_public_transport/*
homeassistant/components/environment_canada/*
homeassistant/components/environment_canada/__init__.py
homeassistant/components/environment_canada/camera.py
homeassistant/components/environment_canada/sensor.py
homeassistant/components/environment_canada/weather.py
homeassistant/components/envirophat/sensor.py
homeassistant/components/envisalink/*
homeassistant/components/ephember/climate.py
@@ -281,7 +291,6 @@ omit =
homeassistant/components/esphome/select.py
homeassistant/components/esphome/sensor.py
homeassistant/components/esphome/switch.py
homeassistant/components/essent/sensor.py
homeassistant/components/etherscan/sensor.py
homeassistant/components/eufy/*
homeassistant/components/everlights/light.py
@@ -290,6 +299,7 @@ omit =
homeassistant/components/ezviz/camera.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/const.py
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/binary_sensor.py
homeassistant/components/ezviz/sensor.py
homeassistant/components/ezviz/switch.py
@@ -322,6 +332,7 @@ omit =
homeassistant/components/fjaraskupan/const.py
homeassistant/components/fjaraskupan/fan.py
homeassistant/components/fjaraskupan/light.py
homeassistant/components/fjaraskupan/number.py
homeassistant/components/fjaraskupan/sensor.py
homeassistant/components/fleetgo/device_tracker.py
homeassistant/components/flexit/climate.py
@@ -334,7 +345,6 @@ omit =
homeassistant/components/flume/sensor.py
homeassistant/components/flunearyou/__init__.py
homeassistant/components/flunearyou/sensor.py
homeassistant/components/flux_led/light.py
homeassistant/components/folder/sensor.py
homeassistant/components/folder_watcher/*
homeassistant/components/foobot/sensor.py
@@ -368,7 +378,6 @@ omit =
homeassistant/components/garages_amsterdam/sensor.py
homeassistant/components/gc100/*
homeassistant/components/geniushub/*
homeassistant/components/generic_hygrostat/*
homeassistant/components/github/sensor.py
homeassistant/components/gitlab_ci/sensor.py
homeassistant/components/gitter/sensor.py
@@ -449,7 +458,6 @@ omit =
homeassistant/components/hp_ilo/sensor.py
homeassistant/components/htu21d/sensor.py
homeassistant/components/huawei_lte/*
homeassistant/components/huawei_router/device_tracker.py
homeassistant/components/hue/light.py
homeassistant/components/hunterdouglas_powerview/__init__.py
homeassistant/components/hunterdouglas_powerview/scene.py
@@ -577,6 +585,11 @@ omit =
homeassistant/components/logi_circle/const.py
homeassistant/components/logi_circle/sensor.py
homeassistant/components/london_underground/sensor.py
homeassistant/components/lookin/__init__.py
homeassistant/components/lookin/entity.py
homeassistant/components/lookin/models.py
homeassistant/components/lookin/sensor.py
homeassistant/components/lookin/climate.py
homeassistant/components/loopenergy/sensor.py
homeassistant/components/luci/device_tracker.py
homeassistant/components/luftdaten/__init__.py
@@ -591,7 +604,6 @@ omit =
homeassistant/components/lutron_caseta/scene.py
homeassistant/components/lutron_caseta/switch.py
homeassistant/components/lw12wifi/light.py
homeassistant/components/lyft/sensor.py
homeassistant/components/lyric/__init__.py
homeassistant/components/lyric/api.py
homeassistant/components/lyric/climate.py
@@ -641,13 +653,7 @@ omit =
homeassistant/components/mitemp_bt/sensor.py
homeassistant/components/mjpeg/camera.py
homeassistant/components/mochad/*
homeassistant/components/modbus/base_platform.py
homeassistant/components/modbus/binary_sensor.py
homeassistant/components/modbus/cover.py
homeassistant/components/modbus/climate.py
homeassistant/components/modbus/modbus.py
homeassistant/components/modbus/sensor.py
homeassistant/components/modbus/validators.py
homeassistant/components/modem_callerid/sensor.py
homeassistant/components/motion_blinds/__init__.py
homeassistant/components/motion_blinds/const.py
@@ -687,7 +693,6 @@ omit =
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/__init__.py
homeassistant/components/nanoleaf/light.py
homeassistant/components/nanoleaf/util.py
homeassistant/components/neato/__init__.py
homeassistant/components/neato/api.py
homeassistant/components/neato/camera.py
@@ -696,10 +701,12 @@ omit =
homeassistant/components/neato/switch.py
homeassistant/components/neato/vacuum.py
homeassistant/components/nederlandse_spoorwegen/sensor.py
homeassistant/components/nello/lock.py
homeassistant/components/nest/legacy/*
homeassistant/components/netdata/sensor.py
homeassistant/components/netgear/__init__.py
homeassistant/components/netgear/device_tracker.py
homeassistant/components/netgear/router.py
homeassistant/components/netgear/sensor.py
homeassistant/components/netgear_lte/*
homeassistant/components/netio/switch.py
homeassistant/components/neurio_energy/sensor.py
@@ -724,11 +731,10 @@ omit =
homeassistant/components/nuki/const.py
homeassistant/components/nuki/binary_sensor.py
homeassistant/components/nuki/lock.py
homeassistant/components/nut/sensor.py
homeassistant/components/nx584/alarm_control_panel.py
homeassistant/components/nzbget/coordinator.py
homeassistant/components/obihai/*
homeassistant/components/octoprint/*
homeassistant/components/octoprint/__init__.py
homeassistant/components/oem/climate.py
homeassistant/components/oasa_telematics/sensor.py
homeassistant/components/ohmconnect/sensor.py
@@ -754,7 +760,11 @@ omit =
homeassistant/components/opencv/*
homeassistant/components/openevse/sensor.py
homeassistant/components/openexchangerates/sensor.py
homeassistant/components/opengarage/__init__.py
homeassistant/components/opengarage/binary_sensor.py
homeassistant/components/opengarage/cover.py
homeassistant/components/opengarage/entity.py
homeassistant/components/opengarage/sensor.py
homeassistant/components/openhome/__init__.py
homeassistant/components/openhome/media_player.py
homeassistant/components/openhome/const.py
@@ -770,7 +780,6 @@ omit =
homeassistant/components/openweathermap/sensor.py
homeassistant/components/openweathermap/weather.py
homeassistant/components/openweathermap/weather_update_coordinator.py
homeassistant/components/openweathermap/abstract_owm_sensor.py
homeassistant/components/opnsense/*
homeassistant/components/opple/light.py
homeassistant/components/orangepi_gpio/*
@@ -864,9 +873,6 @@ omit =
homeassistant/components/rest/switch.py
homeassistant/components/ring/camera.py
homeassistant/components/ripple/sensor.py
homeassistant/components/rituals_perfume_genie/binary_sensor.py
homeassistant/components/rituals_perfume_genie/number.py
homeassistant/components/rituals_perfume_genie/select.py
homeassistant/components/rocketchat/notify.py
homeassistant/components/roomba/__init__.py
homeassistant/components/roomba/binary_sensor.py
@@ -899,6 +905,7 @@ omit =
homeassistant/components/screenlogic/__init__.py
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/light.py
homeassistant/components/screenlogic/sensor.py
homeassistant/components/screenlogic/services.py
homeassistant/components/screenlogic/switch.py
@@ -990,23 +997,31 @@ omit =
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/ssdp/util.py
homeassistant/components/starline/*
homeassistant/components/starlingbank/sensor.py
homeassistant/components/steam_online/sensor.py
homeassistant/components/stiebel_eltron/*
homeassistant/components/stookalert/*
homeassistant/components/stookalert/__init__.py
homeassistant/components/stookalert/binary_sensor.py
homeassistant/components/stream/*
homeassistant/components/streamlabswater/*
homeassistant/components/suez_water/*
homeassistant/components/supervisord/sensor.py
homeassistant/components/surepetcare/__init__.py
homeassistant/components/surepetcare/entity.py
homeassistant/components/surepetcare/binary_sensor.py
homeassistant/components/surepetcare/sensor.py
homeassistant/components/swiss_hydrological_data/sensor.py
homeassistant/components/swiss_public_transport/sensor.py
homeassistant/components/swisscom/device_tracker.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switchbot/binary_sensor.py
homeassistant/components/switchbot/__init__.py
homeassistant/components/switchbot/const.py
homeassistant/components/switchbot/entity.py
homeassistant/components/switchbot/cover.py
homeassistant/components/switchbot/sensor.py
homeassistant/components/switchbot/coordinator.py
homeassistant/components/switchmate/switch.py
homeassistant/components/syncthing/__init__.py
homeassistant/components/syncthing/sensor.py
@@ -1049,14 +1064,6 @@ omit =
homeassistant/components/telnet/switch.py
homeassistant/components/temper/sensor.py
homeassistant/components/tensorflow/image_processing.py
homeassistant/components/tesla/__init__.py
homeassistant/components/tesla/binary_sensor.py
homeassistant/components/tesla/climate.py
homeassistant/components/tesla/const.py
homeassistant/components/tesla/device_tracker.py
homeassistant/components/tesla/lock.py
homeassistant/components/tesla/sensor.py
homeassistant/components/tesla/switch.py
homeassistant/components/tfiac/climate.py
homeassistant/components/thermoworks_smoke/sensor.py
homeassistant/components/thethingsnetwork/*
@@ -1090,17 +1097,23 @@ omit =
homeassistant/components/totalconnect/binary_sensor.py
homeassistant/components/totalconnect/const.py
homeassistant/components/touchline/climate.py
homeassistant/components/tplink/common.py
homeassistant/components/tplink/switch.py
homeassistant/components/tplink_lte/*
homeassistant/components/traccar/device_tracker.py
homeassistant/components/traccar/const.py
homeassistant/components/trackr/device_tracker.py
homeassistant/components/tractive/__init__.py
homeassistant/components/tractive/binary_sensor.py
homeassistant/components/tractive/device_tracker.py
homeassistant/components/tractive/entity.py
homeassistant/components/tractive/sensor.py
homeassistant/components/tradfri/*
homeassistant/components/tractive/switch.py
homeassistant/components/tradfri/__init__.py
homeassistant/components/tradfri/base_class.py
homeassistant/components/tradfri/config_flow.py
homeassistant/components/tradfri/cover.py
homeassistant/components/tradfri/fan.py
homeassistant/components/tradfri/light.py
homeassistant/components/tradfri/sensor.py
homeassistant/components/tradfri/switch.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/sensor.py
@@ -1109,13 +1122,23 @@ omit =
homeassistant/components/transmission/errors.py
homeassistant/components/travisci/sensor.py
homeassistant/components/tuya/__init__.py
homeassistant/components/tuya/base.py
homeassistant/components/tuya/binary_sensor.py
homeassistant/components/tuya/camera.py
homeassistant/components/tuya/climate.py
homeassistant/components/tuya/const.py
homeassistant/components/tuya/cover.py
homeassistant/components/tuya/fan.py
homeassistant/components/tuya/humidifier.py
homeassistant/components/tuya/light.py
homeassistant/components/tuya/number.py
homeassistant/components/tuya/scene.py
homeassistant/components/tuya/select.py
homeassistant/components/tuya/sensor.py
homeassistant/components/tuya/siren.py
homeassistant/components/tuya/switch.py
homeassistant/components/tuya/util.py
homeassistant/components/tuya/vacuum.py
homeassistant/components/twentemilieu/const.py
homeassistant/components/twentemilieu/sensor.py
homeassistant/components/twilio_call/notify.py
@@ -1145,6 +1168,7 @@ omit =
homeassistant/components/velbus/sensor.py
homeassistant/components/velbus/switch.py
homeassistant/components/velux/*
homeassistant/components/venstar/__init__.py
homeassistant/components/venstar/climate.py
homeassistant/components/verisure/__init__.py
homeassistant/components/verisure/alarm_control_panel.py
@@ -1168,6 +1192,7 @@ omit =
homeassistant/components/vilfo/const.py
homeassistant/components/vivotek/camera.py
homeassistant/components/vlc/media_player.py
homeassistant/components/vlc_telnet/__init__.py
homeassistant/components/vlc_telnet/media_player.py
homeassistant/components/volkszaehler/sensor.py
homeassistant/components/volumio/__init__.py
@@ -1179,13 +1204,14 @@ omit =
homeassistant/components/waterfurnace/*
homeassistant/components/watson_iot/*
homeassistant/components/watson_tts/tts.py
homeassistant/components/watttime/__init__.py
homeassistant/components/watttime/sensor.py
homeassistant/components/waze_travel_time/__init__.py
homeassistant/components/waze_travel_time/helpers.py
homeassistant/components/waze_travel_time/sensor.py
homeassistant/components/webostv/*
homeassistant/components/whois/sensor.py
homeassistant/components/wiffi/*
homeassistant/components/wink/*
homeassistant/components/wirelesstag/*
homeassistant/components/wolflink/__init__.py
homeassistant/components/wolflink/sensor.py
@@ -1228,7 +1254,6 @@ omit =
homeassistant/components/xiaomi_miio/select.py
homeassistant/components/xiaomi_miio/sensor.py
homeassistant/components/xiaomi_miio/switch.py
homeassistant/components/xiaomi_miio/vacuum.py
homeassistant/components/xiaomi_tv/media_player.py
homeassistant/components/xmpp/notify.py
homeassistant/components/xs1/*
@@ -1285,5 +1310,6 @@ exclude_lines =
raise AssertionError
raise NotImplementedError
# TYPE_CHECKING block is never executed during pytest run
# TYPE_CHECKING and @overload blocks are never executed during pytest run
if TYPE_CHECKING:
@overload

View File

@@ -15,7 +15,7 @@ body:
attributes:
label: The problem
description: >-
Describe the issue you are experiencing here to communicate to the
Describe the issue you are experiencing here, to communicate to the
maintainers. Tell us what you were trying to do and what happened.
Provide a clear and concise description of what the problem is.
@@ -28,10 +28,12 @@ body:
validations:
required: true
attributes:
label: What is version of Home Assistant Core has the issue?
label: What version of Home Assistant Core has the issue?
placeholder: core-
description: >
Can be found in the Configuration panel -> Info.
Can be found in: [Configuration panel -> Info](https://my.home-assistant.io/redirect/info/).
[![Open your Home Assistant instance and show your Home Assistant version information.](https://my.home-assistant.io/badges/info.svg)](https://my.home-assistant.io/redirect/info/)
- type: input
attributes:
label: What was the last working version of Home Assistant Core?
@@ -44,7 +46,9 @@ body:
attributes:
label: What type of installation are you running?
description: >
If you don't know, you can find it in: Configuration panel -> Info.
Can be found in: [Configuration panel -> Info](https://my.home-assistant.io/redirect/info/).
[![Open your Home Assistant instance and show your Home Assistant version information.](https://my.home-assistant.io/badges/info.svg)](https://my.home-assistant.io/redirect/info/)
options:
- Home Assistant OS
- Home Assistant Container
@@ -55,15 +59,15 @@ body:
attributes:
label: Integration causing the issue
description: >
The name of the integration, for example, Automation or Philips Hue.
The name of the integration. For example: Automation, Philips Hue
- type: input
id: integration_link
attributes:
label: Link to integration documentation on our website
placeholder: "https://www.home-assistant.io/integrations/..."
description: |
Providing a link [to the documentation][docs] help us categorizing the
issue, while providing a useful reference at the same time.
Providing a link [to the documentation][docs] helps us categorize the
issue, while also providing a useful reference for others.
[docs]: https://www.home-assistant.io/integrations
@@ -75,8 +79,8 @@ body:
attributes:
label: Example YAML snippet
description: |
If this issue has an example piece of YAML that can help reproducing this problem, please provide.
This can be an piece of YAML from, e.g., an automation, script, scene or configuration.
If applicable, please provide an example piece of YAML that can help reproduce this problem.
This can be from an automation, script, scene or configuration.
render: yaml
- type: textarea
attributes:
@@ -88,5 +92,3 @@ body:
label: Additional information
description: >
If you have any additional information for us, use the field below.
Please note, you can attach screenshots or screen recordings here, by
dragging and dropping files in the field below.

View File

@@ -23,7 +23,7 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
with:
fetch-depth: 0
@@ -67,7 +67,7 @@ jobs:
if: needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
@@ -97,7 +97,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
@@ -133,7 +133,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.07.0
uses: home-assistant/builder@2021.09.0
with:
args: |
$BUILD_ARGS \
@@ -170,7 +170,7 @@ jobs:
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
@@ -186,7 +186,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.07.0
uses: home-assistant/builder@2021.09.0
with:
args: |
$BUILD_ARGS \
@@ -201,7 +201,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -233,7 +233,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Login to DockerHub
uses: docker/login-action@v1.10.0

View File

@@ -10,7 +10,7 @@ on:
pull_request: ~
env:
CACHE_VERSION: 2
CACHE_VERSION: 3
DEFAULT_PYTHON: 3.8
PRE_COMMIT_CACHE: ~/.cache/pre-commit
SQLALCHEMY_WARN_20: 1
@@ -26,7 +26,7 @@ jobs:
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v2.2.2
@@ -84,7 +84,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -124,7 +124,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -164,7 +164,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -207,7 +207,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
@@ -226,7 +226,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -269,7 +269,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -312,7 +312,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -352,7 +352,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -395,7 +395,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -436,7 +436,7 @@ jobs:
# needs: prepare-base
# steps:
# - name: Check out code from GitHub
# uses: actions/checkout@v2.3.4
# uses: actions/checkout@v2.3.5
# - name: Run ShellCheck
# uses: ludeeus/action-shellcheck@0.3.0
@@ -446,7 +446,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -493,7 +493,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
@@ -517,7 +517,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
@@ -551,7 +551,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
@@ -595,7 +595,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
@@ -626,7 +626,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
@@ -660,7 +660,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
@@ -682,11 +682,11 @@ jobs:
# Ideally this should be part of our dependencies
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Run pytest
run: |
. venv/bin/activate
pytest \
python3 -X dev -bb -m pytest \
-qq \
--timeout=9 \
--durations=10 \
@@ -718,7 +718,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
@@ -740,4 +740,4 @@ jobs:
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2.0.3
uses: codecov/codecov-action@v2.1.0

View File

@@ -9,12 +9,12 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2.1.2
- uses: dessant/lock-threads@v3
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: "30"
issue-exclude-created-before: "2020-10-01T00:00:00Z"
issue-inactive-days: "30"
exclude-issue-created-before: "2020-10-01T00:00:00Z"
issue-lock-reason: ""
pr-lock-inactive-days: "1"
pr-exclude-created-before: "2020-11-01T00:00:00Z"
pr-inactive-days: "1"
exclude-pr-created-before: "2020-11-01T00:00:00Z"
pr-lock-reason: ""

View File

@@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
@@ -39,7 +39,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2

View File

@@ -21,7 +21,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Get information
id: info
@@ -68,7 +68,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Download env_file
uses: actions/download-artifact@v2
@@ -89,7 +89,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
wheels-user: wheels
env-file: true
apk: "build-base;cmake;git;linux-headers;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev"
apk: "build-base;cmake;git;linux-headers;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;cargo"
pip: "Cython;numpy"
skip-binary: aiohttp
constraints: "homeassistant/package_constraints.txt"
@@ -108,7 +108,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.3.5
- name: Download env_file
uses: actions/download-artifact@v2
@@ -158,7 +158,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
wheels-user: wheels
env-file: true
apk: "build-base;cmake;git;linux-headers;libexecinfo-dev;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;autoconf;automake;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev"
apk: "build-base;cmake;git;linux-headers;libexecinfo-dev;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;autoconf;automake;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;cargo"
pip: "Cython;numpy;scikit-build"
skip-binary: aiohttp
constraints: "homeassistant/package_constraints.txt"

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
config/*
/config
config2/*
tests/testing_config/deps

View File

@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.23.3
rev: v2.27.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/psf/black
rev: 21.7b0
rev: 21.9b0
hooks:
- id: black
args:
@@ -22,17 +22,17 @@ repos:
- --quiet-level=2
exclude_types: [csv, json]
exclude: ^tests/fixtures/
- repo: https://gitlab.com/pycqa/flake8
rev: 3.9.2
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
- id: flake8
additional_dependencies:
- pycodestyle==2.7.0
- pyflakes==2.3.1
- pycodestyle==2.8.0
- pyflakes==2.4.0
- flake8-docstrings==1.6.0
- pydocstyle==6.0.0
- flake8-comprehensions==3.5.0
- flake8-noqa==1.1.0
- pydocstyle==6.1.1
- flake8-comprehensions==3.7.0
- flake8-noqa==1.2.0
- mccabe==0.6.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit

View File

@@ -20,6 +20,7 @@ homeassistant.components.ampio.*
homeassistant.components.automation.*
homeassistant.components.binary_sensor.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
homeassistant.components.bond.*
homeassistant.components.braviatv.*
homeassistant.components.brother.*
@@ -27,24 +28,29 @@ homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.crownstone.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
homeassistant.components.dlna_dmr.*
homeassistant.components.dnsip.*
homeassistant.components.dsmr.*
homeassistant.components.dunehd.*
homeassistant.components.efergy.*
homeassistant.components.elgato.*
homeassistant.components.esphome.*
homeassistant.components.energy.*
homeassistant.components.fastdotcom.*
homeassistant.components.fitbit.*
homeassistant.components.flunearyou.*
homeassistant.components.flux_led.*
homeassistant.components.forecast_solar.*
homeassistant.components.fritzbox.*
homeassistant.components.frontend.*
homeassistant.components.fritz.*
homeassistant.components.geo_location.*
homeassistant.components.gios.*
homeassistant.components.goalzero.*
homeassistant.components.group.*
homeassistant.components.guardian.*
homeassistant.components.history.*
@@ -53,21 +59,30 @@ homeassistant.components.http.*
homeassistant.components.huawei_lte.*
homeassistant.components.hyperion.*
homeassistant.components.image_processing.*
homeassistant.components.input_select.*
homeassistant.components.integration.*
homeassistant.components.iqvia.*
homeassistant.components.jewish_calendar.*
homeassistant.components.knx.*
homeassistant.components.kraken.*
homeassistant.components.lcn.*
homeassistant.components.light.*
homeassistant.components.local_ip.*
homeassistant.components.lock.*
homeassistant.components.lookin.*
homeassistant.components.mailbox.*
homeassistant.components.media_player.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
homeassistant.components.media_source.*
homeassistant.components.mysensors.*
homeassistant.components.nam.*
homeassistant.components.nanoleaf.*
homeassistant.components.neato.*
homeassistant.components.nest.*
homeassistant.components.netatmo.*
homeassistant.components.network.*
homeassistant.components.nfandroidtv.*
homeassistant.components.no_ip.*
homeassistant.components.notify.*
homeassistant.components.notion.*
@@ -85,6 +100,8 @@ homeassistant.components.recorder.statistics
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.rituals_perfume_genie.*
homeassistant.components.rpi_power.*
homeassistant.components.samsungtv.*
homeassistant.components.scene.*
homeassistant.components.select.*
homeassistant.components.sensor.*
@@ -93,21 +110,29 @@ homeassistant.components.simplisafe.*
homeassistant.components.slack.*
homeassistant.components.sonos.media_player
homeassistant.components.ssdp.*
homeassistant.components.stookalert.*
homeassistant.components.stream.*
homeassistant.components.sun.*
homeassistant.components.surepetcare.*
homeassistant.components.switch.*
homeassistant.components.switcher_kis.*
homeassistant.components.synology_dsm.*
homeassistant.components.systemmonitor.*
homeassistant.components.tag.*
homeassistant.components.tautulli.*
homeassistant.components.tcp.*
homeassistant.components.tile.*
homeassistant.components.tplink.*
homeassistant.components.tractive.*
homeassistant.components.tradfri.*
homeassistant.components.tts.*
homeassistant.components.upcloud.*
homeassistant.components.uptime.*
homeassistant.components.uptimerobot.*
homeassistant.components.vacuum.*
homeassistant.components.vallox.*
homeassistant.components.water_heater.*
homeassistant.components.watttime.*
homeassistant.components.weather.*
homeassistant.components.websocket_api.*
homeassistant.components.zodiac.*

View File

@@ -29,6 +29,7 @@ homeassistant/components/aemet/* @noltari
homeassistant/components/agent_dvr/* @ispysoftware
homeassistant/components/airly/* @bieniu
homeassistant/components/airnow/* @asymworks
homeassistant/components/airthings/* @danielhiversen
homeassistant/components/airtouch4/* @LonePurpleWolf
homeassistant/components/airvisual/* @bachya
homeassistant/components/alarmdecoder/* @ajschmidt8
@@ -36,6 +37,7 @@ homeassistant/components/alexa/* @home-assistant/cloud @ochlocracy
homeassistant/components/almond/* @gcampax @balloob
homeassistant/components/alpha_vantage/* @fabaff
homeassistant/components/ambee/* @frenck
homeassistant/components/amberelectric/* @madpilot
homeassistant/components/ambiclimate/* @danielhiversen
homeassistant/components/ambient_station/* @bachya
homeassistant/components/amcrest/* @flacjacket
@@ -73,10 +75,10 @@ homeassistant/components/blink/* @fronzbot
homeassistant/components/blueprint/* @home-assistant/core
homeassistant/components/bmp280/* @belidzs
homeassistant/components/bmw_connected_drive/* @gerard33 @rikroe
homeassistant/components/bond/* @prystupa
homeassistant/components/bond/* @bdraco @prystupa @joshs85
homeassistant/components/bosch_shc/* @tschamm
homeassistant/components/braviatv/* @bieniu @Drafteed
homeassistant/components/broadlink/* @danielhiversen @felipediel
homeassistant/components/broadlink/* @danielhiversen @felipediel @L-I-Am
homeassistant/components/brother/* @bieniu
homeassistant/components/brunt/* @eavanvalkenburg
homeassistant/components/bsblan/* @liudger
@@ -104,6 +106,7 @@ homeassistant/components/coronavirus/* @home-assistant/core
homeassistant/components/counter/* @fabaff
homeassistant/components/cover/* @home-assistant/core
homeassistant/components/cpuspeed/* @fabaff
homeassistant/components/crownstone/* @Crownstone @RicArch97
homeassistant/components/cups/* @fabaff
homeassistant/components/daikin/* @fredrike
homeassistant/components/darksky/* @fabaff
@@ -111,7 +114,7 @@ homeassistant/components/debugpy/* @frenck
homeassistant/components/deconz/* @Kane610
homeassistant/components/delijn/* @bollewolle @Emilv2
homeassistant/components/demo/* @home-assistant/core
homeassistant/components/denonavr/* @scarface-4711 @starkillerOG
homeassistant/components/denonavr/* @ol-iver @starkillerOG
homeassistant/components/derivative/* @afaucogney
homeassistant/components/device_automation/* @home-assistant/core
homeassistant/components/devolo_home_control/* @2Fake @Shutgun
@@ -120,6 +123,7 @@ homeassistant/components/dhcp/* @bdraco
homeassistant/components/dht/* @thegardenmonkey
homeassistant/components/digital_ocean/* @fabaff
homeassistant/components/discogs/* @thibmaek
homeassistant/components/dlna_dmr/* @StevenLooman @chishm
homeassistant/components/doorbird/* @oblogic7 @bdraco
homeassistant/components/dsmr/* @Robbie1221 @frenck
homeassistant/components/dsmr_reader/* @depl0y
@@ -132,8 +136,9 @@ homeassistant/components/ecobee/* @marthoc
homeassistant/components/econet/* @vangorra @w1ll1am23
homeassistant/components/ecovacs/* @OverloadUT
homeassistant/components/edl21/* @mtdcr
homeassistant/components/efergy/* @tkdrob
homeassistant/components/egardia/* @jeroenterheerdt
homeassistant/components/eight_sleep/* @mezz64
homeassistant/components/eight_sleep/* @mezz64 @raman325
homeassistant/components/elgato/* @frenck
homeassistant/components/elkm1/* @gwww @bdraco
homeassistant/components/elv/* @majuss
@@ -146,13 +151,12 @@ homeassistant/components/enigma2/* @fbradyirl
homeassistant/components/enocean/* @bdurrer
homeassistant/components/enphase_envoy/* @gtdiehl
homeassistant/components/entur_public_transport/* @hfurubotten
homeassistant/components/environment_canada/* @michaeldavie
homeassistant/components/environment_canada/* @gwww @michaeldavie
homeassistant/components/ephember/* @ttroy50
homeassistant/components/epson/* @pszafer
homeassistant/components/epsonworkforce/* @ThaStealth
homeassistant/components/eq3btsmart/* @rytilahti
homeassistant/components/esphome/* @OttoWinter @jesserockz
homeassistant/components/essent/* @TheLastProject
homeassistant/components/evohome/* @zxdavb
homeassistant/components/ezviz/* @RenierM26 @baqs
homeassistant/components/faa_delays/* @ntilley905
@@ -169,6 +173,7 @@ homeassistant/components/flo/* @dmulcahey
homeassistant/components/flock/* @fabaff
homeassistant/components/flume/* @ChrisMandich @bdraco
homeassistant/components/flunearyou/* @bachya
homeassistant/components/flux_led/* @icemanch
homeassistant/components/forecast_solar/* @klaasnicolaas @frenck
homeassistant/components/forked_daapd/* @uvjustin
homeassistant/components/fortios/* @kimfrellsen
@@ -176,7 +181,7 @@ homeassistant/components/foscam/* @skgsergio
homeassistant/components/freebox/* @hacf-fr @Quentame
homeassistant/components/freedompro/* @stefano055415
homeassistant/components/fritz/* @mammuth @AaronDavidSchneider @chemelli74
homeassistant/components/fritzbox/* @mib1185
homeassistant/components/fritzbox/* @mib1185 @flabbamann
homeassistant/components/fronius/* @nielstron
homeassistant/components/frontend/* @home-assistant/frontend
homeassistant/components/garages_amsterdam/* @klaasnicolaas
@@ -222,9 +227,8 @@ homeassistant/components/homematic/* @pvizeli @danielperna84
homeassistant/components/honeywell/* @rdfurman
homeassistant/components/http/* @home-assistant/core
homeassistant/components/huawei_lte/* @scop @fphammerle
homeassistant/components/huawei_router/* @abmantis
homeassistant/components/hue/* @balloob @frenck
homeassistant/components/huisbaasje/* @denniss17
homeassistant/components/huisbaasje/* @dennisschroer
homeassistant/components/humidifier/* @home-assistant/core @Shulyaka
homeassistant/components/hunterdouglas_powerview/* @bdraco
homeassistant/components/hvv_departures/* @vigonotion
@@ -248,7 +252,7 @@ homeassistant/components/integration/* @dgomes
homeassistant/components/intent/* @home-assistant/core
homeassistant/components/intesishome/* @jnimmo
homeassistant/components/ios/* @robbiet480
homeassistant/components/iotawatt/* @gtdiehl
homeassistant/components/iotawatt/* @gtdiehl @jyavenard
homeassistant/components/iperf3/* @rohankapoorcom
homeassistant/components/ipma/* @dgomes @abmantis
homeassistant/components/ipp/* @ctalkington
@@ -263,7 +267,7 @@ homeassistant/components/kaiterra/* @Michsior14
homeassistant/components/keba/* @dannerph
homeassistant/components/keenetic_ndms2/* @foxel
homeassistant/components/kef/* @basnijholt
homeassistant/components/keyboard_remote/* @bendavid
homeassistant/components/keyboard_remote/* @bendavid @lanrat
homeassistant/components/kmtronic/* @dgomes
homeassistant/components/knx/* @Julius2342 @farmio @marvin-w
homeassistant/components/kodi/* @OnFreund @cgtobi
@@ -282,6 +286,7 @@ homeassistant/components/litterrobot/* @natekspencer
homeassistant/components/local_ip/* @issacg
homeassistant/components/logger/* @home-assistant/core
homeassistant/components/logi_circle/* @evanjd
homeassistant/components/lookin/* @ANMalko
homeassistant/components/loopenergy/* @pavoni
homeassistant/components/lovelace/* @home-assistant/frontend
homeassistant/components/luci/* @mzdrale
@@ -312,6 +317,7 @@ homeassistant/components/minecraft_server/* @elmurato
homeassistant/components/minio/* @tkislan
homeassistant/components/mobile_app/* @robbiet480
homeassistant/components/modbus/* @adamchengtkc @janiversen @vzahradnik
homeassistant/components/modem_callerid/* @tkdrob
homeassistant/components/modern_forms/* @wonderslug
homeassistant/components/monoprice/* @etsinko @OnFreund
homeassistant/components/moon/* @fabaff
@@ -330,11 +336,11 @@ homeassistant/components/nam/* @bieniu
homeassistant/components/nanoleaf/* @milanmeu
homeassistant/components/neato/* @dshokouhi @Santobert
homeassistant/components/nederlandse_spoorwegen/* @YarmoM
homeassistant/components/nello/* @pschmitt
homeassistant/components/ness_alarm/* @nickw444
homeassistant/components/nest/* @allenporter
homeassistant/components/netatmo/* @cgtobi
homeassistant/components/netdata/* @fabaff
homeassistant/components/netgear/* @hacf-fr @Quentame @starkillerOG
homeassistant/components/nexia/* @bdraco
homeassistant/components/nextbus/* @vividboarder
homeassistant/components/nextcloud/* @meichthys
@@ -354,10 +360,11 @@ homeassistant/components/nsw_rural_fire_service_feed/* @exxamalte
homeassistant/components/nuki/* @pschmitt @pvizeli @pree
homeassistant/components/numato/* @clssn
homeassistant/components/number/* @home-assistant/core @Shulyaka
homeassistant/components/nut/* @bdraco
homeassistant/components/nut/* @bdraco @ollo69
homeassistant/components/nws/* @MatthewFlamm
homeassistant/components/nzbget/* @chriscla
homeassistant/components/obihai/* @dshokouhi
homeassistant/components/octoprint/* @rfleming71
homeassistant/components/ohmconnect/* @robbiet480
homeassistant/components/ombi/* @larssont
homeassistant/components/omnilogic/* @oliver84 @djtimca @gentoosu
@@ -416,6 +423,7 @@ homeassistant/components/rainforest_eagle/* @gtdiehl @jcalbert
homeassistant/components/rainmachine/* @bachya
homeassistant/components/random/* @fabaff
homeassistant/components/recollect_waste/* @bachya
homeassistant/components/recorder/* @home-assistant/core
homeassistant/components/rejseplanen/* @DarkFox
homeassistant/components/renault/* @epenet
homeassistant/components/repetier/* @MTrab
@@ -490,7 +498,7 @@ homeassistant/components/srp_energy/* @briglx
homeassistant/components/starline/* @anonym-tsk
homeassistant/components/statistics/* @fabaff
homeassistant/components/stiebel_eltron/* @fucm
homeassistant/components/stookalert/* @fwestenberg
homeassistant/components/stookalert/* @fwestenberg @frenck
homeassistant/components/stream/* @hunterjm @uvjustin @allenporter
homeassistant/components/stt/* @pvizeli
homeassistant/components/subaru/* @G-Two
@@ -500,7 +508,7 @@ homeassistant/components/supla/* @mwegrzynek
homeassistant/components/surepetcare/* @benleb @danielhiversen
homeassistant/components/swiss_hydrological_data/* @fabaff
homeassistant/components/swiss_public_transport/* @fabaff
homeassistant/components/switchbot/* @danielhiversen
homeassistant/components/switchbot/* @danielhiversen @RenierM26
homeassistant/components/switcher_kis/* @tomerfi @thecode
homeassistant/components/switchmate/* @danielhiversen
homeassistant/components/syncthing/* @zhulik
@@ -518,7 +526,6 @@ homeassistant/components/tasmota/* @emontnemery
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
homeassistant/components/template/* @PhracturedBlue @tetienne @home-assistant/core
homeassistant/components/tesla/* @zabuldon @alandtse
homeassistant/components/tfiac/* @fredrike @mellado
homeassistant/components/thethingsnetwork/* @fabaff
homeassistant/components/threshold/* @fabaff
@@ -527,7 +534,6 @@ homeassistant/components/tile/* @bachya
homeassistant/components/time_date/* @fabaff
homeassistant/components/tmb/* @alemuro
homeassistant/components/todoist/* @boralyl
homeassistant/components/toon/* @frenck
homeassistant/components/totalconnect/* @austinmroczek
homeassistant/components/tplink/* @rytilahti @thegardenmonkey
homeassistant/components/traccar/* @ludeeus
@@ -538,7 +544,7 @@ homeassistant/components/trafikverket_train/* @endor-force
homeassistant/components/trafikverket_weatherstation/* @endor-force
homeassistant/components/transmission/* @engrbm87 @JPHutchins
homeassistant/components/tts/* @pvizeli
homeassistant/components/tuya/* @ollo69
homeassistant/components/tuya/* @Tuya @zlinoliver @METISU @frenck
homeassistant/components/twentemilieu/* @frenck
homeassistant/components/twinkly/* @dr1rrb
homeassistant/components/ubus/* @noltari
@@ -556,6 +562,7 @@ homeassistant/components/utility_meter/* @dgomes
homeassistant/components/vallox/* @andre-richter
homeassistant/components/velbus/* @Cereal2nd @brefra
homeassistant/components/velux/* @Julius2342
homeassistant/components/venstar/* @garbled1
homeassistant/components/vera/* @pavoni
homeassistant/components/verisure/* @frenck
homeassistant/components/versasense/* @flamm3blemuff1n
@@ -565,17 +572,19 @@ homeassistant/components/vicare/* @oischinger
homeassistant/components/vilfo/* @ManneW
homeassistant/components/vivotek/* @HarlemSquirrel
homeassistant/components/vizio/* @raman325
homeassistant/components/vlc_telnet/* @rodripf @dmcc
homeassistant/components/vlc_telnet/* @rodripf @dmcc @MartinHjelmare
homeassistant/components/volkszaehler/* @fabaff
homeassistant/components/volumio/* @OnFreund
homeassistant/components/wake_on_lan/* @ntilley905
homeassistant/components/wallbox/* @hesselonline
homeassistant/components/waqi/* @andrey-git
homeassistant/components/watson_tts/* @rutkai
homeassistant/components/watttime/* @bachya
homeassistant/components/weather/* @fabaff
homeassistant/components/webostv/* @bendavid @thecode
homeassistant/components/websocket_api/* @home-assistant/core
homeassistant/components/wemo/* @esev
homeassistant/components/whirlpool/* @abmantis
homeassistant/components/wiffi/* @mampfes
homeassistant/components/wilight/* @leofig-rj
homeassistant/components/wirelesstag/* @sergeymaysak

View File

@@ -2,11 +2,11 @@
"image": "homeassistant/{arch}-homeassistant",
"shadow_repository": "ghcr.io/home-assistant",
"build_from": {
"aarch64": "ghcr.io/home-assistant/aarch64-homeassistant-base:2021.08.0",
"armhf": "ghcr.io/home-assistant/armhf-homeassistant-base:2021.08.0",
"armv7": "ghcr.io/home-assistant/armv7-homeassistant-base:2021.08.0",
"amd64": "ghcr.io/home-assistant/amd64-homeassistant-base:2021.08.0",
"i386": "ghcr.io/home-assistant/i386-homeassistant-base:2021.08.0"
"aarch64": "ghcr.io/home-assistant/aarch64-homeassistant-base:2021.09.0",
"armhf": "ghcr.io/home-assistant/armhf-homeassistant-base:2021.09.0",
"armv7": "ghcr.io/home-assistant/armv7-homeassistant-base:2021.09.0",
"amd64": "ghcr.io/home-assistant/amd64-homeassistant-base:2021.09.0",
"i386": "ghcr.io/home-assistant/i386-homeassistant-base:2021.09.0"
},
"labels": {
"io.hass.type": "core",
@@ -19,4 +19,4 @@
"org.opencontainers.image.licenses": "Apache License 2.0"
},
"version_tag": true
}
}

View File

@@ -2,6 +2,7 @@
from __future__ import annotations
import argparse
import faulthandler
import os
import platform
import subprocess
@@ -10,6 +11,8 @@ import threading
from homeassistant.const import REQUIRED_PYTHON_VER, RESTART_EXIT_CODE, __version__
FAULT_LOG_FILENAME = "home-assistant.log.fault"
def validate_python() -> None:
"""Validate that the right Python version is running."""
@@ -132,16 +135,14 @@ def get_arguments() -> argparse.Namespace:
def daemonize() -> None:
"""Move current process to daemon process."""
# Create first fork
pid = os.fork()
if pid > 0:
if os.fork() > 0:
sys.exit(0)
# Decouple fork
os.setsid()
# Create second fork
pid = os.fork()
if pid > 0:
if os.fork() > 0:
sys.exit(0)
# redirect standard file descriptors to devnull
@@ -311,7 +312,15 @@ def main() -> int:
open_ui=args.open_ui,
)
exit_code = runner.run(runtime_conf)
fault_file_name = os.path.join(config_dir, FAULT_LOG_FILENAME)
with open(fault_file_name, mode="a", encoding="utf8") as fault_file:
faulthandler.enable(fault_file)
exit_code = runner.run(runtime_conf)
faulthandler.disable()
if os.path.getsize(fault_file_name) == 0:
os.remove(fault_file_name)
if exit_code == RESTART_EXIT_CODE and not args.runner:
try_to_restart()

View File

@@ -9,7 +9,7 @@ from typing import Any, Dict, Mapping, Optional, Tuple, cast
import jwt
from homeassistant import data_entry_flow
from homeassistant.core import HomeAssistant, callback
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.util import dt as dt_util
@@ -155,6 +155,7 @@ class AuthManager:
self._providers = providers
self._mfa_modules = mfa_modules
self.login_flow = AuthManagerFlowManager(hass, self)
self._revoke_callbacks: dict[str, list[CALLBACK_TYPE]] = {}
@property
def auth_providers(self) -> list[AuthProvider]:
@@ -275,6 +276,12 @@ class AuthManager:
self, user: models.User, credentials: models.Credentials
) -> None:
"""Link credentials to an existing user."""
linked_user = await self.async_get_user_by_credentials(credentials)
if linked_user == user:
return
if linked_user is not None:
raise ValueError("Credential is already linked to a user")
await self._store.async_link_user(user, credentials)
async def async_remove_user(self, user: models.User) -> None:
@@ -285,7 +292,7 @@ class AuthManager:
]
if tasks:
await asyncio.wait(tasks)
await asyncio.gather(*tasks)
await self._store.async_remove_user(user)
@@ -341,8 +348,7 @@ class AuthManager:
"System generated users cannot enable multi-factor auth module."
)
module = self.get_auth_mfa_module(mfa_module_id)
if module is None:
if (module := self.get_auth_mfa_module(mfa_module_id)) is None:
raise ValueError(f"Unable find multi-factor auth module: {mfa_module_id}")
await module.async_setup_user(user.id, data)
@@ -356,8 +362,7 @@ class AuthManager:
"System generated users cannot disable multi-factor auth module."
)
module = self.get_auth_mfa_module(mfa_module_id)
if module is None:
if (module := self.get_auth_mfa_module(mfa_module_id)) is None:
raise ValueError(f"Unable find multi-factor auth module: {mfa_module_id}")
await module.async_depose_user(user.id)
@@ -448,6 +453,28 @@ class AuthManager:
"""Delete a refresh token."""
await self._store.async_remove_refresh_token(refresh_token)
callbacks = self._revoke_callbacks.pop(refresh_token.id, [])
for revoke_callback in callbacks:
revoke_callback()
@callback
def async_register_revoke_token_callback(
self, refresh_token_id: str, revoke_callback: CALLBACK_TYPE
) -> CALLBACK_TYPE:
"""Register a callback to be called when the refresh token id is revoked."""
if refresh_token_id not in self._revoke_callbacks:
self._revoke_callbacks[refresh_token_id] = []
callbacks = self._revoke_callbacks[refresh_token_id]
callbacks.append(revoke_callback)
@callback
def unregister() -> None:
if revoke_callback in callbacks:
callbacks.remove(revoke_callback)
return unregister
@callback
def async_create_access_token(
self, refresh_token: models.RefreshToken, remote_ip: str | None = None
@@ -466,7 +493,7 @@ class AuthManager:
},
refresh_token.jwt_key,
algorithm="HS256",
).decode()
)
@callback
def _async_resolve_provider(
@@ -498,8 +525,7 @@ class AuthManager:
Will raise InvalidAuthError on errors.
"""
provider = self._async_resolve_provider(refresh_token)
if provider:
if provider := self._async_resolve_provider(refresh_token):
provider.async_validate_refresh_token(refresh_token, remote_ip)
async def async_validate_access_token(
@@ -507,7 +533,9 @@ class AuthManager:
) -> models.RefreshToken | None:
"""Return refresh token if an access token is valid."""
try:
unverif_claims = jwt.decode(token, verify=False)
unverif_claims = jwt.decode(
token, algorithms=["HS256"], options={"verify_signature": False}
)
except jwt.InvalidTokenError:
return None

View File

@@ -96,8 +96,7 @@ class AuthStore:
groups = []
for group_id in group_ids or []:
group = self._groups.get(group_id)
if group is None:
if (group := self._groups.get(group_id)) is None:
raise ValueError(f"Invalid group specified {group_id}")
groups.append(group)
@@ -160,8 +159,7 @@ class AuthStore:
if group_ids is not None:
groups = []
for grid in group_ids:
group = self._groups.get(grid)
if group is None:
if (group := self._groups.get(grid)) is None:
raise ValueError("Invalid group specified.")
groups.append(group)
@@ -446,16 +444,14 @@ class AuthStore:
)
continue
token_type = rt_dict.get("token_type")
if token_type is None:
if (token_type := rt_dict.get("token_type")) is None:
if rt_dict["client_id"] is None:
token_type = models.TOKEN_TYPE_SYSTEM
else:
token_type = models.TOKEN_TYPE_NORMAL
# old refresh_token don't have last_used_at (pre-0.78)
last_used_at_str = rt_dict.get("last_used_at")
if last_used_at_str:
if last_used_at_str := rt_dict.get("last_used_at"):
last_used_at = dt_util.parse_datetime(last_used_at_str)
else:
last_used_at = None

View File

@@ -38,12 +38,12 @@ class InsecureExampleModule(MultiFactorAuthModule):
@property
def input_schema(self) -> vol.Schema:
"""Validate login flow input data."""
return vol.Schema({"pin": str})
return vol.Schema({vol.Required("pin"): str})
@property
def setup_schema(self) -> vol.Schema:
"""Validate async_setup_user input data."""
return vol.Schema({"pin": str})
return vol.Schema({vol.Required("pin"): str})
async def async_setup_flow(self, user_id: str) -> SetupFlow:
"""Return a data entry flow handler for setup module.

View File

@@ -25,7 +25,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.3.0"]
REQUIREMENTS = ["pyotp==2.6.0"]
CONF_MESSAGE = "message"
@@ -56,10 +56,10 @@ def _generate_secret() -> str:
def _generate_random() -> int:
"""Generate a 8 digit number."""
"""Generate a 32 digit number."""
import pyotp # pylint: disable=import-outside-toplevel
return int(pyotp.random_base32(length=8, chars=list("1234567890")))
return int(pyotp.random_base32(length=32, chars=list("1234567890")))
def _generate_otp(secret: str, count: int) -> str:
@@ -110,7 +110,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
@property
def input_schema(self) -> vol.Schema:
"""Validate login flow input data."""
return vol.Schema({INPUT_FIELD_CODE: str})
return vol.Schema({vol.Required(INPUT_FIELD_CODE): str})
async def _async_load(self) -> None:
"""Load stored data."""
@@ -118,9 +118,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
if self._user_settings is not None:
return
data = await self._user_store.async_load()
if data is None:
if (data := await self._user_store.async_load()) is None:
data = {STORAGE_USERS: {}}
self._user_settings = {
@@ -207,8 +205,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
await self._async_load()
assert self._user_settings is not None
notify_setting = self._user_settings.get(user_id)
if notify_setting is None:
if (notify_setting := self._user_settings.get(user_id)) is None:
return False
# user_input has been validate in caller
@@ -225,8 +222,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
await self._async_load()
assert self._user_settings is not None
notify_setting = self._user_settings.get(user_id)
if notify_setting is None:
if (notify_setting := self._user_settings.get(user_id)) is None:
raise ValueError("Cannot find user_id")
def generate_secret_and_one_time_password() -> str:
@@ -249,8 +245,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
await self._async_load()
assert self._user_settings is not None
notify_setting = self._user_settings.get(user_id)
if notify_setting is None:
if (notify_setting := self._user_settings.get(user_id)) is None:
_LOGGER.error("Cannot find user %s", user_id)
return

View File

@@ -18,7 +18,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.3.0", "PyQRCode==1.2.1"]
REQUIREMENTS = ["pyotp==2.6.0", "PyQRCode==1.2.1"]
CONFIG_SCHEMA = MULTI_FACTOR_AUTH_MODULE_SCHEMA.extend({}, extra=vol.PREVENT_EXTRA)
@@ -84,7 +84,7 @@ class TotpAuthModule(MultiFactorAuthModule):
@property
def input_schema(self) -> vol.Schema:
"""Validate login flow input data."""
return vol.Schema({INPUT_FIELD_CODE: str})
return vol.Schema({vol.Required(INPUT_FIELD_CODE): str})
async def _async_load(self) -> None:
"""Load stored data."""
@@ -92,9 +92,7 @@ class TotpAuthModule(MultiFactorAuthModule):
if self._users is not None:
return
data = await self._user_store.async_load()
if data is None:
if (data := await self._user_store.async_load()) is None:
data = {STORAGE_USERS: {}}
self._users = data.get(STORAGE_USERS, {})
@@ -163,8 +161,7 @@ class TotpAuthModule(MultiFactorAuthModule):
"""Validate two factor authentication code."""
import pyotp # pylint: disable=import-outside-toplevel
ota_secret = self._users.get(user_id) # type: ignore
if ota_secret is None:
if (ota_secret := self._users.get(user_id)) is None: # type: ignore
# even we cannot find user, we still do verify
# to make timing the same as if user was found.
pyotp.TOTP(DUMMY_SECRET).verify(code, valid_window=1)
@@ -184,7 +181,7 @@ class TotpSetupFlow(SetupFlow):
# to fix typing complaint
self._auth_module: TotpAuthModule = auth_module
self._user = user
self._ota_secret: str | None = None
self._ota_secret: str = ""
self._url = None # type Optional[str]
self._image = None # type Optional[str]

View File

@@ -1,8 +1,8 @@
"""Permissions for Home Assistant."""
from __future__ import annotations
import logging
from typing import Any, Callable
from collections.abc import Callable
from typing import Any
import voluptuous as vol
@@ -15,8 +15,6 @@ from .util import test_all
POLICY_SCHEMA = vol.Schema({vol.Optional(CAT_ENTITIES): ENTITY_POLICY_SCHEMA})
_LOGGER = logging.getLogger(__name__)
class AbstractPermissions:
"""Default permissions class."""
@@ -33,9 +31,7 @@ class AbstractPermissions:
def check_entity(self, entity_id: str, key: str) -> bool:
"""Check if we can access entity."""
entity_func = self._cached_entity_func
if entity_func is None:
if (entity_func := self._cached_entity_func) is None:
entity_func = self._cached_entity_func = self._entity_func()
return entity_func(entity_id, key)

View File

@@ -2,7 +2,7 @@
from __future__ import annotations
from collections import OrderedDict
from typing import Callable
from collections.abc import Callable
import voluptuous as vol

View File

@@ -72,8 +72,7 @@ def compile_policy(
def apply_policy_funcs(object_id: str, key: str) -> bool:
"""Apply several policy functions."""
for func in funcs:
result = func(object_id, key)
if result is not None:
if (result := func(object_id, key)) is not None:
return result
return False

View File

@@ -169,9 +169,7 @@ async def load_auth_provider_module(
if hass.config.skip_pip or not hasattr(module, "REQUIREMENTS"):
return module
processed = hass.data.get(DATA_REQS)
if processed is None:
if (processed := hass.data.get(DATA_REQS)) is None:
processed = hass.data[DATA_REQS] = set()
elif provider in processed:
return module

View File

@@ -2,7 +2,6 @@
from __future__ import annotations
import asyncio
import collections
from collections.abc import Mapping
import logging
import os
@@ -148,10 +147,13 @@ class CommandLineLoginFlow(LoginFlow):
user_input.pop("password")
return await self.async_finish(user_input)
schema: dict[str, type] = collections.OrderedDict()
schema["username"] = str
schema["password"] = str
return self.async_show_form(
step_id="init", data_schema=vol.Schema(schema), errors=errors
step_id="init",
data_schema=vol.Schema(
{
vol.Required("username"): str,
vol.Required("password"): str,
}
),
errors=errors,
)

View File

@@ -3,7 +3,6 @@ from __future__ import annotations
import asyncio
import base64
from collections import OrderedDict
from collections.abc import Mapping
import logging
from typing import Any, cast
@@ -82,9 +81,7 @@ class Data:
async def async_load(self) -> None:
"""Load stored data."""
data = await self._store.async_load()
if data is None:
if (data := await self._store.async_load()) is None:
data = {"users": []}
seen: set[str] = set()
@@ -93,9 +90,7 @@ class Data:
username = user["username"]
# check if we have duplicates
folded = username.casefold()
if folded in seen:
if (folded := username.casefold()) in seen:
self.is_legacy = True
logging.getLogger(__name__).warning(
@@ -339,10 +334,13 @@ class HassLoginFlow(LoginFlow):
user_input.pop("password")
return await self.async_finish(user_input)
schema: dict[str, type] = OrderedDict()
schema["username"] = str
schema["password"] = str
return self.async_show_form(
step_id="init", data_schema=vol.Schema(schema), errors=errors
step_id="init",
data_schema=vol.Schema(
{
vol.Required("username"): str,
vol.Required("password"): str,
}
),
errors=errors,
)

View File

@@ -1,7 +1,6 @@
"""Example auth provider."""
from __future__ import annotations
from collections import OrderedDict
from collections.abc import Mapping
import hmac
from typing import Any, cast
@@ -117,10 +116,13 @@ class ExampleLoginFlow(LoginFlow):
user_input.pop("password")
return await self.async_finish(user_input)
schema: dict[str, type] = OrderedDict()
schema["username"] = str
schema["password"] = str
return self.async_show_form(
step_id="init", data_schema=vol.Schema(schema), errors=errors
step_id="init",
data_schema=vol.Schema(
{
vol.Required("username"): str,
vol.Required("password"): str,
}
),
errors=errors,
)

View File

@@ -102,5 +102,7 @@ class LegacyLoginFlow(LoginFlow):
return await self.async_finish({})
return self.async_show_form(
step_id="init", data_schema=vol.Schema({"password": str}), errors=errors
step_id="init",
data_schema=vol.Schema({vol.Required("password"): str}),
errors=errors,
)

View File

@@ -244,5 +244,7 @@ class TrustedNetworksLoginFlow(LoginFlow):
return self.async_show_form(
step_id="init",
data_schema=vol.Schema({"user": vol.In(self._available_users)}),
data_schema=vol.Schema(
{vol.Required("user"): vol.In(self._available_users)}
),
)

View File

@@ -17,7 +17,10 @@ import yarl
from homeassistant import config as conf_util, config_entries, core, loader
from homeassistant.components import http
from homeassistant.const import REQUIRED_NEXT_PYTHON_DATE, REQUIRED_NEXT_PYTHON_VER
from homeassistant.const import (
REQUIRED_NEXT_PYTHON_HA_RELEASE,
REQUIRED_NEXT_PYTHON_VER,
)
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import area_registry, device_registry, entity_registry
from homeassistant.helpers.dispatcher import async_dispatcher_send
@@ -109,9 +112,8 @@ async def async_setup_hass(
config_dict = None
basic_setup_success = False
safe_mode = runtime_config.safe_mode
if not safe_mode:
if not (safe_mode := runtime_config.safe_mode):
await hass.async_add_executor_job(conf_util.process_ha_config_upgrade, hass)
try:
@@ -241,11 +243,14 @@ async def async_from_config_dict(
stop = monotonic()
_LOGGER.info("Home Assistant initialized in %.2fs", stop - start)
if REQUIRED_NEXT_PYTHON_DATE and sys.version_info[:3] < REQUIRED_NEXT_PYTHON_VER:
if (
REQUIRED_NEXT_PYTHON_HA_RELEASE
and sys.version_info[:3] < REQUIRED_NEXT_PYTHON_VER
):
msg = (
"Support for the running Python version "
f"{'.'.join(str(x) for x in sys.version_info[:3])} is deprecated and will "
f"be removed in the first release after {REQUIRED_NEXT_PYTHON_DATE}. "
f"be removed in Home Assistant {REQUIRED_NEXT_PYTHON_HA_RELEASE}. "
"Please upgrade Python to "
f"{'.'.join(str(x) for x in REQUIRED_NEXT_PYTHON_VER)} or "
"higher."
@@ -368,8 +373,7 @@ async def async_mount_local_lib_path(config_dir: str) -> str:
This function is a coroutine.
"""
deps_dir = os.path.join(config_dir, "deps")
lib_dir = await async_get_user_site(deps_dir)
if lib_dir not in sys.path:
if (lib_dir := await async_get_user_site(deps_dir)) not in sys.path:
sys.path.insert(0, lib_dir)
return deps_dir
@@ -494,17 +498,13 @@ async def _async_set_up_integrations(
_LOGGER.info("Domains to be set up: %s", domains_to_setup)
logging_domains = domains_to_setup & LOGGING_INTEGRATIONS
# Load logging as soon as possible
if logging_domains:
if logging_domains := domains_to_setup & LOGGING_INTEGRATIONS:
_LOGGER.info("Setting up logging: %s", logging_domains)
await async_setup_multi_components(hass, logging_domains, config)
# Start up debuggers. Start these first in case they want to wait.
debuggers = domains_to_setup & DEBUGGER_INTEGRATIONS
if debuggers:
if debuggers := domains_to_setup & DEBUGGER_INTEGRATIONS:
_LOGGER.debug("Setting up debuggers: %s", debuggers)
await async_setup_multi_components(hass, debuggers, config)
@@ -524,9 +524,7 @@ async def _async_set_up_integrations(
stage_1_domains.add(domain)
dep_itg = integration_cache.get(domain)
if dep_itg is None:
if (dep_itg := integration_cache.get(domain)) is None:
continue
deps_promotion.update(dep_itg.all_dependencies)
@@ -564,6 +562,14 @@ async def _async_set_up_integrations(
except asyncio.TimeoutError:
_LOGGER.warning("Setup timed out for stage 2 - moving forward")
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
try:
async with hass.timeout.async_timeout(WRAP_UP_TIMEOUT, cool_down=COOLDOWN_TIME):
await hass.async_block_till_done()
except asyncio.TimeoutError:
_LOGGER.warning("Setup timed out for bootstrap - moving forward")
watch_task.cancel()
async_dispatcher_send(hass, SIGNAL_BOOTSTRAP_INTEGRATONS, {})
@@ -576,11 +582,3 @@ async def _async_set_up_integrations(
)
},
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
try:
async with hass.timeout.async_timeout(WRAP_UP_TIMEOUT, cool_down=COOLDOWN_TIME):
await hass.async_block_till_done()
except asyncio.TimeoutError:
_LOGGER.warning("Setup timed out for bootstrap - moving forward")

View File

@@ -20,7 +20,7 @@ from homeassistant.const import (
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity import DeviceInfo, Entity
from .const import ATTRIBUTION, DEFAULT_CACHEDB, DOMAIN, LOGGER
@@ -322,14 +322,14 @@ class AbodeDevice(AbodeEntity):
}
@property
def device_info(self):
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return {
"identifiers": {(DOMAIN, self._device.device_id)},
"manufacturer": "Abode",
"name": self._device.name,
"device_type": self._device.type,
}
return DeviceInfo(
identifiers={(DOMAIN, self._device.device_id)},
manufacturer="Abode",
model=self._device.type,
name=self._device.name,
)
def _update_callback(self, device):
"""Update the device state."""

View File

@@ -1,4 +1,6 @@
"""Config flow for the Abode Security System component."""
from http import HTTPStatus
from abodepy import Abode
from abodepy.exceptions import AbodeAuthenticationException, AbodeException
from abodepy.helpers.errors import MFA_CODE_REQUIRED
@@ -6,7 +8,7 @@ from requests.exceptions import ConnectTimeout, HTTPError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, HTTP_BAD_REQUEST
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from .const import DEFAULT_CACHEDB, DOMAIN, LOGGER
@@ -51,7 +53,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
LOGGER.error("Unable to connect to Abode: %s", ex)
if ex.errcode == HTTP_BAD_REQUEST:
if ex.errcode == HTTPStatus.BAD_REQUEST:
errors = {"base": "invalid_auth"}
else:

View File

@@ -1,9 +1,19 @@
{
"config": {
"abort": {
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0442\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435 \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e",
"single_instance_allowed": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Abode."
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
},
"step": {
"reauth_confirm": {
"data": {
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
"username": "Email"
}
},
"user": {
"data": {
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "Az \u00fajrahiteles\u00edt\u00e9s sikeres volt",
"reauth_successful": "Az \u00fajrahiteles\u00edt\u00e9s sikeres volt.",
"single_instance_allowed": "M\u00e1r konfigur\u00e1lva van. Csak egy konfigur\u00e1ci\u00f3 lehets\u00e9ges."
},
"error": {

View File

@@ -2,7 +2,7 @@
"domain": "accuweather",
"name": "AccuWeather",
"documentation": "https://www.home-assistant.io/integrations/accuweather/",
"requirements": ["accuweather==0.2.0"],
"requirements": ["accuweather==0.3.0"],
"codeowners": ["@bieniu"],
"config_flow": true,
"quality_scale": "platinum",

View File

@@ -5,8 +5,9 @@ from typing import Any, cast
from homeassistant.components.sensor import SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_ATTRIBUTION, CONF_NAME, DEVICE_CLASS_TEMPERATURE
from homeassistant.const import CONF_NAME, DEVICE_CLASS_TEMPERATURE
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -59,6 +60,7 @@ async def async_setup_entry(
class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
"""Define an AccuWeather entity."""
_attr_attribution = ATTRIBUTION
coordinator: AccuWeatherDataUpdateCoordinator
entity_description: AccuWeatherSensorDescription
@@ -75,7 +77,7 @@ class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
self._sensor_data = _get_sensor_data(
coordinator.data, forecast_day, description.key
)
self._attrs = {ATTR_ATTRIBUTION: ATTRIBUTION}
self._attrs: dict[str, Any] = {}
if forecast_day is not None:
self._attr_name = f"{name} {description.name} {forecast_day}d"
self._attr_unique_id = (
@@ -92,12 +94,12 @@ class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
else:
self._unit_system = API_IMPERIAL
self._attr_native_unit_of_measurement = description.unit_imperial
self._attr_device_info = {
"identifiers": {(DOMAIN, coordinator.location_key)},
"name": NAME,
"manufacturer": MANUFACTURER,
"entry_type": "service",
}
self._attr_device_info = DeviceInfo(
entry_type="service",
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
)
self.forecast_day = forecast_day
@property

View File

@@ -0,0 +1,7 @@
{
"config": {
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
}
}
}

View File

@@ -6,7 +6,7 @@
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"invalid_api_key": "\u00c9rv\u00e9nytelen API kulcs",
"requests_exceeded": "T\u00fall\u00e9pt\u00e9k az Accuweather API-hoz beny\u00fajtott k\u00e9relmek megengedett sz\u00e1m\u00e1t. Meg kell v\u00e1rnia vagy m\u00f3dos\u00edtania kell az API-kulcsot."
"requests_exceeded": "Accuweather API-hoz enged\u00e9lyezett lek\u00e9r\u00e9sek sz\u00e1ma t\u00fal lett l\u00e9pve. Meg kell v\u00e1rnia m\u00edg a tilt\u00e1s lej\u00e1r vagy m\u00f3dos\u00edtania kell az API-kulcsot."
},
"step": {
"user": {

View File

@@ -16,7 +16,7 @@
"longitude": "\u7d93\u5ea6",
"name": "\u540d\u7a31"
},
"description": "\u5047\u5982\u4f60\u9700\u8981\u5354\u52a9\u9032\u884c\u8a2d\u5b9a\uff0c\u8acb\u53c3\u95b1\uff1ahttps://www.home-assistant.io/integrations/accuweather/\n\n\u67d0\u4e9b\u50b3\u611f\u5668\u9810\u8a2d\u70ba\u672a\u555f\u7528\uff0c\u53ef\u4ee5\u65bc\u6574\u5408\u8a2d\u5b9a\u4e2d\u555f\u7528\u9019\u4e9b\u5be6\u9ad4\u3002\u5929\u6c23\u9810\u5831\u9810\u8a2d\u672a\u958b\u555f\u3002\u53ef\u4ee5\u65bc\u6574\u5408\u9078\u9805\u4e2d\u958b\u555f\u3002",
"description": "\u5047\u5982\u4f60\u9700\u8981\u5354\u52a9\u9032\u884c\u8a2d\u5b9a\uff0c\u8acb\u53c3\u95b1\uff1ahttps://www.home-assistant.io/integrations/accuweather/\n\n\u67d0\u4e9b\u611f\u6e2c\u5668\u9810\u8a2d\u70ba\u672a\u555f\u7528\uff0c\u53ef\u4ee5\u65bc\u6574\u5408\u8a2d\u5b9a\u4e2d\u555f\u7528\u9019\u4e9b\u5be6\u9ad4\u3002\u5929\u6c23\u9810\u5831\u9810\u8a2d\u672a\u958b\u555f\u3002\u53ef\u4ee5\u65bc\u6574\u5408\u9078\u9805\u4e2d\u958b\u555f\u3002",
"title": "AccuWeather"
}
}

View File

@@ -19,6 +19,7 @@ from homeassistant.components.weather import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_NAME, TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.dt import utc_from_timestamp
@@ -66,12 +67,12 @@ class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
TEMP_CELSIUS if coordinator.is_metric else TEMP_FAHRENHEIT
)
self._attr_attribution = ATTRIBUTION
self._attr_device_info = {
"identifiers": {(DOMAIN, coordinator.location_key)},
"name": NAME,
"manufacturer": MANUFACTURER,
"entry_type": "service",
}
self._attr_device_info = DeviceInfo(
entry_type="service",
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
)
@property
def condition(self) -> str | None:

View File

@@ -129,8 +129,7 @@ class AcerSwitch(SwitchEntity):
self._attr_available = False
for key in self._attributes:
msg = CMD_DICT.get(key)
if msg:
if msg := CMD_DICT.get(key):
awns = self._write_read_format(msg)
self._attributes[key] = awns
self._attr_extra_state_attributes = self._attributes

View File

@@ -77,11 +77,11 @@ class AcmedaBase(entity.Entity):
return self.roller.name
@property
def device_info(self):
def device_info(self) -> entity.DeviceInfo:
"""Return the device info."""
return {
"identifiers": {(DOMAIN, self.unique_id)},
"name": self.roller.name,
"manufacturer": "Rollease Acmeda",
"via_device": (DOMAIN, self.roller.hub.id),
}
return entity.DeviceInfo(
identifiers={(DOMAIN, self.unique_id)},
manufacturer="Rollease Acmeda",
name=self.roller.name,
via_device=(DOMAIN, self.roller.hub.id),
)

View File

@@ -1,7 +1,6 @@
"""Support for Adax wifi-enabled home heaters."""
from __future__ import annotations
import logging
from typing import Any
from adax import Adax
@@ -21,11 +20,10 @@ 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.entity_platform import AddEntitiesCallback
from .const import ACCOUNT_ID
_LOGGER = logging.getLogger(__name__)
from .const import ACCOUNT_ID, DOMAIN
async def async_setup_entry(
@@ -41,8 +39,11 @@ async def async_setup_entry(
)
async_add_entities(
AdaxDevice(room, adax_data_handler)
for room in await adax_data_handler.get_rooms()
(
AdaxDevice(room, adax_data_handler)
for room in await adax_data_handler.get_rooms()
),
True,
)
@@ -58,69 +59,51 @@ class AdaxDevice(ClimateEntity):
def __init__(self, heater_data: dict[str, Any], adax_data_handler: Adax) -> None:
"""Initialize the heater."""
self._heater_data = heater_data
self._device_id = heater_data["id"]
self._adax_data_handler = adax_data_handler
self._attr_unique_id = f"{heater_data['homeId']}_{heater_data['id']}"
@property
def name(self) -> str:
"""Return the name of the device, if any."""
return self._heater_data["name"]
@property
def hvac_mode(self) -> str:
"""Return hvac operation ie. heat, cool mode."""
if self._heater_data["heatingEnabled"]:
return HVAC_MODE_HEAT
return HVAC_MODE_OFF
@property
def icon(self) -> str:
"""Return nice icon for heater."""
if self.hvac_mode == HVAC_MODE_HEAT:
return "mdi:radiator"
return "mdi:radiator-off"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, heater_data["id"])},
name=self.name,
manufacturer="Adax",
)
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
"""Set hvac mode."""
if hvac_mode == HVAC_MODE_HEAT:
temperature = max(
self.min_temp, self._heater_data.get("targetTemperature", self.min_temp)
)
temperature = max(self.min_temp, self.target_temperature or self.min_temp)
await self._adax_data_handler.set_room_target_temperature(
self._heater_data["id"], temperature, True
self._device_id, temperature, True
)
elif hvac_mode == HVAC_MODE_OFF:
await self._adax_data_handler.set_room_target_temperature(
self._heater_data["id"], self.min_temp, False
self._device_id, self.min_temp, False
)
else:
return
await self._adax_data_handler.update()
@property
def current_temperature(self) -> float | None:
"""Return the current temperature."""
return self._heater_data.get("temperature")
@property
def target_temperature(self) -> int | None:
"""Return the temperature we try to reach."""
return self._heater_data.get("targetTemperature")
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set new target temperature."""
temperature = kwargs.get(ATTR_TEMPERATURE)
if temperature is None:
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
return
await self._adax_data_handler.set_room_target_temperature(
self._heater_data["id"], temperature, True
self._device_id, temperature, True
)
async def async_update(self) -> None:
"""Get the latest data."""
for room in await self._adax_data_handler.get_rooms():
if room["id"] == self._heater_data["id"]:
self._heater_data = room
return
if room["id"] != self._device_id:
continue
self._attr_name = room["name"]
self._attr_current_temperature = room.get("temperature")
self._attr_target_temperature = room.get("targetTemperature")
if room["heatingEnabled"]:
self._attr_hvac_mode = HVAC_MODE_HEAT
self._attr_icon = "mdi:radiator"
else:
self._attr_hvac_mode = HVAC_MODE_OFF
self._attr_icon = "mdi:radiator-off"
return

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435"
},
"step": {
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"password": "\u041f\u0430\u0440\u043e\u043b\u0430"
}
}
}
}
}

View File

@@ -1,10 +1,17 @@
{
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado"
},
"error": {
"cannot_connect": "No se pudo conectar",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida"
},
"step": {
"user": {
"data": {
"account_id": "ID de la cuenta",
"host": "Anfitri\u00f3n",
"host": "Host",
"password": "Contrase\u00f1a"
}
}

View File

@@ -11,7 +11,7 @@
"user": {
"data": {
"account_id": "Fi\u00f3k ID",
"host": "Gazdag\u00e9p",
"host": "C\u00edm",
"password": "Jelsz\u00f3"
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Perangkat sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung",
"invalid_auth": "Autentikasi tidak valid"
},
"step": {
"user": {
"data": {
"account_id": "ID Akun",
"host": "Host",
"password": "Kata Sandi"
}
}
}
}
}

View File

@@ -196,14 +196,14 @@ class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
@property
def device_info(self) -> DeviceInfo:
"""Return device information about this AdGuard Home instance."""
return {
"identifiers": {
return DeviceInfo(
entry_type="service",
identifiers={
(DOMAIN, self.adguard.host, self.adguard.port, self.adguard.base_path) # type: ignore
},
"name": "AdGuard Home",
"manufacturer": "AdGuard Team",
"sw_version": self.hass.data[DOMAIN][self._entry.entry_id].get(
manufacturer="AdGuard Team",
name="AdGuard Home",
sw_version=self.hass.data[DOMAIN][self._entry.entry_id].get(
DATA_ADGUARD_VERSION
),
"entry_type": "service",
}
)

View File

@@ -3,6 +3,9 @@
"abort": {
"existing_instance_updated": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f."
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
},
"step": {
"hassio_confirm": {
"description": "\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u0442\u0435 Home Assistant \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430 \u0441 AdGuard Home, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u043e\u0442 Supervisor \u0434\u043e\u0431\u0430\u0432\u043a\u0430\u0442\u0430: {addon} ?",
@@ -10,7 +13,9 @@
},
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
"port": "\u041f\u043e\u0440\u0442",
"ssl": "AdGuard Home \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442",
"username": "\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435",
"verify_ssl": "AdGuard Home \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0430\u0434\u0435\u0436\u0434\u0435\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442"

View File

@@ -7,6 +7,9 @@
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4"
},
"step": {
"hassio_confirm": {
"title": "AdGuard Home \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e8\u05d7\u05d1\u05ea Assistant Assistant"
},
"user": {
"data": {
"host": "\u05de\u05d0\u05e8\u05d7",

View File

@@ -9,12 +9,12 @@
},
"step": {
"hassio_confirm": {
"description": "Be szeretn\u00e9 \u00e1ll\u00edtani a Home Assistant-ot, hogy csatlakozzon az AdGuard Home-hoz, amelyet a kieg\u00e9sz\u00edt\u0151 biztos\u00edt: {addon} ?",
"description": "Szeretn\u00e9 be\u00e1ll\u00edtani Home Assistantot AdGuard Home-hoz val\u00f3 csatlakoz\u00e1shoz, {addon} kieg\u00e9sz\u00edt\u0151 \u00e1ltal?",
"title": "Az AdGuard Home a Home Assistant kieg\u00e9sz\u00edt\u0151 seg\u00edts\u00e9g\u00e9vel"
},
"user": {
"data": {
"host": "Hoszt",
"host": "C\u00edm",
"password": "Jelsz\u00f3",
"port": "Port",
"ssl": "SSL tan\u00fas\u00edtv\u00e1ny haszn\u00e1lata",

View File

@@ -9,7 +9,7 @@
},
"step": {
"hassio_confirm": {
"description": "Ingin mengonfigurasi Home Assistant untuk terhubung ke AdGuard Home yang disediakan oleh add-on Supervisor {addon}?",
"description": "Ingin mengonfigurasi Home Assistant untuk terhubung ke AdGuard Home yang disediakan oleh add-on: {addon}?",
"title": "AdGuard Home melalui add-on Home Assistant"
},
"user": {

View File

@@ -12,7 +12,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
ADVANTAGE_AIR_SYNC_INTERVAL = 15
PLATFORMS = ["climate", "cover", "binary_sensor", "sensor", "switch"]
PLATFORMS = ["binary_sensor", "climate", "cover", "select", "sensor", "switch"]
_LOGGER = logging.getLogger(__name__)

View File

@@ -5,6 +5,7 @@ from homeassistant.components.binary_sensor import (
DEVICE_CLASS_PROBLEM,
BinarySensorEntity,
)
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
@@ -34,6 +35,7 @@ class AdvantageAirZoneFilter(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Filter."""
_attr_device_class = DEVICE_CLASS_PROBLEM
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key):
"""Initialize an Advantage Air Filter."""
@@ -65,13 +67,14 @@ class AdvantageAirZoneMotion(AdvantageAirEntity, BinarySensorEntity):
@property
def is_on(self):
"""Return if motion is detect."""
return self._zone["motion"]
return self._zone["motion"] == 20
class AdvantageAirZoneMyZone(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Zone MyZone."""
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone MyZone."""

View File

@@ -1,5 +1,6 @@
"""Advantage Air parent entity class."""
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
@@ -14,13 +15,13 @@ class AdvantageAirEntity(CoordinatorEntity):
self.async_change = instance["async_change"]
self.ac_key = ac_key
self.zone_key = zone_key
self._attr_device_info = {
"identifiers": {(DOMAIN, self.coordinator.data["system"]["rid"])},
"name": self.coordinator.data["system"]["name"],
"manufacturer": "Advantage Air",
"model": self.coordinator.data["system"]["sysType"],
"sw_version": self.coordinator.data["system"]["myAppRev"],
}
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, self.coordinator.data["system"]["rid"])},
manufacturer="Advantage Air",
model=self.coordinator.data["system"]["sysType"],
name=self.coordinator.data["system"]["name"],
sw_version=self.coordinator.data["system"]["myAppRev"],
)
@property
def _ac(self):

View File

@@ -0,0 +1,53 @@
"""Select platform for Advantage Air integration."""
from homeassistant.components.select import SelectEntity
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
ADVANTAGE_AIR_INACTIVE = "Inactive"
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir toggle platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key in instance["coordinator"].data["aircons"]:
entities.append(AdvantageAirMyZone(instance, ac_key))
async_add_entities(entities)
class AdvantageAirMyZone(AdvantageAirEntity, SelectEntity):
"""Representation of Advantage Air MyZone control."""
_attr_icon = "mdi:home-thermometer"
_attr_options = [ADVANTAGE_AIR_INACTIVE]
_number_to_name = {0: ADVANTAGE_AIR_INACTIVE}
_name_to_number = {ADVANTAGE_AIR_INACTIVE: 0}
def __init__(self, instance, ac_key):
"""Initialize an Advantage Air MyZone control."""
super().__init__(instance, ac_key)
self._attr_name = f'{self._ac["name"]} MyZone'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-myzone'
)
for zone in instance["coordinator"].data["aircons"][ac_key]["zones"].values():
if zone["type"] > 0:
self._name_to_number[zone["name"]] = zone["number"]
self._number_to_name[zone["number"]] = zone["name"]
self._attr_options.append(zone["name"])
@property
def current_option(self):
"""Return the fresh air status."""
return self._number_to_name[self._ac["myZone"]]
async def async_select_option(self, option):
"""Set the MyZone."""
await self.async_change(
{self.ac_key: {"info": {"myZone": self._name_to_number[option]}}}
)

View File

@@ -6,7 +6,7 @@ from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntity,
)
from homeassistant.const import PERCENTAGE, TEMP_CELSIUS
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC, PERCENTAGE, TEMP_CELSIUS
from homeassistant.helpers import config_validation as cv, entity_platform
from .const import ADVANTAGE_AIR_STATE_OPEN, DOMAIN as ADVANTAGE_AIR_DOMAIN
@@ -50,6 +50,7 @@ class AdvantageAirTimeTo(AdvantageAirEntity, SensorEntity):
"""Representation of Advantage Air timer control."""
_attr_native_unit_of_measurement = ADVANTAGE_AIR_SET_COUNTDOWN_UNIT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, action):
"""Initialize the Advantage Air timer control."""
@@ -84,6 +85,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, SensorEntity):
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone Vent Sensor."""
@@ -113,6 +115,7 @@ class AdvantageAirZoneSignal(AdvantageAirEntity, SensorEntity):
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone wireless signal sensor."""
@@ -148,6 +151,7 @@ class AdvantageAirZoneTemp(AdvantageAirEntity, SensorEntity):
_attr_device_class = DEVICE_CLASS_TEMPERATURE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone Temp Sensor."""

View File

@@ -0,0 +1,18 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
},
"step": {
"user": {
"data": {
"ip_address": "IP \u0430\u0434\u0440\u0435\u0441",
"port": "\u041f\u043e\u0440\u0442"
}
}
}
}
}

View File

@@ -52,7 +52,7 @@ async def async_update_options(hass: HomeAssistant, entry: ConfigEntry) -> None:
await hass.config_entries.async_reload(entry.entry_id)
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
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)

View File

@@ -1,7 +1,10 @@
"""Constant values for the AEMET OpenData component."""
from __future__ import annotations
from homeassistant.components.sensor import SensorEntityDescription
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntityDescription,
)
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -252,12 +255,14 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
name="Humidity",
native_unit_of_measurement=PERCENTAGE,
device_class=DEVICE_CLASS_HUMIDITY,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_PRESSURE,
name="Pressure",
native_unit_of_measurement=PRESSURE_HPA,
device_class=DEVICE_CLASS_PRESSURE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_RAIN,
@@ -268,6 +273,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_RAIN_PROB,
name="Rain probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_SNOW,
@@ -278,6 +284,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_SNOW_PROB,
name="Snow probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_STATION_ID,
@@ -296,18 +303,21 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_STORM_PROB,
name="Storm probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_TEMPERATURE,
name="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
device_class=DEVICE_CLASS_TEMPERATURE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_TEMPERATURE_FEELING,
name="Temperature feeling",
native_unit_of_measurement=TEMP_CELSIUS,
device_class=DEVICE_CLASS_TEMPERATURE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_TOWN_ID,
@@ -326,6 +336,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_WIND_BEARING,
name="Wind bearing",
native_unit_of_measurement=DEGREE,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_WIND_MAX_SPEED,
@@ -336,6 +347,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_WIND_SPEED,
name="Wind speed",
native_unit_of_measurement=SPEED_KILOMETERS_PER_HOUR,
state_class=STATE_CLASS_MEASUREMENT,
),
)

View File

@@ -1,6 +1,7 @@
"""Support for non-delivered packages recorded in AfterShip."""
from __future__ import annotations
from http import HTTPStatus
import logging
from typing import Any, Final
@@ -11,7 +12,7 @@ from homeassistant.components.sensor import (
PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA,
SensorEntity,
)
from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_NAME, HTTP_OK
from homeassistant.const import CONF_API_KEY, CONF_NAME
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
@@ -64,7 +65,7 @@ async def async_setup_platform(
await aftership.get_trackings()
if not aftership.meta or aftership.meta["code"] != HTTP_OK:
if not aftership.meta or aftership.meta["code"] != HTTPStatus.OK:
_LOGGER.error(
"No tracking data found. Check API key is correct: %s", aftership.meta
)
@@ -109,6 +110,7 @@ async def async_setup_platform(
class AfterShipSensor(SensorEntity):
"""Representation of a AfterShip sensor."""
_attr_attribution = ATTRIBUTION
_attr_native_unit_of_measurement: str = "packages"
_attr_icon: str = ICON
@@ -150,7 +152,7 @@ class AfterShipSensor(SensorEntity):
if not self.aftership.meta:
_LOGGER.error("Unknown errors when querying")
return
if self.aftership.meta["code"] != HTTP_OK:
if self.aftership.meta["code"] != HTTPStatus.OK:
_LOGGER.error(
"Errors when querying AfterShip. %s", str(self.aftership.meta)
)
@@ -191,7 +193,6 @@ class AfterShipSensor(SensorEntity):
_LOGGER.debug("Ignoring %s as it has status: %s", name, status)
self._attributes = {
ATTR_ATTRIBUTION: ATTRIBUTION,
**status_counts,
ATTR_TRACKINGS: trackings,
}

View File

@@ -11,6 +11,7 @@ from homeassistant.const import (
STATE_ALARM_ARMED_NIGHT,
STATE_ALARM_DISARMED,
)
from homeassistant.helpers.entity import DeviceInfo
from .const import CONNECTION, DOMAIN as AGENT_DOMAIN
@@ -45,12 +46,12 @@ class AgentBaseStation(AlarmControlPanelEntity):
self._client = client
self._attr_name = f"{client.name} {CONST_ALARM_CONTROL_PANEL_NAME}"
self._attr_unique_id = f"{client.unique}_CP"
self._attr_device_info = {
"identifiers": {(AGENT_DOMAIN, client.unique)},
"manufacturer": "Agent",
"model": CONST_ALARM_CONTROL_PANEL_NAME,
"sw_version": client.version,
}
self._attr_device_info = DeviceInfo(
identifiers={(AGENT_DOMAIN, client.unique)},
manufacturer="Agent",
model=CONST_ALARM_CONTROL_PANEL_NAME,
sw_version=client.version,
)
async def async_update(self):
"""Update the state of the device."""

View File

@@ -13,6 +13,7 @@ from homeassistant.components.mjpeg.camera import (
)
from homeassistant.const import ATTR_ATTRIBUTION, CONF_NAME
from homeassistant.helpers import entity_platform
from homeassistant.helpers.entity import DeviceInfo
from .const import (
ATTRIBUTION,
@@ -79,13 +80,13 @@ class AgentCamera(MjpegCamera):
self._attr_name = f"{device.client.name} {device.name}"
self._attr_unique_id = f"{device._client.unique}_{device.typeID}_{device.id}"
super().__init__(device_info)
self._attr_device_info = {
"identifiers": {(AGENT_DOMAIN, self.unique_id)},
"name": self.name,
"manufacturer": "Agent",
"model": "Camera",
"sw_version": device.client.version,
}
self._attr_device_info = DeviceInfo(
identifiers={(AGENT_DOMAIN, self.unique_id)},
manufacturer="Agent",
model="Camera",
name=self.name,
sw_version=device.client.version,
)
async def async_update(self):
"""Update our state from the Agent API."""

View File

@@ -33,9 +33,7 @@ class AgentFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
try:
await agent_client.update()
except AgentConnectionError:
pass
except AgentError:
except (AgentConnectionError, AgentError):
pass
await agent_client.close()

View File

@@ -0,0 +1,15 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"step": {
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"port": "\u041f\u043e\u0440\u0442"
}
}
}
}
}

View File

@@ -4,13 +4,13 @@
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van"
},
"error": {
"already_in_progress": "A konfigur\u00e1ci\u00f3 m\u00e1r folyamatban van.",
"already_in_progress": "A konfigur\u00e1l\u00e1s m\u00e1r folyamatban van",
"cannot_connect": "Sikertelen csatlakoz\u00e1s"
},
"step": {
"user": {
"data": {
"host": "Hoszt",
"host": "C\u00edm",
"port": "Port"
},
"title": "\u00c1ll\u00edtsa be az Agent DVR-t"

View File

@@ -6,10 +6,7 @@ import logging
from typing import Final, final
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_ATTRIBUTION,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
)
from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER
from homeassistant.core import HomeAssistant
from homeassistant.helpers.config_validation import ( # noqa: F401
PLATFORM_SCHEMA,
@@ -41,7 +38,6 @@ SCAN_INTERVAL: Final = timedelta(seconds=30)
PROP_TO_ATTR: Final[dict[str, str]] = {
"air_quality_index": ATTR_AQI,
"attribution": ATTR_ATTRIBUTION,
"carbon_dioxide": ATTR_CO2,
"carbon_monoxide": ATTR_CO,
"nitrogen_oxide": ATTR_N2O,
@@ -114,11 +110,6 @@ class AirQualityEntity(Entity):
"""Return the CO2 (carbon dioxide) level."""
return None
@property
def attribution(self) -> StateType:
"""Return the attribution."""
return None
@property
def sulphur_dioxide(self) -> StateType:
"""Return the SO2 (sulphur dioxide) level."""

View File

@@ -1,6 +1,7 @@
"""Adds config flow for Airly."""
from __future__ import annotations
from http import HTTPStatus
from typing import Any
from aiohttp import ClientSession
@@ -10,14 +11,7 @@ import async_timeout
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_NAME,
HTTP_NOT_FOUND,
HTTP_UNAUTHORIZED,
)
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
@@ -60,9 +54,9 @@ class AirlyFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
use_nearest=True,
)
except AirlyError as err:
if err.status_code == HTTP_UNAUTHORIZED:
if err.status_code == HTTPStatus.UNAUTHORIZED:
errors["base"] = "invalid_api_key"
if err.status_code == HTTP_NOT_FOUND:
if err.status_code == HTTPStatus.NOT_FOUND:
errors["base"] = "wrong_location"
else:
if not location_point_valid:

View File

@@ -32,3 +32,4 @@ MANUFACTURER: Final = "Airly sp. z o.o."
MAX_UPDATE_INTERVAL: Final = 90
MIN_UPDATE_INTERVAL: Final = 5
NO_AIRLY_SENSORS: Final = "There are no Airly sensors in this area yet."
URL = "https://airly.org/map/#{latitude},{longitude}"

View File

@@ -1,8 +1,9 @@
"""Support for the Airly sensor service."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import Any, Callable, cast
from typing import Any, cast
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
@@ -26,6 +27,7 @@ from homeassistant.const import (
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -53,6 +55,7 @@ from .const import (
MANUFACTURER,
SUFFIX_LIMIT,
SUFFIX_PERCENT,
URL,
)
PARALLEL_UPDATES = 1
@@ -150,14 +153,15 @@ class AirlySensor(CoordinatorEntity, SensorEntity):
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_device_info = {
"identifiers": {
(DOMAIN, f"{coordinator.latitude}-{coordinator.longitude}")
},
"name": DEFAULT_NAME,
"manufacturer": MANUFACTURER,
"entry_type": "service",
}
self._attr_device_info = DeviceInfo(
entry_type="service",
identifiers={(DOMAIN, f"{coordinator.latitude}-{coordinator.longitude}")},
manufacturer=MANUFACTURER,
name=DEFAULT_NAME,
configuration_url=URL.format(
latitude=coordinator.latitude, longitude=coordinator.longitude
),
)
self._attr_name = f"{name} {description.name}"
self._attr_unique_id = (
f"{coordinator.latitude}-{coordinator.longitude}-{description.key}".lower()

View File

@@ -64,7 +64,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
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)

View File

@@ -1,7 +1,11 @@
"""Support for the AirNow sensor service."""
from __future__ import annotations
from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntity,
SensorEntityDescription,
)
from homeassistant.const import (
ATTR_ATTRIBUTION,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
@@ -31,18 +35,21 @@ SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
icon="mdi:blur",
name=ATTR_API_AQI,
native_unit_of_measurement="aqi",
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_PM25,
icon="mdi:blur",
name=ATTR_API_PM25,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_O3,
icon="mdi:blur",
name=ATTR_API_O3,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=STATE_CLASS_MEASUREMENT,
),
)

View File

@@ -1,7 +1,22 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435",
"invalid_location": "\u041d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u0437\u0430 \u0442\u043e\u0432\u0430 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435",
"unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
},
"step": {
"user": {
"data": {
"api_key": "API \u043a\u043b\u044e\u0447",
"latitude": "\u0413\u0435\u043e\u0433\u0440\u0430\u0444\u0441\u043a\u0430 \u0448\u0438\u0440\u0438\u043d\u0430",
"longitude": "\u0413\u0435\u043e\u0433\u0440\u0430\u0444\u0441\u043a\u0430 \u0434\u044a\u043b\u0436\u0438\u043d\u0430"
}
}
}
}
}

View File

@@ -0,0 +1,61 @@
"""The Airthings integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from airthings import Airthings, AirthingsError
from homeassistant.config_entries import ConfigEntry
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 CONF_ID, CONF_SECRET, DOMAIN
_LOGGER = logging.getLogger(__name__)
PLATFORMS: list[str] = ["sensor"]
SCAN_INTERVAL = timedelta(minutes=6)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Airthings from a config entry."""
hass.data.setdefault(DOMAIN, {})
airthings = Airthings(
entry.data[CONF_ID],
entry.data[CONF_SECRET],
async_get_clientsession(hass),
)
async def _update_method():
"""Get the latest data from Airthings."""
try:
return await airthings.update_devices()
except AirthingsError as err:
raise UpdateFailed(f"Unable to fetch data: {err}") from err
coordinator = DataUpdateCoordinator(
hass,
_LOGGER,
name=DOMAIN,
update_method=_update_method,
update_interval=SCAN_INTERVAL,
)
await coordinator.async_config_entry_first_refresh()
hass.data[DOMAIN][entry.entry_id] = coordinator
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
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)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok

View File

@@ -0,0 +1,67 @@
"""Config flow for Airthings integration."""
from __future__ import annotations
import logging
from typing import Any
import airthings
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import CONF_ID, CONF_SECRET, DOMAIN
_LOGGER = logging.getLogger(__name__)
STEP_USER_DATA_SCHEMA = vol.Schema(
{
vol.Required(CONF_ID): str,
vol.Required(CONF_SECRET): str,
}
)
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Airthings."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the initial step."""
if user_input is None:
return self.async_show_form(
step_id="user",
data_schema=STEP_USER_DATA_SCHEMA,
description_placeholders={
"url": "https://dashboard.airthings.com/integrations/api-integration",
},
)
errors = {}
try:
await airthings.get_token(
async_get_clientsession(self.hass),
user_input[CONF_ID],
user_input[CONF_SECRET],
)
except airthings.AirthingsConnectionError:
errors["base"] = "cannot_connect"
except airthings.AirthingsAuthError:
errors["base"] = "invalid_auth"
except Exception: # pylint: disable=broad-except
_LOGGER.exception("Unexpected exception")
errors["base"] = "unknown"
else:
await self.async_set_unique_id(user_input[CONF_ID])
self._abort_if_unique_id_configured()
return self.async_create_entry(title="Airthings", data=user_input)
return self.async_show_form(
step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors
)

View File

@@ -0,0 +1,6 @@
"""Constants for the Airthings integration."""
DOMAIN = "airthings"
CONF_ID = "id"
CONF_SECRET = "secret"

View File

@@ -0,0 +1,11 @@
{
"domain": "airthings",
"name": "Airthings",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airthings",
"requirements": ["airthings_cloud==0.0.1"],
"codeowners": [
"@danielhiversen"
],
"iot_class": "cloud_polling"
}

View File

@@ -0,0 +1,169 @@
"""Support for Airthings sensors."""
from __future__ import annotations
from airthings import AirthingsDevice
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntity,
SensorEntityDescription,
StateType,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_CO2,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_PM1,
DEVICE_CLASS_PM25,
DEVICE_CLASS_PRESSURE,
DEVICE_CLASS_SIGNAL_STRENGTH,
DEVICE_CLASS_TEMPERATURE,
ENTITY_CATEGORY_DIAGNOSTIC,
PERCENTAGE,
PRESSURE_MBAR,
SIGNAL_STRENGTH_DECIBELS,
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
)
from .const import DOMAIN
SENSORS: dict[str, SensorEntityDescription] = {
"radonShortTermAvg": SensorEntityDescription(
key="radonShortTermAvg",
native_unit_of_measurement="Bq/m³",
name="Radon",
),
"temp": SensorEntityDescription(
key="temp",
device_class=DEVICE_CLASS_TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
name="Temperature",
),
"humidity": SensorEntityDescription(
key="humidity",
device_class=DEVICE_CLASS_HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
name="Humidity",
),
"pressure": SensorEntityDescription(
key="pressure",
device_class=DEVICE_CLASS_PRESSURE,
native_unit_of_measurement=PRESSURE_MBAR,
name="Pressure",
),
"battery": SensorEntityDescription(
key="battery",
device_class=DEVICE_CLASS_BATTERY,
native_unit_of_measurement=PERCENTAGE,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
name="Battery",
),
"co2": SensorEntityDescription(
key="co2",
device_class=DEVICE_CLASS_CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
name="CO2",
),
"voc": SensorEntityDescription(
key="voc",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
name="VOC",
),
"light": SensorEntityDescription(
key="light",
native_unit_of_measurement=PERCENTAGE,
name="Light",
),
"virusRisk": SensorEntityDescription(
key="virusRisk",
name="Virus Risk",
),
"mold": SensorEntityDescription(
key="mold",
name="Mold",
),
"rssi": SensorEntityDescription(
key="rssi",
native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS,
device_class=DEVICE_CLASS_SIGNAL_STRENGTH,
name="RSSI",
entity_registry_enabled_default=False,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
),
"pm1": SensorEntityDescription(
key="pm1",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
device_class=DEVICE_CLASS_PM1,
name="PM1",
),
"pm25": SensorEntityDescription(
key="pm25",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
device_class=DEVICE_CLASS_PM25,
name="PM25",
),
}
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Airthings sensor."""
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
entities = [
AirthingsHeaterEnergySensor(
coordinator,
airthings_device,
SENSORS[sensor_types],
)
for airthings_device in coordinator.data.values()
for sensor_types in airthings_device.sensor_types
if sensor_types in SENSORS
]
async_add_entities(entities)
class AirthingsHeaterEnergySensor(CoordinatorEntity, SensorEntity):
"""Representation of a Airthings Sensor device."""
_attr_state_class = STATE_CLASS_MEASUREMENT
def __init__(
self,
coordinator: DataUpdateCoordinator,
airthings_device: AirthingsDevice,
entity_description: SensorEntityDescription,
) -> None:
"""Initialize the sensor."""
super().__init__(coordinator)
self.entity_description = entity_description
self._attr_name = f"{airthings_device.name} {entity_description.name}"
self._attr_unique_id = f"{airthings_device.device_id}_{entity_description.key}"
self._id = airthings_device.device_id
self._attr_device_info = DeviceInfo(
configuration_url="https://dashboard.airthings.com/",
identifiers={(DOMAIN, airthings_device.device_id)},
name=airthings_device.name,
manufacturer="Airthings",
)
@property
def native_value(self) -> StateType:
"""Return the value reported by the sensor."""
return self.coordinator.data[self._id].sensors[self.entity_description.key]

View File

@@ -0,0 +1,21 @@
{
"config": {
"step": {
"user": {
"data": {
"id": "ID",
"secret": "Secret",
"description": "Login at {url} to find your credentials"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]"
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u0410\u043a\u0430\u0443\u043d\u0442\u0430 \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435",
"unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
},
"step": {
"user": {
"data": {
"id": "ID"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "El compte ja est\u00e0 configurat"
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida",
"unknown": "Error inesperat"
},
"step": {
"user": {
"data": {
"description": "Inicia sessi\u00f3 a {url} per obtenir les credencials",
"id": "ID",
"secret": "Secret"
}
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u00da\u010det je ji\u017e nastaven"
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"invalid_auth": "Neplatn\u00e9 ov\u011b\u0159en\u00ed",
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
},
"step": {
"user": {
"data": {
"id": "ID"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Konto wurde bereits konfiguriert"
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_auth": "Ung\u00fcltige Authentifizierung",
"unknown": "Unerwarteter Fehler"
},
"step": {
"user": {
"data": {
"description": "Melde dich unter {url} an, um deine Zugangsdaten zu finden",
"id": "ID",
"secret": "Geheimnis"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Account is already configured"
},
"error": {
"cannot_connect": "Failed to connect",
"invalid_auth": "Invalid authentication",
"unknown": "Unexpected error"
},
"step": {
"user": {
"data": {
"description": "Login at {url} to find your credentials",
"id": "ID",
"secret": "Secret"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Konto on juba h\u00e4\u00e4lestatud"
},
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"invalid_auth": "Tuvastamise t\u00f5rge",
"unknown": "Ootamatu t\u00f5rge"
},
"step": {
"user": {
"data": {
"description": "Logi sisse aadressil {url}, et leida oma mandaadid",
"id": "Kasutajatunnus",
"secret": "Salas\u00f5na"
}
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4"
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"invalid_auth": "\u05d0\u05d9\u05de\u05d5\u05ea \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9",
"unknown": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05dc\u05ea\u05d9 \u05e6\u05e4\u05d5\u05d9\u05d4"
},
"step": {
"user": {
"data": {
"id": "\u05de\u05d6\u05d4\u05d4",
"secret": "\u05e1\u05d5\u05d3"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "A fi\u00f3k m\u00e1r konfigur\u00e1lva van"
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"invalid_auth": "\u00c9rv\u00e9nytelen hiteles\u00edt\u00e9s",
"unknown": "V\u00e1ratlan hiba t\u00f6rt\u00e9nt"
},
"step": {
"user": {
"data": {
"description": "Jelentkezzen be a {url} c\u00edmen hogy megkapja hiteles\u00edt\u0151 adatait",
"id": "Azonos\u00edt\u00f3",
"secret": "Titok"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "L'account \u00e8 gi\u00e0 configurato"
},
"error": {
"cannot_connect": "Impossibile connettersi",
"invalid_auth": "Autenticazione non valida",
"unknown": "Errore imprevisto"
},
"step": {
"user": {
"data": {
"description": "Accedi a {url} per trovare le tue credenziali",
"id": "ID",
"secret": "Segreto"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Account is al geconfigureerd"
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_auth": "Ongeldige authenticatie",
"unknown": "Onverwachte fout"
},
"step": {
"user": {
"data": {
"description": "Log in op {url} om uw inloggegevens te vinden",
"id": "ID",
"secret": "Geheim"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Kontoen er allerede konfigurert"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"invalid_auth": "Ugyldig godkjenning",
"unknown": "Uventet feil"
},
"step": {
"user": {
"data": {
"description": "Logg p\u00e5 {url} \u00e5 finne legitimasjonen din",
"id": "ID",
"secret": "Hemmelig"
}
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Konto jest ju\u017c skonfigurowane"
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"invalid_auth": "Niepoprawne uwierzytelnienie",
"unknown": "Nieoczekiwany b\u0142\u0105d"
},
"step": {
"user": {
"data": {
"id": "ID",
"secret": "Sekret"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 Home Assistant."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"invalid_auth": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"step": {
"user": {
"data": {
"description": "\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435: {url}",
"id": "ID",
"secret": "\u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043e\u0434"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u5e33\u865f\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_auth": "\u9a57\u8b49\u78bc\u7121\u6548",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"step": {
"user": {
"data": {
"description": "\u767b\u5165 {url} \u4ee5\u53d6\u5f97\u6191\u8b49",
"id": "ID",
"secret": "\u5bc6\u78bc"
}
}
}
}
}

View File

@@ -21,6 +21,7 @@ from homeassistant.components.climate.const import (
)
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
from homeassistant.core import callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
@@ -96,14 +97,14 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
return super()._handle_coordinator_update()
@property
def device_info(self):
def device_info(self) -> DeviceInfo:
"""Return device info for this device."""
return {
"identifiers": {(DOMAIN, self.unique_id)},
"name": self.name,
"manufacturer": "Airtouch",
"model": "Airtouch 4",
}
return DeviceInfo(
identifiers={(DOMAIN, self.unique_id)},
name=self.name,
manufacturer="Airtouch",
model="Airtouch 4",
)
@property
def unique_id(self):
@@ -211,14 +212,14 @@ class AirtouchGroup(CoordinatorEntity, ClimateEntity):
return super()._handle_coordinator_update()
@property
def device_info(self):
def device_info(self) -> DeviceInfo:
"""Return device info for this device."""
return {
"identifiers": {(DOMAIN, self.unique_id)},
"name": self.name,
"manufacturer": "Airtouch",
"model": "Airtouch 4",
}
return DeviceInfo(
identifiers={(DOMAIN, self.unique_id)},
manufacturer="Airtouch",
model="Airtouch 4",
name=self.name,
)
@property
def unique_id(self):

View File

@@ -0,0 +1,17 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
},
"step": {
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442"
}
}
}
}
}

View File

@@ -1,12 +1,16 @@
{
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado"
},
"error": {
"cannot_connect": "No se pudo conectar",
"no_units": "No se pudo encontrar ning\u00fan grupo AirTouch 4."
},
"step": {
"user": {
"data": {
"host": "Anfitri\u00f3n"
"host": "Host"
},
"title": "Configura los detalles de conexi\u00f3n de tu AirTouch 4."
}

View File

@@ -10,7 +10,7 @@
"step": {
"user": {
"data": {
"host": "Gazdag\u00e9p"
"host": "C\u00edm"
},
"title": "\u00c1ll\u00edtsa be az AirTouch 4 csatlakoz\u00e1si adatait."
}

View File

@@ -0,0 +1,17 @@
{
"config": {
"abort": {
"already_configured": "Perangkat sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung"
},
"step": {
"user": {
"data": {
"host": "Host"
}
}
}
}
}

View File

@@ -4,7 +4,7 @@ from __future__ import annotations
from collections.abc import Mapping
from datetime import timedelta
from math import ceil
from typing import Any
from typing import Any, Dict, cast
from pyairvisual import CloudAPI, NodeSamba
from pyairvisual.errors import (
@@ -54,8 +54,6 @@ from .const import (
PLATFORMS = ["sensor"]
DATA_LISTENER = "listener"
DEFAULT_ATTRIBUTION = "Data provided by AirVisual"
DEFAULT_NODE_PRO_UPDATE_INTERVAL = timedelta(minutes=1)
@@ -106,12 +104,13 @@ def async_get_cloud_coordinators_by_api_key(
hass: HomeAssistant, api_key: str
) -> list[DataUpdateCoordinator]:
"""Get all DataUpdateCoordinator objects related to a particular API key."""
coordinators = []
for entry_id, coordinator in hass.data[DOMAIN][DATA_COORDINATOR].items():
config_entry = hass.config_entries.async_get_entry(entry_id)
if config_entry and config_entry.data.get(CONF_API_KEY) == api_key:
coordinators.append(coordinator)
return coordinators
return [
coordinator
for entry_id, attrs in hass.data[DOMAIN].items()
if (entry := hass.config_entries.async_get_entry(entry_id))
and (coordinator := attrs.get(DATA_COORDINATOR))
and entry.data.get(CONF_API_KEY) == api_key
]
@callback
@@ -139,25 +138,25 @@ def async_sync_geo_coordinator_update_intervals(
@callback
def _standardize_geography_config_entry(
hass: HomeAssistant, config_entry: ConfigEntry
hass: HomeAssistant, entry: ConfigEntry
) -> None:
"""Ensure that geography config entries have appropriate properties."""
entry_updates = {}
if not config_entry.unique_id:
if not entry.unique_id:
# If the config entry doesn't already have a unique ID, set one:
entry_updates["unique_id"] = config_entry.data[CONF_API_KEY]
if not config_entry.options:
entry_updates["unique_id"] = entry.data[CONF_API_KEY]
if not entry.options:
# If the config entry doesn't already have any options set, set defaults:
entry_updates["options"] = {CONF_SHOW_ON_MAP: True}
if config_entry.data.get(CONF_INTEGRATION_TYPE) not in [
if entry.data.get(CONF_INTEGRATION_TYPE) not in [
INTEGRATION_TYPE_GEOGRAPHY_COORDS,
INTEGRATION_TYPE_GEOGRAPHY_NAME,
]:
# If the config entry data doesn't contain an integration type that we know
# about, infer it from the data we have:
entry_updates["data"] = {**config_entry.data}
if CONF_CITY in config_entry.data:
entry_updates["data"] = {**entry.data}
if CONF_CITY in entry.data:
entry_updates["data"][
CONF_INTEGRATION_TYPE
] = INTEGRATION_TYPE_GEOGRAPHY_NAME
@@ -169,55 +168,55 @@ def _standardize_geography_config_entry(
if not entry_updates:
return
hass.config_entries.async_update_entry(config_entry, **entry_updates)
hass.config_entries.async_update_entry(entry, **entry_updates)
@callback
def _standardize_node_pro_config_entry(
hass: HomeAssistant, config_entry: ConfigEntry
) -> None:
def _standardize_node_pro_config_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Ensure that Node/Pro config entries have appropriate properties."""
entry_updates: dict[str, Any] = {}
if CONF_INTEGRATION_TYPE not in config_entry.data:
if CONF_INTEGRATION_TYPE not in entry.data:
# If the config entry data doesn't contain the integration type, add it:
entry_updates["data"] = {
**config_entry.data,
**entry.data,
CONF_INTEGRATION_TYPE: INTEGRATION_TYPE_NODE_PRO,
}
if not entry_updates:
return
hass.config_entries.async_update_entry(config_entry, **entry_updates)
hass.config_entries.async_update_entry(entry, **entry_updates)
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up AirVisual as config entry."""
hass.data.setdefault(DOMAIN, {DATA_COORDINATOR: {}, DATA_LISTENER: {}})
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = {}
if CONF_API_KEY in config_entry.data:
_standardize_geography_config_entry(hass, config_entry)
if CONF_API_KEY in entry.data:
_standardize_geography_config_entry(hass, entry)
websession = aiohttp_client.async_get_clientsession(hass)
cloud_api = CloudAPI(config_entry.data[CONF_API_KEY], session=websession)
cloud_api = CloudAPI(entry.data[CONF_API_KEY], session=websession)
async def async_update_data() -> dict[str, Any]:
"""Get new data from the API."""
if CONF_CITY in config_entry.data:
if CONF_CITY in entry.data:
api_coro = cloud_api.air_quality.city(
config_entry.data[CONF_CITY],
config_entry.data[CONF_STATE],
config_entry.data[CONF_COUNTRY],
entry.data[CONF_CITY],
entry.data[CONF_STATE],
entry.data[CONF_COUNTRY],
)
else:
api_coro = cloud_api.air_quality.nearest_city(
config_entry.data[CONF_LATITUDE],
config_entry.data[CONF_LONGITUDE],
entry.data[CONF_LATITUDE],
entry.data[CONF_LONGITUDE],
)
try:
return await api_coro
data = await api_coro
return cast(Dict[str, Any], data)
except (InvalidKeyError, KeyExpiredError) as ex:
raise ConfigEntryAuthFailed from ex
except AirVisualError as err:
@@ -226,7 +225,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
coordinator = DataUpdateCoordinator(
hass,
LOGGER,
name=async_get_geography_id(config_entry.data),
name=async_get_geography_id(entry.data),
# We give a placeholder update interval in order to create the coordinator;
# then, below, we use the coordinator's presence (along with any other
# coordinators using the same API key) to calculate an actual, leveled
@@ -236,16 +235,14 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
)
# Only geography-based entries have options:
hass.data[DOMAIN][DATA_LISTENER][
config_entry.entry_id
] = config_entry.add_update_listener(async_reload_entry)
entry.async_on_unload(entry.add_update_listener(async_reload_entry))
else:
# Remove outdated air_quality entities from the entity registry if they exist:
ent_reg = entity_registry.async_get(hass)
for entity_entry in [
e
for e in ent_reg.entities.values()
if e.config_entry_id == config_entry.entry_id
if e.config_entry_id == entry.entry_id
and e.entity_id.startswith("air_quality")
]:
LOGGER.debug(
@@ -253,15 +250,16 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
)
ent_reg.async_remove(entity_entry.entity_id)
_standardize_node_pro_config_entry(hass, config_entry)
_standardize_node_pro_config_entry(hass, entry)
async def async_update_data() -> dict[str, Any]:
"""Get new data from the API."""
try:
async with NodeSamba(
config_entry.data[CONF_IP_ADDRESS], config_entry.data[CONF_PASSWORD]
entry.data[CONF_IP_ADDRESS], entry.data[CONF_PASSWORD]
) as node:
return await node.async_get_latest_measurements()
data = await node.async_get_latest_measurements()
return cast(Dict[str, Any], data)
except NodeProError as err:
raise UpdateFailed(f"Error while retrieving data: {err}") from err
@@ -274,41 +272,38 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
)
await coordinator.async_config_entry_first_refresh()
hass.data[DOMAIN][DATA_COORDINATOR][config_entry.entry_id] = coordinator
hass.data[DOMAIN][entry.entry_id][DATA_COORDINATOR] = coordinator
# Reassess the interval between 2 server requests
if CONF_API_KEY in config_entry.data:
async_sync_geo_coordinator_update_intervals(
hass, config_entry.data[CONF_API_KEY]
)
if CONF_API_KEY in entry.data:
async_sync_geo_coordinator_update_intervals(hass, entry.data[CONF_API_KEY])
hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
return True
async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Migrate an old config entry."""
version = config_entry.version
version = entry.version
LOGGER.debug("Migrating from version %s", version)
# 1 -> 2: One geography per config entry
if version == 1:
version = config_entry.version = 2
version = entry.version = 2
# Update the config entry to only include the first geography (there is always
# guaranteed to be at least one):
geographies = list(config_entry.data[CONF_GEOGRAPHIES])
geographies = list(entry.data[CONF_GEOGRAPHIES])
first_geography = geographies.pop(0)
first_id = async_get_geography_id(first_geography)
hass.config_entries.async_update_entry(
config_entry,
entry,
unique_id=first_id,
title=f"Cloud API ({first_id})",
data={CONF_API_KEY: config_entry.data[CONF_API_KEY], **first_geography},
data={CONF_API_KEY: entry.data[CONF_API_KEY], **first_geography},
)
# For any geographies that remain, create a new config entry for each one:
@@ -321,7 +316,7 @@ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) ->
hass.config_entries.flow.async_init(
DOMAIN,
context={"source": source},
data={CONF_API_KEY: config_entry.data[CONF_API_KEY], **geography},
data={CONF_API_KEY: entry.data[CONF_API_KEY], **geography},
)
)
@@ -330,42 +325,39 @@ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) ->
return True
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload an AirVisual config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(
config_entry, PLATFORMS
)
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN][DATA_COORDINATOR].pop(config_entry.entry_id)
remove_listener = hass.data[DOMAIN][DATA_LISTENER].pop(config_entry.entry_id)
remove_listener()
if CONF_API_KEY in config_entry.data:
hass.data[DOMAIN].pop(entry.entry_id)
if CONF_API_KEY in entry.data:
# Re-calculate the update interval period for any remaining consumers of
# this API key:
async_sync_geo_coordinator_update_intervals(
hass, config_entry.data[CONF_API_KEY]
)
async_sync_geo_coordinator_update_intervals(hass, entry.data[CONF_API_KEY])
return unload_ok
async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None:
async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Handle an options update."""
await hass.config_entries.async_reload(config_entry.entry_id)
await hass.config_entries.async_reload(entry.entry_id)
class AirVisualEntity(CoordinatorEntity):
"""Define a generic AirVisual entity."""
def __init__(
self, coordinator: DataUpdateCoordinator, description: EntityDescription
self,
coordinator: DataUpdateCoordinator,
entry: ConfigEntry,
description: EntityDescription,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_extra_state_attributes = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}
self._entry = entry
self.entity_description = description
async def async_added_to_hass(self) -> None:

View File

@@ -141,6 +141,9 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
existing_entry = await self.async_set_unique_id(self._geo_id)
if existing_entry:
self.hass.config_entries.async_update_entry(existing_entry, data=user_input)
self.hass.async_create_task(
self.hass.config_entries.async_reload(existing_entry.entry_id)
)
return self.async_abort(reason="reauth_successful")
return self.async_create_entry(
@@ -237,7 +240,7 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
step_id="reauth_confirm", data_schema=API_KEY_DATA_SCHEMA
)
conf = {CONF_API_KEY: user_input[CONF_API_KEY], **self._entry_data_for_reauth}
conf = {**self._entry_data_for_reauth, CONF_API_KEY: user_input[CONF_API_KEY]}
return await self._async_finish_geography(
conf, self._entry_data_for_reauth[CONF_INTEGRATION_TYPE]
@@ -262,9 +265,9 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
class AirVisualOptionsFlowHandler(config_entries.OptionsFlow):
"""Handle an AirVisual options flow."""
def __init__(self, config_entry: ConfigEntry) -> None:
def __init__(self, entry: ConfigEntry) -> None:
"""Initialize."""
self.config_entry = config_entry
self.entry = entry
async def async_step_init(
self, user_input: dict[str, str] | None = None
@@ -279,7 +282,7 @@ class AirVisualOptionsFlowHandler(config_entries.OptionsFlow):
{
vol.Required(
CONF_SHOW_ON_MAP,
default=self.config_entry.options.get(CONF_SHOW_ON_MAP),
default=self.entry.options.get(CONF_SHOW_ON_MAP),
): bool
}
),

View File

@@ -1,7 +1,11 @@
"""Support for AirVisual air quality sensors."""
from __future__ import annotations
from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntity,
SensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_LATITUDE,
@@ -23,6 +27,7 @@ from homeassistant.const import (
DEVICE_CLASS_PM25,
DEVICE_CLASS_TEMPERATURE,
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
ENTITY_CATEGORY_DIAGNOSTIC,
PERCENTAGE,
TEMP_CELSIUS,
)
@@ -76,6 +81,7 @@ GEOGRAPHY_SENSOR_DESCRIPTIONS = (
name="Air Quality Index",
device_class=DEVICE_CLASS_AQI,
native_unit_of_measurement="AQI",
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_POLLUTANT,
@@ -92,11 +98,13 @@ NODE_PRO_SENSOR_DESCRIPTIONS = (
name="Air Quality Index",
device_class=DEVICE_CLASS_AQI,
native_unit_of_measurement="AQI",
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_BATTERY_LEVEL,
name="Battery",
device_class=DEVICE_CLASS_BATTERY,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
native_unit_of_measurement=PERCENTAGE,
),
SensorEntityDescription(
@@ -104,6 +112,7 @@ NODE_PRO_SENSOR_DESCRIPTIONS = (
name="C02",
device_class=DEVICE_CLASS_CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_HUMIDITY,
@@ -116,30 +125,35 @@ NODE_PRO_SENSOR_DESCRIPTIONS = (
name="PM 0.1",
device_class=DEVICE_CLASS_PM1,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_PM_1_0,
name="PM 1.0",
device_class=DEVICE_CLASS_PM10,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_PM_2_5,
name="PM 2.5",
device_class=DEVICE_CLASS_PM25,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_TEMPERATURE,
name="Temperature",
device_class=DEVICE_CLASS_TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_VOC,
name="VOC",
device_class=DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=STATE_CLASS_MEASUREMENT,
),
)
@@ -177,26 +191,24 @@ POLLUTANT_UNITS = {
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Set up AirVisual sensors based on a config entry."""
coordinator = hass.data[DOMAIN][DATA_COORDINATOR][config_entry.entry_id]
coordinator = hass.data[DOMAIN][entry.entry_id][DATA_COORDINATOR]
sensors: list[AirVisualGeographySensor | AirVisualNodeProSensor]
if config_entry.data[CONF_INTEGRATION_TYPE] in (
if entry.data[CONF_INTEGRATION_TYPE] in (
INTEGRATION_TYPE_GEOGRAPHY_COORDS,
INTEGRATION_TYPE_GEOGRAPHY_NAME,
):
sensors = [
AirVisualGeographySensor(coordinator, config_entry, description, locale)
AirVisualGeographySensor(coordinator, entry, description, locale)
for locale in GEOGRAPHY_SENSOR_LOCALES
for description in GEOGRAPHY_SENSOR_DESCRIPTIONS
]
else:
sensors = [
AirVisualNodeProSensor(coordinator, description)
AirVisualNodeProSensor(coordinator, entry, description)
for description in NODE_PRO_SENSOR_DESCRIPTIONS
]
@@ -209,23 +221,22 @@ class AirVisualGeographySensor(AirVisualEntity, SensorEntity):
def __init__(
self,
coordinator: DataUpdateCoordinator,
config_entry: ConfigEntry,
entry: ConfigEntry,
description: SensorEntityDescription,
locale: str,
) -> None:
"""Initialize."""
super().__init__(coordinator, description)
super().__init__(coordinator, entry, description)
self._attr_extra_state_attributes.update(
{
ATTR_CITY: config_entry.data.get(CONF_CITY),
ATTR_STATE: config_entry.data.get(CONF_STATE),
ATTR_COUNTRY: config_entry.data.get(CONF_COUNTRY),
ATTR_CITY: entry.data.get(CONF_CITY),
ATTR_STATE: entry.data.get(CONF_STATE),
ATTR_COUNTRY: entry.data.get(CONF_COUNTRY),
}
)
self._attr_name = f"{GEOGRAPHY_SENSOR_LOCALES[locale]} {description.name}"
self._attr_unique_id = f"{config_entry.unique_id}_{locale}_{description.key}"
self._config_entry = config_entry
self._attr_unique_id = f"{entry.unique_id}_{locale}_{description.key}"
self._locale = locale
@property
@@ -267,16 +278,16 @@ class AirVisualGeographySensor(AirVisualEntity, SensorEntity):
#
# We use any coordinates in the config entry and, in the case of a geography by
# name, we fall back to the latitude longitude provided in the coordinator data:
latitude = self._config_entry.data.get(
latitude = self._entry.data.get(
CONF_LATITUDE,
self.coordinator.data["location"]["coordinates"][1],
)
longitude = self._config_entry.data.get(
longitude = self._entry.data.get(
CONF_LONGITUDE,
self.coordinator.data["location"]["coordinates"][0],
)
if self._config_entry.options[CONF_SHOW_ON_MAP]:
if self._entry.options[CONF_SHOW_ON_MAP]:
self._attr_extra_state_attributes[ATTR_LATITUDE] = latitude
self._attr_extra_state_attributes[ATTR_LONGITUDE] = longitude
self._attr_extra_state_attributes.pop("lati", None)
@@ -292,10 +303,13 @@ class AirVisualNodeProSensor(AirVisualEntity, SensorEntity):
"""Define an AirVisual sensor related to a Node/Pro unit."""
def __init__(
self, coordinator: DataUpdateCoordinator, description: SensorEntityDescription
self,
coordinator: DataUpdateCoordinator,
entry: ConfigEntry,
description: SensorEntityDescription,
) -> None:
"""Initialize."""
super().__init__(coordinator, description)
super().__init__(coordinator, entry, description)
self._attr_name = (
f"{coordinator.data['settings']['node_name']} Node/Pro: {description.name}"
@@ -305,16 +319,16 @@ class AirVisualNodeProSensor(AirVisualEntity, SensorEntity):
@property
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return {
"identifiers": {(DOMAIN, self.coordinator.data["serial_number"])},
"name": self.coordinator.data["settings"]["node_name"],
"manufacturer": "AirVisual",
"model": f'{self.coordinator.data["status"]["model"]}',
"sw_version": (
return DeviceInfo(
identifiers={(DOMAIN, self.coordinator.data["serial_number"])},
manufacturer="AirVisual",
model=f'{self.coordinator.data["status"]["model"]}',
name=self.coordinator.data["settings"]["node_name"],
sw_version=(
f'Version {self.coordinator.data["status"]["system_version"]}'
f'{self.coordinator.data["status"]["app_version"]}'
),
}
)
@callback
def update_from_latest_data(self) -> None:

View File

@@ -1,11 +1,30 @@
{
"config": {
"abort": {
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0442\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435 \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"general_error": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430",
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447"
},
"step": {
"geography_by_name": {
"data": {
"city": "\u0413\u0440\u0430\u0434",
"country": "\u0421\u0442\u0440\u0430\u043d\u0430"
}
},
"node_pro": {
"data": {
"ip_address": "\u0425\u043e\u0441\u0442",
"password": "\u041f\u0430\u0440\u043e\u043b\u0430"
}
},
"reauth_confirm": {
"data": {
"api_key": "API \u043a\u043b\u044e\u0447"
}
}
}
}

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