Compare commits

...

2475 Commits

Author SHA1 Message Date
Franck Nijhof 8b54d958f3 Bumped version to 2021.7.0b1 2021-07-02 17:58:59 +02:00
Erik Montnemery 730c8cbcc4 Correct recorder table arguments (#52436) 2021-07-02 17:57:38 +02:00
Erik Montnemery 729f3dc6b8 Avoid duplicated database queries when fetching statistics (#52433) 2021-07-02 17:57:34 +02:00
Milan Meulemans d04b0978df Fix typo in forecast_solar strings (#52430) 2021-07-02 17:57:29 +02:00
Franck Nijhof 66680e44e4 Upgrade aioimaplib to 0.9.0 (#52422) 2021-07-02 17:57:25 +02:00
Erik Montnemery 94638d316f Drop statistic_id and source columns from statistics table (#52417)
* Drop statistic_id and source columns from statistics table

* Remove useless double drop of statistics table

* Update homeassistant/components/recorder/models.py

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

* black

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-07-02 17:57:21 +02:00
J. Nick Koston e4a7347e7d Import track_new_devices and scan_interval from yaml for nmap_tracker (#52409)
* Import track_new_devices and scan_interval from yaml for nmap_tracker

* Import track_new_devices and scan_interval from yaml for nmap_tracker

* Import track_new_devices and scan_interval from yaml for nmap_tracker

* tests

* translate

* tweak

* adjust

* save indent

* pylint

* There are two CONF_SCAN_INTERVAL constants

* adjust name -- there are TWO CONF_SCAN_INTERVAL constants

* remove CONF_SCAN_INTERVAL/CONF_TRACK_NEW from user flow

* assert it does not appear in the user step
2021-07-02 17:57:17 +02:00
Raman Gupta e2e72851d7 Bump eight sleep dependency to fix bug (#52408) 2021-07-02 17:57:13 +02:00
Franck Nijhof e8ed497950 Upgrade wled to 0.7.1 (#52405) 2021-07-02 17:57:08 +02:00
Tom Brien 527af96ad9 Add update listener to Coinbase (#52404)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-07-02 17:57:05 +02:00
René Klomp 61bc95d704 Bump pysma to 0.6.1 (#52401) 2021-07-02 17:57:01 +02:00
Erik Montnemery 4959561bde Fix sensor statistics collection with empty states (#52393) 2021-07-02 17:56:57 +02:00
Erik Montnemery eea544d2d2 Fix MQTT cover optimistic mode (#52392)
* Fix MQTT cover optimistic mode

* Add test
2021-07-02 17:56:53 +02:00
Joakim Plate b8b0bc9392 Reject trusted network access from proxies (#52388) 2021-07-02 17:56:48 +02:00
Erik Montnemery 3dcad64d53 Improve sensor statistics tests (#52386) 2021-07-02 17:56:44 +02:00
Aaron Bach 5cc878fc79 Fix missing default latitude/longitude/elevation in OpenUV config flow (#52380) 2021-07-02 17:56:40 +02:00
Alexei Chetroi 8de7312c92 Bump up ZHA dependencies (#52374)
* Bump up ZHA dependencies

* Fix broken tests

* Update tests/components/zha/common.py

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

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-07-02 17:56:36 +02:00
Tobias Sauerwein c783ef49c7 Bump pyatmo to v5.2.0 (#52365)
* Bump pyatmo to v5.2.0

* Revert formatting changes
2021-07-02 17:56:32 +02:00
Frederik Bolding 6d346a59c2 Bump bt_proximity (#52364) 2021-07-02 17:56:28 +02:00
J. Nick Koston 96998aafe3 Update homekit_controller to use async zeroconf (#52330) 2021-07-02 17:56:24 +02:00
Bruce Sheplan b565dcf3b0 Add screenlogic reconnect (#52022)
Co-authored-by: Kevin Worrel <37058192+dieselrabbit@users.noreply.github.com>
2021-07-02 17:56:20 +02:00
Franck Nijhof 355e557c24 Bumped version to 2021.7.0b0 2021-06-30 16:55:41 +02:00
Erik Montnemery d450cda385 Report target unit in statistics meta data (#52341) 2021-06-30 16:53:51 +02:00
Matthias Alphart 9ed93de472 xknx 0.18.8 (#52340) 2021-06-30 15:06:33 +02:00
Erik Montnemery 9d0c4c168e Convert units when fetching statistics (#52338) 2021-06-30 14:53:42 +02:00
jan iversen c0751c060f review comments. (#52337) 2021-06-30 14:34:33 +02:00
Erik Montnemery 0476c7f9ee Normalize temperature statistics to °C (#52297)
* Normalize temperature statistics to °C

* Fix tests

* Support temperature conversion to and from K, improve tests

* Fix test

* Add tests, pylint
2021-06-30 14:17:58 +02:00
Bram Kragten 508f9a8296 Update frontend to 20210630.0 (#52336) 2021-06-30 13:34:28 +02:00
Erik Montnemery 0ab999738b Add statistics meta data table (#52331)
* Add statistics meta data table

* Tweak meta data generation
2021-06-30 13:32:17 +02:00
stefano055415 d8337cf98f Add Freedompro (#46332)
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-30 13:21:06 +02:00
Tom Schneider dc407fe7a1 Fix MusicCast subwoofers (#52335) 2021-06-30 13:09:57 +02:00
mlemainque a7ece4ecaa Fix Daikin integration power sensors (#51905) 2021-06-30 12:01:08 +02:00
Brian Towles 3e4dacb885 Add Modern Forms binary sensor platform (#52312)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-30 11:56:02 +02:00
Aaron Bach 3902f0bdd4 Speed up lookup of AirVisual pollutant labels, levels, and units (#52327)
* Speed up lookup of AirVisual pollutant levels, labels, and units

* Mispellings
2021-06-30 11:33:50 +02:00
Anaïs Betts da9bb99ba8 Create service to enable Continuous Mode on Nuki Opener (#51861) 2021-06-30 08:43:02 +02:00
Carlos Gomes f2906d0fca Add quantiles to Statistics integration (#52189)
* Add quantiles as another Statistics attribute

Quantiles divide states into intervals of equal probability. The
statistics.quantiles() function was added in Python 3.8 and can now
be included in the Statistics integration without new dependencies.

Quantiles can be used in conjunction with other distribution metrics to
create box plots (quartiles) and other graphical resources for
visualizing the distribution of states.

* Add quantiles reference to basic tests
2021-06-30 08:31:33 +02:00
J. Nick Koston 9f16e390f5 Deprecate IPv6 zeroconf setting in favor of the network integration (#51173) 2021-06-29 17:13:31 -10:00
Fredrik Erlandsson 3c20f2dd42 Fix point ConnectionTimeout during startup (#52322) 2021-06-29 21:10:25 -04:00
GitHub Action 5baaede85b [ci skip] Translation update 2021-06-30 00:11:18 +00:00
Daniel Hjelseth Høyer 04d8f88269 Fix Mill consumption data (#52320)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-30 01:31:56 +02:00
Otto Winter f772eab7b7 ESPHome delete store data when unloading entry (#52296) 2021-06-29 15:06:24 -07:00
Erik Montnemery cca5964ac0 Normalize pressure statistics to Pa (#52298) 2021-06-29 23:30:13 +02:00
J. Nick Koston 2eebfe6ff3 Fix esphome startup with missing api_version key (#52324) 2021-06-29 22:50:29 +02:00
Heine Furubotten 56d1bf255b Bump enturclient to v0.2.2 (#52321) 2021-06-29 16:34:09 -04:00
Franck Nijhof 7c39092aa8 Upgrade nmap tracker with forked package for compatibility (#52300)
* Upgrade nmap tracker with forked package for compatibility

* Bump to 0.7.0.2

* Bump cache version
2021-06-29 21:50:25 +02:00
Aaron Bach ddef5d2314 Refactor Tile entity unique ID migration to use helper (#52315)
* Refactor Tile entity unique ID migration to use helper

* Clarify

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-29 21:15:56 +02:00
Pascal Vizeli 853ca331e4 Stop build wheels for python38 (#52309) 2021-06-29 20:33:38 +02:00
Franck Nijhof aac0180abf Disable import of disabled eebrightbox in tests (#52314) 2021-06-29 19:59:25 +02:00
Aaron Bach 935f4d16a9 Fix small inconsistencies in RainMachine vegetation and sprinkler types (#52313) 2021-06-29 13:57:28 -04:00
Otto Winter b43d0877e7 ESPHome Migrate to dataclasses (#52305) 2021-06-29 19:53:57 +02:00
Daniel Hjelseth Høyer ba7ad8a58f Add Melcloud device class and state class (#52276) 2021-06-29 19:16:43 +02:00
Koen Kanters 2576dd9da9 Fix Todoist incorrect end date when task has no time (#52258) 2021-06-29 10:15:50 -07:00
Teemu R 6afa4d6914 Skip updating tplink bulb state if the new state not reported by the device (#52310) 2021-06-29 19:14:34 +02:00
Simone Chemelli 7959225fef Add switch platform to Fritz (#51610)
* Add switch platform to Fritz

* Fix tests

* Pylint

* Small fix

* Bump fritzprofiles to fix log level and identifier

* Fix different WiFi networks with same name

* Changed exposed attributes

* Moved to extra_state

* Remove redundant lambda

* Add missing wait

* Removed identifiers

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Add mapping dict

* Device Profile disabled by default

* Heavy cleanup

* Tweak

* Bug fix

* Update homeassistant/components/fritz/switch.py

Co-authored-by: Aaron David Schneider <aaron.schneider@nbi.ku.dk>

* Fix port forward switching + small log improvement

* Cleanup from old approach

* Handle port mapping hot removal (from device)

* Minor fixes

* Typying

* Removed lambda call

* Last missing strict typing

* Split get entities

* Func rename

* Move FritzBoxBaseSwitch to switch.py

* Removed lambda

* Update homeassistant/components/fritz/common.py

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

* Update homeassistant/components/fritz/common.py

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

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Fixes after applying comments

* Remvoed redundant try block

* Removed broad-except

* Optimized async/sync switch

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Address remaining comments

* Optimize return list

* More optimization for return lists

* Some missing strict typing

* Redundant typing

* Update homeassistant/components/fritz/switch.py

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

* Wrong if

* Introduce const for profile status

* Update homeassistant/components/fritz/switch.py

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

* Update homeassistant/components/fritz/switch.py

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

* Fix mypy

* Switch back to get_local_ip()

* Address latest comments

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Aaron David Schneider <aaron.schneider@nbi.ku.dk>
2021-06-29 11:57:34 -04:00
Tom Brien 897f5d9247 Coinbase code quality improvements from review (#52307)
* Fix breaking loop if single bad currency

* Remove unneeded update

* Reduce executor calls and use helper

* Avoid setting up integration when not needed in test

* Remove defunct info from strings

* Move already configured check

* Move instance update out of data class init
2021-06-29 11:54:38 -04:00
Franck Nijhof b11af5e6f8 Fix Garmin Connect sensor dependency import (#52306) 2021-06-29 16:39:25 +02:00
Erik Montnemery 8a00c3a2f5 Implement color_mode support for kulersky (#52080) 2021-06-29 16:31:29 +02:00
Franck Nijhof f1b40b683d Disable dependency checks and tests for disabled EE Brightbox integration (#52304) 2021-06-29 16:09:42 +02:00
Joakim Sørensen 720a67957b Bump hass-nabucasa to 0.44.0 (#52303) 2021-06-29 16:04:21 +02:00
Franck Nijhof d3210ada1d Allow None value return type for Number entity state value (#52302) 2021-06-29 15:07:31 +02:00
Erik Montnemery 6131ed09f0 Compile statistics for power sensors (#52299) 2021-06-29 14:48:08 +02:00
Jesse Hills e1797ea670 Add number entities to ESPHome (#52241)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-29 14:33:04 +02:00
Adrián Moreno a639cb7ba7 Add sensor platform to Meteoclimatic integration (#51467)
* Add meteoclimatic sensor platform

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Add sensor.py to coverage file

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Add explicit return type None

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Fix sample station code

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Apply frenck suggestions

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Remove extra attributes

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Revert translations

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>

* Remove None icons and classes

Signed-off-by: Adrian Moreno <adrian@morenomartinez.com>
2021-06-29 13:52:39 +02:00
Franck Nijhof 198b664409 Merge branch 'master' into dev 2021-06-29 13:46:39 +02:00
Franck Nijhof 3311b1bafb Small clean up for Motion Blinds (#52281) 2021-06-29 14:08:19 +03:00
Erik Montnemery c785db4ffa Normalize energy statistics to kWh (#52238) 2021-06-29 12:20:10 +02:00
Erik Montnemery b77f2b9e12 Filter MQTT camera JSON attributes (#52279)
* Filter MQTT camera JSON attributes

* Add missing attribute to blocked list
2021-06-29 12:14:02 +02:00
Erik Montnemery 39a064683a Filter MQTT cover JSON attributes (#52282) 2021-06-29 11:59:23 +02:00
Erik Montnemery 30a9198d97 Add test to MQTT device tracker (#52292) 2021-06-29 11:33:26 +02:00
Franck Nijhof 8a82557142 Demo: Remote improvements (#52265)
* Demo: Remote improvements

* Address pylint warning
2021-06-29 11:32:46 +02:00
Erik Montnemery a7dd7c1a3d Filter MQTT select JSON attributes (#52288) 2021-06-29 11:22:58 +02:00
Erik Montnemery 74e61ab7f7 Filter MQTT switch JSON attributes (#52290) 2021-06-29 11:22:25 +02:00
Erik Montnemery de4cfb0ce2 Filter MQTT vacuum JSON attributes (#52291) 2021-06-29 11:21:22 +02:00
Erik Montnemery 61f7f5c96a Filter MQTT sensor JSON attributes (#52289) 2021-06-29 11:19:40 +02:00
Erik Montnemery e0f7987544 Filter MQTT fan JSON attributes (#52283) 2021-06-29 11:18:50 +02:00
Erik Montnemery 71a0e474cc Filter MQTT number JSON attributes (#52286) 2021-06-29 11:16:57 +02:00
Erik Montnemery 3b89fcfe83 Filter MQTT lock JSON attributes (#52285) 2021-06-29 11:16:07 +02:00
Jc2k 7de3e7d1dd Support setting hvac_mode and temp in same homekit_controller set_temperature service call (#52195)
* Support setting hvac_mode and temp in same set_temperature service call

* Update homeassistant/components/homekit_controller/climate.py

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

* Update homeassistant/components/homekit_controller/climate.py

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-29 11:14:28 +02:00
Erik Montnemery 040c88f982 Filter MQTT climate JSON attributes (#52280) 2021-06-29 11:13:58 +02:00
Erik Montnemery 91b4f7d1d5 Filter MQTT alarm JSON attributes (#52278) 2021-06-29 10:32:23 +02:00
Aaron Bach dee3e14df2 Fix values of RainMachine Freeze Protection and Hot Days binary sensors (#52275)
* Fix values of RainMachine Freeze Protection and Hot Days binary sensors

* Correct place

* Fix
2021-06-29 10:21:33 +02:00
Aaron Bach 04300464da Update RainMachine sprinkler and vegetation types (#52274) 2021-06-29 10:20:11 +02:00
Aaron Bach 5e18b5c189 Fix bug in detecting RainMachine zone soil type (#52273)
* Fix bug in detecting RainMachine zone soil type

* Simplify
2021-06-29 10:09:38 +02:00
Brian Towles 3ab42c50c9 Add sensor platform to Modern Forms integration (#52249)
* Add sensor platform to Modern Forms integration

* Changes to sensors to timestamp class

* lint cleanup
2021-06-29 10:05:39 +02:00
Chris Talkington 6a528acafe Use attrs instead of properties for ipp (#52270)
* use attrs instead of properties for ipp

* Update __init__.py

* Create entity.py

* Update __init__.py

* Create coordinator.py

* Update coordinator.py

* Update __init__.py

* Update entity.py

* Update sensor.py

* Update sensor.py

* Update __init__.py

* Update __init__.py

* Update coordinator.py

* Update entity.py

* Update entity.py

* Update entity.py

* Update sensor.py

* Update sensor.py
2021-06-29 10:02:49 +02:00
Xuefer 8c37dc5613 Clean up Onvif steps (#52254) 2021-06-29 09:30:56 +02:00
TOM 3f66709882 Fix caldav TZ interpretation of all day events (#48642) 2021-06-29 00:07:29 -07:00
Paulus Schoutsen bb4d3bfc60 Reduce Ring TTL (#52277) 2021-06-29 08:57:32 +02:00
Franck Nijhof 8dd545d060 Demo: Sensor improvements (#52263) 2021-06-28 23:39:40 -07:00
Franck Nijhof d37018cf87 Small tweaks to Rituals Perfume Genie (#52269) 2021-06-28 23:39:00 -07:00
Franck Nijhof 94a0259743 Add state class support to SAJ Solar Inverter (#52261) 2021-06-28 23:38:21 -07:00
Franck Nijhof a93487f389 Add state class support to SolarEdge (#52271) 2021-06-28 23:37:33 -07:00
jan iversen f1303e02ff Let climate use base_struct_schema. (#52154) 2021-06-28 22:21:31 -07:00
jan iversen 74e1600a84 Add fixture to handle mock restore state (#52198) 2021-06-28 22:21:04 -07:00
Daniel Hjelseth Høyer 1676bf220f Tibber, add device class monetary to accumulated cost (#52259)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-28 20:58:27 -07:00
GitHub Action 81ca5236bf [ci skip] Translation update 2021-06-29 00:25:47 +00:00
Aaron Bach a448b72ff9 Remove bachya as 17track.net codeowner (#52262)
* Remove bachya as 17track.net codeowner

* Cleanup
2021-06-28 17:41:02 -06:00
Raman Gupta d6fd7dde7f Bump zwave_js_server to 0.27.0 (#52267) 2021-06-28 18:49:40 -04:00
Milan Meulemans dc94a45832 Clean up Rituals Perfume Genie integration (#52266) 2021-06-29 00:44:13 +02:00
Marius 7ce4763784 change processor_temperature icon (#52256)
* change processor_temperature icon

to indicate the temperature, using "mdi:thermometer"

* add DEVICE_CLASS_TEMPERATURE,

* add None for icon

* remove Icon from Last boot

since it uses the device_class already
2021-06-29 00:39:21 +02:00
Jc2k 42c944ce56 Add secondary temperature sensors to homekit_controller (#52194) 2021-06-28 23:48:29 +02:00
ollo69 c6efdedd3c Add AsusWRT load average sensors (#52230) 2021-06-28 22:33:15 +02:00
Aaron Bach f538e07902 Update Tile unique ID to include username (#52175) 2021-06-28 21:36:18 +02:00
Farzad Noorian fbf85fd86b Add OAuth 2.0 Bearer Token authentication to send_file for telegram_bot (#46567) 2021-06-28 20:43:23 +02:00
Matthias Alphart d4211c4a66 Cleanup KNX supported_features for climate, cover and fan (#52218) 2021-06-28 20:22:44 +02:00
Tom Brien 9e50bd0b30 Only load requested coinbase accounts (#51981) 2021-06-28 20:21:04 +02:00
Milan Meulemans 6f41168616 Change DiffuserRoomSize number entity to select entity (#51993)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-28 20:20:32 +02:00
Tom Brien a1c741a46d Provide correct defaults for CoinBase options flow (#52255) 2021-06-28 20:14:11 +02:00
Andre Lengwenus f2fe6c26ab Add tests for LCN integration setup (#48070) 2021-06-28 18:08:09 +02:00
René Klomp 540d6e9fa5 Use pysma exceptions (#52252) 2021-06-28 16:59:17 +02:00
Xuefer 3a5ee00081 Merge onvif host/auth step, allow skipping scan (#49660) 2021-06-28 16:39:18 +02:00
Tom Brien fd1d110b80 Add config flow for Coinbase (#45354)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-28 16:38:12 +02:00
Joakim Sørensen efee36a176 Don't copy result to new list (#52248) 2021-06-28 15:54:23 +02:00
Erik Montnemery c86b563fe1 Bump hatasmota to 0.2.19 (#52246) 2021-06-28 15:49:25 +02:00
René Klomp 5e721b2566 Update SMA device info on setup (#51159)
* Update device info on setup

* Remove migration
2021-06-28 15:32:29 +02:00
Guido Schmitz 3027b848c1 Add reauth config flow to devolo Home Control (#49697) 2021-06-28 15:01:31 +02:00
Erik Montnemery 7a4f3fe7b8 Filter MQTT light JSON attributes (#52242) 2021-06-28 14:37:26 +02:00
Joakim Plate 24ba81c3a2 Update new effect before calculating color on Philips TV (#52072) 2021-06-28 14:01:29 +02:00
micha91 8133793f23 Yamaha musiccast grouping-services (#51952)
Co-authored-by: Tom Schneider <tom.schneider-github@sutomaji.net>
2021-06-28 13:57:01 +02:00
Joakim Sørensen 8255a2f6c8 Removal of stale add-on devices on startup (#52245) 2021-06-28 13:49:58 +02:00
Otto Winter 3e1d32f4e0 ESPHome Climate add preset, custom preset, custom fan mode (#52133)
* ESPHome Climate add preset, custom preset, custom fan mode

* Fix copy paste error

* Bump aioesphomeapi to 3.0.0

* Bump aioesphomeapi to 3.0.1

* Persist api version to prevent exception for offline devices
2021-06-28 13:43:45 +02:00
Michael Davie 594bcbcf7a Fix timezones in Environment Canada hourly forecasts (#51917) 2021-06-28 12:57:07 +02:00
billsq 90e9216e9a Add support for overriding SMTP recipient(s) in a service call (#47611) 2021-06-28 12:54:03 +02:00
J. Nick Koston 583626a74f Convert nmap_tracker to be a config flow (#50429) 2021-06-28 12:49:14 +02:00
Vilppu Vuorinen 4ba5a4f36e Fix unique_id generation for AtwZoneSensors (#51227) 2021-06-28 12:20:40 +02:00
J. Nick Koston ab24d16e00 Suppress duplicate mdns discovery from netdisco (#52099) 2021-06-28 11:46:56 +02:00
Fabian Zimmermann 3c0a24db50 Convert openweathermap dewpoint from kelvin to celcius (#51893)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-28 11:35:33 +02:00
Shay Levy ab73ce00a0 Change "Not adding entity" log level to debug (#52240) 2021-06-28 11:22:10 +02:00
Brett 486e94e6a5 Add "auto" HVAC mode to Advantage Air (#51693)
* Add support for myAuto

* Small bug fixes for myAutoModeEnabled

* Add myauto to test fixture

* Refactor hvac_modes using AC_HVAC_MODES
2021-06-28 11:21:25 +02:00
myhomeiot 922b195ebf Add hvac_action to Daikin AC (#52035) 2021-06-28 11:10:53 +02:00
Chris Talkington e4fc76ac2c Add re-authentication support to cloudflare (#51787) 2021-06-28 10:48:18 +02:00
Chris Talkington bfc2995cf8 Update cloudflare test helpers (#52235) 2021-06-28 10:40:51 +02:00
Erik Montnemery e14480599b Add value_template support to MQTT number (#52155) 2021-06-28 10:23:34 +02:00
Maciej Bieniek 3d556f14a5 Remove air_quality platform from Airly integration (#52225)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-28 10:15:56 +02:00
Brian Towles 9c84c2889f Modern forms switch platform (#52061)
* Add switch platform to Modern Forms integration

* Add reboot switch

* Update  lib to catch status from switches

* lint ignore

* Removed reboot switch

* bump aiomodernforms for dependency cleanup
2021-06-28 09:47:41 +02:00
Raman Gupta bef8be9256 Support dynamic schema validation in device conditions and actions (#52007)
* Allow integrations to provide dynamic schema validation in device conditions and actions

* Add tests

* re-add type

* mypy
2021-06-28 09:23:46 +02:00
Christopher Masto 5d3f3c756f Fix Fahrenheit to Celsius conversion in Prometheus exporter (#52212)
const.TEMP_FAHRENHEIT is "°F", but _unit_string converts this to "c",
so the comparison never succeeds and we end up with temperatures in F
but labeled C.
2021-06-28 09:19:49 +02:00
GitHub Action 5c5e43afc1 [ci skip] Translation update 2021-06-28 00:10:15 +00:00
Chris Talkington 8b47faa840 Remove undo listener variable in cloudflare (#52227)
* remove undo listener variable in cloudflare

* Update const.py

* Update __init__.py

* Update __init__.py
2021-06-27 15:58:49 -05:00
Joakim Plate 0d689eefd6 Make Philips TV notify service optional (#50691)
* Make event service optional

* Correct strings for rename

* Drop unload we are just testing config flow here
2021-06-27 22:57:08 +02:00
puddly c404a196c2 Allow creating ZHA groups with specific IDs (#50781) 2021-06-27 15:21:15 -04:00
SgtBatten bd399d17a7 Add support for 4th fan speed in izone A/C systems (#51969)
* Add TOP fan speed

My a/c is 4 speed and the top speed is reported as top or boost. 

i.e it supports: low med high boost auto

* add support for top fan speed

Aircons with 4 fan speeds. i.e low, med, high, top/boost

* Update manifest.json

Bump version to 1.1.5

* Update climate.py

* Bump Izone to 1.1.5

* Update climate.py

* fix isort failure

* Use v1.1.6

Co-authored-by: Penny Wood <Swamp-Ig@users.noreply.github.com>
Co-authored-by: Swamp-Ig <github@ninjateaparty.com>
2021-06-27 21:13:26 +02:00
ollo69 e6e39a67f4 AsusWRT code improvements for sensors and related tests (#51822)
* Sensors implementation and tests improvements

* Remove check for unexpected condition
2021-06-27 15:09:03 -04:00
hesselonline e56069558a Refactor wallbox tests (#51094)
* Changed Testing, removed custom exception
Removed custom exceptions, reverted to builtin. Changed testing approach in all tests, now using the core interface to setup device and mock_requests to create test responses for all calls.

* Reintroduce InvalidAuth exception in __init__
Remove reference to internal HA exception, Reintroduce custom exception

* Removed duplicate entry in test_config_flow

* removed tests from test_init that calling methods directly

* Update tests/components/wallbox/__init__.py

Removed duplicate add_to_hass call

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-27 15:06:25 -04:00
avee87 2d1744c573 Add forecasts to MetOffice integration (#50876)
* MetOfficeData now retrieves both 3-hourly and daily data (full forecast data, as well as "now" snapshot) on each update

* Bump datapoint API up to latest version

* Create 2 sets of sensors - one of each set for 3-hourly and for daily data (same ones initially enabled, for now)

* Create two entities (one each for 3-hourly and daily data) and also add in the forecast data for each dataset

* Testing changes to accommodate now having two sets of everything for 3-hourly and daily update data

* Removed unused import (reported by flake8)

* As per conversation with @MatthewFlamm leave the 3-hourly entity's unique_id unchanged (although the display name is changed)

* Make some improvements based on reviews

Make some improvements and fix up the formatting/linting failures.

* Make some improvements based on reviews

Make some improvements and fix up the formatting/linting failures.

* Added more test coverage

* import asyncio

* Try to fix test

* Rewrote everything using CoordinatorEntity

* Fixed config flow

* Fixed lint errors

Co-authored-by: MrHarcombe <ian.harcombe@gmail.com>
Co-authored-by: Henco Appel <hencoappel+github@gmail.com>
2021-06-27 15:04:42 -04:00
Raman Gupta 23339cff95 Add new climacell sensors (#52079)
* Add new climacell sensors

* lint

* add new unit constants
2021-06-27 15:03:20 -04:00
Erik Montnemery 74aa428bd1 Implement color_mode support for ozw (#52063) 2021-06-27 15:00:27 -04:00
Matt Zimmerman da1d6d3821 Add service to reset SmartTub reminders (#51824)
* Add service to reset SmartTub reminders

* add test

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-27 20:59:11 +02:00
Hristo Atanasov a5362542ad Bulgarian language added in Google Translate TTS (#51985)
* Added Bulgarian language

Bulgarian language is supported by Google Translate TTS and by gTTS library. Tested all lockally and it works perfect.
https://github.com/pndurette/gTTS

* Bulgarian language added in v2.2.3

* Run script.gen_requirements_all

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-27 20:55:36 +02:00
J. Nick Koston a10847bef3 Fix isy994 fan when turn on is not called with a percentage (#49531)
* Fix isy994 fan when turn on is not called with a percentage

* Make insteon/fan.py logic
2021-06-27 20:35:58 +02:00
Martin Hjelmare 120fd633b2 Add mysensors sensor platform test foundation (#51548) 2021-06-27 20:33:20 +02:00
Lasath Fernando 543e1a0f9c Make PjLink power toggle more robust (#51821)
Occasionally, this integration misses events (or maybe they never get sent) from the projector and gets "stuck" in the wrong power state.
Currently, this prevents this integration from changing the power state as it thinks its already in the correct state. Only way to resolve this is to reboot home assistant.

This PR makes it a little more resilient by attempting to send the correct command even when it thinks it's already in the correct state.
2021-06-27 20:30:49 +02:00
Niels Mündler aececdfeb9 Update pyfronius to 0.5.2 (#52216)
* Update the pyfronius package to version 0.5.2

this automatically introduces support for API V0 of fronius devices

* Update requirements
2021-06-27 12:43:31 -05:00
Joakim Plate eedf1c3ebe Reject requests from the proxy itself (#52073)
* Reject requests from the proxy itself

* Adjust tests
2021-06-27 19:02:51 +02:00
ryansun96 dafddce446 Update base image to 2021.06.2 (#52190) 2021-06-27 18:59:27 +02:00
Matt Zimmerman fad7e43c4f Add state attribute to SmartTub reminders for days remaining (#51825) 2021-06-27 18:39:40 +02:00
Milan Meulemans a9bd7da79d Remove Rituals room size number entity (#52200) 2021-06-27 18:38:07 +02:00
Matthias Alphart 253310aaa4 Add respond_to_read option to KNX switch (#51790) 2021-06-27 18:34:41 +02:00
Matthias Alphart 89cdda9fe6 Add idle hvac_action to KNX climate (#52006)
* add idle hvac_action and command_value extra_state_attribute

* use class attribute for unit
2021-06-27 18:31:07 +02:00
Daniel Hjelseth Høyer a788b6ebc1 Clean up surepetcare binary sensor (#52217)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-27 17:27:33 +02:00
Daniel Hjelseth Høyer a824313e9f Clean up Surepetcare sensor (#52219)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-27 17:25:54 +02:00
Franck Nijhof 3f49cdf9bf DSMR: Use entry unload to unsub update listener (#52220) 2021-06-27 16:58:08 +02:00
Franck Nijhof 75d29b3d9e Upgrade watchdog to 2.1.3 (#52224) 2021-06-27 16:57:30 +02:00
Daniel Hjelseth Høyer f1b5183e47 Tibber power factor (#52223) 2021-06-27 16:49:22 +02:00
Milan Meulemans 0d6e73236a Upgrade pyrituals 0.0.3 -> 0.0.4 (#52209) 2021-06-27 14:53:55 +02:00
Klaas Schoute 6b08aebe5f Add Forecast Solar integration (#52158)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-27 14:05:04 +02:00
GitHub Action 473ab98a67 [ci skip] Translation update 2021-06-27 00:09:39 +00:00
Daniel Hjelseth Høyer b45c8466b4 Surepetcare, Use entity class vars and some clean up (#52205) 2021-06-26 15:40:40 -07:00
Pavel Pletenev db2fda09b9 Fix habitica regression (#52097) 2021-06-26 15:36:45 -07:00
Milan Meulemans 4c7934de46 Clean up strings.json (#52202)
* Remove empty error in arcam_fmj

* Remove empty data in directv

* Remove empty error and data in kraken

* Remove empty data in roku
2021-06-26 20:36:13 +02:00
jan iversen c558c77413 Correct keyerror exception. (#52150) 2021-06-26 20:09:53 +02:00
Matthias Alphart 5687ced7b3 Cleanup KNX integration (#52168)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-26 14:30:36 +02:00
Joakim Sørensen b7c15d4474 Fix deprecation warning in discord notifier (#52197) 2021-06-26 07:12:10 -04:00
Shay Levy 568e1b379d Address late review of Switcher sensor migration (#52186) 2021-06-26 07:30:47 +02:00
GitHub Action cd9fa27f2a [ci skip] Translation update 2021-06-26 00:10:53 +00:00
Appleguru 8d8af60b1d Add retries for tplink discovery (#52015)
* Add retries for tplink discovery

* Black Format tplink common.py

* Exit tplink discovery early if all devices found

* Fix typo in tplink retry log msg

* Code style cleanup for tplink retries

* Update homeassistant/components/tplink/common.py

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

* Fix linting errors for tplink retries

Co-authored-by: Teemu R. <tpr@iki.fi>
2021-06-25 23:49:35 +02:00
Daniel Hjelseth Høyer 4abdeec36d Use entity class vars in Broadlink (#52177) 2021-06-25 11:31:17 -10:00
PeteBa 42c4317628 Avoid drift in recorder purge cut-off (#52135) 2021-06-25 11:29:38 -10:00
J. Nick Koston a71af8e9d3 Abort samsungtv config flow for existing hosts when the unique id is set (#52138)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-25 10:31:33 -10:00
starkillerOG 6bbe477d66 Improve Xiaomi Miio error handling (#52009)
* Xiaomi Miio inprove error logging

* improve error handeling

* fix styling

* fix styling

* Update homeassistant/components/xiaomi_miio/device.py

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

* Update homeassistant/components/xiaomi_miio/gateway.py

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

* Update homeassistant/components/xiaomi_miio/gateway.py

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

* break long line

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-25 21:25:51 +02:00
Joakim Sørensen 328ab21a05 Stream requests to ingress (#52184) 2021-06-25 12:14:26 -07:00
Erik Montnemery dad7a597ae Add color_mode support to yeelight light (#51973)
* Add color_mode support to yeelight light

* Satisfy pylint

* Address review comment

* Improve test coverage

* Improve test coverage
2021-06-25 17:37:15 +02:00
Franck Nijhof 3b0f67acd1 DSMR: Add deprecation warning for YAML configuration (#52179) 2021-06-25 14:42:06 +02:00
Wim Haanstra bc2689fd75 Add day-consumption fixed cost sensor in dsmr_reader (#52178)
* Added day-consumption fixed cost property

* black

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-25 07:59:51 -04:00
Maciej Bieniek a95294c83f Fix typo in Nettigo Air Monitor integration (#52182) 2021-06-25 12:07:32 +02:00
Franck Nijhof 958016c44f Clean up input_boolean, removing typing exceptions (#52181)
* Clean up input_boolean, removing typing exceptions

* Now pushing all local changes...
2021-06-25 11:57:52 +02:00
Franck Nijhof b939570c9c Simplify WLED segment tracking (#52174)
* Simplify WLED segment tracking

* Fix master controls
2021-06-25 10:57:12 +02:00
Maciej Bieniek e6c850136c Add support for state_class to AccuWeather integration (#51510)
* Add support for state_class

* Use get() method
2021-06-25 10:06:15 +02:00
J. Nick Koston 22c8afe637 Create a base class for broadlink entities (#52132)
* Create a base class for broadlink entities

* Update homeassistant/components/broadlink/entity.py

Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>

* Update homeassistant/components/broadlink/entity.py

* Update homeassistant/components/broadlink/entity.py

Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>

* black, remove unused

Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
2021-06-25 07:39:21 +02:00
J. Nick Koston d009f06a55 Handle connection being closed in legacy samsungtv (#52137)
* Handle connection being closed in legacy samsungtv

- Mirror the websocket behavior

Fixes
```
2021-06-24 02:54:13 ERROR (MainThread) [homeassistant.helpers.entity] Update for media_player.89_guestroom fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 401, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 609, in async_device_update
    raise exc
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py", line 124, in update
    self._state = STATE_ON if self._bridge.is_on() else STATE_OFF
  File "/usr/src/homeassistant/homeassistant/components/samsungtv/bridge.py", line 113, in is_on
    return self._get_remote() is not None
  File "/usr/src/homeassistant/homeassistant/components/samsungtv/bridge.py", line 232, in _get_remote
    self._remote = Remote(self.config.copy())
  File "/usr/local/lib/python3.8/site-packages/samsungctl/remote.py", line 9, in __init__
    self.remote = RemoteLegacy(config)
  File "/usr/local/lib/python3.8/site-packages/samsungctl/remote_legacy.py", line 32, in __init__
    self._read_response(True)
  File "/usr/local/lib/python3.8/site-packages/samsungctl/remote_legacy.py", line 77, in _read_response
    raise exceptions.ConnectionClosed()
samsungctl.exceptions.ConnectionClosed
```

* add coverage

* pass instead
2021-06-25 07:31:44 +02:00
GitHub Action febc276db9 [ci skip] Translation update 2021-06-25 00:12:31 +00:00
Franck Nijhof f9d65b9196 Add preset support to WLED (#52170) 2021-06-24 23:16:07 +02:00
Maciej Bieniek 0730b375f3 Remove air_quality platform from Nettigo Air Monitor integration (#52152)
* Remove air_quality platform

* Clean constants
2021-06-24 22:58:37 +03:00
Daniel Hjelseth Høyer a5ca25019c Toon, correct generate a 0-timestamp (#52167)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-24 21:48:09 +02:00
Santobert adade590ed Bump pybotvac to 0.0.21 (#52166) 2021-06-24 21:29:09 +02:00
Daniel Hjelseth Høyer e039a9d37b Tibber, correct generate a 0-timestamp (#52165)
* Tibber, correct generate a 0-timestamp

* import

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-24 21:18:46 +02:00
Franck Nijhof a2be9a487f DSMR: Complete full strictly typed (#52162) 2021-06-24 11:27:25 -07:00
Franck Nijhof fba7118d44 Add Color Palette Select entities to WLED (#51994)
* Add Color Palette Select entities to WLED

* Update with dev changes, disable by default
2021-06-24 11:25:21 -07:00
J. Nick Koston 5695710463 Add mac address to samsungtv config entry data if missing (#51634)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-24 08:15:16 -10:00
Franck Nijhof 34a317b847 DSMR: Device/state classes, icons, less common disabled by default (#52159) 2021-06-24 18:48:51 +02:00
Erik Montnemery 4533a77597 Add MQTT select (#52120)
* Add MQTT select

* Fix value_template support

* Lint
2021-06-24 17:09:06 +02:00
starkillerOG 69a04cf748 Fix Xiaomi Miio missing gateway info (#52146)
During my last PR: https://github.com/home-assistant/core/pull/47955, I accedently created a bug that will block the setup of the gateway integration.
This fixes that bug.
2021-06-24 17:03:19 +02:00
Simone Chemelli 3b8ece38b3 Second part of Strict types for Fritz (#52086)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-24 17:02:41 +02:00
Franck Nijhof 75c3daa45f DSMR: Refactor sensor creation, added typing to sensors (#52153)
* DSMR: Refactor sensor creation, added typing to sensors

* Log from package level

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-24 16:56:43 +02:00
Erik Montnemery 04c9665241 Filter MQTT JSON attributes (#52076)
* Filter JSON attributes

* Apply suggestions from code review

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

* Refactor, add tests

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-24 16:22:54 +02:00
Martin Hjelmare 09b3882a5b Type frontend strictly (#52148) 2021-06-24 16:01:28 +02:00
Franck Nijhof afa00b7626 DSMR: Remove Gas derivative sensor (#52147) 2021-06-24 14:25:38 +02:00
Martin Hjelmare 0e5040d917 Add zwave_js options flow to reconfigure server (#51840) 2021-06-24 13:15:42 +02:00
Franck Nijhof fbdd6a9d95 DSMR: Typing cleanup in init & config flow (#52145) 2021-06-24 12:53:16 +02:00
Franck Nijhof 17357bf575 DSMR: Small cleanup; use entity class attributes (#52143) 2021-06-24 11:25:19 +02:00
Eduard van Valkenburg e21325b975 Fix missing azure event hub instance name (#52049) 2021-06-24 11:24:38 +02:00
Franck Nijhof 780d538bb0 DSMR: Adding myself to the codeowners (#52144) 2021-06-24 11:23:20 +02:00
Maciej Bieniek ff8b96c65d Remove YAML configuration import from Sony Bravia TV (#52141) 2021-06-24 11:10:21 +02:00
Matthias Alphart 74db49fae4 Add KNX select entity (#52026)
* select entity for knx

* validate select options

* lint

* phytonify

* Tweak

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-24 10:54:04 +02:00
Rob Bierbooms aa56a21b45 Add config flow step user to dsmr (#50318)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-24 10:16:08 +02:00
dependabot[bot] 0714ee68eb Bump docker/login-action from 1.9.0 to 1.10.0 (#52140)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-24 09:52:17 +02:00
Franck Nijhof a67ca08124 Change dynamic segment handling of WLED (#52018) 2021-06-23 23:43:24 +02:00
Paulus Schoutsen cc00617cd5 Allow defining state class for template sensors (#52130) 2021-06-23 14:37:04 -07:00
Robert Svensson 6352d8fb0e Use more attr instead of properties in deCONZ integration (#52098) 2021-06-23 21:40:34 +02:00
jan iversen 1f4fdb50dc Share struct validator between sensor and climate (#51935) 2021-06-23 11:03:17 -07:00
Franck Nijhof 5b663b1fb9 Add state class to Enphase Envoy (#52113) 2021-06-23 10:46:00 -07:00
Franck Nijhof 38daf94562 Add state class to Eliqonline (#52111) 2021-06-23 10:44:55 -07:00
Franck Nijhof 7f7c0febd8 Add state class to DTE Energy Bridge (#52110) 2021-06-23 10:44:41 -07:00
Franck Nijhof 927b74b4a2 Add state class to The Energy Detective TED5000 (#52109) 2021-06-23 10:44:25 -07:00
Franck Nijhof 0ddd858b4b Add state class to Aurora ABB Solar PV (#52108) 2021-06-23 10:43:57 -07:00
Franck Nijhof b9e6a6b3b8 Add state class to JuiceNet (#52116) 2021-06-23 10:43:31 -07:00
Franck Nijhof 39b090d957 Add state class to Neurio energy (#52117) 2021-06-23 10:41:48 -07:00
Franck Nijhof 3bfcca2bb0 Add state class to Atome Linky, use class attributes (#52107) 2021-06-23 10:23:56 -07:00
Martin Hjelmare ed4a3d275a Fix ezviz options flow test patch (#52125) 2021-06-23 18:19:45 +02:00
Matthias Alphart 742159a6a6 Add number entity to KNX (#51786)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-23 17:20:49 +02:00
Chris Talkington 4e88b44286 Use attrs instead of properties for directv (#51918)
* Use attrs instead of properties for directv

* Update __init__.py

* Create entity.py

* Update media_player.py

* Update remote.py

* Update media_player.py

* Update remote.py

* Update media_player.py

* Update remote.py

* Update entity.py

* Update __init__.py

* Update media_player.py

* Update remote.py

* Update media_player.py

* Update media_player.py
2021-06-23 16:10:29 +02:00
Erik Montnemery 2351f2d95e Warn when receiving message on illegal MQTT discovery topic (#52106)
* Warn when receiving message on illegal MQTT discovery topic

* Fix test
2021-06-23 15:53:17 +02:00
Tobias Sauerwein db5bf8ab23 Bump pyatmo version (#52112)
* Bump pyatmo version

* Update tests
2021-06-23 15:51:27 +02:00
Maciej Bieniek 75faee4f25 Use attrs instead of properties in Bravia TV integration (#52045)
* Use attrs instead of properties

* Revert to using properties for dynamic data

* Move volume_level to coordinator

* Move media_title to coordinator

* Remove unused variables

* Fix variable name

* Revert removed variables
2021-06-23 15:46:28 +02:00
Erik Montnemery 80ae346318 Pass the hass object to all MQTT component constructors (#52124) 2021-06-23 15:44:18 +02:00
Erik Montnemery 77de233679 Update MQTT number to treat received payload as UTF-8 (#52121)
* Update MQTT number to treat received payload as UTF-8

* Lint
2021-06-23 15:35:18 +02:00
Erik Montnemery a374e24843 Add monetary sensor device class (#52087)
* Add total_cost sensor device class

* Change to DEVICE_CLASS_MONETARY
2021-06-23 15:32:25 +02:00
Tobias Sauerwein 5a4a1a250d Catch exception for failed webhook drop for netatmo (#52119) 2021-06-23 14:56:20 +02:00
Franck Nijhof b3b23066a8 Add state class to Huisbaasje (#52114) 2021-06-23 13:11:33 +02:00
Jesse Hills 33e2b910c2 Add @jesserockz to ESPHome codeowners (#52115) 2021-06-23 13:10:58 +02:00
Jan Bouwhuis 29bfb4b046 Xiaomi_miio fan percentage based speeds and preset_modes (#51791) 2021-06-23 11:30:42 +02:00
Paulus Schoutsen 6c4816567c Add state class to Sense (#52104) 2021-06-23 08:56:11 +02:00
Paulus Schoutsen c31f267106 Add state class to powerwall (#52102) 2021-06-22 23:19:02 -07:00
GitHub Action de5431c037 [ci skip] Translation update 2021-06-23 00:09:30 +00:00
Franck Nijhof b112b18848 Get running event loop in debugpy (#52091) 2021-06-22 21:16:50 +02:00
maurerle ba3416b724 Handle ConnectionError if proxmoxve host is not reachable (#51970)
* handle ConnectionError if host is not reachable

* import only needed exceptions

fix pylint issue

* don't overwrite built-in ConnectionError

* fix typo
2021-06-22 20:54:27 +02:00
Erik Montnemery 04b425ed89 Use HS color instead of RGB color for Tasmota lights (#52052) 2021-06-22 20:40:59 +02:00
Robert Svensson e22893a206 Make attestation of supported features easier to read (deCONZ test) (#52096)
Make is_deconz_group a constant
2021-06-22 20:34:25 +02:00
Robert Svensson 6814e9607a Improve deCONZ lights supported_color_modes and tests (#51933)
* Improve deconz lights tests

* Simplify attribute definition

* Bump pydeconz to v80
2021-06-22 19:29:58 +02:00
Shay Levy 5795e76826 Migrate Switcher entity attributes to sensors (#51964)
* Migrate attributes to sensors

Migrate attributes to sensors

* Fix pylint

* Apply suggestions from code review

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

* Add typing imports

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-22 18:28:09 +02:00
Maciej Bieniek d08129352f Bump Nettigo Air Monitor library (#52085) 2021-06-22 15:44:53 +02:00
muppet3000 456755c077 Adjust Growatt PV units from W to kW (#52021) 2021-06-22 13:15:38 +02:00
Erik Montnemery 52c142a82d Add support for color_mode white to MQTT light basic schema (#51484)
* Add support for color_mode white to MQTT light basic schema

* Add missing abbreviations
2021-06-22 11:59:20 +02:00
Yuval Aboulafia 39bf304031 Static typing for PiHole (#51681)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-22 11:50:50 +02:00
Brian Towles 9cd3ffbd47 Modern Forms light platform code cleanup (#52058) 2021-06-22 10:10:49 +02:00
Otto Winter 03ec7b3d0b ESPHome rework EsphomeEnumMapper for safe enum mappings (#51975) 2021-06-21 21:22:38 -07:00
Raman Gupta 0eae0cca2b Move zwave_js migration tests into new module (#52075) 2021-06-21 20:42:03 -04:00
GitHub Action d805e971b4 [ci skip] Translation update 2021-06-22 00:14:17 +00:00
Raman Gupta 8a9a141f3c Fix zwave_js migration logic (#52070)
* Fix zwave_js migration logic

* revert change to move tests to new module

* Update tests/components/zwave_js/test_init.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-21 16:45:47 -04:00
MattWestb 077131df1a Update climate.py (#52065)
Adding tuya TRVs type Moes that need extra function in ZHA.
https://github.com/home-assistant/core/issues/49378 adding _TYST11/_TZE200_cwnjrr72 that is missed then being added in zigpy.
https://github.com/zigpy/zha-device-handlers/pull/931 is adding the _TZE200_b6wax7g0 and i shall adding the missed _TYST11_b6wax7g0
2021-06-21 15:36:00 -04:00
Erik Montnemery b916247e8e Improve editing of device automation referring non added select entity (#52047)
* Improve editing of device automation referring non added select entity

* Update tests
2021-06-21 14:49:51 +02:00
Brian Towles f29bcf7ff7 Modern Forms light platform (#51857)
* Add light platform to Modern Forms integration

* cleanup setup

* Code review cleanup
2021-06-21 10:09:41 +02:00
Franck Nijhof 23719bbb5e Upgrade wled to 0.7.0 (#52017) 2021-06-21 09:44:29 +02:00
Jeff Irion b46bcdeeb1 Bump adb-shell to 0.3.4 (#52044)
* Bump adb-shell to 0.3.4

* Bump adb-shell to 0.3.4

* Bump adb-shell to 0.3.4
2021-06-21 08:23:22 +02:00
Paulus Schoutsen 076227acbe Merge pull request #52043 from home-assistant/rc 2021-06-20 22:37:31 -07:00
Paulus Schoutsen 34f266bfa6 Bumped version to 2021.6.6 2021-06-20 21:49:17 -07:00
jjlawren 0d351e4a0e Catch unexpected battery update payloads on Sonos (#52040) 2021-06-20 21:49:12 -07:00
Paulus Schoutsen 79cfd444d9 Fix double subscriptions for local push notifications (#52039) 2021-06-20 21:49:11 -07:00
Maciej Bieniek 67699e3c1f Fix AccuWeather sensors updates (#52031)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-20 21:49:10 -07:00
Fredrik Erlandsson 47560006b8 Bump pydaikin to 2.4.3 (#51926) 2021-06-20 21:49:09 -07:00
Rob Bierbooms d6fd41bd03 Bump pyRFXtrx to 0.27.0 (#51911)
* Bump version

* Fix test
2021-06-20 21:49:08 -07:00
djtimca c8e678a2c6 Add Omnilogic switch defaults for max_speed and min_speed (#51889) 2021-06-20 21:49:08 -07:00
Konstantin Antselovich 398fca3b9d Fix whois expiration date (#51868) 2021-06-20 21:49:07 -07:00
Maciej Bieniek 2aed268fb7 Remove undo_listener variable in AccuWeather integration (#52032) 2021-06-20 21:40:04 -07:00
Maciej Bieniek 01a26f1348 Remove undo_listener variable in Sony Bravia TV integration (#52033) 2021-06-20 21:39:14 -07:00
Chris Talkington d772488472 Remove undo listener variable in sonarr (#52042) 2021-06-20 21:38:45 -07:00
jjlawren 7b5ed8faa8 Catch unexpected battery update payloads on Sonos (#52040) 2021-06-20 21:38:07 -07:00
GitHub Action 067b5258c6 [ci skip] Translation update 2021-06-21 00:09:58 +00:00
Paulus Schoutsen af8ef634c1 Fix double subscriptions for local push notifications (#52039) 2021-06-20 14:53:21 -07:00
Maciej Bieniek 57106098f9 Fix AccuWeather sensors updates (#52031)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-20 14:53:08 -07:00
Steven Looman a127131c1b Upgrade async_upnp_client to 0.19.0 (#52019) 2021-06-20 18:17:39 +02:00
uvjustin e8b5790846 Clean up stream refactor (#51951)
* Clean up target_duration method

* Consolidate Part creation in one place

* Use BytesIO.read instead of memoryview access

* Change flush() signature
2021-06-20 13:38:02 +08:00
GitHub Action 3836d46dff [ci skip] Translation update 2021-06-20 00:10:44 +00:00
Franck Nijhof 24c1256c2c Small WLED cleanups (#52014) 2021-06-19 17:13:48 +02:00
Oderik f550c31886 Fix IoT class (#52008) 2021-06-19 15:38:48 +02:00
Bram Kragten 34a44b9bec Use entity sources to find related entities in Search (#51966)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-19 13:25:26 +02:00
Matthias Alphart 1d941284ff Fix not awaiting async super method in KNX climate (#52005) 2021-06-19 01:10:17 -05:00
Matthias Alphart c246e211eb Update xknx to 0.18.7 (#52000) 2021-06-18 22:22:27 -05:00
GitHub Action 8901e1f157 [ci skip] Translation update 2021-06-19 00:10:05 +00:00
Aaron Bach 549f779b06 Force SimpliSafe to reauthenticate with a password (#51528) 2021-06-18 16:11:35 -06:00
Franck Nijhof 23222589dd Add device condition support to Select entity (#51992) 2021-06-18 23:31:08 +02:00
Franck Nijhof 655f797f67 Add Select entity support to Google Assistant (#51997) 2021-06-18 23:30:46 +02:00
Erik Montnemery 0ca199d8d0 Add WS API for listing available statistic ids (#51984)
* Add WS API for listing available statistic ids

* Update homeassistant/components/history/__init__.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2021-06-18 21:32:30 +02:00
Paulus Schoutsen 805ef3f90b Allow fetching multiple statistics (#51996) 2021-06-18 21:03:13 +02:00
Franck Nijhof 87a43eacb7 Add device action support to Select entity (#51990) 2021-06-18 11:40:29 -07:00
Franck Nijhof 06edc731c5 Add significant change support to select entity (#51978) 2021-06-18 11:31:09 -07:00
Franck Nijhof 98a53188f8 Add reproduce state to select entity (#51977) 2021-06-18 11:30:40 -07:00
Franck Nijhof c1cfbcc4e3 Add device trigger support to Select entity (#51987) 2021-06-18 10:01:32 -07:00
Martin Hjelmare 2628ce54d9 Type homeassistant triggers event (#51979) 2021-06-18 09:46:20 -07:00
Franck Nijhof 054ca1d7ec Add Select entity component platform (#51849)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-18 11:51:55 +02:00
jan iversen bc329cb602 Convert if/elif chains to dicts in modbus (#51962) 2021-06-18 11:20:44 +02:00
Brent Petit c149ecf2cc Handle disconnected ecobee thermostat in humidifier and remote sensors (#51873) 2021-06-18 09:06:31 +02:00
GitHub Action c0a0c8b283 [ci skip] Translation update 2021-06-18 00:09:11 +00:00
Tom 88eca8cc15 Add deconz support for Lidl Smart Door Bell HG06668 (#51949) 2021-06-17 17:57:27 +02:00
Raman Gupta 1e18011603 Adjust zwave_js WS API commands for logging (#51096) 2021-06-17 17:19:25 +02:00
Franck Nijhof 06c2e541c4 Fully type lock entity component (#51958) 2021-06-17 14:28:56 +02:00
Franck Nijhof 8e07e60741 Fully type binary_sensor entity component (#51957) 2021-06-17 13:53:45 +02:00
Artem Draft db61a773fd Add remote control platform to BraviaTV (#50845) 2021-06-17 12:33:44 +02:00
jan iversen 08b0ef7a5e Use test fixture for configuration testing (#51803)
* Autospec mock_modbus and usei for configuration.

* Review comment.
2021-06-17 12:27:05 +02:00
Bram Kragten 0327d0b6db Add Mutesync dynamic update interval and catch invalid response values (#50764)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-06-17 11:40:48 +02:00
Franck Nijhof 927b5361a3 Define LockEntity entity attributes as class variables (#51909) 2021-06-17 11:25:33 +02:00
jjlawren d3724355cf Improve Sonos Spotify/Tidal support, add service exceptions (#51871) 2021-06-17 11:09:57 +02:00
Brent Petit 016ba39dfb Ecobee logging cleanup (#51754) 2021-06-17 10:59:13 +02:00
Fredrik Erlandsson b2aa55cea2 Bump pydaikin to 2.4.3 (#51926) 2021-06-17 10:58:28 +02:00
jan iversen 3ba90776c0 Add autospec to modbus mock, in order to use getattr (#51813) 2021-06-17 10:57:20 +02:00
Erik Montnemery ee6c77048c Improve editing of device actions referencing non-added humidifier (#51749) 2021-06-17 10:27:22 +02:00
Franck Nijhof 17a71020db Define RemoteEntity entity attributes as class variables (#51904) 2021-06-17 10:21:49 +02:00
Franck Nijhof 9f17b8856a Define WaterHeaterEntity entity attributes as class variables (#51903) 2021-06-17 10:19:29 +02:00
Franck Nijhof 3b00e87ebc Define WeatherEntity entity attributes as class variables (#51899) 2021-06-17 10:16:16 +02:00
Franck Nijhof 7947946793 Type entry setup/unload for entity components (#51912) 2021-06-17 10:10:26 +02:00
Eugenio Panadero b7c1df7864 Adopt new electricity tariffs in pvpc hourly pricing (#51789) 2021-06-17 09:03:28 +02:00
jjlawren d4ac5bf048 Bump plexapi to 4.6.1 (#51936) 2021-06-17 09:02:23 +02:00
dependabot[bot] aaf3a5a9c5 Bump actions/upload-artifact from 2.2.3 to 2.2.4 (#51946)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2.2.3 to 2.2.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2.2.3...v2.2.4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-17 08:31:20 +02:00
RenierM26 fe26c34e87 Clean ezviz error handling in services (#51945) 2021-06-17 08:30:19 +02:00
Konstantin Antselovich c8329032b2 Fix whois expiration date (#51868) 2021-06-17 05:57:46 +02:00
Adam Król 986c4a8f29 Support Wolflink reconnection after unexpected failure (#47011)
* Support reconnection after unexpected fails

* Update session at every call. Support Offline devices

* Remove unnecessary else branch

* Clean typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-17 05:24:17 +02:00
Franck Nijhof 33e08f38da Raise bad request when receiving HTTP request from untrusted proxy (#51839)
* Raise bad request when receiving HTTP request from untrusted proxy

* Fix code comment
2021-06-17 04:41:19 +02:00
GitHub Action 17414439df [ci skip] Translation update 2021-06-17 00:10:03 +00:00
Raman Gupta a250343c55 Support bitmask as a value (#51892)
* Support bitmask as a value

* Fix value schema and add tests

* fix test

* revert change to value schema
2021-06-16 15:53:45 -04:00
jjlawren 31db3fcb23 Refactor Sonos alarms and favorites into system-level coordinators (#51757)
* Refactor alarms and favorites into household-level coordinators

Create SonosHouseholdCoodinator class for system-level data
Fix polling for both alarms and favorites
Adjust tests

* Fix docstring

* Review cleanup

* Move exception handling up a level, do not save a failed coordinator

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-16 10:30:05 -05:00
Franck Nijhof bc3e5b39ed Clean up cover group (#51924) 2021-06-16 14:47:29 +02:00
djtimca dc9f1411d4 Add Omnilogic switch defaults for max_speed and min_speed (#51889) 2021-06-16 14:39:09 +02:00
Franck Nijhof 13bf5dbee4 Upgrade mypy to 0.902 (#51907) 2021-06-16 14:35:32 +02:00
Franck Nijhof 4655e3aa08 Clean up light group (#51922) 2021-06-16 14:30:25 +02:00
jan iversen 7ad91fdf71 Add swap to climate and change data_count -> count in modbus (#51668) 2021-06-16 12:11:23 +02:00
Eric Severance 61079ab7fa Support receiving long-press events from WeMo devices (#45503)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-16 12:00:34 +02:00
Franck Nijhof c65d120633 Fix typo in min/max mired(s) entity class attribute (#51921) 2021-06-16 09:58:21 +02:00
Franck Nijhof 37d3a4dd53 Use entity class vars in Switch demo (#51906)
* Use entity class vars in Switch demo

* Fix missing initial state of the demo switch
2021-06-16 08:29:31 +02:00
Rob Bierbooms ff0c753c87 Bump pyRFXtrx to 0.27.0 (#51911)
* Bump version

* Fix test
2021-06-15 20:34:05 -05:00
GitHub Action a072fb059d [ci skip] Translation update 2021-06-16 00:09:27 +00:00
Franck Nijhof f2bc69a653 Merge pull request #51902 from home-assistant/rc 2021-06-15 20:37:40 +02:00
uvjustin 6d656dd2ec Speed up record stream audio test (#51901) 2021-06-15 14:27:53 -04:00
Franck Nijhof fcb2c26a24 Bumped version to 2021.6.5 2021-06-15 19:45:33 +02:00
Ludovico de Nittis ee7a2b29ad Bump pyialarm to 1.9.0 (#51804) 2021-06-15 19:44:48 +02:00
Joakim Sørensen dcc7bc10e8 Add httpcore with version 0.13.3 (#51799) 2021-06-15 19:44:45 +02:00
Fredrik Erlandsson 8f34d1cf32 Bump pydaikin, fix airbase issues (#51797) 2021-06-15 19:44:42 +02:00
Ron Klinkien fcc66139f8 Replace garminconnect_aio with garminconnect_ha (#51730)
* Fixed config_flow for multiple account creation

* Replaced python package to fix multiple accounts

* Replaced python package to fix multiple accounts

* Implemented config entries user

* Config entries user

* Fixed test code config flow

* Fixed patch
2021-06-15 19:44:35 +02:00
Milan Meulemans 63e20f2ced Mark config flow fields as required (#51898)
* flo

* goalzero

* mutesync

* ring

* roon

* risco

* Ruckus Unleashed

* Scaffold template
2021-06-15 19:21:30 +02:00
Eric Severance 3488b78365 Add a menu_cursor service to the yamaha component (#44819)
* Add a menu_cursor service to the yamaha component

* Update homeassistant/components/yamaha/media_player.py

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

* Update service description to new format

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-15 19:17:10 +02:00
Franck Nijhof 37af42e470 Upgrade pillow to 8.2.0 (#51897) 2021-06-15 19:14:57 +02:00
Matthias Alphart b08f473da4 Add current hvac_action to KNX climate (#51464) 2021-06-15 17:51:16 +02:00
Franck Nijhof 16d5d7e508 Upgrade codecov to 2.1.11 (#51885) 2021-06-15 15:04:48 +02:00
Franck Nijhof e4202aa4de Upgrade pytest-cov to 2.12.1 (#51886) 2021-06-15 15:04:07 +02:00
RenierM26 22b8dc16c2 Add services to ezviz integration (#48984)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-15 13:23:32 +02:00
Kevin Worrel 515bd18ddd Don't create unsupported pump sensors (#51828)
* Don't create unsupported pump sensors

* Remove old code and simplify new statements.

* Address notes
2021-06-15 13:19:48 +02:00
Matthias Alphart c0d311473c Restore state of KNX Switch (#51761) 2021-06-15 13:08:19 +02:00
Jan 333f199bd4 Additional units for HM-ES-TX-WM with ES-IEC (#50713)
The Homematic HM-ES-TX-WM with ES-IEC adapter needs additional unit cast for `IEC_POWER` and `IEC_ENERGY_COUNTER`.
2021-06-15 12:13:03 +02:00
Erik Montnemery f3c6e846fa Enable asyncio debugging from debugpy integration (#51880)
* Optionally enable asyncio debugging from debugpy integration

* Unconditionally enable asyncio debugging
2021-06-15 12:10:47 +02:00
Raman Gupta 3db8d9ede5 Require admin for new node status WS API command (#51863) 2021-06-15 09:34:04 +02:00
Erik Montnemery 59a3e0f4dc Improve editing of device conditions referencing non-added HVAC (#51832) 2021-06-15 02:23:13 +02:00
GitHub Action 5469cc8fb2 [ci skip] Translation update 2021-06-15 00:11:31 +00:00
rikroe dfe21eb78f Add selectors to BMW Connected Drive service definitions (#47065)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-06-15 00:56:14 +02:00
Kim Frellsen e1538594cd Update fortios device tracker to support FortiOS 7.0 (#51640)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-15 00:29:37 +02:00
starkillerOG 3a2d50fe23 Add Xiaomi Miio EU gateway support (#47955)
* Add EU gateway support

* add options flow translations

* fix options flow

* fix missing import

* try to fix async_add_executor_job

* try to fix async_add_executor_job

* fix unload

* check for login succes

* fix not reloading

* use cloud option

* fix styling

* Return after if

Co-authored-by: Nathan Tilley <nathan@tilley.xyz>

* cleanup

* add options flow tests

* fix new tests

* fix typo in docstring

* add missing blank line

* Use async_on_unload

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

* Use async_on_unload

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

* Use async_setup_platforms

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

* Use async_unload_platforms

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

* Update homeassistant/components/xiaomi_miio/__init__.py

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

* Update homeassistant/components/xiaomi_miio/const.py

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

* default use_cloud False

* add options flow checks

* fix styling

* fix issort

* add MiCloud check tests

* fix indent

* fix styling

* fix tests

* fix tests

* fix black

* re-write config flow

* add explicit return type

* update strings.json

* black formatting

* fix config flow

Tested the config flow and it is now fully working

* fix styling

* Fix current tests

* Add missing tests

* fix styling

* add re-auth flow

* fix styling

* fix reauth flow

* Add reauth flow test

* use ConfigEntryAuthFailed

* also trigger reauth @ login error

* fix styling

* remove unused import

* fix spelling

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

* Fix spelling

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

* fix spelling

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

* remove unessesary .keys()

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

* combine async_add_executor_job calls

* remove async_step_model

* fix wrong indent

* fix gatway.py

* fix tests

Co-authored-by: Nathan Tilley <nathan@tilley.xyz>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-15 00:05:40 +02:00
Raman Gupta 8705168fe6 Add zwave_js WS API cmds to get node state and version info (#51396)
* Add zwave_js view to retrieve a node's state

* remove typehints

* Make dump views require admin

* Add version info to node level dump

* Add back typehints

* switch from list to dict

* switch from dump node view to two WS API commands

* switch to snake
2021-06-14 16:43:51 -04:00
Raman Gupta f00f2b4ae4 Add zwave_js ping node service (#51435)
* Add zwave_js ping node service

* uncomment code

* use asyncio.gather
2021-06-14 16:38:35 -04:00
Brian Towles b1fa01e4bc Cleanup of code reviews from initial modern forms (#51794) 2021-06-14 21:04:02 +02:00
yllar 7329dc4f6b Add missing languages to Microsoft TTS (#51774) 2021-06-14 14:10:21 -04:00
jjlawren e929774481 Add warning during playback if Plex token missing (#51853) 2021-06-14 20:09:27 +02:00
Raman Gupta 0d40ba463e Create zwave_js node status sensor when the node is added (#51850)
* Create node status sensor when the node is added

* Handle race condition

* reduce repeat code
2021-06-14 19:31:44 +02:00
Franck Nijhof 347ef9cb4c Define NumberEntity entity attributes as class variables (#51842) 2021-06-14 09:05:01 -07:00
Franck Nijhof 32409a2c93 Define HumidifierEntity entity attributes as class variables (#51841) 2021-06-14 09:04:46 -07:00
Joakim Sørensen c8755cd896 Migrate the name for the hassio user (#51771) 2021-06-14 09:01:18 -07:00
uvjustin 97e77ab229 Improve type hints in stream (#51837)
* Improve type hints in stream

* Fix import locations

* Add stream to .strict-typing

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-06-14 23:59:25 +08:00
Malte Franken 7cd57dd156 Bump aio_geojson_geonetnz_quakes to v0.13 (#51846) 2021-06-14 17:29:23 +02:00
Erik Montnemery 4c9f12b9c5 Correct trace path for trigger with custom id (#51847) 2021-06-14 17:09:20 +02:00
Erik Montnemery a989677bef Improve editing of device conditions referencing non-added binary sensor (#51831)
* Improve editing of device conditions referencing non-added binary sensor

* Update tests
2021-06-14 15:26:46 +02:00
Erik Montnemery 06fc21e287 Improve editing of device conditions referencing non-added sensor (#51835) 2021-06-14 15:22:31 +02:00
Erik Montnemery 59ef55c34f Improve editing of device conditions referencing non-added cover (#51833) 2021-06-14 14:34:59 +02:00
Erik Montnemery af05543744 Improve editing of device conditions referencing non-added humidifier (#51834) 2021-06-14 14:12:42 +02:00
Malte Franken 33ec6621c7 Bump georss_ign_sismologia_client to v0.3 (#51838) 2021-06-14 13:51:11 +02:00
Felipe Martins Diel fca79237c3 Create dataclass to mock entry setup in Broadlink tests (#50134) 2021-06-14 13:28:57 +02:00
Erik Montnemery 08af791d4c Improve editing of device conditions referencing non-added alarm (#51830) 2021-06-14 13:05:27 +02:00
jan iversen 77f6d1f5cb Do not return an exception in modbus (#51829) 2021-06-14 10:56:24 +02:00
Tom Schneider 7e1fec8ee4 Rewrite of Yamaha musiccast integration (#51561)
* Initial commit for new musiccast integration

* Add zone support

* Get/set volume level

* Remove volume step

* Create custom MusicCastData type

* Create MusicCastDevice

* Fix await

* Add power and mute control

* Implement all basic media_player parts

* Support input switching

* Add duration/position support

* Add advanced tuner functions

* Basic media browser

* Add layer in media browser to see all available list_infos

* Added join/unjoin services and group informations. Known issue: You can not link zone 2 to main at the moment (WIP)

* Many fixes to make multiple zones and grouping work. Next step: implement error handling and remove debugging information

* WIP: Added Multizone Support and allows clients to directly jump from one group to another. Known issue: If a server tries to join a group as client, he has to close his group first. Sometimes the device that was a server previously jumps out of the group directly after joining.

* Updated group management to make it wait for the updated group information before performing the next actions - Timeouts after 1 second, then polls the distribution data. If the data are still not updated, there will be one retry before an Exception is thrown. Extended the state attributes for clients to make them return group details from their servers (leads to inactive group management buttons for the client). Added documentation and restructured the code.

* Make the service handle function name for group specific service calls unique

* Added service descriptions for set_sleep_timer, set_alarm, recall_netusb_preset, store_netusb_preset

* Added data entries for alarm specific values and a netusb preset list. Implemented fetching function for clock and netusb presets.

* Registered and implemented services for set_sleep_timer, set_alarm, recall_netusb_preset, store_netusb_preset. The set_alarm service works with a special mediaplayer alarm lovelace card, I am currently working on.
The NetUSB Presets are also available using the media browser. Maybe we could also add the Tuner presets in the future for both setting up the alarm and recalling them via service and media browser.

* Removed some debug prints

* Moved MusicCast Integration to the aiomusiccast library. This library supports media browsers with multiple pages. Added ssdp support for the discovery

* Minor fix in the group management and tidied up a bit

* Updated manifest of yamaha musiccast

* Update library

* Minor fix in the media browser. get_distribution_num does not have to be async, so it has been changed. Adjusted the client join function to turn on the client before joining a group - the musiccast app does so, so hopefully this fixes the rare errors when adding a turned off client to a group. Some reformating and by hooks fixed most of the requirements of the hooks. Known exception from this: mypy throws an error for line 116.

* Removed some old out commented code. Fixed some error handling, when the user enters a non reachable or non yamaha host in the manual setup. Fixed linting/styling errors. Implemented tests to bring the coverage for the config flow to 100%.

* Fixed linting/styling errors. Return a DeviceInfo object instead of a dict.

* Fixed linting/styling errors. Added a new error type to the translations.

* In the yamaha API the system_id is equal to the serial number in the DLNA description. Due to that it was possible to configure a device twice, because the serial number from the yamaha API was different. This issue was fixed.

* Updated tests and added a test for adding a device manually, which is already present in the system

* Remove print statements

* Fix sleep timer service call

* Fix yamllint error

* Shrink PR down to just new library + config flow with discovery

* Add __init__.py to .coveragerc

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>

* Implement suggestions from code review

* Improve identifiers and connections, remove event loop parameter

* Add coordinator back

* Better exception handling

* Fix unique id in ssdp step

* Remove abc.ABC from MusicCasteDeviceEntity

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

* Update homeassistant/components/yamaha_musiccast/config_flow.py

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

* Replace the repeat mode mapping from mc to ha by a generic solution

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

* add coordinator to the super call of the mediaplayer

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

* add the coordinator to the init function of the MusicCastEntity

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

* Pass the coordinator from the MusicCastEntity init function to the CoordinatorEntity init function

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

* merged _handle_config_flow into async_step_user

* reformated the exception handling of the user step. In the case that the device already exists, the AbortFlow will be raised.

* Removed model from the config entry. It was neither set nor used anymore.

* Fixed the test for the config flow.

* Use async_write_ha_state instead of schedule_update_ha_state.

* Add default value for the system ID gotten in the user step

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

* Update tests/components/yamaha_musiccast/test_config_flow.py

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

* Added a fixture to avoid IO in the test_user_input_device_not_found test

* Use absolute imprt to import data_entry_flow.

* Use local vars for host and serial_number in async_step_user.

* Remove ip_address and zone_id properties.

* Use device id for the unique ID of an entity instead of the macs

* Removed entry_id from the MusicCastEntity init function.

* Updated strings and English translation.

* don't set the coordinator in the mediaplayer init.

* Implemented legacy configuration.yaml support for existing configurations.

* Added tests for the newly added config flow step.

* Use device_id as identifier

* Fix an accidentally relative import

* Fix pylint warnings

* use logger.error instead of logger.exception in the import step.

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

* Use CONF_HOST instead of 'host'

* Only support the import from configuration.yaml if no config entries are setup for musiccast. If there are already config entries in HA and none of them is a representation of a config given in configuration.yaml (e.g. config added after the first import), an error will be logged.

* Update homeassistant/components/yamaha_musiccast/media_player.py

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

* Readded PLATFORM_SCHEMA for configuration.yaml

* Raise an exception for all services, which are only supported for specific sources.

* Bump aiomusiccast to 0.6 to support asyncio sockets

Co-authored-by: Michael Harbarth <michael.harbarth@gmx.de>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-14 08:58:42 +02:00
blawford 0709aa7c8c Pass metadata when casting an app (#51148)
* Pass through metadata when casting an app

* Remove passing kwargs to quick_play

Add metadata to the app_data dict.

* Include pass-through of metadata

* Bump pychromecast to 9.2.0

* Add changes to test to verify metadata

* Fix order of imports
2021-06-14 08:48:32 +02:00
Alexei Chetroi cc622f46c5 Bump up ZHA dependencies (#51765) 2021-06-13 21:53:37 -04:00
Ludovico de Nittis c260fca242 Bump pyialarm to 1.9.0 (#51804) 2021-06-13 21:47:56 -04:00
GitHub Action 1e00e48831 [ci skip] Translation update 2021-06-14 00:09:44 +00:00
J. Nick Koston 75d6ffebc8 Improve error when HomeKit accessory underlying entity is missing (#51713)
* Improve error when HomeKit accessory underlying entity is missing

* docstring in test
2021-06-13 17:27:04 -05:00
jjlawren d755952148 Set playlist name on playing Sonos media (#51685)
* Use playlist name as media_channel if available

* Use proper playlist attribute
2021-06-13 17:24:46 -05:00
ollo69 4300484ca0 Catch AsusWRT UnicodeDecodeError in get_nvram call (#51811) 2021-06-13 17:20:02 -05:00
uvjustin 123e8f01a1 Refactor stream to create partial segments (#51282) 2021-06-14 00:41:21 +08:00
Jeff Irion 1adeb82930 Bump androidtv to 0.0.60 (#51812)
* Bump androidtv to 0.0.60

* Update requirements_test_all.txt

* Update manifest.json
2021-06-13 18:22:20 +02:00
Simone Chemelli fbe507a9c1 Strict types - first part (#51479) 2021-06-13 16:45:35 +02:00
Shay Levy a31e6716d9 Cleanup switcher_kis - move to consts (#51807) 2021-06-13 17:34:42 +03:00
Milan Meulemans 49a943cc94 Fix Roomba strings step_id rename (#51744) 2021-06-13 12:05:24 +02:00
Milan Meulemans aacb334cc8 Remove connection classes (#51801) 2021-06-13 12:05:09 +02:00
Fredrik Erlandsson 936f155499 Bump pydaikin, fix airbase issues (#51797) 2021-06-13 11:38:55 +02:00
Joakim Sørensen 33ac4dba5a Add httpcore with version 0.13.3 (#51799) 2021-06-13 10:21:26 +02:00
Franck Nijhof ae28e4934f Mark Ambee as a platinum quality integration (#51779) 2021-06-13 07:41:27 +02:00
GitHub Action 1d0c4c6e99 [ci skip] Translation update 2021-06-13 00:10:48 +00:00
Erik Montnemery f9e9202e2d Improve editing of device triggers referencing non-added alarm (#51701) 2021-06-13 00:07:25 +02:00
Erik Montnemery 3a739563b4 Improve editing of device actions referencing non-added alarm (#51747) 2021-06-12 23:43:28 +02:00
Franck Nijhof f975beae77 Upgrade wled to 0.6.0 (#51783) 2021-06-12 22:23:12 +02:00
Franck Nijhof f362852a24 Upgrade black to 21.6b0 (#51785) 2021-06-12 22:07:22 +02:00
Erik Montnemery b8669bf4c1 Improve editing of device actions referencing non-added cover (#51748) 2021-06-12 21:40:32 +02:00
Erik Montnemery 6ab37881c9 Improve editing of device actions referencing non-added lock (#51750) 2021-06-12 21:31:30 +02:00
Franck Nijhof c242e56b8c Add re-authentication support to Ambee (#51773)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-12 16:18:06 +02:00
Franck Nijhof cfce71d7df Allow keeping master light in WLED (#51759) 2021-06-12 13:33:23 +02:00
Eduard van Valkenburg 779ef3c8e1 Add timedelta option for async_call_later (#50164) 2021-06-12 13:14:35 +02:00
Martin Hjelmare c3cfbfe54b Refactor zwave_js config flow (#51720) 2021-06-12 13:12:17 +02:00
Malte Franken 3276666457 Bump aio_geojson_nsw_rfs_incidents to v0.4 (#51770) 2021-06-12 11:55:32 +02:00
Martin Hjelmare be137b085b Refactor zwave_js disconnect client helper (#51718) 2021-06-12 11:35:33 +02:00
Matthias Alphart 4afe7de07f xknx 0.18.6 (#51758) 2021-06-12 11:19:05 +02:00
Ron Klinkien f6e0165543 Replace garminconnect_aio with garminconnect_ha (#51730)
* Fixed config_flow for multiple account creation

* Replaced python package to fix multiple accounts

* Replaced python package to fix multiple accounts

* Implemented config entries user

* Config entries user

* Fixed test code config flow

* Fixed patch
2021-06-12 10:05:27 +02:00
Paulus Schoutsen 2535f5c155 Merge pull request #51768 from home-assistant/rc 2021-06-11 22:18:37 -07:00
Paulus Schoutsen 97e36cd3c4 Bumped version to 2021.6.4 2021-06-11 21:42:27 -07:00
J. Nick Koston 548e847453 Fix race condition in samsungtv turn off (#51716)
- The state would flip flop if the update happened before the TV had fully shutdown
2021-06-11 21:42:15 -07:00
J. Nick Koston 60b89101e5 Ensure samsungtv reloads after reauth (#51714)
* Ensure samsungtv reloads after reauth

- Fixes a case of I/O in the event loop

* Ensure config entry is reloaded
2021-06-11 21:42:14 -07:00
Pawel 90d28e911c Fix Onvif get_time_zone from device (#51620)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-11 21:42:13 -07:00
Maciej Bieniek cfea8a9ad1 Do not configure Shelly config entry created by custom component (#51616) 2021-06-11 21:42:12 -07:00
blastoise186 880fe82337 Reduce ovo_energy polling rate to be less aggressive (#51613)
* Reduce polling rate to be less aggressive

The current polling rate is too aggressive for the purpose, this commit reduces it to 12 hours to play nice with OVO.

* tweak polling to hourly
2021-06-11 21:42:11 -07:00
jjlawren 3a5f51ed7d Handle missing section ID for Plex clips (#51598) 2021-06-11 21:42:10 -07:00
jjlawren cca1b426bb Fix Sonos battery sensors on S1 firmware (#51585) 2021-06-11 21:42:09 -07:00
GitHub Action 30c53a1a13 [ci skip] Translation update 2021-06-12 00:08:54 +00:00
Erik Montnemery bf6a412be0 Tweak device action scaffold, fix typo (#51751) 2021-06-11 23:22:18 +02:00
Franck Nijhof b83b82ca7d WLED WebSocket support - local push updates (#51683)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-06-11 20:55:08 +02:00
Brent Petit 5cc31a98e2 Add Ecobee humidifier device_info and unique_id (#51504)
* Add Ecobee humidifier device_info and unique_id

Ecobee humidifier entity was not connected to the thermostat device.
This change will ensure the entitiy is properly connected.

This change also fills out the ecobee-data.json fixutre data a bit
to address failures in the test setup.

* Add Ecobee humidifier device_info and unique_id

Adjust test fixture data to increase pytest coverage
Clean up indenting in ecobee-data.json

* Add Ecobee humidifier device_info and unique_id

Update exception case in device_info to not
be included in codecov tests. This case has
been tested locally.

* Add Ecobee humidifier device_info and unique_id

Address pylint issue

* Add Ecobee humidifier device_info and unique_id

Remove no cover pragma and add ecobee humidifier.py to
.coveragerc
2021-06-11 17:39:57 +02:00
Erik Montnemery b01b33c304 Add trigger condition (#51710)
* Add trigger condition

* Tweaks, add tests
2021-06-11 15:05:57 +02:00
Chris Talkington fa3ae9b83c Use attrs instead of properties in roku (#51735)
* Use attrs instead of properties in roku.

* Update media_player.py

* Update remote.py

* Update __init__.py

* Create entity.py

* Update entity.py

* Update media_player.py

* Update remote.py

* Update __init__.py

* Update media_player.py

* Update remote.py

* Update __init__.py

* Update __init__.py

* Update entity.py
2021-06-11 13:51:18 +02:00
Chris Talkington e0013648f6 Use attrs instead of properties in sonarr (#51737)
* Use attrs instead of properties in sonarr

* Create entity.py

* Update sensor.py

* Update __init__.py

* Update entity.py

* Update entity.py

* Update sensor.py
2021-06-11 13:48:20 +02:00
Maciej Bieniek 343e0e0933 Use attrs instead of properties in Brother (#51742)
* Use attrs instead of properties

* Use get() for device_class
2021-06-11 13:36:17 +02:00
Ville Skyttä 7d03b02192 Spelling fixes (#51642) 2021-06-11 13:35:03 +02:00
Malte Franken be0d9d185b Bump georss_generic_client to v0.6 (#51745) 2021-06-11 13:30:58 +02:00
Franck Nijhof f17a5f0db9 Clean up redudant exceptions from handlers (#51741) 2021-06-11 13:29:50 +02:00
Franck Nijhof b4aeddd12f Add 100% test coverage to WLED integration (#51743) 2021-06-11 12:45:22 +02:00
jan iversen 2a51587bc3 Remove reverse_order (replaced by generic swap) (#51665)
Remove reverse_order (replaced by generic swap).
2021-06-11 11:41:41 +02:00
Franck Nijhof 7393cba0a5 Mock WLED in all WLED tests (#51724)
* Mock WLED in all WLED tests

* Update tests/components/wled/conftest.py

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

* Remove useless AsyncMock

* Add missing asserts

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-06-11 11:36:54 +02:00
Erik Montnemery ba6b527d61 Improve editing of device actions referencing non-added HVAC (#51706)
* Improve editing of device actions referencing non-added HVAC

* Improve test coverage
2021-06-11 11:13:55 +02:00
Erik Montnemery 49bec86dae Add base schema for triggers (#51727)
* Add base schema for triggers

* Tweak

* Make TRIGGER_BASE_SCHEMA a voluptuous schema

* Make state trigger BASE_SCHEMA a voluptuous schema
2021-06-11 09:51:12 +02:00
jan iversen 9e378d51af Reduce modbus schemas and add delay to fan/light (#51664) 2021-06-11 09:22:47 +02:00
Yuval Aboulafia ed9df83932 Static typing for no_ip integration (#51694)
* no_ip type hints

* type import change

* change Any to datetime
2021-06-11 10:06:15 +03:00
GitHub Action c937c6d6b5 [ci skip] Translation update 2021-06-11 00:11:06 +00:00
Maciej Bieniek 0404acddf9 Add support for state_class (#51512) 2021-06-10 21:31:21 +03:00
Maciej Bieniek 9d64b64d34 Use attrs instead of properties in Airly integration (#51712) 2021-06-10 19:32:41 +02:00
jan iversen 453da10b62 Secure not to activate multiple venv in pre_commit hook (#51715) 2021-06-10 19:27:24 +02:00
J. Nick Koston 4722fdf465 Fix race condition in samsungtv turn off (#51716)
- The state would flip flop if the update happened before the TV had fully shutdown
2021-06-10 19:24:30 +02:00
J. Nick Koston ab490bc769 Ensure samsungtv reloads after reauth (#51714)
* Ensure samsungtv reloads after reauth

- Fixes a case of I/O in the event loop

* Ensure config entry is reloaded
2021-06-10 19:23:00 +02:00
Robert Svensson 6e0aca49af Replace properties with attr in Axis integration (#51686) 2021-06-10 19:15:01 +02:00
Erik Montnemery 76c3058d15 Rename device trigger base schema to DEVICE_TRIGGER_BASE_SCHEMA (#51719) 2021-06-10 19:11:38 +02:00
Martin Hjelmare a7f05713a0 Add Supervisor restart add-on helper (#51717) 2021-06-10 18:08:25 +02:00
Jc2k d75c97cbf3 Revert "Set Fahrenheit reporting precision to tenths for Homekit Controller climate entities (#50415)" (#51698) 2021-06-10 15:41:42 +01:00
Franck Nijhof 17cf0cef0f Increase Ambee update interval to 1 hour (#51708) 2021-06-10 15:08:35 +02:00
Maciej Bieniek 220ad2baea Use attrs instead of properties in Nettigo Air Monitor integration (#51705)
* Use attrs instead of properties

* Remove unused self

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-10 14:42:28 +02:00
Franck Nijhof fca0446ff8 Add pollen sensors to Ambee (#51702) 2021-06-10 14:18:09 +02:00
Robert Svensson 79996682e5 Add device trigger for IKEA Trådfri Shortcut button to deCONZ (#51680) 2021-06-10 13:17:48 +02:00
Erik Montnemery d9110b5208 Improve editing of device triggers referencing non-added binary sensors (#51700) 2021-06-10 13:06:01 +02:00
Erik Montnemery c1bc99890d Improve editing of device triggers referencing non-added cover (#51703) 2021-06-10 12:46:28 +02:00
tkdrob 181a4519b8 Clean up unloads (#51688) 2021-06-10 09:56:35 +02:00
Robert Svensson b1022ce84e Use supported color modes in deCONZ integration (#51656)
* Initial commit everything is working, need to reevaluate tests

* Fix supported color modes and hs_color

* Attest color mode
2021-06-10 08:51:58 +02:00
Erik Montnemery 9097f41219 Correct comment in MQTT fan (#51682) 2021-06-10 08:18:59 +02:00
Franck Nijhof b165e9f0cf Upgrade ambee to 0.3.0 (#51676) 2021-06-10 08:16:25 +02:00
jjlawren c362ffd384 Clean up unused Sonos subscriptions (#51583) 2021-06-09 23:31:14 -05:00
GitHub Action 417ba5538d [ci skip] Translation update 2021-06-10 00:11:17 +00:00
Franck Nijhof e5c6ac5ba8 Add 100% test coverage to Ambee integration (#51670)
* Add 100% test coverage to Ambee integration

* Add tests for device and entity registry
2021-06-09 20:23:16 +02:00
Franck Nijhof 332c86ff8c Restructure WLED integration (#51667) 2021-06-09 20:15:46 +02:00
jjlawren c512e1df3c Bump pysonos to 0.0.51 (#51669) 2021-06-09 18:20:28 +02:00
Kenny Millington cdf256b93e Create docker series version tag YYYY.M (#51615)
* Create docker series version tag YYYY.M.x

* Only create docker series version for stable tags

Following review on the PR51615

* Remove the ".x" suffix for docker series tags

Following review on PR51615

* Fix the in-line comment

Oversight in previous commit
2021-06-09 18:16:48 +02:00
Yuval Aboulafia e78c656bfe Static typing for Uptime (#51638)
* uptime typing

* Clean up name type

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-09 14:30:33 +02:00
Matthias Alphart 6e20edc30c Update xknx to version 0.18.5 (#51644)
* xknx 0.18.5

* fix integer DPTs trying to cast str state with `int()`

* Delint

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-09 14:08:29 +02:00
rianadon d3a4e21cb5 Convert ecobee pressure to local units (#51379)
* Convert ecobee pressure to local units

* Round inHg to 2 places
2021-06-09 14:06:24 +02:00
Pascal Vizeli c21895facb Remove ASUS.gpio / not working with new GCC (#51662) 2021-06-09 13:33:41 +02:00
Franck Nijhof a6a34c76f7 Add color mode support to WLED (#51648)
* Add color mode support to WLED

* Update homeassistant/components/wled/light.py

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

* Update homeassistant/components/wled/light.py

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

* Update homeassistant/components/wled/light.py

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

* Update homeassistant/components/wled/light.py

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

* black

* property, property

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-06-09 13:31:31 +02:00
Franck Nijhof d021e593d3 Add Ambee integration (#51645) 2021-06-09 13:22:37 +02:00
Erik Montnemery 87813ea991 Tweak light.valid_supported_color_modes (#51659) 2021-06-09 12:53:08 +02:00
cklagenberg f09f47f13a Add device trigger support for Philips Hue Wall Switch Module (#51574) 2021-06-09 12:06:02 +02:00
Maciej Bieniek 4e0c9dd18c Increase test coverage in Brother integration (#51657) 2021-06-09 11:52:21 +02:00
Erik Montnemery 443463e19d Emulate color_temp for lights which support color or white (#51654)
* Emulate color_temp for lights which support color or white

* Support legacy lights

* Tidy up group.light code

* Improve color_temp to white conversion

* Remove color_temp to white conversion

* Add test

* Tweak deconz test
2021-06-09 11:23:01 +02:00
dependabot[bot] 062e2bab67 Bump codecov/codecov-action from 1.5.0 to 1.5.2 (#51652)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-09 09:27:24 +02:00
Erik Montnemery a1e3283f8f Improve editing of device automations referencing non-added sensors (#51312) 2021-06-08 23:28:08 -07:00
GitHub Action 6ed671dfda [ci skip] Translation update 2021-06-09 00:10:10 +00:00
Franck Nijhof d0fa4e1d48 Upgrade wled to 0.5.0 (#51632) 2021-06-08 13:38:20 -07:00
J. Nick Koston d56bd61b93 Populate upnp devices from ssdp (#51221)
* Populate upnp devices from ssdp

* Update tests since data comes in via HASS format now

* pylint
2021-06-08 22:32:06 +02:00
Erik Montnemery eb687b7332 Bump hatasmota to 0.2.16 (#51623) 2021-06-08 20:49:13 +02:00
Pascal Vizeli 29a020886e Update Machine support of python 3.9 / Kernel CEC (#51637) 2021-06-08 20:48:49 +02:00
Martin Hjelmare 2eb6f16a94 Fix mysensors awesomeversion strategy usage (#51627)
* Update awesomeversion strategy use in mysensors

* Remove default version
2021-06-08 20:24:54 +02:00
Pawel abbd4d1d16 Fix Onvif get_time_zone from device (#51620)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-08 20:01:36 +02:00
Pascal Vizeli 79da2bca3f Use baseimage 2021.06.0 / Python 3.9 - Alpine 3.13 (#51628) 2021-06-08 18:12:49 +02:00
Erik Montnemery 67f3e717a8 Add support for color_mode white to tasmota light (#51608) 2021-06-08 17:43:04 +02:00
J. Nick Koston b3a67a2dd7 Bump sqlalchemy to 1.4.17 (#51593) 2021-06-08 16:53:51 +02:00
Yuval Aboulafia 7790e8f90c Static typing for Zodiac (#51622) 2021-06-08 16:03:28 +02:00
Martin Hjelmare 6de604a326 Fix mysensors tests typing (#51621) 2021-06-08 14:28:36 +02:00
Nick Whyte 3fa6c97801 Address late review of nsw fuel station (#51619) 2021-06-08 14:26:43 +02:00
blastoise186 fa42c676bb Reduce ovo_energy polling rate to be less aggressive (#51613)
* Reduce polling rate to be less aggressive

The current polling rate is too aggressive for the purpose, this commit reduces it to 12 hours to play nice with OVO.

* tweak polling to hourly
2021-06-08 14:20:15 +02:00
Maciej Bieniek 502939c430 Do not configure Shelly config entry created by custom component (#51616) 2021-06-08 13:23:25 +02:00
Franck Nijhof 4007430d72 Small entity attribute cleanup in AirVisual (#51601)
* Small entity attribute cleanup in AirVisual

* Fix icon in sensor update
2021-06-08 08:29:04 +02:00
Erik Montnemery a4587b5f3b Deprecate support for undocumented value_template in MQTT light (#51589) 2021-06-08 08:23:51 +02:00
Erik Montnemery 4e5ec26ce6 Remove value_template from MQTT_RW_PLATFORM_SCHEMA (#51590) 2021-06-08 08:23:35 +02:00
Brian Towles 01d4140177 Modern Forms integration initial pass - Fan (#51317)
* Modern Forms integration initial pass

* cleanup of typing and nits

* Stripped PR down to Fan only

* Review cleanup

* Set sleep_time to be required for service

* Adjust minimum sleep time to one minute.

* Code review changes

* cleanup icon init a little
2021-06-08 08:22:50 +02:00
Malte Franken 51fa28aac3 Bump aio_geojson_geonetnz_volcano to v0.6 (#51602) 2021-06-08 07:36:23 +02:00
jjlawren 4ffa0dd199 Detect Sonos reboots and recreate subscriptions (#51377) 2021-06-07 20:51:42 -05:00
Milan Meulemans d0a8e27036 Add Rituals number platform (#49723) 2021-06-08 03:28:31 +02:00
Michael Davie ae86e96d34 Fix misaligned high/low temperatures in weather card (#49826) 2021-06-08 03:23:44 +02:00
jjlawren de2dc92741 Handle missing section ID for Plex clips (#51598) 2021-06-08 03:17:14 +02:00
Martin Hjelmare 6c2e452e3d Fix kraken I/O and sleep in tests (#51599) 2021-06-08 03:11:17 +02:00
GitHub Action 330f713e43 [ci skip] Translation update 2021-06-08 00:21:17 +00:00
jjlawren e257dd4d07 Fix Sonos battery sensors on S1 firmware (#51585) 2021-06-08 00:29:17 +02:00
Malte Franken 490c81aebc Bump georss_qld_bushfire_alert_client to 0.5 (#51596) 2021-06-08 00:24:54 +02:00
Clifford Roche bc30920824 Correctly support use of Farenheit in Gree Climate component (#50260) 2021-06-08 00:21:03 +02:00
Robert Svensson aad90b8644 Use supported color modes in Axis integration (#51557)
* Use supported color modes in Axis integration

* Fix Frencks comments

* Do Frencks suggestion
2021-06-08 00:03:33 +02:00
Paulus Schoutsen e5028d285c Merge pull request #51595 from home-assistant/rc 2021-06-07 14:47:50 -07:00
Paulus Schoutsen 6b38480caf Bumped version to 2021.6.3 2021-06-07 14:15:39 -07:00
Erik Montnemery 4dd875199f Fix deprecated value_template for MQTT light (#51587) 2021-06-07 14:15:31 -07:00
Pascal Vizeli 70f4907414 Update builder to 2021.06.2 (#51582) 2021-06-07 14:15:30 -07:00
jjlawren bd24431930 Fix Sonos restore calls (#51565) 2021-06-07 14:15:29 -07:00
J. Nick Koston 03f10333c4 Increase isy setup timeout to 60s (#51559)
- Ensure errors are displayed in the UI
2021-06-07 14:15:28 -07:00
stephan192 619e37b600 Bump dwdwfsapi to 1.0.4 (#51556) 2021-06-07 14:15:27 -07:00
Ron Klinkien 5016fd9fa8 Fix garmin_connect config flow multiple account creation (#51542) 2021-06-07 14:15:27 -07:00
Aaron Bach 45d94c7fc8 Bump aiorecollect to 1.0.5 (#51538) 2021-06-07 14:15:26 -07:00
J. Nick Koston b807b8754b Ensure host is always set with samsungtv SSDP discovery (#51527)
There was a case where self._host could have been None
before _async_set_unique_id_from_udn was called

Fixes #51186
2021-06-07 14:15:25 -07:00
Malte Franken 8818df0663 Improve log message when zone missing in geolocation trigger (#51522)
* log warning message if zone cannot be found

* improve log message

* add test case
2021-06-07 14:15:24 -07:00
Ludovico de Nittis b06558fa0a Bump pyialarm to 1.8.1 (#51519) 2021-06-07 14:15:23 -07:00
Ron Klinkien b21076c599 Bump garminconnect_aio to 0.1.4 (#51507) 2021-06-07 14:15:22 -07:00
Daniel Hjelseth Høyer ed68a268ad Fix missing Tibber power production (#51505)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-07 14:15:22 -07:00
J. Nick Koston 89db8d4519 Handle missing options in foreign_key for MSSQL (#51503) 2021-06-07 14:15:21 -07:00
Aidan Timson 96ade688d5 AsusWRT fix keyerror when firmver is missing from info (#51499)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-07 14:15:20 -07:00
J. Nick Koston 703b088f86 Fix loop in tod binary sensor (#51491)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-06-07 14:15:19 -07:00
Felipe Martins Diel 0f3b73e75f Use a single job to ping all devices in the Broadlink integration (#51466) 2021-06-07 14:15:18 -07:00
Erik Montnemery 76edfe6c62 Fix deprecated value_template for MQTT light (#51587) 2021-06-07 14:14:42 -07:00
J. Nick Koston ccf4b5a265 Move remaining code out of netdisco to eliminate as SSDP dependency (#51588) 2021-06-07 22:12:33 +02:00
Erik Montnemery 3db21b407a Add support for color_mode white to demo light (#51575)
* Add support for color_mode white to demo light

* Fix unique_id for newly added light

* Update tests
2021-06-07 20:26:25 +02:00
Aidan Timson ab2951f124 AsusWRT fix keyerror when firmver is missing from info (#51499)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-07 11:21:24 -07:00
J. Nick Koston a3146ad150 Fix loop in tod binary sensor (#51491)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-06-07 11:21:10 -07:00
Franck Nijhof a383198c0c Fully type switch entity component (#51586) 2021-06-07 19:36:34 +02:00
Pascal Vizeli 9ffdf9ea08 Update builder to 2021.06.2 (#51582) 2021-06-07 10:16:47 -07:00
Rolf Berkenbosch 1879a4acea Bump meteoalertapi to 0.2.0 (#51383)
* Update manifest.json

* Add version bump to requirements

* Add version bump to requirements

* Update manifest.json

* Update manifest.json

* Update requirements_all.txt
2021-06-07 18:08:34 +02:00
Malte Franken 67d9dc78cb Bump aio_georss_gdacs to 0.5 (#51577) 2021-06-07 17:57:44 +02:00
Andreas 88b60a44ad Bump nad_receiver to version 0.2.0 (#51381)
Co-authored-by: andreas-amlabs <andreas-amlabs@users.noreply.github.com>
2021-06-07 16:14:45 +02:00
Martin Hjelmare 7560a77e0e Type mysensors strictly (#51535) 2021-06-07 16:04:04 +02:00
Martin Hjelmare 564042ec67 Clean mysensors gateway type selection (#51531)
* Clean mysensors gateway type selection

* Fix comment grammar
2021-06-07 15:45:58 +02:00
Franck Nijhof 4c51299dcc Add easy converting string timestamps/dates to datetime objects in templates (#51576) 2021-06-07 15:02:15 +02:00
dependabot[bot] 4227a01e62 Bump home-assistant/wheels from 2021.05.4 to 2021.06.0 (#51569)
Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2021.05.4 to 2021.06.0.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2021.05.4...2021.06.0)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-07 14:54:18 +02:00
Franck Nijhof f35929ba63 Allow referencing sensor entities for before/after in time conditions (#51444)
* Allow referencing sensor entities for before/after in time conditions

* Fix typo in variable naming

* Improve test coverage
2021-06-07 14:50:31 +02:00
Franck Nijhof 88386a7f44 Cleanup of Toon (#51230) 2021-06-07 13:24:07 +02:00
Robert Svensson fb21affe45 Replace supported_features property with class attribute in deCONZ light entities (#51558)
* Replace supported_features property with class attribute

* attr_supported_features is already set to 0
2021-06-07 12:50:08 +02:00
J. Nick Koston 75dffee312 Increase isy setup timeout to 60s (#51559)
- Ensure errors are displayed in the UI
2021-06-07 11:49:37 +02:00
jjlawren 85ce679c64 Fix Sonos restore calls (#51565) 2021-06-07 11:46:56 +02:00
stephan192 ae83191121 Bump dwdwfsapi to 1.0.4 (#51556) 2021-06-07 10:53:36 +02:00
Ron Klinkien b171c5ebe9 Fix garmin_connect config flow multiple account creation (#51542) 2021-06-07 10:09:08 +02:00
Daniel Perna dc9b031544 Update pyhomematic to 0.1.73 (#51551) 2021-06-07 10:04:03 +02:00
GitHub Action 7615af35d8 [ci skip] Translation update 2021-06-07 00:18:16 +00:00
Colin Robbins c43bdbf7c8 Add lightwave state_class and unique_id properties (#51544)
* Add state_class and unique_id properties

* Update homeassistant/components/lightwave/sensor.py

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

* fix isort

* set class via attribute

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-06 20:10:16 +02:00
Malte Franken fcb8ab23ab Improve log message when zone missing in geolocation trigger (#51522)
* log warning message if zone cannot be found

* improve log message

* add test case
2021-06-06 20:03:56 +02:00
J. Nick Koston f221deef2d Ensure from __future__ import annotations in irobot_base (#51554) 2021-06-06 19:59:58 +02:00
drinfernoo 5bbf0ca6ab Add workaround for missing cleaning time in roomba (#51163) 2021-06-06 12:13:35 +02:00
Erik Montnemery e560e623e9 Add color_mode white (#51411)
* Add color_mode white

* Include brightness in white parameter

* Reformat

* Improve test coverage
2021-06-06 11:13:18 +02:00
jan iversen 50001684aa Add retries/retry_on_empty configuration parameters to Modbus (#51412)
* Add retries/retry_on_empty configuration parameters.

* Please review comment.
2021-06-06 09:13:50 +02:00
Aaron Bach 6a419483de Bump aiorecollect to 1.0.5 (#51538) 2021-06-06 08:31:11 +02:00
GitHub Action c81df50191 [ci skip] Translation update 2021-06-06 00:19:43 +00:00
J. Nick Koston 8c00c24234 Ensure host is always set with samsungtv SSDP discovery (#51527)
There was a case where self._host could have been None
before _async_set_unique_id_from_udn was called

Fixes #51186
2021-06-06 00:02:36 +02:00
Martin Hjelmare 984695e99d Clean mysensors on_unload (#51521)
* Clean mysensors on_unload

* Fix docstring
2021-06-05 20:02:32 +02:00
jan iversen 59b5f94569 Add fix delay after send/request to allow RS485 adapter to switch in modbus (#51417) 2021-06-05 14:41:32 +02:00
jan iversen b8afb7dcfe Check initial connect() worked in modbus (#51470)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-05 14:39:09 +02:00
Ludovico de Nittis 62dd9d62cb Bump pyialarm to 1.8.1 (#51519) 2021-06-05 14:11:39 +02:00
Martin Hjelmare e73cdfab2f Fix mysensors typing (#51518)
* Fix device

* Fix init

* Fix gateway

* Fix config flow

* Fix helpers

* Remove mysensors from typing ignore list
2021-06-05 13:43:39 +02:00
Martin Hjelmare 7a6d067eb4 Bump mcstatus to 6.0.0 (#51517) 2021-06-05 13:26:35 +02:00
Martin Hjelmare b61c8ce034 Disable gpmdp integration (#51509) 2021-06-05 12:15:03 +02:00
J. Nick Koston 06c9a50869 Handle missing options in foreign_key for MSSQL (#51503) 2021-06-05 12:13:12 +02:00
Ron Klinkien f2692d4eaa Bump garminconnect_aio to 0.1.4 (#51507) 2021-06-05 12:07:52 +02:00
Daniel Hjelseth Høyer 634f6ba77b Fix missing Tibber power production (#51505)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-05 11:50:56 +02:00
J. Nick Koston 12ac4109f4 Ensure ssdp can callback messages that do not have an ST (#51436)
* Ensure ssdp can callback messages that do not have an ST

Sonos sends unsolicited messages when the device reboots. We want
to capture these to ensure we can recover the subscriptions as soon
as the device reboots

* Update homeassistant/components/ssdp/__init__.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-05 09:23:51 +02:00
GitHub Action 909140a7c6 [ci skip] Translation update 2021-06-05 00:23:17 +00:00
J. Nick Koston 0cd0733438 Remove empty tests for ping now that the code in icmplib is used (#51454) 2021-06-05 01:20:41 +03:00
Felipe Martins Diel 89d90bfb1b Use a single job to ping all devices in the Broadlink integration (#51466) 2021-06-04 11:03:13 -10:00
uchagani 7bf45f7bf7 Bump islamic-prayer-times to 0.0.5 (#51174)
* Bump islamic-prayer-times to 0.0.5

* update manifest file

* update requirements_all
2021-06-04 20:45:08 +02:00
Paulus Schoutsen 1da9ac38e8 Merge pull request #51488 from home-assistant/rc 2021-06-04 10:50:36 -07:00
Paulus Schoutsen eb2f5c28a9 Bumped version to 2021.6.2 2021-06-04 10:07:09 -07:00
Paulus Schoutsen f5dd838409 Protect our user agent (#51486)
* Protect our user agent

* Fix expected error
2021-06-04 10:07:05 -07:00
Franck Nijhof 8f741e0c6f Upgrade elgato to 2.1.1 (#51483) 2021-06-04 10:07:04 -07:00
Simone Chemelli 6dcde1b2a6 Improve logging for SamsungTV (#51477) 2021-06-04 10:07:03 -07:00
Aidan Timson d9c6c3719c Bump aiolyric to 1.0.7 (#51473) 2021-06-04 10:07:03 -07:00
Matthias Alphart e10a4c2a91 Update xknx to version 0.18.4 (#51459) 2021-06-04 10:07:02 -07:00
Matthias Alphart c8655c8e37 xknx 0.18.3 (#51277) 2021-06-04 10:07:01 -07:00
J. Nick Koston 42c74c1e14 Retry isy994 setup later if isy.initialize times out (#51453)
Maybe fixes https://forum.universal-devices.com/topic/26633-home-assistant-isy-component/?do=findComment&comment=312147
2021-06-04 10:06:13 -07:00
Florent Thoumie 756a4c2ea6 Update to iaqualink 0.3.90 (#51452) 2021-06-04 10:06:12 -07:00
Paulus Schoutsen 6f4302ff70 Hot fix version of Apply modbus interval patch (#51487) 2021-06-04 19:02:42 +02:00
Franck Nijhof 05241a7a68 Allow number/sensor entities in numeric state conditions/triggers (#51439) 2021-06-04 18:14:48 +02:00
Paulus Schoutsen ede7932a57 Protect our user agent (#51486)
* Protect our user agent

* Fix expected error
2021-06-04 09:14:18 -07:00
jan iversen 5e067c2631 Allow unlimited scan_interval in modbus (#51471)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-04 18:06:44 +02:00
Franck Nijhof e41e153220 Upgrade elgato to 2.1.1 (#51483) 2021-06-04 09:02:59 -07:00
Simone Chemelli 3d8804bbcf Improve logging for SamsungTV (#51477) 2021-06-04 09:02:39 -07:00
Aidan Timson 12f2482c9b Bump aiolyric to 1.0.7 (#51473) 2021-06-04 17:26:44 +02:00
J. Nick Koston 5fc1822b43 Retry isy994 setup later if isy.initialize times out (#51453)
Maybe fixes https://forum.universal-devices.com/topic/26633-home-assistant-isy-component/?do=findComment&comment=312147
2021-06-04 08:54:45 +02:00
Matthias Alphart e5c70c8789 Update xknx to version 0.18.4 (#51459) 2021-06-04 08:34:16 +02:00
Florent Thoumie 68f6506ff9 Update to iaqualink 0.3.90 (#51452) 2021-06-04 08:32:01 +02:00
Dermot Duffy cf954881f6 Address Hyperion camera post-merge code review (#51457) 2021-06-04 08:24:38 +02:00
Eduard van Valkenburg 07d6186fea Small fixes in SIA (#51401)
* fixes from comment in #51206

* reverted name to async_
2021-06-03 20:43:15 -04:00
Paulus Schoutsen bf3a561149 Bump aiohue to 2.5.1 (#51447) 2021-06-03 17:16:32 -07:00
Paulus Schoutsen 1aa6266fb4 Merge pull request #51449 from home-assistant/rc 2021-06-03 17:09:29 -07:00
Paulus Schoutsen a3c5022956 Bumped version to 2021.6.1 2021-06-03 15:45:09 -07:00
Bram Kragten eb45714c16 Update frontend to 20210603.0 (#51442) 2021-06-03 15:44:37 -07:00
Raman Gupta e8aa578acc Bump zwave-js-server-python to 0.26.1 (#51425) 2021-06-03 15:44:37 -07:00
Jc2k 08e58e9f7d Bump aiohomekit to 0.2.67 (fixes #51391) (#51418) 2021-06-03 15:44:36 -07:00
Philip Allgaier 46ad5eeb63 Fix shopping list "complete all" service name (#51406) 2021-06-03 15:44:35 -07:00
Daniel Hjelseth Høyer 3bbf1e7c83 Fix Tibber Pulse device name and sensor update (#51402) 2021-06-03 15:44:34 -07:00
Raman Gupta 4cf2f49d7e Fix no value error for heatit climate entities (#51392) 2021-06-03 15:44:34 -07:00
jjlawren 10a64f17ce Handle Sonos connection issues better when polling (#51376) 2021-06-03 15:44:06 -07:00
Michael 768d49d7a6 Fix last activity consideration for AVM Fritz!Tools device tracker (#51375) 2021-06-03 15:43:22 -07:00
Michael a232f2ce7d Fix last activity consideration for AVM Fritz!Tools device tracker (#51375) 2021-06-03 15:42:59 -07:00
Bram Kragten 65f23c45a8 Update frontend to 20210603.0 (#51442) 2021-06-03 15:41:59 -07:00
Paulus Schoutsen f3b2624be3 Pin jinja (#51434) 2021-06-03 23:12:39 +02:00
Jc2k 836ce442f7 Bump aiohomekit to 0.2.67 (fixes #51391) (#51418) 2021-06-03 10:51:09 -10:00
Raman Gupta b3327e1656 Bump zwave-js-server-python to 0.26.1 (#51425) 2021-06-03 15:11:45 -04:00
J. Nick Koston c1111afef8 Allow registering a callback to ssdp that matches any key value (#51382) 2021-06-03 08:26:37 -10:00
Thomas Schamm 53ae340900 Bumped to boschshcpy==0.2.19 (#51416)
* Bumped to boschshcpy==0.2.19

* update requirements
2021-06-03 18:34:28 +02:00
Thomas Schamm ffe8b3e49b Add bosch shc platforms for sensor devices (#50720) 2021-06-03 14:39:42 +02:00
Erik Montnemery a6902ffd8a Remove is_standby from SwitchEntity (#51400) 2021-06-03 14:21:52 +02:00
Philip Allgaier 470514cb08 Fix shopping list "complete all" service name (#51406) 2021-06-03 12:40:00 +02:00
Daniel Hjelseth Høyer 1062acfe9b Fix Tibber Pulse device name and sensor update (#51402) 2021-06-03 11:59:22 +02:00
Eduard van Valkenburg e8762bdea1 Add binary sensor platform to SIA integration (#51206)
* add support for binary_sensor

* added default enabled for binary sensors

* fixed coverage and a import deleted

* disable pylint for line

* Apply suggestions from code review

* split binary sensor and used more attr fields

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-06-03 08:39:44 +02:00
uvjustin 55f158cf78 Fix HLS idle timer in stream (#51372) 2021-06-02 21:31:39 -07:00
jjlawren 2c9e6bd927 Handle Sonos connection issues better when polling (#51376) 2021-06-02 21:10:27 -07:00
Raman Gupta ba6a0b5793 Fix no value error for heatit climate entities (#51392) 2021-06-02 21:07:47 -07:00
GitHub Action 7f6e20dcbc [ci skip] Translation update 2021-06-03 00:26:58 +00:00
Jan Bouwhuis 2222a121f4 Add support for fan speed percentage and preset modes to google_assistant integration (#50283)
* support relative fan speeds

* fan preset modes

* improve tests

* Revert relative speed code report zero percentage
2021-06-02 22:09:22 +02:00
definitio 132ee972bd Add media_player.group (#38855)
* Add media group

* Minor improvements

* Use the async api for all methods

* Improve type hints

* Add missing methods

* Add tests

* Rename HomeAssistantType —> HomeAssistant

* Add more tests

* Fix unknown state

* Make some callbacks

* Add more tests

* Fix unknown state properly

* Fix names for callbacks

* Fix stop service test

* Improve tests
2021-06-02 21:25:15 +02:00
Dermot Duffy c057c9d9ab Add Hyperion camera feed (#46516)
* Initial Hyperion camera.

* Improve test coverage.

* Minor state fixes.

* Fix type annotation.

* May rebase and updates (mostly typing).

* Updates to use new camera typing improvements.

* Use new support for returning None from async_get_mjpeg_stream .

* Codereview feedback.

* Lint: Use AsyncGenerator from collections.abc .

* Update homeassistant/components/hyperion/camera.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-06-02 09:39:19 -07:00
Franck Nijhof 51704d151d Merge pull request #51370 from home-assistant/rc 2021-06-02 18:31:46 +02:00
J. Nick Koston 68714c2067 Update ping to use asyncio function in icmplib (#50808) 2021-06-02 06:10:33 -10:00
Franck Nijhof e3994e8029 Bumped version to 2021.6.0 2021-06-02 17:29:50 +02:00
Daniel Hjelseth Høyer 7938f69dc5 Fix Tibber timestamps parsing (#51368) 2021-06-02 17:29:20 +02:00
gadgetmobile 089374b7e2 Fix BleBox wLightBoxS and gateBox support (#51367)
Co-authored-by: bbx-jp <83213200+bbx-jp@users.noreply.github.com>
2021-06-02 17:29:17 +02:00
Aaron Bach b7153fe25f Bump pyiqvia to 1.0.0 (#51357) 2021-06-02 17:29:14 +02:00
Erik Montnemery f8d68e47b8 Do not attempt to unload non loaded config entries (#51356) 2021-06-02 17:29:10 +02:00
Daniel Hjelseth Høyer 31bd41582b Fix Tibber timestamps parsing (#51368) 2021-06-02 08:16:04 -07:00
Franck Nijhof 25c0739e22 Mark state final in BinarySensorEntity (#51234) 2021-06-02 14:32:25 +02:00
gadgetmobile 931ff70ebe Fix BleBox wLightBoxS and gateBox support (#51367)
Co-authored-by: bbx-jp <83213200+bbx-jp@users.noreply.github.com>
2021-06-02 14:02:37 +02:00
Guido Schmitz 3de29a7606 Add binary_sensor tests for devolo Home Control (#49843)
Co-authored-by: Markus Bong <Markus.Bong@devolo.de>
2021-06-02 13:59:35 +02:00
Erik Montnemery 1d9d9021de Do not attempt to unload non loaded config entries (#51356) 2021-06-02 10:00:24 +02:00
Franck Nijhof d51fc5814a Define ToggleEntity entity attributes as class variables (#51231)
* Define ToggleEntity entity attributes as class variables

* Fix upcloud overriding state property

* Implement available state for upcloud, to compensate removed state
2021-06-02 08:53:55 +02:00
Aaron Bach 101864aab8 Bump pyiqvia to 1.0.0 (#51357) 2021-06-01 20:35:12 -07:00
jan iversen 10dccc6734 Move pymodbus test fixtures to test_init (#51244) 2021-06-02 00:00:44 +02:00
Martin Hjelmare 783e545a67 Bump hangups to 0.4.14 (#51355) 2021-06-01 22:55:22 +02:00
Franck Nijhof 5d33cd05a8 SolarEdge: Move coordinators out of sensor platform (#51348) 2021-06-01 22:50:32 +02:00
Paulus Schoutsen dc17d664eb Bumped version to 2021.6.0b5 2021-06-01 13:39:48 -07:00
Bram Kragten e4e3d5f814 Update frontend to 20210601.1 (#51354) 2021-06-01 13:39:16 -07:00
jjlawren fc24b34408 Handle incomplete Sonos alarm event payloads (#51353) 2021-06-01 13:39:15 -07:00
Paulus Schoutsen f93acfc4c0 Merge system options into pref properties (#51347)
* Make system options future proof

* Update tests

* Add types
2021-06-01 13:39:14 -07:00
Martin Hjelmare 89a374057d Bump zwave-js-server-python to 0.26.0 (#51341) 2021-06-01 13:39:13 -07:00
definitio 5ea798462f Fix Snapcast state after restoring snapshot (#51340) 2021-06-01 13:39:13 -07:00
Eduard van Valkenburg 464c66f97f Fix SIA event data func (#51339) 2021-06-01 13:39:11 -07:00
Tobias Sauerwein 941b02b73e Fix Netatmo sensor logic (#51338) 2021-06-01 13:39:10 -07:00
Franck Nijhof d78694c9b8 Fix time condition microsecond offset when using input helpers (#51337) 2021-06-01 13:39:10 -07:00
Erik Montnemery bbd7433686 Improve time condition trace (#51335) 2021-06-01 13:39:09 -07:00
Franck Nijhof f54cbff223 Always load middle to handle forwarded proxy data (#51332) 2021-06-01 13:38:10 -07:00
Joakim Sørensen 6031f7ce99 Add arch to payload (#51330) 2021-06-01 13:35:57 -07:00
AJ Schmidt fac5b23b86 update adext dependency (#51315) 2021-06-01 13:35:56 -07:00
Bram Kragten bee89a12ec Update frontend to 20210601.1 (#51354) 2021-06-01 13:35:13 -07:00
Paulus Schoutsen ee2c950716 Merge system options into pref properties (#51347)
* Make system options future proof

* Update tests

* Add types
2021-06-01 22:34:31 +02:00
jjlawren 9e3ee73b8b Handle incomplete Sonos alarm event payloads (#51353) 2021-06-01 13:28:56 -07:00
Daniel Hjelseth Høyer 12b8672f84 Use entity class vars for Melcloud (#51351)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-06-01 22:21:07 +02:00
Franck Nijhof fcdd8b11a6 Collection of changing entity properties to class attributes - 2 (#51345) 2021-06-01 12:43:55 -07:00
Eduard van Valkenburg e5dff49440 Fix SIA event data func (#51339) 2021-06-01 20:32:17 +02:00
Martin Hjelmare 91b6f9d7d0 Bump zwave-js-server-python to 0.26.0 (#51341) 2021-06-01 19:26:54 +02:00
definitio 6a474e74e8 Fix Snapcast state after restoring snapshot (#51340) 2021-06-01 19:07:51 +02:00
Franck Nijhof cdd1f6b2f0 Always load middle to handle forwarded proxy data (#51332) 2021-06-01 09:38:55 -07:00
Tobias Sauerwein d975f9eb0a Fix Netatmo sensor logic (#51338) 2021-06-01 17:58:25 +02:00
Franck Nijhof c5dc99c052 Fix time condition microsecond offset when using input helpers (#51337) 2021-06-01 17:57:23 +02:00
Erik Montnemery 63e16de6c0 Improve time condition trace (#51335) 2021-06-01 17:07:45 +02:00
Joakim Sørensen fb281c6bde Add arch to payload (#51330) 2021-06-01 15:09:23 +02:00
Shay Levy f3715cef6d Bump aioswitcher to 1.2.3 (#51324) 2021-06-01 13:48:53 +02:00
Bram Kragten 76527ab79a Bumped version to 2021.6.0b4 2021-06-01 13:13:34 +02:00
Bram Kragten 42bf29856e Update frontend to 20210601.0 (#51329) 2021-06-01 13:10:32 +02:00
Maciej Bieniek 96191c07c9 Fix exception after removing Shelly config entry and stopping HA (#51321)
* Fix device shutdown twice

* Change if logic
2021-06-01 13:10:30 +02:00
Eugenio Panadero 0856232ea6 Bump aiopvpc to apply quickfix for new electricity price tariff (#51320)
Since 2021-06-01, the three PVPC price tariffs become one and only: '2.0 TD',
and the JSON schema from the official API (data source of this integration)
is slightly different.

This patch allows a no-pain jump between the old tariffs and the new one.
2021-06-01 13:10:29 +02:00
Paulus Schoutsen 413fd1b255 Trusted networks auth provider warns if detects a requests with x-forwarded-for header while the http integration is not configured for reverse proxies (#51319)
* Trusted networks auth provider to require http integration configured for proxies to allow logging in with requests with x-forwarded-for header

* Make it a warning
2021-06-01 13:09:16 +02:00
Paulus Schoutsen bd0373388d Trusted networks auth provider warns if detects a requests with x-forwarded-for header while the http integration is not configured for reverse proxies (#51319)
* Trusted networks auth provider to require http integration configured for proxies to allow logging in with requests with x-forwarded-for header

* Make it a warning
2021-06-01 12:51:44 +02:00
Bram Kragten 94ae8396dd Update frontend to 20210601.0 (#51329) 2021-06-01 12:38:49 +02:00
Paulus Schoutsen 45e1473f83 Improve config validation for key_value_schemas (#49429) 2021-06-01 11:23:59 +02:00
Maciej Bieniek ed9b199372 Fix exception after removing Shelly config entry and stopping HA (#51321)
* Fix device shutdown twice

* Change if logic
2021-06-01 11:41:34 +03:00
Raman Gupta b91696c139 Switch to using entity class attributes where possible in zwave_js (#51207)
* Switch to using entity class attributes where possible in zwave_js

* fix

* revert docstring

* remove unused init

* Revert some changes based on feedback in #51181

* switch to class atributes
2021-06-01 10:26:22 +02:00
Franck Nijhof 6b0e57e641 Define SwitchEntity entity attributes as class variables (#51232) 2021-06-01 10:23:10 +02:00
Eugenio Panadero 3d45f00fad Bump aiopvpc to apply quickfix for new electricity price tariff (#51320)
Since 2021-06-01, the three PVPC price tariffs become one and only: '2.0 TD',
and the JSON schema from the official API (data source of this integration)
is slightly different.

This patch allows a no-pain jump between the old tariffs and the new one.
2021-06-01 09:45:37 +02:00
Daniel Rheinbay 3c452f8c9b Refactor yeelight integration to use only flows (#51255)
* Refactor light.py to use only flows.py, eliminating transitions.py

* Reformat yeelight source code using black
2021-06-01 09:04:49 +02:00
Matthias Alphart 549b0b0727 KNX: Support for XY-color lights (#51306)
* support for xy-color

* replace invalid name
2021-06-01 08:59:51 +02:00
Matthias Alphart 164e45f0a7 KNX: move some Schema to schema.py (#51307)
* create platform schema node from schema class

* move connection schema to schema.py

* rename SCHEMA to ENTITY_SCHEMA

* Final module level constants
2021-06-01 08:59:23 +02:00
Franck Nijhof fb682665e2 Upgrade pylint to 2.8.3 (#51308) 2021-06-01 08:48:53 +02:00
AJ Schmidt 0e0da26852 update adext dependency (#51315) 2021-06-01 08:44:56 +02:00
GitHub Action 2a746acf3a [ci skip] Translation update 2021-06-01 00:30:06 +00:00
Paulus Schoutsen bd279786bb Bumped version to 2021.6.0b3 2021-05-31 16:43:14 -07:00
Paulus Schoutsen 837efaf29b Updated frontend to 20210531.1 (#51314) 2021-05-31 16:43:08 -07:00
Paulus Schoutsen a904b1e37f Set up cloud semi-dependencies at start (#51313) 2021-05-31 16:43:07 -07:00
Joakim Sørensen 14db5a0999 Move version validation to resolver (#51311) 2021-05-31 16:43:07 -07:00
Jc2k cbc75ffe8a Bump aiohomekit to 0.2.66 (#51310) 2021-05-31 16:43:06 -07:00
Robert Svensson 1e2913ad4c Fix stream profiles not available as expected (#51305) 2021-05-31 16:43:05 -07:00
Paulus Schoutsen 127a230703 Add system option to disable polling (#51299) 2021-05-31 16:43:04 -07:00
Pascal Vizeli b3ccc44ee9 Revert "GRPC is fixed, don't need a workaround" (#51289)
This reverts commit 9d174e8a05.
2021-05-31 16:43:03 -07:00
Joakim Sørensen c4a98755a3 Resolve addon repository slug for device registry (#51287)
* Resolve addon repository slug for device registry

* typo

* Adjust onboarding test

* Use /store
2021-05-31 16:43:03 -07:00
J. Nick Koston 273f57261c Upgrade HAP-python to 3.5.0 (#51261)
* Upgrade HAP-python to 3.4.2

- Fixes for malformed event sending

- Performance improvements

* Bump

* update tests to point to async
2021-05-31 16:43:02 -07:00
Ron Klinkien a08fffea17 Fix Garmin Connect integration with python-garminconnect-aio (#50865) 2021-05-31 16:43:01 -07:00
Paulus Schoutsen f472219c68 Set up cloud semi-dependencies at start (#51313) 2021-06-01 01:35:31 +02:00
Paulus Schoutsen 354dd39f24 Updated frontend to 20210531.1 (#51314) 2021-06-01 01:35:08 +02:00
Paulus Schoutsen 4821484d2c Add system option to disable polling (#51299) 2021-05-31 15:36:40 -07:00
Joakim Sørensen 5d6b6deed4 Move version validation to resolver (#51311) 2021-05-31 15:32:03 -07:00
Jc2k 95362d4215 Bump aiohomekit to 0.2.66 (#51310) 2021-05-31 17:28:14 -05:00
Joakim Plate 6631a4e605 Philips TV ambilight support (#44867) 2021-05-31 14:39:28 -07:00
Ron Klinkien a0b3d0863b Fix Garmin Connect integration with python-garminconnect-aio (#50865) 2021-05-31 14:38:33 -07:00
Robert Svensson 6ba2ee5cef Fix stream profiles not available as expected (#51305) 2021-05-31 14:35:33 -07:00
Jan Bouwhuis 7403ba1e81 Alexa fan preset_mode support (#50466)
* fan preset_modes

* process preset mode updates from alexa correctly

* add tests

* codecov patch additional tests
2021-05-31 20:58:01 +02:00
J. Nick Koston 0e7c2cddf7 Upgrade HAP-python to 3.5.0 (#51261)
* Upgrade HAP-python to 3.4.2

- Fixes for malformed event sending

- Performance improvements

* Bump

* update tests to point to async
2021-05-31 20:47:12 +02:00
Franck Nijhof 5a4add6437 Upgrade black to 21.5b2 (#51297) 2021-05-31 21:04:20 +03:00
Austin Drummond d2623bf574 AppleTV typo in error notification (#51300)
An extraneous "f" was prefix at the beginning of the notification.

>An irrecoverable connection problem occurred when connecting to fApple TV. Please go to the Integrations page and reconfigure it.
2021-05-31 20:59:55 +03:00
Nikolai 52e7d57533 Processing of messages from channel by telegram_bot (#51274)
* Processing of messages from channel by telegram_bot

* formatted using Black

* refactor

* check allowed chat
2021-05-31 16:35:49 +02:00
Maciej Bieniek c9178e58b5 Add support for state class for Airly sensor (#51285) 2021-05-31 16:00:58 +02:00
Franck Nijhof edcae74330 Entity attributes + typing fix in deCONZ alarm control panel (#51241) 2021-05-31 14:54:42 +02:00
Salvatore Mazzarino 5377e5ed38 Update to pygtfs 0.1.6 (#51267)
* Update to pygtfs 0.1.6

Signed-off-by: Salvatore Mazzarino <dev@mazzarino.cz>

* run tasks: generate requirements
2021-05-31 14:45:56 +02:00
Joakim Sørensen 8ed8747225 Resolve addon repository slug for device registry (#51287)
* Resolve addon repository slug for device registry

* typo

* Adjust onboarding test

* Use /store
2021-05-31 14:06:11 +02:00
Pascal Vizeli 3d119fd4ab Revert "GRPC is fixed, don't need a workaround" (#51289)
This reverts commit 9d174e8a05.
2021-05-31 14:03:26 +02:00
Franck Nijhof 258b388f41 Collection of changing entity properties to class attributes (#51248)
* Collection of changing entity properties to class attributes

* Apply suggestions from code review

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-05-31 10:50:11 +02:00
Matthias Alphart 5acc3a1083 xknx 0.18.3 (#51277) 2021-05-31 09:58:48 +02:00
Erik Montnemery 532626b738 Move light helper get_supported_color_modes (#51269) 2021-05-31 09:47:58 +02:00
Erik Montnemery 04e9acc20a Simplify device condition code (#51266) 2021-05-31 09:47:30 +02:00
Erik Montnemery 489c73b4da Simplify device action code (#51263) 2021-05-31 09:47:15 +02:00
Raman Gupta a8650f4e59 Add zwave_js node status sensor (#51181)
* Add zwave_js node status sensor

* fix import

* use parent class name property

* Use more entity class attributes

* Update homeassistant/components/zwave_js/sensor.py

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

* return static values in property method

* fix PR

* switch to class atributes

* create sensor platform task if needed

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-31 08:46:28 +02:00
Paulus Schoutsen 792d7bb3f5 Bumped version to 2021.6.0b2 2021-05-30 21:13:41 -07:00
Paulus Schoutsen c20ac0efb2 Updated frontend to 20210531.0 (#51281) 2021-05-30 21:13:34 -07:00
Tobias Sauerwein 9dfd578b65 Fix unnecessary API calls in Netatmo (#51260) 2021-05-30 21:13:33 -07:00
Erik Montnemery 8fd3761893 Fix flaky statistics tests (#51242) 2021-05-30 21:13:33 -07:00
Ludovico de Nittis 99fd5be369 Bump pyialarm to 1.7 (#51233) 2021-05-30 21:13:32 -07:00
jjlawren d236e07046 Skip processed Sonos alarm updates (#51217)
* Skip processed Sonos alarm updates

* Fix bad conflict merge
2021-05-30 21:13:31 -07:00
jjlawren 835a9efc64 Reorganize SonosSpeaker class for readability (#51222) 2021-05-30 21:13:08 -07:00
Tobias Sauerwein 51d98bb9c8 Fix Netatmo data class update (#51215)
* Catch if data class entry is None

* Guard
2021-05-30 21:11:58 -07:00
Erik Montnemery b75f4b1f4d Fix flaky statistics tests (#51214)
* Fix flaky statistics tests

* Tweak
2021-05-30 21:11:57 -07:00
jjlawren fa7837bb12 Improve Sonos alarm logging (#51212) 2021-05-30 21:11:32 -07:00
jjlawren f32309273b Fix use of async in Sonos switch (#51210)
* Fix use of async in Sonos switch

* Simplify

* Convert to callback
2021-05-30 21:10:39 -07:00
J. Nick Koston b37932e163 Fix samsungtv yaml import without configured name (#51204) 2021-05-30 21:09:05 -07:00
jjlawren a0696fe923 Centralize Sonos subscription logic (#51172)
* Centralize Sonos subscription logic

* Clean up mocked Sonos Service instances, use subscription callback

* Use existing mocked attributes

* Use event dispatcher dict, move methods together, make update_alarms sync

* Create dispatcher dict once
2021-05-30 21:09:04 -07:00
Aaron David Schneider e980365a9c Add tests for sonos switch platform (#51142)
* add tests

* refactor async_added_to_hass

* fix tests and race condition

* use async_get

* typo
2021-05-30 21:09:03 -07:00
Vilppu Vuorinen 215869b3df Update to pymelcloud 2.5.3 (#51043)
Previous version of pymelcloud performs requests that are not permitted
for guest users. Bypassing these requests results only in less detailed
device info.
2021-05-30 21:04:59 -07:00
Paulus Schoutsen 7654672dd0 Updated frontend to 20210531.0 (#51281) 2021-05-30 21:04:13 -07:00
jjlawren e5309e89ea Skip processed Sonos alarm updates (#51217)
* Skip processed Sonos alarm updates

* Fix bad conflict merge
2021-05-30 21:03:53 -07:00
Tobias Sauerwein 9bd74961f0 Fix unnecessary API calls in Netatmo (#51260) 2021-05-30 20:55:45 -07:00
jjlawren 1a5d35d7bf Only debug log new Sonos SSDP discoveries (#51247)
* Only debug log new SSDP discoveries

* Use existing reference

* Remove from known on unseen

* Update homeassistant/components/sonos/speaker.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-30 20:28:22 -05:00
GitHub Action 319071ba39 [ci skip] Translation update 2021-05-31 00:25:51 +00:00
Daniel Hjelseth Høyer 0ae64325ed Use entity class vars for Mill (#51264)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-30 17:58:55 +03:00
Matt Zimmerman 416d91ba85 Clean up SmartTub (#51257)
* fix type hint

* pylint

* Update homeassistant/components/smarttub/binary_sensor.py

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

* Update homeassistant/components/smarttub/binary_sensor.py

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-30 10:10:49 +02:00
Franck Nijhof c317854e86 Small optimization in entity registry enabled deConz method (#51250) 2021-05-29 23:12:19 -05:00
J. Nick Koston 32dc62a996 Handle empty ssdp descriptions in the cache (#51253) 2021-05-29 22:50:48 -05:00
uvjustin 3ca7eb9440 Update HLS playlist in stream (#51191)
* Enable gzip encoding for playlist responses
* Add EXT-X-PROGRAM-DATE-TIME to playlist
* Add EXT-X-START to playlist
* Change EXT-X-VERSION from 7 to 6
* Move idle timer call to recv
* Refactor recv to remove cursor and return bool
* Rename STREAM_TIMEOUT to SOURCE_TIMEOUT
2021-05-30 11:41:23 +08:00
GitHub Action 2077efb207 [ci skip] Translation update 2021-05-30 00:24:18 +00:00
astronaut ceadb0cba0 Add gui config option consider device unavailable (#51218)
* Add gui config option consider device unavailable

* Update tests
2021-05-29 19:13:09 -04:00
Franck Nijhof d1f0ec8db8 Small tweaks to LaCrosse (#51249) 2021-05-29 23:08:25 +03:00
Ludovico de Nittis ff6d05a200 Bump pyialarm to 1.7 (#51233) 2021-05-29 18:50:45 +02:00
Franck Nijhof 06e5314bc8 Cleanup commented code + comprehensions in iOS (#51238) 2021-05-29 17:28:32 +02:00
Franck Nijhof 99afa15f47 Cleanup unneeded variable assignment in ezviz (#51239) 2021-05-29 17:34:25 +03:00
jjlawren 3d2f696d73 Reorganize SonosSpeaker class for readability (#51222) 2021-05-29 09:08:46 -05:00
Erik Montnemery 27b9d7fed0 Fix flaky statistics tests (#51242) 2021-05-29 09:00:36 -05:00
J. Nick Koston c5e5787e1d Replace sonos discovery thread with ssdp callback registration (#51033)
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-05-29 08:31:22 -05:00
Franck Nijhof 255e13930c Define CoverEntity entity attributes as class variables (#51236)
* Define CoverEntity entity attributes as class variables

* Fix supported features
2021-05-29 14:35:02 +02:00
Tobias Sauerwein d66d7cbd37 Fix Netatmo data class update (#51215)
* Catch if data class entry is None

* Guard
2021-05-29 14:10:45 +02:00
J. Nick Koston d1132270b4 Remove double schema validation in network (#51219) 2021-05-29 14:09:49 +02:00
Ville Skyttä c2f5dcefa5 Use flow result type constants more (#51122) 2021-05-29 14:09:13 +02:00
Maciej Bieniek b6716ecebd Add discovery by manufacturer to Nettigo Air Monitor integration (#51155) 2021-05-29 14:06:56 +02:00
Erik Montnemery 4d428b87cb Remove incorrect check in Alexa for SERVICE_ALARM_DISARM fail (#51224) 2021-05-29 14:06:02 +02:00
jjlawren bd34059c11 Fix use of async in Sonos switch (#51210)
* Fix use of async in Sonos switch

* Simplify

* Convert to callback
2021-05-28 23:28:07 -05:00
jjlawren 84f0d3f961 Centralize Sonos subscription logic (#51172)
* Centralize Sonos subscription logic

* Clean up mocked Sonos Service instances, use subscription callback

* Use existing mocked attributes

* Use event dispatcher dict, move methods together, make update_alarms sync

* Create dispatcher dict once
2021-05-28 21:32:50 -05:00
J. Nick Koston fb50cf9840 Add network and callback support to SSDP (#51019)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-28 21:18:59 -05:00
Nick Whyte 02cbb2025e Decrease nsw fuel request volume (#49552) 2021-05-28 20:53:20 -05:00
GitHub Action 8e87d638e1 [ci skip] Translation update 2021-05-29 00:21:56 +00:00
jjlawren 4b2831ddde Improve Sonos alarm logging (#51212) 2021-05-29 00:45:43 +02:00
Raman Gupta 19c16e079f Add separate ozone sensor for climacell (#51182) 2021-05-28 23:24:01 +02:00
Erik Montnemery 39c94e8daa Fix flaky statistics tests (#51214)
* Fix flaky statistics tests

* Tweak
2021-05-28 22:37:17 +02:00
jan iversen 538a189168 Adjust modbus climate to use address/input_type (#51202) 2021-05-28 17:57:14 +02:00
Brandon Rothweiler 88dce0ec8f Address late review of Mazda services (#51178)
* Add services for Mazda integration

* Address review comments

* Follow-up review comments

* Update dict access for send_poi service calls
2021-05-28 17:54:19 +02:00
Vilppu Vuorinen 99ee2bd0a3 Update to pymelcloud 2.5.3 (#51043)
Previous version of pymelcloud performs requests that are not permitted
for guest users. Bypassing these requests results only in less detailed
device info.
2021-05-28 16:48:30 +02:00
J. Nick Koston b3d826f2e2 Fix samsungtv yaml import without configured name (#51204) 2021-05-28 16:06:17 +02:00
Martin Hjelmare 187374c11e Set Registry name parameter to Hashable type (#51203) 2021-05-28 15:29:11 +02:00
Franck Nijhof 0de8604631 Bumped version to 2021.6.0b1 2021-05-28 14:51:21 +02:00
Bram Kragten 0c9c113528 Update frontend to 20210528.0 (#51199) 2021-05-28 14:50:59 +02:00
Pascal Vizeli de575fdb7b Update base image to 2021.05.0 (#51198) 2021-05-28 14:50:56 +02:00
Joakim Plate ae914be44f Only run philips_js notify service while TV is turned on (#51196)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-28 14:50:53 +02:00
Tobias Sauerwein fe84d060d6 Fix Netatmo sensor initialization (#51195) 2021-05-28 14:50:50 +02:00
Joakim Sørensen 3e57b6178d Use get with default for consider home (#51194) 2021-05-28 14:50:46 +02:00
Tobias Sauerwein 6388203f73 Fix Netatmo data class update (#51177) 2021-05-28 14:50:41 +02:00
jjlawren a6a18effee Improve Sonos polling (#51170)
* Improve Sonos polling

Warn user if polling is being used
Provide callback IP:port to help user fix networking
Fix radio handling when polling (no event payload)
Clarify dispatch target to reflect polling action

* Lint

* Revert method removal
2021-05-28 14:50:38 +02:00
Greg Dowling e86e70f327 Bump pyroon to 0.0.37 (#51164) 2021-05-28 14:50:35 +02:00
Erik Montnemery 27e32bbb19 Weight sensor average statistics by state durations (#51150)
* Weight sensor average statistics by state durations

* Fix test
2021-05-28 14:50:32 +02:00
Erik Montnemery b92db104dc Add deprecated backwards compatible history.LazyState (#51144) 2021-05-28 14:50:29 +02:00
jjlawren f3639c60e2 Fix Sonos media position with radio sources (#51137) 2021-05-28 14:50:26 +02:00
jjlawren 74e397dc73 Fix Sonos TV source attribute (#51131) 2021-05-28 14:50:23 +02:00
Joakim Sørensen 4ebc0d97bc Handle blank string in location name for mobile app (#51130) 2021-05-28 14:50:20 +02:00
Raman Gupta c2c760eb8b Fix zwave_js.set_value schema (#51114)
* fix zwave_js.set_value schema

* wrap all schemas in vol.Schema

* readd removed assertions
2021-05-28 14:50:17 +02:00
Eduard van Valkenburg 255577436e Followup PR for SIA integration (#51108)
* Updates based on Martin's review

* fix strings and cleaned up constants
2021-05-28 14:50:13 +02:00
Bram Kragten 0fbdce5ca6 Update frontend to 20210528.0 (#51199) 2021-05-28 14:38:01 +02:00
Joakim Sørensen 076544a1b5 Revert "Bump config version to 2 for AVM Fritz Tools (#51176)" (#51193) 2021-05-28 14:00:16 +02:00
Álvaro Fernández Rojas fe0771f7f1 Add missing outdoor temperature unit for Tado (#51197)
* Fix outdoor temperature unit for Tado

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

* tado: simplify if conditions

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-05-28 13:41:40 +02:00
Tobias Sauerwein ac922916c1 Fix Netatmo sensor initialization (#51195) 2021-05-28 13:36:22 +02:00
Joakim Plate b6cb123c4f Only run philips_js notify service while TV is turned on (#51196)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-28 13:32:26 +02:00
jan iversen 00507539c1 Change Cover to use address/input_type (#51154)
* Change Cover to use address/input_type.

* Flake.
2021-05-28 13:23:44 +02:00
Pascal Vizeli ab2ea35b7d Update base image to 2021.05.0 (#51198) 2021-05-28 13:22:58 +02:00
Erik Montnemery b339d73109 Weight sensor average statistics by state durations (#51150)
* Weight sensor average statistics by state durations

* Fix test
2021-05-28 13:16:52 +02:00
Franck Nijhof 17b2678aee Define media_player entity attributes as class variables (#51192) 2021-05-28 12:32:31 +02:00
jjlawren 39e62f9c90 Improve Sonos polling (#51170)
* Improve Sonos polling

Warn user if polling is being used
Provide callback IP:port to help user fix networking
Fix radio handling when polling (no event payload)
Clarify dispatch target to reflect polling action

* Lint

* Revert method removal
2021-05-28 12:07:58 +02:00
jan iversen e45196f9c9 Remove "old" config from modbus binary_sensor (#51117) 2021-05-28 12:06:46 +02:00
Joakim Sørensen 81097dbe40 Use get with default for consider home (#51194) 2021-05-28 12:02:35 +02:00
jan iversen 5afd16ef5d Move modbus schema validators to validators.py (#51121) 2021-05-28 11:38:31 +02:00
jan iversen 47f016b340 Remove old config from cover, including tests (#51118)
* Remove old config and standardize new config.

* Add missing safeguard.
2021-05-28 11:29:37 +02:00
Michael d200f1e504 Bump config version to 2 for AVM Fritz Tools (#51176) 2021-05-28 11:12:46 +02:00
Franck Nijhof 538a03ee0c Clean up Speedtest.net Sensors (#51124) 2021-05-28 11:10:01 +02:00
Erik Montnemery 837220cce4 Add deprecated backwards compatible history.LazyState (#51144) 2021-05-28 11:01:28 +02:00
dependabot[bot] e41fbdc9eb Bump actions/cache from 2.1.5 to 2.1.6 (#51185)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 10:42:22 +02:00
Franck Nijhof 0b15f3aa98 Define alarm_control_panel entity attributes as class variables (#51120)
* Define alarm_control_panel entity attributes as class variables

* Example Verisure

* Remove redundant AttributeError
2021-05-28 08:29:01 +02:00
Franck Nijhof e9b09325c9 Use entity class vars in SolarEdge (#51123) 2021-05-28 08:24:55 +02:00
Tobias Sauerwein eb66f8ef6d Fix Netatmo data class update (#51177) 2021-05-28 08:00:11 +02:00
uvjustin 6ad29aec2c Adjust segment duration calculation in stream (#51149)
* Calculate min segment duration internally

* Rename segments to sequences in StreamOutput

* Fix segment duration calculation in test_worker
2021-05-28 13:36:41 +08:00
jjlawren e08de22737 Fix totalconnect test calling public host (#51138) 2021-05-27 21:30:37 -05:00
Raman Gupta ca8d09e5e1 Add zwave_js.multicast_set_value service (#51115)
* Add zwave_js.multicast_set_value service

* comment

* Add test for multiple config entries validation

* additional validation test

* brevity

* wrap schema in vol.Schema

* Update homeassistant/components/zwave_js/services.py

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

* do node transform and multicast validation in schema validation

* move poll value entity validation into schema validation, pass helper functions dev and ent reg instead of retrieving it every time

* make validators nested functions since they don't neeed to be externally accessible

* Update homeassistant/components/zwave_js/services.py

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

* Remove errant ALLOW_EXTRA

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-27 21:57:35 -04:00
GitHub Action 93ada0a675 [ci skip] Translation update 2021-05-28 00:19:07 +00:00
Greg Dowling 02ac9a75b1 Bump pyroon to 0.0.37 (#51164) 2021-05-27 21:01:04 +02:00
Aaron David Schneider f7f8672eea Add tests for sonos switch platform (#51142)
* add tests

* refactor async_added_to_hass

* fix tests and race condition

* use async_get

* typo
2021-05-27 19:56:59 +02:00
Franck Nijhof 7dff4d6ad7 Define climate entity attributes as class variables (#51006) 2021-05-27 17:39:43 +02:00
tkdrob d1c4d0de49 Use bool annotations for setup entries (#51166) 2021-05-27 17:39:06 +02:00
Shay Levy b6355bcb48 Add myself to Switcher codeowners (#51158) 2021-05-27 17:37:54 +02:00
tkdrob c0656878db Normalize async_setup_entry (#51161) 2021-05-27 15:56:20 +02:00
Eduard van Valkenburg 701c4ee624 Update sia tests (#51151) 2021-05-27 15:35:17 +02:00
Franck Nijhof d9eb1d85a2 Clean up DNS IP integration (#51143)
* Clean up DNS IP integration

* Commit missing change oops
2021-05-27 15:10:28 +03:00
Franck Nijhof eb2b60434c Clean up Local IP integration (#51126) 2021-05-27 15:04:40 +03:00
ollo69 69e454fd49 Add missing function signature (#51153) 2021-05-27 14:52:05 +03:00
René Klomp 65f2fe9c01 Bump pysma version to 0.5.0 (#51098)
* Use new get_sensors method

* Update pysma requirement

* Update primary codeowner

* Update device_info handling

* Fix LEGACY_MAP

* Updated tests

* Fix pysma references

* Fix pylint raise-missing-from

* Better import of Sensors

* Remove software version related changes

* Revert codeowners change
2021-05-27 12:53:14 +02:00
Eduard van Valkenburg cede36d91c Followup PR for SIA integration (#51108)
* Updates based on Martin's review

* fix strings and cleaned up constants
2021-05-27 10:55:47 +02:00
jjlawren f0952d3ee8 Fix Sonos media position with radio sources (#51137) 2021-05-27 10:53:51 +02:00
jan iversen 8d365e8bf5 After merge, review. (#51139) 2021-05-27 08:28:31 +02:00
Anders Melchiorsen fdfb84e8e2 Upgrade pysonos to 0.0.50 (#51125) 2021-05-27 08:13:10 +02:00
jjlawren e4e3dc7fab Fix Sonos TV source attribute (#51131) 2021-05-26 22:12:43 -07:00
Raman Gupta 877d3e38b4 Fix zwave_js.set_value schema (#51114)
* fix zwave_js.set_value schema

* wrap all schemas in vol.Schema

* readd removed assertions
2021-05-27 00:27:35 -04:00
Joakim Sørensen 3e7729faf2 Handle blank string in location name for mobile app (#51130) 2021-05-27 06:04:05 +02:00
uvjustin 38e0cbe964 Change stream sequence number to start from 0 (#51101)
* Use constants for provider strings

* Add last_sequence property
2021-05-27 11:22:31 +08:00
GitHub Action f45bc3abc7 [ci skip] Translation update 2021-05-27 00:17:03 +00:00
Franck Nijhof d829df332d Bump version to 2021.7.0dev0 (#51116) 2021-05-26 20:18:29 +02:00
Franck Nijhof 762f15a0d3 Bumped version to 2021.6.0b0 2021-05-26 19:44:48 +02:00
Yuriy Sannikov 6391d75919 Refactor ModbusRegisterSensor class to get hub and configuration (#50234)
* refactor ModbusRegisterSensor to match the ModbusSwitch interface

* Please pylint, mypy etc.

* Remove PLATFORM.

Co-authored-by: jan Iversen <jancasacondor@gmail.com>
2021-05-26 19:28:14 +02:00
Greg Dowling 09b9218511 Handle updating config entries in Vera (#49605)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-26 09:54:02 -07:00
Austin Mroczek 22dd7df66c Improve totalconnect config flow user experience (#47926) 2021-05-26 09:48:44 -07:00
Franck Nijhof 67536b52c4 Use entity class vars in Flo (#50991) 2021-05-26 09:47:04 -07:00
ollo69 daff62f42d Add AsusWRT model and firmware information for device (#51102) 2021-05-26 09:46:06 -07:00
Barry Williams 5ac81ccb4c Openhome component now uses asyncio and handles unavailability (#49574) 2021-05-26 09:39:44 -07:00
Bram Kragten 42b92748f6 Update frontend to 20210526.0 (#51110) 2021-05-26 09:31:46 -07:00
Paulus Schoutsen bcd91cc2bd Drop certificate filling in for cloudmqtt (#51112) 2021-05-26 09:31:35 -07:00
Klaas Schoute 31c07e710a bump garage_amsterdam lib to v2.1.1 (#51111) 2021-05-26 09:31:23 -07:00
Matt Zimmerman ffb9ab21c1 Add binary sensor for smarttub errors (#49364) 2021-05-26 09:25:47 -07:00
J. Nick Koston 64661ee2b7 Add network configuration integration (#50874)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-26 09:06:30 -07:00
Erik Montnemery 16e90f12ca Add last_reset property to Tasmota energy sensors (#51107)
* Add last_reset property to Tasmota energy sensors

* Correct device class for energy sensors
2021-05-26 17:58:06 +02:00
Franck Nijhof 19c505c0f0 Add Supervisor discovery to motionEye (#50901)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-26 17:40:07 +02:00
Raman Gupta 18e6ae8750 Add WS API commands to check for and install zwave_js config updates (#51106) 2021-05-26 08:39:08 -07:00
Raman Gupta 6d9b67ddb2 Add zwave_js heal node and network WS API commands (#51047)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-26 08:38:02 -07:00
Raman Gupta 8edf7f0407 Don't enforce uniqueness requirements for Waze and Google Travel Time (#50254)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-26 08:32:26 -07:00
Brandon Rothweiler a36935dcee Add services for Mazda integration (#51016) 2021-05-26 16:36:36 +02:00
Franck Nijhof a8a13da793 Fix discovery without uid aborts on completing user flow (#51105)
* Fix discovery without uid aborts on completing user flow

* Fix comment
2021-05-26 16:29:52 +02:00
Franck Nijhof bf13af34b4 Use entity class vars in WLED (#50975) 2021-05-26 14:08:09 +02:00
Massimiliano Cannarozzo 5a5a145778 Make all MQTT cover payloads optional (#50579)
* Remove unused constant

* Make payload_close optional

* Make payload_open optional

* Compute supported features based on config
2021-05-26 13:50:44 +03:00
Raman Gupta 1de0d20a76 Bump zwave-js-server-python to 0.25.1 (#51097)
* Bump zwave-js-server-python to 0.25.1

* update fixtures
2021-05-26 12:37:24 +02:00
Erik Montnemery 789a14fc44 Add support for last_reset to MQTT sensor (#51036)
* Add support for last_reset to MQTT sensor

* Update abbreviations

* Improve test coverage
2021-05-26 11:50:29 +02:00
Matthias Alphart 4f9b7254d2 Initialize KNX expose value (#49623)
* simplify value extraction

* allow 0/1 and "True" / "False" for binary exposes

* initialize ExposeSensor value

* handle binary states

* use default for initialization
2021-05-26 11:21:11 +02:00
chpego 19c9675d4a Bump youtube-dl to 2021.04.26 (#50037) 2021-05-26 10:32:43 +02:00
Raj Laud b3607343fc Fix error in Squeezebox DHCP discovery flow (#50771)
* Map data from dhcp to squeezebox discovery flow

* Add tests for squeezebox dhcp discovery
2021-05-26 10:30:15 +02:00
Andrey Kupreychik 5ee0df29d4 Remove old Keenetic NDMS2 entities when some interfaces are unselected (#47311)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-26 10:26:23 +02:00
uvjustin c6f108f7c3 Refactor stream to use bytes (#51066)
* Refactor stream to use bytes
2021-05-26 16:19:09 +08:00
Franck Nijhof 58586d5e1f Use entity class vars in Elgato (#50973) 2021-05-26 10:18:26 +02:00
Maciej Bieniek 41a940f644 Add state class to Nettigo Air Monitor sensors (#50959) 2021-05-26 09:36:37 +02:00
ollo69 d5a9419fb7 Fix AsusWRT sensor test (#50956)
* Fix AsusWRT sensor test

* Revert use of utcnow

* Add MockDevice class

* Proper initialize static member

* Added mock_device fixture
2021-05-26 09:19:30 +02:00
Raman Gupta 5f7964b54b Add firmware updates support for zwave_js (#50390)
* Add WS API support for zwave_js firmware updates

* move file to fixture

* review comments

* fix logic and test based on upstream changes

* handle failure scenario

* handle failure scenario

* fix tests and adjust message

* Update homeassistant/components/zwave_js/api.py

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

* remove return from firmware upload view because client will raise an exception if not successful

* raise if user is not an admin

* raise bad request exception if firmware command fails

* incorporate #50923

* Add test for failed command

* add event name to messages

* change error to not found

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-26 02:57:00 -04:00
Matt Zimmerman c1d5dd7141 Remove unneeded **kwargs from SmartTub reminders snooze service (#51093) 2021-05-26 08:13:26 +02:00
Erik Montnemery 154c849eac Filter unsupported parameters from light service calls (#51084)
* Filter unsupported parameters from light service calls

* Silence pylint

* Fix deconz tests

* Fix mqtt tests

* Fix scene tests

* Fix trådfri emulated CT

* Fix mqtt tests
2021-05-26 08:02:59 +02:00
Johan Josua Storm 9b13350b01 Replace wrong domain returned from xbox api revisited (#51074)
* Added replacement http to https

Somehow the fix of replacing the domain doesn't work on android, so explicit replacement of http to https protocol is needed.

* Update homeassistant/components/xbox/base_sensor.py

Co-authored-by: Jason Hunter <hunterjm@gmail.com>

Co-authored-by: Jason Hunter <hunterjm@gmail.com>
2021-05-26 02:01:35 -04:00
GitHub Action c302b5d4eb [ci skip] Translation update 2021-05-26 00:16:09 +00:00
Franck Nijhof affc8e0f0b Fix unique ID Verisure alarm control panel (#51087) 2021-05-26 00:21:53 +02:00
Franck Nijhof 997a847b5c Add support for Sensor state class to ESPHome (#51090)
* Add support for Sensor state class to ESPHome

* Bump aioesphome to 2.8.0
2021-05-26 00:21:18 +02:00
J. Nick Koston deb9135707 Handle clamped fan maxValue in homekit_controller (#51088) 2021-05-25 16:06:17 -05:00
Daniel Hjelseth Høyer 3a6a1a4d6b Tibber, state class (#50951) 2021-05-25 13:53:16 -07:00
Anaïs Betts d82f6abbe4 Consider Continuous Mode on Nuki Opener to be "unlocked" (#49557)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 21:05:56 +02:00
Matthias Alphart 8b21a652ba Create KNX sensor entity directly from config (#49642)
* create sensor entities directly from config

* move staticmethod to module level

* remove factory call
2021-05-25 20:16:54 +02:00
Nathan Spencer 9ec0b0a8da Fix for invalid value error when using UI editor for Litter-Robot's set_wait_time service (#50269) 2021-05-25 20:15:37 +02:00
Franck Nijhof 6a2d6e2046 Merge branch 'master' into dev 2021-05-25 20:10:10 +02:00
Raman Gupta 58e37435b3 Make more max lengths constants and add additional MaxLengthExceeded checks (#50337)
* Add more MaxLengthExceeded checks

* remove some validations to reduce performance impact

* check length of generated entity ID

* dont check entity ID twice and use single context id length constant

* fix test

* add missing test
2021-05-25 19:58:01 +02:00
Erik Montnemery abd6f739e8 Pylint fix (#51083) 2021-05-25 10:53:18 -07:00
J. Nick Koston 023c094b01 Add v3 smartthings hub to discovery (#51051)
- I recently switched to a v3 hub, and it has a new OUI
2021-05-25 12:40:05 -05:00
jjlawren fe75a1bb9d Set Fahrenheit reporting precision to tenths for Homekit Controller climate entities (#50415) 2021-05-25 19:32:59 +02:00
Simone Chemelli 3d41a66673 Bump aioshelly to 0.6.4 (#51081) 2021-05-25 19:28:12 +02:00
J. Nick Koston 9f22509a4b Recover fast when homekit_controller sees a zeroconf announcment for a device that is offline (#51038) 2021-05-25 11:47:45 -05:00
J. Nick Koston 98535c9e6c Set homekit controller available state at startup (#51013) 2021-05-25 11:47:28 -05:00
jjlawren 1e86818f85 Add battery support for Sonos S1 speakers (#50864) 2021-05-25 18:39:31 +02:00
Matt Zimmerman aa18ad2abf Add service to snooze SmartTub reminders (#51012)
* Add service to snooze SmartTub reminders

* minimum is 10 days

* 0->10 in services.yaml as well

* Update homeassistant/components/smarttub/services.yaml

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

* Update homeassistant/components/smarttub/services.yaml

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-25 18:37:00 +02:00
Aaron David Schneider 9bf6ea60db Add Sonos alarm to sonos component (#50719)
* add sonos_alarm

* bug fix for _update_device

* fix pylint and black and co

* small bug fix in speaker.available_alarms

* cleanup and add _LOGGER.debug statements, fix pylint

* fix pylint

* _alarm_id to alarm_id

* fixed rare bug due to raceconditions

* Part 2 of raceconditionfix

* address review suggestions

* readd check for not yet subscribed

* - platforms_ready fix
- add alarmClock to pytest mock

* fixture for ListAlarms

* cleanup mock and match UUID for test

* add simple tests for sonos_alarm

* extend test for attributes

* typhint fix

* typo

* use get_alarms() directly

* refactor available_alarms

* fix attributes

* some cleanup

* change logic of fetch_alarms_for_speaker and rename to update_alarms_for_speaker

* update_alarms_for_speaker is now a method

* Update homeassistant/components/sonos/switch.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>

* Update homeassistant/components/sonos/speaker.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-05-25 11:32:25 -05:00
brucemiranda 1de4971d54 Add ebusd boiler StateNumber and Modulation Percentage sensors (#49732)
* Added Boiler StateNumber and ModulationPercentage

* Update const.py

* Clean whitespace

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-25 18:25:12 +02:00
Paul Bottein fb61ef500c Add TV channel trait to google assistant (#49676) 2021-05-25 09:12:42 -07:00
Erik Montnemery 7b5e63132c Prevent parallel reload of automations (#50008) 2021-05-25 08:50:50 -07:00
Erik Montnemery d2804433d3 Select onoff and brightness color modes last for light groups (#51054) 2021-05-25 08:49:24 -07:00
Raman Gupta c0234df136 Remove device_registry fixture from zwave_js tests (#51072) 2021-05-25 08:48:21 -07:00
András Rutkai 727ca79b93 Updating IBM Watson SDK, replacing TTS API endpoint (#50909) 2021-05-25 17:38:09 +02:00
Raman Gupta 4875035ff8 Add zwave_js WS API commands for node ping and metadata (#51049) 2021-05-25 17:37:12 +02:00
starkillerOG e9ff4b1342 Fix alexa not discovering devices when sound mode device present (#49628)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-25 08:35:40 -07:00
Bram Kragten f4dc72c0bd Add statistics websocket endpoint (#51044)
Co-authored-by: Erik <erik@montnemery.com>
2021-05-25 08:14:43 -07:00
Bram Kragten c98f961959 Add statistics websocket endpoint (#51044)
Co-authored-by: Erik <erik@montnemery.com>
2021-05-25 08:06:24 -07:00
Bram Kragten 5d79a8fb05 Add statistics websocket endpoint (#51044)
Co-authored-by: Erik <erik@montnemery.com>
2021-05-25 08:05:57 -07:00
Bram Kragten 26563e3ea4 Add statistics websocket endpoint (#51044)
Co-authored-by: Erik <erik@montnemery.com>
2021-05-25 08:03:37 -07:00
Martin Hjelmare de74028958 Disable ee_brightbox integration (#51069) 2021-05-25 16:09:23 +02:00
Franck Nijhof 9a208e3761 Upgrade pre-commit to 2.13.0 (#51068) 2021-05-25 15:51:42 +02:00
Erik Montnemery ae8652217c Change utility_meter last_reset timestamps to UTC (#51067) 2021-05-25 15:46:54 +02:00
Jeroen Peters 67804ee5df Bump yeelight to 0.6.3 (#51065) 2021-05-25 15:36:19 +02:00
Andrey Kupreychik cbe4df1893 SSDP Discovery for NDMS2 routers (#47312)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-25 15:36:03 +02:00
Daniel Hjelseth Høyer 7c9d8cfdec Miflora, add STATE_CLASS_MEASUREMENT (#50971)
* Miflora, add STATE_CLASS_MEASUREMENT

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

* Miflora, add STATE_CLASS_MEASUREMENT

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-25 14:47:09 +02:00
tkdrob 028a07d86f Wrap up selectors (#50794)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 14:45:17 +02:00
Martin Hjelmare 9319fc6263 Update zwave_js stored add-on options (#51063)
* Update zwave_js entry data if add-on data changed

* Fix tests

* Add test
2021-05-25 08:37:34 -04:00
Andre Lengwenus c868353459 Code cleanup in LCN (#48074) 2021-05-25 14:17:36 +02:00
Martin Hjelmare bdb8cdf717 Fix zwave_js None color value (#50926) 2021-05-25 13:40:22 +02:00
Daniel Hjelseth Høyer e9c787a5eb Use entity class vars in Tibber (#50977)
* Use entity class vars in Tibber

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

* Update homeassistant/components/tibber/sensor.py

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

* Update homeassistant/components/tibber/sensor.py

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

* Use entity class vars in Tibber

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

* Use entity class vars in Tibber

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

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 13:35:18 +02:00
Michael be0a54edb1 Add strict type annotations to bluetooth_tracker (#50999) 2021-05-25 12:29:35 +01:00
Philip Allgaier d8ff52e55b Add support for custom themes to use dark mode (#46532) 2021-05-25 13:26:24 +02:00
Adrián Moreno fe34f42aa5 Add new Meteoclimatic integration (#36906)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 13:11:48 +02:00
Raman Gupta 3573249720 Bump zwave-js-server-python to 0.25.0 (#51053) 2021-05-25 13:10:42 +02:00
Simone Chemelli ef33bbe9bc Fix dispatcher for Fritz integration (#51061) 2021-05-25 12:43:50 +02:00
Franck Nijhof c5383219f1 Remove stale debug statements from tests (#51059) 2021-05-25 11:52:20 +02:00
uvjustin 2eb87b8806 Combine StreamBuffer into SegmentBuffer in stream (#51041)
* Combine StreamBuffer into SegmentBuffer in stream

* Use new style type hint in comment
Remove unused member self._segment

* Change reset_av to static helper function

* Change make_new_av to only return OutputContainer
2021-05-24 22:57:07 -07:00
GitHub Action 0fb2504e0c [ci skip] Translation update 2021-05-25 00:12:25 +00:00
Xuefer 2a47805b4a Close onvif device cleanly (#49659)
* onvif: close device cleanly

Signed-off-by: Xuefer <xuefer@gmail.com>

* onvif: Too many nested blocks

Signed-off-by: Xuefer <xuefer@gmail.com>

* update tests to cover onvif config_flow

Signed-off-by: Xuefer <xuefer@gmail.com>
2021-05-24 15:27:40 -04:00
Xuefer a7eedeeaba onvif: more debug info (#49658)
Signed-off-by: Xuefer <xuefer@gmail.com>
2021-05-24 15:24:56 -04:00
Maciej Bieniek 12e2c59a4c Improve typing in DuneHD integration (#51025)
* Improve typing

* One more typing fix

* Run hassfest

* Fix test

* Fix return from constructor

* Add missing Final

* Improve long string format

* Use bool for mute

* Remove unnecessary str type

* Fix host type

* Add missing Final

* Increase test coverage

* Suggested change

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

Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-05-24 20:09:57 +01:00
Franck Nijhof 394e044c66 Add state classes to Toon (#50978) 2021-05-24 11:15:41 -07:00
jan iversen 8721675218 Use BaseSwitch class in modbus switch/fan/light (#51031) 2021-05-24 20:13:25 +02:00
uvjustin 1ec4332e25 Use ConfigType instead of Config in async_setup type hint (#51037) 2021-05-24 10:23:16 -07:00
Raman Gupta ebf6e3d985 Add zwave_js WS API commands to replace and remove failed nodes (#51018)
* Add zwave_js WS API commands to replace and remove failed nodes

* no need to manually add node to driver in test
2021-05-24 13:11:09 -04:00
Paulus Schoutsen 6a7968593d Make camera source check faster (#51035) 2021-05-24 17:27:13 +01:00
Matt Zimmerman e964c607a3 jinja2.contextfilter decorator renamed to pass_context (#51007)
* jinja2.contextfilter decorator renamed to pass_context

* bump jinja2 dependency
2021-05-24 17:38:37 +02:00
Simone Chemelli 987e8ed5ed Add consider_home option to Fritz device_tracker (#50741)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-24 09:54:57 -05:00
Nash Kaminski 2ae91bf0ea Correct humidifier detection in venstar component and add tests (#50439)
As of version 0.14, the venstar_colortouch lib always initializes hum_setpoint to None. When a thermostat actually reports a humidifier state, this value is replaced with the integer value of the setpoint. This changeset corrects the humidifier detection as well as adds basic test cases for the Venstar component.
2021-05-24 16:41:37 +02:00
jan iversen c74e65ac2d Streamline modbus test_init (#50990)
* Streamline test_init.

* Review comments.

* Remove hub name.
2021-05-24 14:53:54 +02:00
jan iversen 1546dbbf25 Add restore temperature to modbus climate (#50963)
* Add restore temperature to climate.

* please mypy.

* Review 2.
2021-05-24 14:03:44 +02:00
J. Nick Koston 60e65a4bc2 Bump async-upnp-client to 0.18.0 (#51017)
- Adds support for a long running SSDP listener
2021-05-24 13:50:40 +02:00
jacekpaszkowski 85495c08b0 Add support for effects, transition/brightness parameters to template light, min_mireds and max_mireds templates (#43850)
* Add support for effects, transition/brightness parameters to template light, min_mireds and max_mireds templates

* code fixes

* min_mireds, max_mireds fixes

* test fixes

* more fixes

* format fix

* style fix

* _update_effect_list change

* style fix

* Fixes after review

* additional fixes

* duplicated lines removed

* fixes after CI run

* test fixes

* code and test fixes

* supports transition change, added test cases
2021-05-24 13:31:57 +02:00
hesselonline c497c0eadd Add wallbox integration (#48082)
* Wallbox component added

* resolved mergeconflicts from upstream

* fixed an incorrect removal in CODEOWNERS file

* fixes for pullrequest automatic test

* clean up code after PR tests

* fixed strings.json

* fix config_flow error > wallbox

* fixed some formatting issues

* fix pylint warnings

* fixed error in number.py > set value

* pylint warnings fixed

* some more pylint fixes

* isort fixes

* fix unused_import pylint

* remove tests

* remove test requirements

* config flow test

* test errors resolved

* test file formatting

* isort on test file

* sensor test

* isort on test

* isort test const

* remove not working sensor test

* remove test const

* add switch, number and lock test

* docstrings for test classes

* sort test_number, create test_sensor

* additional tests

* fix test error

* reduced PR to 1 component

* newline in const

* ignore test coverage -> dependency on external device (wallbox)

* do not ignore config_flow

* add test for validate_input

* remove obsolete import

* additional test config flow

* change test sensor

* docstring

* add additional test for exceptions

* fix test_config

* more tests

* fix test_config_flow

* fixed http error test

* catch connectionerror and introduce testing for this error

* remove .coveragefile

* change comment

* Update homeassistant/components/wallbox/__init__.py

review suggestion by janiversen

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

* Update homeassistant/components/wallbox/__init__.py

review suggestion by janiversen (format only)

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

* Processed review comments, include more testing for sensor component

* Isolated the async_add_executor_job to make the solution more async

* add a config flow test

* Revert "add a config flow test"

This reverts commit 9c1af82fff.

* Revert "Isolated the async_add_executor_job to make the solution more async"

This reverts commit 0bf034c331.

* Make component more async and add config flow tests

* Changes based on review comments

* made _ methods in WallboxHub for the 'non-async' call to the API and try-catch. Stored the wallbox in the class.

* moved the coordinator to __init__ and pass it as part of the WallboxHub class

* removed obsolete function in __init__

* removed CONNECTION_CLASS = config_entries.CONN_CLASS_CLOUD_POLL

* fixed spelling and imports on test files

* did isort on component files

Co-authored-by: jan iversen <jancasacondor@gmail.com>
2021-05-24 13:08:24 +02:00
jan iversen be13a73db8 Allow manual scan and add delay in switch verify. (#50974) 2021-05-24 12:59:55 +02:00
Erik Montnemery 2583e4bdc9 Add support for RGBW color to blebox light (#49562) 2021-05-24 12:24:07 +02:00
Michael 51c8b1eb0b Improve code quality of TCP platform (#51000)
* Improve code placements

* Fix entity inheritance

* fix tests

* Improve PLATFORM_SCHEMA handling

* Apply suggestions
2021-05-24 11:03:43 +01:00
Erik Montnemery 870c61a622 Add color_mode support to MQTT light with basic schema (#50464)
* Add color_mode support to MQTT light with basic schema

* Update abbreviations

* Silence pylint

* Improve test coverage

* Apply suggestions from code review
2021-05-24 11:37:02 +02:00
Erik Montnemery b169a8dbda Mark battery, humidity and pressure sensors as STATE_CLASS_MEASUREMENT (#50924)
* Mark battery, humidity and pressure sensors as STATE_CLASS_MEASUREMENT

* Fix deconz battery sensor
2021-05-24 11:36:42 +02:00
Erik Montnemery ec4a47d1db Fix sia pylint errors (#51022) 2021-05-24 11:36:04 +02:00
Matthias Alphart 331cb3b74d Fix KNX light: turn on color light with only brightness (#50979)
* fix turn on color light with only brightness

* fix comment

* fix individual_color address assignment

* python 3.8 compatibility
2021-05-24 09:51:33 +02:00
Eduard van Valkenburg 0bba0f07ac Add SIA Alarm systems (#36625)
* initial commit of SIA integration

* translations

* moved reactions to file, typed everything

* fixed no-else-return 3 times

* refactored config and fix coverage of test

* fix requirements_test

* elimated another platform

* forgot some mentions of sensor

* updated config flow steps, fixed restore and small edits

* fixed pylint

* updated config_flow with better schema, small fixes from review

* final comment and small legibility enhancements

* small fix for pylint

* fixed init

* fixes for botched rebase

* fixed port string

* updated common strings

* rebuild component with eventbus

* fixed pylint and tests

* updates based on review by @bdraco

* updates based on new version of package and reviews

* small updates with latest package

* added raise from

* deleted async_setup from test

* fixed tests

* removed unused code from addititional account step

* fixed typo in strings

* clarification and update to update_data func

* added iot_class to manifest

* fixed entity and unique id setup

* small fix in tests

* improved unique_id semantics and load/unload functions

* added typing in order to fix mypy

* further fixes for typing

* final fixes for mypy

* adding None return types

* fix hub DR identifier

* rebased, added DeviceInfo

* rewrite to clean up and make it easier to read

* replaced functions with format for id and name

* renamed tracker remover small fix in state.setter

* improved readibility of state.setter

* no more state.setter and small updates

* mypy fix

* fixed and improved config flow

* added fixtures to test and other cleaner test code

* removed timeband from config, will reintro in a options flow

* removed timeband from tests

* added options flow for zones and timestamps

* removed type ignore

* replaced mapping with collections.abc
2021-05-24 08:48:28 +02:00
Matt Zimmerman d7da32cbb9 Add refresh when changing SmartTub filtration settings (#51014) 2021-05-23 20:27:54 -05:00
Matt Zimmerman 121349f866 Bump python-smarttub to 0.0.25 (#51015) 2021-05-23 20:27:25 -05:00
GitHub Action e920afd4d8 [ci skip] Translation update 2021-05-24 00:12:23 +00:00
Maciej Bieniek c91f89260e Add state_class to entities coming from battery powered devices in Shelly integration (#51009)
* Fix sensor state_class

* Remove state class from total work time sensor

* Add state_class restore mechanism

* Remove commented code

* Remove unnecessary code
2021-05-23 23:10:22 +03:00
Niels Mündler f0cd87e031 Reduce precision in returned values to meaningful digits (#49382) 2021-05-23 21:06:58 +02:00
J. Nick Koston 3cef96e78a Update aiohomekit to subscribe more like iOS (#50997) 2021-05-23 13:39:22 -05:00
Andrew Hayworth 4d527c5cd2 Update pylutron-caseta to 0.10.0 (#51005)
This update adds support for:
- PD-15OUT outdoor switch
- RA2 Select fan controller
2021-05-23 12:51:51 -05:00
HighOnMikey c1a1a38ffc Improve legacy support for Hunter Douglas PowerView (#50918)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-23 12:47:19 -05:00
Michael dbefa8fac0 Add strict type annotations to alarm_control_panel (#50945)
* Add strict type annotations

* Apply suggestions

* Type code as optional string
2021-05-23 16:51:40 +01:00
jan iversen f55213d8b1 Update modbus cover to 100% coverage (#50996) 2021-05-23 10:18:35 -05:00
J. Nick Koston 4b0b0f5db7 Allow user to override insecure setup codes and pair with homekit_controller (#50986)
* Allow user to override invalid setup codes and pair with homekit_controller

* adjust from manual testing

* invalid -> insecure
2021-05-23 10:15:38 -05:00
Matt Zimmerman 87438dd401 Add services to SmartTub for changing filtration settings (#46980)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-23 09:00:24 -05:00
J. Nick Koston e1b6385b4d Add support for doorbell buttons to homekit_controller (#50983) 2021-05-23 08:56:16 -05:00
jjlawren 29205a9239 Sonos use common firmware version (#50861) 2021-05-23 08:43:49 -05:00
Ruslan Sayfutdinov 44bbd9396d Fix typing in config flow helper (#50994) 2021-05-23 14:08:21 +02:00
Daniel Hjelseth Høyer 9b02fd86c5 Update mill library, fix consumption data (#50992)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-23 13:11:48 +02:00
Eugenio Panadero ecb24f01a3 Bump aiopvpc from 2.0.2 to 2.1.1 (#50989)
* Remove pytz dependency and handle timezones with zoneinfo, and adapt to use input timezone as a time zone object or a string identifier
* Fix prices being badly assigned in Canary Islands timezone
* Fix sensor attributes in month changes
2021-05-23 12:48:33 +02:00
Matthias Alphart 5ca5b9ac89 Improve KNX config validation (#50980)
* remove dict repacking

* check binary_sensor device_class

* check cover device_class

* check sensor_type
2021-05-23 10:42:17 +02:00
Malte Franken 3141535d69 Bump geojson_client to 0.6 (#50985)
* bump geojson_client library to version 0.6

* add myself as codeowner
2021-05-23 08:55:02 +02:00
J. Nick Koston e4c77fd336 Bump aiohomekit to 0.2.62 (#50981)
- Discovery is now instant when a ServiceBrowser is running

Changelog: https://github.com/Jc2k/aiohomekit/compare/0.2.61...0.2.62
2021-05-22 22:22:56 -07:00
Joakim Sørensen 7ff14b47a8 Use whoami for location lookup (#50934) 2021-05-22 20:34:48 -07:00
Franck Nijhof 0cbcb9e0d6 Fix Hue overriding property methods, remove ignored typing (#50976) 2021-05-22 20:32:41 -07:00
Marcin Ciupak caad125b44 Add support for Oracle DB in recorder (#50090) 2021-05-22 21:10:27 -05:00
GitHub Action 460092ec9a [ci skip] Translation update 2021-05-23 00:13:25 +00:00
Shay Levy c7ada1e8f6 Fix flaky Shelly config flow test (#50982) 2021-05-23 02:11:02 +03:00
J. Nick Koston 45897b59f2 Turn on samsungtv with wakeonlan (#50964)
If we have the mac address from discovery, we can use it to wake
the TV.  Currently the TV goes unavailable when you turn it off
as the only way to turn it back on is wake on lan or via the remote.

Users who are not using host networking can use a script instead.
2021-05-22 15:33:37 -05:00
Franck Nijhof f4289b3fca Improve supported_color_modes typing in Light (#50969) 2021-05-22 18:48:58 +01:00
Franck Nijhof 4948bec8d5 Fix is_on attr not being used in binary sensor (#50968) 2021-05-22 19:45:05 +02:00
victorclaessen a03ee1e528 Fix Volvo On Call lock state (#50832)
* Fix Volvo On Call: Locked shows as Unlocked #43260 and #49224

* Update binary_sensor.py

Black changed 'Door lock' to "Door lock" (double quotes)

* Update homeassistant/components/volvooncall/binary_sensor.py

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

* Update binary_sensor.py

Amend code to pass pylint test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-22 19:33:02 +02:00
Lén 99e58f3c18 Fix coinbase response pagination (#50890)
* Fix issue #50500

* next is a python keyword
2021-05-22 19:31:49 +02:00
Matej Plavevski b9086b5e39 Fix Documentation leading to a 404 Page (#50962) 2021-05-22 19:31:00 +02:00
Franck Nijhof 3c8707f912 Fix tcp typing, fixing CI (#50965) 2021-05-22 19:16:11 +02:00
Franck Nijhof e64b5afa58 Typing improvements for Sentry (#50787)
* Typing improvements for Sentry

* Fix event tags access

* Fix tests
2021-05-22 19:09:19 +02:00
Franck Nijhof cad4ec867b Define light entity attributes as class variables (#50941) 2021-05-22 09:21:31 -07:00
Franck Nijhof d3bc2bc47f Define binary_sensor entity attribute as class variables (#50940) 2021-05-22 09:20:34 -07:00
Franck Nijhof f7bc456bd2 Define sensor entity attributes as class variables (#50942) 2021-05-22 18:17:35 +02:00
Franck Nijhof 38d095aa18 Define entity attributes as entity class variables (#50925)
* Define entity attributes as entity class variables

* Example coronavirus integration

* Example verisure

* Cleanup/typing fixes

* Fix Coronavirus

* Revert "Fix Coronavirus"

This reverts commit 060843860f.

* Revert "Cleanup/typing fixes"

This reverts commit 659b79e75a.

* Define entity attributes as entity class variables (attr alternative)

* Example coronavirus

* Example nut

* Example verisure

* Mark private

* Cleanup after all reverting/cherrypicking/merging

* Implement all entity properties

* Update coronavirus example

* Update nut example

* Update verisure example

* Lets not talk about this one...

* Fix multiple class attribute
2021-05-22 09:13:50 -07:00
Simone Chemelli b9a0fb93eb Add samsungtv dhcp and zeroconf discovery (#48022)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-22 10:41:18 -05:00
PeteBa aa9b99713c Add purge_entities service call to recorder (#48069) 2021-05-22 10:30:05 -05:00
carstenschroeder 9f04c7ea23 Add Openweathermap cloud coverage forecast (#50961) 2021-05-22 16:54:47 +02:00
Michael 4a64f7a696 Add strict type annotations to tcp (#50877)
* add strict type annotations

* apply suggestions

* rename to TCP_PLATFORM_SCHEMA

* Replace DiscoveryInfoType
2021-05-22 15:45:18 +01:00
Franck Nijhof 560dd0a0cc Typing improvements for TPLink (#50947)
* Typing improvements for TPLink

* Update homeassistant/components/tplink/common.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-22 13:47:26 +01:00
Maciej Bieniek afb372a680 Add Final type for constants in sensor component (#50955) 2021-05-22 13:00:53 +01:00
jan iversen 59ae78e5f0 Add restore_state to modbus binary_sensor (#50922)
* Add restore_state to binary_sensor.

* Update return value in State.
2021-05-22 13:38:05 +02:00
Ruslan Sayfutdinov 016abda12e Pylint plugin to check that relative imports are used (#50937)
* Pylint plugin to check that relative imports are used

* Fix existing sites

* Update description message

* Fix typo
2021-05-22 09:15:30 +01:00
Ruslan Sayfutdinov b704f0e729 Add strict typing to device_tracker (#50930)
* Add strict typing to device_tracker

* Update homeassistant/components/device_tracker/legacy.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-22 09:15:15 +01:00
Michael 2e316f6fd5 Add strict type annotations to canary (#50943)
* Add strict type annotations

* Add missing futur import

* Apply suggestions

* Apply suggestions
2021-05-22 09:14:59 +01:00
Erik Montnemery 15e2c6d7dc Fix typing for dt_util as_timestamp (#50886)
* Fix typing for dt_util::as_timestamp

* Apply suggestions from code review
2021-05-22 09:34:49 +02:00
Raman Gupta 92d1871de5 Fix flaky vizio test and add comments to explain logic (#50948) 2021-05-22 08:57:30 +02:00
GitHub Action 78be237447 [ci skip] Translation update 2021-05-22 00:12:02 +00:00
Milan Meulemans 5491040693 Fix missing link in scaffold comment (#50936) 2021-05-21 21:21:26 +02:00
Bram Kragten 752a4b9d2c Fix version bump script (#50932) 2021-05-21 19:31:04 +02:00
Ruslan Sayfutdinov 42ff687c32 Add missing type hints to websocket_api (#50915) 2021-05-21 09:39:18 -07:00
Erik Montnemery dc65f279a7 Add support for state_class to MQTT sensor (#50927) 2021-05-21 17:37:26 +02:00
Shay Levy 6e087039f4 Add min/max/step to MQTT number (#50869) 2021-05-21 18:35:27 +03:00
Michael 8c5c8ed153 Add strict type annotations to fitbit (#50740)
* add strict type annotations

* cast json_load()

* apply suggestions

* move SCAN_INTERVAL back to platform file

* apply suggestion

* apply suggestion

* apply suggestions

* rename to PARENT_PLATFORM_SCHEMA
2021-05-21 13:33:54 +01:00
Martin Hjelmare b4bb7c38ce Fix zwave_js api typing (#50923) 2021-05-21 14:20:58 +02:00
Martin Hjelmare 07e2f53b37 Add zwave_js add-on info dataclass (#50776) 2021-05-21 13:47:37 +02:00
Erik Montnemery 0c40f37336 Set device_class and state_class for utility_meter (#50921)
* Set device_class and state_class for utility_meter

* Update test

* Tweak tests according to review comments
2021-05-21 13:23:20 +02:00
Ruslan Sayfutdinov 00208ff0d8 Use type safe import for device_tracker.PLATFORM_SCHEMA (#50860) 2021-05-21 13:08:40 +02:00
Erik Montnemery 73d7a754e8 Mark temperature sensors as STATE_CLASS_MEASUREMENT (#50889)
* Mark temperature sensors as STATE_CLASS_MEASUREMENT

* Fix broadlink tests

* Tweak Hue changes
2021-05-21 11:44:34 +02:00
Erik Montnemery 6f26687aa7 Compile statistics for battery, humidity and pressure sensors (#50920) 2021-05-21 10:48:11 +02:00
Vladimír Záhradník c979101a02 Add Modbus fan integration (#48558)
* Add Modbus fan entity

* Update to PR.

* Pylint.

Co-authored-by: jan Iversen <jancasacondor@gmail.com>
2021-05-21 09:56:47 +02:00
Vladimír Záhradník 80d172140f Add Modbus light integration (#42120)
* Add  Modbus Light and add unit tests

* Update to original PR.

* Review comments.

* Review 2.

Co-authored-by: jan Iversen <jancasacondor@gmail.com>
2021-05-21 08:57:17 +02:00
J. Nick Koston 19aee19efd Resolve race condition in powerview when discovered by zeroconf and dhcp (#50908)
Set the host in the context before checking to ensure
that the second discovery aborts. Seen when testing
on a very fast system only
2021-05-21 07:40:55 +02:00
J. Nick Koston d9769900bb Bump aiodiscover to 1.4.2 (#50917) 2021-05-21 07:27:52 +02:00
GitHub Action 25bf884156 [ci skip] Translation update 2021-05-21 00:12:09 +00:00
Matthias Alphart 3e1f51883e Create KNX weather entity directly from config (#49640)
* create climate entities directly from config

* deprecate create_sensors

* move create staticmethod to module level

* add comment for deprecation date
2021-05-21 01:30:37 +02:00
J. Nick Koston eddc1ab778 Handle threads exiting unexpected during shutdown (#50907)
If a thread exits right when we are trying to force an exception
to shut it down, setting the exception will fail with SystemError.
At this point in the shutdown process we want to move on as this
will cause the shutdown to abort
2021-05-21 01:06:37 +02:00
Tobias Sauerwein 0623648309 Clean up Netatmo integration (#50904) 2021-05-20 19:28:21 +02:00
Ville Skyttä 19d25cd901 Change config entry state to an enum (#49654)
* Change config entry state to an enum

* Allow but deprecate EntryState str equality comparison

* Test fixes

* Rename to ConfigEntryState

* Remove str comparability backcompat

* Update new occurrences of strs cropped up during review
2021-05-20 19:19:20 +02:00
Ruslan Sayfutdinov 0e7409e617 Pylint plugin to check __init__ return type (#50868)
* Pylint plugin to check __init__ return type

* Support *args add **kwargs, type hints

* Use 'in' instead of 'any()'

* Fix last few places
2021-05-20 18:00:10 +01:00
Daniel Hjelseth Høyer fd2e640c74 Use sensor constants in recorder (#50906)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-20 18:23:00 +02:00
Ruslan Sayfutdinov 391b2f8ccd Add missing return type in Core constructors (#50884) 2021-05-20 18:53:29 +03:00
Shay Levy cf228e3fe5 Add constructor return type in integrations A-D (#50903) 2021-05-20 18:51:39 +03:00
Michael b1138b1aab Add constructor return type in integrations E-K (#50902) 2021-05-20 18:47:30 +03:00
epenet d7c0da90c5 Add support for DS2405 (#50148) 2021-05-20 17:02:25 +02:00
Michael 9eecd90afc Add constructor return type in integrations T-Z (#50899) 2021-05-20 17:00:19 +02:00
jan iversen c650deef98 Add base class for all modbus platforms (#50878)
* Add base for all platforms.

* Please pylint.
2021-05-20 16:56:11 +02:00
Maciej Bieniek f212049fc2 Add constructor return type in integrations O-S (#50896) 2021-05-20 15:58:17 +02:00
Fredrik Tuomas a65d3868cb Add support for EDS0066 (#50035)
* Add support for EDS0066

* Added a test

* Corrected entity_ids

* Added missing part of sensor entity id

* Add type hint

* Update tests/components/onewire/const.py

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

* Update tests/components/onewire/const.py

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

* Revert "Update tests/components/onewire/const.py"

This reverts commit 4a01b89868.

* Revert "Update tests/components/onewire/const.py"

This reverts commit 151eb9c0d3.

Co-authored-by: jan iversen <jancasacondor@gmail.com>
2021-05-20 15:39:34 +02:00
Klaas Schoute 61ef58aa16 bump garage_amsterdam lib to v2.0.5 (#50891) 2021-05-20 15:14:34 +02:00
Tobias Sauerwein ceec871340 Make Netatmo use async pyatmo (#49717)
* Split initialization from data retrival

* Await class initialization

* Async camera

* More async

* Remove stale code

* Clean up

* Update tests

* Fix test

* Improve error handling

* Bump pyatmo version to 5.0.0

* Add tests

* Add cloudhook test

* Increase coverage

* Add test with no camera devices

* Add test for ApiError

* Add test for timeout

* Clean up

* Catch pyatmo ApiError

* Fix PublicData

* Fix media source bug

* Increase coverage for light

* Test webhook with delayed start

* Increase coverage

* Clean up leftover data classes

* Make nonprivate

* Review comments

* Clean up stale code

* Increase cov

* Clean up code

* Code clean up

* Revert delay

* Update homeassistant/components/netatmo/climate.py

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

* Update homeassistant/components/netatmo/sensor.py

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

* Address comment

* Raise cov

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-20 14:59:19 +02:00
Maciej Bieniek e06a2a53c4 Add constructor return type in integrations L-N (#50888)
* Add constructor return type in integrations L-N

* Small fix
2021-05-20 13:06:44 +01:00
Artem Draft f3db819548 Add play_media channel support to LG Netcast (#49527) 2021-05-20 14:03:27 +02:00
Erik Montnemery e16a8063a5 Compile statistics for energy sensors (#50829)
* Compile statistics for energy sensors

* Update tests

* Rename abs_value to state

* Tweak

* Recreate statistics table

* Pylint

* Try to fix test

* Fix statistics for multiple energy sensors

* Fix energy statistics when last_reset is not set
2021-05-20 13:05:15 +02:00
Maciej Bieniek aaae4cfc8f Use constants with TypedDict in Nettigo Air Monitor integration (#50883)
* Use constants with TypedDict

* Sensor names as consts
2021-05-20 11:38:46 +01:00
Matthias Alphart be6a1bf096 Create KNX climate entity directly from config (#49638)
* create climate entities directly from config

* deprecate create_temperature_sensors

* move create staticmethod to module level

* use get() fro optional CONF_SETPOINT_SHIFT_MODE

* Fix deprecated version comment

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-20 12:23:41 +02:00
Maciej Bieniek 953e6ebe62 Use constants with TypedDict (#50880) 2021-05-20 10:36:23 +01:00
Maciej Bieniek 3bdefc5da7 Use constants with TypedDict (#50879) 2021-05-20 10:34:32 +01:00
Maciej Bieniek ccd8e1332c Address late review comments for AccuWeather integration (#50866)
* Remove unnecessary converting datetime to str

* Address late comments
2021-05-20 09:29:10 +02:00
Erik Montnemery d4d335fb9c Fix MQTT debug info for removed triggers (#50859) 2021-05-20 10:27:38 +03:00
Martin 623baa7964 Fix zamg station check (#49367) 2021-05-20 09:25:31 +02:00
Paulus Schoutsen 2976bbbbdd Store Hue bridge in hass.data before setting up platforms (#50703)
* Store bridge in hass.data before setting up platforms

* Self
2021-05-20 09:08:23 +02:00
Felipe Martins Diel 7350942e9e Implement heartbeat in the Broadlink integration (#43878)
* Implement heartbeat in the Broadlink integration

* Rename INTERVAL to HEARTBEAT_INTERVAL

* Test that we log an error message when the heartbeat fails
2021-05-20 08:10:13 +02:00
GitHub Action a021fe301c [ci skip] Translation update 2021-05-20 00:11:53 +00:00
shbatm a49d5c4266 Add ISY994 System Health Info (#50840)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-19 19:10:09 -05:00
shbatm cdf18bd4b1 Add Z-Wave Parameter and Node Rename Services to ISY994 (#50844) 2021-05-19 19:08:35 -05:00
Franck Nijhof f44efb1eea Upgrade watchdog to 2.1.2 (#50863) 2021-05-20 00:12:27 +02:00
Franck Nijhof ab9aa4466e Fix SolarEdge active check on entry setup (#50873) 2021-05-19 23:15:00 +02:00
Charles Garwood 9f754f1643 bump envoy_reader to 0.19.0 (#50827) 2021-05-19 22:30:31 +02:00
Erik Montnemery 5ee362bc34 Store sensor last_reset attribute as a string, not a datetime (#50851)
* Store last_reset attribute as a string, not a datetime

* Update tests
2021-05-19 12:28:00 -07:00
Maciej Bieniek 7573adda7f Add Final type for all core constants (#50858)
* Add Final type for all constants

* Add Final for one missing const

* Suggested change
2021-05-19 19:31:38 +03:00
Franck Nijhof ae561542c3 Merge pull request #50862 from home-assistant/rc 2021-05-19 17:30:25 +02:00
Franck Nijhof 163d2788b6 Bumped version to 2021.5.5 2021-05-19 16:54:05 +02:00
Tobias Sauerwein f141ed6977 Bump pyatmo to 4.2.3 (#50801)
* Bump pyatmo to 4.2.3

* Fix typo and update test fixture
2021-05-19 16:53:27 +02:00
jjlawren 7603bf8145 Bump pysonos to 0.0.47 (#50792) 2021-05-19 16:53:03 +02:00
Erik Montnemery 9a8317db1d Bump hatasmota to 0.2.13 (#50662)
* Bump hatasmota to 0.2.13

* Process review comment

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

* Tweak brightness compensation, improve tests

Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-19 16:50:55 +02:00
jjlawren b86cb7a072 Backport Sonos handle subscription failures (#50796) 2021-05-19 16:47:43 +02:00
jan iversen 892a2a0372 Push modbus switch to 100% test coverage (#50324)
push modbus switch to 100% test coverage.
2021-05-19 15:05:29 +02:00
Michael Klamminger 7c7432a582 Add entity_id to mqtt sensor templates (#50773)
* Add entity_id to mqtt sensor

* update test comment
2021-05-19 14:38:18 +02:00
Shay Levy 109b08bb57 Remove MQTT cover deprecated options (#50263)
* Remove MQTT cover deprecated options

* Fix pylint
2021-05-19 14:34:20 +02:00
Maciej Bieniek f192702648 Add Nettigo Air Monitor uptime sensor (#50834) 2021-05-19 13:20:11 +02:00
Shay Levy c4ced2b351 Bump aioshelly to 0.6.3 (#50857) 2021-05-19 13:53:26 +03:00
Franck Nijhof bcd022ff34 Upgrade freesms to 0.2.0 (#50853) 2021-05-19 12:48:00 +02:00
dependabot[bot] d9a5e2cb68 Bump actions/stale from 3.0.18 to 3.0.19 (#50810)
Bumps [actions/stale](https://github.com/actions/stale) from 3.0.18 to 3.0.19.
- [Release notes](https://github.com/actions/stale/releases)
- [Commits](https://github.com/actions/stale/compare/v3.0.18...v3.0.19)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-19 12:38:29 +02:00
RogerSelwyn 456c600617 Correct positioning of except statement in speedtestdotnet (#50852) 2021-05-19 11:43:41 +02:00
David Bonnes 28e9b9e01d Add evohome water_heater service calls, bump client to 0.3.15 (#50803) 2021-05-19 11:41:20 +02:00
jan iversen b7fc537cd5 Remove non pymodbus_call from modbus.py. (#50813) 2021-05-19 11:39:53 +02:00
dependabot[bot] f14f7134b3 Bump home-assistant/wheels from 2021.05.3 to 2021.05.4 (#50809)
Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2021.05.3 to 2021.05.4.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2021.05.3...2021.05.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-19 12:12:20 +03:00
Maciej Bieniek bce5f8ee05 Improve AccuWeather type annotations (#50616)
* Improve type annotations

* Remove unused argument

* Simplify state logic

* Fix uvindex state

* Fix type for logger

* Increase tests coverage

* Fix pylint arguments-differ error

* Suggested change

* Suggested change

* Remove unnecessary variable

* Remove unnecessary conditions

* Use int instead of list for forecast days

* Add enabled to sensor types dicts

* Fix request_remaining conversion and tests

* Run hassfest

* Suggested change

* Suggested change

* Do not use StateType
2021-05-19 09:37:16 +01:00
Ruslan Sayfutdinov 62386c8676 Enable type checks for device_tracker (#50805)
* Enable type checks for device_tracker

* Fix MQTT test
2021-05-19 09:36:26 +01:00
jan iversen 4c7fcae536 Small bug fixes in modbus due to async (#50812)
* Small bug fixes due to async.

* _available is true in turn_on/turn_off

* Remove double update.

* Set _available.
2021-05-19 10:13:48 +02:00
Franck Nijhof ebe1059c34 Move SolarEdge API init and add unload (#50823)
* SolarEdge: Move API init, add unload

* Slim down try-except block
2021-05-19 10:09:47 +02:00
Tobias Sauerwein 3ed416ed4c Bump pyatmo to 4.2.3 (#50801)
* Bump pyatmo to 4.2.3

* Fix typo and update test fixture
2021-05-19 08:47:06 +02:00
Ville Skyttä a2363f0243 Upgrade huawei-lte-api to 1.4.18 (#50828)
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.18

Closes https://github.com/home-assistant/core/issues/50777
2021-05-19 08:24:04 +02:00
J. Nick Koston f1d02bb137 Expand homekit zeroconf matching to use fnmatch (#50381) 2021-05-19 00:20:56 -05:00
J. Nick Koston e37256570c Add missing return type in zeroconf (#50847) 2021-05-18 22:49:10 -05:00
Maciej Bieniek a58eae1bf1 Bump brother library version (#50833) 2021-05-18 22:32:11 -05:00
jjlawren ab86c7a135 Clean up Sonos resubscription failure logic and logging (#50831) 2021-05-18 22:15:16 -05:00
jjlawren 3d5b354def Bump pysonos to 0.0.49 (#50841) 2021-05-18 20:31:38 -05:00
RogerSelwyn 26a99df0ea Capture error when speedtest module fails to identify best server (#50821)
* Capture error when speediest module fails to identify best server

* Fix pylint error

* Fix formatting with black.

Co-authored-by: Rohan Kapoor <rohan@rohankapoor.com>
2021-05-18 17:33:37 -07:00
GitHub Action 0a49de75d9 [ci skip] Translation update 2021-05-19 00:11:31 +00:00
Paulus Schoutsen c890966ce4 Updated frontend to 20210518.0 (#50842) 2021-05-18 15:54:14 -07:00
Michael 2cd2e46d73 Disable AVM FRITZ!Box Tools device_tracker entities by default (#50791) 2021-05-18 22:16:49 +02:00
shbatm 775af9d2c5 Update PyISY to v3.0.0 and ISY994 to use Async IO (#50806) 2021-05-18 14:15:47 -05:00
Aaron David Schneider 1d174a1f6f Bump pysonos to 0.0.48 (#50798) 2021-05-18 08:40:51 +02:00
Jan Bouwhuis 9abf43f95f Mqtt fan feature for resetting current speed percentage or preset_mode (#50565)
* Mqtt fan resetting speed percentage or preset_mode

* tests reset payload is working with val templates

* Remove duplicate line for CONF_PAYLOAD_HIGH_SPEED
2021-05-18 08:24:42 +02:00
J. Nick Koston 5da0191fe3 Bump zeroconf to 0.31.0 (#50807) 2021-05-17 20:52:08 -07:00
J. Nick Koston 3cc3cacd08 Start ServiceBrowser as soon as possible in zeroconf (#50784)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-05-17 20:51:05 -07:00
Shay Levy 7a60d0eae4 Enable back free-mobile (#50802) 2021-05-17 20:41:56 -07:00
Dermot Duffy 2e1037005c Allow camera stream to fail safely (#50728) 2021-05-17 20:34:25 -07:00
GitHub Action 1f80defe3a [ci skip] Translation update 2021-05-18 00:12:13 +00:00
Erik Montnemery 1ea0d8ae02 Correct trace of condition actions (#50800) 2021-05-17 16:54:17 -07:00
Paulus Schoutsen 781524ee36 Updated frontend to 20210517.0 (#50804) 2021-05-17 16:54:06 -07:00
J. Nick Koston a43561e3e6 Ensure startup can proceed if async_get_integration raises (#50799)
* Ensure startup can proceed if async_get_integration raises

There were cases where the event would never get set and
startup would deadlock because the second attempt to load
the integration would block forever

* pylint

* reorder
2021-05-17 17:32:05 -05:00
jjlawren 8129db1cfe Handle Sonos subscription renewal failures (#50793) 2021-05-17 17:26:48 -05:00
Erik Montnemery 9e681cd214 Refactor MQTT basic light pt5: Add RGB color helpers (#50780)
* Refactor MQTT basic light pt5: Add RGB color helpers

* Revert change of rounding instead of truncating RGB
2021-05-17 23:50:12 +02:00
J. Nick Koston e7f7e61e88 Ensure a wal checkpoint is scheduled nightly (#50746) 2021-05-17 16:27:51 -05:00
jjlawren b1ff9dc45e Bump pysonos to 0.0.47 (#50792) 2021-05-17 16:06:13 -05:00
G Johansson 6f7ae3727b Bump yalesmartalarmclient to 0.3.3 (#50613) 2021-05-17 22:39:56 +02:00
jan iversen ba827db8ec Update remaining modbus platforms to use pymodbus_call (#50768) 2021-05-17 22:12:18 +02:00
Paulus Schoutsen f762d3c748 Fire time changed event in Hue tests (#50783) 2021-05-17 22:03:47 +02:00
Ruslan Sayfutdinov 5ad71b5e45 Define sync hass.create_task function (#50788) 2021-05-17 14:54:06 -05:00
Paulus Schoutsen 1e10772497 Add support for local push channels to mobile_app (#50750) 2021-05-17 11:06:42 -07:00
J. Nick Koston 72288710ca Increase the sqlite cache size from ~2MiB to 8MiB (#50747) 2021-05-17 19:42:12 +02:00
Michael Klamminger 3554316f3f Update MQTT cover template handling (#50236)
* flake 8

* Implement feedback from PR

* update warning message

* added and updated tests

* remove _has_tilt_topic variable

* flake 8

* Implement feedback from PR

* update warning message

* added and updated tests

* remove _has_tilt_topic variable

* renamed _tilt_message_received to _tilt_payload_received

* merged with latesed upstream/dev

* converted if to try except for type check

* Implemented the suggestions of @emontnemery

* Tweak tests

* logger info to debug

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

* cast tilt payload as int; combine exceptions to one line

* Add test for JSONDecodeError

* Update homeassistant/components/mqtt/cover.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2021-05-17 19:31:11 +02:00
Ruslan Sayfutdinov 72dfa8606e Enable strict typing for air_quality component (#50722) 2021-05-17 08:20:05 -07:00
Paulus Schoutsen 56774a9f63 Hue: unique ID for groups + remote events (#50748) 2021-05-17 08:07:25 -07:00
Joakim Sørensen c8486879ae Update devcontainer to Python 3.9 (#50778) 2021-05-17 07:54:14 -07:00
dependabot[bot] 8dc8e885c8 Bump home-assistant/builder from 2021.04.2 to 2021.05.0 (#50754)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2021.04.2 to 2021.05.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2021.04.2...2021.05.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-17 16:43:18 +02:00
Erik Montnemery 848ab5c2bc Deduplicate code in MQTT basic light pt4: Add set_optimistic helper (#50774) 2021-05-17 16:28:30 +02:00
Joakim Sørensen 2f10f59717 Block custom integrations with missing or invalid version (#49916) 2021-05-17 15:48:41 +02:00
Matthias Alphart ac6d99d434 Create KNX binary_sensor entities directly from config (#50708) 2021-05-17 15:33:09 +02:00
Franck Nijhof 9afa7df3c1 Upgrade apprise to 0.9.3 (#50769) 2021-05-17 15:06:36 +02:00
Erik Montnemery 8c6f4a8c71 Refactor MQTT basic light pt3: Add publish helper (#50767) 2021-05-17 14:54:19 +02:00
Erik Montnemery b36021b4fd Deduplicate code in MQTT basic light pt2: Add restore_state helper (#50766)
* Refactor MQTT basic light pt2: Add restore_state helper

* Update homeassistant/components/mqtt/light/schema_basic.py

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

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2021-05-17 14:53:48 +02:00
Martin Hjelmare add594a44b Clean up smhi redundant code (#50765) 2021-05-17 14:34:58 +02:00
jan iversen 6b34ba012c Fix missing await in modbus platforms (followup on async PR) (#50710) 2021-05-17 14:20:51 +02:00
Maciej Bieniek 97559087b5 Allow some failures before setting Xiaomi Miio MIOT air purifiers unavailable (#50755) 2021-05-17 14:13:01 +02:00
nikito7 0fac3ccebc Change Modbus error message to bytes (#50725) 2021-05-17 14:12:17 +02:00
Michael df6862a519 Add strict type annotations to amazon_polly (#50697)
* add strict type annotations

* apply suggestions

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-05-17 14:09:52 +02:00
Simone Chemelli 9e86602950 Fix strings for UPNP (#50762) 2021-05-17 14:07:01 +02:00
Franck Nijhof eccefd154a Extend targets for entity component services (#50760) 2021-05-17 14:06:50 +02:00
Erik Montnemery ee4e14e45e Hoist ATTR_LAST_RESET from utility_meter to SensorEntity (#50757) 2021-05-17 13:51:09 +02:00
Austin Mroczek a9c73ac264 Fix armed_night logic in totalconnect alarm and add tests (#50694)
* Fix armed_night, add tests for alarm

* end assertions with expected values
2021-05-17 13:18:50 +02:00
Erik Montnemery 3ab14d452c Refactor MQTT basic light pt1: Add add_topic helper (#50759) 2021-05-17 12:50:54 +02:00
Franck Nijhof 74c20cdaa1 Upgrade geopy to 2.1.0 (#50714) 2021-05-17 12:26:44 +02:00
CantankerousBullMoose 9316f566c9 Rescan static wemo (#49934)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-17 12:18:14 +02:00
Matthias Alphart 1c7242a37a Create KNX cover entities directly from config (#50707) 2021-05-17 12:17:19 +02:00
Franck Nijhof 9ee3b77135 Remove discovery from iCloud (#50751) 2021-05-17 12:14:54 +02:00
Franck Nijhof ecac574eb0 Upgrade pyupgrade to v2.16.0 (#50756) 2021-05-17 11:27:09 +02:00
jan iversen ff856a9bba Simplify calls to pymodbus (#50717)
* simplify pymodbus_call.

Do not call with a function object and a check attribute, call instead
with CALL_TYPE*.

Avoid if <type> call x else call y.
Call async_pymodbus_call directly, instead of unpacking/packing.

* Declare call type in __init__.

* Modbus.py back to 100% test coverage.
2021-05-17 11:20:12 +02:00
Matthias Alphart 7b18860dcd Update xknx to version 0.18.2 (#50491)
* xknx 0.18.2

* individual colors without switch

* make `setpoint_shift_mode` optional

* Update homeassistant/components/knx/schema.py
2021-05-17 11:18:13 +02:00
Michael f9c7474a78 Add strict type annotations to ampio (#50699) 2021-05-17 11:14:47 +02:00
mountainsandcode 2d29959a52 Add control of hardware buttons to Sonos (#49977) 2021-05-17 11:12:01 +02:00
Álvaro Fernández Rojas 4357d2dc84 Update AEMET library to latest version (#50222)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-05-17 11:07:53 +02:00
Franck Nijhof 059e7c925d Remove side effects from Watson TTS init (#50716) 2021-05-17 10:46:58 +02:00
Franck Nijhof a414cad3b2 Upgrade aiodns to 3.0.0 (#50712) 2021-05-17 10:46:37 +02:00
David Nielsen 636528dd2e Update bravia-tv to 1.0.11 (#50726) 2021-05-17 09:37:13 +02:00
Paulus Schoutsen 5ea2dd8ce3 Alexa: Set Equalizer property to retrievable (#50730) 2021-05-17 09:26:37 +02:00
Kevin Eifinger 663c0374ab Add full typing to kraken (#50718)
* Add full typing to kraken

* Let device_info return DeviceInfo

* Replace unsub_listeners with entry.async_on_unload

* Raise TypeError on end of _try_get_state

* Assert Coordinator is not none

* Add class SensorType

* Add strict typing to kraken

* Add changes from code review

* Revert typed dict creation
2021-05-17 10:12:04 +03:00
Michael 120bf8aed7 fix annotation in actiontec (#50727) 2021-05-17 09:28:22 +03:00
Paulus Schoutsen 1b74359ddb Disable free-mobile because requirement breaks setuptools (#50749) 2021-05-17 08:12:23 +02:00
GitHub Action 877cb43c06 [ci skip] Translation update 2021-05-17 05:17:18 +00:00
starkillerOG db7331847f AlexaEqualizerController fix wrong class beeing used (#50724) 2021-05-16 20:49:48 -07:00
Michael 22d8f9519e Fix configflow strings for step user in fritz (#50742) 2021-05-16 20:49:31 -07:00
Ruslan Sayfutdinov 6b38adaa3d Downgrade setuptools to fix CI (#50734) 2021-05-16 20:36:23 -07:00
Matthias Alphart 05c6f3ca1d Create KNX light entities directly from config (#50700)
* create light entities directly from config

* review changes
2021-05-16 22:45:28 +02:00
Erik Montnemery 89dd3292ba Initial draft of statistics (#49852) 2021-05-16 10:23:37 -07:00
Ruslan Sayfutdinov 703456abea Better errors handling in mypy hassfest plugin (#50689) 2021-05-16 07:04:09 -07:00
Matthias Alphart 3200b0150a Create KNX notify entities directly from config (#50709) 2021-05-16 12:07:44 +02:00
Mickaël Le Baillif c2e2b046d9 Add new voices for Watson TTS (#48722)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-16 11:12:05 +02:00
jjlawren b84cf915f3 Centralize storage and updating of Sonos favorites (#50581)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-16 11:11:35 +02:00
jan iversen 224cc779c4 Correct Modbus platform cover restore state (#50421)
* Correct cover restore state.

* Change mock usage.

* Add states to convert.
2021-05-16 08:40:19 +02:00
Matthias Alphart 1e11bfae05 Create KNX fan entities directly from config (#50702) 2021-05-16 08:34:14 +02:00
Dror Eiger 0556c35e24 Set zwave_js cover device_class for shutters and blinds (#50643)
* Set device_class for shutters and blinds

* Add missing. imports

* Add tests for device class setting

* Clean up

* Avoid storing the node in an unused variable

* Fix entity name

* Extend qubino shutter discovery

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-16 08:26:16 +02:00
Matthias Alphart 222336a1db Create KNX scene entities directly from config (#50686) 2021-05-16 08:14:28 +02:00
Andre Lengwenus a92acdb528 Fix selectors and defaults in LCN service.yaml (#50705) 2021-05-16 08:06:28 +02:00
Zac West b8713774c8 Make confirmable notification blueprint use unique actions (#50706) 2021-05-15 22:50:24 -07:00
Michael edccb7eb58 Add strict type annotations to actiontect (#50672)
* add strict type annotations

* fix pylint, add coverage omit

* apply suggestions

* fix rebase conflict

* import PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA

* correct get_device_name() return annotation
2021-05-16 00:59:57 +03:00
Kevin Eifinger 256a2de7ce Add kraken code review changes (#50683) 2021-05-15 22:55:50 +02:00
Michael 7f6b8bbd1e Add strict type annotations to aladdin_connect (#50693)
* add strict type annotations

* add missing return type annotation
2021-05-15 23:53:42 +03:00
Michael bc006c9ecc Add strict type annotations to aftership (#50692)
* add strict type annotations

* import PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA

* bring needed return back
2021-05-15 23:53:10 +03:00
Franck Nijhof e293d35ac9 Clean up WLED tests (#50685)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-15 22:14:56 +02:00
Simone Chemelli 8bc75e91a0 Add color effect to Shelly's color devices (#48052)
* Add color effect

* Final commit based on updated firmware

* Update homeassistant/components/shelly/light.py

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

* Update homeassistant/components/shelly/light.py

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

* Update homeassistant/components/shelly/light.py

* Fix flake

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2021-05-15 22:43:06 +03:00
jan iversen ca558545a1 Use mock_restore_state in testing of modbus sensor (#50455) 2021-05-15 21:39:41 +02:00
Martin Hjelmare 5da64d01e2 Fix smhi typing (#50690) 2021-05-15 21:38:12 +02:00
Franck Nijhof cad41cd4ed Clean up unused method from SolarEdge tests (#50684) 2021-05-15 21:27:04 +02:00
jjlawren 1afb0a0841 Sonos improve radio metadata handling (#50493) 2021-05-15 21:19:16 +02:00
Klaas Schoute e1dd479e15 Add Garages Amsterdam integration (#43157)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-05-15 20:43:12 +02:00
Filipe Pina 0c37effc72 Add SSL support to TCP integration (#48060)
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2021-05-15 20:29:11 +02:00
Martin Hjelmare dab66a58ce Clean smhi tests (#50681) 2021-05-15 20:22:32 +02:00
Michael 562e0d785d Add strict type annotations to acer_projector (#50657) 2021-05-15 19:55:28 +02:00
jan iversen ad7be91b6a Fix modbus blocking threads (#50619)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-15 19:54:17 +02:00
Franck Nijhof 990b7c371f Upgrade PyTurboJPEG to 1.5.0 (#50670) 2021-05-15 19:41:48 +02:00
Franck Nijhof aa6b26c9ff Upgrade defusedxml to 0.7.1 (#50671) 2021-05-15 19:41:34 +02:00
Franck Nijhof de77e0be8c Upgrade pylint to 2.8.2 (#50669) 2021-05-15 19:41:17 +02:00
Erik Montnemery 97d7037d12 Bump hatasmota to 0.2.13 (#50662)
* Bump hatasmota to 0.2.13

* Process review comment

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

* Tweak brightness compensation, improve tests

Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-15 19:36:08 +02:00
Sascha Sander f142f29255 Add PV3 / DC3 sensors to Kostal Plenticore (#50614)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-15 18:54:12 +02:00
Franck Nijhof c1be4cbd79 Upgrade numpy to 1.20.3 (#50660) 2021-05-15 12:28:03 -04:00
tkdrob 7b5fff357e Add targets and selectors for services (X-Z) (#50639)
* Add targets and selectors for services (X-Z)

* Adjustments
2021-05-15 12:24:52 -04:00
Martin Hjelmare d84962bada Fix smhi retry (#50673) 2021-05-15 18:24:34 +02:00
J. Nick Koston 8e38f26978 Add support for asair brand to nexia (#50504) 2021-05-15 16:24:36 +02:00
Franck Nijhof bdeeb54d2d Deprecate PVPC YAML configuration (#50656) 2021-05-15 16:09:44 +02:00
Franck Nijhof 64a6a75330 Upgrade pyupgrade to v2.15.0 (#50666) 2021-05-15 16:04:08 +02:00
Franck Nijhof 71c21693ef Upgrade flake8-comprehensions to 3.5.0 (#50665) 2021-05-15 16:02:10 +02:00
Franck Nijhof 5ce07e689a Upgrade flake8 to 3.9.2 (#50664) 2021-05-15 15:55:45 +02:00
David De Sloovere bdc1ab2b88 Flic bump lib to 2.0.3 (#50483) 2021-05-15 15:55:07 +02:00
Franck Nijhof 4025443b67 Upgrade black to 21.5b1 (#50661) 2021-05-15 15:39:45 +02:00
Pascal Vizeli f84ceee7b7 Bump OpenCV 4.4.0.42 (#50640) 2021-05-15 15:00:03 +02:00
Franck Nijhof 7ae050c5ac Upgrade watchdog to 2.1.1 (#50659) 2021-05-15 14:56:49 +02:00
Franck Nijhof 8a135ce0f6 Deprecate Meteo-France YAML configuration (#50658) 2021-05-15 14:56:28 +02:00
Franck Nijhof c6860dc999 Deprecate JuiceNet YAML configuration (#50655) 2021-05-15 14:13:20 +02:00
Franck Nijhof 00e90736bd Deprecate Islamic Prayer Times YAML configuration (#50654) 2021-05-15 14:12:40 +02:00
Franck Nijhof b2c0bebbf0 Deprecate VeSync YAML configuration (#50652) 2021-05-15 13:56:23 +02:00
Franck Nijhof 625e6ceff3 Deprecate Soma Connect YAML configuration (#50651) 2021-05-15 13:46:16 +02:00
Franck Nijhof d72a10a5e9 Deprecate Plum Lightpad YAML configuration (#50650) 2021-05-15 13:45:54 +02:00
Franck Nijhof 599db742a3 Deprecate Mikrotik YAML configuration (#50649) 2021-05-15 13:45:25 +02:00
Franck Nijhof c9b25fe2a2 Remove YAML configuration from Local IP (#50642) 2021-05-15 13:45:10 +02:00
Franck Nijhof 117860f13b Update Hue IoT Class to Local Push (#50637) 2021-05-15 13:30:23 +02:00
Franck Nijhof 8d551e3f7b Deprecate Transmission YAML configuration (#50648) 2021-05-15 13:25:00 +02:00
Franck Nijhof 704a996956 Deprecate Tibber YAML configuration (#50646) 2021-05-15 13:17:10 +02:00
Franck Nijhof e7392609e3 Deprecate Jandy iAqualink YAML configuration (#50644) 2021-05-15 13:09:45 +02:00
Franck Nijhof f2f64348e7 Deprecate MELCloud YAML configuration (#50645) 2021-05-15 13:09:18 +02:00
tkdrob 77bed66a4d Fix roon services.yaml (#50638) 2021-05-15 11:41:43 +02:00
tkdrob a9660d5788 Add targets and selectors for services (L-M) (#50543) 2021-05-15 11:06:34 +02:00
tkdrob 5d6f4068d3 Add targets and selectors for services (U-W) (#50630)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-15 10:49:10 +02:00
tkdrob bd443af6a2 Add targets and selectors for services (N-O) (#50608) 2021-05-15 10:30:18 +02:00
tkdrob 0eca26607d Add targets and selectors for services (D-E) (#50190) 2021-05-15 09:25:19 +02:00
Michael 25b2fd0cee Add strict typing to fritzbox (#50486)
* enable strict typing

* apply suggestions

* set defaults for FritzboxConfigFlow

* improvements and suggestions

* another suggestion

* tweaks

* tweaks
2021-05-15 07:54:11 +02:00
tkdrob d37a3cded0 Add targets and selectors for services (S-T) (#50629) 2021-05-14 22:30:41 -07:00
tkdrob 2d5f5bfa9f Add targets and selectors for services (P-R) (#50628) 2021-05-14 22:07:17 -07:00
Ville Skyttä ed10856cc4 UpCloud API and typing update (#50624) 2021-05-14 21:49:41 -07:00
Franck Nijhof 7221b1e09d Sort effect lists in light groups (#50620) 2021-05-14 21:43:43 -07:00
Paulus Schoutsen 7a0f245f92 Merge pull request #50627 from home-assistant/rc 2021-05-14 14:56:50 -07:00
Martin Hjelmare e32dc306e1 Fix oauth2 helper user step typing (#50618) 2021-05-14 23:39:14 +02:00
Paulus Schoutsen 77a6d7317f Bumped version to 2021.5.4 2021-05-14 14:25:39 -07:00
Erik Montnemery 2a949cff0e Update light intents to check supported_color_modes (#50625) 2021-05-14 14:25:32 -07:00
Aaron Bach 57d8e7483d Fix IQVIA failing to start if any API call fails (#50615)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-14 14:25:31 -07:00
Erik Montnemery 728bead3b7 Update light device actions to check supported_color_modes (#50611) 2021-05-14 14:25:30 -07:00
Joakim Sørensen 0b5a077d55 Bump pyhaversion from 21.3.0 to 21.5.0 (#50540) 2021-05-14 14:25:29 -07:00
jjlawren 3e8d840905 Skip adding battery on S1 Sonos devices (#50536) 2021-05-14 14:25:28 -07:00
kennedyshead 8e3894a441 Bumps aioasuswrt to 1.3.4 (#50414) 2021-05-14 14:23:52 -07:00
Tobias Sauerwein d8379c57b4 Fix battery attribute (#50405) 2021-05-14 14:23:51 -07:00
Erik Montnemery bcd8f43e7b Update light intents to check supported_color_modes (#50625) 2021-05-14 14:23:29 -07:00
Aaron Bach 9c5f1b4406 Fix IQVIA failing to start if any API call fails (#50615)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-14 14:23:16 -07:00
Erik Montnemery 960ed13f94 Update light device actions to check supported_color_modes (#50611) 2021-05-14 22:58:37 +02:00
Paulus Schoutsen 646af533f0 Add support for Hue push updates (#50591) 2021-05-14 13:39:57 -07:00
Pascal Vizeli 7fd2f8090d Fix grpc Alpine 3.13 / i386 (#50623) 2021-05-14 22:22:35 +02:00
Raphael 2334e98806 Add Etekcity VeSync light bulbs to Homeassistant (#50272) 2021-05-14 14:41:13 -05:00
tkdrob 1160a5f239 Add targets and selectors for services (I-K) (#50542)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-14 20:34:59 +02:00
tkdrob 40993f3ebb Add DHCP support to goalzero (#50425) 2021-05-14 13:12:46 -05:00
Simone Chemelli 4d55290932 Fritz code quality improvements from #48287 and #50055 (#50479)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-14 11:46:37 -05:00
tkdrob 77e6fc6f93 Add missing requirements and target to sonos services (#50552) 2021-05-14 17:40:30 +02:00
Kevin Eifinger c220e70008 Add integration kraken (#31114)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-14 08:02:11 -07:00
Franck Nijhof a8e1a68d1f Deprecate NZBGet YAML configuration (#50603) 2021-05-14 15:51:25 +02:00
Franck Nijhof 20a39ab7e1 Remove unused config schema & logger from totalconnect (#50604) 2021-05-14 15:49:18 +02:00
Charles Garwood f33b45ec82 Add interview feedback for Z-Wave JS add node websocket (#50384)
* Add interview feedback for add node websocket

* cleanup leftover logging

* add tests

* test interview failed event

* fix event type

* include manufacturer & model from device registry

* update test
2021-05-14 09:47:09 -04:00
Franck Nijhof f5c31b89f8 Deprecate SmartHab YAML configuration (#50602) 2021-05-14 15:46:49 +02:00
Thomas Schamm 8fcf06a2a9 Add bosch_shc supporting Bosch Smart Home Controller (#34063)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-14 15:03:26 +02:00
Pascal Vizeli 9d174e8a05 GRPC is fixed, don't need a workaround (#50605)
* GRPC is fixed, don't need a workaround

* Update gen_requirements_all.py
2021-05-14 14:30:48 +02:00
Pascal Vizeli 404188d005 Update wheel action to 2021.05.3 (#50607) 2021-05-14 14:04:53 +02:00
tkdrob 6f5629cf14 Add targets and selectors for services (B-C) (#50189) 2021-05-14 13:38:41 +02:00
Álvaro Fernández Rojas 9247a157d8 Add AEMET conditional station updates (#50227) 2021-05-14 13:28:48 +02:00
Franck Nijhof 42df6750e2 Refactor AdGuard config flow tests (#50566) 2021-05-14 13:19:24 +02:00
Franck Nijhof ca2b3fcc9e Upgrade evdev to 1.4.0 (#50601) 2021-05-14 12:15:15 +02:00
jan iversen 19cdff10c3 Add "close_comm_on_error" to modbus configuration (#50583) 2021-05-14 10:54:23 +02:00
djtimca 7ea23533cf Address late review for Omnilogic Switch (#50404)
* Address previous PR comments.

* Update all instances of async_schedule_update_ha_state to async_write_ha_state.
2021-05-14 10:02:54 +02:00
muppet3000 207ee39d00 Bump growattServer library (#50588) 2021-05-14 09:50:41 +02:00
Maciej Bieniek 4c68518b18 Bump accuweather library (#50573) 2021-05-14 09:38:44 +02:00
Ruslan Sayfutdinov de5472403b Use mypy-friendly conditional import for zoneinfo (#50444) 2021-05-13 22:36:49 -07:00
Paulus Schoutsen aef24a807e Yeelight: Do not log errors when cannot connect (#50592) 2021-05-13 22:33:18 -07:00
Brandon Rothweiler 122741b914 Add lock platform to the Mazda integration (#50548) 2021-05-13 22:52:52 -05:00
jjlawren c52a33478e Fix Sonos favorites race condition v2 (#50575) 2021-05-13 20:32:34 -07:00
uvjustin e8d7d96231 Roll back #47852 (shield httpx in generic) (#50562) 2021-05-13 20:32:06 -07:00
jan iversen dbf7430003 Bump pymodbus to v2.5.2 (#50582)
Solves a serial - rs-485 adapter issue.
2021-05-13 20:31:48 -07:00
Franck Nijhof d6e9f094c4 Cleanup unused CONFIG_SCHEMA from kmtronic (#50567) 2021-05-13 20:30:15 -07:00
J. Nick Koston 42d1ec753d Small tweaks to improve homekit_controller startup time (#50590) 2021-05-13 20:16:20 -05:00
Franck Nijhof a16629601a Add support for tracking entity attributes in ESPHome (#50528) 2021-05-13 15:39:53 -07:00
Ruslan Sayfutdinov 35f304450c Enable type checks for stream component (#50527)
* Enable type checks for stream component

* Fix pylint
2021-05-13 23:26:11 +02:00
tkdrob e956a726a0 Fix SonarrEntity docstring (#50568) 2021-05-13 14:43:52 -05:00
Maciej Bieniek 6adbc702eb Bump brother library (#50572) 2021-05-13 13:14:00 -05:00
Pascal Vizeli 47d4928d62 Revert "Use requirements for constraints" (#50576)
This reverts commit 136b34af20.
2021-05-13 19:35:58 +02:00
J. Nick Koston 52edf9ac35 Ensure isy994 is only discovered once (#50577)
The formatting of the mac was different between dhcp and ssdp
2021-05-13 19:35:24 +02:00
Barry Quiel c079803fcb Powerwall add Current attribute (#50550) 2021-05-13 11:12:48 -05:00
Pascal Vizeli 136b34af20 Use requirements for constraints (#50558) 2021-05-13 08:07:13 -07:00
Joakim Sørensen e991b61c12 Fix issue with quotes (#50571) 2021-05-13 16:20:01 +02:00
LJU 7224012016 Fix spelling in Cast and Growatt (#50555) 2021-05-13 11:15:02 +02:00
J. Nick Koston 1c2692c3c3 Drop nuheat code owner (#50319)
- I no longer have this device
2021-05-13 08:18:37 +02:00
Kevin Anthony 3b3d6e0da5 Add vesync Core200S air purifier (#50216) 2021-05-12 23:02:24 -05:00
jjlawren ca09027914 Bump pysonos to 0.0.46 (#50544) 2021-05-12 16:16:29 -05:00
Joakim Sørensen ce87fc902b Bump pyhaversion from 21.3.0 to 21.5.0 (#50540) 2021-05-12 21:12:58 +02:00
tkdrob 4ce3038b29 Add targets and selectors for services (G-H) (#50524)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-12 20:49:04 +02:00
jjlawren db82808466 Skip adding battery on S1 Sonos devices (#50536) 2021-05-12 20:40:10 +02:00
Daniel Hjelseth Høyer 2945c79c5a Tibber sensors (#50418)
* Tibber, split attribute to sensors

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

* Tibber, split attribute to sensors

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

* Tibber, split attribute to sensors

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

* Update homeassistant/components/tibber/sensor.py

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

* 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>

* 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>

* 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>

* Update homeassistant/components/tibber/sensor.py

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

* fix review comments

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

* migrate to new device ids

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

* Update homeassistant/components/tibber/sensor.py

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

* Update homeassistant/components/tibber/sensor.py

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

* Migrate entity id

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

* Migrate entity id

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

* Update homeassistant/components/tibber/sensor.py

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

* Update homeassistant/components/tibber/sensor.py

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

* Update homeassistant/components/tibber/sensor.py

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

* move registers out of looå

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-12 20:07:44 +02:00
Erik Montnemery 216b0df908 Set state_class for demo sensor (#50523) 2021-05-12 18:38:26 +02:00
Franck Nijhof 38a0cf6650 Refactor SolarEdge config flow tests (#50467)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-12 17:43:27 +02:00
Ruslan Sayfutdinov 0cb08f9516 Add missing type hints in entity_platform (#50453) 2021-05-12 16:28:44 +02:00
J. Nick Koston 70961c79a0 Migrate emulate_hue to use storage to fix I/O in event loop (#50473) 2021-05-12 16:10:28 +02:00
Franck Nijhof 72f342aa5b Upgrade aioesphomeapi to 2.7.0 (#50522) 2021-05-12 15:21:54 +02:00
Pascal Vizeli 6ef3de464c Update wheels builder to 2021.05.2 (#50520) 2021-05-12 15:13:24 +02:00
J. Nick Koston a4ea9b3cd3 Update usage of async_entries to use _async_current_entries (#50187) 2021-05-12 12:47:06 +02:00
Joakim Sørensen c3eee9800a Move translations from Azure to GitHub action (#50518) 2021-05-12 12:03:13 +02:00
Joakim Sørensen 2918929cf0 Remove azure-pipelines-ci.yml (#50519) 2021-05-12 11:55:31 +02:00
tkdrob 9e0730c97f Add targets and selectors for services (F) (#50191) 2021-05-12 11:00:32 +02:00
dependabot[bot] e6b4b803e3 Bump docker/login-action from 1 to 1.9.0 (#50509)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 1.9.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v1.9.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 10:43:38 +02:00
definitio e090581e3c Add stop for demo players (#50485) 2021-05-12 10:26:12 +02:00
Pascal Vizeli c79e864394 Ditch secret to wheels server (#50516) 2021-05-12 10:03:27 +02:00
Joakim Sørensen 41f3c67be9 Pin wheels build version (#50515) 2021-05-12 10:03:15 +02:00
dependabot[bot] 34cd68bdf6 Bump actions/checkout from 2 to 2.3.4 (#50510)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 2.3.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v2.3.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 09:41:30 +02:00
Paulus Schoutsen 2cdf075f95 Only return empty string if non-fixable errors (#50508) 2021-05-12 08:54:04 +02:00
Paulus Schoutsen 88adc8801c Merge pull request #50507 from home-assistant/rc 2021-05-11 22:59:33 -07:00
Paulus Schoutsen 421e1b9956 Bumped version to 2021.5.3 2021-05-11 22:27:42 -07:00
Paulus Schoutsen c477c31190 Bump aiohue to 2.3.1 (#50506) 2021-05-11 22:27:27 -07:00
Oliver 8a3514ed44 update denonavr version 0.10.8 (#50476) 2021-05-11 22:27:27 -07:00
Erik Montnemery 99044f5454 Include _StopScript.__cause__ in trace (#50441)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-11 22:27:26 -07:00
Erik Montnemery b35f229674 Include _StopScript.__cause__ in trace (#50441)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-11 22:27:11 -07:00
Paulus Schoutsen 5ed252ebfa Bump aiohue to 2.3.1 (#50506) 2021-05-11 22:15:36 -07:00
Raman Gupta 6cb283d36b Fix vizio integration (#50436) 2021-05-11 22:05:45 -07:00
jjlawren 17c1031973 Hotfix for Sonos favorites race condition (#50495) 2021-05-11 21:55:32 -07:00
J. Nick Koston 2c492d71f7 Handle transport errors when updating media via events (#50480)
Co-authored-by: Jason Lawrence <jjlawren@users.noreply.github.com>
2021-05-11 21:55:10 -07:00
Jesse Hills b8d468717a Bump python-juicenet package to 1.0.2 (#50505) 2021-05-11 21:52:22 -07:00
J. Nick Koston dd3965e4e2 Ensure zeroconf does not generate config flows when matching attributes are missing (#50208)
If macaddress, name, or manufacturer were missing from the
discovery info, the matcher would accept instead of reject.
2021-05-11 21:24:42 -07:00
J. Nick Koston c037ebb27c Add discovery to yeelight (#50385) 2021-05-11 19:55:50 -05:00
J. Nick Koston 4e08d22a74 Fix dhcp generated conflict (#50498) 2021-05-11 19:23:09 -05:00
HomeAssistant Azure 7df47664e8 [ci skip] Translation update 2021-05-12 00:04:03 +00:00
Simone Chemelli 8d7318430c Fix mypy for Fritz after #50056, #50327 conflict (#50497) 2021-05-11 18:47:02 -05:00
karliemeads e9f8b3e7ef Remove unused py_noaa dependency (#50494) 2021-05-12 00:44:17 +02:00
Tobias Sauerwein e2f497ceba Fix Netatmo selector for setting persons being at home (#50373) 2021-05-12 00:22:07 +02:00
J. Nick Koston 7314247ce3 Add dhcp support to iSmartGate (#50309) 2021-05-12 00:20:03 +02:00
J. Nick Koston 3b272ec54c Add dhcp discovery to smartthings (#50306) 2021-05-12 00:10:33 +02:00
Oliver dc39edd090 update denonavr version 0.10.8 (#50476) 2021-05-12 00:09:22 +02:00
J. Nick Koston c1cf07768b Add dhcp discovery support to isy994 (#50488)
- SSDP may not be enabled by default
2021-05-12 00:06:55 +02:00
Artem Draft d29e812033 New overrides in universal media player (#48611)
* Update media_player.py

fix missing overrides in universal

* Update media_player.py

Black

* add tests and allow overrides for missing services

* switch sync to async

* Update tests/components/universal/test_media_player.py

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

* setup component after modifying config

* switch test to sync

* fix black

* fix test

* rework tests, disable override media_seek

Co-authored-by: raman325 <7243222+raman325@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-11 23:44:26 +02:00
karliemeads 3a93151aa2 Improve light tests for brightness step and profiles (#49887) 2021-05-11 23:31:36 +02:00
jjlawren afe02a4ad2 Fix Sonos const comparison (#50482)
* Fix Sonos const comparison

* Use constants for playback states
2021-05-11 16:06:51 -05:00
jjlawren 897dd012cd Handle transport errors when updating media via events (#50481) 2021-05-11 16:00:56 -05:00
Simone Chemelli d877c0c1ff Add Fritz services (#50056) 2021-05-11 15:56:52 -05:00
Pascal Vizeli 214fd41bb6 Add fail-fast for wheel (#50487) 2021-05-11 22:18:18 +02:00
J. Nick Koston 34c84a6bbb Reduce boilerplate to abort for matching config entries (#50186)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-11 22:00:12 +02:00
jjlawren d6a202bd74 Move core Sonos functionality out of entities (#50277) 2021-05-11 10:36:40 -07:00
J. Nick Koston 0fdc50408a Remove unused ignore in fritz (#50469) 2021-05-11 19:08:13 +02:00
J. Nick Koston 909a20b36d Use async zeroconf registration functions (#50168) 2021-05-11 11:03:36 -05:00
Simone Chemelli e616583bad Improve types for Fritz (#50327)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
2021-05-11 10:41:27 -05:00
epenet d6c99a3db9 Enable strict type checks for onewire (#50422) 2021-05-11 17:28:17 +02:00
Paul Ganssle efa5c59559 Replace hand-rolled binary search with bisect_left (#50410)
The `bisect` module exposes a `bisect_left` function which does
basically what the bulk of `_lower_bound` does. From my tests, it is
slightly faster (~5%) in the probably common ideal case where `arr` is short.
In the worst case scenario, `bisect.bisect_left` is *much* faster.

```
>>> arr = list(range(60))
>>> cmp = 59
>>> %timeit _lower_bound(arr, cmp)
736 ns ± 6.24 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> %timeit bisect_lower_bound(arr, cmp)
290 ns ± 7.77 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
```

I doubt this is a huge bottleneck or anything, but I think it's a bit
more readable, and it's more efficient, so it seems like it's mostly a
win.

This commit *will* add a new unconditional import for `bisect` when
importing `util.dt`, and `bisect` is not currently imported for any of
the standard library modules. It is possible to make this conditional by
placing `import bisect` in the _lower_bound function, or in the function
it's nested in.
2021-05-11 08:18:20 -07:00
Maciej Bieniek f5541a468e Improve type annotations for GIOS integration (#50454) 2021-05-11 07:57:24 -07:00
Martin Hjelmare 7c4893cbb1 Fix event action return value typing (#50353)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-05-11 16:23:59 +02:00
Martin Hjelmare f71eb4d34d Clean somfy config flow tests (#50461) 2021-05-11 16:19:07 +02:00
Simone Chemelli 4e24640ff7 Remove pytest-mock dependency (#50400) 2021-05-11 17:17:00 +03:00
Daniel Hjelseth Høyer ca65cdd450 pyTibber revert (#50462)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-11 16:14:32 +02:00
Martin Hjelmare 48b5ef0bac Clean twentemilieu config flow tests (#50460) 2021-05-11 15:53:36 +02:00
Ruslan Sayfutdinov 1538271555 Don't generate mypy.ini if errors are found (#50456) 2021-05-11 14:29:14 +02:00
Joakim Sørensen 236f138ab7 Fix compare syntax (#50451) 2021-05-11 13:23:56 +02:00
Pawel bc9f0caf4a Add configuration.yaml deprecation warning to Epson (#50403)
* add deprecation warning

* Break long string

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-11 12:45:03 +02:00
Joakim Sørensen 50a88eb6c0 Use empty requirements_diff for schedule and workflow_dispatch (#50450) 2021-05-11 12:29:13 +02:00
Joakim Sørensen ef67a2659e Add ignore_diff to workflow_dispatch trigger (#50449) 2021-05-11 12:15:57 +02:00
Joakim Sørensen d6dcf95235 Fix .env_file name (#50447) 2021-05-11 11:54:02 +02:00
Joakim Sørensen 56d1e0a99d Migrate wheels builder to GitHub actions (#50445) 2021-05-11 11:46:51 +02:00
Erik Montnemery 973f59e423 Refactor history component (#50287)
* Refactor history component

* Update tests

* Address review comments

* Correct deprecated functions
2021-05-11 09:21:57 +02:00
J. Nick Koston d5e39e8748 Remove redundant names from config flow titles (#50380) 2021-05-10 22:14:33 -07:00
Ville Skyttä 44a790ab47 Entity.device_info typing fixes (#49974) 2021-05-10 22:11:51 -07:00
J. Nick Koston 34320ef617 Include mac address in rainmachine device info (#50438) 2021-05-10 22:06:49 -07:00
J. Nick Koston d4cdb8e7e8 Include mac address in roomba device info when available (#50437) 2021-05-10 22:06:29 -07:00
J. Nick Koston b36c840909 Add dhcp support to guardian (#50378) 2021-05-10 21:26:15 -05:00
HomeAssistant Azure 887ec2d9b5 [ci skip] Translation update 2021-05-11 00:04:41 +00:00
Ruslan Sayfutdinov ce15f28642 Add missing type hints in http component (#50411) 2021-05-10 14:30:47 -07:00
Paulus Schoutsen 5aaead54da Merge pull request #50417 from home-assistant/rc 2021-05-10 13:58:00 -07:00
indykoning 85f758380a Add Growatt Server Config flow (#41303)
* Growatt Server Config flow

* Use reference strings

Co-authored-by: SNoof85 <snoof85@gmail.com>

* Remove configuration.yaml import logic

* Removed import test

* Re-added PLATFORM_SCHEMA validation

* Import yaml from old yaml configuration

* Apply suggestions from code review

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

* Feedback

* Use Executor for IO only

* Fix imports

* update requirements

* Fix flake8

* Run every section of fetching devices in single executor

* Config flow feedback

* Clean up

* Fix plan step

* Fix config flow test

* Remove duplicate test

* Test import step

* Test already configured entry

* Clean up tests

* Add asserts

* Mock out entry setup

* Add warning if set up via yaml

Co-authored-by: SNoof85 <snoof85@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-10 22:46:50 +02:00
Tobias Sauerwein 12342437e2 Fix battery attribute (#50405) 2021-05-10 20:40:44 +02:00
Khole 84984b0223 Bump Pyhiveapi (#50368) 2021-05-10 20:38:35 +02:00
kennedyshead baacf1b787 Bumps aioasuswrt to 1.3.4 (#50414) 2021-05-10 20:35:32 +02:00
Paulus Schoutsen 88574034b7 Bumped version to 2021.5.2 2021-05-10 10:50:07 -07:00
jjlawren a670156352 Bump pysonos to 0.0.45 (#50407) 2021-05-10 10:49:59 -07:00
jjlawren 6f9c21e1c0 Fix location of current_play_mode (#50386) 2021-05-10 10:49:58 -07:00
Alan Tse 51c78e0085 Increase httpx timeout for Tesla (#50376) 2021-05-10 10:49:58 -07:00
Erik Montnemery 0dd247aed0 Bump hatasmota to 0.2.12 (#50372) 2021-05-10 10:49:57 -07:00
Jeff Irion 420161039e Bump androidtv to 0.0.59 (#50367) 2021-05-10 10:49:56 -07:00
Colin Robbins 0ce3bf0859 Support multiple disks in systemmonitor (#50362)
* Fix #50158 - add support for multiple disks

* Rework as a tuple
2021-05-10 10:49:55 -07:00
Brian Rogers 3362ac24f6 Revert Rachio to seconds instead of total_seconds (#50307)
* revert seconds

* Add comment

* Update comment to include max runtime
2021-05-10 10:49:54 -07:00
Franck Nijhof e35fbde5fb Fix ESPHome timestamp sensor (#50305) 2021-05-10 10:49:54 -07:00
J. Nick Koston 03b786268e Fix tplink unloading when no switches are present (#50301) 2021-05-10 10:49:53 -07:00
Joakim Plate 7acefbefb3 Bump ha-philipsjs to 2.7.3 (#50293) 2021-05-10 10:49:52 -07:00
Oliver 0a1439d16b Update denonavr to version 0.10.7 (#50288) 2021-05-10 10:49:51 -07:00
Aidan Timson 989cee662d Update ovoenergy to 1.1.12 (#50268) 2021-05-10 10:49:51 -07:00
jjlawren 2d3b8fb329 Fix Sonos polling bug (#50265) 2021-05-10 10:49:50 -07:00
Ville Skyttä 83db35d2d6 Skip Huawei LTE device registry setup with no identifiers or connections (#50261)
Closes https://github.com/home-assistant/core/issues/50182
2021-05-10 10:49:49 -07:00
Julien "_FrnchFrgg_" Rivaud 1d5716b505 Fix amcrest detection of sensor reset (#50249)
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-05-10 10:49:48 -07:00
Vladimír Záhradník e482827975 Fix incorrect attribute checks in Modbus hub (#50241) 2021-05-10 10:49:47 -07:00
jan iversen 22e62fa61a Catch non payload modbus messages (#49910) 2021-05-10 10:49:46 -07:00
Julien "_FrnchFrgg_" Rivaud 24a46d91d3 Fix amcrest detection of sensor reset (#50249)
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-05-10 10:49:08 -07:00
Colin Robbins a404c138fa Support multiple disks in systemmonitor (#50362)
* Fix #50158 - add support for multiple disks

* Rework as a tuple
2021-05-10 10:48:00 -07:00
jan iversen 70b09ed9a1 Handle relation between scan_interval and pymodbus timeout in modbus (#50363)
* Control scan_interval compared to pymodbus timeout.

add MINIMUM_SCAN_INTERVAL=5 seconds and validata with Voluptous.
Keep modbus.py 100% coverage.

* Please pylint.

* Review comments.

* pylint.
2021-05-10 19:28:38 +02:00
jjlawren 9ae021a284 Bump pysonos to 0.0.45 (#50407) 2021-05-10 08:56:18 -07:00
Paulus Schoutsen f8584c3ded Use zoneinfo instead of dateutil (#50387)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-10 08:32:29 -07:00
Ville Skyttä 3fab21ebc7 Skip Huawei LTE device registry setup with no identifiers or connections (#50261)
Closes https://github.com/home-assistant/core/issues/50182
2021-05-10 08:27:09 -07:00
Christer Vestermark fca56993c6 Add smhi wind gust speed and thunder probability (#50328)
* Added some extra attributes

Added the extra attributes
wind_gust_speed and
thunder_probability
that were already implemented in the underlaying library (joysoftware
/
pypi_smhi).

Also for the existing extra attribute cloudiness, it is added if "is not None" instead of just "if self.cloudiness" which would make it False (and therefore not available) if cloudiness = 0.

* Trying to solve the style issues

Removed white spaces and changed order of list as suggested by the tests.

* New try to solve the style issues

Removed some more white spaces...

* Changed dictionary handling as suggested

Changed dictionary handling as suggested by MartinHjelmare.

* Updated test

Updated test_weather.py to include the new attributes wind_gust_speed and thunder_probability.

* Added missing imports

Added the missing imports
ATTR_SMHI_THUNDER_PROBABILITY,
ATTR_SMHI_WIND_GUST_SPEED,

* Renaming self.thunder to self.thunder_probability and correcting test valuesfor

Renamed the new internal attribute
thunder to thunder_probability, same as the exposed attribute for improved consistency.
Corrected test values according to smhi.json.

* Forgot to change to self.thunder_probability in one place.

sorry.
2021-05-10 16:44:08 +02:00
Ruslan Sayfutdinov 8e2b3aab44 Enable strict type checks for camera platform (#50395) 2021-05-10 15:12:15 +02:00
jjlawren 0cdb8ad892 Fix location of current_play_mode (#50386) 2021-05-10 14:49:11 +02:00
Ruslan Sayfutdinov 3a192896df Enable some strict mypy checks globally (#50398)
* Enable some strict mypy checks globally

* Update mypy.ini
2021-05-10 14:20:25 +02:00
Ruslan Sayfutdinov b745d01877 Fix synology_dsm typing (#50399) 2021-05-10 13:43:43 +02:00
Ville Skyttä b89c53f759 Type hint device registry identifiers as set of str 2-tuples (#50355)
* Type hint device registry identifiers as set of str 2-tuples

* Fix airly test

* Really fix airly test, add another migration test
2021-05-10 12:13:45 +02:00
Franck Nijhof 1c98df5d18 Remove YAML configuration from Somfy MyLink (#50359)
* Remove YAML configuration from Somfy MyLink

* Keep deprecation warning
2021-05-10 11:53:37 +02:00
J. Nick Koston f581616064 Loosen flume dhcp discovery matching (#50379) 2021-05-09 19:32:00 -05:00
HomeAssistant Azure dfe8ab6666 [ci skip] Translation update 2021-05-10 00:04:47 +00:00
Jeff Irion 65fb852e03 Bump androidtv to 0.0.59 (#50367) 2021-05-09 18:52:24 -05:00
Steven Looman e284a14ccd Upgrade async_upnp_client to 0.17.0 (#50371) 2021-05-09 17:06:47 -05:00
Alan Tse c1a316b2ec Increase httpx timeout for Tesla (#50376) 2021-05-09 16:30:38 -05:00
Franck Nijhof 041838bdd7 Upgrade requests-mock to 1.9.2 (#50377) 2021-05-09 16:30:03 -05:00
Michael 042822e35e Improve typing for synology_dsm (#49656) 2021-05-09 22:44:55 +02:00
Franck Nijhof 717f4e69d5 Remove defunct Spot Crime integration (#50361) 2021-05-09 22:23:52 +02:00
Franck Nijhof 3745056751 Upgrade attrs to 21.2.0 (#50374) 2021-05-09 22:13:09 +02:00
Erik Montnemery e57634b1e0 Bump hatasmota to 0.2.12 (#50372) 2021-05-09 22:57:27 +03:00
tkdrob ee58f6105e Add selectors to webostv services (#50239) 2021-05-09 21:45:24 +02:00
Raman Gupta 1b81849271 Add zwave_js support for HeatIt Z-TRM2fx (#50317)
* Add zwave_js support for HeatIt Z-TRM2fx

* fix docstring

* use AwesomeVersion to support firmware version ranges

* add guard against empty firmware range

* switch guard approach to raise exception sooner

* make post init more generic

* Set up firmware range schema as AwesomeVersion during initialization

* Update homeassistant/components/zwave_js/discovery.py

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

* Allow min_ver and max_ver to be None

* fix docstring

* reduce import scope

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-09 15:28:35 -04:00
Franck Nijhof ba31d7d1b4 Upgrade sentry-sdk to 1.1.0 (#50349) 2021-05-09 14:30:34 -04:00
Franck Nijhof 0eeb147eda Upgrade watchdog to 1.1.0 (#50351) 2021-05-09 14:29:27 -04:00
Franck Nijhof 43adba4aff Deprecate Synology DSM YAML configuration (#50366) 2021-05-09 14:28:24 -04:00
Franck Nijhof 3f463f22a1 Deprecate Luftdaten YAML configuration (#50365) 2021-05-09 14:27:56 -04:00
Franck Nijhof b2cee2e602 Remove YAML configuration from Tuya (#50360)
* Remove YAML configuration from Tuya

* Keep deprecation warning
2021-05-09 14:26:26 -04:00
jan iversen ec08256ff0 Do not use async_* in a modbus sync function (#50343) 2021-05-09 19:50:23 +02:00
Shay Levy be73067f9c Fix Shelly type hints (#50322) 2021-05-09 19:46:53 +02:00
Dermot Duffy 4e4042a869 Fix types for WLED (#50001) 2021-05-09 19:34:21 +02:00
Franck Nijhof 2ca0eb61dc Deprecate Pi-hole YAML configuration (#50358) 2021-05-09 19:23:55 +02:00
Franck Nijhof 0a95aa282c Upgrade debugpy to 1.3.0 (#50356) 2021-05-09 11:29:28 -05:00
Ruslan Sayfutdinov 9b058551f7 Enable type checks for camera platform (#50179) 2021-05-09 18:04:57 +02:00
EddyK69 e9709d4449 Add LastTrip sensors for BMW Connected Drive (#45906) 2021-05-09 17:51:58 +02:00
Franck Nijhof ce02614780 Deprecate Hive YAML configuration (#50357) 2021-05-09 17:43:56 +02:00
J. Nick Koston a74aa9272c Add dhcp discovery to tplink (#50303) 2021-05-09 10:03:41 -05:00
gabrialdestruir f814a7a8ae Add tplink light setting ignore default (#50334)
This fixes issue #50115 by allowing color, brightness, and temperature to be set from an off state. This adds code to allow "ignore_default=1" to be sent to bulb letting it know to power on with the parameters set.
2021-05-09 16:27:49 +02:00
Franck Nijhof cbf4632895 Remove YAML configuration from SolarEdge (#50105)
* Remove YAML configuration from SolarEdge

* Restore already setup tests
2021-05-09 12:03:41 +02:00
J. Nick Koston 2bff7f8020 Remove YAML support from gogogate2/ismartgate (#50312) 2021-05-09 11:46:07 +02:00
J. Nick Koston 29cd5f20b9 Add zeroconf discovery to powerview (#50308) 2021-05-09 11:41:27 +02:00
J. Nick Koston 9cab8a19cd Add iCloud discovery (#50304)
Since homekit requires iCloud keychains to be enabled, if they
have a homekit hub, they must have iCloud.
2021-05-09 11:19:26 +02:00
jjlawren 85d782808c Fix Sonos polling bug (#50265) 2021-05-09 11:09:56 +02:00
hubbergit 4d9d565ecc Fix unit of measurement from Pa to hPa (#49664)
The unit of measurement should be hPa instead of Pa for the air pressure.
2021-05-09 10:07:51 +02:00
Brian Rogers 07a93be176 Revert Rachio to seconds instead of total_seconds (#50307)
* revert seconds

* Add comment

* Update comment to include max runtime
2021-05-09 05:09:31 +02:00
Aidan Timson 9059ce1c0f Additional System Bridge Sensors (#50274)
* Update systembridge to 1.1.4

* Update systembridge to 1.1.5

* Names

* Add memory sensors

* Set icons

* Add bios version sensor

* Memory used percentage sensor

* Add types

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

* Disable by default

* Typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-09 05:07:13 +02:00
tkdrob e92516c072 Add targets and selectors to services (A) (#49818) 2021-05-09 02:21:00 +02:00
HomeAssistant Azure 6665a62557 [ci skip] Translation update 2021-05-09 00:04:11 +00:00
Gleb Sinyavskiy 52b1a416d9 Remove the N26 integration (#50292) 2021-05-09 00:58:23 +02:00
Joakim Plate 10afbe4279 Bump ha-philipsjs to 2.7.3 (#50293) 2021-05-08 20:33:55 +02:00
Franck Nijhof 61b0e66405 Fix ESPHome timestamp sensor (#50305) 2021-05-08 19:37:09 +02:00
J. Nick Koston 4853fb7966 Fix tplink unloading when no switches are present (#50301) 2021-05-08 19:20:22 +02:00
Gleb Sinyavskiy 97eb4c6c62 Add syncthing integration (#38331)
* Scaffold the integration

* Add config flow data schema

* Handle configuration errors

* Get folder states

* Support https

* Fix translations

* Listen to syncthing events in a separate thread

* Bump syncthing

* Automatically reconnect to the syncthing server

* Renames

* Improve loading and unloading

* Update folder states from events

* Refactoring, handle FolderPaused event

* Dynamic folder icons

* Refactoring

* Mark folders as unavailable when senrver is unavailable

* Update folder satus when server is available

* Raise PlatformNotReady

* Implement additional polling

* Stop polling when the server is not available

* Minor fixes

* Remove logging

* Check name uniqueness

* Refactoring

* Minor refactorings

* Bump python-syncthing

* Migrate to aiosyncthing

* Minor fixes

* Update .coveragerc

* Set quality scale

* Bump aiosyncthing, properly handle invalid token

* Fix logging

* Fix logging

* Use CONF_VERIFY_SSL from homeassistant.const

* Bump aiosyncthing. Add Syncthing device

* Fix device name

* Bump aiosyncthing

* Bump aiosyncthing

* Extract SyncthingClient

* Add folder to device_state_attributes

* Do not pass the loop

* Cover config_flow.py

* Move self.async_create_entry outside of the try block

* Raise ConfigEntryNotReady if syncthing server is not reachable

* Fix already configured error message

* Change default name to Syncthing

* Bump aiosyncthing

* Fix formatting

* Fix formatting

* Fix tests

* Fix typo, use lis comprehension

* Fix typo, remove unused CONFIG_SCHEMA

* Bump aiosyncthing

* Remove periods from log messages W0001

* Fix tests

* Black, isort

* Remove empty items from manifest.json

* Fix variable naming

* Remove async_setup

* Use SensorEntity

* Use asyncio.create_task instead of self._hass.loop.create_task

* Do not pass hass to FolderSensor initializer

* Rename device_state_attributes to extra_state_attributes

* Use callbacks

* Simplify tests

* Refactor _listen()

* Use url for the title

* Use the url instead of the name to identify the config entry

* Explicitly set sensor attributes, extract _filter_state

* Use server url instead of name in device_info

* Use server url instead of name in logs

* User server id as a device identifier

* Use URL instead of name to identify config entry

* Use shortened server id instead of name to build entity name and unique id

* Do not use CONF_NAME

* Cleanup unused strings

* Cleanup unused strings

* Add IOT class

* Scaffold the integration

* Add config flow data schema

* Handle configuration errors

* Get folder states

* Support https

* Fix translations

* Listen to syncthing events in a separate thread

* Bump syncthing

* Automatically reconnect to the syncthing server

* Renames

* Improve loading and unloading

* Update folder states from events

* Refactoring, handle FolderPaused event

* Dynamic folder icons

* Refactoring

* Mark folders as unavailable when senrver is unavailable

* Update folder satus when server is available

* Raise PlatformNotReady

* Implement additional polling

* Stop polling when the server is not available

* Minor fixes

* Remove logging

* Check name uniqueness

* Refactoring

* Minor refactorings

* Bump python-syncthing

* Migrate to aiosyncthing

* Minor fixes

* Update .coveragerc

* Set quality scale

* Bump aiosyncthing, properly handle invalid token

* Fix logging

* Fix logging

* Use CONF_VERIFY_SSL from homeassistant.const

* Bump aiosyncthing. Add Syncthing device

* Fix device name

* Bump aiosyncthing

* Bump aiosyncthing

* Extract SyncthingClient

* Add folder to device_state_attributes

* Do not pass the loop

* Cover config_flow.py

* Move self.async_create_entry outside of the try block

* Raise ConfigEntryNotReady if syncthing server is not reachable

* Fix already configured error message

* Change default name to Syncthing

* Bump aiosyncthing

* Fix formatting

* Fix formatting

* Fix tests

* Fix typo, use lis comprehension

* Fix typo, remove unused CONFIG_SCHEMA

* Bump aiosyncthing

* Remove periods from log messages W0001

* Fix tests

* Black, isort

* Remove empty items from manifest.json

* Fix variable naming

* Remove async_setup

* Use SensorEntity

* Use asyncio.create_task instead of self._hass.loop.create_task

* Do not pass hass to FolderSensor initializer

* Rename device_state_attributes to extra_state_attributes

* Use callbacks

* Simplify tests

* Refactor _listen()

* Use url for the title

* Use the url instead of the name to identify the config entry

* Explicitly set sensor attributes, extract _filter_state

* Use server url instead of name in device_info

* Use server url instead of name in logs

* User server id as a device identifier

* Use URL instead of name to identify config entry

* Use shortened server id instead of name to build entity name and unique id

* Do not use CONF_NAME

* Cleanup unused strings

* Cleanup unused strings

* Add IOT class

* Apply suggestions from code review

* Clean up

* Fix dict comprehension

* Clean sensor

* Use the server ID as a config entry unique ID

* Remove the AlreadyConfigured exception

* Clean up old error string

* Format json

* Convert sensor attributes to snake case

* Force CI

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-08 19:12:14 +02:00
Oliver 7374b844d7 Update denonavr to version 0.10.7 (#50288) 2021-05-08 10:53:08 -05:00
jan iversen 29eb31e9da Add configurable delay between connect and first request in modbus (#50124)
* Activate startup delay.

* Add removal of call_later if HA is stopped.

This is unlikely to happen, but just security measure.

* Removing timing interval.

async_fire_time_changed() needs to be called twice, first time the delay is
ended and second time update() is executed.

* Variable naming.
2021-05-08 13:28:35 +02:00
Vladimír Záhradník e0de6752af Fix incorrect attribute checks in Modbus hub (#50241) 2021-05-08 13:26:31 +02:00
Leonardo Figueiro e3bc9eaf5f pywilight update (#50207) 2021-05-08 04:26:13 -05:00
J. Nick Koston bf2d40adfe Migrate from pytz to python-dateutil (#49643)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-07 22:46:26 -07:00
Brian Rogers 13fe837fd2 Add service target to Rachio (#49913) 2021-05-07 22:24:37 -05:00
Simone Chemelli c85f70b639 Small code cleanup for Shelly (#50270) 2021-05-07 22:14:41 -05:00
Aidan Timson a32dc56153 Update ovoenergy to 1.1.12 (#50268) 2021-05-07 22:05:09 -05:00
HomeAssistant Azure f32e15da36 [ci skip] Translation update 2021-05-08 00:03:19 +00:00
Pawel 57d3342137 Fix Epson config flow unique_id (#45434)
* switch Epson from HTTP to TCP communication

* fix tests

* add asyncio websession

* fix manifest

* fix config flow

* fix manifest

* fix logger warnings

* switch Epson from HTTP to TCP communication

* fix tests

* add asyncio websession

* fix config flow

* fix manifest

* fix logger warnings

* add already configured to import yaml

* remove neccessary projector on on config.yaml

* remove check import None

* reload integration if no unique_id

* async_migrate_entry

* add async_migrate_entry

* add init tests

* media player migration uid

* unifi config flow

* Update homeassistant/components/epson/media_player.py

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

* Update homeassistant/components/epson/media_player.py

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

* Apply suggestions from code review

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

* review

* remove unnecessary try except

* add import test

* Apply suggestions from code review

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

* revert PORT option from config yaml

* fix tests

* remove port from config flow

* fix CONFIG_SCHEMA

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-07 23:05:59 +02:00
Erik Montnemery ba284c0d27 Add sensor state_class property (#50063)
* Add sensor state_class property

* STATE_CLASS_LATEST -> STATE_CLASS_MEASUREMENT

* Export sensor.state_class in capability_attributes

* Add STATE_CLASS_UNKNOWN

* Fix typing

* Update tests

* STATE_CLASS_UNKNOWN -> STATE_CLASS_OTHER

* Update homeassistant/components/sensor/__init__.py

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

* Remove STATE_CLASS_OTHER

* Update tests

* Revert test changes

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-07 23:04:00 +02:00
Simone Chemelli cf96d86985 Add yaml key to Shelly to allow CoAP port customization (#48729)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-07 13:23:29 -07:00
jan iversen 552ca1c57b Fix modbus switch problems (#50117) 2021-05-07 22:12:13 +02:00
Erik Montnemery 934d241b70 Improve Google Cast options flow (#50028) 2021-05-07 12:59:51 -07:00
J. Nick Koston 3a36a976ee Small cleanups to rainmachine get_client_controller (#50250) 2021-05-07 13:07:06 -05:00
Franck Nijhof 808825dc42 Merge pull request #50243 from home-assistant/rc 2021-05-07 19:03:00 +02:00
Erik Montnemery dabd398c6d Add color_mode to demo light (#49694)
* Update demo light with color mode support

* Add rgbw and rgbww color properties

* Update demo light

* Tweak

* Remove unneeded _clear_colors
2021-05-07 18:15:23 +02:00
Erik Montnemery 1e072b73f7 Fix light turn_on color conversion (#50251) 2021-05-07 17:09:49 +02:00
Erik Montnemery 80b05c39cc Fix light turn_on color conversion (#50251) 2021-05-07 17:08:46 +02:00
Maciej Bieniek 6df0190aeb Improve type annotations for Airly integration (#49898) 2021-05-07 09:47:52 -05:00
Simone Chemelli 4d0955bae1 Add Fritz sensors (#50055)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-07 09:05:16 -05:00
Maciej Bieniek 0587f834df Add Nettigo Air Monitor integration (#49099) 2021-05-07 08:59:29 -05:00
epenet dc29087416 Deprecate onewire YAML configuration (#50151) 2021-05-07 15:46:23 +02:00
Aaron Bach d4601e00fd Remove simplisafe websocket (#50213) 2021-05-07 15:41:37 +02:00
Franck Nijhof dfc5d22c9b Bumped version to 2021.5.1 2021-05-07 15:19:11 +02:00
Tobias Sauerwein a9bb905f05 Fix Netatmo climate (#50238) 2021-05-07 15:18:51 +02:00
David F. Mulcahey 193a0dfc02 support more alarm panels (#50235) 2021-05-07 15:18:48 +02:00
Paulus Schoutsen ead7a90f9a Bump aiohue to 2.3.0 (#50217)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-07 15:18:45 +02:00
Aaron Bach b144550a42 Allow SimpliSafe startup to retry on failure (#50211)
* Allow SimpliSafe startup to retry on failure

* Update __init__.py

* Black

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-07 15:18:41 +02:00
J. Nick Koston cf7f277507 Ensure tesla setup is retried on timeout (#50202) 2021-05-07 15:18:38 +02:00
Raman Gupta 5c6b9c7e37 Add value map for Climacell V3 pollen sensors (#50200) 2021-05-07 15:18:34 +02:00
Martin Hjelmare df740a7a18 Move not loaded websocket constant to zwave_js (#50188) 2021-05-07 15:18:31 +02:00
Erik Montnemery 27e0c0bbc8 Add color_mode support to group light (#50165)
* Add color_mode support to group light

* Lint

* Update tests
2021-05-07 15:18:27 +02:00
epenet 1e604fec7d Fix unique_id issue on onewire config entries (#50161) 2021-05-07 15:17:25 +02:00
Martin Hjelmare bb3ebad92f Fix zwave_js websocket api KeyError on unloaded entry (#50154) 2021-05-07 15:13:49 +02:00
J. Nick Koston d1a75b2fe0 Bump sqlalchemy to 1.4.13 (#50138) 2021-05-07 15:13:45 +02:00
Teemu R 70a7339279 Bump python-miio dependency (#50129) 2021-05-07 15:13:41 +02:00
Jan Bouwhuis a7ef642721 Ignore empty output from MQTT fan's value template (#50122)
* Allow empty payload

* Add tests for ignoring empty payload

* logging on empty state and osccilation with tests

* Improve warning log when invalid value is received
2021-05-07 15:13:37 +02:00
Felipe Martins Diel c75d99c883 Fix RM pro temperature sensor (#50098) 2021-05-07 15:13:33 +02:00
tkdrob 74b958df82 Fix group selector (#50088) 2021-05-07 15:13:29 +02:00
Oliver 2aafc88ab5 Denonavr bugfixes (#49984) 2021-05-07 15:13:25 +02:00
Sezer K ca9a68535f Only initialize Nuki configurations (#49747)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-07 15:13:22 +02:00
Martin Hjelmare 66c9658cc7 Fix mysensors default persistence file on import (#48410) 2021-05-07 15:13:16 +02:00
Tobias Sauerwein 86393bdbba Fix Netatmo climate (#50238) 2021-05-07 15:10:46 +02:00
Felipe Martins Diel a7ef3ec947 Fix RM pro temperature sensor (#50098) 2021-05-07 14:47:51 +02:00
David F. Mulcahey 55050bdd2a support more alarm panels (#50235) 2021-05-07 08:31:16 -04:00
Paulus Schoutsen 17fc962a87 Bump aiohue to 2.3.0 (#50217)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-07 14:24:47 +02:00
epenet 5d5122c2a4 Fix unique_id issue on onewire config entries (#50161) 2021-05-07 14:21:03 +02:00
Martin Hjelmare 0c288bcabb Fix mysensors default persistence file on import (#48410) 2021-05-07 13:37:38 +02:00
Jan Bouwhuis 7ab505633d Ignore empty output from MQTT fan's value template (#50122)
* Allow empty payload

* Add tests for ignoring empty payload

* logging on empty state and osccilation with tests

* Improve warning log when invalid value is received
2021-05-07 13:22:08 +02:00
Maciej Bieniek 7a87846146 Bump gios library (#50145)
* Bump gios library

* Use consts for API strings

* Do not store data locally

* Use API_TIMEOUT const
2021-05-07 13:03:11 +02:00
J. Nick Koston 64851dbac3 Add optimistic closing/opening to gogogate2 (#42048)
* Add optimistic closing/opening to gogogate2

* package rename

* update test

* Update homeassistant/components/gogogate2/cover.py
2021-05-07 11:13:51 +02:00
Erik Montnemery c2663d61d7 Add color_mode support to group light (#50165)
* Add color_mode support to group light

* Lint

* Update tests
2021-05-06 22:34:51 -07:00
Fabian Affolter 47c4c681f4 Upgrade sendgrid to 6.7.0 (#50194) 2021-05-07 07:29:55 +02:00
Sezer K 316f6ba397 Only initialize Nuki configurations (#49747)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-06 22:29:37 -07:00
Fabian Affolter 93628554cb Upgrade slixmpp to 1.7.1 (#50192) 2021-05-07 07:28:58 +02:00
Fabian Affolter 084f139a4d Upgrade praw to 7.2.0 (#50197) 2021-05-07 07:26:21 +02:00
Fabian Affolter 1c4a44dc5c Upgrade discord.py to 1.7.2 (#50201) 2021-05-07 07:24:54 +02:00
Raman Gupta 9f1b1c6c56 Add value map for Climacell V3 pollen sensors (#50200) 2021-05-06 21:12:51 -07:00
J. Nick Koston 7b07bc2d65 Bump netdisco to 2.8.3 for compat with latest zeroconf (#50212) 2021-05-06 22:26:03 -05:00
Oliver 0cf07ee2d8 Denonavr bugfixes (#49984) 2021-05-06 22:23:46 -05:00
Aaron Bach fec02c88af Allow SimpliSafe startup to retry on failure (#50211)
* Allow SimpliSafe startup to retry on failure

* Update __init__.py

* Black

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-06 20:03:35 -06:00
Martin Hjelmare 5ec09eab42 Move not loaded websocket constant to zwave_js (#50188) 2021-05-06 17:59:03 -07:00
J. Nick Koston 89811fcbaa Ensure tesla setup is retried on timeout (#50202) 2021-05-06 17:58:44 -07:00
HomeAssistant Azure 623a9c99fe [ci skip] Translation update 2021-05-07 00:04:03 +00:00
Fabian Affolter 0bfc386be3 Upgrade TwitterAPI to 2.7.3 (#50195) 2021-05-06 19:23:11 -04:00
Tobias Sauerwein 33e044431e Bump PyRMVtransport to 0.2.3 (#50183) 2021-05-06 23:34:50 +02:00
J. Nick Koston ce692afead Add rainmachine discovery (#49970)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-05-06 09:50:28 -05:00
Martin Hjelmare 38d7652176 Fix zwave_js websocket api KeyError on unloaded entry (#50154) 2021-05-06 16:43:14 +02:00
Franck Nijhof 177317a345 Allow passing options in config flow entry creation (#49912) 2021-05-05 22:14:01 -07:00
Franck Nijhof 465161b38c Deprecate Canary YAML configuration (#50078) 2021-05-05 22:04:32 -07:00
Franck Nijhof e3e9239798 Strictly type Twente Milieu integration (#50062) 2021-05-05 22:04:09 -07:00
J. Nick Koston af832e5434 Use shared httpx client in gogogate2 (#45575) 2021-05-05 21:47:44 -07:00
Erik Montnemery 7dec23d58b Improve translation strings for MQTT config and option flows (#50018)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-05 21:25:28 -07:00
tkdrob d6c300aeb1 Fix group selector (#50088) 2021-05-05 20:15:21 -07:00
Pascal Vizeli 23a2417c42 Adjust GRPC wheel build (#50119) 2021-05-05 20:12:06 -07:00
J. Nick Koston 60b90c4546 Bump zeroconf to 0.30.0 to fix thread safety race (#50130) 2021-05-05 20:11:06 -07:00
J. Nick Koston 906de23087 Bump sqlalchemy to 1.4.13 (#50138) 2021-05-05 20:08:48 -07:00
Teemu R 0ed31b0ba7 Bump python-miio dependency (#50129) 2021-05-05 17:19:52 -07:00
HomeAssistant Azure 7dad5e8a4c [ci skip] Translation update 2021-05-06 00:03:11 +00:00
Franck Nijhof ae692a003f Add support for Elgato Light Strip (#49988)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-05 16:41:32 -07:00
Aidan Timson e4ef06d6b1 System Bridge Integration (#48156)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-06 01:33:32 +02:00
epenet 5dd59415a8 Drop OWFS support in onewire (#50121) 2021-05-05 21:14:20 +02:00
Franck Nijhof ccf92e4721 Merge pull request #50123 from home-assistant/rc 2021-05-05 19:00:33 +02:00
Franck Nijhof 3654d22af5 Bumped version to 2021.5.0 2021-05-05 18:17:06 +02:00
Erik Montnemery 418606d634 Fix Tasmota color scaling and RGBW lights (#50120) 2021-05-05 18:16:03 +02:00
Ben d7d32cff95 Remove surepetcare usage of deprecated config options (#50113) 2021-05-05 18:15:59 +02:00
Erik Montnemery 4136f9f203 Fix Tasmota color scaling and RGBW lights (#50120) 2021-05-05 17:59:26 +02:00
Ben 40a18c10a0 Remove surepetcare usage of deprecated config options (#50113) 2021-05-05 17:13:06 +02:00
Joakim Sørensen 65cf138360 Allign error handling for restart for hassio with core (#50114)
* Allign error handling for restart for hassio with core

* Reuse HASS_DOMAIN

* Address comments
2021-05-05 17:09:18 +02:00
Dermot Duffy 1b9f7cdacf Bump motioneye-client to v0.3.6 . (#50096) 2021-05-05 13:31:10 +02:00
Vincent Le Bourlot 4b7100614b Fix fitbit RuntimeError: I/O must be done in the executor (#50058) 2021-05-05 13:31:06 +02:00
Erik Montnemery d87c9c6ffe Add color_mode support to tasmota light (#49599) 2021-05-05 13:31:03 +02:00
Erik Montnemery 93572bfe02 Add color_mode support to tasmota light (#49599) 2021-05-05 13:04:37 +02:00
Franck Nijhof e55be3c89a Deprecate Freebox YAML configuration (#50084) 2021-05-05 09:52:32 +02:00
Franck Nijhof 6cb5bf2b88 Deprecate Denon HEOS YAML configuration (#50104) 2021-05-05 09:52:11 +02:00
Franck Nijhof 084fe1fb68 Deprecate Glances YAML configuration (#50085) 2021-05-05 09:51:43 +02:00
Franck Nijhof 26b5a067bd Remove YAML configuration from Verisure (#50076) 2021-05-05 09:51:05 +02:00
Franck Nijhof b7cd75b134 Upgrade pyupgrade to v2.14.0 (#50059) 2021-05-05 09:28:47 +02:00
Vincent Le Bourlot 219ad5cd9e Fix fitbit RuntimeError: I/O must be done in the executor (#50058) 2021-05-05 09:19:51 +02:00
Franck Nijhof f88eea5275 Upgrade luftdaten to 0.6.5 (#50103) 2021-05-05 09:12:35 +02:00
Franck Nijhof 373236e588 Upgrade black to 21.5b0 (#50102) 2021-05-05 09:09:34 +02:00
Rob Bierbooms 2b461073ff Improve buienradar tests (#50101) 2021-05-05 09:05:46 +02:00
Franck Nijhof 44383f25ce Clean up pylint comments (#49334) 2021-05-05 08:56:50 +02:00
Dermot Duffy b0eb2afa65 Bump motioneye-client to v0.3.6 . (#50096) 2021-05-05 07:58:20 +02:00
Franck Nijhof 301d642ad8 Clean up deprecation message & config schema from Cloudflare (#50079) 2021-05-05 07:56:50 +02:00
Franck Nijhof cc21de569d Upgrade yamllint to 1.26.1 (#50060) 2021-05-04 19:27:23 -10:00
HomeAssistant Azure 469d9123fe [ci skip] Translation update 2021-05-05 00:04:27 +00:00
jan iversen 2f89ba24b6 Cleanup modbus binary_sensor signature (#49809)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-05 00:29:18 +02:00
Paulus Schoutsen bb7b6e38e4 Bumped version to 2021.5.0b8 2021-05-04 15:12:30 -07:00
Bram Kragten b6385cc4b3 Update frontend to 20210504.0 (#50093) 2021-05-04 15:12:22 -07:00
Shay Levy 445deec645 Catch Shelly set state exceptions when device is inaccessible (#50064) 2021-05-04 15:12:22 -07:00
Matthias Alphart 1b3489b107 Fix KNX climate unque_id (#50054) 2021-05-04 15:12:21 -07:00
J. Nick Koston fa2a98fc96 Handle missing transport_state on media update in sonos (#50051) 2021-05-04 15:12:20 -07:00
Paulus Schoutsen 14e02b1bca Guard logbook assuming entity ID is a string (#50047) 2021-05-04 15:12:19 -07:00
Bram Kragten 98edd58c55 Update frontend to 20210504.0 (#50093) 2021-05-04 15:11:03 -07:00
Matthias Alphart 13a27eec90 Fix KNX climate unque_id (#50054) 2021-05-04 14:45:25 -07:00
Ruslan Sayfutdinov 004fa63dbe Use AddEntitiesCallback type, pt.3 (#49953) 2021-05-04 23:36:48 +02:00
Bram Kragten 4d939486a9 Fix updating owner user/auth (#50087)
Check if `is_active` is in update msg
2021-05-04 14:26:48 -07:00
Franck Nijhof 2273bda44a Deprecate Abode YAML configuration (#50075) 2021-05-04 14:26:21 -07:00
Franck Nijhof 34eb1627e0 Remove deprecated LIFX Legacy integration (#50069) 2021-05-04 14:25:59 -07:00
Franck Nijhof 4907764367 Remove YAML configuration from Daikin (#50080) 2021-05-04 14:23:59 -07:00
Paulus Schoutsen 4cf910affc Guard logbook assuming entity ID is a string (#50047) 2021-05-04 14:23:22 -07:00
Franck Nijhof 98ef1e1e82 Remove stale config schema from ESPHome integration (#50083) 2021-05-04 22:18:46 +02:00
Franck Nijhof 4af6e505b3 Deprecate speedtest.net YAML config (#50072) 2021-05-04 22:18:22 +02:00
puddly e5ef171077 Bump zigpy-znp from 0.4.0 to 0.5.1 (#50086)
* Bump zigpy-znp from 0.4.0 to 0.5.0

* Add zigpy-znp to ZHA debug logging config

* Bump zigpy-znp from 0.5.0 to 0.5.1
2021-05-04 16:06:14 -04:00
Franck Nijhof fb2cb469e2 Remove YAML configuration from DoorBird (#50082) 2021-05-04 21:10:17 +02:00
Franck Nijhof 13ba4d7572 Upgrade pytest to 6.2.4 (#50077) 2021-05-04 20:43:41 +02:00
Franck Nijhof 96f69fb9fb Finalize clean up connection classes (#49895) 2021-05-04 20:08:51 +02:00
Franck Nijhof ee5f955fd8 Clean up stale config schema from deCONZ (#50081) 2021-05-04 20:06:54 +02:00
Shay Levy c21add195a Catch Shelly set state exceptions when device is inaccessible (#50064) 2021-05-04 09:10:28 -07:00
Ruslan Sayfutdinov 786c5db5be Use AddEntitiesCallback type, pt.4 (#49955) 2021-05-04 14:50:06 +02:00
Milan Meulemans a0feee083c Fix and enable type checks in Rituals Perfume Genie (#49947) 2021-05-04 14:47:17 +02:00
Rob Bierbooms c063f14c24 Add configuration flow for Buienradar integration (#37796)
* Add configuration flow for Buienradar integration

* Update buienradar camera tests to work with config flow

* Update buienradar weather tests to work with config flow

* Update buienradar sensor tests to work with config flow

* Remove buienradar config_flow tests to pass tests

* Add config flow tests for buienradar integration

* Increase test coverage for buienradar config_flow tests

* Move data into domain

* Remove forecast option

* Move data to options

* Remove options from config flow

* Adjust tests

* Adjust string

* Fix pylint issues

* Rework review comments

* Handle import

* Change config flow to setup camera or weather

* Fix tests

* Remove translated file

* Fix pylint

* Fix flake8

* Fix unload

* Minor name changes

* Update homeassistant/components/buienradar/config_flow.py

Co-authored-by: Ties de Kock <ties@tiesdekock.nl>

* Remove asynctest

* Add translation

* Disable sensors by default

* Remove integration name from translations

* Remove import method

* Drop  selection between platforms, disable camera by default

* Minor fix in configured_instances

* Bugfix in weather

* Rework import

* Change unique ids of camera

* Fix in import

* Fix camera tests

* Fix sensor test

* Fix sensor test 2

* Fix config flow tests

* Add option flow

* Add tests for option flow

* Add import tests

* Some cleanups

* Apply suggestions from code review

Apply code suggestions

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

* Fix isort,black,mypy

* Small tweaks and added typing to new parts

* Fix review comments (1)

* Apply suggestions from code review

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

* Fix review comments (2)

* Fix issues

* Fix unique id

* Improve tests

* Extend tests

* Fix issue with unload

* Address review comments

* Add warning when loading platform

* Add load/unload test

Co-authored-by: Ties de Kock <ties@tiesdekock.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-04 13:49:16 +02:00
dependabot[bot] 6931478688 Bump codecov/codecov-action from v1.4.1 to v1.5.0 (#50061)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.4.1 to v1.5.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.4.1...a1ed4b322b4b38cb846afb5a0ebfa17086917d27)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-04 10:57:44 +02:00
Robert Svensson d579e3427f Use last_step marker on UniFi options flow (#50053) 2021-05-04 08:54:45 +02:00
J. Nick Koston 016a4433d2 Handle missing transport_state on media update in sonos (#50051) 2021-05-04 08:54:31 +02:00
Niels Mündler 2eae87fb1b Add SyncThru binary sensors (#48114)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-04 08:28:45 +02:00
Dermot Duffy 809c1394d4 Enable mypy for motionEye (aye aye!) (#49738) 2021-05-04 08:19:41 +02:00
Simone Chemelli 55c96ae86f Create Fritz device and connectivity sensor (#49699)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-03 17:11:21 -10:00
HomeAssistant Azure 0df9454310 [ci skip] Translation update 2021-05-04 00:03:46 +00:00
jan iversen f0ec9c38b0 Fix modbus typing (#49938)
Add changes needed to please mypy and follow the coding rules
of the project.
2021-05-03 22:45:21 +02:00
Daniel Hjelseth Høyer c69eeddc7b Upgrade Tibber library, new grid prices for Glitre Energi (#50029)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-05-03 10:50:39 -07:00
Paulus Schoutsen 46a3b26b67 Bumped version to 2021.5.0b7 2021-05-03 10:34:45 -07:00
Bram Kragten 88b2425059 Update frontend to 20210503.0 (#50036) 2021-05-03 10:34:41 -07:00
bsmappee 398ebccbde Bump pysmappee to 0.2.25 (#50031) 2021-05-03 10:34:40 -07:00
Franck Nijhof 5679fbf219 Fix Nexia entity service schema (#50027) 2021-05-03 10:34:39 -07:00
Marius b8b3e8f879 Mitigate NMBS key errors (#50026)
on Liveboard and connections as documented in issue #48824
2021-05-03 10:34:39 -07:00
Franck Nijhof c3f757c1ae Fix Harmony entity service schema (#50025) 2021-05-03 10:34:38 -07:00
Franck Nijhof 5f0281f0ba Fix Genius Hub entity service schema (#50024) 2021-05-03 10:34:37 -07:00
Franck Nijhof 9e8d01893f Fix ELKM1 entity service schema (#50020) 2021-05-03 10:34:37 -07:00
Franck Nijhof 40f3bbe005 Fix Blink entity service schema (#50019) 2021-05-03 10:34:36 -07:00
Joakim Sørensen 0a4856b88b Handle Timeout exceptions in system_health (#50017) 2021-05-03 10:34:35 -07:00
Bram Kragten 4273a3d63f Fix saving a scene (#49980)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-03 10:34:34 -07:00
Matthias Alphart 33fa6cd794 Fix KNX light unique_id (#49967)
* migrate light unique_id

* review changes
2021-05-03 10:34:33 -07:00
Shay Levy 3681363418 Fix Shelly battery operated devices value rounding (#49966) 2021-05-03 10:34:33 -07:00
J. Nick Koston 302cab185d Add reauth support to flume (#49991) 2021-05-03 10:30:22 -07:00
bsmappee c49fa6f1ed Bump pysmappee to 0.2.25 (#50031) 2021-05-03 18:51:23 +02:00
Ruslan Sayfutdinov 5fd8e7008e Create separate entries for each component in mypy.ini (#50030) 2021-05-03 18:45:38 +02:00
Franck Nijhof 982c12bcc9 Restore dictionary constants in Elgato device info (#50013) 2021-05-03 09:42:45 -07:00
Franck Nijhof d4565c0e27 Fix Genius Hub entity service schema (#50024) 2021-05-03 09:41:59 -07:00
Franck Nijhof 9ce00018be Fix Harmony entity service schema (#50025) 2021-05-03 09:41:16 -07:00
Franck Nijhof 2818df7aa9 Fix Nexia entity service schema (#50027) 2021-05-03 09:40:49 -07:00
Franck Nijhof a2d12f9a51 Fix ELKM1 entity service schema (#50020) 2021-05-03 09:40:01 -07:00
Franck Nijhof 2ed386f9e6 Migrate to async_get_current_platform everywhere (#50034) 2021-05-03 09:34:28 -07:00
Bram Kragten 672d2e332f Update frontend to 20210503.0 (#50036) 2021-05-03 09:32:45 -07:00
Franck Nijhof 0627b316e3 Add Identify service to Elgato integration (#49990) 2021-05-03 17:32:10 +02:00
Marius 13dee0f028 Mitigate NMBS key errors (#50026)
on Liveboard and connections as documented in issue #48824
2021-05-03 17:06:46 +02:00
Franck Nijhof efb1bb08a4 Add small async_get_current_platform helper method (#50014) 2021-05-03 16:46:42 +02:00
Maciej Bieniek 6e98b020ac Improve type annotations in Brother integration (#49989) 2021-05-03 15:10:20 +02:00
Franck Nijhof e5bfef719f Fix Blink entity service schema (#50019) 2021-05-03 14:57:11 +02:00
Joakim Sørensen 9b89acea97 Handle Timeout exceptions in system_health (#50017) 2021-05-03 14:26:25 +02:00
Franck Nijhof 378cee01b4 Add typing to async_register_entity_service (#50015) 2021-05-03 14:22:38 +02:00
Simone Chemelli 1ad9f1d714 Title and internal descriptions updates for Fritzbox (#49047) 2021-05-03 12:52:22 +02:00
J. Nick Koston 779f34a8ed Add dhcp discovery to hunterdouglas_powerview (#49993)
* Add dhcp discovery to hunterdouglas_powerview

* avoid dupe flow

* cleanup

* cleanup
2021-05-03 11:41:20 +02:00
Austin Mroczek f8d82bbf80 Add unique_id to TotalConnect alarm_control_panel (#49961)
* add unique_id to alarm_control_panel

* Update homeassistant/components/totalconnect/alarm_control_panel.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-03 11:38:59 +02:00
Matthias Alphart cfabb06a7a Add color modes to KNX light (#49883)
* color_modes support

* return brightness for color lights

even when no brightness address is set

* apply brightness for color lights

* remove unneeded constants
2021-05-03 11:28:02 +02:00
Matthias Alphart 0a6f981b4c Fix KNX light unique_id (#49967)
* migrate light unique_id

* review changes
2021-05-03 11:12:06 +02:00
Dermot Duffy e8446cb4d9 Fix types for shell command (#50004) 2021-05-03 10:43:23 +02:00
Unai 9d08178ed1 Upgrade maxcube-api dependency to 0.4.3 (#49982)
This new version only contains improvements in logs
to try to debug issue #49482
2021-05-03 10:22:47 +02:00
Tomas Hellström a29dfe0bf5 Update smhi package to 1.0.15 (#49987) 2021-05-03 10:21:57 +02:00
Shay Levy 0a38827544 Fix Shelly battery operated devices value rounding (#49966) 2021-05-02 23:49:13 -07:00
J. Nick Koston a4432557d3 Defer writing http config until after startup has calmed down (#50000) 2021-05-02 19:48:49 -10:00
Bram Kragten 301d4b0657 Fix saving a scene (#49980)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-02 22:11:57 -07:00
J. Nick Koston 42c48e8cf9 Add reauth support to myq (#49998) 2021-05-02 21:52:48 -07:00
Paulus Schoutsen 8e0e1405e8 Make hassfest service validation faster (#50003) 2021-05-02 21:49:51 -07:00
Paulus Schoutsen 5e2d30a170 Bumped version to 2021.5.0b6 2021-05-02 21:48:21 -07:00
J. Nick Koston cd05195155 Check exception causes for matching strings during recorder migration (#49999) 2021-05-02 21:48:17 -07:00
Florian Gareis 8d2f6bd363 Upgrade yeelight to 0.6.2 (#49995) 2021-05-02 21:48:17 -07:00
Shay Levy 617e47cfa8 Fix Shelly external sensors invalid 999 value (#49994) 2021-05-02 21:48:16 -07:00
Paulus Schoutsen b17b664c0b Handle different entity_id formats (#49969) 2021-05-02 21:48:15 -07:00
Bram Kragten 2a5adce0b9 Correct the selector for frontend.set_theme service (#49952) 2021-05-02 21:48:15 -07:00
Bram Kragten 8ca6b8394c Correct the selector for frontend.set_theme service (#49952) 2021-05-02 21:07:26 -07:00
Shay Levy 7c7a56f704 Fix Shelly external sensors invalid 999 value (#49994) 2021-05-02 20:58:14 -07:00
J. Nick Koston 1c8d9ca68b Check exception causes for matching strings during recorder migration (#49999) 2021-05-02 20:57:42 -07:00
HomeAssistant Azure 04266301e9 [ci skip] Translation update 2021-05-03 00:05:16 +00:00
Milan Meulemans 6967fd184b Abstract Rituals API data processing to PyPI (#49872) 2021-05-02 13:18:29 -10:00
J. Nick Koston 26fd7fc15b Add dhcp discovery to tado (#49992) 2021-05-02 12:43:59 -10:00
Florian Gareis 93b668a6f9 Upgrade yeelight to 0.6.2 (#49995) 2021-05-03 00:05:40 +02:00
Franck Nijhof 6c4448a272 Upgrade elgato to 2.1.0 (#49975) 2021-05-02 17:18:36 +02:00
J. Nick Koston f7fafa6b8b Add zeroconf discovery to rachio (#49973) 2021-05-02 17:09:12 +02:00
Diogo Gomes 24b9d73392 Improves UX of Utility Meter services (#48556) 2021-05-02 10:53:35 +02:00
jan iversen 8adbc62a6e Enable homeassistant.update_entity service for all modbus platforms (#49918)
* Rename _update() to update()

A platform neeed a function update(), even though
polling is false, this is due to the service:
homeassistant.update_entity, which calls update()

* Update test harnesss to script testing.

Test homeassistant.update_entity in all platforms.
This call calls update() in the platform to get
a new reading.

* Add reuse parameter.

* Move service call from helper to tests.

* Change run_service_update --> prepare_service_update.

* Remove entity_id parameter.
2021-05-02 10:41:36 +02:00
Paulus Schoutsen 1bd9826684 Handle different entity_id formats (#49969) 2021-05-01 20:30:28 -07:00
Paulus Schoutsen 2f58b7d950 Bumped version to 2021.5.0b5 2021-05-01 17:25:34 -07:00
Aaron Bach d927932c47 Fix KeyError in IQVIA (#49968) 2021-05-01 17:25:30 -07:00
J. Nick Koston 21a5d5959c Bump pysonos to 0.0.44 to fix client session race (#49964)
Fixes #49954
2021-05-01 17:25:29 -07:00
Aaron Bach 04ccbb92c1 Bump simplisafe-python to 9.6.10 (#49962) 2021-05-01 17:25:28 -07:00
Alexei Chetroi bc88f6af09 Bump up ZHA dependencies (#49959) 2021-05-01 17:25:28 -07:00
Shay Levy c2df82b044 Fix light services descriptions (#49951) 2021-05-01 17:25:27 -07:00
Shay Levy 9828a58d9a Shelly light color mode bugfix (#49948) 2021-05-01 17:25:26 -07:00
Alan Tse 1c75d5cb94 Bump Tesla dependency teslajsonpy to 0.18.3 (#49939)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-01 17:25:26 -07:00
Alan Tse 3546ff2da2 Bump Tesla dependency teslajsonpy to 0.18.3 (#49939)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-01 17:04:37 -07:00
HomeAssistant Azure 796f9cad1f [ci skip] Translation update 2021-05-02 00:04:24 +00:00
Aaron Bach 91e41a0cc2 Fix KeyError in IQVIA (#49968) 2021-05-01 16:56:50 -07:00
Milan Meulemans 29d72714f3 Replace dict with DeviceInfo (#49950)
* Replace dict with DeviceInfo

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-02 00:37:19 +02:00
Ville Skyttä ddd7e79ee9 Improve device registry internal typing (#49924) 2021-05-01 12:33:31 -10:00
J. Nick Koston 4bebedb658 Bump pysonos to 0.0.44 to fix client session race (#49964)
Fixes #49954
2021-05-01 12:26:10 -10:00
Franck Nijhof 1b5596b4c2 Remove ServiceCallType alias from codebase (#49844) 2021-05-02 00:15:27 +02:00
jan iversen 7ac05110ca Catch non payload modbus messages (#49910) 2021-05-02 00:03:52 +02:00
Aaron Bach 9e43239240 Bump simplisafe-python to 9.6.10 (#49962) 2021-05-01 11:18:36 -10:00
J. Nick Koston 002b068c0a Remove YAML support from sense (#49935) 2021-05-01 11:17:52 -10:00
Alexei Chetroi ef2b8bbca8 Bump up ZHA dependencies (#49959) 2021-05-01 15:55:04 -04:00
jan iversen ebee5f7808 Fix ihc typing (#49946) 2021-05-01 21:01:56 +02:00
Shay Levy 2440f25aaf Shelly light color mode bugfix (#49948) 2021-05-01 07:43:03 -07:00
jan iversen 60ae230499 Please mypy (axis). (#49949)
* Please mypy (axis).

* Update homeassistant/components/axis/config_flow.py

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

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2021-05-01 16:13:43 +02:00
Shay Levy 20152313db Fix light services descriptions (#49951) 2021-05-01 15:00:40 +02:00
Artem Draft e597202b24 Update LG Netcast to use new backend library (#49927)
* Update LG Netcast to use new backend library

Bump lgnetcast to 0.3.3

* Add codeowner in LG Netcast
2021-05-01 07:49:17 -04:00
J. Nick Koston 671aabf9f4 Remove unused imports in fritz, nest, and somfy to fix CI (#49940) 2021-04-30 21:58:48 -10:00
Franck Nijhof 8eb27374c6 Clean up connection classes in integrations P-S (#49893) 2021-04-30 21:04:44 -10:00
Franck Nijhof 64c7d84108 Clean up connection classes in integrations T-Z (#49894) 2021-04-30 21:04:05 -10:00
Franck Nijhof a6206b2819 Clean up connection classes in integrations M-O (#49892) 2021-04-30 21:03:37 -10:00
Franck Nijhof 10d6dfd4ae Clean up connection classes in integrations H-L (#49891) 2021-04-30 21:02:53 -10:00
Franck Nijhof e652ff3a6a Clean up connection classes in integrations D-G (#49890) 2021-04-30 21:02:21 -10:00
Franck Nijhof d4d0b93d3b Clean up connection classes in integrations A-C (#49888) 2021-04-30 21:01:52 -10:00
Dermot Duffy 184602e267 Repair elgato types (#49936) 2021-04-30 17:51:53 -10:00
HomeAssistant Azure 0efd061255 [ci skip] Translation update 2021-05-01 00:03:44 +00:00
J. Nick Koston 71545f2a68 Avoid writing esphome data if its already up to date on disk (#49933) 2021-04-30 12:19:27 -10:00
HomeAssistant Azure 3542f58b18 [ci skip] Translation update 2021-04-30 15:00:52 -07:00
HomeAssistant Azure 35bca704f8 [ci skip] Translation update 2021-04-30 15:00:44 -07:00
Paulus Schoutsen 8189cf8c0b Bumped version to 2021.5.0b4 2021-04-30 14:59:50 -07:00
Paulus Schoutsen c10d09f2f4 Iqvia to check bad fetch during setup (#49931) 2021-04-30 14:59:38 -07:00
Jason Hunter cbd292491c Bump xbox-webapi to 2.0.11 (#49929) 2021-04-30 14:59:37 -07:00
Bram Kragten adb00c1db1 Update frontend to 20210430.0 (#49928) 2021-04-30 14:59:36 -07:00
jjlawren ea3978be98 Use header URI in Plex config flow (#49915) 2021-04-30 14:59:35 -07:00
David F. Mulcahey 1577276e87 Small ZHA code cleanup (#49908) 2021-04-30 14:59:35 -07:00
David F. Mulcahey 8951b9ede4 Move ZHA config panel section translations to the backend (#49816) 2021-04-30 14:59:34 -07:00
Ville Skyttä 77d5244577 Use device registry CONNECTION_* constants (#49923) 2021-04-30 23:58:50 +02:00
J. Nick Koston 7ead482082 Reduce homekit executor calls at start (#49925)
- We do not need to load/persist since we do it in setup
2021-04-30 23:54:54 +02:00
Franck Nijhof e1a3ef3d69 Clean up config entry handlers decorator from config flows (#49932) 2021-04-30 23:28:25 +02:00
Ville Skyttä 59f32f7c9c Make device info a TypedDict (#49670) 2021-04-30 23:21:39 +02:00
jjlawren 37e8571fe8 Use header URI in Plex config flow (#49915) 2021-04-30 23:15:59 +02:00
Paulus Schoutsen a2138a7642 Iqvia to check bad fetch during setup (#49931) 2021-04-30 14:04:59 -07:00
jan iversen aa8ce07e35 Start Modbus cover timer independent if there is a state to restore (#49919)
* Start timer independent if there is a state to restore.

* Update test cases, that now start working.
2021-04-30 22:36:55 +02:00
Jason Hunter 2b46c6bcda Bump xbox-webapi to 2.0.11 (#49929) 2021-04-30 13:34:46 -07:00
Bram Kragten 5e27358590 Update frontend to 20210430.0 (#49928) 2021-04-30 13:25:57 -07:00
Ruslan Sayfutdinov f53284b200 Make CoordinatorEntity generic (#49854) 2021-04-30 13:24:27 -07:00
Franck Nijhof dc46a213a7 Enable strict typing for the Elgato integration (#49920) 2021-04-30 13:21:30 -07:00
Ruslan Sayfutdinov cbaeec2a4e Use AddEntitiesCallback type, pt.2 (#49921) 2021-04-30 20:38:59 +02:00
David F. Mulcahey 4ed74cd2f5 Move ZHA config panel section translations to the backend (#49816) 2021-04-30 09:29:34 -07:00
jan iversen 684ea9e49b Restructure modbus switch, and solve read/write conflicts (#49386)
Remove old style configuration from switch.
- The old style configuration allowed a number of illegal
  configurations, instead of adding if...log. in setup we
  only support the new configuration style.

Add new/changed configuration switch.

Removed verify_state and cleaned configuration to avoid possible
illegal configurations.
2021-04-30 16:47:18 +02:00
Maciej Bieniek 39e8a92596 Remove unused code from Brother config flow (#49889) 2021-04-30 16:41:55 +02:00
Raman Gupta fdc29d6a80 Add device specific discovery for Heatit Z-TRM3 thermostat (#49804)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-30 16:10:25 +02:00
Maciej Bieniek 37dad92bf7 Split long string in DuneHD test (#49900)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-30 15:30:21 +02:00
Franck Nijhof 98b305285f Upgrade pytest-xdist to 2.2.1 (#49904) 2021-04-30 14:35:30 +02:00
David F. Mulcahey 20cffc30de Small ZHA code cleanup (#49908) 2021-04-30 13:48:11 +02:00
Erik Montnemery 956c972e72 Add color_mode support to zwave_js light (#49588) 2021-04-30 13:46:25 +02:00
Franck Nijhof 2593dc507d Bumped version to 2021.5.0b3 2021-04-30 11:14:58 +02:00
Franck Nijhof 1e3d90ac0a Fix unexpected data in Google Travel Time config flow import (#49903) 2021-04-30 11:14:38 +02:00
Franck Nijhof 0ae392df75 Fix unexpected data in Waze config flow import (#49902) 2021-04-30 11:14:35 +02:00
Franck Nijhof cd3633c48f Update frontend to 20210429.0 (#49896) 2021-04-30 11:14:32 +02:00
Raman Gupta 83ff5bfa37 Don't validate inputs on platform setup for Google/Waze travel time (#49886)
* Don't validate inputs on platform setup for Google/Waze travel time

* feedback from other PR
2021-04-30 11:14:29 +02:00
Tom Toor aa46549be9 Reduced polling interval for mutesync integration (#49884) 2021-04-30 11:14:26 +02:00
Aaron Bach 41cf66c294 Remove no-longer-functioning SimpliSafe websocket support (#49876)
* Remove no-longer-functioning SimpliSafe websocket support

* Linting
2021-04-30 11:14:22 +02:00
Franck Nijhof 0d3d2edbff Fix unexpected data in Waze config flow import (#49902) 2021-04-30 11:12:31 +02:00
Franck Nijhof 2e9bf8ab4e Fix unexpected data in Google Travel Time config flow import (#49903) 2021-04-30 11:12:13 +02:00
Franck Nijhof 9b863324c5 Update frontend to 20210429.0 (#49896) 2021-04-30 10:26:56 +02:00
Ville Skyttä a19f757120 Allow str 1..n-tuples in device registry identifier type hints (#49864)
This reflects current practice, but the intent has been to have them as
2-tuples, and a future change is likely to start enforcing that (again).

Refs https://github.com/home-assistant/core/pull/49670#discussion_r622344872
2021-04-30 08:56:55 +02:00
Raman Gupta 1b6cd9e0f3 Don't validate inputs on platform setup for Google/Waze travel time (#49886)
* Don't validate inputs on platform setup for Google/Waze travel time

* feedback from other PR
2021-04-30 08:33:15 +02:00
Tom Toor dcaefe9f5a Reduced polling interval for mutesync integration (#49884) 2021-04-30 07:55:51 +02:00
jjlawren adba82de8b Do not pass hass.data to Sonos entities (#49881) 2021-04-30 07:01:09 +02:00
Aaron Bach 73714eba4b Remove no-longer-functioning SimpliSafe websocket support (#49876)
* Remove no-longer-functioning SimpliSafe websocket support

* Linting
2021-04-29 19:02:45 -06:00
HomeAssistant Azure 38a03009ae [ci skip] Translation update 2021-04-30 00:04:58 +00:00
Paulus Schoutsen 4087a173cd Bumped version to 2021.5.0b2 2021-04-29 14:34:47 -07:00
Bram Kragten ff6396d9c2 Update frontend to 20210407.1 (#49882) 2021-04-29 14:34:36 -07:00
Franck Nijhof 615ee6c6c4 Fix jumpy Verisure Wallplug state (#49880) 2021-04-29 14:34:35 -07:00
Ville Skyttä 809bb4d5ed Restore missing Huawei LTE cleanup on HA stop (#49871)
Refs https://github.com/home-assistant/core/pull/49788#discussion_r623071013
2021-04-29 14:34:34 -07:00
Shay Levy 6bb738ee27 Add color modes to Shelly light (#49867) 2021-04-29 14:34:34 -07:00
Raman Gupta eb17adf4fa Fix options flow bugs in Google/Waze Time Travel (#49866) 2021-04-29 14:34:33 -07:00
Maciej Bieniek 81712cbd0d Fix host_valid() logic in Vilfo config flow (#49862) 2021-04-29 14:34:32 -07:00
Raman Gupta 9574465acc Use EVENT_HOMEASSISTANT_STARTED instead of EVENT_HOMEASSISTANT_START (#49861) 2021-04-29 14:34:32 -07:00
Maciej Bieniek fddbed944d Fix host_valid() logic in DuneHD config flow (#49860) 2021-04-29 14:34:31 -07:00
Maciej Bieniek 3e47d2abd2 Fix host_valid() logic in BraviaTV config flow (#49857) 2021-04-29 14:34:30 -07:00
Ruslan Sayfutdinov 560a7a3ed3 Rename FlowResultDict to FlowResult (#49847) 2021-04-29 14:34:29 -07:00
Franck Nijhof 735bd121e1 hassfest detect built-in domain override for custom integrations (#49845) 2021-04-29 14:34:29 -07:00
Raman Gupta 5c39fd5863 Improve Google Travel Time import and naming logic (#49839) 2021-04-29 14:34:28 -07:00
Raman Gupta 44aaa0499a Improve Waze Travel Time import and naming logic (#49838) 2021-04-29 14:34:27 -07:00
Aaron David Schneider 28fadad208 Fix Fritz device tracker multiple routers (#49808)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-29 14:34:26 -07:00
jan iversen f459cef967 Catch missing/unavailable response from modbus (#49632)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-29 14:34:26 -07:00
Paulus Schoutsen ba7b05442c Add auto_off to binary sensor template entity (#49615) 2021-04-29 14:34:25 -07:00
karliemeads f009f251c9 Apply default light profile only when light is toggled from off to on (#49376)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-29 14:34:24 -07:00
Bram Kragten 55b5a1ed9c Update frontend to 20210407.1 (#49882) 2021-04-29 14:31:51 -07:00
Franck Nijhof b2c1da54aa Fix jumpy Verisure Wallplug state (#49880) 2021-04-29 14:31:34 -07:00
Franck Nijhof c68b259bd3 Cleanup of unused connection_class logic (#49865)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-04-29 23:12:58 +02:00
jjlawren db886ef03a Add additional Sonos codeowner (#49879) 2021-04-29 13:50:16 -07:00
karliemeads 2dedf3dd07 Apply default light profile only when light is toggled from off to on (#49376)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-29 22:06:09 +02:00
Raman Gupta 042099de14 Fix options flow bugs in Google/Waze Time Travel (#49866) 2021-04-29 12:57:48 -07:00
Ville Skyttä 22bda640b0 Restore missing Huawei LTE cleanup on HA stop (#49871)
Refs https://github.com/home-assistant/core/pull/49788#discussion_r623071013
2021-04-29 20:45:25 +02:00
Aaron David Schneider 0421c55bf1 Fix Fritz device tracker multiple routers (#49808)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-29 11:10:36 -07:00
Paulus Schoutsen f5e4b13814 Add auto_off to binary sensor template entity (#49615) 2021-04-29 09:25:34 -07:00
Shay Levy 87a595d928 Add color modes to Shelly light (#49867) 2021-04-29 09:13:58 -07:00
jan iversen 760caeed85 Complete modbus device response tests (#49633)
* Prepare test harness for new pymodbus return types.

Use pytest.fixture to mock pymodbus.
Use pytest.fixture to load modbus using mocked pymodbus
Add test of Exception/IllegalResponse/ExceptionResponse from pymodbus.

* Modbus.py is back at 100% test coverage.

* Added assert mock.called.

* add mock reset.
2021-04-29 18:06:56 +02:00
Maciej Bieniek 0379dee47e Fix host_valid() logic in Vilfo config flow (#49862) 2021-04-29 17:11:22 +02:00
Ruslan Sayfutdinov a4db35a16e Rename FlowResultDict in scaffold template (#49858) 2021-04-29 17:10:31 +02:00
Raman Gupta 4a95f6c2a3 Improve Google Travel Time import and naming logic (#49839) 2021-04-29 17:10:03 +02:00
Raman Gupta 5d421c9715 Use EVENT_HOMEASSISTANT_STARTED instead of EVENT_HOMEASSISTANT_START (#49861) 2021-04-29 17:06:27 +02:00
Maciej Bieniek 61991572d7 Fix host_valid() logic in DuneHD config flow (#49860) 2021-04-29 17:05:09 +02:00
Maciej Bieniek 3210c086ef Improve type annotations for the Brother integration (#49771) 2021-04-29 16:59:31 +02:00
djtimca f7cf82be6d Add Omnilogic Switch platform (#42116)
* Bump omnilogic dependency to 0.4.4 to fix Lights key error.

* Bumped dependency to 0.4.5.

* Fixed pump type issue for unique pool structure.

* Create full platform bundle for final testing and PR to Home Assistant dev.

* Removed logger instances not required.

* Fixed lint issues.

* Fixed pylint issues.

* Fix pylint issues. Fix issue with pH sensor offset.

* Stripped light, water_heater platform for PR submit.

* Correct pH and ORP sensor report to unknown with offset if pump is off.

* Moving guard condition check to helper function.

* Update to asyncio.sleep to wait for switch status delay in Hayward API status.

* Removed sleep, added state delay to handle slow Hayward API state update response.

* Fix flake8 issue.

* Fix flake8 issue.

* Fix isort issue.

* Addressed PR Comments.

* Addressed PR comments. Corrected Unit of Measure for sensor where pump speed is not variable.

* Fix pylint issue.

* Address pylint issue.

* Update homeassistant/components/omnilogic/switch.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-29 16:46:04 +02:00
Angelo Gagliano 7c28262bee Add codeowners for DHT (#49855) 2021-04-29 16:11:56 +02:00
Maciej Bieniek 9588e0d35a Fix host_valid() logic in BraviaTV config flow (#49857) 2021-04-29 16:09:59 +02:00
jan iversen 5b6d2edb48 Catch missing/unavailable response from modbus (#49632)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-29 15:59:17 +02:00
Ruslan Sayfutdinov 02764c2f46 Disable strict type checks for tests (#49851) 2021-04-29 15:57:02 +02:00
Raman Gupta 6f36fcc427 Improve Waze Travel Time import and naming logic (#49838) 2021-04-29 15:49:16 +02:00
Ruslan Sayfutdinov 183220008d Rename FlowResultDict to FlowResult (#49847) 2021-04-29 13:40:51 +02:00
Franck Nijhof 8be6605be9 Remove example entry from PR template (#49842) 2021-04-29 13:37:55 +02:00
Ruslan Sayfutdinov 0301706fc6 Define AddEntitiesCallback type (#49812) 2021-04-29 12:28:14 +02:00
Franck Nijhof de6c9e67b1 Upgrade black to 21.4b2 (#49841) 2021-04-29 11:50:29 +02:00
Franck Nijhof 52f3a7249f hassfest detect built-in domain override for custom integrations (#49845) 2021-04-29 11:43:23 +02:00
Joakim Sørensen b7184b669f Add onboarded key to analytics WS command (#49751) 2021-04-29 11:11:23 +02:00
Erik Montnemery bf57c77d5c Add color_mode to demo light (#49694)
* Update demo light with color mode support

* Add rgbw and rgbww color properties

* Update demo light

* Tweak

* Remove unneeded _clear_colors
2021-04-29 10:45:17 +02:00
Fabian Affolter 25d257b631 Upgrade py-cpuinfo to 8.0.0 (#49833) 2021-04-29 08:39:03 +02:00
Ruslan Sayfutdinov 5008c27e7a Relax type annotation for DataUpdateCoordinator data (#49827) 2021-04-28 18:31:08 -10:00
Ruslan Sayfutdinov a0bf95d4b5 Validate if modules in mypy config exist (#49810) 2021-04-29 06:29:53 +02:00
Mike Keesey 1c0fd61075 Remove references to hass.data in harmony tests (#49836)
Instead, just use the mocks directly.
2021-04-28 18:27:57 -10:00
HomeAssistant Azure 27816aa4d5 [ci skip] Translation update 2021-04-29 00:03:34 +00:00
Franck Nijhof 16e096de0c Bump version to 2021.6.0dev0 (#49830) 2021-04-28 23:48:48 +02:00
Franck Nijhof 962ccc93eb Bumped version to 2021.5.0b1 2021-04-28 22:46:25 +02:00
Franck Nijhof c4a2dd5c3d Remove DHT from Raspberry Pi machine builds (#49829) 2021-04-28 22:45:12 +02:00
Raman Gupta 92ce79675b Set ClimaCell API limit to 500 requests/day (#49828) 2021-04-28 22:45:09 +02:00
Aaron Bach 2288d60ce4 Bump pyairvisual to 5.0.8 (#49823) 2021-04-28 22:45:06 +02:00
Anders Melchiorsen 622db888ec Fix color setting in LIFX services (#49822) 2021-04-28 22:45:00 +02:00
Simone Chemelli ca1cf64cc2 Add service target to Neato (#49803)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-04-28 22:44:52 +02:00
Franck Nijhof 14af6d3884 Remove DHT from Raspberry Pi machine builds (#49829) 2021-04-28 22:43:40 +02:00
Raman Gupta 105504cb89 Set ClimaCell API limit to 500 requests/day (#49828) 2021-04-28 13:43:07 -07:00
Anders Melchiorsen 21872c42fe Fix color setting in LIFX services (#49822) 2021-04-28 13:31:40 -07:00
Simone Chemelli ff137fe186 Add service target to Neato (#49803)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-04-28 22:18:00 +02:00
Aaron Bach d749015b96 Bump pyairvisual to 5.0.8 (#49823) 2021-04-28 21:34:19 +02:00
tkdrob 74f95ac338 Add switch platform to goalzero (#48612)
* Add switch platform to goalzero

* fix update interval

* Apply some suggested changes

* pass device class to parent

* Drop passing device_class

* Tweaks

* Drop underscore prefix
2021-04-28 21:24:56 +02:00
Franck Nijhof e11ff6a15e Bumped version to 2021.5.0b0 2021-04-28 20:31:08 +02:00
Paulus Schoutsen 2908332a4e Bump frontend to 20210428.0 (#49821) 2021-04-28 11:21:51 -07:00
Robert Svensson 056f636568 Add tampering sensor to deCONZ integration (#49776) 2021-04-28 20:16:06 +02:00
tkdrob 883513e089 Add selectors to google services (#49796) 2021-04-28 19:58:53 +02:00
jjlawren 8c311cbaa0 Handle special Plex library sections (#49525) 2021-04-28 19:58:05 +02:00
Robert Svensson 5e07ab17b2 Add support for deCONZ alarm events in logbook (#49652)
* Add support for alarm events in logbook

* Update homeassistant/components/deconz/alarm_control_panel.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-04-28 19:46:15 +02:00
Joakim Sørensen 296dc9303f Add OS version and board type to analytics (#49725) 2021-04-28 19:13:09 +02:00
Robert Svensson 311e0e4185 Last minute tweaks to deCONZ alarm panel entity service(#49819)
Text for entry and exit delay was wrong
Remove functions that need a bit more investigating
2021-04-28 18:54:53 +02:00
Chris e85d58c3a1 Fix white_value causing zwave-js to set non-existing values (#49799) 2021-04-28 09:23:48 -07:00
Pascal Vizeli 1e2f242220 Update base image to version 2021.04.3 (#49817) 2021-04-28 18:03:21 +02:00
J. Nick Koston 11a56df2cb Serialize websocket messages before placing them in the queue (#49582) 2021-04-28 08:55:18 -07:00
Joakim Sørensen 3088f063d2 Don't overwrite existing files when generating configuration (#49815) 2021-04-28 17:15:04 +02:00
Raman Gupta 795fe18a90 Add additional zwave_js WS API commands for nodes (#49509)
* Add zwave_js WS API commands for node.refresh_values and node.refresh_cc_values

* remove guard since API will be used by frontend

* add missing validation

* use get in case node ID is wrong

* use decorator

* add additional coverage
2021-04-28 10:22:18 -04:00
Matthias Alphart 78befcd3fd Fix KNX unique_id (#49677)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-28 15:50:01 +02:00
Erik Montnemery e96cbccc92 Improve color conversion for RGBWW lights (#49807) 2021-04-28 15:46:41 +02:00
Martin Hjelmare 9e1042d9e0 Fix zwave_js flow set add-on options (#49813)
* Fix zwave_js flow set add-on options

* Improve and deduplicate error messages

* Add more call assertions

* Add final missing call assertion
2021-04-28 15:09:39 +02:00
Franck Nijhof ded8297d27 Merge branch 'master' into dev 2021-04-28 15:06:10 +02:00
Erik Montnemery 3cb4ff8c4a Bump hatasmota to 0.2.11 (#49811) 2021-04-28 13:52:46 +02:00
tkdrob be3e77c3e7 Add selector and target to pi_hole services (#49795) 2021-04-28 13:25:06 +02:00
Franck Nijhof 7d7b942dfa Small typing tweaks to Light component (#49718)
* Small typing tweaks to Light component

* Use abc collection
2021-04-28 12:04:59 +02:00
tkdrob a6a85de2f8 Add selectors to icloud services (#49797) 2021-04-28 11:55:09 +02:00
J. Nick Koston 3f547e58d7 Fix zeroconf test inadvertently matching strings that start with name (#49578)
* Fix zeroconf test inadvertently matching strings that start with name

* adjust

* adjust
2021-04-28 11:47:36 +02:00
J. Nick Koston 14869483ca Fix scrape sensor auth with httpx (#49806) 2021-04-28 11:24:11 +02:00
J. Nick Koston dcb5b9f8b5 Bump httpx to 0.18.0 and respx to 0.17.0 (#49805) 2021-04-28 11:22:09 +02:00
Raman Gupta 1cb907c2e3 Add zwave_js discovery schema for Vision Security ZL7432 (#49510)
* Add zwave_js discovery schema for Vision Security ZL7432

* add tests

* fix test

* add correct fixture

* Make discussed changes

* fix tests

* move event handler

* fix logic to get entity ID

* add test

* make discovery test more explicit

* remove domain from event data

* always provide entity_id key to make automations easier and translate value if possible

* formatting

* comment

* dont overwrite value
2021-04-28 10:22:54 +02:00
Erik Montnemery d7247c2ace Correct conversion of RGB and XY colors to RGBW (#49802) 2021-04-28 10:12:20 +02:00
Angelo Gagliano d6c01cc0e6 Convert DHT to use circuitpython library (#41525)
* Converts DHT to use circuitpython library

* Adds dht requirement to requirements_all

* Cleanup for isort,black and requirements

* Adds validation to prefix with D for PIN

* Sends name over to dhtclient

* Adds exceptions for broad-except

* Adds explict except for raised exception

* Removes unused var

* Moves setting dht var out of try

* Bump to 3.5.8

* Moves non-exception steps to else

* Bump library version

* Bumps version
2021-04-28 09:52:57 +02:00
Matt Zimmerman 17e9e4fa31 update python-smarttub dependency to 0.0.24 (#49800) 2021-04-27 18:06:08 -10:00
Alexei Chetroi 345873f94f Don't bind all clusters unconditionally (#49793) 2021-04-27 20:25:34 -04:00
Erik Montnemery 575b8340fc Fix entity_id change for Google Cast (#49743) 2021-04-28 01:40:41 +02:00
Bram Kragten a30b21ad50 Update frontend to 20210427.0 (#49794) 2021-04-27 16:02:21 -07:00
Franck Nijhof 89e7983ee0 Add Blueprint foundation to Scripts (#48621)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-27 15:15:38 -07:00
Greg Dowling cd84595429 Rework roon media player grouping to use media_player base services (#49667)
* Add group/join status attributes to roon player.

* Rework join/unjoin code to use base media_player services.

* Switch join and unjoin to be sync.
2021-04-27 23:55:29 +02:00
Dermot Duffy 3fda66d9e2 Change motionEye to use a two item device identifier tuple (#49774)
* Change to a two item device identifier tuple.

* Don't use join.
2021-04-27 23:48:27 +02:00
Maciej Bieniek 513685bbea Add dynamic update interval to Airly integration (#47505)
* Add dynamic update interval

* Update tests

* Improve tests

* Improve comments

* Add MAX_UPDATE_INTERVAL

* Suggested change

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

* Use async_fire_time_changed to test update interval

* Fix test_update_interval

* Patch dt_util in airly integration

* Cleaning

* Use total_seconds instead of seconds

* Fix update interval test

* Refactor update interval test

* Don't create new context manager

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-27 23:34:53 +02:00
Ville Skyttä 9db6d0cee4 Huawei LTE unload cleanups (#49788) 2021-04-27 23:08:14 +02:00
tkdrob c193f8fd18 Clean up intent_script (#49770) 2021-04-27 22:55:26 +02:00
J. Nick Koston f9a2c1cfd5 Reduce config entry setup/unload boilerplate V-Z (#49789) 2021-04-27 22:51:11 +02:00
Tom Toor a57761103c Mutesync integration (#49679)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-27 13:44:59 -07:00
Kevin Worrel 41c6474249 Add Screenlogic IntelliChem and SCG data (#49689) 2021-04-27 10:43:48 -10:00
J. Nick Koston 4b74c57285 Reduce config entry setup/unload boilerplate T-U (#49786) 2021-04-27 22:19:57 +02:00
J. Nick Koston 87420627a8 Reduce config entry setup/unload boilerplate Q-S (#49778) 2021-04-27 22:10:04 +02:00
Erik Montnemery d2fd504442 Limit precision when stringifying float states (#48822)
* Limit precision when stringifying float states

* Add test

* Fix typing

* Move StateType

* Update

* Move conversion to entity helper

* Address review comments

* Tweak precision

* Tweak

* Make _stringify_state an instance method
2021-04-27 21:48:24 +02:00
Ville Skyttä 5e00fdccfd Use ConfigEntry.async_on_unload in UpCloud (#49784) 2021-04-27 21:41:03 +02:00
tkdrob 458ca970c9 Add selectors to profiler services (#49781) 2021-04-27 21:02:48 +02:00
Ben ebbcfb1bc7 Fix and upgrade surepetcare (#49223)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-27 20:58:52 +02:00
J. Nick Koston 3f3f77c6e6 Reduce config entry setup/unload boilerplate N-P (#49777) 2021-04-27 20:42:21 +02:00
tkdrob 6df19205da Add selectors to group services (#49779) 2021-04-27 20:37:59 +02:00
tkdrob 81264ff759 Add selectors to synology_dsm services (#49772) 2021-04-27 20:34:21 +02:00
tkdrob 046f02b7b8 Add selectors to device_tracker services (#49780) 2021-04-27 20:31:53 +02:00
Erik Montnemery fdadacd158 Improve color conversion for RGBW lights (#49764) 2021-04-27 20:07:55 +02:00
tkdrob ba76d9f977 Add selectors to zha services (#49773)
* Add selectors to zha services

* Use IEEE
2021-04-27 13:39:41 -04:00
Erik Montnemery ce64690817 Make number of stored traces configurable (#49728) 2021-04-27 10:27:12 -07:00
J. Nick Koston b10534359b Reduce config entry setup/unload boilerplate K-M (#49775) 2021-04-27 18:49:13 +02:00
tkdrob b5cb9e4ade Clean up tellduslive constants (#49765) 2021-04-27 18:36:41 +02:00
tkdrob d2d80093a1 Add selector to google assistant services (#49769) 2021-04-27 18:33:52 +02:00
Ruslan Sayfutdinov 2adc6d62e5 Replace .no-strict-typing with .strict-typing (#49762) 2021-04-27 09:13:11 -07:00
David F. Mulcahey a644c2e8ba Add alarm control panel support to ZHA (#49080)
* start implementation of IAS ACE

* starting alarm control panel

* enums

* use new enums from zigpy

* fix import

* write state

* fix registries after rebase

* remove extra line

* cleanup

* fix deprecation warning

* updates to catch up with codebase evolution

* minor updates

* cleanup

* implement more ias ace functionality

* cleanup

* make config helper work for supplied section

* connect to configuration

* use ha async_create_task

* add some tests

* remove unused restore method

* update tests

* add tests from panel POV

* dynamically include alarm control panel config

* fix import

Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2021-04-27 10:58:59 -04:00
jjlawren d4ed65e0f5 Add power binary_sensor support to Sonos (#49730)
* Add power binary_sensor support to Sonos

* Prepare for future unloading of config entries

* Remove unnecessary calls to super() inits

* Add binary_sensor to tests, remove invalid test for empty battery payload

* Move sensor added_to_hass to common sensor class

* Avoid dispatching sensors if no battery

* Use proper attributes property

* Remove power source fallback

* Update homeassistant/components/sonos/speaker.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-27 04:52:05 -10:00
tkdrob 9742bfdf46 Add selectors to wake_on_lan services (#49767) 2021-04-27 16:41:37 +02:00
J. Nick Koston a1fdf84dba Reduce config entry setup/unload boilerplate G-J (#49737) 2021-04-27 16:09:59 +02:00
tkdrob 157dd273da Use core constants for openalpr_cloud (#49755) 2021-04-27 10:05:14 -04:00
tkdrob 978d706b08 Clean up deconz constants (#49754) 2021-04-27 10:05:03 -04:00
tkdrob 664075962f Clean up profiler constants (#49752) 2021-04-27 10:04:45 -04:00
David F. Mulcahey b91d2be00b Better ZHA device reconfiguration (#49672)
* initial take

* cleanup

* fix mock for configure_reporting
2021-04-27 10:04:22 -04:00
David F. Mulcahey 6bc0fb2e42 Bump ZHA quirks library (#49757) 2021-04-27 10:02:16 -04:00
Joakim Sørensen f6be95eb4c Use machine in name for machine build (#49761) 2021-04-27 15:04:47 +02:00
Milan Meulemans ff57a5bd7d Manifest cleanup (#49745)
* Remove empty homekit dict in guardian manifest

* Clean up srp_energy manifest
2021-04-27 13:52:13 +02:00
Vincent Le Bourlot b5fdc05f5f Fix neato possible None state when creating entity (#49746) 2021-04-27 13:47:20 +02:00
Pascal Vizeli 4b8e1335bc Fix " on build pipeline (#49756) 2021-04-27 13:45:58 +02:00
dependabot[bot] 238198e05e Update actions/setup-python requirement to v2.2.2 (#49742)
Updates the requirements on [actions/setup-python](https://github.com/actions/setup-python) to permit the latest version.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/commits/dc73133d4da04e56a135ae2246682783cc7c7cb6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-27 13:24:13 +02:00
Pascal Vizeli d2c989ed93 Fix variable{1} on build pipeline (#49750) 2021-04-27 12:41:31 +02:00
Pascal Vizeli b28a868fd0 Fix arch command on build pipeline for machine (#49748) 2021-04-27 12:37:41 +02:00
Erik Montnemery 96e7ae94f8 Fix config entry reference for Home Assistant Cast user (#49729)
* Fix config entry reference for Home Assistant Cast user

* Simplify config_entry lookup
2021-04-27 11:20:10 +02:00
Bram Kragten b00ccf98f0 TP Link: Don't report HS when in CT mode (#49704)
* TP Link: Don't report HS when in CT mode

* Update tests
2021-04-27 11:19:21 +02:00
Pascal Vizeli 0d410209d2 Add dispatch - odroid c2 (#49744) 2021-04-27 11:17:40 +02:00
jan iversen e5e215353d Add swap byte/word/byteword option to modbus sensor (#49719)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-27 10:49:41 +02:00
Pascal Vizeli 1b957a0ce0 Use ' instead of " for build if workflows (#49739) 2021-04-27 10:36:13 +02:00
J. Nick Koston a67b9eff17 Reduce config entry setup/unload boilerplate D-F (#49733) 2021-04-26 20:46:49 -10:00
Robert Svensson 58ad3b61f7 Entities for secondary temperature values created by certain Xiaomi devices in deCONZ (#49724)
* Create sensors for secondary temperature values created by certain Xiaomi devices

* Fix tests
2021-04-27 08:43:06 +02:00
J. Nick Koston b27e9e376d Use StaticPool for recorder and NullPool for all other threads with sqlite3 (#49693) 2021-04-26 19:20:31 -10:00
tkdrob d9714e6b79 Use core constants for nad (#49709) 2021-04-26 21:21:41 -05:00
HomeAssistant Azure cd7d3ed12a [ci skip] Translation update 2021-04-27 00:04:45 +00:00
jan iversen 677d8e9a89 Add restore last state test to modbus sensor (#49721) 2021-04-27 00:20:50 +02:00
Joakim Sørensen 9d3b5cd0de Change log severity from warn to error for custom integration version (#49726) 2021-04-26 15:04:39 -07:00
djtimca 2a2e573987 Bump omnilogic dependency to 0.4.5 (#49526) 2021-04-27 00:02:39 +02:00
jjlawren dc50524f32 Cleanup implementation of new Sonos sensors (#49716) 2021-04-26 23:59:04 +02:00
Bram Kragten 9e7d83b2d5 Don't combine old and new value on scene update (#49248) 2021-04-26 23:38:30 +02:00
Pascal Vizeli 1527b9cad7 Build images on GitHub actions (#48318)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-26 22:19:40 +02:00
Franck Nijhof 9c3c67b71b Upgrade black to 21.4b0 (#49715) 2021-04-26 10:18:30 -10:00
J. Nick Koston 51be2f860a Reduce boilerplate to setup config entry platforms A-C (#49681)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-26 07:46:55 -10:00
tkdrob 922eec0909 Use core constants for kwb (#49708) 2021-04-26 17:12:36 +02:00
Doomic 41d6d64ca4 Add unique_id to WOL integration (#49604)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-26 15:55:41 +02:00
tkdrob a7393cd8b4 Add selectors to plex services (#49706) 2021-04-26 15:47:25 +02:00
tkdrob c4f0f818c7 Add selectors to frontend services (#49701)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-26 15:36:36 +02:00
tkdrob 5b1ed44613 Add selectors to ps4 services (#49702)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-26 15:35:45 +02:00
tkdrob 639dac1eaa Add selector to tts services (#49703) 2021-04-26 14:51:28 +02:00
Matthias Alphart 7acb16e2af KNX Schema improvements (#49678) 2021-04-26 14:36:01 +02:00
tkdrob 70be0561d0 Add selectors to cast services (#49684) 2021-04-26 14:29:38 +02:00
Ruslan Sayfutdinov 37466ae423 Don't ignore mypy errors by default (#49270) 2021-04-26 14:23:21 +02:00
tkdrob 0f220001a0 Add selectors to ecobee services (#49499) 2021-04-26 13:52:17 +02:00
J. Nick Koston 9a6402c1ae Only compile esphome icon schema once (#49688) 2021-04-26 12:37:13 +02:00
MarBra 1b14a2f54f Address late review comments for denonavr (#49666)
* denonavr: Add DynamicEQ and Audyssey service

* Remove useless return and entry.option in hass.data

* Remove duplicate translation
2021-04-26 11:22:07 +02:00
Fabian Affolter 940d28960b Upgrade TwitterAPI to 2.7.2 (#49680) 2021-04-26 07:43:52 +02:00
J. Nick Koston 9222d3e9f9 Ensure hue connection errors are passed to ConfigEntryNotReady (#49674)
- Limits log spam on retry
2021-04-25 16:42:45 -10:00
tkdrob 5a993a3ff3 Use core constants for apprise (#49683) 2021-04-25 20:22:01 -05:00
Alexei Chetroi 4a6bb96a0f Stop fast polling of a Zigbee device after a check-in command (#49685)
* Stop fast polling after a check-in

* Update tests
2021-04-25 21:15:04 -04:00
HomeAssistant Azure e5e71c2026 [ci skip] Translation update 2021-04-26 00:04:21 +00:00
Kevin Worrel 6f1273cf1c Refactor screenlogic API data selection (#49682) 2021-04-25 13:17:42 -10:00
Milan Meulemans 73b7a68e97 Fix Rituals battery sensor KeyError (#49661) 2021-04-25 12:47:36 -10:00
J. Nick Koston 855559004b Drop unneeded async_setup from august (#49675) 2021-04-25 23:13:54 +02:00
jan iversen 33e8553d92 Fix frontend freeze due to modbus device not responding (#49651)
Changing the timeout from package default, secures SENDING will
timeout, and after 3 retries break off.

Remark: this commit is tested with pymodbus v2.5.1 the old version
v2.3.0 have several problems in this area.
self._value = await self.async_get_last_state()

pymodbus v2.5.1 is active on DEV (bumped in an earlier PR).
2021-04-25 23:11:01 +02:00
J. Nick Koston 9689e06d3c Bump async-upnp-client to 0.16.2 (#49671) 2021-04-25 10:32:39 -10:00
tkdrob d24cbde913 Add target and selectors to sonos services (#49536) 2021-04-25 10:28:42 -10:00
Thibaut f7b72669dc Don't mark Somfy devices as unavailable (#49662)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-25 10:28:31 -10:00
Michael a5e25e519f Remove yaml configuration from fritzbox (#49663) 2021-04-25 09:49:08 -10:00
Ville Skyttä 631ab367e2 Fix typing.Any spelling (#49673) 2021-04-25 09:36:21 -10:00
Simone Chemelli 85438db1ec Fix Fritz unload (#49669) 2021-04-25 09:07:31 -10:00
Marc Mueller 7b33ed11c2 Fix missing default value in fritz scan_devices (#49668) 2021-04-25 20:28:40 +02:00
Marc Mueller 510a3ae915 Improve zeroconf test fixture (#49657) 2021-04-25 08:16:38 -10:00
jjlawren 3be8c9c1c0 Add battery support for Sonos speakers (#49441)
Co-authored-by: Walter Huf <hufman@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-25 07:20:21 -10:00
tkdrob 7ecd4f5eed Fix pylint failures caused by fritz (#49655)
* Fix test failures caused by fritz
* Fix typing.Any

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-04-25 15:48:03 +02:00
Dermot Duffy 3077363f44 Supplementary fixes to new motionEye integration (#49626) 2021-04-25 15:27:46 +02:00
jan iversen 914451d99c Remove dead code in modbus sensor and 100% test coverage (#49634) 2021-04-25 15:25:02 +02:00
J. Nick Koston 0862212942 Switch screenlogic discovery to use async version (#49650) 2021-04-25 12:41:40 +02:00
J. Nick Koston 3fa8ffa731 Enable mccabe complexity checks in flake8 (#49616)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-25 12:38:40 +02:00
Paulus Schoutsen 9f8e683ae3 Ask for IoT class during scaffold (#49647)
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-25 12:13:22 +02:00
Simone Chemelli b92f29997e Rework Fritz config_flow and device_tracker (#48287)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-25 00:10:33 -10:00
J. Nick Koston 376b787e4d Skip recorder commit if there is nothing to do (#49614) 2021-04-25 12:05:49 +02:00
starkillerOG 3e3cd0981d Reduce hue gamut warning to debug (#49624) 2021-04-25 11:50:08 +02:00
J. Nick Koston e2837f08e8 Small cleanups for august (#49493) 2021-04-25 11:32:34 +02:00
Ville Skyttä 153d6e891e Use config_entries.SOURCE_* constants (#49631) 2021-04-25 11:27:40 +02:00
Shay Levy 34a588d1ba Fix Shelly button first trigger (#49635) 2021-04-24 21:47:18 -07:00
J. Nick Koston aaba9766ff Bump scapy to 2.4.5 for dhcp (#49437) 2021-04-24 15:16:52 -10:00
Daniel Pervan f11834d85c Fix August Type error (#49636) 2021-04-24 14:40:39 -10:00
Michael a352516944 Implement DataUpdateCoordinator to fritzbox integration (#49611) 2021-04-24 14:40:12 -10:00
Marc Mueller f1d48ddfe3 Update pylint to 2.8.0 (#49637) 2021-04-24 14:39:24 -10:00
HomeAssistant Azure 28eaa67986 [ci skip] Translation update 2021-04-25 00:04:46 +00:00
jan iversen 49c23bad29 Revert "Remove HomeAssistantType from typing.py as it is no...2 (#49617)
This reverts commit 39cb22374d.

Added comment that HomeAssistantType is not to be used, but only
kept in order not to break custom components.
2021-04-24 09:10:07 -10:00
Olivér Falvai 46ef85f471 Add new Huawei LTE sensor metadata, improve icons (#49436) 2021-04-24 18:41:15 +03:00
Paulus Schoutsen dcee78b747 Template sensor/binary sensors without trigger now respect section unique id (#49613) 2021-04-24 07:14:31 -07:00
Robert Svensson b0fecdcc3d Add entity service for deCONZ alarm control panel to control states used to help guide user transition between primary states (#49606) 2021-04-24 15:46:16 +02:00
Matthias Alphart 671148b6ca Update xknx to version 0.18.1 (#49609) 2021-04-24 14:18:14 +02:00
J. Nick Koston 9a7d500b80 Cancel august interval track at stop event (#49198) 2021-04-24 14:13:25 +02:00
Dermot Duffy bbe58091a8 Create a motionEye integration (#48239) 2021-04-23 23:00:28 -07:00
Franck Nijhof a380632384 Upgrade watchdog to 2.0.3 (#49594) 2021-04-23 18:12:08 -10:00
Jakub Bartkowiak 33d4d545a7 Fix charging error in Roomba integration (#49416) 2021-04-23 17:22:56 -10:00
Paulus Schoutsen 0072923fbe Bump frontend to 20210423.0 2021-04-23 20:10:58 -07:00
HomeAssistant Azure 32dfaccf1f [ci skip] Translation update 2021-04-24 00:03:34 +00:00
Daniel Hjelseth Høyer 694a163124 Update met.no library (#49607) 2021-04-23 11:29:20 -10:00
Joakim Sørensen 019484f148 Use dev endpoint for dev installations (#49597) 2021-04-23 20:57:10 +02:00
Erik Montnemery 8013eb0e08 Allow data entry flows to hint for additional steps (#49202) 2021-04-23 11:02:12 -07:00
Paulus Schoutsen a6d87b7fae Batch Google Report State (#49511)
* Batch Google Report State

* Fix batching
2021-04-23 10:56:23 -07:00
Guido Schmitz c6edc7ae4f Clean up devolo Home Control config flow (#49585) 2021-04-23 13:48:24 +02:00
tkdrob 50d2c3bfe3 Add target and selectors to remote services (#49384) 2021-04-23 11:25:53 +02:00
mariwing 28a909c463 Requesting data from last seven days (#49485) 2021-04-23 11:16:24 +02:00
jan iversen 39cb22374d Remove HomeAssistantType from typing.py as it is no longer used. (#49593) 2021-04-23 11:08:58 +02:00
Xuefer 7579a321df Encode ONVIF username password in URL (#49512)
* onvif: encode username password in url

Signed-off-by: Xuefer <xuefer@gmail.com>

* onvif: use yarl to set username password for steam url

Signed-off-by: Xuefer <xuefer@gmail.com>
2021-04-23 10:43:02 +02:00
jan iversen d168749a51 Integrations: HomeAssistantType --> HomeAssistant. Last batch. (#49591) 2021-04-23 10:34:02 +02:00
Tsvi Mostovicz 968460099a Change Jewish calendar IOT class to calculated (#49571)
This integration doesn't poll at all, rather all values are calculated based on location and date, so I think this is the more correct value here
2021-04-23 10:19:43 +02:00
jan iversen 9685cefba4 Integrations h* - i*: Rename HomeAssistantType to HomeAssistant. (#49587) 2021-04-23 10:11:58 +02:00
Ville Skyttä a396619251 Use disabled_by constants (#49584)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-23 09:56:42 +02:00
jan iversen d52bc2373f Integrations i* - m*: Rename HomeAssistantType to HomeAssistant. (#49586) 2021-04-23 09:55:20 +02:00
jan iversen 017e32a0cb Integrations h*: Rename HomeAssistantType to HomeAssistant. (#49590) 2021-04-23 09:49:02 +02:00
Erik Montnemery a5a3c98aff Make lights supporting rgbw and rgbww accept colors (#49565)
* Allow lights supporting rgbw and rgbww accepting colors

* Tweak, update tests
2021-04-23 09:25:37 +02:00
Paulus Schoutsen 265fdea83b Allow config entries to store a reason (#49581) 2021-04-23 09:23:43 +02:00
J. Nick Koston c753606a74 Bump async-upnp-client to 0.16.1 (#49577) 2021-04-23 07:39:49 +02:00
Thomas Hollstegge 66dbb17a4a Fix opening cover via emulated_hue without specifying a position (#49570) 2021-04-22 19:12:52 -10:00
Matt Zimmerman e6d94845dd SmartTub: use get_full_status() (#49580) 2021-04-22 18:55:58 -10:00
Matt Zimmerman fec6ea3f76 SmartTub cleanup (#49579) 2021-04-22 18:54:55 -10:00
Milan Meulemans 48695869f9 Change dict[str, Any] to FlowResultDict (#49546) 2021-04-22 17:23:15 -10:00
HomeAssistant Azure 686c92097f [ci skip] Translation update 2021-04-23 00:03:48 +00:00
Erik Montnemery 2502e7669c Remove SUPPORT_WHITE_VALUE from ZHA light groups (#49569) 2021-04-22 16:59:41 -07:00
Erik Montnemery b3c9d854f5 Correct min and max mired for light with color_mode support (#49572) 2021-04-22 16:47:33 -07:00
Erik Montnemery d28b959a09 Improve sun condition trace (#49551) 2021-04-22 16:46:27 -07:00
Erik Montnemery a9065f381d Use supported_color_modes in emulated_hue (#49175) 2021-04-22 16:42:28 -07:00
Paulus Schoutsen 1016d4ea28 Support trigger-based template binary sensors (#49504)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-22 14:54:28 -07:00
jan iversen 9410aefd0d Integrations m*: Rename HomeAssistantType to HomeAssistant. (#49567) 2021-04-22 14:53:37 -07:00
tikismoke 90ede05c82 Bump pyvlx to 0.2.19 (#49533)
* Update manifest.json

https://github.com/Julius2342/pyvlx/pull/59#issuecomment-824291298

* Update requirements_all.txt
2021-04-22 22:34:31 +02:00
J. Nick Koston d4329e01ef Fix deadlock in async_get_integration_with_requirements after failed dep pip install (#49540) 2021-04-22 22:32:38 +02:00
jan iversen d76993034e Replace HomeAssistantType with HomeAssistant for integrations m* - n* (#49566)
* Integration neato: rename HomeAssistantType to HomeAssistant.

* Integration mysensors: rename HomeAssistantType to HomeAssistant.

* Integration mobile_app: rename HomeAssistantType to HomeAssistant.

* Integration minecraft_server: rename HomeAssistantType to HomeAssistant.

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-22 22:23:36 +02:00
tkdrob c3d9aaa896 Clean plex services.yaml (#49535) 2021-04-22 13:41:43 -05:00
Guido Schmitz 77372d9094 Add zeroconf detection to devolo Home Control (#47934)
Co-authored-by: Markus Bong <2Fake1987@gmail.com>
2021-04-22 08:38:56 -10:00
jan iversen 34b258e812 Rename HomeAssistantType —> HomeAssistant for integrations n* - p* (#49559) 2021-04-22 08:23:19 -10:00
jan iversen c351098f04 HomeAssistantType —> HomeAssistant for Integrations p* - s* (#49558) 2021-04-22 19:58:02 +02:00
Paulus Schoutsen 9fe0c96474 Fix Hue activate scene (#49556) 2021-04-22 19:29:11 +02:00
jan iversen 9879b7becf Rename HomeAssistantType to HomeAssistant, integrations w* - z* (#49543)
* Integration zha: HomeAssistantType -> HomeAssistant.

* Integration zerproc: HomeAssistantType -> HomeAssistant.

* Integration xbox: HomeAssistantType -> HomeAssistant.

* Integration wunderground: HomeAssistantType -> HomeAssistant.

* Integration wled: HomeAssistantType -> HomeAssistant.

* Integration water_heater: HomeAssistantType -> HomeAssistant.

* Integration websocket_api: HomeAssistantType -> HomeAssistant.

* Integration wilight: HomeAssistantType -> HomeAssistant.
2021-04-22 11:04:28 -04:00
jan iversen 6992e24263 Rename HomeAssistantType —> HomeAssistant, integrations t* - v* (#49544)
* Integration vizio: HomeAssistantType -> HomeAssistant.

* Integration velbus: HomeAssistantType -> HomeAssistant.

* Integration vacuum: HomeAssistantType -> HomeAssistant.

* Integration upnp: HomeAssistantType -> HomeAssistant.

* Integration upcloud: HomeAssistantType -> HomeAssistant.

* Integration twinkly: HomeAssistantType -> HomeAssistant.

* Integration tts: HomeAssistantType -> HomeAssistant.

* Integration tradfri: HomeAssistantType -> HomeAssistant.

* Integration traccar: HomeAssistantType -> HomeAssistant.

* Integration tplink: HomeAssistantType -> HomeAssistant.
2021-04-22 10:53:57 -04:00
jan iversen 2e084f260e Rename HomeAssistantType —> HomeAssistant, integrations s* - t* (#49550) 2021-04-22 16:21:38 +02:00
D3v01dZA c4c8c67a03 Bump snapcast to 2.1.3 (#49553) 2021-04-22 15:46:48 +02:00
Maciej Bieniek e75233b279 Bump brother library to version 1.0.0 (#49547)
* Bump brother library

* Improve attributes generation
2021-04-22 13:20:14 +02:00
jan iversen f67c0ce8bb Secure 100% test coverage for modbus, binary_sensor and sensor (#49521)
* Secure 100% test coverage for modbus/binary_sensor.

* Test that class constructor is called.
2021-04-22 11:54:40 +02:00
bsmappee 8b08134850 Support local Smappee Genius device (#48627)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-21 22:12:13 -10:00
Matt Zimmerman 8c52dfa1c5 Implement reauth for smarttub (#47628)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-21 21:28:24 -10:00
J. Nick Koston c10836fcee Upgrade to sqlalchemy 1.4.11 (#49538) 2021-04-21 20:29:36 -10:00
corneyl 303ab36c54 Add Picnic integration (#47507)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: @tkdrob <tkdrob4390@yahoo.com>
2021-04-21 22:21:56 -07:00
J. Nick Koston cb4558c088 Autodetect zeroconf interface selection when not set (#49529) 2021-04-21 22:10:34 -07:00
MarBra 9003dbfdf3 Add denonavr DynamicEQ and Audyssey service (#48694)
* denonavr: Add DynamicEQ and Audyssey service

* Remove debug print

* Syntax sugar

* Apply suggestions from code review

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

* Update homeassistant/components/denonavr/services.yaml

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

* Remove trailing whitespaces

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-21 15:55:30 -10:00
jan iversen 6a4f414236 Change HomeAssistantType to HomeAssistant (#49522) 2021-04-21 15:53:06 -10:00
HomeAssistant Azure 69c1721c2a [ci skip] Translation update 2021-04-22 00:02:50 +00:00
Kevin Worrel dc24ce491b Add Screenlogic set_color_mode service (#49366) 2021-04-21 08:45:50 -10:00
Raman Gupta 99c5087c1e Add WS API command to capture zwave_js logs from server (#49444)
* Add WS API commands to capture zwave_js logs from server

* register commands

* create a task

* Update homeassistant/components/zwave_js/api.py

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

* Update homeassistant/components/zwave_js/api.py

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

* fix

* fixes and add test

* fix PR on rebase

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-21 07:37:35 -04:00
Charles Garwood cad281b326 Add subscription for Z-Wave JS node re-interview status (#49024)
* Add subscription for interview status

* update test

* forward stage completed event

* add additional test

* additional tests

* return earlier
2021-04-21 07:35:16 -04:00
Brynley McDonald 5c6744d978 Fix typo in tuya config_flow (#49517) 2021-04-21 12:21:32 +02:00
Franck Nijhof 168b3c100c Remove HomeAssistantType alias - Part 4 (#49515) 2021-04-21 12:18:42 +02:00
Franck Nijhof 77ae4abc6e Upgrade isort to 5.8.0 (#49516) 2021-04-21 11:57:23 +02:00
jan iversen c9bdc9609c Do not close non existing clients in modbus (#49489)
* Only close if _client is present.

* Remove del.
2021-04-21 11:46:40 +02:00
Raman Gupta 6e22251e1d Add support to enable/disable zwave_js data collection (#49440) 2021-04-20 21:40:54 -04:00
Paulus Schoutsen a90d3a051f prefer total_seconds over seconds (#49505) 2021-04-20 17:41:36 -07:00
HomeAssistant Azure 020d456889 [ci skip] Translation update 2021-04-21 00:03:47 +00:00
Ville Skyttä c825f88888 Support wired clients in Huawei LTE device tracker (#48987) 2021-04-20 12:26:09 -10:00
Raman Gupta cf16e651cf Bump zwave_js dependency to 0.24.0 (#49445)
* Bump zwave_js dependency to 0.24.0

* fix bug in schema

* fix test
2021-04-20 23:44:26 +02:00
Guido Schmitz 208a17d0dc Add additional device classes to devolo Home Control (#49425) 2021-04-20 22:38:54 +02:00
Ville Skyttä 1c587d2e47 Fix and add some ScannerEntity property type hints (#49500) 2021-04-20 23:38:07 +03:00
Dermot Duffy ccda903c17 Upgrade to the latest hyperion-py (#49448) 2021-04-20 22:08:08 +02:00
dfigus d517d7232f Fix HmIP-HAP attributes unit (#49476) 2021-04-20 22:06:00 +02:00
Robert Svensson 12a9695798 Use config_entry.on_unload rather than local listener implementation in Axis (#49495) 2021-04-20 08:53:05 -10:00
Robert Svensson 63616a9e36 Use config_entry.on_unload rather than local listener implementation in UniFi (#49496) 2021-04-20 08:50:42 -10:00
J. Nick Koston 138226fa14 Bump codecov to 1.4.1 (#49497) 2021-04-20 08:49:58 -10:00
Caleb Mah 45b6dfce68 Bump yeelight dependency to 0.6.1 (#49490) 2021-04-20 08:26:42 -10:00
jan iversen d24b3e0a3c Test pymodbus (#49053) 2021-04-20 11:25:37 -07:00
J. Nick Koston f73d9fa572 Reduce broadlink executor jobs at setup time (#49447)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-20 08:22:10 -10:00
J. Nick Koston df66f2a9da Cleanup history states tests that were converted to async tests (#49446) 2021-04-20 08:21:41 -10:00
Robert Svensson 3b64c574e3 Replace local listener implementation to using config_entry.on_unload in deCONZ (#49494) 2021-04-20 08:20:57 -10:00
Paulus Schoutsen 7e7267f822 Send only a single event per incoming Google command (#49449) 2021-04-20 09:21:52 -07:00
Martin Hjelmare 410f0e3604 Fix mysensors mqtt integration setup guard (#49423) 2021-04-20 09:21:38 -07:00
J. Nick Koston 20ead7902a Fix memory leak in ambient_station on reload (#49455) 2021-04-20 09:17:08 -07:00
J. Nick Koston 3164eef059 Limit executor jobs during custom_components load to match non-custom behavior (#49451) 2021-04-20 09:16:17 -07:00
J. Nick Koston f600649016 Fix memory leak in onvif (#49473) 2021-04-20 09:15:17 -07:00
J. Nick Koston e288afa7a3 Fix memory leak in plum_lightpad (#49472) 2021-04-20 09:15:04 -07:00
J. Nick Koston 76b59a3983 Fix memory leak in hangouts (#49471) 2021-04-20 09:14:48 -07:00
J. Nick Koston 8537076917 Fix memory leak in huawei_lte (#49470) 2021-04-20 09:14:34 -07:00
J. Nick Koston 7791670607 Fix memory leak in legacy nest (#49469) 2021-04-20 09:14:23 -07:00
J. Nick Koston d858d2ff25 Fix memory leak in deconz (#49468) 2021-04-20 09:14:11 -07:00
J. Nick Koston b2db9d3ca2 Fix memory leak in firmata (#49467) 2021-04-20 09:14:00 -07:00
J. Nick Koston 30c99ce954 Fix memory leak in insteon (#49466) 2021-04-20 09:13:50 -07:00
J. Nick Koston 1193c5360d Fix memory leak in tibber (#49465) 2021-04-20 09:13:41 -07:00
J. Nick Koston 786f3163ac Fix memory leak in freebox (#49463) 2021-04-20 09:13:28 -07:00
J. Nick Koston 7db5d50ce4 Fix memory leak in unifi on reload (#49456) 2021-04-20 09:13:07 -07:00
J. Nick Koston 052e935c2b Fix memory leak in fritzbox (#49462) 2021-04-20 09:12:54 -07:00
J. Nick Koston c9fbdfbbbe Fix memory leak in heos (#49461) 2021-04-20 09:12:42 -07:00
J. Nick Koston 2279b5593d Fix memory leak in vera (#49459) 2021-04-20 09:12:32 -07:00
J. Nick Koston 11281e1cdb Fix memory leak in logi_circle (#49458) 2021-04-20 09:12:21 -07:00
J. Nick Koston 3cbfa36397 Fix memory leak on apple_tv reload (#49454) 2021-04-20 09:12:11 -07:00
J. Nick Koston baa8de2f89 Fix homekit memory leak on entry reload (#49452) 2021-04-20 09:11:58 -07:00
J. Nick Koston fd21c460a0 Fix memory leak in verisure (#49460) 2021-04-20 09:04:34 -07:00
Marc Mueller c07646db5d Update typing syntax (#49480)
* Update typing syntax

* Replace typing imports with ones from collections where possible

* Changes after review
2021-04-20 17:40:41 +02:00
Robert Svensson 34245c3add Add alarm control panel support to deCONZ integration (#48736)
* Infrastructure in place

* Base implementation

* Add alarm event

* Add custom services to alarm control panel

* Add service descriptions

* Increase test coverage

* Simplified to one entity service with an options selector

* Remove everything but the essentials

* Add library with proper support

* Fix stale comments
2021-04-20 17:34:11 +02:00
J. Nick Koston fa05e5a8a0 Fix memory leak in wemo on reload (#49457) 2021-04-20 17:13:27 +02:00
Jan Bouwhuis ff367cfcb6 Mqtt cover avoid warnings on empty payload (#49253)
* No warnings on extra json values with templates

* ignore empty received payload
2021-04-20 15:47:40 +02:00
J. Nick Koston 05982ffc60 Ensure harmony callbacks run in the event loop (#49450) 2021-04-20 15:09:46 +02:00
jan iversen c14e525ac3 Update modbus state when sensor fails (#49481) 2021-04-20 14:54:20 +02:00
Franck Nijhof bc5add82e0 Fix/Workaround GitHub issue forms (#49475) 2021-04-20 12:01:19 +02:00
chpego 82152616bb Bump youtube-dl to 2021.04.17 (#49474) 2021-04-20 11:49:54 +02:00
J. Nick Koston b557d20fbb Fix memory leak in netatmo (#49464) 2021-04-20 11:03:07 +02:00
René Klomp 12853438c5 SMA code quality improvement and bugfix (#49346)
* Minor code quality improvements
Thanks to @MartinHjelmare

* Convert legacy dict config to list

* Improved test

* Typo

* Test improvements

* Create fixtures in conftest.py
2021-04-20 10:59:02 +02:00
jan iversen a278ebd37b Bump pymodbus version to 2.5.1 (#49401) 2021-04-20 10:43:14 +02:00
jjlawren 523a71ac20 Set temperature precision for Ecobee climate entities to tenths (#48697) 2021-04-19 17:41:30 -07:00
HomeAssistant Azure f6a24e8d68 [ci skip] Translation update 2021-04-20 00:04:05 +00:00
Nathan Tilley 8305fbc0eb Bump faadelays to 0.0.7 (#49443) 2021-04-20 00:39:24 +02:00
Dermot Duffy 1560c00db1 Use Hyperion human-readable effect names instead of API identifiers (#45763) 2021-04-19 23:46:18 +02:00
jan iversen 8acc3f0b03 Fix modbus switch "old style" config problem (#49352)
Fix that using CONF_HUB in switch, changed the hub for all
subsequent switches.
2021-04-19 10:35:32 -07:00
Franck Nijhof 5ee373869a Merge pull request #49424 from home-assistant/rc 2021-04-19 18:09:01 +02:00
Franck Nijhof 44744dc0bc Bumped version to 2021.4.6 2021-04-19 17:32:43 +02:00
Bram Kragten d61281b6fb Google report state: thermostatMode should be a string, not null (#49342) 2021-04-19 17:30:24 +02:00
Erik Montnemery a5a62154d4 Fix deadlock when restarting scripts (#49410) 2021-04-19 17:24:10 +02:00
Joakim Sørensen a5806b59f2 Raise HassioAPIError when error is returned (#49418)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-19 08:23:43 -07:00
J. Nick Koston b8001b951b Avoid executor jumps in history stats when no update is needed (#49407) 2021-04-19 08:23:10 -07:00
J. Nick Koston 6d137d2316 Increase recorder test coverage (#49362)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-19 08:22:38 -07:00
Bram Kragten b69b55987d Google report state: thermostatMode should be a string, not null (#49342) 2021-04-19 08:20:00 -07:00
jan iversen eb9ba527d0 Add pymodbus exception handling and isolate pymodbus to class modbusHub (#49052) 2021-04-19 08:18:15 -07:00
J. Nick Koston 7ed8f00075 Fix exception in roomba discovery when the device does not respond on the first try (#49360) 2021-04-19 17:11:28 +02:00
Daniel Hjelseth Høyer fc4c49ab83 Upgrade pyMetno to 0.8.2 (#49308)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-04-19 17:10:36 +02:00
jan iversen fe2f4e2790 Apply Precision/Scale/Offset to struct in modbus sensor (#48544)
The single values in struct are corrected with presicion, scale and offset,
just as it is done with single values.
2021-04-19 17:08:36 +02:00
Vladimír Záhradník 05755c27f2 Log an error if modbus Cover is not initialized correctly (#48829) 2021-04-19 16:52:08 +02:00
Erik Montnemery a968dea152 Fix deadlock when restarting scripts (#49410) 2021-04-19 14:45:01 +02:00
Daniel Rheinbay 83ecabe0a2 Bump fritzconnection to 1.4.2 (#49356) 2021-04-19 14:25:46 +02:00
J. Nick Koston 69932d4435 Add additional myq homekit models (#49381) 2021-04-19 14:03:31 +02:00
Franck Nijhof 2de257f85f Upgrade dsmr_parser to 0.29 (#49417) 2021-04-19 13:48:31 +02:00
J. Nick Koston 4361be613d Expose the hostname of the device in asuswrt (#49393) 2021-04-19 13:25:30 +02:00
dependabot[bot] 26cb511d02 Bump codecov/codecov-action from v1.3.2 to v1.4.0 (#49412)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.3.2 to v1.4.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.3.2...0e28ff86a50029a44d10df6ed4c308711925a6a8)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-19 12:18:06 +02:00
Chris Browet 591d09c177 Use google assistant TemperatureControl trait to report sensor (#46491)
* CHG: use TemperatureControl trait to report sensor

* fixup: blacked

* fixup: flaked

* fixup: flaked

* Adjust tests

* fixup test and rebase

* test coverage
2021-04-19 11:41:30 +02:00
J. Nick Koston 7f6572893d Add services to the profiler to log threads and event loop schedule (#49327)
* Add services to the profiler to log threads and event loop schedule

* improve readability

* increase log debug

* bigger

* tweaks

* Update homeassistant/components/profiler/__init__.py

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

* Update homeassistant/components/profiler/__init__.py

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

* remove schema= and cleanup existing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-19 11:39:34 +02:00
J. Nick Koston e24f5831a2 Force recorder shutdown at final write event (#49145)
* Force recorder shutdown at EVENT_HOMEASSISTANT_FINAL_WRITE

* remove unreachable

* remove unreachable

* simplify

* cancel in async
2021-04-19 11:24:17 +02:00
J. Nick Koston 6048e88c8b Improve debuggability by providing job as an arg to loop.call_later (#49328)
Before
`<TimerHandle when=1523538.181864923 async_track_point_in_utc_time.<locals>.run_action() at /usr/src/homeassistant/homeassistant/helpers/event.py:1177>`

After
`<TimerHandle when=1524977.1818648616 async_track_point_in_utc_time.<locals>.run_action(<Job HassJobType.Coroutinefunction <bound method DataUpdateCoordinator._handle_refresh_interval of <homeassistant.components.roku.RokuDataUpdateCoordinator object at 0x7fcc978a51c0>>>) at /usr/src/homeassistant/homeassistant/helpers/event.py:1175>`
2021-04-19 11:02:17 +02:00
J. Nick Koston 0b26294fb0 Small cleanups to rachio (#49404)
- Remove unused async_step
- Reduce async callbacks from executor
2021-04-19 10:39:45 +02:00
Felipe Martins Diel e98f27ead6 Use broadlink.hello() for direct discovery (#49405) 2021-04-19 10:16:03 +02:00
jan iversen 0f90678e0e Change HomeAssistantType -> HomeAssistant in modbus (#49400) 2021-04-18 22:13:32 -10:00
Guillermo Ruffino cf51e07953 Fix esphome registering invalid service name (#49398) 2021-04-19 08:31:43 +02:00
J. Nick Koston 344717d07d Reduce time to first byte for frontend index (#49396)
Cache template and manifest.json generation
2021-04-18 21:17:30 -07:00
Felipe Martins Diel 6a3832484c Do not log error messages when discovering Broadlink devices (#49394) 2021-04-18 18:12:27 -10:00
HomeAssistant Azure a67a45624d [ci skip] Translation update 2021-04-19 00:04:29 +00:00
Michael a050c8827b Add battery sensor to fritzbox smart home devices (#49374) 2021-04-18 12:30:58 -10:00
J. Nick Koston 6e911ba19f Shutdown bond bpup and skip polling after the stop event (#49326) 2021-04-18 13:46:46 -07:00
Brent Petit 080c89c761 Only set fan state in ecobee set_fan_mode service (#48086) 2021-04-18 22:35:03 +02:00
J. Nick Koston 04a0ca14e0 Ensure shutdown does not deadlock (#49282) 2021-04-18 08:55:51 -10:00
Brett afd79a675c Add set_myzone service to Advantage Air (#46934)
* Add set_myzone service requested on forums

* Add MyZone binary sensor for climate zones

* Fixed Black on binary_sensor.py

* Add the new entity

* Fix spelling

* Test myZone value

* MyZone Binary Sensor test

* Fixed new binary sensor tests

* Fix removed dependancy

* Correct fixture

* Update homeassistant/components/advantage_air/binary_sensor.py

Co-authored-by: Philip Allgaier <philip.allgaier@gmx.de>

* Updated services.yaml to use target

Co-authored-by: Philip Allgaier <philip.allgaier@gmx.de>
2021-04-18 10:36:34 +02:00
J. Nick Koston b2c33c1373 Only fetch the local ip once per run (#49336)
Wrap get_local_ip in lru_cache
2021-04-18 10:04:45 +02:00
J. Nick Koston 252bcabbea Fix exception in roomba discovery when the device does not respond on the first try (#49360) 2021-04-18 09:48:02 +02:00
J. Nick Koston e10c105058 Bump aiodiscover to 1.4.0 for dhcp (#49359)
- Switches to using dnspython to generate the queries/parse them from the wire
2021-04-18 09:46:39 +02:00
J. Nick Koston e06bb3b5e7 Shutdown harmony connection on stop (#49335) 2021-04-18 09:44:29 +02:00
HomeAssistant Azure f8a02c2762 [ci skip] Translation update 2021-04-18 00:04:57 +00:00
J. Nick Koston 46c28f349a Update mazda to use ConfigEntryAuthFailed (#49333) 2021-04-17 09:25:13 -10:00
Aidan Timson 18cbf3cdb2 Fix lyric heat cool setting (#47875) 2021-04-17 07:20:35 -10:00
Aidan Timson 912d5c347c Add reauth flow for lyric (#47863) 2021-04-17 07:20:16 -10:00
Milan Meulemans ad967cfebb Rituals Perfume Genie improvements (#49277)
* Rituals Perfume Genie integration improvements

* Add return type FlowResultDict to async_step_user

* Rollback async_update_data

* Add return type to DiffuserEntity init

* check super().available too

* Merge iterations

* Use RitualsPerufmeGenieDataUpdateCoordinator
2021-04-17 15:41:45 +02:00
Franck Nijhof 006bcde435 Remove HomeAssistantType alias - Part 3 (#49339) 2021-04-17 12:48:03 +02:00
Ruslan Sayfutdinov 7a9385d857 Explicitly define all methods in ConfigFlow (#49341) 2021-04-17 12:42:31 +02:00
Brandon Rothweiler 189511724a Add device tracker platform to Mazda integration (#47974)
* Add device tracker platform for Mazda integration

* Split device tests into a separate file

* Address review comments
2021-04-17 11:26:07 +02:00
Ville Skyttä 3a0b0380c7 Remove some unneeded pylint disables, update ref to util.process one (#49314) 2021-04-17 09:25:20 +02:00
Franck Nijhof 7f29d028a3 Upgrade pre-commit to 2.12.1 (#49331) 2021-04-16 21:19:02 -10:00
J. Nick Koston f96a6e878f Ensure restore state is not written after the stop event (#49329)
If everything lined up, the states could be written
while Home Assistant is shutting down after the stop
event because the interval tracker was not canceled on
the stop event.
2021-04-17 09:03:18 +02:00
Martin Hjelmare 41ed1f818c Exclude epson init module from coverage (#49316) 2021-04-17 08:57:21 +02:00
Ville Skyttä 970cbcbe15 Type hint improvements (#49320) 2021-04-17 08:35:21 +02:00
J. Nick Koston f7b7a805f5 Bump pysonos to 0.0.43 (#49330)
- Downgrade asyncio log severity
2021-04-16 20:19:50 -10:00
J. Nick Koston 94c803d83b Cancel tuya updates on the stop event (#49324) 2021-04-16 21:01:24 -07:00
J. Nick Koston 673f542cde Do not wait for websocket response to be delivered before shutdown (#49323)
- Waiting was unreliable since the websocket response could take a few seconds to get delivered
- Alternate frontend fix is https://github.com/home-assistant/frontend/pull/8932
2021-04-16 20:57:28 -07:00
HomeAssistant Azure 343b8faf9b [ci skip] Translation update 2021-04-17 00:03:46 +00:00
Paulus Schoutsen 984962d985 Improve DHCP + Zeroconf manifest validation (#49321) 2021-04-16 13:32:12 -10:00
Paulus Schoutsen f464663732 Add DHCP to MyQ (#49319) 2021-04-16 11:53:41 -10:00
J. Nick Koston f026768725 Add dhcp discovery to tuya (#49312)
Newer tuya devices use their own OUI instead of espressif
2021-04-16 14:04:18 -07:00
Paulus Schoutsen 89f2996caa Bump frontend to 20210416.0 2021-04-16 13:36:47 -07:00
jan iversen ea9641f980 Apply Precision/Scale/Offset to struct in modbus sensor (#48544)
The single values in struct are corrected with presicion, scale and offset,
just as it is done with single values.
2021-04-16 22:33:58 +02:00
Daniel Hjelseth Høyer 65d092f1cc Upgrade pyMetno to 0.8.2 (#49308)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2021-04-16 20:17:46 +02:00
Maciej Bieniek e9cf8db302 Add device_info property to OpenWeatherMap entities (#49293) 2021-04-16 09:28:53 -07:00
Franck Nijhof 7264c95217 Clean up superfluous integration setup - part 6 (#49298) 2021-04-16 09:23:27 -07:00
Franck Nijhof af80ca6795 Clean up superfluous integration setup - part 5 (#49296) 2021-04-16 09:22:56 -07:00
Franck Nijhof 969c147b77 Clean up superfluous integration setup - part 4 (#49295)
* Clean up superfluous integration setup - part 4

* Adjust tests
2021-04-16 17:46:49 +02:00
Franck Nijhof 77f14b63f5 Merge pull request #49302 from home-assistant/rc 2021-04-16 16:04:26 +02:00
Franck Nijhof a08df4e18f Bumped version to 2021.4.5 2021-04-16 15:35:06 +02:00
Joakim Sørensen 58b743eec1 Mark camera as a base platform (#49297) 2021-04-16 15:34:17 +02:00
Franck Nijhof 41736c93a1 Fix Coronavirus integration robustness (#49287)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-16 15:34:14 +02:00
Martin Hjelmare 733a394c55 Fix mysensors sensor protocol version check (#49257) 2021-04-16 15:34:10 +02:00
Erik Montnemery ba0d3aad1c Fix race when restarting script (#49247) 2021-04-16 15:34:07 +02:00
Franck Nijhof 5c3cb044d0 Upgrade spotipy to 2.18.0 (#49220) 2021-04-16 15:34:03 +02:00
Erik Montnemery a3ca48c1bd Set deprecated supported_features for MQTT JSON light (#49167)
* Set deprecated supported_features for MQTT json light

* Update homeassistant/components/light/__init__.py

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

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-16 15:30:39 +02:00
Erik Montnemery 5356ce2b6d Don't receive homeassistant_* events from MQTT eventstream (#49158) 2021-04-16 15:30:36 +02:00
J. Nick Koston 02def46991 Fix setting up remotes that lack a supported features list in homekit (#49152) 2021-04-16 15:30:33 +02:00
J. Nick Koston 3ae82c3cac Bump aiodiscover to 1.3.4 (#49142)
- Changelog: https://github.com/bdraco/aiodiscover/compare/v1.3.3...v1.3.4 (bumps pyroute2>=0.5.18 to fix https://github.com/svinota/pyroute2/issues/717)
2021-04-16 15:30:29 +02:00
Franck Nijhof 73a9cb6adb Deprecate GNTP (Growl) integration (#49273)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-04-16 15:03:15 +02:00
Joakim Sørensen c98788edae Mark camera as a base platform (#49297) 2021-04-16 15:00:21 +02:00
Franck Nijhof 93dbc26db5 Fix Coronavirus integration robustness (#49287)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-16 10:53:19 +02:00
Franck Nijhof ee37d8141a Upgrade flake8 to 3.9.1 (#49284) 2021-04-16 09:35:19 +02:00
Franck Nijhof ec5c6e18ec Fix ignorability of AdGuard hassio discovery step (#49276) 2021-04-16 09:11:19 +02:00
Erik Montnemery 2c8b7c56f5 Fix race when restarting script (#49247) 2021-04-16 09:03:34 +02:00
J. Nick Koston 564e7fa53c Avoid sending empty integration list multiple times during subscribe_bootstrap_integrations (#49181) 2021-04-15 23:16:17 -07:00
Paulus Schoutsen 6604614c39 Move top-level av import behind type checking flag (#49281)
* Move top-level av import behind type checking flag

* Lint
2021-04-15 18:18:25 -07:00
HomeAssistant Azure 283342bafb [ci skip] Translation update 2021-04-16 00:03:57 +00:00
Franck Nijhof eb008e533e Process AdGuard review comments (#49274) 2021-04-15 23:34:49 +02:00
Franck Nijhof a981b86b15 Update issue form to use latest changes (#49272) 2021-04-15 22:49:13 +02:00
Lau1406 b213b55ca9 Add missing target field to media_seek (#49031) 2021-04-15 22:48:39 +02:00
Raman Gupta 898a1a17be Add sensors for other ClimaCell data (#49259)
* Add sensors for other ClimaCell data

* add tests and add rounding

* docstrings

* fix pressure

* Update homeassistant/components/climacell/sensor.py

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

* Update homeassistant/components/climacell/sensor.py

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

* review comments

* add another abstractmethod

* use superscript

* remove mypy ignore

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-15 16:31:59 -04:00
J. Nick Koston 5fb36ad9e1 Add missing typing to data_entry_flow (#49271) 2021-04-15 09:59:52 -10:00
Kevin Eifinger 5a01addd67 Add support for multiple AdGuard instances (#49116) 2021-04-15 21:32:52 +02:00
Erik Montnemery 3d90d6073e Add common light helpers to test for feature support (#49199) 2021-04-15 20:32:27 +02:00
Mike Degatano 236d274351 Add search and match as Jinja tests (#49229) 2021-04-15 20:13:27 +02:00
Shay Levy 38f0c201c2 Fix Tasmota Wifi Signal Strength unit (#49263) 2021-04-15 19:53:03 +02:00
Shay Levy 31c519b26d Fix shelly RSSI sensor unit (#49265) 2021-04-15 19:52:06 +02:00
Ruslan Sayfutdinov 80f66f301b Define data flow result type (#49260)
* Define data flow result type

* Revert explicit definitions

* Fix tests

* Specific mypy ignore
2021-04-15 07:17:07 -10:00
J. Nick Koston dafc7a072c Cancel discovery flows that are initializing at shutdown (#49241) 2021-04-15 07:13:42 -10:00
Angeliki Papadopoulou a529a12745 Remove redundant text from documentation (#49262)
I found an extra "when" in the documentation text.
2021-04-15 18:05:07 +02:00
Erik Montnemery ec56ae2cbc Set deprecated supported_features for MQTT JSON light (#49167)
* Set deprecated supported_features for MQTT json light

* Update homeassistant/components/light/__init__.py

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

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-15 17:24:21 +02:00
Martin Hjelmare 1b5148a3af Fix mysensors sensor protocol version check (#49257) 2021-04-15 16:12:49 +02:00
bouni 4f5c745492 Fix broken swiss_hydrological_data integration (#49119)
* update requirements_all.txt

* 🚑 Fix broken JSON

Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-04-15 12:40:23 +02:00
J. Nick Koston 7a40d0f1c2 Disconnect roomba on stop event (#49235) 2021-04-15 11:24:43 +02:00
J. Nick Koston 2887eeb32f Only enable envoy inverters when the user has access (#49234) 2021-04-15 11:17:32 +02:00
J. Nick Koston d71f913a12 Ensure original log handlers are restored at close (#49230)
Error messages after close were not being logged
2021-04-15 10:53:48 +02:00
Franck Nijhof 055cdc64c0 Add support for IoT class in manifest (#46935) 2021-04-15 10:21:38 +02:00
Matthias Alphart 985b4a581a Create KNX switch entity directly from config (#49238) 2021-04-15 09:47:43 +02:00
J. Nick Koston e234fc6e7e Disconnect homekit_controller devices on the stop event (#49244) 2021-04-14 21:47:15 -10:00
J. Nick Koston 54322f84c5 Do not schedule future ping device tracker updates once hass is stopping (#49236) 2021-04-15 08:49:28 +02:00
HomeAssistant Azure e86aad34b9 [ci skip] Translation update 2021-04-15 00:02:56 +00:00
J. Nick Koston 8bee25c938 Fix stop listener memory leak in DataUpdateCoordinator on retry (#49186)
* Fix stop listener leak in DataUpdateCoordinator

When an integration retries setup it will add a new stop listener

* Skip scheduled refreshes when hass is stopping

* Update homeassistant/helpers/update_coordinator.py

* ensure manual refresh after stop
2021-04-14 12:16:59 -10:00
Franck Nijhof 63fa9f7dd8 Upgrade colorlog to 5.0.1 (#49221) 2021-04-14 23:56:32 +02:00
Franck Nijhof 6269449507 Upgrade spotipy to 2.18.0 (#49220) 2021-04-14 23:52:10 +02:00
Steven Looman 555f508b8c Reinitialize upnp device on config change (#49081)
* Store coordinator at Device

* Use DeviceUpdater to follow config/location changes

* Cleaning up

* Fix unit tests + review changes

* Don't test internals
2021-04-14 23:39:44 +02:00
Milan Meulemans ed54494b69 Add binary sensor platform to Rituals Perfume Genie Integration (#49207)
* Add binary sensor platform to Rituals

* Sort platforms
2021-04-14 23:10:35 +02:00
J. Nick Koston 403c6b9e26 Stop ssdp scans when stop event happens (#49140) 2021-04-14 22:23:15 +02:00
Unai aaa600e00a Add unique-ids to maxcube component (#49196) 2021-04-14 22:19:24 +02:00
Khole 8ce74e598d Allow debugging of integration dependancies (#49211) 2021-04-14 19:26:37 +02:00
Jeff Irion 81d46828ad Bump androidtv (0.0.58) and adb-shell (0.3.1) (#49209) 2021-04-14 18:44:39 +02:00
Hmmbob 7ffd4fa83d Support all available Google Cloud TTS languages (#49208) 2021-04-14 18:14:24 +02:00
Diogo Gomes e4a7260384 Bump pykmtronic to 0.3.0 (#49191) 2021-04-14 18:11:51 +02:00
Tobias Sauerwein 9d4ad1821e Fix logic of entity id extraction (#49164)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-14 14:12:26 +02:00
Carmen Sanchez fe1e57e76f Added Spanish US voice to Google Cloud TTS (#49200)
See https://cloud.google.com/text-to-speech/docs/voices
2021-04-14 11:00:32 +02:00
Erik Montnemery 1230c46e1e Use supported_color_modes in alexa (#49174) 2021-04-14 09:18:49 +02:00
Erik Montnemery e0ac12bd56 Use supported_color_modes in homekit (#49177) 2021-04-14 09:18:34 +02:00
Erik Montnemery 1a5068f71d Use supported_color_modes in google_assistant (#49176)
* Use supported_color_modes in google_assistant

* Fix tests
2021-04-14 09:18:22 +02:00
J. Nick Koston 44beff31c2 Cancel config entry retry, platform retry, and polling at the stop event (#49138) 2021-04-13 16:16:26 -10:00
HomeAssistant Azure 0b4b071c02 [ci skip] Translation update 2021-04-14 00:03:17 +00:00
J. Nick Koston 81e6ad0744 Replace http startup logic with async_when_setup_or_start (#48784) 2021-04-13 14:10:58 -07:00
J. Nick Koston d7ac4bd653 Cancel sense updates on the stop event (#49187) 2021-04-13 14:03:46 -07:00
Julien "_FrnchFrgg_" Rivaud 5a9c3fea70 Enable passing Amcrest/Dahua signals through as HA events (#49004)
Some of the compatible hardware sends event signals that wouldn't map
well to entities, e.g. NTP sync notifications, SIP registering
information, or « doorbell button pressed » events with no « return to
rest state » matching event to have a properly behaved binary sensor.

Instead of only monitoring specific events, subscribe to all of them,
and pass them through (in addition to handling them as before if they
correspond to a configured binary sensor).

Also bump python-amcrest to 1.7.2. Digest of the changes:

* The library now passes through the event data instead of just presence of a
 "Start" member in in.
* Connection to some devices has been fixed by not throwing the towel on
  minor errors.

https://github.com/tchellomello/python-amcrest/compare/1.7.1...1.7.2
2021-04-13 21:33:46 +02:00
puddly 5d57e5c06c Enable the custom quirks path ZHA config option (#49143) 2021-04-13 13:14:53 -04:00
Paulus Schoutsen ba93a033a5 Cloud to set up Alexa conditionally (#49136) 2021-04-13 09:31:41 -07:00
Paulus Schoutsen 28347e19c5 Fix Hue service being removed on entry reload (#48663) 2021-04-13 09:31:23 -07:00
Paulus Schoutsen 05aeff5591 Describe Google Assistant events (#49141)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-13 09:31:01 -07:00
René Klomp 926c2489f0 Implement SMA config flow (#48003)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Johann Kellerman <kellerza@gmail.com>
2021-04-13 06:21:01 -10:00
Andreas Oberritter e9f0891354 Add edl21 OBIS IDs for Holley DTZ541-ZEBA (#49170) 2021-04-13 17:49:28 +02:00
Raman Gupta 0f454bc456 Don't assert the device registry entry in zwave_js (#49178) 2021-04-13 11:32:17 -04:00
Paulus Schoutsen beea2dd35f Internally work with modern config syntax for template binary sensor platform config (#48981) 2021-04-13 07:58:44 -07:00
J. Nick Koston 82790cd28d Do not compile static templates (#49148)
self._compiled_code is unreachable if self.is_static
2021-04-13 16:51:56 +02:00
Raman Gupta fe6d6895aa Migrate existing zwave_js entities if endpoint has changed (#48963)
* Migrate existing zwave_js entities if endpoint has changed

* better function name

* cleanup code

* return as early as we can

* use defaultdict instead of setdefault

* PR comments

* re-add missing logic

* set defaultdict outside of for loop

* additional cleanup

* parametrize tests

* fix reinterview logic

* test that we skip migration when multiple entities are found

* Update tests/components/zwave_js/test_init.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-13 16:37:55 +02:00
Franck Nijhof de569982a4 Fix services for Armcrest & Logi Circle (#49166) 2021-04-13 16:32:39 +02:00
muppet3000 0ca3186caf Add 'mix' system support for Growatt integration (#49026)
* Added 'mix' system support for Growatt integration

* Changed Growatt "Last Data Update" to a timestamp

* Changed Growatt "Last Data Update" to UTC

* Accepted suggested change for Growatt  "Last Data Update"

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-13 15:40:30 +02:00
Erik Montnemery 916ba0be11 Don't receive homeassistant_* events from MQTT eventstream (#49158) 2021-04-13 15:09:50 +02:00
Raman Gupta 769923e8dd Raise exception for invalid call to DeviceRegistry.async_get_or_create (#49038)
* Raise exception instead of returning None for DeviceRegistry.async_get_or_create

* fix entity_platform logic
2021-04-13 14:18:51 +02:00
Tobias Sauerwein 2b79c91813 Clean up camera service schema (#49151) 2021-04-13 13:07:05 +02:00
J. Nick Koston 5365fb6c72 Fix setting up remotes that lack a supported features list in homekit (#49152) 2021-04-13 12:44:07 +02:00
J. Nick Koston 51a7a724d6 Bump aiodiscover to 1.3.4 (#49142)
- Changelog: https://github.com/bdraco/aiodiscover/compare/v1.3.3...v1.3.4 (bumps pyroute2>=0.5.18 to fix https://github.com/svinota/pyroute2/issues/717)
2021-04-13 12:31:55 +02:00
J. Nick Koston 91821fa6ad Name the dhcp watcher thread (#49144)
When getting py-spy reports, it is helpful to get thread names
to make it easier to track down issues.
2021-04-13 12:29:30 +02:00
J. Nick Koston 2cc9ae1af1 Use named constants for core shutdown timeouts (#49146)
This is intended to make them easier to reference outside the core
code base.
2021-04-13 12:21:52 +02:00
dependabot[bot] 0742b046b9 Bump actions/cache from v2.1.4 to v2.1.5 (#49157)
Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.4...1a9e2138d905efd099035b49d8b7a3888c653ca8)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-13 12:11:42 +02:00
dependabot[bot] c71a1a34fa Bump actions/setup-python from v2.2.1 to v2.2.2 (#49156)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.2.1 to v2.2.2.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.2.1...dc73133d4da04e56a135ae2246682783cc7c7cb6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-13 12:10:30 +02:00
Clifford Roche 4ce6d00a22 Improve the discovery process for Gree (#45449)
* Add support for async device discovery

* FIx missing dispatcher cleanup breaking integration reload

* Update homeassistant/components/gree/climate.py

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

* Update homeassistant/components/gree/switch.py

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

* Update homeassistant/components/gree/bridge.py

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

* Working on feedback

* Improving load/unload tests

* Update homeassistant/components/gree/__init__.py

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

* Working on more feedback

* Add tests covering async discovery scenarios

* Remove unnecessary shutdown

* Update homeassistant/components/gree/__init__.py

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

* Code refactor from reviews

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-13 11:54:03 +02:00
Dermot Duffy 63d42867e8 Add Hyperion device support (#47881)
* Add Hyperion device support.

* Update to the new typing annotations.

* Add device cleanup logic.

* Fixes based on the excellent feedback from emontnemery
2021-04-13 10:35:38 +02:00
Paulus Schoutsen b5548c57fb Merge pull request #49139 from home-assistant/rc 2021-04-12 17:45:38 -07:00
Mike O'Driscoll 5bf3469ffc ZHA support Quotra LED On quirk (#49137)
The Quotra-Vision QV-RGBCCT doesn't support the move_to_level_with_onoff
command in ZCL spec. Force on with this device.
2021-04-12 20:32:36 -04:00
Raman Gupta cc40e681e2 Lazy load zwave_js platforms when the first entity needs to be created (#49016)
* Lazy load zwave_js platforms when the first entity needs to be created

* switch order to make things easier to understand

* await task instead of using wait_for_done callback

* gather tasks

* switch from asyncio.create_task to hass.async_create_task

* unsubscribe from callbacks before unloading platforms

* Clean up as much as possible during entry unload, even if a platform unload fails
2021-04-12 20:26:49 -04:00
J. Nick Koston 53853f035d Prevent calling stop or restart services during db upgrade (#49098) 2021-04-12 17:18:38 -07:00
Paulus Schoutsen 65126cec3e Allow top level non-trigger template entities (#48976) 2021-04-12 17:15:50 -07:00
Paulus Schoutsen e5281051a3 Bumped version to 2021.4.4 2021-04-13 00:10:42 +00:00
jjlawren 346ae78a8e Check all endpoints for zwave_js.climate hvac_action (#49115) 2021-04-13 00:09:51 +00:00
Unai b5650bdd52 Upgrade maxcube-api to 0.4.2 (#49106)
Upgrade to maxcube-api 0.4.2 to fix pending issues in HA 2021.4.x:
 - Interpret correctly S command error responses (https://github.com/home-assistant/core/issues/49075)
 - Support application timezone configuration (https://github.com/home-assistant/core/issues/49076)
2021-04-13 00:09:50 +00:00
J. Nick Koston bf28268732 Downgrade logger message about homekit id missing (#49079)
This can happen if the TXT record is received after the PTR record and
should not generate a warning since it will get processed later
2021-04-13 00:09:49 +00:00
Kevin Worrel 4eb794ae84 Catch unknown equipment values (#49073)
* Catch unknown equipment values

* Catch unknown equipment values

* Remove warning spam.
2021-04-13 00:09:48 +00:00
Jan Bouwhuis 21b5551506 mqtt fan percentage to speed_range and received speed_state fix (#49060)
* percentage to speed_range and get speed state fix

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-13 00:07:27 +00:00
Erik Montnemery e0131f726f Quote media_source paths (#49054)
* Quote path in async_sign_path

* Address review comments, add tests

* Update tests/testing_config/media/Epic Sax Guy 10 Hours.mp4

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-13 00:07:27 +00:00
Erik Montnemery e685b1a1e3 Fix cast options flow overwriting data (#49051) 2021-04-13 00:07:26 +00:00
J. Nick Koston 0d00e49dfc Bump aiohomekit to 0.2.61 (#49044) 2021-04-13 00:07:25 +00:00
Chris Talkington 36e08e770b Resolve potential roku setup memory leaks (#49025)
* resolve potential roku setup memory leaks

* Update __init__.py
2021-04-13 00:07:24 +00:00
Franck Nijhof e3b3d136d8 Fix use search instead of match to filter logs (#49017) 2021-04-13 00:07:23 +00:00
Joakim Plate 0a5a5ff053 Bump ha-philipsjs to 2.7.0 (#49008)
This has some improvements to not consider the TV
off due to some exceptions that is related to API
being buggy rather than off.
2021-04-13 00:07:22 +00:00
Shay Levy 0bb7592fab Fix Shelly brightness offset (#49007) 2021-04-13 00:07:21 +00:00
Aidan Timson d081ac8d4a Set Lyric hold time to use local time instead of utc (#48994) 2021-04-13 00:07:20 +00:00
J. Nick Koston b96e0e69f2 Bump nexia to 0.9.6 (#48982)
- Now returns None when a humidity sensor cannot be read instead of throwing an exception
2021-04-13 00:07:20 +00:00
Erik Montnemery 82cca8fb1c Move cast config flow tests to test_config_flow (#48362) 2021-04-13 00:07:19 +00:00
HomeAssistant Azure 93c68f8be6 [ci skip] Translation update 2021-04-13 00:04:04 +00:00
Shay Levy 5c71ba578d Fix Shelly brightness offset (#49007) 2021-04-12 15:52:51 -07:00
Unai ff8e4fb77f Upgrade maxcube-api to 0.4.2 (#49106)
Upgrade to maxcube-api 0.4.2 to fix pending issues in HA 2021.4.x:
 - Interpret correctly S command error responses (https://github.com/home-assistant/core/issues/49075)
 - Support application timezone configuration (https://github.com/home-assistant/core/issues/49076)
2021-04-13 00:14:29 +02:00
starkillerOG 88d2fb4aa6 Bump yeelight version to 0.6.0 (#49111) 2021-04-13 00:06:52 +02:00
treylok 7256e333e4 Add Ecobee humidifier (#45003) 2021-04-12 23:44:13 +02:00
Ludovico de Nittis de4b1eebdd iAlarm small code quality improvements (#49126) 2021-04-12 23:24:15 +02:00
Raman Gupta b98ca49a56 Add min and max temp properties to zwave_js.climate (#49125) 2021-04-12 22:12:38 +02:00
Erik Montnemery ff5fbea1fb Improve trace of template conditions (#49101)
* Improve trace of template conditions

* Refactor

* Fix wait_template trace

* Update tests
2021-04-12 20:22:28 +02:00
Marc Mueller 106dc4d28a Don't import stdlib typing types from helpers.typing (#49104) 2021-04-12 18:43:14 +02:00
Erik Montnemery f5545badac Quote media_source paths (#49054)
* Quote path in async_sign_path

* Address review comments, add tests

* Update tests/testing_config/media/Epic Sax Guy 10 Hours.mp4

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-12 18:32:12 +02:00
jjlawren dbb771e19c Check all endpoints for zwave_js.climate hvac_action (#49115) 2021-04-12 12:29:45 -04:00
Abílio Costa ebc2bec08d Reduce reporting delta for ZHA humidity channel (#49070) 2021-04-12 12:02:59 -04:00
Marc Mueller 885f528711 Replace old style type comments (#49103) 2021-04-12 17:07:18 +02:00
Marc Mueller 05468a50f4 Fix xbox type hint (#49102) 2021-04-12 13:57:30 +02:00
David F. Mulcahey fe80afdb86 Add support for custom configurations in ZHA (#48423)
* initial configuration options

* first crack at saving the data

* constants

* implement initial options

* make more dynamic

* fix unload and reload of the config entry

* update unload
2021-04-12 07:08:42 -04:00
Zero King 9c11f6547a Fix forecast pressure unit in OpenWeatherMap (#49069) 2021-04-12 11:56:35 +02:00
William Scanlon 06a8ffe94d Bump pyeconet to 0.1.14 (#49067)
* Bump pyeconet to fix crash

* Bump pyeconet from beta version

* Update requirements_all
2021-04-12 10:41:20 +02:00
J. Nick Koston 73f227b651 Use shared httpx client in enphase_envoy (#48709)
* Use shared httpx client in enphase_envoy

* test fix

* f

* bump version
2021-04-12 10:31:25 +02:00
Franck Nijhof a610076001 Support min()/max() as template function (#48996) 2021-04-12 10:02:04 +02:00
J. Nick Koston 9368891b1b Live db migrations and recovery (#49036)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-11 20:43:54 -10:00
Paulus Schoutsen 2d5edeb1ef Set hass when adding template attribute (#49094) 2021-04-11 22:49:09 -07:00
Corbeno eac1041277 Create DataUpdateCoordinator for each proxmoxve vm/container (#45171)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-11 17:14:11 -10:00
Phil Bruckner f538ea1827 Release ownership of amcrest integration (#49086)
I no longer use this integration and others have taken over maintenance.
2021-04-11 21:44:22 -05:00
HomeAssistant Azure c7d19d5115 [ci skip] Translation update 2021-04-12 00:04:19 +00:00
Joakim Sørensen 9585defca0 Add device_tracker scanners to hass.config.components (#49063) 2021-04-11 13:54:43 -10:00
Erik Montnemery 1145856c45 Fix cast options flow overwriting data (#49051) 2021-04-11 13:53:44 -10:00
Jan Bouwhuis 74d7293ab8 mqtt fan percentage to speed_range and received speed_state fix (#49060)
* percentage to speed_range and get speed state fix

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

* Update homeassistant/components/mqtt/fan.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-11 13:53:07 -10:00
Kevin Worrel 41ff6fc278 Catch unknown equipment values (#49073)
* Catch unknown equipment values

* Catch unknown equipment values

* Remove warning spam.
2021-04-11 18:12:59 -04:00
mptei 1d28f485d3 Patch ip interface instead of XKNX in knx (#49064)
* knx: Deeper tests.

* Set rate_limit to 0; removed waiting for queue
2021-04-11 23:01:30 +02:00
Milan Meulemans 71e0e42792 Add Rituals Perfume Genie sensor platform (#48270)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-11 10:36:44 -10:00
J. Nick Koston b86bba246a Downgrade logger message about homekit id missing (#49079)
This can happen if the TXT record is received after the PTR record and
should not generate a warning since it will get processed later
2021-04-11 10:36:26 -10:00
Nathan Spencer eb2949a20f Add set_wait_time command support to Litter-Robot (#48300)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-11 10:35:25 -10:00
Ludovico de Nittis 30618aae94 Reintroduce iAlarm integration (#43525)
The previous iAlarm integration has been removed because it used
webscraping #43010.

Since then, the pyialarm library has been updated to use the iAlarm API
instead.

With this commit I reintroduce the iAlarm integration, leveraging the
new HA config flow.

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2021-04-11 10:35:04 -10:00
Chris Talkington f7b6d3164a Resolve potential roku setup memory leaks (#49025)
* resolve potential roku setup memory leaks

* Update __init__.py
2021-04-11 12:35:42 -05:00
J. Nick Koston a261bb35eb Bump aiohomekit to 0.2.61 (#49044) 2021-04-11 06:42:46 -10:00
Ruslan Sayfutdinov 9997ae6932 Type data parameter as Mapping in async_create_entry (#49050) 2021-04-11 16:56:33 +02:00
Raman Gupta 34a1dd4120 Add new attributes to Climacell (#48707)
* Add new attributes to Climacell

* fix logic

* test new properties
2021-04-11 11:59:42 +02:00
Phil Hollenback e38fce98c4 Fix non-metric atmospheric pressure in Open Weather Map (#49030)
The openweathermap component retrieves atmospheric pressure from the
openweathermap api and passes it along without checking the units.
The api returns pressure in metric (hPa).  If you the use the weather
forecast card on a non-metric home assistant install, you will then
see the pressure reported as something like '1019 inHg', which is an
incorrect combination of metric value and non-metric label.

To fix this, check when retrieving the pressure if this is a metric
system.  If not, convert the value to non-metric inHg before sending
it along.

Weirdly, this isn't a problem for temperature, so I suspect temp is
getting converted somewhere else.
2021-04-11 11:13:07 +02:00
Nicolas Braem 71a410c742 Correct vicare power production device class (#49040) 2021-04-11 10:52:28 +02:00
Joakim Plate 62182ea460 Bump ha-philipsjs to 2.7.0 (#49008)
This has some improvements to not consider the TV
off due to some exceptions that is related to API
being buggy rather than off.
2021-04-11 08:42:32 +02:00
Ben Hale e68678e336 Upgrade aioambient to 1.2.4 (#49035) 2021-04-10 20:19:31 -06:00
HomeAssistant Azure 45a92f5791 [ci skip] Translation update 2021-04-11 00:04:41 +00:00
Nicolas Braem 42156bafe0 Change vicare unit of power production current to POWER_WATT (#49000) 2021-04-10 23:02:08 +02:00
Franck Nijhof 5983fac5c2 Fix use search instead of match to filter logs (#49017) 2021-04-10 22:03:44 +02:00
Franck Nijhof 654a532641 Upgrade wakonlan to 2.0.1 (#48995) 2021-04-10 21:50:12 +02:00
Aidan Timson 3cd40ac79c Set Lyric hold time to use local time instead of utc (#48994) 2021-04-10 21:48:33 +02:00
Andreas Oberritter e1d4d65ac4 Bump pysml to 0.0.5 (#49014) 2021-04-10 20:16:28 +02:00
Marvin Wichmann 21744790d3 Add KNX source address to Sensor and BinarySensor (#48857)
* Add source address to Sensor and BinarySensor

* Fix typing

* Review: Always use UTC time in state attributes

* Review: Add missing UTC conversion in sensor
2021-04-10 18:12:43 +02:00
Adrien Brault 676af205e4 Fix light template invalid color temp message (#48337) 2021-04-10 17:22:15 +02:00
amitfin f8690c29cd Bump libhdate dependency (#48695) 2021-04-10 17:20:08 +02:00
dynasticorpheus 7ef17bf175 Add support for event type closed to integration folder_watcher (#48226) 2021-04-10 17:04:43 +02:00
Simone Chemelli fcf86e59cc Log zone cleaning (#47912) 2021-04-10 16:55:28 +02:00
Simone Chemelli 157c1d0ed2 Fix Zeroconf manifest schema in hassfest script (#49006) 2021-04-10 16:45:53 +02:00
EetuRasilainen e7a3308efa Improve schema of media_player.join service (#48342)
Co-authored-by: eetu <EetuRasilainen@users.noreply.github.com>
2021-04-10 16:32:41 +02:00
Marc Mueller 1a38d2089d Bump python-typing-update to v0.3.3 (#48992)
* Bump python-typing-update to 0.3.3
* Changes after update
2021-04-10 15:21:11 +02:00
J. Nick Koston a0a8638a2d Bump nexia to 0.9.6 (#48982)
- Now returns None when a humidity sensor cannot be read instead of throwing an exception
2021-04-10 12:42:42 +02:00
Martin Hjelmare 7e30ab2fb2 Add missing internal quality scale label (#48947)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-10 12:37:20 +02:00
Erik Montnemery 7e4be921a8 Add helper to get an entity's supported features (#48825)
* Add helper to check entity's supported features

* Move get_supported_features to helpers/entity.py, add tests

* Fix error handling and improve tests
2021-04-10 08:19:16 +02:00
J. Nick Koston 4cd7f9bd8b Raise ConfigEntryAuthFailed during setup or coordinator update to start reauth (#48962) 2021-04-09 19:41:29 -10:00
Jason 7cc857a298 Add custom JSONEncoder for subscribe_trigger WS endpoint (#48664) 2021-04-09 20:47:10 -07:00
Matt Zimmerman a9602e7a08 Update python-smarttub to 0.0.23 (#48978) 2021-04-10 03:38:13 +00:00
Matt Zimmerman c08ae64085 Update python-smarttub to 0.0.23 (#48978) 2021-04-10 03:37:10 +00:00
Matt Zimmerman 324dd12db8 Update python-smarttub to 0.0.23 (#48978) 2021-04-09 20:36:57 -07:00
Paulus Schoutsen 01e558430a Merge pull request #48977 from home-assistant/rc 2021-04-09 20:35:34 -07:00
Abílio Costa 5c7408cdce Remove uneeded check in ZHA battery voltage attrib (#48968) 2021-04-09 21:30:32 -04:00
Paulus Schoutsen 31b061e8f1 Bumped version to 2021.4.3 2021-04-10 00:30:34 +00:00
Shay Levy 4ca40367d1 Fix Shelly button device triggers (#48974) 2021-04-10 00:30:24 +00:00
J. Nick Koston 12da88cae9 Prevent ping id allocation conflict with device_tracker (#48969)
* Prevent ping id allocation conflict with device_tracker

- Solves id conflict resulting unexpected home state

* Update homeassistant/components/ping/device_tracker.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-10 00:30:23 +00:00
Paulus Schoutsen 0520ce5ed3 Fix config forwarding (#48967) 2021-04-10 00:30:22 +00:00
Guido Schmitz 995e22d3bb Bump devolo Home Control to support old websocket-client versions again (#48960) 2021-04-10 00:30:21 +00:00
Jan Bouwhuis 6296d78e58 Implement percentage_step and preset_mode is not not speed fix for MQTT fan (#48951) 2021-04-10 00:30:20 +00:00
Joakim Sørensen 2c7fd30029 Add TTS engines in config.components (#48939)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-10 00:30:20 +00:00
Ville Skyttä 4149cc9662 Huawei LTE cleanups (#48959) 2021-04-09 17:08:13 -07:00
Guido Schmitz 441c304f11 Bump devolo Home Control to support old websocket-client versions again (#48960) 2021-04-09 17:07:04 -07:00
HomeAssistant Azure a36712509b [ci skip] Translation update 2021-04-10 00:03:44 +00:00
Shay Levy 98396e13af Fix Shelly button device triggers (#48974) 2021-04-09 16:58:44 -07:00
J. Nick Koston 9b0b2d9168 Prevent ping id allocation conflict with device_tracker (#48969)
* Prevent ping id allocation conflict with device_tracker

- Solves id conflict resulting unexpected home state

* Update homeassistant/components/ping/device_tracker.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-09 16:56:15 -07:00
Jan Bouwhuis 28ad5b5514 Implement percentage_step and preset_mode is not not speed fix for MQTT fan (#48951) 2021-04-09 16:14:48 -07:00
Joakim Sørensen eef7faa1e4 Add TTS engines in config.components (#48939)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-09 16:13:07 -07:00
Paulus Schoutsen 6d5c34f2dc Fix config forwarding (#48967) 2021-04-10 01:12:40 +02:00
Paulus Schoutsen 9f06639ecc Bump hass-nabucasa 0.43 (#48964) 2021-04-09 13:43:38 -07:00
Erik Montnemery 16196e2e16 Don't log template errors from developer tool (#48933) 2021-04-09 12:10:02 -07:00
Paulus Schoutsen 7b7cfd71de Merge pull request #48954 from home-assistant/rc 2021-04-09 12:03:40 -07:00
Bram Kragten d5d9a5ff11 Update frontend to 20210407.3 (#48957) 2021-04-09 18:53:45 +00:00
Bram Kragten 43335953a2 Update frontend to 20210407.3 (#48957) 2021-04-09 11:53:20 -07:00
Paulus Schoutsen 3f744bcbef Bumped version to 2021.4.2 2021-04-09 17:39:03 +00:00
jjlawren 92746aa60c Fix Plex live TV handling (#48953) 2021-04-09 17:38:54 +00:00
Ph-Wagner 4da77b9768 Extend Google Cast media source URL expiry to 24h (#48937)
* Extend media source URL expiry to 12h

closes #46280
After checking out https://github.com/home-assistant/core/pull/48912 I just think why not.

* Update homeassistant/components/cast/media_player.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-09 17:38:53 +00:00
David F. Mulcahey b800bb0202 Bump ZHA quirks library (#48931) 2021-04-09 17:38:52 +00:00
Tobias Sauerwein b41e611cb5 Bump pykodi to 0.2.5 (#48930) 2021-04-09 17:38:52 +00:00
Philip Allgaier ee78c9b08a Fix "notify.events" trim() issue + add initial tests (#48928)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-09 17:38:51 +00:00
Joakim Sørensen 29bb6d76f1 Change discovery timeout from 10 to 60 (#48924) 2021-04-09 17:38:50 +00:00
Joakim Sørensen 38a1c65ab7 Handle exceptions when looking for new version (#48922) 2021-04-09 17:38:49 +00:00
Tobias Sauerwein 1ca087b4d0 Bump pykodi to 0.2.4 (#48913) 2021-04-09 17:38:48 +00:00
Erik Montnemery 1f21b19eae Extend media source URL expiry to 24h (#48912) 2021-04-09 17:38:47 +00:00
Milan Meulemans 6746fbadef Catch expected errors and log them in rituals perfume genie (#48870)
* Add update error logging

* Move try available to else

* Remove TimeoutError
2021-04-09 17:38:46 +00:00
Hans Kröner 41fe8b9494 Account for openweathermap 'dew_point' not always being present (#48826) 2021-04-09 17:38:45 +00:00
jjlawren 2e32589741 Fix Plex live TV handling (#48953) 2021-04-09 10:38:01 -07:00
Philip Allgaier 7e2c8a2737 Fix "notify.events" trim() issue + add initial tests (#48928)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-09 10:36:13 -07:00
J. Nick Koston ac02f7c88a Bump boto3 to 1.16.52 (#47772) 2021-04-09 10:16:59 -07:00
J. Nick Koston 40450b9cfd Detach aiohttp.ClientSession created by config entry setup on unload (#48908) 2021-04-09 10:14:33 -07:00
Marc Mueller 8e2b5b36b5 Bump pyupgrade to 2.12.0 (#48943) 2021-04-09 09:58:27 -07:00
Tobias Sauerwein ee0c87df1c Bump pykodi to 0.2.5 (#48930) 2021-04-09 09:54:39 -07:00
Joakim Sørensen af3b18c40a Handle exceptions when looking for new version (#48922) 2021-04-09 09:54:24 -07:00
David F. Mulcahey f2f0331309 Bump ZHA quirks library (#48931) 2021-04-09 12:08:56 -04:00
Ph-Wagner b66c4a9dca Extend Google Cast media source URL expiry to 24h (#48937)
* Extend media source URL expiry to 12h

closes #46280
After checking out https://github.com/home-assistant/core/pull/48912 I just think why not.

* Update homeassistant/components/cast/media_player.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-09 18:02:06 +02:00
Erik Montnemery 346af58f27 Extend media source URL expiry to 24h (#48912) 2021-04-09 17:19:23 +02:00
Joakim Sørensen 65c39bbd92 Change discovery timeout from 10 to 60 (#48924) 2021-04-09 16:44:02 +02:00
RenierM26 155322584d Update Ezviz Component (#45722)
* Update Ezviz Component

* Update Ezviz for pylint test

* Update Ezviz component pylint tests

* Update Ezviz component tests

* Update Ezviz Component tests

* Update Ezviz component pylint error

* Fix ezviz component config flow tests

* Update ezviz component

* Update Ezviz component

* Add sensor platforms

* issue with requirements file

* Update binary_sensor to include switches

* Updates to Ezviz sensors

* Removed enum private method.

* Fix switch args

* Update homeassistant/components/ezviz/switch.py

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

* config flow checks login info

* Config_flow now imports ezviz from camera platform

* Update test

* Updated config_flow with unique_id and remove period from logging

* Added two camera services and clarified service descryptions in services.yaml

* Fixed variable name mistake with new service

* Added french integration translation

* Config_flow add camera rtsp credentials as seperate entities, with user step and import step

* rerun hassfest after rebase

* Removed region from legacy config schema, removed logging in camera platform setup that could contain credentials, removed unused constant.

* Regenerate requirements

* Fix tests and add config_flow import config test

* Added addition test to config_flow to test successfull camera entity create.

* Add to tests method to end in create entry, config_flow cleanup, use entry instead of entry.data

* Removed all services, sorted platforms in init file.

* Changed RTSP logging to debug from warning. (Forgot to change this before commit)

* Cleanup typing, change platform order, bump pyezviz version

* Added types to entries, allow creation of main entry if deleted by validating existance of type

* Config_flow doesn't store serial under entry data, camera rtsp read from entry and not stored in hass, removed duplicate abort if unique id from config flow

* Fix test of config_flow

* Update tests/components/ezviz/test_config_flow.py

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

* Update tests/components/ezviz/test_config_flow.py

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

* Update tests/components/ezviz/test_config_flow.py

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

* Bumped pyezviz api version, added api pyezvizerror exception raised in api (on HTTPError), cleanup unused imports.

* rebase

* cleanup coordinator, bump pyezviz api version, move async_setup_entry to add entry options to camera entries. (order change)

* Added discovery step in config_flow if cameras detected without rtsp config entry

* Reload main integration after addition or completion of camera rtsp config entry

* Add tests for discovery config_flow, added a few other output asserts

* Camera platform call discover flow with hass.async_create_task. Fixes to config_flow for discovery step

* Fix config_flow discovery, add check to legacy yaml camera platform import, move camera private method to camera import step

* Remove not needed check from config_flow import step.

* Cleanup config_flow

* Added config_flow description for discovered camera

* Reordered description in config_flow confim step.

* Added serial to flow_step description for discovered camera, readded camera attributes for rtsp stream url (allows user to check RTSP cred), added local ip and firmware upgade available.

* Bumped pyezviz version and changed region code to region url. (Russia uses a completly different url). PyEzviz adds a Local IP sensor, removed camera entity attributes.

* Add RSTP describe auth check from API to config_flow

* url as vol.in options in Config_flow

* Config_flow changes to discovery step, added exceptions, fixed tests, added rtsp config validate module mock to test disovery confirm step

* Add test for config_flow step user_camera

* Added tests for abort flow

* Extend tests on custom url flow step

* Fix exceptions in config_flow, fix test for discovery import exception test

* Bump pyezviz api version

* Bump api version, added config_flow function to wake hybernating camera before testing credentials, removed "user camera" step from config flow not needed as cameras are discovered.

* Create pyezviz Api instance for config_flow wake hybernating camera, fixed tests and added fixture to mock method

* Added alarm_control_panel with support to arm/disarm all cameras, fixed camera is available attribute (returns 2 if unavailable, 1 if available)

* Skip ignored entities when setup up camera RTSP stream

* Remove alarm_control_panel, add additional config_flow tests

* Cleanup tests, add tests for discovery_step.

* Add test for config_flow rtsp test step1 exceptions

* Removed redundant except from second step in test RTSP method

* All tests to CREATE or ABORT, added step exception for general HTTP error so user can retry in case of trasient network condition

* Ammended tests with output checks for step_id, error, data, create entry method calls.

* bumped ezviz api now rases library exceptions. Config_flow, coordiantor and init raises library exceptions. Updated test sideeffect for library exceptions

* Bump api version, Create mock ezviz cloud account on discovery tests first to allow more complete testing of step.

* Add abort to rtsp verification method if cloud account was deleted and add tests

* Update tests/components/ezviz/__init__.py

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

* Update homeassistant/components/ezviz/const.py

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

* Update tests/components/ezviz/__init__.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Undo config import change to password key for yaml, move hass.data.setdefault to async_setup_entry and remove async_setup

* Fixed tests by removing _patch_async_setup as this was removed from init.

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Update homeassistant/components/ezviz/camera.py

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

* Changed L67 on camera config to complete suggestion for cleanup

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-09 12:39:19 +02:00
Álvaro Fernández Rojas e30cf88459 AEMET town timestamp should be UTC (#48916)
AEMET OpenData doesn't clarify if the hourly data timestamp is UTC or not, but
after correctly formatting the town timestamp in ISO format, it is clear that
the timestamp is provided as UTC value.
Therefore, the only values not provided as UTC are the ones related to the
specific daily and hourly forecast values.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-04-09 12:37:46 +02:00
amitfin 2391134d26 Update "issur_melacha_in_effect" via time tracking (#42485) 2021-04-09 12:26:55 +02:00
Brandon Rothweiler 52e8c7166b Allow template covers to have opening and closing states (#47925) 2021-04-09 11:36:02 +02:00
Tobias Sauerwein f396804f54 Bump pykodi to 0.2.4 (#48913) 2021-04-09 11:27:43 +02:00
Robert Svensson 31ae121645 Add fixtures for Axis rtsp client and adapt tests to use them (#47901)
* Add a fixture for rtsp client and adapt tests to use it

* Better fixtures for RTSP events and signals
2021-04-09 10:56:53 +02:00
Phil Hollenback e7e53b879e Fix cpu temperature reporting for Armbian on Odroid (#48903)
Some systems expose cpu temperatures differently in
psutil. Specifically, running armbian on the Odroid xu4 sbc gives the
following temerature output:

>>> pp.pprint(psutil.sensors_temperatures())
{   'cpu0-thermal':
    [   shwtemp(label='', current=54.0, high=115.0, critical=115.0)],
    'cpu1-thermal':
    [   shwtemp(label='', current=56.0, high=115.0, critical=115.0)],
    'cpu2-thermal':
    [   shwtemp(label='', current=58.0, high=115.0, critical=115.0)],
    'cpu3-thermal':
    [   shwtemp(label='', current=56.0, high=115.0, critical=115.0)],
}

Since the cpu number is embedded inside the name, the current code
can't find it.

To fix this, check both the name and the constructed label for matches
against CPU_SENSOR_PREFIXES, and add the appropriate label
cpu0-thermal in the prefix list.

While this is slightly less efficient that just generating the label
and checking it, it results in easier to understand code.
2021-04-09 10:25:03 +02:00
Erik Montnemery d1df6e6fba Don't get code_context when calling inspect.stack (#48849)
* Don't get code_context when calling inspect.stack

* Update homeassistant/helpers/config_validation.py
2021-04-09 07:26:09 +02:00
J. Nick Koston 19e047e801 Fix logic reversal in sonos update_media_radio (#48900) 2021-04-09 07:24:35 +02:00
HomeAssistant Azure 23dd57a562 [ci skip] Translation update 2021-04-09 00:03:15 +00:00
Milan Meulemans bdbc38c937 Catch expected errors and log them in rituals perfume genie (#48870)
* Add update error logging

* Move try available to else

* Remove TimeoutError
2021-04-09 01:43:41 +02:00
Paulus Schoutsen f4c3bdad7d Merge pull request #48896 from home-assistant/rc 2021-04-08 15:35:17 -07:00
Paulus Schoutsen 3bf693e352 Bumped version to 2021.4.1 2021-04-08 21:35:53 +00:00
Bram Kragten 7051cc04bd Update frontend to 20210407.2 (#48888) 2021-04-08 21:35:37 +00:00
Franck Nijhof d9c1c391bc Fix optional data payload in Prowl messaging service (#48868) 2021-04-08 21:35:35 +00:00
Franck Nijhof 02cd2619bb Fix possibly missing changed_by in Verisure Alarm (#48867) 2021-04-08 21:35:35 +00:00
starkillerOG f791142c75 Fix motion_blinds gateway signal strength sensor (#48866)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-08 21:35:34 +00:00
Bram Kragten 1c939fc9be Correct wrong x in frontend manifest (#48865) 2021-04-08 21:35:33 +00:00
Philip Allgaier 0ad4736349 Bump speedtest-cli to 2.1.3 (#48861) 2021-04-08 21:35:32 +00:00
Erik Montnemery 3f0d63c1ab Validate supported_color_modes for MQTT JSON light (#48836) 2021-04-08 21:35:32 +00:00
Martin Hjelmare f39afa60ae Fix mysensor cover closed state (#48833) 2021-04-08 21:35:31 +00:00
Erik Montnemery cf11d9a2df Replace redacted stream recorder credentials with '****' (#48832) 2021-04-08 21:35:30 +00:00
Niccolo Zapponi dd2a73b363 Fix iCloud extra attributes (#48815) 2021-04-08 21:35:29 +00:00
Johan Nenzén 99ef870908 Add missing super call in Verisure Camera entity (#48812) 2021-04-08 21:35:29 +00:00
Raman Gupta 8d738cff41 Check all endpoints for zwave_js.climate fan mode and operating state (#48800)
* Check all endpoints for zwave_js.climate fan mode and operating state

* fix test
2021-04-08 21:35:28 +00:00
Paulus Schoutsen a59460a233 Test that we do not initialize bad configuration (#48872)
* Test that we do not initialize bad configuration

* Simplify test as we are not calling a service
2021-04-08 22:04:39 +02:00
Erik Montnemery b0aa64d59c Replace redacted stream recorder credentials with '****' (#48832) 2021-04-08 12:44:17 -07:00
starkillerOG 2dc46d4516 Fix motion_blinds gateway signal strength sensor (#48866)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-08 12:42:56 -07:00
Bram Kragten aaa9367554 Update frontend to 20210407.2 (#48888) 2021-04-08 12:41:40 -07:00
Erik Montnemery 5e8559e3cc Validate supported_color_modes for MQTT JSON light (#48836) 2021-04-08 12:40:48 -07:00
Martin Hjelmare e988062034 Fix mysensor cover closed state (#48833) 2021-04-08 12:39:03 -07:00
J. Nick Koston 493bd4cdca Add manufacturer matching support to zeroconf (#48810)
We plan on matching with _airplay which means we need
to able to limit to specific manufacturers to avoid
generating flows for integrations with the wrong
manufacturer
2021-04-08 09:03:10 -10:00
Khole c2d98f1905 Add hive boost off functionality (#48701)
* Add boost off functionality

* Added backwards compatibility

* Update homeassistant/components/hive/services.yaml

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

* Update homeassistant/components/hive/climate.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-08 20:51:00 +02:00
Raman Gupta 3ca69f5568 Raise an exception when event_type exceeds the max length (#48115)
* raise an exception when event_type exceeds the max length that the recorder supports

* add test

* use max length constant in recorder

* update config entry reloaded service name

* remove exception string function because it's not needed

* increase limit to 64 and revert event name change

* fix test

* assert exception args

* fix test

* add comment about migration
2021-04-08 20:46:28 +02:00
J. Nick Koston 1f80c756ab Fix subscribe_bootstrap_integrations to send events (#48754) 2021-04-08 07:30:33 -10:00
Laszlo Magyar c7e4857d2c Let recorder deal with event names longer than 32 chars (#47748) 2021-04-08 07:08:49 -10:00
Franck Nijhof 1dafea705d Fix possibly missing changed_by in Verisure Alarm (#48867) 2021-04-08 19:03:11 +02:00
Franck Nijhof e475b6b9c3 Fix optional data payload in Prowl messaging service (#48868) 2021-04-08 18:02:29 +02:00
Bram Kragten 94fc7b8aed Correct wrong x in frontend manifest (#48865) 2021-04-08 08:54:13 -07:00
Philip Allgaier 50bc037819 Bump speedtest-cli to 2.1.3 (#48861) 2021-04-08 17:35:02 +02:00
Johan Nenzén e70111b93c Add missing super call in Verisure Camera entity (#48812) 2021-04-08 17:00:49 +02:00
Raman Gupta 2768f202b6 Check all endpoints for zwave_js.climate fan mode and operating state (#48800)
* Check all endpoints for zwave_js.climate fan mode and operating state

* fix test
2021-04-08 16:53:20 +02:00
Philip Allgaier f1c4072d3c Return TP-Link sensor & light attributes as float rather than string (#48828) 2021-04-08 16:51:59 +02:00
Marvin Wichmann 91837f08ce Update xknx to version 0.18.0 (#48799) 2021-04-08 14:54:43 +02:00
Niccolo Zapponi 9377a45d8a Fix iCloud extra attributes (#48815) 2021-04-08 13:50:46 +02:00
starkillerOG 78dabc83ec Add Xiaomi Miio zhimi.airpurifier.mc2 (#48840)
* add zhimi.airpurifier.mc2

* fix issort
2021-04-08 13:40:29 +02:00
Hans Kröner 2765256b61 Account for openweathermap 'dew_point' not always being present (#48826) 2021-04-08 13:39:53 +02:00
Aaron Bach e70d7327f9 Store Recollect Waste pickup dates in UTC (#48690)
* Store Recollect Waste pickup dates in UTC

* Code review

* Code review
2021-04-08 07:34:47 +02:00
HomeAssistant Azure 8e6238ff61 [ci skip] Translation update 2021-04-08 00:03:23 +00:00
J. Nick Koston cdb151e8c9 Remove doorbird recorder test workaround (#48781)
Apparently this is no longer needed
2021-04-07 09:27:47 -10:00
Erik Montnemery 61b38baf2e Reject nan, inf from generic_thermostat sensor (#48771) 2021-04-07 09:00:42 -07:00
Bram Kragten f2ef9e7505 Update frontend to 20210407.1 (#48778) 2021-04-07 08:57:45 -07:00
Daniel Sack c732749640 Update __init__.py (#48659)
This change solves that HMIP-RCV-1 is not found when used in a service call to invoke a virtual key (case-sensitivity problem).
- https://community.home-assistant.io/t/homematic-hmip-rcv-50-not-working-with-virtual-key-any-more/249000
- https://github.com/danielperna84/pyhomematic/issues/368
2021-04-07 15:51:35 +02:00
dependabot[bot] fa8436889a Bump actions/upload-artifact from v2.2.2 to v2.2.3 (#48761)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v2.2.2 to v2.2.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2.2.2...ee69f02b3dfdecd58bb31b4d133da38ba6fe3700)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-07 13:20:00 +02:00
Raman Gupta caaa62a7f9 Clean up google travel time code (#48708) 2021-04-07 12:39:27 +02:00
Erik Montnemery 2555b10d49 Remove login details before logging SQL errors (#48758) 2021-04-07 12:15:56 +02:00
Maciej Bieniek 5be1eacde9 Set AsusWRT mac_address and ip_address properties (#48764) 2021-04-07 12:08:22 +02:00
Bram Kragten ab190f36ac Update frontend to 20210407.0 (#48765) 2021-04-07 11:42:12 +02:00
Erik Montnemery 46371a9e87 Fix whitespace error in cast (#48763) 2021-04-07 11:12:31 +02:00
Franck Nijhof 06381f5619 Upgrade pre-commit to 2.12.0 (#48731) 2021-04-07 10:40:53 +02:00
Franck Nijhof 6ec8e17e7b Do not activate Met.no without setting a Home coordinates (#48741) 2021-04-07 09:39:39 +02:00
J. Nick Koston 5f8fcca5ad Solve cast delaying startup when discovered devices are slow to setup (#48755)
* Solve cast delaying startup when devices are slow to setup

* Update homeassistant/components/cast/media_player.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-07 09:39:04 +02:00
Daniel Hjelseth Høyer b558f20ad2 Met.no - only update data if coordinates changed (#48756) 2021-04-07 09:27:58 +02:00
stegm 589f2240b1 New integration for Kostal Plenticore solar inverters (#43404)
* New integration for Kostal Plenticore solar inverters.

* Fix errors from github pipeline.

* Fixed test for py37.

* Add more test for test coverage check.

* Try to fix test coverage check.

* Fix import sort order.

* Try fix test code coverage .

* Mock api client for tests.

* Fix typo.

* Fix order of rebased code from dev.

* Add new data point for home power.

* Modifications to review.
Remove service for write access (for first pull request). Refactor
update coordinator to not use the entity API.

* Fixed mock imports.

* Ignore new python module on coverage.

* Changes after review.

* Fixed unit test because of config title.

* Fixes from review.

* Changes from review (unique id and mocking of tests)

* Use async update method. Change unique id. Remove _dict

* Remove _data field.

* Removed login flag from PlenticoreUpdateCoordinator.

* Removed Dynamic SoC sensor because it should be a binary sensor.

* Remove more sensors because they are binary sensors.
2021-04-07 09:18:07 +02:00
Stefan Agner 815db999da Use microsecond precision for datetime values on MariaDB/MySQL (#48749)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-07 09:13:55 +02:00
Joakim Sørensen 191c01a611 Add custom integrations to analytics (#48753) 2021-04-06 19:33:08 -07:00
Joakim Sørensen 89f2f458d2 Generate a seperate UUID for the analytics integration (#48742) 2021-04-07 02:34:49 +02:00
HomeAssistant Azure 82cc5148d7 [ci skip] Translation update 2021-04-07 00:04:06 +00:00
Franck Nijhof e63e8b6ffe Rename hassio config entry title to Supervisor (#48748) 2021-04-07 00:46:47 +02:00
J. Nick Koston d417dcb8f4 Bump pysonos to 0.0.42 to fix I/O in event loop (#48743)
fixes #48732

Changelog: https://github.com/amelchio/pysonos/compare/v0.0.41...v0.0.42
2021-04-07 00:15:36 +02:00
Philip Allgaier 030e9d314d Fix systemmonitor IP address look-up logic (#48740) 2021-04-06 22:58:35 +02:00
Pascal Reeb fb1444c414 Add doorsensor + coordinator to nuki (#40933)
* implemented coordinator + doorsensor

* added async_unload_entry

* small fixes + reauth_flow

* update function

* black

* define _data inside __init__

* removed unused property

* await on update & coverage for binary_sensor

* keep reauth seperate from validate

* setting entities unavailable when connection goes down

* add unknown error when entity is not present

* override extra_state_attributes()

* removed unnecessary else

* moved to locks & openers variables

* removed doorsensorState attribute

* changed config entry reload to a task

* wait for reload
2021-04-06 21:20:57 +02:00
Erik Montnemery 9f5db2ce3f Improve warnings on undefined template errors (#48713) 2021-04-06 12:11:42 -07:00
Paulus Schoutsen 09635678bc Allow reloading top-level template entities (#48733) 2021-04-06 12:10:39 -07:00
Justin Paupore c4f9489d61 Fix infinite recursion in LazyState (#48719)
If LazyState cannot parse the attributes of its row as JSON, it prints
a message to the logger. Unfortunately, it passes `self` as a format
argument to that message, which causes its `__repr__` method to be
called, which then tries to retrieve `self.attributes` in order to
display them. This leads to an infinite recursion and a crash of the
entire core.

To fix, send the database row to be printed in the log message, rather
than the LazyState object that wraps around it.
2021-04-06 11:39:54 -07:00
Paulus Schoutsen 42d2039560 Updated frontend to 20210406.0 (#48734) 2021-04-06 20:14:54 +02:00
Martin Hjelmare ae67f300b2 Fix sync api use in alarm control panel test (#48725) 2021-04-06 16:50:15 +02:00
J. Nick Koston 46b673cdc6 Abort discovery for unsupported doorbird accessories (#48710) 2021-04-06 13:32:14 +02:00
dependabot[bot] 11ed2f4c30 Bump codecov/codecov-action from v1.3.1 to v1.3.2 (#48716)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.3.1 to v1.3.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.3.1...9b0b9bbe2c64e9ed41413180dd7398450dfeee14)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-06 12:49:47 +02:00
Erik Montnemery 9f2fb37e17 Flag brightness support for MQTT RGB lights (#48718) 2021-04-06 12:39:29 +02:00
Erik Montnemery b57d02d786 Bump pychromecast to 9.1.2 (#48714) 2021-04-06 09:55:47 +02:00
J. Nick Koston 2a15ae13a7 Small improvements for emonitor (#48700)
- Check reason for config abort
- Abort if unique id is already configured on user flow
- remove unneeded pylint
2021-04-05 17:22:49 -10:00
Michael b47a90a9d8 Add AMD Ryzen processor temperatur capability to systemmonitor (#48705) 2021-04-05 17:07:22 -10:00
HomeAssistant Azure e8cbdea881 [ci skip] Translation update 2021-04-06 00:04:07 +00:00
Raman Gupta 5305d083ec Add config flow for Waze Travel Time (#43419)
* Add config flow for Waze Travel Time

* update translations

* setup entry is async

* fix update logic during setup

* support old config method in the interim

* fix requirements

* fix requirements

* add abort string

* changes based on @bdraco review

* fix tests

* add device identifier

* Update homeassistant/components/waze_travel_time/__init__.py

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

* fix tests

* Update homeassistant/components/waze_travel_time/sensor.py

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

* log warning for deprecation message

* PR feedback

* fix tests and bugs

* re-add name to config schema to avoid breaking change

* handle if we get name from config in entry title

* fix name logic

* always set up options with defaults

* Update homeassistant/components/waze_travel_time/sensor.py

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

* Update config_flow.py

* Update sensor.py

* handle options updates by getting options on every update

* patch library instead of sensor

* fixes and make sure first update writes the state

* validate config entry data during config flow and entry setup

* fix input parameters

* fix tests

* invert if statement

* remove unnecessary else

* exclude helpers from coverage

* remove async_setup because it's no longer needed

* fix patch statements

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-05 19:25:52 -04:00
Dylan Gore f3399aa8aa Add a new weather integration - Met Éireann (#39429)
* Added a new weather integration - Met Éireann

* Fix codespell error

* Update met_eireann to use CoordinatorEntity

* Remove deprecated platform setup

* Fix merge conflict

* Remove unnecessary onboarding/home tracking code

* Use common strings for config flow

* Remove unnecessary code

* Switch to using unique IDs in config flow

* Use constants where possible

* Fix failing tests

* Fix isort errors

* Remove unnecessary DataUpdateCoordinator class

* Add device info

* Explicitly define forecast data

* Disable hourly forecast entity by default

* Update config flow to reflect requested changes

* Cleanup code

* Update entity naming to match other similar components

* Convert forecast time to UTC

* Fix test coverage

* Update test coverage

* Remove elevation conversion

* Update translations for additional clarity

* Remove en-GB translation
2021-04-05 23:23:57 +02:00
J. Nick Koston c28d4e8e01 Clean and optimize systemmonitor (#48699)
- Remove unneeded excinfo to _LOGGER.exception
- Use f-strings
- Switch last_boot to utc
- Cache psutil/os calls used by multiple attributes in the same update cycle
2021-04-05 21:50:22 +02:00
Raman Gupta d0b3f76a6f Add ClimaCell v4 API support (#47575)
* Add ClimaCell v4 API support

* fix tests

* use constants

* fix logic and update tests

* revert accidental changes and enable hourly and nowcast forecast entities in test

* use variable instead of accessing dictionary multiple times

* only grab necessary fields

* add _translate_condition method ot base class

* bump pyclimacell again to fix bug

* switch typehints back to new format

* more typehint fixes

* fix tests

* revert merge conflict change

* handle 'migration' in async_setup_entry so we don't have to bump config entry versions

* parametrize timestep test
2021-04-05 13:39:39 -04:00
Paulus Schoutsen 0f757c3db2 Fix verisure deadlock (#48691) 2021-04-05 12:22:25 +02:00
J. Nick Koston 0544d94bd0 Update all systemmonitor sensors in one executor call (#48689)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-04 22:11:57 -10:00
J. Nick Koston 12e3bc8101 Provide api to see which integrations are being loaded (#48274)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-04 22:11:44 -10:00
J. Nick Koston e925fd2228 Add emonitor integration (#48310)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-04 22:11:23 -10:00
J. Nick Koston 94fde73add Add config flow for enphase envoy (#48517)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-04 22:11:06 -10:00
Alexei Chetroi 6204765835 Implement Ignore list for poll control configuration on Ikea devices (#48667)
Co-authored-by: Hmmbob <33529490+hmmbob@users.noreply.github.com>
2021-04-04 21:21:47 -07:00
J. Nick Koston 6dc1414b69 Fix sonos volume always showing 0 (#48685) 2021-04-04 20:26:55 -07:00
J. Nick Koston 30382c3dbe Limit log spam from rest and include reason in platform retry (#48666)
- Each retry was logging the error again
- Now we set the cause of the PlatformNotReady to allow Home Assistant to log as needed
2021-04-04 20:26:18 -07:00
Robert Svensson 9ba66fe232 Add more device triggers to deCONZ integration (#48680) 2021-04-04 20:25:57 -07:00
HomeAssistant Azure d5e5450540 [ci skip] Translation update 2021-04-05 00:05:16 +00:00
J. Nick Koston 32daa63265 Use shared aiohttp.ClientSession in bond (#48669) 2021-04-05 00:12:58 +02:00
Franck Nijhof 9553ae8196 Upgrade wakonlan to 2.0.0 (#48683) 2021-04-04 23:44:43 +02:00
J. Nick Koston e008e80bcf Cleanup sonos (#48684)
- Remove unused code
- Use async_add_executor_job
- Enforce typing
2021-04-04 23:28:29 +02:00
Raman Gupta 95e1daa451 Bump zwave_js dependency to 0.23.1 (#48682) 2021-04-04 16:09:07 -04:00
jan iversen d5ef382fd5 Add modbus write coils (#48676)
* Add missing function in class.

write_coils was missing.

* Remove dead code.

The HA configuration secures that CONF_TYPE only contains legal values,
so having an empty assert to catch unknown values is dead code.

An empty assert is not informative.
2021-04-04 21:53:52 +02:00
Franck Nijhof b34cc7ef2c Remove Social Blade integration (ADR-0004) (#48677)
* Remove Social Blade integration (ADR-0004)

* Cleanup coveragerc
2021-04-04 20:40:08 +02:00
jan iversen 2511e1f229 Remove modbus duplicate strings (#48654)
* Reuse HA constants for serial configuration.

Reusing HA consts reduces the need for translation.

Sort/group constants in const.

* Change const name ATTR_* to CONF_*

* Correct wrong import

* ATTR_* for service and CONF_* for schemas.

* Revert change to service call.

* Rename CONF_TEMPERATURE -> ATTR_TEMPERATURE

Avoid possible division problem in set_temperature.
2021-04-04 14:02:47 +02:00
Franck Nijhof d75f825530 Upgrade holidays to 0.11.1 (#48673) 2021-04-04 13:28:08 +02:00
Franck Nijhof 1876e84d71 Upgrade pytest to 6.2.3 (#48672) 2021-04-04 13:06:49 +02:00
J. Nick Koston b5c679f3d0 Apply ConfigEntryNotReady improvements to PlatformNotReady (#48665)
* Apply ConfigEntryNotReady improvements to PlatformNotReady

- Limit log spam #47201
- Log exception reason #48449
- Prevent startup blockage #48660

* coverage
2021-04-04 12:31:58 +02:00
mburget ecec3c8ab9 Fix Raspi GPIO binary_sensor produces unreliable responses (#48170)
* Fix for issue #10498 Raspi GPIO binary_sensor produces unreliable responses ("Doorbell Scenario")

Changes overtaken from PR#31788 which was somehow never finished

* Fix for issue #10498 Raspi GPIO binary_sensor produces unreliable response. Changes taken over from PR31788 which was somehow never finished

* Remove unused code (pylint warning)
2021-04-04 12:22:43 +02:00
J. Nick Koston 3bc583607f Optimize storage collection entity operations with asyncio.gather (#48352) 2021-04-03 23:35:33 -10:00
J. Nick Koston c1e788e665 Only listen for zeroconf when the esphome device cannot connect (#48645) 2021-04-03 17:11:32 -07:00
J. Nick Koston bc06100dd8 Make sonos event asyncio (#48618) 2021-04-03 17:10:48 -07:00
HomeAssistant Azure d3b4a30e18 [ci skip] Translation update 2021-04-04 00:04:56 +00:00
J. Nick Koston cfe2df9ebd Prevent config entry retry from blocking startup (#48660)
- If there are two integrations doing long retries async_block_till_done() will never be done
2021-04-03 17:00:22 -07:00
epenet 86176f1bf9 Add retry mechanism on onewire sysbus devices (#48614)
* Add retry mechanism on sysbus

* Update tests

* Move to async

* Move blocking calls on the executor
2021-04-03 23:08:35 +02:00
Petro31 545fe7a7be Add Compensation Integration (#41675)
* Add Compensation Integration

Adds the Compensation Integration

* Add Requirements

add missing requirements to compensation integration

* Fix for tests

Fix files after tests

* Fix isort

ran isort

* Handle ADR-0007

Change the configuration to deal with ADR-0007

* fix flake8

Fix flake8

* Added Error Trapping

Catch errors.
Raise Rank Warnings but continue.
Fixed bad imports

* fix flake8 & pylint

* fix isort.... again

* fix tests & comments

fix tests and comments

* fix flake8

* remove discovery message

* Fixed Review changes

* Fixed review requests.
* Added test to test get more coverage.

* Roll back numpy requirement

Roll back numpy requirement to match other integrations.

* Fix flake8

* Fix requested changes

Removed some necessary comments.
Changed a test case to be more readable.

* Fix doc strings and continue

* Fixed a few test case doc strings
* Removed a continue/else

* Remove periods from logger

Removed periods from _LOGGER errors.

* Fixes

changed name to unqiue_id.
implemented suggested changes.

* Add name and fix unique_id

* removed conf name and auto construct it
2021-04-03 22:42:09 +02:00
jan iversen 23fae255ff Make modbus WRITE_COIL use write_coils in case of an array (#48633)
* WRITE_COIL uses write_coils in case of an array.

WRITE_REGISTER uses write_register/write_registers depending
on whether value is singular or an array.

WRITE_COIL is modified to be similar and uses
write_coil/write_coils depending on whether value is singular or an
array.

* Update SERVICE_WRITE_COIL to allow list.
2021-04-03 13:15:01 +02:00
J. Nick Koston b7ae06f1bb Bump aiodiscover to 1.3.3 for dhcp (#48644)
fixes #48615
2021-04-03 11:33:45 +02:00
Álvaro Fernández Rojas 2c61c0f258 Fix AEMET town timestamp format (#48647)
Datetime should be converted to ISO format.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-04-03 11:17:17 +02:00
jan iversen cee43b0670 Add modbus CONF_VERIFY_STATE to new switch config (#48632)
Missed CONF_VERIFY_STATE in new switch config, when
copying from old switch config.
2021-04-03 11:00:06 +02:00
HomeAssistant Azure 176b6daf2a [ci skip] Translation update 2021-04-03 00:03:39 +00:00
Paulus Schoutsen e882460933 Support modern config for the trigger based template entity (#48635) 2021-04-02 16:57:16 -07:00
Bram Kragten cffdbfe13c Updated frontend to 20210402.1 (#48639) 2021-04-02 23:11:39 +02:00
jan iversen 0d7168a667 Remove duplicate test case in modbus switch (#48636) 2021-04-02 22:09:27 +02:00
Oliver eed3bfc762 Going async with denonavr (#47920)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-02 07:47:16 -10:00
Paulus Schoutsen 212d9aa748 Fix trigger template entities without a unique ID (#48631) 2021-04-02 10:24:38 -07:00
Paulus Schoutsen bdbb4f939f Add variables to execute script (#48613) 2021-04-02 06:27:41 -07:00
Shay Levy e76b653246 Bump aioshelly to 0.6.2 (#48620) 2021-04-02 11:48:57 +02:00
HomeAssistant Azure a5dfbf9c44 [ci skip] Translation update 2021-04-02 00:04:54 +00:00
Robert Svensson a61d93adc2 Increase time out for http requests done in Axis integration (#48610) 2021-04-01 16:22:36 -07:00
Paulus Schoutsen 051531d9c1 Clean up mobile app (#48607)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-01 16:22:08 -07:00
Bram Kragten 34ddea536e Update frontend to 20210402.0 (#48609) 2021-04-01 16:19:57 -07:00
Khole 6482800724 Add hive heat on demand (#48591) 2021-04-02 01:14:40 +02:00
Raman Gupta ebb369e008 Add zwave_js WS API command to call node.refresh_info (#48564) 2021-04-02 00:35:13 +02:00
Franck Nijhof ceeb060c05 Fix websocket search for related (#48603)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-04-01 15:31:19 -07:00
FMKaiba 09eb74fd9d Upgrade Astral to 2.2 (#48573) 2021-04-02 00:29:08 +02:00
Franck Nijhof e76503ddc3 Remove Geizhals integration (ADR-0004) (#48594) 2021-04-02 00:04:52 +02:00
Franck Nijhof da54b9237b Typing improvements for SolarEdge (#48596) 2021-04-01 23:59:26 +02:00
Erik Montnemery 76d0f93ec1 Include blueprint input in automation trace (#48575) 2021-04-01 13:34:47 -07:00
Franck Nijhof 528095b9b6 Upgrade numpy to 1.20.2 (#48597) 2021-04-01 13:32:49 -07:00
Franck Nijhof 4e3c12883e Allow templatable service target to support scripts (#48600) 2021-04-01 13:10:01 -07:00
Martin Hjelmare c9cd6b0fbb Clean lazytox script (#48583) 2021-04-01 11:34:01 -07:00
Alan Tse 125161df6b Only raise integrationnotfound for dependencies (#48241)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-01 11:30:52 -07:00
MatthewFlamm f8f0495319 Add nws sensor platform (#45027)
* Resolve rebase conflict.

Remove logging

* lint: fix elif after return

* fix attribution

* add tests for None valuea

* Remove Entity import

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

* Import SensorEntity

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

* Inherit SensorEntity

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

* remove unused logging

* Use CoordinatorEntity

* Use type instead of name.

* add all entities

* add nice rounding to temperature and humidity

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-04-01 18:50:37 +02:00
Erik Montnemery 9f481e1642 Include script script_execution in script and automation traces (#48576) 2021-04-01 09:42:23 -07:00
youknowjack0 9d085778c2 Fix timer.finish to cancel callback (#48549)
Timer.finish doesn't cancel the callback, which can lead to incorrect early cancellation of the timer if it is subsequently restarted. 

Bug reported here: https://community.home-assistant.io/t/timer-component-timer-stops-before-time-is-up/96038
2021-04-01 09:32:59 -07:00
Robert Svensson 6ce96dcb63 Don't care about DPI entries when looking for clients to be restored from UniFi (#48579)
* DPI switches shouldnt be restored, they're not part of clients to be restored

* Only care about Block and POE switch entries
2021-04-01 18:02:28 +02:00
Erik Montnemery d26d2a8446 Return config entry details for 1-step config flows (#48585) 2021-04-01 16:20:53 +02:00
Erik Montnemery 2bf91fa359 Move cast config flow tests to test_config_flow (#48362) 2021-04-01 15:13:58 +02:00
epenet 81bdd41fdc Cleanup orphan devices in onewire integration (#48581)
* Cleanup orphan devices (https://github.com/home-assistant/core/issues/47438)

* Refactor unit testing

* Filter device entries for this config entry

* Update logging

* Cleanup check
2021-04-01 15:06:47 +02:00
Martin Hjelmare fdbef90a57 Remove device class timestamp from device condition and trigger (#48431)
* Remove unit from garmin connect

* Remove unit from hvv departures

* Remove device class timestamp from device condition and trigger

* Remove unit from systemmonitor

* Use device class constant for timestamp in ring
2021-04-01 15:05:10 +02:00
Aaron Bach efa6079c62 Fix incorrect constant import in Ambient PWS (#48574) 2021-04-01 08:00:39 +02:00
HomeAssistant Azure a0483165da [ci skip] Translation update 2021-04-01 00:03:55 +00:00
Joakim Sørensen 1de6fed4b6 Remove analytics from default_config (#48566) 2021-04-01 01:58:48 +02:00
Franck Nijhof b58d6a6293 Bump version to 2021.5.0dev0 (#48559) 2021-03-31 23:16:50 +02:00
Raman Gupta aae0ccc588 Add config flow support to google_travel_time (#43509)
* add config flow support to google_travel_time

* fix bugs and add strings

* fix import and add new test

* address comments in #43419 since this is a similar PR

* fix default name and test

* add unique ID and device info

* fix test

* feedback from waze PR

* continue incorporating feedback from waze PR

* final fixes and update tests

* call update in lambda

* Update homeassistant/components/google_travel_time/sensor.py

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

* additional fixes

* validate config entry data during config flow and config entry setup

* don't store entity

* patch dependency instead of HA code

* fixes

* improve tests by moving all patching to fixtures

* use self.hass instead of setting self._hass

* invert if

* remove unnecessary else

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-03-31 22:10:24 +02:00
6960 changed files with 188307 additions and 60841 deletions
+97 -26
View File
@@ -8,8 +8,10 @@ omit =
homeassistant/scripts/*.py
# omit pieces of code that rely on external devices being present
homeassistant/components/acer_projector/switch.py
homeassistant/components/acer_projector/*
homeassistant/components/actiontec/const.py
homeassistant/components/actiontec/device_tracker.py
homeassistant/components/actiontec/model.py
homeassistant/components/acmeda/__init__.py
homeassistant/components/acmeda/base.py
homeassistant/components/acmeda/const.py
@@ -23,9 +25,8 @@ omit =
homeassistant/components/adguard/sensor.py
homeassistant/components/adguard/switch.py
homeassistant/components/ads/*
homeassistant/components/aemet/abstract_aemet_sensor.py
homeassistant/components/aemet/weather_update_coordinator.py
homeassistant/components/aftership/sensor.py
homeassistant/components/aftership/*
homeassistant/components/agent_dvr/__init__.py
homeassistant/components/agent_dvr/alarm_control_panel.py
homeassistant/components/agent_dvr/camera.py
@@ -36,14 +37,14 @@ omit =
homeassistant/components/airvisual/__init__.py
homeassistant/components/airvisual/air_quality.py
homeassistant/components/airvisual/sensor.py
homeassistant/components/aladdin_connect/cover.py
homeassistant/components/aladdin_connect/*
homeassistant/components/alarmdecoder/__init__.py
homeassistant/components/alarmdecoder/alarm_control_panel.py
homeassistant/components/alarmdecoder/binary_sensor.py
homeassistant/components/alarmdecoder/const.py
homeassistant/components/alarmdecoder/sensor.py
homeassistant/components/alpha_vantage/sensor.py
homeassistant/components/amazon_polly/tts.py
homeassistant/components/amazon_polly/*
homeassistant/components/ambiclimate/climate.py
homeassistant/components/ambient_station/*
homeassistant/components/amcrest/*
@@ -113,9 +114,15 @@ omit =
homeassistant/components/bmw_connected_drive/lock.py
homeassistant/components/bmw_connected_drive/notify.py
homeassistant/components/bmw_connected_drive/sensor.py
homeassistant/components/bosch_shc/__init__.py
homeassistant/components/bosch_shc/binary_sensor.py
homeassistant/components/bosch_shc/const.py
homeassistant/components/bosch_shc/entity.py
homeassistant/components/bosch_shc/sensor.py
homeassistant/components/braviatv/__init__.py
homeassistant/components/braviatv/const.py
homeassistant/components/braviatv/media_player.py
homeassistant/components/braviatv/remote.py
homeassistant/components/broadlink/__init__.py
homeassistant/components/broadlink/const.py
homeassistant/components/broadlink/remote.py
@@ -145,10 +152,9 @@ omit =
homeassistant/components/clickatell/notify.py
homeassistant/components/clicksend/notify.py
homeassistant/components/clicksend_tts/notify.py
homeassistant/components/climacell/weather.py
homeassistant/components/cmus/media_player.py
homeassistant/components/co2signal/*
homeassistant/components/coinbase/*
homeassistant/components/coinbase/sensor.py
homeassistant/components/comed_hourly_pricing/sensor.py
homeassistant/components/comfoconnect/fan.py
homeassistant/components/concord232/alarm_control_panel.py
@@ -174,14 +180,13 @@ omit =
homeassistant/components/deluge/sensor.py
homeassistant/components/deluge/switch.py
homeassistant/components/denon/media_player.py
homeassistant/components/denonavr/__init__.py
homeassistant/components/denonavr/media_player.py
homeassistant/components/denonavr/receiver.py
homeassistant/components/deutsche_bahn/sensor.py
homeassistant/components/devolo_home_control/binary_sensor.py
homeassistant/components/devolo_home_control/climate.py
homeassistant/components/devolo_home_control/const.py
homeassistant/components/devolo_home_control/cover.py
homeassistant/components/devolo_home_control/devolo_device.py
homeassistant/components/devolo_home_control/devolo_multi_level_switch.py
homeassistant/components/devolo_home_control/light.py
homeassistant/components/devolo_home_control/sensor.py
@@ -216,6 +221,7 @@ omit =
homeassistant/components/ecobee/__init__.py
homeassistant/components/ecobee/binary_sensor.py
homeassistant/components/ecobee/climate.py
homeassistant/components/ecobee/humidifier.py
homeassistant/components/ecobee/notify.py
homeassistant/components/ecobee/sensor.py
homeassistant/components/ecobee/weather.py
@@ -237,6 +243,8 @@ omit =
homeassistant/components/emby/media_player.py
homeassistant/components/emoncms/sensor.py
homeassistant/components/emoncms_history/*
homeassistant/components/emonitor/__init__.py
homeassistant/components/emonitor/sensor.py
homeassistant/components/enigma2/media_player.py
homeassistant/components/enocean/__init__.py
homeassistant/components/enocean/binary_sensor.py
@@ -246,12 +254,14 @@ omit =
homeassistant/components/enocean/light.py
homeassistant/components/enocean/sensor.py
homeassistant/components/enocean/switch.py
homeassistant/components/enphase_envoy/__init__.py
homeassistant/components/enphase_envoy/sensor.py
homeassistant/components/entur_public_transport/*
homeassistant/components/environment_canada/*
homeassistant/components/envirophat/sensor.py
homeassistant/components/envisalink/*
homeassistant/components/ephember/climate.py
homeassistant/components/epson/__init__.py
homeassistant/components/epson/const.py
homeassistant/components/epson/media_player.py
homeassistant/components/epsonworkforce/sensor.py
@@ -264,6 +274,7 @@ omit =
homeassistant/components/esphome/entry_data.py
homeassistant/components/esphome/fan.py
homeassistant/components/esphome/light.py
homeassistant/components/esphome/number.py
homeassistant/components/esphome/sensor.py
homeassistant/components/esphome/switch.py
homeassistant/components/essent/sensor.py
@@ -271,7 +282,13 @@ omit =
homeassistant/components/eufy/*
homeassistant/components/everlights/light.py
homeassistant/components/evohome/*
homeassistant/components/ezviz/*
homeassistant/components/ezviz/__init__.py
homeassistant/components/ezviz/camera.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/const.py
homeassistant/components/ezviz/binary_sensor.py
homeassistant/components/ezviz/sensor.py
homeassistant/components/ezviz/switch.py
homeassistant/components/familyhub/camera.py
homeassistant/components/faa_delays/__init__.py
homeassistant/components/faa_delays/binary_sensor.py
@@ -294,7 +311,7 @@ omit =
homeassistant/components/firmata/pin.py
homeassistant/components/firmata/sensor.py
homeassistant/components/firmata/switch.py
homeassistant/components/fitbit/sensor.py
homeassistant/components/fitbit/*
homeassistant/components/fixer/sensor.py
homeassistant/components/fleetgo/device_tracker.py
homeassistant/components/flexit/climate.py
@@ -319,7 +336,14 @@ omit =
homeassistant/components/freebox/router.py
homeassistant/components/freebox/sensor.py
homeassistant/components/freebox/switch.py
homeassistant/components/fritz/__init__.py
homeassistant/components/fritz/binary_sensor.py
homeassistant/components/fritz/common.py
homeassistant/components/fritz/const.py
homeassistant/components/fritz/device_tracker.py
homeassistant/components/fritz/sensor.py
homeassistant/components/fritz/services.py
homeassistant/components/fritz/switch.py
homeassistant/components/fritzbox_callmonitor/__init__.py
homeassistant/components/fritzbox_callmonitor/const.py
homeassistant/components/fritzbox_callmonitor/base.py
@@ -329,13 +353,15 @@ omit =
homeassistant/components/frontier_silicon/media_player.py
homeassistant/components/futurenow/light.py
homeassistant/components/garadget/cover.py
homeassistant/components/garages_amsterdam/__init__.py
homeassistant/components/garages_amsterdam/binary_sensor.py
homeassistant/components/garages_amsterdam/sensor.py
homeassistant/components/garmin_connect/__init__.py
homeassistant/components/garmin_connect/const.py
homeassistant/components/garmin_connect/sensor.py
homeassistant/components/garmin_connect/alarm_util.py
homeassistant/components/gc100/*
homeassistant/components/geniushub/*
homeassistant/components/geizhals/sensor.py
homeassistant/components/github/sensor.py
homeassistant/components/gitlab_ci/sensor.py
homeassistant/components/gitter/sensor.py
@@ -346,9 +372,12 @@ omit =
homeassistant/components/goalfeed/*
homeassistant/components/goalzero/__init__.py
homeassistant/components/goalzero/binary_sensor.py
homeassistant/components/goalzero/switch.py
homeassistant/components/google/*
homeassistant/components/google_cloud/tts.py
homeassistant/components/google_maps/device_tracker.py
homeassistant/components/google_travel_time/__init__.py
homeassistant/components/google_travel_time/helpers.py
homeassistant/components/google_travel_time/sensor.py
homeassistant/components/gpmdp/media_player.py
homeassistant/components/gpsd/sensor.py
@@ -357,6 +386,7 @@ omit =
homeassistant/components/greenwave/light.py
homeassistant/components/group/notify.py
homeassistant/components/growatt_server/sensor.py
homeassistant/components/growatt_server/__init__.py
homeassistant/components/gstreamer/media_player.py
homeassistant/components/gtfs/sensor.py
homeassistant/components/guardian/__init__.py
@@ -421,6 +451,7 @@ omit =
homeassistant/components/hvv_departures/sensor.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hydrawise/*
homeassistant/components/ialarm/alarm_control_panel.py
homeassistant/components/iammeter/sensor.py
homeassistant/components/iaqualink/binary_sensor.py
homeassistant/components/iaqualink/climate.py
@@ -502,6 +533,10 @@ omit =
homeassistant/components/kodi/media_player.py
homeassistant/components/kodi/notify.py
homeassistant/components/konnected/*
homeassistant/components/kostal_plenticore/__init__.py
homeassistant/components/kostal_plenticore/const.py
homeassistant/components/kostal_plenticore/helper.py
homeassistant/components/kostal_plenticore/sensor.py
homeassistant/components/kwb/sensor.py
homeassistant/components/lacrosse/sensor.py
homeassistant/components/lametric/*
@@ -509,15 +544,12 @@ omit =
homeassistant/components/lastfm/sensor.py
homeassistant/components/launch_library/const.py
homeassistant/components/launch_library/sensor.py
homeassistant/components/lcn/__init__.py
homeassistant/components/lcn/binary_sensor.py
homeassistant/components/lcn/climate.py
homeassistant/components/lcn/const.py
homeassistant/components/lcn/cover.py
homeassistant/components/lcn/helpers.py
homeassistant/components/lcn/light.py
homeassistant/components/lcn/scene.py
homeassistant/components/lcn/schemas.py
homeassistant/components/lcn/sensor.py
homeassistant/components/lcn/services.py
homeassistant/components/lcn/switch.py
@@ -526,7 +558,6 @@ omit =
homeassistant/components/life360/*
homeassistant/components/lifx/*
homeassistant/components/lifx_cloud/scene.py
homeassistant/components/lifx_legacy/light.py
homeassistant/components/lightwave/*
homeassistant/components/limitlessled/light.py
homeassistant/components/linksys_smart/device_tracker.py
@@ -573,11 +604,17 @@ omit =
homeassistant/components/melcloud/water_heater.py
homeassistant/components/message_bird/notify.py
homeassistant/components/met/weather.py
homeassistant/components/met_eireann/__init__.py
homeassistant/components/met_eireann/weather.py
homeassistant/components/meteo_france/__init__.py
homeassistant/components/meteo_france/const.py
homeassistant/components/meteo_france/sensor.py
homeassistant/components/meteo_france/weather.py
homeassistant/components/meteoalarm/*
homeassistant/components/meteoclimatic/__init__.py
homeassistant/components/meteoclimatic/const.py
homeassistant/components/meteoclimatic/sensor.py
homeassistant/components/meteoclimatic/weather.py
homeassistant/components/metoffice/sensor.py
homeassistant/components/metoffice/weather.py
homeassistant/components/microsoft/tts.py
@@ -597,10 +634,6 @@ omit =
homeassistant/components/mjpeg/camera.py
homeassistant/components/mochad/*
homeassistant/components/modbus/climate.py
homeassistant/components/modbus/cover.py
homeassistant/components/modbus/modbus.py
homeassistant/components/modbus/switch.py
homeassistant/components/modbus/sensor.py
homeassistant/components/modem_callerid/sensor.py
homeassistant/components/motion_blinds/__init__.py
homeassistant/components/motion_blinds/const.py
@@ -612,6 +645,8 @@ omit =
homeassistant/components/msteams/notify.py
homeassistant/components/mullvad/__init__.py
homeassistant/components/mullvad/binary_sensor.py
homeassistant/components/mutesync/__init__.py
homeassistant/components/mutesync/binary_sensor.py
homeassistant/components/nest/const.py
homeassistant/components/mvglive/sensor.py
homeassistant/components/mychevy/*
@@ -634,7 +669,7 @@ omit =
homeassistant/components/mystrom/binary_sensor.py
homeassistant/components/mystrom/light.py
homeassistant/components/mystrom/switch.py
homeassistant/components/n26/*
homeassistant/components/myq/__init__.py
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/light.py
homeassistant/components/neato/__init__.py
@@ -656,6 +691,7 @@ omit =
homeassistant/components/niko_home_control/light.py
homeassistant/components/nilu/air_quality.py
homeassistant/components/nissan_leaf/*
homeassistant/components/nmap_tracker/__init__.py
homeassistant/components/nmap_tracker/device_tracker.py
homeassistant/components/nmbs/sensor.py
homeassistant/components/notion/__init__.py
@@ -667,6 +703,7 @@ omit =
homeassistant/components/nsw_fuel_station/sensor.py
homeassistant/components/nuki/__init__.py
homeassistant/components/nuki/const.py
homeassistant/components/nuki/binary_sensor.py
homeassistant/components/nuki/lock.py
homeassistant/components/nut/sensor.py
homeassistant/components/nx584/alarm_control_panel.py
@@ -680,6 +717,7 @@ omit =
homeassistant/components/omnilogic/__init__.py
homeassistant/components/omnilogic/common.py
homeassistant/components/omnilogic/sensor.py
homeassistant/components/omnilogic/switch.py
homeassistant/components/ondilo_ico/__init__.py
homeassistant/components/ondilo_ico/api.py
homeassistant/components/ondilo_ico/const.py
@@ -733,6 +771,7 @@ omit =
homeassistant/components/pcal9535a/*
homeassistant/components/pencom/switch.py
homeassistant/components/philips_js/__init__.py
homeassistant/components/philips_js/light.py
homeassistant/components/philips_js/media_player.py
homeassistant/components/philips_js/remote.py
homeassistant/components/pi_hole/sensor.py
@@ -759,6 +798,7 @@ omit =
homeassistant/components/poolsense/__init__.py
homeassistant/components/poolsense/sensor.py
homeassistant/components/poolsense/binary_sensor.py
homeassistant/components/powerwall/__init__.py
homeassistant/components/proliphix/climate.py
homeassistant/components/progettihwsw/__init__.py
homeassistant/components/progettihwsw/binary_sensor.py
@@ -807,9 +847,15 @@ omit =
homeassistant/components/rest/switch.py
homeassistant/components/ring/camera.py
homeassistant/components/ripple/sensor.py
homeassistant/components/rituals_perfume_genie/binary_sensor.py
homeassistant/components/rituals_perfume_genie/entity.py
homeassistant/components/rituals_perfume_genie/number.py
homeassistant/components/rituals_perfume_genie/select.py
homeassistant/components/rituals_perfume_genie/sensor.py
homeassistant/components/rituals_perfume_genie/switch.py
homeassistant/components/rituals_perfume_genie/__init__.py
homeassistant/components/rocketchat/notify.py
homeassistant/components/roomba/__init__.py
homeassistant/components/roomba/binary_sensor.py
homeassistant/components/roomba/braava.py
homeassistant/components/roomba/irobot_base.py
@@ -834,6 +880,7 @@ omit =
homeassistant/components/russound_rnet/media_player.py
homeassistant/components/sabnzbd/*
homeassistant/components/saj/sensor.py
homeassistant/components/samsungtv/bridge.py
homeassistant/components/satel_integra/*
homeassistant/components/schluter/*
homeassistant/components/scrape/sensor.py
@@ -841,6 +888,7 @@ omit =
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/sensor.py
homeassistant/components/screenlogic/services.py
homeassistant/components/screenlogic/switch.py
homeassistant/components/scsgate/*
homeassistant/components/scsgate/cover.py
@@ -876,8 +924,16 @@ omit =
homeassistant/components/skybeacon/sensor.py
homeassistant/components/skybell/*
homeassistant/components/slack/notify.py
homeassistant/components/sia/__init__.py
homeassistant/components/sia/alarm_control_panel.py
homeassistant/components/sia/binary_sensor.py
homeassistant/components/sia/const.py
homeassistant/components/sia/hub.py
homeassistant/components/sia/utils.py
homeassistant/components/sia/sia_entity_base.py
homeassistant/components/sinch/*
homeassistant/components/slide/*
homeassistant/components/sma/__init__.py
homeassistant/components/sma/sensor.py
homeassistant/components/smappee/__init__.py
homeassistant/components/smappee/api.py
@@ -893,8 +949,8 @@ omit =
homeassistant/components/snapcast/*
homeassistant/components/snmp/*
homeassistant/components/sochain/sensor.py
homeassistant/components/socialblade/sensor.py
homeassistant/components/solaredge/__init__.py
homeassistant/components/solaredge/coordinator.py
homeassistant/components/solaredge/sensor.py
homeassistant/components/solaredge_local/sensor.py
homeassistant/components/solarlog/*
@@ -902,7 +958,12 @@ omit =
homeassistant/components/soma/__init__.py
homeassistant/components/soma/cover.py
homeassistant/components/soma/sensor.py
homeassistant/components/somfy/*
homeassistant/components/somfy/__init__.py
homeassistant/components/somfy/api.py
homeassistant/components/somfy/climate.py
homeassistant/components/somfy/cover.py
homeassistant/components/somfy/sensor.py
homeassistant/components/somfy/switch.py
homeassistant/components/somfy_mylink/__init__.py
homeassistant/components/somfy_mylink/cover.py
homeassistant/components/sonos/*
@@ -911,13 +972,13 @@ omit =
homeassistant/components/speedtestdotnet/*
homeassistant/components/spider/*
homeassistant/components/splunk/*
homeassistant/components/spotcrime/sensor.py
homeassistant/components/spotify/__init__.py
homeassistant/components/spotify/media_player.py
homeassistant/components/spotify/system_health.py
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/ssdp/util.py
homeassistant/components/starline/*
homeassistant/components/starlingbank/sensor.py
homeassistant/components/steam_online/sensor.py
@@ -933,8 +994,13 @@ omit =
homeassistant/components/swiss_public_transport/sensor.py
homeassistant/components/swisscom/device_tracker.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switcher_kis/sensor.py
homeassistant/components/switcher_kis/switch.py
homeassistant/components/switchmate/switch.py
homeassistant/components/syncthing/__init__.py
homeassistant/components/syncthing/sensor.py
homeassistant/components/syncthru/__init__.py
homeassistant/components/syncthru/binary_sensor.py
homeassistant/components/syncthru/sensor.py
homeassistant/components/synology_chat/notify.py
homeassistant/components/synology_dsm/__init__.py
@@ -944,6 +1010,10 @@ omit =
homeassistant/components/synology_dsm/switch.py
homeassistant/components/synology_srm/device_tracker.py
homeassistant/components/syslog/notify.py
homeassistant/components/system_bridge/__init__.py
homeassistant/components/system_bridge/const.py
homeassistant/components/system_bridge/binary_sensor.py
homeassistant/components/system_bridge/sensor.py
homeassistant/components/systemmonitor/sensor.py
homeassistant/components/tado/*
homeassistant/components/tado/device_tracker.py
@@ -1004,7 +1074,6 @@ omit =
homeassistant/components/toon/switch.py
homeassistant/components/torque/sensor.py
homeassistant/components/totalconnect/__init__.py
homeassistant/components/totalconnect/alarm_control_panel.py
homeassistant/components/totalconnect/binary_sensor.py
homeassistant/components/totalconnect/const.py
homeassistant/components/touchline/climate.py
@@ -1097,6 +1166,8 @@ omit =
homeassistant/components/waterfurnace/*
homeassistant/components/watson_iot/*
homeassistant/components/watson_tts/tts.py
homeassistant/components/waze_travel_time/__init__.py
homeassistant/components/waze_travel_time/helpers.py
homeassistant/components/waze_travel_time/sensor.py
homeassistant/components/webostv/*
homeassistant/components/whois/sensor.py
@@ -1145,6 +1216,7 @@ omit =
homeassistant/components/xmpp/notify.py
homeassistant/components/xs1/*
homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yamaha_musiccast/__init__.py
homeassistant/components/yamaha_musiccast/media_player.py
homeassistant/components/yandex_transport/*
homeassistant/components/yeelightsunflower/light.py
@@ -1175,7 +1247,6 @@ omit =
homeassistant/components/supla/*
homeassistant/components/zwave/util.py
homeassistant/components/zwave_js/discovery.py
homeassistant/components/zwave_js/light.py
homeassistant/components/zwave_js/sensor.py
[report]
+3 -8
View File
@@ -1,7 +1,5 @@
name: Report an issue with Home Assistant Core
description: Report an issue with Home Assistant Core.
title: ""
issue_body: true
body:
- type: markdown
attributes:
@@ -85,13 +83,10 @@ body:
label: Anything in the logs that might be useful for us?
description: For example, error message, or stack traces.
render: txt
- type: markdown
- type: textarea
attributes:
value: |
## Additional information
- type: markdown
attributes:
value: >
label: Additional information
description: >
If you have any additional information for us, use the field below.
Please note, you can attach screenshots or screen recordings here, by
dragging and dropping files in the field below.
-13
View File
@@ -36,19 +36,6 @@
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Example entry for `configuration.yaml`:
<!--
Supplying a configuration snippet, makes it easier for a maintainer to test
your PR. Furthermore, for new integrations, it gives an impression of how
the configuration would look like.
Note: Remove this section if this PR does not have an example entry.
-->
```yaml
# Example configuration.yaml
```
## Additional information
<!--
Details are important, and help maintainers processing your PR.
+315
View File
@@ -0,0 +1,315 @@
name: Build images
# yamllint disable-line rule:truthy
on:
workflow_dispatch:
release:
types: ["published"]
schedule:
- cron: "0 2 * * *"
env:
BUILD_TYPE: core
DEFAULT_PYTHON: 3.8
jobs:
init:
name: Initialize build
runs-on: ubuntu-latest
outputs:
architectures: ${{ steps.info.outputs.architectures }}
version: ${{ steps.version.outputs.version }}
channel: ${{ steps.version.outputs.channel }}
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Get information
id: info
uses: home-assistant/actions/helpers/info@master
- name: Get version
id: version
uses: home-assistant/actions/helpers/version@master
with:
type: ${{ env.BUILD_TYPE }}
- name: Verify version
uses: home-assistant/actions/helpers/verify-version@master
with:
ignore-dev: true
build_python:
name: Build PyPi package
needs: init
runs-on: ubuntu-latest
if: needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Build package
shell: bash
run: |
pip install twine wheel
python setup.py sdist bdist_wheel
- name: Upload package
shell: bash
run: |
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"
twine upload dist/* --skip-existing
build_base:
name: Build ${{ matrix.arch }} base core image
needs: init
runs-on: ubuntu-latest
strategy:
matrix:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Adjust nightly version
if: needs.init.outputs.channel == 'dev'
shell: bash
run: |
python3 -m pip install packaging
python3 -m pip install .
python3 script/version_bump.py nightly
version="$(python setup.py -V)"
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1.10.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.06.2
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 }}
build_machine:
name: Build ${{ matrix.machine }} machine core image
needs: ["init", "build_base"]
runs-on: ubuntu-latest
strategy:
matrix:
machine:
- generic-x86-64
- intel-nuc
- odroid-c2
- odroid-c4
- odroid-n2
- odroid-xu
- qemuarm
- qemuarm-64
- qemux86
- qemux86-64
- raspberrypi
- raspberrypi2
- raspberrypi3
- raspberrypi3-64
- raspberrypi4
- raspberrypi4-64
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1.10.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2021.06.2
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 }}"
publish_ha:
name: Publish version files
needs: ["init", "build_machine"]
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
with:
name: ${{ secrets.GIT_NAME }}
email: ${{ secrets.GIT_EMAIL }}
token: ${{ secrets.GIT_TOKEN }}
- name: Update version file
uses: home-assistant/actions/helpers/version-push@master
with:
key: "homeassistant[]"
key-description: "Home Assistant Core"
version: ${{ needs.init.outputs.version }}
channel: ${{ needs.init.outputs.channel }}
- name: Update version file (stable -> beta)
if: needs.init.outputs.channel == 'stable'
uses: home-assistant/actions/helpers/version-push@master
with:
key: "homeassistant[]"
key-description: "Home Assistant Core"
version: ${{ needs.init.outputs.version }}
channel: beta
publish_container:
name: Publish meta container
needs: ["init", "build_base"]
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Login to DockerHub
uses: docker/login-action@v1.10.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1.10.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Meta Image
shell: bash
run: |
bash <(curl https://getvcn.codenotary.com -L)
export DOCKER_CLI_EXPERIMENTAL=enabled
function create_manifest() {
local docker_reg=${1}
local tag_l=${2}
local tag_r=${3}
docker manifest create "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/amd64-homeassistant:${tag_r}" \
"${docker_reg}/i386-homeassistant:${tag_r}" \
"${docker_reg}/armhf-homeassistant:${tag_r}" \
"${docker_reg}/armv7-homeassistant:${tag_r}" \
"${docker_reg}/aarch64-homeassistant:${tag_r}"
docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/amd64-homeassistant:${tag_r}" \
--os linux --arch amd64
docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/i386-homeassistant:${tag_r}" \
--os linux --arch 386
docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/armhf-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v6
docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/armv7-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v7
docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/aarch64-homeassistant:${tag_r}" \
--os linux --arch arm64 --variant=v8
docker manifest push --purge "${docker_reg}/home-assistant:${tag_l}"
}
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
echo "Invalid signature!"
exit 1
fi
}
for docker_reg in "homeassistant" "ghcr.io/home-assistant"; do
docker pull "${docker_reg}/amd64-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/i386-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/armhf-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/armv7-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/aarch64-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/amd64-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/i386-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/armhf-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/armv7-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/aarch64-homeassistant:${{ needs.init.outputs.version }}"
# Create version tag
create_manifest "${docker_reg}" "${{ needs.init.outputs.version }}" "${{ needs.init.outputs.version }}"
# Create general tags
if [[ "${{ needs.init.outputs.version }}" =~ d ]]; then
create_manifest "${docker_reg}" "dev" "${{ needs.init.outputs.version }}"
elif [[ "${{ needs.init.outputs.version }}" =~ b ]]; then
create_manifest "${docker_reg}" "beta" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "rc" "${{ needs.init.outputs.version }}"
else
create_manifest "${docker_reg}" "stable" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "latest" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "beta" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "rc" "${{ needs.init.outputs.version }}"
# Create series version tag (e.g. 2021.6)
v="${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "${v%.*}" "${{ needs.init.outputs.version }}"
fi
done
+61 -60
View File
@@ -10,9 +10,10 @@ on:
pull_request: ~
env:
CACHE_VERSION: 1
CACHE_VERSION: 2
DEFAULT_PYTHON: 3.8
PRE_COMMIT_CACHE: ~/.cache/pre-commit
SQLALCHEMY_WARN_20: 1
jobs:
# Separate job to pre-populate the base dependency cache
@@ -25,10 +26,10 @@ jobs:
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v2.2.1
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Generate partial Python venv restore key
@@ -40,7 +41,7 @@ jobs:
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: >-
@@ -64,7 +65,7 @@ jobs:
hashFiles('.pre-commit-config.yaml') }}"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >-
@@ -83,15 +84,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -103,7 +104,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -123,15 +124,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -143,7 +144,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -163,15 +164,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -183,7 +184,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -206,7 +207,7 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
@@ -225,15 +226,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -245,7 +246,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -268,15 +269,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -288,7 +289,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -311,15 +312,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -331,7 +332,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -351,15 +352,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -371,7 +372,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -394,15 +395,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -414,7 +415,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -435,7 +436,7 @@ jobs:
# needs: prepare-base
# steps:
# - name: Check out code from GitHub
# uses: actions/checkout@v2
# uses: actions/checkout@v2.3.4
# - name: Run ShellCheck
# uses: ludeeus/action-shellcheck@0.3.0
@@ -445,15 +446,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -465,7 +466,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -492,10 +493,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -516,15 +517,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.1
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.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -550,7 +551,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
@@ -560,7 +561,7 @@ jobs:
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: >-
@@ -594,10 +595,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -625,10 +626,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -659,10 +660,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -699,7 +700,7 @@ jobs:
-p no:sugar \
tests
- name: Upload coverage artifact
uses: actions/upload-artifact@v2.2.2
uses: actions/upload-artifact@v2.2.4
with:
name: coverage-${{ matrix.python-version }}-group${{ matrix.group }}
path: .coverage
@@ -717,10 +718,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2
uses: actions/checkout@v2.3.4
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.4
uses: actions/cache@v2.1.6
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -739,4 +740,4 @@ jobs:
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1.3.1
uses: codecov/codecov-action@v1.5.2
+3 -3
View File
@@ -16,7 +16,7 @@ jobs:
# - No PRs marked as no-stale
# - No issues marked as no-stale or help-wanted
- name: 90 days stale issues & PRs policy
uses: actions/stale@v3.0.18
uses: actions/stale@v3.0.19
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
@@ -53,7 +53,7 @@ jobs:
# - No PRs marked as no-stale or new-integrations
# - No issues (-1)
- name: 30 days stale PRs policy
uses: actions/stale@v3.0.18
uses: actions/stale@v3.0.19
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
@@ -78,7 +78,7 @@ jobs:
# - No Issues marked as no-stale or help-wanted
# - No PRs (-1)
- name: Needs more information stale issues policy
uses: actions/stale@v3.0.18
uses: actions/stale@v3.0.19
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
only-labels: "needs-more-information"
+64
View File
@@ -0,0 +1,64 @@
name: Translations
# yamllint disable-line rule:truthy
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
push:
branches:
- dev
paths:
- "**strings.json"
env:
DEFAULT_PYTHON: 3.8
jobs:
upload:
name: Upload
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Upload Translations
run: |
export LOKALISE_TOKEN="${{ secrets.LOKALISE_TOKEN }}"
python3 -m script.translations upload
download:
name: Download
needs: upload
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Download Translations
run: |
export LOKALISE_TOKEN="${{ secrets.LOKALISE_TOKEN }}"
python3 -m script.translations download
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
with:
name: GitHub Action
email: github-action@users.noreply.github.com
- name: Update translation
run: |
git add homeassistant
git commit -am "[ci skip] Translation update"
git push
+166
View File
@@ -0,0 +1,166 @@
name: Build wheels
# yamllint disable-line rule:truthy
on:
workflow_dispatch:
schedule:
- cron: "0 4 * * *"
push:
branches:
- dev
- rc
paths:
- "requirements.txt"
- "requirements_all.txt"
jobs:
init:
name: Initialize wheels builder
runs-on: ubuntu-latest
outputs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Get information
id: info
uses: home-assistant/actions/helpers/info@master
- name: Create requirements_diff file
run: |
if [[ ${{ github.event_name }} =~ (schedule|workflow_dispatch) ]]; then
touch requirements_diff.txt
else
curl -s -o requirements_diff.txt https://raw.githubusercontent.com/home-assistant/core/master/requirements.txt
fi
- name: Write env-file
run: |
(
echo "GRPC_BUILD_WITH_BORING_SSL_ASM=false"
echo "GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true"
echo "GRPC_PYTHON_BUILD_WITH_CYTHON=true"
echo "GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY=true"
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v2.2.4
with:
name: env_file
path: ./.env_file
- name: Upload requirements_diff
uses: actions/upload-artifact@v2.2.4
with:
name: requirements_diff
path: ./requirements_diff.txt
core:
name: Build wheels with ${{ matrix.tag }} (${{ matrix.arch }}) for core
needs: init
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
tag:
- "3.9-alpine3.13"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Download env_file
uses: actions/download-artifact@v2
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v2
with:
name: requirements_diff
- name: Build wheels
uses: home-assistant/wheels@2021.06.0
with:
tag: ${{ matrix.tag }}
arch: ${{ matrix.arch }}
wheels-host: wheels.hass.io
wheels-key: ${{ secrets.WHEELS_KEY }}
wheels-user: wheels
env-file: true
apk: "build-base;cmake;git;linux-headers;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev"
pip: "Cython;numpy"
skip-binary: aiohttp
constraints: "homeassistant/package_constraints.txt"
requirements-diff: 'requirements_diff.txt'
requirements: "requirements.txt"
integrations:
name: Build wheels with ${{ matrix.tag }} (${{ matrix.arch }}) for integrations
needs: init
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
tag:
- "3.9-alpine3.13"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
- name: Download env_file
uses: actions/download-artifact@v2
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v2
with:
name: requirements_diff
- name: Uncomment packages
run: |
requirement_files="requirements_all.txt requirements_diff.txt"
for requirement_file in ${requirement_files}; do
sed -i "s|# pybluez|pybluez|g" ${requirement_file}
sed -i "s|# bluepy|bluepy|g" ${requirement_file}
sed -i "s|# beacontools|beacontools|g" ${requirement_file}
sed -i "s|# RPi.GPIO|RPi.GPIO|g" ${requirement_file}
sed -i "s|# raspihats|raspihats|g" ${requirement_file}
sed -i "s|# rpi-rf|rpi-rf|g" ${requirement_file}
sed -i "s|# blinkt|blinkt|g" ${requirement_file}
sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file}
sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file}
sed -i "s|# evdev|evdev|g" ${requirement_file}
sed -i "s|# smbus-cffi|smbus-cffi|g" ${requirement_file}
sed -i "s|# i2csense|i2csense|g" ${requirement_file}
sed -i "s|# python-eq3bt|python-eq3bt|g" ${requirement_file}
sed -i "s|# pycups|pycups|g" ${requirement_file}
sed -i "s|# homekit|homekit|g" ${requirement_file}
sed -i "s|# decora_wifi|decora_wifi|g" ${requirement_file}
sed -i "s|# decora|decora|g" ${requirement_file}
sed -i "s|# avion|avion|g" ${requirement_file}
sed -i "s|# PySwitchbot|PySwitchbot|g" ${requirement_file}
sed -i "s|# pySwitchmate|pySwitchmate|g" ${requirement_file}
sed -i "s|# face_recognition|face_recognition|g" ${requirement_file}
sed -i "s|# bme680|bme680|g" ${requirement_file}
sed -i "s|# python-gammu|python-gammu|g" ${requirement_file}
done
- name: Build wheels
uses: home-assistant/wheels@2021.06.0
with:
tag: ${{ matrix.tag }}
arch: ${{ matrix.arch }}
wheels-host: wheels.hass.io
wheels-key: ${{ secrets.WHEELS_KEY }}
wheels-user: wheels
env-file: true
apk: "build-base;cmake;git;linux-headers;libexecinfo-dev;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;autoconf;automake;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev"
pip: "Cython;numpy;scikit-build"
skip-binary: aiohttp
constraints: "homeassistant/package_constraints.txt"
requirements-diff: 'requirements_diff.txt'
requirements: "requirements_all.txt"
+9 -8
View File
@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.11.0
rev: v2.16.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/psf/black
rev: 20.8b1
rev: 21.6b0
hooks:
- id: black
args:
@@ -17,13 +17,13 @@ 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
- --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
- --skip="./.*,*.csv,*.json"
- --quiet-level=2
exclude_types: [csv, json]
exclude: ^tests/fixtures/
- repo: https://gitlab.com/pycqa/flake8
rev: 3.9.0
rev: 3.9.2
hooks:
- id: flake8
additional_dependencies:
@@ -31,8 +31,9 @@ repos:
- pyflakes==2.3.1
- flake8-docstrings==1.6.0
- pydocstyle==6.0.0
- flake8-comprehensions==3.4.0
- flake8-comprehensions==3.5.0
- flake8-noqa==1.1.0
- mccabe==0.6.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.7.0
@@ -44,7 +45,7 @@ repos:
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/isort
rev: 5.7.0
rev: 5.8.0
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -60,7 +61,7 @@ repos:
- --branch=master
- --branch=rc
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.24.2
rev: v1.26.1
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
@@ -69,7 +70,7 @@ repos:
- id: prettier
stages: [manual]
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.3.2
rev: v0.3.3
hooks:
# Run `python-typing-update` hook manually from time to time
# to update python typing syntax.
+89
View File
@@ -0,0 +1,89 @@
# Used by hassfest for generating mypy.ini.
# If component is fully covered with type annotations, please add it here
# to enable strict mypy checks.
homeassistant.components
homeassistant.components.acer_projector.*
homeassistant.components.accuweather.*
homeassistant.components.actiontec.*
homeassistant.components.aftership.*
homeassistant.components.air_quality.*
homeassistant.components.airly.*
homeassistant.components.aladdin_connect.*
homeassistant.components.alarm_control_panel.*
homeassistant.components.amazon_polly.*
homeassistant.components.ambee.*
homeassistant.components.ampio.*
homeassistant.components.automation.*
homeassistant.components.binary_sensor.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bond.*
homeassistant.components.brother.*
homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.dnsip.*
homeassistant.components.dsmr.*
homeassistant.components.dunehd.*
homeassistant.components.elgato.*
homeassistant.components.fitbit.*
homeassistant.components.forecast_solar.*
homeassistant.components.fritzbox.*
homeassistant.components.frontend.*
homeassistant.components.geo_location.*
homeassistant.components.gios.*
homeassistant.components.group.*
homeassistant.components.history.*
homeassistant.components.homeassistant.triggers.event
homeassistant.components.http.*
homeassistant.components.huawei_lte.*
homeassistant.components.hyperion.*
homeassistant.components.image_processing.*
homeassistant.components.integration.*
homeassistant.components.knx.*
homeassistant.components.kraken.*
homeassistant.components.light.*
homeassistant.components.local_ip.*
homeassistant.components.lock.*
homeassistant.components.mailbox.*
homeassistant.components.media_player.*
homeassistant.components.mysensors.*
homeassistant.components.nam.*
homeassistant.components.network.*
homeassistant.components.no_ip.*
homeassistant.components.notify.*
homeassistant.components.number.*
homeassistant.components.onewire.*
homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.proximity.*
homeassistant.components.recorder.purge
homeassistant.components.recorder.repack
homeassistant.components.recorder.statistics
homeassistant.components.remote.*
homeassistant.components.scene.*
homeassistant.components.select.*
homeassistant.components.sensor.*
homeassistant.components.slack.*
homeassistant.components.sonos.media_player
homeassistant.components.ssdp.*
homeassistant.components.stream.*
homeassistant.components.sun.*
homeassistant.components.switch.*
homeassistant.components.synology_dsm.*
homeassistant.components.systemmonitor.*
homeassistant.components.tcp.*
homeassistant.components.tts.*
homeassistant.components.upcloud.*
homeassistant.components.uptime.*
homeassistant.components.vacuum.*
homeassistant.components.water_heater.*
homeassistant.components.weather.*
homeassistant.components.websocket_api.*
homeassistant.components.zodiac.*
homeassistant.components.zeroconf.*
homeassistant.components.zone.*
homeassistant.components.zwave_js.*
+5 -8
View File
@@ -9,11 +9,8 @@
"type": "python",
"request": "launch",
"module": "homeassistant",
"args": [
"--debug",
"-c",
"config"
]
"justMyCode": false,
"args": ["--debug", "-c", "config"]
},
{
// Debug by attaching to local Home Asistant server using Remote Python Debugger.
@@ -28,7 +25,7 @@
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
],
]
},
{
// Debug by attaching to remote Home Asistant server using Remote Python Debugger.
@@ -43,7 +40,7 @@
"localRoot": "${workspaceFolder}",
"remoteRoot": "/usr/src/homeassistant"
}
],
]
}
]
}
}
+46 -19
View File
@@ -33,9 +33,9 @@ homeassistant/components/alarmdecoder/* @ajschmidt8
homeassistant/components/alexa/* @home-assistant/cloud @ochlocracy
homeassistant/components/almond/* @gcampax @balloob
homeassistant/components/alpha_vantage/* @fabaff
homeassistant/components/ambee/* @frenck
homeassistant/components/ambiclimate/* @danielhiversen
homeassistant/components/ambient_station/* @bachya
homeassistant/components/amcrest/* @pnbruckner
homeassistant/components/analytics/* @home-assistant/core @ludeeus
homeassistant/components/androidtv/* @JeffLIrion
homeassistant/components/apache_kafka/* @bachya
@@ -65,19 +65,20 @@ homeassistant/components/azure_service_bus/* @hfurubotten
homeassistant/components/beewi_smartclim/* @alemuro
homeassistant/components/bitcoin/* @fabaff
homeassistant/components/bizkaibus/* @UgaitzEtxebarria
homeassistant/components/blebox/* @gadgetmobile
homeassistant/components/blebox/* @bbx-a @bbx-jp
homeassistant/components/blink/* @fronzbot
homeassistant/components/blueprint/* @home-assistant/core
homeassistant/components/bmp280/* @belidzs
homeassistant/components/bmw_connected_drive/* @gerard33 @rikroe
homeassistant/components/bond/* @prystupa
homeassistant/components/braviatv/* @bieniu
homeassistant/components/bosch_shc/* @tschamm
homeassistant/components/braviatv/* @bieniu @Drafteed
homeassistant/components/broadlink/* @danielhiversen @felipediel
homeassistant/components/brother/* @bieniu
homeassistant/components/brunt/* @eavanvalkenburg
homeassistant/components/bsblan/* @liudger
homeassistant/components/bt_smarthub/* @jxwolstenholme
homeassistant/components/buienradar/* @mjj4791 @ties
homeassistant/components/buienradar/* @mjj4791 @ties @Robbie1221
homeassistant/components/cast/* @emontnemery
homeassistant/components/cert_expiry/* @Cereal2nd @jjlawren
homeassistant/components/circuit/* @braam
@@ -87,8 +88,10 @@ homeassistant/components/cisco_webex_teams/* @fbradyirl
homeassistant/components/climacell/* @raman325
homeassistant/components/cloud/* @home-assistant/cloud
homeassistant/components/cloudflare/* @ludeeus @ctalkington
homeassistant/components/coinbase/* @tombrien
homeassistant/components/color_extractor/* @GenericStudent
homeassistant/components/comfoconnect/* @michaelarnauts
homeassistant/components/compensation/* @Petro31
homeassistant/components/config/* @home-assistant/core
homeassistant/components/configurator/* @home-assistant/core
homeassistant/components/control4/* @lawtancool
@@ -111,11 +114,12 @@ homeassistant/components/device_automation/* @home-assistant/core
homeassistant/components/devolo_home_control/* @2Fake @Shutgun
homeassistant/components/dexcom/* @gagebenne
homeassistant/components/dhcp/* @bdraco
homeassistant/components/dht/* @thegardenmonkey
homeassistant/components/digital_ocean/* @fabaff
homeassistant/components/directv/* @ctalkington
homeassistant/components/discogs/* @thibmaek
homeassistant/components/doorbird/* @oblogic7 @bdraco
homeassistant/components/dsmr/* @Robbie1221
homeassistant/components/dsmr/* @Robbie1221 @frenck
homeassistant/components/dsmr_reader/* @depl0y
homeassistant/components/dunehd/* @bieniu
homeassistant/components/dwd_weather_warnings/* @runningman84 @stephan192 @Hummel95
@@ -133,6 +137,7 @@ homeassistant/components/elkm1/* @gwww @bdraco
homeassistant/components/elv/* @majuss
homeassistant/components/emby/* @mezz64
homeassistant/components/emoncms/* @borpin
homeassistant/components/emonitor/* @bdraco
homeassistant/components/emulated_kasa/* @kbickar
homeassistant/components/enigma2/* @fbradyirl
homeassistant/components/enocean/* @bdurrer
@@ -143,10 +148,10 @@ homeassistant/components/ephember/* @ttroy50
homeassistant/components/epson/* @pszafer
homeassistant/components/epsonworkforce/* @ThaStealth
homeassistant/components/eq3btsmart/* @rytilahti
homeassistant/components/esphome/* @OttoWinter
homeassistant/components/esphome/* @OttoWinter @jesserockz
homeassistant/components/essent/* @TheLastProject
homeassistant/components/evohome/* @zxdavb
homeassistant/components/ezviz/* @baqs
homeassistant/components/ezviz/* @RenierM26 @baqs
homeassistant/components/faa_delays/* @ntilley905
homeassistant/components/fastdotcom/* @rohankapoorcom
homeassistant/components/file/* @fabaff
@@ -159,15 +164,21 @@ homeassistant/components/flo/* @dmulcahey
homeassistant/components/flock/* @fabaff
homeassistant/components/flume/* @ChrisMandich @bdraco
homeassistant/components/flunearyou/* @bachya
homeassistant/components/forecast_solar/* @klaasnicolaas @frenck
homeassistant/components/forked_daapd/* @uvjustin
homeassistant/components/fortios/* @kimfrellsen
homeassistant/components/foscam/* @skgsergio
homeassistant/components/freebox/* @hacf-fr @Quentame
homeassistant/components/freedompro/* @stefano055415
homeassistant/components/fritz/* @mammuth @AaronDavidSchneider @chemelli74
homeassistant/components/fritzbox/* @mib1185
homeassistant/components/fronius/* @nielstron
homeassistant/components/frontend/* @home-assistant/frontend
homeassistant/components/garages_amsterdam/* @klaasnicolaas
homeassistant/components/garmin_connect/* @cyberjunky
homeassistant/components/gdacs/* @exxamalte
homeassistant/components/geniushub/* @zxdavb
homeassistant/components/geo_json_events/* @exxamalte
homeassistant/components/geo_rss_events/* @exxamalte
homeassistant/components/geonetnz_quakes/* @exxamalte
homeassistant/components/geonetnz_volcano/* @exxamalte
@@ -175,14 +186,14 @@ homeassistant/components/gios/* @bieniu
homeassistant/components/gitter/* @fabaff
homeassistant/components/glances/* @fabaff @engrbm87
homeassistant/components/goalzero/* @tkdrob
homeassistant/components/gogogate2/* @vangorra
homeassistant/components/gogogate2/* @vangorra @bdraco
homeassistant/components/google_assistant/* @home-assistant/cloud
homeassistant/components/google_cloud/* @lufton
homeassistant/components/gpsd/* @fabaff
homeassistant/components/gree/* @cmroche
homeassistant/components/greeneye_monitor/* @jkeljo
homeassistant/components/group/* @home-assistant/core
homeassistant/components/growatt_server/* @indykoning
homeassistant/components/growatt_server/* @indykoning @muppet3000
homeassistant/components/guardian/* @bachya
homeassistant/components/habitica/* @ASMfreaK @leikoilja
homeassistant/components/harmony/* @ehendrix23 @bramkragten @bdraco @mkeesey
@@ -200,7 +211,7 @@ homeassistant/components/home_connect/* @DavidMStraub
homeassistant/components/home_plus_control/* @chemaaa
homeassistant/components/homeassistant/* @home-assistant/core
homeassistant/components/homekit/* @bdraco
homeassistant/components/homekit_controller/* @Jc2k
homeassistant/components/homekit_controller/* @Jc2k @bdraco
homeassistant/components/homematic/* @pvizeli @danielperna84
homeassistant/components/http/* @home-assistant/core
homeassistant/components/huawei_lte/* @scop @fphammerle
@@ -212,6 +223,7 @@ homeassistant/components/hunterdouglas_powerview/* @bdraco
homeassistant/components/hvv_departures/* @vigonotion
homeassistant/components/hydrawise/* @ptcryan
homeassistant/components/hyperion/* @dermotduffy
homeassistant/components/ialarm/* @RyuzakiKK
homeassistant/components/iammeter/* @lewei50
homeassistant/components/iaqualink/* @flz
homeassistant/components/icloud/* @Quentame @nzapponi
@@ -248,10 +260,13 @@ homeassistant/components/kmtronic/* @dgomes
homeassistant/components/knx/* @Julius2342 @farmio @marvin-w
homeassistant/components/kodi/* @OnFreund @cgtobi
homeassistant/components/konnected/* @heythisisnate @kit-klein
homeassistant/components/kostal_plenticore/* @stegm
homeassistant/components/kraken/* @eifinger
homeassistant/components/kulersky/* @emlove
homeassistant/components/lametric/* @robbiet480
homeassistant/components/launch_library/* @ludeeus
homeassistant/components/lcn/* @alengwenus
homeassistant/components/lg_netcast/* @Drafteed
homeassistant/components/life360/* @pnbruckner
homeassistant/components/linux_battery/* @fabaff
homeassistant/components/litejet/* @joncar
@@ -276,8 +291,10 @@ homeassistant/components/mediaroom/* @dgomes
homeassistant/components/melcloud/* @vilppuvuorinen
homeassistant/components/melissa/* @kennedyshead
homeassistant/components/met/* @danielhiversen @thimic
homeassistant/components/met_eireann/* @DylanGore
homeassistant/components/meteo_france/* @hacf-fr @oncleben31 @Quentame
homeassistant/components/meteoalarm/* @rolfberkenbosch
homeassistant/components/meteoclimatic/* @adrianmo
homeassistant/components/metoffice/* @MrHarcombe
homeassistant/components/miflora/* @danielhiversen @basnijholt
homeassistant/components/mikrotik/* @engrbm87
@@ -287,17 +304,21 @@ homeassistant/components/minecraft_server/* @elmurato
homeassistant/components/minio/* @tkislan
homeassistant/components/mobile_app/* @robbiet480
homeassistant/components/modbus/* @adamchengtkc @janiversen @vzahradnik
homeassistant/components/modern_forms/* @wonderslug
homeassistant/components/monoprice/* @etsinko @OnFreund
homeassistant/components/moon/* @fabaff
homeassistant/components/motion_blinds/* @starkillerOG
homeassistant/components/motioneye/* @dermotduffy
homeassistant/components/mpd/* @fabaff
homeassistant/components/mqtt/* @emontnemery
homeassistant/components/msteams/* @peroyvind
homeassistant/components/mullvad/* @meichthys
homeassistant/components/mutesync/* @currentoor
homeassistant/components/my/* @home-assistant/core
homeassistant/components/myq/* @bdraco
homeassistant/components/mysensors/* @MartinHjelmare @functionpointer
homeassistant/components/mystrom/* @fabaff
homeassistant/components/nam/* @bieniu
homeassistant/components/neato/* @dshokouhi @Santobert
homeassistant/components/nederlandse_spoorwegen/* @YarmoM
homeassistant/components/nello/* @pschmitt
@@ -311,6 +332,7 @@ homeassistant/components/nextcloud/* @meichthys
homeassistant/components/nightscout/* @marciogranzotto
homeassistant/components/nilu/* @hfurubotten
homeassistant/components/nissan_leaf/* @filcole
homeassistant/components/nmap_tracker/* @bdraco
homeassistant/components/nmbs/* @thibmaek
homeassistant/components/no_ip/* @fabaff
homeassistant/components/noaa_tides/* @jdelaney72
@@ -319,7 +341,6 @@ homeassistant/components/notify_events/* @matrozov @papajojo
homeassistant/components/notion/* @bachya
homeassistant/components/nsw_fuel_station/* @nickw444
homeassistant/components/nsw_rural_fire_service_feed/* @exxamalte
homeassistant/components/nuheat/* @bdraco
homeassistant/components/nuki/* @pschmitt @pvizeli @pree
homeassistant/components/numato/* @clssn
homeassistant/components/number/* @home-assistant/core @Shulyaka
@@ -352,6 +373,7 @@ homeassistant/components/persistent_notification/* @home-assistant/core
homeassistant/components/philips_js/* @elupus
homeassistant/components/pi4ioe5v9xxxx/* @antonverburg
homeassistant/components/pi_hole/* @fabaff @johnluetke @shenxn
homeassistant/components/picnic/* @corneyl
homeassistant/components/pilight/* @trekky12
homeassistant/components/plaato/* @JohNan
homeassistant/components/plex/* @jjlawren
@@ -363,7 +385,7 @@ homeassistant/components/powerwall/* @bdraco @jrester
homeassistant/components/profiler/* @bdraco
homeassistant/components/progettihwsw/* @ardaseremet
homeassistant/components/prometheus/* @knyar
homeassistant/components/proxmoxve/* @k4ds3 @jhollowe
homeassistant/components/proxmoxve/* @k4ds3 @jhollowe @Corbeno
homeassistant/components/ps4/* @ktnrg45
homeassistant/components/push/* @dgomes
homeassistant/components/pvoutput/* @fabaff
@@ -398,24 +420,25 @@ homeassistant/components/rpi_power/* @shenxn @swetoast
homeassistant/components/ruckus_unleashed/* @gabe565
homeassistant/components/safe_mode/* @home-assistant/core
homeassistant/components/saj/* @fredericvl
homeassistant/components/samsungtv/* @escoand
homeassistant/components/samsungtv/* @escoand @chemelli74
homeassistant/components/scene/* @home-assistant/core
homeassistant/components/schluter/* @prairieapps
homeassistant/components/scrape/* @fabaff
homeassistant/components/screenlogic/* @dieselrabbit
homeassistant/components/script/* @home-assistant/core
homeassistant/components/search/* @home-assistant/core
homeassistant/components/select/* @home-assistant/core
homeassistant/components/sense/* @kbickar
homeassistant/components/sensibo/* @andrey-git
homeassistant/components/sentry/* @dcramer @frenck
homeassistant/components/serial/* @fabaff
homeassistant/components/seven_segments/* @fabaff
homeassistant/components/seventeentrack/* @bachya
homeassistant/components/sharkiq/* @ajmarks
homeassistant/components/shell_command/* @home-assistant/core
homeassistant/components/shelly/* @balloob @bieniu @thecode @chemelli74
homeassistant/components/shiftr/* @fabaff
homeassistant/components/shodan/* @fabaff
homeassistant/components/sia/* @eavanvalkenburg
homeassistant/components/sighthound/* @robmarkcole
homeassistant/components/signal_messenger/* @bbernhard
homeassistant/components/simplisafe/* @bachya
@@ -424,7 +447,7 @@ homeassistant/components/sisyphus/* @jkeljo
homeassistant/components/sky_hub/* @rogerselwyn
homeassistant/components/slack/* @bachya
homeassistant/components/slide/* @ualex73
homeassistant/components/sma/* @kellerza
homeassistant/components/sma/* @kellerza @rklomp
homeassistant/components/smappee/* @bsmappee
homeassistant/components/smart_meter_texas/* @grahamwetzler
homeassistant/components/smarthab/* @outadoc
@@ -441,7 +464,7 @@ homeassistant/components/soma/* @ratsept
homeassistant/components/somfy/* @tetienne
homeassistant/components/sonarr/* @ctalkington
homeassistant/components/songpal/* @rytilahti @shenxn
homeassistant/components/sonos/* @cgtobi
homeassistant/components/sonos/* @cgtobi @jjlawren
homeassistant/components/spaceapi/* @fabaff
homeassistant/components/speedtestdotnet/* @rohankapoorcom @engrbm87
homeassistant/components/spider/* @peternijssen
@@ -460,16 +483,18 @@ homeassistant/components/subaru/* @G-Two
homeassistant/components/suez_water/* @ooii
homeassistant/components/sun/* @Swamp-Ig
homeassistant/components/supla/* @mwegrzynek
homeassistant/components/surepetcare/* @benleb
homeassistant/components/surepetcare/* @benleb @danielhiversen
homeassistant/components/swiss_hydrological_data/* @fabaff
homeassistant/components/swiss_public_transport/* @fabaff
homeassistant/components/switchbot/* @danielhiversen
homeassistant/components/switcher_kis/* @tomerfi
homeassistant/components/switcher_kis/* @tomerfi @thecode
homeassistant/components/switchmate/* @danielhiversen
homeassistant/components/syncthing/* @zhulik
homeassistant/components/syncthru/* @nielstron
homeassistant/components/synology_dsm/* @hacf-fr @Quentame @mib1185
homeassistant/components/synology_srm/* @aerialls
homeassistant/components/syslog/* @fabaff
homeassistant/components/system_bridge/* @timmo001
homeassistant/components/tado/* @michaelarnauts @bdraco @noltari
homeassistant/components/tag/* @balloob @dmulcahey
homeassistant/components/tahoma/* @philklei
@@ -526,6 +551,7 @@ homeassistant/components/vlc_telnet/* @rodripf @dmcc
homeassistant/components/volkszaehler/* @fabaff
homeassistant/components/volumio/* @OnFreund
homeassistant/components/wake_on_lan/* @ntilley905
homeassistant/components/wallbox/* @hesselonline
homeassistant/components/waqi/* @andrey-git
homeassistant/components/watson_tts/* @rutkai
homeassistant/components/weather/* @fabaff
@@ -545,7 +571,8 @@ homeassistant/components/xiaomi_aqara/* @danielhiversen @syssi
homeassistant/components/xiaomi_miio/* @rytilahti @syssi @starkillerOG
homeassistant/components/xiaomi_tv/* @simse
homeassistant/components/xmpp/* @fabaff @flowolf
homeassistant/components/yamaha_musiccast/* @jalmeroth
homeassistant/components/yale_smart_alarm/* @gjohansson-ST
homeassistant/components/yamaha_musiccast/* @vigonotion @micha91
homeassistant/components/yandex_transport/* @rishatik92 @devbis
homeassistant/components/yeelight/* @rytilahti @zewelor @shenxn
homeassistant/components/yeelightsunflower/* @lindsaymarkward
+1 -1
View File
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.8
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.9
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-232
View File
@@ -1,232 +0,0 @@
# https://dev.azure.com/home-assistant
trigger:
batch: true
branches:
include:
- rc
- dev
- master
pr:
- rc
- dev
- master
resources:
containers:
- container: 38
image: homeassistant/ci-azure:3.8
repositories:
- repository: azure
type: github
name: "home-assistant/ci-azure"
endpoint: "home-assistant"
variables:
- name: PythonMain
value: "38"
- name: versionHadolint
value: "v1.17.6"
stages:
- stage: "Overview"
jobs:
- job: "Lint"
pool:
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "requirements_test.txt | homeassistant/package_constraints.txt"
build: |
python -m venv venv
. venv/bin/activate
pip install -r requirements_test.txt
pre-commit install-hooks
- script: |
. venv/bin/activate
pre-commit run --hook-stage manual check-executables-have-shebangs --all-files
displayName: "Run executables check"
- script: |
. venv/bin/activate
pre-commit run codespell --all-files
displayName: "Run codespell"
- script: |
. venv/bin/activate
pre-commit run flake8 --all-files
displayName: "Run flake8"
- script: |
. venv/bin/activate
pre-commit run bandit --all-files
displayName: "Run bandit"
- script: |
. venv/bin/activate
pre-commit run isort --all-files --show-diff-on-failure
displayName: "Run isort"
- script: |
. venv/bin/activate
pre-commit run check-json --all-files
displayName: "Run check-json"
- script: |
. venv/bin/activate
pre-commit run yamllint --all-files
displayName: "Run yamllint"
- script: |
. venv/bin/activate
pre-commit run pyupgrade --all-files --show-diff-on-failure
displayName: "Run pyupgrade"
# Prettier seems to hang on Azure, unknown why yet.
# Temporarily disable the check to no block PRs
# - script: |
# . venv/bin/activate
# pre-commit run prettier --all-files --show-diff-on-failure
# displayName: 'Run prettier'
- job: "Validate"
pool:
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "homeassistant/package_constraints.txt"
build: |
python -m venv venv
. venv/bin/activate
pip install -e .
- script: |
. venv/bin/activate
python -m script.hassfest --action validate
displayName: "Validate manifests"
- script: |
. venv/bin/activate
./script/gen_requirements_all.py validate
displayName: "requirements_all validate"
- job: "CheckFormat"
pool:
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "requirements_test.txt | homeassistant/package_constraints.txt"
build: |
python -m venv venv
. venv/bin/activate
pip install -r requirements_test.txt
pre-commit install-hooks
- script: |
. venv/bin/activate
pre-commit run black --all-files --show-diff-on-failure
displayName: "Check Black formatting"
- job: "Docker"
pool:
vmImage: "ubuntu-latest"
steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: "Install Hadolint"
- script: |
set -e
for dockerfile in Dockerfile Dockerfile.dev
do
echo "Linting: $dockerfile"
docker run --rm -i \
-v "$(pwd)/.hadolint.yaml:/.hadolint.yaml:ro" \
hadolint/hadolint:$(versionHadolint) < "$dockerfile"
done
displayName: "Run Hadolint"
- stage: "Tests"
dependsOn:
- "Overview"
jobs:
- job: "PyTest"
pool:
vmImage: "ubuntu-latest"
strategy:
maxParallel: 3
matrix:
Python38:
python.container: "38"
container: $[ variables['python.container'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "requirements_test_all.txt | requirements_test.txt | homeassistant/package_constraints.txt"
build: |
set -e
python -m venv venv
. venv/bin/activate
pip install -U pip setuptools pytest-azurepipelines pytest-xdist -c homeassistant/package_constraints.txt
pip install -r requirements_test_all.txt
- script: |
. venv/bin/activate
pip install -e .
displayName: "Install Home Assistant"
- script: |
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar tests
script/check_dirty
displayName: "Run pytest for python $(python.container)"
condition: and(succeeded(), ne(variables['python.container'], variables['PythonMain']))
- script: |
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -n auto --dist=loadfile --cov homeassistant --cov-report html -qq -o console_output_style=count -p no:sugar tests
codecov --token $(codecovToken)
script/check_dirty
displayName: "Run pytest for python $(python.container) / coverage"
condition: and(succeeded(), eq(variables['python.container'], variables['PythonMain']))
- stage: "FullCheck"
dependsOn:
- "Overview"
jobs:
- job: "Pylint"
pool:
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "requirements_all.txt | requirements_test.txt | homeassistant/package_constraints.txt"
build: |
set -e
python -m venv venv
. venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements_all.txt
pip install -r requirements_test.txt
- script: |
. venv/bin/activate
pip install -e .
displayName: "Install Home Assistant"
- script: |
. venv/bin/activate
pylint homeassistant
displayName: "Run pylint"
- job: "Mypy"
pool:
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: "requirements_test.txt | setup.py | homeassistant/package_constraints.txt"
build: |
python -m venv venv
. venv/bin/activate
pip install -e . -r requirements_test.txt
pre-commit install-hooks
- script: |
. venv/bin/activate
pre-commit run mypy --all-files
displayName: "Run mypy"
-323
View File
@@ -1,323 +0,0 @@
# https://dev.azure.com/home-assistant
trigger:
tags:
include:
- '*'
pr: none
schedules:
- cron: "0 1 * * *"
displayName: "nightly builds"
branches:
include:
- dev
always: true
variables:
- name: versionBuilder
value: '2021.02.0'
- group: docker
- group: github
- group: twine
resources:
repositories:
- repository: azure
type: github
name: 'home-assistant/ci-azure'
endpoint: 'home-assistant'
stages:
- stage: 'Validate'
jobs:
- template: templates/azp-job-version.yaml@azure
parameters:
ignoreDev: true
- job: 'Permission'
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
sudo apt-get install -y --no-install-recommends \
jq curl
release="$(Build.SourceBranchName)"
created_by="$(curl -s https://api.github.com/repos/home-assistant/core/releases/tags/${release} | jq --raw-output '.author.login')"
if [[ "${created_by}" =~ ^(balloob|pvizeli|fabaff|robbiet480|bramkragten|frenck)$ ]]; then
exit 0
fi
echo "${created_by} is not allowed to create an release!"
exit 1
displayName: 'Check rights'
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags'))
- stage: 'Build'
jobs:
- job: 'ReleasePython'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.8'
inputs:
versionSpec: '3.8'
- script: pip install twine wheel
displayName: 'Install tools'
- script: python setup.py sdist bdist_wheel
displayName: 'Build package'
- script: |
export TWINE_USERNAME="$(twineUser)"
export TWINE_PASSWORD="$(twinePassword)"
twine upload dist/* --skip-existing
displayName: 'Upload pypi'
- job: 'ReleaseDocker'
timeoutInMinutes: 240
pool:
vmImage: 'ubuntu-latest'
strategy:
maxParallel: 5
matrix:
amd64:
buildArch: 'amd64'
i386:
buildArch: 'i386'
armhf:
buildArch: 'armhf'
armv7:
buildArch: 'armv7'
aarch64:
buildArch: 'aarch64'
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker hub login'
- script: docker pull homeassistant/amd64-builder:$(versionBuilder)
displayName: 'Install Builder'
- script: |
set -e
docker run --rm --privileged \
-v ~/.docker:/root/.docker:rw \
-v /run/docker.sock:/run/docker.sock:rw \
-v $(pwd):/data:ro \
homeassistant/amd64-builder:$(versionBuilder) \
--generic $(homeassistantRelease) "--$(buildArch)" -t /data \
displayName: 'Build Release'
- job: 'ReleaseMachine'
dependsOn:
- ReleaseDocker
timeoutInMinutes: 240
pool:
vmImage: 'ubuntu-latest'
strategy:
maxParallel: 17
matrix:
qemux86-64:
buildMachine: 'qemux86-64'
generic-x86-64:
buildMachine: 'generic-x86-64'
intel-nuc:
buildMachine: 'intel-nuc'
qemux86:
buildMachine: 'qemux86'
qemuarm:
buildMachine: 'qemuarm'
raspberrypi:
buildMachine: 'raspberrypi'
raspberrypi2:
buildMachine: 'raspberrypi2'
raspberrypi3:
buildMachine: 'raspberrypi3'
raspberrypi4:
buildMachine: 'raspberrypi4'
odroid-xu:
buildMachine: 'odroid-xu'
tinker:
buildMachine: 'tinker'
qemuarm-64:
buildMachine: 'qemuarm-64'
raspberrypi3-64:
buildMachine: 'raspberrypi3-64'
raspberrypi4-64:
buildMachine: 'raspberrypi4-64'
odroid-c2:
buildMachine: 'odroid-c2'
odroid-c4:
buildMachine: 'odroid-c4'
odroid-n2:
buildMachine: 'odroid-n2'
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker hub login'
- script: docker pull homeassistant/amd64-builder:$(versionBuilder)
displayName: 'Install Builder'
- script: |
set -e
docker run --rm --privileged \
-v ~/.docker:/root/.docker \
-v /run/docker.sock:/run/docker.sock:rw \
-v $(pwd):/data:ro \
homeassistant/amd64-builder:$(versionBuilder) \
--homeassistant-machine "$(homeassistantRelease)=$(buildMachine)" \
-t /data/machine --docker-hub homeassistant
displayName: 'Build Machine'
- stage: 'Publish'
jobs:
- job: 'ReleaseHassio'
pool:
vmImage: 'ubuntu-latest'
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
sudo apt-get install -y --no-install-recommends \
git jq curl
git config --global user.name "Pascal Vizeli"
git config --global user.email "pvizeli@syshack.ch"
git config --global credential.helper store
echo "https://$(githubToken):x-oauth-basic@github.com" > $HOME/.git-credentials
displayName: 'Install requirements'
- script: |
set -e
version="$(homeassistantRelease)"
git clone https://github.com/home-assistant/version
cd version
dev_version="$(jq --raw-output '.homeassistant.default' dev.json)"
beta_version="$(jq --raw-output '.homeassistant.default' beta.json)"
stable_version="$(jq --raw-output '.homeassistant.default' stable.json)"
if [[ "$version" =~ d ]]; then
sed -i "s|$dev_version|$version|g" dev.json
elif [[ "$version" =~ b ]]; then
sed -i "s|$beta_version|$version|g" beta.json
else
sed -i "s|$beta_version|$version|g" beta.json
sed -i "s|$stable_version|$version|g" stable.json
fi
git commit -am "Bump Home Assistant $version"
git push
displayName: "Update version files"
- job: 'ReleaseDocker'
pool:
vmImage: 'ubuntu-latest'
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker login'
- script: |
set -e
export DOCKER_CLI_EXPERIMENTAL=enabled
function create_manifest() {
local tag_l=$1
local tag_r=$2
docker manifest create homeassistant/home-assistant:${tag_l} \
homeassistant/amd64-homeassistant:${tag_r} \
homeassistant/i386-homeassistant:${tag_r} \
homeassistant/armhf-homeassistant:${tag_r} \
homeassistant/armv7-homeassistant:${tag_r} \
homeassistant/aarch64-homeassistant:${tag_r}
docker manifest annotate homeassistant/home-assistant:${tag_l} \
homeassistant/amd64-homeassistant:${tag_r} \
--os linux --arch amd64
docker manifest annotate homeassistant/home-assistant:${tag_l} \
homeassistant/i386-homeassistant:${tag_r} \
--os linux --arch 386
docker manifest annotate homeassistant/home-assistant:${tag_l} \
homeassistant/armhf-homeassistant:${tag_r} \
--os linux --arch arm --variant=v6
docker manifest annotate homeassistant/home-assistant:${tag_l} \
homeassistant/armv7-homeassistant:${tag_r} \
--os linux --arch arm --variant=v7
docker manifest annotate homeassistant/home-assistant:${tag_l} \
homeassistant/aarch64-homeassistant:${tag_r} \
--os linux --arch arm64 --variant=v8
docker manifest push --purge homeassistant/home-assistant:${tag_l}
}
docker pull homeassistant/amd64-homeassistant:$(homeassistantRelease)
docker pull homeassistant/i386-homeassistant:$(homeassistantRelease)
docker pull homeassistant/armhf-homeassistant:$(homeassistantRelease)
docker pull homeassistant/armv7-homeassistant:$(homeassistantRelease)
docker pull homeassistant/aarch64-homeassistant:$(homeassistantRelease)
# Create version tag
create_manifest "$(homeassistantRelease)" "$(homeassistantRelease)"
# Create general tags
if [[ "$(homeassistantRelease)" =~ d ]]; then
create_manifest "dev" "$(homeassistantRelease)"
elif [[ "$(homeassistantRelease)" =~ b ]]; then
create_manifest "beta" "$(homeassistantRelease)"
create_manifest "rc" "$(homeassistantRelease)"
else
create_manifest "stable" "$(homeassistantRelease)"
create_manifest "latest" "$(homeassistantRelease)"
create_manifest "beta" "$(homeassistantRelease)"
create_manifest "rc" "$(homeassistantRelease)"
fi
displayName: 'Create Meta-Image'
- stage: 'Addidional'
jobs:
- job: 'Updater'
pool:
vmImage: 'ubuntu-latest'
variables:
- group: gcloud
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
curl -o google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
tar -C . -xvf google-cloud-sdk.tar.gz
rm -f google-cloud-sdk.tar.gz
./google-cloud-sdk/install.sh
displayName: 'Setup gCloud'
condition: eq(variables['homeassistantReleaseStable'], 'true')
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
echo "$(gcloudAnalytic)" > gcloud_auth.json
./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file gcloud_auth.json
rm -f gcloud_auth.json
displayName: 'Auth gCloud'
condition: eq(variables['homeassistantReleaseStable'], 'true')
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
./google-cloud-sdk/bin/gcloud functions deploy Analytics-Receiver \
--project home-assistant-analytics \
--update-env-vars VERSION=$(homeassistantRelease) \
--source gs://analytics-src/function-source.zip
displayName: 'Push details to updater'
condition: eq(variables['homeassistantReleaseStable'], 'true')
-65
View File
@@ -1,65 +0,0 @@
# https://dev.azure.com/home-assistant
trigger:
batch: true
branches:
include:
- dev
pr: none
schedules:
- cron: "0 0 * * *"
displayName: "translation update"
branches:
include:
- dev
always: true
variables:
- group: translation
resources:
repositories:
- repository: azure
type: github
name: 'home-assistant/ci-azure'
endpoint: 'home-assistant'
jobs:
- job: 'Upload'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.8'
inputs:
versionSpec: '3.8'
- script: |
export LOKALISE_TOKEN="$(lokaliseToken)"
export AZURE_BRANCH="$(Build.SourceBranchName)"
python3 -m script.translations upload
displayName: 'Upload Translation'
- job: 'Download'
dependsOn:
- 'Upload'
condition: or(eq(variables['Build.Reason'], 'Schedule'), eq(variables['Build.Reason'], 'Manual'))
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.7'
inputs:
versionSpec: '3.7'
- template: templates/azp-step-git-init.yaml@azure
- script: |
export LOKALISE_TOKEN="$(lokaliseToken)"
python3 -m script.translations download
displayName: 'Download Translation'
- script: |
git checkout dev
git add homeassistant
git commit -am "[ci skip] Translation update"
git push
displayName: 'Update translation'
-100
View File
@@ -1,100 +0,0 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- dev
- rc
paths:
include:
- requirements_all.txt
pr: none
schedules:
- cron: '0 */4 * * *'
displayName: 'daily builds'
branches:
include:
- dev
variables:
- name: versionWheels
value: '1.13.0-3.8-alpine3.12'
resources:
repositories:
- repository: azure
type: github
name: 'home-assistant/ci-azure'
endpoint: 'home-assistant'
jobs:
- template: templates/azp-job-wheels.yaml@azure
parameters:
builderVersion: '$(versionWheels)'
builderApk: 'build-base;cmake;git;linux-headers;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev'
builderPip: 'Cython;numpy'
skipBinary: 'aiohttp'
wheelsRequirement: 'requirements.txt'
wheelsRequirementDiff: 'requirements_diff.txt'
wheelsConstraint: 'homeassistant/package_constraints.txt'
jobName: 'Wheels_Core'
preBuild:
- script: |
if [[ "$(Build.Reason)" =~ (Schedule|Manual) ]]; then
exit 0
else
curl -s -o requirements_diff.txt https://raw.githubusercontent.com/home-assistant/core/master/requirements.txt
fi
displayName: 'Prepare requirements files for Home Assistant Core wheels'
- template: templates/azp-job-wheels.yaml@azure
parameters:
builderVersion: '$(versionWheels)'
builderApk: 'build-base;cmake;git;linux-headers;libexecinfo-dev;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;autoconf;automake;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev'
builderPip: 'Cython;numpy;scikit-build'
builderEnvFile: true
skipBinary: 'aiohttp'
wheelsRequirement: 'requirements_wheels.txt'
wheelsRequirementDiff: 'requirements_diff.txt'
wheelsConstraint: 'homeassistant/package_constraints.txt'
jobName: 'Wheels_Integrations'
preBuild:
- script: |
cp requirements_all.txt requirements_wheels.txt
if [[ "$(Build.Reason)" =~ (Schedule|Manual) ]]; then
touch requirements_diff.txt
else
curl -s -o requirements_diff.txt https://raw.githubusercontent.com/home-assistant/core/master/requirements_all.txt
fi
requirement_files="requirements_wheels.txt requirements_diff.txt"
for requirement_file in ${requirement_files}; do
sed -i "s|# pybluez|pybluez|g" ${requirement_file}
sed -i "s|# bluepy|bluepy|g" ${requirement_file}
sed -i "s|# beacontools|beacontools|g" ${requirement_file}
sed -i "s|# RPi.GPIO|RPi.GPIO|g" ${requirement_file}
sed -i "s|# raspihats|raspihats|g" ${requirement_file}
sed -i "s|# rpi-rf|rpi-rf|g" ${requirement_file}
sed -i "s|# blinkt|blinkt|g" ${requirement_file}
sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file}
sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file}
sed -i "s|# evdev|evdev|g" ${requirement_file}
sed -i "s|# smbus-cffi|smbus-cffi|g" ${requirement_file}
sed -i "s|# i2csense|i2csense|g" ${requirement_file}
sed -i "s|# python-eq3bt|python-eq3bt|g" ${requirement_file}
sed -i "s|# pycups|pycups|g" ${requirement_file}
sed -i "s|# homekit|homekit|g" ${requirement_file}
sed -i "s|# decora_wifi|decora_wifi|g" ${requirement_file}
sed -i "s|# decora|decora|g" ${requirement_file}
sed -i "s|# avion|avion|g" ${requirement_file}
sed -i "s|# PySwitchbot|PySwitchbot|g" ${requirement_file}
sed -i "s|# pySwitchmate|pySwitchmate|g" ${requirement_file}
sed -i "s|# face_recognition|face_recognition|g" ${requirement_file}
sed -i "s|# py_noaa|py_noaa|g" ${requirement_file}
sed -i "s|# bme680|bme680|g" ${requirement_file}
sed -i "s|# python-gammu|python-gammu|g" ${requirement_file}
done
# Write env for build settings
(
echo "GRPC_BUILD_WITH_BORING_SSL_ASM="
echo "GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1"
) > .env_file
displayName: 'Prepare requirements files for Home Assistant wheels'
+14 -6
View File
@@ -1,14 +1,22 @@
{
"image": "homeassistant/{arch}-homeassistant",
"shadow_repository": "ghcr.io/home-assistant",
"build_from": {
"aarch64": "homeassistant/aarch64-homeassistant-base:2021.02.0",
"armhf": "homeassistant/armhf-homeassistant-base:2021.02.0",
"armv7": "homeassistant/armv7-homeassistant-base:2021.02.0",
"amd64": "homeassistant/amd64-homeassistant-base:2021.02.0",
"i386": "homeassistant/i386-homeassistant-base:2021.02.0"
"aarch64": "ghcr.io/home-assistant/aarch64-homeassistant-base:2021.06.2",
"armhf": "ghcr.io/home-assistant/armhf-homeassistant-base:2021.06.2",
"armv7": "ghcr.io/home-assistant/armv7-homeassistant-base:2021.06.2",
"amd64": "ghcr.io/home-assistant/amd64-homeassistant-base:2021.06.2",
"i386": "ghcr.io/home-assistant/i386-homeassistant-base:2021.06.2"
},
"labels": {
"io.hass.type": "core"
"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
}
+1
View File
@@ -145,6 +145,7 @@ def daemonize() -> None:
sys.exit(0)
# redirect standard file descriptors to devnull
# pylint: disable=consider-using-with
infd = open(os.devnull)
outfd = open(os.devnull, "a+")
sys.stdout.flush()
+7 -7
View File
@@ -4,17 +4,17 @@ from __future__ import annotations
import asyncio
from collections import OrderedDict
from datetime import timedelta
from typing import Any, Dict, Optional, Tuple, cast
from typing import Any, Dict, Mapping, Optional, Tuple, cast
import jwt
from homeassistant import data_entry_flow
from homeassistant.auth.const import ACCESS_TOKEN_EXPIRATION
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.util import dt as dt_util
from . import auth_store, models
from .const import GROUP_ID_ADMIN
from .const import ACCESS_TOKEN_EXPIRATION, GROUP_ID_ADMIN
from .mfa_modules import MultiFactorAuthModule, auth_mfa_module_from_config
from .providers import AuthProvider, LoginFlow, auth_provider_from_config
@@ -78,7 +78,7 @@ async def auth_manager_from_config(
class AuthManagerFlowManager(data_entry_flow.FlowManager):
"""Manage authentication flows."""
def __init__(self, hass: HomeAssistant, auth_manager: AuthManager):
def __init__(self, hass: HomeAssistant, auth_manager: AuthManager) -> None:
"""Init auth manager flows."""
super().__init__(hass)
self.auth_manager = auth_manager
@@ -97,8 +97,8 @@ class AuthManagerFlowManager(data_entry_flow.FlowManager):
return await auth_provider.async_login_flow(context)
async def async_finish_flow(
self, flow: data_entry_flow.FlowHandler, result: dict[str, Any]
) -> dict[str, Any]:
self, flow: data_entry_flow.FlowHandler, result: FlowResult
) -> FlowResult:
"""Return a user as result of login flow."""
flow = cast(LoginFlow, flow)
@@ -115,7 +115,7 @@ class AuthManagerFlowManager(data_entry_flow.FlowManager):
raise KeyError(f"Unknown auth provider {result['handler']}")
credentials = await auth_provider.async_get_or_create_credentials(
result["data"]
cast(Mapping[str, str], result["data"]),
)
if flow.context.get("credential_only"):
+2 -1
View File
@@ -12,6 +12,7 @@ from voluptuous.humanize import humanize_error
from homeassistant import data_entry_flow, requirements
from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from homeassistant.util.decorator import Registry
@@ -105,7 +106,7 @@ class SetupFlow(data_entry_flow.FlowHandler):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the first step of setup flow.
Return self.async_show_form(step_id='init') if user_input is None.
+3 -2
View File
@@ -14,6 +14,7 @@ import voluptuous as vol
from homeassistant.const import CONF_EXCLUDE, CONF_INCLUDE
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import ServiceNotFound
from homeassistant.helpers import config_validation as cv
@@ -292,7 +293,7 @@ class NotifySetupFlow(SetupFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Let user select available notify services."""
errors: dict[str, str] = {}
@@ -318,7 +319,7 @@ class NotifySetupFlow(SetupFlow):
async def async_step_setup(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Verify user can receive one-time password."""
errors: dict[str, str] = {}
+2 -1
View File
@@ -9,6 +9,7 @@ import voluptuous as vol
from homeassistant.auth.models import User
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResult
from . import (
MULTI_FACTOR_AUTH_MODULE_SCHEMA,
@@ -189,7 +190,7 @@ class TotpSetupFlow(SetupFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the first step of setup flow.
Return self.async_show_form(step_id='init') if user_input is None.
+7 -5
View File
@@ -1,6 +1,7 @@
"""Auth providers for Home Assistant."""
from __future__ import annotations
from collections.abc import Mapping
import importlib
import logging
import types
@@ -12,6 +13,7 @@ from voluptuous.humanize import humanize_error
from homeassistant import data_entry_flow, requirements
from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from homeassistant.util import dt as dt_util
from homeassistant.util.decorator import Registry
@@ -102,7 +104,7 @@ class AuthProvider:
raise NotImplementedError
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Get credentials based on the flow result."""
raise NotImplementedError
@@ -198,7 +200,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the first step of login flow.
Return self.async_show_form(step_id='init') if user_input is None.
@@ -208,7 +210,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_select_mfa_module(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of select mfa module."""
errors = {}
@@ -233,7 +235,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_mfa(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of mfa validation."""
assert self.credential
assert self.user
@@ -285,6 +287,6 @@ class LoginFlow(data_entry_flow.FlowHandler):
errors=errors,
)
async def async_finish(self, flow_result: Any) -> dict:
async def async_finish(self, flow_result: Any) -> FlowResult:
"""Handle the pass of login flow."""
return self.async_create_entry(title=self._auth_provider.name, data=flow_result)
+4 -2
View File
@@ -3,6 +3,7 @@ from __future__ import annotations
import asyncio.subprocess
import collections
from collections.abc import Mapping
import logging
import os
from typing import Any, cast
@@ -10,6 +11,7 @@ from typing import Any, cast
import voluptuous as vol
from homeassistant.const import CONF_COMMAND
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
@@ -100,7 +102,7 @@ class CommandLineAuthProvider(AuthProvider):
self._user_meta[username] = meta
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Get credentials based on the flow result."""
username = flow_result["username"]
@@ -127,7 +129,7 @@ class CommandLineLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of the form."""
errors = {}
@@ -4,6 +4,7 @@ from __future__ import annotations
import asyncio
import base64
from collections import OrderedDict
from collections.abc import Mapping
import logging
from typing import Any, cast
@@ -12,6 +13,7 @@ import voluptuous as vol
from homeassistant.const import CONF_ID
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
@@ -277,7 +279,7 @@ class HassAuthProvider(AuthProvider):
await self.data.async_save()
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Get credentials based on the flow result."""
if self.data is None:
@@ -319,7 +321,7 @@ class HassLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of the form."""
errors = {}
@@ -2,12 +2,14 @@
from __future__ import annotations
from collections import OrderedDict
from collections.abc import Mapping
import hmac
from typing import Any, cast
from typing import cast
import voluptuous as vol
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
@@ -62,7 +64,7 @@ class ExampleAuthProvider(AuthProvider):
raise InvalidAuthError
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Get credentials based on the flow result."""
username = flow_result["username"]
@@ -97,7 +99,7 @@ class ExampleLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of the form."""
errors = {}
@@ -5,12 +5,14 @@ It will be removed when auth system production ready
"""
from __future__ import annotations
from collections.abc import Mapping
import hmac
from typing import Any, cast
from typing import cast
import voluptuous as vol
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
@@ -57,7 +59,7 @@ class LegacyApiPasswordAuthProvider(AuthProvider):
raise InvalidAuthError
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Return credentials for this login."""
credentials = await self.async_credentials()
@@ -82,7 +84,7 @@ class LegacyLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of the form."""
errors = {}
@@ -5,6 +5,7 @@ Abort login flow if not access from trusted network.
"""
from __future__ import annotations
from collections.abc import Mapping
from ipaddress import (
IPv4Address,
IPv4Network,
@@ -18,6 +19,7 @@ from typing import Any, Dict, List, Union, cast
import voluptuous as vol
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
@@ -79,6 +81,17 @@ class TrustedNetworksAuthProvider(AuthProvider):
"""Return trusted users per network."""
return cast(Dict[IPNetwork, Any], self.config[CONF_TRUSTED_USERS])
@property
def trusted_proxies(self) -> list[IPNetwork]:
"""Return trusted proxies in the system."""
if not self.hass.http:
return []
return [
ip_network(trusted_proxy)
for trusted_proxy in self.hass.http.trusted_proxies
]
@property
def support_mfa(self) -> bool:
"""Trusted Networks auth provider does not support MFA."""
@@ -93,31 +106,29 @@ class TrustedNetworksAuthProvider(AuthProvider):
user for user in users if not user.system_generated and user.is_active
]
for ip_net, user_or_group_list in self.trusted_users.items():
if ip_addr in ip_net:
user_list = [
user_id
for user_id in user_or_group_list
if isinstance(user_id, str)
]
group_list = [
group[CONF_GROUP]
for group in user_or_group_list
if isinstance(group, dict)
]
flattened_group_list = [
group for sublist in group_list for group in sublist
]
available_users = [
user
for user in available_users
if (
user.id in user_list
or any(
group.id in flattened_group_list for group in user.groups
)
)
]
break
if ip_addr not in ip_net:
continue
user_list = [
user_id for user_id in user_or_group_list if isinstance(user_id, str)
]
group_list = [
group[CONF_GROUP]
for group in user_or_group_list
if isinstance(group, dict)
]
flattened_group_list = [
group for sublist in group_list for group in sublist
]
available_users = [
user
for user in available_users
if (
user.id in user_list
or any(group.id in flattened_group_list for group in user.groups)
)
]
break
return TrustedNetworksLoginFlow(
self,
@@ -127,20 +138,29 @@ class TrustedNetworksAuthProvider(AuthProvider):
)
async def async_get_or_create_credentials(
self, flow_result: dict[str, str]
self, flow_result: Mapping[str, str]
) -> Credentials:
"""Get credentials based on the flow result."""
user_id = flow_result["user"]
users = await self.store.async_get_users()
for user in users:
if not user.system_generated and user.is_active and user.id == user_id:
for credential in await self.async_credentials():
if credential.data["user_id"] == user_id:
return credential
cred = self.async_create_credentials({"user_id": user_id})
await self.store.async_link_user(user, cred)
return cred
if user.id != user_id:
continue
if user.system_generated:
continue
if not user.is_active:
continue
for credential in await self.async_credentials():
if credential.data["user_id"] == user_id:
return credential
cred = self.async_create_credentials({"user_id": user_id})
await self.store.async_link_user(user, cred)
return cred
# We only allow login as exist user
raise InvalidUserError
@@ -169,6 +189,9 @@ class TrustedNetworksAuthProvider(AuthProvider):
):
raise InvalidAuthError("Not in trusted_networks")
if any(ip_addr in trusted_proxy for trusted_proxy in self.trusted_proxies):
raise InvalidAuthError("Can't allow access from a proxy server")
@callback
def async_validate_refresh_token(
self, refresh_token: RefreshToken, remote_ip: str | None = None
@@ -199,7 +222,7 @@ class TrustedNetworksLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle the step of the form."""
try:
cast(
+47 -21
View File
@@ -20,14 +20,17 @@ from homeassistant.components import http
from homeassistant.const import REQUIRED_NEXT_PYTHON_DATE, REQUIRED_NEXT_PYTHON_VER
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import area_registry, device_registry, entity_registry
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.typing import ConfigType
from homeassistant.setup import (
DATA_SETUP,
DATA_SETUP_STARTED,
DATA_SETUP_TIME,
async_set_domains_to_be_loaded,
async_setup_component,
)
from homeassistant.util.async_ import gather_with_concurrency
import homeassistant.util.dt as dt_util
from homeassistant.util.logging import async_activate_log_queue_handler
from homeassistant.util.package import async_get_user_site, is_virtual_env
@@ -42,6 +45,8 @@ ERROR_LOG_FILENAME = "home-assistant.log"
DATA_LOGGING = "logging"
LOG_SLOW_STARTUP_INTERVAL = 60
SLOW_STARTUP_CHECK_INTERVAL = 1
SIGNAL_BOOTSTRAP_INTEGRATONS = "bootstrap_integrations"
STAGE_1_TIMEOUT = 120
STAGE_2_TIMEOUT = 300
@@ -380,19 +385,32 @@ def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
return domains
async def _async_log_pending_setups(
hass: core.HomeAssistant, domains: set[str], setup_started: dict[str, datetime]
) -> None:
async def _async_watch_pending_setups(hass: core.HomeAssistant) -> None:
"""Periodic log of setups that are pending for longer than LOG_SLOW_STARTUP_INTERVAL."""
loop_count = 0
setup_started: dict[str, datetime] = hass.data[DATA_SETUP_STARTED]
previous_was_empty = True
while True:
await asyncio.sleep(LOG_SLOW_STARTUP_INTERVAL)
remaining = [domain for domain in domains if domain in setup_started]
now = dt_util.utcnow()
remaining_with_setup_started = {
domain: (now - setup_started[domain]).total_seconds()
for domain in setup_started
}
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
if remaining_with_setup_started or not previous_was_empty:
async_dispatcher_send(
hass, SIGNAL_BOOTSTRAP_INTEGRATONS, remaining_with_setup_started
)
previous_was_empty = not remaining_with_setup_started
await asyncio.sleep(SLOW_STARTUP_CHECK_INTERVAL)
loop_count += SLOW_STARTUP_CHECK_INTERVAL
if remaining:
if loop_count >= LOG_SLOW_STARTUP_INTERVAL and setup_started:
_LOGGER.warning(
"Waiting on integrations to complete setup: %s",
", ".join(remaining),
", ".join(setup_started),
)
loop_count = 0
_LOGGER.debug("Running timeout Zones: %s", hass.timeout.zones)
@@ -400,18 +418,13 @@ async def async_setup_multi_components(
hass: core.HomeAssistant,
domains: set[str],
config: dict[str, Any],
setup_started: dict[str, datetime],
) -> None:
"""Set up multiple domains. Log on failure."""
futures = {
domain: hass.async_create_task(async_setup_component(hass, domain, config))
for domain in domains
}
log_task = asyncio.create_task(
_async_log_pending_setups(hass, domains, setup_started)
)
await asyncio.wait(futures.values())
log_task.cancel()
errors = [domain for domain in domains if futures[domain].exception()]
for domain in errors:
exception = futures[domain].exception()
@@ -427,7 +440,11 @@ async def _async_set_up_integrations(
hass: core.HomeAssistant, config: dict[str, Any]
) -> None:
"""Set up all the integrations."""
setup_started = hass.data[DATA_SETUP_STARTED] = {}
hass.data[DATA_SETUP_STARTED] = {}
setup_time = hass.data[DATA_SETUP_TIME] = {}
watch_task = asyncio.create_task(_async_watch_pending_setups(hass))
domains_to_setup = _get_domains(hass, config)
# Resolve all dependencies so we know all integrations
@@ -476,14 +493,14 @@ async def _async_set_up_integrations(
# Load logging as soon as possible
if logging_domains:
_LOGGER.info("Setting up logging: %s", logging_domains)
await async_setup_multi_components(hass, logging_domains, config, setup_started)
await async_setup_multi_components(hass, logging_domains, config)
# Start up debuggers. Start these first in case they want to wait.
debuggers = domains_to_setup & DEBUGGER_INTEGRATIONS
if debuggers:
_LOGGER.debug("Setting up debuggers: %s", debuggers)
await async_setup_multi_components(hass, debuggers, config, setup_started)
await async_setup_multi_components(hass, debuggers, config)
# calculate what components to setup in what stage
stage_1_domains = set()
@@ -524,9 +541,7 @@ async def _async_set_up_integrations(
async with hass.timeout.async_timeout(
STAGE_1_TIMEOUT, cool_down=COOLDOWN_TIME
):
await async_setup_multi_components(
hass, stage_1_domains, config, setup_started
)
await async_setup_multi_components(hass, stage_1_domains, config)
except asyncio.TimeoutError:
_LOGGER.warning("Setup timed out for stage 1 - moving forward")
@@ -539,12 +554,23 @@ async def _async_set_up_integrations(
async with hass.timeout.async_timeout(
STAGE_2_TIMEOUT, cool_down=COOLDOWN_TIME
):
await async_setup_multi_components(
hass, stage_2_domains, config, setup_started
)
await async_setup_multi_components(hass, stage_2_domains, config)
except asyncio.TimeoutError:
_LOGGER.warning("Setup timed out for stage 2 - moving forward")
watch_task.cancel()
async_dispatcher_send(hass, SIGNAL_BOOTSTRAP_INTEGRATONS, {})
_LOGGER.debug(
"Integration setup times: %s",
{
integration: timedelta.total_seconds()
for integration, timedelta in sorted(
setup_time.items(), key=lambda item: item[1].total_seconds() # type: ignore
)
},
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
try:
+4 -4
View File
@@ -7,16 +7,16 @@ Component design guidelines:
format "<DOMAIN>.<OBJECT_ID>".
- Each component should publish services only under its own domain.
"""
from __future__ import annotations
import logging
from homeassistant.core import split_entity_id
# mypy: allow-untyped-defs
from homeassistant.core import HomeAssistant, split_entity_id
_LOGGER = logging.getLogger(__name__)
def is_on(hass, entity_id=None):
def is_on(hass: HomeAssistant, entity_id: str | None = None) -> bool:
"""Load up the module to call the is_on method.
If there is no entity id given we will check all.
+22 -34
View File
@@ -1,5 +1,4 @@
"""Support for the Abode Security System."""
from asyncio import gather
from copy import deepcopy
from functools import partial
@@ -9,7 +8,7 @@ import abodepy.helpers.timeline as TIMELINE
from requests.exceptions import ConnectTimeout, HTTPError
import voluptuous as vol
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_REAUTH
from homeassistant.config_entries import SOURCE_IMPORT
from homeassistant.const import (
ATTR_ATTRIBUTION,
ATTR_DATE,
@@ -20,7 +19,7 @@ from homeassistant.const import (
CONF_USERNAME,
EVENT_HOMEASSISTANT_STOP,
)
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.entity import Entity
@@ -46,15 +45,19 @@ ATTR_EVENT_BY = "event_by"
ATTR_VALUE = "value"
CONFIG_SCHEMA = vol.Schema(
{
DOMAIN: vol.Schema(
{
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_POLLING, default=False): cv.boolean,
}
)
},
vol.All(
# Deprecated in Home Assistant 2021.6
cv.deprecated(DOMAIN),
{
DOMAIN: vol.Schema(
{
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_POLLING, default=False): cv.boolean,
}
)
},
),
extra=vol.ALLOW_EXTRA,
)
@@ -124,24 +127,14 @@ async def async_setup_entry(hass, config_entry):
)
except AbodeAuthenticationException as ex:
LOGGER.error("Invalid credentials: %s", ex)
await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_REAUTH},
data=config_entry.data,
)
return False
raise ConfigEntryAuthFailed(f"Invalid credentials: {ex}") from ex
except (AbodeException, ConnectTimeout, HTTPError) as ex:
LOGGER.error("Unable to connect to Abode: %s", ex)
raise ConfigEntryNotReady from ex
raise ConfigEntryNotReady(f"Unable to connect to Abode: {ex}") from ex
hass.data[DOMAIN] = AbodeSystem(abode, polling)
for platform in PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(config_entry, platform)
)
hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
await setup_hass_events(hass)
await hass.async_add_executor_job(setup_hass_services, hass)
@@ -156,14 +149,9 @@ async def async_unload_entry(hass, config_entry):
hass.services.async_remove(DOMAIN, SERVICE_CAPTURE_IMAGE)
hass.services.async_remove(DOMAIN, SERVICE_TRIGGER_AUTOMATION)
tasks = []
for platform in PLATFORMS:
tasks.append(
hass.config_entries.async_forward_entry_unload(config_entry, platform)
)
await gather(*tasks)
unload_ok = await hass.config_entries.async_unload_platforms(
config_entry, PLATFORMS
)
await hass.async_add_executor_job(hass.data[DOMAIN].abode.events.stop)
await hass.async_add_executor_job(hass.data[DOMAIN].abode.logout)
@@ -171,7 +159,7 @@ async def async_unload_entry(hass, config_entry):
hass.data[DOMAIN].logout_listener()
hass.data.pop(DOMAIN)
return True
return unload_ok
def setup_hass_services(hass):
@@ -18,7 +18,6 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
"""Config flow for Abode."""
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_POLL
def __init__(self):
"""Initialize."""
+2 -1
View File
@@ -7,5 +7,6 @@
"codeowners": ["@shred86"],
"homekit": {
"models": ["Abode", "Iota"]
}
},
"iot_class": "cloud_push"
}
+25 -2
View File
@@ -1,21 +1,44 @@
capture_image:
name: Capture image
description: Request a new image capture from a camera device.
fields:
entity_id:
name: Entity
description: Entity id of the camera to request an image.
example: camera.downstairs_motion_camera
required: true
selector:
entity:
integration: abode
domain: camera
change_setting:
name: Change setting
description: Change an Abode system setting.
fields:
setting:
name: Setting
description: Setting to change.
required: true
example: beeper_mute
selector:
text:
value:
name: Value
description: Value of the setting.
required: true
example: "1"
selector:
text:
trigger_automation:
name: Trigger automation
description: Trigger an Abode automation.
fields:
entity_id:
name: Entity
description: Entity id of the automation to trigger.
example: switch.my_automation
required: true
selector:
entity:
integration: abode
domain: switch
@@ -3,7 +3,22 @@
"abort": {
"single_instance_allowed": "Solo se permite una \u00fanica configuraci\u00f3n de Abode."
},
"error": {
"invalid_mfa_code": "C\u00f3digo MFA no v\u00e1lido"
},
"step": {
"mfa": {
"data": {
"mfa_code": "C\u00f3digo MFA (6 d\u00edgitos)"
},
"title": "Ingrese su c\u00f3digo MFA para Abode"
},
"reauth_confirm": {
"data": {
"password": "Contrase\u00f1a"
},
"title": "Complete su informaci\u00f3n de inicio de sesi\u00f3n de Abode"
},
"user": {
"data": {
"password": "Contrase\u00f1a",
@@ -1,10 +1,26 @@
{
"config": {
"abort": {
"reauth_successful": "\u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05de\u05d7\u05d3\u05e9 \u05d4\u05e6\u05dc\u05d9\u05d7",
"single_instance_allowed": "\u05ea\u05e6\u05d5\u05e8\u05ea\u05d5 \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4. \u05e8\u05e7 \u05ea\u05e6\u05d5\u05e8\u05d4 \u05d0\u05d7\u05ea \u05d0\u05e4\u05e9\u05e8\u05d9\u05ea."
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"invalid_auth": "\u05d0\u05d9\u05de\u05d5\u05ea \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9"
},
"step": {
"reauth_confirm": {
"data": {
"password": "\u05e1\u05d9\u05e1\u05de\u05d4",
"username": "\u05d3\u05d5\u05d0\"\u05dc"
}
},
"user": {
"data": {
"username": "\u05e9\u05dd \u05de\u05e9\u05ea\u05de\u05e9"
}
"password": "\u05e1\u05d9\u05e1\u05de\u05d4",
"username": "\u05d3\u05d5\u05d0\"\u05dc"
},
"title": "\u05d9\u05e9 \u05dc\u05de\u05dc\u05d0 \u05d0\u05ea \u05e4\u05e8\u05d8\u05d9 \u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e9\u05dc\u05da \u05dc\u05d0\u05d3\u05d5\u05d1\u05d9"
}
}
}
@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "Re-autentificare efectuata cu succes"
}
}
}
@@ -1,34 +1,34 @@
"""The AccuWeather component."""
import asyncio
from __future__ import annotations
from datetime import timedelta
import logging
from typing import Any, Dict
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientSession
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.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import (
ATTR_FORECAST,
CONF_FORECAST,
COORDINATOR,
DOMAIN,
UNDO_UPDATE_LISTENER,
)
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN
_LOGGER = logging.getLogger(__name__)
PLATFORMS = ["sensor", "weather"]
async def async_setup_entry(hass, config_entry) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up AccuWeather as config entry."""
api_key = config_entry.data[CONF_API_KEY]
location_key = config_entry.unique_id
forecast = config_entry.options.get(CONF_FORECAST, False)
api_key: str = entry.data[CONF_API_KEY]
assert entry.unique_id is not None
location_key = entry.unique_id
forecast: bool = entry.options.get(CONF_FORECAST, False)
_LOGGER.debug("Using location_key: %s, get forecast: %s", location_key, forecast)
@@ -39,49 +39,41 @@ async def async_setup_entry(hass, config_entry) -> bool:
)
await coordinator.async_config_entry_first_refresh()
undo_listener = config_entry.add_update_listener(update_listener)
entry.async_on_unload(entry.add_update_listener(update_listener))
hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = {
COORDINATOR: coordinator,
UNDO_UPDATE_LISTENER: undo_listener,
}
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
for platform in PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(config_entry, platform)
)
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
return True
async def async_unload_entry(hass, config_entry):
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
unload_ok = all(
await asyncio.gather(
*[
hass.config_entries.async_forward_entry_unload(config_entry, platform)
for platform in PLATFORMS
]
)
)
hass.data[DOMAIN][config_entry.entry_id][UNDO_UPDATE_LISTENER]()
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(config_entry.entry_id)
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
async def update_listener(hass, config_entry):
async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Update listener."""
await hass.config_entries.async_reload(config_entry.entry_id)
await hass.config_entries.async_reload(entry.entry_id)
class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator):
class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[Dict[str, Any]]):
"""Class to manage fetching AccuWeather data API."""
def __init__(self, hass, session, api_key, location_key, forecast: bool):
def __init__(
self,
hass: HomeAssistant,
session: ClientSession,
api_key: str,
location_key: str,
forecast: bool,
) -> None:
"""Initialize."""
self.location_key = location_key
self.forecast = forecast
@@ -100,7 +92,7 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator):
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
async def _async_update_data(self):
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
try:
async with timeout(10):
@@ -117,5 +109,5 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator):
RequestsExceededError,
) as error:
raise UpdateFailed(error) from error
_LOGGER.debug("Requests remaining: %s", self.accuweather.requests_remaining)
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return {**current, **{ATTR_FORECAST: forecast}}
@@ -1,5 +1,8 @@
"""Adds config flow for AccuWeather."""
from __future__ import annotations
import asyncio
from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientError
@@ -8,8 +11,10 @@ from async_timeout import timeout
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
@@ -20,9 +25,10 @@ class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
"""Config flow for AccuWeather."""
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_CLOUD_POLL
async def async_step_user(self, user_input=None):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle a flow initialized by the user."""
# Under the terms of use of the API, one user can use one free API key. Due to
# the small number of requests allowed, we only allow one integration instance.
@@ -78,7 +84,9 @@ class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_options_flow(config_entry):
def async_get_options_flow(
config_entry: ConfigEntry,
) -> AccuWeatherOptionsFlowHandler:
"""Options callback for AccuWeather."""
return AccuWeatherOptionsFlowHandler(config_entry)
@@ -86,15 +94,19 @@ class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
class AccuWeatherOptionsFlowHandler(config_entries.OptionsFlow):
"""Config flow options for AccuWeather."""
def __init__(self, config_entry):
def __init__(self, entry: ConfigEntry) -> None:
"""Initialize AccuWeather options flow."""
self.config_entry = config_entry
self.config_entry = entry
async def async_step_init(self, user_input=None):
async def async_step_init(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Manage the options."""
return await self.async_step_user()
async def async_step_user(self, user_input=None):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle a flow initialized by the user."""
if user_input is not None:
return self.async_create_entry(title="", data=user_input)
+67 -36
View File
@@ -1,4 +1,9 @@
"""Constants for AccuWeather integration."""
from __future__ import annotations
from typing import Final
from homeassistant.components.sensor import ATTR_STATE_CLASS, STATE_CLASS_MEASUREMENT
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -33,18 +38,23 @@ from homeassistant.const import (
UV_INDEX,
)
ATTRIBUTION = "Data provided by AccuWeather"
ATTR_FORECAST = CONF_FORECAST = "forecast"
ATTR_LABEL = "label"
ATTR_UNIT_IMPERIAL = "Imperial"
ATTR_UNIT_METRIC = "Metric"
COORDINATOR = "coordinator"
DOMAIN = "accuweather"
MANUFACTURER = "AccuWeather, Inc."
NAME = "AccuWeather"
UNDO_UPDATE_LISTENER = "undo_update_listener"
from .model import SensorDescription
CONDITION_CLASSES = {
API_IMPERIAL: Final = "Imperial"
API_METRIC: Final = "Metric"
ATTRIBUTION: Final = "Data provided by AccuWeather"
ATTR_ENABLED: Final = "enabled"
ATTR_FORECAST: Final = "forecast"
ATTR_LABEL: Final = "label"
ATTR_UNIT_IMPERIAL: Final = "unit_imperial"
ATTR_UNIT_METRIC: Final = "unit_metric"
CONF_FORECAST: Final = "forecast"
DOMAIN: Final = "accuweather"
MANUFACTURER: Final = "AccuWeather, Inc."
MAX_FORECAST_DAYS: Final = 4
NAME: Final = "AccuWeather"
CONDITION_CLASSES: Final[dict[str, list[int]]] = {
ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
ATTR_CONDITION_CLOUDY: [7, 8, 38],
ATTR_CONDITION_EXCEPTIONAL: [24, 30, 31],
@@ -61,15 +71,14 @@ CONDITION_CLASSES = {
ATTR_CONDITION_WINDY: [32],
}
FORECAST_DAYS = [0, 1, 2, 3, 4]
FORECAST_SENSOR_TYPES = {
FORECAST_SENSOR_TYPES: Final[dict[str, SensorDescription]] = {
"CloudCoverDay": {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:weather-cloudy",
ATTR_LABEL: "Cloud Cover Day",
ATTR_UNIT_METRIC: PERCENTAGE,
ATTR_UNIT_IMPERIAL: PERCENTAGE,
ATTR_ENABLED: False,
},
"CloudCoverNight": {
ATTR_DEVICE_CLASS: None,
@@ -77,6 +86,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Cloud Cover Night",
ATTR_UNIT_METRIC: PERCENTAGE,
ATTR_UNIT_IMPERIAL: PERCENTAGE,
ATTR_ENABLED: False,
},
"Grass": {
ATTR_DEVICE_CLASS: None,
@@ -84,6 +94,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Grass Pollen",
ATTR_UNIT_METRIC: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_UNIT_IMPERIAL: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_ENABLED: False,
},
"HoursOfSun": {
ATTR_DEVICE_CLASS: None,
@@ -91,6 +102,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Hours Of Sun",
ATTR_UNIT_METRIC: TIME_HOURS,
ATTR_UNIT_IMPERIAL: TIME_HOURS,
ATTR_ENABLED: True,
},
"Mold": {
ATTR_DEVICE_CLASS: None,
@@ -98,6 +110,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Mold Pollen",
ATTR_UNIT_METRIC: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_UNIT_IMPERIAL: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_ENABLED: False,
},
"Ozone": {
ATTR_DEVICE_CLASS: None,
@@ -105,6 +118,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Ozone",
ATTR_UNIT_METRIC: None,
ATTR_UNIT_IMPERIAL: None,
ATTR_ENABLED: False,
},
"Ragweed": {
ATTR_DEVICE_CLASS: None,
@@ -112,6 +126,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Ragweed Pollen",
ATTR_UNIT_METRIC: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_UNIT_IMPERIAL: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_ENABLED: False,
},
"RealFeelTemperatureMax": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -119,6 +134,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature Max",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: True,
},
"RealFeelTemperatureMin": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -126,6 +142,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature Min",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: True,
},
"RealFeelTemperatureShadeMax": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -133,6 +150,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature Shade Max",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
},
"RealFeelTemperatureShadeMin": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -140,6 +158,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature Shade Min",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
},
"ThunderstormProbabilityDay": {
ATTR_DEVICE_CLASS: None,
@@ -147,6 +166,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Thunderstorm Probability Day",
ATTR_UNIT_METRIC: PERCENTAGE,
ATTR_UNIT_IMPERIAL: PERCENTAGE,
ATTR_ENABLED: True,
},
"ThunderstormProbabilityNight": {
ATTR_DEVICE_CLASS: None,
@@ -154,6 +174,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Thunderstorm Probability Night",
ATTR_UNIT_METRIC: PERCENTAGE,
ATTR_UNIT_IMPERIAL: PERCENTAGE,
ATTR_ENABLED: True,
},
"Tree": {
ATTR_DEVICE_CLASS: None,
@@ -161,6 +182,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Tree Pollen",
ATTR_UNIT_METRIC: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_UNIT_IMPERIAL: CONCENTRATION_PARTS_PER_CUBIC_METER,
ATTR_ENABLED: False,
},
"UVIndex": {
ATTR_DEVICE_CLASS: None,
@@ -168,6 +190,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "UV Index",
ATTR_UNIT_METRIC: UV_INDEX,
ATTR_UNIT_IMPERIAL: UV_INDEX,
ATTR_ENABLED: True,
},
"WindGustDay": {
ATTR_DEVICE_CLASS: None,
@@ -175,6 +198,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Wind Gust Day",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: False,
},
"WindGustNight": {
ATTR_DEVICE_CLASS: None,
@@ -182,6 +206,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Wind Gust Night",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: False,
},
"WindDay": {
ATTR_DEVICE_CLASS: None,
@@ -189,6 +214,7 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Wind Day",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: True,
},
"WindNight": {
ATTR_DEVICE_CLASS: None,
@@ -196,37 +222,19 @@ FORECAST_SENSOR_TYPES = {
ATTR_LABEL: "Wind Night",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: True,
},
}
OPTIONAL_SENSORS = (
"ApparentTemperature",
"CloudCover",
"CloudCoverDay",
"CloudCoverNight",
"DewPoint",
"Grass",
"Mold",
"Ozone",
"Ragweed",
"RealFeelTemperatureShade",
"RealFeelTemperatureShadeMax",
"RealFeelTemperatureShadeMin",
"Tree",
"WetBulbTemperature",
"WindChillTemperature",
"WindGust",
"WindGustDay",
"WindGustNight",
)
SENSOR_TYPES = {
SENSOR_TYPES: Final[dict[str, SensorDescription]] = {
"ApparentTemperature": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
ATTR_ICON: None,
ATTR_LABEL: "Apparent Temperature",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"Ceiling": {
ATTR_DEVICE_CLASS: None,
@@ -234,6 +242,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Cloud Ceiling",
ATTR_UNIT_METRIC: LENGTH_METERS,
ATTR_UNIT_IMPERIAL: LENGTH_FEET,
ATTR_ENABLED: True,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"CloudCover": {
ATTR_DEVICE_CLASS: None,
@@ -241,6 +251,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Cloud Cover",
ATTR_UNIT_METRIC: PERCENTAGE,
ATTR_UNIT_IMPERIAL: PERCENTAGE,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"DewPoint": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -248,6 +260,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Dew Point",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"RealFeelTemperature": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -255,6 +269,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: True,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"RealFeelTemperatureShade": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -262,6 +278,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "RealFeel Temperature Shade",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"Precipitation": {
ATTR_DEVICE_CLASS: None,
@@ -269,6 +287,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Precipitation",
ATTR_UNIT_METRIC: LENGTH_MILLIMETERS,
ATTR_UNIT_IMPERIAL: LENGTH_INCHES,
ATTR_ENABLED: True,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"PressureTendency": {
ATTR_DEVICE_CLASS: "accuweather__pressure_tendency",
@@ -276,6 +296,7 @@ SENSOR_TYPES = {
ATTR_LABEL: "Pressure Tendency",
ATTR_UNIT_METRIC: None,
ATTR_UNIT_IMPERIAL: None,
ATTR_ENABLED: True,
},
"UVIndex": {
ATTR_DEVICE_CLASS: None,
@@ -283,6 +304,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "UV Index",
ATTR_UNIT_METRIC: UV_INDEX,
ATTR_UNIT_IMPERIAL: UV_INDEX,
ATTR_ENABLED: True,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"WetBulbTemperature": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -290,6 +313,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Wet Bulb Temperature",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"WindChillTemperature": {
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
@@ -297,6 +322,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Wind Chill Temperature",
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"Wind": {
ATTR_DEVICE_CLASS: None,
@@ -304,6 +331,8 @@ SENSOR_TYPES = {
ATTR_LABEL: "Wind",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: True,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
"WindGust": {
ATTR_DEVICE_CLASS: None,
@@ -311,5 +340,7 @@ SENSOR_TYPES = {
ATTR_LABEL: "Wind Gust",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
ATTR_ENABLED: False,
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
},
}
@@ -2,8 +2,9 @@
"domain": "accuweather",
"name": "AccuWeather",
"documentation": "https://www.home-assistant.io/integrations/accuweather/",
"requirements": ["accuweather==0.1.1"],
"requirements": ["accuweather==0.2.0"],
"codeowners": ["@bieniu"],
"config_flow": true,
"quality_scale": "platinum"
"quality_scale": "platinum",
"iot_class": "cloud_polling"
}
@@ -0,0 +1,16 @@
"""Type definitions for AccuWeather integration."""
from __future__ import annotations
from typing import TypedDict
class SensorDescription(TypedDict, total=False):
"""Sensor description class."""
device_class: str | None
icon: str | None
label: str
unit_metric: str | None
unit_imperial: str | None
enabled: bool
state_class: str | None
+97 -65
View File
@@ -1,44 +1,59 @@
"""Support for the AccuWeather service."""
from homeassistant.components.sensor import SensorEntity
from __future__ import annotations
from typing import Any, cast
from homeassistant.components.sensor import ATTR_STATE_CLASS, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_ATTRIBUTION,
ATTR_DEVICE_CLASS,
ATTR_ICON,
CONF_NAME,
DEVICE_CLASS_TEMPERATURE,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AccuWeatherDataUpdateCoordinator
from .const import (
API_IMPERIAL,
API_METRIC,
ATTR_ENABLED,
ATTR_FORECAST,
ATTR_ICON,
ATTR_LABEL,
ATTR_UNIT_IMPERIAL,
ATTR_UNIT_METRIC,
ATTRIBUTION,
COORDINATOR,
DOMAIN,
FORECAST_DAYS,
FORECAST_SENSOR_TYPES,
MANUFACTURER,
MAX_FORECAST_DAYS,
NAME,
OPTIONAL_SENSORS,
SENSOR_TYPES,
)
PARALLEL_UPDATES = 1
async def async_setup_entry(hass, config_entry, async_add_entities):
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add AccuWeather entities from a config_entry."""
name = config_entry.data[CONF_NAME]
name: str = entry.data[CONF_NAME]
coordinator = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR]
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
sensors = []
sensors: list[AccuWeatherSensor] = []
for sensor in SENSOR_TYPES:
sensors.append(AccuWeatherSensor(name, sensor, coordinator))
if coordinator.forecast:
for sensor in FORECAST_SENSOR_TYPES:
for day in FORECAST_DAYS:
for day in range(MAX_FORECAST_DAYS + 1):
# Some air quality/allergy sensors are only available for certain
# locations.
if sensor in coordinator.data[ATTR_FORECAST][0]:
@@ -46,38 +61,52 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
AccuWeatherSensor(name, sensor, coordinator, forecast_day=day)
)
async_add_entities(sensors, False)
async_add_entities(sensors)
class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
"""Define an AccuWeather entity."""
def __init__(self, name, kind, coordinator, forecast_day=None):
coordinator: AccuWeatherDataUpdateCoordinator
def __init__(
self,
name: str,
kind: str,
coordinator: AccuWeatherDataUpdateCoordinator,
forecast_day: int | None = None,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._sensor_data = _get_sensor_data(coordinator.data, forecast_day, kind)
if forecast_day is None:
self._description = SENSOR_TYPES[kind]
else:
self._description = FORECAST_SENSOR_TYPES[kind]
self._unit_system = API_METRIC if coordinator.is_metric else API_IMPERIAL
self._name = name
self.kind = kind
self._device_class = None
self._attrs = {ATTR_ATTRIBUTION: ATTRIBUTION}
self._unit_system = "Metric" if self.coordinator.is_metric else "Imperial"
self.forecast_day = forecast_day
self._attr_state_class = self._description.get(ATTR_STATE_CLASS)
@property
def name(self):
def name(self) -> str:
"""Return the name."""
if self.forecast_day is not None:
return f"{self._name} {FORECAST_SENSOR_TYPES[self.kind][ATTR_LABEL]} {self.forecast_day}d"
return f"{self._name} {SENSOR_TYPES[self.kind][ATTR_LABEL]}"
return f"{self._name} {self._description[ATTR_LABEL]} {self.forecast_day}d"
return f"{self._name} {self._description[ATTR_LABEL]}"
@property
def unique_id(self):
def unique_id(self) -> str:
"""Return a unique_id for this entity."""
if self.forecast_day is not None:
return f"{self.coordinator.location_key}-{self.kind}-{self.forecast_day}".lower()
return f"{self.coordinator.location_key}-{self.kind}".lower()
@property
def device_info(self):
def device_info(self) -> DeviceInfo:
"""Return the device info."""
return {
"identifiers": {(DOMAIN, self.coordinator.location_key)},
@@ -87,72 +116,54 @@ class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
}
@property
def state(self):
def state(self) -> StateType:
"""Return the state."""
if self.forecast_day is not None:
if (
FORECAST_SENSOR_TYPES[self.kind][ATTR_DEVICE_CLASS]
== DEVICE_CLASS_TEMPERATURE
):
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][
self.kind
]["Value"]
if self.kind in ["WindDay", "WindNight", "WindGustDay", "WindGustNight"]:
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][
self.kind
]["Speed"]["Value"]
if self.kind in ["Grass", "Mold", "Ragweed", "Tree", "UVIndex", "Ozone"]:
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][
self.kind
]["Value"]
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][self.kind]
if self._description["device_class"] == DEVICE_CLASS_TEMPERATURE:
return cast(float, self._sensor_data["Value"])
if self.kind == "UVIndex":
return cast(int, self._sensor_data["Value"])
if self.kind in ["Grass", "Mold", "Ragweed", "Tree", "Ozone"]:
return cast(int, self._sensor_data["Value"])
if self.kind == "Ceiling":
return round(self.coordinator.data[self.kind][self._unit_system]["Value"])
return round(self._sensor_data[self._unit_system]["Value"])
if self.kind == "PressureTendency":
return self.coordinator.data[self.kind]["LocalizedText"].lower()
if SENSOR_TYPES[self.kind][ATTR_DEVICE_CLASS] == DEVICE_CLASS_TEMPERATURE:
return self.coordinator.data[self.kind][self._unit_system]["Value"]
return cast(str, self._sensor_data["LocalizedText"].lower())
if self._description["device_class"] == DEVICE_CLASS_TEMPERATURE:
return cast(float, self._sensor_data[self._unit_system]["Value"])
if self.kind == "Precipitation":
return self.coordinator.data["PrecipitationSummary"][self.kind][
self._unit_system
]["Value"]
return cast(float, self._sensor_data[self._unit_system]["Value"])
if self.kind in ["Wind", "WindGust"]:
return self.coordinator.data[self.kind]["Speed"][self._unit_system]["Value"]
return self.coordinator.data[self.kind]
return cast(float, self._sensor_data["Speed"][self._unit_system]["Value"])
if self.kind in ["WindDay", "WindNight", "WindGustDay", "WindGustNight"]:
return cast(StateType, self._sensor_data["Speed"]["Value"])
return cast(StateType, self._sensor_data)
@property
def icon(self):
def icon(self) -> str | None:
"""Return the icon."""
if self.forecast_day is not None:
return FORECAST_SENSOR_TYPES[self.kind][ATTR_ICON]
return SENSOR_TYPES[self.kind][ATTR_ICON]
return self._description[ATTR_ICON]
@property
def device_class(self):
def device_class(self) -> str | None:
"""Return the device_class."""
if self.forecast_day is not None:
return FORECAST_SENSOR_TYPES[self.kind][ATTR_DEVICE_CLASS]
return SENSOR_TYPES[self.kind][ATTR_DEVICE_CLASS]
return self._description[ATTR_DEVICE_CLASS]
@property
def unit_of_measurement(self):
def unit_of_measurement(self) -> str | None:
"""Return the unit the value is expressed in."""
if self.forecast_day is not None:
return FORECAST_SENSOR_TYPES[self.kind][self._unit_system]
return SENSOR_TYPES[self.kind][self._unit_system]
if self.coordinator.is_metric:
return self._description[ATTR_UNIT_METRIC]
return self._description[ATTR_UNIT_IMPERIAL]
@property
def extra_state_attributes(self):
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the state attributes."""
if self.forecast_day is not None:
if self.kind in ["WindDay", "WindNight", "WindGustDay", "WindGustNight"]:
self._attrs["direction"] = self.coordinator.data[ATTR_FORECAST][
self.forecast_day
][self.kind]["Direction"]["English"]
self._attrs["direction"] = self._sensor_data["Direction"]["English"]
elif self.kind in ["Grass", "Mold", "Ragweed", "Tree", "UVIndex", "Ozone"]:
self._attrs["level"] = self.coordinator.data[ATTR_FORECAST][
self.forecast_day
][self.kind]["Category"]
self._attrs["level"] = self._sensor_data["Category"]
return self._attrs
if self.kind == "UVIndex":
self._attrs["level"] = self.coordinator.data["UVIndexText"]
@@ -161,6 +172,27 @@ class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
return self._attrs
@property
def entity_registry_enabled_default(self):
def entity_registry_enabled_default(self) -> bool:
"""Return if the entity should be enabled when first added to the entity registry."""
return bool(self.kind not in OPTIONAL_SENSORS)
return self._description[ATTR_ENABLED]
@callback
def _handle_coordinator_update(self) -> None:
"""Handle data update."""
self._sensor_data = _get_sensor_data(
self.coordinator.data, self.forecast_day, self.kind
)
self.async_write_ha_state()
def _get_sensor_data(
sensors: dict[str, Any], forecast_day: int | None, kind: str
) -> Any:
"""Get sensor data."""
if forecast_day is not None:
return sensors[ATTR_FORECAST][forecast_day][kind]
if kind == "Precipitation":
return sensors["PrecipitationSummary"][kind]
return sensors[kind]
@@ -1,10 +1,14 @@
"""Provide info to system health."""
from __future__ import annotations
from typing import Any
from accuweather.const import ENDPOINT
from homeassistant.components import system_health
from homeassistant.core import HomeAssistant, callback
from .const import COORDINATOR, DOMAIN
from .const import DOMAIN
@callback
@@ -15,10 +19,10 @@ def async_register(
register.async_register_info(system_health_info)
async def system_health_info(hass):
async def system_health_info(hass: HomeAssistant) -> dict[str, Any]:
"""Get info for the info page."""
remaining_requests = list(hass.data[DOMAIN].values())[0][
COORDINATOR
remaining_requests = list(hass.data[DOMAIN].values())[
0
].accuweather.requests_remaining
return {
@@ -16,6 +16,7 @@
"longitude": "L\u00e4ngengrad",
"name": "Name"
},
"description": "Wenn du Hilfe bei der Konfiguration ben\u00f6tigst, schaue hier nach: https://www.home-assistant.io/integrations/accuweather/\n\nEinige Sensoren sind standardm\u00e4\u00dfig nicht aktiviert. Du kannst sie in der Entit\u00e4tsregister nach der Integrationskonfiguration aktivieren.\nDie Wettervorhersage ist nicht standardm\u00e4\u00dfig aktiviert. Du kannst sie in den Integrationsoptionen aktivieren.",
"title": "AccuWeather"
}
}
@@ -25,7 +26,9 @@
"user": {
"data": {
"forecast": "Wettervorhersage"
}
},
"description": "Aufgrund der Einschr\u00e4nkungen der kostenlosen Version des AccuWeather-API-Schl\u00fcssels werden bei aktivierter Wettervorhersage Datenaktualisierungen alle 80 Minuten statt alle 40 Minuten durchgef\u00fchrt.",
"title": "AccuWeather Optionen"
}
}
},
@@ -16,8 +16,14 @@
"data": {
"forecast": "Pron\u00f3stico del tiempo"
},
"description": "Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilita el pron\u00f3stico del tiempo, las actualizaciones de datos se realizar\u00e1n cada 64 minutos en lugar de cada 32 minutos."
"description": "Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilita el pron\u00f3stico del tiempo, las actualizaciones de datos se realizar\u00e1n cada 64 minutos en lugar de cada 32 minutos.",
"title": "Opciones de AccuWeather"
}
}
},
"system_health": {
"info": {
"remaining_requests": "Solicitudes permitidas restantes"
}
}
}
@@ -1,9 +1,19 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u05ea\u05e6\u05d5\u05e8\u05ea\u05d5 \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4. \u05e8\u05e7 \u05ea\u05e6\u05d5\u05e8\u05d4 \u05d0\u05d7\u05ea \u05d0\u05e4\u05e9\u05e8\u05d9\u05ea."
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"invalid_api_key": "\u05de\u05e4\u05ea\u05d7 API \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9"
},
"step": {
"user": {
"data": {
"longitude": "\u05e7\u05d5 \u05d0\u05d5\u05e8\u05da"
"api_key": "\u05de\u05e4\u05ea\u05d7 API",
"latitude": "\u05e7\u05d5 \u05e8\u05d5\u05d7\u05d1",
"longitude": "\u05e7\u05d5 \u05d0\u05d5\u05e8\u05da",
"name": "\u05e9\u05dd"
}
}
}
@@ -0,0 +1,9 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "Descendente",
"rising": "Creciente",
"steady": "Firme"
}
}
}
+54 -32
View File
@@ -1,5 +1,8 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from statistics import mean
from typing import Any, cast
from homeassistant.components.weather import (
ATTR_FORECAST_CONDITION,
@@ -10,17 +13,24 @@ from homeassistant.components.weather import (
ATTR_FORECAST_TIME,
ATTR_FORECAST_WIND_BEARING,
ATTR_FORECAST_WIND_SPEED,
Forecast,
WeatherEntity,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_NAME, TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.dt import utc_from_timestamp
from . import AccuWeatherDataUpdateCoordinator
from .const import (
API_IMPERIAL,
API_METRIC,
ATTR_FORECAST,
ATTRIBUTION,
CONDITION_CLASSES,
COORDINATOR,
DOMAIN,
MANUFACTURER,
NAME,
@@ -29,42 +39,47 @@ from .const import (
PARALLEL_UPDATES = 1
async def async_setup_entry(hass, config_entry, async_add_entities):
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add a AccuWeather weather entity from a config_entry."""
name = config_entry.data[CONF_NAME]
name: str = entry.data[CONF_NAME]
coordinator = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR]
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
async_add_entities([AccuWeatherEntity(name, coordinator)], False)
async_add_entities([AccuWeatherEntity(name, coordinator)])
class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
"""Define an AccuWeather entity."""
def __init__(self, name, coordinator):
coordinator: AccuWeatherDataUpdateCoordinator
def __init__(
self, name: str, coordinator: AccuWeatherDataUpdateCoordinator
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._name = name
self._attrs = {}
self._unit_system = "Metric" if self.coordinator.is_metric else "Imperial"
self._unit_system = API_METRIC if self.coordinator.is_metric else API_IMPERIAL
@property
def name(self):
def name(self) -> str:
"""Return the name."""
return self._name
@property
def attribution(self):
def attribution(self) -> str:
"""Return the attribution."""
return ATTRIBUTION
@property
def unique_id(self):
def unique_id(self) -> str:
"""Return a unique_id for this entity."""
return self.coordinator.location_key
@property
def device_info(self):
def device_info(self) -> DeviceInfo:
"""Return the device info."""
return {
"identifiers": {(DOMAIN, self.coordinator.location_key)},
@@ -74,7 +89,7 @@ class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
}
@property
def condition(self):
def condition(self) -> str | None:
"""Return the current condition."""
try:
return [
@@ -86,57 +101,65 @@ class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
return None
@property
def temperature(self):
def temperature(self) -> float:
"""Return the temperature."""
return self.coordinator.data["Temperature"][self._unit_system]["Value"]
return cast(
float, self.coordinator.data["Temperature"][self._unit_system]["Value"]
)
@property
def temperature_unit(self):
def temperature_unit(self) -> str:
"""Return the unit of measurement."""
return TEMP_CELSIUS if self.coordinator.is_metric else TEMP_FAHRENHEIT
@property
def pressure(self):
def pressure(self) -> float:
"""Return the pressure."""
return self.coordinator.data["Pressure"][self._unit_system]["Value"]
return cast(
float, self.coordinator.data["Pressure"][self._unit_system]["Value"]
)
@property
def humidity(self):
def humidity(self) -> int:
"""Return the humidity."""
return self.coordinator.data["RelativeHumidity"]
return cast(int, self.coordinator.data["RelativeHumidity"])
@property
def wind_speed(self):
def wind_speed(self) -> float:
"""Return the wind speed."""
return self.coordinator.data["Wind"]["Speed"][self._unit_system]["Value"]
return cast(
float, self.coordinator.data["Wind"]["Speed"][self._unit_system]["Value"]
)
@property
def wind_bearing(self):
def wind_bearing(self) -> int:
"""Return the wind bearing."""
return self.coordinator.data["Wind"]["Direction"]["Degrees"]
return cast(int, self.coordinator.data["Wind"]["Direction"]["Degrees"])
@property
def visibility(self):
def visibility(self) -> float:
"""Return the visibility."""
return self.coordinator.data["Visibility"][self._unit_system]["Value"]
return cast(
float, self.coordinator.data["Visibility"][self._unit_system]["Value"]
)
@property
def ozone(self):
def ozone(self) -> int | None:
"""Return the ozone level."""
# We only have ozone data for certain locations and only in the forecast data.
if self.coordinator.forecast and self.coordinator.data[ATTR_FORECAST][0].get(
"Ozone"
):
return self.coordinator.data[ATTR_FORECAST][0]["Ozone"]["Value"]
return cast(int, self.coordinator.data[ATTR_FORECAST][0]["Ozone"]["Value"])
return None
@property
def forecast(self):
def forecast(self) -> list[Forecast] | None:
"""Return the forecast array."""
if not self.coordinator.forecast:
return None
# remap keys from library to keys understood by the weather component
forecast = [
return [
{
ATTR_FORECAST_TIME: utc_from_timestamp(item["EpochDate"]).isoformat(),
ATTR_FORECAST_TEMP: item["TemperatureMax"]["Value"],
@@ -158,10 +181,9 @@ class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
}
for item in self.coordinator.data[ATTR_FORECAST]
]
return forecast
@staticmethod
def _calc_precipitation(day: dict) -> float:
def _calc_precipitation(day: dict[str, Any]) -> float:
"""Return sum of the precipitation."""
precip_sum = 0
precip_types = ["Rain", "Snow", "Ice"]
@@ -0,0 +1,34 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
from typing import Final
from homeassistant.const import STATE_OFF, STATE_ON
CONF_WRITE_TIMEOUT: Final = "write_timeout"
DEFAULT_NAME: Final = "Acer Projector"
DEFAULT_TIMEOUT: Final = 1
DEFAULT_WRITE_TIMEOUT: Final = 1
ECO_MODE: Final = "ECO Mode"
ICON: Final = "mdi:projector"
INPUT_SOURCE: Final = "Input Source"
LAMP: Final = "Lamp"
LAMP_HOURS: Final = "Lamp Hours"
MODEL: Final = "Model"
# Commands known to the projector
CMD_DICT: Final[dict[str, str]] = {
LAMP: "* 0 Lamp ?\r",
LAMP_HOURS: "* 0 Lamp\r",
INPUT_SOURCE: "* 0 Src ?\r",
ECO_MODE: "* 0 IR 052\r",
MODEL: "* 0 IR 035\r",
STATE_ON: "* 0 IR 001\r",
STATE_OFF: "* 0 IR 002\r",
}
@@ -3,5 +3,6 @@
"name": "Acer Projector",
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"requirements": ["pyserial==3.5"],
"codeowners": []
"codeowners": [],
"iot_class": "local_polling"
}
@@ -1,6 +1,9 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
import logging
import re
from typing import Any
import serial
import voluptuous as vol
@@ -14,39 +17,26 @@ from homeassistant.const import (
STATE_ON,
STATE_UNKNOWN,
)
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import (
CMD_DICT,
CONF_WRITE_TIMEOUT,
DEFAULT_NAME,
DEFAULT_TIMEOUT,
DEFAULT_WRITE_TIMEOUT,
ECO_MODE,
ICON,
INPUT_SOURCE,
LAMP,
LAMP_HOURS,
)
_LOGGER = logging.getLogger(__name__)
CONF_WRITE_TIMEOUT = "write_timeout"
DEFAULT_NAME = "Acer Projector"
DEFAULT_TIMEOUT = 1
DEFAULT_WRITE_TIMEOUT = 1
ECO_MODE = "ECO Mode"
ICON = "mdi:projector"
INPUT_SOURCE = "Input Source"
LAMP = "Lamp"
LAMP_HOURS = "Lamp Hours"
MODEL = "Model"
# Commands known to the projector
CMD_DICT = {
LAMP: "* 0 Lamp ?\r",
LAMP_HOURS: "* 0 Lamp\r",
INPUT_SOURCE: "* 0 Src ?\r",
ECO_MODE: "* 0 IR 052\r",
MODEL: "* 0 IR 035\r",
STATE_ON: "* 0 IR 001\r",
STATE_OFF: "* 0 IR 002\r",
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_FILENAME): cv.isdevice,
@@ -59,7 +49,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
)
def setup_platform(hass, config, add_entities, discovery_info=None):
def setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType,
) -> None:
"""Connect with serial port and return Acer Projector."""
serial_port = config[CONF_FILENAME]
name = config[CONF_NAME]
@@ -72,10 +67,16 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
class AcerSwitch(SwitchEntity):
"""Represents an Acer Projector as a switch."""
def __init__(self, serial_port, name, timeout, write_timeout, **kwargs):
def __init__(
self,
serial_port: str,
name: str,
timeout: int,
write_timeout: int,
) -> None:
"""Init of the Acer projector."""
self.ser = serial.Serial(
port=serial_port, timeout=timeout, write_timeout=write_timeout, **kwargs
port=serial_port, timeout=timeout, write_timeout=write_timeout
)
self._serial_port = serial_port
self._name = name
@@ -87,7 +88,7 @@ class AcerSwitch(SwitchEntity):
ECO_MODE: STATE_UNKNOWN,
}
def _write_read(self, msg):
def _write_read(self, msg: str) -> str:
"""Write to the projector and read the return."""
ret = ""
# Sometimes the projector won't answer for no reason or the projector
@@ -96,8 +97,7 @@ class AcerSwitch(SwitchEntity):
try:
if not self.ser.is_open:
self.ser.open()
msg = msg.encode("utf-8")
self.ser.write(msg)
self.ser.write(msg.encode("utf-8"))
# Size is an experience value there is no real limit.
# AFAIK there is no limit and no end character so we will usually
# need to wait for timeout
@@ -107,7 +107,7 @@ class AcerSwitch(SwitchEntity):
self.ser.close()
return ret
def _write_read_format(self, msg):
def _write_read_format(self, msg: str) -> str:
"""Write msg, obtain answer and format output."""
# answers are formatted as ***\answer\r***
awns = self._write_read(msg)
@@ -117,29 +117,33 @@ class AcerSwitch(SwitchEntity):
return STATE_UNKNOWN
@property
def available(self):
def available(self) -> bool:
"""Return if projector is available."""
return self._available
@property
def name(self):
def name(self) -> str:
"""Return name of the projector."""
return self._name
@property
def is_on(self):
def icon(self) -> str:
"""Return the icon."""
return ICON
@property
def is_on(self) -> bool:
"""Return if the projector is turned on."""
return self._state
@property
def extra_state_attributes(self):
def extra_state_attributes(self) -> dict[str, str]:
"""Return state attributes."""
return self._attributes
def update(self):
def update(self) -> None:
"""Get the latest state from the projector."""
msg = CMD_DICT[LAMP]
awns = self._write_read_format(msg)
awns = self._write_read_format(CMD_DICT[LAMP])
if awns == "Lamp 1":
self._state = True
self._available = True
@@ -155,14 +159,14 @@ class AcerSwitch(SwitchEntity):
awns = self._write_read_format(msg)
self._attributes[key] = awns
def turn_on(self, **kwargs):
def turn_on(self, **kwargs: Any) -> None:
"""Turn the projector on."""
msg = CMD_DICT[STATE_ON]
self._write_read(msg)
self._state = STATE_ON
self._state = True
def turn_off(self, **kwargs):
def turn_off(self, **kwargs: Any) -> None:
"""Turn the projector off."""
msg = CMD_DICT[STATE_OFF]
self._write_read(msg)
self._state = STATE_OFF
self._state = False
+4 -12
View File
@@ -1,5 +1,4 @@
"""The Rollease Acmeda Automate integration."""
import asyncio
from homeassistant import config_entries, core
@@ -23,10 +22,7 @@ async def async_setup_entry(
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][config_entry.entry_id] = hub
for platform in PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(config_entry, platform)
)
hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
return True
@@ -37,14 +33,10 @@ async def async_unload_entry(
"""Unload a config entry."""
hub = hass.data[DOMAIN][config_entry.entry_id]
unload_ok = all(
await asyncio.gather(
*[
hass.config_entries.async_forward_entry_unload(config_entry, platform)
for platform in PLATFORMS
]
)
unload_ok = await hass.config_entries.async_unload_platforms(
config_entry, PLATFORMS
)
if not await hub.async_reset():
return False
+1 -1
View File
@@ -13,7 +13,7 @@ from .const import ACMEDA_ENTITY_REMOVE, DOMAIN, LOGGER
class AcmedaBase(entity.Entity):
"""Base representation of an Acmeda roller."""
def __init__(self, roller: aiopulse.Roller):
def __init__(self, roller: aiopulse.Roller) -> None:
"""Initialize the roller."""
self.roller = roller
@@ -17,7 +17,6 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a Acmeda config flow."""
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_POLL
def __init__(self):
"""Initialize the config flow."""
@@ -4,7 +4,6 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/acmeda",
"requirements": ["aiopulse==0.4.2"],
"codeowners": [
"@atmurray"
]
}
"codeowners": ["@atmurray"],
"iot_class": "local_push"
}
@@ -0,0 +1,14 @@
{
"config": {
"abort": {
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea"
},
"step": {
"user": {
"data": {
"id": "\u05de\u05d6\u05d4\u05d4 \u05de\u05d0\u05e8\u05d7"
}
}
}
}
}
@@ -0,0 +1,12 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import re
from typing import Final
LEASES_REGEX: Final[re.Pattern] = re.compile(
r"(?P<ip>([0-9]{1,3}[\.]){3}[0-9]{1,3})"
+ r"\smac:\s(?P<mac>([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))"
+ r"\svalid\sfor:\s(?P<timevalid>(-?\d+))"
+ r"\ssec"
)
@@ -1,30 +1,28 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from collections import namedtuple
from __future__ import annotations
import logging
import re
import telnetlib
from typing import Final
import voluptuous as vol
from homeassistant.components.device_tracker import (
DOMAIN,
PLATFORM_SCHEMA,
PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA,
DeviceScanner,
)
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util
from homeassistant.helpers.typing import ConfigType
_LOGGER = logging.getLogger(__name__)
from .const import LEASES_REGEX
from .model import Device
_LEASES_REGEX = re.compile(
r"(?P<ip>([0-9]{1,3}[\.]){3}[0-9]{1,3})"
+ r"\smac:\s(?P<mac>([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))"
+ r"\svalid\sfor:\s(?P<timevalid>(-?\d+))"
+ r"\ssec"
)
_LOGGER: Final = logging.getLogger(__name__)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
PLATFORM_SCHEMA: Final = BASE_PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
@@ -33,43 +31,38 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
)
def get_scanner(hass, config):
def get_scanner(hass: HomeAssistant, config: ConfigType) -> DeviceScanner | None:
"""Validate the configuration and return an Actiontec scanner."""
scanner = ActiontecDeviceScanner(config[DOMAIN])
return scanner if scanner.success_init else None
Device = namedtuple("Device", ["mac", "ip", "last_update"])
class ActiontecDeviceScanner(DeviceScanner):
"""This class queries an actiontec router for connected devices."""
def __init__(self, config):
def __init__(self, config: ConfigType) -> None:
"""Initialize the scanner."""
self.host = config[CONF_HOST]
self.username = config[CONF_USERNAME]
self.password = config[CONF_PASSWORD]
self.last_results = []
self.host: str = config[CONF_HOST]
self.username: str = config[CONF_USERNAME]
self.password: str = config[CONF_PASSWORD]
self.last_results: list[Device] = []
data = self.get_actiontec_data()
self.success_init = data is not None
_LOGGER.info("Scanner initialized")
def scan_devices(self):
def scan_devices(self) -> list[str]:
"""Scan for new devices and return a list with found device IDs."""
self._update_info()
return [client.mac for client in self.last_results]
return [client.mac_address for client in self.last_results]
def get_device_name(self, device):
def get_device_name(self, device: str) -> str | None:
"""Return the name of the given device or None if we don't know."""
if not self.last_results:
return None
for client in self.last_results:
if client.mac == device:
return client.ip
if client.mac_address == device:
return client.ip_address
return None
def _update_info(self):
def _update_info(self) -> bool:
"""Ensure the information from the router is up to date.
Return boolean if scanning successful.
@@ -78,19 +71,16 @@ class ActiontecDeviceScanner(DeviceScanner):
if not self.success_init:
return False
now = dt_util.now()
actiontec_data = self.get_actiontec_data()
if not actiontec_data:
if actiontec_data is None:
return False
self.last_results = [
Device(data["mac"], name, now)
for name, data in actiontec_data.items()
if data["timevalid"] > -60
device for device in actiontec_data if device.timevalid > -60
]
_LOGGER.info("Scan successful")
return True
def get_actiontec_data(self):
def get_actiontec_data(self) -> list[Device] | None:
"""Retrieve data from Actiontec MI424WR and return parsed result."""
try:
telnet = telnetlib.Telnet(self.host)
@@ -106,18 +96,20 @@ class ActiontecDeviceScanner(DeviceScanner):
telnet.write(b"exit\n")
except EOFError:
_LOGGER.exception("Unexpected response from router")
return
return None
except ConnectionRefusedError:
_LOGGER.exception("Connection refused by router. Telnet enabled?")
return None
devices = {}
devices: list[Device] = []
for lease in leases_result:
match = _LEASES_REGEX.search(lease.decode("utf-8"))
match = LEASES_REGEX.search(lease.decode("utf-8"))
if match is not None:
devices[match.group("ip")] = {
"ip": match.group("ip"),
"mac": match.group("mac").upper(),
"timevalid": int(match.group("timevalid")),
}
devices.append(
Device(
match.group("ip"),
match.group("mac").upper(),
int(match.group("timevalid")),
)
)
return devices
@@ -2,5 +2,6 @@
"domain": "actiontec",
"name": "Actiontec",
"documentation": "https://www.home-assistant.io/integrations/actiontec",
"codeowners": []
"codeowners": [],
"iot_class": "local_polling"
}
@@ -0,0 +1,11 @@
"""Model definitions for Actiontec MI424WR (Verizon FIOS) routers."""
from dataclasses import dataclass
@dataclass
class Device:
"""Actiontec device class."""
ip_address: str
mac_address: str
timevalid: int
+30 -26
View File
@@ -2,22 +2,10 @@
from __future__ import annotations
import logging
from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
import voluptuous as vol
from homeassistant.components.adguard.const import (
CONF_FORCE,
DATA_ADGUARD_CLIENT,
DATA_ADGUARD_VERION,
DOMAIN,
SERVICE_ADD_URL,
SERVICE_DISABLE_URL,
SERVICE_ENABLE_URL,
SERVICE_REFRESH,
SERVICE_REMOVE_URL,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_HOST,
@@ -33,7 +21,19 @@ 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.entity import Entity
from homeassistant.helpers.entity import DeviceInfo, Entity
from .const import (
CONF_FORCE,
DATA_ADGUARD_CLIENT,
DATA_ADGUARD_VERSION,
DOMAIN,
SERVICE_ADD_URL,
SERVICE_DISABLE_URL,
SERVICE_ENABLE_URL,
SERVICE_REFRESH,
SERVICE_REMOVE_URL,
)
_LOGGER = logging.getLogger(__name__)
@@ -61,17 +61,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
session=session,
)
hass.data.setdefault(DOMAIN, {})[DATA_ADGUARD_CLIENT] = adguard
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {DATA_ADGUARD_CLIENT: adguard}
try:
await adguard.version()
except AdGuardHomeConnectionError as exception:
raise ConfigEntryNotReady from exception
for platform in PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(entry, platform)
)
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
async def add_url(call) -> None:
"""Service call to add a new filter subscription to AdGuard Home."""
@@ -126,25 +123,30 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.services.async_remove(DOMAIN, SERVICE_DISABLE_URL)
hass.services.async_remove(DOMAIN, SERVICE_REFRESH)
for platform in PLATFORMS:
await hass.config_entries.async_forward_entry_unload(entry, platform)
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
del hass.data[DOMAIN]
del hass.data[DOMAIN]
return True
return unload_ok
class AdGuardHomeEntity(Entity):
"""Defines a base AdGuard Home entity."""
def __init__(
self, adguard, name: str, icon: str, enabled_default: bool = True
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
enabled_default: bool = True,
) -> None:
"""Initialize the AdGuard Home entity."""
self._available = True
self._enabled_default = enabled_default
self._icon = icon
self._name = name
self._entry = entry
self.adguard = adguard
@property
@@ -192,7 +194,7 @@ class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
"""Defines a AdGuard Home device entity."""
@property
def device_info(self) -> dict[str, Any]:
def device_info(self) -> DeviceInfo:
"""Return device information about this AdGuard Home instance."""
return {
"identifiers": {
@@ -200,6 +202,8 @@ class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
},
"name": "AdGuard Home",
"manufacturer": "AdGuard Team",
"sw_version": self.hass.data[DOMAIN].get(DATA_ADGUARD_VERION),
"sw_version": self.hass.data[DOMAIN][self._entry.entry_id].get(
DATA_ADGUARD_VERSION
),
"entry_type": "service",
}
+14 -43
View File
@@ -6,7 +6,6 @@ from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigFlow
from homeassistant.const import (
CONF_HOST,
@@ -16,6 +15,7 @@ from homeassistant.const import (
CONF_USERNAME,
CONF_VERIFY_SSL,
)
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN
@@ -25,13 +25,12 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
"""Handle a AdGuard Home config flow."""
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_POLL
_hassio_discovery = None
async def _show_setup_form(
self, errors: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Show the setup form to the user."""
return self.async_show_form(
step_id="user",
@@ -50,7 +49,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def _show_hassio_form(
self, errors: dict[str, str] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Show the Hass.io confirmation form to the user."""
return self.async_show_form(
step_id="hassio_confirm",
@@ -61,14 +60,15 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> dict[str, Any]:
) -> FlowResult:
"""Handle a flow initiated by the user."""
if self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
if user_input is None:
return await self._show_setup_form(user_input)
self._async_abort_entries_match(
{CONF_HOST: user_input[CONF_HOST], CONF_PORT: user_input[CONF_PORT]}
)
errors = {}
session = async_get_clientsession(self.hass, user_input[CONF_VERIFY_SSL])
@@ -101,49 +101,20 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
},
)
async def async_step_hassio(self, discovery_info: dict[str, Any]) -> dict[str, Any]:
async def async_step_hassio(self, discovery_info: dict[str, Any]) -> FlowResult:
"""Prepare configuration for a Hass.io AdGuard Home add-on.
This flow is triggered by the discovery component.
"""
entries = self._async_current_entries()
await self._async_handle_discovery_without_unique_id()
if not entries:
self._hassio_discovery = discovery_info
await self._async_handle_discovery_without_unique_id()
return await self.async_step_hassio_confirm()
cur_entry = entries[0]
if (
cur_entry.data[CONF_HOST] == discovery_info[CONF_HOST]
and cur_entry.data[CONF_PORT] == discovery_info[CONF_PORT]
):
return self.async_abort(reason="single_instance_allowed")
is_loaded = cur_entry.state == config_entries.ENTRY_STATE_LOADED
if is_loaded:
await self.hass.config_entries.async_unload(cur_entry.entry_id)
self.hass.config_entries.async_update_entry(
cur_entry,
data={
**cur_entry.data,
CONF_HOST: discovery_info[CONF_HOST],
CONF_PORT: discovery_info[CONF_PORT],
},
)
if is_loaded:
await self.hass.config_entries.async_setup(cur_entry.entry_id)
return self.async_abort(reason="existing_instance_updated")
self._hassio_discovery = discovery_info
return await self.async_step_hassio_confirm()
async def async_step_hassio_confirm(
self, user_input: dict[str, Any] | None = None
) -> dict[str, Any]:
"""Confirm Hass.io discovery."""
) -> FlowResult:
"""Confirm Supervisor discovery."""
if user_input is None:
return await self._show_hassio_form()
+1 -1
View File
@@ -3,7 +3,7 @@
DOMAIN = "adguard"
DATA_ADGUARD_CLIENT = "adguard_client"
DATA_ADGUARD_VERION = "adguard_version"
DATA_ADGUARD_VERSION = "adguard_version"
CONF_FORCE = "force"
@@ -4,5 +4,6 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/adguard",
"requirements": ["adguardhome==0.5.0"],
"codeowners": ["@frenck"]
"codeowners": ["@frenck"],
"iot_class": "local_polling"
}
+36 -24
View File
@@ -2,7 +2,6 @@
from __future__ import annotations
from datetime import timedelta
from typing import Callable
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
@@ -11,10 +10,10 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE, TIME_MILLISECONDS
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AdGuardHomeDeviceEntity
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERION, DOMAIN
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERSION, DOMAIN
SCAN_INTERVAL = timedelta(seconds=300)
PARALLEL_UPDATES = 4
@@ -23,27 +22,27 @@ PARALLEL_UPDATES = 4
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: Callable[[list[Entity], bool], None],
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdGuard Home sensor based on a config entry."""
adguard = hass.data[DOMAIN][DATA_ADGUARD_CLIENT]
adguard = hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_CLIENT]
try:
version = await adguard.version()
except AdGuardHomeConnectionError as exception:
raise PlatformNotReady from exception
hass.data[DOMAIN][DATA_ADGUARD_VERION] = version
hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_VERSION] = version
sensors = [
AdGuardHomeDNSQueriesSensor(adguard),
AdGuardHomeBlockedFilteringSensor(adguard),
AdGuardHomePercentageBlockedSensor(adguard),
AdGuardHomeReplacedParentalSensor(adguard),
AdGuardHomeReplacedSafeBrowsingSensor(adguard),
AdGuardHomeReplacedSafeSearchSensor(adguard),
AdGuardHomeAverageProcessingTimeSensor(adguard),
AdGuardHomeRulesCountSensor(adguard),
AdGuardHomeDNSQueriesSensor(adguard, entry),
AdGuardHomeBlockedFilteringSensor(adguard, entry),
AdGuardHomePercentageBlockedSensor(adguard, entry),
AdGuardHomeReplacedParentalSensor(adguard, entry),
AdGuardHomeReplacedSafeBrowsingSensor(adguard, entry),
AdGuardHomeReplacedSafeSearchSensor(adguard, entry),
AdGuardHomeAverageProcessingTimeSensor(adguard, entry),
AdGuardHomeRulesCountSensor(adguard, entry),
]
async_add_entities(sensors, True)
@@ -55,6 +54,7 @@ class AdGuardHomeSensor(AdGuardHomeDeviceEntity, SensorEntity):
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
measurement: str,
@@ -66,7 +66,7 @@ class AdGuardHomeSensor(AdGuardHomeDeviceEntity, SensorEntity):
self._unit_of_measurement = unit_of_measurement
self.measurement = measurement
super().__init__(adguard, name, icon, enabled_default)
super().__init__(adguard, entry, name, icon, enabled_default)
@property
def unique_id(self) -> str:
@@ -95,10 +95,15 @@ class AdGuardHomeSensor(AdGuardHomeDeviceEntity, SensorEntity):
class AdGuardHomeDNSQueriesSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home DNS Queries sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard, "AdGuard DNS Queries", "mdi:magnify", "dns_queries", "queries"
adguard,
entry,
"AdGuard DNS Queries",
"mdi:magnify",
"dns_queries",
"queries",
)
async def _adguard_update(self) -> None:
@@ -109,10 +114,11 @@ class AdGuardHomeDNSQueriesSensor(AdGuardHomeSensor):
class AdGuardHomeBlockedFilteringSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home blocked by filtering sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard DNS Queries Blocked",
"mdi:magnify-close",
"blocked_filtering",
@@ -128,10 +134,11 @@ class AdGuardHomeBlockedFilteringSensor(AdGuardHomeSensor):
class AdGuardHomePercentageBlockedSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home blocked percentage sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard DNS Queries Blocked Ratio",
"mdi:magnify-close",
"blocked_percentage",
@@ -147,10 +154,11 @@ class AdGuardHomePercentageBlockedSensor(AdGuardHomeSensor):
class AdGuardHomeReplacedParentalSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by parental control sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Parental Control Blocked",
"mdi:human-male-girl",
"blocked_parental",
@@ -165,10 +173,11 @@ class AdGuardHomeReplacedParentalSensor(AdGuardHomeSensor):
class AdGuardHomeReplacedSafeBrowsingSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by safe browsing sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Safe Browsing Blocked",
"mdi:shield-half-full",
"blocked_safebrowsing",
@@ -183,10 +192,11 @@ class AdGuardHomeReplacedSafeBrowsingSensor(AdGuardHomeSensor):
class AdGuardHomeReplacedSafeSearchSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by safe search sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Safe Searches Enforced",
"mdi:shield-search",
"enforced_safesearch",
@@ -201,10 +211,11 @@ class AdGuardHomeReplacedSafeSearchSensor(AdGuardHomeSensor):
class AdGuardHomeAverageProcessingTimeSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home average processing time sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Average Processing Speed",
"mdi:speedometer",
"average_speed",
@@ -220,10 +231,11 @@ class AdGuardHomeAverageProcessingTimeSensor(AdGuardHomeSensor):
class AdGuardHomeRulesCountSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home rules count sensor."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Rules Count",
"mdi:counter",
"rules_count",
+30 -2
View File
@@ -1,37 +1,65 @@
add_url:
name: Add url
description: Add a new filter subscription to AdGuard Home.
fields:
name:
name: Name
description: The name of the filter subscription.
required: true
example: Example
selector:
text:
url:
name: Url
description: The filter URL to subscribe to, containing the filter rules.
required: true
example: https://www.example.com/filter/1.txt
selector:
text:
remove_url:
name: Remove url
description: Removes a filter subscription from AdGuard Home.
fields:
url:
name: Url
description: The filter subscription URL to remove.
required: true
example: https://www.example.com/filter/1.txt
selector:
text:
enable_url:
name: Enable url
description: Enables a filter subscription in AdGuard Home.
fields:
url:
name: Url
description: The filter subscription URL to enable.
required: true
example: https://www.example.com/filter/1.txt
selector:
text:
disable_url:
name: Disable url
description: Disables a filter subscription in AdGuard Home.
fields:
url:
name: Url
description: The filter subscription URL to disable.
required: true
example: https://www.example.com/filter/1.txt
selector:
text:
refresh:
name: Refresh
description: Refresh all filter subscriptions in AdGuard Home.
fields:
force:
description: Force update (by passes AdGuard Home throttling).
example: '"true" to force, "false" or omit for a regular refresh.'
name: Force
description: Force update (bypasses AdGuard Home throttling). "true" to force, or "false" to omit for a regular refresh.
default: false
selector:
boolean:
@@ -22,7 +22,7 @@
},
"abort": {
"existing_instance_updated": "Updated existing configuration.",
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
}
}
}
+27 -24
View File
@@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import timedelta
import logging
from typing import Callable
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
@@ -11,10 +10,10 @@ from homeassistant.components.switch import SwitchEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AdGuardHomeDeviceEntity
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERION, DOMAIN
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERSION, DOMAIN
_LOGGER = logging.getLogger(__name__)
@@ -25,25 +24,25 @@ PARALLEL_UPDATES = 1
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: Callable[[list[Entity], bool], None],
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdGuard Home switch based on a config entry."""
adguard = hass.data[DOMAIN][DATA_ADGUARD_CLIENT]
adguard = hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_CLIENT]
try:
version = await adguard.version()
except AdGuardHomeConnectionError as exception:
raise PlatformNotReady from exception
hass.data[DOMAIN][DATA_ADGUARD_VERION] = version
hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_VERSION] = version
switches = [
AdGuardHomeProtectionSwitch(adguard),
AdGuardHomeFilteringSwitch(adguard),
AdGuardHomeParentalSwitch(adguard),
AdGuardHomeSafeBrowsingSwitch(adguard),
AdGuardHomeSafeSearchSwitch(adguard),
AdGuardHomeQueryLogSwitch(adguard),
AdGuardHomeProtectionSwitch(adguard, entry),
AdGuardHomeFilteringSwitch(adguard, entry),
AdGuardHomeParentalSwitch(adguard, entry),
AdGuardHomeSafeBrowsingSwitch(adguard, entry),
AdGuardHomeSafeSearchSwitch(adguard, entry),
AdGuardHomeQueryLogSwitch(adguard, entry),
]
async_add_entities(switches, True)
@@ -54,6 +53,7 @@ class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
key: str,
@@ -62,7 +62,7 @@ class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
"""Initialize AdGuard Home switch."""
self._state = False
self._key = key
super().__init__(adguard, name, icon, enabled_default)
super().__init__(adguard, entry, name, icon, enabled_default)
@property
def unique_id(self) -> str:
@@ -104,10 +104,10 @@ class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
class AdGuardHomeProtectionSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home protection switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, "AdGuard Protection", "mdi:shield-check", "protection"
adguard, entry, "AdGuard Protection", "mdi:shield-check", "protection"
)
async def _adguard_turn_off(self) -> None:
@@ -126,10 +126,10 @@ class AdGuardHomeProtectionSwitch(AdGuardHomeSwitch):
class AdGuardHomeParentalSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home parental control switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, "AdGuard Parental Control", "mdi:shield-check", "parental"
adguard, entry, "AdGuard Parental Control", "mdi:shield-check", "parental"
)
async def _adguard_turn_off(self) -> None:
@@ -148,10 +148,10 @@ class AdGuardHomeParentalSwitch(AdGuardHomeSwitch):
class AdGuardHomeSafeSearchSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home safe search switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, "AdGuard Safe Search", "mdi:shield-check", "safesearch"
adguard, entry, "AdGuard Safe Search", "mdi:shield-check", "safesearch"
)
async def _adguard_turn_off(self) -> None:
@@ -170,10 +170,10 @@ class AdGuardHomeSafeSearchSwitch(AdGuardHomeSwitch):
class AdGuardHomeSafeBrowsingSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home safe search switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, "AdGuard Safe Browsing", "mdi:shield-check", "safebrowsing"
adguard, entry, "AdGuard Safe Browsing", "mdi:shield-check", "safebrowsing"
)
async def _adguard_turn_off(self) -> None:
@@ -192,9 +192,11 @@ class AdGuardHomeSafeBrowsingSwitch(AdGuardHomeSwitch):
class AdGuardHomeFilteringSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home filtering switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(adguard, "AdGuard Filtering", "mdi:shield-check", "filtering")
super().__init__(
adguard, entry, "AdGuard Filtering", "mdi:shield-check", "filtering"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
@@ -212,10 +214,11 @@ class AdGuardHomeFilteringSwitch(AdGuardHomeSwitch):
class AdGuardHomeQueryLogSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home query log switch."""
def __init__(self, adguard: AdGuardHome) -> None:
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard,
entry,
"AdGuard Query Log",
"mdi:shield-check",
"querylog",
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.",
"single_instance_allowed": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 AdGuard Home."
"existing_instance_updated": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f."
},
"step": {
"hassio_confirm": {
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "S'ha actualitzat la configuraci\u00f3 existent.",
"single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
"already_configured": "El servei ja est\u00e0 configurat",
"existing_instance_updated": "S'ha actualitzat la configuraci\u00f3 existent."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3"
},
"step": {
"hassio_confirm": {
"description": "Vols configurar Home Assistant perqu\u00e8 es connecti amb l'AdGuard Home proporcionat pel complement de Hass.io: {addon}?",
"title": "AdGuard Home via complement de Hass.io"
"description": "Vols configurar Home Assistant perqu\u00e8 es connecti amb l'AdGuard Home proporcionat pel complement: {addon}?",
"title": "AdGuard Home via complement de Home Assistant"
},
"user": {
"data": {
@@ -1,8 +1,8 @@
{
"config": {
"abort": {
"existing_instance_updated": "St\u00e1vaj\u00edc\u00ed nastaven\u00ed aktualizov\u00e1no.",
"single_instance_allowed": "Ji\u017e nastaveno. Je mo\u017en\u00e1 pouze jedin\u00e1 konfigurace."
"already_configured": "Slu\u017eba je ji\u017e nastavena",
"existing_instance_updated": "St\u00e1vaj\u00edc\u00ed nastaven\u00ed aktualizov\u00e1no."
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit"
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Opdaterede eksisterende konfiguration.",
"single_instance_allowed": "Kun en enkelt konfiguration af AdGuard Home er tilladt."
"existing_instance_updated": "Opdaterede eksisterende konfiguration."
},
"step": {
"hassio_confirm": {
@@ -1,8 +1,8 @@
{
"config": {
"abort": {
"existing_instance_updated": "Bestehende Konfiguration wurde aktualisiert.",
"single_instance_allowed": "Bereits konfiguriert. Nur eine einzige Konfiguration m\u00f6glich."
"already_configured": "Der Dienst ist bereits konfiguriert",
"existing_instance_updated": "Bestehende Konfiguration wurde aktualisiert."
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen"
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Updated existing configuration.",
"single_instance_allowed": "Already configured. Only a single configuration possible."
"already_configured": "Service is already configured",
"existing_instance_updated": "Updated existing configuration."
},
"error": {
"cannot_connect": "Failed to connect"
},
"step": {
"hassio_confirm": {
"description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the Hass.io add-on: {addon}?",
"title": "AdGuard Home via Hass.io add-on"
"description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the add-on: {addon}?",
"title": "AdGuard Home via Home Assistant add-on"
},
"user": {
"data": {
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Se actualiz\u00f3 la configuraci\u00f3n existente.",
"single_instance_allowed": "Solo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
"existing_instance_updated": "Se actualiz\u00f3 la configuraci\u00f3n existente."
},
"step": {
"hassio_confirm": {
@@ -1,8 +1,8 @@
{
"config": {
"abort": {
"existing_instance_updated": "Se ha actualizado la configuraci\u00f3n existente.",
"single_instance_allowed": "S\u00f3lo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
"already_configured": "El servicio ya est\u00e1 configurado",
"existing_instance_updated": "Se ha actualizado la configuraci\u00f3n existente."
},
"error": {
"cannot_connect": "No se pudo conectar"
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Olemasolevad seaded v\u00e4rskendatud.",
"single_instance_allowed": "Juba seadistatud. V\u00f5imalik on ainult \u00fcks seadistamine."
"already_configured": "Teenus on juba seadistatud",
"existing_instance_updated": "Olemasolevad seaded v\u00e4rskendatud."
},
"error": {
"cannot_connect": "\u00dchendamine nurjus"
},
"step": {
"hassio_confirm": {
"description": "Kas soovid seadistada Home Assistant-i \u00fchenduse AdGuard Home'iga mida pakub Hass.io lisandmoodul: {addon} ?",
"title": "AdGuard Home Hass.io lisandmooduli abil"
"description": "Kas soovid seadistada Home Assistant-i \u00fchenduse AdGuard Home'iga mida pakub lisandmoodul: {addon} ?",
"title": "AdGuard Home Home Assistanti lisandmooduli abil"
},
"user": {
"data": {
@@ -1,8 +1,8 @@
{
"config": {
"abort": {
"existing_instance_updated": "La configuration existante a \u00e9t\u00e9 mise \u00e0 jour.",
"single_instance_allowed": "Une seule configuration d'AdGuard Home est autoris\u00e9e."
"already_configured": "Le service est d\u00e9j\u00e0 configur\u00e9",
"existing_instance_updated": "La configuration existante a \u00e9t\u00e9 mise \u00e0 jour."
},
"error": {
"cannot_connect": "\u00c9chec de connexion"
@@ -1,11 +1,20 @@
{
"config": {
"abort": {
"already_configured": "\u05e9\u05d9\u05e8\u05d5\u05ea \u05d6\u05d4 \u05db\u05d1\u05e8 \u05de\u05d5\u05d2\u05d3\u05e8"
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4"
},
"step": {
"user": {
"data": {
"host": "Host",
"host": "\u05de\u05d0\u05e8\u05d7",
"password": "\u05e1\u05d9\u05e1\u05de\u05d4",
"port": "\u05e4\u05d5\u05e8\u05d8"
"port": "\u05e4\u05d5\u05e8\u05d8",
"ssl": "\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05d0\u05d9\u05e9\u05d5\u05e8 SSL",
"username": "\u05e9\u05dd \u05de\u05e9\u05ea\u05de\u05e9",
"verify_ssl": "\u05d0\u05d9\u05de\u05d5\u05ea \u05d0\u05d9\u05e9\u05d5\u05e8 SSL"
}
}
}
@@ -1,8 +1,5 @@
{
"config": {
"abort": {
"single_instance_allowed": "M\u00e1r konfigur\u00e1lva van. Csak egy konfigur\u00e1ci\u00f3 lehets\u00e9ges."
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s"
},
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Memperbarui konfigurasi yang ada.",
"single_instance_allowed": "Sudah dikonfigurasi. Hanya satu konfigurasi yang diizinkan."
"existing_instance_updated": "Memperbarui konfigurasi yang ada."
},
"error": {
"cannot_connect": "Gagal terhubung"
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Configurazione esistente aggiornata.",
"single_instance_allowed": "Gi\u00e0 configurato. \u00c8 possibile una sola configurazione."
"already_configured": "Il servizio \u00e8 gi\u00e0 configurato",
"existing_instance_updated": "Configurazione esistente aggiornata."
},
"error": {
"cannot_connect": "Impossibile connettersi"
},
"step": {
"hassio_confirm": {
"description": "Vuoi configurare Home Assistant per connettersi ad AdGuard Home fornito dal componente aggiuntivo di Hass.io: {addon}?",
"title": "AdGuard Home tramite il componente aggiuntivo di Hass.io"
"description": "Vuoi configurare Home Assistant per connettersi ad AdGuard Home fornito dal componente aggiuntivo: {addon}?",
"title": "AdGuard Home tramite il componente aggiuntivo di Home Assistant"
},
"user": {
"data": {
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "\uae30\uc874 \uad6c\uc131\uc744 \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4.",
"single_instance_allowed": "\uc774\ubbf8 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud558\ub098\uc758 \uc778\uc2a4\ud134\uc2a4\ub9cc \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
"already_configured": "\uc11c\ube44\uc2a4\uac00 \uc774\ubbf8 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4",
"existing_instance_updated": "\uae30\uc874 \uad6c\uc131\uc744 \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4."
},
"error": {
"cannot_connect": "\uc5f0\uacb0\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4"
},
"step": {
"hassio_confirm": {
"description": "Hass.io {addon} \uc560\ub4dc\uc628\uc73c\ub85c AdGuard Home\uc5d0 \uc5f0\uacb0\ud558\ub3c4\ub85d Home Assistant\ub97c \uad6c\uc131\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
"title": "Hass.io \uc560\ub4dc\uc628\uc758 AdGuard Home"
"description": "{addon} \uc560\ub4dc\uc628\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 AdGuard Home\uc5d0 \uc5f0\uacb0\ud558\ub3c4\ub85d Home Assistant\ub97c \uad6c\uc131\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
"title": "Home Assistant \uc560\ub4dc\uc628\uc758 AdGuard Home"
},
"user": {
"data": {
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "D\u00e9i bestehend Konfiguratioun ass ge\u00e4nnert.",
"single_instance_allowed": "Scho konfigur\u00e9iert. N\u00ebmmen eng eenzeg Konfiguratioun m\u00e9iglech."
"existing_instance_updated": "D\u00e9i bestehend Konfiguratioun ass ge\u00e4nnert."
},
"error": {
"cannot_connect": "Feeler beim verbannen"
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Bestaande configuratie bijgewerkt.",
"single_instance_allowed": "Slechts \u00e9\u00e9n configuratie van AdGuard Home is toegestaan."
"already_configured": "Service is al geconfigureerd",
"existing_instance_updated": "Bestaande configuratie bijgewerkt."
},
"error": {
"cannot_connect": "Kan geen verbinding maken"
},
"step": {
"hassio_confirm": {
"description": "Wilt u Home Assistant configureren om verbinding te maken met AdGuard Home van de Supervisor-add-on: {addon}?",
"title": "AdGuard Home via Supervisor add-on"
"description": "Wilt u Home Assistant configureren om verbinding te maken met AdGuard Home van de Home Assistant add-on: {addon}?",
"title": "AdGuard Home via Home Assistant add-on"
},
"user": {
"data": {
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Oppdatert eksisterende konfigurasjon.",
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
"already_configured": "Tjenesten er allerede konfigurert",
"existing_instance_updated": "Oppdatert eksisterende konfigurasjon."
},
"error": {
"cannot_connect": "Tilkobling mislyktes"
},
"step": {
"hassio_confirm": {
"description": "Vil du konfigurere Home Assistant for \u00e5 koble til AdGuard Home levert av Hass.io-tillegget: {addon} ?",
"title": "AdGuard Home via Hass.io-tillegg"
"description": "Vil du konfigurere Home Assistant til \u00e5 koble til AdGuard Home levert av tillegget: {addon} ?",
"title": "AdGuard Home via Home Assistant-tillegg"
},
"user": {
"data": {
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "Zaktualizowano istniej\u0105c\u0105 konfiguracj\u0119",
"single_instance_allowed": "Ju\u017c skonfigurowano. Mo\u017cliwa jest tylko jedna konfiguracja."
"already_configured": "Us\u0142uga jest ju\u017c skonfigurowana",
"existing_instance_updated": "Zaktualizowano istniej\u0105c\u0105 konfiguracj\u0119"
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia"
},
"step": {
"hassio_confirm": {
"description": "Czy chcesz skonfigurowa\u0107 Home Assistanta, aby po\u0142\u0105czy\u0142 si\u0119 z AdGuard Home przez dodatek Hass.io: {addon}?",
"title": "AdGuard Home przez dodatek Hass.io"
"description": "Czy chcesz skonfigurowa\u0107 Home Assistanta, aby po\u0142\u0105czy\u0142 si\u0119 z AdGuard Home przez dodatek {addon}?",
"title": "AdGuard Home przez dodatek Home Assistant"
},
"user": {
"data": {
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Configura\u00e7\u00e3o existente atualizada.",
"single_instance_allowed": "Apenas uma \u00fanica configura\u00e7\u00e3o do AdGuard Home \u00e9 permitida."
"existing_instance_updated": "Configura\u00e7\u00e3o existente atualizada."
},
"step": {
"hassio_confirm": {
@@ -1,8 +1,5 @@
{
"config": {
"abort": {
"single_instance_allowed": "J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
@@ -1,15 +1,15 @@
{
"config": {
"abort": {
"existing_instance_updated": "\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430.",
"single_instance_allowed": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e."
"already_configured": "\u042d\u0442\u0430 \u0441\u043b\u0443\u0436\u0431\u0430 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 Home Assistant.",
"existing_instance_updated": "\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f."
},
"step": {
"hassio_confirm": {
"description": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a AdGuard Home (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Home Assistant \"{addon}\")?",
"description": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a AdGuard Home (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \"{addon}\")?",
"title": "AdGuard Home (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Home Assistant)"
},
"user": {
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Posodobljena obstoje\u010da konfiguracija.",
"single_instance_allowed": "Dovoljena je samo ena konfiguracija AdGuard Home."
"existing_instance_updated": "Posodobljena obstoje\u010da konfiguracija."
},
"step": {
"hassio_confirm": {
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "Uppdaterade existerande konfiguration.",
"single_instance_allowed": "Endast en enda konfiguration av AdGuard Home \u00e4r till\u00e5ten."
"existing_instance_updated": "Uppdaterade existerande konfiguration."
},
"step": {
"hassio_confirm": {
@@ -1,8 +1,5 @@
{
"config": {
"abort": {
"single_instance_allowed": "Zaten yap\u0131land\u0131r\u0131lm\u0131\u015f. Yaln\u0131zca tek bir konfig\u00fcrasyon m\u00fcmk\u00fcnd\u00fcr."
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131"
},
@@ -1,8 +1,7 @@
{
"config": {
"abort": {
"existing_instance_updated": "\u041a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044f \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430.",
"single_instance_allowed": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0436\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e. \u041c\u043e\u0436\u043d\u0430 \u0434\u043e\u0434\u0430\u0442\u0438 \u043b\u0438\u0448\u0435 \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044e."
"existing_instance_updated": "\u041a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044f \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0456\u0434'\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044f"
@@ -1,16 +1,16 @@
{
"config": {
"abort": {
"existing_instance_updated": "\u5df2\u66f4\u65b0\u73fe\u6709\u8a2d\u5b9a\u3002",
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
"already_configured": "\u670d\u52d9\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210",
"existing_instance_updated": "\u5df2\u66f4\u65b0\u73fe\u6709\u8a2d\u5b9a\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557"
},
"step": {
"hassio_confirm": {
"description": "\u662f\u5426\u8981\u8a2d\u5b9a Home Assistant \u4ee5\u4f7f\u7528 Hass.io \u9644\u52a0\u5143\u4ef6\uff1a{addon} \u9023\u7dda\u81f3 AdGuard Home\uff1f",
"title": "\u4f7f\u7528 Hass.io \u9644\u52a0\u5143\u4ef6 AdGuard Home"
"description": "\u662f\u5426\u8981\u8a2d\u5b9a Home Assistant \u4ee5\u9023\u7dda\u81f3 AdGuard Home\u3002\u9644\u52a0\u5143\u4ef6\u70ba\uff1a{addon} \uff1f",
"title": "\u4f7f\u7528 Home Assistant \u9644\u52a0\u5143\u4ef6 AdGuard Home"
},
"user": {
"data": {
+2 -1
View File
@@ -3,5 +3,6 @@
"name": "ADS",
"documentation": "https://www.home-assistant.io/integrations/ads",
"requirements": ["pyads==3.2.2"],
"codeowners": []
"codeowners": [],
"iot_class": "local_push"
}
+22 -3
View File
@@ -1,15 +1,34 @@
# Describes the format for available ADS services
write_data_by_name:
name: Write data by name
description: Write a value to the connected ADS device.
fields:
adsvar:
name: ADS variable
description: The name of the variable to write to.
required: true
example: ".global_var"
selector:
text:
adstype:
name: ADS type
description: The data type of the variable to write to.
example: "int"
required: true
selector:
select:
options:
- 'bool'
- 'byte'
- 'dint'
- 'int'
- 'udint'
- 'uint'
value:
name: Value
description: The value to write to the variable.
example: 1
required: true
selector:
number:
min: 0
max: 10000
@@ -1,6 +1,5 @@
"""Advantage Air climate integration."""
import asyncio
from datetime import timedelta
import logging
@@ -58,24 +57,14 @@ async def async_setup_entry(hass, entry):
"async_change": async_change,
}
for platform in PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(entry, platform)
)
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
return True
async def async_unload_entry(hass, entry):
"""Unload Advantage Air Config."""
unload_ok = all(
await asyncio.gather(
*[
hass.config_entries.async_forward_entry_unload(entry, platform)
for platform in PLATFORMS
]
)
)
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)

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