Compare commits

...

911 Commits

Author SHA1 Message Date
Paulus Schoutsen
7a96f8a4eb Merge pull request #42836 from home-assistant/rc 2020-11-04 17:20:54 +01:00
Paulus Schoutsen
df6ee2e51f Bumped version to 0.117.4 2020-11-04 15:47:28 +00:00
Maciej Bieniek
6bacda3cee Call coordinator.shutdown() when ConfigEntryNotReady (#42833) 2020-11-04 15:47:11 +00:00
Rob Bierbooms
d4b68454a3 Cleanup dispatchers when unloading rfxtrx (#42803)
* Cleanup dispatchers

* Fix name

* Refactor code

* Fix typo in function description

* Fix pylint error

* Change function definition

* Move cleanup_callbacks data to domain
2020-11-04 15:47:11 +00:00
Clifford Roche
36b099592e Update greeclimate to 0.9.5 (#42796)
Provides better discovery across subnets in some cases
2020-11-04 15:47:09 +00:00
Paulus Schoutsen
d156e95f8a Merge pull request #42824 from home-assistant/rc 2020-11-04 12:22:18 +01:00
Paulus Schoutsen
f3c7b77afa Bumped version to 0.117.3 2020-11-04 09:24:41 +00:00
Paulus Schoutsen
45dbd49852 Fix evohome scheduling coroutines (#42821) 2020-11-04 09:24:33 +00:00
J. Nick Koston
e4f88a02f7 Fix rest sensors with resource templates (#42818) 2020-11-04 09:24:32 +00:00
Rob Bierbooms
32652fde48 Filter rfxtrx replace devices in option flow on existing config entry (#42800)
* Fix function _can_replace_device

* Rearrange
2020-11-04 09:24:31 +00:00
rikroe
0dc926a131 Bump bimmer_connected to 0.7.11 (#42788) 2020-11-04 09:24:30 +00:00
Michael
43486917bf Fix broken 2fa authentication in synology_dsm (#42775) 2020-11-04 09:24:30 +00:00
cgtobi
d967ecc8c6 Bump pyatmo to 4.2.0 (#42774) 2020-11-04 09:24:29 +00:00
Erik Montnemery
a7bdd2aafe Force color or white mode exclusivity for Tasmota lights (#42772) 2020-11-04 09:24:28 +00:00
Aaron Bach
e6cc35cff2 Fix incorrect property usage for SimpliSafe (#42770) 2020-11-04 09:24:27 +00:00
Aaron Bach
b7d0a21a8b Bump pyairvisual to 5.0.4 (#42760) 2020-11-04 09:24:26 +00:00
rikroe
beaaa1478c Bump bimmer_connected to 0.7.10: fix login issues, add (PH)EV services (#42747)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2020-11-04 09:24:25 +00:00
Raman Gupta
74d8569aab Fix Vizio host string for zeroconf discovery (#42738) 2020-11-04 09:24:25 +00:00
Andreas Billmeier
dc0d27ec18 Fix broken maxcube component (#42674) 2020-11-04 09:24:24 +00:00
Andreas Billmeier
64707d89dd Please set exact cryptography version cryptography==3.2 (#42611) 2020-11-04 09:24:23 +00:00
Paulus Schoutsen
6c51ff63ad Merge pull request #42724 from home-assistant/rc 2020-11-01 21:29:21 +01:00
Paulus Schoutsen
aecc3476e8 Bumped version to 0.117.2 2020-11-01 20:00:21 +00:00
Matthew Donoughe
43a990350b Use pylutron_caseta 0.7.1 (#42701) 2020-11-01 19:59:52 +00:00
Chris Talkington
769c5c1779 Fix canary camera entity inheritance (#42691) 2020-11-01 19:59:51 +00:00
Alexei Chetroi
a93ae418a2 Bump up ZHA dependencies (#42679)
* Bump up ZHA dependencies

* Fix tests because of zigpy request signature change
2020-11-01 19:59:51 +00:00
Jason Hunter
562ccbbe25 attempt to renew subscription immediately to stop endless loop if it fails after setup (#42651) 2020-11-01 19:59:50 +00:00
Erik Montnemery
5f28c82837 Make sure Tasmota status sensors are disabled (#42643) 2020-11-01 19:59:49 +00:00
Joakim Sørensen
92f9a77770 Bump pycfdns to 1.2.1 (#42634) 2020-11-01 19:59:49 +00:00
Malte Franken
2430c5ea22 Fix geo_rss_events import statement (#42629)
* bump integration library version

* fix import statement
2020-11-01 19:59:48 +00:00
airthusiast
6d54ed14b4 Fix Fibaro HC2 climate device missing temperature (#42627) 2020-11-01 19:59:47 +00:00
Sören Oldag
faf73e304a Bump pwmled to v1.6.6 (#42607) 2020-11-01 19:59:47 +00:00
Paulus Schoutsen
e902cfcbf0 Merge pull request #42624 from home-assistant/rc 2020-10-30 10:11:50 +01:00
Paulus Schoutsen
750bb11895 Fix broken time trigger test (#42606) 2020-10-30 08:50:34 +00:00
Paulus Schoutsen
2dcd57bf38 Bumped version to 0.117.1 2020-10-30 08:31:58 +00:00
Clifford Roche
26766d68aa Update greeclimate to 0.9.2 (#42616)
Fixes issue with erroneous await in UDP recv queue
2020-10-30 08:30:57 +00:00
Erik Montnemery
d26bceb110 Bump hatasmota to 0.0.25 (#42605) 2020-10-30 08:30:56 +00:00
Erik Montnemery
aa52ade5a0 Fix MQTT template light (#42598) 2020-10-30 08:30:56 +00:00
Bram Kragten
c57d697df5 Update frontend to 20201021.4 (#42590) 2020-10-30 08:30:55 +00:00
cgtobi
c604595f98 Fix RMV giving wrong data and ignoring given parameters (#42561) 2020-10-30 08:30:54 +00:00
Jc2k
1ab2d55a7a Bump aiohomekit to 0.2.54 (#42532) 2020-10-30 08:30:53 +00:00
Rob Bierbooms
048db9cb7d Enable polling for DSMR derivative entity (#42524) 2020-10-30 08:30:53 +00:00
Michael
0959777b81 Fix adding Virtual DSM system in synology_dsm (#42523) 2020-10-30 08:30:52 +00:00
Franck Nijhof
9c0a2d69ff Merge pull request #42516 from home-assistant/rc 2020-10-28 20:01:21 +01:00
Franck Nijhof
529b849efe Bumped version to 0.117.0 2020-10-28 18:08:23 +01:00
Paulus Schoutsen
a34d06e363 Default legacy templates to true (#42511)
* Default legacy templates to true

* Disable legacy_templates in tests

Co-authored-by: Franck Nijhof <git@frenck.dev>
2020-10-28 18:08:04 +01:00
Paulus Schoutsen
5b85776566 Fix string representation of template result wrappers (#42494) 2020-10-28 18:08:00 +01:00
Angelo Gagliano
68d2938c6b Move async_add_entities back to event loop for tplink component (#42454) 2020-10-28 18:07:55 +01:00
Paulus Schoutsen
5a460e609f Bumped version to 0.117.0b6 2020-10-27 22:26:04 +00:00
Erik Montnemery
a88e011bba Fix race in Tasmota discovery (#42492) 2020-10-27 22:25:57 +00:00
Paulus Schoutsen
40be42299d Improve mqtt test (#42490) 2020-10-27 22:25:56 +00:00
Paulus Schoutsen
7dcebbe89d Bump cryptography to 3.2 (#42489) 2020-10-27 22:25:55 +00:00
Paulus Schoutsen
cb453d3ae1 Make result wrappers more robust (#42488) 2020-10-27 22:25:55 +00:00
Bram Kragten
2effbb6604 Update frontend to 20201021.3 (#42486) 2020-10-27 22:25:54 +00:00
Erik Montnemery
ba6acc286c Bump hatasmota to 0.0.24 (#42472) 2020-10-27 22:25:53 +00:00
Paulus Schoutsen
45c1c2acac Fix initial state of pi4ioe (#42459) 2020-10-27 22:25:53 +00:00
Quentame
1962a7c7ce Fix DSM Surveillance Station when only home mode is enabled (#42456) 2020-10-27 22:25:51 +00:00
Pascal Vizeli
8da732a89d Fix hassio-version (#42449) 2020-10-27 22:25:51 +00:00
João Gabriel
2697056ba9 Add device info default values to Panasonic Viera (#42441) 2020-10-27 22:25:50 +00:00
rajlaud
91e8593fb6 Improve Squeezebox media browser performance (#42439)
* Bump pysqueezebox version to better handle large libraries for media browser

* Merge changes into requirements
2020-10-27 22:25:49 +00:00
Aaron Bach
9fa97473cb Bump simplisafe-python to 9.6.0 (#42437) 2020-10-27 22:25:48 +00:00
Jason Hunter
29e7aa753c Remove title string from Xbox translations (#42431) 2020-10-27 22:25:47 +00:00
Tsvi Mostovicz
af31aa7995 Fix DLNA DMR media receiver when using Python 3.9 (#42430) 2020-10-27 22:25:47 +00:00
Robert Svensson
e3d29429d3 Make sure to clean up httpx session on failed connection to Axis device (#42428) 2020-10-27 22:25:46 +00:00
Angelo Gagliano
93e71ef218 Add retry for unavailable static tplink devices after HA starts (#42247) 2020-10-27 22:25:45 +00:00
Paulus Schoutsen
2893972c69 Bumped version to 0.117.0b5 2020-10-26 19:30:18 +00:00
Franck Nijhof
13b8bc6290 Add missing config flow translation key for Nest (#42423) 2020-10-26 19:29:44 +00:00
Franck Nijhof
326d36d303 Skip template result parsing in several places (#42408)
* Skip template result parsing in several places

* Adjust alert integration

* Adjust Alexa integration

* Adjust apns integration

* Adjust arest integration

* Adjust dialogflow integration

* Adjust generic camera integration

* Adjust imap email content  integration

* Adjust InfluxDB integration

* Adjust intent integration

* Adjust logbook integration

* Adjust HP ILO integration

* Adjust manual alarm control panel integration

* Adjust manual mqtt alarm control panel integration

* Adjust minio integration

* Adjust mqtt integration

* Adjust notify integration

* Adjust persistent notification integration

* Adjust rest integration

* Adjust rss feed template integration

* Adjust slack integration

* Adjust Xiaomi integration

* Adjust TCP integration

* Adjust Telegram Bot integration

* Bump CI cache version

* Revert "Bump CI cache version"

This reverts commit 875efe58cf.

* Adjust demo tests
2020-10-26 19:28:21 +00:00
Paulus Schoutsen
287b33eef3 Do not set up DSM when setting up Nest legacy (#42406) 2020-10-26 19:28:20 +00:00
Paulus Schoutsen
3ec83dc29e Catch ValueError in google_translate (#42405) 2020-10-26 19:28:20 +00:00
Franck Nijhof
f716b7714b Allow skip parsing template result (#42401) 2020-10-26 19:28:19 +00:00
Paulus Schoutsen
b7c958719e Fix MQTT publish from a script with templates (#42398) 2020-10-26 19:28:18 +00:00
Paulus Schoutsen
934ac73ae5 Fix CI (#42397) 2020-10-26 19:28:17 +00:00
Tsvi Mostovicz
bcd2ae78a0 Bump libhdate depndency (#42396)
* Bump libhdate depndency

This version fixes an important bug found by @amitfin in py-libhdate/py-libhdate#78

* Update reqs

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-26 19:28:17 +00:00
Erik Montnemery
c00ab762d3 Bump hatasmota to 0.0.23 (#42394) 2020-10-26 19:28:16 +00:00
Paulus Schoutsen
1fb18580b2 Store original result on template results (#42391)
* Store original result on template results

* Fix shell command test
2020-10-26 19:28:15 +00:00
Maksym D
9c6351c1b3 Change AfterShip polling interval from 5m to 15m (#42360)
This change will prevent reaching API requests limit of AfterShip free-tier account.
2020-10-26 19:28:14 +00:00
Paulus Schoutsen
4eacf3f6c0 Bumped version to 0.117.0b4 2020-10-25 22:54:50 +00:00
J. Nick Koston
35d2badb24 Ensure config entry platforms are excluded from reload (#42367) 2020-10-25 22:54:40 +00:00
Andre Lengwenus
331d5ba7ef Fix parameter issue in LCN cover close/stop (#42342) 2020-10-25 22:54:40 +00:00
mezz64
a2c157b5e9 Bump pyhik to 0.2.8 (#42322) 2020-10-25 22:54:39 +00:00
Jörg Thalheim
883fb8c168 Fix iCloud matching accounts (#42303)
`name` is no longer defined but `username`.
Fixes #38393
2020-10-25 22:54:38 +00:00
airthusiast
2e7ce63cbc Fix for Fibaro HC3 support, climate temp sensor and target temp (#42300) 2020-10-25 22:54:38 +00:00
Franck Nijhof
b925ae39cb Upgrade spotipy to 2.16.1 (#42293) 2020-10-25 22:54:37 +00:00
Erik Montnemery
5c608eb1bc Fix reconfiguring of Tasmota lights (#42288) 2020-10-25 22:54:36 +00:00
Erik Montnemery
3032f9280c Fix Tasmota CT light (#42287) 2020-10-25 22:54:35 +00:00
uvjustin
00284a87d0 Fix AVError and allow more missing DTS packets in stream (#42277)
* Fix AVError and allow more missing DTS in stream init

* Avoid recreating container demux iterator

* Relax missing dts requirement

* Fix spelling error

* Fix error message count

* Add timeout to av.open read

* Increase STREAM_TIMEOUT to 30
2020-10-25 22:54:35 +00:00
Alan Tse
21917e86c9 Fix Tesla attribute refreshing (#42257)
* Fix Tesla attribute refreshing

* Remove extraneous copy
2020-10-25 22:54:34 +00:00
Allen Porter
b6994689b1 Update nest integration with fixes from initial PR (#42250) 2020-10-25 22:54:33 +00:00
Teemu R
0c1c7d797c Only log xiaomi_miio update exceptions once (#41226)
* xiaomi_miio: only log update exceptions once

Replaces #37695

* add som more missed exception logger cases + do not change the control flow as pointed out by @cgtobi

* Use patch&MagickMock from tests.async_mock

* Fix linting for alarm_control_panel

* update the test to verify that the warning on update is only logged when the device was previously available
2020-10-25 22:54:33 +00:00
Paulus Schoutsen
9c60195780 Bumped version to 0.117.0b3 2020-10-23 15:45:06 +00:00
J. Nick Koston
d8fea1c582 Ensure event listener integrations do the queue insert as a callback (#42265) 2020-10-23 15:44:56 +00:00
Erik Montnemery
84ab40c57d Fix Tasmota relay acting as on/off light (#42259) 2020-10-23 15:44:56 +00:00
Alan Tse
aace9dce38 Fix is_on test for Tesla Charger switch (#42251)
closes #41755
2020-10-23 15:44:55 +00:00
TheJulianJES
f6f95d0422 Fix polling of color for ZHA lights not updating (#42248) 2020-10-23 15:44:54 +00:00
BrianWithAHat
e0466d4ac8 Fix MaryTTS filename extensions (#42228)
Co-authored-by: Brian Laferriere <BrianWithAHat@users.noreply.github.com>
2020-10-23 15:44:53 +00:00
Paulus Schoutsen
8e4a325fdb Bumped version to 0.117.0b2 2020-10-22 23:33:34 +00:00
Alexei Chetroi
868b14f151 Update ZHA dependencies (#42245) 2020-10-22 23:33:22 +00:00
Bram Kragten
e660577e43 Update frontend to 20201021.2 (#42242) 2020-10-22 23:33:21 +00:00
J. Nick Koston
69cace1d41 Ensure websocket event serializer cache is effective if subscription iden differs (#42226)
Since someone websocket subscriptions will use an iden of 2 for
state_changed event (most comment), and some will use another
number for all events, the cache would not be used because the
iden number was different.  We now cache only the event and
use a fast replace to insert the iden number into the serailized
response.
2020-10-22 23:33:20 +00:00
Anders Melchiorsen
4f908bc58c Refresh now() templates on second=0 (#42225) 2020-10-22 23:33:20 +00:00
rikroe
d00ca7bf03 Bump bimmer-connected to 0.7.8 to fix login issue (#42215)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2020-10-22 23:33:19 +00:00
Tom Harris
65eb5ea55f Fix issue in python > 3.8.2 (#42213) 2020-10-22 23:33:18 +00:00
Niccolo Zapponi
3586e0c5e4 Fix bug for SimpliSafe 2 systems repeatedly saying "your settings have been synchronised" (#42197)
* Fix bug for SimpliSafe 2 systems

* Improved loop and logging for SimpliSafe 2
2020-10-22 23:33:18 +00:00
Raman Gupta
e0621d2e5f Set Vizio unique ID for discovery flow early and abort if configured to prevent duplicate discovery flows (#42194) 2020-10-22 23:33:17 +00:00
Erik Montnemery
1fb1bb0c08 Support reloading Tasmota config entries (#42097) 2020-10-22 23:33:16 +00:00
cgtobi
6c5e2af379 Add Netatmo sensor enable default (#41928) 2020-10-22 23:33:15 +00:00
Guido Schmitz
fcbe90cb80 Fix precision of climate devices in devolo Home Control (#41832) 2020-10-22 23:33:15 +00:00
HomeAssistant Azure
3eece977f8 [ci skip] Translation update 2020-10-22 09:21:20 +02:00
Bram Kragten
f1de6bf6b4 Bumped version to 0.117.0b1 2020-10-22 00:24:25 +02:00
Aaron Bach
a8342d9395 Bump simplisafe-python to 9.5.1 (#42179) 2020-10-22 00:22:21 +02:00
J. Nick Koston
66453429b0 Avoid overloading the executor with service.yaml loads (#42172) 2020-10-22 00:22:19 +02:00
uvjustin
a83a5a2603 Remove duplicated finalize_stream code in stream (#42171) 2020-10-22 00:22:19 +02:00
Bram Kragten
bfd943c5dc Updated frontend to 20201021.1 (#42185) 2020-10-22 00:20:31 +02:00
Aaron Bach
1ea103f090 Remove coordinator success from SimpliSafe availability calculation (#42180) 2020-10-22 00:20:30 +02:00
Franck Nijhof
db0cd34b24 Bumped version to 0.117.0b0 2020-10-21 20:57:05 +02:00
Franck Nijhof
813406573b Add counter and timer to default_config (#42174) 2020-10-21 20:53:20 +02:00
Robert Svensson
1a97b0edd9 Fix deCONZ device refresh service (#42175) 2020-10-21 20:35:19 +02:00
Bram Kragten
e7d806c832 Update frontend to 20201021.0 (#42173) 2020-10-21 20:21:22 +02:00
Pascal Vizeli
208ccc6487 Update base image to 2020.10.0 (#42167) 2020-10-21 19:40:06 +02:00
Philip Allgaier
bd1d6f2c0d Add link to log view in persistent notification (#42060) 2020-10-21 12:09:45 -05:00
Robert Svensson
a62db7887b Bump Axis dependency (#42168) 2020-10-21 17:48:57 +02:00
Jason Heddings
1fe5928818 Handle type error in hunterdouglas_powerview (#42137) 2020-10-21 10:37:23 -05:00
Kevin Cathcart
754ba18af0 Add persistent_notification service to the notify platform (#40638)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-21 17:12:36 +02:00
J. Nick Koston
df2ede6522 Fix state overwrite race condition where two platforms request the same entity_id (#42151)
* Fix state overwrite race condition where two platforms request the same entity id

* fix test

* create reservations instead

* revert

* cannot use __slots__ because we patch async_all
2020-10-21 17:01:51 +02:00
Quentame
bb641c23a9 Bump python-synology to 1.0.0 (#42161) 2020-10-21 16:42:07 +02:00
Paulus Schoutsen
5626a379de Guard bad supported features for Google (#42163) 2020-10-21 16:37:42 +02:00
Chris Talkington
d8577a1550 Add config flow for cloudflare (#41167)
* add config flow for cloudflare

* Create const.py

* work on flow.

* remove const.

* lint.

* Apply suggestions from code review

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

* Update config_flows.py

* Update homeassistant/components/cloudflare/strings.json

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Update strings.json

* Apply suggestions from code review

* Update __init__.py

* Update __init__.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-21 09:09:00 -05:00
Erik Montnemery
e203896638 Align MQTT light's default color temperature (#41842) 2020-10-21 15:46:29 +02:00
On Freund
a07c0d1605 Fallback to mac in Shelly config flow title (#40783) 2020-10-21 15:05:06 +02:00
CurrentThread
c1ebad8c97 Clean up filesize unittest test file in test tear down (#42143) 2020-10-21 13:47:30 +02:00
CurrentThread
bb1b210047 Use async_load_platform in test_discover_notify unittest (#42142) 2020-10-21 13:47:10 +02:00
Franck Nijhof
767c94f9c3 Merge branch 'master' into dev 2020-10-21 13:44:54 +02:00
Maciej Bieniek
f855ff8751 Bump aioshelly library to 0.4.0 (#41905)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-21 13:37:17 +02:00
Olen
abeff01626 Add async_setup_entry to calendar platform (#42075) 2020-10-21 13:20:34 +02:00
Kevin Cathcart
0674ae6205 Fix pico tts errors (#41619)
Enabled the use of mutagen in unit tests.
Added a test for tagging a minimal .wav file.
2020-10-21 11:58:07 +02:00
J.P. Hutchins
c677489535 Handle Fritz exception and log warning (#42145) 2020-10-21 11:02:44 +02:00
Franck Nijhof
5671063ddc Upgrade sentry-sdk to 0.19.1 (#42132) 2020-10-21 11:01:11 +02:00
Dermot Duffy
83e843820b Use the beautiful ambient light icon (#42153) 2020-10-21 11:00:19 +02:00
Paulus Schoutsen
45345ddc05 Improve handling of ignored entries (#42148) 2020-10-21 10:49:09 +02:00
Rob Bierbooms
177bda01e8 Rewrite zwave init tests to pytest style test function (phase 2) (#41431) 2020-10-21 10:19:47 +02:00
Allen Porter
52b66e88c7 Update Nest integration to support Google Nest Device Access (new API) (#41689)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-21 10:17:49 +02:00
Jeff Irion
9bc0509f28 Bump androidtv to 0.0.52 (#42155) 2020-10-21 09:51:13 +02:00
dmonego
1cacca6568 Update mqtt_eventstream tests to pytest style functions (#42119) 2020-10-21 04:07:48 +02:00
HomeAssistant Azure
00847db54f [ci skip] Translation update 2020-10-21 00:06:01 +00:00
cgtobi
70969ecbfb Add attribute for camera light state (#40575) 2020-10-20 21:57:00 +02:00
Brett
582074d1db Improve Advantage Air integration to Platinum quality (#41996)
* Rename to ADVANTAGE_AIR_DOMAIN

* Remove attributes from binary sensor platform

* Handle other motionConfig values

* Restructure

* Unloading

* Fix unloading

* PARALLEL_UPDATES

* Remove pointless check

* Rollup to sensor

* Rollup to switch platform

* @ctalkington suggestion of added __init__ back

* Fix unload test

Co-authored-by: Chris Talkington <chris@talkingtontech.com>

* Fix ENTRY_STATE_NOT_LOADED

* Update test docstring

* Remove obsolete __init__'s

Co-authored-by: Chris Talkington <chris@talkingtontech.com>

* Remove unused __init__ from cover

* Code Quality 🏆 Platinum

* Re-push manifest.json

Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-10-20 13:30:09 -05:00
J. Nick Koston
023268df38 Update nuheat exception handling (#42127)
* Update nuheat exception handling

* remove unneeded exception handler
2020-10-20 20:22:10 +02:00
Brian Rogers
199464f084 Add rachio service to start multiple zones (#42092) 2020-10-20 13:14:39 -05:00
J. Nick Koston
5a907095e5 Remove logging from state in flume (#42126) 2020-10-20 16:41:06 +02:00
Tim Werner
e5aa5e2c35 rewrite mqtt unittest tests to pytest style (#42122) 2020-10-20 16:35:49 +02:00
Yuval Aboulafia
6c3362217e Add light group icon (#42091) 2020-10-20 13:54:43 +02:00
Rob Bierbooms
be431ce12a Set should_poll property for DSMR integration (#42108) 2020-10-20 12:14:09 +02:00
wouterbaake
1363fbb02a Set force_update property for DSMR integration (#42086) 2020-10-20 09:45:43 +02:00
Robert Svensson
1303d20064 Adapt Axis integration to async HTTPx calls (#42095) 2020-10-20 09:31:04 +02:00
rajlaud
fcdb54d878 Add browse media support to squeezebox integration (#40642)
* Add browse media support to squeezebox integration

* Move browse media logic to browse_media.py

* Fix missing command when loading single url

* Update .coveragerc

* Handle empty library gracefully

* Apply suggestions from code review

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

* Implement suggestions from code review

* Additional suggestion from code review

* Use MEDIA_CLASS_GENRE

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-20 01:17:00 -05:00
Colin Robbins
b3a97c7b42 Bump lightwave to 0.19 (#42033)
* Python 3.9 compatibilty

* Python 3.9 compatibility
2020-10-20 03:03:35 +02:00
HomeAssistant Azure
81296b2b70 [ci skip] Translation update 2020-10-20 00:08:00 +00:00
jjlawren
e6e4c9cf59 Allow Cast to play Plex media (#41869)
* Allow Cast to play Plex media

* Add Plex to after_dependencies, add missing constant

* Extract function from Sonos service to allow media lookups

* Move to non-async method

* Check if media_id exists

* Add test to make codecov happy
2020-10-19 16:34:22 -05:00
dmonego
c8821d930e Move sleepiq tests to pytest style functions (#42018) 2020-10-19 23:31:33 +02:00
CurrentThread
e129ea4db7 Rewrite demo unittest tests to pytest style test functions (#41845) 2020-10-19 23:29:44 +02:00
CurrentThread
7e3aa6ddce Rewrite remote unittest tests to pytest style test functions and remove legacy test helpers (#41715) 2020-10-19 23:28:40 +02:00
Alexander Pitkin
f5f4570a29 Rewrite alert test to pytest (#41102)
* Rewrite alert test to pytest

* Rewrite alert test to pytest. Add mock_notifier fixture
2020-10-19 23:26:40 +02:00
Paulus Schoutsen
b8417a2ce2 Do not allow coroutines to be passed to HassJob (#42073)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-19 23:25:33 +02:00
Erik Montnemery
ec7f329807 Add support for Tasmota status sensor (#41782)
* Add sensor attributes, remove useless test.

* Fix tests

* Rework handling of sensor attributes

* Remove unused sensor attributes

* Hide status sensors

* Bump hatasmota to 0.0.19

* Use DEVICE_CLASS_SIGNAL_STRENGTH for WiFi signal sensor

* Improve test coverage

* Fix tests
2020-10-19 22:07:31 +02:00
ehendrix23
4da6c22338 Update pymyq to 2.0.8 (#42088) 2020-10-19 20:11:21 +02:00
Robert Svensson
de98168211 Axis lib migrates to httpx (#42054)
* Clean up some parameter naming

* Bump lib

* Bump to v39
2020-10-19 20:01:25 +02:00
Rihan9
d01a96d1ce Fix onvif sensor detection and onvif stop service call (#41949)
* Fix stop service call after movement, add new parser for topic: tns1:RuleEngine/MotionRegionDetector/Motion

* Fix PullMessages call and formatting Stop call

* Fix timeout on pullmessages call

* Fix black and flake8 detected issues

* add SetSynchronizationPoint with try/except block
2020-10-19 13:01:34 -04:00
epenet
4459c843ea Deprecate OWFS/FUSE implementation in onewire integration (#42041)
* Add warning

* Fix black

* Combine logging messages

* Combine logging messages
2020-10-19 18:23:43 +02:00
Jeff Irion
5db01ed7cf Bump androidtv to 0.0.51 (add support for Google TV devices) (#42047) 2020-10-19 10:58:56 -05:00
dependabot[bot]
83d01ee857 Bump codecov/codecov-action from v1.0.13 to v1.0.14 (#42070)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.13 to v1.0.14.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.13...7d5dfa54903bd909319c580a00535b483d1efcf3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 17:41:58 +02:00
Paulus Schoutsen
440570244d Don't swallow all errors when checking for config validator platform (#42058) 2020-10-19 17:09:57 +02:00
Paulus Schoutsen
8d4675713a Fix event test (#42078) 2020-10-19 16:50:46 +02:00
Ronan Murray
16c402f583 Rewrite nsw_fuel_station tests to pytest style (#41171) 2020-10-19 12:19:39 +02:00
Rob Bierbooms
5e98bdb19c Rewrite openhardwaremonitor tests to pytest style test functions (#41157) 2020-10-19 12:18:34 +02:00
Sebastian Rodriguez
226a6f7584 Rewrite time_date unittest tests to pytest style test functions (#41149) 2020-10-19 12:14:07 +02:00
CurrentThread
6b409dc811 Rewrite filesize unittest tests to pytest style test functions (#41421) 2020-10-19 12:10:53 +02:00
thaohtp
a57d1c1bf0 Rewrite efergy unittest tests to pytest style test functions. (#41769)
Issue: https://github.com/home-assistant/core/issues/40836
2020-10-19 12:09:39 +02:00
Adam Cooper
fe7c8dd80a Migrated coinmarketcap tests to utilise pytests instead of unittests (#42013) 2020-10-19 12:08:55 +02:00
Julian Engelhardt
97b1fffad4 Geo rss test style (#42038) 2020-10-19 11:59:04 +02:00
dvermd
5a533a8c5d Rewrite datadog tests to pytest (#42059) 2020-10-19 11:57:01 +02:00
thaohtp
6f4be7882b Rewrite logentries unittest tests to pytest style test functions (#41852)
* Rewrite logentries unittest tests to pytest style test functions.

Issue: https://github.com/home-assistant/core/issues/40862

* Import mock correctly

* Fix mock import

* Fix failure in formatting.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-19 11:30:40 +02:00
J. Nick Koston
31c21126a8 Implement time tracking in templates (#41147)
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
2020-10-19 11:02:43 +02:00
Paulus Schoutsen
8949eb2442 Add httpx as a core dep (#42071) 2020-10-19 10:18:47 +02:00
J. Nick Koston
77b95ae8a1 Reduce domain states rate limit to 1 per second (#42004) 2020-10-19 10:18:25 +02:00
J. Nick Koston
3a9b2392f8 Suppress domain and all listeners during template rate limit (#42005) 2020-10-19 10:17:51 +02:00
Cristian Asenjo
344514601d Sort Kodi BrowseMedia children TV Shows and Movies (#41377) 2020-10-19 09:55:17 +02:00
J. Nick Koston
9649525fe6 Increase coverage and optimize history skip_initial_state (#42014)
Avoids a database query when all states have not
changed in the time window when skip_initial_state
is set.
2020-10-19 09:53:47 +02:00
Paulus Schoutsen
388a5d8c91 Add entity ID to time trigger (#41933) 2020-10-19 09:42:00 +02:00
Colin Robbins
6f8e3d2544 Update stream integration for Python 3.9 which removed isAlive from threading in favor of is_alive (#42051)
Python 3.9 compact
2020-10-18 23:42:50 -04:00
Jason Hunter
33f0bf4c4a Do not guess app state in Xbox integration (#42067) 2020-10-18 23:30:44 -04:00
Jason Hunter
5a397312e7 Update ONVIF to Zeep 4.0/httpx (#42020)
* convert to httpx and zeep 4.0

* fix tests

* add onvif-zeep-async to manifest

* pin zeep to fool CI cache

* address review comments
2020-10-18 23:29:53 -04:00
Glenn Waters
304b9f47b4 ElkM1 fix auto-configure. (#42064)
The elkm1-lib autoconfigure set the `configured` flag based on an
attribute of the element being changed. This approach misses counters
and thermostats. It also does not work well well an "unconfigured"
element's default value is different from what is on the panel. This
was the case for zones (the `area` attribute was different).

The fix in the library is to mark an element as `configured` when
the element has a name associated with it. This change is
technically breaking, although I imagine, few if any people will be
affected as (1) they configure names on all elements (2) the
functionality was not working properly, so element would not be missing.

The HA docs will be updated to add a section on autoconfigure. It will
describe that to have an element automatically configured then the
element must be configured on the ElkM1 panel with a name.

This particular patch is required for ElkM1 areas. The existing logic
assumes that an area is configured if it has an associated keypad. Not
all areas have keypads (I have an area only armable with HA). The
library fix should catch all configured areas.
2020-10-18 19:48:20 -05:00
HomeAssistant Azure
59a3add24a [ci skip] Translation update 2020-10-19 00:03:28 +00:00
J. Nick Koston
c86dfeb6e2 Remove double timeout from gogogate2 (#42052) 2020-10-18 15:46:13 -05:00
Paulus Schoutsen
6ab9b7355f Add tests for singleton decorator (#42055) 2020-10-18 22:41:22 +02:00
Eugene Prystupa
6366872119 Add support for Bond fireplaces with integrated lights (#41255) 2020-10-18 14:11:24 -05:00
Guido Schmitz
e5eae22ad8 Disable less popular entities in devolo Home Control (#41945) 2020-10-18 14:07:24 -05:00
Bas Nijholt
2604bf59ad Set keyword arguments in DemoLight (#42040)
I noticed that the signature was very hard to read when working on https://github.com/home-assistant/core/pull/40626.
2020-10-18 13:57:35 -05:00
scheric
22b360a10e Use common strings in ambiclimate config flow (#41772)
* already_configured_account->already_configured

* add authenticated string

* oauth2_missing_...->missing_configuration
2020-10-18 20:55:32 +02:00
Ronaldo Lima
d6d17aa295 Replace invalid credentials with common string invalid_auth (#41997)
* add GeoNet NZ Volcano to home-assistant#40578

* move invalid_credentials

* revert geonet nz volkano

* change invalid_credentials to invalid_auth

* change translation keys
2020-10-18 13:55:01 -05:00
scheric
24cfca812e Use common strings in sharkiq config flow (#41773)
* already_configured_account->already_configured

* remove already_configured_account

* already_configured_account->already_configured
2020-10-18 20:50:58 +02:00
J. Nick Koston
8c27a99386 Convert nuheat to use DataUpdateCoordinator (#42034)
* Convert nuheat to use DataUpdateCoordinator

* coverage

* Update homeassistant/components/nuheat/climate.py
2020-10-18 13:45:47 -05:00
J. Nick Koston
37df7bf4c5 Convert flume to use DataUpdateCoordinator (#42017)
* Convert flume to use DataUpdateCoordinator

* pylint

* Update homeassistant/components/flume/sensor.py

* Update homeassistant/components/flume/sensor.py
2020-10-18 13:44:36 -05:00
J. Nick Koston
6c1078d1ca Reduce ssdp context switches into the executor (#42045)
* Reduce ssdp context switches into the executor

* no self use
2020-10-18 13:44:01 -05:00
shbatm
c4821bfa74 Improve ISY994 NodeServer sorting and format sensor display values (#42050) 2020-10-18 13:33:45 -05:00
Brig Lamoreaux
a17da16dd2 Use common strings in xiaomi_aqara (#41866)
* Use common strings in xiaomi_aqara

* Remove mixed strings
2020-10-18 20:32:18 +02:00
Brett
5fab68725d Add Switch platform to Advantage Air (#41995)
* Add Switch platform

* Rename DOMAIN in climate

* Revert "Rename DOMAIN in climate"

This reverts commit 271ac7b8a5.

* Update unique_id

* Use constants

* Add switch platform to init

* Fix path for change

* Add tests

* Fix indentation of async_add_entities
2020-10-18 13:30:53 -05:00
Aaron Bach
91fd59aa57 Fix incorrect initial state with SimpliSafe locks (#42039)
* Fix incorrect initial state with SimpliSafe locks

* Cleanup
2020-10-18 12:21:48 -06:00
shbatm
941453dca9 Upgrade PyISY to v2.1.0, add support for variable precision (#42043) 2020-10-18 11:45:15 -05:00
Felipe Martins Diel
d96a1744f0 Improve RemoteEntity class (#40605) 2020-10-18 08:59:36 -05:00
Ronaldo Lima
1355d285e8 Remove unused strings in deCONZ config flow (#41978) 2020-10-18 15:26:40 +02:00
David Straub
6b77633e6e Bump homeconnect to 0.6.3 (#42022) 2020-10-18 10:33:19 +02:00
HomeAssistant Azure
1a03bbda5a [ci skip] Translation update 2020-10-18 00:03:28 +00:00
Erik Montnemery
515a6479a4 Bump hatasmota to 0.0.18 (#42000)
* Bump hatasmota to 0.0.17

* Bump hatasmota to 0.0.18
2020-10-18 00:00:28 +02:00
Aaron Bach
95f66ff4d5 Add low battery sensor for SimpliSafe locks (#42010) 2020-10-17 14:41:01 -05:00
Aaron Bach
8b6336a91a Move SimpliSafe REST API to DataUpdateCoordinator (#41919)
* Mirgrate SimpliSafe REST API to DataUpdateCoordinator

* Docstring

* More work

* Good to go

* Linting

* Restore previous initial event check

* Linting

* Comment

* Simplify listener

* Code review

* Cleanup
2020-10-17 14:40:34 -05:00
J. Nick Koston
183f94364a Parse html in the executor for scrape sensors (#41987) 2020-10-17 18:57:59 +02:00
Robert Svensson
c6c617ed31 Improve device registry for host and deCONZ service (#41786) 2020-10-17 11:44:23 -05:00
mezz64
92669d33aa Bump pyEmby to 1.7 (#41984) 2020-10-17 11:35:23 -05:00
Brett
e71d851973 Add Sensor Platform to Advantage Air (#41870)
* WIP Add Sensor platform

* Code quality improvements

* Readability improvements

* Fix RSSI in fixture

* Sensor platform tests

* Created parent sensor class

* Fix DOMAIN namespace

* Code Coverage fix for impossible case

* Use parent class

* Add to fixture for code coverage

* Description Update

* Use consistent name for ADVANTAGE_AIR_DOMAIN

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

* Set ADVANTAGE_AIR_DOMAIN where required

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2020-10-17 11:29:36 -05:00
marecabo
2443f5d108 Add device classes to battery, illuminance and temperature miflora sensor (#41975) 2020-10-17 11:25:26 -05:00
Erik Montnemery
5d1b4f5c87 Bump pychromecast to 7.5.1 (#41991) 2020-10-17 11:22:58 -05:00
Robert Svensson
7eb532ddd0 Improve imports in deCONZ tests (#41976)
* Improve imports in deconz tests

* Add spacing
2020-10-17 11:20:06 -05:00
Aaron Bach
1b94ef69d8 Migrate IQVIA to DataUpdateCoordinator (#41970)
* Migrate IQVIA to DataUpdateCoordinator

* Linting

* Code review

* Better re-raise
2020-10-17 11:16:41 -05:00
J. Nick Koston
c0845a3650 Prevent ios sensor updates from running in the executor (#41986)
The update was only checking an existing dict
2020-10-17 15:38:42 +02:00
J. Nick Koston
d9fbde4f6c Prevent doorbird from creating many executor jobs (#41985) 2020-10-17 15:35:24 +02:00
Ronaldo Lima
121613f5e6 Use common string in GeoNet NZ Volcano (#41981)
* add GeoNet NZ Volcano to home-assistant#40578

* change key from already_configured_location to already_configured on GeoNet NZ Volkano
2020-10-17 15:07:44 +02:00
Stuart Mumford
d0b1b0a39e Bump oemthermostat to 1.1.1 (#41998)
The library update is a packaging fix for upcoming pip dependency
resolution
2020-10-17 14:05:22 +02:00
Paulus Schoutsen
39ba0fc7ee Remove BOM integration because it uses webscraping (#41941)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-17 13:56:11 +02:00
Gautham Varma K
ee1b6d3195 Use common strings in denonavr integration (#41746) 2020-10-17 13:34:51 +02:00
Gautham Varma K
622c56b6a7 Use common strings in emulated roku (#41745)
* Use common strings in emulated roku

Replace IP and port with references from common strings

* Update strings.json

*Replace References in mix with sentence with their values.
*Replace name_exists with already_configured

* Replace references in config_flow
2020-10-17 13:13:05 +02:00
Erik Montnemery
49b7f317ff Fix Tasmota stale docstring + print level (#41992) 2020-10-17 13:07:21 +02:00
Anders Melchiorsen
30b454ddb7 Fix Sonos shuffle/repeat state with Spotify Connect (#41939) 2020-10-17 09:40:43 +02:00
J. Nick Koston
5580b21260 Decouple RestData from rest.sensor (#41980) 2020-10-17 04:56:45 +02:00
Philip Allgaier
dde6305549 Cleanup unused loggers (components N-Z + tests) (#41982) 2020-10-16 21:24:08 -05:00
J. Nick Koston
ad6ce5fa83 Convert rest sensors to async using httpx (#41973) 2020-10-16 19:21:13 -05:00
HomeAssistant Azure
39adf14079 [ci skip] Translation update 2020-10-17 00:06:00 +00:00
Abílio Costa
28fb761b01 Use skip_configuration flag to skip requests in ZHA (#41554)
* Remove duplicated attribute request from ZHA

The on_off attribute is on the REPORT_CONFIG, so
super().async_initialize already requests it from the device.
No need to request it twice.

* Use skip_configuration flag to skip requests in ZHA

* Fix loading from cache

* Fix loading from cache condition
2020-10-16 20:03:35 -04:00
Alexei Chetroi
c29f613b1d Fix schema for set_zigbee_cluster_attribute service (#41850) 2020-10-16 20:02:14 -04:00
Ronaldo Lima
87deb2344c Use common strings in Azure DevOps config flow (#41974) 2020-10-17 01:27:44 +02:00
Aaron Bach
74a1b75919 Deprecate YAML config for RainMachine (0.119 removal) (#41971) 2020-10-16 16:35:13 -05:00
Jaroslav Hanslík
3e82cc1b4f Add arming state to template alarm control panel (#41964) 2020-10-16 23:01:06 +02:00
Jaroslav Hanslík
b7f818e431 Fix typo in comment in demo integration (#41955) 2020-10-16 22:53:16 +02:00
João Gabriel
554246f061 Add device_class to Panasonic Viera media player entity (#41966) 2020-10-16 22:13:27 +02:00
Quentame
7469bd9266 Wait Synology NAS boot before configuring (#41829) 2020-10-16 14:39:20 -05:00
Jason Hunter
d5bf27427c Fix media source for Xbox integration (#41959)
* fix media content type

* fix comments
2020-10-16 15:02:24 -04:00
Brett
ca9ac48938 Add Binary Sensor Platform to Advantage Air (#41871)
* Binary Sensor Platform

* Parent Binary Sensor Class

* Fix DOMAIN namespace

* Use parent class
2020-10-16 12:12:24 -05:00
Aaron Bach
bbef87d3f3 Clean up SimpliSafe device info and sensor creation (#41920)
* Clean up SimpliSafe device info and sensor creation

* Code review
2020-10-16 12:01:16 -05:00
Robert Svensson
1c3ec69166 Remove deprecated UniFi yaml configuration support (#41954) 2020-10-16 11:55:44 -05:00
Robert Svensson
028689d6bd Remove update on add signalling in Axis integration (#41956)
Minor clean up of the integration
2020-10-16 11:54:48 -05:00
ioull
cb60905415 Add Bancs de Brouillard in fog condition (#41947)
* Add Bancs de Brouillard in fog condition

* Add Bancs de Brouillard in fog condition
2020-10-16 18:30:17 +02:00
uvjustin
ce0e08838f Fix timestamp overflow error in stream (#41951) 2020-10-16 11:48:45 -04:00
Aaron Bach
eff0c4a494 Properly unload SimpliSafe websocket listener (#41952) 2020-10-16 17:44:53 +02:00
Robert Svensson
8c0b39eb9c No update before adding entity in deCONZ (#41948) 2020-10-16 17:14:26 +02:00
Rob Bierbooms
92f89213a3 Fix InfluxDB v2 API with write precision None (#41937) 2020-10-16 16:44:50 +02:00
J. Nick Koston
1e256e6122 Remove unneeded async_add_job from homematic (#41855) 2020-10-16 09:24:12 -05:00
Robert Svensson
85ccff28cd Revert partial changes to deCONZ integration from earlier PR (#41943) 2020-10-16 14:38:12 +02:00
Punita Ojha
23b3db08f3 Rewrite smtp Unittest Tests To Pytest Style (#41720)
* Rewrite smtp unittest tests to pytest style
test functions.

.coverage.rc  --> Remove homeassistant/component/smtp/notify.py from
omit section.
test_notify.py --> Convert test case to pytest style.
test.jpg, test.pdf --> Add test files.

Issue id:- #40894

* Made Fix Based On Code Review
To Pull Request -  #41720.

.coveragerc --> Add file in omit section as coverage is 75%(i.e. <95%)
test_notify.py --> Capitalize constant in file, Made parametrized data
compatible to avoid if conditions.

Code Review Submission on Pull Request #41720.

* Made Fix Based On Code Review
To Pull Request #41720.

test_notify.py --> Add different test for simple text message to avoid if conditions check in code.

* Move Notify Media Files To
 Folder tests/testing_config/notify.

 test_notify.py --> Add Relevant Path For .jpg and .pdf file.
 test.jpg, test.pdf --> Move to relevant location.

 Pull request #41720
2020-10-16 13:55:12 +02:00
Marc Kolly
8bcae65dd8 Add missing Extended GTFS Route Types (#40297) 2020-10-16 13:51:05 +02:00
scheric
db802ff2b4 Use common strings in Mill config flow (#41836) 2020-10-16 13:44:41 +02:00
Chris Talkington
243a4e5df6 Remove deprecated YAML config from sonarr (#41904) 2020-10-16 13:43:35 +02:00
Edward Knight
b39d82c154 Rewrite APNS tests to use pytest (#41684)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-16 13:43:02 +02:00
Paulus Schoutsen
11d2e0c671 Bump cloud to 0.37.1 (#41930) 2020-10-16 13:40:04 +02:00
CurrentThread
75f27d6318 Rewrite mold_indicator unittest tests to pytest style test functions (#41598) 2020-10-16 13:37:15 +02:00
J. Nick Koston
965bb2c8df Update nest to use async_add_executor_job (#41926) 2020-10-16 13:31:16 +02:00
CurrentThread
250fbd857b Rewrite file unittest tests to pytest style test functions (#41616) 2020-10-16 13:30:03 +02:00
J. Nick Koston
9c719beded Update telegram_bot to use async_add_executor_job (#41924) 2020-10-16 13:29:28 +02:00
sycx2
91042e3e46 Improve template test lock (#41195)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-16 13:25:57 +02:00
Johan Hammar
30c20f362e Rewrite folder unittest tests to pytest style test functions (#41672) 2020-10-16 13:19:38 +02:00
scheric
0f2dfeb33f Use common strings in ovo energy config flow (#41940) 2020-10-16 13:17:41 +02:00
J. Nick Koston
83af805522 Update google_translate to use async_add_executor_job (#41925) 2020-10-16 13:15:01 +02:00
Ariana Hlavaty
c9ba5bfebd Rewrite proximity tests to be pytest functions (#41711) 2020-10-16 13:13:34 +02:00
thaohtp
aabf26bbc8 Rewrite bayesian unittest tests to pytest style test functions. (#41740) 2020-10-16 13:10:48 +02:00
J. Nick Koston
6f113e981b Update litejet and zwave tests to use async_add_executor_job (#41927)
* Update litejet and zwave tests to use async_add_executor_job

* await
2020-10-16 13:08:04 +02:00
Ariana Hlavaty
0a192947ed Rewrite shell_command unittest tests to pytest style test function (#41274) 2020-10-16 13:04:12 +02:00
Captone Habiyaremye
5e96d21414 Add device actions to water_heater (#41417)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-16 12:51:12 +02:00
J. Nick Koston
9f5e3bfbd5 Update homekit camera resolutions for tvOS 14 (#41914) 2020-10-16 05:42:38 -05:00
Maciej Bieniek
798f7d1c63 Fix zeroconf name (#41908) 2020-10-16 05:38:39 -05:00
Ville Skyttä
92488849ea Add deCONZ IKEA TRÅDFRI wireless dimmer fast rotate events (#41573)
Ref https://fccid.io/FHO-ICTC-G-1/User-Manual/User-Manual-3155271.pdf
2020-10-16 12:12:59 +02:00
Balazs Keresztury
544b7c67e5 Removed unneccessary dependency on adafruit-blinka (#41768) 2020-10-16 12:12:32 +02:00
CurrentThread
904ce66a72 Rewrite tod unittest tests to pytest style test functions (#41603) 2020-10-16 12:10:38 +02:00
CurrentThread
a28f347b2b Rewrite fail2ban unittest tests to pytest style test functions (#41606) 2020-10-16 12:04:53 +02:00
James Warne
2146dd1268 Rewrite wsdot unittest tests to pytest style test functions (#41638) 2020-10-16 12:00:42 +02:00
Koen Beckers
465c21e075 Add game_icon to steam_online (#39947)
May just need to rename the sensor to steam info?
2020-10-16 11:59:27 +02:00
Gerard
0f1011ba3f Update featured integrations screenshot in README (#41085) 2020-10-16 11:53:57 +02:00
Robert Svensson
9abe18b579 Remove setup platform functions from UniFi since they are no longer needed (#41935) 2020-10-16 11:48:56 +02:00
Paulus Schoutsen
2f69b53bc3 Fix upcloud coverage that is breaking CI (#41934) 2020-10-16 11:30:51 +02:00
Thomas Barnekov
8be3f2f2a5 Add automatic keep-alive for IKEA Trådfri (#41778)
* Added automatic keep-alive for IKEA Trådfri

* Don't shut down factory on keep-alive error

* Avoid keep-alive after shutdown

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-16 11:21:36 +02:00
Tom Schneider
d16c04a8e0 Fix hvv_departures request time (#40195) 2020-10-16 10:07:24 +02:00
Tom Parker-Shemilt
2b151209b2 Don't try and store exceptions when the key is missing (#41803) 2020-10-16 10:01:58 +02:00
Paulus Schoutsen
8bc47c0cd1 Catch it when files are ignored by coverage but shouldn't (#41876) 2020-10-16 09:57:11 +02:00
Paulus Schoutsen
62343f87ad Catch when old entity can't be serialized in Google Report State (#41916)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-16 09:56:48 +02:00
Erik Montnemery
9e9f841f35 Add Tasmota device trigger (#41590)
* Add Tasmota device trigger

* Correct import

* Remove useless try-except

* Remove commented out code

* Align with hatasmota 0.0.14

* Update according to review comments
2020-10-16 08:16:07 +02:00
Brett
731d617c5e Code Quality improvements for Advantage Air integration (#41861)
* Readability improvements

* Code quality and more tests

* Created a parent entity

* Apply parent entity to cover platform

* Update _zone property

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

* Remove device_state_attributes

* Correct attribute tests

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-15 23:30:29 -05:00
Aaron Bach
1e0663e986 Bump pyairvisual to 5.0.3 (#41921) 2020-10-15 23:16:03 -05:00
Aaron Bach
76f88459dd Fix incorrect SimpliSafe websocket disconnect listener (#41923) 2020-10-15 23:13:45 -05:00
HomeAssistant Azure
11b812b82e [ci skip] Translation update 2020-10-16 00:04:33 +00:00
Chris Talkington
cbdd712b3d Remove sonarr reauth persistent notification (#41911) 2020-10-16 01:19:22 +02:00
Jason Hunter
c10fe4f723 Add sensors to Xbox integration (#41868)
* favorited friends binary sensors

* add binary_sensor to .coveragerc

* fix copy/paste comments...

* make sensor entities instead of attributes

* address PR review comments

* default state to None
2020-10-15 19:11:05 -04:00
Glenn Waters
801168f9d7 Add ElkM1 time and counter services and keypress event (#41867) 2020-10-15 17:05:07 -05:00
Aaron Bach
a0bb8ae5d9 Fix unhandled exception with SimpliSafe socket disconnection (#41917) 2020-10-15 17:00:57 -05:00
Paulus Schoutsen
3bcf2f9fd5 Merge pull request #41909 from home-assistant/rc 2020-10-15 23:41:17 +02:00
Martin Hjelmare
da6bdd4464 Add supervisor set add-on options helper (#41651) 2020-10-15 23:38:53 +02:00
Ariana Hlavaty
e28e453c08 Rewrite scene unittest tests to pytest style test function (#41172) 2020-10-15 23:35:30 +02:00
Aaron Bach
162a5d99a2 Add common string for reauth title (#41865) 2020-10-15 16:35:00 -05:00
Ville Skyttä
a9f342ef74 Convert UpCloud to config flow, improve error handling (#37941) 2020-10-15 23:26:01 +02:00
Bas Nijholt
d790de1346 Minor code improvement for KEF (#41885) 2020-10-15 16:20:23 -05:00
Raman Gupta
0e20bba40a Add persistent notification for reauth config flows (#41811)
* add persistent notification for reauth config flow

* remove log

* Update homeassistant/config_entries.py

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

* Update homeassistant/config_entries.py

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

* fix logic for determining when to dismiss notification

* add comment

* improve tests to ensure notifications only get dismissed when all in progress config flows of a given type are complete

* Update homeassistant/config_entries.py

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

* handle context is None when accessing source

* add guard to show_advanced_options

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-10-15 15:46:27 -05:00
uvjustin
a72dd6b917 Cap AVC profile level at 4.1 in stream master playlist (#41592)
* Cap AVC profile level at 4.1

* Use smaller multiplier in bandwidth calculation
2020-10-15 20:43:32 +00:00
J. Nick Koston
a220e74154 Update zhong_hong to use async_add_executor_job (#41846) 2020-10-15 15:39:48 -05:00
uvjustin
9270585a44 Cap AVC profile level at 4.1 in stream master playlist (#41592)
* Cap AVC profile level at 4.1

* Use smaller multiplier in bandwidth calculation
2020-10-15 16:37:27 -04:00
Paulus Schoutsen
36a1fe5f54 Bumped version to 0.116.4 2020-10-15 20:30:57 +00:00
Jason Hunter
303b7efd4b Bump ONVIF and pin Zeep (#41907) 2020-10-15 20:30:49 +00:00
Aaron Bach
6114006b8b Deprecate YAML config for SimpliSafe (0.119 removal) (#41896)
* Deprecate YAML config for SimpliSafe (0.119 removal)

* Remove import step from config flow
2020-10-15 14:28:09 -06:00
Jason Hunter
32675e0e38 Bump ONVIF and pin Zeep (#41907) 2020-10-15 22:24:33 +02:00
Erik Montnemery
766a0032c9 Bump hatasmota to 0.0.16 (#41902) 2020-10-15 21:14:42 +02:00
Aaron Bach
2079e41b7a Properly disconnect from SimpliSafe websocket on HASS shutdown (#41894)
* Properly disconnect from SimpliSafe websocket on HASS shutdown

* Update homeassistant/components/simplisafe/__init__.py

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

* Update homeassistant/components/simplisafe/__init__.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-15 13:05:00 -06:00
epenet
ba789105ee Add PRESSURE_CBAR to onewire constants (#41826) 2020-10-15 19:57:15 +02:00
J. Nick Koston
3ffa050905 Support HomeKit accessory mode (#41679)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-15 11:59:50 -05:00
Aaron Bach
db7c16162d Remove duplicated options handling in SimpliSafe (#41806)
* Remove duplicated options handling in SimpliSafe

* Incorrect property name
2020-10-15 10:36:04 -06:00
Tom
368bc0c34b Fix Plugwise hvac action and mode (#41550) 2020-10-15 16:59:02 +02:00
dependabot[bot]
2074da4f9f Bump actions/setup-python from v2.1.3 to v2.1.4 (#41873)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.1.3 to v2.1.4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.1.3...41b7212b1668f5de9d65e9c82aa777e6bbedb3a8)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-15 16:42:06 +02:00
J. Nick Koston
41872341f5 Update mysensors to use async_add_executor_job (#41849) 2020-10-15 09:22:50 -05:00
J. Nick Koston
3ee4f43b20 Update kira to use async_add_executor_job (#41847) 2020-10-15 09:22:37 -05:00
J. Nick Koston
2e05592039 Update remaining i2c sensors to use async_add_executor_job (#41860) 2020-10-15 09:22:17 -05:00
On Freund
086378c48f Add media browser capability to volumio (#40785) 2020-10-15 15:49:36 +02:00
J. Nick Koston
c5ae801bcb Allow HomeKit to be configured in include mode from the UI (#41662) 2020-10-15 15:33:01 +02:00
Pascal Vizeli
0323aeb660 Fix machine release builds (#41879) 2020-10-15 11:52:39 +00:00
Pascal Vizeli
b2f50d0a3a Fix machine release builds (#41879) 2020-10-15 11:52:20 +00:00
Pascal Vizeli
f2a2cfc52e Fix machine release builds (#41879) 2020-10-15 13:34:27 +02:00
Gabe Cook
ffb4a9112b Ruckus Unleashed Requested Changes (#41824) 2020-10-15 12:49:43 +02:00
Brett
a2574a4ed5 Add Cover Platform to Advantage Air (#41757)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-15 12:45:05 +02:00
J. Nick Koston
21cc23244d Improve template ratelimit performance (#41741) 2020-10-15 12:02:05 +02:00
Paulus Schoutsen
58e8162d18 Merge pull request #41877 from home-assistant/rc 2020-10-15 11:35:03 +02:00
Joakim Sørensen
1f07a4eba0 Forward client headers for proxied stream responses (#41663) 2020-10-15 11:01:37 +02:00
Paulus Schoutsen
8036b709e0 Bumped version to 0.116.3 2020-10-15 08:42:52 +00:00
cgtobi
e80ffe16f7 Reduce polling for Netatmo weather station sensors (#41858) 2020-10-15 08:42:27 +00:00
J. Nick Koston
99010bab18 Permit event trackers to accept an empty list of entities or domains (#41857) 2020-10-15 08:42:05 +00:00
Simone Chemelli
8d5e15df3d Shelly: fix for RGB devices (#41841) 2020-10-15 08:42:05 +00:00
Aaron Bach
efffc82414 Fix SimpliSafe re-auth flow (#41805)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-15 08:42:05 +00:00
djtimca
06b99a1ff9 Fix issues with metric conversion and single pump type for filter pumps in Omnilogic integration (#41777) 2020-10-15 08:42:05 +00:00
Pascal Vizeli
fd79c141b2 Offload dockermachines into core (#41756) 2020-10-15 08:42:05 +00:00
J. Nick Koston
b541b08d2d Ensure all template errors are caught and the websocket api reports them (#41719) 2020-10-15 08:42:00 +00:00
Bas Nijholt
42c9776c97 Fix KEF LSX becoming unavailable (#41700)
* Do not use asyncio.gather because the speaker only allows one concurrent connection

* bump to aiokef=0.2.16
2020-10-15 08:31:26 +00:00
Quentame
897340b115 Fix disabled Synology DSM camera (#41686) 2020-10-15 08:31:25 +00:00
Joakim Sørensen
e072d8b694 Add delete to hassio API (#41500) 2020-10-15 08:31:24 +00:00
Aaron Bach
690024b34a Fix SimpliSafe re-auth flow (#41805)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-15 10:15:32 +02:00
Paulus Schoutsen
5f3fc6a9e3 Cleanup the min-max sensor (#41851)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-15 09:54:04 +02:00
Aaron Bach
099de37ee5 Fix re-authentication in AirVisual (#41801) 2020-10-15 09:30:39 +02:00
J. Nick Koston
53a1d92f2b Permit event trackers to accept an empty list of entities or domains (#41857) 2020-10-15 09:26:51 +02:00
cgtobi
0a4298322c Reduce polling for Netatmo weather station sensors (#41858) 2020-10-15 09:25:59 +02:00
cgtobi
9dcc769a4a Remove max and min temperature sensors (#41859) 2020-10-15 09:24:20 +02:00
Paulus Schoutsen
4899d7628a Fix flaky ONVIF test (#41848) 2020-10-15 09:19:08 +02:00
Robert Svensson
6ccdf62e6b Add basic device information for UniFi clients device registry entries (#41839) 2020-10-15 08:10:59 +02:00
Brig Lamoreaux
58a432685c Use common srings in xiaomi-miio (#41864) 2020-10-15 08:09:20 +02:00
Daniel Hjelseth Høyer
4146a90313 Tibber, change time for fetching prices (#41840) 2020-10-15 08:08:57 +02:00
HomeAssistant Azure
994ae09f69 [ci skip] Translation update 2020-10-15 00:03:50 +00:00
Robert Svensson
cb6d3b590e Revert device trigger modelid for Trådfri remotes for deCONZ (#41843) 2020-10-14 23:39:00 +02:00
Mark Bergsma
5fd2acdbef Add influxdb config option 'measurement_attr' (#36020) 2020-10-14 22:49:57 +02:00
J. Nick Koston
e0df91ef9f Update mqtt to use HassJob (#41796)
Avoids the overhead of checking the callable type at run time
2020-10-14 22:04:48 +02:00
jjlawren
4e8012fcea Remove unnecessary check in Plex client scanning (#41844) 2020-10-14 22:01:06 +02:00
scheric
f5248b5562 Use common strings in withings config flow (#41770) 2020-10-14 21:54:23 +02:00
Ville Skyttä
4cc6eee1ac Mark Huawei LTE sensors with None value as unavailable (#41667) 2020-10-14 22:11:48 +03:00
Ville Skyttä
50468c4c8c Add Huawei LTE battery sensor (#41668) 2020-10-14 22:11:18 +03:00
scheric
6d1242ffe7 Use common strings in ovo_energy config flow (#41838) 2020-10-14 21:10:59 +02:00
scheric
78c0871ae5 Use common strings in Tibber config flow (#41837) 2020-10-14 21:10:37 +02:00
Simone Chemelli
70eebc7211 Shelly: fix for RGB devices (#41841) 2020-10-14 21:09:03 +02:00
Jason Hunter
2b1fc90de7 Add Media Source to Xbox Integration (#41833)
* initial implementation of xbox media source

* minor fixes

* fix lint

* add media class map to remove multi-line ternary
2020-10-14 15:02:08 -04:00
J. Nick Koston
9d9520b2f9 Switch sabnzbd to use async_add_executor_job (#41835) 2020-10-14 20:27:34 +02:00
Robert Svensson
68cfc36b6b Don't override proper data for UniFi Controller entry in device registry (#41834) 2020-10-14 17:52:45 +02:00
Erik Montnemery
042ce1cb92 Add Tasmota light (#41485) 2020-10-14 17:47:13 +02:00
jjlawren
c63c253b7f Discover Plex clients using GDM (#39053) 2020-10-14 15:46:52 +02:00
João Gabriel
72759d7501 Re-add forced update in Panasonic Viera (#41804) 2020-10-14 15:33:47 +02:00
djtimca
49d58bb6a8 Bump omnilogic to 0.4.2 (#41821) 2020-10-14 15:21:29 +02:00
Clifford Roche
839b9f226e Add gree climate integration (#37498)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-14 15:15:56 +02:00
Sharif Nassar
9ee97cb213 Convert fan tests to pytest style (#41631) 2020-10-14 11:07:26 +02:00
J. Nick Koston
afc602595b Only validate entity id if it did not exist on state change (#41820) 2020-10-14 11:06:51 +02:00
epenet
3cba25a892 Add test coverage for onewire (#40786)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-14 10:19:12 +02:00
J. Nick Koston
6d05729e48 Update image_processing to use async_add_executor_job (#41810) 2020-10-14 08:19:39 +02:00
J. Nick Koston
6c0d5fa1d6 Switch legacy async_add_job to async_add_executor_job in wemo (#41807)
These calls were already using async_add_executor_job in some of the
other platforms
2020-10-14 08:19:09 +02:00
J. Nick Koston
cdd17b4215 Update caldav to use async_add_executor_job (#41808)
self.calendar.date_search was already being run in the executor in
other places so this should be safe
2020-10-14 08:18:23 +02:00
Chris Talkington
b9d34603e4 Use canary fixture for options flow test (#41817) 2020-10-14 08:17:36 +02:00
Jason Hunter
3013f39191 Add Remote entity to Xbox Integration (#41809) 2020-10-13 21:00:44 -04:00
HomeAssistant Azure
ba55cb8955 [ci skip] Translation update 2020-10-14 00:04:41 +00:00
J. Nick Koston
6c3e450117 Update shopping_list to use async_add_executor_job (#41795) 2020-10-13 17:22:17 -05:00
J. Nick Koston
3748c3c985 Fix canary test doing IO and failing when the cloud is offline (#41799) 2020-10-13 15:57:00 -05:00
J. Nick Koston
ff2872e376 Remove unneeded context switch in dyson (#41793)
dyson was running the add_message_listener code in the
executor even though all it did was append to an array

https://github.com/etheralm/libpurecool/blob/master/libpurecool/dyson_device.py#L213
2020-10-13 15:45:00 -05:00
J. Nick Koston
5c540dcfcf Update cast to use async_add_executor_job (#41794) 2020-10-13 15:39:43 -05:00
J. Nick Koston
af74e36d16 Update html5 to use async_add_executor_job (#41788) 2020-10-13 22:26:14 +02:00
Sharif Nassar
c08f984f2b Update uptime tests to pytest style (#41077)
* Update uptime tests to pytest style

First attempt

* Test that the sensor is actually configured

* Swap the rest of the tests to pytest

* fixup! Swap the rest of the tests to pytest
2020-10-13 22:18:31 +02:00
Robert Svensson
dc71b7421c Improve deCONZ climate platform handling unsupported commands (#41780)
* Improve deCONZ climate platform

* Raise valueerror if missing input

* Fix linting
2020-10-13 22:11:09 +02:00
Aaron Bach
3a59f7c2b7 Address cleanup commentary for Guardian Paired Sensors (#41785) 2020-10-13 22:01:10 +02:00
J. Nick Koston
e791946f00 Update generic camera to use async_add_executor_job (#41787) 2020-10-13 21:59:39 +02:00
J. Nick Koston
b58ef6ae92 Convert remaining async_add_job to async_add_executor_job in media_player (#41790) 2020-10-13 21:57:36 +02:00
J. Nick Koston
aefd4908df Update mjpeg camera to use async_add_executor_job (#41791) 2020-10-13 21:56:57 +02:00
dvermd
840e4be029 Rewrite configurator tests to pytest (#41731) 2020-10-13 21:42:16 +02:00
J. Nick Koston
1bcedd15b3 Update sun listeners to use HassJob (#41695)
Avoids checking the callable type every time sun events trigger
2020-10-13 21:37:10 +02:00
djtimca
5069fc4024 Fix issues with metric conversion and single pump type for filter pumps in Omnilogic integration (#41777) 2020-10-13 21:32:32 +02:00
J. Nick Koston
ef9cd485fd Update to zeroconf 0.28.6 to accomodate devices that are not strictly name compliant (#41784) 2020-10-13 14:02:52 -05:00
Bas Nijholt
8db88192a8 Fix KEF LSX becoming unavailable (#41700)
* Do not use asyncio.gather because the speaker only allows one concurrent connection

* bump to aiokef=0.2.16
2020-10-13 20:13:48 +02:00
Guido Schmitz
db4b4745dc Update devolo-home-control-api to 0.15.1 (#41783) 2020-10-13 20:09:54 +02:00
Daniel Hjelseth Høyer
3a119dd669 Update pyTibber to 0.15.7 (#41722) 2020-10-13 19:58:39 +02:00
thaohtp
7298bb32f1 Rewrite homematic unittest tests to pytest style test functions (#41766)
Issue: https://github.com/home-assistant/core/issues/40856
2020-10-13 19:51:08 +02:00
Robert Svensson
267d97e80e Improve deCONZ fan platform handling unsupported commands (#41779)
* Improve handling unsupported commands

* Raise valueerror on unsupported speed

* Fix linting
2020-10-13 19:34:33 +02:00
Erik Montnemery
7f9db59209 Bump hatasmota to 0.0.15 (#41781) 2020-10-13 18:53:18 +02:00
Jason Hunter
c3ccea52a5 Add Browse Media to Xbox (#41776)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-13 17:51:51 +02:00
Franck Nijhof
5dbb5f12eb Upgrade sqlalchemy to 1.3.20 (#41765) 2020-10-13 08:43:58 -05:00
Franck Nijhof
64d3cdfb41 Add nested light group test (#41764) 2020-10-13 08:37:16 -05:00
Jason Hunter
9877e8e25b Add Xbox Integration (#41697)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-13 15:37:01 +02:00
Erik Montnemery
12a6d10168 Log exceptions in EntityPlatform.async_add_entities (#41730)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-13 15:35:27 +02:00
J. Nick Koston
33b548e247 Reduce ORM overhead when the old state was already written to the database (#41736)
We can avoid processing the relationship when the old state was already
written to the database which will common case with a commit interval
of 1s. Since we already know the value for old_state_id we can use it
instead of asking sqlalchemy to process the relationship at flush/commit
time which can significantly speed up sqlalchemy's _emit_insert_statements
implementation.
2020-10-13 15:34:46 +02:00
Aidan Timson
52c93edb53 Add Palette to WLED Effect Service (#41724) 2020-10-13 14:12:01 +02:00
Rob Bierbooms
c16f107f6b Filter rfxtrx configure devices option flow on existing config entry (#40975)
* Prompt only configure devices when device is in config entry

* Fix copy
2020-10-13 13:51:42 +02:00
tkacikdominik
b6855816ed Rewrite Facebook unit test to pytest style test function (#41671)
* refactoring - Rewrite Facebook unit test to pytest style test function

* Modifying email author

* modified code formating

* Run CI
2020-10-13 13:45:46 +02:00
João Gabriel
d1041efedf Add device info to Panasonic Viera (#41028)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-13 13:14:59 +02:00
Robert Svensson
72289b8171 Add fan support to deCONZ (#40806)
* Add fan support to deconz

* Fix gateway test

* Fix lint issue

* Apply suggestions from code review

* Fix black

* Improve tests

* Store previously used speed in case turn_on service is called without a speed attribute

* Fix tests

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-13 12:57:42 +02:00
Sören Oldag
113a680c43 Bump pwmled to 1.5.3 (#41681) 2020-10-13 12:53:29 +02:00
Joakim Plate
11bbc14530 Pass context to on/off scripts (#40254) 2020-10-13 12:13:47 +02:00
Pascal Vizeli
2d08708c3b Offload dockermachines into core (#41756) 2020-10-13 11:56:28 +02:00
Diogo Gomes
c4148eb2c5 Add notify platform to TTS (#40028) 2020-10-13 11:52:51 +02:00
Pascal Vizeli
4d997180e6 Replace old python extension with new pylance in devcontainer (#41591) 2020-10-13 11:50:25 +02:00
Tom Schneider
1d682bdc78 Bump pygti to 0.9.2 (#41571) 2020-10-13 10:31:42 +02:00
Fredrik Erlandsson
8bdc824b6c Update pypoint to use async http requests (#41546)
* Remove domain after entities

* Add support for async http-requests

* Fix, handle network issues (update _is_available status)

* Fix missing await for alarm_arm

* Fix alarm status

* Update tests to async

* Bump pypoint version

* Fix doc string

* Apply suggestions from code review, remove pylint disable

* Fix black
2020-10-13 08:48:26 +02:00
Sören
32204821c1 Bump pynello to 2.0.3 (#41737)
* Bump pynello to 2.0.3

* Bump pynello to 2.0.3
2020-10-13 08:42:33 +02:00
Aaron Bach
bb98f7ed1b Add support for Elexa Guardian paired sensors (#37930)
* Add support for Guardian paired sensors

* More work

* OOP

* More OOP

* Binary sensors looking good

* Entities all in place

* Looking good

* Linting

* Code review

* Code review

* Flake

* Fix removal

* Code review

* Linting

* Don't use potentially confusing method name

* Use CoordinatorEntity

* Linting

* Pylint

* Code review

* Code review
2020-10-12 21:41:57 -06:00
Glenn Waters
f7d3f3a1ed Add elkm1 bypass and trigger services (#41584) 2020-10-12 21:41:19 -05:00
scheric
7e6432dad6 Use common strings in Griddy config flow (#41716) 2020-10-12 21:13:04 -05:00
Guido Schmitz
bb2d3bf50d Fix climate platform in devolo Home Control (#40746)
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-12 19:21:59 -05:00
Ville Skyttä
f28c3273c2 Upgrade mypy to 0.790 (#41595) 2020-10-12 19:17:30 -05:00
HomeAssistant Azure
1417a4161f [ci skip] Translation update 2020-10-13 00:03:24 +00:00
J. Nick Koston
a9de9c62f1 Use native utc timezone for utcnow() (#41727)
This allows timezone operations to happen in C code instead
of the pure-python code of pytz
2020-10-12 17:43:21 -05:00
Anders Melchiorsen
b5308bda09 Add Sonos support for media_player.repeat_set service (#41735)
* Add Sonos support for media_player.repeat_set service

* Update homeassistant/components/sonos/media_player.py

* Remove else for pylint

Co-authored-by: cgtobi <cgtobi@users.noreply.github.com>
2020-10-13 00:30:38 +02:00
Anders Melchiorsen
d00655810f Add media_player.repeat_set service (#41435) 2020-10-12 23:29:28 +02:00
scheric
a6393fb36c Use common strings in Avri config flow (#41717) 2020-10-12 19:42:07 +02:00
Christian Bilevits
54bb82a3c2 Add common strings in plaato config flow (#41622) 2020-10-12 19:39:09 +02:00
Niccolo Zapponi
8a45bc2d13 Add support for SimpliSafe sensors (#41080)
* Add support for SimpliSafe sensors

* Turn sensor refresh rate to a configurable setting

* Set minimum to scan interval

* Removed dynamic sensor refresh rate

* Refactoring

* Refactoring

* Move battery entities to binary_sensor platform

* Bug fix

* Clean up

* Simplified device info override

* Ignore sensor cache
2020-10-12 11:31:55 -06:00
Erik Montnemery
f70aa0b5cc Merge Tasmota sensor device class and icon maps (#41706) 2020-10-12 19:26:35 +02:00
sycx2
fc75927d85 Rewrite tests for Template Binary Sensor (#41098) 2020-10-12 17:56:08 +02:00
Paulus Schoutsen
57996e1942 Improve mobile app template handling (#41703)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-12 17:26:54 +02:00
Nathan Tilley
feabf99f92 Rewrite Wake on LAN Tests to use pytest style (#41173)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-12 17:17:31 +02:00
Philip Allgaier
625bbe6238 Cleanup unused loggers (components A-M) (#41600) 2020-10-12 16:59:05 +02:00
Thomas Lovén
9e6df38994 Fix too agressive .gitignore (#41677) 2020-10-12 16:48:42 +02:00
Quentame
6cff58f37d Fix disabled Synology DSM camera (#41686) 2020-10-12 16:47:05 +02:00
J. Nick Koston
b897ca7260 Ensure all template errors are caught and the websocket api reports them (#41719) 2020-10-12 16:38:24 +02:00
puddly
f7e7f1371e Update zigpy-znp to 0.2.2 (#41670) 2020-10-12 09:44:40 -04:00
Vladimír Záhradník
111afbb66f Refactor Modbus switch to provide a base for other entities (#33551)
* Add Modbus light and fan entities

* Rework Fan and Light components to new config structure

* Fix Linter issue

* Rework Modbus switch initialization

* Properly update state on actuator methods

* Remove Fan and Light entity from this change. They will be merged separately

* Fix loading of the Switch platform

* Modbus switch - inherit from the SwitchEntity
2020-10-12 14:34:44 +02:00
fnurgel
bf57035880 Use separate line for return statement in hue_activate_scene (#41709) 2020-10-12 13:40:26 +02:00
Brett
3e41c682f4 Add Advantage Air Integration (#40159)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-12 13:22:15 +02:00
Erik Montnemery
cd21786536 Bump hatasmota to 0.0.13 (#41705)
* Bump hatasmota to 0.0.13

* Fix tests
2020-10-12 13:09:17 +02:00
Dan Ports
c8ac787c9f Bump greeneye_monitor to 2.1 (#41692)
This fixes reporting of temperature sensors with negative values.
2020-10-12 08:14:09 +02:00
Erik Montnemery
84cb00bb4e Add Tasmota sensor (#41483)
* Add Tasmota sensor

* Remove useless try-except

* Bump hatasmota to 0.0.11

* Apply suggestions from code review

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

* Sort dict constants

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-12 07:27:06 +02:00
Philip Allgaier
59edb25e4e Clean up speedtest (#41139)
* Remove unused error string + add server list log msg

* Use more common reference texts

* Revert translation files + correct typos
2020-10-12 06:03:45 +02:00
HomeAssistant Azure
f787289ea0 [ci skip] Translation update 2020-10-12 00:03:31 +00:00
Matthias Alphart
93a9a11065 Add config validator helper positive_float (#41640) 2020-10-11 22:04:49 +02:00
Angelo Gagliano
874e1f6103 Prevent tplink missing devices and unavailable state (#39762)
* Adds self to codeowners for tplink

* Adds retry to update to prevent missing devices

* Runs through isort and corrects async commit

* Runs through black

* Runs through pre-checks

* Corrects and matches var names

* Re-runs through black

* Corrects var name

* Removes the retry loop and in favor of async add

* Cleanup imports

* Removes no longer valid test

* Removes is_ready and only log retry once

* Corrects switch logging vars

* Adds list of entities to add_entities

* Consumes exception for attempt_update

* Consumes specific exception

* Removes unnecessary update

* Reducing back to 2 seconds

* Removes useless return

* Call get_sysinfo for all at once

* Formated black

* Adds missing docstirng

* Corrects docstring

* Update homeassistant/components/tplink/light.py

Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>

* Corrects sysinfo call

* Adds default for host vars

* Adds log when device responds again

* Revert host alias default

* Removes unncessary host var

* Removes host var

* Get device details from sysinfo

* Use host and alias for log msg

* Gets hosts from smartbulb

* Changes retry logging to debug

* Attempts coverage add

* Removes unused import

* Updates tests for new retry

* Runs through isort

* Removes unneeded try

* Prevents static entries from failing integration

* Format black

* Forces an update after turn on off

* Remove common test

* Revert update after turn_on off

* Adds patch for sleep_time 0

* Returns False when update fails

Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
2020-10-11 21:10:36 +02:00
fnurgel
366006e0aa Multiple Hue activate scene (#41353) 2020-10-11 21:01:49 +02:00
uvjustin
1c6d0d138d Adjust dts warning messages in stream (#41467)
* Adjust dts warning messages

* Wait for second packet with overflow dts condition

* Rename dts gap watch variable

* Remove out of order packet warning
2020-10-11 12:55:13 -04:00
uvjustin
6c18feb4ed Allow only one packet with no dts in stream init (#41129)
* Allow only one packet with no dts in stream init

* Call finalize_stream() on exit
2020-10-11 12:52:51 -04:00
J. Nick Koston
c7bbba9d48 Reduce icmplib ping timeout to match ping binary behavior (#41620) 2020-10-11 11:12:27 -05:00
ochlocracy
178b2d8c22 Update display categories in Alexa (#41626)
* Add new display categories from Alexa Smart Home API

* Update Vacuum entities to use VACUUM_CLEANER category.

* Update Automation entities to use ACTIVITY_TRIGGER category.

* Update tests for Automation entities to use ACTIVITY_TRIGGER category.
2020-10-11 11:09:05 -05:00
Maciej Bieniek
13f0ea506e Bump brother to 0.1.18 (#41056) 2020-10-11 11:04:27 -05:00
Spartan-II-117
44a3278ba8 Use common strings for AirVisual (#41632) 2020-10-11 17:28:55 +02:00
scheric
9d6589240f Use common strings in logi_circle config flow (#41427)
* already_setup->already_configured

* auth_error->invalid_auth

* rm default

* auth_timeout->oauth2_authorize_url_timeout

* enable auto format black

* add oauth2_missing_configuration

* Use standard helper keys

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-11 10:11:45 -05:00
Christian Bilevits
ae20b3a678 Use common strings in ps4 config flow (#41623) 2020-10-11 16:57:21 +02:00
Gautham Varma K
ffd25fb2ce Use common strings in homematicip_cloud config flow (#41658) 2020-10-11 16:53:03 +02:00
Philip Allgaier
b6a93724bf Use consistent "percent" naming in systemmonitor (#41411) 2020-10-11 15:52:32 +02:00
Christian Bilevits
1cb25cdaf7 Use common strings in panasonic config flow (#41641)
* Add missing common strings

* Add common string
2020-10-11 15:47:49 +02:00
Gautham Varma K
9d515e8c34 Use common strings in risco config flow (#41656) 2020-10-11 15:46:59 +02:00
scheric
1f4fe62380 Use common strings in twentemilieu config flow (#41647) 2020-10-11 14:54:08 +02:00
Christian Bilevits
1c4512bc40 Use common strings in Nest config flow (#41597) 2020-10-11 14:47:30 +02:00
Christian Bilevits
ef448f1549 Use common strings in profiler config flow (#41642) 2020-10-11 14:33:34 +02:00
scheric
f382754830 Use common strings in iOS config flow (#41644) 2020-10-11 14:32:06 +02:00
scheric
9c9b9e8227 Use common strings in Météo-France (#41610)
* insert feadback

* more feadback
2020-10-11 09:58:54 +02:00
Brian Rogers
899431235b Bump rachiopy to 1.0.3 and update methods to handle changes (#41398) 2020-10-10 19:44:49 -05:00
HomeAssistant Azure
80522f1bdc [ci skip] Translation update 2020-10-11 00:03:37 +00:00
Christian Bilevits
fdc965c6b9 Add missing common strings (#41621) 2020-10-11 00:42:32 +02:00
Steffen Rusitschka
b5f4b58832 Add rx mode to homematic.put_paramset service (#40065) 2020-10-10 20:42:19 +02:00
Christian Bilevits
0838936ce7 Add common strings in broadlink config flow (#41602) 2020-10-10 19:12:15 +02:00
Paulus Schoutsen
dc1b1706f1 Add device info to met (#41611) 2020-10-10 17:30:27 +02:00
Daniel Hjelseth Høyer
4ece928c0a Remove icon for Tibber sensor (#41604) 2020-10-10 17:29:45 +02:00
J. Nick Koston
00b338002a Update icmplib to 1.2.2 (#41608)
Fixes IPv6 lookups
2020-10-10 17:28:13 +02:00
J. Nick Koston
da2f9db62e Fix async functions accidentally marked as callbacks (#41607) 2020-10-10 16:54:36 +02:00
javicalle
73f52c829a Remove illuminance sensor for Xiaomi EU gateway (#41580)
Xiaomi EU gateway don't support the `XiaomiGatewayIlluminanceSensor`.
2020-10-10 14:43:06 +02:00
Diederik van den Burger
c31d9bfd3f Update Withings integration (add sleeps data) (#41504) 2020-10-10 14:41:26 +02:00
scheric
7f8f53607e add strings (#41599) 2020-10-10 14:38:00 +02:00
Daniel Hjelseth Høyer
9299f0a8b2 Add device_class to Tibber sensor (#41572) 2020-10-10 14:20:15 +02:00
Ville Skyttä
3a6c9b43ab Remove redundant flake8 max-line-length (#41596)
Disabling E501 is needed and handles it anyway.
2020-10-10 13:43:37 +02:00
Alexander Pitkin
85b01a9b80 Rewrite mhz19 unittest tests to pytest style tests (#41441)
* Rewrite mhz19 unittest tests to pytest style tests

* Move mhz19 tests imports
2020-10-10 13:05:08 +02:00
Ville Skyttä
66aa55dddf Fix deCONZ IKEA TRÅDFRI device name spelling (#41574) 2020-10-10 13:04:00 +02:00
Gabe Cook
4b617db669 Add Ruckus Unleashed integration (#40002)
* Add Ruckus Unleashed integration

* Tweak catches to better rely on CoordinatorEntity error handling, rename LoginError to AuthenticationError

* Make router_update be a callback function

* Make name property return hint match the newer value

* Add entity to tracked set when restoring on boot

* Add a device's MAC to the attributes
2020-10-10 13:01:53 +02:00
Chris
de300ddd56 Clean up some of the ozw tests (#41578)
* Remove some unnecessary fixtures and combine csv dumps
2020-10-10 09:45:20 +02:00
Raman Gupta
025bdd74a1 Allow users to update their iCloud password when auth fails (#39138)
* Allow users to update their iCloud password when auth fails after successful setup

* remove trailing comma

* use new reauth source instead of custom one so frontend can do the right thing

* add quentames text suggestion with a slight tweak

* fix test

* use common string for successful reauth and remove creation and dismissal of persistent notification

* Update homeassistant/components/icloud/account.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-10 02:02:28 -04:00
HomeAssistant Azure
6ae12c3faf [ci skip] Translation update 2020-10-10 00:05:05 +00:00
Franck Nijhof
0c7d8ce704 Upgrade codecov to 2.1.10 (#41562) 2020-10-09 18:27:26 +02:00
epenet
843c4e27f3 Update Onewire SysBus integration to use a 3rd party library (#40943) 2020-10-09 17:31:05 +02:00
Paulus Schoutsen
52d8c66a8b Merge pull request #41555 from home-assistant/rc 2020-10-09 16:46:08 +02:00
J. Nick Koston
3bb0e00abe Update python_script tests to use async_add_executor_job (#41553) 2020-10-09 15:58:36 +02:00
J. Nick Koston
49e5b665cf Convert final async_add_job to async_add_executor_job in logbook tests (#41552) 2020-10-09 15:52:06 +02:00
J. Nick Koston
61262222aa Remove async_add_job from system_log tests (#41551) 2020-10-09 15:50:43 +02:00
Paulus Schoutsen
a26413c989 Bumped version to 0.116.2 2020-10-09 13:44:04 +00:00
cgtobi
c9d53dec8d Fix missing weather sensors (#41540) 2020-10-09 13:42:54 +00:00
Maciej Bieniek
dae2117078 Fix description reference in PoolSense config flow (#41535) 2020-10-09 13:42:53 +00:00
Xiaonan Shen
72b95f7529 Bump yeelight to 0.5.4 (#41524) 2020-10-09 13:42:52 +00:00
J. Nick Koston
56436e6387 Restore group support to plant entities (#41519) 2020-10-09 13:42:52 +00:00
djtimca
7cdbbc248f Fix omnilogic temperature sensor with metric setting (#41509) 2020-10-09 13:42:51 +00:00
Arjan van Balken
cca2594225 Update Arris TG2492LG dependency version (#41465) 2020-10-09 13:42:50 +00:00
Abílio Costa
078ecef4b2 Remove duplicated attribute request from ZHA (#41442)
The on_off attribute is on the REPORT_CONFIG, so
super().async_initialize already requests it from the device.
No need to request it twice.
2020-10-09 09:23:52 -04:00
definitio
0a1d9abe79 Use common strings in esphome config flow (#41547) 2020-10-09 14:28:54 +02:00
Steffen Rusitschka
a9adc2a6f0 Publish state changes to Zabbix (#36659) 2020-10-09 14:11:50 +02:00
Xiaonan Shen
e6a65b8bd3 Bump yeelight to 0.5.4 (#41524) 2020-10-09 13:30:42 +02:00
cgtobi
96035eb052 Fix missing weather sensors (#41540) 2020-10-09 12:34:52 +02:00
Tobias Efinger
f101d9cddb Update translate develop to substitute references (#41445) 2020-10-09 11:51:05 +02:00
Franck Nijhof
58ede21f39 Fix date parsing template int in history stats (#41476) 2020-10-09 11:50:52 +02:00
Dmitry
b106149588 Fix string parameter processing in parse_time_expression (#41468) (#41469) 2020-10-09 11:48:49 +02:00
Maciej Bieniek
9d1aa70c62 Fix description reference in PoolSense config flow (#41535) 2020-10-09 11:16:16 +02:00
J. Nick Koston
f268378f0f Fix plant doing IO in the event loop. (#41527)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-09 09:57:46 +02:00
Raman Gupta
d3734aae9d Allow custom_serializer to recognize cv.string and cv.boolean to make config schema more reusable (#41532) 2020-10-09 09:36:54 +02:00
J. Nick Koston
852d1b2e67 Update discovery to use HassJob (#41511)
Predetermine the listener types for discovery
2020-10-09 09:35:28 +02:00
J. Nick Koston
3a863c4a0f Fully convert async_track_time_interval to use HassJob (#41513)
The callback type for interval_listener was being determined
each time the interval hit.

This was missed in the original conversion.
2020-10-09 09:35:09 +02:00
J. Nick Koston
a8a2109cef Convert last remaining async_add_job in light to async_add_executor_job (#41518) 2020-10-09 09:32:55 +02:00
J. Nick Koston
1c431aa7bd Set created field when creating db events and states (#41523)
Avoids thousands of utcnow calls when the session
is commited on busy systems to fill in the field
default.
2020-10-09 09:31:17 +02:00
J. Nick Koston
617509413c Update wake_on_lan to use async_add_executor_job (#41528) 2020-10-09 09:29:16 +02:00
J. Nick Koston
3267823165 Update http to use async_add_executor_job (#41529) 2020-10-09 09:29:07 +02:00
J. Nick Koston
822ad0ae9c Update arcam_fmj device trigger to use async_run_hass_job (#41530) 2020-10-09 09:28:55 +02:00
J. Nick Koston
fef2700351 Update kodi device trigger to use async_run_hass_job (#41531) 2020-10-09 09:27:47 +02:00
J. Nick Koston
5ebf5996f1 Predetermine listener type for script change listeners (#41510) 2020-10-09 08:41:12 +02:00
J. Nick Koston
0b3bea0282 Use async_add_hass_job for debouncer (#41449) 2020-10-09 08:40:36 +02:00
cgtobi
22bef1d0d3 Fix Netatmo non specified sensor types (#41517) 2020-10-09 08:37:56 +02:00
J. Nick Koston
e03b3e2310 Restore group support to plant entities (#41519) 2020-10-09 08:37:27 +02:00
J. Nick Koston
68e1c70b14 Update history tests to use async_add_executor_job (#41526) 2020-10-09 08:36:59 +02:00
HomeAssistant Azure
29aea5a66c [ci skip] Translation update 2020-10-09 00:04:33 +00:00
J. Nick Koston
480b8165d7 Update notify to use async_add_executor_job (#41516) 2020-10-08 23:58:33 +02:00
J. Nick Koston
5b8ecc26a4 Update device_tracker to use async_add_executor_job (#41515) 2020-10-08 23:56:32 +02:00
jan iversen
4d9ff13384 Fix bool registers in modbus integration (#41506)
When a register is of type bool modbus returns a whole byte, but ONLY the
lowest bit determine true/false.
2020-10-08 23:52:41 +02:00
djtimca
8e3258cdfb Fix omnilogic temperature sensor with metric setting (#41509) 2020-10-08 23:48:54 +02:00
springstan
916178925e Return attribute dict directly without temporary variable v3 (#41502) 2020-10-08 21:33:08 +02:00
Fredrik Erlandsson
f42eca3fcf Add common strings in daikin config flow (#41419) 2020-10-08 21:25:54 +02:00
Ville Skyttä
cf83c6bf00 Complete Huawei LTE type hints, make mypy check them (#41503) 2020-10-08 21:02:47 +02:00
Joakim Sørensen
61a5bf5645 Add delete to hassio API (#41500) 2020-10-08 20:40:45 +02:00
willholdoway
1e9e0c8686 Add mute command to Bluesound integration (#41501)
Adding mute as a separate command as per the Bluesound API, rather than the current pseudo-mute which is achieved via lowering the volume to 0 then detecting whether the volume is 0 < volume < 0.001
2020-10-08 20:20:39 +02:00
Arjan van Balken
0856d91b0e Update Arris TG2492LG dependency version (#41465) 2020-10-08 19:08:20 +02:00
Paulus Schoutsen
b2885f6cc5 Merge pull request #41498 from home-assistant/rc 2020-10-08 19:03:12 +02:00
scheric
c2d0c90cd4 Use common strings in tellduslive config flow (#41408)
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-08 18:14:21 +02:00
scheric
5345e9fb5c Use common strings in fritzbox config flow (#41407)
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-08 18:12:04 +02:00
Keilin Bickar
d8aebe145b Add active voltage sensors to Sense integration (#41112) 2020-10-08 18:08:37 +02:00
J. Nick Koston
3a1ee2f654 Add missing on states to media player groups (#41496) 2020-10-08 15:59:09 +00:00
J. Nick Koston
2aee72981c Add missing on states to media player groups (#41496) 2020-10-08 17:58:52 +02:00
Paulus Schoutsen
26ba956242 Bumped version to 0.116.1 2020-10-08 15:48:36 +00:00
Bram Kragten
90d8874825 Update frontend to 20201001.2 (#41491) 2020-10-08 15:47:57 +00:00
Guido Schmitz
22f76a9363 Fix async_unload_entry for devolo Home Control (#41488) 2020-10-08 15:47:56 +00:00
cgtobi
cc4d71f942 Bump pyatmo version to 4.1.0 (#41487) 2020-10-08 15:47:56 +00:00
Paulus Schoutsen
0a55f024a4 Downgrade Paho MQTT to 1.5.0 (#41479) 2020-10-08 15:47:55 +00:00
J. Nick Koston
60fe64d119 Ensure recorder commit can retry after encountering invalid data (#41426) 2020-10-08 15:46:40 +00:00
Markus Bong
ac256815f9 Optimize devolo light devices (#41053) 2020-10-08 16:55:23 +02:00
Guido Schmitz
a81f4cf387 Fix async_unload_entry for devolo Home Control (#41488) 2020-10-08 16:48:05 +02:00
Khole
a3692859e9 Update Pyhiveapi Library Version (#40804)
* Update Pyhiveapi Library Version

This fixs an issue caused by a change in authentication method by hive

* Update Library Version
2020-10-08 14:01:21 +00:00
Bram Kragten
29a613e91f Update frontend to 20201001.2 (#41491) 2020-10-08 16:00:34 +02:00
jan iversen
9f3701bd32 Change modbus tests to use pytest.mark.parametrize (#41486) 2020-10-08 15:47:59 +02:00
scheric
a71049112e Use common strings in Atag config flow (#41351) 2020-10-08 15:27:28 +02:00
jrester
734972f876 Update tesla_powerwall to 0.3.3 (#41482) 2020-10-08 08:26:44 -05:00
cgtobi
07d208f1bc Bump pyatmo version to 4.1.0 (#41487) 2020-10-08 15:08:15 +02:00
Paulus Schoutsen
3036c17769 Downgrade Paho MQTT to 1.5.0 (#41479) 2020-10-08 12:31:46 +02:00
Erik Montnemery
35287828bc Poll state when Tasmota device becomes available (#41401) 2020-10-08 11:17:23 +02:00
J. Nick Koston
b51a160cce Update triggers to use HassJob (#41450)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-08 09:44:34 +02:00
J. Nick Koston
7537a3a7c8 Update filter to use async_add_executor_job (#41455) 2020-10-08 09:22:51 +02:00
J. Nick Koston
740d15e41d Update media_player to use async_add_executor_job (#41459) 2020-10-08 09:22:37 +02:00
J. Nick Koston
dfc656a2c6 Update lock to use async_add_executor_job (#41458) 2020-10-08 09:22:16 +02:00
J. Nick Koston
aa250c2b61 Update cover to use async_add_executor_job (#41456) 2020-10-08 09:21:47 +02:00
J. Nick Koston
1bf6166817 Update fan to use async_add_executor_job (#41457) 2020-10-08 09:21:29 +02:00
J. Nick Koston
e10413fa4c Update trend to use async_add_executor_job (#41454) 2020-10-08 09:20:58 +02:00
J. Nick Koston
ad5273ded1 Update config to use async_add_executor_job (#41452) 2020-10-08 09:20:39 +02:00
J. Nick Koston
8a374590e8 Update discovery to use async_add_executor_job (#41453) 2020-10-08 09:20:07 +02:00
J. Nick Koston
52e8366ce7 Update roomba to use async_add_executor_job (#41448) 2020-10-08 09:15:47 +02:00
J. Nick Koston
4ab02cb9bc Ensure recorder commit can retry after encountering invalid data (#41426) 2020-10-08 09:15:25 +02:00
On Freund
b5e57ed4fd Support matching multiple user ids in event trigger (#41036) 2020-10-08 09:10:42 +02:00
Erik Montnemery
392d5c673a Cache matching MQTT subscriptions (#41433) 2020-10-08 08:52:23 +02:00
Erik Montnemery
85603dcd08 Remove useless try-except from Tasmota binary sensor (#41462) 2020-10-08 08:44:11 +02:00
J. Nick Koston
896f64d02b Fix group tests when run in parallel (#41446) 2020-10-08 00:01:33 -05:00
J. Nick Koston
c1a0329401 Update nexia to use async_add_executor_job (#41451) 2020-10-07 23:59:02 -05:00
J. Nick Koston
700e639ec6 Fix flapping pilight test (#41447) 2020-10-07 23:58:17 -05:00
HomeAssistant Azure
d73d36d0cd [ci skip] Translation update 2020-10-08 00:06:03 +00:00
Erik Montnemery
a3f8b76537 Make async_step_discovery default for MQTT config flows (#41414) 2020-10-07 23:49:29 +02:00
Vladimír Záhradník
ba84d0bf5c Add custom data type support into Modbus climate (#32439) 2020-10-07 22:43:16 +02:00
scheric
3d9d90c4c8 Use common string names in ipp config flow (#41409)
* connection_error->cannot_connect

* connection_error->cannot_connect in config flow
2020-10-07 22:42:01 +02:00
Tom
b8f291d58e Prepare Plugwise integration for USB products (#41201)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-07 22:25:42 +02:00
Erik Montnemery
343e5d64b8 Add MQTT integration discovery (#41332)
* Add MQTT integration discovery

* Add script/hassfest/mqtt.py

* Unsubscribe if config entry exists

* Add homeassistant/generated/mqtt.py

* Fix bad loop

* Improve tests

* Improve tests

* Apply suggestions from code review

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>

* Prevent initiating multiple config flows

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2020-10-07 18:30:51 +02:00
Erik Montnemery
3f263d5cbe Remove deprecated host & platform configuration for cast (#41402) 2020-10-07 18:01:34 +02:00
J. Nick Koston
9e1461da62 Determine how to run listeners at setup time instead of execution time (#41304) 2020-10-07 16:51:50 +02:00
Paulus Schoutsen
8d94dff75c Warn when using Python 3.7 (#41400) 2020-10-07 16:44:13 +02:00
J. Nick Koston
8d5c124deb Improve performance of generating non-cryptographically secure uuids (#41314) 2020-10-07 16:37:01 +02:00
Glenn Waters
451f27bba1 Bump ElkM1 lib dependency. (#41399) 2020-10-07 09:31:37 -05:00
Martin Hjelmare
e006e0ddb3 Revert zoneminder config flow (#41395) 2020-10-07 16:28:49 +02:00
jyz0501
0f3489f5cb Baidu TTS: support more voices (#41393)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-07 15:44:16 +02:00
scheric
434c269f25 Add common strings in Agent dvr config flow (#41279) 2020-10-07 15:39:10 +02:00
J. Nick Koston
113d738fa2 Reduce orm overhead by grouping object expiration (#41394) 2020-10-07 15:35:48 +02:00
Maciej Bieniek
0dabf4962e Use already_configured_location string in GIOS config flow (#41384) 2020-10-07 15:30:46 +02:00
Kendell R
18419416ce Make PR search link not show changes requested PRs (#41278) 2020-10-07 15:30:08 +02:00
cgtobi
05765f1700 Remove Netatmo unnecessary battery sensors (#41321) 2020-10-07 15:25:11 +02:00
Maciej Bieniek
4434958265 Use name translation reference in Airly config flow (#41319)
* Use more translation references

* Revert already_configured string
2020-10-07 15:24:32 +02:00
Allen Porter
42cef1773b Update script scaffold templates for config_flow_oauth2 (#41181)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-07 15:23:45 +02:00
Dave T
d3bc4efa89 Use common strings in Awair (#41313)
* awair use common strings

* Use common strings: 'auth' to invalid_access_token

* Use reauth successful ref

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-07 15:17:10 +02:00
Erik Montnemery
306ee30574 Enable MQTT discovery by default (#41361) 2020-10-07 14:51:06 +02:00
SNoof85
b7c2e117be Use reference strings in Alarmdecoder (#41392) 2020-10-07 14:46:17 +02:00
Spartan-II-117
d2d3749223 Use common strings for Almond Config Flow (#41097)
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-07 14:45:19 +02:00
Erik Montnemery
6e84f91762 Add Tasmota binary sensor (#41380) 2020-10-07 14:41:30 +02:00
SNoof85
7c133e4630 Use reference strings in Smarthab (#41391) 2020-10-07 14:39:30 +02:00
Paulus Schoutsen
4968a12b6c Reduce Somfy polling (#41389) 2020-10-07 13:49:45 +02:00
Matej Plavevski
cf9a508557 Remove duplicate ATTR_USERNAME (#41386) 2020-10-07 11:41:00 +02:00
Maciej Bieniek
ca441a79aa Add invalid_host to base strings for config flows (#41381) 2020-10-07 11:24:31 +02:00
SNoof85
04b04027c3 Use reference strings in Withings (#41345) 2020-10-07 11:22:11 +02:00
Chris Talkington
21655e93bf Add CONF_API_TOKEN to constants (#41379)
* add CONF_API_TOKEN to constants

* Update const.py
2020-10-07 10:55:59 +02:00
Glenn Waters
95e4048f4e Fix elkm1 changed by (#41378) 2020-10-07 10:36:49 +02:00
Paulus Schoutsen
66e6ae8dbd Add additionalAttributes to Alexa discovery payload (#41370) 2020-10-07 09:32:12 +02:00
Yury Kotlyarov
99a64237f4 Support of NEW fan speed controller Leviton Decora ZW4SF-1BW (#41374)
Product page: https://www.leviton.com/en/products/zw4sf-1bz
Product year: 2020
2020-10-07 08:50:41 +02:00
tkdrob
1ed6133ee6 Add update_alarm to sonos services.yaml (#41376) 2020-10-07 08:18:13 +02:00
Maciej Bieniek
81ceb3e499 Add already_configured_location to base strings for config flows (#41335)
* Add already_configured_location key

* Use already_configured_location in Airly

* Use already_configured_location in Flu Near You

* Use already_configured_location in OpenUV

* Use already_configured_location in Open Weather Map

* Use already_configured_location in AirVisual
2020-10-06 22:34:06 -05:00
Charles Garwood
4c86e99ccf Bump python-openzwave-mqtt to 1.2.2 (#41357) 2020-10-07 02:10:54 +02:00
HomeAssistant Azure
486c0b644a [ci skip] Translation update 2020-10-07 00:06:20 +00:00
Alexei Chetroi
0ec4887837 Bump up zha dependency to 0.26.0 (#41371) 2020-10-07 01:15:49 +02:00
Quentame
ae1c15ff14 Set longer timeout during synology_dsm config flow (#41364) 2020-10-07 01:14:05 +02:00
Alexander Pitkin
5b0282e56d Rewrite panel_iframe unittest tests to pytest style tests (#41368) 2020-10-07 00:40:28 +02:00
Paul Annekov
ca59c4a645 Bump tuyaha to 0.0.8 (#41365) 2020-10-07 00:22:42 +02:00
Anders Melchiorsen
a65dcbf204 Allow playing Spotify URLs with Sonos (#41366) 2020-10-07 00:15:09 +02:00
Franck Nijhof
ee914366a8 Add native Python types support to templates (#41227)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-07 00:05:52 +02:00
Robert Svensson
cbb4324c84 Refactor deCONZ tests (#41362)
* Use hass.config_entries.async_unload

* Return config_entry from setup_deconz_integration
2020-10-06 23:25:57 +02:00
Erik Montnemery
42fb0e9545 Bump hatasmota to 0.0.10, minor refactor of discovery (#41331)
* Bump hatasmota to 0.0.10, minor refactor of discovery

* Update tests

* Add missing docstrings
2020-10-06 22:32:36 +02:00
Shulyaka
9b947e08bf Add ZHA Analog Input cluster for XBee (#41311)
* Add ZHA XBee Analog Input cluster

* Fix manufacturer to Digi
2020-10-06 16:01:51 -04:00
Ariana Hlavaty
1e9e40bf71 Rewrite recorder unittest tests to pytest style test function (#41264) 2020-10-06 21:24:13 +02:00
J. Nick Koston
d35e33610a Resolve memory leak in recorder (#41349)
Avoids a build up of the InstanceState.
2020-10-06 20:12:47 +02:00
SNoof85
b8287d6db6 Use reference strings in Vesync (#41341)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-06 20:00:07 +02:00
SNoof85
ba81c0c043 Use reference strings in Upb (#41340)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-06 19:57:38 +02:00
SNoof85
f256d0a4ea Use reference strings in upnp (#41327)
* Update strings.json

* Update strings.json

* Update config_flow.py

* replace service by device

Co-authored-by: scheric <38077357+scheric@users.noreply.github.com>

Co-authored-by: scheric <38077357+scheric@users.noreply.github.com>
2020-10-06 19:54:20 +02:00
scheric
6ab9d0bc31 add common strings (#41350) 2020-10-06 18:50:32 +02:00
springstan
61d9067a49 Return empty dictionary at first for attributes (#41348) 2020-10-06 18:08:53 +02:00
Franck Nijhof
4d12fcc218 Fix TTS ID3 Tag capability check (#41343) 2020-10-06 17:49:14 +02:00
springstan
513f03eb1f Return attribute dict directly without temporary variable v2 (#41271) 2020-10-06 16:55:16 +02:00
Dave T
33e69fe4bf Update axis to use common strings (#41164)
* Update axis to use common strings

* Update common str device_unavailable to cannot_connect

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2020-10-06 16:54:18 +02:00
SNoof85
8b2df5bf99 Use reference strings in Smappee (#41337)
* Update strings.json

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-06 16:51:36 +02:00
Maciej Bieniek
d9e48b483b Use name translation reference in AccuWeather config flow (#41338) 2020-10-06 16:49:02 +02:00
Charles Garwood
d6ad85bba7 Protect add/remove node services from invalid instance ID (#41334) 2020-10-06 09:54:46 -04:00
Guido Schmitz
bfb00b9bb5 Add battery state for devolo Home Control devices (#41329) 2020-10-06 15:43:12 +02:00
SNoof85
0460166c7c Use reference strings in Synology_DSM (#41333)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-06 15:35:36 +02:00
Teemu R
46b2c776db Fetch timers separately for xiaomi vacuums (#41330) 2020-10-06 15:26:59 +02:00
cgtobi
6065ab118f Add Netatmo weather trend sensors (#41318)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-06 15:25:12 +02:00
Paulus Schoutsen
4d5948b4d0 Use dict syntax (#41325) 2020-10-06 15:02:23 +02:00
Thibaut
61f919b18c Handle somfy error 404 during setup (#41298) 2020-10-06 15:02:03 +02:00
Edward Knight
8bcd6c1880 Rewrite imap_email_content tests to use pytest (#41200) 2020-10-06 15:01:25 +02:00
Franck Nijhof
357a0e9d7e Improve switch template tests, remove common test helpers (#41322) 2020-10-06 14:54:39 +02:00
Maciej Bieniek
ae54c21945 Use name reference and fix already_configured string for GIOS integration (#41323) 2020-10-06 14:54:02 +02:00
Ronan Murray
df4998d7cf Rewrite uk_transport tests to use pytest style (#41168) 2020-10-06 14:53:17 +02:00
Erik Montnemery
06e9489fc7 Add Tasmota integration (#39624)
* Add Tasmota integration

* Refactor

* Add tests, small improvements

* isort

* Attempt to fix tests failing with Python 3.8

* Revert "Attempt to fix tests failing with Python 3.8"

This reverts commit 11454f8a00136f068ea27204183fa3e62f3cd263.

* Fix tests failing with Python 3.8

* Cleanup tests

* Address review comments

* Address review comments

* Address review comments

* Use MAC address for device identification

* Bump hatasmota

* Bump hatasmota

* Apply suggestions from code review

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

* Fix indentation

* Remove preparation for device remove WS API

* Address review comments

* Remove useless try-except

* Tweak

* Improve tests

* Tweak

* Address review comments

* Correct test

* Update manifest.json

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-06 14:51:58 +02:00
SNoof85
3cf6535011 Use reference strings in Tile (#41328) 2020-10-06 14:44:14 +02:00
cgtobi
dcf0f9d3f3 Fix Netatmo wind angle (#41324) 2020-10-06 14:43:30 +02:00
cgtobi
d7890f35be Fix Netatmo rain sensor naming (#41326) 2020-10-06 14:42:50 +02:00
Ariana Hlavaty
8adc5ee452 Rewrite pushbullet unittest tests to pytest style test function (#41266) 2020-10-06 14:34:39 +02:00
Raman Gupta
06306f5dfe Add OZW WS API support for locks (#41186)
* add WS API support for locks and simplify lock service calls

* move return outside of try blocK

* fix rebase conflicts
2020-10-06 14:20:48 +02:00
Pigotka
e1578e5389 Use of reference strings in Almond config flow (#41284) 2020-10-06 14:12:12 +02:00
TopdRob
888c92aa5e Use common strings for Panasonic Viera (#41268)
* Update strings.json

* Update config_flow.py

* Update homeassistant/components/panasonic_viera/strings.json

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

* Update homeassistant/components/panasonic_viera/strings.json

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

* Update config_flow.py

* Update test_config_flow.py

* Update test_config_flow.py

* Fix failed tests

* revert line 530

* Fix remaining error key

* Remove not needed import

* Update const.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-06 14:07:38 +02:00
Charles Garwood
356ebc1128 Add cancel_command service for OpenZWave (#41285)
* Add cancel_command service for OpenZWave

* Raise ValueError if instance is None
2020-10-06 14:05:52 +02:00
Felipe Martins Diel
34416fcad3 Log device info in Broadlink error messages (#41307) 2020-10-06 08:02:14 -04:00
Steven Looman
c812812631 Don't set upnp config_entry.unique_id from setup entry (#40988)
* Don't set config_entry.unique_id from setup entry. Fixes #40168

* Ensure entry has a unique_id

* Add test test_flow_import_incomplete

* Add test test_flow_import_duplicate

* Re-add testing import_info

* Simplify import flow

* Remove not needed line

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-06 13:57:36 +02:00
Rob Bierbooms
b2b5f2ffcb Rewrite zwave init tests to pytest style test function (phase 1) (#41301) 2020-10-06 11:50:03 +02:00
SNoof85
c5653ec57b Use reference strings in konnected (#41290)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-06 11:49:46 +02:00
SNoof85
883c9b5e18 Add reauth_successful to base strings (#41316) 2020-10-06 11:29:53 +02:00
Ville Skyttä
0444f3de14 Move isort, pylint, and pytest configs to pyproject.toml (#40335) 2020-10-06 11:26:48 +02:00
Pigotka
ed9a40874d Use of reference strings in Transmission config flow (#41215) 2020-10-06 11:25:56 +02:00
Julian Engelhardt
14273e9e48 Rewrite statsd unittest tests to pytest style test functions (#41223) 2020-10-06 11:24:16 +02:00
springstan
014fe48096 Add pin to base strings for config flows (#41202) 2020-10-06 11:00:36 +02:00
SNoof85
c4401754be Use reference strings in iqvia (#41289) 2020-10-06 10:27:16 +02:00
SNoof85
3e2b95949f Use reference strings in Metoffice (#41295) 2020-10-06 10:26:49 +02:00
Björn Olsson Jarl
3abf30cf42 Rewrite sigfox unittest tests to pytest (#41302) 2020-10-06 10:16:41 +02:00
Paulus Schoutsen
e303064f75 Don't use asynctest directly (#41306) 2020-10-06 10:15:50 +02:00
SNoof85
949ab621c0 Use reference strings in ambient_station (#41276) 2020-10-06 10:15:11 +02:00
sycx2
956b735be6 Improve yessssms test notify (#41283) 2020-10-06 10:11:36 +02:00
Brett
b6b85d3e0c Fix reported temperatures in Maxcube (#41259) 2020-10-06 10:06:54 +02:00
J. Nick Koston
2fabd4edb8 Prevent collecting states already referenced by domain or all (#41308)
The template engine would collect all the states in
a domain or all states while iterating even though
they were already included in all or the domain

This lead to the rate limit not being applied to
templates that iterated all states that also
accessed a collectable property because the engine
incorrectly believed they were specifically
referenced.
2020-10-06 07:25:05 +02:00
Joakim Plate
999eeb39b9 Indicate to user that remote was turned off when call was attempted (#40715)
* Indicate to user that remote was turned off when call was attempted

* Catch exception in test

* Switch to warning log

* Apply suggestions from code review

Add suggested change to loggin
2020-10-06 06:12:39 +02:00
SNoof85
acb0307beb Use reference strings in Hunter Douglas PowerView (#41291) 2020-10-05 21:57:34 -05:00
Jason Rebelo
4d3802ff95 Rewrite reddit tests to pytest style tests (#41006)
*  rewrite reddit tests to pytest tests

*  add missing blocking
2020-10-05 20:33:31 -04:00
HomeAssistant Azure
bcfa4ac959 [ci skip] Translation update 2020-10-06 00:08:09 +00:00
Ariana Hlavaty
329e56fac0 Rewrite min_max unittest tests to pytest style test function (#41296)
* Rewrite min_max unittest tests to pytest style test function

For: #40866

* Use uppercase letters for constants

* Remove not needed line

* Fix missing rename to uppercase

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-05 22:57:58 +02:00
Andrew Sayre
8e6a616846 Update pysmartthings (#41294) 2020-10-05 22:12:38 +02:00
Bram Kragten
510e90803e Exclude media_dirs from YAML config check (#41299) 2020-10-05 22:09:47 +02:00
scheric
f2b73c05d6 add strings (#41297) 2020-10-05 14:56:47 -05:00
scheric
95c831648b add common strings (#41300) 2020-10-05 14:56:06 -05:00
SNoof85
7a12a16fc5 Use reference strings in iaqualink (#41292)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-05 14:55:12 -05:00
SNoof85
72cbdbbe36 Update strings.json (#41293) 2020-10-05 14:54:43 -05:00
Raman Gupta
6db4075a23 Add OZW node config parameters websocket commands (#40527)
* add websocket commands to retrieve and set config parameters for a node

* move set_config_parameter into generic function and refactor service and WS API

* add payload to return to make service call behave the same way it did before

* create response class

* update error message to pass tests

* move things a bit to reduce LOC

* add tests

* handle logging errors better and make new response class more generic to prepare for lock user code work

* remove unused function parameter

* invert check

* add additional error checking

* refactor a bit to remove repeat code

* revert log msg change

* one more refactor to create generic get_config_parameters function

* change if logic for consistency

* fix test

* add support to provide bool value in set_config_parameter service call

* standardize parameter names on service call

* add test coverage

* fix tests and message sending

* remove unnecessary logging import

* fix one test to get missing coverage

* update per martin and kpines reviews

* remove false assertion

* string line length

* add support for Decimal config param, remove node instance ID as input, and move helper functions to node.py

* cast Decimal appropriately

* revert change to support Decimal for config params since they are not supported as a config param type

* revert to using error arguments to make next PR for WS lock commands easier

* switch to class method and add guard for list Value not being a number

* update logic to use new openzwavemqtt util methods

* add support for bitsets

* use parent exception class

* bump openzwavemqtt version, remove node.py from .coveragerc and put file references in the right place

* add comment

* improve config validation

* remove bitset support from config validation

* re-add bitset support with some additional tests

* move send_result out of try block
2020-10-05 21:47:28 +02:00
Erik Montnemery
c777647233 Drop legacy_patchable_time from MQTT tests (#41287) 2020-10-05 21:39:44 +02:00
djtimca
985e4e1bd9 Bump pyvesync to version 1.2.1 (#41269)
* Bumped vesync dependency to updated 1.2 library to fix issue 40111.

* Returned to existing pyvesync library with bumped version.
2020-10-05 20:26:01 +02:00
Erik Montnemery
13dad34019 Reorder MQTT binary sensor tests (#41277) 2020-10-05 19:42:28 +02:00
Pigotka
7eaa304fc3 Use of reference strings in Heos config flow (#41282) 2020-10-05 12:22:02 -05:00
Pigotka
ac795ddcd0 Use of reference strings in Goalzero config flow (#41275) 2020-10-05 18:07:11 +02:00
SNoof85
87b1d1b57f Use reference strings in Rainmachine (#41272) 2020-10-05 17:40:35 +02:00
Bram Kragten
bc2305561f Updated frontend to 20201001.1 (#41273) 2020-10-05 17:39:13 +02:00
SNoof85
8bae9b2124 Use reference strings in Tesla (#41270)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-05 16:41:16 +02:00
J. Nick Koston
4798f37c6e Convert States to dicts via as_dict only once (#41208)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-05 09:18:57 -05:00
TopdRob
2f54bf29ba Use reference strings in HomematicIP Cloud #40578 (#41243)
Co-authored-by: scheric <38077357+scheric@users.noreply.github.com>
2020-10-05 15:30:39 +02:00
SNoof85
b7ff0a5a49 Use reference strings in rainmachine (#41216) 2020-10-05 15:29:27 +02:00
J. Nick Koston
f50976a0b3 Switch to asyncio.wait for slow update warning implementation (#41184) 2020-10-05 15:28:15 +02:00
Diefferson Koderer Môro
dde465da48 Use common strings for Onvif config flow (#41170)
* Use common strings for Onvif config flow

* Fix tests

* Update homeassistant/components/onvif/strings.json

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-05 15:27:48 +02:00
SNoof85
c7027e2828 Use reference strings in Notion (#41211) 2020-10-05 15:13:37 +02:00
J. Nick Koston
20a136e2a1 Avoid event data serialization during recorder that we throw away (#41217)
We currently serialize the event data for state change events
and then replace it because we save the state in the states table.
Since the old state and new state are both contains in the event
the cost of serializing the data has a noticable impact when there
are many state changed events.
2020-10-05 15:08:47 +02:00
Diefferson Koderer Môro
44580b1c07 Use common strings for Flu Near You config flow (#41174) 2020-10-05 15:05:57 +02:00
J. Nick Koston
494d4a262a Add Profiler integration (#41175)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-05 07:57:07 -05:00
sycx2
e813d3ebf9 Improve template test sensor (#41199) 2020-10-05 14:52:31 +02:00
SNoof85
2763ace2bc Use reference strings in Tradfri (#41237) 2020-10-05 14:35:59 +02:00
SNoof85
f679acd3fa Use reference strings in Tesla (#41238) 2020-10-05 14:32:09 +02:00
Rob Bierbooms
5745e64cab Rewrite zwave node entity tests to pytest style test function (#41239) 2020-10-05 14:29:15 +02:00
Spartan-II-117
c02d9050b7 Use common Strings for Z-Wave config flow (#41161)
* Use common Strings for Z-Wave config flow

* Update strings.json

* Update config_flow.py
2020-10-05 14:26:06 +02:00
J. Nick Koston
15ade1232e Setup geo_location to only track the geo_location domain (#41254)
The trigger was watching for all states
2020-10-05 14:25:41 +02:00
TopdRob
c3eb56c592 Use common strings for Lutron Caseta config flow (#41241) 2020-10-05 14:23:34 +02:00
Diefferson Koderer Môro
def9c98c9b Use common strings for GDACS config flow (#41178)
* Use common strings for GDACS config flow

* Fix ci

* Update test_config_flow.py
2020-10-05 14:21:00 +02:00
Franck Nijhof
d7f4cfbb65 Improve demo media player platform tests (#41096) 2020-10-05 14:04:02 +02:00
Paulus Schoutsen
8ae3f575dd Add extended validation for script repeat/choose (#41265) 2020-10-05 14:03:48 +02:00
scheric
0a3db42d61 Use common strings in Ecobee config flow (#41257)
* Update common Strings

* one_instance_only -> single_instance_allowed
2020-10-05 13:53:11 +02:00
Dave T
5f695e789b Axis remove orphan string (#41166) 2020-10-05 13:27:12 +02:00
Paulus Schoutsen
fe2c16dc29 Allow any value when triggering on state attribute (#41261) 2020-10-05 12:53:12 +02:00
springstan
038c05d0ee Return attribute dict directly without temporary variable (#41206) 2020-10-05 12:51:48 +02:00
SNoof85
cf5c99d2a9 Use reference strings in Tuya (#41236) 2020-10-05 12:49:09 +02:00
SNoof85
d6fff02b11 Use reference strings in pvpc_hourly_pricing (#41214) 2020-10-05 12:22:29 +02:00
zetvio
979346f1ce Use references in blebox config flow (#41244) 2020-10-05 11:48:44 +02:00
zetvio
78b4c3981f Use reference strings in Samsung TV config flow (#41248)
* Use reference strings in samsungtv config flow

* Adjust samsungtv config flow tests
2020-10-05 11:45:35 +02:00
Ville Skyttä
56f0a68c49 Add and fix some Huawei LTE type hints (#41196) 2020-10-05 11:21:48 +02:00
Raman Gupta
baef8b033a Bump apprise version to avoid sync in async issues (#41253) 2020-10-05 10:24:18 +02:00
SNoof85
f145a8c8d1 Use reference strings in Myq (#41209) 2020-10-04 19:16:23 -05:00
SNoof85
116dd7ddf4 Use reference strings in Nuheat (#41213) 2020-10-04 19:15:14 -05:00
HomeAssistant Azure
8d1d585b40 [ci skip] Translation update 2020-10-05 00:04:23 +00:00
springstan
6102d05306 Remove unnecessary should poll from light classes (#41229) 2020-10-04 23:28:25 +02:00
springstan
b1ff69d9a3 Remove unnecessary should poll from cover classes (#41231) 2020-10-04 23:26:33 +02:00
Jeff H
a1f70e11ae Fix slack message icon override (#41212)
* Fix slack message icon override

Allows overriding the icon for individual slack
messages using either an emoji or a URL.

* Run python3 -m script.gen_requirements_all

* Add period to first line

* Add support for python 3.7 testing

AsyncMock is only available from python 3.8+. Prior to this,
CoroutineMock is used which doesn't mock the method so it
needs to be done manually.

* Fix tests for python3.7 compatibility

The Python3.7 mock call object doesn't have the kwargs helper property.

* Update default emoji test docstring
2020-10-04 14:17:24 -07:00
Björn Olsson Jarl
e64b8774ec Rewrite transport_nsw sensor tests to pytest tests (#41169)
* Improve transport_nsw sensor tests.

* patch fix.
2020-10-04 23:10:00 +02:00
Nikolai
27c3ce16c3 Fix spelling in telegram_bot services (#41235) 2020-10-04 22:52:02 +02:00
J. Nick Koston
51da605b9f Remove manual rate_limit control directive from templates (#41225)
Increase default rate limit for all states and entire
domain states to one minute

Ensure specifically referenced entities are excluded from
the rate limit
2020-10-04 22:40:04 +02:00
springstan
e75557c1f5 Remove unnecessary should poll from binary sensor classes (#41221) 2020-10-04 22:11:46 +02:00
Oren
dd26ab6b4e Rewrite threshold unittest tests to pytest style test functions (#41141)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-04 21:38:21 +02:00
springstan
f47d58d9c2 Remove unnecessary should poll from sensor classes (#41219)
* Remove unnecessary should poll from sensor classes

* Remove two more occurrences
2020-10-04 21:35:59 +02:00
springstan
e51be33e18 Remove unnecessary should poll from switch classes (#41218) 2020-10-04 21:31:02 +02:00
springstan
f17089e46e Remove unnecessary should poll from camera classes (#41228) 2020-10-04 21:26:59 +02:00
springstan
228e167b03 Remove unnecessary should poll from media player classes (#41220) 2020-10-04 21:26:09 +02:00
SNoof85
b8ed9fb4c0 Use reference strings in Nexia (#41210) 2020-10-04 15:38:52 +02:00
Paulus Schoutsen
e2921475e2 Fix flaky huawei test (#41204) 2020-10-04 15:24:07 +02:00
Rob Bierbooms
e97792adf0 Refactor dsmr tests (#39724) 2020-10-04 14:27:22 +02:00
Ronan Murray
fd065e7aea Rewite Radarr tests as in pytest style for #40879 (#41145) 2020-10-04 14:08:08 +02:00
Ariana Hlavaty
27dd4ca9b3 Rewrite ring unittest test to pytest (#41151)
For: #40886
2020-10-04 14:05:49 +02:00
Claudio Catterina
6765d395f9 Rewrite aurora tests to pytest style (#41144) 2020-10-04 13:58:16 +02:00
Eliot Wong
9ff8f03322 Rewrite dte_energy_bridge unittest tests to pytest style test functions (#41116) 2020-10-04 13:50:03 +02:00
Franck Nijhof
346be6fc3f Improve demo fan platform tests (#41123) 2020-10-04 13:49:13 +02:00
Eliot Wong
f7696fdb9f Rewrite simulated unittest tests to pytest style test functions (#41115) 2020-10-04 13:48:47 +02:00
scheric
c3ef05a37e Use common strings in Icloud config flow (#41188) 2020-10-04 13:32:53 +02:00
SNoof85
d5c88a4e3c Use reference strings in Coronavirus (#41057)
* Update strings.json

* Update strings.json
2020-10-04 13:29:41 +02:00
scheric
600b6c0e34 Use common strings in Geonetnz quakes config flow (#41192) 2020-10-04 13:28:59 +02:00
Franck Nijhof
4ca552e90a Bump version to 0.117.0dev0 (#40928) 2020-10-04 13:26:31 +02:00
Franck Nijhof
f95416bd98 Remove deprecation invalidation version from cast integration (#41197) 2020-10-04 12:54:03 +02:00
scheric
abfe575a58 Use common strings in hisense_aehw4a1 config flow (#41190) 2020-10-04 12:04:51 +02:00
Justin Paupore
b4799ba66d Fix TTS handling of non-ID3 metadata tags (#41191)
Change #40666 used mutagen's ID3 TextFrame to wrap metadata information.
While this is the correct behavior for container formats that use ID3
metadata tags, such as MP3 and linear PCM, Ogg container formats use
a different metadata format. For these containers, the metadata needs to
be a bare str, not wrapped in a TextFrame.
2020-10-04 11:59:53 +02:00
On Freund
a50405aa6e Fix kodi.add_to_playlist (#41185) 2020-10-04 10:53:44 +02:00
HomeAssistant Azure
f8c2d877aa [ci skip] Translation update 2020-10-04 00:05:05 +00:00
Abílio Costa
4aacc87425 Indentify IKEA and Phillips motion sensors correctly (#41111) 2020-10-03 19:52:21 -04:00
Guido Schmitz
a73daa5f20 Use the shared Zeroconf instance in devolo_home_control (#40800) 2020-10-03 15:31:19 -05:00
cgtobi
f9f17dc718 Update Kodi to no longer use protected methods (#40788)
* Replace protected methods

* Fix method name

* Bump PyKodi version to 0.2.1

* Reuse variable
2020-10-03 15:12:18 -05:00
Matthew Donoughe
b281e85c80 Lutron Caseta: update for light transition and cover stop (#41155)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-03 15:06:23 -05:00
Rohan Kapoor
95c3ac0c09 Treat optional input as optional in ZoneMinder config flow (#41156) 2020-10-03 21:34:52 +02:00
Guido Schmitz
daf3a29ae5 Use references in config flow of devolo_home_control (#40949) 2020-10-03 21:33:33 +02:00
J. Nick Koston
78dfaa72a2 Ensure lights added after group is created have the correct state (#41034) 2020-10-03 21:29:41 +02:00
Spartan-II-117
ed171a885b Use common Strings for Acmeda Config Flow (#41092) 2020-10-03 21:29:30 +02:00
Franck Nijhof
38d132addd Fix referenced entity extraction when service call entity contains a template (#41107) 2020-10-03 20:55:59 +02:00
Marius
00b3b9f183 Change Swap free mandatory arg (#41025)
to False
2020-10-03 20:55:00 +02:00
Rob Bierbooms
fc925790dc Use common strings for somfy config flow (#41150) 2020-10-03 20:18:48 +02:00
Rob Bierbooms
8e9e44e93f Use common strings for home connect config flow (#41153) 2020-10-03 20:15:53 +02:00
springstan
f919646519 Use already configured key in harmony and mikrotik (#41142) 2020-10-03 18:17:24 +02:00
SukramJ
5721225dde Reorg channel handling for Homematic IP Cloud (#41118) 2020-10-03 16:35:04 +02:00
springstan
c00915a6a7 Add ssl and verify_ssl to base strings for config flows (#40944)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-03 16:06:45 +02:00
Matej Plavevski
4fea7c6775 Replace minecraft translation strings with reference strings (#40997) 2020-10-03 16:02:03 +02:00
springstan
064a453604 Add already_in_progress to base strings for config flows (#40961) 2020-10-03 15:49:09 +02:00
springstan
04daa9a378 Add name to base strings for config flows (#40947)
* Add name to base strings for config flows

* Fix HA strings.json
2020-10-03 15:28:42 +02:00
springstan
7bafa921bb Add api token to base strings for config flows (#41133) 2020-10-03 15:26:37 +02:00
Thijs de Jong
406ac38c75 Use common string in Melcloud config flow (#41134)
* Use common string in Melcloud config flow

* Add missing config_flow
2020-10-03 15:24:48 +02:00
scheric
1b4254d1df Use common string in Solarlog config flow (#41130)
* Update common Strings

* Merge feadback
2020-10-03 15:22:15 +02:00
Daniel Hjelseth Høyer
4a1173c3de Update met config string (#41048)
* update config string met

* typo

* config strings
2020-10-03 15:18:05 +02:00
groot406
7b7bdd9d8f Use common strings in Powerwall config flow (#41137) 2020-10-03 15:14:36 +02:00
Spartan-II-117
030dd7d476 Use common strings for Google Cast config flow (#41086) 2020-10-03 15:12:17 +02:00
groot406
31ce68e91e Use common strings for Sentry config flow (#41087) 2020-10-03 15:04:22 +02:00
groot406
20bacb6918 Use reference strings for Zoneminder config flow (#41103) 2020-10-03 15:02:30 +02:00
scheric
f1cb8e209e Use common string in Ring config flow (#41132) 2020-10-03 14:54:27 +02:00
scheric
2a758699e6 Use common strings in Tado config flow (#41128) 2020-10-03 14:51:20 +02:00
scheric
861fe36f5d Use common strings in zha config flow (#41127) 2020-10-03 14:48:26 +02:00
Jason Madigan
529601eb82 Use reference strings in izone (#41125) 2020-10-03 14:44:38 +02:00
Jason Madigan
be41442a86 Use reference strings in Wemo (#41067) 2020-10-03 14:43:30 +02:00
Spartan-II-117
3208670b61 Use common strings for Mikrotik config flow (#41110) 2020-10-03 14:39:18 +02:00
Heine Furubotten
cb8d7fe575 Bump azure-servicebus to 0.50.3 (#41106) 2020-10-03 14:19:39 +02:00
groot406
a6136111aa use common string for "Port" (#41104) 2020-10-03 14:15:52 +02:00
Daniel Perna
8e4b10fb13 Update pyhomematic to 0.1.70 (#41108) 2020-10-03 14:15:11 +02:00
scheric
a4b25112ed Update common Strings (#41131) 2020-10-03 14:14:36 +02:00
Hmmbob
788cb0d1ce Remove excessive logging (#41120) 2020-10-03 14:13:42 +02:00
Jason Madigan
a3fef0f330 Use reference strings in lifx (#41124) 2020-10-03 14:12:52 +02:00
SNoof85
d0a1a6cba5 Update strings.json (#41051) 2020-10-03 14:11:25 +02:00
Jenny
8b30b6b312 Use reference strings for openweathermap (#41055) 2020-10-03 14:11:03 +02:00
Spartan-II-117
4c00ff98ea Use common Strings for Ambiclimate config flow (#41100) 2020-10-03 13:43:34 +02:00
groot406
01e47a977b Use common strings for Harmony config flow (#41094)
* Use common strings for harmony component

* Update homeassistant/components/harmony/strings.json

Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>

* use default key for common config flow strings

Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-03 13:31:45 +02:00
Jason Madigan
ed867955f4 Use reference strings in sonos (#41122) 2020-10-03 12:02:12 +02:00
Ville Skyttä
32f7045c7c Upgrade flake8 to 3.8.4 (#41117)
https://flake8.pycqa.org/en/latest/release-notes/3.8.4.html
2020-10-03 10:11:22 +02:00
Daniel Hjelseth Høyer
16d5c145a9 Spread the load on the Tibber server (#40797)
* Tibber, Spread the load on the server

* start hour
2020-10-03 04:09:29 +02:00
Julian Engelhardt
473afc4837 Rewrite SQL tests to pytest style (#41016)
* Remove unittests and common mock from SQL component tests

* Switch to async versions of setup_component and block_till_done
2020-10-03 03:42:50 +02:00
Baptiste Candellier
9611e5223a Fix SmartHab import flow (#41093) 2020-10-03 03:26:08 +02:00
Alexei Chetroi
9765fc13e8 Bump up ZHA dependency (#41109) 2020-10-02 21:25:50 -04:00
Melvin
414633a129 Use references in Neato translation strings (#41009)
* Replace unexpected_error with unknown key in Neato

* Replace string with reference

* Revert the specific language json files back to unexpected_error

* Use reference for already_configured

* Change invalid_credentials to invalid_auth key

* Use reference for invalid_auth

* Use invalid_auth in the neato test

* Replace abort.invalid_credentials with invalid_auth
2020-10-03 02:42:07 +02:00
Chris Talkington
3a266fa116 Rewrite season sensor tests to pytest style (#40918)
* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* fix tests.

* Update sensor.py

* Update test_sensor.py

* fix tests.

* Update sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py
2020-10-03 02:24:29 +02:00
springstan
a2c3c33b22 Use core GitHub URL in all files (#41089) 2020-10-03 00:04:11 +02:00
SNoof85
005898a0d9 Use reference strings in Huawei LTE (#41011)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Update strings.json

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 22:43:57 +02:00
Maciej Bieniek
d3a0743fea Use reference strings in Abode (#41004)
* Use translation references

* Suggested change

* Remove unused string

* Rename invalid_credentials key

* Fix invalid_auth in manifest.json file
2020-10-02 21:59:55 +02:00
Matej Plavevski
a3aee85335 Use reference strings in JuiceNet (#41021)
* Reference Strings for JuiceNet

* Update strings.json

* Add Reference String for API Token
2020-10-02 21:57:26 +02:00
Brian Rogers
fdd86edf60 Use common strings for Rachio (#41090) 2020-10-02 21:50:31 +02:00
SNoof85
7492b60325 Use reference strings in Sense (#41046) 2020-10-02 21:47:31 +02:00
SNoof85
f654834d34 Use reference strings in Totalconnect (#41047)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 21:45:49 +02:00
SNoof85
4ab479d48d Use reference strings in Bsblan (#41049)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Update strings.json
2020-10-02 21:43:13 +02:00
SNoof85
65611320d4 Use reference strings in Coolmaster (#41066)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 21:17:32 +02:00
SNoof85
135be787e2 Use reference strings in Firmata (#41073) 2020-10-02 21:11:25 +02:00
SNoof85
2e21ef3223 Use reference strings in Flick Electric (#41074) 2020-10-02 21:09:27 +02:00
SNoof85
4158cefeb9 Use reference strings in Flume (#41075) 2020-10-02 21:07:19 +02:00
SNoof85
87c1c16b31 Use reference strings in Garmin Connect (#41076) 2020-10-02 21:05:11 +02:00
SNoof85
e9b70511a2 Use reference strings in Glances (#41078) 2020-10-02 21:03:53 +02:00
SNoof85
c958ec887f Use reference strings in directv (#41059) 2020-10-02 21:00:00 +02:00
SNoof85
4afeaaedca Use reference strings in doorbird (#41061) 2020-10-02 20:58:05 +02:00
SNoof85
6a821d6a64 Use reference strings in elgato (#41063)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 20:55:54 +02:00
SNoof85
d282694efe Use reference strings in Dexcom (#41072)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 20:48:12 +02:00
Gerard
a3511a9a81 Use core GitHub URL in contributing guidelines (#41083)
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-02 20:42:33 +02:00
MatthewFlamm
29d10d3c35 Use already_configured_service in NWS strings (#41062) 2020-10-02 20:40:23 +02:00
SNoof85
8eeaf67cd1 Use reference strings in Griddy (#41079) 2020-10-02 12:24:33 -05:00
Oliver
1ff0f37f3a Update denonavr to 0.9.5 (#41058) 2020-10-02 19:02:04 +02:00
Samantha
bebf5368c1 Add full command details to exception Debug log (#41070) 2020-10-02 12:18:55 -04:00
Davey Chu
08cf400473 Use references in isy994 strings.json (#40990) 2020-10-02 18:07:20 +02:00
Paulus Schoutsen
576fbbe0be Bump aioshelly to 0.3.4 (#41065) 2020-10-02 15:27:45 +02:00
Maciej Bieniek
bba0bb1bad Fix the name of the translation key for Brother integration (#41054) 2020-10-02 15:06:28 +02:00
J. Nick Koston
ab17b4ab70 Simplify template tracking and make it easier to follow (#41030) 2020-10-02 07:27:39 -05:00
djtimca
bc8a0209cb Bump pyvesync to 1.2.0 (#40978) 2020-10-02 12:34:03 +02:00
SNoof85
68aafd4d23 Use reference strings in Wled (#40969) 2020-10-02 12:08:22 +02:00
Davey Chu
8dae2f4308 Use reference strings in forked_daapd (#40989) 2020-10-02 11:55:23 +02:00
Daniel Hjelseth Høyer
708ef3201e Update config string for Tibber (#41045) 2020-10-02 11:42:26 +02:00
SNoof85
db9110c399 Use reference strings in Vilfo (#41039) 2020-10-02 11:41:21 +02:00
dependabot[bot]
796cce79b0 Bump actions/upload-artifact from v2.1.4 to v2.2.0 (#41037)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-02 11:26:09 +02:00
Robert Svensson
552856203b Clean deCONZ tests to depend less on integration code (#41015) 2020-10-02 11:20:33 +02:00
Daniel Hjelseth Høyer
dfe3ee5387 Use reference strings in Tibber (#41038) 2020-10-02 09:17:06 +02:00
Paulus Schoutsen
22b4ad6308 Allow processing data in CoordinatorEntity before writing state (#40926) 2020-10-02 09:16:37 +02:00
Daniel Perna
187fec9a0c Update pyhomematic to 0.1.69 (#41010) 2020-10-02 09:06:05 +02:00
SNoof85
eeb06da514 Update strings.json (#40994) 2020-10-02 08:48:24 +02:00
Davey Chu
f56a750f77 Use references in agent_dvr strings.json (#40999) 2020-10-02 08:47:59 +02:00
MatthewFlamm
9373066cee Use string references for config flow in NWS (#41007) 2020-10-02 08:47:40 +02:00
J. Nick Koston
b1ba1a7134 Verify template sensors that reference other template sensors can reload (#41031) 2020-10-02 08:34:33 +02:00
Chris Talkington
afc388c55a Improve patching for nzbget sensor tests (#41032) 2020-10-02 08:32:22 +02:00
Daniel Hjelseth Høyer
9d3ddb8981 Scaffold: correct import (#40998) 2020-10-02 08:32:03 +02:00
Alexei Chetroi
f1f23c0453 Better parsing of the ZHA device profile id (#41024) 2020-10-01 21:47:33 -04:00
Davey Chu
aba3cdc7b3 Use references in guardian strings.json (#40987) 2020-10-01 19:16:15 -06:00
HomeAssistant Azure
81c6d48cb4 [ci skip] Translation update 2020-10-02 00:05:51 +00:00
J. Nick Koston
deedd41d62 Prevent template loop detection from triggering when all templates are self referencing (#41013) 2020-10-01 22:11:11 +02:00
Bram Kragten
1219c95f63 Update frontend to 20201001.0 (#40974) 2020-10-01 21:56:44 +02:00
jjlawren
8c4b571901 Plex websocket callback async cleanup (#40992) 2020-10-01 21:56:15 +02:00
Jason Rebelo
cad2304968 Rewrite remember_the_milk tests to pytest style tests (#41002)
*  rewrite remember_the_milk tests to pytest tests

*  rewrite reddit tests to pytest tests

* Revert " rewrite reddit tests to pytest tests"

This reverts commit 7eae35f69a.
Forgot to switch to a new branch 🙈
2020-10-01 21:55:04 +02:00
Davey Chu
4b225a87c5 Use references in airvisual strings.json (#41005) 2020-10-01 13:49:16 -06:00
J. Nick Koston
b45215f1d2 Implement template rate_limit directive (#40667) 2020-10-01 21:39:44 +02:00
jjlawren
b3464c5087 Remove unnecessary instance attribute in Plex reauth config flow (#41000)
* Avoid unnecessary instance attribute

* Don't need to enrich existing entry data
2020-10-01 21:38:57 +02:00
springstan
c7ebfdb403 Use single_instance_allowed for webhook config flows (#40965) 2020-10-01 20:44:13 +02:00
Melvin
17c6838b7f Replace references in august strings.json (#40993) 2020-10-01 13:13:50 -05:00
Melvin
4b8f91823c Use reference strings in elkm1 strings.json (#40996) 2020-10-01 13:12:44 -05:00
J. Nick Koston
6b509fd9db Prevent sqlalchemy from refetching the old_state_id as it will never change (#40982)
Disable expire_on_commit for the event writer. Since we never expect the
old_state_id to change in the database, it was never worth the expense of
refetching the id after the commit.
2020-10-01 19:57:52 +02:00
jjlawren
cf785b86db Minor fixes for Plex media browser (#39878) 2020-10-01 19:55:11 +02:00
Robert Svensson
c2ed743237 Improve deCONZ platforms (#40986)
* Use platform domain imports with the list of supported platforms

* Remove legacy async_setup_platform from platforms
2020-10-01 19:06:20 +02:00
Brian Rogers
40ea30da96 Fix Rachio switch state when paused (#40984) 2020-10-01 11:19:34 -05:00
jan iversen
639c864a76 Add test coverage for modbus switch (coil part) (#40696)
* Prepare test code for complex devices.

push entity_id to conftest, to make it common for all devices.

Add device to base_setup.

* Add test coverage for modbus switch (coil part).

* Update .coveragerc

* Update .coveragerc

Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-10-01 11:00:26 -05:00
Melvin
b56ec71998 Replace strings in hvv_departures with references (#40980) 2020-10-01 17:08:19 +02:00
Melvin
2a05fe7270 Replace IP Address in strings.json (#40968) 2020-10-01 16:31:34 +02:00
tkdrob
6627ffff39 Clean up goalzero (#40817)
* cleanup goalzero code

* more cleanup

* mroe cleanup

* log defined exception to error

* return None if not configured

* return False if not configured
2020-10-01 16:15:24 +02:00
Simone Chemelli
7554c8d6c5 Add missing unit for signal strength (#40436)
* Added missing unit for signal strength

* Added one more unit

* Replaced string with variable

* Fixed wrong import

* Fix import

* Replaced string with variable

* Fixed wrong import

* Apply suggestions from code review

* Black

* Again a fix :-(

* iSort

* iSort after merge

Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-01 16:14:29 +02:00
SNoof85
480066ba63 Add longitude and latitude common strings (#40963) 2020-10-01 15:36:57 +02:00
Melvin
e0d14603f1 Replace strings in atag component (#40935) 2020-10-01 15:33:44 +02:00
epenet
f90f6904e0 Upgrade surepy to 0.2.6 (#40964) 2020-10-01 15:05:50 +02:00
springstan
20f8bcc908 Use common strings in mqtt config flow (#40956) 2020-10-01 14:55:45 +02:00
springstan
bd1de3cd7c Use common strings in spotify config flow (#40957) 2020-10-01 14:53:33 +02:00
SNoof85
46e8655fcf Use reference strings for Nut configflow (#40966) 2020-10-01 14:51:05 +02:00
epenet
1d138f0773 Use common string in TPLink config flow (#40958) 2020-10-01 13:38:59 +02:00
Maciej Bieniek
670404f43a Use translation references for BraviaTV config flow (#40955) 2020-10-01 13:16:07 +02:00
Paulus Schoutsen
fb3de7e3e6 Test reloading webhook trigger (#40950) 2020-10-01 13:06:22 +02:00
Maciej Bieniek
0d523d7116 Use translation references for Brother config flow (#40953) 2020-10-01 13:02:53 +02:00
springstan
1b864aeccc Use common strings in adguard config flow (#40942) 2020-10-01 12:56:55 +02:00
Maciej Bieniek
75a6dacaba Use translation references for gios config flow (#40952) 2020-10-01 12:54:10 +02:00
SNoof85
3195ce5d56 Use of reference strings for Airly config flow (#40946) 2020-10-01 12:28:32 +02:00
springstan
a3b62cea6a Use common strings in roomba config flow (#40948) 2020-10-01 12:27:47 +02:00
Maciej Bieniek
d1c04750cd Add voltage, power factor and energy returned sensors to Shelly integration (#40681) 2020-10-01 12:08:03 +02:00
Simone Chemelli
b4b056b75b Handle Shelly channel names (if available) for emeters devices (#40820) 2020-10-01 12:07:18 +02:00
On Freund
04f87eedf5 Add context to event trigger (#40932) 2020-10-01 11:59:35 +02:00
SNoof85
78ebd1add9 Use of reference strings in meteo france config flow (#40939) 2020-10-01 11:36:26 +02:00
SNoof85
0a700f7272 Common strings in Freebox config flow (#40938) 2020-10-01 11:31:43 +02:00
Franck Nijhof
22ba6e06fd Use direct service calls in demo climate tests instead of climate common (#40934) 2020-10-01 11:22:30 +02:00
Bram Kragten
1eb086e86d Revert using own cast app for media (#40937) 2020-10-01 11:05:00 +02:00
Chris Talkington
d93141c1a9 Use DataUpdateCoordinator for canary (#40691)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-10-01 10:26:26 +02:00
J. Nick Koston
7285c7806f Seperate state change tracking from async_track_template_result into async_track_state_change_filtered (#40803) 2020-10-01 10:19:20 +02:00
jjlawren
be9ff3bd66 Accept new Plex websocket callback payloads (#40773) 2020-10-01 09:57:45 +02:00
cgtobi
6dc25ccc7b Fix Netatmo climate error when no boiler status is set (#40815) 2020-10-01 09:56:46 +02:00
Robert Svensson
9116061262 Add lock support to deCONZ (#40807)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-01 09:50:06 +02:00
Eliot Wong
95d228cace Rewrite worldclock unittest tests to pytest style test functions (#40922) 2020-10-01 09:42:23 +02:00
Robert Svensson
d95f83b5fb Improve logging to identify which deCONZ device is at fault (#40808) 2020-10-01 09:23:32 +02:00
Robert Svensson
2922d4675f Abort deCONZ config flow if no radio hardware is connected (#40811) 2020-10-01 09:23:12 +02:00
Antetokounpo
df1e910ac7 Update weather tests to pytest style (#40917) 2020-10-01 09:14:48 +02:00
dependabot[bot]
632bf4f7f7 Bump actions/setup-python from v2.1.2 to v2.1.3 (#40921)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.1.2 to v2.1.3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.1.2...c181ffa198a1248f902bc2f7965d2f9a36c2d7f6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-01 09:06:53 +02:00
Eliot Wong
ad8ab183cb Rewrite random unittest tests to pytest style test functions (#40920) 2020-10-01 09:05:44 +02:00
Rob Bierbooms
c5041b41c8 Implement config and option flow for rfxtrx integration (#39117)
* Create option flow for Rfxtrx integration (#37982)

* Implement config flow for rfxtrx integration (#39299)

* Add config flow

* Add strings

* Add first series of tests

* Add tests

* Adjust tests according review comments

* Adjust strings

* Add executor for testing connection

* Change ports to dict

* Fix pylint issue

* Adjust tests

* Migrate config entry for rfxtrx integration (#39528)

* Add rfxtrx device connection validation when importing (#39582)

* Implement import connection validation

* Fix binary sensor tests

* Move rfxtrx data

* Fix cover tests

* Fix test init

* Fix light tests

* Fix sensor tests

* Fix switch tests

* Refactor rfxtrx test data

* Fix strings

* Fix check

* Rework device string in test code

* Add option to delete multiple rfxtrx devices (#39625)

* Opt to remove multiple devices

* Fix devices key

* Add tests (phase 1)

* Add tests (phase 2)

* Tweak remove devices test

* Implement device migration function in rfxtrx option flow (#39694)

* Prompt option to replace device

* Revert unwanted changes

* Add replace device function

* WIP replace entities

* Remove device/entities and update config entry

* Fix styling

* Add info

* Add test

* Fix strings

* Refactor building migration map

* Allow migration for all device types

* Add test to migrate control device

* Fixup some names

* Fixup entry names in test code

* Bump pyRFXtrx to 0.26 and deprecate debug config key (#40679)

* Create option flow for Rfxtrx integration (#37982)

* Implement config flow for rfxtrx integration (#39299)

* Add config flow

* Add strings

* Add first series of tests

* Add tests

* Adjust tests according review comments

* Adjust strings

* Add executor for testing connection

* Change ports to dict

* Fix pylint issue

* Adjust tests

* Migrate config entry for rfxtrx integration (#39528)

* Add rfxtrx device connection validation when importing (#39582)

* Implement import connection validation

* Fix binary sensor tests

* Move rfxtrx data

* Fix cover tests

* Fix test init

* Fix light tests

* Fix sensor tests

* Fix switch tests

* Refactor rfxtrx test data

* Fix strings

* Fix check

* Rework device string in test code

* Add option to delete multiple rfxtrx devices (#39625)

* Opt to remove multiple devices

* Fix devices key

* Add tests (phase 1)

* Add tests (phase 2)

* Tweak remove devices test

* Implement device migration function in rfxtrx option flow (#39694)

* Prompt option to replace device

* Revert unwanted changes

* Add replace device function

* WIP replace entities

* Remove device/entities and update config entry

* Fix styling

* Add info

* Add test

* Fix strings

* Refactor building migration map

* Allow migration for all device types

* Add test to migrate control device

* Fixup some names

* Fixup entry names in test code

* Bump version number

* Remove debug key from connect

* Remove debug option from config flow

* Remove debug from tests

* Fix event test

* Add cv.deprecated

* Fix test

* Fix config schema

* Add timeout on connection

* Rework config schema

* Fix schema...again

* Prevent creation of duplicate device in rfxtrx option flow (#40656)
2020-10-01 08:55:57 +02:00
Aaron Bach
44e5ec58b0 Bump simplisafe-python to 9.4.1 (#40819)
* Bump simplisafe-python to 9.4.0

* One more bump
2020-09-30 19:20:10 -06:00
Alexei Chetroi
9fa23f6479 Bump up zha dependencies (#40914) 2020-09-30 20:53:00 -04:00
HomeAssistant Azure
7d39ecffa0 [ci skip] Translation update 2020-10-01 00:04:01 +00:00
Khole
c0c38fa6d4 Update Pyhiveapi Library Version (#40804)
* Update Pyhiveapi Library Version

This fixs an issue caused by a change in authentication method by hive

* Update Library Version
2020-10-01 00:02:42 +02:00
Anders Melchiorsen
e08934ee4c Support adding Spotify share links to the Sonos queue (#40802) 2020-09-30 21:19:41 +02:00
4316 changed files with 64037 additions and 27274 deletions

View File

@@ -98,9 +98,6 @@ omit =
homeassistant/components/bme680/sensor.py
homeassistant/components/bmp280/sensor.py
homeassistant/components/bmw_connected_drive/*
homeassistant/components/bom/camera.py
homeassistant/components/bom/sensor.py
homeassistant/components/bom/weather.py
homeassistant/components/braviatv/__init__.py
homeassistant/components/braviatv/const.py
homeassistant/components/braviatv/media_player.py
@@ -134,7 +131,6 @@ omit =
homeassistant/components/clickatell/notify.py
homeassistant/components/clicksend/notify.py
homeassistant/components/clicksend_tts/notify.py
homeassistant/components/cloudflare/*
homeassistant/components/cmus/media_player.py
homeassistant/components/co2signal/*
homeassistant/components/coinbase/*
@@ -609,8 +605,6 @@ omit =
homeassistant/components/omnilogic/__init__.py
homeassistant/components/omnilogic/common.py
homeassistant/components/omnilogic/sensor.py
homeassistant/components/onewire/const.py
homeassistant/components/onewire/sensor.py
homeassistant/components/onkyo/media_player.py
homeassistant/components/onvif/__init__.py
homeassistant/components/onvif/base.py
@@ -651,6 +645,9 @@ omit =
homeassistant/components/ovo_energy/__init__.py
homeassistant/components/ovo_energy/const.py
homeassistant/components/ovo_energy/sensor.py
homeassistant/components/ozw/__init__.py
homeassistant/components/ozw/entity.py
homeassistant/components/ozw/services.py
homeassistant/components/panasonic_bluray/media_player.py
homeassistant/components/panasonic_viera/media_player.py
homeassistant/components/pandora/media_player.py
@@ -720,7 +717,6 @@ omit =
homeassistant/components/repetier/__init__.py
homeassistant/components/repetier/sensor.py
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/rest/binary_sensor.py
homeassistant/components/rest/notify.py
homeassistant/components/rest/switch.py
homeassistant/components/ring/camera.py
@@ -779,7 +775,9 @@ omit =
homeassistant/components/simplepush/notify.py
homeassistant/components/simplisafe/__init__.py
homeassistant/components/simplisafe/alarm_control_panel.py
homeassistant/components/simplisafe/binary_sensor.py
homeassistant/components/simplisafe/lock.py
homeassistant/components/simplisafe/sensor.py
homeassistant/components/simulated/sensor.py
homeassistant/components/sisyphus/*
homeassistant/components/sky_hub/*
@@ -823,6 +821,7 @@ omit =
homeassistant/components/spotify/__init__.py
homeassistant/components/spotify/media_player.py
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/starline/*
homeassistant/components/starlingbank/sensor.py
@@ -912,6 +911,7 @@ omit =
homeassistant/components/torque/sensor.py
homeassistant/components/totalconnect/*
homeassistant/components/touchline/climate.py
homeassistant/components/tplink/common.py
homeassistant/components/tplink/switch.py
homeassistant/components/tplink_lte/*
homeassistant/components/traccar/device_tracker.py
@@ -942,7 +942,9 @@ omit =
homeassistant/components/upb/const.py
homeassistant/components/upb/light.py
homeassistant/components/upb/scene.py
homeassistant/components/upcloud/*
homeassistant/components/upcloud/__init__.py
homeassistant/components/upcloud/binary_sensor.py
homeassistant/components/upcloud/switch.py
homeassistant/components/upnp/*
homeassistant/components/upc_connect/*
homeassistant/components/uptimerobot/binary_sensor.py
@@ -976,6 +978,7 @@ omit =
homeassistant/components/vlc_telnet/media_player.py
homeassistant/components/volkszaehler/sensor.py
homeassistant/components/volumio/__init__.py
homeassistant/components/volumio/browse_media.py
homeassistant/components/volumio/media_player.py
homeassistant/components/volvooncall/*
homeassistant/components/w800rf32/*
@@ -996,6 +999,15 @@ omit =
homeassistant/components/worldtidesinfo/sensor.py
homeassistant/components/worxlandroid/sensor.py
homeassistant/components/x10/light.py
homeassistant/components/xbox/__init__.py
homeassistant/components/xbox/api.py
homeassistant/components/xbox/base_sensor.py
homeassistant/components/xbox/binary_sensor.py
homeassistant/components/xbox/browse_media.py
homeassistant/components/xbox/media_player.py
homeassistant/components/xbox/media_source.py
homeassistant/components/xbox/remote.py
homeassistant/components/xbox/sensor.py
homeassistant/components/xbox_live/sensor.py
homeassistant/components/xeoma/camera.py
homeassistant/components/xfinity/device_tracker.py
@@ -1053,9 +1065,6 @@ omit =
homeassistant/components/zoneminder/*
homeassistant/components/supla/*
homeassistant/components/zwave/util.py
homeassistant/components/ozw/__init__.py
homeassistant/components/ozw/entity.py
homeassistant/components/ozw/services.py
[report]
# Regexes for lines to exclude from consideration

View File

@@ -6,7 +6,7 @@
"appPort": 8123,
"runArgs": ["-e", "GIT_EDITOR=code --wait"],
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"visualstudioexptteam.vscodeintellicode",
"ms-azure-devops.azure-pipelines",
"redhat.vscode-yaml",

View File

@@ -119,7 +119,7 @@ To help with the load of incoming pull requests:
- [ ] I have reviewed two other [open pull requests][prs] in this repository.
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-asc+-review%3Aapproved
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-desc+review%3Anone
<!--
Thank you for contributing <3

View File

@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
@@ -73,7 +73,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -118,7 +118,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -163,7 +163,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -230,7 +230,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -278,7 +278,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -326,7 +326,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -371,7 +371,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -419,7 +419,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -475,7 +475,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -555,7 +555,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.1.2
uses: actions/setup-python@v2.1.4
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -736,7 +736,7 @@ jobs:
-p no:sugar \
tests
- name: Upload coverage artifact
uses: actions/upload-artifact@v2.1.4
uses: actions/upload-artifact@v2.2.0
with:
name: coverage-${{ matrix.python-version }}-group${{ matrix.group }}
path: .coverage
@@ -779,4 +779,4 @@ jobs:
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1.0.13
uses: codecov/codecov-action@v1.0.14

2
.gitignore vendored
View File

@@ -88,7 +88,7 @@ venv
.venv
Pipfile*
share/*
Scripts/
/Scripts/
# vimmy stuff
*.swp

View File

@@ -22,7 +22,7 @@ repos:
- --quiet-level=2
exclude_types: [csv, json]
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.3
rev: 3.8.4
hooks:
- id: flake8
additional_dependencies:
@@ -87,5 +87,5 @@ repos:
entry: script/run-in-env.sh python3 -m script.hassfest
pass_filenames: false
language: script
types: [json]
files: ^homeassistant/.+/(manifest|strings)\.json$
types: [text]
files: ^(homeassistant/.+/(manifest|strings)\.json|\.coveragerc)$

View File

@@ -17,6 +17,7 @@ homeassistant/components/abode/* @shred86
homeassistant/components/accuweather/* @bieniu
homeassistant/components/acmeda/* @atmurray
homeassistant/components/adguard/* @frenck
homeassistant/components/advantage_air/* @Bre77
homeassistant/components/agent_dvr/* @ispysoftware
homeassistant/components/airly/* @bieniu
homeassistant/components/airvisual/* @bachya
@@ -59,7 +60,6 @@ homeassistant/components/blebox/* @gadgetmobile
homeassistant/components/blink/* @fronzbot
homeassistant/components/bmp280/* @belidzs
homeassistant/components/bmw_connected_drive/* @gerard33 @rikroe
homeassistant/components/bom/* @maddenp
homeassistant/components/bond/* @prystupa
homeassistant/components/braviatv/* @bieniu
homeassistant/components/broadlink/* @danielhiversen @felipediel
@@ -75,7 +75,7 @@ homeassistant/components/cisco_ios/* @fbradyirl
homeassistant/components/cisco_mobility_express/* @fbradyirl
homeassistant/components/cisco_webex_teams/* @fbradyirl
homeassistant/components/cloud/* @home-assistant/cloud
homeassistant/components/cloudflare/* @ludeeus
homeassistant/components/cloudflare/* @ludeeus @ctalkington
homeassistant/components/comfoconnect/* @michaelarnauts
homeassistant/components/config/* @home-assistant/core
homeassistant/components/configurator/* @home-assistant/core
@@ -161,8 +161,8 @@ homeassistant/components/goalzero/* @tkdrob
homeassistant/components/gogogate2/* @vangorra
homeassistant/components/google_assistant/* @home-assistant/cloud
homeassistant/components/google_cloud/* @lufton
homeassistant/components/google_translate/* @awarecan
homeassistant/components/gpsd/* @fabaff
homeassistant/components/gree/* @cmroche
homeassistant/components/greeneye_monitor/* @jkeljo
homeassistant/components/griddy/* @bdraco
homeassistant/components/group/* @home-assistant/core
@@ -277,7 +277,7 @@ homeassistant/components/neato/* @dshokouhi @Santobert
homeassistant/components/nederlandse_spoorwegen/* @YarmoM
homeassistant/components/nello/* @pschmitt
homeassistant/components/ness_alarm/* @nickw444
homeassistant/components/nest/* @awarecan
homeassistant/components/nest/* @awarecan @allenporter
homeassistant/components/netatmo/* @cgtobi
homeassistant/components/netdata/* @fabaff
homeassistant/components/nexia/* @ryannazaretian @bdraco
@@ -305,7 +305,7 @@ homeassistant/components/ohmconnect/* @robbiet480
homeassistant/components/ombi/* @larssont
homeassistant/components/omnilogic/* @oliver84 @djtimca @gentoosu
homeassistant/components/onboarding/* @home-assistant/core
homeassistant/components/onewire/* @garbled1
homeassistant/components/onewire/* @garbled1 @epenet
homeassistant/components/onvif/* @hunterjm
homeassistant/components/openerz/* @misialq
homeassistant/components/opengarage/* @danielhiversen
@@ -317,7 +317,6 @@ homeassistant/components/orangepi_gpio/* @pascallj
homeassistant/components/oru/* @bvlaicu
homeassistant/components/ovo_energy/* @timmo001
homeassistant/components/ozw/* @cgarwood @marcelveldt @MartinHjelmare
homeassistant/components/panasonic_viera/* @joogps
homeassistant/components/panel_custom/* @home-assistant/frontend
homeassistant/components/panel_iframe/* @home-assistant/frontend
homeassistant/components/pcal9535a/* @Shulyaka
@@ -334,6 +333,7 @@ homeassistant/components/plum_lightpad/* @ColinHarrington @prystupa
homeassistant/components/point/* @fredrike
homeassistant/components/poolsense/* @haemishkyd
homeassistant/components/powerwall/* @bdraco @jrester
homeassistant/components/profiler/* @bdraco
homeassistant/components/progettihwsw/* @ardaseremet
homeassistant/components/prometheus/* @knyar
homeassistant/components/proxmoxve/* @k4ds3 @jhollowe
@@ -355,7 +355,7 @@ homeassistant/components/rainmachine/* @bachya
homeassistant/components/random/* @fabaff
homeassistant/components/rejseplanen/* @DarkFox
homeassistant/components/repetier/* @MTrab
homeassistant/components/rfxtrx/* @danielhiversen @elupus
homeassistant/components/rfxtrx/* @danielhiversen @elupus @RobBie1221
homeassistant/components/ring/* @balloob
homeassistant/components/risco/* @OnFreund
homeassistant/components/rmvtransport/* @cgtobi
@@ -363,6 +363,7 @@ homeassistant/components/roku/* @ctalkington
homeassistant/components/roomba/* @pschmitt @cyr-ius @shenxn
homeassistant/components/roon/* @pavoni
homeassistant/components/rpi_power/* @shenxn @swetoast
homeassistant/components/ruckus_unleashed/* @gabe565
homeassistant/components/safe_mode/* @home-assistant/core
homeassistant/components/saj/* @fredericvl
homeassistant/components/salt/* @bjornorri
@@ -436,6 +437,7 @@ homeassistant/components/tado/* @michaelarnauts @bdraco
homeassistant/components/tag/* @balloob @dmulcahey
homeassistant/components/tahoma/* @philklei
homeassistant/components/tankerkoenig/* @guillempages
homeassistant/components/tasmota/* @emontnemery
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
homeassistant/components/template/* @PhracturedBlue @tetienne
@@ -450,7 +452,7 @@ homeassistant/components/tmb/* @alemuro
homeassistant/components/todoist/* @boralyl
homeassistant/components/toon/* @frenck
homeassistant/components/totalconnect/* @austinmroczek
homeassistant/components/tplink/* @rytilahti
homeassistant/components/tplink/* @rytilahti @thegardenmonkey
homeassistant/components/traccar/* @ludeeus
homeassistant/components/tradfri/* @ggravlingen
homeassistant/components/trafikverket_train/* @endor-force
@@ -495,6 +497,7 @@ homeassistant/components/wled/* @frenck
homeassistant/components/wolflink/* @adamkrol93
homeassistant/components/workday/* @fabaff
homeassistant/components/worldclock/* @fabaff
homeassistant/components/xbox/* @hunterjm
homeassistant/components/xbox_live/* @MartinHjelmare
homeassistant/components/xfinity/* @cisasteelersfan
homeassistant/components/xiaomi_aqara/* @danielhiversen @syssi
@@ -507,7 +510,7 @@ homeassistant/components/yeelight/* @rytilahti @zewelor @shenxn
homeassistant/components/yeelightsunflower/* @lindsaymarkward
homeassistant/components/yessssms/* @flowolf
homeassistant/components/yi/* @bachya
homeassistant/components/zeroconf/* @Kane610
homeassistant/components/zeroconf/* @bdraco
homeassistant/components/zerproc/* @emlove
homeassistant/components/zha/* @dmulcahey @adminiuga
homeassistant/components/zodiac/* @JulienTant

View File

@@ -5,14 +5,14 @@ Everybody is invited and welcome to contribute to Home Assistant. There is a lot
The process is straight-forward.
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1)
- Fork the Home Assistant [git repository](https://github.com/home-assistant/home-assistant).
- Fork the Home Assistant [git repository](https://github.com/home-assistant/core).
- Write the code for your device, notification service, sensor, or IoT thing.
- Ensure tests work.
- Create a Pull Request against the [**dev**](https://github.com/home-assistant/home-assistant/tree/dev) branch of Home Assistant.
- Create a Pull Request against the [**dev**](https://github.com/home-assistant/core/tree/dev) branch of Home Assistant.
Still interested? Then you should take a peek at the [developer documentation](https://developers.home-assistant.io/) to get more details.
## Feature suggestions
If you want to suggest a new feature for Home Assistant (e.g., new integrations), please open a thread in our [Community Forum: Feature Requests](https://community.home-assistant.io/c/feature-requests).
We use [GitHub for tracking issues](https://github.com/home-assistant/home-assistant/issues), not for tracking feature requests.
We use [GitHub for tracking issues](https://github.com/home-assistant/core/issues), not for tracking feature requests.

View File

@@ -115,10 +115,10 @@ stages:
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)" \
-r https://github.com/home-assistant/hassio-homeassistant \
-t machine --docker-hub homeassistant
-t /data/machine --docker-hub homeassistant
displayName: 'Build Release'
- stage: 'Publish'
@@ -143,8 +143,8 @@ stages:
version="$(homeassistantRelease)"
git clone https://github.com/home-assistant/hassio-version
cd hassio-version
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)"

View File

@@ -1,11 +1,11 @@
{
"image": "homeassistant/{arch}-homeassistant",
"build_from": {
"aarch64": "homeassistant/aarch64-homeassistant-base:8.4.0",
"armhf": "homeassistant/armhf-homeassistant-base:8.4.0",
"armv7": "homeassistant/armv7-homeassistant-base:8.4.0",
"amd64": "homeassistant/amd64-homeassistant-base:8.4.0",
"i386": "homeassistant/i386-homeassistant-base:8.4.0"
"aarch64": "homeassistant/aarch64-homeassistant-base:2020.10.0",
"armhf": "homeassistant/armhf-homeassistant-base:2020.10.0",
"armv7": "homeassistant/armv7-homeassistant-base:2020.10.0",
"amd64": "homeassistant/amd64-homeassistant-base:2020.10.0",
"i386": "homeassistant/i386-homeassistant-base:2020.10.0"
},
"labels": {
"io.hass.type": "core"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -1,6 +1,6 @@
<ul>
<li><a href="https://home-assistant.io/">Homepage</a></li>
<li><a href="https://community.home-assistant.io">Community Forums</a></li>
<li><a href="https://github.com/home-assistant/home-assistant">GitHub</a></li>
<li><a href="https://github.com/home-assistant/core">GitHub</a></li>
<li><a href="https://discord.gg/c5DvZ4e">Discord</a></li>
</ul>

View File

@@ -2,7 +2,6 @@
import asyncio
from collections import OrderedDict
from datetime import timedelta
import logging
from typing import Any, Dict, List, Optional, Tuple, cast
import jwt
@@ -20,7 +19,6 @@ from .providers import AuthProvider, LoginFlow, auth_provider_from_config
EVENT_USER_ADDED = "user_added"
EVENT_USER_REMOVED = "user_removed"
_LOGGER = logging.getLogger(__name__)
_MfaModuleDict = Dict[str, MultiFactorAuthModule]
_ProviderKey = Tuple[str, Optional[str]]
_ProviderDict = Dict[_ProviderKey, AuthProvider]

View File

@@ -1,5 +1,4 @@
"""Example auth module."""
import logging
from typing import Any, Dict
import voluptuous as vol
@@ -22,8 +21,6 @@ CONFIG_SCHEMA = MULTI_FACTOR_AUTH_MODULE_SCHEMA.extend(
extra=vol.PREVENT_EXTRA,
)
_LOGGER = logging.getLogger(__name__)
@MULTI_FACTOR_AUTH_MODULES.register("insecure_example")
class InsecureExampleModule(MultiFactorAuthModule):

View File

@@ -1,7 +1,6 @@
"""Time-based One Time Password auth module."""
import asyncio
from io import BytesIO
import logging
from typing import Any, Dict, Optional, Tuple
import voluptuous as vol
@@ -30,8 +29,6 @@ INPUT_FIELD_CODE = "code"
DUMMY_SECRET = "FPPTH34D4E3MI2HG"
_LOGGER = logging.getLogger(__name__)
def _generate_qr_code(data: str) -> str:
"""Generate a base64 PNG string represent QR Code image of data."""

View File

@@ -47,8 +47,8 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
except (AbodeException, ConnectTimeout, HTTPError) as ex:
LOGGER.error("Unable to connect to Abode: %s", str(ex))
if ex.errcode == HTTP_BAD_REQUEST:
return self._show_form({"base": "invalid_credentials"})
return self._show_form({"base": "connection_error"})
return self._show_form({"base": "invalid_auth"})
return self._show_form({"base": "cannot_connect"})
return self.async_create_entry(
title=user_input[CONF_USERNAME],

View File

@@ -10,12 +10,11 @@
}
},
"error": {
"identifier_exists": "Account already registered.",
"invalid_credentials": "Invalid credentials.",
"connection_error": "Unable to connect to Abode."
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"single_instance_allowed": "Only a single configuration of Abode is allowed."
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
}
}
}

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "Nom\u00e9s es permet una \u00fanica configuraci\u00f3 d'Abode."
"single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"connection_error": "No es pot connectar amb Abode.",
"identifier_exists": "Compte ja registrat.",
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida",
"invalid_credentials": "Credencials inv\u00e0lides."
},
"step": {

View File

@@ -1,18 +1,20 @@
{
"config": {
"abort": {
"single_instance_allowed": "Je povolena pouze jedna konfigurace Abode."
"single_instance_allowed": "Ji\u017e nastaveno. Je mo\u017en\u00e1 pouze jedin\u00e1 konfigurace."
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"connection_error": "Nelze se p\u0159ipojit k Abode.",
"identifier_exists": "\u00da\u010det je ji\u017e zaregistrov\u00e1n.",
"invalid_auth": "Neplatn\u00e9 ov\u011b\u0159en\u00ed",
"invalid_credentials": "Neplatn\u00e9 p\u0159ihla\u0161ovac\u00ed \u00fadaje."
},
"step": {
"user": {
"data": {
"password": "Heslo",
"username": "E-mailov\u00e1 adresa"
"username": "E-mail"
},
"title": "Vypl\u0148te p\u0159ihla\u0161ovac\u00ed \u00fadaje Abode"
}

View File

@@ -0,0 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2",
"invalid_auth": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b1\u03c5\u03b8\u03b5\u03bd\u03c4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7"
}
}
}

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "Only a single configuration of Abode is allowed."
"single_instance_allowed": "Already configured. Only a single configuration possible."
},
"error": {
"cannot_connect": "Failed to connect",
"connection_error": "Unable to connect to Abode.",
"identifier_exists": "Account already registered.",
"invalid_auth": "Invalid authentication",
"invalid_credentials": "Invalid credentials."
},
"step": {

View File

@@ -1,18 +1,20 @@
{
"config": {
"abort": {
"single_instance_allowed": "Solo se permite una \u00fanica configuraci\u00f3n de Abode."
"single_instance_allowed": "Ya est\u00e1 configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"error": {
"cannot_connect": "No se pudo conectar",
"connection_error": "No se puede conectar a Abode.",
"identifier_exists": "Cuenta ya registrada.",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
"invalid_credentials": "Credenciales inv\u00e1lidas."
},
"step": {
"user": {
"data": {
"password": "Contrase\u00f1a",
"username": "Direcci\u00f3n de correo electr\u00f3nico"
"username": "Correo electr\u00f3nico"
},
"title": "Rellene la informaci\u00f3n de acceso Abode"
}

View File

@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"single_instance_allowed": "Juba seadistatud. V\u00f5imalik on ainult \u00fcks seadistamine."
},
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"connection_error": "\u00dchendus Abode-iga nurjus.",
"identifier_exists": "Konto on juba seadistatud",
"invalid_auth": "Tuvastamise viga",
"invalid_credentials": "Sobimatu mandaat."
},
"step": {
"user": {
"data": {
"password": "Salas\u00f5na",
"username": "E-post"
},
"title": "Sisesta oma Abode sisselogimisteave"
}
}
}
}

View File

@@ -4,8 +4,10 @@
"single_instance_allowed": "Une seule configuration d'Abode est autoris\u00e9e."
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"connection_error": "Impossible de se connecter \u00e0 Abode.",
"identifier_exists": "Compte d\u00e9j\u00e0 enregistr\u00e9.",
"invalid_auth": "Authentification invalide",
"invalid_credentials": "Informations d'identification invalides."
},
"step": {

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u00c8 consentita una sola configurazione di Abode."
"single_instance_allowed": "Gi\u00e0 configurato. \u00c8 possibile una sola configurazione."
},
"error": {
"cannot_connect": "Impossibile connettersi",
"connection_error": "Impossibile connettersi ad Abode.",
"identifier_exists": "Account gi\u00e0 registrato",
"invalid_auth": "Autenticazione non valida",
"invalid_credentials": "Credenziali non valide"
},
"step": {

View File

@@ -4,8 +4,10 @@
"single_instance_allowed": "N\u00ebmmen eng eenzeg Konfiguratioun vun ZHA ass erlaabt."
},
"error": {
"cannot_connect": "Feeler beim verbannen",
"connection_error": "Kann sech net mat Abode verbannen.",
"identifier_exists": "Konto ass scho registr\u00e9iert",
"invalid_auth": "Ong\u00eblteg Authentifikatioun",
"invalid_credentials": "Ong\u00eblteg Login Informatioune"
},
"step": {

View File

@@ -4,6 +4,7 @@
"single_instance_allowed": "Slechts een enkele configuratie van Abode is toegestaan."
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"connection_error": "Kan geen verbinding maken met Abode.",
"identifier_exists": "Account is al geregistreerd.",
"invalid_credentials": "Ongeldige inloggegevens."

View File

@@ -1,18 +1,20 @@
{
"config": {
"abort": {
"single_instance_allowed": "Bare en enkelt konfigurasjon av Abode er tillatt."
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"connection_error": "Kan ikke koble til Abode.",
"identifier_exists": "Kontoen er allerede registrert.",
"invalid_auth": "Ugyldig godkjenning",
"invalid_credentials": "Ugyldig legitimasjon"
},
"step": {
"user": {
"data": {
"password": "Passord",
"username": "E-postadresse"
"username": "E-post"
},
"title": "Fyll ut innloggingsinformasjonen for Abode"
}

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "Dozwolona jest tylko jedna konfiguracja Abode."
"single_instance_allowed": "Ju\u017c skonfigurowano. Mo\u017cliwa jest tylko jedna konfiguracja."
},
"error": {
"connection_error": "Nie mo\u017cna po\u0142\u0105czy\u0107 si\u0119 z Abode.",
"identifier_exists": "Konto jest ju\u017c zarejestrowane.",
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"connection_error": "Nie mo\u017cna po\u0142\u0105czy\u0107 si\u0119 z Abode",
"identifier_exists": "Konto jest ju\u017c zarejestrowane",
"invalid_auth": "Niepoprawne uwierzytelnienie",
"invalid_credentials": "Nieprawid\u0142owe dane uwierzytelniaj\u0105ce"
},
"step": {

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\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."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"connection_error": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Abode.",
"identifier_exists": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430.",
"invalid_auth": "\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f.",
"invalid_credentials": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435."
},
"step": {

View File

@@ -1,11 +1,13 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u50c5\u5141\u8a31\u8a2d\u5b9a\u4e00\u7d44 Abode\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"connection_error": "\u7121\u6cd5\u9023\u7dda\u81f3 Abode\u3002",
"identifier_exists": "\u5e33\u865f\u5df2\u8a3b\u518a\u3002",
"invalid_auth": "\u9a57\u8b49\u78bc\u7121\u6548",
"invalid_credentials": "\u6191\u8b49\u7121\u6548\u3002"
},
"step": {

View File

@@ -5,10 +5,10 @@
"title": "AccuWeather",
"description": "If you need help with the configuration have a look here: https://www.home-assistant.io/integrations/accuweather/\n\nSome sensors are not enabled by default. You can enable them in the entity registry after the integration configuration.\nWeather forecast is not enabled by default. You can enable it in the integration options.",
"data": {
"name": "Name of the integration",
"name": "[%key:common::config_flow::data::name%]",
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "Latitude",
"longitude": "Longitude"
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]"
}
}
},

View File

@@ -14,7 +14,7 @@
"api_key": "Clau API",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nom de la integraci\u00f3"
"name": "Nom"
},
"description": "Si necessites ajuda amb la configuraci\u00f3, consulta els seg\u00fcent enlla\u00e7: https://www.home-assistant.io/integrations/accuweather/ \n\n Alguns sensors no estan activats de manera predeterminada. Els pots activar des del registre d'entitats, despr\u00e9s de la configurraci\u00f3 de la integraci\u00f3.\n La previsi\u00f3 meteorol\u00f2gica no est\u00e0 activada de manera predeterminada. Pots activar-la en les opcions de la integraci\u00f3.",
"title": "AccuWeather"

View File

@@ -1,11 +1,34 @@
{
"config": {
"abort": {
"single_instance_allowed": "Ji\u017e nastaveno. Je mo\u017en\u00e1 pouze jedin\u00e1 konfigurace."
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"invalid_api_key": "Neplatn\u00fd kl\u00ed\u010d API",
"requests_exceeded": "Byl p\u0159ekro\u010den povolen\u00fd po\u010det po\u017eadavk\u016f pro API Accuweather. Mus\u00edte po\u010dkat nebo zm\u011bnit API kl\u00ed\u010d."
},
"step": {
"user": {
"data": {
"api_key": "Kl\u00ed\u010d API",
"latitude": "Zem\u011bpisn\u00e1 \u0161\u00ed\u0159ka",
"longitude": "Zem\u011bpisn\u00e1 d\u00e9lka"
}
"longitude": "Zem\u011bpisn\u00e1 d\u00e9lka",
"name": "Jm\u00e9no"
},
"description": "Pokud pot\u0159ebujete pomoc s nastaven\u00ed, pod\u00edvejte se na: https://www.home-assistant.io/integrations/accuweather/\n\nN\u011bkter\u00e9 senzory nejsou ve v\u00fdchoz\u00edm nastaven\u00ed povoleny. M\u016f\u017eete je povolit po nastaven\u00ed integrace v registru entit.\nP\u0159edpov\u011b\u010f po\u010das\u00ed nen\u00ed ve v\u00fdchoz\u00edm nastaven\u00ed povolena. M\u016f\u017eete ji povolit v mo\u017enostech integrace.",
"title": "AccuWeather"
}
}
},
"options": {
"step": {
"user": {
"data": {
"forecast": "P\u0159edpov\u011b\u010f po\u010das\u00ed"
},
"description": "Kdy\u017e povol\u00edte p\u0159edpov\u011b\u010f po\u010das\u00ed, budou aktualizace dat prov\u00e1d\u011bny ka\u017ed\u00fdch 64 minut nam\u00edsto 32 minut z d\u016fvodu omezen\u00ed bezplatn\u00e9 verze AccuWeather.",
"title": "Mo\u017enosti AccuWeather"
}
}
}

View File

@@ -14,7 +14,7 @@
"api_key": "API Key",
"latitude": "Latitude",
"longitude": "Longitude",
"name": "Name of the integration"
"name": "Name"
},
"description": "If you need help with the configuration have a look here: https://www.home-assistant.io/integrations/accuweather/\n\nSome sensors are not enabled by default. You can enable them in the entity registry after the integration configuration.\nWeather forecast is not enabled by default. You can enable it in the integration options.",
"title": "AccuWeather"

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"single_instance_allowed": "Ya est\u00e1 configurado. S\u00f3lo es posible una \u00fanica configuraci\u00f3n."
"single_instance_allowed": "Ya est\u00e1 configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"error": {
"cannot_connect": "No se pudo conectar",
@@ -14,7 +14,7 @@
"api_key": "Clave API",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nombre de la integraci\u00f3n"
"name": "Nombre"
},
"description": "Si necesitas ayuda con la configuraci\u00f3n, echa un vistazo aqu\u00ed: https://www.home-assistant.io/integrations/accuweather/ \n\nEl pron\u00f3stico del tiempo no est\u00e1 habilitado por defecto. Puedes habilitarlo en las opciones de la integraci\u00f3n.",
"title": "AccuWeather"

View File

@@ -1,10 +1,10 @@
{
"config": {
"abort": {
"single_instance_allowed": "Sidumine juba tehtud. V\u00f5imalik on ainult 1 sidumine,"
"single_instance_allowed": "Sidumine juba tehtud. V\u00f5imalik on ainult 1 sidumine."
},
"error": {
"cannot_connect": "\u00dchendus eba\u00f5nnestus",
"cannot_connect": "\u00dchendamine nurjus",
"invalid_api_key": "API v\u00f5ti on vale",
"requests_exceeded": "Accuweatheri API-le esitatud p\u00e4ringute piirarv on \u00fcletatud. Peate ootama (v\u00f5i muutma API v\u00f5tit)."
},

View File

@@ -14,7 +14,7 @@
"api_key": "Chiave API",
"latitude": "Latitudine",
"longitude": "Logitudine",
"name": "Nome dell'integrazione"
"name": "Nome"
},
"description": "Se hai bisogno di aiuto con la configurazione dai un'occhiata qui: https://www.home-assistant.io/integrations/accuweather/ \n\nAlcuni sensori non sono abilitati per impostazione predefinita. \u00c8 possibile abilitarli nel registro entit\u00e0 dopo la configurazione di integrazione. \nLe previsioni meteo non sono abilitate per impostazione predefinita. Puoi abilitarle nelle opzioni di integrazione.",
"title": "AccuWeather"

View File

@@ -14,7 +14,7 @@
"api_key": "API Schl\u00ebssel",
"latitude": "Breedegrad",
"longitude": "L\u00e4ngegrad",
"name": "Numm vun der Integratioun"
"name": "Numm"
},
"description": "Falls du H\u00ebllef mat der Konfiguratioun brauch kuck h\u00e9i:\nhttps://www.home-assistant.io/integrations/accuweather/\n\nWieder Pr\u00e9visounen si standardm\u00e9isseg net aktiv. Du kanns d\u00e9i an den Optioune vun der Integratioun aschalten.",
"title": "AccuWeather"

View File

@@ -0,0 +1,12 @@
{
"config": {
"step": {
"user": {
"data": {
"longitude": "Lengtegraad",
"name": "Naam"
}
}
}
}
}

View File

@@ -4,7 +4,7 @@
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"error": {
"cannot_connect": "Tilkobling mislyktes.",
"cannot_connect": "Tilkobling mislyktes",
"invalid_api_key": "Ugyldig API-n\u00f8kkel",
"requests_exceeded": "Det tillatte antallet foresp\u00f8rsler til Accuweather API er overskredet. Du m\u00e5 vente eller endre API-n\u00f8kkel."
},
@@ -14,7 +14,7 @@
"api_key": "API-n\u00f8kkel",
"latitude": "Breddegrad",
"longitude": "Lengdegrad",
"name": "Navn p\u00e5 integrasjon"
"name": "Navn"
},
"description": "Hvis du trenger hjelp med konfigurasjonen, kan du se her: https://www.home-assistant.io/integrations/accuweather/ \n\n Noen sensorer er ikke aktivert som standard. Du kan aktivere dem i enhetsregisteret etter integrasjonskonfigurasjonen. \n V\u00e6rmelding er ikke aktivert som standard. Du kan aktivere det i integrasjonsalternativene.",
"title": ""

View File

@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"invalid_api_key": "Nieprawid\u0142owy klucz API.",
"invalid_api_key": "Nieprawid\u0142owy klucz API",
"requests_exceeded": "Dozwolona liczba zapyta\u0144 do interfejsu API AccuWeather zosta\u0142a przekroczona. Musisz poczeka\u0107 lub zmieni\u0107 klucz API."
},
"step": {
@@ -14,7 +14,7 @@
"api_key": "Klucz API",
"latitude": "Szeroko\u015b\u0107 geograficzna",
"longitude": "D\u0142ugo\u015b\u0107 geograficzna",
"name": "Nazwa integracji"
"name": "Nazwa"
},
"description": "Je\u015bli potrzebujesz pomocy z konfiguracj\u0105, przejd\u017a na stron\u0119: https://www.home-assistant.io/integrations/accuweather/ \n\nCz\u0119\u015b\u0107 sensor\u00f3w nie jest w\u0142\u0105czona domy\u015blnie. Mo\u017cesz je w\u0142\u0105czy\u0107 w rejestrze encji po konfiguracji integracji.\nPrognoza pogody nie jest domy\u015blnie w\u0142\u0105czona. Mo\u017cesz j\u0105 w\u0142\u0105czy\u0107 w opcjach integracji.",
"title": "AccuWeather"
@@ -27,7 +27,7 @@
"data": {
"forecast": "Prognoza pogody"
},
"description": "Ze wzgl\u0119du na ograniczenia darmowej wersji klucza API AccuWeather po w\u0142\u0105czeniu prognozy pogody aktualizacje danych b\u0119d\u0105 wykonywane co 64 minut zamiast co 32 minut.",
"description": "Ze wzgl\u0119du na ograniczenia darmowej wersji klucza API AccuWeather po w\u0142\u0105czeniu prognozy pogody aktualizacje danych b\u0119d\u0105 wykonywane co 64 minuty zamiast co 32 minuty.",
"title": "Opcje AccuWeather"
}
}

View File

@@ -0,0 +1,8 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "Fallande",
"rising": "Stigande"
}
}
}

View File

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

View File

@@ -45,7 +45,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
pass
if len(hubs) == 0:
return self.async_abort(reason="all_configured")
return self.async_abort(reason="no_devices_found")
if len(hubs) == 1:
return await self.async_create(hubs[0])

View File

@@ -10,7 +10,7 @@
}
},
"abort": {
"all_configured": "No new Pulse hubs discovered."
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]"
}
}
}
}

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "No s'han descobert nous hubs de Pulse."
"all_configured": "No s'han descobert nous hubs de Pulse.",
"no_devices_found": "No s'han trobat dispositius a la xarxa"
},
"step": {
"user": {

View File

@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"no_devices_found": "V s\u00edti nebyla nalezena \u017e\u00e1dn\u00e1 za\u0159\u00edzen\u00ed"
}
}
}

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "No new Pulse hubs discovered."
"all_configured": "No new Pulse hubs discovered.",
"no_devices_found": "No devices found on the network"
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "No se han descubierto nuevos hubs Pulse."
"all_configured": "No se han descubierto nuevos hubs Pulse.",
"no_devices_found": "No se encontraron dispositivos en la red"
},
"step": {
"user": {

View File

@@ -0,0 +1,17 @@
{
"config": {
"abort": {
"all_configured": "Uusi Pulse'i jaotureid ei avastatud.",
"no_devices_found": "V\u00f5rgus ei tuvastatud \u00fchtegi seadet"
},
"step": {
"user": {
"data": {
"id": "Hosti ID"
},
"title": "Vali lisatav jaotur"
}
}
},
"title": ""
}

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "Aucun nouveau hub Pulse n'a \u00e9t\u00e9 d\u00e9couvert."
"all_configured": "Aucun nouveau hub Pulse n'a \u00e9t\u00e9 d\u00e9couvert.",
"no_devices_found": "Aucun appareil trouv\u00e9 sur le r\u00e9seau"
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "Non sono stati scoperti nuovi hub Pulse."
"all_configured": "Non sono stati scoperti nuovi hub Pulse.",
"no_devices_found": "Nessun dispositivo trovato sulla rete"
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "Ingen nye Pulse-hub oppdaget."
"all_configured": "Ingen nye Pulse-hub oppdaget.",
"no_devices_found": "Ingen enheter funnet p\u00e5 nettverket"
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "Nie wykryto hub\u00f3w Pulse."
"all_configured": "Nie wykryto hub\u00f3w Pulse",
"no_devices_found": "Nie znaleziono urz\u0105dze\u0144 w sieci"
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b."
"all_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b.",
"no_devices_found": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0441\u0435\u0442\u0438."
},
"step": {
"user": {

View File

@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"all_configured": "\u672a\u641c\u5c0b\u5230 Pulse hub"
"all_configured": "\u672a\u641c\u5c0b\u5230 Pulse hub",
"no_devices_found": "\u7db2\u8def\u4e0a\u627e\u4e0d\u5230\u8a2d\u5099"
},
"step": {
"user": {

View File

@@ -1,6 +1,4 @@
"""Config flow to configure the AdGuard Home integration."""
import logging
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
@@ -17,8 +15,6 @@ from homeassistant.const import (
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession
_LOGGER = logging.getLogger(__name__)
@config_entries.HANDLERS.register(DOMAIN)
class AdGuardHomeFlowHandler(ConfigFlow):
@@ -80,7 +76,7 @@ class AdGuardHomeFlowHandler(ConfigFlow):
try:
await adguard.version()
except AdGuardHomeConnectionError:
errors["base"] = "connection_error"
errors["base"] = "cannot_connect"
return await self._show_setup_form(errors)
return self.async_create_entry(
@@ -152,7 +148,7 @@ class AdGuardHomeFlowHandler(ConfigFlow):
try:
await adguard.version()
except AdGuardHomeConnectionError:
errors["base"] = "connection_error"
errors["base"] = "cannot_connect"
return await self._show_hassio_form(errors)
return self.async_create_entry(

View File

@@ -1,6 +1,5 @@
"""Support for AdGuard Home sensors."""
from datetime import timedelta
import logging
from adguardhome import AdGuardHomeConnectionError
@@ -15,8 +14,6 @@ from homeassistant.const import PERCENTAGE, TIME_MILLISECONDS
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.typing import HomeAssistantType
_LOGGER = logging.getLogger(__name__)
SCAN_INTERVAL = timedelta(seconds=300)
PARALLEL_UPDATES = 4

View File

@@ -8,8 +8,8 @@
"password": "[%key:common::config_flow::data::password%]",
"port": "[%key:common::config_flow::data::port%]",
"username": "[%key:common::config_flow::data::username%]",
"ssl": "AdGuard Home uses a SSL certificate",
"verify_ssl": "AdGuard Home uses a proper certificate"
"ssl": "[%key:common::config_flow::data::ssl%]",
"verify_ssl": "[%key:common::config_flow::data::verify_ssl%]"
}
},
"hassio_confirm": {
@@ -17,10 +17,12 @@
"description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the Hass.io add-on: {addon}?"
}
},
"error": { "connection_error": "Failed to connect." },
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"existing_instance_updated": "Updated existing configuration.",
"single_instance_allowed": "Only a single configuration of AdGuard Home is allowed."
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
}
}
}

View File

@@ -2,9 +2,10 @@
"config": {
"abort": {
"existing_instance_updated": "S'ha actualitzat la configuraci\u00f3 existent.",
"single_instance_allowed": "Nom\u00e9s es permet una \u00fanica configuraci\u00f3 d'AdGuard Home."
"single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"connection_error": "No s'ha pogut connectar."
},
"step": {
@@ -17,9 +18,9 @@
"host": "[%key::common::config_flow::data::host%]",
"password": "[%key::common::config_flow::data::password%]",
"port": "[%key::common::config_flow::data::port%]",
"ssl": "AdGuard Home utilitza un certificat SSL",
"ssl": "Utilitza un certificat SSL",
"username": "[%key::common::config_flow::data::username%]",
"verify_ssl": "AdGuard Home utilitza un certificat adequat"
"verify_ssl": "Verifica el certificat SSL"
},
"description": "Configuraci\u00f3 de la inst\u00e0ncia d'AdGuard Home, permet el control i la monitoritzaci\u00f3."
}

View File

@@ -1,5 +1,13 @@
{
"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."
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"connection_error": "Nepoda\u0159ilo se p\u0159ipojit."
},
"step": {
"hassio_confirm": {
"description": "Chcete nakonfigurovat slu\u017ebu Home Assistant pro p\u0159ipojen\u00ed k AddGuard pomoc\u00ed hass.io {addon}?",
@@ -10,7 +18,9 @@
"host": "Hostitel",
"password": "Heslo",
"port": "Port",
"username": "U\u017eivatelsk\u00e9 jm\u00e9no"
"ssl": "Pou\u017e\u00edv\u00e1 SSL certifik\u00e1t",
"username": "U\u017eivatelsk\u00e9 jm\u00e9no",
"verify_ssl": "Ov\u011b\u0159it certifik\u00e1t SSL"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"config": {
"error": {
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2"
}
}
}

View File

@@ -2,9 +2,10 @@
"config": {
"abort": {
"existing_instance_updated": "Updated existing configuration.",
"single_instance_allowed": "Only a single configuration of AdGuard Home is allowed."
"single_instance_allowed": "Already configured. Only a single configuration possible."
},
"error": {
"cannot_connect": "Failed to connect",
"connection_error": "Failed to connect."
},
"step": {
@@ -17,9 +18,9 @@
"host": "Host",
"password": "Password",
"port": "Port",
"ssl": "AdGuard Home uses a SSL certificate",
"ssl": "Uses an SSL certificate",
"username": "Username",
"verify_ssl": "AdGuard Home uses a proper certificate"
"verify_ssl": "Verify SSL certificate"
},
"description": "Set up your AdGuard Home instance to allow monitoring and control."
}

View File

@@ -5,6 +5,7 @@
"single_instance_allowed": "S\u00f3lo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error": {
"cannot_connect": "No se pudo conectar",
"connection_error": "No se conect\u00f3."
},
"step": {

View File

@@ -0,0 +1,29 @@
{
"config": {
"abort": {
"existing_instance_updated": "Olemasolevad seaded v\u00e4rskendatud.",
"single_instance_allowed": "Juba seadistatud. V\u00f5imalik on ainult \u00fcks seadistamine."
},
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"connection_error": "\u00dchenduse loomine 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 pistikprogrammi kaudu"
},
"user": {
"data": {
"host": "",
"password": "Salas\u00f5na",
"port": "",
"ssl": "Kasuta SSL sertifikaati",
"username": "Kasutajanimi",
"verify_ssl": "Kontrolli SSL sertifikaati"
},
"description": "Seadista AdGuard Home'i sidumine, et v\u00f5imaldada j\u00e4lgimist ja juhtimist."
}
}
}
}

View File

@@ -5,6 +5,7 @@
"single_instance_allowed": "Une seule configuration d'AdGuard Home est autoris\u00e9e."
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"connection_error": "\u00c9chec de connexion."
},
"step": {

View File

@@ -2,9 +2,10 @@
"config": {
"abort": {
"existing_instance_updated": "Configurazione esistente aggiornata.",
"single_instance_allowed": "\u00c8 consentita solo una singola configurazione di AdGuard Home."
"single_instance_allowed": "Gi\u00e0 configurato. \u00c8 possibile una sola configurazione."
},
"error": {
"cannot_connect": "Impossibile connettersi",
"connection_error": "Impossibile connettersi."
},
"step": {
@@ -17,9 +18,9 @@
"host": "Host",
"password": "Password",
"port": "Porta",
"ssl": "AdGuard Home utilizza un certificato SSL",
"ssl": "Utilizza un certificato SSL",
"username": "Nome utente",
"verify_ssl": "AdGuard Home utilizza un certificato appropriato"
"verify_ssl": "Verificare il certificato SSL"
},
"description": "Configura l'istanza di AdGuard Home per consentire il monitoraggio e il controllo."
}

View File

@@ -5,6 +5,7 @@
"single_instance_allowed": "N\u00ebmmen eng eenzeg Konfiguratioun vun AdGuard Home ass erlaabt."
},
"error": {
"cannot_connect": "Feeler beim verbannen",
"connection_error": "Feeler beim verbannen."
},
"step": {

View File

@@ -5,6 +5,7 @@
"single_instance_allowed": "Slechts \u00e9\u00e9n configuratie van AdGuard Home is toegestaan."
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"connection_error": "Kon niet verbinden."
},
"step": {
@@ -15,6 +16,7 @@
"user": {
"data": {
"password": "Wachtwoord",
"port": "Poort",
"ssl": "AdGuard Home maakt gebruik van een SSL certificaat",
"username": "Gebruikersnaam",
"verify_ssl": "AdGuard Home maakt gebruik van een goed certificaat"

View File

@@ -2,9 +2,10 @@
"config": {
"abort": {
"existing_instance_updated": "Oppdatert eksisterende konfigurasjon.",
"single_instance_allowed": "Kun en konfigurasjon av AdGuard Hjemer tillatt."
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"connection_error": "Tilkobling mislyktes."
},
"step": {
@@ -16,10 +17,10 @@
"data": {
"host": "Vert",
"password": "Passord",
"port": "",
"ssl": "AdGuard Hjem bruker et SSL-sertifikat",
"port": "Port",
"ssl": "Bruker et SSL-sertifikat",
"username": "Brukernavn",
"verify_ssl": "AdGuard Home bruker et riktig sertifikat"
"verify_ssl": "Verifisere SSL-sertifikat"
},
"description": "Sett opp din AdGuard Hjem instans for \u00e5 tillate overv\u00e5king og kontroll."
}

View File

@@ -1,10 +1,11 @@
{
"config": {
"abort": {
"existing_instance_updated": "Zaktualizowano istniej\u0105c\u0105 konfiguracj\u0119.",
"single_instance_allowed": "Dozwolona jest tylko jedna konfiguracja AdGuard Home."
"existing_instance_updated": "Zaktualizowano istniej\u0105c\u0105 konfiguracj\u0119",
"single_instance_allowed": "Ju\u017c skonfigurowano. Mo\u017cliwa jest tylko jedna konfiguracja."
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"connection_error": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia"
},
"step": {
@@ -17,9 +18,9 @@
"host": "Nazwa hosta lub adres IP",
"password": "Has\u0142o",
"port": "Port",
"ssl": "AdGuard Home u\u017cywa certyfikatu SSL",
"ssl": "Certyfikat SSL",
"username": "Nazwa u\u017cytkownika",
"verify_ssl": "AdGuard Home u\u017cywa odpowiedniego certyfikatu."
"verify_ssl": "Weryfikacja certyfikatu SSL"
},
"description": "Skonfiguruj instancj\u0119 AdGuard Home, aby umo\u017cliwi\u0107 monitorowanie i kontrol\u0119."
}

View File

@@ -2,9 +2,10 @@
"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 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\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."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"connection_error": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f."
},
"step": {
@@ -17,9 +18,9 @@
"host": "\u0425\u043e\u0441\u0442",
"password": "\u041f\u0430\u0440\u043e\u043b\u044c",
"port": "\u041f\u043e\u0440\u0442",
"ssl": "AdGuard Home \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 SSL",
"ssl": "\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 SSL",
"username": "\u041b\u043e\u0433\u0438\u043d",
"verify_ssl": "AdGuard Home \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442"
"verify_ssl": "\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 SSL"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 Home Assistant \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f AdGuard Home."
}

View File

@@ -3,6 +3,9 @@
"abort": {
"existing_instance_updated": "\u66f4\u65b0\u4e86\u73b0\u6709\u914d\u7f6e\u3002"
},
"error": {
"connection_error": "\u8fde\u63a5\u5931\u8d25\u3002"
},
"step": {
"user": {
"data": {

View File

@@ -2,9 +2,10 @@
"config": {
"abort": {
"existing_instance_updated": "\u5df2\u66f4\u65b0\u73fe\u6709\u8a2d\u5b9a\u3002",
"single_instance_allowed": "\u50c5\u5141\u8a31\u8a2d\u5b9a\u4e00\u7d44 AdGuard Home\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"connection_error": "\u9023\u7dda\u5931\u6557\u3002"
},
"step": {
@@ -17,9 +18,9 @@
"host": "\u4e3b\u6a5f\u7aef",
"password": "\u5bc6\u78bc",
"port": "\u901a\u8a0a\u57e0",
"ssl": "AdGuard Home \u4f7f\u7528 SSL \u8a8d\u8b49",
"ssl": "\u4f7f\u7528 SSL \u8a8d\u8b49",
"username": "\u4f7f\u7528\u8005\u540d\u7a31",
"verify_ssl": "AdGuard Home \u4f7f\u7528\u5c0d\u61c9\u8a8d\u8b49"
"verify_ssl": "\u78ba\u8a8d SSL \u8a8d\u8b49"
},
"description": "\u8a2d\u5b9a AdGuard Home \u4ee5\u9032\u884c\u76e3\u63a7\u3002"
}

View File

@@ -1,6 +1,4 @@
"""Support for ADS binary sensors."""
import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import (
@@ -14,8 +12,6 @@ import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "ADS binary sensor"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{

View File

@@ -1,6 +1,4 @@
"""Support for ADS covers."""
import logging
import voluptuous as vol
from homeassistant.components.cover import (
@@ -25,8 +23,6 @@ from . import (
AdsEntity,
)
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "ADS Cover"
CONF_ADS_VAR_SET_POS = "adsvar_set_position"

View File

@@ -1,6 +1,4 @@
"""Support for ADS light sources."""
import logging
import voluptuous as vol
from homeassistant.components.light import (
@@ -21,7 +19,6 @@ from . import (
AdsEntity,
)
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "ADS Light"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{

View File

@@ -1,6 +1,4 @@
"""Support for ADS sensors."""
import logging
import voluptuous as vol
from homeassistant.components import ads
@@ -10,8 +8,6 @@ import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_FACTOR, CONF_ADS_TYPE, CONF_ADS_VAR, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "ADS sensor"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{

View File

@@ -1,6 +1,4 @@
"""Support for ADS switch platform."""
import logging
import voluptuous as vol
from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity
@@ -9,8 +7,6 @@ import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "ADS Switch"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@@ -0,0 +1,92 @@
"""Advantage Air climate integration."""
import asyncio
from datetime import timedelta
import logging
from advantage_air import ApiError, advantage_air
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
ADVANTAGE_AIR_SYNC_INTERVAL = 15
ADVANTAGE_AIR_PLATFORMS = ["climate", "cover", "binary_sensor", "sensor", "switch"]
_LOGGER = logging.getLogger(__name__)
async def async_setup(hass, config):
"""Set up Advantage Air integration."""
hass.data[DOMAIN] = {}
return True
async def async_setup_entry(hass, entry):
"""Set up Advantage Air config."""
ip_address = entry.data[CONF_IP_ADDRESS]
port = entry.data[CONF_PORT]
api = advantage_air(
ip_address,
port=port,
session=async_get_clientsession(hass),
retry=ADVANTAGE_AIR_RETRY,
)
async def async_get():
try:
return await api.async_get()
except ApiError as err:
raise UpdateFailed(err) from err
coordinator = DataUpdateCoordinator(
hass,
_LOGGER,
name="Advantage Air",
update_method=async_get,
update_interval=timedelta(seconds=ADVANTAGE_AIR_SYNC_INTERVAL),
)
async def async_change(change):
try:
if await api.async_change(change):
await coordinator.async_refresh()
except ApiError as err:
_LOGGER.warning(err)
await coordinator.async_refresh()
if not coordinator.data:
raise ConfigEntryNotReady
hass.data[DOMAIN][entry.entry_id] = {
"coordinator": coordinator,
"async_change": async_change,
}
for platform in ADVANTAGE_AIR_PLATFORMS:
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(entry, platform)
)
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, component)
for component in ADVANTAGE_AIR_PLATFORMS
]
)
)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok

View File

@@ -0,0 +1,75 @@
"""Binary Sensor platform for Advantage Air integration."""
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_MOTION,
DEVICE_CLASS_PROBLEM,
BinarySensorEntity,
)
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
PARALLEL_UPDATES = 0
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir motion platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirZoneFilter(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add motion sensor when motion is enabled
if zone["motionConfig"] >= 2:
entities.append(AdvantageAirZoneMotion(instance, ac_key, zone_key))
async_add_entities(entities)
class AdvantageAirZoneFilter(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Filter."""
@property
def name(self):
"""Return the name."""
return f'{self._ac["name"]} Filter'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-filter'
@property
def device_class(self):
"""Return the device class of the vent."""
return DEVICE_CLASS_PROBLEM
@property
def is_on(self):
"""Return if filter needs cleaning."""
return self._ac["filterCleanStatus"]
class AdvantageAirZoneMotion(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Zone Motion."""
@property
def name(self):
"""Return the name."""
return f'{self._zone["name"]} Motion'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-{self.zone_key}-motion'
@property
def device_class(self):
"""Return the device class of the vent."""
return DEVICE_CLASS_MOTION
@property
def is_on(self):
"""Return if motion is detect."""
return self._zone["motion"]

View File

@@ -0,0 +1,235 @@
"""Climate platform for Advantage Air integration."""
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
FAN_AUTO,
FAN_HIGH,
FAN_LOW,
FAN_MEDIUM,
HVAC_MODE_COOL,
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_FAN_MODE,
SUPPORT_TARGET_TEMPERATURE,
)
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, TEMP_CELSIUS
from .const import (
ADVANTAGE_AIR_STATE_CLOSE,
ADVANTAGE_AIR_STATE_OFF,
ADVANTAGE_AIR_STATE_ON,
ADVANTAGE_AIR_STATE_OPEN,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
ADVANTAGE_AIR_HVAC_MODES = {
"heat": HVAC_MODE_HEAT,
"cool": HVAC_MODE_COOL,
"vent": HVAC_MODE_FAN_ONLY,
"dry": HVAC_MODE_DRY,
}
HASS_HVAC_MODES = {v: k for k, v in ADVANTAGE_AIR_HVAC_MODES.items()}
ADVANTAGE_AIR_FAN_MODES = {
"auto": FAN_AUTO,
"low": FAN_LOW,
"medium": FAN_MEDIUM,
"high": FAN_HIGH,
}
HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()}
FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100}
AC_HVAC_MODES = [
HVAC_MODE_OFF,
HVAC_MODE_COOL,
HVAC_MODE_HEAT,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_DRY,
]
ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_FAN_ONLY]
PARALLEL_UPDATES = 0
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir climate platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirAC(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add zone climate control when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZone(instance, ac_key, zone_key))
async_add_entities(entities)
class AdvantageAirClimateEntity(AdvantageAirEntity, ClimateEntity):
"""AdvantageAir Climate class."""
@property
def temperature_unit(self):
"""Return the temperature unit."""
return TEMP_CELSIUS
@property
def target_temperature_step(self):
"""Return the supported temperature step."""
return PRECISION_WHOLE
@property
def max_temp(self):
"""Return the maximum supported temperature."""
return 32
@property
def min_temp(self):
"""Return the minimum supported temperature."""
return 16
class AdvantageAirAC(AdvantageAirClimateEntity):
"""AdvantageAir AC unit."""
@property
def name(self):
"""Return the name."""
return self._ac["name"]
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}'
@property
def target_temperature(self):
"""Return the current target temperature."""
return self._ac["setTemp"]
@property
def hvac_mode(self):
"""Return the current HVAC modes."""
if self._ac["state"] == ADVANTAGE_AIR_STATE_ON:
return ADVANTAGE_AIR_HVAC_MODES.get(self._ac["mode"])
return HVAC_MODE_OFF
@property
def hvac_modes(self):
"""Return the supported HVAC modes."""
return AC_HVAC_MODES
@property
def fan_mode(self):
"""Return the current fan modes."""
return ADVANTAGE_AIR_FAN_MODES.get(self._ac["fan"])
@property
def fan_modes(self):
"""Return the supported fan modes."""
return [FAN_AUTO, FAN_LOW, FAN_MEDIUM, FAN_HIGH]
@property
def supported_features(self):
"""Return the supported features."""
return SUPPORT_TARGET_TEMPERATURE | SUPPORT_FAN_MODE
async def async_set_hvac_mode(self, hvac_mode):
"""Set the HVAC Mode and State."""
if hvac_mode == HVAC_MODE_OFF:
await self.async_change(
{self.ac_key: {"info": {"state": ADVANTAGE_AIR_STATE_OFF}}}
)
else:
await self.async_change(
{
self.ac_key: {
"info": {
"state": ADVANTAGE_AIR_STATE_ON,
"mode": HASS_HVAC_MODES.get(hvac_mode),
}
}
}
)
async def async_set_fan_mode(self, fan_mode):
"""Set the Fan Mode."""
await self.async_change(
{self.ac_key: {"info": {"fan": HASS_FAN_MODES.get(fan_mode)}}}
)
async def async_set_temperature(self, **kwargs):
"""Set the Temperature."""
temp = kwargs.get(ATTR_TEMPERATURE)
await self.async_change({self.ac_key: {"info": {"setTemp": temp}}})
class AdvantageAirZone(AdvantageAirClimateEntity):
"""AdvantageAir Zone control."""
@property
def name(self):
"""Return the name."""
return self._zone["name"]
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-{self.zone_key}'
@property
def current_temperature(self):
"""Return the current temperature."""
return self._zone["measuredTemp"]
@property
def target_temperature(self):
"""Return the target temperature."""
return self._zone["setTemp"]
@property
def hvac_mode(self):
"""Return the current HVAC modes."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return HVAC_MODE_FAN_ONLY
return HVAC_MODE_OFF
@property
def hvac_modes(self):
"""Return supported HVAC modes."""
return ZONE_HVAC_MODES
@property
def supported_features(self):
"""Return the supported features."""
return SUPPORT_TARGET_TEMPERATURE
async def async_set_hvac_mode(self, hvac_mode):
"""Set the HVAC Mode and State."""
if hvac_mode == HVAC_MODE_OFF:
await self.async_change(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
}
}
)
else:
await self.async_change(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_OPEN}}
}
}
)
async def async_set_temperature(self, **kwargs):
"""Set the Temperature."""
temp = kwargs.get(ATTR_TEMPERATURE)
await self.async_change(
{self.ac_key: {"zones": {self.zone_key: {"setTemp": temp}}}}
)

View File

@@ -0,0 +1,57 @@
"""Config Flow for Advantage Air integration."""
from advantage_air import ApiError, advantage_air
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
ADVANTAGE_AIR_DEFAULT_PORT = 2025
ADVANTAGE_AIR_SCHEMA = vol.Schema(
{
vol.Required(CONF_IP_ADDRESS): str,
vol.Optional(CONF_PORT, default=ADVANTAGE_AIR_DEFAULT_PORT): int,
}
)
class AdvantageAirConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Config Advantage Air API connection."""
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_POLL
DOMAIN = DOMAIN
async def async_step_user(self, user_input=None):
"""Get configuration from the user."""
errors = {}
if user_input:
ip_address = user_input[CONF_IP_ADDRESS]
port = user_input[CONF_PORT]
try:
data = await advantage_air(
ip_address,
port=port,
session=async_get_clientsession(self.hass),
retry=ADVANTAGE_AIR_RETRY,
).async_get(1)
except ApiError:
errors["base"] = "cannot_connect"
else:
await self.async_set_unique_id(data["system"]["rid"])
self._abort_if_unique_id_configured()
return self.async_create_entry(
title=data["system"]["name"],
data=user_input,
)
return self.async_show_form(
step_id="user",
data_schema=ADVANTAGE_AIR_SCHEMA,
errors=errors,
)

View File

@@ -0,0 +1,7 @@
"""Constants used by Advantage Air integration."""
DOMAIN = "advantage_air"
ADVANTAGE_AIR_RETRY = 5
ADVANTAGE_AIR_STATE_OPEN = "open"
ADVANTAGE_AIR_STATE_CLOSE = "close"
ADVANTAGE_AIR_STATE_ON = "on"
ADVANTAGE_AIR_STATE_OFF = "off"

View File

@@ -0,0 +1,116 @@
"""Cover platform for Advantage Air integration."""
from homeassistant.components.cover import (
ATTR_POSITION,
DEVICE_CLASS_DAMPER,
SUPPORT_CLOSE,
SUPPORT_OPEN,
SUPPORT_SET_POSITION,
CoverEntity,
)
from .const import (
ADVANTAGE_AIR_STATE_CLOSE,
ADVANTAGE_AIR_STATE_OPEN,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
PARALLEL_UPDATES = 0
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir cover platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
for zone_key, zone in ac_device["zones"].items():
# Only add zone vent controls when zone in vent control mode.
if zone["type"] == 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
async_add_entities(entities)
class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
"""Advantage Air Cover Class."""
@property
def name(self):
"""Return the name."""
return f'{self._zone["name"]}'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-{self.zone_key}'
@property
def device_class(self):
"""Return the device class of the vent."""
return DEVICE_CLASS_DAMPER
@property
def supported_features(self):
"""Return the supported features."""
return SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_SET_POSITION
@property
def is_closed(self):
"""Return if vent is fully closed."""
return self._zone["state"] == ADVANTAGE_AIR_STATE_CLOSE
@property
def current_cover_position(self):
"""Return vents current position as a percentage."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return self._zone["value"]
return 0
async def async_open_cover(self, **kwargs):
"""Fully open zone vent."""
await self.async_change(
{
self.ac_key: {
"zones": {
self.zone_key: {"state": ADVANTAGE_AIR_STATE_OPEN, "value": 100}
}
}
}
)
async def async_close_cover(self, **kwargs):
"""Fully close zone vent."""
await self.async_change(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
}
}
)
async def async_set_cover_position(self, **kwargs):
"""Change vent position."""
position = round(kwargs[ATTR_POSITION] / 5) * 5
if position == 0:
await self.async_change(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
}
}
)
else:
await self.async_change(
{
self.ac_key: {
"zones": {
self.zone_key: {
"state": ADVANTAGE_AIR_STATE_OPEN,
"value": position,
}
}
}
}
)

View File

@@ -0,0 +1,35 @@
"""Advantage Air parent entity class."""
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
class AdvantageAirEntity(CoordinatorEntity):
"""Parent class for Advantage Air Entities."""
def __init__(self, instance, ac_key, zone_key=None):
"""Initialize common aspects of an Advantage Air sensor."""
super().__init__(instance["coordinator"])
self.async_change = instance["async_change"]
self.ac_key = ac_key
self.zone_key = zone_key
@property
def _ac(self):
return self.coordinator.data["aircons"][self.ac_key]["info"]
@property
def _zone(self):
return self.coordinator.data["aircons"][self.ac_key]["zones"][self.zone_key]
@property
def device_info(self):
"""Return parent device information."""
return {
"identifiers": {(DOMAIN, self.coordinator.data["system"]["rid"])},
"name": self.coordinator.data["system"]["name"],
"manufacturer": "Advantage Air",
"model": self.coordinator.data["system"]["sysType"],
"sw_version": self.coordinator.data["system"]["myAppRev"],
}

View File

@@ -0,0 +1,9 @@
{
"domain": "advantage_air",
"name": "Advantage Air",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/advantage_air",
"codeowners": ["@Bre77"],
"requirements": ["advantage_air==0.2.1"],
"quality_scale": "platinum"
}

View File

@@ -0,0 +1,152 @@
"""Sensor platform for Advantage Air integration."""
import voluptuous as vol
from homeassistant.const import PERCENTAGE
from homeassistant.helpers import config_validation as cv, entity_platform
from .const import ADVANTAGE_AIR_STATE_OPEN, DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
ADVANTAGE_AIR_SET_COUNTDOWN_VALUE = "minutes"
ADVANTAGE_AIR_SET_COUNTDOWN_UNIT = "min"
ADVANTAGE_AIR_SERVICE_SET_TIME_TO = "set_time_to"
PARALLEL_UPDATES = 0
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir sensor platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirTimeTo(instance, ac_key, "On"))
entities.append(AdvantageAirTimeTo(instance, ac_key, "Off"))
for zone_key, zone in ac_device["zones"].items():
# Only show damper sensors when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
# Only show wireless signal strength sensors when using wireless sensors
if zone["rssi"] > 0:
entities.append(AdvantageAirZoneSignal(instance, ac_key, zone_key))
async_add_entities(entities)
platform = entity_platform.current_platform.get()
platform.async_register_entity_service(
ADVANTAGE_AIR_SERVICE_SET_TIME_TO,
{vol.Required("minutes"): cv.positive_int},
"set_time_to",
)
class AdvantageAirTimeTo(AdvantageAirEntity):
"""Representation of Advantage Air timer control."""
def __init__(self, instance, ac_key, action):
"""Initialize the Advantage Air timer control."""
super().__init__(instance, ac_key)
self.action = action
self._time_key = f"countDownTo{self.action}"
@property
def name(self):
"""Return the name."""
return f'{self._ac["name"]} Time To {self.action}'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-timeto{self.action}'
@property
def state(self):
"""Return the current value."""
return self._ac[self._time_key]
@property
def unit_of_measurement(self):
"""Return the unit of measurement."""
return ADVANTAGE_AIR_SET_COUNTDOWN_UNIT
@property
def icon(self):
"""Return a representative icon of the timer."""
if self._ac[self._time_key] > 0:
return "mdi:timer-outline"
return "mdi:timer-off-outline"
async def set_time_to(self, **kwargs):
"""Set the timer value."""
value = min(720, max(0, int(kwargs[ADVANTAGE_AIR_SET_COUNTDOWN_VALUE])))
await self.async_change({self.ac_key: {"info": {self._time_key: value}}})
class AdvantageAirZoneVent(AdvantageAirEntity):
"""Representation of Advantage Air Zone Vent Sensor."""
@property
def name(self):
"""Return the name."""
return f'{self._zone["name"]} Vent'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-{self.zone_key}-vent'
@property
def state(self):
"""Return the current value of the air vent."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return self._zone["value"]
return 0
@property
def unit_of_measurement(self):
"""Return the percent sign."""
return PERCENTAGE
@property
def icon(self):
"""Return a representative icon."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return "mdi:fan"
return "mdi:fan-off"
class AdvantageAirZoneSignal(AdvantageAirEntity):
"""Representation of Advantage Air Zone wireless signal sensor."""
@property
def name(self):
"""Return the name."""
return f'{self._zone["name"]} Signal'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-{self.zone_key}-signal'
@property
def state(self):
"""Return the current value of the wireless signal."""
return self._zone["rssi"]
@property
def unit_of_measurement(self):
"""Return the percent sign."""
return PERCENTAGE
@property
def icon(self):
"""Return a representative icon."""
if self._zone["rssi"] >= 80:
return "mdi:wifi-strength-4"
if self._zone["rssi"] >= 60:
return "mdi:wifi-strength-3"
if self._zone["rssi"] >= 40:
return "mdi:wifi-strength-2"
if self._zone["rssi"] >= 20:
return "mdi:wifi-strength-1"
return "mdi:wifi-strength-outline"

View File

@@ -0,0 +1,9 @@
set_time_to:
description: Control timers to turn the system on or off after a set number of minutes
fields:
entity_id:
description: Time To sensor entity
example: "sensor.ac_time_to_on"
minutes:
description: Minutes until action
example: "60"

View File

@@ -0,0 +1,22 @@
{
"config": {
"flow_title": "Advantage Air Setup",
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"step": {
"user": {
"data": {
"ip_address": "[%key:common::config_flow::data::ip%]",
"port": "[%key:common::config_flow::data::port%]"
},
"description": "Connect to the API of your Advantage Air wall mounted tablet.",
"title": "Connect"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,58 @@
"""Switch platform for Advantage Air integration."""
from homeassistant.helpers.entity import ToggleEntity
from .const import (
ADVANTAGE_AIR_STATE_OFF,
ADVANTAGE_AIR_STATE_ON,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up AdvantageAir toggle platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
if ac_device["info"]["freshAirStatus"] != "none":
entities.append(AdvantageAirFreshAir(instance, ac_key))
async_add_entities(entities)
class AdvantageAirFreshAir(AdvantageAirEntity, ToggleEntity):
"""Representation of Advantage Air fresh air control."""
@property
def name(self):
"""Return the name."""
return f'{self._ac["name"]} Fresh Air'
@property
def unique_id(self):
"""Return a unique id."""
return f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-freshair'
@property
def is_on(self):
"""Return the fresh air status."""
return self._ac["freshAirStatus"] == ADVANTAGE_AIR_STATE_ON
@property
def icon(self):
"""Return a representative icon of the fresh air switch."""
return "mdi:air-filter"
async def async_turn_on(self, **kwargs):
"""Turn fresh air on."""
await self.async_change(
{self.ac_key: {"info": {"freshAirStatus": ADVANTAGE_AIR_STATE_ON}}}
)
async def async_turn_off(self, **kwargs):
"""Turn fresh air off."""
await self.async_change(
{self.ac_key: {"info": {"freshAirStatus": ADVANTAGE_AIR_STATE_OFF}}}
)

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "El dispositiu ja est\u00e0 configurat"
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3"
},
"flow_title": "Configuraci\u00f3 d'Advantage Air",
"step": {
"user": {
"data": {
"ip_address": "Adre\u00e7a IP",
"port": "Port"
},
"description": "Connecta't a l'API de la tauleta d'Advantage Air.",
"title": "Connecta"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Za\u0159\u00edzen\u00ed je ji\u017e nastaveno"
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit"
},
"flow_title": "Nastaven\u00ed Advantage Air",
"step": {
"user": {
"data": {
"ip_address": "IP adresa",
"port": "Port"
},
"title": "P\u0159ipojit"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,13 @@
{
"config": {
"step": {
"user": {
"data": {
"ip_address": "IP Adresse",
"port": "Port"
},
"title": "Verbinden"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Device is already configured"
},
"error": {
"cannot_connect": "Failed to connect"
},
"flow_title": "Advantage Air Setup",
"step": {
"user": {
"data": {
"ip_address": "IP Address",
"port": "Port"
},
"description": "Connect to the API of your Advantage Air wall mounted tablet.",
"title": "Connect"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado"
},
"error": {
"cannot_connect": "No se pudo conectar"
},
"flow_title": "Configuraci\u00f3n de Advantage Air",
"step": {
"user": {
"data": {
"ip_address": "Direcci\u00f3n IP",
"port": "Puerto"
},
"description": "Con\u00e9ctate a la API de tu tableta de pared Advantage Air.",
"title": "Conectar"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Seade on juba h\u00e4\u00e4lestatud"
},
"error": {
"cannot_connect": "\u00dchendus nurjus"
},
"flow_title": "Advantage Air-i seadistamine",
"step": {
"user": {
"data": {
"ip_address": "IP aadress",
"port": ""
},
"description": "\u00dchendu oma Advantage Air seinale paigaldatud tahvelarvuti API-ga.",
"title": "\u00dchenda"
}
}
},
"title": ""
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Il dispositivo \u00e8 gi\u00e0 configurato"
},
"error": {
"cannot_connect": "Impossibile connettersi"
},
"flow_title": "Configurazione di Advantage Air",
"step": {
"user": {
"data": {
"ip_address": "Indirizzo IP",
"port": "Porta"
},
"description": "Connettiti all'API del tablet montato a parete di Advantage Air.",
"title": "Connetti"
}
}
},
"title": "Advantage Air"
}

View File

@@ -0,0 +1,13 @@
{
"config": {
"step": {
"user": {
"data": {
"port": "Poort"
},
"title": "Verbind"
}
}
},
"title": "Advantage Air"
}

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