Compare commits

...

353 Commits

Author SHA1 Message Date
Franck Nijhof
bb1ebae5cb Merge pull request #44881 from home-assistant/rc 2021-01-06 17:37:48 +01:00
Franck Nijhof
57d119a7fe Revert "Bump pypck to 0.7.8" (#44884)
This reverts commit addafd517f.
2021-01-06 16:49:02 +01:00
Franck Nijhof
9c478e8de7 Bumped version to 2021.1.0 2021-01-06 16:03:04 +01:00
treylok
9d03b56c5c Bump python-ecobee-api to 0.2.8 (#44866) 2021-01-06 14:26:32 +01:00
jjlawren
b6d323b008 Fix Plex media summary attribute (#44863) 2021-01-06 14:26:28 +01:00
Martin Hjelmare
88eac0be85 Bump pytradfri to 7.0.6 (#44661) 2021-01-06 14:26:19 +01:00
Franck Nijhof
c258c2653f Bumped version to 2021.1.0b3 2021-01-05 23:31:18 +01:00
Bram Kragten
587676f436 Update frontend to 20201229.1 (#44861) 2021-01-05 23:31:00 +01:00
Franck Nijhof
2ee50a4d54 Fix Canary doing I/O in event loop (#44854) 2021-01-05 23:30:55 +01:00
Finbarr Brady
fdce5878c6 Bump openwebifpy version: 3.1.6 → 3.2.7 (#44847) 2021-01-05 23:30:51 +01:00
Paulus Schoutsen
0b8251d9a1 Make Alexa custom ID unique (#44839)
* Make Alexa custom ID unique

* Lint

* Lint
2021-01-05 23:30:48 +01:00
Andre Lengwenus
e4a84bb1c3 Bump pypck to 0.7.8 (#44834) 2021-01-05 23:30:44 +01:00
TheJulianJES
9396d9db5f Implement color mode for ZHA light polling (#44829) 2021-01-05 23:30:41 +01:00
J. Nick Koston
b3fda469cf Fix zeroconf outgoing dns compression corruption for large packets (#44828) 2021-01-05 23:30:37 +01:00
Franck Nijhof
e4fcc9c692 Bumped version to 2021.1.0b2 2021-01-04 13:17:44 +01:00
Matthias Alphart
5f91f14a49 Fix knx.send service not accepting floats (#44802) 2021-01-04 13:17:02 +01:00
Bob Matcuk
f42ce2b0d1 Fix bug with blink auth flow (#44769) 2021-01-04 13:16:59 +01:00
Pascal Vizeli
506fdc877a Update docker base image 2021.01.0 (#44761) 2021-01-04 13:16:55 +01:00
J. Nick Koston
f33c1332b9 Add index to old_state_id column for postgres and older databases (#44757)
* Add index to old_state_id column for older databases

The schema was updated in #43610 but the index was not
added on migration.

* Handle postgresql missing ondelete

* create index first
2021-01-04 13:16:52 +01:00
Maciej Bieniek
8da79479d3 Change rest sensors update interval for Shelly Motion (#44692)
* Change rest sensors update interval for Shelly Motion

* Cleaning

* Fix typo

* Remove unnecessary parentheses
2021-01-04 13:16:46 +01:00
Paulus Schoutsen
92e354ca38 Guard unbound var for DSMR (#44673) 2021-01-04 13:16:40 +01:00
Franck Nijhof
79aad3f07b Bumped version to 2021.1.0b1 2021-01-01 21:14:18 +01:00
Robert Svensson
e781e1b26c Bump H11 library to support non RFC line endings (#44735) 2021-01-01 21:13:43 +01:00
J. Nick Koston
c60390a52a Fix templates for rest notify (#44724) 2021-01-01 21:13:40 +01:00
J. Nick Koston
af1d46aa6c Fix rest notify GET without params configured (#44723) 2021-01-01 21:13:36 +01:00
J. Nick Koston
6d33f6a115 Fix script wait templates with now/utcnow (#44717) 2021-01-01 21:13:32 +01:00
Allen Porter
39b9821d29 Fix broken test test_auto_purge in recorder (#44687)
* Fix failing test due to edge-of-2021 bug

* Rewrite test_auto_purge to make the intent more clear
2021-01-01 21:13:28 +01:00
Alexei Chetroi
864546201e Bump up ZHA dependencies (#44680)
- zigpy == 0.29.0
- zigpy_deconz == 0.11.1
- zha-quirks == 0.0.51
2021-01-01 21:13:25 +01:00
Paulus Schoutsen
1c2e4226dc Zeroconf lowercase (#44675) 2021-01-01 21:13:21 +01:00
Allen Porter
34a6b4deb0 Fix legacy nest api binary_sensor initialization (#44674) 2021-01-01 21:13:18 +01:00
Paulus Schoutsen
2b1df2e63f Catch Shelly zeroconf types with uppercase too (#44672)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-01-01 21:13:14 +01:00
Diogo Gomes
610ee24bb1 always sync unit_of_measurement (#44670) 2021-01-01 21:13:10 +01:00
Daniel Lintott
3cd97398aa Bump zm-py version to 0.5.2 (#44658) 2021-01-01 21:13:07 +01:00
David F. Mulcahey
7d99a35547 Bump ZHA quirks version to 0.0.50 (#44650) 2021-01-01 21:13:04 +01:00
Mark Allanson
470fe887a5 Upgrade canary integration to use py-canary 0.5.1 (#44645)
Fixes #35569
2021-01-01 21:13:00 +01:00
Sian
1b26f6e8e0 Correct Dyson climate fan auto mode (#44569)
Co-authored-by: Justin Gauthier <justin@justin-tech.com>
2021-01-01 21:12:56 +01:00
Maciej Bieniek
8a689a0105 Add motion binary sensor (#44445) 2021-01-01 21:12:52 +01:00
Raman Gupta
e65903822d Suppress vizio logging API call failures to prevent no-op logs (#44388) 2021-01-01 21:12:48 +01:00
J. Nick Koston
335aceedfb Update py-august to 0.25.2 to fix august token refreshes (#40109)
* Update py-august to 0.26.0 to fix august token refreshes

* bump version
2021-01-01 21:12:44 +01:00
Franck Nijhof
4b5056a456 Bumped version to 2021.1.0b0 2020-12-30 12:18:22 +01:00
Fabian Affolter
6e5e45b937 Upgrade youtube_dl to 2020.12.29 (#44643) 2020-12-30 11:24:00 +01:00
Franck Nijhof
222c5b532c Merge branch 'master' into dev 2020-12-30 10:59:49 +01:00
Franck Nijhof
e670a8f3b6 Merge pull request #44642 from home-assistant/rc 2020-12-30 10:45:15 +01:00
Simone Chemelli
338938a38e Fix shelly shutdown AttributeError (#44172)
* Additional check for clean shutdown

* Changed approach

* Remover leftover

* Added callback key

* Moved to listen once
2020-12-30 10:29:54 +01:00
Allen Porter
baacf2cd7d Publish timestamps in nest events (#44641) 2020-12-30 10:23:48 +01:00
Fabian Affolter
a212248f8d Upgrade psutil to 5.8.0 (#44640) 2020-12-30 10:22:09 +01:00
Franck Nijhof
d1ad474a8d Bumped version to 2020.12.2 2020-12-30 10:17:56 +01:00
Phil Cole
af4849c183 Bump pycarwings2 to 2.10 (#44634) 2020-12-30 10:17:02 +01:00
michaeldavie
19531b90a3 Bump env_canada to 0.2.5 (#44631) 2020-12-30 10:16:58 +01:00
J. Nick Koston
62f8d6cc04 Fix template triggers from time events (#44603)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-30 10:16:55 +01:00
Erik Montnemery
99d7c83917 Fix Tasmota device triggers (#44574) 2020-12-30 10:16:52 +01:00
Robert Svensson
59c20686c1 Bump pydeconz to version 77 (#44514) 2020-12-30 10:16:48 +01:00
MatthewFlamm
78f81b6e37 Fix falsey comparisons in NWS weather (#44486) 2020-12-30 10:16:44 +01:00
On Freund
a58219bbc7 Fix Volumio pause with missing track type (#44447) 2020-12-30 10:16:41 +01:00
Aaron Bach
f76211d58a Fix bug in unloading RainMachine options listener (#44359)
* Fix bug in unloading RainMachine options listener

* Order
2020-12-30 10:16:38 +01:00
Aaron Bach
0cac5b7cb3 Bump pyiqvia to 0.3.1 (#44358) 2020-12-30 10:16:35 +01:00
rubenbe
89168dd372 Update pytradfri to 7.0.5 (#44347) 2020-12-30 10:16:32 +01:00
ehendrix23
9c5dba6a24 Bump pyMyQ to version 2.0.12 (#44328) 2020-12-30 10:16:29 +01:00
Jc2k
2be5547c57 Fix velux homekit covers not enumerated correctly (#44318) 2020-12-30 10:16:25 +01:00
Greg Dowling
8394685493 Bump pyroon to 0.0.28 (#44302) 2020-12-30 10:16:21 +01:00
Oliver
c8bb6eb3bf Update denonavr to 0.9.8 (#44194) 2020-12-30 10:16:18 +01:00
J. Nick Koston
217e3c44d6 Bump HAP-python to 3.1.0 (#44176)
Fixes many spec compliance issues, unavailable cases
following an unexpected exception, and a thread safety
race condition.
2020-12-30 10:16:13 +01:00
Allen Porter
eb07282e9b Add debug logging for failed OAuth token refreshes to help users diagnose (#44637) 2020-12-30 10:03:27 +01:00
Franck Nijhof
ee194b9411 Initial Verisure cleanups (#44639) 2020-12-30 09:55:18 +01:00
Phil Cole
9cc768b34c Bump pycarwings2 to 2.10 (#44634) 2020-12-30 09:44:44 +01:00
Chris Talkington
12aa537eb9 Support homekit discovery for roku (#44625)
* support homekit discovery for roku

* Update config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update __init__.py

* Update __init__.py

* Update strings.json

* Update manifest.json

* Update __init__.py

* Update test_config_flow.py

* Update __init__.py

* Update manifest.json

* Update config_flow.py

* Update config_flow.py

* Update __init__.py

* Update test_config_flow.py

* Update __init__.py

* Update manifest.json

* Update __init__.py

* Update zeroconf.py

* Update config_flow.py

* Update test_config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update __init__.py

* Update config_flow.py

* Update test_config_flow.py

* Update manifest.json

* Update zeroconf.py
2020-12-29 20:43:02 -06:00
michaeldavie
35a19a4d02 Bump env_canada to 0.2.5 (#44631) 2020-12-30 02:54:04 +01:00
Matt Bilodeau
a750c95d2e Add OutdoorPlug to wemo (#44629) 2020-12-30 02:43:44 +01:00
Bram Kragten
62237adf91 Updated frontend to 20201229.0 (#44632) 2020-12-30 00:19:38 +01:00
J. Nick Koston
035f9412ba Fix template triggers from time events (#44603)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-29 23:16:39 +01:00
starkillerOG
e287160f72 Add discovery to Motion Blinds (#44615)
* Add discovery to Motion Blinds

* Update test_config_flow.py

* ommit keys()

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

* use _ to indicate private variables

* disregard changes to en.json

* remove unused errors

* clearify multicast=None

* improve tests

* make self._key a local variable

* fix styling

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2020-12-29 11:13:31 -08:00
Mister Wil
85d89c16ab Bump skybellpy to 0.6.3 (#44619) 2020-12-29 17:48:36 +01:00
starkillerOG
24f6f59eb4 Use entity service for motion blinds (#44611)
* Simplify motion blinds service
* Switch to using entity service
2020-12-29 07:21:51 -08:00
J. Nick Koston
4905be0c40 Move HomeKit autostart to advanced options flow (#44599) 2020-12-29 13:54:24 +01:00
Tsvi Mostovicz
c756457aa1 Fix typo in sensor names (#44598)
Fixes home-assistant/core#44464
2020-12-29 13:40:52 +01:00
starkillerOG
598202da07 Simplify motion blinds push callback (#44579) 2020-12-29 12:11:08 +01:00
rikroe
e5f31665b1 Add Config Flow to bmw_connected_drive (#39585)
* Add Config Flow to bmw_connected_drive

* Fix checks for bmw_connected_drive

* Adjust code as requested

* Clean .coveragerc after merge

* Use references for config flow

* Fix execute_service check against allowed accounts

* Adjust translation as username can be email or phone no

* Add BMWConnectedDriveBaseEntity mixin, remove unnecessary type casts

* Use BaseEntity correctly, fix pylint error

* Bump bimmer_connected to 0.7.13

* Adjustments for review

* Fix pylint

* Fix loading notify, move vin to entity attrs

* Remove vin from device registry

* Remove commented-out code

* Show tracker warning only if vehicle (currently) doesn't support location

* Remove unnecessary return values & other small adjustments

* Move original hass_config to own domain in hass.data

* Move entries to separate dict in hass.data

* Remove invalid_auth exception handling & test as it cannot happen

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2020-12-29 11:06:12 +01:00
Greg
5164a18d53 Bump version to fix returned data for old firmware (#44600) 2020-12-28 15:13:11 -10:00
Greg
a5cd4efd83 Optimize api calls between envoy_reader and Home Assistant (#42857)
* Updating sensor to use single API call

* Updated comment

Updated comment to reflect that polling is needed.

* Reduced calls to single API call

* Added except handling and increased async timeout

* Cleaned up some comments

* Added error handling

* Added last_reported date for inverters

* Added message during failed update

* Added retries to update function

* Updated update function

* Reformatted sensor.py with black

* Increased default scan period

* fixed timedelta typo

* importing CoordinatorEntity

* Check during setup else raise PlatformNotReady

* Removed async_update and override state

* using SCAN_INTERVAL constant

* fixed typo

* removed unused constant

* Removed retry logic

* Changed to catching exceptions rather than strings

* shortened string split line

* Replace requests_async with httpx

* Bump envoy_reader version to 0.17.2

* Resolving comments from PR requested changes

* Fixed typo in scan_interval

* Removed period from logging messages

* Bumping envoy_reader to 0.18.0

* Incorporating suggested changes

* Removing no longer used try/except

* Fail setup if authentication fails

* Bump envoy_reader to 0.18.2
2020-12-28 23:58:09 +01:00
mvn23
0d8ed9061c Update pyotgw to 1.0b1 (#43352)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-28 23:04:17 +01:00
Clifford Roche
ee97023053 Add support for Gree device light panels (#42979) 2020-12-28 22:32:04 +01:00
starkillerOG
a22d9e54db Improve TDBU motion blinds control (#44500)
* improve TDBU motion blinds control

* Simplify service registration
2020-12-28 13:09:53 -08:00
TheJulianJES
0bc04a6501 Reset hs color/color temperature when changing the other one (ZHA) (#44566) 2020-12-28 14:05:15 -05:00
Philip Allgaier
392c058d34 Ensure consistent spelling of "ID" (#44585) 2020-12-28 18:34:08 +01:00
Anton Tolchanov
13d6f5454d Turn on denonavr receiver when a source is changed (#44473) 2020-12-28 18:12:49 +01:00
badguy99
d95696e4f5 Soma cover battery level attribute (#44459) 2020-12-28 17:10:49 +01:00
Álvaro Fernández Rojas
50e11773ee Tado: use proper variable name to avoid confusion (#44571)
Current device_id variable refers to the Home ID obtained from the Tado API.
Let's use home_id in order to avoid confusion with Tado devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-28 14:57:51 +01:00
Erik Montnemery
ed576edde7 Fix Tasmota device triggers (#44574) 2020-12-28 14:41:39 +01:00
Allen Porter
71af0fac16 Improve nest setup error handling (#44385)
* Improve error handling user experience

This is meant to make the nest integration quieter.  Exceptions are handled with a single log error message.


Co-authored-by: j-stienstra <65826735+j-stienstra@users.noreply.github.com>
2020-12-27 20:30:51 -08:00
Álvaro Fernández Rojas
6d043f2ca1 Tado: add full list of devices (#44475)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-27 16:36:35 +01:00
Allen Porter
51b88337ca Simplify nest event handling (#44367)
* Simplify nest event handling

Use device specific update callbacks rather than a global callback.
The motivation is to prepare for a follow up change that will store
camera specific event tokens on the camera itself, so that a service
can later fetch event specific image snapshots, which would be difficult
to send across the event bus.

* Increase nest camera test coverage

* Remove unnecessary device updates for nest cameras

* Remove unused imports

* Fix device id check to look at returned entry

* Remove unused imports after rebase

* Partial revert of nest event simplification

* Push more update logic into the nest library

* Revert nest device_info changes

* Revert test changes to restore global update behavior

* Bump nest library version to support new callback interfaces
2020-12-27 09:49:22 +01:00
Rob Bierbooms
9531b08f2a Add explicit support for Luxembourg Smarty meter in dsmr integration (#43975)
* Add support for Luxembourg Smarty meter

* Add config flow test

* Add sensor tests
2020-12-27 09:39:36 +01:00
Tim van Cann
1f27fb4644 Fully remove Avri integration (#44478)
* Fully remove Avri integration

* Remove avri from .coveragerc
2020-12-27 09:30:20 +01:00
aque0us
71c9007e06 Add Olivia voice to Amazon Polly TTS (#44513)
* Update tts.py

Added Olivia Neural Voice

* Correct linting

Co-authored-by: Joakim Plate <elupus@ecce.se>
2020-12-27 08:32:22 +01:00
Robert Svensson
49d9823630 Bump pydeconz to version 77 (#44514) 2020-12-26 22:24:05 +01:00
Martin Weinelt
f8df8b6b19 Add album art support in the mpd component (#44527)
* Add album art support in the mpd component

Uses `readpicture` to retrieve embedded artwork and `albumart` to
acquire cover art located in the media directory.

As the mpd component supports multiple different implementations (think
mopidy, PI MusicBox, etc.) we check for the availability of each command
before using them.

Tested against mpd 0.22.3, which includes support for both.

* fixup! Add album art support in the mpd component
2020-12-26 22:18:28 +01:00
MatthewFlamm
f8ab98d2e1 Fix falsey comparisons in NWS weather (#44486) 2020-12-26 13:53:34 +01:00
Ville Skyttä
cfb02b5392 Upgrade huawei-lte-api to 1.4.17 (#44499)
Mostly to pave way for implementing network connection mode change
services, such as PR #44380.

https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.13
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.14
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.15
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.16
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.17
2020-12-26 12:49:44 +01:00
Hmmbob
3a71b62de6 Update README.rst to avoid redirects (#44519) 2020-12-26 10:05:41 +01:00
Thibaut
dc79d71f39 Handle missing Somfy devices during update (#44425)
* Handle missing devices during update

* Raise error only if there was devices previously

* Not final dot

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2020-12-25 22:29:23 +01:00
Martin Weinelt
fa69daf5b3 Convert mpd component to use the async MPDClient (#44384)
Upgrades python-mpd2 to 3.0.1.
2020-12-25 21:49:30 +01:00
Matt Bilodeau
adf4eb0cc9 Bump pywemo to 0.5.6 (#44440) 2020-12-25 16:37:30 +01:00
Nick
9a5132054f Support auto as Dyson fan on device state (#44472)
* - Make the dyson integration report that the fan is on if its in AUTO or FAN states instead of only in FAN state

* - Fix code style issue to be compliant with flake8
2020-12-25 14:49:14 +01:00
HomeAssistant Azure
6f2ed86c49 [ci skip] Translation update 2020-12-25 00:03:46 +00:00
Thibaut
19b957cd84 Remove useless async_add_executor_job (#44496) 2020-12-24 20:42:56 +01:00
Tomasz Pieczykolan
d385a51653 Fix the docstring in type_fans.py (#44511) 2020-12-24 20:40:30 +01:00
Eric Severance
d912e91e81 Periodically attempt to discover new wemo devices (#44361)
* Periodically attempt to discover new wemo devices

* Set self._stop=None after stopping the periodic discovery task

* Use the async_fire_time_changed test helper to simplify test_discovery

* Stop the pywemo registry outside of the async loop

* Add a comment describing why async_fire_time_changed is used
2020-12-24 12:25:14 +01:00
J. Nick Koston
677fc6e2bb Translate siri requests to turn on thermostats to valid targets (#44236)
Siri always requests auto mode even when the device does not
support auto which results in the thermostat failing to turn
on as success is assumed.  We now determine the heat cool
target mode based on the current temp, target temp, and
supported modes to ensure the thermostat will reach the
requested target temp.
2020-12-23 17:23:26 -10:00
Diogo Gomes
2d131823ce Fix filter sensor None state (#44439)
Co-authored-by: Franck Nijhof <frenck@frenck.dev>
2020-12-24 02:24:11 +01:00
HomeAssistant Azure
6b743c3d16 [ci skip] Translation update 2020-12-24 00:03:44 +00:00
starkillerOG
82f9de31b1 Motion Blinds upgrade to local push (#44391)
* Motion Blinds upgrade to local push
2020-12-23 15:15:11 -08:00
Dermot Duffy
769513d6a8 Bump hyperion-py to 0.6.1 (#44490) 2020-12-23 21:46:04 +01:00
HomeAssistant Azure
139fb518d6 [ci skip] Translation update 2020-12-23 00:03:22 +00:00
Allen Porter
24ccdb55bb Move Legacy Works With Nest integration to subdirectory (#44368)
* Move Legacy Works With Nest integration to subdirectory

Motivation is to streamline the actively developed integration e.g. make code coverage easier to reason about and simplify __init__.py
2020-12-22 12:42:37 -08:00
Ville Skyttä
9c5f608ffd Remove Travis CI config (#44443)
https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
https://docs.travis-ci.com/user/migrate/open-source-repository-migration/#frequently-asked-questions
2020-12-22 13:49:42 +01:00
dependabot[bot]
1027361f27 Bump codecov/codecov-action from v1.1.0 to v1.1.1 (#44442)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.1.0 to v1.1.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.1.0...1fc7722ded4708880a5aea49f2bfafb9336f0c8d)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-22 13:33:37 +01:00
PhiBo
ffbef0bcd1 Fix KNX issue if 0 kelvin is reported by device (#44392)
Co-authored-by: Matthias Alphart <farmio@alphart.net>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2020-12-22 13:28:37 +01:00
Matthias Alphart
67ed730c08 KNX BinarySensor takes float values for reset_after (#44446) 2020-12-22 12:39:50 +01:00
On Freund
d4453908d5 Fix Volumio pause with missing track type (#44447) 2020-12-22 12:32:56 +01:00
HomeAssistant Azure
2ee2f85574 [ci skip] Translation update 2020-12-22 00:06:12 +00:00
Joakim Plate
56b3e0b52e Support area on entities for google assistant (#44300)
* Support area on entities

* Don't let registry area override config
2020-12-21 21:55:06 +01:00
treylok
1ca99c4fa4 Add ecobee humidity attributes (#44366)
* Update humidity attributes.

* Update climate.py

* Raise ValueError

* Update conditions for humidity controls to show

Humidity controls only show when the humidifier mode is in "manual" mode.
2020-12-21 20:03:26 +01:00
Emily Mills
f89c682ea6 Cleanup and optimization for Zerproc (#44430)
* Cleanup and optimization for Zerproc

* Remove unnecessary extra method

* Add debug log for exceptions on disconnect
2020-12-21 12:50:31 -06:00
Oncleben31
bf253819dd Add additional debug launch methods in launch.json (#44419) 2020-12-21 17:11:53 +01:00
Diogo Gomes
cb82f5159e Reduce IPP errors when printer is offline (#44413) 2020-12-21 16:53:47 +01:00
Oliver
0b1791c293 Update denonavr to 0.9.9 (#44411) 2020-12-21 16:35:47 +01:00
dependabot[bot]
83794f0629 Bump actions/setup-python from v2.2.0 to v2.2.1 (#44420)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.2.0 to v2.2.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.2.0...3105fb18c05ddd93efea5f9e0bef7a03a6e9e7df)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-21 14:25:06 +01:00
Oncleben31
369cf10eb3 Bump meteofrance-api to 1.0.1 (#44389) 2020-12-21 13:49:53 +01:00
HomeAssistant Azure
f3cabe97e0 [ci skip] Translation update 2020-12-21 00:04:09 +00:00
Дубовик Максим
89fe232643 Add google cloud tts SSML + fix (#40203)
* Add SSML + fix

SSML option is added + pitch paramter fix + couple style code changes

* Remove redundant .get()

* Fix PITCH_SCHEMA, remove redundant .get of dict
2020-12-20 05:40:43 +01:00
JJdeVries
1ae3bb6af5 Add xiamoi_miio the water_box / mop status (#43355)
* Adding the water_box / mop status

* Clean up

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Teemu R. <tpr@iki.fi>
2020-12-20 05:13:52 +01:00
Arto Jantunen
5dc48df093 Add support for toggling Daikin streamers (#40418)
* pydaikin version bump to 2.4.0

Add support for controlling the streamer feature.

* Add switch for toggling Daikin streamer on and off

* Have DaikinStreamerSwitch inherit from SwitchEntity instead of ToggleEntity
2020-12-20 04:53:01 +01:00
Allen Porter
81341bbf91 Handle expiration of nest auth credentials (#44202)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-20 01:41:29 +01:00
HomeAssistant Azure
5bdf022bf2 [ci skip] Translation update 2020-12-20 00:04:36 +00:00
Sjack-Sch
00c0e9b8da Home connect functional and ambient light added (#44091)
* Update nl.json

* added period to end of every logging entry.

* Functional and ambient light added

* Change to dict.get method

* Update light.py

* Update __init__.py

Platforms sorted 🔡.

* Update api.py

- Removed all none light platform related changes.
- Period removed from loggin.
- Storing entities removed.
- Not needed formating change reverted.
-

* Update const.py

All words seperated with underscore.

* Update nl.json

Reverted change on translation file.

* Update light.py

-All words of constants seperated with underscore.
- f-string used iso concatenation.
- Added "ambient"to loggin text.
- Removed self._state = false when color setting did not succeed.
- Logging starts with a capital.

* Update api.py

- Removed ending perio in logging
- Reverted formating
- Removed self.device.entities.append(self)
-

* Update entity.py

- Removed self.device.entities.append(self)

* Update api.py

- Adding newline at end of file
- Added whitespave after ","

* Update api.py

Newline at end of file

* Update const.py

Removed unused.

* Update light.py

- seperated words with whitespaces
- improved debug text

* Update light.py

remove state setting after an error
2020-12-19 23:40:44 +01:00
Emily Mills
4f088dd77a Connect concurrently to discovered Zerproc lights (#44376)
* Connect concurrently to discovered Zerproc lights

* Add return type to connect_light

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-19 13:31:45 -06:00
Aaron Bach
60ecc8282c Add options flow for Recollect Waste (#44234)
* Add options flow for Recollect Waste

* Add test

* Typing

* Typing

* Typing AGAIN

* Add missing type hints

* Code review

* Code review

* Don't need to block until done
2020-12-19 10:29:37 -07:00
Aaron Bach
fbc695e5cf Fix setup of SimpliSafe options flow test (#44375) 2020-12-19 18:22:34 +01:00
eyager1
af6dd698c9 Set amazon polly network timeout settings (#44185)
* Change network timeout settings

* Change network timeout settings
2020-12-19 18:21:05 +01:00
Diogo Gomes
b7d4c1826c Add filter sensor device class from source entity (#44304)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-19 17:51:24 +01:00
Maciej Bieniek
ccbf857266 Clean Airly config flow (#44352) 2020-12-19 09:30:45 -07:00
Doug Hoffman
3ac9ead850 Bump venstarcolortouch to 0.13 (#44373) 2020-12-19 09:30:06 -07:00
Jeff Irion
a7513c9c13 Strip "adb shell " prefix in androidtv.adb_command service (#44225) 2020-12-19 16:52:44 +01:00
Emily Mills
9de393d116 Convert zerproc to use new upstream async api (#44357) 2020-12-19 09:35:47 -06:00
Abílio Costa
896f51fd82 Add Wind to Accuweather sensors (#44364) 2020-12-19 16:10:02 +01:00
Ville Skyttä
317ed418dd Use singleton enum for "not set" sentinels (#41990)
* Use singleton enum for "not set" sentinel

https://www.python.org/dev/peps/pep-0484/#support-for-singleton-types-in-unions

* Remove unused variable
2020-12-19 12:46:27 +01:00
Ville Skyttä
de04a1ed67 Enable more Bandit tests (#44307)
https://bandit.readthedocs.io/en/latest/plugins/index.html#complete-test-plugin-listing
2020-12-19 12:35:13 +01:00
HomeAssistant Azure
1ac937c7d5 [ci skip] Translation update 2020-12-19 00:03:56 +00:00
emufan
61c57d4d56 Add another xml content type for JSON conversion in RESTful sensor (#44312)
* Update sensor.py

Some xml-result is passed via "application/xhtml+xml" instead of text/xml or application/xml. And then the xml structure is not parsed to json as expected. I changed it locally, but suggest to add thise here as well.

* Update homeassistant/components/rest/sensor.py

Fine for me as well, as it is working this way as well. But I would not see any disadvantage to convert everything, what is possible - a better scrape sensor this way. ;)

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2020-12-18 14:27:12 -06:00
Brian Rogers
0fddaedc12 Adjust Rachio logging level when adding shared controllers (#44323)
* change logging level

* unnecessary continue

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-18 14:15:08 -06:00
Aaron Bach
14432248b0 Bump pyiqvia to 0.3.1 (#44358) 2020-12-18 21:12:16 +01:00
Heisenberg
ea578f5767 Update sensor.py (#44350)
BME280 sensor has a resolution of 0.01 degree (20 bits) so temperature values should be rounded to 2 decimal places
2020-12-18 12:29:16 -07:00
Aaron Bach
ae596c7dff Fix bug in unloading RainMachine options listener (#44359)
* Fix bug in unloading RainMachine options listener

* Order
2020-12-18 12:28:18 -07:00
dependabot[bot]
ad634a393b Bump actions/setup-python from v2.1.4 to v2.2.0 (#44345)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.1.4 to v2.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.1.4...8c5ea631b2b2d5d8840cf4a2b183a8a0edc1e40d)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 10:53:49 +01:00
dependabot[bot]
8adfb5dff4 Bump codecov/codecov-action from v1.0.15 to v1.1.0 (#44346)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.0.15 to v1.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1.0.15...7de43a7373de21874ae196a78f8eb633fcf7f0c4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 10:47:18 +01:00
ktnrg45
5b14c1da73 Bump pyps4-2ndscreen to 1.2.0 (#44273)
* Bump PS4 to 1.2.0

* Add additional media_player tests

* Fix tests
2020-12-18 08:46:59 +01:00
rubenbe
5c843a1597 Update pytradfri to 7.0.5 (#44347) 2020-12-18 08:37:32 +01:00
Dermot Duffy
8c8e607548 Alphabetize hyperion const.py (#44343) 2020-12-18 08:03:54 +01:00
HomeAssistant Azure
4bdb793a94 [ci skip] Translation update 2020-12-18 00:03:48 +00:00
Christopher Gramberg
c5fdde2a94 Convert filter tests to use pytest style (#41743) 2020-12-17 22:08:35 +01:00
mbo18
f54fcb7646 Add new sensors to meteo_france (#44150)
Co-authored-by: Thibaut <thibaut@etienne.pw>
2020-12-17 22:04:20 +01:00
Olivér Falvai
6ffa3c18b2 Upgrade Telegram lib, refactor component for breaking changes (#44147)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-17 21:09:58 +01:00
Aaron Bach
d18c9f1c74 Update ReCollect docs to use proper name (#44291) 2020-12-17 20:59:45 +01:00
Maciej Bieniek
97894bd718 Refactor Airly config flow (#44330) 2020-12-17 19:34:40 +01:00
ehendrix23
418304c702 Bump pyMyQ to version 2.0.12 (#44328) 2020-12-17 08:08:19 -10:00
Erik Montnemery
31b806ced1 Revert "Change http to auto for cast media image url" (#44327) 2020-12-17 17:43:52 +01:00
Jc2k
2b6842aee0 Fix velux homekit covers not enumerated correctly (#44318) 2020-12-17 17:12:06 +01:00
Dermot Duffy
c8e3b17362 Update quality_scale for Hyperion (#44306) 2020-12-17 17:01:22 +01:00
Pierre Ståhl
fe7109acf4 Add extended device info and some attributes to Apple TV (#44277) 2020-12-17 16:47:20 +01:00
Thibaut
524db33f13 Add Somfy battery sensor (#44311)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-17 16:46:22 +01:00
Maciej Bieniek
94e1f8e631 Refactor Airly tests (#44315) 2020-12-17 16:44:46 +01:00
Joakim Plate
7c63119ad2 Fix philips_js channel and source name entry (#44296) 2020-12-17 16:44:24 +01:00
Ben
63dfd8343d Increase surepetcare api timeout to 60s (#44316) 2020-12-17 13:20:18 +01:00
HomeAssistant Azure
d3255e63e3 [ci skip] Translation update 2020-12-17 00:02:51 +00:00
Greg Dowling
638374c36a Bump pyroon to 0.0.28 (#44302) 2020-12-17 00:01:39 +01:00
Paulus Schoutsen
735607c625 Bump version to 2021.1 (#44298) 2020-12-16 23:59:45 +01:00
Dermot Duffy
aaae452d58 Add reauth step to Hyperion config flow (#43797)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-16 23:55:31 +01:00
Santobert
d0ebc00684 Add OAuth to Neato (#44031)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-16 23:39:41 +01:00
Paulus Schoutsen
4ec81d4b67 Merge pull request #44297 from home-assistant/rc 2020-12-16 22:31:37 +01:00
Paulus Schoutsen
ac62028c19 Fix account link test 2020-12-16 20:55:52 +00:00
Paulus Schoutsen
ff9e1ddeed Bumped version to 2020.12.1 2020-12-16 20:29:55 +00:00
Shay Levy
3a82aecd38 Fix Shelly devices missing properties field (#44279) 2020-12-16 20:29:47 +00:00
Paulus Schoutsen
3a41878a8c Fix setting timestamp on input_datetime (#44274) 2020-12-16 20:29:46 +00:00
David F. Mulcahey
3ab0b63540 Default smartenergy multiplier and divisor (#44257) 2020-12-16 20:29:45 +00:00
Erik Montnemery
3752fa3123 Remove Home Assistant Cast user when removing entry (#44228)
* Remove Home Assistant Cast user when removing entry

* Fix test

* Fix test
2020-12-16 20:29:44 +00:00
Erik Montnemery
07df3b9565 Bump hatasmota to 0.1.6 (#44226) 2020-12-16 20:29:44 +00:00
Aaron Bach
43ef5bab18 Fix unhandled KeyError in Recollect Waste (#44224) 2020-12-16 20:29:43 +00:00
Rob Bierbooms
150ce05e26 Bump dsmr-parser to 0.25 (#44223)
* Bump version in manifest

* Update requirements_all.txt

* Update requirements_test_all.txt
2020-12-16 20:29:42 +00:00
Greg
70bd998d7c Bump envoy_reader version to 0.17.3 (#44205)
* Bump envoy_reader version to 0.17.0rc0

* Fixing version number
2020-12-16 20:29:41 +00:00
Shay Levy
fd24baa1f6 Fix Shelly devices missing properties field (#44279) 2020-12-16 21:28:59 +01:00
Erik Montnemery
36eebd92dd Bump pychromecast to 7.6.0 (#44289) 2020-12-16 18:29:57 +01:00
Geoffrey Lagaisse
295b1a91c3 Bump python-qbittorrent to 0.4.2 (#44268) 2020-12-16 15:53:01 +01:00
Paulus Schoutsen
4f9d5792ed Fix setting timestamp on input_datetime (#44274) 2020-12-16 11:18:50 +01:00
Erik Montnemery
dfde403937 Remove Home Assistant Cast user when removing entry (#44228)
* Remove Home Assistant Cast user when removing entry

* Fix test

* Fix test
2020-12-16 11:00:22 +01:00
HomeAssistant Azure
3bb996c5b4 [ci skip] Translation update 2020-12-16 00:03:31 +00:00
Shay Levy
4880a1d55a Change shelly CONNECTION_CLASS to CONN_CLASS_LOCAL_PUSH (#44260)
Shelly integration is using local push since HA 0.118
2020-12-15 19:25:14 +01:00
Erik Montnemery
0aa85b2321 Bump hatasmota to 0.1.6 (#44226) 2020-12-15 17:23:00 +01:00
David F. Mulcahey
e601f62416 Default smartenergy multiplier and divisor (#44257) 2020-12-15 10:44:28 -05:00
Tim Messerschmidt
a0ce541c0d Bump google-nest-sdm to 0.2.1 to support more SDM Pub/Sub realms (#44163) 2020-12-15 07:38:32 -08:00
Thibaut
03bfc3bcf0 Add Somfy climate platform (#43895)
* Add climate platform
* Upgrade pymfy to 0.9.3
2020-12-15 07:04:35 -08:00
Tobias Perschon
266f82ac76 Add send animation service to telegram (#41489)
* added telegram sendAnimation api call

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* more accurate service descriptions

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* added 3rd parse_mode to description
2020-12-15 15:20:08 +01:00
Eric Severance
2765c6f1e9 Register Wemo fan services with entity service helper (#44192)
* Use a singleton for the Wemo registry and fan services

* Undo changes to the wemo subscription registry

* Use an entity service helper to register the Wemo fan services

* Fix Wemo fan test (missing ATTR_ENTITY_ID)

* Use the function name directly rather than a string

* Improve test coverage of the set_humidity service
2020-12-15 14:19:57 +01:00
Eric Severance
69a7eff55d Add tests for the Wemo __init__ module (#44196)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-15 09:59:23 +01:00
Eric Severance
d4ab7880af Replace hard-coded domain strings with constants in the Wemo module (#44222) 2020-12-15 05:03:02 +01:00
Allen Porter
1003464544 Fix double underscore typo in fan_mode ValueError (#44182) 2020-12-14 19:52:14 -08:00
Rob Bierbooms
a1e452170b Bump dsmr-parser to 0.25 (#44223)
* Bump version in manifest

* Update requirements_all.txt

* Update requirements_test_all.txt
2020-12-15 04:45:24 +01:00
Nate Harris
7471bf36e3 Use new PocketCast dependency (#44007)
* New PocketCast dependency

* Switch to new pycketcast dependency

* Update manifest.json

* Alphabetized new dependency
2020-12-15 04:10:10 +01:00
Ville Skyttä
c6c3d720ca Upgrade bandit to 1.7.0 (#44184)
* Upgrade bandit to 1.6.3

https://github.com/PyCQA/bandit/releases/tag/1.6.3

* Upgrade bandit to 1.7.0

https://github.com/PyCQA/bandit/releases/tag/1.7.0
2020-12-15 03:38:01 +01:00
HomeAssistant Azure
9e1647d634 [ci skip] Translation update 2020-12-15 00:04:49 +00:00
Greg
d274a62c31 Bump envoy_reader version to 0.17.3 (#44205)
* Bump envoy_reader version to 0.17.0rc0

* Fixing version number
2020-12-14 22:51:28 +01:00
Shulyaka
0b8529a472 Add zha AnalogOutput cluster support (#44092)
* Initial commit
* black
* isort
* Commit suggestion from code review
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>

* pylint
* removed entity cache for present_value
* fix discovery
* move write_attributes to channel
* write_attributes fix
* write_attributes yet another fix
* update_before_add=False
* mains powered test device
* removed test_restore_state
* flake8
* removed async_configure_channel_specific
* don't know what this patch does, removing
* test for async_update
* removed node_descriptor
* fix unit_of_measurement
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2020-12-14 15:32:45 -05:00
Aaron Bach
38d16d3e0c Fix unhandled KeyError in Recollect Waste (#44224) 2020-12-14 13:03:25 -07:00
Sergio Mayoral Martínez
a7fca3cf23 Bump python-holidays (#44215) 2020-12-14 15:16:39 +01:00
Diogo Gomes
c3d8b1323c Support MSSQL in SQL Sensor (#42778)
* add mssql support

* add tests and odbc dependency

* fix requirements

* no pyodbc dependency
2020-12-14 10:57:22 +01:00
Steve Brandt
7fa26ef515 Add opensky longitude and latitude event metadata (#43205)
* Adds feature to get also longitude and latitude of the triggerd entry or exit event

* None as initial definition of longitude and latitude if it is not defined in the metadata
2020-12-14 10:50:19 +01:00
Guillaume Duveau
c27c958a4d Temperatures, fan and battery in Glances sensors (#43500)
* Temperatures, fan and battery in Glances sensors

* Lint PR #43500
2020-12-14 10:46:44 +01:00
Josef Schlehofer
61dd374713 Upgrade youtube_dl to version 2020.12.07 (#44004) 2020-12-14 10:08:28 +01:00
Mike Miller
dc1d08be70 Upgrade restrictedpython to 5.1 (needed for python 3.9 support) (#44181) 2020-12-14 10:06:21 +01:00
Barry Williams
b758c147a6 Add myself to the codeowners manifest for openhome and tapsaff (#44188) 2020-12-14 10:05:15 +01:00
Oliver
66ed34e60e Update denonavr to 0.9.8 (#44194) 2020-12-14 10:04:41 +01:00
HomeAssistant Azure
ecf9aac1ce [ci skip] Translation update 2020-12-14 00:03:52 +00:00
Franck Nijhof
3600dec6e0 Merge pull request #44175 from home-assistant/rc 2020-12-13 22:21:47 +01:00
Franck Nijhof
277b916fcd 2020.12.0 2020-12-13 22:13:58 +01:00
J. Nick Koston
350ffd3e85 Bump HAP-python to 3.1.0 (#44176)
Fixes many spec compliance issues, unavailable cases
following an unexpected exception, and a thread safety
race condition.
2020-12-13 14:00:53 -05:00
Hmmbob
623826261b Remove deprecated CONF_ALLOW_UNLOCK, CONF_API_KEY from Google Assistant (#44087)
* Remove deprecated CONF_ALLOW_UNLOCK, CONF_API_KEY

* Use vol.Remove() to prevent setup fail

* Keep constants
2020-12-13 15:30:16 +01:00
Franck Nijhof
1ac5ecbe69 Bumped version to 1.0.0 2020-12-13 15:04:00 +01:00
David F. Mulcahey
3981592ccd Bump the ZHA quirks lib to 0.0.49 (#44173) 2020-12-13 15:02:03 +01:00
J. Nick Koston
9c45874206 Bump zeroconf to 0.28.7 to fix thread safety (#44160)
Service registration was not thread safe
2020-12-13 14:48:46 +01:00
Paulus Schoutsen
17cd00ba83 Remove invalidation_version from deprecated (#44156)
* Remove invalidation_version from deprecated. We don't follow up and just hurts releases

* Revert change to ZHA
2020-12-13 14:48:40 +01:00
David F. Mulcahey
6fb6d771fd Bump the ZHA quirks lib to 0.0.49 (#44173) 2020-12-13 08:43:33 -05:00
J. Nick Koston
485cd06de9 Bump zeroconf to 0.28.7 to fix thread safety (#44160)
Service registration was not thread safe
2020-12-13 12:36:17 +01:00
Crash
8979c4987f Clear mpd source playlist when not playing a playlist (#44164)
Prevents unexpected behavior.
2020-12-13 12:10:51 +01:00
Eric Severance
8255815688 Share wemo entity code to reduce duplicate boilerplate (#44113) 2020-12-13 12:02:45 +01:00
HomeAssistant Azure
a3a7ce4842 [ci skip] Translation update 2020-12-13 00:04:18 +00:00
Paulus Schoutsen
594e905742 Remove invalidation_version from deprecated (#44156)
* Remove invalidation_version from deprecated. We don't follow up and just hurts releases

* Revert change to ZHA
2020-12-12 22:24:16 +01:00
Paulus Schoutsen
c02be99ab7 Bumped version to 1.0.0b6 2020-12-12 20:35:58 +00:00
Bram Kragten
7c2a2b08c7 Updated frontend to 20201212.0 (#44154) 2020-12-12 20:35:52 +00:00
Steven Looman
f858d6f9ec Fix upnp first discovered device is used (#44151)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-12 20:35:50 +00:00
Aaron Bach
8507b62016 Fix inability to erase SimpliSafe code (#44137) 2020-12-12 20:35:49 +00:00
Brian Rogers
8c6636994f Fix Met.no forecast precipitation (#44106) 2020-12-12 20:35:47 +00:00
Bram Kragten
76d6b55ff4 Updated frontend to 20201212.0 (#44154) 2020-12-12 21:34:16 +01:00
Allen Porter
1a8123aba6 Increase nest climate test coverage (#44146) 2020-12-12 20:57:02 +01:00
Steven Looman
05f9fb80c8 Fix upnp first discovered device is used (#44151)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-12 19:47:46 +01:00
Eric Severance
8fe5e61cbf Test edge cases in wemo platform code (#44136) 2020-12-12 19:41:20 +01:00
Olivér Falvai
dd4147fbaa Log unique_id of device when ESPHome connection fails (#44152) 2020-12-12 10:44:45 -07:00
Aaron Bach
0696724506 Fix inability to erase SimpliSafe code (#44137) 2020-12-12 10:43:38 +01:00
finity69x2
8d9fd93dc7 Update strings.json to clarify the requirements for the API key (#44143) 2020-12-12 10:29:41 +01:00
Allen Porter
6d12e764b7 Increase test coverage for nest camera (#44144) 2020-12-12 10:17:43 +01:00
k2v1n58
d1fb554e33 Add code_arm_required to IFTTT alarm (#43928)
* Update alarm_control_panel.py
2020-12-11 21:51:57 -08:00
HomeAssistant Azure
19ff83790e [ci skip] Translation update 2020-12-12 00:06:00 +00:00
Peter Nijssen
bcebc588a6 Expose spider device information (#44085)
* Expose spider device information

* Set correct identifiers
2020-12-11 21:49:14 +01:00
Paulus Schoutsen
e67809713f Nuki to use entity platform (#43774) 2020-12-11 18:02:23 +01:00
Brian Rogers
e33405a8b0 Fix Met.no forecast precipitation (#44106) 2020-12-11 16:53:21 +01:00
Anders Melchiorsen
ce3f6c368a Initialize numeric_state trigger tests (#44114)
This makes the crossed thresholds explicit.
2020-12-11 05:11:51 +01:00
HomeAssistant Azure
a29f3e7163 [ci skip] Translation update 2020-12-11 00:04:19 +00:00
Huon Wilson
2bbe8e0e6b Cache Astral object in moon integration, to use less CPU (#44012)
Creating an Astral() instance seems to be surprisingly expensive. This
was previously being done in every update, taking a non-trivial
proportion of the (actual) CPU used by HA, that is, ignoring
sleep/wait/idle states like being blocked on epoll.

This patch caches the Astral instance to avoid recomputing it
regularly.
2020-12-10 16:31:54 -06:00
Eric Severance
b4afef1395 Add tests for the wemo component (#44088)
* Add tests for the wemo component.

* Prefer mock tools from tests.async_mock over importing asynctest directly

* Avoid using `entity/entities` except when referring to an `Entity` instance in wemo tests

* Remove the overridden event_loop fixture from the wemo tests

* Patch the library code, not the integration code, in the wemo tests
2020-12-10 22:24:26 +01:00
Erik Montnemery
7084d6c650 Address old review comments of Tasmota fan (#44112)
* Address review comments of Tasmota fan

* Address review comment
2020-12-10 22:17:58 +01:00
Hmmbob
9cc406fef9 Remove deprecated CONF_ALLOW_UNLOCK, CONF_API_KEY from Google Assistant (#44087)
* Remove deprecated CONF_ALLOW_UNLOCK, CONF_API_KEY

* Use vol.Remove() to prevent setup fail

* Keep constants
2020-12-10 21:50:51 +01:00
Franck Nijhof
9c6ff9af91 Bumped version to 1.0.0b5 2020-12-10 21:34:52 +01:00
Robert Svensson
3986df63dc Support more errors to better do retries in UniFi (#44108) 2020-12-10 21:34:40 +01:00
Bram Kragten
42d1644762 Update frontend to 20201210.0 (#44105) 2020-12-10 21:34:37 +01:00
Bram Kragten
83b7439a08 Fix importing blueprint from community (#44104) 2020-12-10 21:34:33 +01:00
Paulus Schoutsen
a01cf72d67 Fix importing blueprints from forums with HTML entities (#44098) 2020-12-10 21:34:29 +01:00
Erik Montnemery
97edbaa85f Small cleanup of MQTT (#44110)
* Use relative imports of mqtt component in mqtt platforms

* Correct parameters to _async_setup_entity

* Lint
2020-12-10 21:30:07 +01:00
Robert Svensson
9651d1bcfa Support more errors to better do retries in UniFi (#44108) 2020-12-10 21:25:50 +01:00
Alexei Chetroi
6253054fd4 Bump up dependencies on pyserial and pyserial-asyncio (#44089) 2020-12-10 20:41:31 +01:00
Bram Kragten
e306308a47 Update frontend to 20201210.0 (#44105) 2020-12-10 17:54:55 +01:00
Bram Kragten
0da312b6f1 Fix importing blueprint from community (#44104) 2020-12-10 16:45:57 +01:00
Paulus Schoutsen
d9a86c1145 Fix importing blueprints from forums with HTML entities (#44098) 2020-12-10 11:11:49 +01:00
Paulus Schoutsen
cff4f7bbbf Bumped version to 1.0.0b4 2020-12-10 09:12:20 +00:00
Paulus Schoutsen
e68544cd7d Bump hass-nabucasa to 0.39.0 (#44097) 2020-12-10 09:12:09 +00:00
J.P. Hutchins
6ea3c671e9 Fix transmission torrent filtering and sorting (#44069) 2020-12-10 09:12:07 +00:00
zewelor
29e3fbe568 Fix yeelight unavailbility (#44061) 2020-12-10 09:12:06 +00:00
Paulus Schoutsen
9cce6e91f1 Bump hass-nabucasa to 0.39.0 (#44097) 2020-12-10 10:10:38 +01:00
J.P. Hutchins
b15d92edfd Fix transmission torrent filtering and sorting (#44069) 2020-12-10 10:09:08 +01:00
zewelor
e09234ffae Fix yeelight unavailbility (#44061) 2020-12-10 09:54:10 +01:00
Dermot Duffy
b9a3a001fb Include Hyperion in coverage testing (#44096) 2020-12-10 09:41:11 +01:00
HomeAssistant Azure
848224262c [ci skip] Translation update 2020-12-10 00:03:01 +00:00
Robert Svensson
e2ef9d1afc Some lights only support hs, like the lidl christmas lights (#44059) 2020-12-09 19:02:44 +01:00
Robert Svensson
20c3fdfe14 Fix ignored Axis config entries doesn't break set up of new entries (#44062) 2020-12-09 17:48:16 +01:00
J. Nick Koston
dd0afc3b66 Create httpx helper to wrap a shared httpx.AsyncClient (#43877)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-09 17:18:57 +01:00
Finbarr Brady
12903f9c8c Bump openwebifpy version: 3.1.1 → 3.1.6 (#44064) 2020-12-09 17:13:20 +01:00
HomeAssistant Azure
0fc33bd6bf [ci skip] Translation update 2020-12-09 00:03:07 +00:00
Paul
07461f9a8e Update pyarlo to 0.2.4 (#44034) 2020-12-08 23:14:55 +01:00
Fuzzy
2fdf32bf1b Add T8400 to ignore list (#44017) 2020-12-08 20:10:50 +00:00
Alexei Chetroi
51f9da94e1 Exclude coordinator when looking up group members entity IDs (#44058) 2020-12-08 14:34:26 -05:00
Jc2k
109ce653c0 Fix how homekit_controller enumerates Hue remote (#44019) 2020-12-08 18:01:07 +01:00
Pierre Ståhl
faf21e1e1a Bump pyatv to 0.7.5 (#44051) 2020-12-08 14:16:31 +01:00
Paulus Schoutsen
ac2af69d26 Fix extracting entity and device IDs from scripts (#44048)
* Fix extracting entity and device IDs from scripts

* Fix extracting from data_template
2020-12-08 13:06:29 +01:00
Finbarr Brady
0b7b6b1d81 Bump ciscomobilityexpress version: 0.3.3 → 0.3.9 (#44050)
* Update manifest.json

* Update requirements_all.txt
2020-12-08 13:00:17 +01:00
Alex Szlavik
fca8841e34 Retry tuya setup on auth rate limiting (#44001)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-08 11:32:48 +01:00
Maciej Bieniek
572d4cfbe6 Add the missing ATTR_ENABLED attribute to Brother integration list of sensors (#44036) 2020-12-08 08:19:57 +01:00
Aaron Bach
5f4f6dea6b Bump simplisafe-python to 9.6.2 (#44040) 2020-12-07 19:57:19 -07:00
Alexei Chetroi
e0bcee1cc3 Update ZHA dependencies (#44039)
zha-quirks==0.0.48
zigpy==0.28.2
zigpy-znp==0.3.0
2020-12-07 20:06:32 -05:00
HomeAssistant Azure
ebe57d4fdb [ci skip] Translation update 2020-12-08 00:04:13 +00:00
SukramJ
34a31884b7 Bump dependency to add more multi channel devices to HomematicIP Cloud (#43914) 2020-12-08 00:16:22 +01:00
Aaron Bach
8632ab9d35 Bump simplisafe-python to 9.6.1 (#44030) 2020-12-07 13:34:47 -07:00
Brian Rogers
f18c6ae72c Add pause and resume services to Rachio (#43944)
* Add pause-resume

* address comments
2020-12-07 13:22:23 -06:00
Brian
886ce599ac Bump pymyq to 2.0.11 (#44003) 2020-12-07 12:01:58 -06:00
David F. Mulcahey
70133f2096 Fix ZHA switch group test (#44021) 2020-12-07 11:43:35 -05:00
Eric Severance
c9c3a8fe38 Unregister updates when a Wemo entry is removed (#44005) 2020-12-07 14:10:46 +01:00
Jc2k
6ce45e39d1 Hide HomeKit devices from discovery that are known to be problematic (#44014) 2020-12-07 13:51:35 +01:00
PeteBa
727b1d37b6 Add discovery for MQTT device tracker (#42327) 2020-12-07 13:16:56 +01:00
Nigel Rook
1d0b4290fe Update generic_thermostat current_temperature on startup (#43951)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-07 13:14:54 +01:00
Andre Lengwenus
fec623fb4e Fix LCN service calls (invoking coroutines) (#43932)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-07 13:13:41 +01:00
JJdeVries
84973ec8f7 Fix unit of measurement for asuswrt sensors (#44009) 2020-12-07 12:46:53 +01:00
Maikel Punie
035860ebb2 Fix Solaredge integration in case the data is not complete (#43557)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-07 11:20:22 +01:00
mbo18
4bcb6c0ec6 Add UV unit to meteo_france UV sensor (#43992) 2020-12-07 10:47:29 +01:00
Shay Levy
5fc7df2746 Prevent firing Shelly input events at startup (#43986)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-07 09:27:33 +01:00
nivnoach
906e1ce960 Allow manual configuration of ignored config entries (#43947) 2020-12-07 09:25:04 +01:00
Maciej Bieniek
19389b16e2 Add support for system health to GIOS integration (#43280)
* Add system health support

* Fix docstrings

* Change url to check
2020-12-07 03:50:22 +01:00
springstan
25e717c8d2 Bump fritzconnection to 1.4.0 (#43996) 2020-12-07 03:16:43 +01:00
Philip Allgaier
18736dbebf Bump voluptuous to 0.12.1 (#44002)
* Bump voluptuous to 0.12.1

* Adjust MQTT climate test to new error msg
2020-12-07 02:49:36 +01:00
Andreas Wrede
30f73a4962 Add discovery of sensors on DS2409 MicroLan (#43599)
* Add discovery of sensors on DS2409 MicroLan

* Add tests for coupler

* Update tests

* Fix isort

* Clean up

* Move tests to test_sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-07 02:09:32 +01:00
HomeAssistant Azure
9c63fbfcb1 [ci skip] Translation update 2020-12-07 00:04:18 +00:00
Jacob Southard
8b01f681ab Add target temperature range to homekit_controller (#42817)
* Add support for temperature range in thermostat.
* Add tests for setting temperature range.
* Update Lennox E30/Ecobee 3 tests to reflect new supported feature
* Add support for thermostate mode specific min/max temp values.
2020-12-06 23:23:08 +00:00
Paulus Schoutsen
23f8ae8fec Update ring to 0.6.2 (#43995) 2020-12-06 17:24:32 +01:00
HomeAssistant Azure
f9bc7bacb6 [ci skip] Translation update 2020-12-06 00:03:59 +00:00
Alexei Chetroi
a1720fdd2b Cleanup ZHA fan channel (#43973)
* Use zigpy cached values for ZHA Fan speed

* Disable update_before_add for ZHA fans

* Refresh state of the group

* Fix group tests
2020-12-05 18:24:49 -05:00
Alexei Chetroi
40e5634db3 Add ZHA Coordinator to LightLink cluster groups (#43959)
* Add coordinator to LighLink cluster groups

* Make pylint happy
2020-12-05 11:20:10 -05:00
Franck Nijhof
9b7ecddde6 Add reverse repeatmode mapping constant to Spotify (#43968) 2020-12-05 15:05:12 +01:00
treylok
180491f8cd Fix Ecobee set humidity (#43954) 2020-12-05 14:13:46 +01:00
Andre Lengwenus
378424b2c4 Refactor LCN integration (#40665)
* Moved configuration schemes to schemes.py

* Renamed LcnDevice to LcnEntity. Renamed address_connection to device_connection.

* Rename schemes.py to schemas.py
2020-12-05 12:57:49 +01:00
Robert Svensson
bc83e30761 Fix device refresh service can always add devices (#43950) 2020-12-05 11:53:43 +01:00
Brian Rogers
c5adaa1f5c Return unique id of Blink binary sensor (#43942) 2020-12-05 11:32:49 +01:00
Allen Porter
0670124e8d Address PR cleanup for nest device triggers (#43961) 2020-12-05 10:55:19 +01:00
Emily Mills
c4426a73b3 Remove zerproc threaded upstream reconnect logic (#43910) 2020-12-05 01:40:56 +01:00
HomeAssistant Azure
6e74f90136 [ci skip] Translation update 2020-12-05 00:03:50 +00:00
Alexei Chetroi
125ceb7449 Refactor ZHA core channel initialization (#43953)
* Cleanup Basic channnel

Remove unused methods.

* Refactor async_configure() method

Split async_configure() into async_configure() and
async_configure_channel_specfici()

* Refactor async_initilize() method

Split into two different methods and configure channel specifics via
async_configure_channel_specific()

* Fixes
2020-12-04 18:45:09 -05:00
Bram Kragten
b19c705867 Updated frontend to 20201204.0 (#43945) 2020-12-04 23:04:31 +01:00
Martin Hjelmare
e23dc90bac Handle stale ozw discovery flow (#43939) 2020-12-04 20:41:08 +01:00
Martin Hjelmare
a47cf27ed6 Always send ozw network key to add-on config (#43938) 2020-12-04 20:23:20 +01:00
Erik Montnemery
5e6f5fca90 Don't send MQTT birth message in tests (#43917) 2020-12-04 04:39:49 +01:00
Jonas Lundberg
a5279cc279 Upgrade respx to 0.16.2 (#43892)
* Bump respx to 0.16.2

* Align sensor tests to use new respx mock api
2020-12-04 04:27:25 +01:00
djtimca
52edf6719d Bump auroranoaa library to 0.0.2 (#43898) 2020-12-04 03:57:35 +01:00
Erik Montnemery
916ff88774 Bump hatasmota to 0.1.4 (#43912) 2020-12-04 03:16:37 +01:00
HomeAssistant Azure
42f00cff30 [ci skip] Translation update 2020-12-04 00:05:42 +00:00
Bram Kragten
44d7787582 Updated frontend to 20201203.0 (#43907) 2020-12-03 22:41:02 +01:00
J. Nick Koston
4ef93feb9a Bump icmplib to 2.0 for ping (#43868) 2020-12-03 12:02:18 -07:00
Martin Hjelmare
5742db6308 Unsubscribe ozw stop listener on entry unload (#43900) 2020-12-03 19:40:33 +01:00
Martin Hjelmare
8d33c2092f Add number entity value property (#43902) 2020-12-03 18:35:17 +01:00
Emily Mills
54cb2d42af Kulersky cleanups (#43901) 2020-12-03 18:08:16 +01:00
Paulus Schoutsen
262e77d969 Blueprint: descriptions + descriptive errors (#43899) 2020-12-03 16:44:18 +01:00
Shulyaka
78a69ef284 Add reproduce state for Number (#43870) 2020-12-03 10:39:50 +01:00
Robert Svensson
2c66d26415 Improve look up speed by inverting dictionaries (#43883) 2020-12-03 10:37:39 +01:00
Guido Schmitz
6f2327c6d5 Change config flow unique_id for devolo Home Control (#43005) 2020-12-03 09:10:20 +01:00
SukramJ
40408eb0eb Add HmIP-HDM1 and HmIPW-DRD3 to Homematic IP Cloud (#43132)
* cleanup const.py

* Add wired multi dimmer HMIPW-DRD3 to Homematic IP Cloud

* Add HmIP-HDM1 to Homematic IP Cloud
2020-12-02 23:56:05 -06:00
Aaron Bach
69a438e2fc Fix Slack "invalid_blocks_format" bug (#43875)
* Fix Slack "invalid_blocks_format" bug

* Fix optional params

* Fix one more optional param

* Update manifest
2020-12-03 04:45:08 +01:00
tehbrd
4c7e17c5c6 Fix intesishome passing coroutine to HassJob (#43837)
* Update climate.py

Not allowed to pass coroutines to hassjob.

* Update climate.py

* Lint

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-12-03 01:58:10 +01:00
HomeAssistant Azure
8e6108b9e1 [ci skip] Translation update 2020-12-03 00:04:35 +00:00
Emily Mills
7c83092431 Add Kuler Sky Bluetooth floor lamp integration (#42372)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-02 22:28:17 +01:00
Elena Rogleva
7cd17dd94f Rewrite the kira/test_init.py unittests to pytest style test functions (#42753) 2020-12-02 22:15:53 +01:00
1292 changed files with 21236 additions and 7615 deletions

View File

@@ -73,8 +73,6 @@ omit =
homeassistant/components/aurora_abb_powerone/sensor.py
homeassistant/components/avea/light.py
homeassistant/components/avion/light.py
homeassistant/components/avri/const.py
homeassistant/components/avri/sensor.py
homeassistant/components/azure_devops/__init__.py
homeassistant/components/azure_devops/const.py
homeassistant/components/azure_devops/sensor.py
@@ -102,7 +100,12 @@ omit =
homeassistant/components/bme280/sensor.py
homeassistant/components/bme680/sensor.py
homeassistant/components/bmp280/sensor.py
homeassistant/components/bmw_connected_drive/*
homeassistant/components/bmw_connected_drive/__init__.py
homeassistant/components/bmw_connected_drive/binary_sensor.py
homeassistant/components/bmw_connected_drive/device_tracker.py
homeassistant/components/bmw_connected_drive/lock.py
homeassistant/components/bmw_connected_drive/notify.py
homeassistant/components/bmw_connected_drive/sensor.py
homeassistant/components/braviatv/__init__.py
homeassistant/components/braviatv/const.py
homeassistant/components/braviatv/media_player.py
@@ -386,7 +389,6 @@ omit =
homeassistant/components/hvv_departures/sensor.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hydrawise/*
homeassistant/components/hyperion/light.py
homeassistant/components/iammeter/sensor.py
homeassistant/components/iaqualink/binary_sensor.py
homeassistant/components/iaqualink/climate.py
@@ -568,6 +570,8 @@ omit =
homeassistant/components/n26/*
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/light.py
homeassistant/components/neato/__init__.py
homeassistant/components/neato/api.py
homeassistant/components/neato/camera.py
homeassistant/components/neato/sensor.py
homeassistant/components/neato/switch.py
@@ -578,14 +582,9 @@ omit =
homeassistant/components/nest/api.py
homeassistant/components/nest/binary_sensor.py
homeassistant/components/nest/camera.py
homeassistant/components/nest/camera_legacy.py
homeassistant/components/nest/camera_sdm.py
homeassistant/components/nest/climate.py
homeassistant/components/nest/climate_legacy.py
homeassistant/components/nest/climate_sdm.py
homeassistant/components/nest/local_auth.py
homeassistant/components/nest/legacy/*
homeassistant/components/nest/sensor.py
homeassistant/components/nest/sensor_legacy.py
homeassistant/components/netatmo/__init__.py
homeassistant/components/netatmo/api.py
homeassistant/components/netatmo/camera.py
@@ -834,8 +833,9 @@ omit =
homeassistant/components/solaredge_local/sensor.py
homeassistant/components/solarlog/*
homeassistant/components/solax/sensor.py
homeassistant/components/soma/cover.py
homeassistant/components/soma/__init__.py
homeassistant/components/soma/cover.py
homeassistant/components/soma/sensor.py
homeassistant/components/somfy/*
homeassistant/components/somfy_mylink/*
homeassistant/components/sonos/*
@@ -1015,7 +1015,6 @@ omit =
homeassistant/components/watson_tts/tts.py
homeassistant/components/waze_travel_time/sensor.py
homeassistant/components/webostv/*
homeassistant/components/wemo/*
homeassistant/components/whois/sensor.py
homeassistant/components/wiffi/*
homeassistant/components/wink/*

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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
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.4
uses: actions/setup-python@v2.2.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -785,4 +785,4 @@ jobs:
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1.0.15
uses: codecov/codecov-action@v1.1.1

View File

@@ -30,7 +30,7 @@ repos:
- pydocstyle==5.1.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.6.2
rev: 1.7.0
hooks:
- id: bandit
args:

View File

@@ -1,42 +0,0 @@
dist: focal
addons:
apt:
packages:
- ffmpeg
- libudev-dev
- libavformat-dev
- libavcodec-dev
- libavdevice-dev
- libavutil-dev
- libswscale-dev
- libswresample-dev
- libavfilter-dev
python:
- "3.7.1"
- "3.8"
env:
- TOX_ARGS="-- --test-group-count 4 --test-group 1"
- TOX_ARGS="-- --test-group-count 4 --test-group 2"
- TOX_ARGS="-- --test-group-count 4 --test-group 3"
- TOX_ARGS="-- --test-group-count 4 --test-group 4"
jobs:
fast_finish: true
include:
- python: "3.7.1"
env: TOXENV=lint
- python: "3.7.1"
# PYLINT_ARGS=--jobs=0 disabled for now: https://github.com/PyCQA/pylint/issues/3584
env: TOXENV=pylint TRAVIS_WAIT=30
- python: "3.7.1"
env: TOXENV=typing
cache:
pip: true
directories:
- $HOME/.cache/pre-commit
install: pip install -U tox tox-travis
language: python
script: ${TRAVIS_WAIT:+travis_wait $TRAVIS_WAIT} tox -vv --develop ${TOX_ARGS-}

38
.vscode/launch.json vendored
View File

@@ -9,7 +9,41 @@
"type": "python",
"request": "launch",
"module": "homeassistant",
"args": ["--debug", "-c", "config"]
"args": [
"--debug",
"-c",
"config"
]
},
{
// Debug by attaching to local Home Asistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/
"name": "Home Assistant: Attach Local",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
],
},
{
// Debug by attaching to remote Home Asistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/
"name": "Home Assistant: Attach Remote",
"type": "python",
"request": "attach",
"port": 5678,
"host": "homeassistant.local",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/usr/src/homeassistant"
}
],
}
]
}
}

View File

@@ -54,7 +54,6 @@ homeassistant/components/aurora_abb_powerone/* @davet2001
homeassistant/components/auth/* @home-assistant/core
homeassistant/components/automation/* @home-assistant/core
homeassistant/components/avea/* @pattyland
homeassistant/components/avri/* @timvancann
homeassistant/components/awair/* @ahayworth @danielsjf
homeassistant/components/aws/* @awarecan
homeassistant/components/axis/* @Kane610
@@ -323,6 +322,7 @@ homeassistant/components/onewire/* @garbled1 @epenet
homeassistant/components/onvif/* @hunterjm
homeassistant/components/openerz/* @misialq
homeassistant/components/opengarage/* @danielhiversen
homeassistant/components/openhome/* @bazwilliams
homeassistant/components/opentherm_gw/* @mvn23
homeassistant/components/openuv/* @bachya
homeassistant/components/openweathermap/* @fabaff @freekode @nzapponi
@@ -355,6 +355,7 @@ homeassistant/components/ptvsd/* @swamp-ig
homeassistant/components/push/* @dgomes
homeassistant/components/pvoutput/* @fabaff
homeassistant/components/pvpc_hourly_pricing/* @azogue
homeassistant/components/qbittorrent/* @geoffreylagaisse
homeassistant/components/qld_bushfire/* @exxamalte
homeassistant/components/qnap/* @colinodell
homeassistant/components/quantum_gateway/* @cisasteelersfan
@@ -453,6 +454,7 @@ homeassistant/components/tado/* @michaelarnauts @bdraco
homeassistant/components/tag/* @balloob @dmulcahey
homeassistant/components/tahoma/* @philklei
homeassistant/components/tankerkoenig/* @guillempages
homeassistant/components/tapsaff/* @bazwilliams
homeassistant/components/tasmota/* @emontnemery
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
@@ -491,6 +493,7 @@ homeassistant/components/utility_meter/* @dgomes
homeassistant/components/velbus/* @Cereal2nd @brefra
homeassistant/components/velux/* @Julius2342
homeassistant/components/vera/* @vangorra
homeassistant/components/verisure/* @frenck
homeassistant/components/versasense/* @flamm3blemuff1n
homeassistant/components/version/* @fabaff @ludeeus
homeassistant/components/vesync/* @markperdue @webdjoe @thegardenmonkey

View File

@@ -5,7 +5,7 @@ Open source home automation that puts local control and privacy first. Powered b
Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://home-assistant.io/demo/>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation-2/>`__ and `documentation <https://home-assistant.io/docs/>`__.
`tutorials <https://home-assistant.io/getting-started/automation/>`__ and `documentation <https://home-assistant.io/docs/>`__.
|screenshot-states|
@@ -14,8 +14,8 @@ Featured integrations
|screenshot-components|
The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/en/architecture_index.html>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/en/creating_component_index.html>`__.
The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/architecture_index/>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/creating_component_index/>`__.
If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

View File

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

View File

@@ -207,7 +207,6 @@ html_theme_options = {
"github_repo": PROJECT_GITHUB_REPOSITORY,
"github_type": "star",
"github_banner": True,
"travis_button": True,
"touch_icon": "logo-apple.png",
# 'fixed_sidebar': True, # Re-enable when we have more content
}

View File

@@ -1,13 +1,28 @@
{
"config": {
"abort": {
"reauth_successful": "Re-autenticaci\u00f3 realitzada correctament",
"single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida"
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida",
"invalid_mfa_code": "Codi MFA inv\u00e0lid"
},
"step": {
"mfa": {
"data": {
"mfa_code": "Codi MFA (6 d\u00edgits)"
},
"title": "Introdueix el codi MFA per a Abode"
},
"reauth_confirm": {
"data": {
"password": "Contrasenya",
"username": "Correu electr\u00f2nic"
},
"title": "Introdueix la informaci\u00f3 d'inici de sessi\u00f3 d'Abode."
},
"user": {
"data": {
"password": "Contrasenya",

View File

@@ -1,9 +1,28 @@
{
"config": {
"abort": {
"reauth_successful": "Die erneute Authentifizierung war erfolgreich",
"single_instance_allowed": "Es ist nur eine einzige Konfiguration von Abode erlaubt."
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_auth": "Ung\u00fcltige Authentifizierung",
"invalid_mfa_code": "Ung\u00fcltiger MFA-Code"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA-Code (6-stellig)"
},
"title": "Gib deinen MFA-Code f\u00fcr Abode ein"
},
"reauth_confirm": {
"data": {
"password": "Passwort",
"username": "E-Mail"
},
"title": "Gib deine Abode-Anmeldeinformationen ein"
},
"user": {
"data": {
"password": "Passwort",

View File

@@ -4,9 +4,15 @@
"single_instance_allowed": "Csak egyetlen Abode konfigur\u00e1ci\u00f3 enged\u00e9lyezett."
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s"
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"invalid_mfa_code": "\u00c9rv\u00e9nytelen MFA k\u00f3d"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA k\u00f3d (6 jegy\u0171)"
}
},
"user": {
"data": {
"password": "Jelsz\u00f3",

View File

@@ -5,9 +5,18 @@
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_auth": "Ongeldige authenticatie"
"invalid_auth": "Ongeldige authenticatie",
"invalid_mfa_code": "Ongeldige MFA-code"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA-code (6-cijfers)"
}
},
"reauth_confirm": {
"title": "Vul uw Abode-inloggegevens in"
},
"user": {
"data": {
"password": "Wachtwoord",

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "Reautentisering var vellykket",
"reauth_successful": "Godkjenning p\u00e5 nytt var vellykket",
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"error": {

View File

@@ -1,6 +1,20 @@
{
"config": {
"abort": {
"reauth_successful": "Reautentica\u00e7\u00e3o bem sucedida",
"single_instance_allowed": "J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o",
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida"
},
"step": {
"reauth_confirm": {
"data": {
"password": "Palavra-passe",
"username": "Email"
}
},
"user": {
"data": {
"password": "Palavra-passe",

View File

@@ -1,9 +1,26 @@
{
"config": {
"abort": {
"reauth_successful": "Ponovno overjanje je uspelo",
"single_instance_allowed": "Dovoljena je samo ena konfiguracija Abode."
},
"error": {
"invalid_mfa_code": "Napa\u010dna MFA koda"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA koda (6 \u0161tevilk)"
},
"title": "Vnesite MFA kodo za Abode"
},
"reauth_confirm": {
"data": {
"password": "Geslo",
"username": "E-po\u0161tni naslov"
},
"title": "Vnesite podatke za prijavo v Abode"
},
"user": {
"data": {
"password": "Geslo",

View File

@@ -0,0 +1,9 @@
{
"config": {
"step": {
"mfa": {
"title": "\u0e1b\u0e49\u0e2d\u0e19\u0e23\u0e2b\u0e31\u0e2a MFA \u0e08\u0e32\u0e01 Abode"
}
}
}
}

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"reauth_successful": "\u91cd\u65b0\u8a8d\u8b49\u6210\u529f",
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",

View File

@@ -183,6 +183,20 @@ FORECAST_SENSOR_TYPES = {
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
},
"WindDay": {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:weather-windy",
ATTR_LABEL: "Wind Day",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
},
"WindNight": {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:weather-windy",
ATTR_LABEL: "Wind Night",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
},
}
OPTIONAL_SENSORS = (
@@ -284,6 +298,13 @@ SENSOR_TYPES = {
ATTR_UNIT_METRIC: TEMP_CELSIUS,
ATTR_UNIT_IMPERIAL: TEMP_FAHRENHEIT,
},
"Wind": {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:weather-windy",
ATTR_LABEL: "Wind",
ATTR_UNIT_METRIC: SPEED_KILOMETERS_PER_HOUR,
ATTR_UNIT_IMPERIAL: SPEED_MILES_PER_HOUR,
},
"WindGust": {
ATTR_DEVICE_CLASS: None,
ATTR_ICON: "mdi:weather-windy",

View File

@@ -96,7 +96,7 @@ class AccuWeatherSensor(CoordinatorEntity):
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][
self.kind
]["Value"]
if self.kind in ["WindGustDay", "WindGustNight"]:
if self.kind in ["WindDay", "WindNight", "WindGustDay", "WindGustNight"]:
return self.coordinator.data[ATTR_FORECAST][self.forecast_day][
self.kind
]["Speed"]["Value"]
@@ -115,7 +115,7 @@ class AccuWeatherSensor(CoordinatorEntity):
return self.coordinator.data["PrecipitationSummary"][self.kind][
self._unit_system
]["Value"]
if self.kind == "WindGust":
if self.kind in ["Wind", "WindGust"]:
return self.coordinator.data[self.kind]["Speed"][self._unit_system]["Value"]
return self.coordinator.data[self.kind]
@@ -144,7 +144,7 @@ class AccuWeatherSensor(CoordinatorEntity):
def device_state_attributes(self):
"""Return the state attributes."""
if self.forecast_day is not None:
if self.kind in ["WindGustDay", "WindGustNight"]:
if self.kind in ["WindDay", "WindNight", "WindGustDay", "WindGustNight"]:
self._attrs["direction"] = self.coordinator.data[ATTR_FORECAST][
self.forecast_day
][self.kind]["Direction"]["English"]

View File

@@ -31,5 +31,11 @@
"title": "Opcions d'AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Servidor d'Accuweather accessible",
"remaining_requests": "Sol\u00b7licituds permeses restants"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "Mo\u017enosti AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Lze kontaktovat AccuWeather server",
"remaining_requests": "Zb\u00fdvaj\u00edc\u00ed povolen\u00e9 \u017e\u00e1dosti"
}
}
}

View File

@@ -1,5 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "Verbindungsfehler"
},
"step": {
"user": {
"data": {
@@ -10,5 +13,20 @@
"title": "AccuWeather"
}
}
},
"options": {
"step": {
"user": {
"data": {
"forecast": "Wettervorhersage"
}
}
}
},
"system_health": {
"info": {
"can_reach_server": "AccuWeather Server erreichen",
"remaining_requests": "Verbleibende erlaubte Anfragen"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "Opciones de AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Alcanzar el servidor AccuWeather",
"remaining_requests": "Solicitudes permitidas restantes"
}
}
}

View File

@@ -34,7 +34,7 @@
},
"system_health": {
"info": {
"can_reach_server": "\u00dchendu Accuweatheri serveriga",
"can_reach_server": "\u00dchendus Accuweatheri serveriga",
"remaining_requests": "Lubatud taotlusi on j\u00e4\u00e4nud"
}
}

View File

@@ -31,5 +31,10 @@
"title": "Options AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Acc\u00e8s au serveur AccuWeather"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "Opzioni AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Raggiungi il server AccuWeather",
"remaining_requests": "Richieste consentite rimanenti"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "AccuWeather Optiounen"
}
}
},
"system_health": {
"info": {
"can_reach_server": "AccuWeather Server ereechbar",
"remaining_requests": "Rescht vun erlaabten Ufroen"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "AccuWeather-alternativer"
}
}
},
"system_health": {
"info": {
"can_reach_server": "N\u00e5 AccuWeather-serveren",
"remaining_requests": "Gjenv\u00e6rende tillatte foresp\u00f8rsler"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "Opcje AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Dost\u0119p do serwera AccuWeather",
"remaining_requests": "Pozosta\u0142o dozwolonych \u017c\u0105da\u0144"
}
}
}

View File

@@ -10,9 +10,10 @@
"step": {
"user": {
"data": {
"api_key": "Chave de API",
"api_key": "API Key",
"latitude": "Latitude",
"longitude": "Longitude"
"longitude": "Longitude",
"name": "Nome"
}
}
}

View File

@@ -31,5 +31,11 @@
"title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 AccuWeather"
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 AccuWeather",
"remaining_requests": "\u0421\u0447\u0451\u0442\u0447\u0438\u043a \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "Fallend",
"rising": "Steigend",
"steady": "Gleichbleibend"
}
}
}

View File

@@ -0,0 +1,8 @@
{
"system_health": {
"info": {
"can_reach_server": "Dostop do AccuWeather stre\u017enika",
"remaining_requests": "Preostalo dovoljenih zahtevkov"
}
}
}

View File

@@ -0,0 +1,8 @@
{
"system_health": {
"info": {
"can_reach_server": "\u53ef\u8bbf\u95ee AccuWeather \u670d\u52a1\u5668",
"remaining_requests": "\u5176\u4f59\u5141\u8bb8\u7684\u8bf7\u6c42"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
@@ -31,5 +31,11 @@
"title": "AccuWeather \u9078\u9805"
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u9023\u7dda AccuWeather \u4f3a\u670d\u5668",
"remaining_requests": "\u5176\u9918\u5141\u8a31\u7684\u8acb\u6c42"
}
}
}

View File

@@ -2,6 +2,6 @@
"domain": "acer_projector",
"name": "Acer Projector",
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"requirements": ["pyserial==3.4"],
"requirements": ["pyserial==3.5"],
"codeowners": []
}

View File

@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"no_devices_found": "Nenhum dispositivo encontrado na rede"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"no_devices_found": "\u7db2\u8def\u4e0a\u627e\u4e0d\u5230\u8a2d\u5099"
"no_devices_found": "\u7db2\u8def\u4e0a\u627e\u4e0d\u5230\u88dd\u7f6e"
},
"step": {
"user": {

View File

@@ -4,6 +4,9 @@
"existing_instance_updated": "Bestehende Konfiguration wurde aktualisiert.",
"single_instance_allowed": "Es ist nur eine einzige Konfiguration von AdGuard Home zul\u00e4ssig."
},
"error": {
"cannot_connect": "Verbindungsfehler"
},
"step": {
"hassio_confirm": {
"description": "M\u00f6chtest du Home Assistant so konfigurieren, dass eine Verbindung mit AdGuard Home als Hass.io-Add-On hergestellt wird: {addon}?",

View File

@@ -1,5 +1,11 @@
{
"config": {
"abort": {
"single_instance_allowed": "J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"hassio_confirm": {
"title": "AdGuard Home via Hass.io add-on"
@@ -9,7 +15,9 @@
"host": "Servidor",
"password": "Palavra-passe",
"port": "Porta",
"username": "Nome de Utilizador"
"ssl": "Utiliza um certificado SSL",
"username": "Nome de Utilizador",
"verify_ssl": "Verificar certificado SSL"
}
}
}

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"existing_instance_updated": "\u5df2\u66f4\u65b0\u73fe\u6709\u8a2d\u5b9a\u3002",
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557"

View File

@@ -1,5 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "Verbindungsfehler"
},
"step": {
"user": {
"data": {

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "O dispositivo j\u00e1 est\u00e1 configurado"
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"user": {
"data": {
"ip_address": "Endere\u00e7o IP",
"port": "Porta"
},
"title": "Ligar"
}
}
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"already_configured": "\u8a2d\u5099\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
"already_configured": "\u88dd\u7f6e\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557"

View File

@@ -4,7 +4,8 @@
"already_configured": "Ger\u00e4t ist bereits konfiguriert"
},
"error": {
"already_in_progress": "Der Konfigurationsfluss f\u00fcr das Ger\u00e4t wird bereits ausgef\u00fchrt."
"already_in_progress": "Der Konfigurationsfluss f\u00fcr das Ger\u00e4t wird bereits ausgef\u00fchrt.",
"cannot_connect": "Verbindungsfehler"
},
"step": {
"user": {

View File

@@ -1,9 +1,17 @@
{
"config": {
"abort": {
"already_configured": "O dispositivo j\u00e1 est\u00e1 configurado"
},
"error": {
"already_in_progress": "O processo de configura\u00e7\u00e3o j\u00e1 est\u00e1 a decorrer",
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"user": {
"data": {
"host": "Servidor"
"host": "Servidor",
"port": "Porta"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"already_configured": "\u8a2d\u5099\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
"already_configured": "\u88dd\u7f6e\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"already_in_progress": "\u8a2d\u5b9a\u5df2\u7d93\u9032\u884c\u4e2d",

View File

@@ -5,15 +5,17 @@ import async_timeout
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_NAME,
HTTP_UNAUTHORIZED,
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import ( # pylint:disable=unused-import
DEFAULT_NAME,
DOMAIN,
NO_AIRLY_SENSORS,
)
from .const import DOMAIN, NO_AIRLY_SENSORS # pylint:disable=unused-import
class AirlyFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
@@ -22,13 +24,9 @@ class AirlyFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
VERSION = 1
CONNECTION_CLASS = config_entries.CONN_CLASS_CLOUD_POLL
def __init__(self):
"""Initialize."""
self._errors = {}
async def async_step_user(self, user_input=None):
"""Handle a flow initialized by the user."""
self._errors = {}
errors = {}
websession = async_get_clientsession(self.hass)
@@ -37,75 +35,57 @@ class AirlyFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
f"{user_input[CONF_LATITUDE]}-{user_input[CONF_LONGITUDE]}"
)
self._abort_if_unique_id_configured()
api_key_valid = await self._test_api_key(websession, user_input["api_key"])
if not api_key_valid:
self._errors["base"] = "invalid_api_key"
else:
location_valid = await self._test_location(
try:
location_valid = await test_location(
websession,
user_input["api_key"],
user_input["latitude"],
user_input["longitude"],
)
except AirlyError as err:
if err.status_code == HTTP_UNAUTHORIZED:
errors["base"] = "invalid_api_key"
else:
if not location_valid:
self._errors["base"] = "wrong_location"
errors["base"] = "wrong_location"
if not self._errors:
return self.async_create_entry(
title=user_input[CONF_NAME], data=user_input
)
if not errors:
return self.async_create_entry(
title=user_input[CONF_NAME], data=user_input
)
return self._show_config_form(
name=DEFAULT_NAME,
api_key="",
latitude=self.hass.config.latitude,
longitude=self.hass.config.longitude,
)
def _show_config_form(self, name=None, api_key=None, latitude=None, longitude=None):
"""Show the configuration form to edit data."""
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Required(CONF_API_KEY, default=api_key): str,
vol.Required(CONF_API_KEY): str,
vol.Optional(
CONF_LATITUDE, default=self.hass.config.latitude
): cv.latitude,
vol.Optional(
CONF_LONGITUDE, default=self.hass.config.longitude
): cv.longitude,
vol.Optional(CONF_NAME, default=name): str,
vol.Optional(
CONF_NAME, default=self.hass.config.location_name
): str,
}
),
errors=self._errors,
errors=errors,
)
async def _test_api_key(self, client, api_key):
"""Return true if api_key is valid."""
with async_timeout.timeout(10):
airly = Airly(api_key, client)
measurements = airly.create_measurements_session_point(
latitude=52.24131, longitude=20.99101
)
try:
await measurements.update()
except AirlyError:
return False
return True
async def test_location(client, api_key, latitude, longitude):
"""Return true if location is valid."""
airly = Airly(api_key, client)
measurements = airly.create_measurements_session_point(
latitude=latitude, longitude=longitude
)
async def _test_location(self, client, api_key, latitude, longitude):
"""Return true if location is valid."""
with async_timeout.timeout(10):
await measurements.update()
with async_timeout.timeout(10):
airly = Airly(api_key, client)
measurements = airly.create_measurements_session_point(
latitude=latitude, longitude=longitude
)
current = measurements.current
await measurements.update()
current = measurements.current
if current["indexes"][0]["description"] == NO_AIRLY_SENSORS:
return False
return True
if current["indexes"][0]["description"] == NO_AIRLY_SENSORS:
return False
return True

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Servidor d'Airly accessible"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Lze kontaktovat Airly server"
}
}
}

View File

@@ -18,5 +18,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Airly Server erreichen"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Alcanzar el servidor Airly"
}
}
}

View File

@@ -22,7 +22,7 @@
},
"system_health": {
"info": {
"can_reach_server": "\u00dchendu Airly serveriga"
"can_reach_server": "\u00dchendus Airly serveriga"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Acc\u00e8s au serveur Airly"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Raggiungi il server Airly"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Airly Server ereechbar"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": ""
}
}
},
"system_health": {
"info": {
"can_reach_server": "N\u00e5 Airly-serveren"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Dost\u0119p do serwera Airly"
}
}
}

View File

@@ -1,11 +1,18 @@
{
"config": {
"abort": {
"already_configured": "A localiza\u00e7\u00e3o j\u00e1 est\u00e1 configurada"
},
"error": {
"invalid_api_key": "Chave de API inv\u00e1lida"
},
"step": {
"user": {
"data": {
"api_key": "",
"latitude": "Latitude",
"longitude": "Longitude"
"longitude": "Longitude",
"name": "Nome"
},
"title": ""
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 Airly"
}
}
}

View File

@@ -18,5 +18,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Dostop do Airly stre\u017enika"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"system_health": {
"info": {
"can_reach_server": "Airly sunucusuna eri\u015fin"
}
}
}

View File

@@ -10,5 +10,10 @@
}
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u53ef\u8bbf\u95ee Airly \u670d\u52a1\u5668"
}
}
}

View File

@@ -19,5 +19,10 @@
"title": "Airly"
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u9023\u7dda Airly \u4f3a\u670d\u5668"
}
}
}

View File

@@ -4,6 +4,7 @@
"already_configured": "Diese Koordinaten oder Node/Pro ID sind bereits registriert."
},
"error": {
"cannot_connect": "Verbindungsfehler",
"general_error": "Es gab einen unbekannten Fehler.",
"invalid_api_key": "Ung\u00fcltiger API-Schl\u00fcssel bereitgestellt."
},

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"already_configured": "Plasseringen er allerede konfigurert eller Node / Pro ID er allerede registrert.",
"reauth_successful": "Reautentisering var vellykket"
"reauth_successful": "Godkjenning p\u00e5 nytt var vellykket"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
@@ -31,7 +31,7 @@
"data": {
"api_key": "API-n\u00f8kkel"
},
"title": "Autentiser AirVisual p\u00e5 nytt"
"title": "Godkjenne integrering p\u00e5 nytt"
},
"user": {
"data": {

View File

@@ -1,10 +1,32 @@
{
"config": {
"abort": {
"already_configured": "A localiza\u00e7\u00e3o j\u00e1 est\u00e1 configurada ou Node/Pro ID j\u00e1 est\u00e1 registrado.",
"reauth_successful": "Reautentica\u00e7\u00e3o bem sucedida"
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o",
"general_error": "Erro inesperado",
"invalid_api_key": "Chave de API inv\u00e1lida"
},
"step": {
"geography": {
"data": {
"api_key": "API Key",
"latitude": "Latitude",
"longitude": "Longitude"
}
},
"node_pro": {
"data": {
"ip_address": "Servidor",
"password": "Palavra-passe"
}
},
"reauth_confirm": {
"data": {
"api_key": ""
}
}
}
}

View File

@@ -24,7 +24,7 @@
"ip_address": "\u4e3b\u6a5f\u7aef",
"password": "\u5bc6\u78bc"
},
"description": "\u76e3\u63a7\u500b\u4eba AirVisual \u8a2d\u5099\uff0c\u5bc6\u78bc\u53ef\u4ee5\u900f\u904e\u8a2d\u5099 UI \u7372\u5f97\u3002",
"description": "\u76e3\u63a7\u500b\u4eba AirVisual \u88dd\u7f6e\uff0c\u5bc6\u78bc\u53ef\u4ee5\u900f\u904e\u88dd\u7f6e UI \u7372\u5f97\u3002",
"title": "\u8a2d\u5b9a AirVisual Node/Pro"
},
"reauth_confirm": {

View File

@@ -1,5 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "Verbindungsfehler"
},
"step": {
"protocol": {
"data": {

View File

@@ -59,14 +59,14 @@
"zone_rfid": "RF jada\u00fchendus",
"zone_type": "Ala t\u00fc\u00fcp"
},
"description": "Sisestage ala {zone_number} \u00fcksikasjad. Ala {zone_number} kustutamiseks j\u00e4tke ala nimi t\u00fchjaks.",
"description": "Sisesta ala {zone_number} \u00fcksikasjad. Ala {zone_number} kustutamiseks j\u00e4ta ala nimi t\u00fchjaks.",
"title": "Seadista AlarmDecoder"
},
"zone_select": {
"data": {
"zone_number": "Ala number"
},
"description": "Sisestage ala number mida soovite lisada, muuta v\u00f5i eemaldada.",
"description": "Sisesta ala number mida soovid lisada, muuta v\u00f5i eemaldada.",
"title": "Seadista AlarmDecoder"
}
}

View File

@@ -0,0 +1,33 @@
{
"config": {
"abort": {
"already_configured": "O dispositivo j\u00e1 est\u00e1 configurado"
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"protocol": {
"data": {
"host": "Servidor",
"port": "Porta"
}
}
}
},
"options": {
"step": {
"zone_details": {
"data": {
"zone_name": "Nome da Zona",
"zone_type": "Tipo de Zona"
}
},
"zone_select": {
"data": {
"zone_number": "N\u00famero da Zona"
}
}
}
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"already_configured": "\u8a2d\u5099\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
"already_configured": "\u88dd\u7f6e\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"create_entry": {
"default": "\u6210\u529f\u9023\u7dda\u81f3 AlarmDecoder\u3002"
@@ -12,8 +12,8 @@
"step": {
"protocol": {
"data": {
"device_baudrate": "\u8a2d\u5099\u901a\u8a0a\u7387",
"device_path": "\u8a2d\u5099\u8def\u5f91",
"device_baudrate": "\u88dd\u7f6e\u901a\u8a0a\u7387",
"device_path": "\u88dd\u7f6e\u8def\u5f91",
"host": "\u4e3b\u6a5f\u7aef",
"port": "\u901a\u8a0a\u57e0"
},

View File

@@ -45,6 +45,11 @@ class AbstractConfig(ABC):
"""Return if proactive mode is enabled."""
return self._unsub_proactive_report is not None
@callback
@abstractmethod
def user_identifier(self):
"""Return an identifier for the user that represents this config."""
async def async_enable_proactive_mode(self):
"""Enable proactive mode."""
if self._unsub_proactive_report is None:

View File

@@ -329,7 +329,7 @@ class AlexaEntity:
"manufacturer": "Home Assistant",
"model": self.entity.domain,
"softwareVersion": __version__,
"customIdentifier": self.entity_id,
"customIdentifier": f"{self.config.user_identifier()}-{self.entity_id}",
},
}

View File

@@ -53,6 +53,11 @@ class AlexaConfig(AbstractConfig):
"""Return config locale."""
return self._config.get(CONF_LOCALE)
@core.callback
def user_identifier(self):
"""Return an identifier for the user that represents this config."""
return ""
def should_expose(self, entity_id):
"""If an entity should be exposed."""
return self._config[CONF_FILTER](entity_id)

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"cannot_connect": "Tilkobling mislyktes",
"missing_configuration": "Komponenten er ikke konfigurert. Vennligst f\u00f8lg dokumentasjonen.",
"missing_configuration": "Komponenten er ikke konfigurert, vennligst f\u00f8lg dokumentasjonen",
"no_url_available": "Ingen URL tilgjengelig. For informasjon om denne feilen, [sjekk hjelpseksjonen]({docs_url})",
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},

View File

@@ -1,5 +1,11 @@
{
"config": {
"abort": {
"cannot_connect": "Falha na liga\u00e7\u00e3o",
"missing_configuration": "O componente n\u00e3o est\u00e1 configurado. Por favor, siga a documenta\u00e7\u00e3o.",
"no_url_available": "Nenhum URL dispon\u00edvel. Para obter informa\u00e7\u00f5es sobre esse erro, [verifique a sec\u00e7\u00e3o de ajuda]({docs_url})",
"single_instance_allowed": "J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"step": {
"pick_implementation": {
"title": "Escolha o m\u00e9todo de autentica\u00e7\u00e3o"

View File

@@ -4,7 +4,7 @@
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"missing_configuration": "\u5143\u4ef6\u5c1a\u672a\u8a2d\u7f6e\uff0c\u8acb\u53c3\u95b1\u6587\u4ef6\u8aaa\u660e\u3002",
"no_url_available": "\u6c92\u6709\u53ef\u7528\u7684\u7db2\u5740\u3002\u95dc\u65bc\u6b64\u932f\u8aa4\u66f4\u8a73\u7d30\u8a0a\u606f\uff0c[\u9ede\u9078\u5354\u52a9\u7ae0\u7bc0]({docs_url})",
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u8a2d\u5099\u3002"
"single_instance_allowed": "\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
},
"step": {
"hassio_confirm": {

View File

@@ -2,6 +2,7 @@
import logging
import boto3
import botocore
import voluptuous as vol
from homeassistant.components.tts import PLATFORM_SCHEMA, Provider
@@ -41,6 +42,7 @@ CONF_SAMPLE_RATE = "sample_rate"
CONF_TEXT_TYPE = "text_type"
SUPPORTED_VOICES = [
"Olivia", # Female, Australian, Neural
"Zhiyu", # Chinese
"Mads",
"Naja", # Danish
@@ -125,6 +127,10 @@ DEFAULT_TEXT_TYPE = "text"
DEFAULT_SAMPLE_RATES = {"mp3": "22050", "ogg_vorbis": "22050", "pcm": "16000"}
AWS_CONF_CONNECT_TIMEOUT = 10
AWS_CONF_READ_TIMEOUT = 5
AWS_CONF_MAX_POOL_CONNECTIONS = 1
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_REGION, default=DEFAULT_REGION): vol.In(SUPPORTED_REGIONS),
@@ -167,6 +173,11 @@ def get_engine(hass, config, discovery_info=None):
CONF_REGION: config[CONF_REGION],
CONF_ACCESS_KEY_ID: config.get(CONF_ACCESS_KEY_ID),
CONF_SECRET_ACCESS_KEY: config.get(CONF_SECRET_ACCESS_KEY),
"config": botocore.config.Config(
connect_timeout=AWS_CONF_CONNECT_TIMEOUT,
read_timeout=AWS_CONF_READ_TIMEOUT,
max_pool_connections=AWS_CONF_MAX_POOL_CONNECTIONS,
),
}
del config[CONF_REGION]
@@ -229,6 +240,7 @@ class AmazonPollyProvider(Provider):
_LOGGER.error("%s does not support the %s language", voice_id, language)
return None, None
_LOGGER.debug("Requesting TTS file for text: %s", message)
resp = self.client.synthesize_speech(
Engine=self.config[CONF_ENGINE],
OutputFormat=self.config[CONF_OUTPUT_FORMAT],
@@ -238,6 +250,7 @@ class AmazonPollyProvider(Provider):
VoiceId=voice_id,
)
_LOGGER.debug("Reply received for TTS: %s", message)
return (
CONTENT_TYPE_EXTENSIONS[resp.get("ContentType")],
resp.get("AudioStream").read(),

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "Ukjent feil ved oppretting av tilgangstoken.",
"already_configured": "Kontoen er allerede konfigurert",
"missing_configuration": "Komponenten er ikke konfigurert. Vennligst f\u00f8lg dokumentasjonen."
"missing_configuration": "Komponenten er ikke konfigurert, vennligst f\u00f8lg dokumentasjonen"
},
"create_entry": {
"default": "Vellykket godkjenning"

View File

@@ -0,0 +1,11 @@
{
"config": {
"abort": {
"already_configured": "Conta j\u00e1 configurada",
"missing_configuration": "O componente n\u00e3o est\u00e1 configurado. Por favor, siga a documenta\u00e7\u00e3o."
},
"create_entry": {
"default": "Autenticado com sucesso"
}
}
}

View File

@@ -1,5 +1,8 @@
{
"config": {
"abort": {
"already_configured": "O servi\u00e7o j\u00e1 est\u00e1 configurado"
},
"error": {
"invalid_key": "Chave de API e/ou chave de aplica\u00e7\u00e3o inv\u00e1lidas",
"no_devices": "Nenhum dispositivo encontrado na conta"

View File

@@ -5,7 +5,7 @@
},
"error": {
"invalid_key": "API \u5bc6\u9470\u7121\u6548",
"no_devices": "\u5e33\u865f\u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u8a2d\u5099"
"no_devices": "\u5e33\u865f\u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u88dd\u7f6e"
},
"step": {
"user": {

View File

@@ -4,7 +4,7 @@
"documentation": "https://www.home-assistant.io/integrations/androidtv",
"requirements": [
"adb-shell[async]==0.2.1",
"androidtv[async]==0.0.56",
"androidtv[async]==0.0.57",
"pure-python-adb[async]==0.3.0.dev0"
],
"codeowners": ["@JeffLIrion"]

View File

@@ -15,6 +15,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
)
from homeassistant.core import callback
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.dispatcher import (
async_dispatcher_connect,
@@ -135,15 +136,6 @@ class AppleTVEntity(Entity):
def async_device_disconnected(self):
"""Handle when connection was lost to device."""
@property
def device_info(self):
"""Return the device info."""
return {
"identifiers": {(DOMAIN, self._identifier)},
"manufacturer": "Apple",
"name": self.name,
}
@property
def name(self):
"""Return the name of the device."""
@@ -337,6 +329,8 @@ class AppleTVManager:
self._dispatch_send(SIGNAL_CONNECTED, self.atv)
self._address_updated(str(conf.address))
await self._async_setup_device_registry()
self._connection_attempts = 0
if self._connection_was_lost:
_LOGGER.info(
@@ -344,6 +338,27 @@ class AppleTVManager:
)
self._connection_was_lost = False
async def _async_setup_device_registry(self):
attrs = {
"identifiers": {(DOMAIN, self.config_entry.unique_id)},
"manufacturer": "Apple",
"name": self.config_entry.data[CONF_NAME],
}
if self.atv:
dev_info = self.atv.device_info
attrs["model"] = "Apple TV " + dev_info.model.name.replace("Gen", "")
attrs["sw_version"] = dev_info.version
if dev_info.mac:
attrs["connections"] = {(dr.CONNECTION_NETWORK_MAC, dev_info.mac)}
device_registry = await dr.async_get_registry(self.hass)
device_registry.async_get_or_create(
config_entry_id=self.config_entry.entry_id, **attrs
)
@property
def is_connecting(self):
"""Return true if connection is in progress."""

View File

@@ -1,7 +1,7 @@
"""Support for Apple TV media player."""
import logging
from pyatv.const import DeviceState, MediaType
from pyatv.const import DeviceState, FeatureName, FeatureState, MediaType
from homeassistant.components.media_player import MediaPlayerEntity
from homeassistant.components.media_player.const import (
@@ -107,6 +107,22 @@ class AppleTvMediaPlayer(AppleTVEntity, MediaPlayerEntity):
self._playing = None
self.async_write_ha_state()
@property
def app_id(self):
"""ID of the current running app."""
if self.atv:
if self.atv.features.in_state(FeatureState.Available, FeatureName.App):
return self.atv.metadata.app.identifier
return None
@property
def app_name(self):
"""Name of the current running app."""
if self.atv:
if self.atv.features.in_state(FeatureState.Available, FeatureName.App):
return self.atv.metadata.app.name
return None
@property
def media_content_type(self):
"""Content type of current playing media."""
@@ -168,11 +184,31 @@ class AppleTvMediaPlayer(AppleTVEntity, MediaPlayerEntity):
return self._playing.title
return None
@property
def media_artist(self):
"""Artist of current playing media, music track only."""
if self._is_feature_available(FeatureName.Artist):
return self._playing.artist
return None
@property
def media_album_name(self):
"""Album name of current playing media, music track only."""
if self._is_feature_available(FeatureName.Album):
return self._playing.album
return None
@property
def supported_features(self):
"""Flag media player features that are supported."""
return SUPPORT_APPLE_TV
def _is_feature_available(self, feature):
"""Return if a feature is available."""
if self.atv and self._playing:
return self.atv.features.in_state(FeatureState.Available, feature)
return False
async def async_turn_on(self):
"""Turn the media player on."""
await self.manager.connect()

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "El dispositiu ja est\u00e0 configurat",
"already_in_progress": "El flux de configuraci\u00f3 ja est\u00e0 en curs",
"backoff": "En aquests moments el dispositiu no accepta sol\u00b7licituds de vinculaci\u00f3 (\u00e9s possible que hagis introdu\u00eft un codi PIN inv\u00e0lid massa vegades), torna-ho a provar m\u00e9s tard.",
"device_did_not_pair": "No s'ha fet cap intent d'acabar el proc\u00e9s de vinculaci\u00f3 des del dispositiu.",
"invalid_config": "La configuraci\u00f3 d'aquest dispositiu no est\u00e0 completa. Intenta'l tornar a afegir.",
"no_devices_found": "No s'han trobat dispositius a la xarxa",
"unknown": "Error inesperat"
},
"error": {
"already_configured": "El dispositiu ja est\u00e0 configurat",
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida",
"no_devices_found": "No s'han trobat dispositius a la xarxa",
"no_usable_service": "S'ha trobat un dispositiu per\u00f2 no ha pogut identificar cap manera d'establir-hi una connexi\u00f3. Si continues veient aquest missatge, prova d'especificar-ne l'adre\u00e7a IP o reinicia l'Apple TV.",
"unknown": "Error inesperat"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Est\u00e0s a punt d'afegir l'Apple TV amb nom \"{name}\" a Home Assistant.\n\n **Per completar el proc\u00e9s, \u00e9s possible que hagis d'introduir alguns codis PIN.** \n\n Tingues en compte que *no* pots apagar la teva Apple TV a trav\u00e9s d'aquesta integraci\u00f3. Nom\u00e9s es desactivar\u00e0 el reproductor de Home Assistant.",
"title": "Confirma l'addici\u00f3 de l'Apple TV"
},
"pair_no_pin": {
"description": "Vinculaci\u00f3 necess\u00e0ria amb el servei `{protocol}`. Per continuar, introdueix el PIN {pin} a la teva Apple TV.",
"title": "Vinculaci\u00f3"
},
"pair_with_pin": {
"data": {
"pin": "Codi PIN"
},
"description": "Amb el protocol \"{protocol}\" \u00e9s necess\u00e0ria la vinculaci\u00f3. Introdueix el codi PIN que es mostra en pantalla. Els zeros a l'inici, si n'hi ha, s'han d'ometre; per exemple: introdueix 123 si el codi mostrat \u00e9s 0123.",
"title": "Vinculaci\u00f3"
},
"reconfigure": {
"description": "Aquesta Apple TV est\u00e0 tenint problemes de connexi\u00f3 i s'ha de tornar a configurar.",
"title": "Reconfiguraci\u00f3 de dispositiu"
},
"service_problem": {
"description": "S'ha produ\u00eft un problema en la vinculaci\u00f3 protocol \"{protocol}\". S'ignorar\u00e0.",
"title": "No s'ha pogut afegir el servei"
},
"user": {
"data": {
"device_input": "Dispositiu"
},
"description": "Comen\u00e7a introduint el nom del dispositiu (per exemple, cuina o dormitori) o l'adre\u00e7a IP de l'Apple TV que vulguis afegir. Si autom\u00e0ticament es troben dispositius a la teva xarxa, es mostra a continuaci\u00f3. \n\n Si no veus el teu dispositiu o tens problemes, prova d'especificar l'adre\u00e7a IP del dispositiu. \n\n {devices}",
"title": "Configuraci\u00f3 d'una nova Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "No engeguis el dispositiu en iniciar Home Assistant"
},
"description": "Configuraci\u00f3 dels par\u00e0metres generals del dispositiu"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,60 @@
{
"config": {
"abort": {
"already_configured_device": "Za\u0159\u00edzen\u00ed je ji\u017e nastaveno",
"already_in_progress": "Konfigurace ji\u017e prob\u00edh\u00e1",
"invalid_config": "Nastaven\u00ed tohoto za\u0159\u00edzen\u00ed je ne\u00fapln\u00e9. Zkuste jej p\u0159idat znovu.",
"no_devices_found": "V s\u00edti nebyla nalezena \u017e\u00e1dn\u00e1 za\u0159\u00edzen\u00ed",
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
},
"error": {
"already_configured": "Za\u0159\u00edzen\u00ed je ji\u017e nastaveno",
"invalid_auth": "Neplatn\u00e9 ov\u011b\u0159en\u00ed",
"no_devices_found": "V s\u00edti nebyla nalezena \u017e\u00e1dn\u00e1 za\u0159\u00edzen\u00ed",
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"title": "Potvrzen\u00ed p\u0159id\u00e1n\u00ed Apple TV"
},
"pair_no_pin": {
"description": "Pro slu\u017ebu `{protocol}` je vy\u017eadov\u00e1no p\u00e1rov\u00e1n\u00ed. Pokra\u010dujte zad\u00e1n\u00edm k\u00f3du PIN {pin} na Apple TV.",
"title": "P\u00e1rov\u00e1n\u00ed"
},
"pair_with_pin": {
"data": {
"pin": "PIN k\u00f3d"
},
"description": "U protokolu `{protocol}` je vy\u017eadov\u00e1no p\u00e1rov\u00e1n\u00ed. Zadejte pros\u00edm PIN k\u00f3d zobrazen\u00fd na obrazovce. \u00davodn\u00ed nuly mus\u00ed b\u00fdt vynech\u00e1ny, tj. zadejte 123, pokud je zobrazen\u00fd k\u00f3d 0123.",
"title": "P\u00e1rov\u00e1n\u00ed"
},
"reconfigure": {
"description": "U t\u00e9to Apple TV doch\u00e1z\u00ed k probl\u00e9m\u016fm s p\u0159ipojen\u00edm a je t\u0159eba ji znovu nastavit.",
"title": "Zm\u011bna konfigurace za\u0159\u00edzen\u00ed"
},
"service_problem": {
"description": "P\u0159i p\u00e1rov\u00e1n\u00ed protokolu `{protocol}` do\u0161lo k probl\u00e9mu. Protokol bude ignorov\u00e1n.",
"title": "Nepoda\u0159ilo se p\u0159idat slu\u017ebu"
},
"user": {
"data": {
"device_input": "Za\u0159\u00edzen\u00ed"
},
"description": "Za\u010dn\u011bte zad\u00e1n\u00edm n\u00e1zvu za\u0159\u00edzen\u00ed (nap\u0159. Kuchyn\u011b nebo lo\u017enice) nebo IP adresy Apple TV, kterou chcete p\u0159idat. Pokud byla ve va\u0161\u00ed s\u00edti automaticky nalezena n\u011bkter\u00e1 za\u0159\u00edzen\u00ed, jsou uvedena n\u00ed\u017ee. \n\n Pokud nevid\u00edte sv\u00e9 za\u0159\u00edzen\u00ed nebo nastaly n\u011bjak\u00e9 probl\u00e9my, zkuste zadat IP adresu za\u0159\u00edzen\u00ed. \n\n {devices}",
"title": "Nastaven\u00ed nov\u00e9 Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Nezap\u00ednejte za\u0159\u00edzen\u00ed dokud se Home Assistant spou\u0161t\u00ed"
},
"description": "Konfigurace obecn\u00fdch mo\u017enost\u00ed za\u0159\u00edzen\u00ed"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "Ger\u00e4t ist bereits konfiguriert",
"already_in_progress": "Der Konfigurationsablauf wird bereits ausgef\u00fchrt",
"backoff": "Das Ger\u00e4t akzeptiert derzeit keine Kopplungsanfragen (M\u00f6glicherweise wurde zu oft ein ung\u00fcltiger PIN-Code eingegeben), versuche es sp\u00e4ter erneut.",
"device_did_not_pair": "Es wurde kein Versuch unternommen, den Kopplungsvorgang vom Ger\u00e4t aus abzuschlie\u00dfen.",
"invalid_config": "Die Konfiguration f\u00fcr dieses Ger\u00e4t ist unvollst\u00e4ndig. Bitte versuche, es erneut hinzuzuf\u00fcgen.",
"no_devices_found": "Keine Ger\u00e4te im Netzwerk gefunden",
"unknown": "Unerwarteter Fehler"
},
"error": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert",
"invalid_auth": "Ung\u00fcltige Authentifizierung",
"no_devices_found": "Keine Ger\u00e4te im Netzwerk gefunden",
"no_usable_service": "Es wurde ein Ger\u00e4t gefunden, aber es konnte keine M\u00f6glichkeit gefunden werden, eine Verbindung zu diesem Ger\u00e4t herzustellen. Wenn diese Meldung weiterhin erscheint, versuche, die IP-Adresse anzugeben oder den Apple TV neu zu starten.",
"unknown": "Unerwarteter Fehler"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Es wird der Apple TV mit dem Namen \" {name} \" zu Home Assistant hinzugef\u00fcgt. \n\n ** Um den Vorgang abzuschlie\u00dfen, m\u00fcssen m\u00f6glicherweise mehrere PIN-Codes eingegeben werden. ** \n\n Bitte beachte, dass der Apple TV mit dieser Integration * nicht * ausgeschalten werden kann. Nur der Media Player in Home Assistant wird ausgeschaltet!",
"title": "Best\u00e4tige das Hinzuf\u00fcgen vom Apple TV"
},
"pair_no_pin": {
"description": "F\u00fcr den Dienst `{protocol}` ist eine Kopplung erforderlich. Bitte gebe die PIN {pin} am Apple TV ein, um fortzufahren.",
"title": "Kopplung"
},
"pair_with_pin": {
"data": {
"pin": "PIN-Code"
},
"description": "F\u00fcr das Protokoll `{protocol}` ist eine Kopplung erforderlich. Bitte gebe den auf dem Bildschirm angezeigten PIN-Code ein. F\u00fchrende Nullen m\u00fcssen weggelassen werden, d.h. gebe 123 ein, wenn der angezeigte Code 0123 lautet.",
"title": "Kopplung"
},
"reconfigure": {
"description": "Dieser Apple TV hat Verbindungsprobleme und muss neu konfiguriert werden.",
"title": "Ger\u00e4teneukonfiguration"
},
"service_problem": {
"description": "Beim Koppeln des Protokolls `{protocol}` ist ein Problem aufgetreten. Es wird ignoriert.",
"title": "Fehler beim Hinzuf\u00fcgen des Dienstes"
},
"user": {
"data": {
"device_input": "Ger\u00e4t"
},
"description": "Gebe zun\u00e4chst den Ger\u00e4tenamen (z. B. K\u00fcche oder Schlafzimmer) oder die IP-Adresse des Apple TV ein, der hinzugef\u00fcgt werden soll. Wenn Ger\u00e4te automatisch im Netzwerk gefunden wurden, werden sie unten angezeigt. \n\nWenn das Ger\u00e4t nicht sichtbar ist oder Probleme auftreten, gebe die IP-Adresse des Ger\u00e4ts an. \n\n{devices}",
"title": "Neuen Apple TV einrichten"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Schalte das Ger\u00e4t nicht ein, wenn Home Assistant startet"
},
"description": "Konfiguriere die allgemeinen Ger\u00e4teeinstellungen"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "El dispositivo ya est\u00e1 configurado",
"already_in_progress": "El flujo de configuraci\u00f3n ya est\u00e1 en proceso",
"backoff": "El dispositivo no acepta solicitudes de emparejamiento en este momento (es posible que hayas introducido un c\u00f3digo PIN no v\u00e1lido demasiadas veces), int\u00e9ntalo de nuevo m\u00e1s tarde.",
"device_did_not_pair": "No se ha intentado finalizar el proceso de emparejamiento desde el dispositivo.",
"invalid_config": "La configuraci\u00f3n para este dispositivo est\u00e1 incompleta. Intenta a\u00f1adirlo de nuevo.",
"no_devices_found": "No se encontraron dispositivos en la red",
"unknown": "Error inesperado"
},
"error": {
"already_configured": "El dispositivo ya est\u00e1 configurado",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
"no_devices_found": "No se encontraron dispositivos en la red",
"no_usable_service": "Se encontr\u00f3 un dispositivo, pero no se pudo identificar ninguna manera de establecer una conexi\u00f3n con \u00e9l. Si sigues viendo este mensaje, intenta especificar su direcci\u00f3n IP o reiniciar el Apple TV.",
"unknown": "Error inesperado"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Est\u00e1s a punto de a\u00f1adir el Apple TV con nombre `{name}` a Home Assistant.\n\n**Para completar el proceso, puede que tengas que introducir varios c\u00f3digos PIN.**\n\nTen en cuenta que *no* podr\u00e1s apagar tu Apple TV con esta integraci\u00f3n. \u00a1S\u00f3lo se apagar\u00e1 el reproductor de medios de Home Assistant!",
"title": "Confirma la adici\u00f3n del Apple TV"
},
"pair_no_pin": {
"description": "El emparejamiento es necesario para el servicio `{protocol}`. Introduce el PIN en tu Apple TV para continuar.",
"title": "Emparejamiento"
},
"pair_with_pin": {
"data": {
"pin": "C\u00f3digo PIN"
},
"description": "El emparejamiento es necesario para el protocolo `{protocol}`. Introduce el c\u00f3digo PIN que aparece en la pantalla. Los ceros iniciales deben ser omitidos, es decir, introduce 123 si el c\u00f3digo mostrado es 0123.",
"title": "Emparejamiento"
},
"reconfigure": {
"description": "Este Apple TV est\u00e1 experimentando algunos problemas de conexi\u00f3n y debe ser reconfigurado.",
"title": "Reconfiguraci\u00f3n del dispositivo"
},
"service_problem": {
"description": "Se ha producido un problema durante el protocolo de emparejamiento `{protocol}`. Ser\u00e1 ignorado.",
"title": "Error al a\u00f1adir el servicio"
},
"user": {
"data": {
"device_input": "Dispositivo"
},
"description": "Empieza introduciendo el nombre del dispositivo (eje. Cocina o Dormitorio) o la direcci\u00f3n IP del Apple TV que quieres a\u00f1adir. Si se han econtrado dispositivos en tu red, se mostrar\u00e1n a continuaci\u00f3n.\n\nSi no puedes ver el dispositivo o experimentas alg\u00fan problema, intente especificar la direcci\u00f3n IP del dispositivo.\n\n{devices}",
"title": "Configurar un nuevo Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "No encender el dispositivo al iniciar Home Assistant"
},
"description": "Configurar los ajustes generales del dispositivo"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,51 @@
{
"config": {
"error": {
"already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9",
"no_devices_found": "Aucun appareil d\u00e9tect\u00e9 sur le r\u00e9seau",
"no_usable_service": "Un dispositif a \u00e9t\u00e9 trouv\u00e9, mais aucun moyen d\u2019\u00e9tablir un lien avec lui. Si vous continuez \u00e0 voir ce message, essayez de sp\u00e9cifier son adresse IP ou de red\u00e9marrer votre Apple TV.",
"unknown": "Erreur innatendue"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Vous \u00eates sur le point d'ajouter l'Apple TV nomm\u00e9e \u00ab {name} \u00bb \u00e0 Home Assistant. \n\n **Pour terminer le processus, vous devrez peut-\u00eatre saisir plusieurs codes PIN.** \n\n Veuillez noter que vous ne pourrez *pas* \u00e9teindre votre Apple TV avec cette int\u00e9gration. Seul le lecteur multim\u00e9dia de Home Assistant s'\u00e9teint!",
"title": "Confirmer l'ajout d'Apple TV"
},
"pair_no_pin": {
"description": "L'appairage est requis pour le service ` {protocol} `. Veuillez saisir le code PIN {pin} sur votre Apple TV pour continuer.",
"title": "Appairage"
},
"pair_with_pin": {
"data": {
"pin": "Code PIN"
}
},
"reconfigure": {
"title": "Reconfiguration de l'appareil"
},
"service_problem": {
"description": "Un probl\u00e8me est survenu lors du couplage du protocole \u00ab {protocol} \u00bb. Il sera ignor\u00e9.",
"title": "\u00c9chec de l'ajout du service"
},
"user": {
"data": {
"device_input": "Appareil"
},
"description": "Commencez par entrer le nom de l'appareil (par exemple, Cuisine ou Chambre) ou l'adresse IP de l'Apple TV que vous souhaitez ajouter. Si des appareils ont \u00e9t\u00e9 d\u00e9tect\u00e9s automatiquement sur votre r\u00e9seau, ils sont affich\u00e9s ci-dessous. \n\n Si vous ne voyez pas votre appareil ou rencontrez des probl\u00e8mes, essayez de sp\u00e9cifier l'adresse IP de l'appareil. \n\n {devices}",
"title": "Configurer une nouvelle Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "N'allumez pas l'appareil lors du d\u00e9marrage de Home Assistant"
},
"description": "Configurer les param\u00e8tres g\u00e9n\u00e9raux de l'appareil"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,41 @@
{
"config": {
"abort": {
"no_devices_found": "Nincs eszk\u00f6z a h\u00e1l\u00f3zaton",
"unknown": "V\u00e1ratlan hiba"
},
"error": {
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van",
"invalid_auth": "Azonos\u00edt\u00e1s nem siker\u00fclt",
"no_devices_found": "Nem tal\u00e1lhat\u00f3 eszk\u00f6z a h\u00e1l\u00f3zaton",
"unknown": "V\u00e1ratlan hiba"
},
"step": {
"confirm": {
"title": "Apple TV sikeresen hozz\u00e1adva"
},
"pair_no_pin": {
"title": "P\u00e1ros\u00edt\u00e1s"
},
"pair_with_pin": {
"data": {
"pin": "PIN K\u00f3d"
},
"title": "P\u00e1ros\u00edt\u00e1s"
},
"reconfigure": {
"title": "Eszk\u00f6z \u00fajrakonfigur\u00e1l\u00e1sa"
},
"service_problem": {
"title": "Nem siker\u00fclt hozz\u00e1adni a szolg\u00e1ltat\u00e1st"
},
"user": {
"data": {
"device_input": "Eszk\u00f6z"
},
"title": "\u00daj Apple TV be\u00e1ll\u00edt\u00e1sa"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "Il dispositivo \u00e8 gi\u00e0 configurato",
"already_in_progress": "Il flusso di configurazione \u00e8 gi\u00e0 in corso",
"backoff": "Il dispositivo non accetta richieste di abbinamento in questo momento (potresti aver inserito un codice PIN non valido troppe volte), riprova pi\u00f9 tardi.",
"device_did_not_pair": "Nessun tentativo di completare il processo di abbinamento \u00e8 stato effettuato dal dispositivo.",
"invalid_config": "La configurazione per questo dispositivo \u00e8 incompleta. Prova ad aggiungerlo di nuovo.",
"no_devices_found": "Nessun dispositivo trovato sulla rete",
"unknown": "Errore imprevisto"
},
"error": {
"already_configured": "Il dispositivo \u00e8 gi\u00e0 configurato",
"invalid_auth": "Autenticazione non valida",
"no_devices_found": "Nessun dispositivo trovato sulla rete",
"no_usable_service": "\u00c8 stato trovato un dispositivo ma non \u00e8 stato possibile identificare alcun modo per stabilire una connessione ad esso. Se continui a vedere questo messaggio, prova a specificarne l'indirizzo IP o a riavviare l'Apple TV.",
"unknown": "Errore imprevisto"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Stai per aggiungere l'Apple TV denominata \"{name}\" a Home Assistant. \n\n **Per completare la procedura, potrebbe essere necessario inserire pi\u00f9 codici PIN.** \n\nTieni presente che *non* sarai in grado di spegnere la tua Apple TV con questa integrazione. Solo il lettore multimediale in Home Assistant si spegner\u00e0!",
"title": "Conferma l'aggiunta di Apple TV"
},
"pair_no_pin": {
"description": "L'abbinamento \u00e8 richiesto per il servizio \"{protocol}\". Inserisci il PIN {pin} sulla tua Apple TV per continuare.",
"title": "Abbinamento"
},
"pair_with_pin": {
"data": {
"pin": "Codice PIN"
},
"description": "L'abbinamento \u00e8 richiesto per il protocollo \"{protocol}\". Immettere il codice PIN visualizzato sullo schermo. Gli zeri iniziali devono essere omessi, ovvero immettere 123 se il codice visualizzato \u00e8 0123.",
"title": "Abbinamento"
},
"reconfigure": {
"description": "Questa Apple TV sta riscontrando alcune difficolt\u00e0 di connessione e deve essere riconfigurata.",
"title": "Riconfigurazione del dispositivo"
},
"service_problem": {
"description": "Si \u00e8 verificato un problema durante l'associazione del protocollo \"{protocol}\". Sar\u00e0 ignorato.",
"title": "Impossibile aggiungere il servizio"
},
"user": {
"data": {
"device_input": "Dispositivo"
},
"description": "Inizia inserendo il nome del dispositivo (es. Cucina o Camera da letto) o l'indirizzo IP dell'Apple TV che desideri aggiungere. Se sono stati rilevati automaticamente dei dispositivi sulla rete, verranno visualizzati di seguito. \n\n Se non riesci a vedere il tuo dispositivo o riscontri problemi, prova a specificare l'indirizzo IP del dispositivo. \n\n {devices}",
"title": "Configura una nuova Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Non accendere il dispositivo all'avvio di Home Assistant"
},
"description": "Configurare le impostazioni generali del dispositivo"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,52 @@
{
"config": {
"abort": {
"already_configured_device": "Apparat ass scho konfigur\u00e9iert",
"already_in_progress": "Konfiguratioun's Oflaf ass schon am gaang",
"unknown": "Onerwaarte Feeler"
},
"error": {
"unknown": "Onerwaarte Feeler"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Du bass um Punkt fir den Apple TV mam Numm \"{name}\" am Home Assistant dob\u00e4izesetzen.\n\n**Fir de Prozess ofzeschl\u00e9issen, muss Du vill\u00e4icht m\u00e9i PIN-Coden aginn.**\n\nNot\u00e9ier w.e.g dass Du d\u00e4in Apple TV mat d\u00ebser Integratioun *net\" ausschalten kanns. N\u00ebmmen de Mediaspiller am Home Assistant schalt aus!",
"title": "Apple TV dob\u00e4isetzen best\u00e4tegen"
},
"pair_no_pin": {
"description": "Kopplung ass n\u00e9ideg fir de `{protocol}` Service. G\u00ebff de PIN {pin} op dengem Apple TV an fir w\u00e9iderzefueren",
"title": "Kopplung"
},
"pair_with_pin": {
"data": {
"pin": "PIN Code"
},
"description": "Kopplung ass n\u00e9ideg fir de `{protocol}` Protokoll. G\u00ebff de PIN code un deen um Ecran ugewise g\u00ebtt. Nullen op der 1ter Plaatz ginn ewechgelooss, dh g\u00ebff 123 wann de gewise Code 0123 ass.",
"title": "Kopplung"
},
"reconfigure": {
"description": "D\u00ebsen Apple TV huet e puer Verbindungsschwieregkeeten a muss nei konfigur\u00e9iert ginn.",
"title": "Apparat Rekonfiguratioun"
},
"user": {
"data": {
"device_input": "Apparat"
},
"description": "F\u00e4nk un andeems Du den Numm vum Apparat (z. B. Kichen oder Schlofkummer) oder IP Adress vum Apple TV deen soll dob\u00e4igesat ginn ag\u00ebss.\n\nFalls d\u00e4in Apparat nez ugewise g\u00ebtt oder iergendwelch Problemer hues, prob\u00e9ier d'IP Adress vum Apparat anzeginn.\n\n{devices}",
"title": "Neien Apple TV ariichten"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Schlalt den Apparat net un wann den Home Assistant start"
},
"description": "Allgemeng Apparat Astellungen konfigur\u00e9ieren"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,9 @@
{
"config": {
"abort": {
"backoff": "Het apparaat accepteert op dit moment geen koppelingsverzoeken (u heeft mogelijk te vaak een ongeldige pincode ingevoerd), probeer het later opnieuw.",
"device_did_not_pair": "Er is geen poging gedaan om het koppelingsproces te voltooien vanaf het apparaat.",
"invalid_config": "De configuratie voor dit apparaat is onvolledig. Probeer het opnieuw toe te voegen."
}
}
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "Enheten er allerede konfigurert",
"already_in_progress": "Konfigurasjonsflyten p\u00e5g\u00e5r allerede",
"backoff": "Enheten godtar ikke parringsanmodninger for \u00f8yeblikket (du har kanskje angitt en ugyldig PIN-kode for mange ganger), pr\u00f8v igjen senere.",
"device_did_not_pair": "Ingen fors\u00f8k p\u00e5 \u00e5 fullf\u00f8re paringsprosessen ble gjort fra enheten",
"invalid_config": "Konfigurasjonen for denne enheten er ufullstendig. Pr\u00f8v \u00e5 legge den til p\u00e5 nytt.",
"no_devices_found": "Ingen enheter funnet p\u00e5 nettverket",
"unknown": "Uventet feil"
},
"error": {
"already_configured": "Enheten er allerede konfigurert",
"invalid_auth": "Ugyldig godkjenning",
"no_devices_found": "Ingen enheter funnet p\u00e5 nettverket",
"no_usable_service": "En enhet ble funnet, men kunne ikke identifisere noen m\u00e5te \u00e5 etablere en tilkobling til den. Hvis du fortsetter \u00e5 se denne meldingen, kan du pr\u00f8ve \u00e5 angi IP-adressen eller starte Apple TV p\u00e5 nytt.",
"unknown": "Uventet feil"
},
"flow_title": "",
"step": {
"confirm": {
"description": "Du er i ferd med \u00e5 legge til Apple TV med navnet {name} i Home Assistant.\n\n**For \u00e5 fullf\u00f8re prosessen m\u00e5 du kanskje angi flere PIN-koder.**\n\nV\u00e6r oppmerksom p\u00e5 at du *ikke* kan sl\u00e5 av Apple TV med denne integreringen. Bare mediespilleren i Home Assistant sl\u00e5r seg av!",
"title": "Bekreft at du legger til Apple TV"
},
"pair_no_pin": {
"description": "Paring kreves for tjenesten {protocol}. Skriv inn PIN-koden {pin} p\u00e5 Apple TV for \u00e5 fortsette.",
"title": "Sammenkobling"
},
"pair_with_pin": {
"data": {
"pin": "PIN kode"
},
"description": "Paring kreves for protokollen {protocol}. Skriv inn PIN-koden som vises p\u00e5 skjermen. Ledende nuller utelates, det vil si angi 123 hvis den viste koden er 0123.",
"title": "Sammenkobling"
},
"reconfigure": {
"description": "Denne Apple TVen har noen tilkoblingsvansker og m\u00e5 konfigureres p\u00e5 nytt",
"title": "Omkonfigurering av enheter"
},
"service_problem": {
"description": "Det oppstod et problem under sammenkobling av protokollen \"{protocol}\". Det vil bli ignorert.",
"title": "Kunne ikke legge til tjenesten"
},
"user": {
"data": {
"device_input": "Enhet"
},
"description": "Start med \u00e5 skrive inn enhetsnavnet (f.eks. kj\u00f8kken eller soverom) eller IP-adressen til Apple TV-en du vil legge til. Hvis noen enheter ble funnet automatisk p\u00e5 nettverket ditt, vises de nedenfor.\n\nHvis du ikke kan se enheten eller oppleve problemer, kan du pr\u00f8ve \u00e5 angi enhetens IP-adresse.\n\n{devices}",
"title": "Konfigurere en ny Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Ikke sl\u00e5 p\u00e5 enheten n\u00e5r du starter Home Assistant"
},
"description": "Konfigurer generelle enhetsinnstillinger"
}
}
},
"title": ""
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "Urz\u0105dzenie jest ju\u017c skonfigurowane",
"already_in_progress": "Konfiguracja jest ju\u017c w toku",
"backoff": "Urz\u0105dzenie w tej chwili nie akceptuje \u017c\u0105da\u0144 parowania (by\u0107 mo\u017ce zbyt wiele razy wpisa\u0142e\u015b nieprawid\u0142owy kod PIN), spr\u00f3buj ponownie p\u00f3\u017aniej.",
"device_did_not_pair": "Nie podj\u0119to pr\u00f3by zako\u0144czenia procesu parowania z urz\u0105dzenia.",
"invalid_config": "Konfiguracja tego urz\u0105dzenia jest niekompletna. Spr\u00f3buj doda\u0107 go ponownie.",
"no_devices_found": "Nie znaleziono urz\u0105dze\u0144 w sieci",
"unknown": "Nieoczekiwany b\u0142\u0105d"
},
"error": {
"already_configured": "Urz\u0105dzenie jest ju\u017c skonfigurowane",
"invalid_auth": "Niepoprawne uwierzytelnienie",
"no_devices_found": "Nie znaleziono urz\u0105dze\u0144 w sieci",
"no_usable_service": "Znaleziono urz\u0105dzenie, ale nie uda\u0142o si\u0119 zidentyfikowa\u0107 \u017cadnego sposobu na nawi\u0105zanie z nim po\u0142\u0105czenia. Je\u015bli nadal widzisz t\u0119 wiadomo\u015b\u0107, spr\u00f3buj poda\u0107 jego adres IP lub uruchom ponownie Apple TV.",
"unknown": "Nieoczekiwany b\u0142\u0105d"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Zamierzasz doda\u0107 Apple TV o nazwie \"{name}\" do Home Assistanta. \n\n **Aby uko\u0144czy\u0107 ca\u0142y proces, mo\u017ce by\u0107 konieczne wprowadzenie wielu kod\u00f3w PIN.** \n\nPami\u0119taj, \u017ce \"NIE\" b\u0119dziesz w stanie wy\u0142\u0105czy\u0107 Apple TV dzi\u0119ki tej integracji. Wy\u0142\u0105cza si\u0119 tylko sam odtwarzacz multimedialny w Home Assistant!",
"title": "Potwierdzenie dodania Apple TV"
},
"pair_no_pin": {
"description": "Parowanie jest wymagane dla us\u0142ugi \"{protocol}\". Aby kontynuowa\u0107, wprowad\u017a kod {pin} na swoim Apple TV.",
"title": "Parowanie"
},
"pair_with_pin": {
"data": {
"pin": "Kod PIN"
},
"description": "Parowanie jest wymagane dla protoko\u0142u \"{protocol}\". Wprowad\u017a kod PIN wy\u015bwietlony na ekranie. Zera poprzedzaj\u0105ce nale\u017cy pomin\u0105\u0107, tj. wpisa\u0107 123, zamiast 0123.",
"title": "Parowanie"
},
"reconfigure": {
"description": "Ten Apple TV ma pewne problemy z po\u0142\u0105czeniem i musi zosta\u0107 ponownie skonfigurowany.",
"title": "Ponowna konfiguracja urz\u0105dzenia"
},
"service_problem": {
"description": "Wyst\u0105pi\u0142 problem podczas parowania protoko\u0142u \"{protocol}\". Zostanie on zignorowany.",
"title": "Nie uda\u0142o si\u0119 doda\u0107 us\u0142ugi"
},
"user": {
"data": {
"device_input": "Urz\u0105dzenie"
},
"description": "Zacznij od wprowadzenia nazwy urz\u0105dzenia (np. Kuchnia lub Sypialnia) lub adresu IP Apple TV, kt\u00f3re chcesz doda\u0107. Je\u015bli jakie\u015b urz\u0105dzenia zosta\u0142y automatycznie znalezione w Twojej sieci, s\u0105 one pokazane poni\u017cej. \n\nJe\u015bli nie widzisz swojego urz\u0105dzenia lub wyst\u0119puj\u0105 jakiekolwiek problemy, spr\u00f3buj okre\u015bli\u0107 adres IP urz\u0105dzenia. \n\n{devices}",
"title": "Konfiguracja nowego Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "Nie w\u0142\u0105czaj urz\u0105dzenia podczas uruchamiania Home Assistanta"
},
"description": "Skonfiguruj og\u00f3lne ustawienia urz\u0105dzenia"
}
}
},
"title": "Apple TV"
}

View File

@@ -0,0 +1,61 @@
{
"config": {
"abort": {
"already_configured_device": "O dispositivo j\u00e1 est\u00e1 configurado",
"already_in_progress": "O processo de configura\u00e7\u00e3o j\u00e1 est\u00e1 a decorrer",
"no_devices_found": "Nenhum dispositivo encontrado na rede",
"unknown": "Erro inesperado"
},
"error": {
"already_configured": "O dispositivo j\u00e1 est\u00e1 configurado",
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida",
"no_devices_found": "Nenhum dispositivo encontrado na rede",
"no_usable_service": "Foi encontrado um dispositivo, mas n\u00e3o foi poss\u00edvel identificar nenhuma forma de estabelecer uma liga\u00e7\u00e3o com ele. Se continuar a ver esta mensagem, tente especificar o endere\u00e7o IP ou reiniciar a sua Apple TV.",
"unknown": "Erro inesperado"
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "Est\u00e1 prestes a adicionar a Apple TV com o nome `{name}` ao Home Assistant.\n\n** Para completar o processo, poder\u00e1 ter que inserir v\u00e1rios c\u00f3digos PIN.**\n\nNote que *n\u00e3o* conseguir\u00e1 desligar a sua Apple TV com esta integra\u00e7\u00e3o. Apenas o media player no Home Assistant ser\u00e1 desligado!",
"title": "Confirme a adi\u00e7\u00e3o da Apple TV"
},
"pair_no_pin": {
"description": "\u00c9 necess\u00e1rio fazer o emparelhamento com protocolo `{protocol}`. Insira o c\u00f3digo PIN {pin} na sua Apple TV para continuar.",
"title": "Emparelhamento"
},
"pair_with_pin": {
"data": {
"pin": "C\u00f3digo PIN"
},
"description": "\u00c9 necess\u00e1rio fazer o emparelhamento com protocolo `{protocol}`. Insira o c\u00f3digo PIN exibido no ecran. Os zeros iniciais devem ser omitidos, ou seja, digite 123 se o c\u00f3digo exibido for 0123.",
"title": "Emparelhamento"
},
"reconfigure": {
"description": "Esta Apple TV apresenta dificuldades de liga\u00e7\u00e3o e precisa ser reconfigurada.",
"title": "Reconfigura\u00e7\u00e3o do dispositivo"
},
"service_problem": {
"description": "Ocorreu um problema durante o protocolo de emparelhamento `{protocol}`. Ser\u00e1 ignorado.",
"title": "Falha ao adicionar servi\u00e7o"
},
"user": {
"data": {
"device_input": "Dispositivo"
},
"description": "Comece por introduzir o nome do dispositivo (por exemplo, Cozinha ou Quarto) ou o endere\u00e7o IP da Apple TV que pretende adicionar. Se algum dispositivo foi automaticamente encontrado na sua rede, ele \u00e9 mostrado abaixo.\n\nSe n\u00e3o conseguir ver o seu dispositivo ou se tiver algum problema, tente especificar o endere\u00e7o IP do dispositivo.\n\n{devices}",
"title": "Configure uma nova Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "N\u00e3o ligue o dispositivo ao iniciar o Home Assistant"
},
"description": "Definir as configura\u00e7\u00f5es gerais do dispositivo"
}
}
},
"title": ""
}

View File

@@ -0,0 +1,64 @@
{
"config": {
"abort": {
"already_configured_device": "\u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 Home Assistant.",
"already_in_progress": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f.",
"backoff": "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0412\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0432\u0432\u043e\u0434\u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 PIN-\u043a\u043e\u0434), \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
"device_did_not_pair": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u043f\u044b\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f.",
"invalid_config": "\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0435\u0449\u0451 \u0440\u0430\u0437.",
"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.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"error": {
"already_configured": "\u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 Home Assistant.",
"invalid_auth": "\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f.",
"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.",
"no_usable_service": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443. \u0415\u0441\u043b\u0438 \u0412\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043e.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"flow_title": "Apple TV: {name}",
"step": {
"confirm": {
"description": "\u0412\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Apple TV `{name}` \u0432 Home Assistant. \n\n**\u0414\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0412\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e PIN-\u043a\u043e\u0434\u043e\u0432.** \n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0412\u044b *\u043d\u0435* \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c Apple TV \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u0412 Home Assistant \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440!",
"title": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Apple TV"
},
"pair_no_pin": {
"description": "\u0421\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043b\u0443\u0436\u0431\u044b`{protocol}`. \u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 PIN-\u043a\u043e\u0434 {pin} \u043d\u0430 \u0412\u0430\u0448\u0435\u043c Apple TV.",
"title": "\u0421\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435"
},
"pair_with_pin": {
"data": {
"pin": "PIN-\u043a\u043e\u0434"
},
"description": "\u0421\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 `{protocol}`. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 PIN-\u043a\u043e\u0434, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u041f\u0435\u0440\u0432\u044b\u0435 \u043d\u0443\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u043f\u0443\u0449\u0435\u043d\u044b, \u0442.\u0435. \u0432\u0432\u0435\u0434\u0438\u0442\u0435 123, \u0435\u0441\u043b\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 0123.",
"title": "\u0421\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435"
},
"reconfigure": {
"description": "\u0423 \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Apple TV \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c.",
"title": "\u041f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"
},
"service_problem": {
"description": "\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 `{protocol}`. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e.",
"title": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443"
},
"user": {
"data": {
"device_input": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
},
"description": "\u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441 \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u041a\u0443\u0445\u043d\u044f \u0438\u043b\u0438 \u0421\u043f\u0430\u043b\u044c\u043d\u044f) \u0438\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430 Apple TV, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c. \u0415\u0441\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u044b\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0432 \u0412\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438, \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043d\u0438\u0436\u0435. \n\n\u0415\u0441\u043b\u0438 \u0412\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \n\n {devices}",
"title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e Apple TV"
}
}
},
"options": {
"step": {
"init": {
"data": {
"start_off": "\u041d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Home Assistant"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"
}
}
},
"title": "Apple TV"
}

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