Compare commits

..

873 Commits

Author SHA1 Message Date
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
Franck Nijhof 55958bcfb7 Merge pull request #41406 from home-assistant/rc 2020-10-07 17:50:57 +02:00
Franck Nijhof cde6400482 Bumped version to 0.116.0 2020-10-07 17:10:04 +02:00
Paulus Schoutsen d2077acc92 Warn when using Python 3.7 (#41400) 2020-10-07 17:07:27 +02:00
Martin Hjelmare f4991794d4 Revert zoneminder config flow (#41395) 2020-10-07 17:05:46 +02:00
Paulus Schoutsen 088fb7eff3 Reduce Somfy polling (#41389) 2020-10-07 17:00:59 +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
Glenn Waters c3e679f69b Fix elkm1 changed by (#41378) 2020-10-07 13:14:03 +02:00
Alexei Chetroi aa8e336af5 Bump up zha dependency to 0.26.0 (#41371) 2020-10-07 13:14:00 +02:00
Paulus Schoutsen ac87c0eea2 Add additionalAttributes to Alexa discovery payload (#41370) 2020-10-07 13:13:56 +02:00
Quentame 281456b252 Set longer timeout during synology_dsm config flow (#41364) 2020-10-07 13:13:48 +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
4321 changed files with 63779 additions and 28325 deletions
+21 -11
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
@@ -1050,11 +1062,9 @@ omit =
homeassistant/components/zhong_hong/climate.py
homeassistant/components/xbee/*
homeassistant/components/ziggo_mediabox_xl/media_player.py
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
+1 -1
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",
+1 -1
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
+13 -13
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
+1 -1
View File
@@ -88,7 +88,7 @@ venv
.venv
Pipfile*
share/*
Scripts/
/Scripts/
# vimmy stuff
*.swp
+3 -3
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)$
+13 -10
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,12 +510,12 @@ 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
homeassistant/components/zone/* @home-assistant/core
homeassistant/components/zoneminder/* @rohankapoorcom @vangorra
homeassistant/components/zoneminder/* @rohankapoorcom
homeassistant/components/zwave/* @home-assistant/z-wave
# Individual files
+3 -3
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.
+4 -4
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)"
+5 -5
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

+1 -1
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>
-2
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]
@@ -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):
-3
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."""
@@ -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],
+3 -4
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%]"
}
}
}
@@ -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": {
@@ -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"
}
@@ -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"
}
}
}
@@ -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": {
@@ -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"
}
@@ -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"
}
}
}
}
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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."
@@ -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"
}
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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%]"
}
}
},
@@ -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"
@@ -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"
}
}
}
@@ -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"
@@ -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"
@@ -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)."
},
@@ -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"
@@ -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"
@@ -0,0 +1,12 @@
{
"config": {
"step": {
"user": {
"data": {
"longitude": "Lengtegraad",
"name": "Naam"
}
}
}
}
}
@@ -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": ""
@@ -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"
}
}
@@ -0,0 +1,8 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "Fallande",
"rising": "Stigande"
}
}
}
@@ -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"
@@ -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])
+2 -2
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%]"
}
}
}
}
@@ -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": {
@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"no_devices_found": "V s\u00edti nebyla nalezena \u017e\u00e1dn\u00e1 za\u0159\u00edzen\u00ed"
}
}
}
@@ -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": {
@@ -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": {
@@ -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": ""
}
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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": {
@@ -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(
@@ -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
@@ -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%]"
}
}
}
@@ -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."
}
@@ -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"
}
}
}
@@ -0,0 +1,7 @@
{
"config": {
"error": {
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2"
}
}
}
@@ -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."
}
@@ -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": {
@@ -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."
}
}
}
}
@@ -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": {
@@ -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."
}
@@ -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": {
@@ -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"
@@ -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."
}
@@ -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."
}
@@ -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."
}
@@ -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": {
@@ -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"
}
@@ -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(
{
-4
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"
-3
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(
{
-4
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(
{
-4
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(
@@ -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
@@ -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"]
@@ -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}}}}
)
@@ -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,
)
@@ -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"
@@ -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,
}
}
}
}
)
@@ -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"],
}
@@ -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"
}
@@ -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"
@@ -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"
@@ -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"
}
@@ -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}}}
)
@@ -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"
}
@@ -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"
}
@@ -0,0 +1,13 @@
{
"config": {
"step": {
"user": {
"data": {
"ip_address": "IP Adresse",
"port": "Port"
},
"title": "Verbinden"
}
}
}
}
@@ -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"
}
@@ -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"
}
@@ -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": ""
}
@@ -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"
}
@@ -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