Compare commits

...

325 Commits

Author SHA1 Message Date
Paulus Schoutsen
e2d2f69cb0 Merge pull request #27374 from home-assistant/rc
0.100.0
2019-10-09 18:05:46 -07:00
Paulus Schoutsen
6e86b8c42f Bumped version to 0.100.0 2019-10-09 15:24:20 -07:00
Bram Kragten
4dc50107cd Updated frontend to 20191002.2 (#27370) 2019-10-09 23:08:00 +02:00
Sébastien RAMAGE
f9c4bb04e3 Update zigpy-zigate to 0.4.1 (#27345)
* Update zigpy-zigate to 0.4.1

Fix #27297

* Update zigpy-zigate to 0.4.1

Fix #27297
2019-10-09 23:07:59 +02:00
Robert Van Gorkom
a57642833b Fix connection issues with withings API by switching to a maintained codebase (#27310)
* Fixing connection issues with withings API by switching to a maintained client codebase.

* Updating requirements files.

* Adding withings api to requirements script.
2019-10-09 23:07:58 +02:00
Paulus Schoutsen
d97943575a Bumped version to 0.100.0b3 2019-10-08 11:19:46 -07:00
Paulus Schoutsen
d4436951c5 Update translations 2019-10-08 11:19:39 -07:00
Erik Montnemery
58f444c779 Fix translations for binary_sensor triggers (#27330) 2019-10-08 11:18:36 -07:00
Bram Kragten
579c91da1b Updated frontend to 20191002.1 (#27329) 2019-10-08 11:18:36 -07:00
jjlawren
07b1976f7d Fix single Plex server case (#27326) 2019-10-08 11:18:36 -07:00
Paulus Schoutsen
c214d7a972 Google: Report all states on activating report state (#27312) 2019-10-08 11:18:35 -07:00
Paulus Schoutsen
4322310d36 Bumped version to 0.100.0b2 2019-10-07 21:28:58 -07:00
Paulus Schoutsen
1614e0d866 Improve speed websocket sends messages (#27295)
* Improve speed websocket sends messages

* return -> continue
2019-10-07 21:28:52 -07:00
jjlawren
463c2e8d45 Remove manual config flow step (#27291) 2019-10-07 21:28:51 -07:00
jjlawren
73aa341ed8 Fix Plex media_player.play_media service (#27278)
* First attempt to fix play_media

* More changes to media playback

* Use playqueues, clean up play_media

* Use similar function name, add docstring
2019-10-07 21:28:50 -07:00
Aaron Godfrey
c416541814 Fix the todoist integration (#27273)
* Fixed the todoist integration.

* Removing unused import

* Flake8 fixes.

* Added username to codeowners.

* Updated global codeowners
2019-10-07 21:28:50 -07:00
Sergio Conde Gómez
8de942f00f Fix onvif PTZ service freeze (#27250) 2019-10-07 21:28:49 -07:00
jjlawren
d39e320b9e Fix update on cert_expiry startup (#27137)
* Don't force extra update on startup

* Skip on entity add instead

* Conditional update based on HA state

* Only force entity state update when postponed

* Clean up state updating

* Delay YAML import
2019-10-07 21:28:49 -07:00
Pierre Sicot
2ccd0039d7 Fix closed status for non horizontal awnings. (#26840) 2019-10-07 21:28:48 -07:00
Paulus Schoutsen
1e1f79e45b Bumped version to 0.100.0b1 2019-10-05 13:40:29 -07:00
Jeff Irion
df0a233b64 Bump adb-shell to 0.0.4; bump androidtv to 0.0.30 (#27224) 2019-10-05 13:40:21 -07:00
Mark Coombes
33da7d341d Fix ecobee binary sensor and sensor unique ids (#27208)
* Fix sensor unique id

* Fix binary sensor unique id
2019-10-05 13:40:20 -07:00
Erik Montnemery
756e22290d Fix validation when automation is saved from frontend (#27195) 2019-10-05 13:40:20 -07:00
Pascal Vizeli
8c3f743efd Update connect-box to fix issue with attrs (#27194) 2019-10-05 13:40:19 -07:00
Erik Montnemery
143e42362b Add above and below to sensor trigger extra_fields (#27160) 2019-10-05 13:39:42 -07:00
Erik Montnemery
fdb6035275 Only generate device trigger for sensor with unit (#27152) 2019-10-05 13:39:42 -07:00
David Bonnes
b63b207519 Handle all single zone thermostats (#27168) 2019-10-03 17:10:26 -07:00
Pascal Vizeli
bd7adf9585 Bump version 0.100.0b0 2019-10-03 11:15:43 +00:00
Paulus Schoutsen
f184bf4d85 Add Google Report State (#27112)
* Add Google Report State

* UPDATE codeowners"

* Add config option for dev mode

* update library

* lint

* Bug fixes
2019-10-03 13:02:38 +02:00
Erik Montnemery
3e99743244 Add device trigger support to sensor entities (#27133)
* Add device trigger support to sensor entities

* Fix typing

* Fix tests, add test helper for comparing lists
2019-10-03 06:14:35 +02:00
HomeAssistant Azure
e005f6f23a [ci skip] Translation update 2019-10-03 00:34:28 +00:00
ochlocracy
9c1feacd47 Fix colorTemperatureInKelvin in Alexa report when light is off (#27107)
* Fixes #26405 Return None if light state is off since attribute is unavailable, prevents property from being reported with invalid value of 0.

* Update Test to check property is not reported when light state is off.
2019-10-02 15:59:21 -07:00
Erik Montnemery
c43eeee62f Improve validation of device condition config (#27131)
* Improve validation of device condition config

* Fix typing
2019-10-02 15:58:14 -07:00
ochlocracy
363873dfcb Display Fan entity as Fan category in Alexa (#27135)
* Added Fan to display categories.

* Added Doorbell to display categories.

* Added Microwave to display categories.

* Added Security Panel to display categories.

* Updated FanCapabilities to use FAN display category.

* Updated Tests for FanCapabilities to use FAN display category.
2019-10-02 15:55:01 -07:00
Matthias Alphart
75bce84ad5 Update KNX integration to xknx 0.11.2 (#27130) 2019-10-02 15:53:55 -07:00
Brendon Baumgartner
39c7d069b8 gpiozero requirement ver (#27129) 2019-10-02 15:53:37 -07:00
ochlocracy
6dfeed6cd1 Fix unavailable climate entities in Alexa StateReport (#27128)
* Return None for AlexaThermostatController and AlexaTemperatureSensor properties if climate state is unavailable. Preserves raising an error for UnsupportedProperty, and allows Alexa.EndpointHealth to handle the unavailable state.

* Added additional tests for climate state reporting.
2019-10-02 15:53:04 -07:00
Alexei Chetroi
e011a94ce9 Bump up ZHA dependencies. (#27127) 2019-10-02 15:51:52 -07:00
jjlawren
30245f6874 Fix error on failed Plex setup (#27132) 2019-10-02 15:51:18 -07:00
Bram Kragten
743cb848e8 Updated frontend to 20191002.0 (#27134) 2019-10-03 00:08:01 +02:00
Erik Montnemery
65ce3b49c1 Add support for for to binary_sensor, light and switch device triggers (#26658)
* Add support for `for` to binary_sensor, light and switch device triggers

* Add WS API device_automation/trigger/capabilities
2019-10-02 22:14:52 +02:00
Robert Svensson
d8c6b281b8 deCONZ - Support Symfonisk sound controller with device triggers (#26913)
* Device trigger tests shall use the common gateway mock

* Follow ebaauws clarification of signals

* Fix translations
2019-10-02 22:12:59 +02:00
Robert Svensson
09c5b9feb3 UniFi - Try to handle when UniFi erroneously marks offline client as wired (#26960)
* Add controls to catch when client goes offline and UniFi bug marks client as wired
* Device trackers shouldn't jump between going away and home
* POE control shouldn't add normally wireless clients as POE control switches
2019-10-02 21:43:14 +02:00
Erik Montnemery
0eb1d49046 Disable flaky/slow test (#27125) 2019-10-02 20:52:15 +02:00
Felix Eckhofer
9c49b8dfc1 Fix generated comment in CODEOWNERS (#27115)
codeowners.py was moved from `/script/manifest/` to `/script/hassfest/`
in e8343452cd.
2019-10-02 09:34:27 -07:00
Franck Nijhof
d4a67e3a30 Update documentation link URL for integrations (part2) (#27117) 2019-10-02 09:34:07 -07:00
Kevin Eifinger
04ead6f273 move ATTR_MODE to homeassistant.const (#27118) 2019-10-02 09:33:47 -07:00
David Bonnes
c78b3a4439 Tweak geniushub and bump client to v0.6.26 (#26640)
* use state attribute rather than type

* HA style tweaks

* small tweak

* bump client

* add more device_state_attributes

* bump client

* small tweak

* bump client for concurrent IO

* force snake_case, and refactor (consolidate) Devices/Zones

* force snake_case, and refactor (consolidate) Devices/Zones 2

* force snake_case, and refactor (consolidate) Devices/Zones 3

* refactor last_comms / wakeup_interval check

* movement sensor is dynamic, and tweaking

* tweak

* bump client to v0.6.20

* dummy

* dummy 2

* bump client to handle another edge case

* use entity_id fro zones

* small tweak

* bump client to 0.6.22

* add recursive snake_case converter

* fix regression

* fix regression 2

* fix regression 3

* remove Awaitables

* don't dynamically create function every scan_interval

* log kast_comms as localtime, delint dt_util

* add sensors fro v1 API

* tweak entity_id

* bump client

* bump client to v0.6.24

* bump client to v0.6.25

* explicit device attrs, dt as UTC

* add unique_id, remove entity_id

* Bump client to 0.6.26 - add Hub UID

* remove convert_dict()

* add mac_address (uid) for v1 API

* tweak var names

* add UID.upper() to avoid unwanted unique_id changes

* Update homeassistant/components/geniushub/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Update homeassistant/components/geniushub/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* remove underscores

* refactor for broker

* ready now

* validate UID (MAC address)

* move uid to broker

* use existing constant

* pass client to broker
2019-10-02 17:27:13 +01:00
Franck Nijhof
c7da781efc Update documentation link URL for integrations in all manifests (#27114) 2019-10-02 09:25:44 -07:00
Jeff Irion
ed49b2f155 Bump androidtv to 0.0.29 (#27120) 2019-10-02 17:38:14 +02:00
Brendon Baumgartner
8488b57215 Add neural support to amazon polly (#27101)
* amazon polly - add neural support

* bumped boto3 for route53 to 1.9.233
2019-10-02 10:25:35 +02:00
Chris Colohan
ce2e80339c Add Vera last user and low battery attributes (#27043)
* Add in attributes to track when a user unlocks the lock with a PIN, and when the battery runs low.

* Vera attributes for who entered PIN on lock, and low battery warning.

* Changed last_user_id to use changed_by interface.

* Bump pyvera version to 0.3.6; remove guard code for earlier pyvera versions.

* Bump pyvera version to 0.3.6
2019-10-02 09:50:45 +02:00
Jeff Irion
7d2a8b8137 Bump adb-shell to 0.0.3 (#27108) 2019-10-02 08:17:30 +02:00
Erik Montnemery
5a1da72d5e Improve validation of device action config (#27029) 2019-10-01 20:35:36 -07:00
HomeAssistant Azure
2090d650c6 [ci skip] Translation update 2019-10-02 00:32:11 +00:00
mvn23
26d78cab60 Update opentherm_gw.climate to match Climate 1.0 (#25931)
* Update opentherm_gw.climate to match Climate 1.0

* Change hvac_mode to reflect last active hvac_action
2019-10-01 14:38:48 -07:00
Mark Coombes
ee45431d0e Add entity registry support to ecobee integration (#27088)
* Add unique id to platforms

Add unique id for binary sensor, climate, and sensor.

* Add unique id to weather platform

* Simplify unique_id for weather platform

* Fix lint for unique_id in sensor

* Fix lint for unique_id in binary sensor
2019-10-01 14:28:13 -07:00
jjlawren
e033c46c91 Add missing http dependency (#27097) 2019-10-01 14:26:33 -07:00
Kevin Eifinger
8d251c190f Delete here_travel_time dead code COORDINATE_SCHEMA (#27090) 2019-10-01 22:02:43 +02:00
chriscla
2e4c92104d Nzbget services (#26900)
* Add NZBGet Queue control.

* Fix error message

* Addressing review comments

* Moving import to top of file.
2019-10-01 21:51:11 +02:00
rolfberkenbosch
ca9b3b5a4c Update meteoalertapi to version 0.1.6 (#27099) 2019-10-01 15:20:28 -04:00
Franck Nijhof
3b0744d021 Bump attrs to 19.2.0 (#27102) 2019-10-01 15:19:50 -04:00
jjlawren
571ab5a978 Plex external config flow (#26936)
* Plex external auth config flow

* Update requirements_all

* Test dependency

* Bad await, delay variable

* Use hass aiohttp session, bump plexauth

* Bump requirements

* Bump library version again

* Use callback view instead of polling

* Update tests for callback view

* Reduce timeout with callback

* Review feedback

* F-string

* Wrap sync call

* Unused

* Revert unnecessary async wrap
2019-10-01 17:20:30 +02:00
Pascal Vizeli
c1851a2d94 Cleanup coroutine threadsafe (#27080)
* Cleanup coroutine threadsafe

* fix lint

* Fix typing

* Fix tests

* Fix black
2019-10-01 16:59:06 +02:00
Gil Peeters
f4a1f2809b Add availability_template to Template Lock platform (#26517)
* Added availability_template to Template Lock platform

* Added to test for invalid values in availability_template

* Black and Lint fix

* black formatting

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Moved availability_template rendering to common loop

* Brought contant into line

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (async, magic values and state checks)
2019-10-01 08:15:15 -04:00
fredericvl
2e3bc5964d Add saj component (#26902)
* Add saj component

* Performed requested changes after review

* Performed requested changes after review 2

* Performed requested changes after review 3

* Black

* Bump pysaj library version

* Changes after review

* Fix flake8

* Review changes + isort
2019-10-01 13:25:57 +02:00
David Bonnes
a1997ee891 Bugfix evohome (#26810)
* address issues #25984, #25985

* small tweak

* refactor - fix bugs, coding erros, consolidate

* some zones don't have schedules

* some zones don't have schedules 2

* some zones don't have schedules 3

* fix water_heater, add away mode

* readbility tweak

* bugfix: no refesh after state change

* bugfix: no refesh after state change 2

* temove dodgy wrappers (protected-access), fix until logic

* remove dodgy _set_zone_mode wrapper

* tweak

* tweak docstrings

* refactor as per PR review

* refactor as per PR review 3

* refactor to use dt_util

* small tweak

* tweak doc strings

* remove packet from _refresh

* set_temp() don't have until

* add unique_id

* add unique_id 2
2019-09-30 21:35:10 -07:00
Robert Svensson
e2d7a01d65 Remove last of device tracker scanner (#27082) 2019-09-30 21:19:51 -07:00
Malte Franken
a9398a362f bumped version of upstream library (#27083) 2019-09-30 17:46:33 -07:00
Daniel Shokouhi
bce49233ca Add some icons for Obihai (#27075)
* Add some icons for Obihai

* Lint

* Lint

* Lint fixes
2019-09-30 17:42:06 -07:00
HomeAssistant Azure
513d2652e4 [ci skip] Translation update 2019-10-01 00:32:19 +00:00
Franck Nijhof
9615ba3d99 Bump shodan to 1.19.0 (#27079) 2019-09-30 17:46:58 -04:00
John Luetke
8c01ed8a1f Fix SSL connections to Pi-hole (#27073) 2019-09-30 20:26:26 +02:00
Mark Coombes
d28980b097 Bump pyecobee to 0.1.4 (#27074) 2019-09-30 12:56:58 -04:00
Pascal Vizeli
d116d2c1a4 Update azure-pipelines-release.yml for Azure Pipelines 2019-09-30 14:49:08 +02:00
Tiit Rätsep
48d07467d9 Add support for SOMA Smartshades devices (#26226)
* Add Soma integration

* Fixed cover position get/set

* Try to list devices before creating config entries to see if Soma Connect can be polled

* Style fixes

* Updated requirements

* Updated .coveragerc to ignore Soma component

* Fixed linter errors

* Implemented stop command

* Test coverage fixes according to feedback

* Fixes to code according to feedback

* Added error logging and tested config from yaml

* Indentation fix

* Removed unnecessary method

* Wrong indentation

* Added some tests

* Added test for import step leading to entry creation

* Added feedback to user form in case of connection error

* Minor fixes according to feedback

* Changed exception type in error handling for connection to Connect

* To keep API consistent for Google Home and Alexa we swapped the open/closed position values back and I reversed them in this integration as well

* regenerated requirements, ran black, addde __init__.py to ignore file

* Added pysoma library to gen_requirements_all.py

* Added missing test case

* removed useless return value
2019-09-30 14:23:08 +02:00
Pascal Vizeli
21453df73e Update devcontainer.json 2019-09-30 11:01:08 +02:00
David Bonnes
fa92d0e6d8 Fix incomfort and Bump client to 0.3.5 (#26802)
* remove superfluous device state attributes
* fix water_heater icon
* add type hints
* fix issue #26760
* bump client to v0.3.5
* add unique_id
2019-09-30 09:31:35 +01:00
Sebastian Kügler
c527e0f164 Fix rest_command when server is unreachable (#26948)
* fix rest_command when server is unreachable

When a server doesn't exist, the connection fails immediately, rather
than waiting for a timeout. This means that the async handler is never
reached, and the request variable never filled, yet it's used in the
client error exception handler, so this one bugs out.

By using the command_config, we avoid using the potentially unassigned
request variable, avoiding this problem.

This patch makes scripts work that have a rest_command in them which
fails due to a server being offline.

* render template_url

instead of printing the template object

* fix formatting

* fix format using black

* only render url once

* blacken...
2019-09-30 09:06:10 +02:00
MatthewFlamm
43bd116852 add utc tz to forecast (#27049) 2019-09-30 08:56:02 +02:00
John Luetke
245e51df7a Add Pi-hole enable and disable services (#27055)
* Add service to disable pihole

* Add service to enable pihole

* Redefine optional string validator

* code review changes

* Change service parameter to timedelta

* code review changes
2019-09-29 20:35:56 -04:00
David F. Mulcahey
5bd3d4aa0b Bump zha quirks to 0.0.26 (#27051) 2019-09-29 20:33:42 -04:00
HomeAssistant Azure
cdb469f711 [ci skip] Translation update 2019-09-30 00:32:17 +00:00
Ville Skyttä
52bbb6242c Upgrade pytest to 5.2.0 (#27058)
https://docs.pytest.org/en/latest/changelog.html#pytest-5-2-0-2019-09-28
2019-09-29 23:00:39 +02:00
Ville Skyttä
f259ff17d5 Type hint additions (#26831)
* Type hint additions

* Remove optional from sidebar_icon comment

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>

* Remove optional from sidebar_title comment

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>

* Fix issues after rebase and mypy 0.730
2019-09-29 20:07:49 +03:00
David K
4f55235aa2 Return esphome cover position as Integer (#27039)
cover position is specified as integer 0-100, we should not return
float here.
fixes #25738
2019-09-29 12:06:51 +02:00
Khole
2ebc1901ab Change hive hotwater to hot_water + bug fix (#27038)
* Updated hotwater to hot_water + bug fix

* Updated version seperating dependancy
2019-09-29 11:38:43 +02:00
david81
f464a78088 Add venstar support for hvac action (#26956)
* Added support for current fan state and hvac action

* Corrected handling of fan_mode
2019-09-29 05:36:35 +02:00
HomeAssistant Azure
560ac3df3a [ci skip] Translation update 2019-09-29 00:32:13 +00:00
SukramJ
61a7d8e3d2 Add create, remove of devices for HomematicIP_Cloud (#27030) 2019-09-28 22:34:13 +02:00
Gil Peeters
11c9bab078 Add availability_template to Template Vacuum platform (#26514)
* Added availability_template to Template Vacuum platform

* Added to test for invalid values in availability_template

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Removed 'Magic' string

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (async, magic values and state checks)
2019-09-28 08:02:46 -04:00
Gil Peeters
ed82ec5d8e Add availability_template to Template Light platform (#26512)
* Added availability_template to Template Light platform

* Added to test for invalid values in availability_template

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Moved availability_template rendering to common loop

* Removed 'Magic' string

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (async, magic values and state checks)
2019-09-28 08:01:18 -04:00
Gil Peeters
74196eaf8b Add availability_template to Template Fan platform (#26511)
* Added availability_template to Template Fan platform

* Added to test for invalid values in availability_template

* fixed component ID in test

* Made availability_template redering erorr more concise

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Removed 'Magic' string

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (magic values and state checks)
2019-09-28 07:59:40 -04:00
Gil Peeters
5c5f6a21af Add availability_template to Template Binary Sensor platform (#26510)
* Added availability_template to Template Binary Sensor platform

* Added to test for invalid values in availability_template

* black

* simplified exception handler

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Moved availability_template rendering to common loop

* Removed 'Magic' string

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (magic values and state checks)
2019-09-28 07:55:29 -04:00
Gil Peeters
6d773198a1 Add availability_template to Template Cover platform (#26509)
* Added availability_template to Template Cover platform

* Added to test for invalid values in availability_template

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Moved availability_template rendering to common loop

* Removed 'Magic' string and removed duplicate code

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (async, magic values and state checks)
2019-09-28 07:53:16 -04:00
Josef Schlehofer
f3d408aca4 Upgrade youtube_dl to 2019.09.28 (#27031) 2019-09-28 07:13:11 -04:00
Florian Klien
f9ac204cc5 Add more providers, bump yessssms version to 0.4.1 (#26874)
* bump yessssms version to 0.4.0

adds 'provider' config parameter
adds support for providers:

* billitel
* EDUCOM
* fenercell
* georg
* goood
* kronemobile
* kuriermobil
* SIMfonie
* teleplanet
* WOWWW
* yooopi

* black formatting

* moved CONF_PROVIDER to component

* black formatting

* moved error handling on init to get_service

* return None, init logging moved to get_service

* moved YesssSMS import to top of module

* test login data on init. add flag for login data test. removed KeyError

* catch connection error, remove CONF_TEST_LOGIN_DATA config flag

* requirements updated

* lint

* lint: use getters for protected members, bump version to 0.4.1b4

* requirements updated to 0.4.1b4

* fix logging messages, info to warning, clear up login_data check

* change valid login data message to debug

* fix tests

* add tests for get_service

* bump yessssms version 0.4.1

* tests for get_service refurbished

* test refactoring with fixtures

* polish fixtures 

* replace Mock with patch 🔄

* tiny string fixes, removed unused return_value 🐈
2019-09-28 11:33:48 +02:00
Mark Coombes
2dfdc5f6f8 Improve ecobee service schemas (#26955)
* Validate date and time in create vaction

Improve validation with utility functions.

* Improve validate ATTR_VACATION_NAME

* Add tests for ecobee.util functions

* Revise tests as standalone functions
2019-09-28 11:32:22 +02:00
SneakSnackSnake
1c72a246a0 Update pythonegardia to 1.0.40 (#27009) 2019-09-28 08:15:29 +02:00
HomeAssistant Azure
2af34b461a [ci skip] Translation update 2019-09-28 00:32:10 +00:00
Aaron Bach
ce97c27a7f Fix possible OpenUV exception due to missing data (#26958) 2019-09-27 17:03:15 -07:00
Ville Skyttä
ac634d71f4 Remove no longer needed Python < 3.6 compatibility code (#27024) 2019-09-27 17:02:48 -07:00
Ville Skyttä
b0df14db14 Bump Travis timeout to 50 minutes (#26978) 2019-09-27 14:20:00 -07:00
Khole
fc3f5163f1 Add hive boost to climate and water_heater (#26789)
* Start the Boost work

* Add services.yaml

* Added Services #2

* Start the Boost work

* Add services.yaml

* Added Services #2

* Working Services

* pyhiveapi to 0.2.19

* Update Libary to 0.2.19

* Update Water_heater boost

* Added Async hass add function

* Update Services

* Reviewed Changes

* Fixed Refresh System

* Review 2

* Moved device iteration to the platform

* update

* Updates #2

* Review#3 New Base Class

* Review #5

* Update homeassistant/components/hive/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Update homeassistant/components/hive/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Update homeassistant/components/hive/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Review 6

* Review 7

* Removed Child classes to inhertit from the parent
2019-09-27 23:18:34 +02:00
Paulus Schoutsen
58446c79fc Update scaffold text 2019-09-27 13:08:38 -07:00
Ville Skyttä
fde128d66c Upgrade mypy to 0.730, address raised issues (#26959)
https://mypy-lang.blogspot.com/2019/09/mypy-730-released.html
2019-09-27 22:57:59 +03:00
Paulus Schoutsen
77654da341 Add templates to scaffold device_trigger, device_condition, (#26871)
device_action
2019-09-27 12:54:17 -07:00
Bram Kragten
80bc15e24b Update Alexa discovery description (#26933)
* Update Alexa discovery description

* Update description

* Fix test

* Filter special chars
2019-09-27 21:51:46 +02:00
Andrew Onyshchuk
eeffd090a3 Add support for Z-Wave battery level (#26943)
* Add support for Z-Wave battery level

* Improve coverage
2019-09-27 10:21:04 -07:00
David F. Mulcahey
b1a9fa47ca Add device action support for ZHA (#26903)
* start implementing device actions

* rename file

* cleanup and add tests

* fix docstrings

* sort imports
2019-09-27 09:57:47 -07:00
Pascal Vizeli
f267b37105 Update azure-pipelines-release.yml for Azure Pipelines 2019-09-27 17:58:16 +02:00
Erik Montnemery
e57e7e8449 Improve validation of device trigger config (#26910)
* Improve validation of device trigger config

* Remove action and condition checks

* Move config validation to own file

* Fix tests

* Fixes

* Fixes

* Small tweak
2019-09-27 17:48:48 +02:00
Michał Mrozek
588bc26661 Add CO2 level reading for Kaiterra integration (#26935) 2019-09-27 17:42:32 +02:00
Pascal Vizeli
4d92e76f19 Update azure-pipelines-release.yml for Azure Pipelines 2019-09-27 16:59:07 +02:00
Mark Coombes
1de002013f Fix ecobee integration (#26951)
* Check for DATA_ECOBEE_CONFIG

* Update homeassistant/components/ecobee/config_flow.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
2019-09-27 16:45:50 +02:00
Pascal Vizeli
e989239e19 Update azure-pipelines-release.yml for Azure Pipelines 2019-09-27 16:43:23 +02:00
Pascal Vizeli
62d515fa03 Update azure-pipelines-release.yml for Azure Pipelines 2019-09-27 16:26:06 +02:00
joe248
b88772eea0 Revert Nest HVAC mode when disabling Eco mode (#26934) 2019-09-27 15:31:01 +02:00
jaburges
454d479b36 Bump pyowlet to 1.0.3 (#26892)
* API URLs

API URLs have been updated which prevented 1.0.2 from authenticating per this thread:
https://community.home-assistant.io/t/owlet-setup/130751
```
https://user-field-1a2039d9.aylanetworks.com/users/sign_in
https://ads-field-1a2039d9.aylanetworks.com/apiv1
```
have been updated in PyOwlet.py 1.0.3

* bump pyowlet to 1.0.3
2019-09-27 12:52:58 +02:00
Paulus Schoutsen
fc700c7937 Guard against non supported entities (#26941) 2019-09-27 08:49:51 +02:00
Martin Hjelmare
9f6fade236 Add xbox live custom update interval (#26939)
* Add xbox_live custom update schedule

* Set a default update interval that is within the free limit. Consider
  number of users per api key when setting interval.

* Add codeowner

* Add callback decorator
2019-09-27 08:02:58 +02:00
Oleksandr Omelchuk
77b7e4665b Add more ebusd Vaillant "bai" sensors (#26750)
* Added support for more ebus "bai" sensors.

* Using common constants for measuring unit names.

Fixed review item

* dummy commit to restart CI

* Fixed review item

* Fixed formatting

black --fast homeassistant

* Removed trailing spaces

* Fixed black formatting

* trigger new build
2019-09-27 07:54:40 +02:00
Jeff Irion
45c548ae47 Bump androidtv to 0.0.28 (#26906)
* Bump androidtv to 0.0.28

* Address reviewer comments

* Remove adb-shell from requirements_test_all.txt

* Use a one-liner to avoid a coverage failure
2019-09-27 07:53:26 +02:00
HomeAssistant Azure
b04a70995e [ci skip] Translation update 2019-09-27 00:32:12 +00:00
Mark Coombes
c194f4a813 Add ecobee services to create and delete vacations (#26923)
* Bump pyecobee to 0.1.3

* Add functions, attrs, and services to climate

Fixes

* Update requirements

* Update service strings

* Fix typo

* Fix log msg string formatting for lint

* Change some parameters to Inclusive

start_date, start_time, end_date, and end_time must be specified together.

* Use built-in convert util for temps

* Match other service variable names
2019-09-26 21:23:44 +02:00
Petr Vraník
3efdf29dfa Centralize rainbird config and add binary sensor platform (#26393)
* Update pyrainbird to version 0.2.0 to fix zone number issue:

- home-assistant/home-assistant/issues/24519
- jbarrancos/pyrainbird/issues/5
- https://community.home-assistant.io/t/rainbird-zone-switches-5-8-dont-correspond/104705

* requirements_all.txt regenerated

* code formatting

* pyrainbird version 0.3.0

* zone id

* rainsensor return state

* updating rainsensor

* new version of pyrainbird

* binary sensor state

* quiet in check format

* is_on instead of state for binary_sensor

* no unit of measurement for binary sensor

* no monitored conditions config

* get keys of dict directly

* removed redundant update of state

* simplified switch

* right states for switch

* raindelay sensor

* raindelay sensor

* binary sensor state

* binary sensor state

* reorganized imports

* doc on public method

* reformatted

* add irrigation service to rain bird, which allows you to set the duration

* rebased on konikvranik and solved some feedback

* add irrigation service to rain bird

* sensor types to constants

* synchronized register service

* patform discovery

* binary sensor as wrapper to sensor

* version 0.4.0

* new config approach

* sensors cleanup

* bypass if no zones found

* platform schema removed

* Change config schema to list of controllers

some small code improvements as suggested in CR:
 - dictionary acces by []
 - just return instead of return False
 - import order
 - no optional parameter name

* some small code improvements as suggested in CR:
 - supported platforms in constant
 - just return instead of return False
 - removed unused constant

* No single controller configuration

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* pyrainbird 0.4.1

* individual switch configuration

* imports order

* generate default name out of entity

* trigger time required for controller

* incorporated CR remarks:
- constant fo rzones
- removed SCAN_INTERVAL
- detection of success on initialization
- removed underscore
- refactored if/else
- empty line on end of file
- hass as first parameter

* import of library on top

* refactored

* Update homeassistant/components/rainbird/__init__.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* validate time and set defaults

* set defaults on right place

* pylint bypass

* iterate over values

* codeowner

* reverted changes:

* irrigation time just as positive integer. Making it complex does make
sense
* zone edfaults fullfiled at runtime. There is no information about
available zones in configuration time.

* codeowners updated

* accept timedelta in irrigation time

* simplified time calculation

* call total_seconds

* irrigation time as seconds.

* simplified schema
2019-09-26 11:24:03 +02:00
Rami Mosleh
82b77c2d29 Add config flow to transmission (#26434)
* Add config flow to transmission

* Reworked code to add all sensors and switches

* applied fixes

* final touches

* Add tests

* fixed tests

* fix get_api errors and entities availabilty update

* update config_flows.py

* fix pylint error

* update .coveragerc

* add codeowner

* add test_options

* fixed test_options
2019-09-26 11:14:57 +02:00
jjlawren
9b204ad162 Add Plex config options support (#26870)
* Add config options support

* Actually copy dict

* Move media_player options to PlexServer class

* Handle updated config options

* Move callback out of server
2019-09-26 11:10:20 +02:00
Daniel Shokouhi
62cea2b7ac Bump pyobihai, add unique ID and availability (#26922)
* Bump pyobihai, add unique ID and availability

* Fix unique ID

* Fetch serial correctly
2019-09-26 10:53:31 +02:00
Martin Hjelmare
770ad86f12 Add mysensors codeowner (#26917) 2019-09-26 07:42:46 +02:00
HomeAssistant Azure
ba92d781b4 [ci skip] Translation update 2019-09-26 00:32:13 +00:00
petewill
d1b4bd22ce Add MySensors ACK (#26894)
* Add MySensors ACK

The addition of the ACK will ask sensors to respond to commands sent to them which will update the MySensors device in Home Assistant.
 Currently, if a default MySensors sketch is used the device will update but Home Assistant does not reflect the update and custom code has to be added to tell Home Assistant the command was received.  With the ACK set to 1 in the message all this is taken care of by MySensors.

* Run black
2019-09-25 23:20:02 +02:00
Bram Kragten
b75639d9d1 Remove lamps and groups from ha when removed from Hue (#26881)
* Remove light when removed from hue

* add remove_config_entry_id

* Review + bump aiohue

* lint

* Add tests
2019-09-25 14:00:18 -07:00
Mark Coombes
f6995b8d17 Add config flow to ecobee (#26634)
* Add basic config flow

* Fix json files

* Update __init__.py

* Fix json errors

* Move constants to const.py

* Add ecobee to generated config flows

* Update config_flow for updated API

* Update manifest to include new dependencies

Bump pyecobee, add aiofiles.

* Update constants for ecobee

* Modify ecobee setup to use config flow

* Bump dependency

* Update binary_sensor to use config_entry

* Update sensor to use config_entry

* Update __init__.py

* Update weather to use config_entry

* Update notify.py

* Update ecobee constants

* Update climate to use config_entry

* Avoid a breaking change on ecobee services

* Store api key from old config entry

* Allow unloading of config entry

* Show user a form before import

* Refine import flow

* Update strings.json to remove import step

Not needed.

* Move third party imports to top of module

* Remove periods from end of log messages

* Make configuration.yaml config optional

* Remove unused strings

* Reorganize config flow

* Remove unneeded requirement

* No need to store API key

* Update async_unload_entry

* Clean up if/else statements

* Update requirements_all.txt

* Fix config schema

* Update __init__.py

* Remove check for DATA_ECOBEE_CONFIG

* Remove redundant check

* Add check for DATA_ECOBEE_CONFIG

* Change setup_platform to async

* Fix state unknown and imports

* Change init step to user

* Have import step raise specific exceptions

* Rearrange try/except block in import flow

* Convert update() and refresh() to coroutines

...and update platforms to use async_update coroutine.

* Finish converting init to async

* Preliminary tests

* Test full implementation

* Update test_config_flow.py

* Update test_config_flow.py

* Add self to codeowners

* Update test_config_flow.py

* Use MockConfigEntry

* Update test_config_flow.py

* Update CODEOWNERS

* pylint fixes

* Register services under ecobee domain

Breaking change!

* Pylint fixes

* Pylint fixes

* Pylint fixes

* Move service strings to ecobee domain

* Fix log message capitalization

* Fix import formatting

* Update .coveragerc

* Add __init__ to coveragerc

* Add option flow test

* Update .coveragerc

* Act on updated options

* Revert "Act on updated options"

This reverts commit 56b0a859f2e3e80b6f4c77a8f784a2b29ee2cce9.

* Remove hold_temp from climate

* Remove hold_temp and options from init

* Remove options handler from config flow

* Remove options strings

* Remove options flow test

* Remove hold_temp constants

* Fix climate tests

* Pass api key to user step in import flow

* Update test_config_flow.py

Ensure that the import step calls the user step with the user's api key as user input if importing from ecobee.conf/validating imported keys fails.
2019-09-25 22:38:21 +02:00
Robert Svensson
cff7fd0ef3 deCONZ - Increase bridge discovery robustness in config flow (#26911) 2019-09-25 21:50:14 +02:00
Paulus Schoutsen
cbbdb95003 Merge remote-tracking branch 'origin/master' into dev 2019-09-25 11:29:26 -07:00
Daniel Shokouhi
36f604f79d Add call direction sensor for Obihai (#26867)
* Add call direction sensor for obihai

* Check user credentials

* Review comments

* Fix return
2019-09-25 20:26:15 +02:00
Paulus Schoutsen
e715c43e0d Merge pull request #26912 from home-assistant/rc
0.99.3
2019-09-25 11:25:29 -07:00
Paulus Schoutsen
4bab1612a3 Bumped version to 0.99.3 2019-09-25 10:28:20 -07:00
MajestyIV
7566a38f01 HM-CC-TC was not recognized (#26623)
* HM-CC-TC was not recognized

* guard instead of exception
2019-09-25 10:28:08 -07:00
Rami Mosleh
d1adb28c6b Add google_assistant alarm_control_panel (#26249)
* add alarm_control_panel to google_assistant

* add cancel arming option

* raise error if requested state is same as current

* rework executing command logic

* Add tests

* fixed tests

* fixed level synonyms
2019-09-25 10:13:31 -07:00
Robert Svensson
4582b6e668 deCONZ - Improve ssdp discovery by storing uuid in config entry (#26882)
* Improve ssdp discovery by storing uuid in config entry so discovery can update any deconz entry, loaded or not
2019-09-25 18:56:31 +02:00
Jeff Irion
cc611615aa Fix missing whitespace around arithmetic operator (#26908) 2019-09-25 18:04:34 +02:00
zhumuht
626b61b58f Fix bed_activity history chart of the Xiaomi Aqara vibration sensor (#26875) 2019-09-25 15:39:01 +02:00
zhumuht
f5018e91b5 Add voltage attribute to Xiaomi Aqara devices (#26876) 2019-09-25 15:04:27 +02:00
Andrey Kupreychik
aaf013da6e Bump ndms2-client to 0.0.9 (#26899) 2019-09-25 10:20:46 +02:00
Gil Peeters
cd976b65ae Add availability_template to Template Switch platform (#26513)
* Added availability_template to Template Switch platform

* Fixed Entity discovery big and coverage

* flake8

* Cleaned template setup

* I'll remember to run black every time one of these days...

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Refactored availability_tempalte rendering to common loop

* Cleaned up const and compare lowercase result to 'true'

* reverted _available back to boolean

* Fixed tests (async, magic values and state checks)

* Fixed Enity Extraction
2019-09-24 21:30:48 -07:00
Franck Nijhof
1f03508bfe Removes unnecessary print_function future import (#26888) 2019-09-24 21:29:57 -07:00
Franck Nijhof
87f1f6cc9f Removes unnecessary utf8 source encoding declarations (#26887) 2019-09-24 21:28:50 -07:00
tleegaard
2ffbe5b99f Inverting states for opening/closing Homekit covers (#26872)
* Update cover.py

* Update test_cover.py
2019-09-24 21:16:08 -07:00
Sébastien RAMAGE
dc229ed569 Update zigpy_zigate to 0.4.0 (#26883)
* zigpy-zigate==0.4.0

* zigpy-zigate==0.4.0
2019-09-24 21:02:23 -07:00
David F. Mulcahey
31964d0f49 bump quirks (#26885) 2019-09-24 21:01:38 -07:00
Paulus Schoutsen
51a090cfdc Fix CI 2019-09-24 20:47:24 -07:00
HomeAssistant Azure
24c8db0121 [ci skip] Translation update 2019-09-25 00:32:16 +00:00
Franck Nijhof
9c9c921922 Use Python3 new super syntax sugar (#26890) 2019-09-24 15:38:20 -07:00
Paulus Schoutsen
6fdff9ffab Reorg device automation (#26880)
* async_trigger -> async_attach_trigger

* Reorg device automations

* Update docstrings

* Fix types

* Fix extending schemas
2019-09-24 14:57:05 -07:00
Franck Nijhof
b52cfd3409 Add comment for clarity to helper.entity.enabled() (#26793)
* Fixes entity enabled expression

* Ensure True is returned when there is no registry_entity

* Add comment for clarity to helper.entity.enabled()
2019-09-24 14:21:00 -07:00
Franck Nijhof
6f9ccb5434 Add and corrects typehints in Entity helper & core class (#26805)
* Add and corrects typehints in Entity class

* Adjust state type based on comments
2019-09-24 14:20:04 -07:00
Franck Nijhof
b1118cb8ff Removes unnecessary else/elif blocks (#26884) 2019-09-24 13:53:03 -07:00
David F. Mulcahey
18873d202d Add device automation support to ZHA (#26821)
* beginning ZHA device automations

* add cube

* load triggers from zigpy devices

* cleanup

* add face_any for aqara cube

* add endpoint id to events

* add cluster id to events

* cleanup

* add device tilt

* add test

* fix copy paste error

* add event trigger test

* add test for no triggers for device

* add exception test

* better exception tests
2019-09-24 08:54:41 -07:00
Gil Peeters
161c8aada6 Add availability_template to Template Sensor platform (#26516)
* Added availability_template to Template Sensor platform

* Added to test for invalid values in availability_template

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Fix import order (pylint)

* Moved availability_template rendering to common loop

* Removed 'Magic' string

* Cleaned up const and compare lowercase result to 'true'

* Device is unavailbale if value template render fails

* Converted test ot Async and fixed states

* Comverted back to using boolean for _availability

* Fixed state check in test
2019-09-24 16:05:19 +02:00
majuss
930dadb722 Move elv integration to component and bump pypca (#26552)
* fixing elv integration

* black formatting

* linting

* rebase

* removed logger warning for failed conf

* rebase; coverage
2019-09-24 13:10:03 +02:00
Robin
1d60cccc21 Put draw_box in image_processing (#26712)
* Put draw_box in image_processing

* Update draw_box

* Update __init__.py

* run isort

* Fix lints

* Update __init__.py

* Update requirements_all.txt

* Adds type hints

* Update gen_requirements_all.py

* Update requirements_test_all.txt

* rerun script/gen_requirements_all.py

* Change Pillow to pillow

* Update manifest.json

* Run script/gen_requirements_all.py
2019-09-24 12:09:16 +02:00
Paulus Schoutsen
53e6b8ade6 Add reproduce state template (#26866)
* Add reproduce state template

* Handle invalid state
2019-09-23 23:23:53 -07:00
Tim McCormick
6fe5582c6a Add unit to 'charging_level_hv' bwm_connected_drive sensor (#26861)
* Update sensor.py

Add unit to charging_level_hv, which allows correct graphing in UI

* Update sensor.py

Add space after #
2019-09-24 03:45:14 +02:00
Paul Bottein
44082869b4 Group Linky sensors to Linky meter device (#26738)
* Group Linky sensors to Llnky meter device

* Fix Linky meter identifiers
2019-09-24 02:55:10 +02:00
HomeAssistant Azure
5d49d9c951 [ci skip] Translation update 2019-09-24 00:32:13 +00:00
Paulus Schoutsen
9401d9e286 Fix frontend 2019-09-23 14:20:27 -07:00
Sébastien RAMAGE
9919f5f924 Bump zigpy-zigate to 0.3.1 (#26600)
* Bump zigpy-zigate to 0.3.1

Bump zigpy-zigate to 0.3.1 (fix Rpi.GPIO dependency)

* Bump zigpy-zigate to 0.3.1

Bump zigpy-zigate to 0.3.1 (fix Rpi.GPIO dependency)
2019-09-23 14:19:34 -07:00
Paulus Schoutsen
7bed79255e Updated frontend to 20190919.1 2019-09-23 13:35:06 -07:00
Paulus Schoutsen
0c78f9e20c Updated frontend to 20190919.1 2019-09-23 13:18:28 -07:00
SukramJ
a757992409 Bump homematicip_cloud to 0.10.11 (#26852) 2019-09-23 13:42:09 -04:00
Balazs Sandor
5e6840d8f4 fix onvif/camera setting up error (#26825) 2019-09-23 13:41:35 -04:00
Alexei Chetroi
9c0fbfd101 Bump up ZHA dependencies (#26746)
* Update ZHA to track zigpy changes.
* Update ZHA dependencies.
* Update tests.
* Make coverage happy again.
2019-09-23 13:35:27 -04:00
Franck Nijhof
911d289333 Remove deprecated linksys_ap integration (ADR-0004) (#26847) 2019-09-23 16:05:02 +02:00
Franck Nijhof
8a9e47d3c7 Bump pyotp to 2.3.0 (#26849) 2019-09-23 15:43:48 +02:00
Abílio Costa
61634d0a64 Store ZHA light brightness when fading off to turn on at the correct brightness (#26680)
* Use light's on_level in ZHA to turn on at the correct brightness

Previously, if the light is turned off with a time transition, the
brightness level stored in the light will be 1. The next time the light
is turned on with no explicit brightness, it will be at 1.

This is solved by storing the current brightness in on_level before
turning off, and then using that when turning on (by calling the
onOff cluster 'on' command).

* store off light level locally to avoid wearing device's flash memory

* store off brightness in HA attributes

* improve set/clear of off_brightness

* fix device_state_attributes; clear off_brightness when light goes on

* fix tests
2019-09-23 09:08:44 -04:00
MajestyIV
2c80ce3195 HM-CC-TC was not recognized (#26623)
* HM-CC-TC was not recognized

* guard instead of exception
2019-09-23 14:39:10 +02:00
Franck Nijhof
ad9daa922b Remove deprecated fedex integration (ADR-0004) (#26822) 2019-09-23 12:16:41 +02:00
Franck Nijhof
9fd9ccc2a3 Remove deprecated srp_energy integration (ADR-0004) (#26826) 2019-09-23 12:13:12 +02:00
Kevin Eifinger
5c0fa35d4a Add here_travel_time (#24603)
* Add here_travel_time

* Bump herepy version to 0.6.2

* Update requirements_all.txt

* Disable pylint and catch errors

* Add herepy to requirements_test_all

* Correctly place test req for herepy

* use homeassistant.const.LENGTH_METERS

* Implemented Requested Changes

* Better error message for cryptic error code

* add requested changes

* add_entities instead of async

* Add route attr and distance in km instead of m

* fix linting errors

* attribute duration in minutes instead of seconds

* Correct pattern for longitude

* dont split attribute but rather local var

* move strings to const and use travelTime

* Add tests

* Add route for pedestrian and public

* fix public transport route generation

* remove print statement

* Standalone pytest

* Use hass fixture and increase test cov
_resolve_zone is redundant

* Clean up redundant code

* Add type annotations

* Readd _resolve_zone and add a test for it

* Full test cov

* use caplog

* Add origin/destination attributes
According to https://github.com/home-assistant/home-assistant/pull/24956

* Add mode: bicycle

* black

* Add mode: publicTransportTimeTable

* Fix error for publicTransportTimeTable
Switch route_mode and travel_mode in api request.

* split up config options

* More type hints

* implement *_entity_id

* align attributes with google_travel_time

* route in lib
apply requested changes

* Update requirements_all.txt

* remove DATA_KEY

* Use ATTR_MODE

* add attribution

* Only add attribution if not none

* Add debug log for raw response

* Add _build_hass_attribution

* clearer var names in credentials check

* async _are_valid_client_credentials
2019-09-23 11:50:18 +02:00
Franck Nijhof
5c7f869f9b Remove deprecated sytadin integration (ADR-0004) (#26819)
* Remove deprecated sytadin integration (ADR-0004)

* Update code owners file

* Cleanup coveragerc
2019-09-23 08:44:38 +02:00
Franck Nijhof
38ad573b96 Remove deprecated usps integration (ADR-0004) (#26823) 2019-09-23 08:44:17 +02:00
Franck Nijhof
2f277c4ea7 Remove deprecated ups integration (ADR-0004) (#26824) 2019-09-23 08:43:55 +02:00
Paulus Schoutsen
5a4a3e17cc Split scaffolding script (#26832)
* Add scaffolding split

* Add second config flow method
2019-09-22 21:46:50 -06:00
Paulus Schoutsen
2e4cc7e5a0 Prevent Wemo doing I/O in event loop (#26835)
* Prevent Wemo doing I/O in event loop

* Update config_flow.py
2019-09-22 21:46:32 -06:00
HomeAssistant Azure
d162e39ec9 [ci skip] Translation update 2019-09-23 00:32:13 +00:00
Tommy Larsson
60f0988435 Add Ombi integration (#26755)
* Add Ombi integration

* Black

* Remove trailing comma

* Change dict.get to dict[key] for known keys

* Remove monitored conditions from config

* Define SCAN_INTERVAL for default scan interval

* Adjust requests syntax and add music_requests

* Remove Ombi object initialization

* Move constants to const.py

* Fix imports

* Set pyombi requirement to version 0.1.3

* Add services.yaml

* Add config schema and setup for integration

* Set pyombi requirement to version 0.1.3

* Fix syntax for scan interval

* Fix datetime import

* Add all files from ombi component

* Move imports around

* Move imports around

* Move pyombi import to top of module

* Move scan_interval to sensor module

* Add custom validator for urlbase

* Add guard clause for discovery_info

* Add service validation schemas and constants

* Bump pyombi version

* Adjust urlbase validation

* Add exception warnings for irretrievable media

* Bump pyombi

* Change from .get to dict[key]

* Change schema and conf variable names

* Set return to return false

* Remove unneeded return
2019-09-23 00:57:39 +02:00
jjlawren
5914475fe5 Add manual step to Plex config flow (#26773)
* Add manual config step

* Pass token to manual step

* Fix for no token

* Show error

* Specify key location

* Cast discovery port to int
2019-09-23 00:23:14 +02:00
Michał Mrozek
fbe85a2eb2 Add Kaiterra integration (#26661)
* add Kaiterra integration

* fix: split to multiple platforms

* fix lint issues

* fix formmating

* fix: docstrings

* fix: pylint issues

* Apply suggestions from code review

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Adjust code based on suggestions

* Update homeassistant/components/kaiterra/sensor.py

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
2019-09-22 23:49:09 +02:00
jjlawren
f82f30dc62 Unload Plex config entries (#26771)
* Unload config entries

* Await coroutines

* Unnecessary ensure
2019-09-22 23:47:41 +02:00
Patrik
49fef9a6a0 Add basic support for IKEA Fyrtur blinds (#26659)
* Add basic support for IKEA Fyrtur blinds

* Update coveragerc

* Fix typo

* Fix typos

* Update following review

* Fix incorrect rebase

* Fix error

* Update to new format of unique id

* Add cover

* Remove reference to cover in unique id
2019-09-22 23:01:32 +02:00
Kevin McCormack
2d906b111a Update Vivotek camera component (#26754)
* Update Vivotek camera component

Load model name to instance attribute

* Update Vivotek camera component

Ensure `update` is called when the entity is added.

* Update libpyvivotek to 0.2.2

https://pypi.org/project/libpyvivotek/0.2.2/
- Retrieve camera model name anonymously
- Raise a more helpful error for invalid creds
2019-09-22 22:06:02 +02:00
Erik Montnemery
e5f6f33340 Add device automation support to binary_sensor entities (#26643)
* Add device automation support to binary_sensor entities

* turn_on -> turned_on

* Correct spelling of present

* Improve tests

* Fix strings

* Fix stale comment
2019-09-22 11:13:17 -07:00
Franck Nijhof
14647f5391 Exempt 'Help wanted' issue from stale bot (#26829) 2019-09-22 08:31:01 -07:00
Fabian Affolter
5624e3efd4 Upgrade sendgrid to 6.1.0 (#26809)
* Upgrade sendgrid to 6.1.0

* Move import (could to be a Black issue)
2019-09-22 11:43:41 +02:00
Dima Zavin
04cae0818d Bump pylutron to 0.2.5 (#26815) 2019-09-22 11:41:59 +02:00
Franck Nijhof
4f7a4b93da Bump request_mock to 1.7.0 (#26799) 2019-09-22 11:02:23 +03:00
Franck Nijhof
48369ad08f Bump shodan to 1.17.0 (#26797)
* Bump shodan to 1.16.0

* Bump shodan to 1.17.0
2019-09-22 10:57:11 +03:00
Franck Nijhof
a5ebf9f38d Bump iperf3 to 0.1.11 (#26795) 2019-09-22 10:57:02 +03:00
Franck Nijhof
6bdfab1124 Bump pytest to 5.1.3 (#26794) 2019-09-22 10:56:43 +03:00
Franck Nijhof
ef0dd689fa Bump python-slugify to 3.0.4 (#26801) 2019-09-21 22:10:34 -07:00
Franck Nijhof
6135b862ba Bump hbmqtt to 0.9.5 (#26804) 2019-09-21 22:10:21 -07:00
CQoute
544cdae67c Update light.py (#26703)
Fix for esphome lights to use the flash feature
2019-09-22 01:29:52 +02:00
bouni
dc52b858a4 Fix spaceapi (#26453)
* fixed latitude/longitude keys to be conform with spaceapi specification

* version is now a string as required by the spaceapi specification

* add spacefed

* fixed lat/lon in spaceapi tests

* extended tests

* add feeds

* extended tests

* add cache

* add more tests

* add projects

* more tests

* add radio_show

* more tests

* add additional contact attributes

* corrected valid issue_repoer_channel options

* validate min length of contact/keymasters

* fixed location as address is not required by spec

* Update homeassistant/components/spaceapi/__init__.py

Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>

* Update homeassistant/components/spaceapi/__init__.py

Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>

* fixed issue with name change for longitude/latitude
2019-09-22 01:22:33 +02:00
John Luetke
88dcecab39 Add myself as a pi_hole codeowner (#26796) 2019-09-21 21:39:49 +02:00
Zach
9e79920c9c Fix doods missing detector name kwarg (#26784)
* Fix missing detector name kwarg

* Updated requirements_all.txt

* Reformatted
2019-09-21 14:53:19 -04:00
Fabian Affolter
a9ff15077c Upgrade python-whois to 0.7.2 (#26788) 2019-09-21 14:52:46 -04:00
Fabian Affolter
8c580209a6 Upgrade importlib-metadata to 0.23 (#26787) 2019-09-21 14:52:35 -04:00
Albert Gouws
e394be7337 Mqtt binary sensor expire after (#26058)
* Added expire_after to mqtt binary_sensor. Updated mqtt test_binary_sensor test.

* Cleanup MQTT Binary Sensor and tests after suggestions

* Updated to not alter state at all

* Change to include custom expired variable, and override available property to check expired

* Added # pylint: disable=no-member
2019-09-21 20:42:03 +02:00
scheric
9d0cb899ec Add optimizer data to solaredge_local (#26708)
* making SENSOR_TYPES universal

* bump solaredge-local version 0.2.0

* add maintenance data

* add calculations for optimizer data

* add new sensors

* add statistics lib

* update sensor data setting

* making api requests universal

* fix Cl

* Update requirements_all.txt

* fix temperature

* fix f-strings

* Style guidelines

* shortening line length

* PEP8 test

* flake8

* Black test

* revert line length to 80

* Repair line 12

* black

* style change

* Black

* black using pip

* fix for pylint

* added proper variable name

* for loop cleanup

* fix capitals

* Update units

* black

* add check for good connection to inverter

* Roundig large numbers

* Add myself to codeowners

* Fix layout manifest

* Fix layout manifest

* Update manifest.json

* repair manifest layout

* remove newline in manifest

* add myself to CODEOWNERS
2019-09-21 20:07:53 +02:00
MatthewFlamm
0e15785602 Bump pynws version to 0.8.1 (#26770)
* Bump to version 0.8.1

Fixes #26753.

* gen_requirements.py changes

* fix default params change in tests
2019-09-21 15:56:40 +02:00
Jc2k
ed21019b7a Bump HAP-python to 2.6.0 for homekit (#26783) 2019-09-21 15:34:08 +02:00
HomeAssistant Azure
24cbae6ec3 [ci skip] Translation update 2019-09-21 00:32:16 +00:00
Paulus Schoutsen
8502f7c7d4 Add integration scaffolding script (#26777)
* Add integration scaffolding script

* Make easier to develop

* Update py.test -> pytest
2019-09-20 17:02:18 -07:00
Aaron Bach
5cf9ba51df Bump simplisafe-python to 5.0.1 (#26775) 2019-09-20 22:41:46 +02:00
Aaron Bach
f6be61c6b7 Bump aiowwlln to 2.0.2 (#26769) 2019-09-20 13:32:41 -06:00
David F. Mulcahey
62adff23f9 ZHA siren and warning device support (#26046)
* add ias warning device support
* use channel only clusters for warning devices
* squawk service
* add warning device warning service
* update services.yaml
* remove debugging statement
* update required attr access
* fix constant
* add error logging to IASWD services
2019-09-20 15:11:24 -04:00
Askarov Rishat
aaf0f9890d Add transport data from maps.yandex.ru api (#26766)
* adding feature obtaining Moscow transport data from maps.yandex.ru api

* extracting the YandexMapsRequester to pypi

* fix code review comments

* fix stop_name, state in datetime, logger formating

* fix comments

* add docstring to init

* rename, because it works not only Moscow, but many another big cities in Russia

* fix comments

* Try to solve relative view in sensor timestamp

* back to isoformat

* add tests, update external library version

* flake8 and black tests for sensor.py

* fix manifest.json

* update tests, migrate to pytest, async, Using MockDependency

* move json to tests/fixtures

* script/lint fixes

* fix comments

* removing check_filter function

* fix typo

* up version on manifest.json

* up version to 0.3.7 in requirements_all.txt
2019-09-20 18:12:36 +02:00
Ville Skyttä
54242cd65c Type hint additions (#26765) 2019-09-20 08:23:34 -07:00
Florian Klien
6a3132344c Bump openwrt-luci-rpc to version 1.1.1 (#26759)
* Revert "luci device-tracker dependency fix (#26215)"

This reverts commit 1e61d50fc5.

* bump openwrt-luci-rpc to 1.1.1 fix missing dependency

permanent fix for #26215
2019-09-20 15:58:46 +02:00
Pascal Vizeli
9e44d1af19 Revert "Add transport data from maps.yandex.ru api (#26252)" (#26762)
This reverts commit 9e2cd5116a.
2019-09-20 15:55:43 +02:00
HomeAssistant Azure
20e61fb41b [ci skip] Translation update 2019-09-20 00:32:11 +00:00
Paulus Schoutsen
b3420cbf93 Merge pull request #26751 from home-assistant/rc
0.99.2
2019-09-19 15:29:19 -07:00
Paulus Schoutsen
616b36527b Bumped version to 0.99.2 2019-09-19 15:26:49 -07:00
Paulus Schoutsen
c2e108d2b5 Merge remote-tracking branch 'origin/master' into dev 2019-09-19 15:24:51 -07:00
Paulus Schoutsen
794c26a66e Updated frontend to 20190919.0 2019-09-19 15:23:42 -07:00
Paulus Schoutsen
7a1bfa7a1f Updated frontend to 20190919.0 2019-09-19 15:23:29 -07:00
Paulus Schoutsen
1892ae5bfc Merge pull request #26748 from home-assistant/rc
0.99.1
2019-09-19 15:22:01 -07:00
Robert Svensson
f5d12669a5 deCONZ improve gateway tests (#26709)
* Improve gateway tests

* Harmonize all tests to use the same gateway initialization method

* Improve scene tests

* Add gateway resync call to platform tests

* Forgot to change switch tests to use common gateway method

* Improve event tests
2019-09-19 14:44:09 -07:00
Askarov Rishat
9e2cd5116a Add transport data from maps.yandex.ru api (#26252)
* adding feature obtaining Moscow transport data from maps.yandex.ru api

* extracting the YandexMapsRequester to pypi

* fix code review comments

* fix stop_name, state in datetime, logger formating

* fix comments

* add docstring to init

* rename, because it works not only Moscow, but many another big cities in Russia

* fix comments

* Try to solve relative view in sensor timestamp

* back to isoformat

* add tests, update external library version

* flake8 and black tests for sensor.py

* fix manifest.json

* update tests, migrate to pytest, async, Using MockDependency

* move json to tests/fixtures

* script/lint fixes

* fix comments

* removing check_filter function

* fix typo
2019-09-19 23:41:44 +02:00
Anders Melchiorsen
aac2c3e91c Update codeowners (#26733) 2019-09-19 14:39:57 -07:00
Franck Nijhof
d26273a9e9 Bump influxdb to 5.2.3 (#26743) 2019-09-19 14:38:58 -07:00
Penny Wood
b68b8430a4 Izone component (#24550)
* iZone component

* Rename constants to const.

* Changes as per code review.

* Stop listening if discovery times out.

* Unload properly

* Changes as per code review

* Climate 1.0

* Use dispatcher instead of listener

* Free air settings

* Test case for config flow.

* Changes as per code review

* Fix error on shutdown

* Changes as per code review

* Lint fix

* Black formatting

* Black on test

* Fix test

* Lint fix

* Formatting

* Updated requirements

* Remaining patches

* Per code r/v
2019-09-19 23:31:54 +02:00
Franck Nijhof
c8fb7ce98b Bump restrictedpython to 5.0 (#26741) 2019-09-19 14:30:25 -07:00
Paulus Schoutsen
8439329b04 Bumped version to 0.99.1 2019-09-19 14:29:43 -07:00
jjlawren
2d12bac0e2 Add Plex config flow support (#26548)
* Add config flow support

* Log error on failed connection

* Review comments

* Unused errors

* Move form to step

* Use instance var instead of passing argument

* Only share servers created by component

* Return errors early to avoid try:else

* Separate debug for validation vs setup

* Unnecessary

* Unnecessary checks

* Combine import flows, move logic to component

* Use config entry discovery handler

* Temporary lint fix

* Filter out servers already configured

* Remove manual config flow

* Skip discovery if a config exists

* Swap conditional to reduce indenting

* Only discover when no configs created or creating

* Un-nest function

* Proper async use

* Move legacy file import to discovery

* Fix, bad else

* Separate validate step

* Unused without manual setup step

* Async oops

* First attempt at tests

* Test cleanup

* Full test coverage for config_flow, enable tests

* Lint

* Fix lint vs black

* Add test init

* Add test package requirement

* Actually run script

* Use 'not None' convention

* Group exceptions by result

* Improve logic, add new error and test

* Test cleanup

* Add more asserts
2019-09-19 23:29:26 +02:00
Daniel Shokouhi
3551c39bad Bump pyobihai to fix issue with user account (#26736) 2019-09-19 14:28:34 -07:00
Paulus Schoutsen
66405d5651 Bump TRADFRI (#26731)
* Bump TRADFRI

* Fix test
2019-09-19 14:28:33 -07:00
Andrew Rowson
120c8bad50 Encode prometheus metric names per the prom spec (#26639)
Referencing issue #26418.

Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).

HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing  ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".

Also updated the test case to make sure that the ° case is handled.
2019-09-19 14:28:30 -07:00
Franck Nijhof
246a611a7c Bump aiohttp to 3.6.1 (#26739) 2019-09-19 14:05:02 -07:00
Daniel Shokouhi
94192ecd7d Bump pyobihai to fix issue with user account (#26736) 2019-09-19 22:27:18 +02:00
Robin Wohlers-Reichel
0e201fd859 Update Solax Library to 0.2.2 (#26705)
* bump version and adjust

* Address review comments

* Fix import order

* bump solax version

* Trigger Azure

* default port
2019-09-19 20:52:15 +02:00
Franck Nijhof
44cde5fb73 Bumps pre-commit to 1.18.3 (#26717) 2019-09-19 20:50:45 +02:00
Paulus Schoutsen
1e5de9e9e4 Bump TRADFRI (#26731)
* Bump TRADFRI

* Fix test
2019-09-19 20:49:47 +02:00
Franck Nijhof
a8a485abf7 Bumps aiohttp to 3.6.0 (#26728) 2019-09-19 20:34:41 +02:00
Franck Nijhof
468deef326 Bumps pytest to 5.1.2 (#26718) 2019-09-19 20:02:21 +02:00
Tsvi Mostovicz
1041b10616 Move alexa integration to use dt_util (#26723) 2019-09-19 09:19:27 -07:00
Andrew Rowson
770eeaf82f Encode prometheus metric names per the prom spec (#26639)
Referencing issue #26418.

Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).

HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing  ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".

Also updated the test case to make sure that the ° case is handled.
2019-09-19 12:51:49 +02:00
Martin Brooksbank
5e15675593 Add additional needles to glances cpu_temp attribute (#22311)
* Added additional needles to the cpu_temp attribute

* Fix conflict
2019-09-19 09:55:07 +02:00
Tsvi Mostovicz
80136f3591 Change datetime.now() to dt_util.now() (#26582)
* Change datetime.now() to dt_util.now() in cases where the functionality should stay the same

These changes should not affect the functionality, rather cleanup our codebase.

In general we would like integrations to not to use datetime.now() unless there's a very good
reason for it, rather use our own dt_util.now() which makes the code aware of our current time
zone.

* Use datetime.utcnow() for season sensor to get offset-naive utc time

* Revert "Use datetime.utcnow() for season sensor to get offset-naive utc time"

This reverts commit 5f36463d9c7d52f8e11ffcec7e57dfbc7b21bdd1.

* BOM sensor last_updated should be UTC as well

* Run black

* Remove unused last_partition_update variable
2019-09-19 08:39:09 +02:00
HomeAssistant Azure
fccbaf3805 [ci skip] Translation update 2019-09-19 00:32:15 +00:00
Paulus Schoutsen
88154074c1 Update translations 2019-09-18 17:29:34 -07:00
Paulus Schoutsen
884591a105 Merge pull request #26710 from home-assistant/rc
0.99.0
2019-09-18 15:29:01 -07:00
Paulus Schoutsen
9f08e2b718 Bumped version to 0.99.0 2019-09-18 14:47:50 -07:00
zewelor
e3f25eb730 Fix yeelight inheritance order (#26706) 2019-09-18 14:47:42 -07:00
Paulus Schoutsen
1af5d20601 Updated frontend to 20190918.1 2019-09-18 13:40:28 -07:00
Paulus Schoutsen
f66a42d521 Updated frontend to 20190918.1 2019-09-18 13:40:17 -07:00
roblandry
873d331ee3 Fix torque degree char (#26183)
* Fix for \xC2\xB0 char instead of degree symbol

* Remove comment

* Black
2019-09-18 11:11:26 -07:00
Robert Svensson
886d8bd6e2 deCONZ rewrite sensor tests (#26679)
* Improve binary sensor tests

* Fix sensor tests

* Improve readability of binary sensor

* Fix climate tests
Fix sensor platform not loading climate devices as sensors

* Add test to verify adding new sensor after start up
2019-09-18 10:07:32 -07:00
zewelor
ce42b46ccd Fix yeelight inheritance order (#26706) 2019-09-18 10:07:07 -07:00
Bram Kragten
1a9b4b82f5 Bump version to 0.99.0b4 2019-09-18 18:44:57 +02:00
Bram Kragten
e7d5e08780 Updated frontend to 20190918.0 (#26704) 2019-09-18 18:43:34 +02:00
Paulus Schoutsen
ef9b3321c1 Verify withings config (#26698) 2019-09-18 18:43:33 +02:00
Bram Kragten
46a55ed723 Updated frontend to 20190917.2 (#26696) 2019-09-18 18:43:33 +02:00
Pascal Vizeli
7d525ff2f3 Fix release access for bram (#26693) 2019-09-18 18:43:32 +02:00
Maikel Punie
5b0cbad953 Fix cert expiry config flow check and update (#26638)
* Fix typo in translations

* Work on bug #26619

* readd the homeassistant.start event

* Remove the callback

* Added the executor_job for _test_connection

* Update test_config_flow.py
2019-09-18 18:43:31 +02:00
Erik Montnemery
bc7ff8323c Fix translation, adjust trigger names (#26635) 2019-09-18 18:43:31 +02:00
Erik Montnemery
4a30c1023c Rename MockToggleDevice to MockToggleEntity (#26644)
* Rename MockToggleDevice to MockToggleEntity

* Fix tests
2019-09-18 18:41:58 +02:00
definitio
9cd5c5471d Hide "PTZ is not available on this camera" warning (#26649)
* Hide "PTZ is not available" warning

* Change log level to "debug"
2019-09-18 09:00:12 -07:00
Bram Kragten
fe5a4cef7f Updated frontend to 20190918.0 (#26704) 2019-09-18 15:37:04 +02:00
Robert Svensson
8a39924b37 deCONZ improve light tests (#26697)
* Improve light tests
* Small improvements on light and group classes
2019-09-18 12:47:26 +02:00
Daniel Høyer Iversen
72baf563fa Add alternative name for Tibber sensors (#26685)
* Add alternative name for Tibber sensors

* refactor tibber sensor
2019-09-18 08:30:59 +03:00
HomeAssistant Azure
a390cf7c6a [ci skip] Translation update 2019-09-18 00:32:12 +00:00
Bram Kragten
d33ecbb5be Updated frontend to 20190917.2 (#26696) 2019-09-17 13:46:11 -07:00
Paulus Schoutsen
c6fc677f5b Verify withings config (#26698) 2019-09-17 13:45:48 -07:00
Maikel Punie
9114ed36cd Fix cert expiry config flow check and update (#26638)
* Fix typo in translations

* Work on bug #26619

* readd the homeassistant.start event

* Remove the callback

* Added the executor_job for _test_connection

* Update test_config_flow.py
2019-09-17 13:39:46 -07:00
Erik Montnemery
504b8c7685 Fix translation, adjust trigger names (#26635) 2019-09-17 21:55:01 +02:00
Erik Montnemery
10572a62b1 Add support for automation description (#26662)
* Add support for automation annotation

* Rename annotation to description
2019-09-17 12:12:54 -07:00
Martin Hjelmare
c17057de4b Fix mysensors validation for composite entities (#26666)
* Composite entities require multiple value types to be present in
  child values to function. Any of those value types should trigger an
  entity update if updated.
* Always write platform v names as sets.
* Run black.
2019-09-17 12:00:17 -07:00
zewelor
39edc45e4e Fix volumio set shuffle (#26660) 2019-09-17 20:29:46 +02:00
Jesse Rizzo
4060f1346a Improve Envoy detection and support multiple Envoys (#26665)
* Bump envoy_reader to 0.8.6, fix missing dependency

* Support for optional name in config

* Replace str.format with f-strings
2019-09-17 20:24:03 +02:00
gibman
ed13cab8d6 Disconnect velux on hass stop (#26266)
* velux KLF200 device did not disconnect properly when rebooting the hass device.
disconnect is now being called on the 'EVENT_HOMEASSISTANT_STOP' event

* removed comment

* removed comment

* trigger bot

* trigger bot

* trigger bot

* logging casing fixed. code moved from init.

* logger level debug

logger level moved from info to debug
only config[DOMAIN] exposed to module
imports moved to top

* DOMAIN part of config passed to module.

* removed trailing whitespaces etc.

* black --fast changes

* added missing docstring

* D400 First line should end with a period

* black formatting
2019-09-17 20:22:39 +02:00
Ian
12f68af107 Switch py_nextbus to py_nextbusnext (#26681)
The orignal package maintainer seems to be unresponsive. I've forked
the package and added the bug fixes to the new fork

Fixes #24561
2019-09-17 17:53:12 +02:00
Pascal Vizeli
15bb12f48e Fix release access for bram (#26693) 2019-09-17 15:59:12 +02:00
Bram Kragten
a3bdbf3188 Updated frontend to 20190917.1 (#26691) 2019-09-17 15:41:49 +02:00
Pascal Vizeli
b7f7d545d1 Bump connect-box library to fix logging (#26690) 2019-09-17 13:48:01 +02:00
Pascal Vizeli
4be0c057d2 Fix Nuki issues (#26689)
* Fix Nuki issues

* remove stale code

* Add comments

* Fix lint
2019-09-17 11:44:43 +02:00
Bram Kragten
e0f1677296 Updated frontend to 20190917.0 (#26686) 2019-09-17 09:34:34 +02:00
Paulus Schoutsen
0ef79da281 Use Nabu Casa url if no https url set (#26682)
* Use Nabu Casa url if no https url set

* Update test_home_assistant_cast.py
2019-09-17 09:23:31 +02:00
HomeAssistant Azure
771c674e90 [ci skip] Translation update 2019-09-17 00:32:14 +00:00
Fredrik Erlandsson
c088e8fd95 pytfiac version bump to 0.4 (#26669) 2019-09-16 21:20:48 +02:00
Abílio Costa
8de84c53a1 zha: fix 0 second transitions being ignored. (#26654)
Allow turning a light on instantly, with no transition time.
This is actually required for IKEA lights to be able to set brightness
and color temp in a single call.
2019-09-16 07:14:05 -04:00
Pascal Vizeli
db48d5effd Update azure-pipelines-ci.yml for Azure Pipelines 2019-09-16 10:34:31 +02:00
Robert Svensson
5116d02747 deCONZ - Improve service tests (#26663)
* Improve configure service tests

* Add refresh device service test

* Add tests for setup and unload services

* Remove refresh device test from test_init

* Extra verification of deconz services existance in hass.data
2019-09-16 10:08:13 +02:00
chriscla
719a601880 Use pynzbgetapi exceptions consistently (#26667) 2019-09-16 07:06:21 +02:00
Bryan York
f45f8f2f3d Emulate color temperature for non-ct lights in light groups (#23495)
* Emulate color temperature for non-ct lights in light groups

* fix tests

* Address review comments

* Fix black formatting

* Fix for pylint

* Address comments

* Fix black formatting

* Address comments
2019-09-15 20:53:05 +02:00
michaeldavie
fd359c6222 Fix Environment Canada weather forecast, retain icon_code sensor (#26646)
* Bump env_canada to 0.0.25

* Keep icon_code
2019-09-15 11:55:20 +02:00
Erik Montnemery
6a60ebdb30 Rename MockToggleDevice to MockToggleEntity (#26644)
* Rename MockToggleDevice to MockToggleEntity

* Fix tests
2019-09-15 09:50:17 +02:00
chriscla
57833f5b1e Refactor nzbget to support future platform changes (#26462)
* Re-factor nzbget platform to enable future features.

* Re-factor nzbget platform to enable future features.

* Re-factor nzbget platform to enable future features.

* Re-factor nzbget platform to enable future features.

* Use pynzbgetapi instead of raw HTTP requests

* Using pynzbgetapi

* Pinning pynzbgetapi version.

* Requiring pynzbgetapi 0.2.0

* Addressing review comments

* Refreshing requirements (adding pynzbgetapi)

* Remove period from logging message

* Updating requirements file

* Add nzbget init to .coveragerc

* Adding nzbget codeowner

* Updating codeowners file
2019-09-15 02:44:19 +02:00
Robert Svensson
9c2053a251 deCONZ - Remove mechanisms to import a configuration from configuration.yaml (#26648) 2019-09-14 22:53:59 +02:00
Robert Svensson
41c9ed5d51 deCONZ - battery sensor instead of battery attribute (#26591)
* Allow all sensors to create battery sensors
* Neither binary sensor, climate nor sensor will have battery attributes
2019-09-14 19:15:18 +02:00
SukramJ
24f1ff0aef Add built in weather to Homematic IP Cloud (#26642) 2019-09-14 17:23:23 +02:00
Robert Svensson
5885c3f353 Move deCONZ services to their own file (#26645) 2019-09-14 15:15:06 +02:00
SukramJ
1d3f2d20d2 Add group attribute to Homematic IP Cloud (#26618)
* Add group attribute to Homematic IP Cloud

* Fix docstring
2019-09-14 07:12:19 +02:00
Florent Thoumie
a71cd6e90e Add iaqualink binary sensor and unique_id (#26616)
* Add binary_platform to iaqualink integration, add unique_id

* Revert Mixin changes, move self.dev to AqualinkEntity

* Style fixes
2019-09-14 07:05:47 +02:00
Dan Ponte
bca7363a80 zha ZCL color loop effect (#26549)
* Initial implementation of ZCL color loop effect
* Fix linter complaints
* Use const for action
* Reformat with Black
* Cleanup after review.
* Handle effect being None
2019-09-13 22:06:09 -04:00
HomeAssistant Azure
6a9ecf0015 [ci skip] Translation update 2019-09-14 00:32:15 +00:00
Robert Svensson
fb1acfccc9 deCONZ - create deconz_events through sensor platform (#26592)
* Move event creation into sensor platform where it belongs
* Fixed the weird failing test observed during device automation PR
2019-09-14 00:16:37 +02:00
Pascal Vizeli
357f2421c8 Update azure-pipelines-wheels.yml for Azure Pipelines 2019-09-13 22:29:39 +02:00
Pascal Vizeli
e4bf2c4716 Update azure-pipelines-wheels.yml 2019-09-13 22:04:02 +02:00
Gilad Peleg
2f6d567657 Refactor Bluetooth Tracker to async (#26614)
* Convert bluetooth device tracker to async

* WIP

* WIP

* Fix callback

* Fix tracked devices

* Perform synchornized updates

* Add doc

* Run in executor

* Improve execution

* Improve execution

* Don't create a redundant task

* Optimize see_device to run concurrently

* Remove redundant initialization scan
2019-09-13 21:09:45 +02:00
SNoof85
7e7ec498ca Fix Typo (#26612) 2019-09-13 07:33:14 +02:00
HomeAssistant Azure
10f742d552 [ci skip] Translation update 2019-09-13 00:33:08 +00:00
PoofyTeddy
32a6a76d6a Disable Watson TTS Telemetry (#26253) 2019-09-12 21:50:24 +02:00
Gilad Peleg
25ef4a156f Improve bluetooth tracker device code (#26067)
* Improve bluetooth device tracker code

* Don't use set operations

* Fix logging template interpolation

* Warn if not tracking new devices and not devices to track

* Updates due to CR

* Fix pylint warning

* Fix pylint import warning

* Merge with dev
2019-09-12 18:01:55 +02:00
Sébastien RAMAGE
284ae01560 Bump zigpy-zigate to 0.3.1 (#26600)
* Bump zigpy-zigate to 0.3.1

Bump zigpy-zigate to 0.3.1 (fix Rpi.GPIO dependency)

* Bump zigpy-zigate to 0.3.1

Bump zigpy-zigate to 0.3.1 (fix Rpi.GPIO dependency)
2019-09-12 14:00:58 +02:00
Pascal Vizeli
c6a73e9ef7 Update azure-pipelines-wheels.yml 2019-09-12 13:28:48 +02:00
Gerard
41f96a315e Fix CCM messages (#26589) 2019-09-12 09:50:02 +02:00
Pascal Vizeli
63cf21296c Update azure-pipelines-release.yml 2019-09-12 08:30:28 +02:00
Josef Schlehofer
c06487fa5e Upgrade youtube_dl to 2019.09.12.1 (#26593) 2019-09-12 08:30:04 +02:00
HomeAssistant Azure
d4c5cf3967 [ci skip] Translation update 2019-09-12 00:33:41 +00:00
Sébastien RAMAGE
3fda07a4ea Bump zigate to 0.3.0 (#26586)
* Bump zigate to 0.3.0
2019-09-11 20:03:02 -04:00
Paulus Schoutsen
fc21bdbe27 Update PyChromecast (#26594) 2019-09-11 17:27:56 -06:00
Zach
1eef758ecc Add support for DOODS Image Processing (#26208)
* Add support for doods

* Move connection to external module

* Fix for CI

* Another update for CI

* Reformatted via black

* Updated linting stuff

* Updated per code review

* Removed none check for something with a default

* Updated config parsing

* Updated if statements, need to disable lint check

* Fixed formatting and bug that should make linter happy

* Fixed one more issue with box drawing for areas

* removed extra imports

* Reworked per suggestion

* Changed output to debug for informational detection message
2019-09-11 22:51:05 +02:00
2005 changed files with 36279 additions and 8751 deletions

View File

@@ -143,6 +143,7 @@ omit =
homeassistant/components/dlna_dmr/media_player.py
homeassistant/components/dnsip/sensor.py
homeassistant/components/dominos/*
homeassistant/components/doods/*
homeassistant/components/doorbird/*
homeassistant/components/dovado/*
homeassistant/components/downloader/*
@@ -155,7 +156,12 @@ omit =
homeassistant/components/ebox/sensor.py
homeassistant/components/ebusd/*
homeassistant/components/ecoal_boiler/*
homeassistant/components/ecobee/*
homeassistant/components/ecobee/__init__.py
homeassistant/components/ecobee/binary_sensor.py
homeassistant/components/ecobee/climate.py
homeassistant/components/ecobee/notify.py
homeassistant/components/ecobee/sensor.py
homeassistant/components/ecobee/weather.py
homeassistant/components/econet/water_heater.py
homeassistant/components/ecovacs/*
homeassistant/components/eddystone_temperature/sensor.py
@@ -164,7 +170,7 @@ omit =
homeassistant/components/eight_sleep/*
homeassistant/components/eliqonline/sensor.py
homeassistant/components/elkm1/*
homeassistant/components/elv/switch.py
homeassistant/components/elv/*
homeassistant/components/emby/media_player.py
homeassistant/components/emoncms/sensor.py
homeassistant/components/emoncms_history/*
@@ -197,7 +203,6 @@ omit =
homeassistant/components/evohome/*
homeassistant/components/familyhub/camera.py
homeassistant/components/fastdotcom/*
homeassistant/components/fedex/sensor.py
homeassistant/components/ffmpeg/camera.py
homeassistant/components/fibaro/*
homeassistant/components/filesize/sensor.py
@@ -288,11 +293,15 @@ omit =
homeassistant/components/hydrawise/*
homeassistant/components/hyperion/light.py
homeassistant/components/ialarm/alarm_control_panel.py
homeassistant/components/iaqualink/binary_sensor.py
homeassistant/components/iaqualink/climate.py
homeassistant/components/iaqualink/light.py
homeassistant/components/iaqualink/sensor.py
homeassistant/components/iaqualink/switch.py
homeassistant/components/icloud/device_tracker.py
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/izone/__init__.py
homeassistant/components/idteck_prox/*
homeassistant/components/ifttt/*
homeassistant/components/iglo/light.py
@@ -313,6 +322,7 @@ omit =
homeassistant/components/itunes/media_player.py
homeassistant/components/joaoapps_join/*
homeassistant/components/juicenet/*
homeassistant/components/kaiterra/*
homeassistant/components/kankun/switch.py
homeassistant/components/keba/*
homeassistant/components/keenetic_ndms2/device_tracker.py
@@ -343,7 +353,6 @@ omit =
homeassistant/components/lifx_legacy/light.py
homeassistant/components/lightwave/*
homeassistant/components/limitlessled/light.py
homeassistant/components/linksys_ap/device_tracker.py
homeassistant/components/linksys_smart/device_tracker.py
homeassistant/components/linky/__init__.py
homeassistant/components/linky/sensor.py
@@ -434,12 +443,14 @@ omit =
homeassistant/components/nuki/lock.py
homeassistant/components/nut/sensor.py
homeassistant/components/nx584/alarm_control_panel.py
homeassistant/components/nzbget/__init__.py
homeassistant/components/nzbget/sensor.py
homeassistant/components/obihai/*
homeassistant/components/octoprint/*
homeassistant/components/oem/climate.py
homeassistant/components/oasa_telematics/sensor.py
homeassistant/components/ohmconnect/sensor.py
homeassistant/components/ombi/*
homeassistant/components/onewire/sensor.py
homeassistant/components/onkyo/media_player.py
homeassistant/components/onvif/camera.py
@@ -476,7 +487,10 @@ omit =
homeassistant/components/pioneer/media_player.py
homeassistant/components/pjlink/media_player.py
homeassistant/components/plaato/*
homeassistant/components/plex/*
homeassistant/components/plex/__init__.py
homeassistant/components/plex/media_player.py
homeassistant/components/plex/sensor.py
homeassistant/components/plex/server.py
homeassistant/components/plugwise/*
homeassistant/components/plum_lightpad/*
homeassistant/components/pocketcasts/sensor.py
@@ -544,6 +558,7 @@ omit =
homeassistant/components/russound_rio/media_player.py
homeassistant/components/russound_rnet/media_player.py
homeassistant/components/sabnzbd/*
homeassistant/components/saj/sensor.py
homeassistant/components/satel_integra/*
homeassistant/components/scrape/sensor.py
homeassistant/components/scsgate/*
@@ -585,6 +600,8 @@ omit =
homeassistant/components/solaredge/sensor.py
homeassistant/components/solaredge_local/sensor.py
homeassistant/components/solax/sensor.py
homeassistant/components/soma/cover.py
homeassistant/components/soma/__init__.py
homeassistant/components/somfy/*
homeassistant/components/somfy_mylink/*
homeassistant/components/sonarr/sensor.py
@@ -597,7 +614,6 @@ omit =
homeassistant/components/spotcrime/sensor.py
homeassistant/components/spotify/media_player.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/srp_energy/sensor.py
homeassistant/components/starlingbank/sensor.py
homeassistant/components/steam_online/sensor.py
homeassistant/components/stiebel_eltron/*
@@ -618,7 +634,6 @@ omit =
homeassistant/components/synologydsm/sensor.py
homeassistant/components/syslog/notify.py
homeassistant/components/systemmonitor/sensor.py
homeassistant/components/sytadin/sensor.py
homeassistant/components/tado/*
homeassistant/components/tado/device_tracker.py
homeassistant/components/tahoma/*
@@ -660,9 +675,14 @@ omit =
homeassistant/components/trackr/device_tracker.py
homeassistant/components/tradfri/*
homeassistant/components/tradfri/light.py
homeassistant/components/tradfri/cover.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/*
homeassistant/components/transmission/__init__.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
homeassistant/components/transmission/const.py
homeassistant/components/transmission/errors.py
homeassistant/components/travisci/sensor.py
homeassistant/components/tuya/*
homeassistant/components/twentemilieu/const.py
@@ -678,10 +698,8 @@ omit =
homeassistant/components/upcloud/*
homeassistant/components/upnp/*
homeassistant/components/upc_connect/*
homeassistant/components/ups/sensor.py
homeassistant/components/uptimerobot/binary_sensor.py
homeassistant/components/uscis/sensor.py
homeassistant/components/usps/*
homeassistant/components/vallox/*
homeassistant/components/vasttrafik/sensor.py
homeassistant/components/velbus/__init__.py
@@ -738,6 +756,7 @@ omit =
homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yamaha/media_player.py
homeassistant/components/yamaha_musiccast/media_player.py
homeassistant/components/yandex_transport/*
homeassistant/components/yeelight/*
homeassistant/components/yeelightsunflower/light.py
homeassistant/components/yi/camera.py
@@ -755,6 +774,7 @@ omit =
homeassistant/components/zha/core/device.py
homeassistant/components/zha/core/gateway.py
homeassistant/components/zha/core/helpers.py
homeassistant/components/zha/core/patches.py
homeassistant/components/zha/core/registries.py
homeassistant/components/zha/device_entity.py
homeassistant/components/zha/entity.py

View File

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

View File

@@ -23,9 +23,9 @@
Please provide details about your environment.
-->
**Component/platform:**
**Integration:**
<!--
Please add the link to the documentation at https://www.home-assistant.io/components/ of the component/platform in question.
Please add the link to the documentation at https://www.home-assistant.io/integrations/ of the integration in question.
-->

View File

@@ -29,9 +29,9 @@ about: Create a report to help us improve
Please provide details about your environment.
-->
**Component/platform:**
**Integration:**
<!--
Please add the link to the documentation at https://www.home-assistant.io/components/ of the component/platform in question.
Please add the link to the documentation at https://www.home-assistant.io/integrations/ of the integration in question.
-->

1
.github/stale.yml vendored
View File

@@ -13,6 +13,7 @@ onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- under investigation
- Help wanted
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: true

View File

@@ -30,4 +30,4 @@ matrix:
cache: pip
install: pip install -U tox
language: python
script: travis_wait 40 tox --develop
script: travis_wait 50 tox --develop

View File

@@ -1,4 +1,4 @@
# This file is generated by script/manifest/codeowners.py
# This file is generated by script/hassfest/codeowners.py
# People marked here will be automatically requested for a review
# when the code that they own is touched.
# https://github.com/blog/2392-introducing-code-owners
@@ -16,6 +16,7 @@ homeassistant/scripts/check_config.py @kellerza
homeassistant/components/adguard/* @frenck
homeassistant/components/airvisual/* @bachya
homeassistant/components/alarm_control_panel/* @colinodell
homeassistant/components/alexa/* @home-assistant/cloud
homeassistant/components/alpha_vantage/* @fabaff
homeassistant/components/amazon_polly/* @robbiet480
homeassistant/components/ambiclimate/* @danielhiversen
@@ -73,6 +74,7 @@ homeassistant/components/digital_ocean/* @fabaff
homeassistant/components/discogs/* @thibmaek
homeassistant/components/doorbird/* @oblogic7
homeassistant/components/dweet/* @fabaff
homeassistant/components/ecobee/* @marthoc
homeassistant/components/ecovacs/* @OverloadUT
homeassistant/components/egardia/* @jeroenterheerdt
homeassistant/components/eight_sleep/* @mezz64
@@ -105,6 +107,7 @@ homeassistant/components/geonetnz_quakes/* @exxamalte
homeassistant/components/gitter/* @fabaff
homeassistant/components/glances/* @fabaff
homeassistant/components/gntp/* @robbiet480
homeassistant/components/google_assistant/* @home-assistant/cloud
homeassistant/components/google_cloud/* @lufton
homeassistant/components/google_translate/* @awarecan
homeassistant/components/google_travel_time/* @robbiet480
@@ -115,6 +118,7 @@ homeassistant/components/gtfs/* @robbiet480
homeassistant/components/harmony/* @ehendrix23
homeassistant/components/hassio/* @home-assistant/hass-io
homeassistant/components/heos/* @andrewsayre
homeassistant/components/here_travel_time/* @eifinger
homeassistant/components/hikvision/* @mezz64
homeassistant/components/hikvisioncam/* @fbradyirl
homeassistant/components/history/* @home-assistant/core
@@ -144,7 +148,9 @@ homeassistant/components/ios/* @robbiet480
homeassistant/components/ipma/* @dgomes
homeassistant/components/iqvia/* @bachya
homeassistant/components/irish_rail_transport/* @ttroy50
homeassistant/components/izone/* @Swamp-Ig
homeassistant/components/jewish_calendar/* @tsvi
homeassistant/components/kaiterra/* @Michsior14
homeassistant/components/keba/* @dannerph
homeassistant/components/knx/* @Julius2342
homeassistant/components/kodi/* @armills
@@ -153,9 +159,6 @@ homeassistant/components/lametric/* @robbiet480
homeassistant/components/launch_library/* @ludeeus
homeassistant/components/lcn/* @alengwenus
homeassistant/components/life360/* @pnbruckner
homeassistant/components/lifx/* @amelchio
homeassistant/components/lifx_cloud/* @amelchio
homeassistant/components/lifx_legacy/* @amelchio
homeassistant/components/linky/* @Quentame
homeassistant/components/linux_battery/* @fabaff
homeassistant/components/liveboxplaytv/* @pschmitt
@@ -181,12 +184,12 @@ homeassistant/components/monoprice/* @etsinko
homeassistant/components/moon/* @fabaff
homeassistant/components/mpd/* @fabaff
homeassistant/components/mqtt/* @home-assistant/core
homeassistant/components/mysensors/* @MartinHjelmare
homeassistant/components/mystrom/* @fabaff
homeassistant/components/nello/* @pschmitt
homeassistant/components/ness_alarm/* @nickw444
homeassistant/components/nest/* @awarecan
homeassistant/components/netdata/* @fabaff
homeassistant/components/netgear_lte/* @amelchio
homeassistant/components/nextbus/* @vividboarder
homeassistant/components/nissan_leaf/* @filcole
homeassistant/components/nmbs/* @thibmaek
@@ -197,8 +200,10 @@ homeassistant/components/nsw_fuel_station/* @nickw444
homeassistant/components/nsw_rural_fire_service_feed/* @exxamalte
homeassistant/components/nuki/* @pvizeli
homeassistant/components/nws/* @MatthewFlamm
homeassistant/components/nzbget/* @chriscla
homeassistant/components/obihai/* @dshokouhi
homeassistant/components/ohmconnect/* @robbiet480
homeassistant/components/ombi/* @larssont
homeassistant/components/onboarding/* @home-assistant/core
homeassistant/components/opentherm_gw/* @mvn23
homeassistant/components/openuv/* @bachya
@@ -209,7 +214,7 @@ homeassistant/components/panel_custom/* @home-assistant/frontend
homeassistant/components/panel_iframe/* @home-assistant/frontend
homeassistant/components/persistent_notification/* @home-assistant/core
homeassistant/components/philips_js/* @elupus
homeassistant/components/pi_hole/* @fabaff
homeassistant/components/pi_hole/* @fabaff @johnluetke
homeassistant/components/plaato/* @JohNan
homeassistant/components/plant/* @ChristianKuehnel
homeassistant/components/plex/* @jjlawren
@@ -223,6 +228,7 @@ homeassistant/components/qld_bushfire/* @exxamalte
homeassistant/components/qnap/* @colinodell
homeassistant/components/quantum_gateway/* @cisasteelersfan
homeassistant/components/qwikswitch/* @kellerza
homeassistant/components/rainbird/* @konikvranik
homeassistant/components/raincloud/* @vanstinator
homeassistant/components/rainforest_eagle/* @gtdiehl
homeassistant/components/rainmachine/* @bachya
@@ -231,6 +237,7 @@ homeassistant/components/repetier/* @MTrab
homeassistant/components/rfxtrx/* @danielhiversen
homeassistant/components/rmvtransport/* @cgtobi
homeassistant/components/roomba/* @pschmitt
homeassistant/components/saj/* @fredericvl
homeassistant/components/scene/* @home-assistant/core
homeassistant/components/scrape/* @fabaff
homeassistant/components/script/* @home-assistant/core
@@ -248,11 +255,11 @@ homeassistant/components/smarthab/* @outadoc
homeassistant/components/smartthings/* @andrewsayre
homeassistant/components/smarty/* @z0mbieprocess
homeassistant/components/smtp/* @fabaff
homeassistant/components/solaredge_local/* @drobtravels
homeassistant/components/solaredge_local/* @drobtravels @scheric
homeassistant/components/solax/* @squishykid
homeassistant/components/soma/* @ratsept
homeassistant/components/somfy/* @tetienne
homeassistant/components/songpal/* @rytilahti
homeassistant/components/sonos/* @amelchio
homeassistant/components/spaceapi/* @fabaff
homeassistant/components/spider/* @peternijssen
homeassistant/components/sql/* @dgomes
@@ -270,7 +277,6 @@ homeassistant/components/switchmate/* @danielhiversen
homeassistant/components/syncthru/* @nielstron
homeassistant/components/synology_srm/* @aerialls
homeassistant/components/syslog/* @fabaff
homeassistant/components/sytadin/* @gautric
homeassistant/components/tahoma/* @philklei
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
@@ -282,11 +288,13 @@ homeassistant/components/threshold/* @fabaff
homeassistant/components/tibber/* @danielhiversen
homeassistant/components/tile/* @bachya
homeassistant/components/time_date/* @fabaff
homeassistant/components/todoist/* @boralyl
homeassistant/components/toon/* @frenck
homeassistant/components/tplink/* @rytilahti
homeassistant/components/traccar/* @ludeeus
homeassistant/components/tradfri/* @ggravlingen
homeassistant/components/trafikverket_train/* @endor-force
homeassistant/components/transmission/* @engrbm87
homeassistant/components/tts/* @robbiet480
homeassistant/components/twentemilieu/* @frenck
homeassistant/components/twilio_call/* @robbiet480
@@ -315,12 +323,14 @@ homeassistant/components/wemo/* @sqldiablo
homeassistant/components/withings/* @vangorra
homeassistant/components/worldclock/* @fabaff
homeassistant/components/wwlln/* @bachya
homeassistant/components/xbox_live/* @MartinHjelmare
homeassistant/components/xfinity/* @cisasteelersfan
homeassistant/components/xiaomi_aqara/* @danielhiversen @syssi
homeassistant/components/xiaomi_miio/* @rytilahti @syssi
homeassistant/components/xiaomi_tv/* @simse
homeassistant/components/xmpp/* @fabaff @flowolf
homeassistant/components/yamaha_musiccast/* @jalmeroth
homeassistant/components/yandex_transport/* @rishatik92
homeassistant/components/yeelight/* @rytilahti @zewelor
homeassistant/components/yeelightsunflower/* @lindsaymarkward
homeassistant/components/yessssms/* @flowolf

View File

@@ -32,4 +32,4 @@ of a component, check the `Home Assistant help section <https://home-assistant.i
.. |screenshot-states| image:: https://raw.github.com/home-assistant/home-assistant/master/docs/screenshots.png
:target: https://home-assistant.io/demo/
.. |screenshot-components| image:: https://raw.github.com/home-assistant/home-assistant/dev/docs/screenshot-components.png
:target: https://home-assistant.io/components/
:target: https://home-assistant.io/integrations/

View File

@@ -112,6 +112,8 @@ stages:
# Find offending deps with `pipdeptree -r -p typing`
pip uninstall -y typing
- script: |
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar tests
script/check_dirty

View File

@@ -43,7 +43,7 @@ stages:
release="$(Build.SourceBranchName)"
created_by="$(curl -s https://api.github.com/repos/home-assistant/home-assistant/releases/tags/${release} | jq --raw-output '.author.login')"
if [[ "${created_by}" =~ ^(balloob|pvizeli|fabaff|robbiet480)$ ]]; then
if [[ "${created_by}" =~ ^(balloob|pvizeli|fabaff|robbiet480|bramkragten)$ ]]; then
exit 0
fi
@@ -233,3 +233,45 @@ stages:
fi
displayName: 'Create Meta-Image'
- stage: 'Addidional'
jobs:
- job: 'Updater'
pool:
vmImage: 'ubuntu-latest'
variables:
- group: gcloud
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
curl -o google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
tar -C . -xvf google-cloud-sdk.tar.gz
rm -f google-cloud-sdk.tar.gz
./google-cloud-sdk/install.sh
displayName: 'Setup gCloud'
condition: eq(variables['homeassistantReleaseStable'], 'true')
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
echo "$(gcloudAnalytic)" > gcloud_auth.json
./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file gcloud_auth.json
rm -f gcloud_auth.json
displayName: 'Auth gCloud'
condition: eq(variables['homeassistantReleaseStable'], 'true')
- script: |
set -e
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
./google-cloud-sdk/bin/gcloud functions deploy Analytics-Receiver \
--project home-assistant-analytics \
--update-env-vars VERSION=$(homeassistantRelease) \
--source gs://analytics-src/function-source.zip
displayName: 'Push details to updater'
condition: eq(variables['homeassistantReleaseStable'], 'true')

View File

@@ -45,7 +45,6 @@ jobs:
requirement_files="requirements_wheels.txt requirements_diff.txt"
for requirement_file in ${requirement_files}; do
sed -i "s|# pytradfri|pytradfri|g" ${requirement_file}
sed -i "s|# pybluez|pybluez|g" ${requirement_file}
sed -i "s|# bluepy|bluepy|g" ${requirement_file}
sed -i "s|# beacontools|beacontools|g" ${requirement_file}
@@ -63,9 +62,15 @@ jobs:
sed -i "s|# homekit|homekit|g" ${requirement_file}
sed -i "s|# decora_wifi|decora_wifi|g" ${requirement_file}
sed -i "s|# decora|decora|g" ${requirement_file}
sed -i "s|# avion|avion|g" ${requirement_file}
sed -i "s|# PySwitchbot|PySwitchbot|g" ${requirement_file}
sed -i "s|# pySwitchmate|pySwitchmate|g" ${requirement_file}
sed -i "s|# face_recognition|face_recognition|g" ${requirement_file}
sed -i "s|# py_noaa|py_noaa|g" ${requirement_file}
sed -i "s|# bme680|bme680|g" ${requirement_file}
if [[ "$(buildArch)" =~ arm ]]; then
sed -i "s|# VL53L1X|VL53L1X|g" ${requirement_file}
fi
done
displayName: 'Prepare requirements files for Hass.io'

View File

@@ -1,6 +1,4 @@
"""Start Home Assistant."""
from __future__ import print_function
import argparse
import os
import platform

View File

@@ -22,7 +22,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.2.7"]
REQUIREMENTS = ["pyotp==2.3.0"]
CONF_MESSAGE = "message"
@@ -251,8 +251,10 @@ class NotifyAuthModule(MultiFactorAuthModule):
_LOGGER.error("Cannot find user %s", user_id)
return
await self.async_notify( # type: ignore
code, notify_setting.notify_service, notify_setting.target
await self.async_notify(
code,
notify_setting.notify_service, # type: ignore
notify_setting.target,
)
async def async_notify(

View File

@@ -16,7 +16,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.2.7", "PyQRCode==1.2.1"]
REQUIREMENTS = ["pyotp==2.3.0", "PyQRCode==1.2.1"]
CONFIG_SCHEMA = MULTI_FACTOR_AUTH_MODULE_SCHEMA.extend({}, extra=vol.PREVENT_EXTRA)
@@ -215,8 +215,9 @@ class TotpSetupFlow(SetupFlow):
else:
hass = self._auth_module.hass
self._ota_secret, self._url, self._image = await hass.async_add_executor_job( # type: ignore
_generate_secret_and_qr_code, str(self._user.name)
self._ota_secret, self._url, self._image = await hass.async_add_executor_job(
_generate_secret_and_qr_code, # type: ignore
str(self._user.name),
)
return self.async_show_form(

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "La clau API no \u00e9s correcta.",
"name_exists": "El nom ja existeix.",
"wrong_location": "No hi ha estacions de mesura Airly en aquesta zona."
},
"step": {
"user": {
"data": {
"api_key": "Clau API d'Airly",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nom de la integraci\u00f3"
},
"description": "Configura una integraci\u00f3 de qualitat d\u2019aire Airly. Per generar la clau API, v\u00e9s a https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "API-n\u00f8glen er ikke korrekt.",
"name_exists": "Navnet findes allerede.",
"wrong_location": "Ingen Airly m\u00e5lestationer i dette omr\u00e5de."
},
"step": {
"user": {
"data": {
"api_key": "Airly API-n\u00f8gle",
"latitude": "Breddegrad",
"longitude": "L\u00e6ngdegrad",
"name": "Integrationens navn"
},
"description": "Konfigurer Airly luftkvalitet integration. For at generere API-n\u00f8gle, g\u00e5 til https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,18 @@
{
"config": {
"error": {
"name_exists": "Name existiert bereits"
},
"step": {
"user": {
"data": {
"latitude": "Breitengrad",
"longitude": "L\u00e4ngengrad",
"name": "Name der Integration"
},
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "API key is not correct.",
"name_exists": "Name already exists.",
"wrong_location": "No Airly measuring stations in this area."
},
"step": {
"user": {
"data": {
"api_key": "Airly API key",
"latitude": "Latitude",
"longitude": "Longitude",
"name": "Name of the integration"
},
"description": "Set up Airly air quality integration. To generate API key go to https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "La clave de la API no es correcta.",
"name_exists": "El nombre ya existe.",
"wrong_location": "No hay estaciones de medici\u00f3n Airly en esta zona."
},
"step": {
"user": {
"data": {
"api_key": "Clave API de Airly",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nombre de la integraci\u00f3n"
},
"description": "Establecer la integraci\u00f3n de la calidad del aire de Airly. Para generar la clave de la API vaya a https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,21 @@
{
"config": {
"error": {
"auth": "La cl\u00e9 API n'est pas correcte.",
"name_exists": "Le nom existe d\u00e9j\u00e0.",
"wrong_location": "Aucune station de mesure Airly dans cette zone."
},
"step": {
"user": {
"data": {
"api_key": "Cl\u00e9 API Airly",
"latitude": "Latitude",
"longitude": "Longitude",
"name": "Nom de l'int\u00e9gration"
},
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "La chiave API non \u00e8 corretta.",
"name_exists": "Il nome \u00e8 gi\u00e0 esistente",
"wrong_location": "Nessuna stazione di misurazione Airly in quest'area."
},
"step": {
"user": {
"data": {
"api_key": "Chiave API Airly",
"latitude": "Latitudine",
"longitude": "Logitudine",
"name": "Nome dell'integrazione"
},
"description": "Configurazione dell'integrazione della qualit\u00e0 dell'aria Airly. Per generare la chiave API andare su https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "Api Schl\u00ebssel ass net korrekt.",
"name_exists": "Numm g\u00ebtt et schonn",
"wrong_location": "Keng Airly Moos Statioun an d\u00ebsem Ber\u00e4ich"
},
"step": {
"user": {
"data": {
"api_key": "Airly API Schl\u00ebssel",
"latitude": "Breedegrad",
"longitude": "L\u00e4ngegrad",
"name": "Numm vun der Installatioun"
},
"description": "Airly Loft Qualit\u00e9it Integratioun ariichten. Fir een API Schl\u00ebssel z'erstelle gitt op https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,10 @@
{
"config": {
"step": {
"user": {
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "API-n\u00f8kkelen er ikke korrekt.",
"name_exists": "Navnet finnes allerede.",
"wrong_location": "Ingen Airly m\u00e5lestasjoner i dette omr\u00e5det."
},
"step": {
"user": {
"data": {
"api_key": "Airly API-n\u00f8kkel",
"latitude": "Breddegrad",
"longitude": "Lengdegrad",
"name": "Navn p\u00e5 integrasjonen"
},
"description": "Sett opp Airly luftkvalitet integrering. For \u00e5 generere API-n\u00f8kkel g\u00e5 til https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "Klucz API jest nieprawid\u0142owy.",
"name_exists": "Nazwa ju\u017c istnieje.",
"wrong_location": "Brak stacji pomiarowych Airly w tym rejonie."
},
"step": {
"user": {
"data": {
"api_key": "Klucz API Airly",
"latitude": "Szeroko\u015b\u0107 geograficzna",
"longitude": "D\u0142ugo\u015b\u0107 geograficzna",
"name": "Nazwa integracji"
},
"description": "Konfiguracja integracji Airly. By wygenerowa\u0107 klucz API, przejd\u017a na stron\u0119 https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 API.",
"name_exists": "\u042d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.",
"wrong_location": "\u0412 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0435\u0442 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 Airly."
},
"step": {
"user": {
"data": {
"api_key": "\u041a\u043b\u044e\u0447 API",
"latitude": "\u0428\u0438\u0440\u043e\u0442\u0430",
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435"
},
"description": "\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u0434\u0443\u0445\u0430 Airly. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://developer.airly.eu/register.",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "Klju\u010d API ni pravilen.",
"name_exists": "Ime \u017ee obstaja",
"wrong_location": "Na tem obmo\u010dju ni merilnih postaj Airly."
},
"step": {
"user": {
"data": {
"api_key": "Airly API klju\u010d",
"latitude": "Zemljepisna \u0161irina",
"longitude": "Zemljepisna dol\u017eina",
"name": "Ime integracije"
},
"description": "Nastavite Airly integracijo za kakovost zraka. \u010ce \u017eelite ustvariti API klju\u010d pojdite na https://developer.airly.eu/register",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"error": {
"auth": "API \u5bc6\u9470\u4e0d\u6b63\u78ba\u3002",
"name_exists": "\u8a72\u540d\u7a31\u5df2\u5b58\u5728",
"wrong_location": "\u8a72\u5340\u57df\u6c92\u6709 Arily \u76e3\u6e2c\u7ad9\u3002"
},
"step": {
"user": {
"data": {
"api_key": "Airly API \u5bc6\u9470",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d93\u5ea6",
"name": "\u6574\u5408\u540d\u7a31"
},
"description": "\u6b32\u8a2d\u5b9a Airly \u7a7a\u6c23\u54c1\u8cea\u6574\u5408\u3002\u8acb\u81f3 https://developer.airly.eu/register \u7522\u751f API \u5bc6\u9470",
"title": "Airly"
}
},
"title": "Airly"
}
}

View File

@@ -1,7 +1,7 @@
{
"domain": "abode",
"name": "Abode",
"documentation": "https://www.home-assistant.io/components/abode",
"documentation": "https://www.home-assistant.io/integrations/abode",
"requirements": [
"abodepy==0.15.0"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "acer_projector",
"name": "Acer projector",
"documentation": "https://www.home-assistant.io/components/acer_projector",
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"requirements": [
"pyserial==3.1.1"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "actiontec",
"name": "Actiontec",
"documentation": "https://www.home-assistant.io/components/actiontec",
"documentation": "https://www.home-assistant.io/integrations/actiontec",
"requirements": [],
"dependencies": [],
"codeowners": []

View File

@@ -9,7 +9,7 @@
},
"step": {
"hassio_confirm": {
"description": "Vil du konfigurere Home Assistant til at oprette forbindelse til Adguard Home, der leveres af Hass.io add-on: {addon}?",
"description": "Vil du konfigurere Home Assistant til at oprette forbindelse til AdGuard Home, der leveres af Hass.io add-on: {addon}?",
"title": "AdGuard Home via Hass.io add-on"
},
"user": {

View File

@@ -1,7 +1,30 @@
{
"config": {
"abort": {
"existing_instance_updated": "Se ha actualizado la configuraci\u00f3n existente."
}
"existing_instance_updated": "Se ha actualizado la configuraci\u00f3n existente.",
"single_instance_allowed": "S\u00f3lo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error": {
"connection_error": "No se conect\u00f3."
},
"step": {
"hassio_confirm": {
"description": "\u00bfDesea configurar Home Assistant para conectarse al AdGuard Home proporcionado por el complemento Hass.io: {addon} ?",
"title": "AdGuard Home a trav\u00e9s del complemento Hass.io"
},
"user": {
"data": {
"host": "Host",
"password": "Contrase\u00f1a",
"port": "Puerto",
"ssl": "AdGuard Home utiliza un certificado SSL",
"username": "Nombre de usuario",
"verify_ssl": "AdGuard Home utiliza un certificado apropiado"
},
"description": "Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control.",
"title": "Enlace su AdGuard Home."
}
},
"title": "AdGuard Home"
}
}

View File

@@ -0,0 +1,13 @@
{
"config": {
"step": {
"user": {
"data": {
"password": "Jelsz\u00f3",
"port": "Port",
"username": "Felhaszn\u00e1l\u00f3n\u00e9v"
}
}
}
}
}

View File

@@ -0,0 +1,11 @@
{
"config": {
"step": {
"user": {
"data": {
"username": "Brukarnamn"
}
}
}
}
}

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"existing_instance_updated": "Oppdatert eksisterende konfigurasjon.",
"single_instance_allowed": "Kun \u00e9n enkelt konfigurasjon av AdGuard Hjemer tillatt."
"single_instance_allowed": "Kun en konfigurasjon av AdGuard Hjemer tillatt."
},
"error": {
"connection_error": "Tilkobling mislyktes."

View File

@@ -22,7 +22,7 @@
"verify_ssl": "AdGuard Home u\u017cywa odpowiedniego certyfikatu."
},
"description": "Skonfiguruj instancj\u0119 AdGuard Home, aby umo\u017cliwi\u0107 monitorowanie i kontrol\u0119.",
"title": "Po\u0142\u0105cz sw\u00f3j AdGuard Home"
"title": "Po\u0142\u0105cz AdGuard Home"
}
},
"title": "AdGuard Home"

View File

@@ -9,7 +9,7 @@
},
"step": {
"hassio_confirm": {
"description": "\u017delite konfigurirati Home Assistant-a za povezavo z AdGuard Home, ki ga ponuja hass.io add-on {addon} ?",
"description": "\u017delite konfigurirati Home Assistant-a za povezavo z AdGuard Home, ki ga ponuja Hass.io add-on {addon} ?",
"title": "AdGuard Home preko dodatka Hass.io"
},
"user": {

View File

@@ -2,7 +2,7 @@
"domain": "adguard",
"name": "AdGuard Home",
"config_flow": true,
"documentation": "https://www.home-assistant.io/components/adguard",
"documentation": "https://www.home-assistant.io/integrations/adguard",
"requirements": [
"adguardhome==0.2.1"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "ads",
"name": "Ads",
"documentation": "https://www.home-assistant.io/components/ads",
"documentation": "https://www.home-assistant.io/integrations/ads",
"requirements": [
"pyads==3.0.7"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "aftership",
"name": "Aftership",
"documentation": "https://www.home-assistant.io/components/aftership",
"documentation": "https://www.home-assistant.io/integrations/aftership",
"requirements": [
"pyaftership==0.1.2"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "air_quality",
"name": "Air quality",
"documentation": "https://www.home-assistant.io/components/air_quality",
"documentation": "https://www.home-assistant.io/integrations/air_quality",
"requirements": [],
"dependencies": [],
"codeowners": []

View File

@@ -1,7 +1,7 @@
{
"domain": "airvisual",
"name": "Airvisual",
"documentation": "https://www.home-assistant.io/components/airvisual",
"documentation": "https://www.home-assistant.io/integrations/airvisual",
"requirements": [
"pyairvisual==3.0.1"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "aladdin_connect",
"name": "Aladdin connect",
"documentation": "https://www.home-assistant.io/components/aladdin_connect",
"documentation": "https://www.home-assistant.io/integrations/aladdin_connect",
"requirements": [
"aladdin_connect==0.3"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "alarm_control_panel",
"name": "Alarm control panel",
"documentation": "https://www.home-assistant.io/components/alarm_control_panel",
"documentation": "https://www.home-assistant.io/integrations/alarm_control_panel",
"requirements": [],
"dependencies": [],
"codeowners": [

View File

@@ -1,7 +1,7 @@
{
"domain": "alarmdecoder",
"name": "Alarmdecoder",
"documentation": "https://www.home-assistant.io/components/alarmdecoder",
"documentation": "https://www.home-assistant.io/integrations/alarmdecoder",
"requirements": [
"alarmdecoder==1.13.2"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "alarmdotcom",
"name": "Alarmdotcom",
"documentation": "https://www.home-assistant.io/components/alarmdotcom",
"documentation": "https://www.home-assistant.io/integrations/alarmdotcom",
"requirements": [
"pyalarmdotcom==0.3.2"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "alert",
"name": "Alert",
"documentation": "https://www.home-assistant.io/components/alert",
"documentation": "https://www.home-assistant.io/integrations/alert",
"requirements": [],
"dependencies": [],
"after_dependencies": [

View File

@@ -1,5 +1,4 @@
"""Alexa capabilities."""
from datetime import datetime
import logging
from homeassistant.const import (
@@ -16,6 +15,7 @@ from homeassistant.const import (
import homeassistant.components.climate.const as climate
from homeassistant.components import light, fan, cover
import homeassistant.util.color as color_util
import homeassistant.util.dt as dt_util
from .const import (
API_TEMP_UNITS,
@@ -109,7 +109,7 @@ class AlexaCapibility:
"name": prop_name,
"namespace": self.name(),
"value": prop_value,
"timeOfSample": datetime.now().strftime(DATE_FORMAT),
"timeOfSample": dt_util.utcnow().strftime(DATE_FORMAT),
"uncertaintyInMilliseconds": 0,
}
@@ -326,7 +326,7 @@ class AlexaColorTemperatureController(AlexaCapibility):
return color_util.color_temperature_mired_to_kelvin(
self.entity.attributes["color_temp"]
)
return 0
return None
class AlexaPercentageController(AlexaCapibility):
@@ -445,7 +445,7 @@ class AlexaTemperatureSensor(AlexaCapibility):
unit = self.hass.config.units.temperature_unit
temp = self.entity.attributes.get(climate.ATTR_CURRENT_TEMPERATURE)
if temp in (STATE_UNAVAILABLE, STATE_UNKNOWN):
if temp in (STATE_UNAVAILABLE, STATE_UNKNOWN, None):
return None
try:
@@ -572,6 +572,9 @@ class AlexaThermostatController(AlexaCapibility):
def get_property(self, name):
"""Read and return a property."""
if self.entity.state == STATE_UNAVAILABLE:
return None
if name == "thermostatMode":
preset = self.entity.attributes.get(climate.ATTR_PRESET_MODE)

View File

@@ -52,6 +52,8 @@ from .capabilities import (
ENTITY_ADAPTERS = Registry()
TRANSLATION_TABLE = dict.fromkeys(map(ord, r"}{\/|\"()[]+~!><*%"), None)
class DisplayCategory:
"""Possible display categories for Discovery response.
@@ -74,9 +76,18 @@ class DisplayCategory:
# Indicates a door.
DOOR = "DOOR"
# Indicates a doorbell.
DOOR_BELL = "DOORBELL"
# Indicates a fan.
FAN = "FAN"
# Indicates light sources or fixtures.
LIGHT = "LIGHT"
# Indicates a microwave oven.
MICROWAVE = "MICROWAVE"
# Indicates an endpoint that detects and reports motion.
MOTION_SENSOR = "MOTION_SENSOR"
@@ -89,6 +100,9 @@ class DisplayCategory:
# order is unimportant. Applies to Scenes
SCENE_TRIGGER = "SCENE_TRIGGER"
# Indicates a security panel.
SECURITY_PANEL = "SECURITY_PANEL"
# Indicates an endpoint that locks.
SMARTLOCK = "SMARTLOCK"
@@ -134,15 +148,18 @@ class AlexaEntity:
def friendly_name(self):
"""Return the Alexa API friendly name."""
return self.entity_conf.get(CONF_NAME, self.entity.name)
return self.entity_conf.get(CONF_NAME, self.entity.name).translate(
TRANSLATION_TABLE
)
def description(self):
"""Return the Alexa API description."""
return self.entity_conf.get(CONF_DESCRIPTION, self.entity.entity_id)
description = self.entity_conf.get(CONF_DESCRIPTION) or self.entity_id
return f"{description} via Home Assistant".translate(TRANSLATION_TABLE)
def alexa_id(self):
"""Return the Alexa API entity id."""
return self.entity.entity_id.replace(".", "#")
return self.entity.entity_id.replace(".", "#").translate(TRANSLATION_TABLE)
def display_categories(self):
"""Return a list of display categories."""
@@ -319,7 +336,7 @@ class FanCapabilities(AlexaEntity):
def default_display_categories(self):
"""Return the display categories for this entity."""
return [DisplayCategory.OTHER]
return [DisplayCategory.FAN]
def interfaces(self):
"""Yield the supported interfaces."""
@@ -389,10 +406,11 @@ class SceneCapabilities(AlexaEntity):
"""Class to represent Scene capabilities."""
def description(self):
"""Return the description of the entity."""
# Required description as per Amazon Scene docs
scene_fmt = "{} (Scene connected via Home Assistant)"
return scene_fmt.format(AlexaEntity.description(self))
"""Return the Alexa API description."""
description = AlexaEntity.description(self)
if "scene" not in description.casefold():
return f"{description} (Scene)"
return description
def default_display_categories(self):
"""Return the display categories for this entity."""

View File

@@ -1,9 +1,9 @@
"""Support for Alexa skill service end point."""
import copy
from datetime import datetime
import logging
import uuid
import homeassistant.util.dt as dt_util
from homeassistant.components import http
from homeassistant.core import callback
from homeassistant.helpers import template
@@ -89,7 +89,7 @@ class AlexaFlashBriefingView(http.HomeAssistantView):
else:
output[ATTR_REDIRECTION_URL] = item.get(CONF_DISPLAY_URL)
output[ATTR_UPDATE_DATE] = datetime.now().strftime(DATE_FORMAT)
output[ATTR_UPDATE_DATE] = dt_util.utcnow().strftime(DATE_FORMAT)
briefing.append(output)

View File

@@ -1,5 +1,4 @@
"""Alexa message handlers."""
from datetime import datetime
import logging
import math
@@ -28,6 +27,7 @@ from homeassistant.const import (
TEMP_FAHRENHEIT,
)
import homeassistant.util.color as color_util
import homeassistant.util.dt as dt_util
from homeassistant.util.decorator import Registry
from homeassistant.util.temperature import convert as convert_temperature
@@ -275,7 +275,7 @@ async def async_api_activate(hass, config, directive, context):
payload = {
"cause": {"type": Cause.VOICE_INTERACTION},
"timestamp": "%sZ" % (datetime.utcnow().isoformat(),),
"timestamp": f"{dt_util.utcnow().replace(tzinfo=None).isoformat()}Z",
}
return directive.response(
@@ -299,7 +299,7 @@ async def async_api_deactivate(hass, config, directive, context):
payload = {
"cause": {"type": Cause.VOICE_INTERACTION},
"timestamp": "%sZ" % (datetime.utcnow().isoformat(),),
"timestamp": f"{dt_util.utcnow().replace(tzinfo=None).isoformat()}Z",
}
return directive.response(

View File

@@ -1,10 +1,8 @@
{
"domain": "alexa",
"name": "Alexa",
"documentation": "https://www.home-assistant.io/components/alexa",
"documentation": "https://www.home-assistant.io/integrations/alexa",
"requirements": [],
"dependencies": [
"http"
],
"codeowners": []
"dependencies": ["http"],
"codeowners": ["@home-assistant/cloud"]
}

View File

@@ -131,6 +131,10 @@ async def async_send_add_or_update_message(hass, config, entity_ids):
for entity_id in entity_ids:
domain = entity_id.split(".", 1)[0]
if domain not in ENTITY_ADAPTERS:
continue
alexa_entity = ENTITY_ADAPTERS[domain](hass, config, hass.states.get(entity_id))
endpoints.append(alexa_entity.serialize_discovery())
@@ -161,6 +165,10 @@ async def async_send_delete_message(hass, config, entity_ids):
for entity_id in entity_ids:
domain = entity_id.split(".", 1)[0]
if domain not in ENTITY_ADAPTERS:
continue
alexa_entity = ENTITY_ADAPTERS[domain](hass, config, hass.states.get(entity_id))
endpoints.append({"endpointId": alexa_entity.alexa_id()})

View File

@@ -1,7 +1,7 @@
{
"domain": "alpha_vantage",
"name": "Alpha vantage",
"documentation": "https://www.home-assistant.io/components/alpha_vantage",
"documentation": "https://www.home-assistant.io/integrations/alpha_vantage",
"requirements": [
"alpha_vantage==2.1.0"
],

View File

@@ -1,9 +1,9 @@
{
"domain": "amazon_polly",
"name": "Amazon polly",
"documentation": "https://www.home-assistant.io/components/amazon_polly",
"documentation": "https://www.home-assistant.io/integrations/amazon_polly",
"requirements": [
"boto3==1.9.16"
"boto3==1.9.233"
],
"dependencies": [],
"codeowners": [

View File

@@ -33,6 +33,7 @@ SUPPORTED_REGIONS = [
"sa-east-1",
]
CONF_ENGINE = "engine"
CONF_VOICE = "voice"
CONF_OUTPUT_FORMAT = "output_format"
CONF_SAMPLE_RATE = "sample_rate"
@@ -101,10 +102,12 @@ SUPPORTED_VOICES = [
SUPPORTED_OUTPUT_FORMATS = ["mp3", "ogg_vorbis", "pcm"]
SUPPORTED_SAMPLE_RATES = ["8000", "16000", "22050"]
SUPPORTED_ENGINES = ["neural", "standard"]
SUPPORTED_SAMPLE_RATES = ["8000", "16000", "22050", "24000"]
SUPPORTED_SAMPLE_RATES_MAP = {
"mp3": ["8000", "16000", "22050"],
"mp3": ["8000", "16000", "22050", "24000"],
"ogg_vorbis": ["8000", "16000", "22050"],
"pcm": ["8000", "16000"],
}
@@ -113,6 +116,7 @@ SUPPORTED_TEXT_TYPES = ["text", "ssml"]
CONTENT_TYPE_EXTENSIONS = {"audio/mpeg": "mp3", "audio/ogg": "ogg", "audio/pcm": "pcm"}
DEFAULT_ENGINE = "standard"
DEFAULT_VOICE = "Joanna"
DEFAULT_OUTPUT_FORMAT = "mp3"
DEFAULT_TEXT_TYPE = "text"
@@ -126,6 +130,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
vol.Inclusive(CONF_SECRET_ACCESS_KEY, ATTR_CREDENTIALS): cv.string,
vol.Exclusive(CONF_PROFILE_NAME, ATTR_CREDENTIALS): cv.string,
vol.Optional(CONF_VOICE, default=DEFAULT_VOICE): vol.In(SUPPORTED_VOICES),
vol.Optional(CONF_ENGINE, default=DEFAULT_ENGINE): vol.In(SUPPORTED_ENGINES),
vol.Optional(CONF_OUTPUT_FORMAT, default=DEFAULT_OUTPUT_FORMAT): vol.In(
SUPPORTED_OUTPUT_FORMATS
),
@@ -225,6 +230,7 @@ class AmazonPollyProvider(Provider):
return None, None
resp = self.client.synthesize_speech(
Engine=self.config[CONF_ENGINE],
OutputFormat=self.config[CONF_OUTPUT_FORMAT],
SampleRate=self.config[CONF_SAMPLE_RATE],
Text=message,

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "S'ha produ\u00eft un error desconegut al generat un testimoni d'acc\u00e9s.",
"already_setup": "El compte d\u2019Ambi Climate est\u00e0 configurat.",
"no_config": "Necessites configurar Ambi Climate abans de poder autenticar-t'hi. Llegeix les [instruccions](https://www.home-assistant.io/components/ambiclimate/)."
"no_config": "Necessites configurar Ambiclimate abans de poder autenticar-t'hi. Llegeix les [instruccions](https://www.home-assistant.io/components/ambiclimate/)."
},
"create_entry": {
"default": "Autenticaci\u00f3 exitosa amb Ambi Climate."
@@ -14,7 +14,7 @@
},
"step": {
"auth": {
"description": "V\u00e9s a l'[enlla\u00e7]({authorization_url}) i <b>Permet</b> l'acc\u00e9s al teu compte de Ambi Climate, despr\u00e9s torna i prem <b>Envia</b> (a sota).\n(Assegura't que l'enlla\u00e7 de retorn \u00e9s el seg\u00fcent {cb_url})",
"description": "V\u00e9s a l'[enlla\u00e7]({authorization_url}) i <b>Permet</b> l'acc\u00e9s al teu compte de Ambiclimate, despr\u00e9s torna i prem <b>Envia</b> (a sota).\n(Assegura't que l'enlla\u00e7 de retorn \u00e9s el seg\u00fcent {cb_url})",
"title": "Autenticaci\u00f3 amb Ambi Climate"
}
},

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "\uc561\uc138\uc2a4 \ud1a0\ud070 \uc0dd\uc131\uc5d0 \uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.",
"already_setup": "Ambi Climate \uacc4\uc815\uc774 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
"no_config": "Ambi Climate \ub97c \uc778\uc99d\ud558\ub824\uba74 \uba3c\uc800 Ambi Climate \ub97c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. [\uc548\ub0b4](https://www.home-assistant.io/components/ambiclimate/) \ub97c \uc77d\uc5b4\ubcf4\uc138\uc694."
"no_config": "Ambiclimate \ub97c \uc778\uc99d\ud558\ub824\uba74 \uba3c\uc800 Ambiclimate \ub97c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. [\uc548\ub0b4](https://www.home-assistant.io/components/ambiclimate/) \ub97c \uc77d\uc5b4\ubcf4\uc138\uc694."
},
"create_entry": {
"default": "Ambi Climate \ub85c \uc131\uacf5\uc801\uc73c\ub85c \uc778\uc99d\ub418\uc5c8\uc2b5\ub2c8\ub2e4."

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "Onbekannte Feeler beim gener\u00e9ieren vum Acc\u00e8s Jeton.",
"already_setup": "Den Ambiclimate Kont ass konfigur\u00e9iert.",
"no_config": "Dir musst Ambiclimate konfigur\u00e9ieren, ier Dir d\u00ebs Authentifiz\u00e9ierung k\u00ebnnt benotzen.[Liest w.e.g. d'Instruktioune](https://www.home-assistant.io/components/ambiclimatet/)."
"no_config": "Dir musst Ambiclimate konfigur\u00e9ieren, ier Dir d\u00ebs Authentifiz\u00e9ierung k\u00ebnnt benotzen.[Liest w.e.g. d'Instruktioune](https://www.home-assistant.io/components/ambiclimate/)."
},
"create_entry": {
"default": "Erfollegr\u00e4ich mat Ambiclimate authentifiz\u00e9iert."

View File

@@ -9,12 +9,12 @@
"default": "Vellykket autentisering med Ambiclimate"
},
"error": {
"follow_link": "Vennligst f\u00f8lg lenken og godkjen f\u00f8r du trykker p\u00e5 Send",
"follow_link": "Vennligst f\u00f8lg lenken og godkjenn f\u00f8r du trykker p\u00e5 Send",
"no_token": "Ikke autentisert med Ambiclimate"
},
"step": {
"auth": {
"description": "Vennligst f\u00f8lg denne [linken]({authorization_url}) og <b>Tillat</b> tilgang til din Ambiclimate konto, og kom s\u00e5 tilbake og trykk <b>Send</b> nedenfor.\n(Kontroller at den angitte URL-adressen for tilbakeringing er {cb_url})",
"description": "Vennligst f\u00f8lg denne [linken]({authorization_url}) og <b>Tillat</b> tilgang til din Ambiclimate konto, kom deretter tilbake og trykk <b>Send</b> nedenfor.\n(Kontroller at den angitte URL-adressen for tilbakeringing er {cb_url})",
"title": "Autensiere Ambiclimate"
}
},

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "Nieznany b\u0142\u0105d podczas generowania tokena dost\u0119pu.",
"already_setup": "Konto Ambiclimate jest skonfigurowane.",
"no_config": "Musisz skonfigurowa\u0107 Ambiclimate, zanim b\u0119dziesz m\u00f3g\u0142 si\u0119 w nim uwierzytelni\u0107. [Przeczytaj instrukcj\u0119](https://www.home-assistant.io/components/ambiclimate/)."
"no_config": "Musisz skonfigurowa\u0107 Ambiclimate, zanim b\u0119dziesz m\u00f3g\u0142 si\u0119 w nim uwierzytelni\u0107. [Przeczytaj instrukcj\u0119] (https://www.home-assistant.io/components/ambiclimate/)."
},
"create_entry": {
"default": "Pomy\u015blnie uwierzytelniono z Ambiclimate"

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430.",
"already_setup": "\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Ambi Climate \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430.",
"no_config": "\u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Ambi Climate \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. [\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438](https://www.home-assistant.io/components/ambiclimate/)."
"no_config": "\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 Ambiclimate \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 [\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438](https://www.home-assistant.io/components/ambiclimate/)."
},
"create_entry": {
"default": "\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e."

View File

@@ -3,7 +3,7 @@
"abort": {
"access_token": "Neznana napaka pri ustvarjanju \u017eetona za dostop.",
"already_setup": "Ra\u010dun Ambiclimate je konfiguriran.",
"no_config": "Ambiclimat morate konfigurirati, preden lahko z njo preverjate pristnost. [Preberite navodila] (https://www.home-assistant.io/components/ambiclimate/)."
"no_config": "Ambiclimate morate konfigurirati, preden lahko z njo preverjate pristnost. [Preberite navodila] (https://www.home-assistant.io/components/ambiclimate/)."
},
"create_entry": {
"default": "Uspe\u0161no overjeno z funkcijo Ambiclimate"

View File

@@ -6,7 +6,7 @@
"no_config": "\u5fc5\u9808\u5148\u8a2d\u5b9a Ambiclimate \u65b9\u80fd\u9032\u884c\u8a8d\u8b49\u3002[\u8acb\u53c3\u95b1\u6559\u5b78\u6307\u5f15]\uff08https://www.home-assistant.io/components/ambiclimate/\uff09\u3002"
},
"create_entry": {
"default": "\u5df2\u6210\u529f\u8a8d\u8b49 Ambiclimate \u88dd\u7f6e\u3002"
"default": "\u5df2\u6210\u529f\u8a8d\u8b49 Ambiclimate \u8a2d\u5099\u3002"
},
"error": {
"follow_link": "\u8acb\u65bc\u50b3\u9001\u524d\uff0c\u5148\u4f7f\u7528\u9023\u7d50\u4e26\u9032\u884c\u8a8d\u8b49\u3002",

View File

@@ -2,7 +2,7 @@
"domain": "ambiclimate",
"name": "Ambiclimate",
"config_flow": true,
"documentation": "https://www.home-assistant.io/components/ambiclimate",
"documentation": "https://www.home-assistant.io/integrations/ambiclimate",
"requirements": [
"ambiclimate==0.2.1"
],

View File

@@ -14,6 +14,6 @@
"title": "Completa tu informaci\u00f3n"
}
},
"title": "Ambient PWS"
"title": "Ambiente PWS"
}
}

View File

@@ -1,7 +1,7 @@
{
"config": {
"error": {
"identifier_exists": "\u041a\u043b\u044e\u0447 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438/\u0438\u043b\u0438 \u043a\u043b\u044e\u0447 API \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d",
"identifier_exists": "\u041a\u043b\u044e\u0447 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438/\u0438\u043b\u0438 \u043a\u043b\u044e\u0447 API \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d.",
"invalid_key": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 API \u0438/\u0438\u043b\u0438 \u043a\u043b\u044e\u0447 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",
"no_devices": "\u0412 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b"
},

View File

@@ -3,7 +3,7 @@
"error": {
"identifier_exists": "API \u5bc6\u9470\u53ca/\u6216\u61c9\u7528\u5bc6\u9470\u5df2\u8a3b\u518a",
"invalid_key": "API \u5bc6\u9470\u53ca/\u6216\u61c9\u7528\u5bc6\u9470\u7121\u6548",
"no_devices": "\u5e33\u865f\u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u88dd\u7f6e"
"no_devices": "\u5e33\u865f\u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u8a2d\u5099"
},
"step": {
"user": {

View File

@@ -2,7 +2,7 @@
"domain": "ambient_station",
"name": "Ambient station",
"config_flow": true,
"documentation": "https://www.home-assistant.io/components/ambient_station",
"documentation": "https://www.home-assistant.io/integrations/ambient_station",
"requirements": [
"aioambient==0.3.2"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "amcrest",
"name": "Amcrest",
"documentation": "https://www.home-assistant.io/components/amcrest",
"documentation": "https://www.home-assistant.io/integrations/amcrest",
"requirements": [
"amcrest==1.5.3"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "ampio",
"name": "Ampio",
"documentation": "https://www.home-assistant.io/components/ampio",
"documentation": "https://www.home-assistant.io/integrations/ampio",
"requirements": [
"asmog==0.0.6"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "android_ip_webcam",
"name": "Android ip webcam",
"documentation": "https://www.home-assistant.io/components/android_ip_webcam",
"documentation": "https://www.home-assistant.io/integrations/android_ip_webcam",
"requirements": [
"pydroid-ipcam==0.8"
],

View File

@@ -1,9 +1,10 @@
{
"domain": "androidtv",
"name": "Androidtv",
"documentation": "https://www.home-assistant.io/components/androidtv",
"documentation": "https://www.home-assistant.io/integrations/androidtv",
"requirements": [
"androidtv==0.0.27"
"adb-shell==0.0.4",
"androidtv==0.0.30"
],
"dependencies": [],
"codeowners": ["@JeffLIrion"]

View File

@@ -3,6 +3,12 @@ import functools
import logging
import voluptuous as vol
from adb_shell.exceptions import (
InvalidChecksumError,
InvalidCommandError,
InvalidResponseError,
TcpTimeoutException,
)
from androidtv import setup, ha_state_detection_rules_validator
from androidtv.constants import APPS, KEYS
@@ -123,11 +129,15 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Android TV / Fire TV platform."""
hass.data.setdefault(ANDROIDTV_DOMAIN, {})
host = "{0}:{1}".format(config[CONF_HOST], config[CONF_PORT])
host = f"{config[CONF_HOST]}:{config[CONF_PORT]}"
if CONF_ADB_SERVER_IP not in config:
# Use "python-adb" (Python ADB implementation)
adb_log = "using Python ADB implementation "
# Use "adb_shell" (Python ADB implementation)
adb_log = "using Python ADB implementation " + (
f"with adbkey='{config[CONF_ADBKEY]}'"
if CONF_ADBKEY in config
else "without adbkey authentication"
)
if CONF_ADBKEY in config:
aftv = setup(
host,
@@ -135,7 +145,6 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
device_class=config[CONF_DEVICE_CLASS],
state_detection_rules=config[CONF_STATE_DETECTION_RULES],
)
adb_log += "with adbkey='{0}'".format(config[CONF_ADBKEY])
else:
aftv = setup(
@@ -143,7 +152,6 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
device_class=config[CONF_DEVICE_CLASS],
state_detection_rules=config[CONF_STATE_DETECTION_RULES],
)
adb_log += "without adbkey authentication"
else:
# Use "pure-python-adb" (communicate with ADB server)
aftv = setup(
@@ -153,9 +161,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
device_class=config[CONF_DEVICE_CLASS],
state_detection_rules=config[CONF_STATE_DETECTION_RULES],
)
adb_log = "using ADB server at {0}:{1}".format(
config[CONF_ADB_SERVER_IP], config[CONF_ADB_SERVER_PORT]
)
adb_log = f"using ADB server at {config[CONF_ADB_SERVER_IP]}:{config[CONF_ADB_SERVER_PORT]}"
if not aftv.available:
# Determine the name that will be used for the device in the log
@@ -251,6 +257,7 @@ def adb_decorator(override_available=False):
"establishing attempt in the next update. Error: %s",
err,
)
self.aftv.adb.close()
self._available = False # pylint: disable=protected-access
return None
@@ -278,14 +285,7 @@ class ADBDevice(MediaPlayerDevice):
# ADB exceptions to catch
if not self.aftv.adb_server_ip:
# Using "python-adb" (Python ADB implementation)
from adb.adb_protocol import (
InvalidChecksumError,
InvalidCommandError,
InvalidResponseError,
)
from adb.usb_exceptions import TcpTimeoutException
# Using "adb_shell" (Python ADB implementation)
self.exceptions = (
AttributeError,
BrokenPipeError,

View File

@@ -1,7 +1,7 @@
{
"domain": "anel_pwrctrl",
"name": "Anel pwrctrl",
"documentation": "https://www.home-assistant.io/components/anel_pwrctrl",
"documentation": "https://www.home-assistant.io/integrations/anel_pwrctrl",
"requirements": [
"anel_pwrctrl-homeassistant==0.0.1.dev2"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "anthemav",
"name": "Anthemav",
"documentation": "https://www.home-assistant.io/components/anthemav",
"documentation": "https://www.home-assistant.io/integrations/anthemav",
"requirements": [
"anthemav==1.1.10"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "apache_kafka",
"name": "Apache Kafka",
"documentation": "https://www.home-assistant.io/components/apache_kafka",
"documentation": "https://www.home-assistant.io/integrations/apache_kafka",
"requirements": [
"aiokafka==0.5.1"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "apcupsd",
"name": "Apcupsd",
"documentation": "https://www.home-assistant.io/components/apcupsd",
"documentation": "https://www.home-assistant.io/integrations/apcupsd",
"requirements": [
"apcaccess==0.0.13"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "api",
"name": "Home Assistant API",
"documentation": "https://www.home-assistant.io/components/api",
"documentation": "https://www.home-assistant.io/integrations/api",
"requirements": [],
"dependencies": [
"http"

View File

@@ -1,7 +1,7 @@
{
"domain": "apns",
"name": "Apns",
"documentation": "https://www.home-assistant.io/components/apns",
"documentation": "https://www.home-assistant.io/integrations/apns",
"requirements": [
"apns2==0.3.0"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "apple_tv",
"name": "Apple tv",
"documentation": "https://www.home-assistant.io/components/apple_tv",
"documentation": "https://www.home-assistant.io/integrations/apple_tv",
"requirements": [
"pyatv==0.3.13"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "aprs",
"name": "APRS",
"documentation": "https://www.home-assistant.io/components/aprs",
"documentation": "https://www.home-assistant.io/integrations/aprs",
"dependencies": [],
"codeowners": ["@PhilRW"],
"requirements": [

View File

@@ -1,7 +1,7 @@
{
"domain": "aqualogic",
"name": "Aqualogic",
"documentation": "https://www.home-assistant.io/components/aqualogic",
"documentation": "https://www.home-assistant.io/integrations/aqualogic",
"requirements": [
"aqualogic==1.0"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "aquostv",
"name": "Aquostv",
"documentation": "https://www.home-assistant.io/components/aquostv",
"documentation": "https://www.home-assistant.io/integrations/aquostv",
"requirements": [
"sharp_aquos_rc==0.3.2"
],

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -0,0 +1,5 @@
{
"config": {
"title": "Arcam FMJ"
}
}

View File

@@ -2,7 +2,7 @@
"domain": "arcam_fmj",
"name": "Arcam FMJ Receiver control",
"config_flow": false,
"documentation": "https://www.home-assistant.io/components/arcam_fmj",
"documentation": "https://www.home-assistant.io/integrations/arcam_fmj",
"requirements": [
"arcam-fmj==0.4.3"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "arduino",
"name": "Arduino",
"documentation": "https://www.home-assistant.io/components/arduino",
"documentation": "https://www.home-assistant.io/integrations/arduino",
"requirements": [
"PyMata==2.14"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "arest",
"name": "Arest",
"documentation": "https://www.home-assistant.io/components/arest",
"documentation": "https://www.home-assistant.io/integrations/arest",
"requirements": [],
"dependencies": [],
"codeowners": [

View File

@@ -1,7 +1,7 @@
{
"domain": "arlo",
"name": "Arlo",
"documentation": "https://www.home-assistant.io/components/arlo",
"documentation": "https://www.home-assistant.io/integrations/arlo",
"requirements": [
"pyarlo==0.2.3"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "aruba",
"name": "Aruba",
"documentation": "https://www.home-assistant.io/components/aruba",
"documentation": "https://www.home-assistant.io/integrations/aruba",
"requirements": [
"pexpect==4.6.0"
],

View File

@@ -1,7 +1,7 @@
{
"domain": "arwn",
"name": "Arwn",
"documentation": "https://www.home-assistant.io/components/arwn",
"documentation": "https://www.home-assistant.io/integrations/arwn",
"requirements": [],
"dependencies": [
"mqtt"

View File

@@ -1,7 +1,7 @@
{
"domain": "asterisk_cdr",
"name": "Asterisk cdr",
"documentation": "https://www.home-assistant.io/components/asterisk_cdr",
"documentation": "https://www.home-assistant.io/integrations/asterisk_cdr",
"requirements": [],
"dependencies": [
"asterisk_mbox"

View File

@@ -1,7 +1,7 @@
{
"domain": "asterisk_mbox",
"name": "Asterisk mbox",
"documentation": "https://www.home-assistant.io/components/asterisk_mbox",
"documentation": "https://www.home-assistant.io/integrations/asterisk_mbox",
"requirements": [
"asterisk_mbox==0.5.0"
],

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