Compare commits

...

1631 Commits

Author SHA1 Message Date
Franck Nijhof 6d8d472f0f Merge pull request #61902 from home-assistant/rc 2021-12-15 17:02:35 +01:00
Franck Nijhof ac2897fc67 Bumped version to 2021.12.2 2021-12-15 16:04:48 +01:00
Bram Kragten e7e20533bd Update frontend to 20211215.0 (#61877) 2021-12-15 16:03:37 +01:00
Marcel van der Veldt 2772bae2e1 Bump aiohue to 3.0.5 (#61875) 2021-12-15 16:03:34 +01:00
Allen Porter 86622794e0 Bump google-nest-sdm to 0.4.8 (#61851) 2021-12-15 16:03:30 +01:00
Michael Davie 686f6768fc Fix broken Environment Canada (#61848) 2021-12-15 16:03:27 +01:00
Marvin Wichmann f271fea07c Allow setting local_ip for knx routing connections (#61836) 2021-12-15 16:03:24 +01:00
Aaron Bach 77b1df5902 Ensure SimpliSafe websocket reconnects upon new token (#61835) 2021-12-15 16:03:20 +01:00
Teemu R 1faa111222 Bump python-miio to 0.5.9.2 (#61831) 2021-12-15 16:03:17 +01:00
Daniel Hjelseth Høyer b513301363 Tibber, update library, fixes #61525 (#61813) 2021-12-15 16:03:14 +01:00
Erik Montnemery 32bdcdd663 Bump pychromecast to 10.2.1 (#61811) 2021-12-15 16:03:11 +01:00
Erik Montnemery 40f76d4ed9 Don't override pychromecast MediaController's APP ID (#61796) 2021-12-15 16:03:07 +01:00
MattWestb 34568aad89 Fix ZHA unoccupied setpoints. (#61791)
ATTR_UNOCCP_HEAT_SETPT and ATTR_UNOCCP_COOL_SETPT is mixed up. 
Fixing so heating is heating and cooling is colling.
2021-12-15 16:03:04 +01:00
Eduard van Valkenburg ffe84e8ece Bump brunt package to 1.0.1 (#61784) 2021-12-15 16:03:01 +01:00
Franck Nijhof 8cbd89282b Upgrade tailscale to 0.1.5 (#61744) 2021-12-15 16:02:58 +01:00
Marcel van der Veldt 1467668c94 Blacklist availability check for a light at startup in Hue integration (#61737) 2021-12-15 16:02:55 +01:00
Marcel van der Veldt bbef38964d Fix Flash effect for Hue lights (#61733) 2021-12-15 16:02:52 +01:00
Marcel van der Veldt 03b88af032 Fix turn_off with transition for grouped Hue lights (#61728)
* fix turn_off with transition for grouped hue lights

* add test
2021-12-15 16:02:49 +01:00
Marcel van der Veldt 0626bc8b4f Add check for incompatible device trigger in Hue integration (#61726) 2021-12-15 16:02:46 +01:00
Vilppu Vuorinen 37ecbc53a7 Update pymelcloud to 2.5.6 (#61717) 2021-12-15 16:02:43 +01:00
Paulus Schoutsen 52c96654a4 Bump aiohue to 3.0.4 (#61709) 2021-12-15 16:02:39 +01:00
Joakim Sørensen 791c2f4b8a Add additional-tag to machine builds (#61693) 2021-12-15 16:02:36 +01:00
Austin Mroczek ed041d5b7c Bump total_connect_client to 2021.12 (#61634) 2021-12-15 16:02:33 +01:00
Allen Porter 1833ab96dc Suppress errors for legacy nest api when using media source (#61629) 2021-12-15 16:02:29 +01:00
majuss ff2e2656b3 Upgrade lupupy to 0.0.24 (#61598) 2021-12-15 16:02:26 +01:00
bsmappee 599c20c76e Bump pysmappee to 0.2.29 (#61160) 2021-12-15 16:02:19 +01:00
Paulus Schoutsen 5df747276f Merge pull request #61625 from home-assistant/rc 2021-12-12 15:39:42 -08:00
Paulus Schoutsen 77b06bc158 Bump aiohue to 3.0.3 (#61627) 2021-12-12 14:29:37 -08:00
J. Nick Koston db6d176658 Bump aiopvapi to 1.6.19 to fix async_timeout passing loop (#61618) 2021-12-12 14:29:36 -08:00
Paulus Schoutsen 973eb4f6d4 Bumped version to 2021.12.1 2021-12-12 14:15:15 -08:00
Marcel van der Veldt 14401aa840 Fix availability for 3th party Hue lights (#61603) 2021-12-12 14:14:13 -08:00
Ernst Klamer b82ddb77bc Fix for failing Solarlog integration in HA 2021.12 (#61602) 2021-12-12 14:14:13 -08:00
Allen Porter 22530f72f3 Only publish nest camera event messages once per thread and bump nest version (#61587) 2021-12-12 14:14:12 -08:00
Marcel van der Veldt a16bf358aa enable grouped light if enabled in previous integration (#61582) 2021-12-12 14:14:12 -08:00
Marcel van der Veldt 0924874d4b Fix Hue transition calculation (#61581) 2021-12-12 14:14:11 -08:00
Bram Kragten a3ff783bc1 Update frontend to 20211212.0 (#61577) 2021-12-12 14:14:10 -08:00
J. Nick Koston e7d06e3f6a Fix HomeKit covers with device class window and no tilt (#61566) 2021-12-12 14:14:10 -08:00
Allen Porter a2fc870266 Update logic for nest media source can_play for events (#61537) 2021-12-12 14:14:09 -08:00
jjlawren ffcb107716 Fix Sonos sub & surround switch state reporting (#61531)
* Fix sub/surround states, refactor volume param handling

* Lint
2021-12-12 14:14:08 -08:00
Franck Nijhof 604a2ac327 Merge pull request #61501 from home-assistant/rc 2021-12-11 19:06:29 +01:00
Franck Nijhof 1042f23a0a Bumped version to 2021.12.0 2021-12-11 18:15:19 +01:00
Bram Kragten 608ce2d5a0 Update frontend to 20211211.0 (#61499) 2021-12-11 18:14:53 +01:00
Marcel van der Veldt 2e989bdfcf Fix typo in Hue device triggers - use enum value (#61498) 2021-12-11 18:14:45 +01:00
Franck Nijhof f10bfc961d Bumped version to 2021.12.0b7 2021-12-11 13:36:48 +01:00
J. Nick Koston 1f57c8ed1a Fix missing color modes for Magic Home Ceiling Light CCT (0xE1) (#61478) 2021-12-11 13:36:23 +01:00
J. Nick Koston dd47f0b698 Fix exception in color_rgb_to_rgbww (#61466) 2021-12-11 13:36:20 +01:00
J. Nick Koston 08eabfd056 Fix non-threadsafe call to async_fire in telegram_bot (#61465)
Fixes https://github.com/home-assistant/core/issues/53255#issuecomment-888111478
2021-12-11 13:36:17 +01:00
Marcel van der Veldt 7b64eabde1 Small fix for device triggers and events on Hue integration (#61462) 2021-12-11 13:36:13 +01:00
David F. Mulcahey 46808b1fc1 Bump ZHA quirks to 0.0.65 (#61458) 2021-12-11 13:36:09 +01:00
Simone Chemelli 23cb75fe20 Interim fix (#61435) 2021-12-11 13:33:56 +01:00
Erik Montnemery d20496a1bc Correct rest sensor configured to generate timestamps (#61429) 2021-12-11 13:26:33 +01:00
Erik Montnemery 4496aeb327 Correct recorder.statistics.get_last_statistics (#61421) 2021-12-11 13:26:30 +01:00
Erik Montnemery 519ec18a04 Correct device class for Tasmota dewpoint sensor (#61420) 2021-12-11 13:26:26 +01:00
J. Nick Koston c14269d09d Fix older v1 dimmable flux_led bulbs not turning on (#61414) 2021-12-11 13:26:21 +01:00
J. Nick Koston 81b1b04210 Fix flux_led discovery with older models (#61413) 2021-12-11 13:26:17 +01:00
Aaron Bach 18768ad8a0 Bump simplisafe-python to 2021.12.1 (#61412) 2021-12-11 13:26:13 +01:00
J. Nick Koston d038db01ed Fix lookin set temperature when device is off (#61411) 2021-12-11 13:26:09 +01:00
Matthias Alphart c51c18781d Fix unique_id of S0 meters connected to Fronius inverters (#61408) 2021-12-11 13:26:06 +01:00
bsmappee e483c16d59 Remove energy entity again in Smappee local integration (#61373) 2021-12-11 13:26:02 +01:00
Yehuda Davis 87b50fff54 Fix Tuya cover open/close commands (#61369)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-11 13:25:58 +01:00
bsmappee da9fbde83a add missing unit of measurement in Smappee (#61365) 2021-12-11 13:25:55 +01:00
MattWestb 6785e32683 Add 2 new CN-Hysen TRVs (#61002)
Adding CN-Hysen "_TZE200_pvvbommb" and "_TZE200_4eeyebrt" TRVs
2021-12-11 13:25:51 +01:00
Paulus Schoutsen 7208cb49f1 Disable lupusec (#61142) 2021-12-09 15:05:41 -08:00
Paulus Schoutsen 5476b23d8b Bumped version to 2021.12.0b6 2021-12-09 14:42:14 -08:00
Aaron Bach 5d65db5168 Assign docs URL to a placeholder in SimpliSafe config flow (#61410) 2021-12-09 14:42:05 -08:00
Paulus Schoutsen 509ebbc743 Bump frontend to 20211209.0 (#61406) 2021-12-09 14:42:05 -08:00
Aaron Bach abe6f1ab5b Consolidate SimpliSafe config flow forms into one (#61402) 2021-12-09 14:42:04 -08:00
jjlawren ae26e60740 Fix Sonos radio handling during polling (#61401) 2021-12-09 14:42:03 -08:00
bigbadblunt f8f381afa3 Add default value for signal_repetitions in cover (#61393) 2021-12-09 14:42:02 -08:00
einarhauks 7cc2af2a46 Update tesla-wall-connector to v1.0.1 (#61392) 2021-12-09 14:42:02 -08:00
Franck Nijhof 29aab7ad7a Bumped version to 2021.12.0b5 2021-12-09 12:09:53 +01:00
Franck Nijhof 3b2b116c10 Upgrade tailscale to 0.1.4 (#61338) 2021-12-09 12:08:36 +01:00
Paulus Schoutsen 07438c07c9 Fix CO2signal error handling (#61311) 2021-12-09 12:08:33 +01:00
Paulus Schoutsen 0203228a11 Fix hue groups inheritance (#61308) 2021-12-09 12:08:29 +01:00
J. Nick Koston fe7521b503 Fix lookin failing to setup during firmware updates (#61305) 2021-12-09 12:08:26 +01:00
Yehuda Davis 24a6e90042 Fix regression in Tuya cover is_closed logic (#61303) 2021-12-09 12:08:23 +01:00
Paulus Schoutsen 7387640524 Fix rova timezone (#61302) 2021-12-09 12:08:20 +01:00
Stefan Agner d7708d58ba Introduce only_supervisor for @websocket_api.ws_require_user() (#61298) 2021-12-09 12:08:16 +01:00
Paulus Schoutsen 10a4037ed3 Rest fixes (#61296) 2021-12-09 12:08:13 +01:00
J. Nick Koston aefd675737 Restore rest integration ability to follow http redirects (#61293) 2021-12-09 12:08:10 +01:00
J. Nick Koston 9a4a09b2f2 Bump flux_led to 0.26.3 (#61287) 2021-12-09 12:08:06 +01:00
Paulus Schoutsen 793bdebc13 Use correct template parameter in Rest template rendering (#61269) 2021-12-09 12:08:01 +01:00
Paulus Schoutsen e66f0a68e7 Guard cannot connect during Tuya init (#61267) 2021-12-09 12:07:58 +01:00
Paulus Schoutsen 5c70ddb7cb Fix smartthings timestamp sensor (#61254) 2021-12-09 12:07:55 +01:00
Erik Montnemery 79501289f0 Correct state class for Tasmota sensors (#61236)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2021-12-09 12:07:51 +01:00
Allen Porter 7ee148c650 Display nest media events using local time (#61143) 2021-12-09 12:07:48 +01:00
Franck Nijhof 1ddb0d255a Fix date/datetime support for templates (#61088)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-12-09 12:07:45 +01:00
Stefan Agner 89eed9c31e Allow to lock SQLite database during backup (#60874)
* Allow to set CONF_DB_URL

This is useful for test which need a custom DB path.

* Introduce write_lock_db helper to lock SQLite database

* Introduce Websocket API which allows to lock database during backup

* Fix isort

* Avoid mutable default arguments

* Address pylint issues

* Avoid holding executor thread

* Set unlock event in case timeout occures

This makes sure the database is left unlocked even in case of a race
condition.

* Add more unit tests

* Address new pylint errors

* Lower timeout to speedup tests

* Introduce queue overflow test

* Unlock database if necessary

This makes sure that the test runs through in case locking actually
succeeds (and the test fails).

* Make DB_LOCK_TIMEOUT a global

There is no good reason for this to be an argument. The recorder needs
to pick a sensible value.

* Add Websocket Timeout test

* Test lock_database() return

* Update homeassistant/components/recorder/__init__.py

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

* Fix format

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-12-09 12:07:41 +01:00
Paulus Schoutsen 0cb0136b2f Bumped version to 2021.12.0b4 2021-12-08 11:02:14 -08:00
Paulus Schoutsen 36eca38be2 don't convert GTFS timestamp to UTC in timestamp sensor (#61221) 2021-12-08 11:02:05 -08:00
Paulus Schoutsen 0b470bb8fb Fix follow-up review comment for bbox (#61219) 2021-12-08 11:02:04 -08:00
Paulus Schoutsen 030ac3d762 Fix yandex_transport timestamp sensor (#61217) 2021-12-08 11:02:04 -08:00
Paulus Schoutsen b5b2c3cc0d Fix vallox timestamp sensor (#61216)
* Fix vallox timestamp sensor

* Change old state type
2021-12-08 11:02:03 -08:00
Paulus Schoutsen 7940aab4c5 Fix repetier timestamp sensors (#61214) 2021-12-08 11:02:02 -08:00
Paulus Schoutsen 2513347e27 Fix oasa_telematics timestamp sensor (#61213) 2021-12-08 11:02:01 -08:00
Paulus Schoutsen e6b784e4f2 Fix nextbus timestamp sensor (#61212) 2021-12-08 11:02:00 -08:00
Paulus Schoutsen d080c31583 Fix modern_forms timestmap sensors (#61211) 2021-12-08 11:01:59 -08:00
Paulus Schoutsen e68dcff3f3 Fix meteo_france timestamp sensor (#61210) 2021-12-08 11:01:58 -08:00
Paulus Schoutsen 66fa6dff93 Fix lyric timestamp sensor (#61209)
* Fix lyric timestamp sensor

* Update type
2021-12-08 11:01:57 -08:00
Paulus Schoutsen d533aba4f9 Fix litterrobot timestamp sensor (#61208)
* Fix litterrobot timestamp sensor

* Update type
2021-12-08 11:01:56 -08:00
Paulus Schoutsen 700eaf8794 Fix islamic prayer times timestamp sensor (#61207) 2021-12-08 11:01:56 -08:00
Paulus Schoutsen 7583d9a409 Fix hydrawise timestamp sensor (#61206) 2021-12-08 11:01:55 -08:00
Paulus Schoutsen dc3ece447b Fix hvv_departures timestamp sensor (#61205) 2021-12-08 11:01:54 -08:00
Paulus Schoutsen 2c0e406c1b Fix gtfs timestamp sensor (#61204) 2021-12-08 11:01:53 -08:00
Paulus Schoutsen 67c808bde9 Fix flipr timestamp sensor (#61203) 2021-12-08 11:01:52 -08:00
Paulus Schoutsen 2fa2a2e6d4 Fix bbox timestamp (#61202) 2021-12-08 11:01:52 -08:00
Paulus Schoutsen 8735395144 Fix Rova using strings as timestamp (#61201) 2021-12-08 11:01:51 -08:00
J. Nick Koston 428129cad7 Fix log spam from flux_led 0x08 devices when in music mode (#61196) 2021-12-08 11:01:50 -08:00
puddly 64c52aecef Bump ZHA dependency zigpy-znp from 0.6.3 to 0.6.4 (#61194) 2021-12-08 11:01:49 -08:00
J. Nick Koston 04a2e1fd7b Fix uncaught exception in bond config flow (#61184) 2021-12-08 11:01:49 -08:00
Robert Blomqvist bdc37e9353 Rephrase upgrade notification message to avoid installing Python 3.10 (#61181) 2021-12-08 11:01:48 -08:00
Jan Bouwhuis a581095bd0 Fix pvoutput template use and REST integer parsing (#61171)
* Fix pvoutput template use and REST integer parsing

* revert accepting templates as input
2021-12-08 11:01:47 -08:00
Erik Montnemery 707e501511 Skip duplicated data when calculating fossil energy consumption (#60599) 2021-12-08 11:01:46 -08:00
Paulus Schoutsen 9f1701f557 Bumped version to 2021.12.0b3 2021-12-07 12:54:28 -08:00
Charles Garwood 61545edd96 Remove loopenergy integration (#61175)
* Remove loopenergy integration

* Fix requirements_all.txt

* Fix requirements_test_all.txt
2021-12-07 12:54:22 -08:00
Allen Porter e09c85c591 Bump nest to 0.4.5 to fix media player event expiration (#61174) 2021-12-07 12:54:21 -08:00
einarhauks fecfbba442 Display energy in wh instead of kWh (#61169) 2021-12-07 12:54:21 -08:00
Aaron Bach 13ce6edc68 Bump py17track to 2021.12.2 (#61166) 2021-12-07 12:54:20 -08:00
Tobias Sauerwein 816b5af883 Fix Netatmo climate issue (#61154)
Signed-off-by: cgtobi <cgtobi@gmail.com>
2021-12-07 12:54:19 -08:00
Erik Montnemery 78ada630c0 Guard against missing states in Alexa state updates (#61152) 2021-12-07 12:54:18 -08:00
Marcel van der Veldt 4ad904f3b7 Change check for existence of options flow (#61147)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-12-07 12:54:16 -08:00
Fredrik Erlandsson fa447332c6 Fix point availability (#61144) 2021-12-07 12:54:15 -08:00
Erik Montnemery 8da3756602 Bump hatasmota to 0.3.1 (#61120) 2021-12-07 12:54:15 -08:00
G Johansson 01adc6a042 Improve code quality trafikverket_weatherstation (#61044)
* Code quality trafikverket_weatherstation

* Updates from review

* Fix extra attributes settings

* Fix for additional review comments
2021-12-07 12:54:14 -08:00
Paulus Schoutsen d105e9f99e Bumped version to 2021.12.0b2 2021-12-06 15:54:09 -08:00
Paulus Schoutsen 348079f069 Bump frontend to 20211206.0 (#61133) 2021-12-06 15:54:01 -08:00
Aaron Bach 86f5165e4c Deprecate entity_id parameter in Guardian service calls (#61129) 2021-12-06 15:54:00 -08:00
jjlawren b6d012222a Improve Sonos activity debug logging (#61122) 2021-12-06 15:53:59 -08:00
Aaron Bach 0532c22069 Bump simplisafe-python to 2021.12.0 (#61121) 2021-12-06 15:53:58 -08:00
Marcel van der Veldt d1672a1e9a Remove colon from default entity name in Hue integration (#61118) 2021-12-06 15:53:58 -08:00
Paulus Schoutsen 725e3046db Return native timestamps for home connect (#61116) 2021-12-06 15:53:57 -08:00
Paulus Schoutsen 325aa66b8c Bump aiohue to 3.0.2 (#61115) 2021-12-06 15:53:56 -08:00
Erik Montnemery 3ba07ce395 Fix CO2 calculation when data is missing (#61106) 2021-12-06 15:53:56 -08:00
Martin Hjelmare 21463121a7 Improve zwave_js add-on config flow description (#61099) 2021-12-06 15:53:55 -08:00
Marcel van der Veldt ef0f3f7ce9 Fix migration of entities of Hue integration (#61095)
* fix device name in log

* Fix Hue migration for all id versions

* fix tests

* typo

* change to bit more universal approach

* fix test again

* formatting
2021-12-06 15:53:54 -08:00
epenet cb371ef27c Prevent log flooding in frame helper (#61085)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-06 15:53:54 -08:00
J. Nick Koston 878700e26f Provide a hint on which username to use for enphase_envoy (#61084) 2021-12-06 15:53:53 -08:00
J. Nick Koston e09245eb14 Fix missing unique id in enphase_envoy (#61083) 2021-12-06 15:53:52 -08:00
J. Nick Koston 20fb06484c Bump enphase_envoy to 0.20.1 (#61082) 2021-12-06 15:53:51 -08:00
Allen Porter f4a38c0190 Coalesce nest media source preview clips by session and bump google-nest-sdm (#61081) 2021-12-06 15:53:50 -08:00
Allen Porter fa33464217 Remove unnecessary explicit use of OrderedDict in nest media source (#61054)
Address follow up PR comments from #60073
2021-12-06 15:53:49 -08:00
Alexander Pitkin bd239bcbed Fix yandex transport for Belarus (#61080) 2021-12-06 15:52:00 -08:00
Aaron Bach d5f3e2a761 Deprecate system_id parameter in SimpliSafe service calls (#61076) 2021-12-06 15:51:59 -08:00
J. Nick Koston ec88a42948 Abort flux_led discovery if another device gets the ip (#61074)
- If the dhcp reservation expired for the device that
  was at the ip and a new flux_led device appears we
  would discover it because the unique_id did not match
2021-12-06 15:51:59 -08:00
Alexei Chetroi a3ede8f895 Add 3157100-E model to Centralite thermostat (#61073) 2021-12-06 15:51:58 -08:00
J. Nick Koston 23ebde58cd Bump flux_led to 0.25.17 to fix missing push messages on 0xA3 models (#61070) 2021-12-06 15:51:57 -08:00
Allen Porter 0c87885f41 Fix regression in nest event media player with multiple devices (#61064) 2021-12-06 15:51:56 -08:00
Aaron Bach c159790caf Fix mispelling in SimpliSafe service description (#61058) 2021-12-06 15:51:56 -08:00
Allen Porter 056575f491 Add debug logging for pip install command (#61057) 2021-12-06 15:51:55 -08:00
Jérôme W e4d9d0d83e Add media player volume control in fr-FR with Alexa (#60489)
* media player volume control in `fr-FR` with Alexa

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-12-06 15:51:54 -08:00
schreyack 34f728e5d2 Fix previous setting briefly appearing on newer flux_led devices when turning on (#60004)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-12-06 15:51:54 -08:00
Allen Porter 377046bff5 Fetch media for events for rendering in the nest media player (#61056) 2021-12-05 09:52:28 -08:00
Marcel van der Veldt dd95b9b1e4 Disable options flow for Hue V2 bridges (#61045) 2021-12-05 09:52:28 -08:00
Marcel van der Veldt a976ed2c72 Add guard for empty mac address in Hue integration (#61037) 2021-12-05 09:52:27 -08:00
Marcel van der Veldt 90442d9e9e Fix Hue migration (#61030) 2021-12-05 09:52:26 -08:00
Marcel van der Veldt c67b250be2 Fix Hue config flow (#61028) 2021-12-05 09:52:26 -08:00
J. Nick Koston 974cc94f87 Update flux_led models database to fix turn on for newer models (#61005) 2021-12-05 09:52:25 -08:00
david reid 528d4bc6ce Catch ConnectionResetError (#60987) 2021-12-05 09:52:24 -08:00
Franck Nijhof 7a4f1c3147 Handle unknown/unavailable state for mobile_app (#60974) 2021-12-05 09:52:24 -08:00
Teemu R c70f833069 Use STATE_DOCKED for emptying the bin for xiaomi_miio.vacuum (#60513) 2021-12-05 09:52:23 -08:00
Paulus Schoutsen eaf53c10ed Bumped version to 2021.12.0b1 2021-12-05 09:44:11 -08:00
Allen Porter 576362bfe1 Bump nest to version 0.4.2 (#61036) 2021-12-05 09:43:52 -08:00
J. Nick Koston 4e957b1dbe Fix lutron caseta discovery with newer firmwares (#61029) 2021-12-05 09:43:51 -08:00
Allen Porter c4fe3d05f2 Improve nest media source event timestamp display (#61027)
Drop subsecond text from the nest media source event timestamp display, using a common date/time
template string.
2021-12-05 09:43:51 -08:00
Marvin Wichmann f81055dc09 Add missing local_ip to KNX config flow and options flow (#61018)
* Add missing local_ip to KNX config flow and options flow

* Update strings
2021-12-05 09:43:50 -08:00
Erik Montnemery 70814130c3 Fix translations for binary_sensor tampered device triggers (#60996) 2021-12-05 09:43:49 -08:00
Franck Nijhof 0e70121a6f Fix typo in state_characteristic warning (#60990) 2021-12-05 09:43:49 -08:00
Franck Nijhof 62a60f1cf6 Fix str for device registry entry_type warnings caused by core (#60989) 2021-12-05 09:43:48 -08:00
Franck Nijhof 6a1dce852e Fix DSMR Reader providing strings as timestamps (#60988) 2021-12-05 09:43:47 -08:00
Franck Nijhof af1ad0e6f8 Only report deprecated device_state_attributes once (#60980) 2021-12-05 09:43:47 -08:00
Franck Nijhof dd2e250c66 Fix Xiaomi Miio providing strings as timestamps (#60979) 2021-12-05 09:43:46 -08:00
Martin Hjelmare 18f36b9c0b Revert metoffice weather daytime (#60978) 2021-12-05 09:43:45 -08:00
J. Nick Koston 2ba7f9c584 Fix flood lights not turning on/off with flux_led (#60973) 2021-12-05 09:43:45 -08:00
J. Nick Koston 5a3dd71bde Fix dimmable effects for flux_led model 0x33 v9+ (#60972) 2021-12-05 09:43:44 -08:00
Franck Nijhof 823a4578d7 Upgrade netdata to 1.0.1 (#60971) 2021-12-05 09:43:43 -08:00
Franck Nijhof b5bfa728e9 Upgrade luftdaten to 0.7.1 (#60970) 2021-12-05 09:43:43 -08:00
J. Nick Koston 11b343a513 Fix yeelight name changing to ip address if discovery fails (#60967) 2021-12-05 09:43:42 -08:00
Paulus Schoutsen fe46b2664a Handle invalid device registry entry type (#60966)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-05 09:43:41 -08:00
Paulus Schoutsen 53e2ebc688 Correctly type the SSDP callback function (#60964) 2021-12-05 09:43:41 -08:00
Paulus Schoutsen 4023d55229 Fix statistics registering at start callback (#60963) 2021-12-05 09:43:40 -08:00
Aaron Bach 823e46ea26 Ensure that inactive RainMachine switch that is toggled on is toggled back off (#60959) 2021-12-05 09:43:39 -08:00
Aaron Bach 0b9efc2a06 Add missing SimpliSafe service information (#60958) 2021-12-05 09:43:38 -08:00
Raman Gupta 6af9471710 Fix nzbget datetime return value (#60953) 2021-12-05 09:43:38 -08:00
rikroe f78e59842d Fix BMW Connected Drive (#60938)
* Bump bimmer_connected to 0.8.5

* Always update HA states after service execution

* Fix BMW device tracker & vehicle_finder service

* Add charging_end_time sensor

* Fix pylint & pytest

* Remove unneeded DEFAULT_OPTION

* Revert adding charging_end_time & state_attributes

* Don't delete option data for CONF_USE_LOCATION

* Remove stale string

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-12-05 09:43:37 -08:00
Franck Nijhof 215d0ac612 Bumped version to 2021.12.0b0 2021-12-03 20:29:15 +01:00
Chen-IL ac26c2378b Add temperature sensors for Asuswrt (#58303)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-12-03 11:27:17 -08:00
J. Nick Koston 0dfc86956b Reduce flux_led dhcp matching complexity (#60934) 2021-12-03 20:26:15 +01:00
Clifford Roche d6c27809dc Gree update device ips when changed (#57876) 2021-12-03 11:18:53 -08:00
Raman Gupta 788a9bd9f7 Clean up eight_sleep code (#58508) 2021-12-03 11:17:00 -08:00
Marc Mueller b60b38c6f6 Fix amcrest pylint issue (#60932) 2021-12-03 20:14:21 +01:00
Jonathan Keslin c915aa1493 Update volvooncall, add hybrid plug status (#58919) 2021-12-03 11:07:03 -08:00
Jan Bouwhuis 88b93546f3 Re-add-tests with new filters removed with #60854 (#60895) 2021-12-03 11:04:05 -08:00
jjlawren 171b57bf32 Use _attrs where possible in Sonos (#60931) 2021-12-03 10:57:19 -08:00
Allen Porter ba99dc3af9 Add Nest Battery Cam event clip support with a Nest MediaSource (#60073) 2021-12-03 10:53:05 -08:00
Matthias Alphart 40f1b0d3a5 Add quality scale for Fronius (#60531) 2021-12-03 19:43:01 +01:00
dougiteixeira fdb13726f6 Add more Tuya Vacuum sensors and select entities (#60927)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-12-03 19:38:32 +01:00
epenet b65b25c1bb Move MqttServiceInfo to init.py (#60905)
Co-authored-by: epenet <epenet@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-12-03 19:34:48 +01:00
Franck Nijhof 74d1c340d7 Allow use of relative_time as a filter (#60923) 2021-12-03 19:30:12 +01:00
David F. Mulcahey 02b5449648 Add support for siren entities in ZHA (#60920) 2021-12-03 19:23:57 +01:00
Bram Kragten df36b3dcb8 Update frontend to 20211203.0 (#60925) 2021-12-03 10:20:09 -08:00
Erik Montnemery e50a47621f Enable basic type checking for climacell (#55334) 2021-12-03 10:08:23 -08:00
jjlawren cbf2bf2e1f Add audio input format sensor to Sonos HT devices (#60884) 2021-12-03 10:06:56 -08:00
Marius b61dede826 Add command_line icon_template (#58877)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2021-12-03 10:06:32 -08:00
Pedro Rodriguez Tavarez e0562385f1 Implement privacy_mode for amcrest integration (#57210) 2021-12-03 10:00:39 -08:00
Franck Nijhof 943c12e5fa Revert "Temporarily disable CI concurrency" (#60928) 2021-12-03 18:56:07 +01:00
Tobias Sauerwein cf7a614309 Add battery sensor for Netatmo climate devices (#60911) 2021-12-03 09:33:24 -08:00
yanuino a80447f096 Use state class enum for DHT (#60916) 2021-12-03 18:32:04 +01:00
Marvin Wichmann 3baa7b679d Use new Platform enum in KNX (#60902) 2021-12-03 09:29:38 -08:00
Matthias Alphart 77cd751543 DHCP discovery for Fronius integration (#60806)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-12-03 18:29:15 +01:00
epenet 75ec937359 Use new Platform enum in Renault (#60903)
* Use Platform enum in Renault

* Use Platform enum in Renault tests

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 09:28:04 -08:00
epenet 231d434b76 Use new Platform enum in Onewire (#60904)
* Use new Platform enum in Onewire

* Use Platform in tests

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 09:25:22 -08:00
epenet a6cd3e2a02 Use dataclass properties in yeelight (#60912)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 09:20:58 -08:00
epenet adf2fa5664 Use EntityCategory enum in Onewire (#60907)
* Use EntityCategory enum in Onewire

* Add checks for the entity_category

* Fix typo

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 09:20:00 -08:00
Franck Nijhof 0a2ca1f7d5 Temporarily disable CI concurrency (#60926) 2021-12-03 09:16:18 -08:00
Erik Montnemery 17dc609363 Correct validation of conditions in scripts and automations (#60890)
* Correct validation of conditions in scripts and automations

* Fix test
2021-12-03 09:08:28 -08:00
Marc Mueller f57d42a9e8 Use platform enum (1) [A-D] (#60908)
* Use platform enum (1) [A-D]

* Fix imports

* Fix tests

* Use Platform even in tests
2021-12-03 08:51:30 -08:00
Bram Kragten ef458b237c Return if user is local only (#60917) 2021-12-03 16:34:26 +01:00
jjlawren b883014ed4 Add Sonos subwoofer and surround on/off controls (#60918) 2021-12-03 16:05:40 +01:00
jjlawren 7d8b3e9de3 Bump soco to 0.25.0 (#60915) 2021-12-03 15:34:18 +01:00
Martin Hjelmare deae8dd07b Bump pytradfri to 7.2.1 (#60910) 2021-12-03 15:30:09 +01:00
epenet e64f901e92 Use dataclass properties in zwave_js (#60913)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 14:47:56 +01:00
epenet 358922db56 Use dataclass for HassioServiceInfo (#60824)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 14:05:56 +01:00
Franck Nijhof e8b4b70747 Mark config schema as removed in Verisure (#60896) 2021-12-03 11:22:28 +01:00
Joakim Sørensen d784c8dd1a Remove Supervisor panel title and icon (#60894) 2021-12-03 10:35:57 +01:00
Tuen Lee 85293d8073 Update tuya cover, fix Up/down position (#59858) 2021-12-03 10:23:15 +01:00
Maciej Bieniek 67f9118cbf Use native datetime value in Brother uptime sensor (#60363) 2021-12-03 09:58:27 +01:00
Marvin Wichmann 707fe67c00 Move StrEnum to homeassistant.backports and move Platform to homeassistant.const (#60880)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-12-03 09:31:17 +01:00
Jan Bouwhuis 3188a364e2 Add template filters pack and unpack (#60836)
* add pack and unpack template filters

* Add unpack test with offset

* use unpack_from

* Simplify unpack_from statement
2021-12-03 08:58:15 +01:00
epenet c04bfcc7f4 Use dataclass properties in devolo_home_network tests (#60889)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 08:51:42 +01:00
epenet b70d24394e Use dataclass properties in homekit_controller tests (#60891)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 08:51:13 +01:00
epenet 2da9a51919 Use dataclass properties in keenetic_ndms2 tests (#60892)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 08:50:52 +01:00
Erik Montnemery 9f4a99fe81 Revert "Add bytes support for bitwise template operations" (#60854) 2021-12-03 08:50:29 +01:00
epenet a64ff2ae27 Use dataclass properties in system_bridge tests (#60888)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-03 08:49:35 +01:00
ollo69 c33e3e465b Use entity category enums in AsusWrt (#60882) 2021-12-03 08:37:51 +01:00
ollo69 8eb056396c Use entity category enums in Nut (#60883) 2021-12-03 08:37:19 +01:00
epenet 4207d5a85f Use dataclass properties in upnp (#60893)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 23:32:42 -08:00
Kevin Worrel e1b4e40ac6 Limit parallel updates for screenlogic number ents (#60886) 2021-12-02 20:43:15 -10:00
Kevin Worrel 9d1985ab03 Move screenlogic SCG levels to number platform (#60872)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-12-02 16:36:31 -10:00
puddly 4758a4fdc8 Bump ZHA dependency zigpy-znp from 0.6.1 to 0.6.3 (#60871) 2021-12-02 20:27:35 -05:00
GitHub Action 42fff989d1 [ci skip] Translation update 2021-12-03 00:13:00 +00:00
Paulus Schoutsen e8c6e0ef2b Bump frontend to 20211202.0 (#60877) 2021-12-02 15:19:09 -08:00
Erik Montnemery 0e3bc21d54 Teach state and numeric_state conditions about entity registry ids (#60841) 2021-12-02 14:55:12 -08:00
Erik Montnemery a07f75c6b0 Revert "Allow template int filter to render from a bytes based integer" (#60855) 2021-12-02 14:37:19 -08:00
Franck Nijhof c8b0a3b667 Revert "Move Platform StrEnum to const" (#60875) 2021-12-02 14:19:08 -08:00
Franck Nijhof 6e220d5d17 Move Platform StrEnum to const (#60857) 2021-12-02 22:30:52 +01:00
David F. Mulcahey fd8e7ae5d9 Add PPB VOC sensor to ZHA (#60853) 2021-12-02 16:05:15 -05:00
Franck Nijhof 3c66706a49 Clean up deprecated sanitize_filename and sanitize_path (#60859) 2021-12-02 15:35:11 -05:00
epenet 9e96f3e227 Use HassioServiceInfo in deconz tests (#60868) 2021-12-02 10:33:23 -10:00
J. Nick Koston d7c4a669f1 Revert "Use HassioServiceInfo in mqtt tests" (#60867) 2021-12-02 10:13:41 -10:00
epenet 37200decf9 Use HassioServiceInfo in mqtt tests (#60865) 2021-12-02 10:10:50 -10:00
epenet 272b147550 Use HassioServiceInfo in adguard tests (#60866) 2021-12-02 10:10:15 -10:00
epenet ade228ebc6 Use HassioServiceInfo in motioneye tests (#60861) 2021-12-02 10:09:26 -10:00
epenet 2be939b45b Use HassioServiceInfo in zwave_js tests (#60863) 2021-12-02 20:57:45 +01:00
epenet dff624f371 Use HassioServiceInfo in ozw tests (#60864) 2021-12-02 20:56:54 +01:00
Aaron Bach 3f2519bedf Reorganize Guardian services (#58632) 2021-12-02 09:47:15 -10:00
Aaron Bach 9aa0994809 Add configuration URL for SimpliSafe (#60860) 2021-12-02 09:42:31 -10:00
epenet 0723b1c539 Introduce HassioServiceInfo (#60844)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 11:17:54 -08:00
Aaron Bach e641214c60 Reorganize SimpliSafe services (#58722) 2021-12-02 09:07:14 -10:00
Paulus Schoutsen d9c567e205 Fix Ring sensors with timestamp class returning a string (#60850) 2021-12-02 19:55:52 +01:00
David F. Mulcahey c466f3767a Bump ZHA dependencies (#60852) 2021-12-02 13:32:55 -05:00
MattWestb 2bc0493535 Adding presets for new tuya TRV (#60408)
Adding presets for _TZE200_2atgpdho and _TYST11_2atgpdho and also deleting it for Beca Smart with old Zigbee module then its looks like they is not releasing devices with it.
2021-12-02 13:32:35 -05:00
Erik Montnemery 5b8d081441 Teach zone trigger about entity registry ids (#60838) 2021-12-02 10:28:21 -08:00
Erik Montnemery a67a4873dc Minor refactor of template cover (#59537) 2021-12-02 10:26:10 -08:00
dougiteixeira 824e5ed6b8 Tuya Vacuum: Adjusted comand PAUSE (#60849) 2021-12-02 19:12:58 +01:00
jjlawren 60adccd549 Do not print full traceback during Sonos resubscription failure (#60644) 2021-12-02 08:11:08 -10:00
Franck Nijhof 65a7563ac9 CI: Upload coverage results in a single step (#60834) 2021-12-02 19:00:17 +01:00
Erik Montnemery 411b0f0b15 Generate external statistics in demo component (#58470) 2021-12-02 09:55:46 -08:00
J. Nick Koston 8e0ef52cc8 Ensure sonos ssdp callbacks use dataclass methods (#60782) 2021-12-02 09:53:08 -08:00
epenet 0c18d710cc Use dataclass properties in yamaha_musiccast (#60787)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 09:50:35 -08:00
epenet 66494b0238 Use dataclass properties in dlna_dmr (#60794)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 09:49:34 -08:00
epenet d775c66194 Tidy up ssdp_location parsing (#60846)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 09:47:20 -08:00
Erik Montnemery 36734972f0 Teach numeric state trigger about entity registry ids (#60835) 2021-12-02 09:45:40 -08:00
Shay Levy f46055de99 Fix Shelly device name for older firmware (#60826) 2021-12-02 09:26:00 -08:00
jjlawren e56a676fd5 Import helpers in Sonos instead of accessing hass (#60848) 2021-12-02 18:21:49 +01:00
Franck Nijhof 7d3fcfbd30 Add Platform StrEnum to entity_platform (#60818) 2021-12-02 09:07:09 -08:00
Ville Skyttä 4107063a5a Make entity registry disabled_by an enum (#60424) 2021-12-02 18:02:29 +01:00
Kyle Hildebrandt d6dff403c9 Set _attr_is_on to True for avion on init (#60433) 2021-12-02 16:37:29 +01:00
Matt 7019c524fa Add configuration_url to Forecast.Solar integration (#60384)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-02 16:36:41 +01:00
Martin Hjelmare c8781bbe3b Simplify zwave_js USB discovery add-on form (#60845) 2021-12-02 16:30:01 +01:00
Franck Nijhof bf6ca2527d Upgrade guppy3 to 3.1.2 (#60842) 2021-12-02 15:58:00 +01:00
Teemu R 82f26392b4 Bump xiaomi_miio dependency (#60807) 2021-12-02 15:03:03 +01:00
Franck Nijhof 49ebb27b44 Run partial tests without coverage for Python 3.8 (#60827) 2021-12-02 14:38:00 +01:00
Erik Montnemery c85bb27d0d Teach state trigger about entity registry ids (#60271)
* Teach state trigger about entity registry ids

* Tweak

* Add tests

* Tweak tests

* Fix tests

* Resolve entity ids during config validation

* Update device_triggers

* Fix mistake

* Tweak trigger validator to ensure we don't modify the original config

* Add index from entry id to entry

* Update scaffold

* Pre-compile UUID regex

* Address review comment

* Tweak mock_registry

* Tweak

* Apply suggestion from code review
2021-12-02 14:26:45 +01:00
Matthias Alphart c0fb1bffce Use Enums in EntityDescriptions in Fronius (#60832) 2021-12-02 12:43:59 +01:00
Matthias Alphart f2f6602890 Add support for Ohmpilots to Fronius integration (#60765)
* add support for Fronius Ohmpilot

* disable the debugger
2021-12-02 11:05:22 +01:00
J. Nick Koston da2fb17d94 Update flux_led for upstream strict typing (#60800)
- Bump library to 0.25.10

- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.25.2...0.25.10

- This is a squashed version of #60554 since that one keeps failing to restore the python env on 3.9
2021-12-02 10:55:06 +01:00
Tobias Sauerwein 653fb5b637 Update Netatmo climate platform (#59974) 2021-12-02 10:31:54 +01:00
Jan Bouwhuis 3307e54363 Add MQTT availability template and encoding (#60470)
* Add MQTT availability template and encoding

* use generic encoding field

* pylint and cleanup

* remove additional topic check
2021-12-02 10:21:31 +01:00
Franck Nijhof 42bae5439b Add support for Christmas Tree pickup to TwenteMilieu (#60822) 2021-12-02 10:21:19 +01:00
Franck Nijhof 4c158e8168 Upgrade twentemilieu to 0.5.0 (#60820) 2021-12-02 10:00:16 +01:00
Simone Chemelli 00605c1e35 Fix old model network suffix for Fritz (#60802) 2021-12-02 09:59:07 +01:00
Tobias Sauerwein 63c377a239 Use state class enums in airvisual (#60819) 2021-12-02 09:53:02 +01:00
Milan Meulemans 831e69d07c Use callback instead of coroutine function (#60821) 2021-12-02 09:52:19 +01:00
Tobias Sauerwein a9b2036de1 Use state class enums in aemet (#60817) 2021-12-02 09:26:39 +01:00
Thomas Dietrich bee3c9102c Add binary characteristics, add deprecation warning for optional state_characteristic parameter (#60402)
* Add binary source sensor statistics

* Make state_characteristic a required parameter

* Move binary unitless testcase

* Add testcases for binary characteristics

* Revert charact. to optional with deprecation warning

* Correctly check for binary supported characteristic
2021-12-02 09:03:24 +01:00
Franck Nijhof 9128dc214c Upgrade apprise to 0.9.6 (#60816) 2021-12-02 08:54:52 +01:00
Tobias Sauerwein c033348323 Use state class enums in Advantage Air (#60815) 2021-12-02 08:45:16 +01:00
Tobias Sauerwein d619a86b4e Use state class enums in AccuWeather (#60813) 2021-12-02 08:24:59 +01:00
Milan Meulemans caa04c1866 Add support for Nanoleaf push updates (#60708) 2021-12-01 17:50:17 -10:00
Franck Nijhof 0c4b308e03 Use device class enum in Stookalert (#60789) 2021-12-01 22:16:09 -05:00
Franck Nijhof 58fdcfb6b8 Use device/state class enums in DSMR (#60791) 2021-12-01 22:15:17 -05:00
Gage Benne 8e715064cc Bump pydexcom version to 0.2.1 (#60812) 2021-12-01 22:11:55 -05:00
Franck Nijhof 8279873018 Extend entities provided by Tailscale (#60785) 2021-12-01 21:47:10 -05:00
avee87 d0da0eef36 Add day/night markers to MetOffice daily forecast (#58679) 2021-12-01 21:42:59 -05:00
avee87 d066864158 Use precipitation probability in MetOffice forecasts (#58677) 2021-12-01 21:41:28 -05:00
einarhauks ed106f203f Update tesla_wall_connector lib to version 1.0.0 (#60776) 2021-12-01 21:29:29 -05:00
Franck Nijhof 563b488739 Use state/device/entity category enums in Tuya (#60788) 2021-12-01 21:19:24 -05:00
ollo69 c875d726b1 Use state and device class enums in Nut (#60810) 2021-12-01 21:11:19 -05:00
Milan Meulemans 43d8c8fc2d Use entity category enum in Rituals (#60809) 2021-12-01 21:11:05 -05:00
ollo69 7dc2a11ea5 Use state class enums in AsusWrt (#60808) 2021-12-01 21:10:54 -05:00
GitHub Action de792e3af2 [ci skip] Translation update 2021-12-02 00:13:02 +00:00
Aaron Bach 344cd0d71f Only unload RainMachine services if the last config entry is loaded (#60805) 2021-12-01 16:59:33 -07:00
Paulus Schoutsen 12cd87d230 Bump frontend to 20211201.0 (#60801) 2021-12-01 15:20:08 -08:00
G Johansson d211dc6e6e Fix trafikverket_weatherstation (#60772)
* First commit

* Modify test according to fixes

* Review changes

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-02 00:14:42 +01:00
Joakim Plate c54ca7941f Make sure entity inherit disabled device (#60469) 2021-12-01 13:59:57 -08:00
Kevin Stillhammer d1962f6e51 Cleanup here_travel_time tests (#60529) 2021-12-01 21:52:44 +01:00
jjlawren cb7e7e9bd1 Improve Sonos activity tracking (#60642) 2021-12-01 21:49:21 +01:00
epenet 0cf228d5a1 Use dataclass properties in hyperion (#60792) 2021-12-01 21:46:55 +01:00
Joakim Sørensen 737dd6fc26 Add tests to hassio binary_sensor platform (#60609) 2021-12-01 21:41:31 +01:00
J. Nick Koston 4b8a8dda8d Fix yeelight discovery (#60783)
Regressed in #60640
2021-12-01 15:13:59 -05:00
epenet 2b49694a4c Use dataclass properties in songpal discovery (#60786) 2021-12-01 20:46:10 +01:00
Daniel Hjelseth Høyer fbaec76b8a Add more Tractive sensors (#55170)
* Tractive, add more sensors

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

* source

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

* Fix unit for sensor

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

* Device state

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

* Device state

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

* Tractive

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

* Tractive

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

* unit

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

* Handle unavailable

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

* time

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

* continue

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

* remove sensor

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

* style

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

* tractive states

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-12-01 20:44:48 +01:00
epenet 1fa0351447 Use dataclass properties in tolo discovery (#60784) 2021-12-01 20:43:33 +01:00
epenet 7a098cff1c Use dataclass properties in upnp discovery (#60744)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 09:23:38 -10:00
Franck Nijhof ed8794de1c Upgrade tailscale to 0.1.3 (#60780) 2021-12-01 20:13:27 +01:00
Eric Mai 4437926e06 Map OpenWeatherMap weather condition 721 to Fog instead of Exceptional (#60518) 2021-12-01 19:59:27 +01:00
epenet e95914cf60 Use dataclass properties in dlna_dmr discovery (#60693)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 08:59:12 -10:00
Franck Nijhof d7bf8a7ac3 Upgrade aiohttp to 3.8.1 (#60778) 2021-12-01 19:45:16 +01:00
Franck Nijhof b32e1d9339 Upgrade hole to 0.7.0 (#60779) 2021-12-01 19:44:42 +01:00
Tobias Sauerwein a1aaecb3bf Use state class enums in Netatmo (#60725) 2021-12-01 19:40:51 +01:00
epenet a3cccb50c7 Use dataclass properties in tesla_wall_connector discovery (#60741)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 19:39:43 +01:00
epenet 3d5f4e54ea Use dataclass properties in vicare discovery (#60746)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 19:39:03 +01:00
epenet 4411d51d6f Use dataclass properties in deconz discovery (#60690)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 19:38:20 +01:00
epenet 6a926b41f2 Enable warnings for SsdpServiceInfo (#60756)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 08:35:39 -10:00
einarhauks 5c4422dc72 Remove power sensor from Tesla Wall Connector (#60775)
Add voltage and current sensors for each phase
2021-12-01 19:21:56 +01:00
Franck Nijhof 4dfdb3b96f Upgrade vehicle to 0.2.2 (#60763)
* Upgrade vehicle to 0.2.1

* Upgrade vehicle to 0.2.2
2021-12-01 19:08:35 +01:00
Robert Svensson 8ddfa424c0 Add typing to deCONZ init and config flow (#59999) 2021-12-01 18:59:52 +01:00
Aaron Bach a053c0a106 Bump py17track to 2021.12.1 (#60762) 2021-12-01 18:52:33 +01:00
epenet b65b2c4cd1 Use dataclass properties in syncthru discovery (#60739)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:40:27 +01:00
epenet 5c992ec2cc Remove cleanup_registry from onewire (#60546)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:38:07 +01:00
epenet 824b313705 Use dataclass properties in yamaha_musiccast discovery (#60749)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:36:07 +01:00
Tobias Sauerwein 68011ee952 Clean up Netatmo climate platform (#60694)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-12-01 18:35:12 +01:00
epenet ead4f745e3 Use dataclass properties in somfy_mylink discovery (#60736)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:33:22 +01:00
epenet 800ffc0dec Use ssdp namespace in roku (#60733)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:32:48 +01:00
epenet e001cb3b17 Use dataclass properties in powerwall discovery (#60732)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:32:15 +01:00
epenet 3db3f264c2 Use dataclass properties in nuki discovery (#60731)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:31:51 +01:00
Tobias Sauerwein 037f4dbdb1 Use device class enums in Netatmo (#60723) 2021-12-01 18:30:47 +01:00
xpac1985 b41e020f85 Better warning if unit of sensor is unsupported for its device class (#60665)
* Better warning if unit of sensor is unsupported for its device class

* Prettify the code
2021-12-01 18:18:58 +01:00
einarhauks a6ec646f98 Tesla wall connector config flow refactor continued (#60774) 2021-12-01 18:18:42 +01:00
epenet c7eaba45f4 Use dataclass properties in wilight discovery (#60748)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:07:12 +01:00
Daniel Hjelseth Høyer d60517d5f4 Use state and device class enum in Rfxtrx (#60773) 2021-12-01 18:06:13 +01:00
epenet 0c89c8a6b4 Use dataclass properties in synology_dsm discovery (#60740)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:04:00 +01:00
epenet aefd89d8f2 Use dataclass properties in tplink discovery (#60742)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 18:01:51 +01:00
epenet 4fa58b1ecb Use dataclass properties in unifi discovery (#60743)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:54:40 +01:00
Daniel Hjelseth Høyer 30e573b694 Use state class enum in Mill (#60726) 2021-12-01 17:53:04 +01:00
epenet 64a4218a24 Use dataclass properties in squeezebox discovery (#60738)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:52:29 +01:00
epenet fa95146aa0 Use dataclass properties in songpal discovery (#60737)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:51:01 +01:00
epenet 2b4a1ee7eb Use dataclass properties in flux_led discovery (#60696)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 06:47:14 -10:00
epenet 92b149fffe Use dataclass properties in isy994 discovery (#60715)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 06:45:09 -10:00
epenet 3eba575fde Use state class enum for Onewire (#60770)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:42:08 +01:00
epenet cd9962dfa0 Use device and state class enum for Renault (#60768)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:40:56 +01:00
Milan Meulemans b154f43657 Use device class enum in Rituals (#60767) 2021-12-01 17:34:30 +01:00
epenet 7363033ada Use device class enum in Onewire (#60766)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:33:26 +01:00
Tom Brien 1268cefc38 Use state class enum for Coinbase (#60764) 2021-12-01 17:26:53 +01:00
Franck Nijhof c985bee1dd Add sensor platform to Tailscale (#60751)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-01 17:05:44 +01:00
epenet 6caaa5f6bd Add compatibility tests for MqttServiceInfo (#60754)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 17:04:49 +01:00
epenet 38153b015f Enable warnings for DhcpServiceInfo (#60750)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:56:54 -10:00
epenet 683eb10f0e Enable warnings for ZeroconfServiceInfo (#60759)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:55:36 -10:00
epenet 35c40bcf85 Enable warnings for UsbServiceInfo (#60757)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:44:01 -10:00
epenet 2fe0382841 Add compatibility tests for UsbServiceInfo (#60753)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:43:31 -10:00
epenet 7f355681a7 Add compatibility tests for DhcpServiceInfo (#60752)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:43:09 -10:00
epenet fc3c9b1b4e Use dataclass properties in samsungtv discovery (#60595)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:42:42 -10:00
einarhauks e7f00c2c4f Refactor Tesla wall connector config flow (#60755) 2021-12-01 16:07:24 +01:00
epenet 76d906d17e Use dataclass properties in roomba discovery (#60734)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 15:53:02 +01:00
epenet 00f71e5dfc Use dataclass properties in screenlogic discovery (#60735)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 15:52:08 +01:00
Daniel Hjelseth Høyer ecf1bc1b22 Use state class enum in Tibber (#60729) 2021-12-01 15:50:35 +01:00
Marcel van der Veldt 5d0cf4cb95 Fix tests for Hue integration (#60683)
* fix tests

make sure the migration code is not called in all other tests

* only patch v2 check where needed
2021-12-01 14:53:30 +01:00
Franck Nijhof 6a8c732b37 Add Tailscale integration (#59764)
* Add Tailscale integration

* Use DeviceEntryType

* Fix tests

* Adjust to new Pylint version

* Use enums for device classes

* Update homeassistant/components/tailscale/config_flow.py

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

* Pass empty string as default

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-01 14:40:38 +01:00
epenet 59f87b9488 Use dataclass properties in netgear discovery (#60730)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:38:17 +01:00
epenet 16942fc8e9 Use dataclass properties in denonavr discovery (#60691)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:28:40 +01:00
epenet 6544b440d2 Use dataclass properties in fritz discovery (#60697)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:02:58 +01:00
epenet 0047790db6 Use dataclass properties in harmony discovery (#60711)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:02:11 +01:00
epenet 1edc0a0560 Use dataclass properties in huawei_lte discovery (#60713)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:01:21 +01:00
epenet 63ed0af644 Use dataclass properties in hyperion discovery (#60714)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:00:46 +01:00
epenet c7c2b810a7 Use dataclass properties in keenetic_ndms2 discovery (#60716)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 13:59:34 +01:00
epenet 2a1f0cadaa Use dataclass properties in broadlink discovery (#60689)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 13:58:56 +01:00
Daniel Hjelseth Høyer 92e608ce04 Use state class enum in Airthings (#60728) 2021-12-01 13:57:54 +01:00
Daniel Hjelseth Høyer ddc17cb001 Use state class enum in Opengarage (#60727) 2021-12-01 13:57:23 +01:00
Franck Nijhof c28b45cd83 Migrate entity categories to StrEnum (#60720) 2021-12-01 13:54:36 +01:00
Paulus Schoutsen 72d8882c79 Handle errors response to be None (#60679)
Co-authored-by: Philip Allgaier <mail@spacegaier.de>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-01 13:51:10 +01:00
Matthias Alphart e5e1e7b7e0 Update pyfronius to 0.7.1 (#60722) 2021-12-01 13:30:25 +01:00
Stefan Agner b04b314a9b Extend Docker build caching opportunities (#60661) 2021-12-01 13:20:00 +01:00
Oleksandr Kapshuk 95286791fe Add tuya zndb device category (#59477) 2021-12-01 13:17:02 +01:00
Franck Nijhof d5dc963b6f Guard config flow coverage in Codecov (#60718) 2021-12-01 12:52:08 +01:00
Fredrik Erlandsson 2ba21d6bf3 Fix point device identifiers (#60719) 2021-12-01 12:48:06 +01:00
epenet 9a8c1cf6c4 Use dataclass properties in konnected discovery (#60717)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 12:30:36 +01:00
epenet cbab0ba9c0 Drop base ATTR constants in zeroconf (#60561)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 12:29:41 +01:00
Franck Nijhof 2ec49d4ffd Migrate sensor state classes to StrEnum (#60709) 2021-12-01 12:09:31 +01:00
Franck Nijhof c6cbfe8c37 Migrate humidifier device classes to StrEnum (#60706)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-12-01 12:02:14 +01:00
Raman Gupta eeafa36abc Add SmartStart provisioning support to zwave_js WS API (#59037)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-01 11:43:51 +01:00
epenet 694f6d0abe Use dataclass properties in heos discovery (#60712)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 11:38:46 +01:00
epenet 0782c6c446 Use dataclass properties in guardian discovery (#60710)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 11:33:40 +01:00
epenet 160e6febc3 Use dataclass properties in directv discovery (#60692)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 11:08:36 +01:00
epenet ad66522bce Use dataclass properties in fritzbox discovery (#60698)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 11:07:10 +01:00
epenet 76e08aa93b Use dataclass properties in goalzero discovery (#60703)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 11:06:38 +01:00
Daniel Hjelseth Høyer bcb2fefbe5 Use device class enum in Tibber (#60705) 2021-12-01 11:00:17 +01:00
Daniel Hjelseth Høyer 3e9c72df5c Use device class enum in Airthings (#60704) 2021-12-01 10:59:24 +01:00
Daniel Hjelseth Høyer 38c2c879c9 Use device class enum in Open Garage (#60702) 2021-12-01 10:59:12 +01:00
Daniel Hjelseth Høyer 739ce9bc75 Use device class enum in Surepetcare (#60701) 2021-12-01 10:58:52 +01:00
Daniel Hjelseth Høyer ca55216d67 Use device class enum in Tractive (#60700) 2021-12-01 10:58:43 +01:00
Daniel Hjelseth Høyer 06f12fc583 Use device class enum in Mill (#60699) 2021-12-01 10:58:28 +01:00
Joakim Sørensen 49f3a7ce46 Use device class enum in Supervisor (#60687) 2021-12-01 10:55:30 +01:00
epenet 52112a25b0 Use dataclass properties in emonitor discovery (#60695)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 10:54:42 +01:00
Joakim Sørensen bbd179200c Use device class enum in UptimeRobot (#60688) 2021-12-01 10:36:15 +01:00
Franck Nijhof 79ebc1b79a Use device class enums in TwenteMilieu (#60686) 2021-12-01 10:25:26 +01:00
Franck Nijhof 6c7c7acdef Use device class enums in Verisure (#60685) 2021-12-01 10:24:58 +01:00
Franck Nijhof 74f7f28f1c Use device class enums in WLED (#60684) 2021-12-01 10:16:44 +01:00
epenet 73a4dba2ae Use dataclass properties in yeelight discovery (#60640)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 22:28:19 -10:00
Kevin Worrel 8240b8c72e Update screenlogic use asyncio API (#60466)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-30 22:19:01 -10:00
Franck Nijhof cc8e02c733 Upgrade pre-commit to 2.16.0 (#60680) 2021-12-01 08:43:37 +01:00
LJU 19361216de Fix key reference placeholder (#60681)
Fix typo for placeholder invalid acces token
2021-11-30 23:38:38 -08:00
Franck Nijhof 2b8f245e27 Migrate binary sensor device classes to StrEnum (#60651) 2021-12-01 08:12:09 +01:00
Franck Nijhof 12ff5dee74 Migrate sensor device classes to StrEnum (#60654)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-01 08:09:55 +01:00
Teemu R 908b7ca9c2 Bump xiaomi_miio dependency (#60650) 2021-12-01 08:08:59 +01:00
Penny Wood 44714081d1 Update IZone to new version of library (#60676) 2021-12-01 07:41:52 +01:00
Franck Nijhof 3770a72601 Migrate media player device classes to StrEnum (#60656) 2021-12-01 07:25:10 +01:00
Franck Nijhof 9715601255 Add button device classes to NAM (#60621) 2021-12-01 07:08:17 +01:00
G Johansson 9efec244b9 Fix yale_smart_alarm strings (#60657) 2021-12-01 05:26:35 +01:00
Milan Meulemans c0021e5768 Upgrade aionanoleaf to 0.1.1 (#60670) 2021-11-30 17:32:57 -10:00
GitHub Action c9589f763c [ci skip] Translation update 2021-12-01 00:17:12 +00:00
Franck Nijhof 542aef2fe1 Migrate switch device classes to StrEnum (#60658) 2021-11-30 15:38:45 -08:00
Franck Nijhof 98ce12c6ee Migrate cover device classes to StrEnum (#60655) 2021-11-30 15:37:34 -08:00
G Johansson 51ebfade52 Fix ADR 0003 issues in trafikverket_weatherstation (#60664)
* Fix ADR 0003 issues

* Remove commented code
2021-11-30 22:54:10 +01:00
Joakim Sørensen 28ebd13d75 Mark calendar as a base platform (#60660) 2021-11-30 21:28:33 +01:00
epenet 8954609f6b Use dataclass properties in axis discovery (#60558)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:15:34 -10:00
Jesse Hills c2830b3e66 Fix fields being None for discord notify service (#59736)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-12-01 08:26:02 +13:00
Jesse Hills 8630022e92 Add mode to ESPHome numbers (#60653) 2021-11-30 20:19:14 +01:00
G Johansson 11b81ef88b Config flow for trafikverket_weatherstation (#60078)
* First commit

* Added tests

* Add requirements for test

* Correction requirements tests

* Add init to untested files

* Fix review comments

* Resolve last items from review

* Add sync_abort_entries_match in import flow
2021-11-30 19:53:41 +01:00
Joakim Sørensen 153f15c93b Remove running binary_sensor for HAOS (#60597) 2021-11-30 10:18:14 -08:00
Marcel van der Veldt 19b4cc7119 Hue handle device update (#60612) 2021-11-30 10:14:51 -08:00
jjlawren de9e48174f Change unnecessary Sonos coroutine to callback (#60643) 2021-11-30 17:35:29 +01:00
epenet 97c04d2e67 Use dataclass properties in gogogate2 discovery (#60607)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 06:15:23 -10:00
epenet f444dd6d86 Use dataclass properties in sonos discovery (#60633)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 06:06:52 -10:00
epenet be89c07cac Use dataclass properties in nanoleaf discovery (#60580)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 06:05:50 -10:00
Tim Rightnour 8a9f197918 Binary sensor platform for the Balboa Spa (#60409) 2021-11-30 06:04:24 -10:00
epenet 7295ab10ae Use dataclass properties in doorbird discovery (#60639)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 06:03:21 -10:00
epenet ec923b877c Use dataclass properties in rachio discovery (#60637)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 06:02:24 -10:00
epenet 071385e8d2 Use dataclass properties in tado discovery (#60641)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:44:11 +01:00
Dave T 0a1f73e3f7 Correct Temper USB sensor IoT class (#60619)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-30 16:37:58 +01:00
epenet d75785d701 Use dataclass properties in hue discovery (#60598)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:36:35 +01:00
epenet 601ad8f71a Use dataclass properties in xiaomi_aqara discovery (#60636)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:28:49 +01:00
epenet 30bb2c82c6 Use dataclass properties in freebox discovery (#60635)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:28:02 +01:00
Marc Mueller a90ef488a1 Add return type annotation to StrEnum (#60624) 2021-11-30 16:26:02 +01:00
epenet ad75c217ce Use dataclass properties in kodi discovery (#60634)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:25:40 +01:00
epenet ffb9b4cd2d Use dataclass properties in hunterdouglas discovery (#60605) 2021-11-30 05:16:30 -10:00
Allen Porter a84b12abe7 Revert "Add an entity service for saving nest event related snapshots" (#60632) 2021-11-30 16:16:00 +01:00
Jc2k b8a1899d48 Remove homekit_controller's air quality entity in favor of separate sensor entities (#60480) 2021-11-30 16:14:49 +01:00
Franck Nijhof 16462df451 Add button device classes to MQTT (#60628) 2021-11-30 16:08:02 +01:00
epenet 0d24862a28 Use dataclass properties in homekit_controller discovery (#60626)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 16:06:18 +01:00
epenet 3f22905709 Use dataclass properties in plugwise discovery (#60631)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 15:50:47 +01:00
epenet 6f22ffbedd Use dataclass properties in enphase_envoy discovery (#60627)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 15:47:18 +01:00
Jan Bouwhuis cd351cf22b Fix test naming switch (#60630) 2021-11-30 15:45:06 +01:00
Franck Nijhof 6be1b0c704 Add button device classes to Shelly (#60625) 2021-11-30 15:44:47 +01:00
Franck Nijhof 2366fbe846 Add button device classes to HomeKit Controller (#60620) 2021-11-30 15:21:26 +01:00
Jesse Hills 683bb13f50 Support unit of measurement in ESPHome numbers (#60591) 2021-11-30 15:20:40 +01:00
Franck Nijhof b5a6e03c21 Fix device class shorthand attr in ButtonEntity (#60622) 2021-11-30 15:06:33 +01:00
Jan Bouwhuis f07e676c82 Allow template int filter to render from a bytes based integer (#60452)
* Allow template int to render bytes

* re-triggering tests

* Add warning when base !=10 and rendering bytes

* re-trigger tests

* Re-trigger tests

* remove period

* Update homeassistant/helpers/template.py

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

* Fix logger syntax

* remove parentheses

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-30 15:01:43 +01:00
Jan Bouwhuis 2a2a20fcb3 Add mqtt sensor configurable state encoding for sensor and binary_sensor platform (#60447)
* Add mqtt sensor state encoding

* Make encoding attribute not specific to states

* Move encoding attribute to schema base
2021-11-30 14:04:24 +01:00
Franck Nijhof 7469f083fd Migrate number mode to StrEnum (#60614) 2021-11-30 12:54:06 +01:00
Franck Nijhof 1b8eba0afd Add button device classes to WLED (#60613) 2021-11-30 12:12:08 +01:00
Franck Nijhof 9b9801516b Migrate button device classes to StrEnum (#60611) 2021-11-30 11:54:06 +01:00
Franck Nijhof 6e3f522d4b Fix StrEnum backport return type issue (#60610) 2021-11-30 11:16:56 +01:00
Adam Chyb 56899d61fe Add support for Kogan smart blinds to Tuya (#60552) 2021-11-30 11:07:44 +01:00
epenet ae9320b616 Use dataclass properties in tradfri discovery (#60592)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 11:05:42 +01:00
epenet 58661fa636 Use dataclass properties in devolo_home_network discovery (#60608)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 11:04:33 +01:00
epenet 416976dd39 Use dataclass properties in esphome discovery (#60606)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 11:03:08 +01:00
epenet f0df3e4646 Use dataclass properties in smappee discovery (#60602)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 11:01:28 +01:00
epenet ba1cc00c24 Use dataclass properties in shelly discovery (#60593)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 11:00:54 +01:00
epenet fb94ed4e6b Use dataclass properties in bond discovery (#60590)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:58:06 +01:00
epenet d537ec1d6f Use dataclass properties in bosch_shc discovery (#60559) 2021-11-30 10:57:37 +01:00
epenet 9b92787d59 Use dataclass properties in daikin discovery (#60589)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:55:52 +01:00
epenet 40a814221c Use dataclass properties in forked_daapd discovery (#60587)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:55:32 +01:00
epenet 7182827818 Use dataclass properties in modern_forms discovery (#60584)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:18:25 +01:00
epenet efebd1b657 Use dataclass properties in nut discovery (#60603)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:17:49 +01:00
epenet 071296865b Use dataclass properties in lookin discovery (#60585)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:16:06 +01:00
epenet 2f79760fb4 Use dataclass properties in guardian discovery (#60586)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:15:46 +01:00
epenet a32a748cec Use dataclass properties in devolo_home_control discovery (#60600)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:08:55 +01:00
epenet 0bb44c042c Use dataclass properties in brother discovery (#60601)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 10:07:58 +01:00
Franck Nijhof b996f624db Ensure ESPHome device classes are valid (#60594) 2021-11-30 09:44:39 +01:00
epenet 5003a1515b Use dataclass properties in nam discovery (#60596)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 09:36:41 +01:00
epenet 64afe738cc Use dataclass properties in elgato discovery (#60588)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 08:53:03 +01:00
epenet d74145ed7b Use dataclass properties in roku discovery (#60577)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 08:46:40 +01:00
epenet 9374ce87ba Use dataclass properties in wled discovery (#60573)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 08:42:30 +01:00
epenet e0b315041b Use dataclass properties in octoprint discovery (#60579)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-30 08:42:08 +01:00
dependabot[bot] b4f3e08b84 Bump actions/setup-python from 2.3.0 to 2.3.1 (#60572)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-30 08:34:20 +01:00
Jesse Hills e17759410c Esphome button device class (#60569) 2021-11-30 08:33:14 +01:00
Klaas Schoute 222da7e2d1 Add configuration_url to integration (#60565) 2021-11-30 08:32:02 +01:00
epenet bb92dd2467 Use dataclass properties in apple_tv discovery (#60557) 2021-11-30 08:31:25 +01:00
epenet 0e3a229a1f Use dataclass properties in volumio discovery (#60575)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 21:13:48 -10:00
epenet b4d17e1fad Use dataclass properties in system_bridge discovery (#60576)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 21:11:56 -10:00
epenet b40dc6c271 Use dataclass properties in rainmachine discovery (#60578)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 21:10:50 -10:00
Allen Porter c4e5242b0c Add an entity service for saving nest event related snapshots (#58369)
* Add an entity service for saving nest event related snapshots

Add an entity service `nest.snapshot_event` for recording camera event
related media to disk. This is based on `camera.snapshot` but takes in
a parameter for a Nest API event_id.

PR #58299 adds `nest_event_id` to events published by nest so that they can
be hooked up to this service for capturing events.

Future related work includes:
- Height & Width parameters for the rendered image
- Support video clips for new battery cameras
- An API for proxying media related to events, separate from the camera image thumbnail
- A Nest MediaSource for browsing media related to events

* Revert debugging information

* Add test coverage for OSError failure case

* Add service description for nest snapshot service

* Reduce unnecessary diffs.

* Sort nest camera imports

* Remove unnecessary if block in snapshot
2021-11-29 23:04:29 -08:00
Allen Porter cc543b200d Update nest config flow to dramatically simplify end user setup with automated pub/sub subscription creation (#59260)
* Configure nest pubsub subscriber automatically

Update the config flow to configure the nest pubsub subscriber automatically.
After completing the authentication step, the user is now asked for the google
cloud console ID, which is needed to create a subscription.

Home Assistant manages the lifecycle of a subscription only when it is created
by the ConfigFlow. Otherwise (if specified in configuration.yaml) it treats
it similarly as before.

These are the considerations or failure modes taken into account:
- Subscription is created with reasonable default values as previously recommended (e.g. retion only keeps 5-15 minutes of backlog messages)
- Subscriptions are created with a naming scheme that makes it clear they came from home assistant, and with a random
  string
- Subscriptions are cleaned up when the ConfigEntry is removed. If removal fails, a subscription that is orphaned will
  be deleted after 30 days
- If the subscription gets into a bad state or deleted, the user can go through the re-auth flow to re-create it.
- Users can still specifcy a CONF_SUBSCRIBER_ID in the configuration.yaml, and
skip automatic subscriber creation

* Remove unnecessary nest config flow diffs and merge in upstream changes

* Incorporate review feedback into nest subscription config flow

* Update text wording in nest config flow
2021-11-29 22:41:29 -08:00
Allen Porter 8ca89b10eb Split StreamState class out of SegmentBuffer (#60423)
This refactoring was pulled out of https://github.com/home-assistant/core/pull/53676 as an
initial step towards reverting the addition of the SegmentBuffer class, which will be
unrolled back into a for loop.

The StreamState class holds the persistent state in stream that is used across stream worker
instantiations, e.g. state across a retry or url expiration, which primarily handles
discontinuities. By itself, this PR is not a large win until follow up PRs further simplify
the SegmentBuffer class.
2021-11-29 22:25:28 -08:00
epenet 890790a659 Use dataclass properties in arcam_fmj discovery (#60562) 2021-11-30 06:46:41 +01:00
Allen Porter df90fdf641 Add an available property on Stream (#60429) 2021-11-29 21:23:58 -08:00
J. Nick Koston f0f88d56bd Avoid probing configured ipp devices at discovery (#60551)
- Each time these were seen by zeroconf, these devices were
  probed even if they were already configured. This is expensive
  and we want to avoid this when possible
2021-11-29 22:53:42 -06:00
Paulus Schoutsen 1bfd98ab14 Bump frontend to 20211129.0 (#60564) 2021-11-29 18:35:41 -08:00
David F. Mulcahey 2f24fc0fd4 Fix Flo returning stale data (#60491)
* Fix Flo returning stale data

* update tests

* update coverage
2021-11-29 20:00:39 -05:00
Franck Nijhof 9f26850a19 Add device class support for button entity (#60560) 2021-11-29 17:44:21 -07:00
GitHub Action a925451906 [ci skip] Translation update 2021-11-30 00:13:53 +00:00
Joakim Sørensen 8a5df5f7eb Fix ingress for non admin (#60120) 2021-11-29 23:03:16 +01:00
Paulus Schoutsen 914f7f85ec Add local only users (#57598) 2021-11-29 14:01:03 -08:00
Maciej Bieniek 847b10fa65 Add button platform to NAM integration (#60410) 2021-11-29 22:58:04 +01:00
Michael 8626de24fc Use correct value for current temperature for AVM Fritz!Smarthome thermostat devices (#60510) 2021-11-29 19:58:22 +01:00
Michael 83acfda757 Add reboot button to Shelly devices (#60417) 2021-11-29 19:49:49 +01:00
Erik Montnemery 814a742518 Don't wait for Google Assistant service calls when reporting state (#59832)
* Don't wait for Google Assistant service calls when reporting state

* Update tests

* Add test
2021-11-29 18:34:38 +01:00
Erik Montnemery d980ca7e04 Correct recorder migration._add_columns for PostgreSQL (#60547) 2021-11-29 18:33:25 +01:00
epenet 54df81cbab Use ZeroconfServiceInfo in vizio (#60115)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 18:27:15 +01:00
epenet 37430e7c9e Add get method to ZeroconfServiceInfo (#60528)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 17:37:55 +01:00
Matthias Lohr 7b81185d2a Add tolo fan platform (#60502) 2021-11-29 17:15:38 +01:00
epenet ec1c52d945 Use dataclass for SsdpServiceInfo (#59931)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 06:10:07 -10:00
einarhauks 7ece86ee8d Add sensors to Tesla Wall Connector Integration (#60507) 2021-11-29 06:05:14 -10:00
Eugenio Panadero 923cb0f4b7 Bump aiopvpc to 2.2.4 to fix price sensor attributes for pvpc_hourly_pricing (#60012) 2021-11-29 16:57:32 +01:00
Kevin Stillhammer 6167e4178b Use find_coordinates in here_travel_time (#59938) 2021-11-29 16:54:03 +01:00
PlusPlus-ua 2be7773f5e Add Tuya Fingerbot device support (#59880) 2021-11-29 16:52:15 +01:00
alexanv1 9aa33a3cf8 Fix brightness support for Tuya dimmers that use the Light ("dj") category (#60385)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-29 16:45:00 +01:00
Maikel Punie f18fe342ac Remove configuration.yaml support for the velbus component (#60411) 2021-11-29 16:33:26 +01:00
Steffen Zimmermann c407e24a18 Add wiffi device configuration url support (#60367) 2021-11-29 16:29:31 +01:00
Simone Chemelli 07c09ab268 Add new name handling for Shelly RPC devices (#60539) 2021-11-29 16:16:49 +01:00
epenet 0f2e39adee Add get method to DhcpServiceInfo (#60527)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 05:11:36 -10:00
jjlawren a88cc8b98c Move Sonos bass & treble controls to number entities (#60498) 2021-11-29 16:00:37 +01:00
Franck Nijhof 3aa35e15c2 Remove custom WLED services (#60537) 2021-11-29 15:15:50 +01:00
rianadon 09af85c6a4 Add native unit types for weather entities (#59533)
* Add native unit types for weather entities

* Update weatherentity and change precision in climacell test

* Move weather test to demo tests

* Add weather test for temperature conversion

* Add more unit conversion tests

* Remove extra native_ methods

* Remove extra properties and save precision change for another PR

* Remove visibility_unit from metoffice component

The vibility values given by metoffice are formatted into strings,
which means they can't automatically be converted.

* Improve docstrings and convert pressures in forecast

* Add precipitation and wind speed units

* Clean up tests

* Round converted weather values

* Round weather values to 2 decimal places

* Move number of rounding decimal places to constant

* Docstring and styles
2021-11-29 14:44:44 +01:00
Franck Nijhof 5a97db6685 Upgrade wled to 0.10.1 (#60542) 2021-11-29 14:43:02 +01:00
Raphaël Beamonte 8600b5597a Add 'trigger' support for MQTT Alarm Control Panel (#60525)
When configuring an Alarm Control Panel through MQTT discovery, it
was not possible to use the trigger service. This fixes that by making
it available the same way as ARM and DISARM services are.
2021-11-29 14:41:52 +01:00
Franck Nijhof 1f2a5ae98d Upgrade coverage to 6.2.0 (#60530) 2021-11-29 11:52:13 +01:00
Franck Nijhof 909784bff8 Upgrade black to 21.11b1 (#60532) 2021-11-29 11:51:58 +01:00
Franck Nijhof 4cff04cbd5 Remove obsolete light attributes from WLED (#60535) 2021-11-29 11:32:30 +01:00
Jesse Hills dd001cacfd Fix missing name for ESPHome reauth dialog (#60508) 2021-11-29 10:06:56 +01:00
Allen Porter 5e86c78c46 Redact ?auth= url parameters in stream sources when logged (#60438) 2021-11-29 09:59:01 +01:00
Jesse Hills 622d9606a5 Esphome/button (#60522) 2021-11-29 09:57:37 +01:00
Ville Skyttä e5718ccac4 Add removal versions and backcompat constants for device registry enum changes (#60421) 2021-11-29 09:47:14 +01:00
Matthias Alphart 823c37f4c7 100% test coverage for Fronius integration (#60515)
* support for multiple fixture sets

* add test data from Fronius Gen24 device

* test Gen24 with Storage

* test Gen24 inverter without storage

* 100% coverage

* copy&paste fail
2021-11-29 09:15:10 +01:00
J. Nick Koston ef8cf9e597 Add configuration_url to bond (#60523) 2021-11-29 08:44:11 +01:00
Michael Kowalchuk 15bf4dae9b Add zwave_js speed configurations for GE/Jasco 12730 and 14287 fans (#60517) 2021-11-29 08:27:32 +01:00
Daniel Hjelseth Høyer 70b8decfb5 Replace Tibber STATE_CLASS_TOTAL_INCREASING with STATE_CLASS_TOTAL for not strictly increasing sensors (#60501)
* Tibber, fix #60490 not strictly increasing

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

* Tibber, fix #60490 not strictly increasing

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

* Tibber, fix #60490 not strictly increasing

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-29 08:22:48 +01:00
J. Nick Koston c535f785a8 Bump flux_led to 0.25.2 (#60519)
- Fixes warm/cold values on RGBCW bulbs with newer firmware

- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.25.1...0.25.2
2021-11-29 06:21:33 +01:00
Joakim Sørensen 325861addf Set internal quality_scale for the safe_mode integration (#60526) 2021-11-29 06:18:39 +01:00
Simone Chemelli 110fd261ee Fix & update for latest Shelly Valve firmware (#60458) 2021-11-28 20:18:15 -08:00
Michael a29cc29304 Fix DeprecationWarning for asyncio.wait() in mysensors (#60512) 2021-11-29 02:06:11 +01:00
GitHub Action 2918e2d7d0 [ci skip] Translation update 2021-11-29 00:13:08 +00:00
Pascal Vizeli 313d6a81d0 Fix docker prefix for meta image (#60495) 2021-11-28 10:25:52 -08:00
micha91 b4730f4ffe Add Yamaha MusicCast number entities (#60093) 2021-11-28 07:52:46 -10:00
einarhauks 4d345e0665 Add Tesla Wall Connector integration (#60000) 2021-11-28 07:41:01 -10:00
Sergiy Maysak efebb76a7e Bump wirelesstagpy to 0.8.1 (#60472)
* Bumped version of wirelessttagpy to 0.8.1

* Removed dependency on wirelesstagpy for tests as no tests yet present
2021-11-28 10:26:57 -06:00
Matthias Lohr 2d1d9e9e20 Address late review of tolo integration (#60453)
* improvements requested by @MartinHjelmare

* addressed requested changes

* more improvements
2021-11-28 16:50:57 +01:00
Raman Gupta bae01ca7d8 Fix climacell hourly and nowcast forecasts (#60454) 2021-11-28 16:44:43 +01:00
Franck Nijhof e1036f3c71 Upgrade restrictedpython to 5.2 (#60493) 2021-11-28 16:34:15 +01:00
Erik Montnemery caf5ee2fab Remove optional validation when creating conditions (#60481) 2021-11-28 14:54:07 +01:00
Vilppu Vuorinen 76b047dd12 Update pymelcloud to 2.5.5 (#60484) 2021-11-28 14:21:44 +01:00
Paulus Schoutsen c6ec84d0cf Remove store user as auth result (#60468) 2021-11-28 14:14:52 +01:00
Gábor Kiss 1aadda4b0f Fix Shelly dual mode bulb mode switch (#60471)
* fix_shelly_dual_mode_bulb_mode_switch

* Update __init__.py

* Update light.py
2021-11-28 12:07:18 +02:00
MJJ 6d08bee3df Update buienradar library to 1.0.5 (#60473)
* Update buienradar to 1.0.5

should fix https://github.com/home-assistant/core/issues/60200

* Update requirements_all.txt

* Update requirements_test_all.txt
2021-11-28 10:46:32 +01:00
J. Nick Koston a3e34c74db Fix flux_led discovery missing responses (#60464) 2021-11-27 23:36:38 -08:00
Alexei Chetroi 9b493be2b2 Bump up ZHA dependencies (#60474) 2021-11-27 22:49:59 -05:00
GitHub Action 3af54d96c7 [ci skip] Translation update 2021-11-28 00:14:19 +00:00
Matthias Alphart 2a0c1fa074 don't issue requests for non-existing devices (#60416) 2021-11-27 19:56:00 +01:00
Juan Jesús García de Soria 4526d25697 Update PyTurboJPEG to v1.6.3 (#60400) 2021-11-27 08:35:07 -10:00
J. Nick Koston adeeb99579 Bump flux_led to 0.25.1 (#60463)
* Bump flux_led to 0.25.1

- Fixes for older firmwares

- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.25.0...0.25.1

* empty , pypi behind
2021-11-27 12:23:12 -06:00
J. Nick Koston fa2399030a Bump flux_led to 0.25.0 (#60460)
* Bump flux_led to 0.25.0

* Refactor color_temp_to_white_levels and improve code coverage by @bdraco in https://github.com/Danielhiversen/flux_led/pull/185
* Adjust protocol to handle newer models that send 0xB0 responses by @bdraco in https://github.com/Danielhiversen/flux_led/pull/186
* Fix effects with floor lamps by @bdraco in https://github.com/Danielhiversen/flux_led/pull/188
* Add support for CCT protocol aka 0x1C models by @bdraco in https://github.com/Danielhiversen/flux_led/pull/187

- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.24.38...0.25.0

* handle change in color_temp_to_white_levels
2021-11-27 18:24:42 +01:00
Simone Chemelli 3cd80b95db Logging issue workaround for fritzconnection library (#60448)
* Logging issue workaround

* Better approach
2021-11-27 07:56:53 -08:00
Daniel Hjelseth Høyer bb99d07d82 Remove unused constant in Tibber (#60439) 2021-11-27 11:18:58 +01:00
Michael d63e2d1db0 fix blocking startup when NAS is busy (#60360) 2021-11-27 09:25:27 +01:00
Ricardo Steijn 729394547c Bump crownstone-sse to 2.0.3 (#60428) 2021-11-27 08:37:07 +01:00
Alan Murray d8c73e8685 Bump acmeda integration aiopulse dependency version to 0.4.3 (#60434)
* Bump acmeda integration aiopulse dependency version to 0.4.3 to implement battery health monitoring.

* Updated acmeda requirements
2021-11-27 08:35:23 +01:00
GitHub Action 96313bbbe0 [ci skip] Translation update 2021-11-27 00:12:17 +00:00
bcelary ec7b1e574f Use mysensors child description as entity name (#60420)
* using description for instance name if not empty

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-27 01:07:30 +01:00
Christopher Bailey 5a72c9f7c3 Rename various usages of UniFi to better identify only UniFi Network (#59568)
* Renames various usages of UniFi to better indentify only UniFi Network

* Apply suggestions from code review

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

* Missed renames

* Updates more locations

* Removes instances of application/controller

* Missed a spot

* Updates all UniFi Controller instances

* Fixes typo

* Reverts changes to translations

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2021-11-26 22:44:49 +01:00
Michael 296b738740 Add button to trigger ota firmware update for Shelly devices (#58757)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2021-11-26 14:19:39 +01:00
Erik Montnemery ea102f71a6 Correct validation of repeats in scripts and automations (#60318)
* Correct validation of repeats in scripts and automations

* Improve validation test
2021-11-26 14:12:59 +01:00
Erik Montnemery ad9c3a47cf Correct validation of conditions in scripts and automations (#60403) 2021-11-26 13:21:11 +01:00
Joakim Sørensen dc98791963 Bump awesomeversion from 21.10.1 to 21.11.0 (#60401) 2021-11-26 12:06:50 +01:00
Matt 3d5432b799 Add configuration_url to AccuWeather integration (#60381) 2021-11-26 11:15:03 +01:00
Erik Montnemery 88068fa97f Remove unused OrderedEnum (#60392) 2021-11-26 11:10:39 +01:00
Franck Nijhof 249cac2901 Remove myself as codeowner from Hue (#60395) 2021-11-26 10:03:51 +01:00
PlusPlus-ua 061691508b Fixed handling of zero values in TuyaNumberEntity (#60393) 2021-11-26 09:35:19 +01:00
Matt Zimmerman 3f741d4295 Bump python-smarttub dependency to 0.0.28 (#60391) 2021-11-26 09:19:26 +01:00
J. Nick Koston 53f1530756 Fix flux_led effect brightness in A2,A3 models (#60386)
- Changelog: https://github.com/Danielhiversen/flux_led/compare/0.24.37...0.24.38
2021-11-25 22:33:01 -06:00
J. Nick Koston 18e822b7b6 Bump sqlalchemy to 1.4.27 (#60383) 2021-11-25 19:55:17 -08:00
Matt 79d6d79557 Add configuration_url to Nanoleaf integration (#60372) 2021-11-25 18:23:14 -06:00
Chris Talkington 2a35ae2c0a Update rokuecp to 0.8.4 (#57259) 2021-11-25 18:21:39 -06:00
GitHub Action 78b47019f9 [ci skip] Translation update 2021-11-26 00:12:49 +00:00
Matt fabc55cbc4 Added configuration_url to Met.no integration (#60378) 2021-11-26 00:14:55 +01:00
Michael c9dc3a61af Fix slow config_flow test in devolo Home Network (#60364) 2021-11-26 00:14:15 +01:00
epenet 22bdd38583 Use SsdpServiceInfo for SOURCE_SSDP tests (part 4) (#60339)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 17:13:52 -06:00
Marc Mueller 25f8d4a189 Upgrade pylint to 2.12.1 (#60375) 2021-11-26 00:13:27 +01:00
Matt dab2b17a17 Added configuration_url for Met Eireann integration (#60380) 2021-11-26 00:10:20 +01:00
Michael af8e1143b9 Fix slow config_flow test in upnp (#60377) 2021-11-26 00:07:23 +01:00
Matt b61375e5cb Add configuration_url to Waze Travel Time (#60376) 2021-11-26 00:03:52 +01:00
Michael db0c82b88e Fix slow config_flow test in Twinkly (#60374) 2021-11-26 00:00:37 +01:00
Michael 16eb85bfc8 Fix slow config_flow test in squeezebox (#60373) 2021-11-25 23:26:28 +01:00
Matt 7613c6fd4c Add configuration_url to AdGuard Home integration (#60356) 2021-11-25 22:41:56 +01:00
Matthias Lohr db0104c2c9 Add tolo binary_sensor platform (#60365) 2021-11-25 22:39:39 +01:00
Michael ba7b5681e6 Fix slow config_flow test in Dune HD (#60366) 2021-11-25 22:34:47 +01:00
Marc Mueller de78c4f0f8 Import Callable from collections.abc (#60354) 2021-11-25 22:23:48 +01:00
Matthias Lohr 4360fb733f Add tolo button platform (#60345) 2021-11-25 22:02:59 +01:00
Franck Nijhof 7014f60f42 CI: Add partial run support to pyupgrade (#60362) 2021-11-25 21:51:08 +01:00
Franck Nijhof 9b4fb44fea CI: GitHub Annotate slow tests in partial test runs (#60359)
* CI: GitHub Annotate slow tests in partial test runs

* Correct line regex
2021-11-25 12:45:14 -08:00
cvroque f2e03420d1 Add commands to Tuya Vacuum (sd) (#60351) 2021-11-25 21:24:46 +01:00
J. Nick Koston d504c1e3e8 Add support for flux_led 0xA2 devices (#60361) 2021-11-25 21:20:34 +01:00
Franck Nijhof e5d8c69a92 CI: Move bandit into the other linters job (#60357) 2021-11-25 20:53:49 +01:00
Michael fb909eca8a Fix slow config_flow test in bond (#60355) 2021-11-25 12:32:26 -06:00
Tim Rightnour 03d1efab46 Add Balboa Spa integration (#59234) 2021-11-25 12:04:06 -06:00
Michael 78305ac6ae Fix slow config_flow test in AVM Fritz!SmartHome (#60348) 2021-11-25 11:48:17 -06:00
Marc Mueller b724672dd8 Fix overridden state methods - camera (#60352) 2021-11-25 11:47:57 -06:00
epenet f292691b7b Use SsdpServiceInfo for ssdp tests (part 3) (#60334)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 11:46:20 -06:00
epenet 624d866239 SSDP attributes can be present but empty (#60340)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 11:41:49 -06:00
J. Nick Koston 67684d68ff Fix slow yeelight discovery test (#60346) 2021-11-25 11:39:37 -06:00
Franck Nijhof f72e9aea1c CI: Only carry forward full-suite test coverage (#60344) 2021-11-25 17:35:15 +01:00
epenet 2468724378 Use SsdpServiceInfo for ssdp tests (part 2) (#60322)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 09:45:35 -06:00
Redah 3399c90936 Add Notifications for Android TV icon support (#60159)
* Add icon support

* Sort imports

* Sort imports correctly

* Satisfy pylint

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-25 16:40:26 +01:00
Franck Nijhof 6b9c2d8295 Add shorthand attribute support to Camera platform (#59837) 2021-11-25 16:03:53 +01:00
Hypnos 57fd632cd9 Add missing MQTT lock.open (#60022)
* Add missing MQTT lock.open

from:
https://community.home-assistant.io/t/mqtt-lock-open/232823/13
based on https://github.com/home-assistant/core/pull/48008

* Update homeassistant/components/mqtt/lock.py

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

* Update homeassistant/components/mqtt/lock.py

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

* Update homeassistant/components/mqtt/lock.py

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

* removed `STATE_OPEN` from tests

* Apply suggestions from code review

* Format code

* Update lock.py

* Update test_lock.py

* Update test_lock.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-25 15:54:08 +01:00
Till Skrodzki 635d875b1d Only accept valid hvac actions sent via mqtt (#59919)
* Only accept valid hvac actions sent via mqtt

* Only accept valid hvac actions sent via mqtt

* Fix existing action test and remove old one

* Remote None as valid hvac action being accepted

* Change loglevel of wrong hvac action received
2021-11-25 15:53:34 +01:00
Thomas Dietrich 4c0d90ed41 Remove unknown attribute instead of marking STATE_UNKNOWN (#60325) 2021-11-25 15:13:55 +01:00
Franck Nijhof 8b001fd54d Adjust/Fix CI coverage reporting (#60329) 2021-11-25 15:05:20 +01:00
Matthias Lohr 2f0ec0d7e5 Add tolo select platform (#60326) 2021-11-25 14:41:57 +01:00
epenet 9eed18f121 Use SsdpServiceInfo for ssdp tests (part 1) (#60320)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 14:35:19 +01:00
epenet 18a82e43a4 CI: fix linters on partial runs with multiple components (#60331)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-25 14:13:03 +01:00
J. Nick Koston 213be1f15e Update flux_led to use async_set_brightness in the lib (#60315) 2021-11-25 12:41:32 +01:00
refinedcranberry a78f0eae39 Add "nextchange" sensors to AVM FRITZ!Smarthome devices (#58274) 2021-11-25 12:34:04 +01:00
J. Nick Koston 995f01cb68 Fix exception in august if bridge is missing (#60316) 2021-11-25 12:30:57 +01:00
Matthias Lohr 3372288c88 Add tolo sensor platform (#60308) 2021-11-25 12:29:09 +01:00
Pascal Vizeli f2a44553d8 Fix image build issues (#60319) 2021-11-25 12:24:30 +01:00
Thomas Dietrich fd8b43320d Replace returned STATE_UNKNOWN by None (#60324) 2021-11-25 12:09:30 +01:00
epenet 62bf42e421 Introduce SsdpServiceInfo for ssdp discovery (#60284)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 19:35:15 -06:00
J. Nick Koston 5b199bcc6d Use random effect from flux_led library (#60312) 2021-11-25 02:34:19 +01:00
epenet 75057949d1 Adjust async_step_discovery methods for BaseServiceInfo (#60285)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 19:30:02 -06:00
avee87 0920e74aa2 Use DeviceEntryType in Metoffice (#60252) 2021-11-25 01:24:27 +01:00
GitHub Action d3c020325b [ci skip] Translation update 2021-11-25 00:13:33 +00:00
Erik Montnemery f3d5c07615 Use async_validate_actions_config helper in scripts (#60287) 2021-11-24 23:35:54 +01:00
Matthias Alphart c808fa8d3d fix configuration url (#60311) 2021-11-24 23:27:13 +01:00
rikroe 301ef0f636 Fix BMW ConnectedDrive, update to My BMW API (#59881)
* Fix BMW ConnectedDrive, update to My BMW API

* Use const device classes

* Implement native_value via EntityDescription

* Use device class const, reomve device_class from charging_status

* Cleanup

* Remove max_range_electric

* Revert removing sensor name & unique_id

* Add region china again, update bimmer_connected

* Update to bimmer_connected==0.8.2

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-11-24 23:18:45 +01:00
Sergiy Maysak de1527d0e9 Add wirelesstag ambient temperature sensor for Outdoor Probe (#60243)
* Added support for ambient temperature sensor for Outdoor Probe.

* Switched to use of SensorEntityDescription for device_class.

* Removed unused config param, restored use of _sensor_type ivar.

* Use entity descriptions as dict for shorter iteration.

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-24 23:02:18 +01:00
Simone Chemelli 15f62a7237 More tests optimizations for SamsungTV (#60297)
* More tests optimizations

* Apply review comments
2021-11-24 22:54:49 +01:00
Maciej Bieniek 970df6d067 Move sensor stuff to the sensor platform in Brother integration (#60306) 2021-11-24 22:50:35 +01:00
Ville Skyttä 9f4de8df18 Make device entry disabled by an enum (#60239) 2021-11-24 22:32:16 +01:00
alim4r 42389fc81b Support numeric sensors with no unit_of_measurement in prometheus (#60157) 2021-11-24 22:30:08 +01:00
Matthias Lohr 5853d81944 Add tolo light platform (#60305) 2021-11-24 22:26:08 +01:00
Franck Nijhof 37219e8d04 Add button platform to Tuya (#60304) 2021-11-24 21:10:26 +01:00
Matthias Lohr a399037a46 Add TOLO Sauna (tolo) integration (#55619) 2021-11-24 20:45:13 +01:00
Fabian Seitz 2439f6b562 Bump openwrt-luci-rpc from 1.1.8 to 1.1.11 (#60124) 2021-11-24 20:12:39 +01:00
Erik Montnemery 7c3edf24f2 Allow MQTT selects to have a single or no options (#60281) 2021-11-24 20:06:12 +01:00
J. Nick Koston fd116fc408 Refactor zeroconf matching to be more DRY (#60293) 2021-11-24 19:57:13 +01:00
J. Nick Koston 86cd46a0dd Add support for adjusting effect brightness in flux_led (#60247) 2021-11-24 19:55:00 +01:00
Franck Nijhof 39f5eba97d Use native datetime value in OpenWeatherMap sensors (#60303) 2021-11-24 19:51:25 +01:00
Franck Nijhof c5d480f0c9 CI: Fix test groups when running full CI suite (#60300) 2021-11-24 12:03:33 -06:00
Franck Nijhof 29f1abd2d5 CI: Fix full suite on core file changes (#60299) 2021-11-24 18:43:58 +01:00
Franck Nijhof fb40a5c0d1 Partial CI workflows: take 2 (#60294) 2021-11-24 18:14:41 +01:00
Erik Montnemery 7b57033265 Correct today_at template function / filter (#60291)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-24 15:51:43 +01:00
Jan Bouwhuis d33457b7bc Add bytes support for bitwise template operations (#60211)
* Add bytes support for bitwise template operations

* spelling

* Update bitwise tests

* remove try block for bytes conversion

* do not accept empty `bytes` object
2021-11-24 15:15:27 +01:00
Franck Nijhof fa34153b20 Use UTC timestamp in uptime sensor (#60240) 2021-11-24 15:00:54 +01:00
epenet 5a8cbb8cab Use UsbServiceInfo in zwave-js (#60267)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 07:51:28 -06:00
epenet 3bf12fcd29 Use UsbServiceInfo and ZeroconfServiceInfo in zha (#60266)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 07:50:45 -06:00
epenet d990fe1957 Update ssdp matching_domain constant (#60283)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 07:49:44 -06:00
Thomas Dietrich b8f4b76194 Add additional statistics characteristics, remove attributes (#59867)
* Add additional statistics characterics, improve rounding

* Improve name of age_usage_ratio

* Replace difference by three relevant distances

* Refactor attributes, remove stats, add metadata

* Fix binary sensor testcase

* Fix sensor defaults testcase

* Fix and enhance all testcases

* Remove age coverage from attr when not configured

* Refactor so only the relevant characteristic value is calculated

* Rename unclear characteristics, add timebound average

* Fix coverage warning

* Remove explicit functions dict
2021-11-24 13:42:44 +01:00
Franck Nijhof 3aac757e7c CI: Combine smaller linters into a single job (#60279)
* CI: Combine smaller linters into a single job

* Remove unrelated changhe

* Remove stale exit
2021-11-24 11:56:50 +01:00
h2zero f4f945e65e Fix Konnected multiple discovery of panels (#59953)
* Konnected - Fix multiple discovery of panels.

This resolves an issue which creates multiple discoveries of a Konnected panel if it is restarted and fails to connect to home assistant.

See #57467.

* Revert changes to user step, add handling to ssdp step.

* Add abort reason string to strings.json

* Abort ssdp discovery if device is already known.

* Add test for multiple discovery fix.

* Remove unrelated file change.

* Add ssdp discovery abort tests.

* Add missing abort reason check.

* Add "already_configured" to strings.

* Use "cannot_connect" abort reason.
2021-11-24 11:35:00 +01:00
Michael Kowalchuk 74cfbf5f42 Use configured speed ranges for HomeSeer FC200+ fan controllers in zwave_js (#59697)
* Use configured speed ranges for HomeSeer FC200+ fan controllers in zwave_js

* Fix pylint errors

* Remove unused param in tests

* Fix test values

* Address various review notes

* Remove now-redundant assertion

* Add an additional test case for set_percentage=0

* Use round() instead of int() for percentage computations; this makes the percentage setting match the setpoints in the UI

* Add additional tests

* Fix pct conversions

* Make conversion tests exhaustive

* Add tests for discovery data templates

* Revert "Add tests for discovery data templates"

This reverts commit 85dcbc0903a1dd95f8e4e5f3c5d29cd7547b667b.

* Improve typing on ConfigurableFanSpeedDataTemplate#resolve_data

* Move config error handling to the discovery data template

* Fix checks for config data

* Revise fallback logic in percentage_to_zwave_speed and ensure that the speed list is non-empty

* Rework error handling

* Fix runtime fan speed updates

* Use warning instead of warn

* Move data validation to get_speed_config; turns out that resolve_data is only called once, at startup.

* Temporarily remove the not-yet-used fixed fan speed template.  Add an additional assertion to ensure speeds are sorted.

* Add a comment about the assertions in discovery_data_template.py

* Update homeassistant/components/zwave_js/discovery_data_template.py

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

* Fix typo in comment

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-24 11:31:59 +01:00
Simone Chemelli 8e6a3b2799 Fix init slow tests for SamsungTV (#60245) 2021-11-24 11:25:25 +01:00
Matthias Alphart 1a5f2c9c32 Disable less popular Fronius entities by default (#60264) 2021-11-24 11:17:38 +01:00
Erik Montnemery 07c90575ac Add comments to entity category constants (#60276) 2021-11-24 10:46:53 +01:00
Franck Nijhof dee4ce921d Correct entity category on UPS type in NUT (#60277) 2021-11-24 10:46:31 +01:00
epenet 9027ee7828 Revert "Add type hints to SSDP (#59840)" (#60270) 2021-11-24 10:14:48 +01:00
Jan Bouwhuis d41d223033 Add UNIX timestamp detection to as_datetime template filter (#60126) 2021-11-24 09:51:56 +01:00
Jan Bouwhuis fa0d3a6c48 Change output template filters timestamp_local and timestamp_utc to isoformat (#60269) 2021-11-24 09:49:03 +01:00
Pascal Vizeli ed9d40378e Update base image 2021.11.0 (#60227) 2021-11-24 09:48:34 +01:00
epenet 4ffb0b8380 Use UsbServiceInfo in modem_callerid (#60268)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-24 09:40:52 +01:00
Erik Montnemery c0d2a66609 Add stable ID to entity registry entries (#60218)
* Add UUID to entity registry entries

* Fix test
2021-11-24 09:01:35 +01:00
Felipe Martins Diel 774e1b0022 Decouple BroadlinkDevice.available property (#58853)
* Decouple BroadlinkDevice.available property

* Exclude unreachable line from coverage
2021-11-23 21:59:18 -06:00
J. Nick Koston be94ce42a5 Prevent get_mac_address from blocking event loop in samsungtv config flow (#60246) 2021-11-24 03:16:09 +01:00
Simone Chemelli e1de6612be Fix socket usage in Aprs test (#60253) 2021-11-24 03:02:03 +01:00
cvroque 4555f52e50 Add configuration entities to Tuya Vacuum (sd) (#59936) 2021-11-24 02:15:49 +01:00
Franck Nijhof 4c3163196e Temporary disable partial runs in CI (#60258) 2021-11-24 02:13:38 +01:00
Matthias Alphart 3dac661480 Rewrite Fronius integration (#59686)
* Add unique_id and use DataUpdateCoordinator in Fronius (#57879)

* initial refactoring commit - meters

- config_flow (no strings, no tests yet)
- import yaml config
- FroniusSolarNet class for holding Fronius object , coordinators and some common data
- meter descriptions
- update coordinator
- entities (including devices)

* storage controllers

* error handling on init; inverter unique_id

* inverters

* power_flow

* fix VA, var, varh not valid for device_class power/energy

and add custom icons

* add SolarNet device for system wide values

* cleanup

* config_flow strings

* test config_flow

* use pyfronius 0.7.0

* enable strict typing

* remove TODO comments

* fix lint errors; move FroniusSensorEntity to sensor.py

* power_flow as optional coordinator

API V0 doesn't support power_flow endpoint

* show error message in logs

* prevent parallel requests to one host

* logger_info coordinator

* store FroniusSolarNet reference directly in coordinator

* cleanup coordinators when unloading entry

* round floats returned by Fronius API

* default icons for grid im/export tariffs

* small typing fix

* Update homeassistant/components/fronius/sensor.py

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>

* DC icons

* prepend names with "Fronius" and device type

to get more reasonable default entity_ids (eg. have them next to each other when alphabetically sorted)

* remove config_flow and devices

* rename _FroniusUpdateCoordinator to FroniusCoordinatorBase

and mark ABC

* move SensorEntityDescriptions to sensor.py

* Revert "move SensorEntityDescriptions to sensor.py"

This reverts commit 2e5a726eb65854f236a0c72f3f67f04a6f8a2eff.

* Don't raise ConfigEntryNotReady and use regular refresh method

* move bridge initialization out of helper class

* no coverage tests

* power_flow update interval 10 seconds

* move SensorEntityDescriptions to sensor.py

without introducing a circular dependency

* deprecation warning for CONF_MONITORED_CONDITIONS

* remove extra_state_attributes form meter sensor entities

* readd diagnostic entities

* decouple default entity_id from default name

* use key instead of name for entity_id

and make deprecated config key optional

* adjust tests

* use old entity_ids

these changes are now backwards compatible

* check coverage

* simplify entity description definitions

* restore entity names of previous implementation

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>

* Add config_flow for Fronius integration (#59677)

* Cleanup Fronius config_flow and tests (#60094)

* Add devices to Fronius integration (#60104)

* New entity names for Fronius entities (#60215)

* Adaptive update interval for Fronius coordinators (#60192)

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>
2021-11-24 02:04:36 +01:00
Franck Nijhof 314f593066 Add partial codecov flag to CI to trigger carryforward coverage (#60256) 2021-11-24 01:34:03 +01:00
Simone Chemelli 7e9ff26b4c Add slow tests list to VScode task code coverage (#60183) 2021-11-24 01:13:44 +01:00
Franck Nijhof ec44a55b2c Make partial test suite not waiting for linters (#60254) 2021-11-24 01:09:55 +01:00
Franck Nijhof 6b59e305cb Run partial test suite in CI if core untouched (#60230)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-23 14:57:45 -08:00
Oleksandr Kapshuk d677baba36 Add hjjcy device category to Tuya integration (#60224) 2021-11-23 23:42:21 +01:00
Kamil Doległo a7c44d89e1 Fix Tuya integration for climate devices (#60229) 2021-11-23 23:33:36 +01:00
cvroque 28da8c474c Check if Tuya Vacuum (sd) is able to report status directly before using pause switch (#59888) 2021-11-23 23:32:03 +01:00
Maciej Bieniek ac3dc0b090 Use native datetime value in NAM uptime sensor (#60241) 2021-11-23 23:25:48 +01:00
Michael Chisholm 9fa6daf47a dlna_dmr: Ignore philips tv (#60204) 2021-11-23 23:22:34 +01:00
Maciej Bieniek 4649bc3c11 Add LED brightness for Xiaomi Miio ZA5 fan (#60134) 2021-11-23 23:21:07 +01:00
Erik Montnemery 615198a58f Use pychromecast CastInfo type in cast integration (#60205) 2021-11-23 23:17:58 +01:00
Michael 027577805e Use attribute shortcuts in Samsung TV integration (#60171)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-11-23 23:15:05 +01:00
Andreas Brett cee5595ba7 Add pi_hole entity "available_updates" (#56181)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-23 23:05:27 +01:00
epenet 44611d7e26 Use dataclass for ZeroconfServiceInfo (#60206)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 22:59:36 +01:00
Michael 2de0a14db0 Use native datetime value in IPP sensors (#60234) 2021-11-23 22:55:32 +01:00
J. Nick Koston af51aeb6dc Show how user input is malformed in the UI on error (#60057) 2021-11-23 22:50:54 +01:00
Erik Montnemery 135778fe91 Enable basic type checking for awair (#55046) 2021-11-23 22:49:42 +01:00
avee87 9088a6a138 Add device registry entry for MetOffice (#58683) 2021-11-23 22:45:23 +01:00
Marc Mueller 6089aef072 Enable strict typing - wallbox (#59301) 2021-11-23 22:30:22 +01:00
J. Nick Koston ce369bb336 Reduce flux_led light turn on complexity (#60139) 2021-11-23 22:23:38 +01:00
Erik Montnemery 24779dea3b Bump device registry version to 1.2 (#60199) 2021-11-23 22:22:15 +01:00
Sergiy Maysak 73d4445f80 Bumped version of wirelesstagpy to 0.8.0 (#60125) 2021-11-23 22:21:10 +01:00
Robert Dunmire III fd8229f4f4 Bump librouteros version to 3.2.0 (#60066) 2021-11-23 22:18:19 +01:00
J. Nick Koston 52e0027fad Limit homekit sources to prevent exceeding 100 limit (#59743) 2021-11-23 22:15:08 +01:00
Franck Nijhof 5c443b626a Use native datetime value in MQTT sensors (#59923) 2021-11-23 22:10:14 +01:00
epenet 4480e1255a Use MqttServiceInfo in tasmota (#60113)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 22:07:10 +01:00
Philip Allgaier a5dc0e37b8 Consistent capitalization for Synology DSM entity names (#60237) 2021-11-23 22:06:05 +01:00
bashworth df5d678858 Tado ignore fix (#60011)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-23 22:00:42 +01:00
J.P. Krauss 2d29ef9b63 Avoid errors when AirNow API does not return all expected pollutants (#60232)
Co-authored-by: Aaron Bach <bachya1208@gmail.com>
2021-11-23 21:54:53 +01:00
Michael a3bf56c11d Use native datetime value in Systemmonitor sensors (#60236) 2021-11-23 21:46:31 +01:00
Henrik 0a0928b9f5 Add daikin sensor state class (#60145)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-23 21:46:10 +01:00
Ville Skyttä 7c6a72b086 Remove unneeded pylint disables (#60235) 2021-11-23 21:40:53 +01:00
Michael 6588879b6e Use native datetime value in AVM Fritz!Tools sensors (#60233) 2021-11-23 21:20:51 +01:00
Michael 9a328eae67 Use native datetime value in Synology DSM sensors (#60176) 2021-11-23 20:03:22 +01:00
Maikel Punie c27948a82a Fully migrate to attribute shorthand in velbus (#59797)
* Move velbus completly to _attr instead of propertys

* Commit all sugestions

* One more sugestion

* Fixed light.py
2021-11-23 12:10:03 -06:00
J. Nick Koston 881d35ab17 Split up yeelight code into multiple files (#59990) 2021-11-23 11:56:07 -06:00
J. Nick Koston 6524cd4eb2 Fix user input malformed with deleted entities in HomeKit exclude flow (#60061) 2021-11-23 11:46:54 -06:00
J. Nick Koston 400aaeaa91 Ensure homekit setup messages run in event loop (#60226) 2021-11-23 11:40:20 -06:00
epenet 9f74ad06d6 Update ZeroconfServiceInfo in tests (t-z) (#60221)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 11:28:50 -06:00
epenet cbbf22db52 Use dataclass for UsbServiceInfo (#60140)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 10:51:54 -06:00
epenet 77dfeb062f Update ZeroconfServiceInfo in tests (n-t) (#60219)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 10:35:44 -06:00
Franck Nijhof 7a0ff4e2e1 Add button support to Alexa (#60163) 2021-11-23 08:19:13 -08:00
Michael e3910856ad Use native datetime value in Shelly sensors (#60179)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-23 08:18:58 -08:00
Raman Gupta d249743ccf Bump zwave-js-server-python to 0.33.0 (#60213) 2021-11-23 10:53:46 -05:00
epenet f6bbdec6cb Use BaseServiceInfo inheritance in MqttServiceInfo (#60207)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 16:52:33 +01:00
epenet 31b033ac25 Update ZeroconfServiceInfo in tests (g-m) (#60217)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 09:42:38 -06:00
Erik Montnemery 7e08238cd8 Bump pychromecast to 10.1.1 (#60214) 2021-11-23 09:38:31 -06:00
Franck Nijhof e7b05ef452 Adjust CI to split tests into 6 groups (#60198) 2021-11-23 09:34:38 -06:00
epenet 1d3fbc93a0 Update ZeroconfServiceInfo in tests (a-f) (#60212)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 09:32:58 -06:00
micha91 e615e70e49 Add Yamaha MusicCast zone specific devices (#58285) 2021-11-23 16:29:34 +01:00
epenet 560546f65e Use dataclass for DhcpServiceInfo (#60136)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 13:35:53 +01:00
Simone Chemelli e673d9dbd0 Fix missing mocking (#60181) 2021-11-23 11:56:16 +01:00
Franck Nijhof 83aff48db9 GitHub Actions: Don't run test suite if basic linters fails (#60197) 2021-11-23 11:21:55 +01:00
Franck Nijhof 4aae088512 Add GitHub Actions concurrency limits (#60194) 2021-11-23 10:05:48 +01:00
Ville Skyttä 39691faccc Use DeviceEntryType in non-typechecked code too (#58646) 2021-11-23 10:04:33 +01:00
Erik Montnemery ca20fc857f Remove via_device links when a device is removed (#60153)
* Remove via_device links when a device is removed

* Update test
2021-11-23 09:36:03 +01:00
dependabot[bot] 8ece8d124d Bump actions/cache from 2.1.6 to 2.1.7 (#60189)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-23 09:29:22 +01:00
epenet 3b0d984959 Use dataclass for MqttServiceInfo (#60191)
* Use dataclass for MqttServiceInfo

* Drop test exception

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 09:01:40 +01:00
Franck Nijhof 42ed6ddba3 Add button support to Google Assistant (#60158) 2021-11-22 20:50:21 -08:00
J. Nick Koston 7359083e98 Remove legacy executor usage from HomeKit tests (#60180) 2021-11-22 22:37:28 -06:00
Aaron Bach 0e4de42539 Alter RainMachine to enable/disable program/zones via separate switches (#59617) 2021-11-22 20:47:01 -07:00
Paulus Schoutsen 4ff3b2e9a9 Bump frontend to 20211123.0 (#60184) 2021-11-22 19:07:27 -08:00
J. Nick Koston 4af5cde738 Include model name in flux_led discovery when available (#60105) 2021-11-22 20:21:46 -06:00
J. Nick Koston cb3b19b000 Add support for adjusting flux_led effects speed (#59679) 2021-11-22 16:52:06 -08:00
Milan Meulemans 5550b5445b Add Button platform to Nanoleaf (#60169)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-23 01:26:37 +01:00
GitHub Action 9e606abb0c [ci skip] Translation update 2021-11-23 00:13:54 +00:00
Tim Rightnour 3639481027 Add sensors to venstar integration (#58851) 2021-11-22 18:05:12 -06:00
Franck Nijhof 766c889e70 Add button support to HomeKit (#60165)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-23 00:46:51 +01:00
Erik Montnemery f510534c58 Bump entity registry version to 1.3 (#60164) 2021-11-22 13:38:51 -06:00
Aaron Bach c87ab574a7 Fix bug with how SimpliSafe lock's respond to websocket events (#60152) 2021-11-22 12:28:22 -07:00
Aaron Bach 93ad486439 Fix missing pending state for SimpliSafe (#60151) 2021-11-22 12:24:51 -07:00
Milan Meulemans 637b6bbb97 Upgrade aionanoleaf to 0.0.4 (#60160) 2021-11-22 19:49:24 +01:00
Erik Montnemery 39d6aba3bc Improve startup of unavailable template entities (#59827) 2021-11-22 09:20:38 -08:00
Ville Skyttä 053c456199 Change device entry type to an StrEnum (#59940)
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-22 18:14:15 +01:00
Erik Montnemery 4a5238efa5 Add support for calculating daily and monthly fossil energy consumption (#59588) 2021-11-22 09:10:54 -08:00
Erik Montnemery 49a27e12ad Add support to entity registry for overriding device_class (#59985) 2021-11-22 08:38:06 -08:00
epenet 67e13b35db Revert "Create new usb constants (#60086)" (#60137)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 10:28:10 -06:00
Franck Nijhof 69b7495324 Sensor: Handle local->UTC conversion and reject timezoneless timestamps (#59971) 2021-11-22 17:04:06 +01:00
epenet 7e1b00c491 Use ZeroconfServiceInfo in wled (#60130)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 08:19:54 -06:00
epenet c8451001a0 Use ZeroconfServiceInfo in xiaomi_aqara (#60131)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 08:19:01 -06:00
epenet 2cd241ff0a Use ZeroconfServiceInfo in xiaomi_miio (#60132)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 08:18:22 -06:00
epenet 8b26b69366 Use ServiceInfo in yeelight (#60127)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 08:15:14 -06:00
Hans Oischinger 38b976e6d6 Add vicare config flow (#56691)
* Configuration via UI

Config flow / YAML deprecation
- Support discovery via MAC address
- Support import of YAML config
- Switch to ConfigEntry, get rid of platform setup

* Fix review comments

* More tests for vicare yaml import
2021-11-22 15:06:42 +01:00
Cliffano Subagio a7382c8092 Fix KeyError when Twitter app permission is set to Read (#60018) 2021-11-22 14:38:36 +01:00
h2zero 3b5a7d001f Fix Konnected DS18B20 poll interval (#59954)
* Konnected - Fix DS18B20 poll interval.

The poll interval for the DS18B20 was not being sent to the device.

* Fix tests
2021-11-22 14:01:37 +01:00
jan iversen 5608b4fb18 Update CODEOWNERS for tradfri (#60023)
Co-authored-by: rianadon <ryanadolf123@gmail.com>
2021-11-22 13:43:04 +01:00
Franck Nijhof d95c615f86 Add binary sensor platform to WLED (#59798) 2021-11-22 13:22:43 +01:00
Glenn Waters 65d1f8183f Fix Environment Canada server loading (#60087)
* Reduce number of requests hitting EC servers.

* Bump lib.
2021-11-22 12:40:25 +01:00
epenet 10d0870198 Use ZeroconfServiceInfo in plugwise (#60050) 2021-11-22 12:35:52 +01:00
G Johansson 29761e6eef Fix logger setting Yale Smart Living (#60033) 2021-11-22 12:17:55 +01:00
Aaron Godfrey c70a7020f5 Fix todoist due_today attribute for calendar events (#60038)
The attribute was comparing a UTC date to a local date which caused the
attribute to not be true in some cases.
2021-11-22 12:03:56 +01:00
Franck Nijhof 8b30cb509f Cleanup customize API endpoint (#59824) 2021-11-22 12:01:56 +01:00
epenet 39149e19f7 Use ZeroconfServiceInfo in tado (#60111)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 11:54:15 +01:00
epenet eb70d328ca Use DhcpServiceInfo in tplink (#60114)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 11:51:47 +01:00
epenet 70f43a1415 Use ZeroconfServiceInfo in tradfri (#60112)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 11:49:37 +01:00
epenet 5a40322cda Use ZeroconfServiceInfo in volumio (#60116)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 11:48:06 +01:00
epenet bac3c1fd75 Use DhcpServiceInfo in verisure tests (#60117)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-22 11:47:32 +01:00
Erik Montnemery 0df2904b89 Improve some entity registry tests (#59902) 2021-11-22 10:24:37 +01:00
Aaron Bach 1da251860e Fix bugs causing SimpliSafe entities to incorrectly show unavailable (#59955) 2021-11-21 21:32:03 -07:00
Simone Chemelli 82a422930b Honor "Enable newly added entities" for Fritz (#59948) 2021-11-21 18:51:48 -06:00
RenierM26 02b72d8c23 Bump ezviz api 0.2.0.5 (#60090) 2021-11-21 18:51:22 -06:00
jjlawren aa5cf175f4 Set Sonos availability based on activity and discovery (#59994) 2021-11-21 18:48:57 -06:00
epenet 263101b2ab Create new usb constants (#60086) 2021-11-21 18:14:42 -06:00
GitHub Action 31d4239b64 [ci skip] Translation update 2021-11-22 00:13:02 +00:00
ollo69 176245e5be Use format_mac for AsusWRT ScannerEntity Mac Address (#54959)
* Use format_mac for AsusWRT ScannerEntity mac

* Fix after rebase

* Change check for duplicated entities
2021-11-21 14:45:40 -08:00
jugla e4931e242a Allow atome reauthentication on error (#59452)
* allow reauthentification on error

* Allow reauthentification on error

* allow reauthentification on error

* allow reauthentification on error

* Set one fonction for day/month/week/year and allow retry on error

* allow retry and manage return status

* local variable in retrieve_period_usage_with_retry

* Use If statement rather than exception

* remove blank

* code format

* Reduce variable

* remove useless variable

* get method return false and pylint no else-return

* remove blank

* trailing white space
2021-11-21 14:38:37 -08:00
Simone Chemelli c4128f853d Add climate platform to Shelly (#59712)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-11-21 16:34:00 -06:00
epenet 382efef2e2 Use DhcpServiceInfo in squeezebox (#60100) 2021-11-21 16:33:44 -06:00
epenet 4e1089cedb Use DhcpServiceInfo in somfy_mylink (#60099) 2021-11-21 16:33:34 -06:00
epenet 8f7f32d844 Use DhcpServiceInfo in screenlogic (#60103) 2021-11-21 16:33:26 -06:00
epenet 4555820987 Use ZeroconfServiceInfo in shelly (#60098) 2021-11-21 16:33:20 -06:00
epenet fa9465d003 Use ZeroconfServiceInfo in system_bridge (#60102) 2021-11-21 16:33:06 -06:00
epenet a72a5486c2 Use ServiceInfo in samsungtv tests (#60097) 2021-11-21 16:00:59 -06:00
epenet 1c15544d7a Use ZeroconfServiceInfo in smappee (#60096) 2021-11-21 15:50:29 -06:00
epenet b465131170 Use ZeroconfServiceInfo in sonos (#60095) 2021-11-21 15:49:50 -06:00
epenet b9cbfbae58 Use ZeroconfServiceInfo in nut (#60047) 2021-11-21 15:49:03 -06:00
epenet 2675c6d408 Use DhcpServiceInfo in axis (#60092)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-21 15:39:37 -06:00
epenet 7560f11680 Use ZeroconfServiceInfo in roku (#60053) 2021-11-21 11:27:35 -06:00
epenet 2270e920c3 Use ZeroconfServiceInfo in modern_forms (#60043) 2021-11-21 17:37:09 +01:00
epenet 95075448bd Use DhcpServiceInfo in nuki (#60046) 2021-11-21 17:35:51 +01:00
epenet 36a67d060b Use ZeroconfServiceInfo in octoprint (#60049) 2021-11-21 17:35:24 +01:00
epenet c3e9c1a7e8 Use DhcpServiceInfo in powerwall (#60051) 2021-11-21 07:56:22 -06:00
epenet 8ec30aa9ad Use ZeroconfServiceInfo in rachio (#60054) 2021-11-21 07:55:54 -06:00
epenet 435eb97495 Use DhcpServiceInfo in roomba (#60056) 2021-11-21 07:54:39 -06:00
epenet 25e5263954 Use ZeroconfServiceInfo in nanoleaf (#60045) 2021-11-21 07:51:50 -06:00
Dan Klaffenbach 56e93ff0ec Add support for HEOS groups (#32568)
* Add support for grouping HEOS media players

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Update homeassistant/components/heos/media_player.py

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Handle groups at controller level, refine tests.

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>

* Fix linting issues

* Update homeassistant/components/heos/media_player.py

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

* Update homeassistant/components/heos/media_player.py

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

* Rename variables and improve resolving of entity_ids

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

* Don't patch internal methods

Use the pytest fixtures which have already been defined for this.

* Fix linting issues

* Remove unused property

* Ignore groups with unknown leader

This makes sure that the group_members attribute won't contain a `None`
value as a leader entity_id.

* Don't call force_update_groups() from tests

* Don't pass `None` player ids to HEOS API

* Use signal for group manager communication

* Use imports for async_dispatcher_send/async_dispatcher_connect

* Raise exception when leader/player could not be resolved

* Disconnect signal handlers, avoid calling async_update_groups too early

* Update homeassistant/components/heos/__init__.py

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

Co-authored-by: Andrew Sayre (he/his/him) <6730289+andrewsayre@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-21 12:57:31 +01:00
G Johansson 0dece582e4 Improve coordinator for yale_smart_alarm (#54091)
* Commit coordinator adjustments

* Review changes
2021-11-21 12:11:36 +01:00
Daniel Perna 9197512ed1 Fix Sensors for HmIP-DLD (#59804) 2021-11-21 12:09:55 +01:00
epenet ba93a384a7 Use ZeroconfServiceInfo in nam (#60044) 2021-11-21 10:25:34 +01:00
Simone Chemelli f606ba3b23 Detail reason for ConfigEntryNotReady (#60062) 2021-11-21 10:25:18 +01:00
epenet 3cdca4a657 Use ZeroconfServiceInfo in netatmo tests (#60048) 2021-11-21 08:40:46 +01:00
Allen Porter 7e0ddd1d8c Bump google-nest-sdm to 0.4.0 (#60068)
Full changelog: https://github.com/allenporter/python-google-nest-sdm/compare/0.3.9...0.4.0

All changes are in new code and is expected to be a no-op for the current code.

This release introduces a new API for fetching events for upcoming features in Home Assistant,
namely fetching camera clips for battery cameras. The new API is uniform across old and new
cameras.
2021-11-21 08:10:09 +01:00
epenet 85b37a8532 Use ZeroconfServiceInfo in rainmachine (#60055) 2021-11-21 08:08:45 +01:00
Avi Miller e056f9aa0f Explicitly cast the SOMA API response to an integer (#60071)
This resolves the `TypeError: unsupported operand type(s) for -: 'int'
and 'str'` error.

Fixes #60070.

Signed-off-by: Avi Miller <me@dje.li>
2021-11-20 22:31:45 -08:00
Simone Chemelli 23f37d0127 Bump aioshelly to 1.0.5 (#60058) 2021-11-20 16:59:45 -08:00
GitHub Action e98977fb49 [ci skip] Translation update 2021-11-21 00:13:51 +00:00
Marcel van der Veldt 7161a0bf2a Add guard for already migrated Hue entity (#59930)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-11-20 14:46:11 -08:00
Marcel van der Veldt 4820acb897 Fix for deviceless entities in Hue integration (#59820) 2021-11-20 14:45:51 -08:00
Marcel van der Veldt 902da4daf8 Add integration_entities template helper (#59841) 2021-11-20 14:43:31 -08:00
epenet df3f3321f2 Use ZeroconfServiceInfo in hue (#59980)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-20 14:39:14 -08:00
Paulus Schoutsen 66132e133f Merge remote-tracking branch 'origin/master' into dev 2021-11-20 14:34:43 -08:00
J. Nick Koston 2412afbacd Add configuration_url to lutron_caseta (#60015) 2021-11-20 09:45:25 -06:00
Marvin Wichmann 769661adc3 KNX christmas cleaning #2 - remove old migrations (#60026)
* Remove old migrations from KNX integration

* Remove cover migration
2021-11-20 16:34:59 +01:00
Jared Hobbs 6d4b74f8f2 Add haa vendor extensions (#59750)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-20 09:22:10 -06:00
Franck Nijhof 70990ebf81 Add WLED Live Override controls (#59783) 2021-11-20 09:15:47 -06:00
Marvin Wichmann 1d63ae8696 Code quality improvements for KNX integration (#60024) 2021-11-20 16:15:33 +01:00
Franck Nijhof 25f491ad16 Add WLED reverse effect switch (#59778) 2021-11-20 08:57:47 -06:00
J. Nick Koston bf79db4226 Add harmony configuration url (#60014) 2021-11-20 08:34:09 -06:00
Ville Skyttä f305d99af9 Add integration filtering and error if core options to helpers.frame.report (#60009)
Reduces some existing and upcoming boilerplate.
2021-11-20 12:53:04 +02:00
Marvin Wichmann e5c33474e3 Add config and options flow to KNX integration (#59377) 2021-11-20 11:30:41 +01:00
Ullrich Neiss 40104de0bf Address late review of kostal plenticore (#59998) 2021-11-20 11:16:53 +01:00
epenet d0ff8a9b76 Add id constant for homekit discovery (#59986) 2021-11-20 10:07:59 +00:00
J. Nick Koston 59f10373ad Add configuration url to august (#60013) 2021-11-19 21:55:51 -06:00
Guido Schmitz 02423d6edc Add long-term statistics support for devolo Home Control (#57612)
* Add long-term statistics support

* Fix messed up rebase
2021-11-19 19:52:33 -08:00
Aaron Bach 394ccae8a1 Migrate appropriate Ambient PWS sensors to use datetime state objects (#59942) 2021-11-19 18:06:39 -07:00
Aaron Bach 40570b572d Migrate appropriate ReCollect Waste sensors to use datetime state objects (#59943) 2021-11-19 18:06:23 -07:00
GitHub Action 72b0eb719e [ci skip] Translation update 2021-11-20 00:12:27 +00:00
Diogo Gomes e8970d6390 Bump roombapy to 1.6.4 (#60008) 2021-11-19 23:46:45 +01:00
Daniel Hjelseth Høyer 5f8646600f Correct supported_features and model for Mill (#59996)
* Correct supported_features and model for Mill

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

* Correct supported_features and model for Mill

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

* revert

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

* Mill

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-19 17:19:56 -05:00
Daniel Hjelseth Høyer 4f89ce4fb8 Bump Mill library (#59995)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-19 17:18:52 -05:00
Aaron Bach 8f6796f428 Prevent IQVIA from blocking other integrations' startup (#60001) 2021-11-19 14:01:26 -07:00
Aaron Bach dedc4a8285 Prevent OpenUV from blocking other integrations' startup (#59956)
* Prevent OpenUV from blocking other integrations' startup

* Comment
2021-11-19 13:53:47 -07:00
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
Robert Svensson 6f091d235f Fix late comment correcting kwargs should always be Any in deCONZ covers (#59997)
* Fix late comments correcting kwargs should always be Any
2021-11-19 21:16:21 +01:00
Guido Schmitz da68cfa821 Bump devolo_plc_api to 0.6.3 (#59991) 2021-11-19 19:31:28 +01:00
epenet 386520b883 Use ZeroconfServiceInfo in ipp (#59983)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 10:16:34 -06:00
epenet e3ee19d0c4 Use ZeroconfServiceInfo in kodi (#59984)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 10:16:28 -06:00
epenet 8a4d3b2a2e Use ZeroconfServiceInfo in lookin (#59987)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 10:16:07 -06:00
jjlawren 81e02a39df Ignore non-Sonos SSDP devices with Sonos-like identifiers (#59809) 2021-11-19 10:14:12 -06:00
epenet 9aa41be8b7 Use ZeroconfServiceInfo in lutron_caseta (#59988)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 09:36:18 -06:00
starkillerOG 2b7bcd6aeb Yeelight disable polling (#59885)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-19 09:02:07 -06:00
epenet 14d4a9a69d Use DhcpServiceInfo in isy994 (#59982)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 08:14:25 -06:00
epenet 982f2065c8 Use ZeroconfServiceInfo in homekit_controller (#59979)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 08:13:56 -06:00
epenet d6c5aaa0cb Use ServiceInfo in hunterdouglas_powerview (#59981)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 08:12:31 -06:00
Erik Montnemery c557da028a Bump entity_registry store version to 1.2 (#59912)
* Bump entity_registry store version to 1.2

* Migrate also when importing yaml

* Adjust tests

* Satisfy pylint

* Fix typing
2021-11-19 14:25:34 +01:00
epenet 45d41e584f Use DhcpServiceInfo in dhcp tests (#59962)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:49:28 +01:00
epenet f17d58a049 Use DhcpServiceInfo in emonitor (#59965)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:48:51 +01:00
epenet cb306236f2 Use DhcpServiceInfo in flux_led (#59967)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:37:59 +01:00
Franck Nijhof a51f2a433f Upgrade pyatmo to 6.2.0 (#59975) 2021-11-19 12:36:25 +01:00
epenet 59547289b4 Use DhcpServiceInfo in broadlink (#59961)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:29:20 +01:00
epenet 2aa8c2cf74 Use DhcpServiceInfo in gogogate2 (#59968)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:19:37 +01:00
epenet e7013f468c Use DhcpServiceInfo in goalzero tests (#59969)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:18:56 +01:00
epenet 01fea8bbdd Use DhcpServiceInfo in guardian tests (#59970)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:18:32 +01:00
epenet e23cc3ecbf Optimise use of ZeroconfServiceInfo (#59966)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-19 12:17:49 +01:00
rianadon ecf00a1eae Add accumulated precipitation to unit system (#59657)
* Add accumulated precipitation to unit system

* Fix template test

* Fix typo of testing pressure instead of precipitation

* Add extra arguments so unit system test passes
2021-11-19 09:18:44 +01:00
deftdawg b8ec0825d3 Add energy support to Neurio_Energy (#54445)
* - Patch Neurio_Energy to support new HA energy

Enables the Neurio Energy Meter as a Consumption device for Home Assistant Energy

* Only return last_reset value for DEVICE_CLASS_ENERGY

* Update homeassistant/components/neurio_energy/sensor.py

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

* Update with recommendations from CI/Black

* Support new style typing

* Attempt setting the state_class statically

* Make state class static

* Changing state class to STATE_CLASS_TOTAL_INCREASING and removing last_reset seems to work ok

* Remove unused datetime import that was previously in last_reset

* Apply suggestions from code review

apply emontnemery's recommended changes

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-19 09:16:08 +01:00
J. Nick Koston 2f00f8d3de Prevent executor overload when starting many homekit instances (#59950) 2021-11-18 22:39:49 -08:00
Franck Nijhof 073bf6d6fd Use native datetime value inMobile App sensors (#59945) 2021-11-18 22:36:28 -08:00
Franck Nijhof f7b7786d0d Use native datetime value in UniFi sensors (#59926) 2021-11-19 07:35:09 +01:00
Paulus Schoutsen 66d91544e8 Fix some tests 2021-11-18 22:33:46 -08:00
Daniel Hjelseth Høyer a3d5aec778 Mill local access (#59549)
* Mill local

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

* Mill local

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

* Mill local

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

* Update homeassistant/components/mill/config_flow.py

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

* Update homeassistant/components/mill/config_flow.py

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

* Update homeassistant/components/mill/config_flow.py

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

* Fix review comments

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

* coveragerc

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

* Fix review comments

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

* Fix review comments

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

* Fix review comments

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

Co-authored-by: Allen Porter <allen@thebends.org>
2021-11-18 21:44:45 -08:00
Nathan Spencer 406cbcfe2d Use an assumed switch state until refresh callback is complete (#59805) 2021-11-18 21:29:38 -08:00
Aaron Bach ff21453f58 Migrate appropriate Ridwell sensors to use datetime state objects (#59944)
* Migrate appropriate Ridwell sensors to use datetime state objects

* Linting

* Whoops
2021-11-18 22:24:12 -07:00
Erik Montnemery 04a36e0679 Remove test_check_package_version_does_not_match (#59785) 2021-11-18 20:25:59 -08:00
J. Nick Koston 347c4ea137 Bump zeroconf to 0.37.0 (#59932) 2021-11-18 20:23:20 -08:00
Robin Dupont 4598353315 Add apparent_power for ZHA ElectricalMeasurement (#59857)
* Add apparent_power for ZHA ElectricalMeasurement

* Add apparent_power to REPORT_CONFIG

* update device list with apparent_power attribute

* update test decorators for apparent_power

* remove comments

* Add test for apparent_power in test_sensor
2021-11-18 19:43:08 -05: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
GitHub Action 29dc9de08f [ci skip] Translation update 2021-11-19 00:14:01 +00: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 442597928e Store: copy pending data (#59934) 2021-11-18 15:56:22 -08:00
J. Nick Koston 0fb21af07f Strip out deleted entities when configuring homekit (#59844) 2021-11-18 15:21:51 -08:00
Franck Nijhof 8fb84270d5 Fix Tuya back scaling in Climate and Humidifer entities (#59909) 2021-11-18 15:21:27 -08:00
Paul Frank a3139595bb Remove zwave_js cover workaround (#59939) 2021-11-18 23:04:21 +01:00
Eduard van Valkenburg 958c199d80 Brunt package update with async, data update coordinator and config flow (#49714)
* implemented config_flow and dataupdatecoordinator

* implemented config flow, dataupdatecoordinator and tests.

* undid extra vscode task

* fixed pylint errors

* updates based on review

* fix mypy in reauth

* fast interval to 5 sec

* fixed test patches and others from review

* added released package

* deleted wrong line from coveragerc

* updates to config and tests

* fixed test patch
2021-11-18 23:00:42 +01:00
starkillerOG 05eb2f3e5c Yeelight add state check to set_mode service (#59884) 2021-11-18 15:52:57 -06:00
Franck Nijhof 1ecd9c9459 Use native datetime value in OctoPrint sensors (#59927) 2021-11-18 22:42:21 +01:00
Franck Nijhof 8a0c5aa50b Use native datetime value in RDW sensors (#59914) 2021-11-18 20:07:38 +01:00
Franck Nijhof 5593dd4006 Use native datetime value in WLED sensors (#59907) 2021-11-18 20:03:40 +01:00
Franck Nijhof fc29611935 Use native datetime value in Uptime sensors (#59916) 2021-11-18 20:03:30 +01:00
Franck Nijhof 4e4f6ffa07 Use native datetime value in Jewish Calendar sensors (#59917) 2021-11-18 20:03:16 +01:00
Franck Nijhof 3adb9e4143 Use native datetime value in Tasmota sensors (#59915) 2021-11-18 20:03:04 +01:00
Franck Nijhof fc330f797d Use native datetime value in Forecast Solar sensors (#59913) 2021-11-18 19:58:31 +01:00
epenet 9ccee205ca Use ZeroconfServiceInfo in gogogate2 (#59746)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-18 12:14:00 -06:00
J. Nick Koston f751d6e064 Add additional bulb ouis to flux_led (#59868) 2021-11-18 11:45:38 -05:00
Franck Nijhof 24f3fd35c9 Fix shorthand native value type in sensor entity component (#59908) 2021-11-18 17:37:52 +01:00
Erik Montnemery d18c250acf Add minor version support to storage.Store (#59882) 2021-11-18 17:15:40 +01:00
J. Nick Koston cc3f179796 Ensure powerview setup is retried on 502 error (#59847) 2021-11-18 09:57:31 -06:00
PlusPlus-ua a211b8ca8f Bugfix in Tuya Number value scaling (#59903) 2021-11-18 16:53:34 +01:00
epenet 329904dfbb Add type hints to SSDP (#59840) 2021-11-18 09:49:36 -06:00
epenet 28ff1b9d9e Use native date value in Renault sensors (#59900)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-18 16:15:54 +01:00
rianadon 7cc7bbb76d Add speed to units system (#58437)
* Use speed units in unit system

* Use more obvious conversion factor for unit system speed test

* Use wind_speed instead of speed, use m/s
2021-11-18 16:08:42 +01:00
Ullrich Neiss 3dc0b9537c Move Kostal Plenticore writable settings from sensor to select widget or switch (#56529)
* Move "Battery:SmartBatteryControl:Enable" from a simple sensor to a switch
Add "Battery:TimeControl:Enable" as a switch

If you want to change charging behavior you need to turn off both switches, before you can enable the function you want. (Same as on Plenticore UI)

* removed:
    @property
    def assumed_state(self) -> bool

was copied from an switchbot integration, does not make sense or does deliver valuable information

Tried to set constant properties in the constructor

* correct typo, add new line at eof

* Initial state of switch was missing after (re)starting HA. Now working.

* Reformatted with black

* correct syntax errors from test run 09.10.2021

* reformat

* update 15.10.2021

* Set select value is working

* update 05.11.2021

* data correctly received

* working completly

* remove old switch definitions, now replaced by select widget

* correct complaints from workflow run on 11/11/2021

* Add explanatory comment for switch and select

* Correct comments

* Removed function async def async_read_data(self, module_id: str, data_id: str)
from class SettingDataUpdateCoordinator

* Add Mixin class for read/write

* try to make select.py less "stale"

* new dev environment 2

* new dev environment 2

* correct syntax

* minor coding standard correction

* Remove BOM

* Remove BOM on select.py

* Updated .coveragerc
2021-11-18 16:06:32 +01:00
Franck Nijhof 5e07bc38c1 Use native date value in Twente Milieu sensors (#59897) 2021-11-18 15:32:50 +01:00
Franck Nijhof 4a83ee5dab Use native datetime value in ESPHome sensors (#59896) 2021-11-18 15:32:39 +01:00
bwduncan ec6a67d17a Use correct Nissan leaf device_class (#59889) 2021-11-18 15:23:57 +01:00
bwduncan 9ab8622d72 Fix Nissan Leaf default states (#59866)
* Fix default states and add device_class.

Car data is initialised to zero, which means that graphs have an ugly
drop to zero in them when HA is restarted. We should report "None" when
the state is unknown.

We need to use availability to signal whether binary_sensors have
sensible data or not.

We can remove the custom icons and use the defaults provided by using
appropriate device_class.

* Make isort happy.

* Explicitly return None

* Remove feature from bugfix PR.
2021-11-18 15:18:25 +01:00
Erik Montnemery b13e4e9953 Small tweak of TriggerEntity typing (#59875) 2021-11-18 14:34:07 +01:00
Franck Nijhof 01efe1eba2 Add datetime object as valid StateType (#52671)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-18 14:11:44 +01:00
Thomas Schamm 92ca94e915 Add cover platform to bosch_shc integration (#51443)
Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-18 14:00:01 +01:00
Simone Chemelli a41d336724 Scsgate logging from warn(deprecated) to warning (#59862) 2021-11-18 13:13:45 +01:00
Erik Montnemery 1609c0cc2c Sort some entity_registry code (#59876)
* Sort some entity_registry code

* Sort some more entity_registry code

* Tweak
2021-11-18 11:51:32 +01:00
Franck Nijhof 87f2eb3bd7 Upgrade sentry-sdk to 1.5.0 (#59842) 2021-11-18 11:33:53 +01:00
Erik Montnemery bfafeb7965 Don't mock all of pychromecast in tests (#59839) 2021-11-18 11:28:35 +01:00
uvjustin bb731fad5d Bump httpx from 0.19.0 to 0.21.0 (#59723)
* Bump httpx from 0.19.0 to 0.21.0

* Bump respx from 0.17.0 to 0.19.0
2021-11-18 18:11:46 +08:00
Tomas Kislan cfc02fc9f4 Update minio dependency to 5.0.10 (#59878)
* Update minio dependency to 5.0.10

* Update minio dependency in manifest file
2021-11-18 10:59:04 +01:00
dependabot[bot] 5c01ed7edf Bump actions/setup-python from 2.2.2 to 2.3.0 (#59873)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2.2.2 to 2.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.2.2...v2.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  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-11-18 10:21:08 +01:00
uvjustin 5f96ed19d9 Remove -bb option from tox and ci (#59846) 2021-11-18 13:23:25 +08:00
Jonathan Keljo 94bfa5272d Remove the need for generics in greeneye_monitor.sensor (#58782)
* Remove the need for generics in greeneye_monitor.sensor

* Remove unused imports

* Store monitor and use a property instead
2021-11-17 20:30:58 -08:00
alim4r e180f1e302 Add input_number state to prometheus metrics (#56507)
* Add input_number to prometheus metrics

* Add prometheus input_number tests

* Removed unused import from test
2021-11-17 19:35:48 -08:00
René Klomp 5d0c758886 Bump pysma to 0.6.9 (#59848) 2021-11-17 19:56:04 -06:00
Maciej Bieniek 1c11e7061d Bump Nettigo Air Monitor backend library (#59675) 2021-11-17 19:00:19 -06:00
GitHub Action 9a85c8d894 [ci skip] Translation update 2021-11-18 00:12:48 +00:00
Aaron Bach 279ded3562 Ensure last_event_sensor_type in SimpliSafe entities is lowercased (#59864) 2021-11-17 16:37:53 -07:00
Paulus Schoutsen 6175f1b6f3 Bump frontend to 20211117.0 (#59851) 2021-11-17 11:45:08 -08:00
Raman Gupta edd068d6eb Add explicit unit mapping for zwave_js meters and sensors (#59659)
* Add explicit unit mapping for zwave_js meters and sensors

* review comment

* fix

* alternate approach
2021-11-17 12:26:32 -05:00
Philip Allgaier 5ae311b111 Fix invalid string syntax in OwnTracks config flow translations (#59838) 2021-11-17 16:05:50 +01:00
starkillerOG cac54d8e39 bump motionblinds to 0.5.8 (#59834) 2021-11-17 15:26:23 +01:00
Robert Svensson 569d596799 Add typing to deCONZ Lock and Logbook platforms (#59605) 2021-11-17 15:22:59 +01:00
Robert Svensson 0339761e72 Add typing to deCONZ Number and Sensor platforms (#59604) 2021-11-17 15:11:51 +01:00
Robert Svensson 29e0ef604e Add typing to deCONZ Climate and Cover platforms (#59610) 2021-11-17 15:08:37 +01:00
Joakim Sørensen edbe54c346 Prefer YAML config mode in Lovelace system_health (#59835) 2021-11-17 14:47:22 +01:00
Martin Hjelmare b6dea3c6cb Add more zwave_js binary sensor descriptions (#59474) 2021-11-17 12:53:44 +01:00
Thomas Dietrich 0ab3b10aed Allow selection of statistics state characteristic (#49960)
* Make statistics state characteristic selectable

* Move computation in helper function

* Add relevant config elements for clarity

* Rename variables for better readability

* Avoid reserved prefix ATTR_ for stats

* Fix NoneType base_unit error

* Add testcases for statistics characteristic

* Add testcases for state_class, unitless, and characteristics

* Add testcase coverage for no unit with binary

* Replace error catching by an exception

* Attend to review comments
2021-11-17 12:31:32 +01:00
Raman Gupta 0f64e7036f Bump zwave-js-server-python to 0.32.0 (#59727) 2021-11-17 11:56:48 +01:00
starkillerOG 3a7a4e8ffc Fix Netgear init error on orbi models (#59799)
* fix Netgear init error on orbi models

* Update sensor.py
2021-11-17 11:49:12 +01:00
René Klomp ac96c7bb1f Move creation of DeviceInfo outside try statement in SMA (#59821) 2021-11-17 11:28:18 +01:00
Franck Nijhof 5133269e2b Upgrade black to 21.11b0 (#59823) 2021-11-17 11:19:09 +01:00
Maikel Punie 7e5316eb86 Bump velbusaio to 2021.11.7 (#59817) 2021-11-17 10:15:19 +01:00
Erik Montnemery dec54488e8 Enable basic type checking for cloud (#55337)
* Enable basic type checking for cloud

* Update mypy settings

* Address review comment

* Fix rebase mistakes

* Correct decorator order
2021-11-17 09:07:01 +01:00
Erik Montnemery 593bc866f0 Bump pychromecast to 10.1.0 (#59719)
* Prepare for pychromecast 10

* Bump pychromecast to 10.0.0

* Bump pychromecast to 10.1.0

* Update homeassistant/components/cast/discovery.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-17 09:05:25 +01:00
Dermot Duffy a88469ec74 Bump motioneye-client to v0.3.12 (#59811) 2021-11-17 08:29:59 +01:00
Kilian Lackhove a4826f4b69 Fix deCONZ climate offset display if offset is zero (#59803) 2021-11-17 07:29:37 +01:00
René Klomp a68563cefd Add configuration_url to SMA integration (#59638) 2021-11-16 20:10:41 -06:00
epenet 7f07755f5c Use ZeroconfServiceInfo in enphase-envoy (#59738)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 17:45:03 -07:00
GitHub Action b82fac1a73 [ci skip] Translation update 2021-11-17 00:13:20 +00:00
Milan Meulemans f8501ded0e Add entity_category to Rituals Entities (#59756) 2021-11-16 14:37:28 -06:00
Marcel van der Veldt e1e6925097 Refactor of Hue integration with full V2 support (#58996)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-11-16 11:59:17 -08:00
Robert Svensson 4642a70651 Add typing to deCONZ Alarm Control Panel and Binary Sensor platforms (#59611)
* Add typing to deCONZ Alarm Control Panel and Binary Sensor platforms

* Address review comments

* Don't use asserts, use # type: ignore[no-any-return]

* Improve lazy typing of dict
2021-11-16 20:01:10 +01:00
Franck Nijhof 9faf3996db Add WLED firmware upgrade button (#59793) 2021-11-16 19:58:04 +01:00
Simone Chemelli 06d35853b6 Fix typo in attribute for Fritz (#59791) 2021-11-16 19:30:50 +01:00
epenet 0dcfd55c84 Adjust async_step_usb signature for strict typing (#59773)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 19:03:50 +01:00
Joakim Plate f0b3fbc5a7 Always fire event for known devices in rfxtrx (#58845) 2021-11-16 19:03:18 +01:00
Robert Svensson c7c1d6000f Add type hints to Siren and Switch deCONZ platforms (#59602)
* Add typing to Siren and Switch deCONZ platforms

* Update homeassistant/components/deconz/switch.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/deconz/switch.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/deconz/switch.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/deconz/siren.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/deconz/siren.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Add Any import

* Update homeassistant/components/deconz/siren.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2021-11-16 17:25:56 +01:00
Robert Hillis 16027b9f43 Fix mqtt undefined error (#59787) 2021-11-16 17:16:24 +01:00
Erik Montnemery fa952364cc Remove test_check_package_version_does_not_match (#59785) 2021-11-16 07:54:08 -08:00
Robert Hillis 14adcbc07c Add tests for goalzero (#59446)
* Add tests for goalzero

* tweak

* tweak
2021-11-16 07:18:30 -08:00
Khole e9c8de25df Add Hive Alarm Support (#59670)
* Add alarm support

* Update code coverage

* Update homeassistant/components/hive/alarm_control_panel.py

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

* Add alarm support

* Update code coverage

* Update homeassistant/components/hive/alarm_control_panel.py

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

* Update icon and device info

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2021-11-16 07:18:09 -08:00
David Beitey 1bcd62cd32 Add topic_template for mqtt.publish (#53743)
Co-authored-by: Erik Montnemery <erik@montnemery.com>

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-16 16:13:54 +01:00
Simone Chemelli 8a02d87a17 Removed deprecated "device_state_attributes" for Amberelectric (#59672)
* Removed deprecated "device_state_attributes"

* Cleanup

* Postpone removal

* log deprecation warning

* Update homeassistant/helpers/entity.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-16 16:11:46 +01:00
epenet 4387bbfb94 Adjust async_step_mqtt signature for strict typing (#59761)
* Add MqttServiceInfo

* Adjust async_step_mqtt signature

* Adjust async_step_mqtt signature

* Adjust components

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 13:30:38 +01:00
Maciej Bieniek f1d75f0dd7 Use source list property instead of the attribute in Denon AVR integration (#59768) 2021-11-16 12:40:54 +01:00
Robert Svensson 41e341028e Add typing to deCONZ Fan and Light platforms (#59607) 2021-11-16 12:39:51 +01:00
epenet 476a59d248 Adjust async_step_dhcp signature for strict typing (#59751)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 12:19:50 +01:00
Aaron Bach a78176e192 Perform some Ambient PWS code cleanup (#58859)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-11-16 11:56:17 +01:00
epenet cca3cdb096 Use ZeroconfServiceInfo in bosch_shc (#58957)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 11:40:49 +01:00
Erik Montnemery 4f01631bd6 Allow triggering on all state changes, ignoring attributes (#59713)
* Allow triggering on all state changes, ignoring attributes

* Add comment

* Apply suggestions from code review

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

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-16 08:35:52 +01:00
Franck Nijhof 9256a033a6 Upgrade spotipy to 2.19.0 (#59728) 2021-11-16 02:23:59 +01:00
Michael 771922b871 Add support for property attribute shorthand in Fan entity (#59649) 2021-11-16 01:25:22 +01:00
GitHub Action 0228d11546 [ci skip] Translation update 2021-11-16 00:18:33 +00:00
Paulus Schoutsen 6069899179 Merge pull request #59753 from home-assistant/rc 2021-11-15 16:02:30 -08:00
epenet 4d96ca3ddb Adjust async_step_homekit signature for strict typing (#59745)
* Use ZeroconfServiceInfo in async_step_homekit

* Update DiscoveryFlowHandler

* Update components
2021-11-15 17:27:04 -06:00
Matthias Alphart c0a8cea6fb Fix KNX individual light tests (#59749) 2021-11-16 00:02:39 +01: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
Philip Allgaier 646c996b42 Fix invalid string syntax in French OwnTracks config flow (#59752) 2021-11-15 14:30:48 -08:00
Aaron Bach ce3f918c2c Fix bug in AirVisual re-auth (#59685) 2021-11-15 14:30:26 -08:00
epenet 1bd2d3c69e Use ZeroconfServiceInfo in freebox (#59739)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 23:13:48 +01:00
J. Nick Koston 7122998307 Bump flux_led to 0.24.24 (#59740) 2021-11-15 23:13:37 +01:00
epenet 0b43cff377 Use ZeroconfServiceInfo in guardian (#59741)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 23:13:17 +01:00
epenet 032718abb1 Use ZeroconfServiceInfo in doorbird (#59737)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 14:43:52 -06:00
Matthias Alphart ca3e672b1d Fix KNX rgb(w) color (#51060)
* calculate brightness from color; scale color

* fix merge

* fix sending color only for brightness independent rgb color

* fix tests for rgb and rgbw color

* use public match_max_scale
2021-11-15 20:42:59 +01:00
epenet 4f7e405a2c Use zeroconf attributes in esphome (#58963)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 20:26:50 +01:00
epenet 3c42ea1a26 Use zeroconf attributes in forked-daapd (#58966)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 20:16:30 +01:00
Erik Montnemery e88ea2d48c Show cast as playing when an app without media support is active (#59714) 2021-11-15 20:13:43 +01:00
Nathan Spencer eaaa53d8d5 Add button to litterrobot (#59734) 2021-11-15 20:09:22 +01:00
epenet ce9385d442 Use zeroconf attributes in elgato (#58958)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 20:04:21 +01:00
Daniel Hjelseth Høyer 0040606c65 Bump Tibber library to 0.21.0 (#59732) 2021-11-15 20:03:39 +01:00
Clifford Roche 811b33092b Bump greeclimate to 0.12.5 (#59730) 2021-11-15 19:32:50 +01:00
Austin Mroczek 49c4886f40 Fix totalconnect config flow (#59461)
* 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

* put error message in strings

* test for abort and message from strings

* handle AuthenticationError in step_user

* update tests with exceptions

* update reauth with exceptions

* use try except else per suggestion

* only create schema if necessary

* catch auth error in async_setup_entry

* one more fix in test_init
2021-11-15 11:32:35 -06:00
Simone Chemelli 5fc51130ea Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 4 (#58669)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-15 09:18:57 -08:00
epenet b3ffc1e183 Adjust async_step_zeroconf signature for strict typing (#59503)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 18:05:45 +01:00
Arto Jantunen 5cc594682f Add unique id's to Vallox entities (#58459)
* Add unique id's to Vallox entities

* Cache uuid properties

Requested in code review.

Caching None isn't a problem as the underlying implementation of get_uuid
in the vallox_websocket_api library can never return None.

* Simplify get_uuid type check

Based on review comments.

* Set _attr_unique_id in init

* Import the library get_uuid under a different name

There are a few options here:

1. Rename the get_uuid method with a synonym
2. Import get_uuid under a different name
3. Convert get_uuid into a property
4. Rename get_uuid in the Vallox library

None of these options is that appealing. I'll start with option two,
anyways.
2021-11-15 10:28:19 -06:00
hesselonline a4208c0926 Add Reauth flow to Wallbox integration (#58743)
* Add Reauth flow to Wallbox integration

* Review comments processed

* Fixed tests

* Added test for reauth invalid

* Commit to compensate for timedrift, show changes
Compensating for timedrift in my devcontainer,
making a new commit with the right date/time. Requested changes
were done in a previous commit.

* remove reauth schema

* Update homeassistant/components/wallbox/__init__.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-15 10:25:19 -06:00
hypnosiss de16ce1857 Fix relative import in MySensors (#59710)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-11-15 16:14:49 +01:00
epenet 1e5c767158 Add button entities to Renault (#59383)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 15:50:43 +01:00
Erik Montnemery 81d1899094 Bump pychromecast to 9.4.0 (#59716) 2021-11-15 14:50:40 +01:00
epenet a3885f4fda Add frequency device class for sensor (#59700)
Co-authored-by: Hedda <rockerc.harley@gmail.com>
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-15 14:33:50 +01:00
József Kertész 1b5d32514f Fix telnet fast state update (#59681) 2021-11-15 13:14:22 +01:00
Erik Montnemery acf58111c6 Correct initial update of async_track_template_result (#59705) 2021-11-15 13:00:46 +01:00
Aaron Bach 5370dd8122 Bump simplisafe-python to 2021.11.0 (#59692) 2021-11-15 11:23:25 +01:00
J. Nick Koston 96f7b0d910 Use atomicwrites for mission critical core files (#59606) 2021-11-15 11:19:31 +01:00
Giel van Schijndel 04a258bf21 fix(luftdaten): air pressure is reported in pascal instead of hecto pascal (#59687) 2021-11-15 09:51:57 +01:00
Joakim Plate c2d66956b0 Bump philips js to 2.7.6 (#59690) 2021-11-15 06:58:07 +01:00
Austin Mroczek 4963bb97d0 bump total_connect_client to 2021.11.4 (#59695) 2021-11-15 06:56:49 +01:00
GitHub Action f0c9f443d1 [ci skip] Translation update 2021-11-15 00:12:46 +00:00
Allen Porter 0991a30125 Pre-factor nest subscriber to library (#59462)
* Pre-factor nest subscriber to library

Move the nest subscriber to a library that can be reused in a future PR:
- From ConfigFlow for creating subscriptions
- On nest removal to delete subscriptions

This is pulled out of PR #59260 to make that easier to review.

* Resolve pylint error in nest api subscriber

* Remove duplicate constants
2021-11-14 16:08:22 -08:00
Ryan Fleming 9c2bff3b3b Use octoprint printer flag status to check if printer is printing (#59663) 2021-11-14 21:06:42 +01:00
Franck Nijhof 9f2ec5c906 Upgrade wled to 0.10.0 (#59669)
* Upgrade wled to 0.10.0

* DeviceInfo expects a string, not a AwesomeVersion object
2021-11-14 21:03:00 +01:00
jjlawren 305d25b510 Set measurement entity_class for darksky temp & humidity (#59512) 2021-11-14 20:41:23 +01:00
Robert Hillis 85aeee7cc7 Add smartthings configuration_url (#58676) 2021-11-14 20:37:40 +01:00
Anton Malko cd988bded0 Update aiolookin to 0.0.4 version (#59684) 2021-11-14 20:36:14 +01:00
Robert Svensson c98172f9c1 Add typing to deCONZ Scene platform and deCONZ Services (#59603)
Co-authored-by: Matthias Alphart <farmio@alphart.net>
2021-11-14 19:47:15 +01:00
Aaron Bach 20fbb5b951 Perform some ReCollect Waste code cleanup (#58866) 2021-11-14 19:12:34 +01:00
Allen Porter dbfe0cad52 Refactor nest test ConfigEntry setup in config flow tests (#59459)
* Refactor nest ConfigEntry creation in tests into a helper

This is pulled out of PR#59260 to make that overall diff smaller.

* Add typing consistently on new functions
2021-11-14 10:12:25 -08:00
Aaron Bach 03176dad7d Perform some IQVIA code cleanup (#58862) 2021-11-14 19:11:36 +01:00
Aaron Bach 24c899cf50 Perform some Flu Near You code cleanup (#58860) 2021-11-14 19:10:05 +01:00
Aaron Bach 595184aa55 Perform some Notion code cleanup (#58863) 2021-11-14 19:08:35 +01:00
Aaron Bach 5694250445 Perform some Guardian code cleanup (#58861) 2021-11-14 19:07:34 +01:00
Aaron Bach 198b18dd00 Perform some OpenUV code cleanup (#58864) 2021-11-14 19:06:27 +01:00
Aaron Bach 568df3d972 Perform some RainMachine code cleanup (#58865) 2021-11-14 19:05:38 +01:00
Peeter N 5b5b79f0e5 Set MaxCube Climate properties using class _attr_ properties (#58910) 2021-11-14 18:52:35 +01:00
flyize 70de7db197 Update surepetcare services.yaml (#58892) 2021-11-14 18:33:34 +01:00
JumpmanJunior d9f3cff606 Fix IAD and vis for DS2438 1wire sensor (#59126)
* Fix vis and IAD for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438

* Fix IAD and vis for DS2438
2021-11-14 17:30:03 +01:00
Paulus Schoutsen afa7ca1222 Drop block on local proxies from HA Cloud (#59334) 2021-11-14 08:11:12 -08:00
csgitmeup 26f3d50a32 Bump pykodi to 0.2.7 (#59251) 2021-11-14 17:06:06 +01:00
Michael d5f85f393d Add entity categorisation to AVM Fritz!Smarthome devices (#59287) 2021-11-14 17:05:18 +01:00
Aidan Timson 5ec4a502b0 Check Honeywell Lyric token is valid before updating data (#59310) 2021-11-14 17:04:04 +01:00
Arthur Zapparoli 46160c2a89 Add Camila, a missing Amazon Polly voice for Brazilian Portuguese (#59346) 2021-11-14 17:00:33 +01:00
tizzen33 8b676f4252 Add Toon Humidity Sensor (#59488)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-14 16:59:09 +01:00
Robert Hillis ee07e9b379 Fix unpatched timeout in gree config flow tests (#59449) 2021-11-14 16:57:50 +01:00
Stefan Agner ed6c70a026 Pass exit code to s6-init (#59545) 2021-11-14 16:56:09 +01:00
Jesse Hills e5129042ad Fix ESPHome state watching when new state is None (#59528) 2021-11-14 16:49:45 +01:00
J. Nick Koston 3175bca37d Bump flux_led to 0.24.21 (#59662) 2021-11-14 11:56:06 +01:00
Robert Svensson 2ca874a15c Add configuration_url to deCONZ device when entry source is addon (#59598) 2021-11-14 11:49:02 +01:00
Regev Brody c6c8c1293f Bump pyezviz to 0.1.9.8 (#58873)
* always create sensors for ezviz

* fix ezviz sensors
2021-11-14 11:20:02 +01:00
Franck Nijhof 458bc92124 Add test coverage to Twente Milieu (#59640) 2021-11-14 11:11:29 +01:00
Sean Dague da8bfed793 Remove mychevy component (#59629) 2021-11-14 11:09:32 +01:00
Joakim Sørensen f596cb19fd Handle KeyError in getuser (#59667) 2021-11-14 10:53:19 +01:00
J. Nick Koston c323815760 Ensure flux_led bulbs turn on even if brightness is 0 (#59661) 2021-11-13 21:55:23 -08:00
ericvb 570f80a73c Check early for empty passages in delijn (#59612)
* Add a check to verify if there is a passage

Late in the evening and at night, there can be no passages anymore, so check it to avoid an unnecessary exception

* One passage is enough! 

Requesting minimum 2 passages was an error due to counting from 1 and not zero

* Invert check and put it out of the try-catch code

Adding also the KeyError in the log message

* Clean up

* Putting comment in the correct python syntax

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-14 03:22:36 +01:00
Andrey Gorbunov 5860932635 Bump pymysensors to 0.22.1 (#59521)
* Bump pymysensors to 0.22.0 (#51265)

* Bump pymysensors to 0.22.1 (#51265)
2021-11-14 03:12:27 +01:00
GitHub Action fc539da42b [ci skip] Translation update 2021-11-14 00:12:48 +00:00
Raphaël Beamonte e42bb244b7 Add TP-Link LED control for Kasa plugs and strips (#59621) 2021-11-13 17:50:37 -06:00
Matthias Alphart 2fca5a4b55 Update xknx to 0.18.13 (#59658) 2021-11-14 00:05:32 +01:00
Keilin Bickar f65af0f9d7 Update sense library version number (#59454) 2021-11-13 15:17:10 -06:00
RenierM26 6749930736 Switchbot "in memory" state for push mode switch (#58750)
* Add in memory state tracking to Switchbot switch.

* Switchbot assumed state

* Add in memory state when Bot is in push mode.

* Cleanup
2021-11-13 18:21:37 +01:00
J. Nick Koston 0ba45e4db4 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-13 18:18:54 +01:00
Clifford Roche 48024b6da0 Bump greecliamate to 0.12.4 (#59645) 2021-11-13 18:18:12 +01:00
Franck Nijhof f3a308458f Upgrade pytest-timeout to 2.0.1 (#59646) 2021-11-13 18:09:10 +01:00
jugla 512bdac724 Air visual : robustness at startup when evaluate time interval (#59544) 2021-11-13 08:44:18 -07:00
Franck Nijhof 28a0ba4df3 Modernize/Simplify Twente Milieu (#59632) 2021-11-13 15:34:09 +01:00
Franck Nijhof aa89c670eb Upgrade wled to 0.9.0 (#59635) 2021-11-13 15:26:57 +01:00
Yehuda Davis b5de99ebfc Fix inverted tuya doorcontact_state (#59427) 2021-11-13 14:30:47 +01:00
Aaron Bach b2f2c76e5a Fix broken Ambient PWS config entry migration (#59618) 2021-11-13 14:20:26 +01:00
Aaron Bach 303b6bc4f1 Add configuration URL for Ambient PWS (#59616) 2021-11-13 14:19:04 +01:00
Franck Nijhof cce441332f Add button platform to Elgato (#59628)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-13 14:15:14 +01:00
Robert Hillis 68e80f1431 Remove yaml config from modem_callerid (#59526) 2021-11-13 14:14:49 +01:00
Aidan Timson 27b2aa04c9 Add System Bridge keyboard services (#53893)
* Add keyboard services

* Extract to voluptuous validator

* Cleanup

* Lint

* Catch StopIteration

* Match validator

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

* Raise from

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-13 13:45:42 +01:00
Allen Porter 8ce3f18295 Remove unused stream_type attribute (#59625)
Remove this stream type that was previously renamed to frontend_stream_type
2021-11-13 04:45:18 -08:00
Michael Kowalchuk 435e1fb092 Always use a step size of 1 for z-wave js fans (#59622) 2021-11-13 13:00:36 +01:00
Maciej Bieniek 8b6b4d7f8a Fix favorite RPM max value in Xiaomi Miio (#59631) 2021-11-13 12:59:48 +01:00
Franck Nijhof c70f06be48 Upgrade twentemilieu to 0.4.2 (#59599) 2021-11-13 12:22:07 +01:00
Daniel Hjelseth Høyer 9d674af566 Bump open-garage to 0.2.0 (#59608)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-13 11:54:24 +01:00
J. Nick Koston 9769a8c08e Revert "Bump async_timeout to 4.0.1" (#59601) 2021-11-12 23:47:39 -08:00
GitHub Action f00effaba2 [ci skip] Translation update 2021-11-13 00:11:56 +00:00
Daniel Hjelseth Høyer 49b0457172 Bump pyMetno to 0.9.0 (#59609) 2021-11-12 22:09:07 +01:00
Simone Chemelli 4cfac18e1a Fix firmware status check for Fritz (#59578) 2021-11-12 19:09:03 +01:00
Daniel Hjelseth Høyer 44ae0e214a Bump Adax library (#59592)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-12 19:07:35 +01:00
Daniel Hjelseth Høyer 7fff0a9865 Bump Airthings library (#59595)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-11-12 19:06:50 +01:00
Franck Nijhof 2841e402b9 Cleanup extra dict from hass data in Elgato (#59587) 2021-11-12 19:03:57 +02:00
Franck Nijhof 8249959eac Update elgato to 2.2.0 (#59585) 2021-11-12 15:43:19 +01:00
Franck Nijhof 5e6ad8977a Update vehicle to 0.2.0 (#59583) 2021-11-12 15:42:46 +01:00
Erik Montnemery bcd9f3c05f Correct end time for monthly statistics summary (#59551)
* Correct end time for monthly statistics summary

* Add tests
2021-11-12 15:01:40 +01:00
j-stienstra 0ae5b9e880 Add Jellyfin integration (#44401)
* Initial commit after scaffold setup

* Add initial config flow

* Create initial entity

* Ready for testing

* Can browse, no result yet

* Further improvements. Browsing is working.
Now need to work on proper stream URL

* Two valid URLs. Do not play in HA

* First working version for music

* Add thumbnail

* Includes Artist->Album hierarchy

* Add sorting of artists, albums and tracks

* Remove code for video libraries

* Improved code styling

* Optimize configuration flow

* Fix unit tests for config flow

* Fix import order

* Conform to style requirements

* Use empty string as media type for non playables

* 100% code coverage config_flow

* Type async_get_media_source

* Final docsctring fix after rebase

* Add __init__ and media_source files to .coveragerc

* Fix testing issues after rebase

* Fix string format issues and relative const import

* Remove unused manifest entries

* Raise ConfigEntry exceptions, not log errors

* Upgrade dependency to avoid WARNING on startup

* Change to builtin tuple and list (deprecation)

* Log broad exceptions

* Add strict typing

* Further type fixes after rebase

* Retry when cannot connect, otherwise fail setup

* Remove unused CONFIG_SCHEMA

* Enable strict typing checks

* FlowResultDict -> FlowResult

* Code quality improvements

* Resolve mypy.ini merge conflict

* Use unique userid generated by Jellyfin

* Update homeassistant/components/jellyfin/config_flow.py

Remove connection class from config flow

Co-authored-by: Milan Meulemans <milan.meulemans@live.be>

* Minor changes for additional checks after rebase

* Remove title from string and translations

* Changes wrt review

* Fixes based on rebase and review suggestions

* Move client initialization to separate file

* Remove persistent_notification, add test const.py

Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
2021-11-12 14:57:40 +01:00
Joakim Sørensen 733193b5ad Bump aiogithubapi from 21.8.0 to 21.11.0 (#59582) 2021-11-12 14:54:15 +01:00
Radu c2f489266a Add ZigStar Zigbee Coordinator audodiscovery (#59559) 2021-11-12 08:04:22 -05:00
ollo69 21f92f6286 Add Nut device explicitly to the device registry (#59525)
* Add Nut device explicitly to the device registry

* Restore resources in data and remove unused string
2021-11-12 11:10:40 +01:00
Joakim Sørensen 363de37400 Override api url in norway_air (#59573) 2021-11-12 10:26:17 +01:00
Paulus Schoutsen e30e4d5c6d Block cloud explicitely from trusted networks (#59333)
* Block cloud explicitely from trusted networks

* Lint
2021-11-12 10:25:01 +01:00
Joakim Sørensen 13067003cb Fix issue with ranges in requirements with hassfest (#59470)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-12 09:39:30 +01:00
Paulus Schoutsen 6ef64f6b1c Fix CORS error in emulated_hue (#59570) 2021-11-11 22:11:41 -08:00
J. Nick Koston 8de0c7204a Bump async_timeout to 4.0.1 (#59565) 2021-11-11 21:13:15 -08:00
J. Nick Koston 5d2eb8d3ff Add tilt support to bond covers (#59505) 2021-11-11 19:31:58 -08:00
Franck Nijhof beb0650a81 Upgrade coverage to 6.1.2 (#59530) 2021-11-12 02:31:00 +01:00
Ricardo Steijn 715aa86a35 Bump crownstone-cloud to v1.4.9 (#59500) 2021-11-12 01:29:00 +01:00
GitHub Action 3f2b1fa952 [ci skip] Translation update 2021-11-12 00:12:35 +00:00
Paulus Schoutsen 6f3f16dbc9 Merge pull request #59555 from home-assistant/rc 2021-11-11 13:48:35 -08:00
Matthias Alphart 00b1c2bb70 Fix KNX climate entities hvac action without controller_mode (#59522)
* fix hvac action for climate entities without controller_mode

* Update homeassistant/components/knx/climate.py

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>
2021-11-11 19:39:57 +01:00
Erik Montnemery d1ee041997 Test sensor unit conversion (#59546) 2021-11-11 10:36:53 -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
Pascal Vizeli 6636287c59 Bump cryptography 35.0.0 (#59541) 2021-11-11 18:27:22 +01:00
uvjustin 9ea338c121 Remove incomplete segment on stream restart (#59532) 2021-11-12 00:59:13 +08:00
Thomas Dietrich 90ee1f4783 Add available property to statistics component (#59203)
* Add available property to the statistics component

* Add test for statistics sensor availability

* Clean up availability check

* Improve statistics source sensor tests

* Revert variable rename

* Improve comments
2021-11-11 17:16:59 +01:00
epenet 4ecbfe8646 Drop STEP_ID constants from data_entry_flow (#59497)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-11 16:28:46 +01:00
Maikel Punie 6a21b241c0 Velbus typing part 2 (#59148) 2021-11-11 13:46:35 +01:00
Jonathan Keljo a079b4fd58 Add tests to bring greeneye_monitor to 99% coverage (#58661)
* Bring greeneye_monitor to 99% coverage.

* Pass monitor into listeners on Monitors

* Updates for changes in `dev`, create mock monitor

* Remove logging left in after debugging

* Remove xfails now that #58764 has merged
2021-11-11 13:20:16 +01:00
Erik Montnemery a29264518c Don't allow turning on audio only chromecasts (#59495)
* Don't allow turning on audio only chromecasts

* Improve tests

* Adjust tests
2021-11-11 12:33:15 +01:00
Erik Montnemery 85786fd987 Make some device action tests more explicit (#59469)
* Make some device action tests more explicit

* Adjust tests
2021-11-11 12:32:51 +01:00
Erik Montnemery 731bec3145 Improve test coverage (#59531) 2021-11-11 10:25:23 +01:00
Keilin Bickar 7098260dee Fix state of sense net_production sensor (#59391) 2021-11-11 08:49:07 +01:00
Guess 2a99ef2046 Set PARALLEL_UPDATES for ping binary sensor (#59524)
Changing PARALLEL_UPDATES from 0 (unlimited) to 50 as with many sensors (above 500) successful pings weren't being recorded. Resolves https://github.com/home-assistant/core/issues/54860
2021-11-11 08:38:01 +01:00
Erik Montnemery 65b1f0d9eb Minor refactor of energy validator (#58209) 2021-11-10 22:38:15 -08:00
Erik Montnemery 5f8997471d Minor refactor of template sensor (#59466) 2021-11-10 22:34:49 -08:00
Erik Montnemery a14131a679 Suppress media status when the lovelace cast app is active (#59481)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2021-11-10 22:33:07 -08:00
Diogo Gomes ec9b5df7b3 Ignore None state in state_change_event (#59485) 2021-11-10 22:31:56 -08:00
J. Nick Koston cab9f821a1 Fix zeroconf with sonos v1 firmware (#59460) 2021-11-10 22:31:08 -08:00
Matthias Alphart f8f060b72b Make util.color._match_max_scale public (#59207) 2021-11-10 22:29:16 -08:00
Franck Nijhof 61e4ebf155 Add button entity platform (restart button) to WLED (#59086)
Co-authored-by: Tom Brien <TomBrien@users.noreply.github.com>
2021-11-10 22:22:52 -08:00
Franck Nijhof 8447bbf5f0 Add binary sensor platform to RDW Vehicle information (#59253) 2021-11-10 22:22:18 -08:00
Franck Nijhof fae6c6fda1 Upgrade pyupgrade to v2.29.0 (#59499) 2021-11-10 22:21:43 -08:00
J. Nick Koston ebb25ab0e6 Make yaml file writes safer (#59384) 2021-11-10 22:19:56 -08:00
J. Nick Koston 751098c220 Bump sqlalchemy to 1.4.26 (#59527) 2021-11-10 20:01:59 -08:00
Sergiy Maysak 6bb816d226 Fix wirelesstag switch arm/disarm (#59515) 2021-11-11 02:21:29 +01:00
GitHub Action 34bc1298aa [ci skip] Translation update 2021-11-11 00:15:23 +00:00
Matthias Alphart 4e1958c1bd Add Button platform to KNX integration (#59082)
* add button platform

* default values for payload and payload_length

* allow `type` configuration for encoded payloads

* add test for type configuration

* move common constants to const.py

- CONF_PAYLOAD
- CONF_PAYLOAD_LENGTH

* validate payload for payload_length or type

* c&p errors

* fix unique_id and pylint

* fix validator
2021-11-10 20:34:35 +01:00
Bram Kragten 47b6755177 Google Cast: Use own media player app (#55524) 2021-11-10 19:40:49 +01:00
Nicolas Mowen 20f0a6730b Gogogate2 Battery Sensor Should Use % Unit For Compatibility (#59434) 2021-11-10 11:58:54 -06:00
epenet ab1e14204f Rename zeroconf service info (#59467)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-10 15:26:47 +01:00
ollo69 6cba03aa4a Remove resources selection from Nut config flow (#59450)
* Remove resources selection from Nut config flow

* Code clean-up

* Requested changes

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-10 13:49:05 +01:00
Aidan Timson c03fdd5da6 Add Azure DevOps coordinator and entity description (#54978)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
Co-authored-by: Ludeeus <ludeeus@ludeeus.dev>
2021-11-10 11:49:04 +01:00
Franck Nijhof 1910c0566c Upgrade jinja2 to 3.0.3 (#59468) 2021-11-10 11:04:42 +01:00
Tim Rightnour 93395f9b68 Add support for PRESSURE_CBAR (centibars) (#58762)
* Add support for PRESSURE_CBAR (centibars).  This is the standard UOM for tensiometers.

While the data could be converted into something like MBAR, and displayed
like that, the correct UOM for this type of sensor is CBAR.  Displaying
it as MBAR would be the same as displaying air pressure as feet of Hg, while
technically correct, it's hard to understand when reading.

Adding support for this UOM will fix errors in the UI(statistics) about the unit not
matching a unit of the device_class.

* Add tests for PRESSURE_CBAR
2021-11-10 09:44:05 +01:00
Oliver Gruß eec84ad71e Mqtt cover toggle add stop function (#59233)
* Change existing toggle to add new function

* Fixed using old property method to using actual protected variable.

* Adding service tests to new cover toggle function

* Working on comments from Pull Request 59233

* Adjust existing tests to fit new fake cover setup

* MockCover is calling state method of MockEntity but should call it from CoverEntity

* using different entity to get back test coverage
2021-11-10 09:03:20 +01:00
Allen Porter 01fe69511f Bump google-nest-sdm to 0.3.9 (#59458) 2021-11-10 08:29:33 +01:00
enegaard 2ae77bd231 Fix rpi_camera setup hanging on initialization (#59316) 2021-11-10 08:14:16 +01:00
Erik Montnemery e20127d9ff Minor refactor of template binary sensor (#59432)
* Minor refactor of template binary sensor

* pylint

* Tweak
2021-11-10 07:58:22 +01:00
ollo69 cde6e007bf Remove 'UnicodeDecodeError' exception in AsusWrt (#59447) 2021-11-10 07:53:05 +01:00
Ville Skyttä 4273e5b507 Huawei LTE sensor updates (#59374)
* Add human readable name for eNodeB ID

* Mark various config and diagnostic sensors' entity category as such

* Add uptime sensor
2021-11-10 08:49:50 +02:00
kreene1987 1ea092a54f Allow dict as input to zwave_js.set_value service (#59370)
* Original service data as a dict

Fixes per recommendation in #57336.

* Update homeassistant/components/zwave_js/const.py

agree, thanks

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2021-11-10 07:08:43 +01:00
Ryan Fleming 5e2d71dc90 Use unknown state for octoprint temperature sensors with None value (#59130)
* Mark octoprint temperature sensors as unavaible when value is not supplied

* Check for none explictly

* Do not mark the entity as unavailable

* Swap to using er.get_async
2021-11-10 05:52:29 +01:00
GitHub Action 86b12af3dc [ci skip] Translation update 2021-11-10 00:17:39 +00:00
Bram Kragten 4481fe11c4 Update frontend to 20211109.0 (#59451) 2021-11-09 14:40:21 -08:00
Franck Nijhof dcafee5c97 Upgrade pipdeptree to 2.2.0 (#59438) 2021-11-09 22:05:01 +01:00
Robert Hillis 66f49d1826 Bump goalzero to 0.2.1 (#59437) 2021-11-09 21:46:44 +01:00
Robert Hillis 0c83a3284c Bump pyefergy to 0.1.5 (#59439) 2021-11-09 21:45:14 +01:00
puddly 004d88caad Bump zigpy-znp from 0.5.4 to 0.6.1 (#59442) 2021-11-09 15:12:17 -05:00
Franck Nijhof 11da932455 Upgrade debugpy to 1.5.1 (#59436) 2021-11-09 15:12:04 -05:00
Franck Nijhof ca2f343c51 Upgrade colorlog to 6.6.0 (#59440) 2021-11-09 21:30:23 +02:00
Bram Kragten 28c07f5c43 Fix CORS (#59360)
* Fix CORS

* rename

* Update view.py
2021-11-09 18:30:51 +01:00
epenet 7e81c6a591 Move onewire device compatibility checks (#59338)
* Move device compatibility checks to onewirehub

* Add test for dtoverlay warning

* Add tests for unknown device warning

* Move dtoverlay error

* Empty commit to retrigger tests

* Update description

* Patch asyncio.sleep to speed up the tests

Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-09 18:30:05 +01:00
Martin Hjelmare d5fcf0b622 Add zwave_js binary sensor entity category (#58703)
* Add zwave_js binary sensor entity category

* Handle non idle notification state

* Fix door state

* Fix duplicate door state description

* Add tests
2021-11-09 18:26:34 +01:00
Thanasis 4b228e3add Add entity categories to most NUT entities (#58798)
* Add entity cateogories to most NUT entites

* changes to categories
2021-11-09 18:25:19 +01:00
Gábor Kiss 032786fcd8 Improve Shelly color mode switch for dual mode bulbs (#58971)
* Shelly color mode switch for SHCB-1

* Update light.py

* Update light.py

* Update homeassistant/components/shelly/light.py

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

* Update light.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2021-11-09 18:24:40 +01:00
Brent Petit 59a0e5a773 Update python-ecobee-api to 0.2.14 (#59381) 2021-11-09 18:23:03 +01:00
Joakim Sørensen 355b3c2c3d Bump pytraccar from 0.9.0 to 0.10.0 (#59429) 2021-11-09 18:20:34 +01:00
Joakim Sørensen 36ebbef243 Bump pytautulli from 21.10.0 to 21.11.0 (#59426) 2021-11-09 18:02:50 +01:00
Bram Kragten 6e7712da3c Add periods to statistics_during_period ws (#59425) 2021-11-09 17:29:39 +01:00
Erik Montnemery 3d909b00d5 Remove unneeded dynamic lookup of domain (#59423) 2021-11-09 07:41:45 -08:00
Joakim Sørensen d05c80c8e4 Bump pylaunches from 1.0.0 to 1.2.0 (#59420) 2021-11-09 16:22:11 +01:00
jan iversen ad91e4b417 Simplify setup of tradfri entities (#59343)
* Simplify detection of devices.
2021-11-09 15:18:13 +01:00
Joakim Sørensen 5177fabee0 Bump pyuptimerobot from 21.9.0 to 21.11.0 (#59418) 2021-11-09 14:50:35 +01:00
Joakim Sørensen 56b1f26e7d Bump pycfdns from 1.2.1 to 1.2.2 (#59416) 2021-11-09 14:49:45 +01:00
Ville Skyttä 51510c542a Remove const.HTTP_* status constants (#58380) 2021-11-09 13:01:46 +01:00
jan iversen 06d29040b9 Catch connection errors that makes tradfri hang in startup (#59368) 2021-11-09 13:00:50 +01:00
Tom Brien fc58df6df9 Change Coinbase account state class to total (#59404) 2021-11-09 13:00:12 +01:00
Duco Sebel 62e7b0b887 Add category diagnostic to Switchbot 'calibrated' binary sensor (#59409) 2021-11-09 12:59:50 +01:00
Erik Montnemery 23fad60769 Don't use template in cover device condition (#59408) 2021-11-09 12:43:21 +01:00
Erik Montnemery b5ce84cd89 Add MQTT button (#59348) 2021-11-09 12:04:14 +01:00
Robert Hillis 4c2bf428d6 Revert "Add tests for goalzero" (#59407) 2021-11-09 12:01:12 +01:00
Erik Montnemery ff837c736e Return False from state conditions on missing attributes (#59405) 2021-11-09 11:34:18 +01:00
Chen-IL 2fd6400952 Bump aioasuswrt to 1.4.0 (#59357) 2021-11-09 11:17:48 +01:00
John Howard 7e9863f9c8 Removing trailing \ in tts entity description (#59313) 2021-11-09 10:51:54 +01:00
lambtho 5418e76c84 IOTA removal (#59380) 2021-11-09 10:40:28 +01:00
epenet d226df2511 Dyson removal (#59401)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-09 10:38:51 +01:00
rianadon a102c425a9 Add speed conversion function & add speed to units system (#53846)
* Add speed conversion function

* Add test for speed utility functions

* Update unit system tests

* Fix incorrect unit conversions in tests

* Fix some test errors

* Calculate speed units from smaller set of constants

* Fix typo in speed test

* Use pytest.approx for checking floating point values

* Change other instance of speeds needing to be pytest.approx

* Revert changes to unit system

* Fix oopsie in defining in/day and in/hr

* Parametrize test

* Add comments describing calculations & remove duplicate test
2021-11-09 08:12:28 +01:00
Tom Brien f46ba2b38b Add state class to Coinbase sensors (#59109) 2021-11-09 07:28:39 +01:00
RenierM26 121a0915bc Switchbot bump api version (#59398)
* Bump Switchbot api for reliability improvements.

* Bump api version, update mock test import to reflect api data changes.
2021-11-09 07:01:05 +01:00
RenierM26 012e005e0d Store SB data Class. (#59266) 2021-11-09 07:00:51 +01:00
Aidan Timson 4e59e6c9a7 System Bridge - Handle OSError for switched off devices (#59312) 2021-11-08 21:46:33 -08:00
Paulus Schoutsen 435f278053 Merge pull request #59397 from home-assistant/rc 2021-11-08 21:44:29 -08:00
Robert Hillis cc872b4618 Add tests for goalzero (#57008)
* Add tests for goalzero

* clean up
2021-11-08 21:29:25 -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
Michael a22a966fac Increase timeout for fetching camera data on Synology DSM (#59237) 2021-11-08 20:42:20 -08:00
GitHub Action a989fd2e66 [ci skip] Translation update 2021-11-09 00:15:20 +00:00
epenet cf22bd8807 Use zeroconf attributes in freebox (#58967)
* Use zeroconf attributes in freebox

* Use zeroconf.HaServiceInfo in tests
2021-11-09 00:27:36 +01:00
Thomas Dietrich 9eaf8bd21b Fix statistics precision handling (#59202)
* Fix statistics precision error when configured 0, fix #42547

* Add tests for statistics precision

* Apply precision=0 logic to float numbers only

* Implement contextlib way of exception handling
2021-11-08 23:26:00 +01:00
Thomas Dietrich 2924f4605b Fix statistics startup error for None value states (#59199)
* Catch statistics startup error for None value states, fix #49254

* Add test for statistics None handling

* Update tests/components/statistics/test_sensor.py

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

* Switch test case logic to remove sensor last

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-08 23:25:19 +01:00
Kevin Hellemun 20b93132dd 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 23:13:00 +01:00
Maikel Punie bb1203c61d Bump velbusaio to 2021.11.6 (#59353) 2021-11-08 21:56:17 +01:00
Bram Kragten 69da2b29e6 Update frontend to 20211108.0 (#59364) 2021-11-08 12:45:40 -08:00
Shay Levy adfbcfa704 Add Shelly Gen1 beta_version attribute to firmware update sensor (#59359) 2021-11-08 21:47:01 +02:00
Shay Levy 4ac7dfc983 Cleanup Shelly light - use separate sets for dual mode and effects (#59363) 2021-11-08 21:46:23 +02:00
jan iversen ac354ecff5 Bump pytradfri to v7.2.0. (#59342) 2021-11-08 20:20:19 +01:00
Piotr Majkrzak 80f1e8770a Add Water Content Measurement clusters (#59300)
* Add Water Content Measurement clusters

* Fix typo

* Add device test

Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2021-11-08 13:13:35 -05:00
jan iversen 2b68b9292c Set tradfri entities to non-available when hub is not available (#59278)
* Set available when needed.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-08 18:41:25 +01:00
Erik Montnemery 7b9715bec3 Bump paho-mqtt to 1.6.1 (#59339) 2021-11-08 18:16:44 +01:00
Aidan Timson 875aecd4e2 System Bridge - Add configuration URL (#59320) 2021-11-08 09:09:08 -08:00
Paulus Schoutsen 296f678d52 Add Evil Genius Labs integration (#58720)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-08 08:56:27 -08:00
epenet 089353e949 Use DeviceInfo in velbus (#58622) 2021-11-08 10:26:00 -06:00
Michael 0edb0c9bc9 Correct name of end apc sensor (#59200) 2021-11-08 16:08:07 +01:00
Chris Browet 4224cb043b Allow overriding ensure_ascii in the "to_json" template filter (#54527)
* FIX: "ensureascii" to to_json

* fixup: parameter name
2021-11-08 15:49:10 +01:00
Damien Duboeuf 67c2747027 Add MQTT object_id option (#58728)
* Add MQTT object_id option

* Add MQTT object_id option

* Add MQTT object_id option

* Add MQTT object_id option - Fix light and vacuum

* Add MQTT object_id option - Fix light and vacuum

* Add MQTT object_id option - Fix lock

* Add MQTT object_id option - Fix device

* Add MQTT object_id option - Fix device

* Update tests/components/mqtt/test_discovery.py

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

* Change deprecated method

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-11-08 14:02:18 +01:00
chriss158 5151c4d99b Add long-term statistics support for homematic sensors (#57396)
* Add long-term statistics support for homematic

* Refactor cast list to SensorEntityDescription dict

Additional:
- Gas power, gas energy counter, air pressure and voltage uses long-term-statistics
- Gas power, gas energy counter uses device class gas
- Voltage uses device class voltage
- air pressure uses device class pressure

* Refactor expensive loop to separate dictionarys

* Use entity description property + fix humidity sensor

* Log missing sensor descriptions

* Use state class measurement for illumination sensors

* Move sensor entity desc missing warning to setup_platform

* Set type for hmdevice and homematic to fix mypy error

* Use EntityDescription instead of SensorEntityDescription

* Update entity.py

* fix type

* Update climate.py

* fix v2

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-11-08 11:40:01 +01:00
Brett Adams 9241d80730 Change zone HVAC mode in Advantage Air (#52816)
* Change "on" HVAC mode to auto fixing #48466

* Use HEAT_COOL instead

* Add missing HVAC_MODE_HEAT_COOL
2021-11-07 19:20:01 -08:00
J. Nick Koston 977b3cbe98 Improve support for flux_led pixel/RBM controllers (#59325)
* Fetch flux_led effects from library

- Each model can have different effects

* Improve support for flux_led pixel/RBM controllers

- RBM effects 1-100 are now available

* empty
2021-11-07 19:13:42 -08:00
Alexei Chetroi 958c588a19 Bump up ZHA dependencies (#59314) 2021-11-07 19:06:22 -08:00
GitHub Action e35b83081e [ci skip] Translation update 2021-11-08 00:12:31 +00:00
Jim Shank 563eba7684 Clean up transmission empty containers evaluation (#59304) 2021-11-08 01:06:56 +01:00
Aaron Bach 8ebd47b430 Guard against flaky SimpliSafe API calls (#59175) 2021-11-07 15:34:25 -08:00
Austin Mroczek 72aaeda8a0 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-07 15:30:34 -08:00
Shay Levy 55cd1ffb7c Revert "Use DeviceInfo in shelly (#58520)" (#59315)
This reverts commit df6351f86b.
2021-11-07 15:29:29 -08:00
Maciej Bieniek c85db9a39d Remove illuminance sensor (#59305) 2021-11-07 23:17:15 +01:00
Alexei Chetroi cc82976d15 Add Battery sensor regardless if the battery_percent_remaining attribute is supported or not (#59264) 2021-11-07 12:53:28 -05:00
J. Nick Koston b75476e844 Add support for matching the zeroconf model property (#58922) 2021-11-07 07:44:15 -08:00
Franck Nijhof ddf0941275 Upgrade async-upnp-client to 0.22.12 (#59284) 2021-11-07 07:41:26 -08:00
micha91 37259a1448 Fix udp ports (#59293) 2021-11-07 07:38:12 -08:00
Marc Mueller ae1592b27a Fix typing issues - wallbox.number (#59286) 2021-11-07 15:57:34 +01:00
Simone Chemelli c6a1fe0a5d Fix condition for fritz integration (#59281) 2021-11-07 15:17:50 +01:00
mezz64 8dd7e4a39b Bump pyEmby to 1.8 (#59267) 2021-11-07 10:35:50 +01:00
GitHub Action 332a571bb4 [ci skip] Translation update 2021-11-07 00:12:38 +00:00
Antoni Różański 9aec8f61d7 Rewrite signal_messenger unittest to pytest (#57777)
* convert signal messenger unittest to pytest

* more fixtures

* more assertions and fixed test attachment sending

* reverted unrelated changes

* fixed flake errors

* Flake8 related issues fixed

* HHTPStatus instead of int
2021-11-06 23:36:59 +01:00
Aaron Bach 3d0d038597 Guard against missing data in ReCollect Waste (#59177) 2021-11-06 21:10:58 +01:00
Marvin Wichmann c5b5c8c3ce Remove deprecated usages of HomeAssistantType (#59241) 2021-11-06 19:48:02 +01:00
Franck Nijhof fdf1bfa140 Add RDW Vehicle information integration (#59240) 2021-11-06 19:34:51 +01:00
Matthias Alphart fc7d4ed118 Add decoded telegram payload to knx_event service (#57621)
* decode knx_event telegram payload with given dpt

* exception handling for invalid payloads

* Update homeassistant/components/knx/__init__.py

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>
2021-11-06 19:31:25 +01:00
Aaron Bach 2e4ee487c1 Address post-merge Ridwell code review (#58857) 2021-11-06 10:11:00 -06:00
Guido Schmitz 7abf79d1f9 Fix typing in devolo Home Network (#59238) 2021-11-06 16:49:51 +01:00
jan iversen 933ad5ae49 Fix tradfri group reachable access (#59217) 2021-11-06 16:46:51 +01:00
Franck Nijhof af521c0a35 Upgrade numpy to 1.21.4 (#59188)
Co-authored-by: Marvin Wichmann <marvin.wichmann@unic.com>
2021-11-06 16:43:29 +01:00
Michael 6a149706ab add constant CONF_SLEEP_PERIOD (#59195) 2021-11-06 17:32:58 +02:00
J. Nick Koston a9c5f68d64 Reduce code duplication in gogogate2 (#59165) 2021-11-06 14:13:48 +01:00
Tobias Sauerwein 59ae35892c Bump RMVtransport to v0.3.3 (#59210) 2021-11-06 13:40:45 +01:00
J. Nick Koston 23f0afa789 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-06 13:34:10 +01:00
Aidan Timson 15636a4fe4 Bump systembridge to v2.2.1 (#59229) 2021-11-06 13:32:20 +01:00
Aidan Timson 66bdbbff45 Bump aiolyric to v1.0.8 (#59228) 2021-11-06 13:31:06 +01:00
Michael 2a05697c91 bump aioshelly to 1.0.4 (#59209) 2021-11-06 12:50:53 +01:00
Robert Hillis aaaae6abca Bump pyefergy to 0.1.4 (#59219) 2021-11-06 11:53:34 +01:00
uvjustin 3693b9bd04 Adjust frag_duration setting in stream (#59135) 2021-11-05 18:54:51 -07:00
GitHub Action 7b59dea67e [ci skip] Translation update 2021-11-06 00:11:41 +00:00
Marvin Wichmann 8a1d80c609 Fix regression after merging fixtures with old path (#59187)
* Fix regression after merging old fixtures

* Move to symo
2021-11-05 21:10:55 +01:00
Aaron Bach 6145ee97cb Change ReCollect Waste device class to date (#59180) 2021-11-05 20:29:12 +01:00
Matthias Alphart d2ffecbca4 Tests for the Fronius integration (#57269)
* tests for a Symo inverter system

* update testing requirement

* add tests for energy meter data

* move response JSONs to fixture directory

* add storage system response

* review suggestion
2021-11-05 19:27:17 +01:00
Peter Nijssen d384feb87f Add configuration URL to Spider (#59171) 2021-11-05 19:11:30 +01:00
J. Nick Koston 2d48f4b65e 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-05 11:27:52 -04:00
Aaron Bach dd0537054a Bump aioguardian to 2021.11.0 (#59161) 2021-11-05 11:27:35 -04:00
Martin Hjelmare 30cba6ee8b Add zwave_js select entity category (#59157)
* Set zwave_js select entity as category config

* Update tests
2021-11-05 10:31:51 -04:00
Marvin Wichmann 6a0c1a78aa Address venstar review comments (#59151)
* Address venstar review comments

* Apply review suggestions

* Address review suggestions
2021-11-05 10:31:32 -04:00
Martin Hjelmare c0801c1233 Type vlc_telnet strictly (#59154) 2021-11-05 14:42:08 +01:00
Guido Schmitz 442d65e8da Use entity category in devolo Home Control (#59104)
* Use entity category

* Add tests
2021-11-05 13:11:48 +01:00
Joakim Sørensen d709fcdd30 Bump pyhaversion from 21.10.0 to 21.11.1 (#59147) 2021-11-05 12:03:00 +01:00
Tim Rightnour 5ac55b3443 Add binary_sensor to venstar to track alerts (#58831)
* Add binary_sensor to venstar to track alerts

* Add binary_sensor.py to coveragerc

* Apply suggestions from code review by alengwenus

Co-authored-by: Andre Lengwenus <alengwenus@gmail.com>

* Fixup black any mypy complaints

* Yank the typing, it makes everything complain

Co-authored-by: Andre Lengwenus <alengwenus@gmail.com>
2021-11-05 12:00:57 +01:00
J. Nick Koston 8b25bd0cea 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-05 11:22:59 +01:00
Erik Montnemery e5ee38d3b0 Adjust recorder tests according to #59087 (#59143) 2021-11-05 10:49:58 +01:00
Erik Montnemery 470b01e4ce Move async_migration_in_progress (#59087) 2021-11-05 10:40:56 +01:00
epenet 8cc2f3b7a4 Use zeroconf attributes in enphase-envoy (#58961) 2021-11-05 00:34:10 -05:00
Paulus Schoutsen 2c21f0ad18 Merge pull request #59129 from home-assistant/rc 2021-11-04 21:57:54 -07:00
Erik Montnemery 185f7beafc Improve recorder migration tests (#59075) 2021-11-04 20:21:38 -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
Erik Montnemery dc1edc98fc Remove unused KeywordStyleAdapter (#59091) 2021-11-04 20:12:21 -07:00
Glenn Waters ca00551e4f Environment Canada config_flow fix (#59029) 2021-11-04 20:11:22 -07:00
J. Nick Koston e57c60bb2f Bump flux_led to 0.24.14 (#59121) 2021-11-04 20:10:47 -07:00
GitHub Action c8d8513a1a [ci skip] Translation update 2021-11-05 00:13:45 +00:00
Allen Porter fa4e890696 Revamp nest authentication config flows and remove need for redirect urls (#59033)
* Add support for Installed Auth authentication flows.

Add support for additional credential types to make configuration simpler for
end users. The existing Web App auth flow requires users to configure
redirect urls with Google that has a very high security bar: requires ssl,
and a publicly resolvable dns name.

The new Installed App flow requires the user to copy/paste an access code
and is the same flow used by the `google` calendar integration. This also
allows us to let users create one authentication credential to use with
multiple google integrations.

* Remove hard migration for nest config entries, using soft migration

* Add comment explaining soft migration

* Revet changes to common.py made obsolete by removing migration

* Reduce unnecessary diffs in nest common.py

* Update config entries using library method

* Run `python3 -m script.translations develop`

* Revert nest auth domain

* Remove compat function which is no longer needed

* Remove stale nest comment

* Adjust typing for python3.8

* Address PR feedback for nest auth revamp
2021-11-04 15:56:16 -07:00
Marvin Wichmann 54e7ef08e3 Add test for KNX weather entity (#58898) 2021-11-04 22:52:39 +01:00
Marvin Wichmann 56b7f94bbc Add tests for KNX scene (#58900) 2021-11-04 22:51:42 +01:00
Matthias Alphart 4d4d778598 Add tests for KNX light (#58912)
* test lights: simple, brightness, color_temp

* hs, xyy, rgb individual

* test rgb, rgbw
2021-11-04 22:43:38 +01:00
Nathan Spencer ea4009fd81 Use entity_category in litterrobot (#59074) 2021-11-04 22:34:54 +01:00
Franck Nijhof 38b61f3ff9 Upgrade mitemp_bt to 0.0.5 (#59054)
* Upgrade mitemp_bt to 0.0.4

* Upgrade mitemp_bt to 0.0.5
2021-11-04 20:22:11 +01:00
Erik Montnemery a62bc6b3b9 Minor tweak of cv.deprecated + cv.removed (#59095)
* Minor tweak of cv.deprecated + cv.removed

* Satisfy pylint
2021-11-04 19:12:21 +01:00
Erik Montnemery 491e62792b Correct rescheduling of ExternalStatisticsTask (#59076) 2021-11-04 18:35:43 +01:00
Jan Bouwhuis c3fc19915e Mqtt fan fail deprecated options for classic speeds (#58992)
* Fail deprecated options

* new removed validator

* correct module_name - add tests

* Add test cant find module cv.removed

* module name from stack+1

* Remove error from log. Just throw.

* assert on thrown exception text

* cleanup formatting remove KeyStyleAdapter

* format the replacement_key and update test

* deprecated vs removed - add raise_if_present opt

* doc string update

* is deprecated
2021-11-04 17:54:27 +01:00
Kevin Hellemun 7945facf1e 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 17:00:25 +01:00
Franck Nijhof d126d88977 Add Button entity component platform (#57642)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 16:50:43 +01:00
Erik Montnemery 4c5aca93df Add recorder status WS API (#58989)
* Add recorder status WS API

* Rename recorder/status to recorder/info

* Silence pylint

* Improve tests

* Address review comments

* Tweak

* Try to fix tests

* Try to debug flaky tests

* Try to fix tests

* Revert changes to async_migration_in_progress

* Try to fix tests

* Remove debug prints

* Apply suggestions from code review
2021-11-04 16:46:45 +01:00
Erik Montnemery be4e9f91b6 Change minimum supported SQLite version to 3.31.0 (#59073) 2021-11-04 16:34:35 +01:00
Guido Schmitz 620db191b1 Use entity category and state class in devolo Home Network (#59071)
* Use entity category and state class

* Add tests
2021-11-04 16:17:20 +01:00
J. Nick Koston 10d6247fee Bump to aiohttp 3.8.0 (#58974) 2021-11-04 10:07:50 -05:00
Franck Nijhof 23cb396aad Upgrade restrictedpython to 5.2a1.dev0 (#59049) 2021-11-04 14:52:57 +01:00
Maikel Punie a852b6df66 Add typing info to velbus (part 1) (#59041)
* Add typing info to velbus (part 1)

* Fix pylint

* Update homeassistant/components/velbus/cover.py

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

* Update homeassistant/components/velbus/cover.py

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

* Update homeassistant/components/velbus/cover.py

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

* Update homeassistant/components/velbus/cover.py

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

* Update homeassistant/components/velbus/cover.py

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

* Update homeassistant/components/velbus/cover.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 14:37:44 +01:00
ollo69 ea6504dfa2 Fix Nut resources option migration (#59020)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 14:26:17 +01:00
Teemu R f578eee81d Remove use_time sensor from mjjsq humidifers (#59066) 2021-11-04 14:25:07 +01:00
Maikel Punie 22248f891d Refactor velbus light code to make it more clear and readable (#58483)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-04 14:22:58 +01:00
Teemu R ea657e6656 Accept all roborock vacuum models for xiaomi_miio (#59018) 2021-11-04 14:14:31 +01:00
Maikel Punie 23a0f0b777 Bump velbus-aio to 2021.11.0 (#59040) 2021-11-04 12:27:41 +01:00
Franck Nijhof da8b9cbe82 Upgrade isort to 5.10.0 (#59046) 2021-11-04 11:29:01 +01:00
Franck Nijhof a52466c339 Upgrade yamllint to 1.26.3 (#59047) 2021-11-04 11:27:20 +01:00
Thomas G 74beebc031 Swap sharkiq vacuum is_docked with is_charging (#58975) 2021-11-04 11:21:59 +01:00
Franck Nijhof 32784d1b83 Constrain urllib3 to >=1.26.5 (#59043) 2021-11-04 11:21:30 +01:00
Franck Nijhof 50a1e908c4 Increase time to authorize OctoPrint (#59051) 2021-11-04 11:06:17 +01:00
Erik Montnemery 2f3dea30e2 Correct migration to recorder schema 22 (#59048) 2021-11-04 10:29:10 +01:00
hesselonline 4345432d14 Add state class to wallbox component (#58801) 2021-11-04 09:58:58 +01:00
Eugenio Panadero a64cec6da1 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 05:32:16 +01:00
Dave T 6419950283 Aurora abb improvements (#58504)
* Add type hints.

* Refactor AuroraDevice to AuroraDeviceEntity

* Refactor AuroraDevice to AuroraDeviceEntity

* Connection class is defined in manifest.

* Separate words with underscore in variable names

* Remove duplicated code.

* Remove unused "unknown" string

* Test import yaml when integration already setup

* Remove test already done in config_flow test

* Convert variable names to snake case

* Shorten AuroraDeviceEntity to AuroraEntity

* Add typing

* Remove unnecessary integration setup in test.

* Refactor "already_setup" to "already_configured"

* Use common string

* Reduce the amount of code in the try block.

* Fix merge

* Allow yaml setup to be deferred if no comms

* Properly setup all sensors for defered yaml setup.

* Apply suggestions from code review

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

* Add type hints.

* Refactor AuroraDevice to AuroraDeviceEntity

* Refactor AuroraDevice to AuroraDeviceEntity

* Connection class is defined in manifest.

* Separate words with underscore in variable names

* Remove duplicated code.

* Remove unused "unknown" string

* Test import yaml when integration already setup

* Remove test already done in config_flow test

* Convert variable names to snake case

* Shorten AuroraDeviceEntity to AuroraEntity

* Add typing

* Remove unnecessary integration setup in test.

* Refactor "already_setup" to "already_configured"

* Use common string

* Reduce the amount of code in the try block.

* Allow yaml setup to be deferred if no comms

* Properly setup all sensors for defered yaml setup.

* Code review: move line out of try block.

* Improve test coverage

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-04 04:38:47 +01:00
GitHub Action c9c95165e4 [ci skip] Translation update 2021-11-04 00:12:21 +00:00
Teemu R 96c03aec06 Fix timedelta-based sensors for xiaomi_miio (#58995) 2021-11-03 17:28:11 +01: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
Sergio Gutierrez Alvarez 1af621ef13 Fix battery_is_charging sensor on system bridge (#58980) 2021-11-03 12:28:04 +01:00
Bram Kragten a7d958ae8a Update frontend to 20211103.0 (#58988) 2021-11-03 11:51:17 +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
kodsnutten 1548877e36 Fix unique_id of derived sent-sensors (#58298) 2021-11-03 10:21:54 +01:00
Hans Oischinger a4fc808e49 Fix broken ViCare burner & compressor sensors (#58962) 2021-11-03 08:45:22 +01:00
dependabot[bot] 58bee8a326 Bump actions/checkout from 2.3.5 to 2.4.0 (#58978)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-03 08:27:59 +01:00
Dermot Duffy 8fda2e0a1d Address late review of motionEye media browser (#58925)
* Media-content type fixes post-codereview.

* More f-string.

* Use the 'video' media class not 'movie'.
2021-11-03 06:37:52 +01:00
Robert Hillis 16371e6579 Add missing ZMW currency (#58959) 2021-11-02 20:21:56 -07:00
Dave T 51be7d53d6 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 01:30:29 +01:00
GitHub Action 2f4b7fe809 [ci skip] Translation update 2021-11-03 00:11:55 +00: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
Franck Nijhof ab20bf4e9a Add support for IoT Switches (tdq) in Tuya (#58952) 2021-11-02 11:27:46 -07:00
Ernst Klamer 5315d7eb0a Add device configuration URL to Solar-Log (#58954) 2021-11-02 11:27:19 -07:00
Franck Nijhof d1bb580dc3 Extend Tuya Dimmer (tgq) support (#58951) 2021-11-02 11:10:42 -07:00
Peter A. Bigot 4a2fb0e7ab 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 18:48:29 +01:00
epenet 2b22d635d9 Use zeroconf HaServiceInfo in tests (A-D) (#58836)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-02 12:27:31 -05:00
epenet e983370c27 Use zeroconf attributes (A-D) (#58835)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-02 12:27:06 -05:00
David Langerman | Onyx Zero Software 26055e1f14 Add support for TP-Link KL400L5 (#58944)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-11-02 12:23:30 -05:00
Jan Bouwhuis 0c4863198e Add command_template to MQTT number platform (#58949) 2021-11-02 18:21:49 +01:00
Franck Nijhof 2df52a3bf6 Fix incorrect entity category in Advantage Air (#58754) 2021-11-02 10:21:08 -07:00
Erik Montnemery 30f7bc0f18 Use freezegun in DST tests (#58939) 2021-11-02 18:11:39 +01:00
Chris Browet 2df1ba2346 Add device_class to MQTT switch (#58931) 2021-11-02 17:40:05 +01:00
Jan Bouwhuis 339117aceb Add command_template to mqtt select platform (#58934) 2021-11-02 17:33:23 +01:00
Marius 9307cbf861 Add home/not_home icons to Asuswrt trackers (#58883)
* add home/not_home icons to Asuswrt trackers

like the Nmap trackers have their icons set in https://github.com/home-assistant/core/blob/2df13d01187a4fac2f9038facc180eb2c2543712/homeassistant/components/nmap_tracker/device_tracker.py#L186

* white space
2021-11-02 17:29:28 +01:00
Erik Montnemery 8d910c5079 Revert "Add offset support to time trigger" (#58947) 2021-11-02 16:56:38 +01:00
uvjustin f73c734fb6 Add libav.mpegts to logging filter (#58937) 2021-11-02 06:32:02 -07:00
Dermot Duffy 4746ff3798 Address late review of motionEye services (#58924) 2021-11-02 13:33:08 +01:00
hesselonline bfb0d8dd19 Split wallbox sensor type and number type (#58807) 2021-11-02 11:11:46 +01:00
Kevin Hellemun 9d7786f887 Add ROCKROBO_S6_PURE to supported vacuums for xiaomi_miio (#58901) 2021-11-02 09:54:28 +01:00
Maciej Bieniek c14dcdb077 Add configuration_url to Airly integration (#58911) 2021-11-02 09:39:23 +01:00
Tom Harris 8dcaae69e1 Bump pyinsteon to 1.0.13 (#58908) 2021-11-02 09:31:30 +01:00
Paulus Schoutsen 31153ac155 Move fixtures part 1 (#58902) 2021-11-01 20:47:05 -07:00
GitHub Action 0a94badb72 [ci skip] Translation update 2021-11-02 00:12:41 +00:00
J. Nick Koston 1cd9be7538 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 00:11:17 +01:00
carstenschroeder 63c9cfdbc8 Add type annotations for MET (#58804)
* Add Typing

* Add missing types

* define w/o Null

* specify # type: ignore
2021-11-01 19:37:03 +01:00
emufan 388cdf4e94 Add classes for new Homematic devicetypes/devices (HmIP-SMI, HmIP-DRSI1) (#57521)
* Update const.py

Add new classes according to pyhomatic 0.1.75

* Update binary_sensor.py
2021-11-01 19:13:30 +01: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
Erik Montnemery 34e5596375 Use async_track_utc_time_change to schedule short term statistics (#58903) 2021-11-01 10:49:54 -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
Otto Winter a9c0f89c09 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 17:45:13 +01:00
Maciej Bieniek 43ccf1d967 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 17:40:15 +01:00
purcell-lab f7b63e9fd7 Fix renamed solaredge sensor keys (#58875) 2021-11-01 15:37:48 +01:00
Marvin Wichmann 108962b134 Update xknx to 0.18.12 (#58891) 2021-11-01 15:36:30 +01:00
ollo69 20a443ad6c Use entity_registry async_get for AsusWrt (#58885) 2021-11-01 15:18:01 +01:00
Paulus Schoutsen f51e1fcb67 Check for uncaught service not found exceptions (#58010) 2021-11-01 14:33:09 +01:00
carstenschroeder 0e19278309 Add type annotations to OpenWeatherMap (#58802) 2021-11-01 14:28:30 +01:00
Jonathan Keljo d125dc7dbf Use _attr_ shorthand in greeneye_monitor sensors (#58784) 2021-11-01 14:25:02 +01:00
Kevin Hellemun 51873573d3 Add ROCKROBO_S4_MAX to supported xiaomi vacuums (#58826) 2021-11-01 13:29:00 +01:00
Marc Hörsken 1aa34b6892 Fix OpenWeatherMap options not being initialized the first time (#58736) 2021-11-01 13:27:58 +01:00
Felipe Martins Diel 93bc88be16 Simplify requests in the Broadlink integration (#58850) 2021-11-01 12:49:00 +01:00
Joakim Sørensen f0bd6acd48 Set internal quality_scale for the hassio integration (#58881) 2021-11-01 12:33:41 +01:00
Aaron Bach 0cc4b7219f Perform some SimpliSafe code cleanup (#58867) 2021-11-01 09:04:00 +01:00
Aaron Bach d024c5e698 Perform some Tile code cleanup (#58868) 2021-11-01 09:03:54 +01:00
Aaron Bach 5836a39f14 Perform some WattTime code cleanup (#58869) 2021-11-01 09:03:48 +01:00
Aaron Bach 39054d656b Perform some AirVisual code cleanup (#58858) 2021-11-01 09:03:37 +01:00
Franck Nijhof f3d5768fb4 Move WLED sensors to entity descriptions (#58839)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-11-01 08:54:05 +01:00
Franck Nijhof ce2e3438ca Use attr and entity descriptions for Twente Milieu sensors (#58871) 2021-11-01 08:53:27 +01:00
Franck Nijhof 2dca080574 Upgrade black to 21.10b0 (#58870) 2021-11-01 08:51:36 +01:00
Tim Rightnour 0baa6b1827 Add device_class for GEM power and voltage sensors (#58764)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-11-01 08:39:27 +01:00
Franck Nijhof 617144994b Upgrade coverage to 6.1.1 (#58855) 2021-10-31 20:44:01 -07:00
Franck Nijhof a02055441a Migrate attribution attribute for Zestimate (#58854) 2021-10-31 20:43:42 -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)
https://github.com/rytilahti/python-miio/blob/e1adea55f3be237f6e6904210b6f7b52162bf154/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
uvjustin 9aaa92f366 Improve part metadata in stream (#58822) 2021-10-31 20:23:01 -07:00
Maciej Bieniek 7126c9b0de Add configuration_url to GIOS integration (#58840) 2021-10-31 20:22:13 -07:00
Paulus Schoutsen a122cbab61 Mobile app to update entity registry on re-register sensors (#58378)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-31 20:21:46 -07:00
GitHub Action 4e419d8c6f [ci skip] Translation update 2021-11-01 00:13:04 +00:00
Kevin Hellemun a3332410dc Add ROCKROBO_E2 to supported vacuums for xiaomi_miio (#58817)
https://github.com/rytilahti/python-miio/blob/e1adea55f3be237f6e6904210b6f7b52162bf154/miio/vacuum.py#L129
2021-11-01 00:29:57 +01:00
Felipe Martins Diel 3f61ff4f96 Make general code quality improvements in the Broadlink integration (#58848)
* Create DEVICE_TYPES constant

* Rename _auth_fetch_firmware() to _get_firmware_version()

* Rename dev_type to device_type

* Use SOURCE_REAUTH from config_entries namespace

* Fix unidiomatic imports
2021-11-01 00:01:11 +01:00
Tim Rightnour adfebaf510 Address late review of venstar (#58813)
* Additional fixes from PR #58601

* Suggested fix to reduce attribute access
2021-10-31 23:25:19 +01:00
Franck Nijhof 9daf2ee65d Fix Plugwise not updating config entry with discovery information (#58819) 2021-10-31 12:19:51 -07:00
Michael ccad6a8f07 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 12:12:25 -07:00
Quentame 8f51192cf0 Cleanup old entity.unique_id migration from Synology DSM (#58811)
Created on 2nd of june 2020 from #35565
2021-10-31 19:23:40 +01:00
Marc Mueller 4c68662612 Use assignment expressions 34 (#58823) 2021-10-31 19:01:16 +01:00
Marc Mueller e0c0d00833 Use assignment expressions 39 (#58829) 2021-10-31 18:56:25 +01:00
Marc Mueller 72801867d6 Use assignment expressions 38 (#58828) 2021-10-31 18:49:18 +01:00
Marc Mueller b6d9e517c2 Use assignment expressions 37 (#58827) 2021-10-31 18:45:27 +01:00
Robert Hillis 8e03102892 Bump pyefergy to 0.1.3 (#58821) 2021-10-31 18:41:55 +01:00
Marc Mueller 1ce889be60 Use assignment expressions 36 (#58825) 2021-10-31 18:35:27 +01:00
Marc Mueller 3f1b4906bf Use assignment expressions 35 (#58824) 2021-10-31 18:32:17 +01:00
Dermot Duffy ab7d8db481 Add motionEye media browser (#53436) 2021-10-31 10:59:31 -05:00
Quentame 3c5799e394 Cleanup old config entry migration from Météo-France (#58809) 2021-10-31 16:17:35 +01:00
Michael Chisholm 4f83a251fa Bump async-upnp-client to 0.22.11 (#58803) 2021-10-31 16:16:50 +01:00
epenet 2ae86124c7 Add zeroconf ATTR constants (#58671)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-31 16:13:26 +01:00
purcell-lab 13386fc41b Fix solaredge energy sensor names (#58773) 2021-10-31 16:11:48 +01:00
Michael Chisholm ce27fb87c6 dlna_dmr: less eager discovery (#58780) 2021-10-31 16:11:20 +01:00
J. Nick Koston faecc90b38 Workaround brightness transition delay from off in older yeelight models (#58774) 2021-10-31 16:11:07 +01:00
Tobias Sauerwein f94bbf351d Set Netatmo max default temperature (#58718) 2021-10-31 15:38:01 +01:00
Kevin Hellemun e38f3e447c Add ROCKROBO_S4 to xiaomi_miio vaccum models (#58682) 2021-10-31 09:36:37 -05:00
J. Nick Koston 89ae88519d Add additional test coverage for RYSE smartbridges with HK (#58746) 2021-10-31 09:19:37 -05:00
Michael 81845bb0b5 Fix channel.send in Discord (#58756) 2021-10-31 13:32:49 +01:00
Matthias Alphart 968e582468 Remove last_knx_update extra_state_attribute from KNX BinarySensor and Sensor (#58786) 2021-10-31 12:58:17 +01:00
Felipe Martins Diel 1e92e35bff Improve code quality of the Broadlink switch platform (#58794) 2021-10-31 11:48:52 +01:00
Felipe Martins Diel 9bc0e8e8ab Improve code quality of the Broadlink light platform (#58790) 2021-10-31 11:48:35 +01:00
Joakim Plate 7047205fb8 Correct fjaraskupan post merge review comments (#58796) 2021-10-31 11:47:25 +01:00
Jonathan Keljo f561533d2c Fix some typing issues in greeneye_monitor (#58788)
* Improve typing

* Import cast
2021-10-31 09:30:11 +01:00
Franck Nijhof 26b951194c 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 08:00:31 +01:00
GitHub Action 8da010cacd [ci skip] Translation update 2021-10-31 00:12:41 +00:00
Marc Mueller 733280e169 Use EntityDescription - wallbox (#58690) 2021-10-30 17:33:07 -05:00
Marc Mueller d6e49bc5bc Fix litterrobot vacuum base class (#58765) 2021-10-30 17:27:12 -05:00
Tim Rightnour f87f72bb8e Switch to update coordinator, and bump venstarcolortouch to 0.15 (#58601) 2021-10-30 17:23:47 -05:00
Allen Porter 6c426fea9e Serve nest placeholder image from disk rather than generate on the fly (#58663)
* Serve placeholder image from disk rather than generate on the flay

The placeholder image was generated from hoome assistant, saved, flipped, and
crushed a bit. The image is 640x480 and the integration does not support any on the
fly resizing.

* Cache Nest WebRTC placeholder image on camera

Cache Nest WebRTC placeholder image rather than reading from disk every time.
2021-10-30 13:44:28 -07:00
muppet3000 972dbac1f7 Add __init__ for growatt sensor types (#58749) 2021-10-30 22:19:18 +02:00
J. Nick Koston 3374005b33 Bump zeroconf 0.36.11 (#58755) 2021-10-30 19:18:39 +02:00
Kapernicus 5224050df8 Bump nad_receiver to version 0.3.0 (#58751) 2021-10-30 18:11:37 +02:00
Erik Montnemery 56f746fd39 Coerce to tuple before asserting the sequence (#58672) 2021-10-30 16:50:24 +02:00
Bastien Gautier 18ebdbed3e Add AUCTION coin (#58709) 2021-10-30 16:43:22 +02:00
Marc Mueller 84618fa831 Use assignment expressions 30 (#58714) 2021-10-30 16:33:42 +02:00
Marc Mueller 7063c05127 Use assignment expressions 33 (#58717) 2021-10-30 16:32:41 +02:00
Marc Mueller b1d49b3b66 Use assignment expressions 29 (#58713) 2021-10-30 16:31:43 +02:00
Marc Mueller 887d04be60 Use assignment expressions 32 (#58716) 2021-10-30 16:30:13 +02:00
Marc Mueller a48ddcadd4 Use assignment expressions 31 (#58715) 2021-10-30 16:29:07 +02:00
Aaron Bach f7dea3aa1d Add Ridwell integration (#57590) 2021-10-30 08:27:48 -06:00
Nathan Spencer aacc009cbb Get Litter-Robot to 100% code coverage and minor code cleanup (#58704) 2021-10-30 09:13:03 -05:00
Dermot Duffy bbbbcfbb93 Add motionEye services (#53411) 2021-10-30 08:48:01 -05:00
Daniel Hjelseth Høyer 855e0fc2eb Update Mill library, add support for generation 3 heaters. #58536 (#58738) 2021-10-30 15:43:05 +02:00
Anders Liljekvist 65b965e84b Fix bluesound player internally used id (#58732) 2021-10-30 14:57:45 +02:00
Anders Liljekvist a90c8ab558 Add myself as codeowner of bluesound (#58733) 2021-10-30 12:14:19 +02:00
Andre Lengwenus f4c823f338 Fix lcn in place update of config entry data (#58729)
* Fix in place update of config entry data

* Deep copy of device configs

* Fix review comments
2021-10-30 11:15:38 +02:00
Aaron Bach c469358e5f Fix bug with volumes in SimpliSafe set_system_properties service (#58721)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-29 22:17:15 -07:00
Jonathan Keljo 687c40a622 Enable strict typing for greeneye_monitor (#58571)
* Enable strict typing for greeneye_monitor

* Fix pylint
2021-10-29 18:54:40 -07:00
J. Nick Koston 061b1abd1b Improve handling of invalid serial numbers in HomeKit Controller (#58723)
Fixes #58719
2021-10-29 17:57:01 -07:00
Marc Mueller e97133613a Fix round - wallbox (#58689)
* Fix wallbox round

* Add test case
2021-10-29 17:52:23 -07:00
GitHub Action 9fafa57074 [ci skip] Translation update 2021-10-30 00:11:34 +00:00
Matthias Alphart fa7b72a4ed reload service: remove entities before disconnection (#58712) 2021-10-30 00:04:57 +02:00
Chris Browet b1b782419b Add REST sensor/binary_sensor/switch templated headers & params (#54426) 2021-10-29 16:36:47 -05:00
Dermot Duffy 944a7c09c4 Add motionEye sensor platform (#53415) 2021-10-29 16:14:26 -05:00
Dermot Duffy a2102deb64 Support reverse proxying of motionEye streams (#53440) 2021-10-29 15:24:30 -05:00
jjlawren 6e7fe13d51 Disable polling Sonos switches by default (#58705) 2021-10-29 14:43:59 -05:00
Aaron Bach a4a5a2e782 Bump aioambient to 2021.10.1 (#58708) 2021-10-29 14:43:39 -05:00
J. Nick Koston d182bae112 Avoid doorbird device probe during discovery for known devices (#58701) 2021-10-29 10:29:02 -07:00
Franck Nijhof 4b64b92dba Fix OctoPrint SSDP URL parsing and discovered values (#58698) 2021-10-29 16:34:27 +02:00
mezz64 520a36aa51 Bump pyhik to 0.3.0 (#58659) 2021-10-29 15:59:32 +02:00
Erik Montnemery f3bd13d179 Fix regression in MQTT discovery (#58684)
* Fix regression in MQTT discovery

* Update test
2021-10-29 15:59:16 +02:00
Erik Montnemery 72d7817dbf 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 15:51:14 +02:00
Erik Montnemery 39867c9b83 Convert RGBW and RGBWW colors in light turn_on calls (#58680) 2021-10-29 15:48:11 +02:00
Nathan Spencer 659a0d9a95 Add select platform to Litter-Robot integration (#58323) 2021-10-29 07:47:15 -05:00
Franck Nijhof a0d0e325e0 Fix OctoPrint config flow schema (#58688) 2021-10-29 14:07:25 +02:00
Franck Nijhof b3e7eeb020 Fix spelling of OctoPrint (#58686) 2021-10-29 13:21:57 +02:00
Jonathan Keljo d1474d8e92 Update greeneye_monitor sensor state when first connected to a monitor (#58587) 2021-10-29 12:09:06 +02:00
Martin Hjelmare 3a76d92e0f Add zwave_js binary sensor descriptions (#58641) 2021-10-28 21:28:02 -07:00
J. Nick Koston 7516db3600 Avoid circular import in network integration (#58655) 2021-10-28 21:22:17 -07:00
Franck Nijhof c6157d5520 Migrate Tuya unique IDs for switches & lights (#58631) 2021-10-28 21:08:59 -07:00
Allen Porter 9c5a79c641 Add an image placeholder for Nest WebRTC cameras (#58250) 2021-10-28 21:07:29 -07:00
Jesse Hills 6d30105c9f Add configuration_url to ESPHome (#58565) 2021-10-28 21:04:00 -07:00
GitHub Action 7d408e3288 [ci skip] Translation update 2021-10-29 00:30:22 +00:00
John Parchem 1b72536119 Add support for Levoit Core 400S air purifier to VeSync integration (#57126) 2021-10-28 19:03:27 -05:00
Eddy G 4d5705c0fe Add 'delta_values' option to utility_meter (#54964) 2021-10-28 19:00:31 -05:00
epenet c8cbd0070d Use DeviceInfo in zwave-js (#58649) 2021-10-28 19:00:12 -05:00
schreyack e10bd39827 Add a Preset mode for Honeywell permanent hold (#58060)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-28 18:59:50 -05:00
Clifford Roche 34a6ce6f2a Bump greeclimate to 0.12.3 (#58635) 2021-10-28 18:58:59 -05:00
epenet 147bbb30a6 Use DeviceInfo in zerproc (#58647) 2021-10-28 18:17:40 -05:00
epenet 991c41532a Use DeviceInfo in youless (#58645) 2021-10-28 17:46:01 -05:00
epenet 16a3a9170e Use DeviceInfo in yale-smart-alarm (#58644) 2021-10-29 00:38:27 +02:00
epenet 335fdf96ba Use DeviceInfo in xiaomi-miio (#58642) 2021-10-29 00:37:55 +02:00
epenet 638bd743a5 Use DeviceInfo in xbox (#58640) 2021-10-29 00:37:20 +02:00
Franck Nijhof 42a2aed8af Fix missing temperature level on Tuya Heater (qn) devices (#58643) 2021-10-29 00:27:22 +02:00
epenet 8925f5cc45 Use DeviceInfo in wiffi (#58639) 2021-10-29 00:19:25 +02:00
epenet 95f7b0c026 Use DeviceInfo in waze-travel-time (#58637) 2021-10-28 23:58:53 +02:00
epenet 107bd11a31 Use DeviceInfo in wemo (#58638) 2021-10-28 23:58:33 +02:00
Dave T 37930aeeb6 Aurora abb energy metering (#58454)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-10-28 16:47:49 -05:00
Michael Chisholm 6cdc372dcb Add more dlna_dmr media_player services and attributes (#57827) 2021-10-28 16:44:41 -05:00
Hans Oischinger 3f50e444ca Improve ViCare energy units (#58630) 2021-10-28 22:58:28 +02:00
Aaron Bach 806242093d Add missing SimpliSafe config flow test (#58563) 2021-10-28 15:55:14 -05:00
J. Nick Koston f619a8e4a0 Reduce rainmachine intervals to avoid device overload (#58319) 2021-10-28 22:44:28 +02:00
Guido Schmitz f1884d34e9 Add devolo home network integration (#45866)
Co-authored-by: Markus Bong <2Fake1987@gmail.com>
Co-authored-by: Markus Bong <Markus.Bong@devolo.de>
2021-10-28 22:42:10 +02:00
Paul Frank 3705f2f7f1 Open and close tilt for Fibaro devices in zwave_js (#58435)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-28 22:30:34 +02:00
Aaron Bach 2b7fe06b16 Fix incorrect RainMachine service helper (#58633) 2021-10-28 22:29:25 +02:00
Hmmbob 37a07acce0 Adding newly supported language codes to Google TTS (#58607) 2021-10-28 22:16:31 +02:00
epenet 1e8ccb47ce Use constants in control4 config flow (#58602)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 22:15:30 +02:00
Pieter Mulder b368476429 Allow initialized callback to have arguments (#58129) 2021-10-28 22:14:50 +02:00
Aaron Bach 0f25900309 Fix missing triggered state in SimpliSafe alarm control panel (#58628) 2021-10-28 21:52:06 +02:00
Chen-IL e32fdfec84 Add entity category for load sensors to AsusWRT (#58625) 2021-10-28 21:34:26 +02:00
Guido Schmitz 9f30cd7826 Add configuration_url to devolo Home Control (#58594) 2021-10-28 21:33:06 +02:00
Bram Kragten 808e067c22 Update frontend to 20211028.0 (#58629) 2021-10-28 21:32:38 +02:00
J. Nick Koston 2b175a37a7 Add package constraint to websockets (#58626) 2021-10-28 21:32:22 +02:00
J. Nick Koston 5f36fd2a80 Fix uncaught exception in sense and retry later (#58623) 2021-10-28 21:27:19 +02:00
Kevin Hellemun 05353f8e13 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:06:04 +02:00
Aaron Bach 669e36caec Add DHCP Discovery for SimpliSafe (#58560)
* Add DHCP Discovery for SimpliSafe

* Fix tests

* Docstring

* Code review
2021-10-28 11:07:58 -06:00
Avi Miller 0c2f126012 Return the real MAC address for LIFX bulbs with newer firmware (#58511) 2021-10-28 18:27:40 +02:00
epenet d214bfec47 Use DeviceInfo in upb (#58621)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:26:53 +02:00
epenet 6391376d6f Use DeviceInfo in unifi (#58620)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:26:21 +02:00
epenet 1c7fbb7540 Use DeviceInfo in volumio (#58619)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:25:40 +02:00
epenet 8ed4e500d3 Use DeviceInfo in vlc-telnet (#58618)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:25:10 +02:00
epenet 7d235cb9bb Use DeviceInfo in vizio (#58617)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:24:40 +02:00
epenet 7e9a67194a Use DeviceInfo in twinkly (#58609)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:24:20 +02:00
epenet d065ddc5c1 Use DeviceInfo in twentemilieu (#58608)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:23:41 +02:00
epenet 2dcb429c95 Use DeviceInfo in tplink (#58606)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:23:16 +02:00
epenet a0b3a58d1c Use DeviceInfo in toon (#58605)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:20:41 +02:00
epenet e64bc67bec Use DeviceInfo in tado (#58603)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:20:09 +02:00
epenet 6cfa5b2a28 Use DeviceInfo in subaru (#58577)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:19:46 +02:00
J. Nick Koston 11661454ac Add tplink KP303 to discovery (#58548) 2021-10-28 18:13:21 +02:00
epenet d3bafce157 Use constants in acmeda config flow (#58590)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 18:09:28 +02:00
epenet d27c91b9fe Use DeviceInfo in tasmota (#58604)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 16:07:37 +02:00
Erik Montnemery a0a8b9db26 Add entity category 'system' (#58595)
* Add entity category 'hidden'

* Update cloud

* Update Google assistant

* Update Alexa

* Fix tests

* Add ENTITY_CATEGORIES constant

* Rename ENTITY_CATEGORY_HIDDEN to ENTITY_CATEGORY_SYSTEM

* Correct import in motioneye
2021-10-28 14:36:41 +02:00
Tom Matheussen 8c5832ae82 Add service configuration URL to Doorbird (#58549) 2021-10-28 14:32:53 +02:00
Robert Chmielowiec 438d1b2f15 Add configuration_url to Huawei LTE integration (#58584) 2021-10-28 14:32:20 +02:00
epenet 52b0107a77 Use DeviceInfo in system-bridge (#58582)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 14:31:30 +02:00
epenet d7edb5b11c Use DeviceInfo in syncthru (#58581)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 14:31:11 +02:00
epenet 03100693b0 Use DeviceInfo in syncthing (#58580)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 14:30:02 +02:00
epenet 383a820ae1 Use DeviceInfo in switcher-kis (#58579)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 14:29:37 +02:00
Robert Hillis f2169ba111 Fix missing config string in sense (#58597) 2021-10-28 14:27:01 +02:00
Erik Montnemery 5851d5246e Bump hatasmota to 0.3.0 (#58592) 2021-10-28 14:23:26 +02:00
Jesse Hills ea028e38d5 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 12:11:54 +02:00
Paulus Schoutsen 6a3c23d02a Fix default value for host in octoprint config flow (#58568) 2021-10-28 11:20:28 +02:00
Erik Montnemery 7a728997bb Remove incorrect use of iscoroutinefunction from duckdns (#58585) 2021-10-28 11:05:02 +02:00
epenet e99bef7b6e Use DeviceInfo in songpal (#58574)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:41:07 +02:00
epenet d579d90f10 Use DeviceInfo in switchbot (#58578)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:40:35 +02:00
epenet 1a5333f376 Use DeviceInfo in starline (#58576)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:40:01 +02:00
epenet b175f424d6 Use DeviceInfo in spider (#58575)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:39:42 +02:00
epenet 3e4d388491 Use DeviceInfo in somfy-mylink (#58573)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:39:12 +02:00
epenet f7797328e6 Use DeviceInfo in soma (#58572)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-10-28 09:38:53 +02:00
Dave Lowper 892df608e9 Fix ZeroDivisionError on freebox/sensor (#57077)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-28 09:30:06 +02:00
Quentame f28de7891d Add configuration_url to iCloud integration (#58557) 2021-10-28 09:03:53 +02:00
Quentame bcd4ffdef3 Add configuration_url to Freebox integration (#58555) 2021-10-28 08:56:38 +02:00
Aaron Bach feda48f599 Add additional MAC address pattern for Guardian DHCP discovery (#58562) 2021-10-28 08:47:54 +02:00
Erik Montnemery 0456a896e3 Avoid service call in MQTT async_publish function (#58441)
* Avoid service call in MQTT async_publish function

* Tweak

* Fix integrations + tests
2021-10-28 08:13:32 +02:00
GitHub Action 11cb04822e [ci skip] Translation update 2021-10-28 00:11:45 +00:00
Paulus Schoutsen 366a4d24f4 Add entity category to ZHA battery (#58553) 2021-10-27 16:28:10 -07:00
Paulus Schoutsen e1e864d2b6 Get the registry using the callback method (#58542) 2021-10-27 15:58:14 -07:00
Andre Lengwenus b34eb53914 Register LCN devices in device registry (#53143) 2021-10-27 14:29:28 -07:00
Franck Nijhof 8d05813c97 Bump version to 2021.12.0dev0 (#58546) 2021-10-27 23:08:34 +02:00
4428 changed files with 121401 additions and 34632 deletions
+120
View File
@@ -0,0 +1,120 @@
# Defines a list of files that are part of main core of Home Assistant.
# Changes to these files/filters define how our CI test suite is ran.
core: &core
- homeassistant/*.py
- homeassistant/auth/**
- homeassistant/helpers/*
- homeassistant/package_constraints.txt
- homeassistant/util/*
- pyproject.yaml
- requirements.txt
- setup.cfg
# Our base platforms, that are used by other integrations
base_platforms: &base_platforms
- homeassistant/components/air_quality/*
- homeassistant/components/alarm_control_panel/*
- homeassistant/components/binary_sensor/*
- homeassistant/components/button/*
- homeassistant/components/calendar/*
- homeassistant/components/camera/*
- homeassistant/components/climate/*
- homeassistant/components/cover/*
- homeassistant/components/device_tracker/*
- homeassistant/components/fan/*
- homeassistant/components/geo_location/*
- homeassistant/components/humidifier/*
- homeassistant/components/image_processing/*
- homeassistant/components/light/*
- homeassistant/components/lock/*
- homeassistant/components/media_player/*
- homeassistant/components/notify/*
- homeassistant/components/number/*
- homeassistant/components/remote/*
- homeassistant/components/scene/*
- homeassistant/components/select/*
- homeassistant/components/sensor/*
- homeassistant/components/siren/*
- homeassistant/components/stt/*
- homeassistant/components/switch/*
- homeassistant/components/tts/*
- homeassistant/components/vacuum/*
- homeassistant/components/water_heater/*
- homeassistant/components/weather/*
# Extra components that trigger the full suite
components: &components
- homeassistant/components/alert/*
- homeassistant/components/alexa/*
- homeassistant/components/auth/*
- homeassistant/components/automation/*
- homeassistant/components/cloud/*
- homeassistant/components/config/*
- homeassistant/components/configurator/*
- homeassistant/components/conversation/*
- homeassistant/components/demo/*
- homeassistant/components/device_automation/*
- homeassistant/components/dhcp/*
- homeassistant/components/discovery/*
- homeassistant/components/energy/*
- homeassistant/components/ffmpeg/*
- homeassistant/components/frontend/*
- homeassistant/components/google_assistant/*
- homeassistant/components/group/*
- homeassistant/components/hassio/*
- homeassistant/components/homeassistant/**
- homeassistant/components/image/*
- homeassistant/components/input_boolean/*
- homeassistant/components/input_datetime/*
- homeassistant/components/input_number/*
- homeassistant/components/input_select/*
- homeassistant/components/input_text/*
- homeassistant/components/logbook/*
- homeassistant/components/logger/*
- homeassistant/components/lovelace/*
- homeassistant/components/media_source/*
- homeassistant/components/mqtt/*
- homeassistant/components/network/*
- homeassistant/components/onboarding/*
- homeassistant/components/otp/*
- homeassistant/components/persistent_notification/*
- homeassistant/components/person/*
- homeassistant/components/recorder/*
- homeassistant/components/safe_mode/*
- homeassistant/components/script/*
- homeassistant/components/shopping_list/*
- homeassistant/components/ssdp/*
- homeassistant/components/stream/*
- homeassistant/components/sun/*
- homeassistant/components/system_health/*
- homeassistant/components/tag/*
- homeassistant/components/template/*
- homeassistant/components/timer/*
- homeassistant/components/usb/*
- homeassistant/components/webhook/*
- homeassistant/components/websocket_api/*
- homeassistant/components/zeroconf/*
- homeassistant/components/zone/*
# Testing related files that affect the whole test/linting suite
tests: &tests
- codecov.yaml
- requirements_test_pre_commit.txt
- requirements_test.txt
- tests/common.py
- tests/conftest.py
- tests/ignore_uncaught_exceptions.py
- tests/mock/*
- tests/test_util/*
- tests/testing_config/**
other: &other
- .github/workflows/*
- homeassistant/scripts/**
any:
- *base_platforms
- *components
- *core
- *other
- *tests
+45 -19
View File
@@ -90,6 +90,8 @@ omit =
homeassistant/components/azure_devops/sensor.py
homeassistant/components/azure_service_bus/*
homeassistant/components/baidu/tts.py
homeassistant/components/balboa/__init__.py
homeassistant/components/balboa/entity.py
homeassistant/components/beewi_smartclim/sensor.py
homeassistant/components/bbb_gpio/*
homeassistant/components/bbox/device_tracker.py
@@ -123,6 +125,7 @@ omit =
homeassistant/components/bosch_shc/__init__.py
homeassistant/components/bosch_shc/binary_sensor.py
homeassistant/components/bosch_shc/const.py
homeassistant/components/bosch_shc/cover.py
homeassistant/components/bosch_shc/entity.py
homeassistant/components/bosch_shc/sensor.py
homeassistant/components/braviatv/__init__.py
@@ -137,7 +140,9 @@ omit =
homeassistant/components/broadlink/updater.py
homeassistant/components/brottsplatskartan/sensor.py
homeassistant/components/browser/*
homeassistant/components/brunt/__init__.py
homeassistant/components/brunt/cover.py
homeassistant/components/brunt/const.py
homeassistant/components/bsblan/climate.py
homeassistant/components/bt_home_hub_5/device_tracker.py
homeassistant/components/bt_smarthub/device_tracker.py
@@ -281,6 +286,7 @@ omit =
homeassistant/components/eq3btsmart/climate.py
homeassistant/components/esphome/__init__.py
homeassistant/components/esphome/binary_sensor.py
homeassistant/components/esphome/button.py
homeassistant/components/esphome/camera.py
homeassistant/components/esphome/climate.py
homeassistant/components/esphome/cover.py
@@ -369,7 +375,6 @@ omit =
homeassistant/components/fritzbox_callmonitor/const.py
homeassistant/components/fritzbox_callmonitor/base.py
homeassistant/components/fritzbox_callmonitor/sensor.py
homeassistant/components/fronius/sensor.py
homeassistant/components/frontier_silicon/media_player.py
homeassistant/components/futurenow/light.py
homeassistant/components/garadget/cover.py
@@ -386,10 +391,6 @@ omit =
homeassistant/components/glances/sensor.py
homeassistant/components/gntp/notify.py
homeassistant/components/goalfeed/*
homeassistant/components/goalzero/__init__.py
homeassistant/components/goalzero/binary_sensor.py
homeassistant/components/goalzero/sensor.py
homeassistant/components/goalzero/switch.py
homeassistant/components/google/*
homeassistant/components/google_cloud/tts.py
homeassistant/components/google_maps/device_tracker.py
@@ -399,8 +400,6 @@ omit =
homeassistant/components/google_travel_time/sensor.py
homeassistant/components/gpmdp/media_player.py
homeassistant/components/gpsd/sensor.py
homeassistant/components/greeneye_monitor/*
homeassistant/components/greeneye_monitor/sensor.py
homeassistant/components/greenwave/light.py
homeassistant/components/group/notify.py
homeassistant/components/growatt_server/sensor.py
@@ -421,9 +420,6 @@ omit =
homeassistant/components/harmony/data.py
homeassistant/components/harmony/remote.py
homeassistant/components/harmony/util.py
homeassistant/components/hassio/binary_sensor.py
homeassistant/components/hassio/entity.py
homeassistant/components/hassio/sensor.py
homeassistant/components/haveibeenpwned/sensor.py
homeassistant/components/hdmi_cec/*
homeassistant/components/heatmiser/climate.py
@@ -433,8 +429,9 @@ omit =
homeassistant/components/hisense_aehw4a1/climate.py
homeassistant/components/hitron_coda/device_tracker.py
homeassistant/components/hive/__init__.py
homeassistant/components/hive/climate.py
homeassistant/components/hive/alarm_control_panel.py
homeassistant/components/hive/binary_sensor.py
homeassistant/components/hive/climate.py
homeassistant/components/hive/light.py
homeassistant/components/hive/sensor.py
homeassistant/components/hive/switch.py
@@ -502,7 +499,6 @@ omit =
homeassistant/components/incomfort/*
homeassistant/components/intesishome/*
homeassistant/components/ios/*
homeassistant/components/iota/*
homeassistant/components/iperf3/*
homeassistant/components/iqvia/*
homeassistant/components/irish_rail_transport/sensor.py
@@ -521,6 +517,8 @@ omit =
homeassistant/components/isy994/switch.py
homeassistant/components/itach/remote.py
homeassistant/components/itunes/media_player.py
homeassistant/components/jellyfin/__init__.py
homeassistant/components/jellyfin/media_source.py
homeassistant/components/joaoapps_join/*
homeassistant/components/juicenet/__init__.py
homeassistant/components/juicenet/const.py
@@ -541,7 +539,14 @@ omit =
homeassistant/components/keyboard_remote/*
homeassistant/components/kira/*
homeassistant/components/kiwi/lock.py
homeassistant/components/knx/*
homeassistant/components/knx/__init__.py
homeassistant/components/knx/climate.py
homeassistant/components/knx/cover.py
homeassistant/components/knx/expose.py
homeassistant/components/knx/knx_entity.py
homeassistant/components/knx/light.py
homeassistant/components/knx/notify.py
homeassistant/components/knx/schema.py
homeassistant/components/kodi/__init__.py
homeassistant/components/kodi/browse_media.py
homeassistant/components/kodi/const.py
@@ -551,7 +556,9 @@ omit =
homeassistant/components/kostal_plenticore/__init__.py
homeassistant/components/kostal_plenticore/const.py
homeassistant/components/kostal_plenticore/helper.py
homeassistant/components/kostal_plenticore/select.py
homeassistant/components/kostal_plenticore/sensor.py
homeassistant/components/kostal_plenticore/switch.py
homeassistant/components/kwb/sensor.py
homeassistant/components/lacrosse/sensor.py
homeassistant/components/lametric/*
@@ -590,7 +597,6 @@ omit =
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
homeassistant/components/luftdaten/sensor.py
@@ -640,7 +646,6 @@ omit =
homeassistant/components/miflora/sensor.py
homeassistant/components/mikrotik/hub.py
homeassistant/components/mikrotik/device_tracker.py
homeassistant/components/mill/__init__.py
homeassistant/components/mill/climate.py
homeassistant/components/mill/const.py
homeassistant/components/mill/sensor.py
@@ -669,7 +674,6 @@ omit =
homeassistant/components/mutesync/binary_sensor.py
homeassistant/components/nest/const.py
homeassistant/components/mvglive/sensor.py
homeassistant/components/mychevy/*
homeassistant/components/mycroft/*
homeassistant/components/mysensors/__init__.py
homeassistant/components/mysensors/binary_sensor.py
@@ -692,6 +696,8 @@ omit =
homeassistant/components/myq/light.py
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/__init__.py
homeassistant/components/nanoleaf/button.py
homeassistant/components/nanoleaf/entity.py
homeassistant/components/nanoleaf/light.py
homeassistant/components/neato/__init__.py
homeassistant/components/neato/api.py
@@ -871,6 +877,8 @@ omit =
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/rest/notify.py
homeassistant/components/rest/switch.py
homeassistant/components/ridwell/__init__.py
homeassistant/components/ridwell/sensor.py
homeassistant/components/ring/camera.py
homeassistant/components/ripple/sensor.py
homeassistant/components/rocketchat/notify.py
@@ -906,6 +914,7 @@ omit =
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/light.py
homeassistant/components/screenlogic/number.py
homeassistant/components/screenlogic/sensor.py
homeassistant/components/screenlogic/services.py
homeassistant/components/screenlogic/switch.py
@@ -926,6 +935,7 @@ omit =
homeassistant/components/shodan/sensor.py
homeassistant/components/shelly/__init__.py
homeassistant/components/shelly/binary_sensor.py
homeassistant/components/shelly/climate.py
homeassistant/components/shelly/entity.py
homeassistant/components/shelly/light.py
homeassistant/components/shelly/sensor.py
@@ -1081,6 +1091,14 @@ omit =
homeassistant/components/todoist/calendar.py
homeassistant/components/todoist/const.py
homeassistant/components/tof/sensor.py
homeassistant/components/tolo/__init__.py
homeassistant/components/tolo/binary_sensor.py
homeassistant/components/tolo/button.py
homeassistant/components/tolo/climate.py
homeassistant/components/tolo/fan.py
homeassistant/components/tolo/light.py
homeassistant/components/tolo/select.py
homeassistant/components/tolo/sensor.py
homeassistant/components/tomato/device_tracker.py
homeassistant/components/toon/__init__.py
homeassistant/components/toon/binary_sensor.py
@@ -1115,6 +1133,7 @@ omit =
homeassistant/components/tradfri/sensor.py
homeassistant/components/tradfri/switch.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_weatherstation/__init__.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
@@ -1124,6 +1143,7 @@ omit =
homeassistant/components/tuya/__init__.py
homeassistant/components/tuya/base.py
homeassistant/components/tuya/binary_sensor.py
homeassistant/components/tuya/button.py
homeassistant/components/tuya/camera.py
homeassistant/components/tuya/climate.py
homeassistant/components/tuya/const.py
@@ -1139,8 +1159,6 @@ omit =
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
homeassistant/components/twilio_sms/notify.py
homeassistant/components/twitter/notify.py
@@ -1169,7 +1187,9 @@ omit =
homeassistant/components/velbus/switch.py
homeassistant/components/velux/*
homeassistant/components/venstar/__init__.py
homeassistant/components/venstar/binary_sensor.py
homeassistant/components/venstar/climate.py
homeassistant/components/venstar/sensor.py
homeassistant/components/verisure/__init__.py
homeassistant/components/verisure/alarm_control_panel.py
homeassistant/components/verisure/binary_sensor.py
@@ -1186,7 +1206,12 @@ omit =
homeassistant/components/vesync/light.py
homeassistant/components/vesync/switch.py
homeassistant/components/viaggiatreno/sensor.py
homeassistant/components/vicare/*
homeassistant/components/vicare/binary_sensor.py
homeassistant/components/vicare/climate.py
homeassistant/components/vicare/const.py
homeassistant/components/vicare/__init__.py
homeassistant/components/vicare/sensor.py
homeassistant/components/vicare/water_heater.py
homeassistant/components/vilfo/__init__.py
homeassistant/components/vilfo/sensor.py
homeassistant/components/vilfo/const.py
@@ -1263,6 +1288,7 @@ omit =
homeassistant/components/yale_smart_alarm/coordinator.py
homeassistant/components/yamaha_musiccast/__init__.py
homeassistant/components/yamaha_musiccast/media_player.py
homeassistant/components/yamaha_musiccast/number.py
homeassistant/components/yandex_transport/*
homeassistant/components/yeelightsunflower/light.py
homeassistant/components/yi/camera.py
+30 -22
View File
@@ -23,12 +23,12 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -56,9 +56,7 @@ jobs:
uses: home-assistant/actions/helpers/codenotary@master
with:
source: file://${{ github.workspace }}/OFFICIAL_IMAGE
user: ${{ secrets.VCN_USER }}
password: ${{ secrets.VCN_PASSWORD }}
organisation: home-assistant.io
token: ${{ secrets.CAS_TOKEN }}
build_python:
name: Build PyPi package
@@ -67,10 +65,10 @@ jobs:
if: needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -97,11 +95,11 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -133,15 +131,15 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.09.0
uses: home-assistant/builder@2021.12.0
with:
args: |
$BUILD_ARGS \
--${{ matrix.arch }} \
--target /data \
--with-codenotary "${{ secrets.VCN_USER }}" "${{ secrets.VCN_PASSWORD }}" "${{ secrets.VCN_ORG }}" \
--validate-from "${{ secrets.VCN_ORG }}" \
--generic ${{ needs.init.outputs.version }}
env:
CAS_API_KEY: ${{ secrets.CAS_TOKEN }}
build_machine:
name: Build ${{ matrix.machine }} machine core image
@@ -170,7 +168,18 @@ jobs:
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set build additional args
run: |
# Create general tags
if [[ "${{ needs.init.outputs.version }}" =~ d ]]; then
echo "BUILD_ARGS=--additional-tag dev" >> $GITHUB_ENV
elif [[ "${{ needs.init.outputs.version }}" =~ b ]]; then
echo "BUILD_ARGS=--additional-tag beta" >> $GITHUB_ENV
else
echo "BUILD_ARGS=--additional-tag stable" >> $GITHUB_ENV
fi
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
@@ -186,14 +195,14 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.09.0
uses: home-assistant/builder@2021.12.0
with:
args: |
$BUILD_ARGS \
--target /data/machine \
--with-codenotary "${{ secrets.VCN_USER }}" "${{ secrets.VCN_PASSWORD }}" "${{ secrets.VCN_ORG }}" \
--validate-from "${{ secrets.VCN_ORG }}" \
--machine "${{ needs.init.outputs.version }}=${{ matrix.machine }}"
env:
CAS_API_KEY: ${{ secrets.CAS_TOKEN }}
publish_ha:
name: Publish version files
@@ -201,7 +210,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -233,7 +242,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
@@ -248,8 +257,8 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install VCN tools
uses: home-assistant/actions/helpers/vcn@master
- name: Install CAS tools
uses: home-assistant/actions/helpers/cas@master
- name: Build Meta Image
shell: bash
@@ -293,8 +302,7 @@ jobs:
function validate_image() {
local image=${1}
state="$(vcn authenticate --org home-assistant.io --output json docker://${image} | jq '.verification.status // 2')"
if [[ "${state}" != "0" ]]; then
if ! cas authenticate --signerID notary@home-assistant.io "docker://${image}"; then
echo "Invalid signature!"
exit 1
fi
+306 -308
View File
@@ -15,7 +15,115 @@ env:
PRE_COMMIT_CACHE: ~/.cache/pre-commit
SQLALCHEMY_WARN_20: 1
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
changes:
name: Determine what has changed
outputs:
# In case of issues with the partial run, use the following line instead:
# test_full_suite: 'true'
test_full_suite: ${{ steps.info.outputs.test_full_suite }}
core: ${{ steps.core.outputs.changes }}
integrations: ${{ steps.integrations.outputs.changes }}
integrations_glob: ${{ steps.info.outputs.integrations_glob }}
tests: ${{ steps.info.outputs.tests }}
tests_glob: ${{ steps.info.outputs.tests_glob }}
test_groups: ${{ steps.info.outputs.test_groups }}
test_group_count: ${{ steps.info.outputs.test_group_count }}
runs-on: ubuntu-latest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
- name: Filter for core changes
uses: dorny/paths-filter@v2.10.2
id: core
with:
filters: .core_files.yaml
- name: Create a list of integrations to filter for changes
run: |
integrations=$(ls -Ad ./homeassistant/components/[!_]* | xargs -n 1 basename)
touch .integration_paths.yaml
for integration in $integrations; do
echo "${integration}: [homeassistant/components/${integration}/*, tests/components/${integration}/*]" \
>> .integration_paths.yaml;
done
echo "Result:"
cat .integration_paths.yaml
- name: Filter for integration changes
uses: dorny/paths-filter@v2.10.2
id: integrations
with:
filters: .integration_paths.yaml
- name: Collect additional information
id: info
run: |
# Defaults
integrations_glob=""
test_full_suite="true"
test_groups="[1, 2, 3, 4, 5, 6]"
test_group_count=6
tests="[]"
tests_glob=""
if [[ "${{ steps.integrations.outputs.changes }}" != "[]" ]];
then
# Create a file glob for the integrations
integrations_glob=$(echo '${{ steps.integrations.outputs.changes }}' | jq -cSr '. | join(",")')
[[ "${integrations_glob}" == *","* ]] && integrations_glob="{${integrations_glob}}"
# Create list of testable integrations
possible_integrations=$(echo '${{ steps.integrations.outputs.changes }}' | jq -cSr '.[]')
tests=$(
for integration in ${possible_integrations};
do
if [[ -d "tests/components/${integration}" ]]; then
echo -n "\"${integration}\",";
fi;
done
)
[[ ! -z "${tests}" ]] && tests="${tests::-1}"
tests="[${tests}]"
test_groups="${tests}"
# Test group count should be 1, we don't split partial tests
test_group_count=1
# Create a file glob for the integrations tests
tests_glob=$(echo "${tests}" | jq -cSr '. | join(",")')
[[ "${tests_glob}" == *","* ]] && tests_glob="{${tests_glob}}"
test_full_suite="false"
fi
# We need to run the full suite on certain branches.
# Or, in case core files are touched, for the full suite as well.
if [[ "${{ github.ref }}" == "refs/heads/dev" ]] \
|| [[ "${{ github.ref }}" == "refs/heads/master" ]] \
|| [[ "${{ github.ref }}" == "refs/heads/rc" ]] \
|| [[ "${{ steps.core.outputs.any }}" == "true" ]];
then
test_groups="[1, 2, 3, 4, 5, 6]"
test_group_count=6
test_full_suite="true"
fi
# Output & sent to GitHub Actions
echo "test_full_suite: ${test_full_suite}"
echo "::set-output name=test_full_suite::${test_full_suite}"
echo "integrations_glob: ${integrations_glob}"
echo "::set-output name=integrations_glob::${integrations_glob}"
echo "test_group_count: ${test_group_count}"
echo "::set-output name=test_group_count::${test_group_count}"
echo "test_groups: ${test_groups}"
echo "::set-output name=test_groups::${test_groups}"
echo "tests: ${tests}"
echo "::set-output name=tests::${tests}"
echo "tests_glob: ${tests_glob}"
echo "::set-output name=tests_glob::${tests_glob}"
# Separate job to pre-populate the base dependency cache
# This prevent upcoming jobs to do the same individually
prepare-base:
@@ -26,10 +134,10 @@ jobs:
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Generate partial Python venv restore key
@@ -41,7 +149,7 @@ jobs:
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: >-
@@ -65,7 +173,7 @@ jobs:
hashFiles('.pre-commit-config.yaml') }}"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >-
@@ -78,61 +186,23 @@ jobs:
. venv/bin/activate
pre-commit install-hooks
lint-bandit:
name: Check bandit
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Run bandit
run: |
. venv/bin/activate
pre-commit run --hook-stage manual bandit --all-files --show-diff-on-failure
lint-black:
name: Check black
runs-on: ubuntu-latest
needs: prepare-base
needs:
- changes
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -144,7 +214,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -153,131 +223,35 @@ jobs:
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Run black
- name: Run black (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual black --all-files --show-diff-on-failure
lint-codespell:
name: Check codespell
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Register codespell problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/codespell.json"
- name: Run codespell
- name: Run black (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --show-diff-on-failure --hook-stage manual codespell --all-files
lint-dockerfile:
name: Check Dockerfile
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
- name: Check Dockerfile
uses: docker://hadolint/hadolint:v1.18.2
with:
args: hadolint Dockerfile
- name: Check Dockerfile.dev
uses: docker://hadolint/hadolint:v1.18.2
with:
args: hadolint Dockerfile.dev
lint-executable-shebangs:
name: Check executables
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Register check executables problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/check-executables-have-shebangs.json"
- name: Run executables check
run: |
. venv/bin/activate
pre-commit run --hook-stage manual check-executables-have-shebangs --all-files
pre-commit run --hook-stage manual black --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/* --show-diff-on-failure
lint-flake8:
name: Check flake8
runs-on: ubuntu-latest
needs: prepare-base
needs:
- changes
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -289,7 +263,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -301,10 +275,17 @@ jobs:
- name: Register flake8 problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/flake8.json"
- name: Run flake8
- name: Run flake8 (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual flake8 --all-files
- name: Run flake8 (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --hook-stage manual flake8 --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/*
lint-isort:
name: Check isort
@@ -312,15 +293,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -332,7 +313,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -346,21 +327,23 @@ jobs:
. venv/bin/activate
pre-commit run --hook-stage manual isort --all-files --show-diff-on-failure
lint-json:
name: Check JSON
lint-other:
name: Check other linters
runs-on: ubuntu-latest
needs: prepare-base
needs:
- changes
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -372,7 +355,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -381,6 +364,27 @@ jobs:
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Run pyupgrade (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual pyupgrade --all-files --show-diff-on-failure
- name: Run pyupgrade (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --hook-stage manual pyupgrade --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/* --show-diff-on-failure
- name: Register yamllint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/yamllint.json"
- name: Run yamllint
run: |
. venv/bin/activate
pre-commit run --hook-stage manual yamllint --all-files --show-diff-on-failure
- name: Register check-json problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/check-json.json"
@@ -389,99 +393,45 @@ jobs:
. venv/bin/activate
pre-commit run --hook-stage manual check-json --all-files
lint-pyupgrade:
name: Check pyupgrade
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
- name: Register check executables problem matcher
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Run pyupgrade
echo "::add-matcher::.github/workflows/matchers/check-executables-have-shebangs.json"
- name: Run executables check
run: |
. venv/bin/activate
pre-commit run --hook-stage manual pyupgrade --all-files --show-diff-on-failure
pre-commit run --hook-stage manual check-executables-have-shebangs --all-files
# Disabled until we have the existing issues fixed
# lint-shellcheck:
# name: Check ShellCheck
# runs-on: ubuntu-latest
# needs: prepare-base
# steps:
# - name: Check out code from GitHub
# uses: actions/checkout@v2.3.5
# - name: Run ShellCheck
# uses: ludeeus/action-shellcheck@0.3.0
lint-yaml:
name: Check YAML
runs-on: ubuntu-latest
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
- name: Register codespell problem matcher
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Register yamllint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/yamllint.json"
- name: Run yamllint
echo "::add-matcher::.github/workflows/matchers/codespell.json"
- name: Run codespell
run: |
. venv/bin/activate
pre-commit run --hook-stage manual yamllint --all-files --show-diff-on-failure
pre-commit run --show-diff-on-failure --hook-stage manual codespell --all-files
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
- name: Check Dockerfile
uses: docker://hadolint/hadolint:v1.18.2
with:
args: hadolint Dockerfile
- name: Check Dockerfile.dev
uses: docker://hadolint/hadolint:v1.18.2
with:
args: hadolint Dockerfile.dev
- name: Run bandit (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual bandit --all-files --show-diff-on-failure
- name: Run bandit (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --hook-stage manual bandit --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/* --show-diff-on-failure
hassfest:
name: Check hassfest
@@ -493,10 +443,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -517,15 +467,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -551,7 +501,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
@@ -561,7 +511,7 @@ jobs:
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: >-
@@ -588,17 +538,19 @@ jobs:
pylint:
name: Check pylint
runs-on: ubuntu-latest
needs: prepare-tests
needs:
- changes
- prepare-tests
strategy:
matrix:
python-version: [3.8]
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -611,25 +563,34 @@ jobs:
- name: Register pylint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pylint.json"
- name: Run pylint
- name: Run pylint (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pylint homeassistant
- name: Run pylint (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pylint homeassistant/components/${{ needs.changes.outputs.integrations_glob }}
mypy:
name: Check mypy
runs-on: ubuntu-latest
needs: prepare-tests
needs:
- changes
- prepare-tests
strategy:
matrix:
python-version: [3.8]
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -642,28 +603,44 @@ jobs:
- name: Register mypy problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/mypy.json"
- name: Run mypy
- name: Run mypy (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
mypy homeassistant
- name: Run mypy (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
mypy homeassistant/components/${{ needs.changes.outputs.integrations_glob }}
pytest:
runs-on: ubuntu-latest
needs: prepare-tests
if: needs.changes.outputs.test_full_suite == 'true' || needs.changes.outputs.tests_glob
needs:
- changes
- gen-requirements-all
- hassfest
- lint-black
- lint-other
- lint-isort
- mypy
- prepare-tests
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4]
group: ${{ fromJson(needs.changes.outputs.test_groups) }}
python-version: [3.8, 3.9]
name: >-
Run tests Python ${{ matrix.python-version }} (group ${{ matrix.group }})
Run tests Python ${{ matrix.python-version }} (${{ matrix.group }})
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
uses: actions/cache@v2.1.7
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -683,61 +660,82 @@ jobs:
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Run pytest
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Run pytest (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
python3 -X dev -bb -m pytest \
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--durations=10 \
-n auto \
--dist=loadfile \
--test-group-count 4 \
--test-group-count ${{ needs.changes.outputs.test_group_count }} \
--test-group=${{ matrix.group }} \
--cov homeassistant \
--cov-report= \
--cov-report=xml \
-o console_output_style=count \
-p no:sugar \
tests
- name: Run pytest (partially)
if: needs.changes.outputs.test_full_suite == 'false' && matrix.python-version != '3.8'
run: |
. venv/bin/activate
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--durations=10 \
-n auto \
--cov homeassistant.components.${{ matrix.group }} \
--cov-report=xml \
--cov-report=term-missing \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }}
- name: Run pytest (partially); no coverage
if: needs.changes.outputs.test_full_suite == 'false' && matrix.python-version == '3.8'
run: |
. venv/bin/activate
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--durations=10 \
-n auto \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }}
- name: Upload coverage artifact
uses: actions/upload-artifact@v2.2.4
with:
name: coverage-${{ matrix.python-version }}-group${{ matrix.group }}
path: .coverage
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
- name: Check dirty
run: |
./script/check_dirty
coverage:
name: Process test coverage
name: Upload test coverage to Codecov
runs-on: ubuntu-latest
needs: ["prepare-tests", "pytest"]
strategy:
matrix:
python-version: [3.8]
container: homeassistant/ci-azure:${{ matrix.python-version }}
needs:
- changes
- pytest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.3.5
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
echo "Failed to restore Python virtual environment from cache"
exit 1
uses: actions/checkout@v2.4.0
- name: Download all coverage artifacts
uses: actions/download-artifact@v2
- name: Combine coverage results
run: |
. venv/bin/activate
coverage combine coverage*/.coverage*
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
- name: Upload coverage to Codecov (full coverage)
if: needs.changes.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v2.1.0
with:
flags: full-suite
- name: Upload coverage to Codecov (partial coverage)
if: needs.changes.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v2.1.0
@@ -0,0 +1,18 @@
{
"problemMatcher": [
{
"owner": "python",
"pattern": [
{
"regexp": "^=+ slowest durations =+$"
},
{
"regexp": "^((.*s)\\s(call|setup|teardown)\\s+(.*)::(.*))$",
"message": 1,
"file": 2,
"loop": true
}
]
}
]
}
+4 -4
View File
@@ -20,10 +20,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -39,10 +39,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
uses: actions/setup-python@v2.3.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
+3 -3
View File
@@ -21,7 +21,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Get information
id: info
@@ -68,7 +68,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Download env_file
uses: actions/download-artifact@v2
@@ -108,7 +108,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v2.4.0
- name: Download env_file
uses: actions/download-artifact@v2
+5 -5
View File
@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.27.0
rev: v2.29.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/psf/black
rev: 21.9b0
rev: 21.11b1
hooks:
- id: black
args:
@@ -17,7 +17,7 @@ repos:
hooks:
- id: codespell
args:
- --ignore-words-list=hass,alot,datas,dof,dur,ether,farenheit,hist,iff,ines,ist,lightsensor,mut,nd,pres,referer,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing,iam,incomfort,ba
- --ignore-words-list=hass,alot,datas,dof,dur,ether,farenheit,hist,iff,ines,ist,lightsensor,mut,nd,pres,referer,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing,iam,incomfort,ba,haa
- --skip="./.*,*.csv,*.json"
- --quiet-level=2
exclude_types: [csv, json]
@@ -45,7 +45,7 @@ repos:
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/isort
rev: 5.9.3
rev: 5.10.0
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -61,7 +61,7 @@ repos:
- --branch=master
- --branch=rc
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.26.1
rev: v1.26.3
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
+14
View File
@@ -24,6 +24,7 @@ homeassistant.components.bmw_connected_drive.*
homeassistant.components.bond.*
homeassistant.components.braviatv.*
homeassistant.components.brother.*
homeassistant.components.button.*
homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
@@ -32,6 +33,7 @@ homeassistant.components.crownstone.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
homeassistant.components.devolo_home_network.*
homeassistant.components.dlna_dmr.*
homeassistant.components.dnsip.*
homeassistant.components.dsmr.*
@@ -40,17 +42,20 @@ homeassistant.components.efergy.*
homeassistant.components.elgato.*
homeassistant.components.esphome.*
homeassistant.components.energy.*
homeassistant.components.evil_genius_labs.*
homeassistant.components.fastdotcom.*
homeassistant.components.fitbit.*
homeassistant.components.flunearyou.*
homeassistant.components.flux_led.*
homeassistant.components.forecast_solar.*
homeassistant.components.fritzbox.*
homeassistant.components.fronius.*
homeassistant.components.frontend.*
homeassistant.components.fritz.*
homeassistant.components.geo_location.*
homeassistant.components.gios.*
homeassistant.components.goalzero.*
homeassistant.components.greeneye_monitor.*
homeassistant.components.group.*
homeassistant.components.guardian.*
homeassistant.components.history.*
@@ -62,6 +67,7 @@ homeassistant.components.image_processing.*
homeassistant.components.input_select.*
homeassistant.components.integration.*
homeassistant.components.iqvia.*
homeassistant.components.jellyfin.*
homeassistant.components.jewish_calendar.*
homeassistant.components.knx.*
homeassistant.components.kraken.*
@@ -93,12 +99,14 @@ homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.proximity.*
homeassistant.components.rainmachine.*
homeassistant.components.rdw.*
homeassistant.components.recollect_waste.*
homeassistant.components.recorder.purge
homeassistant.components.recorder.repack
homeassistant.components.recorder.statistics
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.ridwell.*
homeassistant.components.rituals_perfume_genie.*
homeassistant.components.rpi_power.*
homeassistant.components.samsungtv.*
@@ -119,18 +127,24 @@ homeassistant.components.switcher_kis.*
homeassistant.components.synology_dsm.*
homeassistant.components.systemmonitor.*
homeassistant.components.tag.*
homeassistant.components.tailscale.*
homeassistant.components.tautulli.*
homeassistant.components.tcp.*
homeassistant.components.tile.*
homeassistant.components.tplink.*
homeassistant.components.tolo.*
homeassistant.components.tractive.*
homeassistant.components.tradfri.*
homeassistant.components.tts.*
homeassistant.components.twentemilieu.*
homeassistant.components.upcloud.*
homeassistant.components.uptime.*
homeassistant.components.uptimerobot.*
homeassistant.components.vacuum.*
homeassistant.components.vallox.*
homeassistant.components.velbus.*
homeassistant.components.vlc_telnet.*
homeassistant.components.wallbox.*
homeassistant.components.water_heater.*
homeassistant.components.watttime.*
homeassistant.components.weather.*
+1 -1
View File
@@ -64,7 +64,7 @@
"label": "Code Coverage",
"detail": "Generate code coverage report for a given integration.",
"type": "shell",
"command": "pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing",
"command": "pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0",
"group": {
"kind": "test",
"isDefault": true
+14 -4
View File
@@ -67,12 +67,14 @@ homeassistant/components/axis/* @Kane610
homeassistant/components/azure_devops/* @timmo001
homeassistant/components/azure_event_hub/* @eavanvalkenburg
homeassistant/components/azure_service_bus/* @hfurubotten
homeassistant/components/balboa/* @garbled1
homeassistant/components/beewi_smartclim/* @alemuro
homeassistant/components/bitcoin/* @fabaff
homeassistant/components/bizkaibus/* @UgaitzEtxebarria
homeassistant/components/blebox/* @bbx-a @bbx-jp
homeassistant/components/blink/* @fronzbot
homeassistant/components/blueprint/* @home-assistant/core
homeassistant/components/bluesound/* @thrawnarn
homeassistant/components/bmp280/* @belidzs
homeassistant/components/bmw_connected_drive/* @gerard33 @rikroe
homeassistant/components/bond/* @bdraco @prystupa @joshs85
@@ -84,6 +86,7 @@ homeassistant/components/brunt/* @eavanvalkenburg
homeassistant/components/bsblan/* @liudger
homeassistant/components/bt_smarthub/* @jxwolstenholme
homeassistant/components/buienradar/* @mjj4791 @ties @Robbie1221
homeassistant/components/button/* @home-assistant/core
homeassistant/components/cast/* @emontnemery
homeassistant/components/cert_expiry/* @Cereal2nd @jjlawren
homeassistant/components/circuit/* @braam
@@ -118,6 +121,7 @@ homeassistant/components/denonavr/* @ol-iver @starkillerOG
homeassistant/components/derivative/* @afaucogney
homeassistant/components/device_automation/* @home-assistant/core
homeassistant/components/devolo_home_control/* @2Fake @Shutgun
homeassistant/components/devolo_home_network/* @2Fake @Shutgun
homeassistant/components/dexcom/* @gagebenne
homeassistant/components/dhcp/* @bdraco
homeassistant/components/dht/* @thegardenmonkey
@@ -157,6 +161,7 @@ homeassistant/components/epson/* @pszafer
homeassistant/components/epsonworkforce/* @ThaStealth
homeassistant/components/eq3btsmart/* @rytilahti
homeassistant/components/esphome/* @OttoWinter @jesserockz
homeassistant/components/evil_genius_labs/* @balloob
homeassistant/components/evohome/* @zxdavb
homeassistant/components/ezviz/* @RenierM26 @baqs
homeassistant/components/faa_delays/* @ntilley905
@@ -182,7 +187,7 @@ homeassistant/components/freebox/* @hacf-fr @Quentame
homeassistant/components/freedompro/* @stefano055415
homeassistant/components/fritz/* @mammuth @AaronDavidSchneider @chemelli74
homeassistant/components/fritzbox/* @mib1185 @flabbamann
homeassistant/components/fronius/* @nielstron
homeassistant/components/fronius/* @nielstron @farmio
homeassistant/components/frontend/* @home-assistant/frontend
homeassistant/components/garages_amsterdam/* @klaasnicolaas
homeassistant/components/gdacs/* @exxamalte
@@ -227,7 +232,7 @@ homeassistant/components/homematic/* @pvizeli @danielperna84
homeassistant/components/honeywell/* @rdfurman
homeassistant/components/http/* @home-assistant/core
homeassistant/components/huawei_lte/* @scop @fphammerle
homeassistant/components/hue/* @balloob @frenck
homeassistant/components/hue/* @balloob @marcelveldt
homeassistant/components/huisbaasje/* @dennisschroer
homeassistant/components/humidifier/* @home-assistant/core @Shulyaka
homeassistant/components/hunterdouglas_powerview/* @bdraco
@@ -261,6 +266,7 @@ homeassistant/components/irish_rail_transport/* @ttroy50
homeassistant/components/islamic_prayer_times/* @engrbm87
homeassistant/components/isy994/* @bdraco @shbatm
homeassistant/components/izone/* @Swamp-Ig
homeassistant/components/jellyfin/* @j-stienstra
homeassistant/components/jewish_calendar/* @tsvi
homeassistant/components/juicenet/* @jesserockz
homeassistant/components/kaiterra/* @Michsior14
@@ -287,7 +293,6 @@ 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
homeassistant/components/luftdaten/* @fabaff
@@ -422,6 +427,7 @@ homeassistant/components/raincloud/* @vanstinator
homeassistant/components/rainforest_eagle/* @gtdiehl @jcalbert
homeassistant/components/rainmachine/* @bachya
homeassistant/components/random/* @fabaff
homeassistant/components/rdw/* @frenck
homeassistant/components/recollect_waste/* @bachya
homeassistant/components/recorder/* @home-assistant/core
homeassistant/components/rejseplanen/* @DarkFox
@@ -429,6 +435,7 @@ homeassistant/components/renault/* @epenet
homeassistant/components/repetier/* @MTrab
homeassistant/components/rflink/* @javicalle
homeassistant/components/rfxtrx/* @danielhiversen @elupus @RobBie1221
homeassistant/components/ridwell/* @bachya
homeassistant/components/ring/* @balloob
homeassistant/components/risco/* @OnFreund
homeassistant/components/rituals_perfume_genie/* @milanmeu
@@ -520,12 +527,14 @@ homeassistant/components/system_bridge/* @timmo001
homeassistant/components/tado/* @michaelarnauts @noltari
homeassistant/components/tag/* @balloob @dmulcahey
homeassistant/components/tahoma/* @philklei
homeassistant/components/tailscale/* @frenck
homeassistant/components/tankerkoenig/* @guillempages
homeassistant/components/tapsaff/* @bazwilliams
homeassistant/components/tasmota/* @emontnemery
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
homeassistant/components/template/* @PhracturedBlue @tetienne @home-assistant/core
homeassistant/components/tesla_wall_connector/* @einarhauks
homeassistant/components/tfiac/* @fredrike @mellado
homeassistant/components/thethingsnetwork/* @fabaff
homeassistant/components/threshold/* @fabaff
@@ -534,12 +543,12 @@ homeassistant/components/tile/* @bachya
homeassistant/components/time_date/* @fabaff
homeassistant/components/tmb/* @alemuro
homeassistant/components/todoist/* @boralyl
homeassistant/components/tolo/* @MatthiasLohr
homeassistant/components/totalconnect/* @austinmroczek
homeassistant/components/tplink/* @rytilahti @thegardenmonkey
homeassistant/components/traccar/* @ludeeus
homeassistant/components/trace/* @home-assistant/core
homeassistant/components/tractive/* @Danielhiversen @zhulik @bieniu
homeassistant/components/tradfri/* @janiversen
homeassistant/components/trafikverket_train/* @endor-force
homeassistant/components/trafikverket_weatherstation/* @endor-force
homeassistant/components/transmission/* @engrbm87 @JPHutchins
@@ -575,6 +584,7 @@ homeassistant/components/vizio/* @raman325
homeassistant/components/vlc_telnet/* @rodripf @dmcc @MartinHjelmare
homeassistant/components/volkszaehler/* @fabaff
homeassistant/components/volumio/* @OnFreund
homeassistant/components/volvooncall/* @molobrakos @decompil3d
homeassistant/components/wake_on_lan/* @ntilley905
homeassistant/components/wallbox/* @hesselonline
homeassistant/components/waqi/* @andrey-git
+12 -3
View File
@@ -7,12 +7,21 @@ ENV \
WORKDIR /usr/src
## Setup Home Assistant
## Setup Home Assistant Core dependencies
COPY requirements.txt homeassistant/
COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
RUN \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements.txt
COPY requirements_all.txt homeassistant/
RUN \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements_all.txt
## Setup Home Assistant Core
COPY . homeassistant/
RUN \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements_all.txt \
&& pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-e ./homeassistant \
&& python3 -m compileall homeassistant/homeassistant
+5 -4
View File
@@ -30,11 +30,12 @@ RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
WORKDIR /workspaces
# Install Python dependencies from requirements
COPY requirements.txt requirements_test.txt requirements_test_pre_commit.txt ./
COPY requirements.txt ./
COPY homeassistant/package_constraints.txt homeassistant/package_constraints.txt
RUN pip3 install -r requirements.txt \
&& pip3 install -r requirements_test.txt \
&& rm -rf requirements.txt requirements_test.txt requirements_test_pre_commit.txt homeassistant/
RUN pip3 install -r requirements.txt
COPY requirements_test.txt requirements_test_pre_commit.txt ./
RUN pip3 install -r requirements_test.txt
RUN rm -rf requirements.txt requirements_test.txt requirements_test_pre_commit.txt homeassistant/
# Set the default shell to bash instead of sh
ENV SHELL /bin/bash
-22
View File
@@ -1,22 +0,0 @@
{
"image": "homeassistant/{arch}-homeassistant",
"shadow_repository": "ghcr.io/home-assistant",
"build_from": {
"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",
"org.opencontainers.image.title": "Home Assistant",
"org.opencontainers.image.description": "Open-source home automation platform running on Python 3",
"org.opencontainers.image.source": "https://github.com/home-assistant/core",
"org.opencontainers.image.authors": "The Home Assistant Authors",
"org.opencontainers.image.url": "https://www.home-assistant.io/",
"org.opencontainers.image.documentation": "https://www.home-assistant.io/docs/",
"org.opencontainers.image.licenses": "Apache License 2.0"
},
"version_tag": true
}
+20
View File
@@ -0,0 +1,20 @@
image: homeassistant/{arch}-homeassistant
shadow_repository: ghcr.io/home-assistant
build_from:
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
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
labels:
io.hass.type: core
org.opencontainers.image.title: Home Assistant
org.opencontainers.image.description: Open-source home automation platform running on Python 3
org.opencontainers.image.source: https://github.com/home-assistant/core
org.opencontainers.image.authors: The Home Assistant Authors
org.opencontainers.image.url: https://www.home-assistant.io/
org.opencontainers.image.documentation: https://www.home-assistant.io/docs/
org.opencontainers.image.licenses: Apache License 2.0
+24
View File
@@ -6,4 +6,28 @@ coverage:
default:
target: 90
threshold: 0.09
config-flows:
target: auto
threshold: 0
paths:
- homeassistant/components/*/config_flow.py
patch:
default:
target: auto
config-flows:
target: 100
threshold: 0
paths:
- homeassistant/components/*/config_flow.py
comment: false
# To make partial tests possible,
# we need to carry forward.
flag_management:
default_rules:
carryforward: false
individual_flags:
- name: full-suite
paths:
- ".*"
carryforward: true
+42
View File
@@ -0,0 +1,42 @@
"""Provide backwards compat for async_timeout."""
from __future__ import annotations
import asyncio
from typing import Any
import async_timeout
from homeassistant.helpers.frame import report
def timeout(
delay: float | None, loop: asyncio.AbstractEventLoop | None = None
) -> async_timeout.Timeout:
"""Backwards compatible timeout context manager that warns with loop usage."""
if loop is None:
loop = asyncio.get_running_loop()
else:
report(
"called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2",
error_if_core=False,
)
if delay is not None:
deadline: float | None = loop.time() + delay
else:
deadline = None
return async_timeout.Timeout(deadline, loop)
def current_task(loop: asyncio.AbstractEventLoop) -> asyncio.Task[Any] | None:
"""Backwards compatible current_task."""
report(
"called async_timeout.current_task. The current_task call is deprecated and calls will fail after Home Assistant 2022.2; use asyncio.current_task instead",
error_if_core=False,
)
return asyncio.current_task()
def enable() -> None:
"""Enable backwards compat transitions."""
async_timeout.timeout = timeout
async_timeout.current_task = current_task # type: ignore[attr-defined]
+25 -7
View File
@@ -214,11 +214,19 @@ class AuthManager:
return None
async def async_create_system_user(
self, name: str, group_ids: list[str] | None = None
self,
name: str,
*,
group_ids: list[str] | None = None,
local_only: bool | None = None,
) -> models.User:
"""Create a system user."""
user = await self._store.async_create_user(
name=name, system_generated=True, is_active=True, group_ids=group_ids or []
name=name,
system_generated=True,
is_active=True,
group_ids=group_ids or [],
local_only=local_only,
)
self.hass.bus.async_fire(EVENT_USER_ADDED, {"user_id": user.id})
@@ -226,13 +234,18 @@ class AuthManager:
return user
async def async_create_user(
self, name: str, group_ids: list[str] | None = None
self,
name: str,
*,
group_ids: list[str] | None = None,
local_only: bool | None = None,
) -> models.User:
"""Create a user."""
kwargs: dict[str, Any] = {
"name": name,
"is_active": True,
"group_ids": group_ids or [],
"local_only": local_only,
}
if await self._user_should_be_owner():
@@ -304,13 +317,18 @@ class AuthManager:
name: str | None = None,
is_active: bool | None = None,
group_ids: list[str] | None = None,
local_only: bool | None = None,
) -> None:
"""Update a user."""
kwargs: dict[str, Any] = {}
if name is not None:
kwargs["name"] = name
if group_ids is not None:
kwargs["group_ids"] = group_ids
for attr_name, value in (
("name", name),
("group_ids", group_ids),
("local_only", local_only),
):
if value is not None:
kwargs[attr_name] = value
await self._store.async_update_user(user, **kwargs)
if is_active is not None:
+19 -10
View File
@@ -42,7 +42,7 @@ class AuthStore:
self._groups: dict[str, models.Group] | None = None
self._perm_lookup: PermissionLookup | None = None
self._store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY, private=True
STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._lock = asyncio.Lock()
@@ -86,6 +86,7 @@ class AuthStore:
system_generated: bool | None = None,
credentials: models.Credentials | None = None,
group_ids: list[str] | None = None,
local_only: bool | None = None,
) -> models.User:
"""Create a new user."""
if self._users is None:
@@ -108,14 +109,14 @@ class AuthStore:
"perm_lookup": self._perm_lookup,
}
if is_owner is not None:
kwargs["is_owner"] = is_owner
if is_active is not None:
kwargs["is_active"] = is_active
if system_generated is not None:
kwargs["system_generated"] = system_generated
for attr_name, value in (
("is_owner", is_owner),
("is_active", is_active),
("local_only", local_only),
("system_generated", system_generated),
):
if value is not None:
kwargs[attr_name] = value
new_user = models.User(**kwargs)
@@ -152,6 +153,7 @@ class AuthStore:
name: str | None = None,
is_active: bool | None = None,
group_ids: list[str] | None = None,
local_only: bool | None = None,
) -> None:
"""Update a user."""
assert self._groups is not None
@@ -166,7 +168,11 @@ class AuthStore:
user.groups = groups
user.invalidate_permission_cache()
for attr_name, value in (("name", name), ("is_active", is_active)):
for attr_name, value in (
("name", name),
("is_active", is_active),
("local_only", local_only),
):
if value is not None:
setattr(user, attr_name, value)
@@ -417,6 +423,8 @@ class AuthStore:
is_active=user_dict["is_active"],
system_generated=user_dict["system_generated"],
perm_lookup=perm_lookup,
# New in 2021.11
local_only=user_dict.get("local_only", False),
)
for cred_dict in data["credentials"]:
@@ -502,6 +510,7 @@ class AuthStore:
"is_active": user.is_active,
"name": user.name,
"system_generated": user.system_generated,
"local_only": user.local_only,
}
for user in self._users.values()
]
+1 -1
View File
@@ -100,7 +100,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
super().__init__(hass, config)
self._user_settings: _UsersDict | None = None
self._user_store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY, private=True
STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._include = config.get(CONF_INCLUDE, [])
self._exclude = config.get(CONF_EXCLUDE, [])
+1 -1
View File
@@ -77,7 +77,7 @@ class TotpAuthModule(MultiFactorAuthModule):
super().__init__(hass, config)
self._users: dict[str, str] | None = None
self._user_store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY, private=True
STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._init_lock = asyncio.Lock()
+1
View File
@@ -39,6 +39,7 @@ class User:
is_owner: bool = attr.ib(default=False)
is_active: bool = attr.ib(default=False)
system_generated: bool = attr.ib(default=False)
local_only: bool = attr.ib(default=False)
groups: list[Group] = attr.ib(factory=list, eq=False, order=False)
@@ -63,7 +63,7 @@ class Data:
"""Initialize the user data store."""
self.hass = hass
self._store = hass.helpers.storage.Store(
STORAGE_VERSION, STORAGE_KEY, private=True
STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._data: dict[str, Any] | None = None
# Legacy mode will allow usernames to start/end with whitespace
@@ -102,7 +102,7 @@ class ExampleLoginFlow(LoginFlow):
self, user_input: dict[str, str] | None = None
) -> FlowResult:
"""Handle the step of the form."""
errors = {}
errors = None
if user_input is not None:
try:
@@ -110,7 +110,7 @@ class ExampleLoginFlow(LoginFlow):
user_input["username"], user_input["password"]
)
except InvalidAuthError:
errors["base"] = "invalid_auth"
errors = {"base": "invalid_auth"}
if not errors:
user_input.pop("password")
@@ -194,6 +194,12 @@ class TrustedNetworksAuthProvider(AuthProvider):
if any(ip_addr in trusted_proxy for trusted_proxy in self.trusted_proxies):
raise InvalidAuthError("Can't allow access from a proxy server")
if "cloud" in self.hass.config.components:
from hass_nabucasa import remote # pylint: disable=import-outside-toplevel
if remote.is_cloud_request.get():
raise InvalidAuthError("Can't allow access from Home Assistant Cloud")
@callback
def async_validate_refresh_token(
self, refresh_token: RefreshToken, remote_ip: str | None = None
+1
View File
@@ -0,0 +1 @@
"""Backports from newer Python versions."""
+33
View File
@@ -0,0 +1,33 @@
"""Enum backports from standard lib."""
from __future__ import annotations
from enum import Enum
from typing import Any, TypeVar
T = TypeVar("T", bound="StrEnum")
class StrEnum(str, Enum):
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
def __new__(cls: type[T], value: str, *args: Any, **kwargs: Any) -> T:
"""Create a new StrEnum instance."""
if not isinstance(value, str):
raise TypeError(f"{value!r} is not a string")
return super().__new__(cls, value, *args, **kwargs) # type: ignore[call-overload,no-any-return]
def __str__(self) -> str:
"""Return self.value."""
return str(self.value)
@staticmethod
def _generate_next_value_( # pylint: disable=arguments-differ # https://github.com/PyCQA/pylint/issues/5371
name: str, start: int, count: int, last_values: list[Any]
) -> Any:
"""
Make `auto()` explicitly unsupported.
We may revisit this when it's very clear that Python 3.11's
`StrEnum.auto()` behavior will no longer change.
"""
raise TypeError("auto() is not supported by this implementation")
+1 -2
View File
@@ -252,8 +252,7 @@ async def async_from_config_dict(
f"{'.'.join(str(x) for x in sys.version_info[:3])} is deprecated and will "
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."
f"{'.'.join(str(x) for x in REQUIRED_NEXT_PYTHON_VER[:2])}."
)
_LOGGER.warning(msg)
hass.components.persistent_notification.async_create(
+9 -8
View File
@@ -16,6 +16,7 @@ from homeassistant.const import (
CONF_PASSWORD,
CONF_USERNAME,
EVENT_HOMEASSISTANT_STOP,
Platform,
)
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
@@ -53,14 +54,14 @@ CAPTURE_IMAGE_SCHEMA = vol.Schema({ATTR_ENTITY_ID: cv.entity_ids})
AUTOMATION_SCHEMA = vol.Schema({ATTR_ENTITY_ID: cv.entity_ids})
PLATFORMS = [
"alarm_control_panel",
"binary_sensor",
"lock",
"switch",
"cover",
"camera",
"light",
"sensor",
Platform.ALARM_CONTROL_PANEL,
Platform.BINARY_SENSOR,
Platform.LOCK,
Platform.SWITCH,
Platform.COVER,
Platform.CAMERA,
Platform.LIGHT,
Platform.SENSOR,
]
@@ -0,0 +1,35 @@
{
"config": {
"abort": {
"reauth_successful": "\u518d\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u307e\u3057\u305f",
"single_instance_allowed": "\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5358\u4e00\u306e\u8a2d\u5b9a\u3057\u304b\u3067\u304d\u307e\u305b\u3093\u3002"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_auth": "\u7121\u52b9\u306a\u8a8d\u8a3c",
"invalid_mfa_code": "\u7121\u52b9\u306aMFA\u30b3\u30fc\u30c9"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA\u30b3\u30fc\u30c9(6\u6841)"
},
"title": "Abode\u306eMFA\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"
},
"reauth_confirm": {
"data": {
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9",
"username": "E\u30e1\u30fc\u30eb"
},
"title": "Abode\u306e\u30ed\u30b0\u30a4\u30f3\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"
},
"user": {
"data": {
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9",
"username": "E\u30e1\u30fc\u30eb"
},
"title": "Abode\u306e\u30ed\u30b0\u30a4\u30f3\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"
}
}
}
}
@@ -27,7 +27,8 @@
"data": {
"password": "Parola",
"username": "E-posta"
}
},
"title": "Abode giri\u015f bilgilerinizi doldurun"
}
}
}
@@ -11,7 +11,7 @@ from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY
from homeassistant.const import CONF_API_KEY, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -20,7 +20,7 @@ from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN
_LOGGER = logging.getLogger(__name__)
PLATFORMS = ["sensor", "weather"]
PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+13 -13
View File
@@ -3,7 +3,7 @@ from __future__ import annotations
from typing import Final
from homeassistant.components.sensor import STATE_CLASS_MEASUREMENT
from homeassistant.components.sensor import SensorStateClass
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -220,7 +220,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Ceiling",
@@ -228,7 +228,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
name="Cloud Ceiling",
unit_metric=LENGTH_METERS,
unit_imperial=LENGTH_FEET,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="CloudCover",
@@ -237,7 +237,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="DewPoint",
@@ -246,7 +246,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperature",
@@ -254,7 +254,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
name="RealFeel Temperature",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShade",
@@ -263,7 +263,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Precipitation",
@@ -271,7 +271,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
name="Precipitation",
unit_metric=LENGTH_MILLIMETERS,
unit_imperial=LENGTH_INCHES,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="PressureTendency",
@@ -287,7 +287,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
name="UV Index",
unit_metric=UV_INDEX,
unit_imperial=UV_INDEX,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WetBulbTemperature",
@@ -296,7 +296,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WindChillTemperature",
@@ -305,7 +305,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Wind",
@@ -313,7 +313,7 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
name="Wind",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WindGust",
@@ -322,6 +322,6 @@ SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
)
@@ -7,6 +7,7 @@ from homeassistant.components.sensor import SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_NAME, DEVICE_CLASS_TEMPERATURE
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
@@ -95,7 +96,7 @@ class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
self._unit_system = API_IMPERIAL
self._attr_native_unit_of_measurement = description.unit_imperial
self._attr_device_info = DeviceInfo(
entry_type="service",
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
@@ -1,7 +1,22 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u0412\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e. \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\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"
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447"
},
"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",
"name": "\u0418\u043c\u0435"
},
"title": "AccuWeather"
}
}
}
}
@@ -0,0 +1,41 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5358\u4e00\u306e\u8a2d\u5b9a\u3057\u304b\u3067\u304d\u307e\u305b\u3093\u3002"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_api_key": "\u7121\u52b9\u306aAPI\u30ad\u30fc",
"requests_exceeded": "Accuweather API\u3078\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u6570\u304c\u8a31\u53ef\u3055\u308c\u305f\u6570\u3092\u8d85\u3048\u307e\u3057\u305f\u3002\u6642\u9593\u3092\u7f6e\u304f\u304b\u3001API\u30ad\u30fc\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002"
},
"step": {
"user": {
"data": {
"api_key": "API\u30ad\u30fc",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d4c\u5ea6",
"name": "\u540d\u524d"
},
"description": "\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u30d8\u30eb\u30d7\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001https://www.home-assistant.io/integrations/accuweather/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u3060\u3055\u3044\n\n\u4e00\u90e8\u306e\u30bb\u30f3\u30b5\u30fc\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u8a2d\u5b9a\u5f8c\u306b\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30ec\u30b8\u30b9\u30c8\u30ea\u3067\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\u5929\u6c17\u4e88\u5831\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002",
"title": "AccuWeather"
}
}
},
"options": {
"step": {
"user": {
"data": {
"forecast": "\u5929\u6c17\u4e88\u5831"
},
"description": "\u5236\u9650\u306b\u3088\u308a\u7121\u6599\u30d0\u30fc\u30b8\u30e7\u30f3\u306eAccuWeather API\u30ad\u30fc\u3067\u306f\u3001\u5929\u6c17\u4e88\u5831\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u30c7\u30fc\u30bf\u306e\u66f4\u65b0\u306f40\u5206\u3067\u306f\u306a\u304f80\u5206\u3054\u3068\u3067\u3059\u3002",
"title": "AccuWeather\u306e\u30aa\u30d7\u30b7\u30e7\u30f3"
}
}
},
"system_health": {
"info": {
"can_reach_server": "AccuWeather\u30b5\u30fc\u30d0\u30fc\u306b\u5230\u9054",
"remaining_requests": "\u6b8b\u308a\u306e\u8a31\u53ef\u3055\u308c\u305f\u30ea\u30af\u30a8\u30b9\u30c8"
}
}
}
@@ -0,0 +1,9 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "\u4e0b\u964d",
"rising": "\u4e0a\u6607",
"steady": "\u5b89\u5b9a"
}
}
}
@@ -0,0 +1,9 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "D\u00fc\u015f\u00fcyor",
"rising": "Y\u00fckseliyor",
"steady": "Sabit"
}
}
}
@@ -5,7 +5,8 @@
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131",
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131"
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131",
"requests_exceeded": "Accuweather API i\u00e7in izin verilen istek say\u0131s\u0131 a\u015f\u0131ld\u0131. API Anahtar\u0131n\u0131 beklemeniz veya de\u011fi\u015ftirmeniz gerekir."
},
"step": {
"user": {
@@ -15,6 +16,7 @@
"longitude": "Boylam",
"name": "Ad"
},
"description": "Yap\u0131land\u0131rmayla ilgili yard\u0131ma ihtiyac\u0131n\u0131z varsa buraya bak\u0131n: https://www.home-assistant.io/integrations/accuweather/ \n\n Baz\u0131 sens\u00f6rler varsay\u0131lan olarak etkin de\u011fildir. Bunlar\u0131, entegrasyon yap\u0131land\u0131rmas\u0131ndan sonra varl\u0131k kay\u0131t defterinde etkinle\u015ftirebilirsiniz.\n Hava tahmini varsay\u0131lan olarak etkin de\u011fildir. Entegrasyon se\u00e7eneklerinde etkinle\u015ftirebilirsiniz.",
"title": "AccuWeather"
}
}
@@ -25,6 +27,7 @@
"data": {
"forecast": "Hava Durumu tahmini"
},
"description": "AccuWeather API anahtar\u0131n\u0131n \u00fccretsiz s\u00fcr\u00fcm\u00fcn\u00fcn s\u0131n\u0131rlamalar\u0131 nedeniyle, hava tahminini etkinle\u015ftirdi\u011finizde, veri g\u00fcncellemeleri her 40 dakikada bir yerine 80 dakikada bir ger\u00e7ekle\u015ftirilir.",
"title": "AccuWeather Se\u00e7enekleri"
}
}
@@ -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.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -68,10 +69,16 @@ class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
)
self._attr_attribution = ATTRIBUTION
self._attr_device_info = DeviceInfo(
entry_type="service",
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
# You don't need to provide specific details for the URL,
# so passing in _ characters is fine if the location key
# is correct
configuration_url="http://accuweather.com/en/"
f"_/_/{coordinator.location_key}/"
f"weather-forecast/{coordinator.location_key}/",
)
@property
@@ -111,8 +111,7 @@ class AcerSwitch(SwitchEntity):
"""Write msg, obtain answer and format output."""
# answers are formatted as ***\answer\r***
awns = self._write_read(msg)
match = re.search(r"\r(.+)\r", awns)
if match:
if match := re.search(r"\r(.+)\r", awns):
return match.group(1)
return STATE_UNKNOWN
+2 -1
View File
@@ -1,13 +1,14 @@
"""The Rollease Acmeda Automate integration."""
from homeassistant import config_entries, core
from homeassistant.const import Platform
from .const import DOMAIN
from .hub import PulseHub
CONF_HUBS = "hubs"
PLATFORMS = ["cover", "sensor"]
PLATFORMS = [Platform.COVER, Platform.SENSOR]
async def async_setup_entry(
@@ -9,6 +9,7 @@ import async_timeout
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_HOST, CONF_ID
from .const import DOMAIN
@@ -27,9 +28,9 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
if (
user_input is not None
and self.discovered_hubs is not None
and user_input["id"] in self.discovered_hubs
and user_input[CONF_ID] in self.discovered_hubs
):
return await self.async_create(self.discovered_hubs[user_input["id"]])
return await self.async_create(self.discovered_hubs[user_input[CONF_ID]])
# Already configured hosts
already_configured = {
@@ -55,7 +56,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
step_id="user",
data_schema=vol.Schema(
{
vol.Required("id"): vol.In(
vol.Required(CONF_ID): vol.In(
{hub.id: f"{hub.id} {hub.host}" for hub in hubs}
)
}
@@ -65,4 +66,4 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_create(self, hub):
"""Create the Acmeda Hub entry."""
await self.async_set_unique_id(hub.id, raise_on_progress=False)
return self.async_create_entry(title=hub.id, data={"host": hub.host})
return self.async_create_entry(title=hub.id, data={CONF_HOST: hub.host})
@@ -3,7 +3,7 @@
"name": "Rollease Acmeda Automate",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/acmeda",
"requirements": ["aiopulse==0.4.2"],
"requirements": ["aiopulse==0.4.3"],
"codeowners": ["@atmurray"],
"iot_class": "local_push"
}
@@ -0,0 +1,15 @@
{
"config": {
"abort": {
"no_devices_found": "\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u306b\u30c7\u30d0\u30a4\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093"
},
"step": {
"user": {
"data": {
"id": "\u30db\u30b9\u30c8ID"
},
"title": "\u8ffd\u52a0\u3059\u308b\u30cf\u30d6\u306e\u9078\u629e"
}
}
}
}
@@ -1,10 +1,14 @@
{
"config": {
"abort": {
"no_devices_found": "A\u011fda cihaz bulunamad\u0131"
},
"step": {
"user": {
"data": {
"id": "Ana bilgisayar kimli\u011fi"
}
},
"title": "Eklemek i\u00e7in bir merkez se\u00e7in"
}
}
}
@@ -71,8 +71,7 @@ class ActiontecDeviceScanner(DeviceScanner):
if not self.success_init:
return False
actiontec_data = self.get_actiontec_data()
if actiontec_data is None:
if (actiontec_data := self.get_actiontec_data()) is None:
return False
self.last_results = [
device for device in actiontec_data if device.timevalid > -60
+2 -1
View File
@@ -2,9 +2,10 @@
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
PLATFORMS = ["climate"]
PLATFORMS = [Platform.CLIMATE]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+1 -1
View File
@@ -4,7 +4,7 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/adax",
"requirements": [
"adax==0.1.1"
"adax==0.2.0"
],
"codeowners": [
"@danielhiversen"
@@ -4,7 +4,7 @@
"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",
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \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": {
@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_auth": "\u7121\u52b9\u306a\u8a8d\u8a3c"
},
"step": {
"user": {
"data": {
"account_id": "\u30a2\u30ab\u30a6\u30f3\u30c8ID",
"host": "\u30db\u30b9\u30c8",
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9"
}
}
}
}
}
@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Cihaz zaten yap\u0131land\u0131r\u0131lm\u0131\u015f"
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131",
"invalid_auth": "Ge\u00e7ersiz kimlik do\u011frulama"
},
"step": {
"user": {
"data": {
"account_id": "Hesap Kimli\u011fi",
"host": "Ana bilgisayar",
"password": "Parola"
}
}
}
}
}
+14 -3
View File
@@ -6,7 +6,7 @@ import logging
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
import voluptuous as vol
from homeassistant.config_entries import ConfigEntry
from homeassistant.config_entries import SOURCE_HASSIO, ConfigEntry
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
@@ -16,11 +16,13 @@ from homeassistant.const import (
CONF_URL,
CONF_USERNAME,
CONF_VERIFY_SSL,
Platform,
)
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo, Entity
from .const import (
@@ -45,7 +47,7 @@ SERVICE_REFRESH_SCHEMA = vol.Schema(
{vol.Optional(CONF_FORCE, default=False): cv.boolean}
)
PLATFORMS = ["sensor", "switch"]
PLATFORMS = [Platform.SENSOR, Platform.SWITCH]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@@ -196,8 +198,16 @@ class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
@property
def device_info(self) -> DeviceInfo:
"""Return device information about this AdGuard Home instance."""
if self._entry.source == SOURCE_HASSIO:
config_url = "homeassistant://hassio/ingress/a0d7b954_adguard"
else:
if self.adguard.tls:
config_url = f"https://{self.adguard.host}:{self.adguard.port}"
else:
config_url = f"http://{self.adguard.host}:{self.adguard.port}"
return DeviceInfo(
entry_type="service",
entry_type=DeviceEntryType.SERVICE,
identifiers={
(DOMAIN, self.adguard.host, self.adguard.port, self.adguard.base_path) # type: ignore
},
@@ -206,4 +216,5 @@ class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
sw_version=self.hass.data[DOMAIN][self._entry.entry_id].get(
DATA_ADGUARD_VERSION
),
configuration_url=config_url,
)
@@ -6,6 +6,7 @@ from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant.components.hassio import HassioServiceInfo
from homeassistant.config_entries import ConfigFlow
from homeassistant.const import (
CONF_HOST,
@@ -104,14 +105,14 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
},
)
async def async_step_hassio(self, discovery_info: dict[str, Any]) -> FlowResult:
async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> FlowResult:
"""Prepare configuration for a Hass.io AdGuard Home add-on.
This flow is triggered by the discovery component.
"""
await self._async_handle_discovery_without_unique_id()
self._hassio_discovery = discovery_info
self._hassio_discovery = discovery_info.config
return await self.async_step_hassio_confirm()
async def async_step_hassio_confirm(
@@ -0,0 +1,28 @@
{
"config": {
"abort": {
"already_configured": "\u30b5\u30fc\u30d3\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059",
"existing_instance_updated": "\u65e2\u5b58\u306e\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f"
},
"step": {
"hassio_confirm": {
"description": "\u30a2\u30c9\u30aa\u30f3 {addon} \u304c\u3001\u63d0\u4f9b\u3059\u308bAdGuard Home\u306b\u63a5\u7d9a\u3059\u308b\u3088\u3046\u306bHome Assistant\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u304b\uff1f",
"title": "Home Assistant\u30a2\u30c9\u30aa\u30f3\u7d4c\u7531\u306eAdGuard Home"
},
"user": {
"data": {
"host": "\u30db\u30b9\u30c8",
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9",
"port": "\u30dd\u30fc\u30c8",
"ssl": "SSL\u8a3c\u660e\u66f8\u3092\u4f7f\u7528\u3059\u308b",
"username": "\u30e6\u30fc\u30b6\u30fc\u540d",
"verify_ssl": "SSL\u8a3c\u660e\u66f8\u3092\u78ba\u8a8d\u3059\u308b"
},
"description": "\u76e3\u8996\u3068\u5236\u5fa1\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u3001AdGuardHome\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3092\u3057\u307e\u3059\u3002"
}
}
}
}
@@ -1,16 +1,27 @@
{
"config": {
"abort": {
"already_configured": "Hizmet zaten yap\u0131land\u0131r\u0131lm\u0131\u015f",
"existing_instance_updated": "Mevcut yap\u0131land\u0131rma g\u00fcncellendi."
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131"
},
"step": {
"hassio_confirm": {
"description": "{addon} taraf\u0131ndan sa\u011flanan AdGuard Home'a ba\u011flanmak i\u00e7in Home Assistant'\u0131 yap\u0131land\u0131rmak istiyor musunuz?",
"title": "Home Assistant eklentisi arac\u0131l\u0131\u011f\u0131yla AdGuard Home"
},
"user": {
"data": {
"host": "Ana Bilgisayar",
"host": "Ana bilgisayar",
"password": "Parola",
"port": "Port",
"username": "Kullan\u0131c\u0131 Ad\u0131"
}
"ssl": "SSL sertifikas\u0131 kullan\u0131r",
"username": "Kullan\u0131c\u0131 Ad\u0131",
"verify_ssl": "SSL sertifikas\u0131n\u0131 do\u011frulay\u0131n"
},
"description": "AdGuard Home \u00f6rne\u011finizi, izleme ve kontrole izin verecek \u015fekilde ayarlay\u0131n."
}
}
}
+1 -1
View File
@@ -307,7 +307,7 @@ class AdsEntity(Entity):
self._ads_hub.add_device_notification, ads_var, plctype, update
)
try:
with async_timeout.timeout(10):
async with async_timeout.timeout(10):
await self._event.wait()
except asyncio.TimeoutError:
_LOGGER.debug("Variable %s: Timeout during first update", ads_var)
@@ -5,14 +5,21 @@ import logging
from advantage_air import ApiError, advantage_air
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT, Platform
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
ADVANTAGE_AIR_SYNC_INTERVAL = 15
PLATFORMS = ["binary_sensor", "climate", "cover", "select", "sensor", "switch"]
PLATFORMS = [
Platform.BINARY_SENSOR,
Platform.CLIMATE,
Platform.COVER,
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
]
_LOGGER = logging.getLogger(__name__)
@@ -5,7 +5,7 @@ from homeassistant.components.binary_sensor import (
DEVICE_CLASS_PROBLEM,
BinarySensorEntity,
)
from homeassistant.const import ENTITY_CATEGORY_CONFIG, ENTITY_CATEGORY_DIAGNOSTIC
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
@@ -74,7 +74,7 @@ class AdvantageAirZoneMyZone(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Zone MyZone."""
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_CONFIG
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone MyZone."""
@@ -10,6 +10,7 @@ from homeassistant.components.climate.const import (
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_FAN_MODE,
SUPPORT_TARGET_TEMPERATURE,
@@ -53,7 +54,7 @@ HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()}
FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100}
ADVANTAGE_AIR_SERVICE_SET_MYZONE = "set_myzone"
ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_FAN_ONLY]
ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_HEAT_COOL]
PARALLEL_UPDATES = 0
@@ -169,7 +170,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
def hvac_mode(self):
"""Return the current state as HVAC mode."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return HVAC_MODE_FAN_ONLY
return HVAC_MODE_HEAT_COOL
return HVAC_MODE_OFF
@property
@@ -3,15 +3,10 @@ import voluptuous as vol
from homeassistant.components.sensor import (
DEVICE_CLASS_TEMPERATURE,
STATE_CLASS_MEASUREMENT,
SensorEntity,
SensorStateClass,
)
from homeassistant.const import (
ENTITY_CATEGORY_CONFIG,
ENTITY_CATEGORY_DIAGNOSTIC,
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
@@ -55,7 +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_CONFIG
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, action):
"""Initialize the Advantage Air timer control."""
@@ -89,7 +84,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, SensorEntity):
"""Representation of Advantage Air Zone Vent Sensor."""
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
@@ -119,7 +114,7 @@ class AdvantageAirZoneSignal(AdvantageAirEntity, SensorEntity):
"""Representation of Advantage Air Zone wireless signal sensor."""
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
@@ -154,7 +149,7 @@ class AdvantageAirZoneTemp(AdvantageAirEntity, SensorEntity):
_attr_native_unit_of_measurement = TEMP_CELSIUS
_attr_device_class = DEVICE_CLASS_TEMPERATURE
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f"
},
"step": {
"user": {
"data": {
"ip_address": "IP\u30a2\u30c9\u30ec\u30b9",
"port": "\u30dd\u30fc\u30c8"
},
"description": "Advantage Air wall mounted tablet\u306eAPI\u306b\u63a5\u7d9a\u3057\u307e\u3059\u3002",
"title": "\u63a5\u7d9a"
}
}
}
}
@@ -9,9 +9,10 @@
"step": {
"user": {
"data": {
"ip_address": "\u0130p Adresi",
"ip_address": "IP Adresi",
"port": "Port"
},
"description": "Advantage Air duvara monte tabletinizin API'sine ba\u011flan\u0131n.",
"title": "Ba\u011flan"
}
}
+12 -14
View File
@@ -1,10 +1,7 @@
"""Constant values for the AEMET OpenData component."""
from __future__ import annotations
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntityDescription,
)
from homeassistant.components.sensor import SensorEntityDescription, SensorStateClass
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -36,11 +33,12 @@ from homeassistant.const import (
PRESSURE_HPA,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
Platform,
)
ATTRIBUTION = "Powered by AEMET OpenData"
CONF_STATION_UPDATES = "station_updates"
PLATFORMS = ["sensor", "weather"]
PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
DEFAULT_NAME = "AEMET"
DOMAIN = "aemet"
ENTRY_NAME = "name"
@@ -255,14 +253,14 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
name="Humidity",
native_unit_of_measurement=PERCENTAGE,
device_class=DEVICE_CLASS_HUMIDITY,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_PRESSURE,
name="Pressure",
native_unit_of_measurement=PRESSURE_HPA,
device_class=DEVICE_CLASS_PRESSURE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_RAIN,
@@ -273,7 +271,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_RAIN_PROB,
name="Rain probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_SNOW,
@@ -284,7 +282,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_SNOW_PROB,
name="Snow probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_STATION_ID,
@@ -303,21 +301,21 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_STORM_PROB,
name="Storm probability",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_TEMPERATURE,
name="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
device_class=DEVICE_CLASS_TEMPERATURE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.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,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_TOWN_ID,
@@ -336,7 +334,7 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
key=ATTR_API_WIND_BEARING,
name="Wind bearing",
native_unit_of_measurement=DEGREE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=ATTR_API_WIND_MAX_SPEED,
@@ -347,7 +345,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,
state_class=SensorStateClass.MEASUREMENT,
),
)
@@ -0,0 +1,14 @@
{
"config": {
"error": {
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447"
},
"step": {
"user": {
"data": {
"api_key": "API \u043a\u043b\u044e\u0447"
}
}
}
}
}
@@ -0,0 +1,31 @@
{
"config": {
"abort": {
"already_configured": "\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"invalid_api_key": "\u7121\u52b9\u306aAPI\u30ad\u30fc"
},
"step": {
"user": {
"data": {
"api_key": "API\u30ad\u30fc",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d4c\u5ea6",
"name": "\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u540d\u524d"
},
"description": "AEMET OpenData\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u307e\u3059\u3002 API\u30ad\u30fc\u3092\u751f\u6210\u3059\u308b\u306b\u306f\u3001https://opendata.aemet.es/centrodedescargas/altaUsuario \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u3060\u3055\u3044",
"title": "AEMET OpenData"
}
}
},
"options": {
"step": {
"init": {
"data": {
"station_updates": "AEMET weather station\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53ce\u96c6\u3059\u308b"
}
}
}
}
}
@@ -14,7 +14,7 @@
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 Home Assistant \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 AEMET OpenData. \u0427\u0442\u043e\u0431\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 https://opendata.aemet.es/centrodedescargas/altaUsuario.",
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Home Assistant \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 AEMET OpenData. \u0427\u0442\u043e\u0431\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 https://opendata.aemet.es/centrodedescargas/altaUsuario.",
"title": "AEMET OpenData"
}
}
@@ -0,0 +1,31 @@
{
"config": {
"abort": {
"already_configured": "Konum zaten yap\u0131land\u0131r\u0131lm\u0131\u015f"
},
"error": {
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131"
},
"step": {
"user": {
"data": {
"api_key": "API Anahtar\u0131",
"latitude": "Enlem",
"longitude": "Boylam",
"name": "Entegrasyonun ad\u0131"
},
"description": "AEMET OpenData entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://opendata.aemet.es/centrodedescargas/altaUsuario adresine gidin.",
"title": "AEMET OpenData"
}
}
},
"options": {
"step": {
"init": {
"data": {
"station_updates": "AEMET hava istasyonlar\u0131ndan veri toplay\u0131n"
}
}
}
}
}
@@ -140,7 +140,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
async def _async_update_data(self):
data = {}
with async_timeout.timeout(120):
async with async_timeout.timeout(120):
weather_response = await self._get_aemet_weather()
data = self._convert_weather_response(weather_response)
return data
@@ -398,8 +398,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
return None
def _convert_forecast_day(self, date, day):
condition = self._get_condition_day(day)
if not condition:
if not (condition := self._get_condition_day(day)):
return None
return {
@@ -415,8 +414,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
}
def _convert_forecast_hour(self, date, day, hour):
condition = self._get_condition(day, hour)
if not condition:
if not (condition := self._get_condition(day, hour)):
return None
forecast_dt = date.replace(hour=hour, minute=0, second=0)
@@ -435,13 +433,8 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
def _calc_precipitation(self, day, hour):
"""Calculate the precipitation."""
rain_value = self._get_rain(day, hour)
if not rain_value:
rain_value = 0
snow_value = self._get_snow(day, hour)
if not snow_value:
snow_value = 0
rain_value = self._get_rain(day, hour) or 0
snow_value = self._get_snow(day, hour) or 0
if round(rain_value + snow_value, 1) == 0:
return None
@@ -449,13 +442,8 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
def _calc_precipitation_prob(self, day, hour):
"""Calculate the precipitation probability (hour)."""
rain_value = self._get_rain_prob(day, hour)
if not rain_value:
rain_value = 0
snow_value = self._get_snow_prob(day, hour)
if not snow_value:
snow_value = 0
rain_value = self._get_rain_prob(day, hour) or 0
snow_value = self._get_snow_prob(day, hour) or 0
if rain_value == 0 and snow_value == 0:
return None
@@ -3,6 +3,7 @@
from agent import AgentError
from agent.a import Agent
from homeassistant.const import Platform
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@@ -12,7 +13,7 @@ from .const import CONNECTION, DOMAIN as AGENT_DOMAIN, SERVER_URL
ATTRIBUTION = "ispyconnect.com"
DEFAULT_BRAND = "Agent DVR by ispyconnect.com"
FORWARDS = ["alarm_control_panel", "camera"]
PLATFORMS = [Platform.ALARM_CONTROL_PANEL, Platform.CAMERA]
async def async_setup_entry(hass, config_entry):
@@ -35,7 +36,7 @@ async def async_setup_entry(hass, config_entry):
hass.data[AGENT_DOMAIN][config_entry.entry_id] = {CONNECTION: agent_client}
device_registry = await dr.async_get_registry(hass)
device_registry = dr.async_get(hass)
device_registry.async_get_or_create(
config_entry_id=config_entry.entry_id,
@@ -46,14 +47,16 @@ async def async_setup_entry(hass, config_entry):
sw_version=agent_client.version,
)
hass.config_entries.async_setup_platforms(config_entry, FORWARDS)
hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
return True
async def async_unload_entry(hass, config_entry):
"""Unload a config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(config_entry, FORWARDS)
unload_ok = await hass.config_entries.async_unload_platforms(
config_entry, PLATFORMS
)
await hass.data[AGENT_DOMAIN][config_entry.entry_id][CONNECTION].close()
@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"already_in_progress": "\u69cb\u6210\u30d5\u30ed\u30fc\u306f\u3059\u3067\u306b\u9032\u884c\u4e2d\u3067\u3059",
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f"
},
"step": {
"user": {
"data": {
"host": "\u30db\u30b9\u30c8",
"port": "\u30dd\u30fc\u30c8"
},
"title": "Agent DVR\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7"
}
}
}
}
@@ -10,7 +10,7 @@
"step": {
"user": {
"data": {
"host": "Ana Bilgisayar",
"host": "Ana bilgisayar",
"port": "Port"
},
"title": "Agent DVR'\u0131 kurun"
@@ -137,8 +137,7 @@ class AirQualityEntity(Entity):
data: dict[str, str | int | float] = {}
for prop, attr in PROP_TO_ATTR.items():
value = getattr(self, prop)
if value is not None:
if (value := getattr(self, prop)) is not None:
data[attr] = value
return data
+3 -3
View File
@@ -13,7 +13,7 @@ import async_timeout
from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@@ -33,7 +33,7 @@ from .const import (
NO_AIRLY_SENSORS,
)
PLATFORMS = ["sensor"]
PLATFORMS = [Platform.SENSOR]
_LOGGER = logging.getLogger(__name__)
@@ -167,7 +167,7 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator):
measurements = self.airly.create_measurements_session_point(
self.latitude, self.longitude
)
with async_timeout.timeout(20):
async with async_timeout.timeout(20):
try:
await measurements.update()
except (AirlyError, ClientConnectorError) as error:
@@ -103,7 +103,7 @@ async def test_location(
measurements = airly.create_measurements_session_point(
latitude=latitude, longitude=longitude
)
with async_timeout.timeout(10):
async with async_timeout.timeout(10):
await measurements.update()
current = measurements.current
+1
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}"
+6 -1
View File
@@ -27,6 +27,7 @@ from homeassistant.const import (
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
@@ -55,6 +56,7 @@ from .const import (
MANUFACTURER,
SUFFIX_LIMIT,
SUFFIX_PERCENT,
URL,
)
PARALLEL_UPDATES = 1
@@ -153,10 +155,13 @@ class AirlySensor(CoordinatorEntity, SensorEntity):
"""Initialize."""
super().__init__(coordinator)
self._attr_device_info = DeviceInfo(
entry_type="service",
entry_type=DeviceEntryType.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 = (
@@ -1,6 +1,10 @@
{
"config": {
"abort": {
"already_configured": "\u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447",
"wrong_location": "\u0412 \u0442\u0430\u0437\u0438 \u043e\u0431\u043b\u0430\u0441\u0442 \u043d\u044f\u043c\u0430 \u0438\u0437\u043c\u0435\u0440\u0432\u0430\u0442\u0435\u043b\u043d\u0438 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043d\u0430 Airly."
},
"step": {
@@ -0,0 +1,30 @@
{
"config": {
"abort": {
"already_configured": "\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"invalid_api_key": "\u7121\u52b9\u306aAPI\u30ad\u30fc",
"wrong_location": "\u3053\u306e\u30a8\u30ea\u30a2\u306b\u3001Airly\u306e\u6e2c\u5b9a\u30b9\u30c6\u30fc\u30b7\u30e7\u30f3\u306f\u3042\u308a\u307e\u305b\u3093\u3002"
},
"step": {
"user": {
"data": {
"api_key": "API\u30ad\u30fc",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d4c\u5ea6",
"name": "\u540d\u524d"
},
"description": "Airly\u306e\u7a7a\u6c17\u54c1\u8cea\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u307e\u3059\u3002 API\u30ad\u30fc\u3092\u751f\u6210\u3059\u308b\u306b\u306f\u3001https://developer.airly.eu/register \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u3060\u3055\u3044",
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Airly\u30b5\u30fc\u30d0\u30fc\u306b\u5230\u9054",
"requests_per_day": "1\u65e5\u3042\u305f\u308a\u306e\u8a31\u53ef\u3055\u308c\u305f\u30ea\u30af\u30a8\u30b9\u30c8",
"requests_remaining": "\u6b8b\u308a\u306e\u8a31\u53ef\u3055\u308c\u305f\u30ea\u30af\u30a8\u30b9\u30c8"
}
}
}
@@ -4,21 +4,27 @@
"already_configured": "Konum zaten yap\u0131land\u0131r\u0131lm\u0131\u015f"
},
"error": {
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131"
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131",
"wrong_location": "Bu b\u00f6lgede Airly \u00f6l\u00e7\u00fcm istasyonu yok."
},
"step": {
"user": {
"data": {
"api_key": "API Anahtar\u0131",
"latitude": "Enlem",
"longitude": "Boylam"
}
"longitude": "Boylam",
"name": "Ad"
},
"description": "Airly hava kalitesi entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://developer.airly.eu/register adresine gidin.",
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Airly sunucusuna eri\u015fin"
"can_reach_server": "Airly sunucusuna eri\u015fin",
"requests_per_day": "G\u00fcnl\u00fck izin verilen istek say\u0131s\u0131",
"requests_remaining": "Kalan izin verilen istekler"
}
}
}
+8 -2
View File
@@ -8,7 +8,13 @@ from pyairnow.conv import aqi_to_concentration
from pyairnow.errors import AirNowError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_RADIUS
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_RADIUS,
Platform,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -33,7 +39,7 @@ from .const import (
)
_LOGGER = logging.getLogger(__name__)
PLATFORMS = ["sensor"]
PLATFORMS = [Platform.SENSOR]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+2 -1
View File
@@ -86,7 +86,8 @@ class AirNowSensor(CoordinatorEntity, SensorEntity):
@property
def native_value(self):
"""Return the state."""
self._state = self.coordinator.data[self.entity_description.key]
self._state = self.coordinator.data.get(self.entity_description.key)
return self._state
@property
@@ -0,0 +1,26 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_auth": "\u7121\u52b9\u306a\u8a8d\u8a3c",
"invalid_location": "\u305d\u306e\u5834\u6240\u306b\u5bfe\u3059\u308b\u7d50\u679c\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
"unknown": "\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc"
},
"step": {
"user": {
"data": {
"api_key": "API\u30ad\u30fc",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d4c\u5ea6",
"radius": "\u30b9\u30c6\u30fc\u30b7\u30e7\u30f3\u534a\u5f84(\u30de\u30a4\u30eb; \u30aa\u30d7\u30b7\u30e7\u30f3)"
},
"description": "AirNow\u306e\u7a7a\u6c17\u54c1\u8cea\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u307e\u3059\u3002 API\u30ad\u30fc\u3092\u751f\u6210\u3059\u308b\u306b\u306f\u3001https://docs.airnowapi.org/account/request/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u3060\u3055\u3044",
"title": "AirNow"
}
}
},
"title": "AirNow"
}
@@ -17,6 +17,7 @@
"longitude": "Boylam",
"radius": "\u0130stasyon Yar\u0131\u00e7ap\u0131 (mil; iste\u011fe ba\u011fl\u0131)"
},
"description": "AirNow hava kalitesi entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://docs.airnowapi.org/account/request/ adresine gidin.",
"title": "AirNow"
}
}
@@ -7,6 +7,7 @@ import logging
from airthings import Airthings, AirthingsError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -15,7 +16,7 @@ from .const import CONF_ID, CONF_SECRET, DOMAIN
_LOGGER = logging.getLogger(__name__)
PLATFORMS: list[str] = ["sensor"]
PLATFORMS: list[Platform] = [Platform.SENSOR]
SCAN_INTERVAL = timedelta(minutes=6)
@@ -3,7 +3,7 @@
"name": "Airthings",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airthings",
"requirements": ["airthings_cloud==0.0.1"],
"requirements": ["airthings_cloud==0.1.0"],
"codeowners": [
"@danielhiversen"
],
+11 -18
View File
@@ -4,9 +4,10 @@ from __future__ import annotations
from airthings import AirthingsDevice
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
StateType,
)
from homeassistant.config_entries import ConfigEntry
@@ -14,14 +15,6 @@ 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,
@@ -46,32 +39,32 @@ SENSORS: dict[str, SensorEntityDescription] = {
),
"temp": SensorEntityDescription(
key="temp",
device_class=DEVICE_CLASS_TEMPERATURE,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
name="Temperature",
),
"humidity": SensorEntityDescription(
key="humidity",
device_class=DEVICE_CLASS_HUMIDITY,
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
name="Humidity",
),
"pressure": SensorEntityDescription(
key="pressure",
device_class=DEVICE_CLASS_PRESSURE,
device_class=SensorDeviceClass.PRESSURE,
native_unit_of_measurement=PRESSURE_MBAR,
name="Pressure",
),
"battery": SensorEntityDescription(
key="battery",
device_class=DEVICE_CLASS_BATTERY,
device_class=SensorDeviceClass.BATTERY,
native_unit_of_measurement=PERCENTAGE,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
name="Battery",
),
"co2": SensorEntityDescription(
key="co2",
device_class=DEVICE_CLASS_CO2,
device_class=SensorDeviceClass.CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
name="CO2",
),
@@ -96,7 +89,7 @@ SENSORS: dict[str, SensorEntityDescription] = {
"rssi": SensorEntityDescription(
key="rssi",
native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS,
device_class=DEVICE_CLASS_SIGNAL_STRENGTH,
device_class=SensorDeviceClass.SIGNAL_STRENGTH,
name="RSSI",
entity_registry_enabled_default=False,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
@@ -104,13 +97,13 @@ SENSORS: dict[str, SensorEntityDescription] = {
"pm1": SensorEntityDescription(
key="pm1",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
device_class=DEVICE_CLASS_PM1,
device_class=SensorDeviceClass.PM1,
name="PM1",
),
"pm25": SensorEntityDescription(
key="pm25",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
device_class=DEVICE_CLASS_PM25,
device_class=SensorDeviceClass.PM25,
name="PM25",
),
}
@@ -140,7 +133,7 @@ async def async_setup_entry(
class AirthingsHeaterEnergySensor(CoordinatorEntity, SensorEntity):
"""Representation of a Airthings Sensor device."""
_attr_state_class = STATE_CLASS_MEASUREMENT
_attr_state_class = SensorStateClass.MEASUREMENT
def __init__(
self,
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Akun sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung",
"invalid_auth": "Autentikasi tidak valid",
"unknown": "Kesalahan yang tidak diharapkan"
},
"step": {
"user": {
"data": {
"description": "Masuk di {url} untuk menemukan kredensial Anda",
"id": "ID",
"secret": "Kode Rahasia"
}
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_auth": "\u7121\u52b9\u306a\u8a8d\u8a3c",
"unknown": "\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc"
},
"step": {
"user": {
"data": {
"description": "{url} \u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3001\u8cc7\u683c\u60c5\u5831\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044",
"id": "ID",
"secret": "\u30b7\u30fc\u30af\u30ec\u30c3\u30c8"
}
}
}
}
}
@@ -11,6 +11,7 @@
"step": {
"user": {
"data": {
"description": "Zaloguj si\u0119 pod {url}, aby znale\u017a\u0107 swoje dane uwierzytelniaj\u0105ce",
"id": "ID",
"secret": "Sekret"
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Hesap zaten yap\u0131land\u0131r\u0131lm\u0131\u015f"
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131",
"invalid_auth": "Ge\u00e7ersiz kimlik do\u011frulama",
"unknown": "Beklenmeyen hata"
},
"step": {
"user": {
"data": {
"description": "Kimlik bilgilerinizi bulmak i\u00e7in {url} adresinden giri\u015f yap\u0131n",
"id": "ID",
"secret": "Gizli"
}
}
}
}
}
@@ -6,7 +6,7 @@ from airtouch4pyapi.airtouch import AirTouchStatus
from homeassistant.components.climate import SCAN_INTERVAL
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST
from homeassistant.const import CONF_HOST, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -15,7 +15,7 @@ from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
PLATFORMS = ["climate"]
PLATFORMS = [Platform.CLIMATE]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@@ -4,13 +4,15 @@
"already_configured": "Perangkat sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung"
"cannot_connect": "Gagal terhubung",
"no_units": "Tidak dapat menemukan Grup AirTouch 4 apa pun."
},
"step": {
"user": {
"data": {
"host": "Host"
}
},
"title": "Siapkan detail koneksi AirTouch 4 Anda."
}
}
}
@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"no_units": "AirTouch 4 Groups\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002"
},
"step": {
"user": {
"data": {
"host": "\u30db\u30b9\u30c8"
},
"title": "AirTouch 4\u63a5\u7d9a\u306e\u8a73\u7d30\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002"
}
}
}
}
@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Cihaz zaten yap\u0131land\u0131r\u0131lm\u0131\u015f"
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131",
"no_units": "Herhangi bir AirTouch 4 Grubu bulunamad\u0131."
},
"step": {
"user": {
"data": {
"host": "Ana bilgisayar"
},
"title": "AirTouch 4 ba\u011flant\u0131 ayr\u0131nt\u0131lar\u0131n\u0131z\u0131 ayarlay\u0131n."
}
}
}
}
@@ -16,7 +16,6 @@ from pyairvisual.errors import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_ATTRIBUTION,
CONF_API_KEY,
CONF_IP_ADDRESS,
CONF_LATITUDE,
@@ -24,6 +23,7 @@ from homeassistant.const import (
CONF_PASSWORD,
CONF_SHOW_ON_MAP,
CONF_STATE,
Platform,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryAuthFailed
@@ -52,7 +52,7 @@ from .const import (
LOGGER,
)
PLATFORMS = ["sensor"]
PLATFORMS = [Platform.SENSOR]
DEFAULT_ATTRIBUTION = "Data provided by AirVisual"
DEFAULT_NODE_PRO_UPDATE_INTERVAL = timedelta(minutes=1)
@@ -105,9 +105,10 @@ def async_get_cloud_coordinators_by_api_key(
) -> list[DataUpdateCoordinator]:
"""Get all DataUpdateCoordinator objects related to a particular API key."""
return [
attrs[DATA_COORDINATOR]
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
]
@@ -190,9 +191,6 @@ def _standardize_node_pro_config_entry(hass: HomeAssistant, entry: ConfigEntry)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up AirVisual as config entry."""
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = {}
if CONF_API_KEY in entry.data:
_standardize_geography_config_entry(hass, entry)
@@ -271,7 +269,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
)
await coordinator.async_config_entry_first_refresh()
hass.data[DOMAIN][entry.entry_id][DATA_COORDINATOR] = coordinator
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = {DATA_COORDINATOR: coordinator}
# Reassess the interval between 2 server requests
if CONF_API_KEY in entry.data:
@@ -355,7 +354,7 @@ class AirVisualEntity(CoordinatorEntity):
"""Initialize."""
super().__init__(coordinator)
self._attr_extra_state_attributes = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}
self._attr_extra_state_attributes = {}
self._entry = entry
self.entity_description = description
@@ -91,6 +91,7 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
self, user_input: dict[str, str], integration_type: str
) -> FlowResult:
"""Validate a Cloud API key."""
errors = {}
websession = aiohttp_client.async_get_clientsession(self.hass)
cloud_api = CloudAPI(user_input[CONF_API_KEY], session=websession)
@@ -117,30 +118,26 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
try:
await coro
except InvalidKeyError:
return self.async_show_form(
step_id=error_step,
data_schema=error_schema,
errors={CONF_API_KEY: "invalid_api_key"},
)
errors[CONF_API_KEY] = "invalid_api_key"
except NotFoundError:
return self.async_show_form(
step_id=error_step,
data_schema=error_schema,
errors={CONF_CITY: "location_not_found"},
)
errors[CONF_CITY] = "location_not_found"
except AirVisualError as err:
LOGGER.error(err)
return self.async_show_form(
step_id=error_step,
data_schema=error_schema,
errors={"base": "unknown"},
)
errors["base"] = "unknown"
valid_keys.add(user_input[CONF_API_KEY])
if errors:
return self.async_show_form(
step_id=error_step, data_schema=error_schema, errors=errors
)
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 +234,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]
+9 -9
View File
@@ -2,9 +2,9 @@
from __future__ import annotations
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@@ -81,7 +81,7 @@ GEOGRAPHY_SENSOR_DESCRIPTIONS = (
name="Air Quality Index",
device_class=DEVICE_CLASS_AQI,
native_unit_of_measurement="AQI",
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_POLLUTANT,
@@ -98,7 +98,7 @@ NODE_PRO_SENSOR_DESCRIPTIONS = (
name="Air Quality Index",
device_class=DEVICE_CLASS_AQI,
native_unit_of_measurement="AQI",
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_BATTERY_LEVEL,
@@ -112,7 +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,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_HUMIDITY,
@@ -125,35 +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,
state_class=SensorStateClass.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,
state_class=SensorStateClass.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,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=SENSOR_KIND_TEMPERATURE,
name="Temperature",
device_class=DEVICE_CLASS_TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.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,
state_class=SensorStateClass.MEASUREMENT,
),
)
@@ -9,8 +9,14 @@
"invalid_api_key": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447"
},
"step": {
"geography_by_coords": {
"data": {
"api_key": "API \u043a\u043b\u044e\u0447"
}
},
"geography_by_name": {
"data": {
"api_key": "API \u043a\u043b\u044e\u0447",
"city": "\u0413\u0440\u0430\u0434",
"country": "\u0421\u0442\u0440\u0430\u043d\u0430"
}
@@ -0,0 +1,63 @@
{
"config": {
"abort": {
"already_configured": "\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u306f\u3001Node/Pro ID\u306f\u65e2\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\u3002",
"reauth_successful": "\u518d\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u307e\u3057\u305f"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"general_error": "\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc",
"invalid_api_key": "\u7121\u52b9\u306aAPI\u30ad\u30fc",
"location_not_found": "\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093"
},
"step": {
"geography_by_coords": {
"data": {
"api_key": "API\u30ad\u30fc",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d4c\u5ea6"
},
"description": "AirVisual cloud API\u3092\u4f7f\u7528\u3057\u3066\u3001\u7def\u5ea6/\u7d4c\u5ea6\u3092\u76e3\u8996\u3057\u307e\u3059\u3002",
"title": "Geography\u306e\u8a2d\u5b9a"
},
"geography_by_name": {
"data": {
"api_key": "API\u30ad\u30fc",
"city": "\u90fd\u5e02",
"country": "\u56fd",
"state": "\u5dde"
},
"description": "AirVisual cloud API\u3092\u4f7f\u7528\u3057\u3066\u3001\u90fd\u5e02/\u5dde/\u56fd\u3092\u76e3\u8996\u3057\u307e\u3059\u3002",
"title": "Geography\u306e\u8a2d\u5b9a"
},
"node_pro": {
"data": {
"ip_address": "\u30db\u30b9\u30c8",
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9"
},
"description": "\u500b\u4eba\u306eAirVisual\u30e6\u30cb\u30c3\u30c8\u3092\u76e3\u8996\u3057\u307e\u3059\u3002\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u3001\u672c\u4f53\u306eUI\u304b\u3089\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002",
"title": "AirVisual Node/Pro\u306e\u8a2d\u5b9a"
},
"reauth_confirm": {
"data": {
"api_key": "API\u30ad\u30fc"
},
"title": "AirVisual\u3092\u518d\u8a8d\u8a3c"
},
"user": {
"description": "\u76e3\u8996\u3057\u305f\u3044\u3001AirVisual\u306e\u30c7\u30fc\u30bf\u306e\u7a2e\u985e\u3092\u9078\u629e\u3057\u307e\u3059\u3002",
"title": "AirVisual\u306e\u8a2d\u5b9a"
}
}
},
"options": {
"step": {
"init": {
"data": {
"show_on_map": "\u76e3\u8996\u5bfe\u8c61\u306e\u5730\u7406\u3092\u5730\u56f3\u306b\u8868\u793a"
},
"title": "AirVisual\u306e\u8a2d\u5b9a"
}
}
}
}

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