Compare commits

...

1596 Commits

Author SHA1 Message Date
Franck Nijhof
4bb319e658 0.104.0 (#30803)
0.104.0
2020-01-15 21:38:22 +01:00
Franck Nijhof
3d9b6332c8 Bumped version to 0.104.0 2020-01-15 20:22:09 +01:00
Jc2k
1a6535ff8b Restore unit_of_measurement from entity registry (#30780)
* Restore unit_of_measurement from entity registry

* Lint fix
2020-01-15 20:17:42 +01:00
Paulus Schoutsen
3fd14ca3cf Refactor Ring data handling (#30777)
* Refactor Ring data handling

* Add async_ to methods
2020-01-15 20:17:36 +01:00
Pascal Vizeli
1c70435df6 Revert #29701 (#30766)
* Revert #29701

* fix format

* Fix lint
2020-01-15 20:17:28 +01:00
Paulus Schoutsen
8dbdf0b0e1 Bumped version to 0.104.0b5 2020-01-14 12:59:50 -08:00
Franck Nijhof
fe9c85aaf1 Fix HomeKit behavior with lights supporting color and temperature (#30756) 2020-01-14 12:59:41 -08:00
Bas Nijholt
9de800ab6a bump aiokef to 0.2.5 which uses locks (#30753) 2020-01-14 12:59:41 -08:00
Pascal Vizeli
f530ea10af Refactor HomeMatic / Fix issue with 0.104/dev (#30752)
* Refactor HomeMatic / Fix issue with 0.104/dev

* Fix lock
2020-01-14 12:59:40 -08:00
Daniel Perna
64224f46ec Update pyhomematic to 0.1.63 (#30594) 2020-01-14 12:59:39 -08:00
Alan Tse
413545bd91 Bump teslajsonpy to 0.2.3 (#30750) 2020-01-14 12:57:34 -08:00
Paulus Schoutsen
f5af77d00c Set default locale for cloud Alexa config (#30749) 2020-01-14 12:57:33 -08:00
Paulus Schoutsen
4bc520c724 Update Ring to 0.6.0 (#30748)
* Update Ring to 0.6.0

* Update sensor tests

* update -> async_update

* Delete temp files

* Address comments

* Final tweaks

* Remove stale print
2020-01-14 12:57:32 -08:00
David F. Mulcahey
8e5f46d5b5 Bump ZHA quirks to 0.0.31 (#30740)
* Bump ZHA quirks version

* update requirements
2020-01-14 12:57:31 -08:00
Josh Bendavid
9fa0779c1f update aiopylgtv to 0.2.6 (#30739) 2020-01-14 12:57:30 -08:00
Josh Bendavid
c138a93454 update aiopylgtv to 0.2.5 (#30702) 2020-01-14 12:57:30 -08:00
Paulus Schoutsen
c6b96f7250 Fix Ring wifi sensors (#30735)
* Fix Ring wifi sensors

* Update before adding
2020-01-14 12:56:01 -08:00
Phil Bruckner
4a8ecb82a8 Revert "Forget auth token when going offline so we can reconnect (#26630)" (#30705)
This reverts commit 2d6d6ba90e.
2020-01-14 12:56:00 -08:00
Franck Nijhof
80f3cb7d79 Fix discovery for oauth2 flow implementations (#30700)
* Fix discovery for oauth2 flow implementations

* Fix user step

* Add tests
2020-01-14 12:55:59 -08:00
Paulus Schoutsen
1b89fef888 Bumped version to 0.104.0b4 2020-01-11 20:16:43 -08:00
Paulus Schoutsen
3715f821d7 Fix update person validation (#30691) 2020-01-11 20:16:18 -08:00
Paulus Schoutsen
dc57d670d8 Log error when integration is missing platform setup (#30690) 2020-01-11 20:16:17 -08:00
Paulus Schoutsen
c00af14ee2 Ring OTP improvement (#30688)
* Fix otp flow

* Update Ring to 0.5

Co-authored-by: steve-gombos <3118886+steve-gombos@users.noreply.github.com>
2020-01-11 20:16:17 -08:00
SukramJ
b383a5195f Fix Error with HomematicIP Cloud Cover (#30667) 2020-01-11 20:16:16 -08:00
Paulus Schoutsen
e3b37c44d6 Bumped version to 0.104.0b3 2020-01-11 16:17:03 -08:00
Paulus Schoutsen
718f3438ea Upgrade Ring to new version (#30666)
* Upgrade Ring to new version

* Move legacy cleanup down

* Fix test
2020-01-11 16:16:58 -08:00
Paulus Schoutsen
86bdba2ea2 Bumped version to 0.104.0b2 2020-01-10 20:18:35 -08:00
HomeAssistant Azure
77d184ee25 [ci skip] Translation update 2020-01-10 20:18:20 -08:00
HomeAssistant Azure
d0357ceecd [ci skip] Translation update 2020-01-10 20:18:20 -08:00
HomeAssistant Azure
0fc2cce4dc [ci skip] Translation update 2020-01-10 20:18:20 -08:00
Dave T
80a1084f2d Update ON/OFF condition and triggers to match documentation and UI, issue #30462 (#30663) 2020-01-10 20:17:13 -08:00
Alexei Chetroi
2eff988a5c Fix ZHA temperature sensor restoration (#30661)
* Add test for restoring state for zha temp.

* Don't restore unit of measurement for ZHA sensors.

Properly restore ZHA temperature sensor state.
2020-01-10 20:17:12 -08:00
Jc2k
449e6841a7 Fix HomeKit with entity registry restoration where supported_features is a non-None falsey (#30657)
* Fix homekit with #30094

* Fix test
2020-01-10 20:17:12 -08:00
Paulus Schoutsen
f505310f11 Bumped version to 0.104.0b1 2020-01-10 13:37:13 -08:00
Phil Bruckner
626c01b4a0 Do not save last_seen if older than prev_seen (#30647)
Also add warnings when updates skipped similar to google_maps
2020-01-10 13:37:03 -08:00
springstan
c785b791a2 Bump Adafruit_BBIO to 1.1.1 (#30630) 2020-01-10 13:37:02 -08:00
Pascal Vizeli
a6492cc7bb Set body size for Proxy / streams to 16mb (#30608) 2020-01-10 13:37:02 -08:00
Robert Svensson
5a8311e9d8 Fix problem with restoring POE control (#30597) 2020-01-10 13:37:01 -08:00
Paulus Schoutsen
0b3b589457 Add Ring config flow (#30564)
* Add Ring config flow

* Address comments + migrate platforms to config entry

* Migrate camera too

* Address comments

* Fix order config flows

* setup -> async_setup
2020-01-10 13:36:34 -08:00
Paulus Schoutsen
e58b41ef23 Implement capability attributes (#30545)
* Implement capability attributes

* Fix HeOS update order

* Fix test
2020-01-10 13:35:44 -08:00
Phil Bruckner
c7e300e5b1 Fix upnp raw sensor state formatting when None (#30444) 2020-01-10 13:35:43 -08:00
Paulus Schoutsen
5d850c5b19 Bumped version to 0.104.0b0 2020-01-08 21:06:22 +01:00
Paulus Schoutsen
95bc539bab Merge remote-tracking branch 'origin/master' into dev 2020-01-08 21:05:53 +01:00
Mariano Faraco
9e885112ec Add last_online and level attribute to steam online (#30321)
* Steam Online: Add last_online and Level attributes

* Steam Online: Add last_online and Level attributes

* Fixes from comments on initial pull request

* Push attributes only if they are not None
2020-01-08 21:04:42 +01:00
mohmacht
d048233776 The MFI Dimmer Switch model is missing from the list, causing the mfi Wall switches not to be recognized. (#30572)
Please add this one model to support my mfi switches, thank you.

 python 1.py dump_sensors --noverify
               Model |                Label |             Tag |      Value | Extra
------------------------------------------------------------------------------
       Dimmer Switch |        Bedroom2Light |      active_pwr |  22.047071 | 1.0
       Dimmer Switch |      LivingRoomLight |      active_pwr |        0.0 | 0.0
       Dimmer Switch |      FamilyRoomLight |      active_pwr |  42.803919 | 1.0
       Dimmer Switch |   MasterBedroomLight |      active_pwr |        0.0 | 0.0
2020-01-08 21:04:33 +01:00
fwestenberg
498bec4a61 Add Stookalert integration (#30306)
* Added Stookalert integration

* Added Stookalert integration

* Added Stookalert integration

* Solved comments

* Flake8 change

* Bump stookalert to version 1.1.2

* Fixed attributes and state

* Get method for private variables

*  Update to stookalert 0.1.4

* Code optimization

* Update requirements
2020-01-08 21:03:50 +01:00
Franck Nijhof
d659807b6f Fix WLED transition time unit (#30583) 2020-01-08 21:03:36 +01:00
Bram Kragten
6112092949 Updated frontend to 20200108.0 (#30591) 2020-01-08 21:02:07 +01:00
David Bonnes
2c1e354537 evohome: allow two round thermostats per gateway (#30589)
* bugfix issue #30517
* bump library, tweak name in manifest
* remove lint hint
2020-01-08 18:57:28 +00:00
Maciej Bieniek
4cd2e09fb3 Add missing string for already_configured in GIOS integration (#30590) 2020-01-08 19:44:03 +01:00
Franck Nijhof
120a96ff59 Bump adguardhome to 0.4.1 (#30586) 2020-01-08 10:48:57 -05:00
Maciej Bieniek
6e3e383b3f Add missing string for already_configured in Brother integration (#30584) 2020-01-08 16:15:05 +01:00
Franck Nijhof
0e9b414c26 Migrate Integration Quality Scale from docs to manifest (#30579) 2020-01-08 14:19:42 +01:00
Alexei Chetroi
ae8957ae12 Use more consts for person implementation (#30553)
* Use more consts for person implementation.

* Use ATTR_ENTITY_ID.
2020-01-08 07:35:34 -05:00
Santobert
3d7488d188 Trigger automation without skipping condition (#28484)
* Trigger automation without skipping condition

* [] instead of .get()

* Update __init__.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-01-08 10:36:11 +01:00
Robert Svensson
84a1afc785 deCONZ - Fix device automations (#30577) 2020-01-08 10:06:33 +01:00
Robert Svensson
0d48d682dc deCONZ - Make sensors sorted on creation for deterministic order (#30569)
* Make sensors sorted on creation for deterministic order

* Martins comment
2020-01-08 09:30:02 +01:00
Ernst Klamer
31553796da Bump pyRFXtrx to 0.25 (#30566) 2020-01-08 09:20:50 +01:00
Daniel Shokouhi
130a577e67 Add android repo to issue template (#30571) 2020-01-07 22:10:04 -05:00
HomeAssistant Azure
8b7ffcdaf1 [ci skip] Translation update 2020-01-08 00:31:50 +00:00
Bram Kragten
16199b7a52 Add command to delete lovelace config (#30558)
* Add command to delete lovelace config

* Test + decorator for WS
2020-01-07 22:59:04 +01:00
Bram Kragten
1ce662d699 Updated frontend to 20200107.0 (#30561) 2020-01-07 22:55:10 +01:00
Franck Nijhof
bfa0edaf92 Migrate Integration Quality Scale from docs to manifest: internal (#30551) 2020-01-07 20:58:49 +01:00
Sascha Kühndel
23700e4db8 Fix hue flashing innr lights (#29828) 2020-01-07 20:56:57 +01:00
FrengerH
83d18c183b Fix missing strings for deconz magic cube rotation support (#30552)
* Fix missing strings for deconz magic cube rotation

* Fix missing strings for deconz magic cube rotation
2020-01-07 19:06:25 +01:00
Aaron Bach
856db4d122 Fix incorrect Rainmachine dict lookups (#30550) 2020-01-07 10:43:12 -07:00
Paulus Schoutsen
9aa02e35a7 Entity Component to no longer generate automatic groups (#23789) 2020-01-07 17:30:53 +01:00
tetienne
13e6479b6e Ease code before adding color and temperature to light template (#30455)
* Split async_update

* Use pytest parameters to avoid duplicate code

* Fix UnboundLocalError

* Test error rendering for template state

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-01-07 17:22:42 +01:00
Franck Nijhof
e18426051b Add Integration Quality Scale to manifest (#30547) 2020-01-07 17:21:56 +01:00
SukramJ
a4c830b5e4 Add reset_energy_counter service to Homematic IP Cloud (#30256)
* Add reset_energy_counter service to Homematic IP Cloud

* Fix isort

* Register service as admin service
2020-01-07 10:24:46 -05:00
Aleix Murtra
1d1aa06d05 Add TMB sensor (#27964)
* Add TMB i-Bus sensor

* Raise exception if HTTP error

* Addressed comments

* Fixed format

* Fixed format

* Addressed comments

* Remove guard before add_entities method

* Remove unauthorized exception

* Make CONF_BUS_STOPS option required
2020-01-07 16:22:16 +01:00
Franck Nijhof
b4d6d238e5 Correct names in manifests (T-Z) (#30546) 2020-01-07 14:31:18 +01:00
springstan
a5cc08c8b6 Update featured integrations screenshot in README (#30134)
* Update featured integrations in README

* Update screenshot to include Somfy and exclude Almond

* Update outdated screenshot of featured components
2020-01-07 14:30:52 +01:00
Franck Nijhof
22760a0bee Correct names in manifests (Q-S) (#30543) 2020-01-07 08:19:44 -05:00
Paulus Schoutsen
b27e05fc8d Use capability attributes in climate (#30544)
Co-authored-by: Jc2k <john.carr@unrouted.co.uk>
2020-01-07 14:14:46 +01:00
Raman Gupta
a9f6dd698e Remove suppress_warning from config options for vizio component (#30536)
* move constants, move schema validation to init, prepare for zeroconf/config flow

* mistake in refactor

* update .coveragerc, move validate_auth to __init__, only attempt to get ESN if device setup is validated

* fix schema validation

* remove suppress warning config option

* remove config_flow from manifest since its not ready yet

* update requirements_all.txt

* fix issue with merge conflict
2020-01-07 13:31:13 +01:00
Jeff Irion
73af75cb41 Catch UnicodeDecodeError exceptions in 'androidtv.adb_command' service (#30538)
* Catch UnicodeDecodeError exceptions in 'androidtv.adb_command' service

* Replace "adb_command" with SERVICE_ADB_COMMAND
2020-01-07 13:30:34 +01:00
Jeff Irion
98bb400f3a Bump adb-shell to 0.1.1 and androidtv to 0.0.38 (#30539)
* Bump adb-shell to 0.1.1 and androidtv to 0.0.38

* Bump adb-shell to 0.1.1 and androidtv to 0.0.38

* Bump adb-shell to 0.1.1 and androidtv to 0.0.38
2020-01-07 13:30:15 +01:00
Franck Nijhof
dc02c28891 Correct names in manifests (M-P) (#30541) 2020-01-07 13:28:35 +01:00
Paulus Schoutsen
c963128306 Upgrade to use new version of HASS-nabucasa (#30506)
* Upgrade to use new version of HASS-nabucasa

* Update hass-nabucasa to 0.31
2020-01-07 13:25:57 +01:00
Casper
6dc49a44d9 Update manifest.json: Typo fixed (#30542) 2020-01-07 13:23:52 +01:00
Colin Frei
b3f429eefa Swiss Transport Data: Save delay on sensor (#30526) 2020-01-07 12:27:34 +01:00
Jason Ross
692e87f5cc Add venstar PIN to config and client initialization (#30300)
* Add PIN to config and client  initialization

* Fix Formatting Error

* update PLATFORM_SCHEMA validation with the new option.
2020-01-07 10:20:46 +01:00
Alexei Chetroi
6740249bef Use collection helpers for input_boolean (#30514)
* Refactor input_boolean to use config dict for instantiation.

* Refactor input_boolean to use YamlCollection.

* Add storage collection to input_boolean.

* Update homeassistant/components/input_boolean/__init__.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Doh.

* Address comments.

* Add editable device state attribute.

* Clean up entities from entity registry on removal.

Reload yaml from correct source.

* Add tests.

* Update homeassistant/components/input_boolean/__init__.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Don't reset entity state on updates.

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-01-07 08:53:43 +01:00
Franck Nijhof
345cc244ed Correct names in manifests (C-L) (#30532) 2020-01-07 08:19:17 +01:00
Raman Gupta
7d58de1bda Update vizio component to prepare for config flow and zeroconf support (#30522)
* move constants, move schema validation to init, prepare for zeroconf/config flow

* update requirements_all and make setup validation more pythonic

* mistake in refactor

* un-revert change from previous PR

* rename schema var

* update .coveragerc, move validate_auth to __init__, only attempt to get ESN if device setup is validated

* reinstate validate_setup but change logic to use new connection test function

* fix schema validation

* simplify string empty check logic

* missed commit
2020-01-06 20:32:31 -05:00
Eleftherios Chamakiotis
e22742550c Add "autobypass" option when arming AlarmDecoder integration (#30002)
* Initial implementation

* Passing autobypass parameter to constructor, as suggested

* Black formatting

* Removed default value from autobypass parameter of the constructor, as it's redundant
2020-01-06 20:17:21 -05:00
Trekky12
5ed1f16f25 Add pilight dimmer as light component (#30107)
* Add pilight dimmer as light component

* fix CI errors

* fix missing new lines

* improve formatting and addresses comments of @springstan

* rename config parameter and remove super() call to match pylint

* import only used constants of the pilight component

* Add myself to the code owners

* fix CODEOWNERS
2020-01-06 20:13:08 -05:00
HomeAssistant Azure
8c70fb5463 [ci skip] Translation update 2020-01-07 00:32:07 +00:00
Quentame
1587603c4c Bump synologydsm to 0.3.0 (#30529) 2020-01-06 17:38:42 -06:00
Markus Nigbur
453f7c7294 Fire restarted event on restarting active timer (#30475)
* Fire restarted event on restarting active timer

* Added test for the restart event
2020-01-07 00:00:23 +01:00
Franck Nijhof
6f92c19302 Correct integration names in manifests (A-B) (#30527)
* Correct names in manifests (A-B)

* Just Baidu

* Asterisk Call Detail Records
2020-01-06 23:59:12 +01:00
rccoleman
4a2987e790 Allow specific status codes while notifying mobile_app devices (#30496)
* Removed check and return with a notification status of 201

* Allow additional result codes

Allow 200, 201, and 202 as valid result codes
2020-01-06 23:41:07 +01:00
Jeff Irion
5ec5df77cc Register 'androidtv.download' and 'androidtv.upload' services (#30086)
* Add tests

* Add FileSync test

* Fill in services.yaml for 'androidtv.adb_filesync' service

* Update example paths in services.yaml

* Bump androidtv to 0.0.37

* Bump androidtv to 0.0.37

* Bump androidtv to 0.0.37

* Import LockNotAcquiredException

* Import LockNotAcquiredException from androidtv.exceptions

* Rename 'host' to 'address'

* Add a logging statement when an ADB command is skipped

* Check hass.config.is_allowed_path(local_path)

* Add return

* Fix pylint

* Reduce duplicated code (AndroidTVDevice vs. FireTVDevice)

* Split 'adb_filesync' service into 'download' and 'upload' services

* Don't use '.get()' for required data; return if the services are already registered

* Replace "command" with ATTR_COMMAND

* Don't try to connect to a device if it is a duplicate
2020-01-06 23:10:13 +01:00
Paulus Schoutsen
fbc53a886f Merge pull request #30525 from home-assistant/rc
0.103.6
2020-01-06 22:43:24 +01:00
Alexxander0
e88bfda2a8 Fix AVM FRITZ!DECT switch total consumption (#30478)
actor.get_energy() returns Wh, so division by 1000 is correct
2020-01-06 22:23:26 +01:00
Paulus Schoutsen
5675f16b61 Bumped version to 0.103.6 2020-01-06 22:02:31 +01:00
Paulus Schoutsen
4d0a093ec4 Fix google sync (#30524) 2020-01-06 22:02:25 +01:00
michaeldavie
60a9de40aa Bump env_canada to 0.0.31 (#30409) 2020-01-06 22:02:24 +01:00
Andrew Sayre
ed6b95f14a Bump pysmartthings 0.7.0 (#30302) 2020-01-06 22:01:06 +01:00
Robert Svensson
ce114b81c3 Handle wired bug on restart (#30276) 2020-01-06 22:01:05 +01:00
Paulus Schoutsen
05374d7c85 Fix google sync (#30524) 2020-01-06 22:00:39 +01:00
Franck Nijhof
a84741392b Format all manifests with prettier (#30521) 2020-01-06 21:28:23 +01:00
Maciej Bieniek
21029b1d7b Add Brother Printer integration (#30359)
* Init entities as unavailable when offline

* Initial commit

* Fix CODEOWNERS

* CODEOWNERS

* Run script.hassfest

* Add initial test

* Bump library

* More tests

* Tests

* Add new sensors and fix KeyError

* Fix unique_id and device_info

* Fix check for configured device

* More tests

* Bump library version

* Add uptime sensor

* Use config entry unique ID

* Run python3 -m script.gen_requirements_all

* Fix pylint error

* Remove pysnmp dependency

* Raise ConfigEntryNotReady when device offline at HA start

* Remove period from logging message

* Generator simplification

* Change raise_on_progress

* Rename data to printer

* Move update state to async_update

* Remove unused _unit_of_measurement

* Remove update of device_info

* Suggested change for tests

* Remove unnecessary argument

* Suggested change
2020-01-06 11:06:16 -06:00
Jc2k
8257ea30c0 Set required_features field when registering fan services (#30516)
* Set required_features on fan services

* Fix mqtt fan test

* Update fan.py
2020-01-06 17:10:51 +01:00
Jc2k
a58c796641 Add support for homekit air quality sensors (#30510)
* Add air quality sensor

* Fix comment from review

* Fix comment from review

* Lint fix
2020-01-06 16:35:10 +01:00
Ben
1fffa210e1 Add surepetcare component (#24426)
* add surepetcare

* cleanup

* remove unused imports and comments

* remove comment

* fix bug which prevented updating the sensors

* improve config validation

* fix voluptuous usage

* fix format & credential storage

* various fixes to hass-conform

* small format fixes

* change False to None

* still trying to be hass-conform

* remove unused class

* fix imports

* fix f-string

* add guard clause?!

* central data fetch

* do not pass in hass, will be provided automatically

* make the linters happy

* disable constant-test warning and add commas

* worksforme

* fix link in manifest

* remove icon

* bump surepy to 0.1.5

* worksforme

* small doc fixes

* add discovery_info guard

* result of another awesome review

* and again :)

* exclude surepetcare in .coveragerc
2020-01-06 09:00:01 -05:00
SukramJ
0971c681af Add HmIP-PMFS and HmIP-WHS2 to HomematicIP Cloud (#30325)
* update test data

* Update homematicip_cloud.json

* Add HmIP-WHS2

* Add HmIP-PMFS
2020-01-06 08:35:41 -05:00
Gido
10e698e0b2 Update GarbageTypeCodes for rova
Updating rova/sensor.py. Rova json format changed for garbage collection.
2020-01-06 08:34:15 -05:00
Ville Skyttä
80cbc32c49 Spell Zigbee consistently, with lowercase "b" (#30440)
https://zigbeealliance.org/developer_resources/zigbee-specification/
"Please note that this uses old branding, Zigbee is always a lowercase
 B, not a capital. This change occurred shortly after the official
 release of this document."

Also other docs at https://zigbeealliance.org/solution_type/zigbee/,
https://github.com/zigpy/zigpy/issues/111
2020-01-06 08:32:10 -05:00
FrengerH
0d1da9f5cb deCONZ - Rotation support for Xiaomi magic cube (#30472)
* Added rotation to deconz magic cube event

* Device trigger support
2020-01-06 12:34:27 +01:00
Alan Tse
f4f7c25f74 Bump teslajsonpy to 0.2.2 (#30512)
Fixes #30235
2020-01-06 09:52:26 +01:00
HomeAssistant Azure
d1ed67f44a [ci skip] Translation update 2020-01-06 00:32:11 +00:00
brefra
4efbe7135c Add LED control of push buttons and bump velbus-library (#30445)
* Add LED control

* Bump python-velbus library to 2.0.35

To have LED control available in library

* Apply black formating

* Fix no-else-return pylint error

* Changed to f-string and more dry code

* Rewrite turn_on for LED control
2020-01-06 01:28:10 +01:00
Franck Nijhof
e642d95d0f Migrate collection of component tests from coroutine to async/await (#30504) 2020-01-06 01:22:22 +01:00
Ville Skyttä
f400b77837 Preserve new BLE tracker item name if seen before adding discovery (#30318)
* Preserve new BLE device name if one seen before the last scan but not on it

* Save an indented else block

* Use async_fire_time_changed and mock_device_tracker_conf in tests
2020-01-05 23:13:54 +02:00
Jc2k
fffc5a5fbb Add support for v1 and v2 HomeKit fans. (#30503)
* Add support for v1 and v2 HomeKit fans.

* Lint fix
2020-01-05 15:56:46 +01:00
Paulus Schoutsen
8625e962ce Remove double person data validation (#30501) 2020-01-05 15:50:59 +01:00
Franck Nijhof
0a9ac91dec Migrate automatic tests from coroutine to async/await (#30371)
* Migrate automatic tests from coroutine to async/await

* Remove unneeded side effect

* Replace unittest with asynctest, add additional asserts to tests
2020-01-05 07:23:22 -06:00
Ville Skyttä
5216477353 Be consistent with Home Assistant and Hass.io spelling (#30500)
* Be consistent with Home Assistant spelling

* Be consistent with Hass.io spelling
2020-01-05 14:09:17 +02:00
Paulus Schoutsen
24b25b8917 Restore state helper to work with entity registry restoration (#30451)
* Restore state helper to work with entity registry restoratino

* Update restore_state.py
2020-01-05 11:58:59 +01:00
Raman Gupta
2ac5862eda Add unique id property for Vizio devices so they get added to entity registry (#30497)
* add unique id property for Vizio devices so they get added to entity registry

* update requirements

* small change to make code more readable

* update to use f-string for consistency

* fix property name

* set unique_id to none if serial number couldnt be found

* set unique_id to none

* ESN should be globally unique so no device type needed. pyvizio will set ESN to None if ESN is unobtainable
2020-01-05 11:20:06 +01:00
Paulus Schoutsen
30076d1843 Add person reload service (#30493) 2020-01-05 11:16:37 +01:00
Robert Svensson
35e19eec18 Axis - Allow manual configuration to update existing configuration (#30467)
* Allow manual configuration to update existing configuration

* Harmonize tests

* Understand what Elupus means...
2020-01-05 10:11:17 +01:00
HomeAssistant Azure
063193e6e5 [ci skip] Translation update 2020-01-05 00:32:15 +00:00
Pascal Vizeli
e95a04b6f6 bump hassio-builder version 2020-01-05 00:28:42 +01:00
Pascal Vizeli
8c2858ebde support odroid-n2 on release 2020-01-05 00:26:39 +01:00
Paulus Schoutsen
95cd0a2c68 Mobile App add device tracker to person registering app (#30460) 2020-01-04 23:15:50 +01:00
Phil Bruckner
e233dd7cbe Fix timer with empty config (#30463) 2020-01-04 23:01:58 +01:00
David F. Mulcahey
6c89b6c5a2 Add Zigbee group binding to ZHA (#30433)
* initial group binding work
* add group cluster binding
2020-01-04 16:58:51 -05:00
Robert Svensson
967fe89f6d deCONZ - Allow manual configuration to update existing configuration (#30469)
* Allow manual configuration to update existing configuration

* Harmonize tests
2020-01-04 22:55:57 +01:00
Franck Nijhof
639cdf5eef Bump twentemilieu to 0.2.0 (#30471) 2020-01-04 22:55:04 +01:00
Franck Nijhof
42b86d4b4e Bump wled to 0.2.1 (#30474)
* Bump wled to 0.2.0

* Bump wled to 0.2.1
2020-01-04 22:52:37 +01:00
Franck Nijhof
4e62da9c8e Improve WLED pure white support for RGBW (#30477) 2020-01-04 22:52:10 +01:00
Franck Nijhof
51db9bdfce Add unique ID to WLED config entries (#30480)
* Add unique ID to WLED config entries

* Improve robustness of the tests
2020-01-04 22:48:31 +01:00
Franck Nijhof
bf9418e51a Bump adguardhome to 0.4.0 (#30483) 2020-01-04 22:47:34 +01:00
Franck Nijhof
3b14d9f375 Add unique ID to elgato config entries (#30486) 2020-01-04 22:45:11 +01:00
Franck Nijhof
4ea0754094 Fix WLED light transition (#30490) 2020-01-04 22:44:28 +01:00
Franck Nijhof
049ced63b1 Bump elgato to 0.2.0 (#30485) 2020-01-04 20:25:07 +01:00
Paulus Schoutsen
2f362b44c4 Allow adding unique device ID to mobile app registration (#30457)
* Allow adding unique device ID to mobile app registration

* Remove unknown data

* Better fix
2020-01-04 13:45:03 +01:00
Paulus Schoutsen
6e909ab3f1 Only return remote UI url if remote UI enabled (#30453) 2020-01-04 13:43:59 +01:00
Robert Svensson
63347ebeb5 Make Axis integration use config entry unique id (#30461)
* Make Axis integration use config entry unique id
2020-01-04 08:58:18 +01:00
HomeAssistant Azure
075d3f6e32 [ci skip] Translation update 2020-01-04 00:32:23 +00:00
Joakim Plate
8dc57a3700 Allow all sources and sound modes to be selected in google assistant (#30418)
* Simplify media player source list

Google don't need a whitelisted set of modes anymore. So let's just forward any mode that we have.

* Report current mode with the setting name, not a synonym

* Refactor mode generation to support other modes

* Support sound mode as mode as well

* Adjust failing test now with sound modes
2020-01-04 00:39:03 +01:00
Phil Bruckner
d6e230e66b Fix counter with empty config (#30454) 2020-01-04 00:03:54 +01:00
brefra
b75aa7eb3a Fix async call inside sync context (#30458)
* Fix async call inside sync context

* Apply black formatting
2020-01-04 00:01:37 +01:00
Paulus Schoutsen
b9aba30a6e Extract Collection helper from Person integration (#30313)
* Add CRUD foundation

* Use collection helper in person integration

* Lint/pytest

* Add tests

* Lint

* Create notification
2020-01-03 21:37:11 +01:00
David Cramer
3033dbd86c Add Sentry component (#30422) 2020-01-03 21:34:20 +01:00
Robert Svensson
bb55606d29 Axis - Remove manual configuration and legacy config file import (#30365)
* Remove manual configuration and legacy config file import

* Remove unused imports in tests after rebase
2020-01-03 14:25:31 -06:00
ochlocracy
6387a50697 Implement supported locales for Alexa capabilities (#30285)
* Implement Alexa capability supported locales.

* Check config for supported locales.

* Removed unused import.

* Applied some potpourri to improve code smell.

* Change supported_locales to set.
2020-01-03 21:23:22 +01:00
Jc2k
80701c8f2a Defer homekit_controller initial poll after all entities are created (#30355)
* Make sure first poll happens after sub-platforms are loaded and entities are created.

* Function dosn't need to return anything

* Don't forward entry if already forwarded it
2020-01-03 21:22:27 +01:00
Robert Svensson
2b26af89df Improve tests based on Martins feedback from Axis improve tests (#30442) 2020-01-03 12:23:17 -06:00
Marcelo Moreira de Mello
e7af759330 Bump ring to 0.2.9 (#30439) 2020-01-03 12:19:14 -06:00
Robert Svensson
ec61342ec3 deCONZ - Improve tests based on Martins feedback in Axis integration (#30438) 2020-01-03 18:11:04 +01:00
Josh Anderson
8a1fc8b8f0 Check status field for UPS online binary sensor (#30144)
Avoids issue where status was previously reported as offline when
battery was low or UPS was over voltage
2020-01-03 17:40:36 +01:00
Jc2k
6b519499a7 Don't expose flows that aren't initialised. (#30432)
* Don't expose flows that aren't initialised.

If a flow init does not return immediately then there is a window where our
behaviour is screwy:

 * Can try to configure a flow that isn't ready
 * Can show notifications for discoveries that might yet return an abort

This moves the flow discovery events and notifications to after the flow is
initialised and hides flows that don't have a cur_step from async_progress

* Fix tradfri test

* Black.

* Lint fixes
2020-01-03 17:28:05 +01:00
Jc2k
df6c7b97f5 isort homekit (#30437) 2020-01-03 15:00:44 +00:00
Robert Svensson
536b201472 WIP deCONZ - Support Fyrtur/Kadrilj battery sensors (#30403)
* Sensor.binary is None means unsupported sensor
* Don't create ordinary sensor on ZHABattery type
2020-01-03 15:15:32 +01:00
Bas Nijholt
0d5486f772 Add KEF speakers integration (#28959)
* add KEF speakers platform for the integration

This will work with the KEF LS50 Wireless and KEF LSX speakers.
The development of this code happened on https://github.com/basnijholt/media_player.kef

* rename DATA_KEF -> DOMAIN

* use aiokef v0.2.0 and support LSX and new features

* sort imports

* fix @MartinHjelmare's suggestions

* remove _CONFIGURING

* change STATE_UNKNOWN to None

* use lat and long for unique_id

* bump aiokef to v0.2.2

* use config[ATTR] instead of config.get(ATTR)

* use getmac

* fix case when MAC is None

* use host as instance lifetime id

* fix requirements
2020-01-03 14:59:44 +01:00
Ville Skyttä
fa4fa30461 Various string cleanups (#30435)
* Remove some unnecessary string concatenations

* Replace some simple str.formats with f-strings

* Replace some string concatenations with f-strings
2020-01-03 14:47:06 +01:00
Sérgio
5ad209c6fd Handle telegram event commands with args (#30254)
* Handle telegram event commands with args

* Parse message regargless of command

* Lint

* Use multiple assignment
2020-01-03 08:22:14 -05:00
David K
859935e8bc Update HomeKit position state characteristic for covers (#27867)
* HomeKit: update position state characteristic for covers

position state is a mandatory characteristic for HK window coverings

* Test position state characteristic
2020-01-03 08:19:03 -05:00
Robert Svensson
b57da2f862 Axis - Improve tests based on feedback (#30430)
* Use MockConfigEntry, add_to_hass and hass.config_entries.async_setup

* Mock method instead of handling paths
2020-01-03 13:27:14 +01:00
Joakim Plate
0944d02262 Mark API key as deprecated (#30402)
Service account should be used instead
2020-01-03 12:12:29 +01:00
Ian Duffy
5580ee3fa1 Don't allow badly formed upnp devices to kill auto discovery (#30342)
Prevent the following from occurring:

```
2019-12-31 22:38:41 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 85, in async_init
    return await self._async_handle_step(flow, flow.init_step, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 145, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/usr/src/homeassistant/homeassistant/components/deconz/config_flow.py", line 182, in async_step_ssdp
    if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != DECONZ_MANUFACTURERURL:
KeyError: 'manufacturerURL'
2019-12-31 22:38:41 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 85, in async_init
    return await self._async_handle_step(flow, flow.init_step, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 145, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/usr/src/homeassistant/homeassistant/components/deconz/config_flow.py", line 182, in async_step_ssdp
    if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != DECONZ_MANUFACTURERURL:
KeyError: 'manufacturerURL'
```
2020-01-03 12:08:40 +01:00
Stefan Agner
3f33fc6122 convert to integer if rounding precision is zero (#30226)
Convert values to integer if rounding precision is zero. With that a
value which is an integer before filtering can be configured to stay
integer when using precision = 0. This also aligns behavior of filters
to how rounding behaves in tempaltes (homeassistant/helpers/template.py,
function forgiving_round).
2020-01-03 11:54:19 +01:00
Jc2k
fdfedd086b Rework FlowManager to use inheritance (#30133)
* Pull async_finish_flow/async_create_flow out of ConfigEntries

* Towards refactoring

* mypy fixes

* Mark Flow manager with abc.* annotations

* Flake8 fixes

* Mypy fixes

* Blacken data_entry_flow

* Blacken longer signatures caused by mypy changes

* test fixes

* Test fixes

* Fix typo

* Avoid protected member lint (W0212) in config_entries

* More protected member fixes

* Missing await
2020-01-03 11:52:01 +01:00
Robert Svensson
0a4f3ec1ec Use config entry unique id for deCONZ (#30122)
* Use config entry unique id

* Clean up

* Backwards compatiblity note

* Fix some of Balloobs comments

* Bump dependency to v66

* Black somehow missed config flow tests...

* Move set unique ID til after possibility to update existing entry
2020-01-03 11:50:53 +01:00
Ville Skyttä
c130e81638 Fix number of times seen in debug message (#30429) 2020-01-03 11:31:50 +01:00
tetienne
f5aa89dd06 Fix set tilt position (#30428) 2020-01-03 11:31:05 +01:00
ochlocracy
3a18ef219b Add RTSP stream support for UVC (Unifi Video Client) integration (#30297)
* Add SUPPORT_STREAM to supported_features.

* Implement stream_source with channel RTSP URIs.

* Add Tests for Stream Support.

* Make stream_source async.

* Removed unused import.

* Re-wrote test to remove warning, and lint error.
2020-01-03 11:30:26 +01:00
Oliver
b097a64010 Implemented media_play & media_pause / push to version 0.7.11 of denonavr (#30421)
* Implement media_play & media_pause / push to version 0.7.11 of denonavr

* fix denonavr version in requirements_test_all.txt
2020-01-02 22:06:33 -06:00
David F. Mulcahey
ef8eefc7a0 Remove ZHA establish device mappings function (#30423)
* remove establish_device_mappings
* inline init
2020-01-02 21:21:09 -05:00
Josh Bendavid
4c6e10a988 Cleanup of state handling in webostv (#30416)
* cleanup unnecessary manipulation of state variables

* update unit test
2020-01-03 02:46:32 +01:00
HomeAssistant Azure
4bf15a07a3 [ci skip] Translation update 2020-01-03 00:32:16 +00:00
Robert Svensson
9b961632af Axis - Improve tests (#30415) 2020-01-03 00:02:59 +01:00
Josh Bendavid
c1936f6fe4 Add generic command/button functionality to webostv (#30379)
* add generic command/button functionality to webostv

* update codeowners
2020-01-02 22:32:56 +01:00
Josh Bendavid
9064058a03 Add generic command functionality to denonavr (#29295)
* Add generic command functionality to denonavr

* add minimal unit tests for denonavr

* fix import order

* simplify denonavr unit test

* handle domain specific service calls with dispatcher

* update unit tests

* update unit tests

* remove unnecessary return value

* fix handling of mock instances in unit tests
2020-01-02 22:30:20 +01:00
michaeldavie
b91cbb50c8 Bump env_canada to 0.0.31 (#30409) 2020-01-02 15:24:43 -06:00
springstan
8e5ccfcb8a Bump miflora and bluepy (#30411) 2020-01-02 15:24:29 -06:00
Franck Nijhof
4f8663846b Migrate frontend tests from coroutine to async/await (#30386) 2020-01-02 14:23:56 -06:00
Franck Nijhof
4e6d415541 Migrate media_player tests from coroutine to async/await (#30387) 2020-01-02 14:23:35 -06:00
Franck Nijhof
b9fcb87d2c Migrate generic tests from coroutine to async/await (#30388) 2020-01-02 14:23:16 -06:00
Franck Nijhof
1e3822bdd7 Migrate group tests from coroutine to async/await (#30389) 2020-01-02 14:22:49 -06:00
Franck Nijhof
332cbbd8b1 Migrate freedns tests from coroutine to async/await (#30390) 2020-01-02 14:22:30 -06:00
Franck Nijhof
5b2b86987b Migrate fido tests from coroutine to async/await (#30391) 2020-01-02 14:22:13 -06:00
Franck Nijhof
7b00e94184 Migrate local_file tests from coroutine to async/await (#30392) 2020-01-02 14:21:54 -06:00
Aaron David Schneider
5edf72c9ea fix issuecomment-570284682 (#30405) 2020-01-02 14:17:37 -06:00
Franck Nijhof
24d5e54eed Bump pre-commit to 1.21.0 (#30406) 2020-01-02 14:16:58 -06:00
Ville Skyttä
e6388e186c Remove unnecessary string literal concatenations (#30360) 2020-01-02 21:17:10 +02:00
Ernst Klamer
cac750066a Remove unnessecary rfxtrx light property def (#30397) 2020-01-02 16:44:29 +01:00
Ernst Klamer
77978a979b Restore state for Rfxtrx devices (#30309)
* Restore state rfxtrx switch

* Restore state RFXtrx lights

* Restore state RFXtrx covers

* Restore comment

* Remove line

* Remove logging

* fix black

* Fix typo
2020-01-02 07:59:13 +01:00
HomeAssistant Azure
769cf19052 [ci skip] Translation update 2020-01-02 00:32:24 +00:00
Alan Tse
fc08c62a31 Add charging rate sensor to Tesla (#30286)
* Add charging rate sensor to Tesla

* Remove reference to bin_type
2020-01-02 00:36:14 +01:00
Franck Nijhof
37d1771400 Migrate google_* tests from coroutine to async/await (#30377) 2020-01-01 17:24:30 -06:00
Franck Nijhof
bcb47dab45 Migrate discovery tests from coroutine to async/await (#30376) 2020-01-01 17:22:32 -06:00
Franck Nijhof
b43b50b6d2 Migrate ffmpeg tests from coroutine to async/await (#30375) 2020-01-01 17:22:08 -06:00
Franck Nijhof
c5298dc4dc Migrate cast tests from coroutine to async/await (#30374) 2020-01-01 17:21:42 -06:00
Franck Nijhof
c837f185f7 Migrate camera tests from coroutine to async/await (#30372) 2020-01-01 17:21:21 -06:00
Franck Nijhof
8814e1eadc Migrate no_ip tests from coroutine to async/await (#30370) 2020-01-01 17:18:40 -06:00
Franck Nijhof
47aa0043bf Migrate owntracks tests from coroutine to async/await (#30369) 2020-01-01 17:18:20 -06:00
Franck Nijhof
1a2a976be2 Migrate counter tests from coroutine to async/await (#30368) 2020-01-01 17:17:55 -06:00
Franck Nijhof
320dc52bb3 Migrate config tests from coroutine to async/await (#30366) 2020-01-01 17:16:27 -06:00
Franck Nijhof
4e7b35355d Migrate websocket_api tests from coroutine to async/await (#30364) 2020-01-01 17:15:29 -06:00
Franck Nijhof
0fb5fbd85c Migrate hassio tests from coroutine to async/await (#30363) 2020-01-01 17:13:43 -06:00
Franck Nijhof
3a4db2fae7 Migrate mailbox tests from coroutine to async/await (#30361) 2020-01-01 17:13:04 -06:00
Aaron David Schneider
99bc911f7f Add attributes to fritz device_tracker (#30350)
* add attributes to device_tracker

* fix pylint

* requested changes

* docstring updated
2020-01-01 22:03:37 +01:00
Alan Tse
790b2d00c7 Fix HVAC mode for Tesla (#30287)
* Fix HVAC mode for Tesla

* Change HVAC_MODE to HEAT_COOL
2020-01-01 20:49:20 +01:00
Fabian Affolter
0479e93de7 Upgrade python_opendata_transport to 0.2.1 (#30348) 2020-01-01 14:06:20 -05:00
Jeff Irion
83e05da0b3 Fix media_player example for select_source service (#30358) 2020-01-01 19:40:11 +01:00
Franck Nijhof
bc6e2a06e6 Migrate yr tests from coroutine to async/await (#30351) 2020-01-01 16:21:37 +01:00
Franck Nijhof
33828ae514 Migrate timer tests from coroutine to async/await (#30352) 2020-01-01 16:20:18 +01:00
Franck Nijhof
9ba0daa358 Migrate teksavvy tests from coroutine to async/await (#30353) 2020-01-01 16:18:17 +01:00
Franck Nijhof
9fbe6d60cb Migrate startca tests from coroutine to async/await (#30354) 2020-01-01 16:17:35 +01:00
Fabian Affolter
e099d57bde Upgrade zeroconf to 0.24.4 (#30347) 2020-01-01 14:04:37 +01:00
Josef Schlehofer
298d898627 Upgrade youtube_dl to version 2020.01.01 (#30341) 2020-01-01 12:36:43 +01:00
Alan Tse
272c00e81b Remove use of bin_type in Tesla component (#30315)
* Remove use of bin_type

* Convert _unit attribute to units

* Remove unnecessary variable assignment

* Change to using util library convert
2020-01-01 12:23:29 +01:00
HomeAssistant Azure
bb2d8e3f7d [ci skip] Translation update 2020-01-01 00:32:22 +00:00
Franck Nijhof
52ed9608e2 Migrate input_* tests from coroutine to async/await (#30336) 2020-01-01 01:22:44 +01:00
Josh Bendavid
fc23b4f83f Migrate webostv to new library and make integration async with callback state updates (#29296)
* migrate webostv to new aiopylgtv version of the library and add support
for generic commands, input/button commands, and callback state updates

* update requirements

* cleanup and bump aiopylgtv version

* update webostv unit tests

* make webostv unit tests work with python 3.7

* cleanup for code checks

* cleanup and code review

* make all client request functions coroutines

* make host required for webostv configuration

* remove generic command and button functionality plus related cleanup

* fix previous track function

* update unit tests

* fix imports for unit tests

* update unit test

* further unit test updates

* remove unnecessary setup call in unit tests

* restore previous behaviour with client key config file in hass configuration directory
2020-01-01 00:26:35 +01:00
Franck Nijhof
af153521dc Migrate emulated_hue tests from coroutine to async/await (#30331) 2019-12-31 16:50:07 -06:00
Franck Nijhof
194cb8dbf5 Migrate xiaomi_miio tests from coroutine to async/await (#30329) 2019-12-31 16:49:00 -06:00
Franck Nijhof
2ac5537495 Migrate alexa tests from coroutine to async/await (#30332) 2019-12-31 16:48:17 -06:00
Franck Nijhof
0280862780 Migrate api tests from coroutine to async/await (#30338) 2019-12-31 22:58:40 +01:00
Franck Nijhof
687a052d40 Migrate python_script tests from coroutine to async/await (#30335) 2019-12-31 22:48:43 +01:00
springstan
f11d39f8eb Bump alarmdecoder to 1.13.9 (#30303) 2019-12-31 15:54:31 -05:00
Franck Nijhof
d8d75d882b Bump pyps4-2ndscreen to 1.0.4 (#30327) 2019-12-31 15:52:45 -05:00
Franck Nijhof
cd8f954a4d Migrate wunderground tests from coroutine to async/await (#30330) 2019-12-31 21:04:24 +01:00
Franck Nijhof
30dbed3f98 Migrate dsmr tests from coroutine to async/await (#30333) 2019-12-31 21:03:21 +01:00
Franck Nijhof
2620a95944 Improve Withings tests in different time zone (#30326)
* Improve Withings tests in different time zone

* Address code review comment

* Spelling error in code doc
2019-12-31 11:10:39 -05:00
Alexei Chetroi
a3061bda60 Make the rest of ZHA platforms to use ZHA class registry (#30261)
* Refactor ZHA component tests fixtures.

* Add tests for ZHA device discovery.

* Refactor ZHA registry MatchRule.

Allow callables as a matching criteria.
Allow sets for model & manufacturer.

* Minor ZHA class registry refactoring.

Less cluttered strict_matching registrations.

* Add entities only if there are any.

* Migrate rest of ZHA platforms to ZHA registry.

* Pylint fixes.
2019-12-31 11:09:58 -05:00
Alan Tse
5ed44297e6 Simplify Tesla icon get code (#30301)
* Simplify icon get code

* Remove extraneous None
2019-12-31 16:27:39 +01:00
Lars-P
4031596aa7 Fix luftdaten integration by adding a sensor for pressure at sealevel (#30317) 2019-12-31 15:58:54 +01:00
brefra
3c8ebf1844 Add light support to Velbus integration (#30323)
* Add light support to Velbus integration

* Add Velbus light.py to .coveragerc

* Applied black formatting
2019-12-31 15:46:02 +01:00
Fabian Affolter
734ef5a7a9 Upgrade Sphinx to 2.3.1 (#30310) 2019-12-31 15:32:26 +01:00
Iulius
1c2618d99a Add separate command and state topics for mqtt lock (#29808)
* Update lock.py

Allow different command and state topic + different command and state values.

* Formatting updated after black run

* TC updated to reflect different state & cmd values

* Abbreviations for lock states added

* additional non-default state test

* whitespaces fixed

* black formatting run
2019-12-31 15:24:09 +01:00
Christian
fd0375ac20 Add support for Velux garage doors (#30214)
* Update manifest.json

* Update cover.py

Add GarageDoor

* Update to pyvlx 0.2.12

* Sort
2019-12-31 15:17:17 +01:00
Phil Bruckner
609bf445f0 Remove Amcrest deprecated sensors and switches (#30308) 2019-12-31 08:16:41 -06:00
Shawn Wilsher
e68cd339b9 Reduce solaredge logging severity (#30305)
* [solaredge] Reduce Severity of Log Line

This log error happens frequently for some sites, but it shouldn't be an error.
It is expected, per the SolarEdge Monitoring API, that some sites do not
support this information, and the expected result is that this would be
empty (see comments on #27959).

Fixes #27959

* Fix a typo

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2019-12-31 08:56:23 -05:00
rhadamantys
dedd1aec8c Add support for Somfy RTS power socket and Somfy io Temperature sensor (#30053)
* Added support for Somfy RTS wireless power socket and
Somfy Temperature Sensore Thermos Wirefree io

* Added code formatting fixes for commit 5faaf9c

* added support for RollerShutterRTSComponent from Somfy

* Added support for RTS roller shutter in set_cover_position

* Add support for Somfy RTS power socket and Somfy io temperature sensor

* black and isort fixes
2019-12-31 14:48:31 +01:00
SukramJ
b0a0871bed Bump dependency for HomematicIP Cloud (#30319) 2019-12-31 14:45:17 +01:00
Steven Barth
4bfc7b9848 Add homematic host port config for HMIP-only CCUs (#30077)
* homematic: Add host port config for HMIP-only CCUs

When adding a host (CCU) to the homematic component currently the hardcoded port 2001 is used to communicate with it.
However that port is only available on the target if the target supports HM (wireless) protocol which is not the case e.g. for
the Hass.io Homematic CCU addon when running in HMIP-only mode with the HMIP-RFUSB stick.

This allows to change the port home assistant uses to talk to the CCU in order to provide services under hte homematic homain, e.g. homematic.set_variable_value

The default value for this option is the old hardcoded value this the change should be backwards compatible with existing configurations.

* Change style of config retrieval
2019-12-31 08:41:44 -05:00
Philipp Schmitt
72e97792bd Update liveboxplay and pyteleloisirs (#30093) 2019-12-31 08:38:46 -05:00
Issac
3f570245aa Add local_ip component (#29973)
* Added localip component

* Split config and core logic, and migrate to sensor platform (requested by @MartinHjelmare)
Also allow overriding the sensor name via the config

* Tweak docstring

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

* Initial support for config entries

* Rename localip to local_ip (1/2)

* Rename localip to local_ip (2/2)

* Add test for config_flow

* Split and rename tests

* Remove unneeded code from config_flow

* Implement configuration as config entry import.  Other misc requested changes from code review.

* Fix tests

* minor code review fixes

* remove unneeded code

Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2019-12-31 14:34:53 +01:00
Franck Nijhof
5414e9d155 Fix Withings leaking time zone change into other tests (#30320)
* Fix Withings leaking time zone change in other tests

* Fix spelling error in code doc
2019-12-31 14:30:09 +01:00
Paulus Schoutsen
bb14a083f0 Store capabilities and supported features in entity registry, restore registered entities on startup (#30094)
* Store capabilities and supported features in entity registry

* Restore states at startup

* Restore non-disabled entities on HA start

* Fix test

* Pass device class from entity platform

* Clean up restored entities from state machine

* Fix Z-Wave test?
2019-12-31 14:29:43 +01:00
Maciej Bieniek
2c1a7a54cd Add GIOS integration (#28719)
* Initial commit

* Add gios to requirements

* Add tests

* Update .coveragerc file

* Run gen_requirements_all.py

* Change DEFAULT_SCAN_INTERVAL

* Better strings

* Bump library version

* run script.hassfest

* run isort

* Add icons mapping

* Remove unnecessary f-string

* Remove unnecessary listener

* Refactoring config_flow

* Add unique_id to config entry

* Change AQI states to consts in English

* Remove unused init

* Remove unused exception

* Remove private instance attribute

* Remove overwrite state property

* Fix pylint error

* Add SCAN_INTERVAL for air_quality entity

* Add _abort_if_unique_id_configured()
2019-12-31 13:05:31 +01:00
Phil Bruckner
1ee299b079 Ignore google_maps updates when last_seen goes backwards (#30178) 2019-12-30 19:30:45 -06:00
HomeAssistant Azure
ae51331d49 [ci skip] Translation update 2019-12-31 00:32:20 +00:00
Andrew Sayre
914aea9446 Bump pysmartthings 0.7.0 (#30302) 2019-12-30 14:49:56 -06:00
Robert Svensson
41d2d1f309 Handle wired bug on restart (#30276) 2019-12-30 12:40:52 -06:00
Tais Hedegaard Holland
bad35577cb Bump ihcsdk to 2.4.0 (#30279)
* Update requirements_all.txt

update ihcsdk to version 2.4.0

* Update manifest.json

upgrade to version 2.4.0 of ihcsdk
2019-12-30 12:38:17 -06:00
Andy Grunwald
3b9f48b51d Contributing: Add note about feature suggestions and bug tracking (#30225) 2019-12-30 17:54:16 +01:00
Alan Tse
40e3d6f773 Change default icons for Tesla components (#30288) 2019-12-30 17:52:34 +01:00
Fabian Affolter
d0c9a42b81 Add custom validator for countries (#30280) 2019-12-30 17:51:25 +01:00
Fabian Affolter
33738cc83a Upgrade beautifulsoup4 to 4.8.2 (#30274) 2019-12-30 17:51:11 +01:00
Jc2k
fccb13b762 Add homekit_controller service.sensor.smoke (#30269) 2019-12-30 08:05:49 +00:00
Jc2k
8a22a38353 Accept homekit_controller pairing codes both with and without dashes (#30273)
* Handle MalformedPinError from homekit_python
* Handle both formats of pin codes
2019-12-30 07:36:01 +00:00
HomeAssistant Azure
13116d8d3f [ci skip] Translation update 2019-12-30 00:32:19 +00:00
Ville Skyttä
9892564ab5 Upgrade rflink to 0.0.50, ignore_devices now supports * and ? anywhere (#30268)
https://github.com/aequitas/python-rflink/releases/tag/0.0.50
https://github.com/aequitas/python-rflink/releases/tag/0.0.49
https://github.com/aequitas/python-rflink/releases/tag/0.0.48
https://github.com/aequitas/python-rflink/releases/tag/0.0.47
2019-12-29 21:12:49 +02:00
François
85624e8031 Fix creating smappee sensors when remote is not active (#30270) 2019-12-29 17:18:23 +01:00
LE LAY Olivier
a91b005822 Fix ble_tracker randomly pygatt thrown error (#28671)
* fix(ble_tracker): catch randomly pygatt thrown error

* fix(ble_tracker): merge except errors
2019-12-29 09:26:43 +02:00
HomeAssistant Azure
5d8dda4f68 [ci skip] Translation update 2019-12-29 00:32:14 +00:00
Pascal Vizeli
79b47157b8 Merge pull request #30260 from home-assistant/rc
0.103.5
2019-12-28 22:16:11 +01:00
Alexei Chetroi
36585558a5 Refactor ZHA channel logging (#30259)
Add channel.id property -- id unique for this the device only.
2019-12-28 15:41:55 -05:00
Pascal Vizeli
ae42736235 Bump version 0.103.5 2019-12-28 20:26:06 +00:00
Robert Van Gorkom
08af989658 Fixing timezone issue which caused wrong selection of data to be used. (#30011) 2019-12-28 21:25:37 +01:00
Marcelo Moreira de Mello
fdd090bae0 Bump ring to 0.2.8 to fix Oauth issues (#30245) 2019-12-28 20:24:29 +00:00
Paulus Schoutsen
5a9e543087 Whitelist Android/iOS auth callbacks (#30082)
* Whitelist Android/iOS

* Add iOS alternate flavor URLs

* Update indieauth.py

Co-authored-by: Robbie Trencheny <me@robbiet.us>
2019-12-28 21:20:18 +01:00
Maikel Punie
e1e8d6a562 Bump python-velbus library to 2.0.32 to fix problems with the glaspanels (#30257) 2019-12-28 21:16:52 +01:00
Ville Skyttä
4e50a402c7 Note Huawei LTE notify service change requires restart (#30223)
Refs https://github.com/home-assistant/home-assistant/issues/30222
2019-12-28 16:31:42 +01:00
SukramJ
658ec309aa Add HmIP-MOD_TM to HomematicIP Cloud (#30255) 2019-12-28 16:29:14 +01:00
Ville Skyttä
c5a280c064 Huawei LTE: Fix YAML options overriding ones set from GUI (#30249)
Closes https://github.com/home-assistant/home-assistant/issues/30221
2019-12-28 16:27:49 +01:00
Felix Barbalet
0323b246bd Bump libpurecool to 0.6.0 (#30247)
* bump libpurecool to 0.6.0 - fixes home-assistant/home-assistant#26367

* update manifest too
2019-12-28 16:19:18 +01:00
SukramJ
134dc45b77 Bump dependency for HomematicIp cloud (#30237)
* Bump dependency for HomematicIp cloud

* Update test_data
2019-12-28 13:46:04 +01:00
Ville Skyttä
e4cda9ae0b Fix Huawei LTE error message on service call without URL and routers (#30250) 2019-12-28 12:55:45 +01:00
Marcelo Moreira de Mello
59fee12b45 Bump ring to 0.2.8 to fix Oauth issues (#30245) 2019-12-28 10:15:35 +01:00
springstan
cf7b70dd8c Bump python-qbittorrent to 0.4.1 (#30239) 2019-12-28 10:09:42 +01:00
HomeAssistant Azure
2e07902999 [ci skip] Translation update 2019-12-28 00:32:22 +00:00
Kerwood
9d6f3654ad DECONZ - Added support for Aqara single switch WXKG03LM (#30240) 2019-12-27 21:47:45 +01:00
Franck Nijhof
9159da6583 Bump shodan to 1.21.1 (#30234) 2019-12-27 20:35:25 +01:00
HomeAssistant Azure
39d38923b7 [ci skip] Translation update 2019-12-27 00:32:13 +00:00
David F. Mulcahey
05a0922dc0 Bump ZHA dependencies (#30228)
* bump dependencies
* requirement files
* bump quirks to 0.0.30
2019-12-26 17:08:14 -05:00
Josh Bendavid
d6744fbc4e Fix handling of symlinked device descriptors in keyboard_remote and move remaining sync io to executor thread pool (#30206)
* fix handling of symlinked device decriptors

* make check for symlinked paths more efficient

* make variable names pylint compliant

* move sync io during setup and device connect/disconnect to executor thread pool

* move remaining sync io during setup to executor thread pool

* remove unnecessary lambda functions
2019-12-26 19:06:57 +01:00
Paul Annekov
b2753b7578 bump tuyaha 0.0.5 (#30213) 2019-12-26 13:27:59 +01:00
Alan Tse
e58ef36adc Bump teslajsonpy to 0.2.1 (#30217)
Closes #29922
2019-12-26 13:25:49 +01:00
HomeAssistant Azure
169c4089ff [ci skip] Translation update 2019-12-26 00:32:16 +00:00
Ville Skyttä
50a87bbe18 Add Huawei LTE integration suspend and resume services (#30207)
Useful e.g. if accessing the router web interface from another source
such as a web browser is temporarily required.
2019-12-25 12:43:51 +01:00
Ville Skyttä
a5c4508571 Make Huawei LTE notify service name configurable (#30208)
* Default Huawei LTE notify service name to notify.huawei_lte, make configurable

Closes https://github.com/home-assistant/home-assistant/issues/29409

* Set default notify service name for uninvoked options flow
2019-12-25 13:42:28 +02:00
Kevin McCormack
f56797e413 Update Vivotek camera component (#30191)
- Bump libpyvivotek version to 0.4.0
- Add digest authentication
2019-12-25 11:45:49 +01:00
rhadamantys
89450f405c Add support for enocean window handle FA 10 00 (Hoppe) (#29968)
* Added support for Somfy RTS wireless power socket and
Somfy Temperature Sensore Thermos Wirefree io

* Added code formatting fixes for commit 5faaf9c

* added support for RollerShutterRTSComponent from Somfy

* Added support for RTS roller shutter in set_cover_position

* added support for enocean window handle FA 10 00 (Hoppe)

* removed spaces in empty lines

* removal of rawdata attribute / code style

* isort fix

* PyLint fixes

* Improvements after review suggestions: rename device class to sensor type to avoid ambiguousness

* added import for DEVICE_CLASS_POWER from const.py

* removed window handle unit
2019-12-25 11:41:00 +01:00
Niall Donegan
5e3102b2d6 Pull track position from MPD status (#28579)
* Pull track position from MPD status()

This allows the progress bar to work when using the media-control card in lovelace.

* Actually commit flake8 fix!

* Extra documentation.

Mainly to trigger CI rerun.

* Updated to use self._media_position
2019-12-25 11:09:03 +01:00
Josef Schlehofer
217b974cef Upgrade youtube_dl to 2019.12.25 (#30203) 2019-12-25 10:18:10 +01:00
HomeAssistant Azure
bb35d93fde [ci skip] Translation update 2019-12-25 00:32:06 +00:00
ochlocracy
25f78dd1a9 Implement EqualizerController in Alexa for media_player. (#30159) 2019-12-24 17:06:39 -05:00
springstan
4ea42c2479 Bump datapoint to 0.9.5 (#30185) 2019-12-24 12:00:32 -07:00
springstan
482ff4061e Bump importlib-metadata to 1.3.0 (#30196)
* Bump importlib-metadata to 1.3.0

* Include setup.py and package_constraints.txt
2019-12-24 12:00:05 -07:00
Tim Rightnour
f32eaa2fdd Add onewire devices and owserver remote host support (#29948)
* Add support for HobbyBoards sensors: Hub, Humidity, Moisture, PulseCounter
Add support for an owserver running on a remote host

* Cleanup and fixes for style/etc

* Forgot to convert to f-strings.

* Update with changes requested by @MartinHjelmare

* Pylint

* Fix to None

* Reverse logic for hobbyboard test to eliminate pylint complaint

* Modified manifest to list myself as codeowner

* Move some functions down into OneWireProxy instead of the top OneWire

* Oops, missed some decode()'s

* And another!
2019-12-24 14:41:29 +01:00
Quentame
2113d65c06 Fix AdGuard Home safe search sensor name (#30171)
* Fix AdGuard Home safe search sensor name

* Fix typo
2019-12-24 14:14:58 +01:00
Fabian Affolter
783672d305 Upgrade zeroconf to 0.24.3 (#30187) 2019-12-24 14:11:01 +01:00
HomeAssistant Azure
8add6c5f2e [ci skip] Translation update 2019-12-24 00:32:12 +00:00
David F. Mulcahey
85d2ba047b Protect against bad data stored in ZHA (#30183) 2019-12-23 19:11:35 -05:00
Alan Tse
3aa2ae1700 Enable config flow for Tesla (#28744)
* build: bump teslajsonpy to 0.2.0

* Remove tests

* feat: add config flow

* feat: add async

* perf: convert unnecessary async calls to sync

* feat: add charger voltage and current sensor

* feat: add options flow

* build: bump teslajsonpy to 0.2.0

* Remove icon property

* Revert climate mode change

* Remove charger sensor

* Simplify async_setup_platform

* Update homeassistant/components/tesla/sensor.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Update homeassistant/components/tesla/binary_sensor.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Address requested changes

* Fix pylint error

* Address requested changes

* Update codeowners

* Fix pylint error

* Address requested changes

* Address requested change

* Remove unnecessary check for existing config entry

* Load scan_interval in async_setup_entry

* Include coverage of config_flow

* Add tests for full coverage

* Address requested test changes

* Remove unnecessary init lines

* Remove unnecessary init

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2019-12-23 21:54:25 +01:00
Claudio Heckler
edce497a0d New date_time_utc display option added to the time_date sensor platform (#30158) 2019-12-23 21:48:24 +01:00
P-Verbrugge
059e8722b6 Updated formatting of total_blocks value (#30170)
The number of total blocks is always a round number. There can't be .1 or .11 blocks for example. The output is now always formatted with two decimals that are always 00.
2019-12-23 21:42:44 +01:00
Greg
f23cc16660 Upgrade envoy_reader to 0.11.0 (#30179) 2019-12-23 21:35:54 +01:00
Quentame
f72ba0c716 Add icons to Freebox sensors (#30132) 2019-12-23 09:37:41 -07:00
springstan
4c5801ee8c Add cast to state of Dyson Air Quality Sensor (#30100) 2019-12-23 09:34:57 -07:00
Quentame
e3a3964911 Add icon to Plex sensor (#30172) 2019-12-23 09:25:57 -07:00
ochlocracy
a2678b2aff Add support for input_number entities in Alexa integration (#30139)
* Add support for input_number entities

* Update homeassistant/components/alexa/capabilities.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Removed get methods to directly access required attributes dicts.

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2019-12-23 15:17:37 +01:00
Paulus Schoutsen
7f2921b0e6 Merge remote-tracking branch 'origin/master' into merge-master 2019-12-22 23:42:46 +01:00
Paulus Schoutsen
48d35a4550 Merge pull request #30154 from home-assistant/rc
0.103.4
2019-12-22 23:41:22 +01:00
Robert Svensson
31b17e2b95 Allow battery value of 0 as well as make sure to not create a battery tracker if one already exist (#30155) 2019-12-22 22:58:36 +01:00
Robert Svensson
e9dc404de1 Allow battery value of 0 as well as make sure to not create a battery tracker if one already exist (#30155) 2019-12-22 22:58:22 +01:00
Paulus Schoutsen
720d63f496 Bumped version to 0.103.4 2019-12-22 22:34:57 +01:00
Franck Nijhof
e9b19e0465 Fix deconz SSDP updating Hassio discovery (#30153) 2019-12-22 22:34:14 +01:00
springstan
e74c4c5d99 Move imports into setup function in homekit __init__.py (#30137) 2019-12-22 22:25:27 +01:00
Paulus Schoutsen
697833bc91 Remove requirement from entity integration (#30113) 2019-12-22 22:25:03 +01:00
Franck Nijhof
d101d4449f Fix deconz SSDP updating Hassio discovery (#30153) 2019-12-22 22:24:18 +01:00
Alexei Chetroi
fdaaabf070 ZHA binary_sensor cleanup. (#30149) 2019-12-22 14:07:49 -05:00
cgtobi
d4ff214fce Clean up scaffold (#30135) 2019-12-22 19:53:03 +01:00
Franck Nijhof
b1bb2298e0 Bump sqlalchemy to 1.3.12 (#30142) 2019-12-22 19:52:39 +01:00
Ville Skyttä
868eb3c735 More helpers type improvements (#30145) 2019-12-22 19:51:39 +01:00
Philipp Danner
70f8bfbd4f Update Integration of Keba charging station (#30125)
* fixed parsing of current to float in service set_current

* Added optional name in the config file in order to get a better entety naming (easier to find)

* fix parsing of all parameters to service calls

* addressed code review comments + updated pypi dependency

* config name imported from cont.py + minor naming changes to be more clear about the meaning of a sensor

* removed name in config again, use product name gathered from the charging station instead

* implemented suggested changes

* changed variable naming as requested
2019-12-22 19:46:53 +01:00
Alexei Chetroi
83768be814 Refactor ZHA binary_sensor (#30138)
* Refactor ZHA binary_sensor.

Use ZHA entity class registry for channel specific implementations.

* Remove registries.BINARY_SENSOR_TYPES dict.

* Address PR comments.
2019-12-22 13:24:57 -05:00
Fabian Affolter
ed0ee3100d Upgrade zeroconf to 0.24.2 (#30140) 2019-12-22 12:01:22 +01:00
Paulus Schoutsen
32aae7017e Remove requirement from entity integration (#30113) 2019-12-22 10:32:42 +01:00
Paulus Schoutsen
63a843c19c Fix test 2019-12-22 10:31:23 +01:00
springstan
251808874f Move imports into setup function in homekit __init__.py (#30137) 2019-12-22 10:23:44 +01:00
Alexei Chetroi
9c23c4adf2 Cleanup ZHAEntity class (#30131)
Remove `_domain` attribute since we're not using it anymore.
2019-12-21 18:33:00 -05:00
Alexei Chetroi
8e3dfbd5c9 Refactor ZHA electrical measurement sensor. (#30130) 2019-12-21 17:15:50 -05:00
Paulus Schoutsen
834929a14e Clean up mobile app webhooks (#30123) 2019-12-21 22:45:06 +01:00
Alexei Chetroi
fb3bb8220b Implement ZHA entity classes registry (#30108)
* ZHA Entity registry.
Match a zha_device and channels to a ZHA entity.

* Refactor ZHA sensor to use registry.
* Remove sensor_types registry.
* Fix ZHA device tracker battery remaining.
* Remove should_poll/force_update attributes.
* Fix binary_sensor regression.
* isort.
* Pylint.
* Don't access protected members.
* Address comments and fix spelling.
* Make pylint happy again.
2019-12-21 16:26:58 -05:00
Jc2k
b41480ae46 Add a config entry mechanism to rediscover a discovery that was ignored (#30099)
* Mechanism to rediscover a discovery that was ignored

* Add core config entry tests for new rediscover step

* Add tests for homekit_controller implementation of async_step_rediscover

* Rename rediscover to unignore

* Comment the new ignore/unignore mechanisms
2019-12-21 11:22:07 +01:00
Maikel Punie
3911f24f75 Upgrade python-velbus (#30110) 2019-12-21 11:20:31 +01:00
Vladimír Záhradník
0fc92928a4 Add device class attribute to modbus sensors (#30030) 2019-12-21 10:54:48 +01:00
Ville Skyttä
6604680793 Helpers type hint improvements (#30106) 2019-12-21 09:23:48 +02:00
Ville Skyttä
ecdc1adf90 Upgrade mypy to 0.761 (#30104)
https://mypy-lang.blogspot.com/2019/12/mypy-0760-released.html
https://github.com/python/mypy/releases/tag/v0.761
2019-12-20 22:35:02 +01:00
Bas Nijholt
de94afd090 add --show-diff-on-failure to pre-commit (#30097)
This makes the traceback on a failing CI pipeline much more useful.
2019-12-20 22:00:31 +01:00
Jc2k
4ef04840e9 Don't error on removal of an ignored homekit_controller config entry (#30083)
* Don't error on ignored entries

* Don't ever call async_remove_entry or async_unload_entry for an unignored ignore config entry
2019-12-20 21:49:07 +01:00
Paulus Schoutsen
3e7699b886 Merge pull request #30096 from home-assistant/rc
0.103.3
2019-12-20 21:28:49 +01:00
Paulus Schoutsen
d448ed9f6d Bump ring to 0.2.5 (#30103) 2019-12-20 20:44:46 +01:00
springstan
f229cf2796 Bump starlingbank to 3.2 (#30098) 2019-12-20 20:44:46 +01:00
Paulus Schoutsen
b3098c9f2c Bump ring to 0.2.5 (#30103) 2019-12-20 20:42:13 +01:00
springstan
27f35f86ad Bump starlingbank to 3.2 (#30098) 2019-12-20 20:29:12 +01:00
ochlocracy
0faca57e8b Explicitly include Alexa interface for image_processing entities. (#30101) 2019-12-20 20:28:23 +01:00
gppanayotov
84e1b3d07f Add an open window sensor for heating zones (#30090) 2019-12-20 19:02:46 +01:00
Pascal Vizeli
5def51835e Fix v2 2019-12-20 17:10:04 +00:00
Pascal Vizeli
12f1a322a7 Fix test 2019-12-20 16:20:10 +00:00
Fazli Sapuan
488f26d55b Fix homekit handling of 0 light brightness and fan speed (#29962)
* Fix homekit handling of 0 light brightness and fan speed

* Update homekit tests for new initial brightness/speed value
2019-12-20 16:08:08 +00:00
Wim Haanstra
20a0557be7 Fix failure in transform method (#30023)
* Fix failure in transform method

* Fix formatting issue
2019-12-20 16:07:07 +00:00
omriasta
e58291015c Patch rachio (#30031)
* fix binary sensor offline/online

fixed self._handle_update on line 66 to produce args, kwargs.
Updated the binary sensor to check the correct index in the tuple.

* Fixed Standby switch

Set standby switch to poll in order to get status when homeassistant starts up.
Updated the index for the switch to get the status from the tuple.
2019-12-20 16:05:28 +00:00
Pascal Vizeli
e6a27983d3 Bump version 0.103.3 2019-12-20 14:16:39 +00:00
Franck Nijhof
939ca63cbc Fix update port and api key on deconz discovery config entry u… (#30088)
* Fix update port and api key on discovery config entry update

* Remove coroutine from _update_entry
2019-12-20 14:15:45 +00:00
Michaël Arnauts
04b5d6c697 Rework tado component (#29246)
* Fix imports so it works in custom_components

* Rework tado component

* Code cleanup

* Remove water_heater

* Address pylint warnings

* Remove water_heater from components

* Raise PlatformNotReady when we couldn't connect

* Revert PlatformNotReady since we are not a platform

* Add debugging information

* Add fallback setting

* Import with relative path

* Address race condition

* Cleanup

* Catch 422 Errors and log the real error

* Use async_schedule_update_ha_state to update the entities

* Forgot the True
2019-12-20 13:24:43 +01:00
Fazli Sapuan
92fd3e3ad5 Fix homekit handling of 0 light brightness and fan speed (#29962)
* Fix homekit handling of 0 light brightness and fan speed

* Update homekit tests for new initial brightness/speed value
2019-12-20 11:00:21 +01:00
Franck Nijhof
eb0aed3653 Fix update port and api key on deconz discovery config entry u… (#30088)
* Fix update port and api key on discovery config entry update

* Remove coroutine from _update_entry
2019-12-20 10:29:18 +01:00
HomeAssistant Azure
3a610edb78 [ci skip] Translation update 2019-12-20 00:32:22 +00:00
Ville Skyttä
d236a19139 Include all SSDP data in discovery info (#28197)
* Include all SSDP data in discovery info

* Use UPnP device description as discovery info, inject some SSDP attrs

* Clean up attribute names

* Adapt existing SSDP flows to changed attribute names

* Prefix all SSDP UPnP attribute name constants with ATTR_UPNP, tweak a bit
2019-12-19 19:28:03 +02:00
springstan
0cb468d7b0 Make name of nmbs live sensor customizable via unique_id (#29662)
* Make name customizable for nmbs live sensors

* Change order of the live name

* Added unique id to live nmbs sensor

* Revert changing the name of the live sensor
2019-12-19 17:45:52 +01:00
Maciej Bieniek
80be3b74a9 Init entities as unavailable when offline (#29738) 2019-12-19 14:10:27 +01:00
Paulus Schoutsen
52818bdb89 Make Hassfest stricter pt 2 (#30068)
* Make Hassfest stricter

* Fix if-condition

* Small cleanup
2019-12-19 14:00:22 +01:00
ochlocracy
5baaa852dd Refactor Alexa capabilityResources object into class, Implement Alexa semantics object (#29917)
* Refactor capabilityResources object into class.
Implement semantics object to support open, close, raise, lower utterences.
Replace covers PercentageController with RangeController.
Add semantics for covers.
Remove PowerController for covers.
Add new display categories.
Add new items to Alexa Global Catalog.
Implement garage door voice PIN code support though Alexa app.
Fixed bug with getting property for ModeController.
Fixed bug were PercentageController AdjustPercentage would exceed 100.

* Comment fixes in Tests.

* Reorder imports.

* Added additional tests for more code coverage.

* Added and additional test for more code coverage.

* Explicitly return None for configuration() if not instance of AlexaCapabilityResource.
2019-12-19 12:44:17 +01:00
Yuchen Ying
9804fbb527 Add unit_of_measurement to various Transmission sensors (#30037)
* Add unit_of_measurement to various Transmission sensors 

Without unit_of_measurement, the history graph card will not show those sensors as line chart.

* Change Counts to Torrents.
2019-12-19 11:23:46 +01:00
Paulus Schoutsen
e0d6810134 Remove stream from camera after deps (#30057) 2019-12-19 11:23:19 +01:00
Jc2k
c3144eddbb Set unique id on homekit_controller config entries (#30035)
* Set unique id on config entries

* Changes from review
2019-12-19 09:45:22 +01:00
Paulus Schoutsen
50714fbedf Merge pull request #30064 from home-assistant/rc
0.103.2
2019-12-19 08:03:47 +01:00
Paulus Schoutsen
c9de5b9fef Bumped version to 0.103.2 2019-12-19 07:53:38 +01:00
Paulus Schoutsen
aae80dca1c Fix recursion 2019-12-19 07:53:32 +01:00
Aaron Bach
9e5de1a106 Guard against future unknown SimpliSafe entity types (#30059)
* Guard against future unknown SimpliSafe entity types

* Updated log message
2019-12-18 17:52:56 -07:00
HomeAssistant Azure
5ea4ba6a2e [ci skip] Translation update 2019-12-19 00:32:16 +00:00
Paulus Schoutsen
f5c7d23b0f Merge remote-tracking branch 'origin/master' into dev 2019-12-18 22:18:35 +01:00
Paulus Schoutsen
82a5c23c9c Merge pull request #30056 from home-assistant/rc
0.103.1
2019-12-18 22:15:02 +01:00
Paulus Schoutsen
952b21facc Bumped version to 0.103.1 2019-12-18 21:24:39 +01:00
Aaron Bach
9f64656603 Bump simplisafe-python to 5.3.6 (#30055) 2019-12-18 21:23:57 +01:00
Andrew Onyshchuk
6d06cec0e0 Fix support for legacy Z-Wave thermostats (#29955)
This brings back support for Z-Wave thermostats
of SETPOINT_THERMOSTAT specific device class.
Such devices don't have COMMAND_CLASS_THERMOSTAT_MODE
and are now handled separately.
2019-12-18 21:19:59 +01:00
Chris Mandich
9836e78120 Fix loading flume integration (#29926)
* Fix https://github.com/home-assistant/home-assistant/issues/29853

* Run script.gen_requirements

* Update to store Token File in config directory

* Update to store Token File in config directory

* Update to store Token File in config directory
2019-12-18 21:18:49 +01:00
Justin Bassett
f1d22db009 Fix mobile app device identifiers (#29920)
Fix identifiers when updating device registration.
2019-12-18 21:18:49 +01:00
Anders Melchiorsen
24c87638e6 Support entity_id: all in lifx.set_state (#29919) 2019-12-18 21:18:48 +01:00
Wim Haanstra
36f7096f09 Fix failure in transform method (#30023)
* Fix failure in transform method

* Fix formatting issue
2019-12-18 13:18:14 -07:00
springstan
9b65d83e28 Fix setup error for logbook (#29908)
* Fix setup error by moving an import back into the setup function

* Revert c741664d4d

* Add homekit as after_dependency to logbook manifest.json
2019-12-18 21:18:10 +01:00
springstan
29e412a6c4 Fix setup for tank_utility component (#29902) 2019-12-18 21:17:26 +01:00
Aaron Bach
a466ae0279 Bump aioambient to 1.0.2 (#29850) 2019-12-18 21:17:25 +01:00
Paulus Schoutsen
628a148944 Install requirements of after_dependencies when loading integrations (#29491)
* Install requirements of after_dependencies when loading integrations

* Fix smartthings test
2019-12-18 21:17:24 +01:00
Alexei Chetroi
41bef4b919 Add timer reload service. (#30015) 2019-12-18 21:15:11 +01:00
Aaron Bach
0adb88156d Bump simplisafe-python to 5.3.6 (#30055) 2019-12-18 21:06:57 +01:00
omriasta
bdef54de0c Patch rachio (#30031)
* fix binary sensor offline/online

fixed self._handle_update on line 66 to produce args, kwargs.
Updated the binary sensor to check the correct index in the tuple.

* Fixed Standby switch

Set standby switch to poll in order to get status when homeassistant starts up.
Updated the index for the switch to get the status from the tuple.
2019-12-18 21:04:54 +01:00
Erik Kastelec
d16011b849 changed Venstar component temperature to half degree accuracy (#30034) 2019-12-18 08:47:01 -05:00
Paulus Schoutsen
9c7caaa142 Add option to ignore flows (#30008) 2019-12-18 07:41:01 +01:00
Greg
feb39c39a3 Update Envoy sensor to configure credentials and grab Inverter Date from updated API (#28837)
* Update manifest.json

Updated sensor to use the latest version of the API to be able to use the new features.

* Updated sensor to use new API features.  Configurable credentials and Inverter last reported date.

* EnvoyReader is passed to Envoy uses async update()

* Fixed pydocstyle warnings

* Fixed merge issue. Had extra variable.

* Added warning message when authentication for Inverter data fails

* Added continue after exception for loop

* Moved if statement outside of try/except

* Removed unneeded boolean attribute
2019-12-18 01:51:19 +01:00
HomeAssistant Azure
0135b988ff [ci skip] Translation update 2019-12-18 00:32:19 +00:00
Fabian Affolter
876195a8a8 Upgrade zeroconf to 0.24.1 (#30028) 2019-12-17 17:00:00 +01:00
Fabian Affolter
31cd0af47a Upgrade matrix-client to 0.3.2 (#30027) 2019-12-17 16:26:36 +01:00
Andre Richter
115aa2e49c Z-Wave: Fibaro FGR*-222: Add venetian blind support (#29701)
The Fibaro FGR-222/FGRM-2222 ZWave roller shutter devices have a proprietary
command class to support setting the tilt angle of venetian blinds (= type of
window cover). This PR adds the support to HA for this. This allows the user to
set the height of the blinds and the tilt angle separately.

Original patch by @ChristianKuehnel #24405.
2019-12-17 09:26:19 -05:00
Robert Van Gorkom
78e831b08e Make tplink light more responsive (#28652)
* Making tplink light more responsive.

* Adding light platform tests.

* Addressing PR feedback.

* Mocking the module, not the api.

* Using sync method for background update.
2019-12-17 02:24:50 +01:00
HomeAssistant Azure
ad8278c078 [ci skip] Translation update 2019-12-17 00:32:23 +00:00
Franck Nijhof
0439d6964c Fix persistent setup error notification content (#29995)
* Fix persistent setup error notification content

* Use documentation from manifest, enriched error messages

* Fix issue caught by mypy
2019-12-16 20:16:23 +01:00
Vladimír Záhradník
c16fae2c0b Fix modbus service description (#30005) 2019-12-16 20:07:46 +01:00
Paulus Schoutsen
58b5833d64 Convert Hue to use unique ID (#30000)
* Convert Hue to use unique ID

* Fix normalization

* Store/restore unique ID

* Fix tests
2019-12-16 19:45:09 +01:00
zewelor
575eb48feb Show current effect in yeelight device (#28975)
* Show current effect in yeelight device

* Use device_state_attributes instead of state_attributes

* Add early return in set effect

* Make single if elif chain

* Fix if elif

* Fix if elif
2019-12-16 16:23:05 +01:00
Paulus Schoutsen
d851cb6f9e Add unique ID to config entries (#29806)
* Add unique ID to config entries

* Unload existing entries with same unique ID if flow with unique ID is
finished

* Remove unused exception

* Fix typing

* silence pylint

* Fix tests

* Add unique ID to Hue

* Address typing comment

* Tweaks to comments

* lint
2019-12-16 12:27:43 +01:00
Franck Nijhof
87ca61ddd7 Add check-json to CI and Pre-commit (#29912)
* Add check-json to CI and Pre-commit

* Add ignore pre-commit hooks to gen_requirements_all
2019-12-16 11:06:16 +01:00
Franck Nijhof
d1e59b20c8 Bump pytest to 5.3.2 (#29990) 2019-12-16 10:59:32 +01:00
Franck Nijhof
dd0f0034f3 Bump shodan to 1.21.0 (#29991) 2019-12-16 10:57:42 +01:00
Emacee
be042f3d91 Update binary_sensor.py (#29977)
Change sensor type for central locking from safety into lock.
2019-12-16 09:42:48 +01:00
Louis-Dominique Dubeau
33cbb398ad Don't use the locals parameter on exec. (#29979)
Using the locals parameter makes it so that the code of a Python script runs as
if it were in the body of a ``class``. One effect of this is that functions
defined as part of a script cannot call one another directly.

Fixes: #24704, #13653
2019-12-16 09:39:20 +01:00
Paulus Schoutsen
b058742404 Fix condition typo (#29989) 2019-12-16 09:33:11 +01:00
Ryan
3f32490ae6 Fixed "condtion_type" to "condition_type" (#29984)
Fixed "condtion_type" to "condition_type"
2019-12-16 08:41:32 +01:00
Paulus Schoutsen
9e51a18845 Make hassfest import detection better (#29932)
* Make hassfest import detection better

* Fix tests
2019-12-16 08:22:20 +01:00
Jeff Irion
8fe17c0933 Remove 'SUPPORT_PLAY_MEDIA' from Volumio (#29969) 2019-12-16 08:21:29 +01:00
Kevin Eifinger
fc01da8933 Migrate to api_key (#29966) 2019-12-16 08:20:41 +01:00
Joakim Plate
039cc98278 Support case of unknown/unavailable temperature/humidity (#29959)
* Support case of unknown/unavailable temperature/humidity

State is never None, just a string.

* Lint suggestion
2019-12-16 08:04:59 +01:00
Ville Skyttä
445fd15f76 Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
Andrew Onyshchuk
bfafa77016 Fix support for legacy Z-Wave thermostats (#29955)
This brings back support for Z-Wave thermostats
of SETPOINT_THERMOSTAT specific device class.
Such devices don't have COMMAND_CLASS_THERMOSTAT_MODE
and are now handled separately.
2019-12-15 20:02:18 -05:00
HomeAssistant Azure
95a6a7502a [ci skip] Translation update 2019-12-16 00:32:25 +00:00
Ville Skyttä
d6f317c0a9 Remove deprecated rflink configs (#29972)
They've been deprecated and automatically replaced since July 2017
already, fe6a4b8ae5
2019-12-15 22:57:23 +02:00
Aaron Godfrey
012c09ce00 Fix example value for Todoist service (#29953) 2019-12-15 18:47:11 +01:00
Fabian Affolter
9c0799eb0a Upgrade keyring to 20.0.0 and keyrings.alt to 3.4.0 (#29960) 2019-12-15 17:41:56 +01:00
Chris Caron
09f3362cc6 isort fix on test_media_player (#29965) 2019-12-15 16:07:57 +01:00
Joakim Plate
84a7115435 Start of using hass state for tests rather than direct object (#29377) 2019-12-15 13:14:50 +01:00
Jeff Irion
8a5bce81c8 Bump adb-shell to 0.1.0 and androidtv to 0.0.36 (#29938)
* Bump adb-shell to 0.1.0 and androidtv to 0.0.36

* Add test for setting up two devices

* Add test_setup_same_device_twice

* Fix test_setup_two_devices

* Fix coverage

* Coverage

* Fix flaky 'test_setup_two_devices'

* Another stab at coverage

* Rename 'address' back to 'host'
2019-12-15 11:31:59 +01:00
Tyler
a28545b69b bump venstar 0.12 (#29954)
* bump venstar 0.12

* Update manifest.json
2019-12-15 08:16:20 +01:00
Chris Mandich
6dd496deb4 Fix loading flume integration (#29926)
* Fix https://github.com/home-assistant/home-assistant/issues/29853

* Run script.gen_requirements

* Update to store Token File in config directory

* Update to store Token File in config directory

* Update to store Token File in config directory
2019-12-15 03:45:29 +01:00
Quentame
820780996a Add battery sensor to iCloud (#29818)
* Add battery sensor to iCloud

* Update .coveragerc

* Review: @balloob & @MartinHjelmare

* Review: use f string
2019-12-14 23:06:00 +01:00
Raman Gupta
003658a3f0 Update androidtv version to improve source selection support (#29579)
* Change androidtv module versions and add support for select_source for all device types

* Update and add tests

* Update requirements_test_all.txt

* Update requirements_all.txt

* Consolidate tests

* Fix typo

* Remove 'self._device'
2019-12-14 16:54:41 +01:00
ochlocracy
3db7e8f5e9 Implement Alexa.EventDetectionSensor for Alexa (#28276)
* Implement Alexa.EventDetectionSensor Interface

* Removed references to PR #28218 not yet merged into dev.

* Update tests to include Alexa Interface

* Guard for `unknown` and `unavailible` states.

* Fixed Unnecessary "elif" after "return"
2019-12-14 08:47:45 +01:00
DjMoren
3c86825e25 Update Tahoma component's tahoma-api requirement's version (#29918) 2019-12-14 08:00:19 +01:00
Anders Melchiorsen
2cb92c66ef Support entity_id: all in lifx.set_state (#29919) 2019-12-14 07:36:33 +01:00
Justin Bassett
114390c95e Fix mobile app device identifiers (#29920)
Fix identifiers when updating device registration.
2019-12-14 07:36:12 +01:00
HomeAssistant Azure
8f5a00a98b [ci skip] Translation update 2019-12-14 00:32:08 +00:00
Paulus Schoutsen
a470a72ec5 Add integration platform helper (#29914) 2019-12-13 15:38:41 +01:00
springstan
6b3260357f Fix setup error for logbook (#29908)
* Fix setup error by moving an import back into the setup function

* Revert c741664d4d

* Add homekit as after_dependency to logbook manifest.json
2019-12-13 14:08:30 +01:00
Franck Nijhof
c8cc8acc81 Fixes invalid JSON syntax in devcontainer (#29911) 2019-12-13 12:41:56 +01:00
Franck Nijhof
b91a8f510c Fix incorrect file format yr test fixure (#29910) 2019-12-13 12:29:24 +01:00
Fabian Affolter
1301a4fcc6 Upgrade Sphinx to 2.2.2 and sphinx-autodoc-typehintsi to 1.10.3 (#29906) 2019-12-13 11:15:26 +01:00
Ville Skyttä
4d57de335c Make Python deprecation notice easier to maintain (#29900) 2019-12-13 10:39:57 +01:00
springstan
9fbb6d981a Fix setup for tank_utility component (#29902) 2019-12-13 10:31:53 +01:00
Bas Nijholt
c59bf0bff6 genericpath is an internal Python module and shouldn't be imported according to core Python devs. (see [this](https://bugs.python.org/msg358136) comment) (#29903)
For a reason unknown to me, @exxamalte introduced this in https://github.com/home-assistant/home-assistant/pull/14342.

The problem is that Linux and macOS implement `os.path` differently, one imports from [`ntpath.py`](https://github.com/python/cpython/blob/master/Lib/ntpath.py) and the other one from [`posixpath.py`](https://github.com/python/cpython/blob/master/Lib/posixpath.py), and both these files use `genericpath.py`.

Somehow, `isort` on macOS will see `genericpath` as a third party library and sort it accordingly.
Other Unix-based OSes will correctly treat `genericpath` as an internal library.

This problem led to a sorting sequence in the following commits:

- ca0fad2cbb
- f5d4878992
- 7d68e88d31
- 1fee400dcd

This supersedes https://github.com/home-assistant/home-assistant/pull/29893.
2019-12-13 09:47:09 +01:00
HomeAssistant Azure
5b32ee566c [ci skip] Translation update 2019-12-13 00:32:17 +00:00
Sebastian Muszynski
c051ae0bfb Bump python-miio version to 0.4.8 (#29890) 2019-12-12 22:39:11 +01:00
Alexei Chetroi
7685c76b9b Defer log formatting. (#29888) 2019-12-12 14:16:02 -05:00
randellhodges
9d662d6114 ISY994 Node Filter Update (#28155)
* Adding filters for keypad dimmers and smoke sensor

* ran black --fast as suggested

* Adding filters for keypad dimmers and smoke sensor

* ran black --fast as suggested
2019-12-12 19:47:38 +01:00
John Luetke
7c42f4b45b (Re)Add support for multiple Pi-Holes (#27569)
* Update configuration schema to support multiple Pi-holes

* Construct sensors for each configured Pi-hole

* Ensure each Pi-hole has a unique name

* Update services to handle multiple Pi-holes

* Update tests for multiple configurations

* Refactor tests to support service testing

* Fix else-raise per pyliunt

* Per code review, add all entities in a single call

* Per code review, add the default name as default.

* Per code review, add cv.ensure_list to prevent breaking change

* Per code review, move name validation to schema

* Remove default name

* Per code review, validate api_key in schema definition

* Per code review, rename variables

* Per code review, use list comprehension

* Ensure unique slug names in config validation

* Per code review, refactor to CoroutineMock

* Fix adding sensor entities

* Per code review, refactor mock function creation

* Per code review, refactor mock function return values
2019-12-12 19:43:49 +01:00
Alexei Chetroi
327b5c3c94 Log ZHA bind/unbind operations status (#29842)
* Log bind/unbind operation result.
* Use ZDO consts.
* Use device logger for bind/unbind results.
* Lint.
2019-12-12 12:16:51 -05:00
Alexei Chetroi
1fee400dcd Revert "Sort import for tests/components/feedreader/test_init.… (#29882)
This reverts commit 7d68e88d31.
2019-12-12 17:10:43 +01:00
Ville Skyttä
130571c478 Remove no longer needed auth.util, use secrets instead (#29861) 2019-12-12 16:46:33 +01:00
Bas Nijholt
c58c10ab7c Add isort to CI and pre-commit (#29739)
* add isort to CI and pre-commit

* disable wrong-import-order in pylintrc

* ✏️ Tweak


Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2019-12-12 15:58:47 +01:00
Bas Nijholt
7d68e88d31 Sort import for tests/components/feedreader/test_init.py (#29878)
This unblocks https://github.com/home-assistant/home-assistant/pull/29739
2019-12-12 15:56:32 +01:00
Franck Nijhof
4b33578757 Fix package import sort on dwd_weather_warnings (#29874) 2019-12-12 14:45:00 +01:00
Aaron Bach
914b49566a Bump aioambient to 1.0.2 (#29850) 2019-12-12 10:24:57 +01:00
Ville Skyttä
7931a0b675 Use Bionic's ffmpeg on Travis, jonathonf/ffmpeg-4 is N/A at the moment (#29860) 2019-12-12 07:15:32 +01:00
Paulus Schoutsen
b9eb831d29 Revert Tahoma removal (#29840)
* Revert "Remove Tahoma component #29744 (#29745)"

This reverts commit df74272ba6.

* Revert "Cleanup removed component (#29788)"

This reverts commit 3a28361beb.
2019-12-12 06:37:55 +01:00
HomeAssistant Azure
7bd98d1082 [ci skip] Translation update 2019-12-12 00:32:15 +00:00
foxy82
a08e3d7352 Update rfxtrx component so it can be run as a custom_component (#29638)
* Updating rfxtrx component so it can be run as a custom_component

* Fix pylint errors

* Fix pylint errors

* Fix pylint error on dict.

* isort
2019-12-11 15:58:49 +01:00
Paulus Schoutsen
87164e2129 Bumped version to 0.103.0 2019-12-11 15:55:23 +01:00
Pascal Vizeli
ce041f131e Remove uvloop event policy (#29835)
* Remove uvloop event policy

* Clean tests

* Fix lint

* Cleanup statment
2019-12-11 15:55:09 +01:00
Robert Svensson
2fb36d3dea UniFi - Handle disabled switches (#29824) 2019-12-11 15:55:09 +01:00
Robert Svensson
4dd1c51186 UniFi - honor detection time when UniFi wire bug happens (#29820) 2019-12-11 15:55:08 +01:00
Robert Svensson
4c9c22bc3a Add more logging to help future debug situations (#29800) 2019-12-11 15:55:07 +01:00
springstan
0cb9d0746a Add user-agent to fix dwd_weather_warnings setup error (#29596)
* Added dummy user-agent to http request to fix setup error

* Replace dummy user-agent with the user-agent of the global home assistant session

* Adjust comment and rename user-agent constant
2019-12-11 15:52:10 +01:00
Robert Svensson
856dd63680 Add more logging to help future debug situations (#29800) 2019-12-11 15:45:21 +01:00
springstan
7b8dff2aa9 Add user-agent to fix dwd_weather_warnings setup error (#29596)
* Added dummy user-agent to http request to fix setup error

* Replace dummy user-agent with the user-agent of the global home assistant session

* Adjust comment and rename user-agent constant
2019-12-11 15:43:54 +01:00
Pascal Vizeli
0c796fc3c3 Remove uvloop event policy (#29835)
* Remove uvloop event policy

* Clean tests

* Fix lint

* Cleanup statment
2019-12-11 13:28:50 +01:00
Tiit Rätsep
01ef44fd68 Fix Soma integration connection issue (#27692)
* Added a check for Connect actually returning something before telling the user the setup succeeded

* Added handling for KeyError in case API returns empty response, formatting

* Trying to please the linter
2019-12-11 13:27:28 +01:00
Bas Nijholt
004af97699 Sort imports for requirements.py and its test using isort (#29836)
Unblocks https://github.com/home-assistant/home-assistant/pull/29739
2019-12-11 12:12:06 +01:00
HomeAssistant Azure
c2357d843b [ci skip] Translation update 2019-12-11 00:32:21 +00:00
Ville Skyttä
a12cf7211d Upgrade pydocstyle to 5.0.1 (#29830)
* Upgrade pydocstyle to 5.0.1

http://www.pydocstyle.org/en/5.0.1/release_notes.html

* Pydocstyle and other docstring fixes
2019-12-10 23:25:06 +01:00
Alexei Chetroi
3ed1738f76 Fix input_text initialization with empty config. (#29829) 2019-12-10 23:24:33 +01:00
Robert Van Gorkom
66d2f5f61d Fix withings wrong sleep state entry (#29651)
* Fixing issue where wrong sleep state entry was being used. closes #28370,#29397

* Fixing formatting.

* Sorting imports to get black checks to pass.

* Using lambda for getting latest sleep serie.
2019-12-10 21:54:50 +01:00
Ville Skyttä
899f6cf1a3 Re-authorize Huawei LTE on login required error (#29597)
* Re-authorize Huawei LTE on login required error

Closes https://github.com/home-assistant/home-assistant/issues/29531

* Eliminate one indented "else" block

* Convert get_data from inline to instance method

* Use .get instead of [] for checking subscriptions for clarity
2019-12-10 22:41:29 +02:00
Robert Svensson
99328bd4c1 UniFi - honor detection time when UniFi wire bug happens (#29820) 2019-12-10 20:05:18 +01:00
Robert Svensson
47e5142ddb UniFi - Handle disabled switches (#29824) 2019-12-10 20:04:48 +01:00
proferabg
e28fd16c84 Fix tank utility token (#29801)
* Tank Utility Token Fix

Fix 400 Bad Request on Invalid Token

* Format Fix for Pull Request #29801

* Pylint Annotation Fix for Pull Request #29801
2019-12-10 19:25:21 +01:00
Paulus Schoutsen
302d5d66ab Bumped version to 0.103.0b1 2019-12-10 13:05:22 +01:00
Brett T. Warden
807badea93 Bump Roku to 4.0.0 (#29809) 2019-12-10 13:05:17 +01:00
Bram Kragten
d53c6be50a Updated frontend to 20191204.1 (#29787) 2019-12-10 13:05:16 +01:00
Pascal Vizeli
19920e48ba HomeAssistant-pyozw 0.1.7 (#29743) 2019-12-10 13:04:07 +01:00
Nikolay Vasilchuk
70fe5d3238 Fix unit_of_measurement for Starline temperature sensors (#29740) 2019-12-10 13:04:06 +01:00
Robert Svensson
f7015703bb Only update disabled_by when enabled default and entity enabled states differ (#29643) 2019-12-10 13:04:05 +01:00
Santobert
90de5652b9 Change source of device_info (#29570) 2019-12-10 13:04:04 +01:00
Ville Skyttä
2d6599fdd2 Huawei LTE device tracker fixes (#29551)
* Include MAC address in device state attributes for absent devices too

* Use MAC address as default name whether device is connected or not

* Fix initialization of known entities

Closes https://github.com/home-assistant/home-assistant/issues/29354
2019-12-10 13:04:03 +01:00
Malte Franken
d9280330a6 Bump georss_generic_client to 0.3 (#29532)
* bump version of georss_generic_client library

* updated requirements
2019-12-10 13:04:02 +01:00
tetienne
a4fc4bb281 Increase somfy SCAN_INTERVAL (#29524)
- There was too many errors 504
2019-12-10 13:04:01 +01:00
David K
22e7ece315 Limit available heat/cool modes for HomeKit thermostats (#28586)
* Limit available heat/cool modes for HomeKit thermostats.
The Home app only shows appropriate modes (heat/cool/auto) for the device. Depending on the climate integration, disabling the auto start might be needed.

* Include improved mapping for HVAC modes in tests
2019-12-10 13:04:01 +01:00
Robert Svensson
db0baab692 Only update disabled_by when enabled default and entity enabled states differ (#29643) 2019-12-10 11:02:26 +01:00
Franck Nijhof
f5d4878992 Fix isort on a small set of misc files (#29803) 2019-12-10 09:25:42 +01:00
Paulus Schoutsen
27244e29c4 Install discovery requirements if used (#29795)
* Install discovery requirements if used

* Update loader.py

* Fix types
2019-12-10 09:24:49 +01:00
Franck Nijhof
0ed6a434f8 Adjusts repository README (#29805) 2019-12-10 09:22:37 +01:00
Ian
4f1f4a1b4f Nextbus: Sort results for upcoming times (#29811)
Sort upcoming times across all direction's for a particular route and
stop.
2019-12-10 09:22:13 +01:00
Brett T. Warden
9049e090f9 Bump Roku to 4.0.0 (#29809) 2019-12-10 09:20:52 +01:00
Alexei Chetroi
315d0064fe Fix zha circular import (#29802)
* Refactor zha.core.helpers.
* Make zha isort-able.
* Const import reorg.
* Keep DATA_ZHA config key on entry unload.
* Cleanup ZHA config flow.
* isort.
* Add test.
2019-12-10 00:00:04 -05:00
HomeAssistant Azure
12f273eb11 [ci skip] Translation update 2019-12-10 00:32:16 +00:00
Franck Nijhof
38a6fffecb Add JSON files validation to hassfest (#29799) 2019-12-09 22:43:38 +01:00
Alexei Chetroi
454cc684e4 Add input_select reload service. (#29647)
* Add input_select reload service.

* Add test.
2019-12-09 21:15:32 +01:00
Alexei Chetroi
8c1cdc0cf7 Add input_text reload service. (#29644)
* Add input_text reload service.

* Add test.
2019-12-09 21:15:24 +01:00
David F. Mulcahey
1222aa8c56 Add ZHA group API (#29641)
* add skeleton to retrieve zigbee groups
* get single group
* add a group
* return group members with group
* add comment
* fix group members
* add function to add device to group
* add group members
* add remove from group method
* add api to remove members from group
* add remove groups method
* clean up group add and remove
* fix remove group
* fix remove groups
* add api to get only groupable devices
* change var init
* add tests
* address review comment
2019-12-09 14:50:04 -05:00
Bas Nijholt
7f948594eb Sort imports according to PEP8 for google_assistant (#29633)
* sort imports and fix flake8 issue for google

* add isort:skip to EVENT_SYNC_RECEIVED
2019-12-09 20:00:14 +01:00
Franck Nijhof
bc3b7ed06b Fix build, invalid JSON file in icloud component (#29798) 2019-12-09 19:18:41 +01:00
Bas Nijholt
e37443f10c Sort imports according to PEP8 for components starting with "U" (#29779)
* use isort to sort imports for components starting with 'u'

* add 'pylint: disable=import-error' to the right place
2019-12-09 19:07:32 +01:00
Bas Nijholt
80c344d3a8 Sort imports according to PEP8 for huawei_lte (#29664) 2019-12-09 19:06:25 +01:00
Bas Nijholt
897522a82d Fix 'pytest.register_assert_rewrite("tests.common")' warning (#29797)
see fea243c035 (r355533273)
2019-12-09 19:04:38 +01:00
Bas Nijholt
080c702d4f Sort imports according to PEP8 for components starting with "C" (#29763) 2019-12-09 18:56:21 +01:00
Bas Nijholt
6cc75fc6f3 Sort imports according to PEP8 for components starting with "Z" (#29784)
* use isort to sort imports for components starting with 'z'

* add skip to end of zha/core/channels/__init__.py

* put 'pylint: disable=import-error' at the right place

* remove the import of config_flow in zha/__init__.py

According to @balloob it is no longer needed.

* revert previous commit

* isort:skip homeassistant/components/zha/__init__.py completely
2019-12-09 18:54:54 +01:00
springstan
6b6570e7ca Move imports to top for ness_alarm (#29518)
* Move imports to top for ness_alarm

* Added patch for the ArminState in alarm_control_panel.py
2019-12-09 18:46:56 +01:00
Bas Nijholt
08f128e9c7 Sort imports according to PEP8 for components starting with "D" (#29764)
* use isort to sort imports for components starting with 'd'

* fix isort mistake
2019-12-09 17:42:00 +01:00
Quentame
c804f8f961 Add config flow to iCloud (#28968)
* iCloud: setup ConfigFlow and prepare for more platforms

- add config flow + tests
- fix existing services
- add play_sound & display_message services
- document services
- can use devices with the same name
- prepare to add sensor platform

* Review : not copy account conf

* Review: Safer test patch

* Review: remove reset_account

* Review: Use executor_job while IO

* Review: Use executor_job while IO 2

* Review: use hass.helpers.storage.Store()

* Review: no IO in tests

* Remove reset from services.yaml

* Review: remove authenticate.return_value = Mock()

* Review: do not initialize the api with the mocked service

* isort

* Review: @MartinHjelmare Test config flow with all steps

* Review: Fix failed tests names

* Codevov: Add one missing test
2019-12-09 17:19:42 +01:00
Bas Nijholt
f60125b5c9 Sort imports according to PEP8 for 'tests' (#29791) 2019-12-09 16:52:24 +01:00
Bas Nijholt
67c56c860d Sort imports according to PEP8 for 'homeassistant' folder (#29789)
Components are already done
2019-12-09 16:42:10 +01:00
Bas Nijholt
29ec17d50d use isort to sort imports for "setup.py" (#29792) 2019-12-09 16:30:16 +01:00
Bas Nijholt
5cb6d1b21f Sort imports according to PEP8 for 'script' folder (#29790) 2019-12-09 16:24:03 +01:00
Pascal Vizeli
3a28361beb Cleanup removed component (#29788) 2019-12-09 16:21:12 +01:00
springstan
72f336a2dd Move imports to top for homekit (#29560)
* Move imports to top for homekit

* Moved back a couple imports, added annotation to disable import-outside-toplevel

* Fix all tests in test_homekit.py
2019-12-09 16:10:02 +01:00
Bram Kragten
bb3fa6990a Updated frontend to 20191204.1 (#29787) 2019-12-09 15:10:03 +01:00
Bas Nijholt
96a6a44411 Sort imports according to PEP8 for components starting with "X" (#29782) 2019-12-09 14:58:51 +01:00
Bas Nijholt
9bcd4653e0 Sort imports according to PEP8 for components starting with "Y" (#29783) 2019-12-09 14:57:42 +01:00
Bas Nijholt
4035fda659 Sort imports according to PEP8 for components starting with "Q" (#29785) 2019-12-09 14:56:20 +01:00
Bas Nijholt
fbf1836997 Sort imports according to PEP8 for components starting with "W" (#29781) 2019-12-09 14:47:53 +01:00
Bas Nijholt
1ab1808307 Sort imports according to PEP8 for components starting with "N" (#29773) 2019-12-09 14:46:24 +01:00
Bas Nijholt
ee1cc3b3dd Sort imports according to PEP8 for components starting with "V" (#29780) 2019-12-09 14:42:53 +01:00
Bas Nijholt
de915e1bf0 Sort imports according to PEP8 for components starting with "T" (#29778) 2019-12-09 14:41:48 +01:00
Bas Nijholt
485761bbaf Sort imports according to PEP8 for components starting with "R" (#29776) 2019-12-09 14:39:51 +01:00
Bas Nijholt
23b92b2a56 Sort imports according to PEP8 for components starting with "S" (#29777) 2019-12-09 14:38:01 +01:00
Bas Nijholt
21816eeed4 Sort imports according to PEP8 for components starting with "P" (#29775) 2019-12-09 14:29:39 +01:00
Bas Nijholt
5cdaff5405 Sort imports according to PEP8 for components starting with "O" (#29774) 2019-12-09 14:26:53 +01:00
Bas Nijholt
c49e423c78 Sort imports according to PEP8 for components starting with "K" (#29770) 2019-12-09 14:25:18 +01:00
Bas Nijholt
1dea0c9e34 Sort imports according to PEP8 for components starting with "L" (#29771) 2019-12-09 14:22:30 +01:00
Bas Nijholt
14779ce3d0 Sort imports according to PEP8 for components starting with "I" (#29769) 2019-12-09 14:21:24 +01:00
Bas Nijholt
710680d604 use isort to sort imports for components starting with 'm' (#29772) 2019-12-09 18:50:40 +05:30
Bas Nijholt
8b39957c56 Sort imports according to PEP8 for components starting with "H" (#29768) 2019-12-09 14:19:48 +01:00
Bas Nijholt
d58e6e924a Sort imports according to PEP8 for components starting with "G" (#29767) 2019-12-09 14:17:36 +01:00
Bas Nijholt
ca0fad2cbb Sort imports according to PEP8 for components starting with "F" (#29766) 2019-12-09 14:14:40 +01:00
Bas Nijholt
f9e06ca2fd Sort imports according to PEP8 for components starting with "E" (#29765) 2019-12-09 14:10:04 +01:00
Bas Nijholt
96961b9bcc Sort imports according to PEP8 for components starting with "A" (#29761) 2019-12-09 13:57:24 +01:00
Bas Nijholt
73de69896b Sort imports according to PEP8 for components starting with "B" (#29762) 2019-12-09 13:52:18 +01:00
tetienne
df74272ba6 Remove Tahoma component #29744 (#29745) 2019-12-09 13:35:14 +01:00
Pascal Vizeli
4bb670cdf7 HomeAssistant-pyozw 0.1.7 (#29743) 2019-12-09 13:33:28 +01:00
Bas Nijholt
9b27e5b86c Sort imports according to PEP8 for vultr (#29760) 2019-12-09 13:33:08 +01:00
Bas Nijholt
c7cf1b820c Sort imports according to PEP8 for hue (#29757) 2019-12-09 13:25:04 +01:00
Bas Nijholt
abfcc18004 Sort imports according to PEP8 for mobile_app (#29758) 2019-12-09 13:22:42 +01:00
Bas Nijholt
53012a548b Sort imports according to PEP8 for sleepiq (#29759) 2019-12-09 13:21:45 +01:00
Bas Nijholt
60e1789557 Sort imports according to PEP8 for emulated_roku (#29756) 2019-12-09 13:20:51 +01:00
Bas Nijholt
991834f337 Sort imports according to PEP8 for shopping_list (#29751) 2019-12-09 13:14:49 +01:00
Bas Nijholt
d1b38c0c79 Sort imports according to PEP8 for plaato (#29747) 2019-12-09 13:14:08 +01:00
Bas Nijholt
f281069c8c Sort imports according to PEP8 for vicare (#29754) 2019-12-09 13:13:33 +01:00
Bas Nijholt
76debf4c88 Sort imports according to PEP8 for scene (#29750) 2019-12-09 13:12:43 +01:00
Bas Nijholt
127d84edd1 Sort imports according to PEP8 for solarlog (#29752) 2019-12-09 13:11:37 +01:00
Bas Nijholt
3f469eac28 Sort imports according to PEP8 for yeelight (#29755) 2019-12-09 13:10:24 +01:00
Bas Nijholt
f81e608cc1 Sort imports according to PEP8 for remote (#29749) 2019-12-09 13:09:16 +01:00
Bas Nijholt
c4a6f265e8 Sort imports according to PEP8 for versasense (#29753) 2019-12-09 13:08:05 +01:00
Bas Nijholt
e9b428781b Sort imports according to PEP8 for pushbullet (#29748) 2019-12-09 13:06:25 +01:00
Bas Nijholt
3df40c7a16 Sort imports according to PEP8 for websocket_api (#29657) 2019-12-09 12:30:23 +01:00
Bas Nijholt
16a7408f23 Sort imports according to PEP8 for zwave (#29658) 2019-12-09 12:29:12 +01:00
Bas Nijholt
41cd678f00 Sort imports according to PEP8 for deconz (#29659) 2019-12-09 12:25:35 +01:00
Bas Nijholt
2da3848f89 Sort imports according to PEP8 for unifi (#29656) 2019-12-09 12:19:33 +01:00
Bas Nijholt
3b0f29fe95 sort imports according to PEP8 for lock (#29663) 2019-12-09 12:19:11 +01:00
Bas Nijholt
eb47c2b148 Sort imports according to PEP8 for media_player (#29665) 2019-12-09 12:17:41 +01:00
Bas Nijholt
01d651c67d Sort imports according to PEP8 for device_tracker (#29666) 2019-12-09 12:14:38 +01:00
Bas Nijholt
27bd6ca1db Sort imports according to PEP8 for emulated_hue (#29667) 2019-12-09 12:12:41 +01:00
Bas Nijholt
05daa817f5 Sort imports according to PEP8 for owntracks (#29672) 2019-12-09 12:11:27 +01:00
Bas Nijholt
d62993c5af Sort imports according to PEP8 for pilight (#29673) 2019-12-09 12:10:38 +01:00
Bas Nijholt
04225ba802 Sort imports according to PEP8 for rest (#29674) 2019-12-09 12:09:49 +01:00
Bas Nijholt
186799794d Sort imports according to PEP8 for nest (#29670) 2019-12-09 12:08:51 +01:00
Bas Nijholt
ad58e607df Sort imports according to PEP8 for somfy (#29675) 2019-12-09 12:07:10 +01:00
Bas Nijholt
69b113c539 Sort imports according to PEP8 for dyson (#29678) 2019-12-09 12:04:39 +01:00
Bas Nijholt
3d10bb3647 Sort imports according to PEP8 for http (#29679) 2019-12-09 11:59:38 +01:00
Bas Nijholt
c7d61279bd Sort imports according to PEP8 for ring (#29680) 2019-12-09 11:58:40 +01:00
Bas Nijholt
df85a50f3b Sort imports according to PEP8 for sensor (#29683) 2019-12-09 11:57:49 +01:00
Bas Nijholt
9cf3ff319e Sort imports according to PEP8 for iaqualink (#29681) 2019-12-09 11:56:51 +01:00
Bas Nijholt
b54c8641b4 Sort imports according to PEP8 for vesync (#29684) 2019-12-09 11:56:02 +01:00
Bas Nijholt
e4e4f78eb0 Sort imports according to PEP8 for utility_meter (#29710) 2019-12-09 11:54:56 +01:00
Bas Nijholt
b6cd6135c2 Sort imports according to PEP8 for wemo (#29685) 2019-12-09 11:53:51 +01:00
Bas Nijholt
776d8cfdc9 Sort imports according to PEP8 for specific_devices (#29687) 2019-12-09 11:51:36 +01:00
Bas Nijholt
c54135486e use isort to sort imports according to PEP8 for netatmo (#29682) 2019-12-09 11:50:59 +01:00
Bas Nijholt
4c5c34919d Sort imports according to PEP8 for camera (#29691) 2019-12-09 11:50:48 +01:00
Bas Nijholt
0b4ca9ecac Sort imports according to PEP8 for ambiclimate (#29689) 2019-12-09 11:49:35 +01:00
Bas Nijholt
bfa58f671a use isort to sort imports according to PEP8 for broadlink (#29690) 2019-12-09 11:48:52 +01:00
Bas Nijholt
9c1236b6de Sort imports according to PEP8 for ffmpeg (#29693) 2019-12-09 11:48:22 +01:00
Bas Nijholt
38657c0055 Sort imports according to PEP8 for counter (#29692) 2019-12-09 11:47:35 +01:00
Bas Nijholt
2261bb60e0 Sort imports according to PEP8 for geofency (#29695) 2019-12-09 11:46:49 +01:00
Bas Nijholt
2511f5edb4 Sort imports according to PEP8 for ifttt (#29696) 2019-12-09 11:46:08 +01:00
Bas Nijholt
fa6b75f2c1 Sort imports according to PEP8 for file (#29694) 2019-12-09 11:45:11 +01:00
Bas Nijholt
a78fe25871 Sort imports according to PEP8 for locative (#29698) 2019-12-09 11:43:46 +01:00
Bas Nijholt
642655b6d7 Sort imports according to PEP8 for met (#29699) 2019-12-09 11:43:00 +01:00
Bas Nijholt
c7b2c09a61 Sort imports according to PEP8 for xiaomi_miio (#29677) 2019-12-09 11:42:18 +01:00
Bas Nijholt
0e71c29e00 Sort imports according to PEP8 for opentherm_gw (#29671) 2019-12-09 11:34:06 +01:00
Bas Nijholt
0fbb450838 Sort imports according to PEP8 for jewish_calendar (#29697)
* use isort to sort imports according to PEP8 for jewish_calendar

* fix order
somehow isort did the wrong thing
2019-12-09 11:30:31 +01:00
springstan
202522fbca Move imports to top for nsw_fuel_station (#29538)
* Move imports to top for nsw_fuel_station

* Correct patch path in test_sensor.py

* Fix tests by removing the unused argument mock_nsw_fuel
2019-12-09 11:29:36 +01:00
Bas Nijholt
425a1814d9 Sort imports according to PEP8 for geonetnz_quakes (#29668) 2019-12-09 11:28:07 +01:00
Bas Nijholt
790881fa7b Sort imports according to PEP8 for almond (#29688) 2019-12-09 11:27:16 +01:00
Bas Nijholt
69f790f6cc Sort imports according to PEP8 for arduino (#29702) 2019-12-09 11:26:03 +01:00
Bas Nijholt
852996700f Sort imports according to PEP8 for arest (#29703) 2019-12-09 11:25:29 +01:00
Bas Nijholt
2cd55bbb87 Sort imports according to PEP8 for device_automation (#29707) 2019-12-09 11:24:49 +01:00
Bas Nijholt
ea39d5b428 Sort imports according to PEP8 for aws (#29704) 2019-12-09 11:23:21 +01:00
Bas Nijholt
f9e9a5e4cb Sort imports according to PEP8 for darksky (#29706) 2019-12-09 11:22:04 +01:00
Bas Nijholt
9228ed7c40 Sort imports according to PEP8 for verisure (#29711) 2019-12-09 11:21:16 +01:00
Bas Nijholt
6a11e6aa72 Sort imports according to PEP8 for soma (#29709) 2019-12-09 11:19:23 +01:00
Bas Nijholt
ebb2722d03 Sort imports according to PEP8 for gpslogger (#29717) 2019-12-09 11:15:02 +01:00
Bas Nijholt
c5316dbc39 Sort imports according to PEP8 for iqvia (#29720) 2019-12-09 11:14:08 +01:00
Bas Nijholt
c3d7ab6a7f Sort imports according to PEP8 for netgear_lte (#29725) 2019-12-09 11:13:37 +01:00
Bas Nijholt
7128396f1a Sort imports according to PEP8 for minio (#29723) 2019-12-09 11:08:29 +01:00
Bas Nijholt
6a67532a2d Sort imports according to PEP8 for linky (#29722) 2019-12-09 11:07:50 +01:00
Bas Nijholt
cbf59fb33d Sort imports according to PEP8 for input_text (#29719) 2019-12-09 11:06:05 +01:00
Bas Nijholt
9df71ecae2 Sort imports according to PEP8 for neato (#29724) 2019-12-09 11:05:22 +01:00
Nikolay Vasilchuk
791dc5809f Fix unit_of_measurement for Starline temperature sensors (#29740) 2019-12-09 10:56:57 +01:00
Santobert
c399fe2837 Change source of device_info (#29570) 2019-12-09 10:46:25 +01:00
Bas Nijholt
d0c7db548f use isort to sort imports according to PEP8 for group (#29713) 2019-12-09 09:39:26 +01:00
Bas Nijholt
1790036767 use isort to sort imports according to PEP8 for zone (#29712) 2019-12-09 09:38:38 +01:00
Bas Nijholt
2abc9005cc use isort to sort imports according to PEP8 for homeassistant (#29718) 2019-12-09 09:38:24 +01:00
Bas Nijholt
236a21c76e Sort imports according to PEP8 for pi_hole (#29726) 2019-12-09 09:38:14 +01:00
Bruno Filipe
942f654d92 Proactively report Alexa Endpoint Health properties (#29736) 2019-12-09 09:37:15 +01:00
Bas Nijholt
8c1a8b502d Sort imports according to PEP8 for velbus (#29676) 2019-12-09 09:36:42 +01:00
gjbadros
6996ad3541 Protect Doorbird platform from failing when individual doorbird fails (#29374)
* Wrap connection attempt by try/except block so an individual downed doorbird does not fail the whole platform

* Fixed lint warning

* Disable too-broad-exception pylint warning since the whole point of this is to catch all exceptions and log them while letting processing continue; I don't disable a lint warning lightly, but this is the entire intent of this PR.

* Fixed name of pylint warning to broad-except

* Use _LOGGER.exception to get the stack trace too, per PEP8 recommendation for a bare Exception being caught.

* per @balloob, switch to just catching OSError on a narrow block; I'm not sure this protects all problems with Doorbird device startup, but it protects against the primary one I experience.
2019-12-09 09:14:55 +01:00
HomeAssistant Azure
8dea7f0f98 [ci skip] Translation update 2019-12-09 00:32:08 +00:00
Bernhard B
d451e54e34 Add Signal Messenger integration (#28537)
* added signalmessenger integration

* allows to send a message (with an attachment) to one or more
  recipients

* added signalmessenger documentation to manifest file

* remove debug logging from signalmessenger integration

* add signalmessenger to .coveragerc

* fixed typo in signalmessenger manifes

* moved service specific code to own pypi library

* updated pysignalclirestapi dependeny in manifest.json

* added pysignalclirestapi requirement for signalmessenger component

* fixed typo in codeowners

* reworked signalmessenger integration based on code review input

* updated requirements for signalmessenger

* small code improvements in signalmessenger integration

* no need to use the get() method to access dict parameters that are
required

* small changes in signalmessenger integration

* re-ordered import statements
* removed empty "requirements" list (not needed)

* changed import order in signalmessenger integration according to PEP 8

* used isort to order includes in signalmessenger integration

* renamed signalmessenger to signal_messenger

* renamed signalmessenger to signal_messenger in CODEOWNERS file

* changed documentation url in signal_messenger integration to new name

* changed signal messenger naming in .coveragerc
2019-12-09 00:27:06 +01:00
Robert Van Gorkom
e577f047f7 Add tests for vera component (#28340)
* Adding tests for vera component.
Fixing update bug in the vera climate platform.

* Updating requrements file.

* Moving vera stop to a job.
Sorting imports.

* Addressing simple PR feedback.

* Splitting tests into platforms.

* Mocking controller instead of using requests_mock.

* Updating pyvera to use version that stops threads quickly.

* Updating requirements files.

* Mocking the pyvera module, not the API.

* Addressing PR feedback.
Handling start/stop of patch in fixture.
Removing unecessary code.

* Using generator
2019-12-09 00:19:38 +01:00
Bas Nijholt
076e0273a2 Sort imports according to PEP8 for kodi (#29721) 2019-12-08 23:42:04 +01:00
Bas Nijholt
39887c46c0 Sort imports according to PEP8 for dialogflow (#29714) 2019-12-08 23:40:06 +01:00
Bas Nijholt
81a482332d Sort imports according to PEP8 for eufy (#29715) 2019-12-08 23:34:18 +01:00
Bas Nijholt
6a1753d6db Sort imports according to PEP8 for geonetnz_volcano (#29716) 2019-12-08 23:33:42 +01:00
Bas Nijholt
cce3077df3 Sort imports according to PEP8 for cert_expiry (#29705) 2019-12-08 23:32:50 +01:00
Bas Nijholt
e6eed4755f Sort imports according to PEP8 for plex (#29708) 2019-12-08 23:31:55 +01:00
Gerald Hansen
3d25ed7994 Change state values for Worx Landroid sensor (#27453)
The obj["state"] contains already several named return states as
following: "grass cutting", "trapped recovery", "searching wire",
           "following wire", "searching home", "home", "idle"
And with the batteryChargerState also the "charging"

Fixes #455
2019-12-08 22:27:18 +01:00
Bas Nijholt
55559f3e30 Sort imports according to PEP8 for starline (#29653) 2019-12-08 21:09:48 +01:00
Bas Nijholt
51ece97e0d Sort imports according to PEP8 for hive (#29669) 2019-12-08 21:06:05 +01:00
Bas Nijholt
415176e350 Sort imports according to PEP8 for template (#29655) 2019-12-08 21:05:08 +01:00
Bas Nijholt
e0b82440ad Sort imports according to PEP8 for switch (#29654) 2019-12-08 18:50:17 +01:00
Bas Nijholt
3d64405896 Sort imports according to PEP8 for recorder (#29652) 2019-12-08 18:48:18 +01:00
Fabian Affolter
b832749e3c Fix file permission (#29660) 2019-12-08 18:41:48 +01:00
Bas Nijholt
0a4979549d use isort to sort imports according to PEP8 for vacuum (#29650) 2019-12-08 22:47:01 +05:30
Bas Nijholt
b731ddabde Sort imports according to PEP8 for homekit (#29645) 2019-12-08 18:16:49 +01:00
Bas Nijholt
aeff27680b use isort to sort imports according to PEP8 for light (#29648) 2019-12-08 22:46:23 +05:30
Bas Nijholt
ce5072fc91 use isort to sort imports according to PEP8 for mqtt (#29649) 2019-12-08 22:45:26 +05:30
Bas Nijholt
d2c1e5d45c Sort imports according to PEP8 for homekit_controller (#29646) 2019-12-08 18:14:26 +01:00
Bas Nijholt
0d5de6a464 use isort to sort imports according to PEP8 for ecobee (#29631) 2019-12-08 22:31:50 +05:30
Bas Nijholt
fbd4cf1089 use isort to sort imports according to PEP8 for cloud (#29626) 2019-12-08 22:31:12 +05:30
Bas Nijholt
e4e9cdce73 use isort to sort imports according to PEP8 for demo (#29630) 2019-12-08 22:29:27 +05:30
Bas Nijholt
a3b605bb7d use isort to sort imports according to PEP8 for cover (#29629) 2019-12-08 22:28:00 +05:30
Bas Nijholt
f355570f17 use isort to sort imports according to PEP8 for config (#29628) 2019-12-08 22:27:28 +05:30
Bas Nijholt
73c373a0f2 use isort to sort imports according to PEP8 for command_line (#29627) 2019-12-08 22:25:57 +05:30
Bas Nijholt
954813b478 use isort to sort imports according to PEP8 for climate (#29625) 2019-12-08 22:25:01 +05:30
springstan
3b5da9c44a Move imports to top for homekit_controller (#29564)
* Move imports to top for homekit_controller

* Fix IpPairing mock in two test files
2019-12-08 16:50:57 +00:00
Bas Nijholt
8f5e8c72c6 use isort to sort imports according to PEP8 for binary_sensor (#29622) 2019-12-08 22:02:08 +05:30
Bas Nijholt
f5288db93c use isort to sort imports according to PEP8 for cast (#29624) 2019-12-08 22:00:57 +05:30
Bas Nijholt
d3f67c3841 use isort to sort imports according to PEP8 for automation (#29620) 2019-12-08 21:59:39 +05:30
Bas Nijholt
a38f3ac9c6 use isort to sort imports according to PEP8 for fan (#29632) 2019-12-08 21:28:47 +05:30
Robert Svensson
57a3f7d5c8 Pass in parameters explicitly to DeconzSession (#29617)
Dont pass in loop to DeconzSession
Services will use new refresh state method
2019-12-08 16:53:34 +01:00
Bas Nijholt
00dc721609 sort imports according to PEP8 for hassio (#29634) 2019-12-08 16:33:22 +01:00
Bas Nijholt
b0d0060643 sort imports according to PEP8 for axis (#29621) 2019-12-08 15:44:03 +01:00
Fabian Affolter
c4794572d4 Fix file permission (#29635) 2019-12-08 15:43:09 +01:00
Sören Beye
94dec483e9 Don't escape command parameters (#29504)
* Don't escape command parameters

Escaping should only be done when using the tcp socket cli interface which we aren't.

* Updated comment to reflect the changes
2019-12-08 15:18:46 +01:00
James Nimmo
c78773970b Add IntesisHome Climate Platform (#25364)
* Add IntesisHome Climate Platform

* Add support for IntesisHome and Airconwithme devices

* Implement requested changes from PR review

* Improve error handling for IntesisHome component

* Fix snake-case naming style

* Update exception logging
2019-12-08 15:09:16 +01:00
Bas Nijholt
663e2eaaff sort imports according to PEP8 for buienradar (#29623) 2019-12-08 14:59:21 +01:00
Bas Nijholt
ba34922b03 sort imports according to PEP8 for alexa (#29618) 2019-12-08 14:56:42 +01:00
Bas Nijholt
6ad3b6426a sort imports according to PEP8 for auth (#29619) 2019-12-08 14:55:23 +01:00
Fabian Affolter
fa00808f6c Upgrade keyring to 19.3.0 and keyrings.alt to 3.2.0 (#29607) 2019-12-08 13:51:54 +01:00
Bas Nijholt
09ff0a5ac6 sort imports according to PEP8 for yweather (#29608) 2019-12-08 13:50:02 +01:00
Bas Nijholt
74c0219d0c sort imports according to PEP8 for components (#29609) 2019-12-08 13:46:04 +01:00
Bas Nijholt
b4bcd477f8 sort imports according to PEP8 for acer_projector (#29611) 2019-12-08 13:45:33 +01:00
Bas Nijholt
cfe68d7e00 sort imports according to PEP8 for actiontec (#29612) 2019-12-08 13:44:44 +01:00
Bas Nijholt
a885670a9a sort imports according to PEP8 for abode (#29610) 2019-12-08 13:44:12 +01:00
Bas Nijholt
f5a1b32be0 sort imports according to PEP8 for ads (#29613) 2019-12-08 13:43:32 +01:00
Bas Nijholt
e510c4ea1d sort imports according to PEP8 for air_quality (#29614) 2019-12-08 13:42:55 +01:00
Bas Nijholt
d020486929 sort imports according to PEP8 for alarm_control_panel (#29616) 2019-12-08 13:42:31 +01:00
Bas Nijholt
700cecc8ef sort imports according to PEP8 for airly (#29615) 2019-12-08 13:41:51 +01:00
Ville Skyttä
ef4515ed70 Add Huawei LTE reboot and clear traffic statistics services (#29594)
* Add clear traffic statistics service

* Add reboot service

* Register services as admin ones

* Make URL optional when there's only one router configured

* Eliminate one if/else indent level

* Remove unnecessary .keys() with sorted()
2019-12-08 12:21:48 +01:00
springstan
d752fe3033 Move imports to top for fido (#29557)
* Move imports to top for fido

* Fix tests for fido by using patch
2019-12-08 12:20:53 +01:00
springstan
6de8072e8a Move imports to top for websocket_api (#29556)
* Move imports to top for websocket_api

* Move back an import because of circular dependency, add annotations
2019-12-08 12:19:15 +01:00
SNoof85
21cf6777bb bump freebox api version (#29527) 2019-12-08 09:49:43 +01:00
Andrew McRae
de0db1601b Add quarterly cycle for utility_meter component (#29534)
* Add quarterly tariff period to utility_meter

Many tariff cycles in Australia are 3 monthly (quarterly).
Add quarterly tariff cycle handling to the utility_meter component.

* Add quarterly tariff period to utility_meter

Many tariff cycles in Australia are 3 monthly (quarterly).
Add quarterly tariff cycle handling to the utility_meter component.

* Change date for test for utility_meter

* Add quarterly tariff period to utility_meter

Many tariff cycles in Australia are 3 monthly (quarterly).
Add quarterly tariff cycle handling to the utility_meter component.
2019-12-08 09:49:18 +01:00
springstan
94b6cbc571 Move imports to top for stream (#29548) 2019-12-08 09:48:28 +01:00
springstan
957a2e99fd Move imports to top for tellduslive (#29550) 2019-12-08 09:48:08 +01:00
springstan
b759d50900 Move imports to top for google_assistant (#29561)
* Move imports to top for google_assistant

* Fix pylint error caused by isorting the imports with noqa: F401

* Move back an import because of circular dependency, add annotations
2019-12-08 09:45:13 +01:00
Franck Nijhof
cc9589cff2 Add Elgato Key Light integration (#29592)
* Add Elgato Key Light integration

* Remove passing in of hass loop

* Tweaks a comment

* Tweaks a function name

* Ensure domain namespace in data exists in entry setup
2019-12-08 09:26:31 +01:00
SukramJ
7f4baab3f6 Add additional Magic Cube Model (#29598) 2019-12-08 09:20:13 +01:00
Marius
0cdc315038 change icon for partly-cloudy-night (#29601)
to the available mdi:weather-night-partly-cloudy
2019-12-08 10:55:39 +05:30
Alexei Chetroi
e360b1265f Add input_number.reload admin service. (#29584)
* Add input_number reload service.

* Add test.

* Allow platform setup without entities.

We can reload and add entities later.
2019-12-07 21:26:06 +01:00
Alexei Chetroi
256056430e Add input_datetime reload service. (#29581)
* Add input_datetime reload service.

* Add reload service test.
2019-12-07 21:24:56 +01:00
Alexei Chetroi
ccb0fd5e32 Register automation.reload service as an admin service. (#29582)
* homeassistant/components/automation/__init__.py

* Register automation.reload as an admin service.
2019-12-07 21:17:30 +01:00
butako
d838a56c1d Improve Tahoma Velux support (#27920)
* Improved Velux support. Added Velux Solar Roller Blind. Fixed Velux Integra Window.

* fix indentation

* black formatting

* added new devices in correct sorted order
2019-12-07 16:14:09 +01:00
SNoof85
ee657f3c2f Add service to reboot the Freebox (#29525) 2019-12-07 12:09:43 +01:00
Fabian Affolter
9d7799c0af Upgrade pyyaml to 5.2.0 (#29586) 2019-12-07 09:06:55 +01:00
Ville Skyttä
977f51a9e4 Update Travis dist to bionic (#29575) 2019-12-07 08:34:46 +02:00
springstan
e2adfc3979 Move imports to top for onboarding (#29542) 2019-12-07 11:55:15 +05:30
HomeAssistant Azure
b4c95421d3 [ci skip] Translation update 2019-12-07 00:32:13 +00:00
springstan
23fb364076 Move imports to top for openuv (#29541)
* Move imports to top for openuv

* Renamed mock_pyopenuv_ to MockClient in test_config_flow
2019-12-06 14:13:43 -07:00
springstan
1ee8057662 Move imports to top for zha (#29555)
* Move imports to top for zha
* Move back some imports, add annotation for disabling import-outside-toplevel
* Move import config_flow before import api
2019-12-06 16:12:46 -05:00
Ville Skyttä
fb66a6cf81 Treat BaseException as over-general (#29573)
To follow pylint's defaults.
2019-12-06 21:58:32 +01:00
Ville Skyttä
31c71989e9 Huawei LTE device tracker fixes (#29551)
* Include MAC address in device state attributes for absent devices too

* Use MAC address as default name whether device is connected or not

* Fix initialization of known entities

Closes https://github.com/home-assistant/home-assistant/issues/29354
2019-12-06 21:53:26 +01:00
springstan
74d86dfff9 Move imports to top for soundtouch (#29546)
* Move imports to top for soundtouch

* Format with black

* Fix pyling error by renaming variable

* Rename entity instances to include entity instead of device
2019-12-06 21:11:02 +01:00
springstan
6af30bc232 Move imports to top for notion (#29539)
* Move imports to top for notion

* Fix mocking library in test_config_flow.py
2019-12-06 12:40:00 -07:00
Fabian Affolter
8afe13e818 Upgrade certifi to >=2019.11.28 (#29571) 2019-12-06 20:09:18 +01:00
Ville Skyttä
d257fff9ce Use "kB" and "s" as UPnP/IGD units (#29552)
For consistency with various existing components, and they're more
commonly used and compact than "kbyte" and "sec".
2019-12-06 23:24:11 +05:30
springstan
c9415ab75d Move imports to top for homematic (#29558) 2019-12-06 17:46:24 +01:00
1v0dev
b8434fdcfd Add service to set netatmo home heating schedule (#29244)
* Add service to set netatmo home heating schedule.

* handle NoDevice exeption; add service argument constant
2019-12-06 17:45:27 +01:00
Martin Rowan
48aba426a9 Bump lightwave to 0.17 (#29566) 2019-12-06 17:40:59 +01:00
springstan
606d310ea3 Move imports to top for spc (#29547)
* Move imports to top for spc

* Fix pylint error by removing duplicate import
2019-12-06 15:40:04 +01:00
springstan
d9b52ef98c Move imports to top for plant (#29543) 2019-12-06 15:00:54 +01:00
springstan
f3717421c0 Move imports to top for heatmiser (#29562) 2019-12-06 14:59:32 +01:00
David K
c5f4872aea Limit available heat/cool modes for HomeKit thermostats (#28586)
* Limit available heat/cool modes for HomeKit thermostats.
The Home app only shows appropriate modes (heat/cool/auto) for the device. Depending on the climate integration, disabling the auto start might be needed.

* Include improved mapping for HVAC modes in tests
2019-12-06 14:07:45 +01:00
springstan
27530be46f Move imports to top for influxdb (#29513) 2019-12-06 17:35:35 +05:30
springstan
ec3ffe309a Move imports to top for toon (#29553) 2019-12-06 10:40:38 +01:00
springstan
d5419b77f9 Move imports to top for sleepiq (#29544) 2019-12-06 09:13:44 +01:00
springstan
1bb499aec2 Move imports to top for smhi (#29545) 2019-12-06 09:11:07 +01:00
springstan
a857148560 Move imports to top for pjlink (#29540) 2019-12-06 09:09:45 +01:00
springstan
0aace1da55 Move imports to top for nx584 (#29537) 2019-12-06 09:08:54 +01:00
Franck Nijhof
e2a9c652ab Bump pytest to 5.3.1 (#29535) 2019-12-06 09:08:06 +01:00
Malte Franken
33542f0e5e Bump georss_generic_client to 0.3 (#29532)
* bump version of georss_generic_client library

* updated requirements
2019-12-06 06:55:42 +01:00
springstan
fcf18aca34 Move imports to top for modbus (#29515)
* Move imports to top for modbus

* Include imports for TCP and UDP ModbusClients
2019-12-06 06:10:29 +01:00
springstan
8def0326dd Move imports to top for izone (#29508)
* Move imports to top for izone

* Isorted all imports, fixed tests for config_flow
2019-12-06 06:08:08 +01:00
Alexei Chetroi
dc911ecc5b Add input_boolean reload service (#29379)
* Add input_boolean reload service.

* Add reload test.

* Address comments.

Register reload service as an admin service
Setup platform even if there're no entities
2019-12-05 20:31:18 -08:00
springstan
3b6bc9067f Move imports to top for mochad (#29514)
* Move imports to top for mochad

* Fix test test_light.py for mochad

* Fix test test_switch.py for mochad

* Make intra package imports relative in switch and light
2019-12-06 02:02:34 +01:00
orrpan
9ba9b3339b Add full state view for emulated_hue (apps using emulated_hue, 'sleep cycle' and 'sleep as android') (#26650)
* Add full state view for emulated_hue

* clean and support updated sleep cycle

* emulated hue add reuasable logic and cleanup code

* emulated hue correct typos

* Update hue_api.py

* correct error message and update test_hue_api.py

* cleanup test_hue_api.py
2019-12-05 15:23:54 -08:00
springstan
173966f459 Move imports to top for switcher_kis (#29530)
* Move imports to top for switcher_kis
* Disabled ungrouped imports if TYPE_CHECKING is true
2019-12-05 18:20:07 -05:00
springstan
20fdcbadff Move imports to top for nextbus (#29520)
* Move imports to top for nextbus

* Fix test_sensor.py failed tests
2019-12-05 21:56:42 +01:00
springstan
42688a6e4a Move imports to top for ign_sismologia (#29523) 2019-12-05 21:55:48 +01:00
tetienne
97cb8a3745 Increase somfy SCAN_INTERVAL (#29524)
- There was too many errors 504
2019-12-05 21:33:56 +01:00
springstan
b4fda5faab Move imports to top for mysensors (#29517) 2019-12-05 19:54:43 +01:00
Paulus Schoutsen
ec8ea02273 Fix recursion 2019-12-05 10:40:05 -08:00
springstan
4e7b9eaed0 Move imports to top for monoprice (#29516)
* Move imports to top for monoprice

* Format test with black
2019-12-05 19:16:15 +01:00
springstan
98d2eadb76 Move imports to top for statistics (#29223)
* Move imports to top for statistics

* Added recorder to manifest.json

* Deleted recorder from manifest.json, moved import back into method, added pylint disable comment

* Moved recorder util imports away from the top

* Move recorder imports to top, add recorder as after_dependency to manifest.json
2019-12-05 18:49:28 +01:00
springstan
5bdb20098e Move imports to top for meteoalarm (#29510) 2019-12-05 16:59:56 +01:00
springstan
1846b45cb5 Move imports to top for mobile_app (#29511) 2019-12-05 16:59:31 +01:00
springstan
19893b8f3c Move imports to top for islamic_prayer_times (#29506)
* Move imports to top for islamic_prayer_times

* Fix test_sensor.py for islamic_prayer_times

* Format test_sensor.py with black

* Fix tests for islamic prayer times sensor
2019-12-05 16:58:14 +01:00
springstan
76f455cea9 Move imports to top for mediaroom (#29509) 2019-12-05 16:56:53 +01:00
springstan
2a92eb1962 Move imports to top for ipma (#29507) 2019-12-05 16:56:01 +01:00
springstan
204ca3f3a6 Move imports to top for frontend (#29487) 2019-12-05 13:44:59 +01:00
springstan
ed5cdb528c Move imports to top for group (#29485)
* Move imports to top for group

* Fix failing test for group
2019-12-05 13:44:11 +01:00
springstan
ed464a75b2 Move imports to top for system_log (#29465) 2019-12-05 13:42:56 +01:00
springstan
04722fdd63 Move imports to top for http (#29500) 2019-12-05 13:42:09 +01:00
springstan
e9917c6a81 Move imports to top for google_translate (#29499) 2019-12-05 13:22:01 +01:00
springstan
009e4df6ef Move imports to top for hue (#29501) 2019-12-05 13:19:50 +01:00
springstan
086d1f432d Move imports to top for google_pubsub (#29498) 2019-12-05 12:59:59 +01:00
springstan
564fed7879 Move imports to top for ambient_station (#29497) 2019-12-05 12:50:53 +01:00
Paulus Schoutsen
a050d54847 Make hassfest stricter (#29494)
* Make hassfest stricter

* Update manifest.json
2019-12-05 10:15:28 +01:00
springstan
f6d1eb97a3 Move imports to top for decora_wifi (#29439) 2019-12-05 09:56:17 +01:00
Paulus Schoutsen
e99184bf68 Install requirements of after_dependencies when loading integrations (#29491)
* Install requirements of after_dependencies when loading integrations

* Fix smartthings test
2019-12-05 09:28:56 +01:00
Paulus Schoutsen
957e5018f4 Version bump to 0.104.0dev0 2019-12-04 22:52:58 -08:00
Paulus Schoutsen
f10076a4ad Bumped version to 0.103.0b0 2019-12-04 22:52:20 -08:00
Paulus Schoutsen
1646aab36d Version bump to 0.103.0dev0 2019-12-04 22:51:53 -08:00
Paulus Schoutsen
6885167fcc Merge remote-tracking branch 'origin/master' into dev 2019-12-04 22:51:08 -08:00
Daniel Perna
c6ac2a5705 Update pyhomematic (#29477) 2019-12-04 22:50:18 -08:00
Rohan Kapoor
b2d5de6a79 Switch iperf3 to generate a new client every time it runs a test (#29495)
* Switch iperf3 to generate a new client every time it runs a test

* Add myself to CODEOWNERS

* Fix imperative mood
2019-12-04 22:49:26 -08:00
Paulus Schoutsen
dad11f8208 Fix tests & lint 2019-12-04 22:47:40 -08:00
Paulus Schoutsen
28e9f1d0b8 Fix deconz import 2019-12-04 21:57:08 -08:00
Paulus Schoutsen
41440d4f1b Fix litejet tests 2019-12-04 21:47:35 -08:00
springstan
52926f1961 Move imports to top for canary (#29449) 2019-12-04 21:30:22 -08:00
springstan
d70ad369de Move imports to top for asuswrt (#29436) 2019-12-04 21:24:20 -08:00
springstan
f874a9df13 Move imports to top for clementine (#29437) 2019-12-04 21:24:08 -08:00
springstan
69ae469148 Move imports to top for deluge (#29438) 2019-12-04 21:23:56 -08:00
springstan
4c0f73a2b9 Move imports to top for datadog (#29440) 2019-12-04 21:23:17 -08:00
springstan
2773328134 Move imports to top for directv (#29441) 2019-12-04 21:23:05 -08:00
springstan
5ee20b61b3 Move imports to top for doorbird (#29442) 2019-12-04 21:22:51 -08:00
springstan
27200865ee Move imports to top for dlink (#29443) 2019-12-04 21:22:37 -08:00
springstan
50ee0c6727 Move imports to top for dunehd (#29444) 2019-12-04 21:22:27 -08:00
springstan
f2a08c438b Move imports to top for duke_energy (#29445) 2019-12-04 21:22:14 -08:00
Anders Melchiorsen
94297e96cb Update eternalegypt to 0.0.11 (#29446) 2019-12-04 21:22:03 -08:00
springstan
b2cce05405 Move imports to top for eight_sleep (#29447) 2019-12-04 21:21:50 -08:00
springstan
85e188db52 Move imports to top for egardia (#29448) 2019-12-04 21:21:40 -08:00
springstan
10759b7ca6 Move imports to top for enphase_envoy (#29450) 2019-12-04 21:21:25 -08:00
springstan
0158f29e4e Move imports to top for envisalink (#29457) 2019-12-04 21:21:12 -08:00
springstan
5586f40ab0 Move imports to top for enocean (#29451) 2019-12-04 21:20:26 -08:00
springstan
cdf53aed93 Move imports to top for enigma2 (#29452) 2019-12-04 21:20:11 -08:00
springstan
f422cdbfef Move imports to top for eq3btsmart (#29456) 2019-12-04 21:20:01 -08:00
springstan
06a156c091 Move imports to top for emby (#29453) 2019-12-04 21:19:43 -08:00
Ville Skyttä
ebc9d17558 Fix setup of Huawei LTE for which we can't get a MAC address (#29455)
Closes https://github.com/home-assistant/home-assistant/issues/29188
2019-12-04 21:19:25 -08:00
springstan
6c863a8948 Move imports to top for sonarr (#29462) 2019-12-04 21:18:57 -08:00
springstan
58ba6052e2 Move imports to top for environment_canada (#29458) 2019-12-04 21:18:52 -08:00
springstan
a4ac5dc6b8 Move imports to top for entur_public_transport (#29459) 2019-12-04 21:18:29 -08:00
springstan
24878f109c Move imports to top for solaredge (#29463) 2019-12-04 21:18:12 -08:00
springstan
dbd231b3a0 Move imports to top for somfy_mylink (#29464) 2019-12-04 21:17:45 -08:00
springstan
270d97d789 Move imports to top for daikin (#29490) 2019-12-04 21:17:33 -08:00
springstan
89c7629215 Move imports to top for deconz (#29489) 2019-12-04 21:17:18 -08:00
springstan
8647ba3dd5 Move imports to top for emulated_hue (#29488) 2019-12-04 21:16:51 -08:00
springstan
f5550509d4 Move imports to top for geo_json_events (#29486) 2019-12-04 21:16:25 -08:00
springstan
bbe57d6673 Move imports to top for history (#29484) 2019-12-04 21:15:39 -08:00
springstan
95de802fbd Move imports to top for hlk_sw16 (#29483) 2019-12-04 21:15:18 -08:00
springstan
3e634aaf5d Move imports to top for logi_circle (#29482) 2019-12-04 21:14:57 -08:00
springstan
81e4e9e26b Move imports to top for mailgun (#29480) 2019-12-04 21:14:39 -08:00
springstan
12e1c695ca Move imports to top for mfi (#29479) 2019-12-04 21:14:26 -08:00
springstan
7df4c1e676 Move imports to top for mhz19 (#29478) 2019-12-04 21:14:03 -08:00
springstan
653e0078a4 Move imports to top for skybell (#29475) 2019-12-04 21:13:49 -08:00
springstan
c6066d8b98 Move imports to top for ring (#29474) 2019-12-04 21:13:28 -08:00
springstan
c02d551cd5 Move imports to top for random (#29473) 2019-12-04 21:13:05 -08:00
springstan
d9661b408b Move imports to top for rainmachine (#29472) 2019-12-04 21:12:44 -08:00
springstan
c6b8d35c16 Move imports to top for ps4 (#29471) 2019-12-04 21:12:26 -08:00
springstan
43665466f5 Move imports to top for point (#29470) 2019-12-04 21:12:09 -08:00
springstan
96cf20ad81 Move imports to top for zoneminder (#29468) 2019-12-04 21:11:30 -08:00
springstan
72995f6ce6 Move imports to top for tuya (#29467) 2019-12-04 21:11:13 -08:00
springstan
5573504508 Move imports to top for litejet (#29481) 2019-12-04 21:08:22 -08:00
Bram Kragten
b829c46e18 Updated frontend to 20191204.0 (#29461) 2019-12-04 11:28:23 -08:00
springstan
a2a3c50555 Move imports to top for danfoss_air (#29435) 2019-12-04 20:27:51 +01:00
springstan
f8d607bdf5 Move imports to top for fixer (#29430)
* Move imports to top for fixer

* Only import FixerioException instead of all exceptions
2019-12-04 17:08:22 +01:00
springstan
0d1a389602 Move imports to top for etherscan (#29426) 2019-12-04 15:21:18 +01:00
springstan
af18c668d2 Move imports to top for familyhub (#29427) 2019-12-04 15:20:50 +01:00
springstan
4b6a2496c7 Move imports to top for fastdotcom (#29428) 2019-12-04 15:20:14 +01:00
springstan
12791a687b Move imports to top for fints (#29429) 2019-12-04 15:19:03 +01:00
springstan
c6ad57eb2b Move imports to top for fleetgo (#29431) 2019-12-04 15:15:30 +01:00
springstan
9bb6bcad70 Move imports to top for gearbest (#29432) 2019-12-04 15:14:46 +01:00
springstan
bef1c00b49 Move imports to top for hunterdouglas_powerview (#29420) 2019-12-04 14:15:39 +01:00
springstan
c880f09714 Move imports to top for horizon (#29419)
* Move imports to top for horizon

* Fix Pylint redefining name keys
2019-12-04 14:15:17 +01:00
springstan
46c306685d Move imports to top for hikvision (#29417) 2019-12-04 14:14:49 +01:00
springstan
c79e99318d Move imports to top for habitica (#29416) 2019-12-04 14:14:19 +01:00
springstan
d8dcf17cb5 Move imports to top for gstreamer (#29415) 2019-12-04 14:12:27 +01:00
springstan
4a7004b791 Move imports to top for greeneye_monitor (#29414) 2019-12-04 14:12:07 +01:00
springstan
88c1a630d8 Move imports to top for gpmdp (#29413) 2019-12-04 14:11:47 +01:00
springstan
95bc97fb6a Move imports to top for homeworks (#29418) 2019-12-04 14:11:14 +01:00
springstan
e6f7cbe53e Move imports to top for gitter (#29412) 2019-12-04 14:10:47 +01:00
springstan
6f5b59da15 Move imports to top for ialarm (#29422) 2019-12-04 14:10:15 +01:00
springstan
497674835b Move imports to top for ihc (#29425) 2019-12-04 14:09:57 +01:00
springstan
f4f4c695d9 Move imports to top for hydrawise (#29421) 2019-12-04 14:09:35 +01:00
springstan
c159ad52a4 Move imports to top for gogogate2 (#29411)
* Move imports to top for gogogate2

* Isorted imports
2019-12-04 14:09:04 +01:00
springstan
6c45c1969b Move imports to top for idteck_prox (#29423) 2019-12-04 14:08:01 +01:00
springstan
56b60577de Move imports to top for iglo (#29424) 2019-12-04 14:07:36 +01:00
Fabian Affolter
992d9273bb Upgrade psutil to 5.6.7 (#29407) 2019-12-04 11:45:56 +01:00
springstan
73e25296ca Move imports to top for joaoapps_join (#29402) 2019-12-04 11:18:05 +01:00
springstan
e04a208af0 Move imports to top for irish_rail_transport (#29401) 2019-12-04 11:17:38 +01:00
springstan
45c7c7a439 Move imports to top for keenetic-ndms2 (#29400) 2019-12-04 11:17:20 +01:00
springstan
a24e7832b5 Move imports to top for modem_callerid (#29396) 2019-12-04 11:16:58 +01:00
springstan
048068307d Move imports to top for microsoft (#29395) 2019-12-04 11:16:35 +01:00
springstan
518ca3afa7 Move imports to top for meteo_france (#29394) 2019-12-04 11:16:16 +01:00
springstan
849d8c885d Move imports to top for maxcube (#29393) 2019-12-04 11:15:53 +01:00
springstan
d79d9e0bfb Move imports to top for matrix (#29392) 2019-12-04 11:15:29 +01:00
springstan
c6fd8582a9 Move imports to top for lyft (#29391) 2019-12-04 11:14:35 +01:00
springstan
025c1a39a7 Move imports to top for lutron_caseta (#29390) 2019-12-04 11:14:07 +01:00
springstan
1a51590711 Move imports to top for lutron (#29389) 2019-12-04 11:13:46 +01:00
springstan
49232332a1 Move imports to top for luci (#29388) 2019-12-04 11:13:22 +01:00
springstan
695ec0c219 Move imports to top for london_underground (#29387) 2019-12-04 11:13:07 +01:00
springstan
7aab0d0aa0 Move imports to top for limitlessled (#29386) 2019-12-04 11:12:32 +01:00
springstan
cfe920079c Move imports to top for lightwave (#29385) 2019-12-04 11:12:03 +01:00
springstan
3dc629db08 Move imports to top for lg_netcast (#29384) 2019-12-04 11:11:42 +01:00
springstan
c3453be17b Move imports to top for lauch_library (#29383) 2019-12-04 11:11:21 +01:00
springstan
c0c1d68858 Move imports to top for iota (#29399) 2019-12-04 11:10:28 +01:00
springstan
1d65670a71 Move imports to top for kiwi (#29403) 2019-12-04 10:50:44 +01:00
springstan
fd107f2b2e Move imports to top for kwb (#29404) 2019-12-04 10:50:22 +01:00
springstan
2df189b58e Move imports to top for lacrosse (#29405) 2019-12-04 10:49:55 +01:00
springstan
09e2be02d3 Move imports to top for lametric (#29406) 2019-12-04 10:49:33 +01:00
Paulus Schoutsen
f6780c1fa2 Allow negative altitude in location updates (#29381) 2019-12-03 22:39:12 -08:00
HomeAssistant Azure
a1a131334a [ci skip] Translation update 2019-12-04 00:32:11 +00:00
springstan
0416e5b0fc Move imports to top for openhome (#29369) 2019-12-03 15:47:22 -08:00
springstan
3205afe74e Move imports to top for nuimo_controller (#29367) 2019-12-03 15:47:11 -08:00
springstan
bd1e5fce27 Move imports to top for noaa_tides (#29366) 2019-12-03 15:47:00 -08:00
springstan
3ddd20159c Move imports to top for nmbs (#29365) 2019-12-03 15:46:48 -08:00
springstan
564c468c26 Move imports to top for nmap_tracker (#29364) 2019-12-03 15:46:38 -08:00
springstan
bc635120fa Move imports to top for netio (#29363) 2019-12-03 15:46:26 -08:00
springstan
4130f2ff1a Move imports to top for netdata (#29362) 2019-12-03 15:46:16 -08:00
springstan
b462c539eb Move imports to top for n26 (#29357) 2019-12-03 15:46:07 -08:00
springstan
01bc1e4c66 Move imports to top for nad (#29358) 2019-12-03 15:45:56 -08:00
springstan
0e223662a9 Move imports to top for nanoleaf (#29359) 2019-12-03 15:45:46 -08:00
springstan
4989d1e7a9 Move imports to top for nederlandse_spoorwegen (#29360) 2019-12-03 15:45:36 -08:00
springstan
c9c41260b2 Move imports to top for nello (#29361) 2019-12-03 15:45:24 -08:00
springstan
be316af303 Move imports to top for mystrom (#29356) 2019-12-03 15:44:50 -08:00
springstan
9d213e70f0 Move imports to top for opensensemap (#29370) 2019-12-03 15:44:04 -08:00
Paulus Schoutsen
e26eebfc19 Remove cloud dependency from mobile_app (#29373) 2019-12-03 15:43:48 -08:00
Heine Furubotten
98b6905738 Upgrade enturclient to 0.2.1 (#29375) 2019-12-03 15:42:45 -08:00
springstan
bbf99c61fa Move imports to top for mycroft (#29355) 2019-12-03 15:42:21 -08:00
springstan
655780447c Move imports to top for nut (#29368) 2019-12-03 18:19:43 -05:00
springstan
f220c73e8f Move imports to top for orvibo (#29371) 2019-12-03 18:16:57 -05:00
springstan
f8ffcd6caf Move imports to top for opple (#29372) 2019-12-03 18:15:42 -05:00
Paulus Schoutsen
eef91f843d Rendering complex template objects to leave non-template values alone (#29353) 2019-12-03 14:15:45 -08:00
springstan
b1b784484e Move imports to top for owlet (#29352) 2019-12-03 14:13:37 -08:00
springstan
4f8200d15a Ignore state of climate entities in prometheus (#29346) 2019-12-03 12:54:25 -08:00
Luca Angemi
cae802f7ee Include telegram_bot message id for all messages (#29315)
* Include telegram_bot message id for all messages

* Update __init__.py
2019-12-03 12:51:45 -08:00
springstan
25b6740466 Move imports to top for pencom (#29348) 2019-12-03 19:02:09 +01:00
springstan
078e907178 Move imports to top for pushetta (#29332)
* Move imports to top for pushetta

* Make Pushetta.exceptions import lowercase and snakecase
2019-12-03 12:23:41 +01:00
Pascal Vizeli
e9647f8814 Update ozw 0.1.6 2019-12-03 10:51:46 +00:00
Pascal Vizeli
841ce8ade9 Fix uvloop warning (#29341) 2019-12-03 11:08:28 +01:00
Joakim Plate
26b63e73ad Add initial test suite for arcam_fmj integration (#29335)
* Add initial tests

* Adjust test

* Typo
2019-12-02 22:52:25 -08:00
Joakim Plate
4191d9ca8d Report unavailable entities to google (#28501)
* Report unavailable entites to google.

Entities should only removed when removed from HA. Removing a temporarily unavailable entity from google causes it to need to re-configured once it become available again.

* Fix test for unavailable entities
2019-12-02 22:14:16 -08:00
Paulus Schoutsen
32e04e1dce Lint 2019-12-02 22:08:19 -08:00
Joakim Plate
2569c4ae37 Google assistant storage of connected agents (#29158)
* Make async_report_state take agent_user_id

* Attempt to store synced agents

* Drop now not needed initialization

* Make sure cloud uses the all sync on changed preferences

* Some more places to use all version of sync

* Get the agent_user_id from the request context if available

* Minor cleanup

* Remove the old fixed agent_user_id for cloud

Instead pass along cloud_user where appropriate.

* async_delay_save takes a function

* Adjust test for delayed store

* Remove unused save function

* Add login check.
2019-12-02 22:05:59 -08:00
Andy Loughran
434b783b4c Update heatmiserv3 integration (#29006)
* Updated heatmiserV3 initial commit

* Fixing heatmiser component

* Updated codeowners and heatmiserV3 version

* Updating files as part of PR process

* Removed extra _LOGGER statements.

* Added in HVAC_MODE_OFF to allowed states to track whether heating on/off

* Handling PR comments

* Removed legacy tests

* fixing pylint errors

* Update homeassistant/components/heatmiser/climate.py

Removed .get from config

Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/heatmiser/climate.py

Removed .get from config

Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/heatmiser/climate.py

Removed .get from config

Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>

* Updated climate based on latest feedback

* Removed cast to int and update requirements

* Update requirements

* Updated heatmiser deps
2019-12-03 06:48:51 +01:00
HomeAssistant Azure
d5ee34e504 [ci skip] Translation update 2019-12-03 00:32:23 +00:00
Paulus Schoutsen
02d9ed5e36 Do not select all entities when omitting entity ID in service call (#29178)
* Do not select all entities when omitting entity ID

* Address comments Matthew

* Require either area_id or entity_id

* Fix tests

* Fix test
2019-12-02 16:23:12 -08:00
Marius
9587afc5ce delete incorrect "mdi:brightness-3" (#29309)
delete incorrect 'mdi:brightness-3' in final 
```
def icon(self):
        """Icon to use in the frontend, if any."""
        return MOON_ICONS.get(self.state, "mdi:brightness-3")
```

which still shows in the sensors attributes
2019-12-02 16:19:56 -08:00
Franck Nijhof
76aaf8b560 Improve WLED white value support for RGBW strips (#29312) 2019-12-02 16:12:18 -08:00
springstan
8f608608ed Move imports to top for radarr (#29322) 2019-12-02 16:11:22 -08:00
springstan
141fd1bffd Move imports to top for qwikswitch (#29328) 2019-12-02 16:11:10 -08:00
Alain Turbide
83b21651ce Add alexa check for "name" channelMetadata attribute (#29279)
* Added check for "name" channelMetada attribute

* Added/changed smart home media player tests for added value name in chanelMetadata payload section

* Since Alexa only expects a number/callSign/affiliate in the returned response, returning "name" is not technically valid.  Modified to return the value in the callSign field  instead since it's a text value. Since there is no returned channel number, cannot return a true numeric value in "channel" field
2019-12-02 16:10:44 -08:00
Abílio Costa
9811d63d78 Improve Alexa interface selection for binary sensors (#29120)
* Improve Alexa interface selection for binary sensors

This allows the sensor to work correctly as a contact or motion sensor
in alexa, if the user overrides its display category as such.

* add tests
2019-12-02 16:02:17 -08:00
springstan
9160d43a08 Move imports to top for rachio (#29323) 2019-12-03 00:59:13 +01:00
springstan
bacc549576 Move imports to top for plum_lightpad (#29324) 2019-12-03 00:58:18 +01:00
springstan
55ba956d3d Move imports to top for qbittorrent (#29325) 2019-12-03 00:57:47 +01:00
springstan
61cb0924db Move imports to top for qnap (#29326) 2019-12-03 00:56:58 +01:00
springstan
1adcdad5a4 Move imports to top for quantum_gateway (#29327) 2019-12-03 00:56:08 +01:00
springstan
372aa312e1 Move imports to top for prezzibenzina (#29329) 2019-12-03 00:54:17 +01:00
springstan
9868161821 Move imports to top for postnl (#29330) 2019-12-03 00:53:42 +01:00
springstan
8baba2e33d Move imports to top for python_script (#29331) 2019-12-03 00:53:04 +01:00
Felipe Martins Diel
5a24dbf599 Broadlink remote (#26528)
* Add broadlink remote control platform

* Fix order of the imports

* Add remote.py to .coveragerc

* Optimize MAC address validation

* Use storage helper class and improve code readability

* Add me to the manifest as a code owner

* Fix dosctring

* Add me to the code owners

* Remove storage schemas, rename storage keys and improve readability
2019-12-02 13:20:36 -08:00
NobleKangaroo
67498595e4 Add Emulated Hue code owner (#29319) 2019-12-02 21:29:31 +01:00
Raman Gupta
040fd9c258 Update service domains for xiaomi_miio from base domains to xiaomi_miio domain (#29134)
* move service constants to const.py, move all custom xiaomi_miio services to xiaomi_miio domain

* update service names

* try to fix black error

* try black formatting again

* final black formatting attempt

* update service names to reflect platform

* fix typo
2019-12-02 11:49:39 -08:00
Paulus Schoutsen
ffaa0e572a Inline MQTT paho imports (#29177)
* Inline MQTT paho imports

* Address comments

* Fix patch paths

* Move other imports inline

* Fix test
2019-12-02 11:32:02 -08:00
Christian Ferbar
1804c6edc5 Clear miflora sensor state on exception (#29276)
* Clear state on exception

Clear state if querying the device fails. The state is then set to unknown, so it can be tracked if a miflora device isn't responding any more.

* Add available()

Signal valid data via available()
2019-12-02 11:24:16 -08:00
Paulus Schoutsen
9771826ed6 Add capability-attributes (#29306) 2019-12-02 11:15:50 -08:00
springstan
b28bc1d6fb Add name option to season sensor (#29302)
* Add name option to season sensor

* Changed DEFAULT_NAME from season to Season
2019-12-02 12:00:07 +01:00
NobleKangaroo
3f2b6bfaa4 Overhaul Emulated Hue (#28317)
* Emulated Hue Overhaul

* Fix erroneous merge

* Remove unused code

* Modernize string format
2019-12-01 21:00:22 -08:00
HomeAssistant Azure
19241f421b [ci skip] Translation update 2019-12-02 00:32:37 +00:00
Paulus Schoutsen
d1aa0cea97 Move intent registration to own integration (#29280)
* Move intent registration to own integration.

* Lint
2019-12-01 14:12:57 -08:00
Bram Kragten
d91dd68b31 Limit parallel requests to Philips Hue (#29189)
* Limit parallel requests to Philips Hue

* Fix tests

* Remove loop

* Update homeassistant/components/hue/bridge.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>
2019-12-01 13:24:16 -08:00
Ville Skyttä
a9baa24fda Improve naming and attrs of hostnameless Huawei LTE device tracker entities (#29281) 2019-12-01 20:58:31 +01:00
springstan
22225cea4d Move imports to top for seventeentrack (#29264)
* Move imports to top for seventeentrack

* Updated patch target path in test_sensor.py
2019-12-01 10:19:17 -07:00
Ville Skyttä
9927f6c17d Upgrade mypy to 0.750 (#29294)
https://mypy-lang.blogspot.com/2019/11/mypy-0.html
2019-12-01 17:58:26 +01:00
Andreas Oberritter
64628c1f70 Add ATEN PE component for ATEN eco PDUs (#27960)
* Add ATEN PE component for ATEN eco PDUs

* aten_pe: Require host configuration

* aten_pe: Do not import from other integrations

* aten_pe: Include unnamed outlets

* aten_pe: Avoid get() for config entries having default values

* aten_pe: Fix documentation URI

* aten_pe: Remove unused return value

* aten_pe: Update atenpdu lib to 0.2.0 for asyncio

* aten_pe: Raise exception if initialization fails

* aten_pe: Update atenpdu lib to 0.3.0 for improved exception handling
2019-12-01 17:46:12 +01:00
springstan
6c9291c7a6 Move imports to top for raspyrfm (#29284) 2019-12-01 15:25:57 +01:00
springstan
a0a348a200 Move imports to top for recswitch (#29285) 2019-12-01 15:24:48 +01:00
springstan
d0ed9b32ac Move imports to top for remote_rpi_gpio (#29286) 2019-12-01 15:24:11 +01:00
springstan
e2e53be5ac Move imports to top for ripple (#29287) 2019-12-01 15:23:18 +01:00
Daniel Høyer Iversen
3c9d2b552e Upgrade Tibber library (#29290) 2019-12-01 14:20:27 +01:00
springstan
8fbfb6bf8c Move imports to top for rocketchat (#29288) 2019-12-01 12:04:47 +01:00
springstan
84d6a5369f Move imports to top for raincloud (#29283) 2019-12-01 12:04:12 +01:00
springstan
9f649ed345 Move imports to top for roku (#29289) 2019-12-01 12:03:51 +01:00
Ville Skyttä
5c8a8a631c Add Huawei LTE binary sensor support, mobile connection sensor (#28226)
* Add Huawei LTE binary sensor support, mobile connection sensor

* Improve mobile connection sensor icon docstring

* Remove device class for permission to use a more descriptive icon
2019-11-30 22:09:08 -08:00
jjlawren
6a02c6540e Stop Plex config flow imports where more user input needed (#29241)
* Abort imports that require user interaction, update logs and tests

* Disable lint
2019-11-30 22:07:12 -08:00
springstan
c4c8a1ba2d Move imports to top for sense (#29258) 2019-11-30 21:35:45 -08:00
Bram Kragten
2bdf7fc8f5 Fix Hue linking with non ASCII chars in location (#29213)
* Fix Hue linking with non ASCII chars in location

* Use slugify
2019-11-30 21:33:11 -08:00
springstan
8908dba5b4 Add device trigger for alarm_control_panel (#29068)
* Added device trigger to alarm control panel

* Added supported features to check that device has certain trigger

* Fixed tests for device_trigger

* Fixed pylint error

* Removed pending trigger and removed trigger condition
2019-11-30 21:30:51 -08:00
Franck Nijhof
d5efd0b352 Fix Espalexa being detected as Hue Bridge (#29237) 2019-11-30 21:28:42 -08:00
Santobert
c0619944fa Neato reduce API calls (#29156)
* initial commit

* Fix a bug where some values are not available

* Workaround if git_robot_info() is not available
2019-11-30 21:26:44 -08:00
springstan
bb46918d2e Move imports to top for scsgate (#29257) 2019-11-30 21:24:54 -08:00
springstan
1560d84cd7 Move imports to top for sisyphus (#29252) 2019-11-30 21:24:38 -08:00
springstan
8da7f40736 Move imports to top for smarty (#29251) 2019-11-30 21:24:17 -08:00
springstan
bea5d18c4a Move imports to top for sochain (#29250) 2019-11-30 21:23:59 -08:00
springstan
6726c4c76b Move imports to top for spider (#29249) 2019-11-30 21:23:48 -08:00
springstan
9fbb345ce0 Move imports to top for tradfri (#29247) 2019-11-30 21:23:39 -08:00
springstan
93150f6f94 Move imports to top for sensehat (#29259) 2019-11-30 21:23:09 -08:00
springstan
f2b06d9abd Move imports to top for sht31 (#29260) 2019-11-30 21:22:53 -08:00
springstan
221db3a2dd Move imports to top for simplepush (#29261) 2019-11-30 21:22:33 -08:00
springstan
11b274989a Move imports to top for satel_integra (#29263) 2019-11-30 21:22:18 -08:00
springstan
4ceddc6d35 Move imports to top for sabnzbd (#29266) 2019-11-30 21:22:05 -08:00
springstan
3aff90c0ac Move imports to top for rpi_gpio_pwm (#29270) 2019-11-30 21:21:46 -08:00
springstan
453569a469 Move imports to top for russound_rio (#29267) 2019-11-30 21:21:40 -08:00
springstan
db2f53dfc1 Move imports to top for russound_rnet (#29268) 2019-11-30 21:21:28 -08:00
springstan
82d8c9c2ca Move imports to top for rova (#29269) 2019-11-30 21:21:08 -08:00
springstan
869e71f455 Move imports to top for rpi_rf (#29271) 2019-11-30 21:20:33 -08:00
springstan
7ad139bb63 Move imports to top for roomba (#29272) 2019-11-30 21:20:17 -08:00
springstan
96a28e59bc Move imports to top for route53 (#29273) 2019-11-30 21:19:28 -08:00
HomeAssistant Azure
aa9514b774 [ci skip] Translation update 2019-12-01 00:34:59 +00:00
springstan
5dbfa16e04 Move imports to top for simplisafe (#29262) 2019-11-30 17:16:05 -07:00
Wim Haanstra
bde453be47 Address DSMR Reader review notes (#29209)
* Fix review issues

* Remove None from get method

* No longer need logging import

* Give definition without name a default name
2019-11-30 16:23:03 +01:00
Pascal Vizeli
0ea91fbf2d Merge pull request #29234 from home-assistant/rc
Release 0.102.3
2019-11-30 11:58:54 +01:00
HomeAssistant Azure
8ae0d891e4 [ci skip] Translation update 2019-11-30 00:32:19 +00:00
springstan
4bec14b0f6 Move imports to top for swiss_public_transport (#29228)
* Move imports to top for swiss_public_transport

* Remove import of exceptions since only one exception is used
2019-11-29 22:16:14 +01:00
springstan
fbfbae8ad9 Move imports to top for swiss_hydrological_data (#29227) 2019-11-29 21:50:09 +01:00
springstan
39bf1b5f5d Move imports to top for stiebel_eltron (#29224) 2019-11-29 21:32:03 +01:00
springstan
7d90b1f9ec Move imports to top for streamlabswater (#29225) 2019-11-29 21:27:00 +01:00
springstan
93bb1a6816 Move imports to top for supla (#29226) 2019-11-29 21:26:23 +01:00
springstan
bbecd55c09 Move imports to top for synology (#29230) 2019-11-29 21:22:03 +01:00
springstan
c30dfac4ed Move imports to top for synologdsm (#29231) 2019-11-29 21:21:00 +01:00
springstan
e4b26dc02b Move imports to top for tahoma (#29232) 2019-11-29 21:19:49 +01:00
springstan
11331ad26e Move imports to top for starlingbank (#29233) 2019-11-29 21:18:52 +01:00
springstan
04bad4bc74 Move imports to top for switchbot (#29229) 2019-11-29 19:34:40 +01:00
Michaël Arnauts
e405398ca4 Allow turning off a tado water heater (#29221) 2019-11-29 19:22:22 +01:00
Pascal Vizeli
ec008ddbe4 Bump version 0.102.3 2019-11-29 17:48:08 +00:00
Bram Kragten
2d5d40ce0e Fix smartthings cloud webhook (#29219)
* Fix smartthings cloud webhook

* Update smartapp.py
2019-11-29 17:46:27 +00:00
Bram Kragten
4065c46046 Fix smartthings cloud webhook (#29219)
* Fix smartthings cloud webhook

* Update smartapp.py
2019-11-29 18:29:45 +01:00
springstan
392cdf49e6 Allow controlling Tado Hot Water Devices with temperature control (#29191) 2019-11-29 16:29:39 +01:00
tetienne
12155cb66e Fix somfy switch inherit from SwitchDevice instead of ToggleEntity (#29182) 2019-11-29 12:08:20 +01:00
Malte Franken
6126d05935 Migrate NSW Rural Fire Service integration to async library (#29181)
* use async integration library

* adapted unit tests

* removed unused constants

* relocated constants

* simplified generation of new entries

* small code fixes

* increased test coverage and removed unused code

* fixed comment

* simplified patch code
2019-11-29 12:06:21 +01:00
springstan
364d1cff40 Move imports to top for xiaomi (#29197) 2019-11-29 08:09:36 +01:00
springstan
e63bca4f32 Move imports to top for xiaomi_aqara (#29196) 2019-11-29 08:09:10 +01:00
michaeldavie
1322661ee0 Handle None when trucating long Environment Canada state values (#29208)
* Handle None when trucating long state values, add info message

* Black
2019-11-29 04:13:21 +01:00
springstan
1c824f5ca7 Move imports to top for ziggo_mediabox_xl (#29193) 2019-11-29 02:10:08 +01:00
springstan
e5aa050def Move imports to top for zhong_hong (#29194) 2019-11-29 02:09:03 +01:00
springstan
fe34ea1865 Move imports to top for zabbix (#29195) 2019-11-29 02:07:52 +01:00
springstan
66aae61fd5 Move imports to top for wirelesstag (#29198) 2019-11-29 02:03:14 +01:00
Fabian Affolter
0d30a6bcac Upgrade youtube_dl to 2019.11.28 (#29199) 2019-11-29 02:02:01 +01:00
springstan
25ad933d2d Move imports to top for vultr (#29200) 2019-11-29 02:00:40 +01:00
springstan
243e80459d Move imports to top for volvooncall (#29201) 2019-11-29 01:59:48 +01:00
springstan
0e4920d6a1 Move imports to top for tof (#29203)
* Move imports to top for tof

* Isorted imports
2019-11-29 01:58:56 +01:00
springstan
7b33e57e86 Move imports to top for tautulli (#29204) 2019-11-29 01:56:39 +01:00
springstan
5001dbdcfa Move imports to top for tapsaff (#29205) 2019-11-29 01:55:52 +01:00
springstan
e1fece48e1 Move imports to top for syncthru (#29206) 2019-11-29 01:54:42 +01:00
springstan
430061a159 Move imports to top for usgs_earthquakes_feed (#29202) 2019-11-29 01:53:49 +01:00
HomeAssistant Azure
8dc366c75b [ci skip] Translation update 2019-11-29 00:32:07 +00:00
Fabian Affolter
103b917bb2 Upgrade psutil to 5.6.6 (#29192) 2019-11-28 23:20:00 +01:00
guillempages
26e674b4c3 Resolve hosts for fritzbox_callmonitor (#28761)
* Resolve hosts for fritzbox_callmonitor

If the configuration supplied "host" is not an IP address, try resolving it

* always use gethostbyname

Instead of just checking whether it is an IP and if it isn't try to resolve; just resolve it; IPs will be returned unchanged, and hostnames will be resolved.

* Catch error if the hostname cannot be resolved

* Don't fallback to default host

If the hostname cannot be resolved; don't try to fallback; just print the error message.

* Fail setup if hostname cannot be resolved

If the hostname cannot be resolved, log an error and stop the setup;
no entities will be then created.
2019-11-28 21:14:20 +01:00
Wim Haanstra
daed314585 Dsmr reader (#28701)
* Added DSMR Reader platform

- Added DSMR Reader platform
- Updated codeowners for other components I added earlier

* Move sensor definitions to new file

* Sensor definitions in new file

* Add energy prices from MQTT

* lint fixes

* Black formatted some files

* Update .coveragerc

* Support transform methods on definitions

* Manifest mangled by Black, fixed

* Visual studio code reformatting dictionary error

* Fix issues with code, remove unrelated manifest changes

* Update CODEOWNERS
2019-11-28 20:30:24 +01:00
Paulus Schoutsen
b847d55077 Only create cloud user if cloud in use (#29150)
* Only create cloud user if cloud in use

* Pass context to alexa

* Update requirements

* Fix handing & design pattern for 0.30

* fix tests

* Fix lint & tests

* rename internal user
2019-11-28 14:23:59 +01:00
Pascal Vizeli
5d5d053bce Use github instead gitlab 2019-11-28 13:40:29 +01:00
tetienne
4e107a2bcf Add support for Somfy Camera Shutter (#29057) 2019-11-28 10:42:17 +01:00
jjlawren
9c9e9bc92a Bump plexwebsocket to 0.0.6 (#29175) 2019-11-27 22:40:08 -08:00
Joakim Plate
69991bf3a2 Move GoogleConfig initialization into setup of component (#29170) 2019-11-27 20:45:43 -08:00
Raman Gupta
3ecf5596ff update demo service domain and service description (#29164)
* update demo service domain and service description

* move DOMAIN and service name to const.py

* update per balloob's service name suggestion

* update service name in services.yaml

* update service name constant's name
2019-11-27 20:36:40 -08:00
Paulus Schoutsen
4cfd24a03a Fix mobile app device identifiers (#29173) 2019-11-27 20:27:22 -08:00
Dan Jones
665613e395 Add fan support to lutron_caseta (#29033)
* Adding lutron_caseta fan controller. Updated to pylutron 0.5.1

* Accidental import remain

* updating for black formatting

* Fix blank spaces

* Moving third party import

* update to 0.5.1 to pass checks

* fix deletion of new line

* Update fan.py

* Update with dev branch, update from comments, added mediumhigh
2019-11-28 02:45:36 +01:00
Raman Gupta
f1a4e212cc Update service domain for alarmdecoder from 'alarm_control_panel' to 'alarmdecoder' (#29127)
* update alarmdecoder service domain

* update alarmdecoder service name

* black formatting
2019-11-27 16:51:40 -08:00
Raman Gupta
88376bf363 move wemo services to wemo domain (#29135) 2019-11-27 16:49:12 -08:00
Raman Gupta
9fd058aa33 move soundtouch services to soundtouch domain (#29140) 2019-11-27 16:47:45 -08:00
HomeAssistant Azure
f6dd51a7fb [ci skip] Translation update 2019-11-28 00:32:18 +00:00
Raman Gupta
7ecd5b5e5a add services.yaml description for service (#29160) 2019-11-27 14:18:21 -08:00
Raman Gupta
ceb1528b50 Update bluetooth_tracker service name and domain from 'device_tracker' to 'bluetooth_tracker' (#29161)
* move service constants to const.py, update service domain, add service description

* update .coveragerc
2019-11-27 14:18:01 -08:00
Raman Gupta
b6d94bcc96 Change apns service domain and remove unused variable (#29165)
* change apns service domain and remove unused variable

* fix tests

* move DOMAIN to const.py and import DEVICE_TRACKER_DOMAIN from base component
2019-11-27 14:15:25 -08:00
Robert Svensson
bdb3eb1683 Handle case when device can be None (#29171) 2019-11-27 14:14:19 -08:00
jjlawren
88441d5f68 Reduce connection timeout to avoid config flow timeouts (#29172) 2019-11-27 14:14:01 -08:00
Raman Gupta
acc10c296e move import to top and add service definition for pilight (#29163)
* move import to top and add service definition for pilight

* move import above HA imports
2019-11-27 21:26:54 +01:00
Tsvi Mostovicz
d7a66e6e4c Return Jewish Calendar holiday type id support (#29168)
* Bring back holiday type id as a attribute to the holiday sensor

* Add test for holiday type id attribute
2019-11-27 20:52:03 +01:00
Brett T. Warden
fa1622fe8b Use roku.poweron method for media_player.turn_on (#29123)
Instead of using the roku.power method, which toggles power,
implement the media_player.turn_on command for the roku component
by calling the new roku.poweron method.

Fixes #28961, but depends on upstream
https://github.com/jcarbaugh/python-roku/pull/53
2019-11-27 18:19:10 +01:00
Raman Gupta
8ef8a314df Update service domain for ifttt from 'alarm_control_panel' to 'ifttt' (#29129)
* update service domain for ifttt

* update missed variable references
2019-11-27 18:17:56 +01:00
Raman Gupta
82fe409961 add services.yaml description for matrix service (#29159) 2019-11-27 18:15:15 +01:00
Raman Gupta
b274fcba05 Update service domain for harmony from 'remote' to 'harmony' (#29146)
* move harmoney services to harmony domain

* update service names
2019-11-27 18:14:46 +01:00
Raman Gupta
d577868190 move yamaha service to yamaha domain (#29142) 2019-11-27 18:13:54 +01:00
Raman Gupta
ef21fd2536 Update services.yaml for nuheat (#29133)
* update services.yaml for nuheat

* update tests

* black formatting
2019-11-27 15:20:40 +01:00
mvn23
fdf0793fdd Add opentherm_gw device support (#28722)
* Add opentherm_gw device support

* Add support for enabling/disabling of opentherm_gw entities

* Disable sensors by default, base climate entity_id on gw_id instead of friendly_name to guarantee uniqueness

* Remove platform name from unique_id
2019-11-27 08:14:41 -05:00
Raman Gupta
12ae8b025f move squeezebox service to squeezebox domain (#29141) 2019-11-27 13:54:00 +01:00
Raman Gupta
59939004bf Update service domain for mill from 'climate' to 'mill' (#29132) 2019-11-27 13:47:38 +01:00
Abílio Costa
a08df53dbc Add "gentle" mode for Xiaomi Roborock vacuum (#29004)
* Add "gentle" mode for Xiaomi Roborock vacuum

* fix tests
2019-11-27 13:46:13 +01:00
Tom Brien
8f05388bc5 Remove ios warning for no devices subscribed to ios.notify (#29153)
Since 2019.1 has launched there is a perfectly reasonable (in fact the standard) case where ios component is loaded (i.e. actionable notifications) but no devices are registed for the now defunct `ios.notify` service. As such, the log warning relating to this case is no longer relevant.
2019-11-27 13:35:38 +01:00
Raman Gupta
c80f284ca4 Update service domain for mysensors from 'switch' to 'mysensor… (#29147) 2019-11-27 13:31:40 +01:00
Raman Gupta
2d2ab452ca update envisalink service domain (#29126) 2019-11-27 11:27:48 +01:00
Raman Gupta
1681d36637 Update service domain for todoist from 'calendar' to 'todoist' (#29131)
* move todoist constants to const.py and update service domain

* update .coveragerc

* remove unused variable

* save file
2019-11-27 11:26:59 +01:00
Paulus Schoutsen
004476a1f8 Add intent integration to expose intent handle API (#29124)
* Add intent integration to expose intent handle API.

* Run hassfest + fix scaffolding

* Update __init__.py
2019-11-27 11:25:43 +01:00
Raman Gupta
ec61a86678 move service constants to const.py and move channels services to channels domain (#29139) 2019-11-27 11:23:52 +01:00
Raman Gupta
1f13809c6d Update service domain for lifx from 'light' to 'lifx' (#29136)
* update service domain for lifx custom services

* fix service name
2019-11-27 11:23:06 +01:00
Raman Gupta
9e882ef6b4 move wink service definitions from lock to wink domain (#29137) 2019-11-27 11:21:52 +01:00
Raman Gupta
5120181e0e move facebox service to facebox domain (#29151) 2019-11-27 11:20:24 +01:00
Raman Gupta
c72e230432 move songpal service to songpal domain (#29143) 2019-11-27 11:19:01 +01:00
Raman Gupta
0ff0ec7d3e move econet services to econet domain (#29149) 2019-11-27 11:18:21 +01:00
Raman Gupta
ff4d256893 move icloud services to icloud domain (#29144) 2019-11-27 11:16:53 +01:00
Raman Gupta
b8f03aa3be move neato service to neato domain (#29148) 2019-11-27 11:15:59 +01:00
Raman Gupta
975ee0ea7f Update service domain for elkm1 from 'alarm_control_panel' to 'elkm1' (#29128)
* move elkm1 services to elkm1 domain

* update missed variable references
2019-11-27 11:15:27 +01:00
Raman Gupta
b7896c7b6f move nuki service to nuki domain services.yaml and remove missing service (#29138) 2019-11-27 11:14:22 +01:00
Raman Gupta
fb9f561052 move html5 service to html5 domain (#29145) 2019-11-27 11:13:27 +01:00
Chris Caron
8933540950 bumped supported apprise version to 0.8.2 (#29125) 2019-11-26 20:18:43 -08:00
Ville Skyttä
5bc8ef962b Upgrade huawei-lte-api to 1.4.4 (#29130)
https://github.com/Salamek/huawei-lte-api/releases/tag/1.4.4

Closes https://github.com/home-assistant/home-assistant/issues/28922
2019-11-26 20:18:24 -08:00
Ville Skyttä
738b3363d9 UpCloud updates (#28646)
* Upgrade upcloud-api to 0.4.5

* Fix UpCloud name spelling in manifest

* Update data at setup time for better initial states

* Clean up signal handlers on remove

* Signal data update on server start

To keep related binary sensor better up to date.

* Improve track_time_interval emulation for initial update
2019-11-26 20:17:14 -08:00
HomeAssistant Azure
2a7aac6afc [ci skip] Translation update 2019-11-27 00:32:16 +00:00
springstan
33c6ee80ad Move imports to top for traccar (#29116) 2019-11-26 16:07:12 -08:00
springstan
5eaafcfd7f Move imports to top for touchline (#29117) 2019-11-26 16:06:44 -08:00
springstan
4e96ca9486 Move imports to top for temper (#29118) 2019-11-26 16:02:50 -08:00
springstan
555190990a Move imports to top for tank_utility (#29119) 2019-11-26 16:02:36 -08:00
Joakim Plate
06231e7ac2 Move request sync logic into GoogleConfig (#28227)
* Move request sync logic into GoogleConfig

* Return http status code for request_sync same as cloud

* agent_user_id is not optional for async_sync_entities now

* No need in checking parameter here

* Adjust some things for cloud tests

* Adjust some more stuff for cloud tests

* Drop uneccessary else

* Black required change

* Let async_schedule_google_sync take agent_user_id

* Assert return value on api call

* Test old api key method

* Update homeassistant/components/google_assistant/helpers.py

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
2019-11-26 22:47:13 +01:00
gjbadros
5f1b0fb15c Allow rest sensor list responses (#28835)
* Make rest sensor a little bit more flexible and allow the response to be a list with 0th element being a dictionary

* Black formatter wanted a different formatting

* Added test case for a list response with dict as 0th element

* Fixed lint error - it thinks a + STRING is an avoidance of using % sequences for log messages; I generally prefer explicit + rather than string juxtaposition for combining string literals, but sounds like that's not the standard

* Fixed test case -- I added it to the wrong scenario and need to use the one with json_attrs.
2019-11-26 22:10:58 +01:00
springstan
b72c6c4424 Update list of supported countries for Workday Sensor (#29000)
* Updated list of supported countries

* Added Honduras and Polish back to the list

* Added HND for Honduras to the list
2019-11-26 22:09:00 +01:00
Colin O'Dell
0849d42dc6 Remove the alarm_control_panel CODEOWNER (#29114)
Although I originally contributed this component, I no longer use it myself and haven't been following the internal development of HA, so I'm no longer a good person to review any further changes to this component.  I would therefore like to relinquish my CODEOWNER status over this component.
2019-11-26 21:57:45 +01:00
Evgeny
4ea47333d8 Update roomba bin state checking (#29030)
* Fixed bin full detection

* Refactored bin check

* Fix after pylint
2019-11-26 21:31:00 +01:00
Alex van den Hoogen
fe626f5669 Add Post Processing Jobs to NZBGet component (#29027)
* Added Post Processing Jobs to NZBGet component

In the current implementation of the NZBGet component there is no way of
knowing whether NZBGet is still in the Post Processing phase of a download
job. This can be very useful information. For instance when you want to
suspend the NZBGet service when all queue items have been completed.

This change adds that additional sensor.

* Renamed Count to Jobs in NZBGet component
2019-11-26 11:31:20 -08:00
sophof
078a7e446d Fix all entities triggering all observations in bayesian sensor (#28979)
* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list

* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list

* use get instead of direct keys for dict

* change fromkeys to dict comprehension to prevent append working on a list by reference. Now each entity id has its own seperate list

* use get instead of direct keys for dict

* changed get back to []
2019-11-26 11:26:40 -08:00
Nikolay Vasilchuk
a37260faa9 StarLine integration (#27197)
* Device Tracker works

* Device Tracker works

* Binary Sensor

* Sensor

* Lock

* Switch and service

* New switches

* Update interval options

* WIP

* Translation errors

* Check online state

* WIP

* Move to aiohttp

* Some checks

* CI

* CI

* .coveragerc

* Black

* icon_for_signal_level test

* update_interval renamed to scan_interval

* async logic

* Fix cookie read

* Requirement starline

* Reformat

* Requirements updated

* ConfigEntryNotReady

* Requirement starline

* Lint fix

* Requirement starline

* available status

* Translations

* Expiration to config

* CI

* Linter fix

* Small renaming

* Update slnet token

* Starline version bump

* Fix updates

* Black

* Small fix

* Removed unused fields

* CI

* set_scan_interval service

* deps updated

* Horn switch

* Starline lib updated

* Starline lib updated

* Black

* Support multiple integrations

* Review

* async_will_remove_from_hass

* Deps updated

* Test config flow

* Requirements

* CI

* Review

* Review

* Review

* Review

* Review

* CI

* pylint fix

* Review

* Support "mayak" devices

* Icons removed

* Removed options_flow

* Removed options_flow test

* Removed options_flow test
2019-11-26 11:17:11 -08:00
Raman Gupta
c21650473a Update service domain for epson from 'media_player' to 'epson' (#29113)
* update .coveragerc, move epson constants to const.py, move epson cutsom service to epson domain

* Newline in services.yaml
2019-11-26 11:12:50 -08:00
Raman Gupta
9e01591cac Update service domain for blackbird from 'media_player' to 'blackbird' (#29112)
* move service constants to const.py, update blackbird custom service domain

* Readd bluesound services.yaml entries since it should be part of a different branch
2019-11-26 11:10:13 -08:00
Raman Gupta
2da37778af Update service domain for bluesound from 'media_player' to 'bluesound' (#29111)
* move service constants to const.py, move services to bluesound domain

* Remove bluesound services from media_player/services.yaml
2019-11-26 11:06:34 -08:00
rappenze
1c73ac5df8 Fix Vicare imports (#29071)
* fix import

* Update water_heater.py

* use ValueError

* use ValueError
2019-11-26 10:46:53 -08:00
Aaron Bach
2cdd8ad15e Add new properties and services for V3 SimpliSafe systems (#28997)
* Add new properties and services for V3 SimpliSafe systems

* Small semantic change

* Updated docstrings

* Semantics

* Streamlined adding V3 properties

* Re-add attribute

* Bump to 5.3.5

* Owner comments

* Correct coroutine name
2019-11-26 11:44:40 -07:00
springstan
595567ad82 Move imports to top for trafikverket_weatherstation (#29108) 2019-11-26 10:23:08 -08:00
springstan
c221fc5d22 Move imports to top for thinkingcleaner (#29110) 2019-11-26 10:22:57 -08:00
springstan
23d4445de3 Move imports to top for trackr (#29109) 2019-11-26 10:22:28 -08:00
springstan
a27d8570c8 Move imports to top for unifi_direct (#29106) 2019-11-26 10:12:00 -08:00
springstan
4119ade2af Move imports to top for travisci (#29107) 2019-11-26 10:11:43 -08:00
springstan
825ac36ee7 Move imports to top for uvc (#29072)
* Move imports to top for uvc

* Fixed linting error

* Renamed parameter in constructor to avoid redefining import
2019-11-26 10:11:10 -08:00
Quentame
9a388e2dd2 Move dominos imports at top-level (#29090) 2019-11-26 10:10:20 -08:00
Quentame
c84590b18c Move free_mobile imports at top-level (#29092) 2019-11-26 10:10:05 -08:00
Quentame
274508f8fd Move fortigate imports at top-level (#29093) 2019-11-26 10:09:52 -08:00
Quentame
915d23158d Move foobot imports at top-level (#29094) 2019-11-26 10:09:32 -08:00
Quentame
4107fd9a25 Move folder_watcher imports at top-level (#29095) 2019-11-26 10:09:20 -08:00
Quentame
7a04f0c0df Move flunearyou imports at top-level (#29096) 2019-11-26 10:09:10 -08:00
Quentame
a7c4abba98 Move flexit imports at top-level (#29097) 2019-11-26 10:08:53 -08:00
springstan
21ed87a773 Move imports to top for ubee (#29105) 2019-11-26 10:08:34 -08:00
springstan
03fe7cb347 Move imports to top for twilio_call (#29104) 2019-11-26 10:08:16 -08:00
springstan
33af72a54f Move imports to top for uptimerobot (#29103)
* Move imports to top for uptimerobot

* Move imports to top for twilio_call

* Revert twilio_call
2019-11-26 10:07:46 -08:00
Raman Gupta
499838d5a7 move service constants to const.py, move custom services to monoprice domain (#29099) 2019-11-26 10:07:29 -08:00
SukramJ
c1163283ff Add hvac_action to HomematicIP Cloud Climate (#28859)
* Add hvac_action to HomematicIP Cloud Climate

* update test data

* limit hvac action to radiator only

* add checks

* Fix test to match new conditions
2019-11-26 10:02:30 -08:00
springstan
d0c47dfee2 Move imports to top for webostv (#29102) 2019-11-26 09:49:14 -08:00
Raman Gupta
42ce5e8b07 Update service domain for local_file from 'camera' to 'local_file' (#28890)
* update service domain for local_file from camera to local_file

* remove service.yaml entry in camera component as part of change

* fix test

* move constants to const.py

* add local_file/const.py to .coveragerc

* remove local_file/const.py from .coveragerc since component has tests
2019-11-26 09:22:55 -08:00
Rami Mosleh
a5960830d7 Add host field to add_torrent service (#28653)
* Add host field to add_torrent service

* Code cleanup

* use name instead of host for service

* update add_torrent
2019-11-26 09:22:12 -08:00
Matthew Donoughe
f8a36499c1 Add serial to caseta devices (#28886)
* add model and serial to caseta devices

* use just serial for unique id

* add display name for entity registry

* remove caseta device model

* just store device

* state and device are the same
2019-11-26 09:06:14 -08:00
Hmmbob
9e971495f7 Update WazeRouteCalculator, add config options, fix subscription (#27963)
* Update WazeRouteCalculator to 0.11

* Update WazeRouteCalculator to 0.11

* Adding new config options to Waze

* Fixing avoid subscription option

* Update WazeRouteCalculator to 0.12

There was an error in the underlying lib

* Update WazeRouteCalculator to 0.12
2019-11-26 09:05:06 -08:00
Quentame
44e708f72b Move ee_brightbox imports at top-level (#29054)
* Move ee_brightbox imports at top-level

* Fix tests

* Fix : Commented out code
2019-11-26 08:59:55 -08:00
Quentame
78d5184186 Move icloud imports at top-level (#29089) 2019-11-26 08:59:42 -08:00
Austin Drummond
c47ed743f1 Fix HomeKit linked battery sensor crash (#28974)
* fix homekit linked battery sensor crash

* simplified missing linked battery

* fixed formatting

* Make if faster
2019-11-26 08:55:33 -08:00
Pascal Vizeli
f9571c9637 Fix Alexa tests (#29100) 2019-11-26 16:17:41 +01:00
Bendik Brenne
c538d899a2 Fix empty data attribute in sinch service call (#28253)
* Fix empty data attribute in sinch service call

* Simplified the PR as per @MartinHjelmare`s request.
2019-11-26 14:14:09 +01:00
Paulus Schoutsen
c76f768a82 Make conversation and intent context aware (#28965)
* WIP

* LINT
2019-11-26 11:30:21 +01:00
Tim McCormick
6c6a5c50a5 Fix digest auth rest sensors (#28153)
* Fix digest auth rest sensors

* Refactor to use request()

* Fix black complaints

* Don't rename data variable

Don't rename the data variable, appears several other sensors have been coded to rely on it

* Fix tests

test_setup_missing_schema:
Change the exception to check for to PlatformNotReady. With the change away from prepared statements, we no longer get the MissingSchema error during setup - we get it when we attempt to call the endpoint. Since the result is PlatformNotReady, which is what we want, and the error log clearly contains a note that the schema is incorrect I think this is fine.

test_setup_failed_connect & test_setup_timeout:
These aren't checking for minimum config, and they're not invoking the correct method to have the default config filled in. Therefore I've just added the correct minimum config so these can continue to test what they're there to test.

test_update_request_exception:
Testing a request exception with the assert on line 404! Excellent. Anyway, we've moved from using the requests Session object to the requests.request function - so the patch needed to be altered to ensure the RequestException was raised.

* Remove no longer needed import

* Fix binary sensor test in same way
2019-11-25 23:22:11 -08:00
ochlocracy
b0925e60d7 Explicitly include "Alexa" Interface in discovery response (#28218)
* Explicitly include Alexa Interface to discovery response.

* Updated cloud component test to reflect additional Alexa interface.

* Updated test for recently added SeekController.
2019-11-25 23:05:10 -08:00
Bas Nijholt
db425f5432 Simplify getting alias from tplink smartplug.context (#28696)
* tplink: simplify getting alias from smartplug.context

* add a doc-string to private property
2019-11-25 23:03:38 -08:00
Ville Skyttä
99c7608fb4 Lint config cleanups (#28864)
* Remove bunch of unneeded lint exclusions

* Use symbolic names instead of identifiers in pylint disables

* Tighten scope of some pylint disables
2019-11-25 22:40:08 -08:00
Barry Williams
afaa464142 If volume disabled do not enable support (#28635) 2019-11-25 22:34:45 -08:00
Shulyaka
1f72de108c google_assistant: support for humidity sensors (#28695) 2019-11-25 22:12:20 -08:00
Emeric
72ccc83651 Add uptime and number of reboot for bbox sensor (#28880)
* Add uptime and reboot for bbox sensor

* Use timestamp for uptime

* Fix black format
2019-11-25 21:34:13 -08:00
Adam Cheng
6e7b5b71f5 Add scale and offset to temperature values to Modbus Climate (#27045)
* Add scale and offset to temperature values

* fix (no-else-return)

* Update manifest.json

* Added codeowners
2019-11-25 20:59:01 -08:00
Dmitry Krasnoukhov
4881bc04d8 Allow to change MQTT climate hold mode (#28988) 2019-11-25 20:53:37 -08:00
springstan
5f4fc271d4 Fixed CONFIG_SCHEMA and getting data from the config (#28985) 2019-11-25 20:27:51 -08:00
Pedro Lamas
db0008e62c Allow templates in rest_command headers (#26099) 2019-11-25 19:39:56 -08:00
springstan
cc255da038 Move imports to top for ecovacs (#29017)
* Moved imports in ecovacs integration

* Imported sucks once, reused it multiple times
2019-11-25 18:01:48 -08:00
Michaël Arnauts
cc346e57e6 Cast the volume_level of a universal media_player to a float (#29045)
* Make sure to cast the volume_level of a universal media_player to a float

* Fix test that expects the wrong bahaviour

* Catch exception instead of checking for None
2019-11-25 18:01:24 -08:00
Quentame
8a413b152d Move esphome imports at top-level (#29064) 2019-11-25 18:00:58 -08:00
olijouve
87de5db535 Fix Onvif setup error: premature end of connection on GetStreamURI (#26781)
* Fix Onvif setup error with a premature end of connection on GetStreamUri wsdl call

Reconnect to onvif camera after getting profiles to fix this error :

[homeassistant.components.onvif.camera] Retrieving stream uri                                                                                                                                 
[zeep.asyncio.transport] HTTP Post to http://192.168.1.15/onvif/Media:                                                                                                                        
b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<soap-env:Envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope"><soap-env:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecur
2019-09-20 01:08:51 ERROR (MainThread) [homeassistant.components.camera] Error while setting up platform onvif                                                                                                                       
Traceback (most recent call last):                                                                                                                                                                                                   
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 553, in write_bytes                                                                                                                                   
    await self.body.write(writer)                                                                                                                                                                                                    
  File "/usr/local/lib/python3.7/site-packages/aiohttp/payload.py", line 231, in write                                                                                                                                               
    await writer.write(self._value)                                                                                                                                                                                                  
  File "/usr/local/lib/python3.7/site-packages/aiohttp/http_writer.py", line 101, in write                                                                                                                                           
    self._write(chunk)                                                                                                                                                                                                               
  File "/usr/local/lib/python3.7/site-packages/aiohttp/http_writer.py", line 67, in _write                                                                                                                                           
    raise ConnectionResetError('Cannot write to closing transport')                                                                                                                                                                  
ConnectionResetError: Cannot write to closing transport                                                                                                                                                                              
                                                                                                                                                                                                                                     
The above exception was the direct cause of the following exception:                                                                                                                                                                 
                                                                                                                                                                                                                                     
Traceback (most recent call last):                                                                                                                                                                                                   
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform                                                                                                                         
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)                                                                                                                                                                
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for                                                                                                                                                            
    return fut.result()                                                                                                                                                                                                              
  File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 110, in async_setup_platform                                                                                                                          
    await hass_camera.async_initialize()                                                                                                                                                                                             
  File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 168, in async_initialize                                                                                                                              
    await self.async_obtain_input_uri()                                                                                                                                                                                              
  File "/usr/src/homeassistant/homeassistant/components/onvif/camera.py", line 266, in async_obtain_input_uri                                                                                                                        
    stream_uri = await media_service.GetStreamUri(req)                                                                                                                                                                               
  File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/bindings.py", line 13, in send                                                                                                                                           
    options["address"], envelope, http_headers                                                                                                                                                                                       
  File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/transport.py", line 107, in post_xml                                                                                                                                     
    response = await self.post(address, message, headers)                                                                                                                                                                            
  File "/usr/local/lib/python3.7/site-packages/zeep/asyncio/transport.py", line 95, in post                                                                                                                                          
    proxy=self.proxy,                                                                                                                                                                                                                
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 497, in _request                                                                                                                                             
    await resp.start(conn)                                                                                                                                                                                                           
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 844, in start                                                                                                                                         
    message, payload = await self._protocol.read()  # type: ignore  # noqa                                                                                                                                                           
  File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 588, in read                                                                                                                                                
    await self._waiter                                                                                                                                                                                                               
aiohttp.client_exceptions.ClientOSError: [Errno None] Can not write request body for http://192.168.1.15/onvif/Media

* Add code comment

* Update camera.py

* Lint.
2019-11-25 17:56:17 -08:00
Andrew Onyshchuk
f5c01cc30d Improve z-wave thermostat support (#27040)
* Improve z-wave thermostat support

Discover thermostat using COMMAND_CLASS_THERMOSTAT_MODE
so that it is a single entitiy in case there are multiple
setpoints. z-wave docs mention it is always present.
Add support for single/range target temperature depending
on the current thermostat mode.

* Remove debug print

* Refactor Z-Wave dynamic setpoint(s) selection

- use explicit mapping between modes and setpoints as defined in
Z-Wave specs
- add tests for away (2 setpoints) and heat eco (1 setpoint) modes

* Add non-standard thermostat mode aliases
2019-11-25 16:32:37 -08:00
HomeAssistant Azure
807de1aeb3 [ci skip] Translation update 2019-11-26 00:32:24 +00:00
Gil Peeters
0088995b98 Refactor template components to extract common routines (#27064)
* Added availability_template to Template Cover platform

* Added availability_template to Template Binary Sensor platform

* Added availability_template to Template Fan platform

* Added availability_template to Template Light platform

* Added availability_template to Template Sensor platform

* Added availability_template to Template Switch platform

* Added availability_template to Template Vacuum platform

* Added availability_template to Template Lock platform

* Added to test for invalid values in availability_template

* Black and Lint fix

* black formatting

* Added to test for invalid values in availability_template

* black

* Added to test for invalid values in availability_template

* Added to test for invalid values in availability_template

* simplified exception handler

* Fixed Entity discovery big and coverage

* Added to test for invalid values in availability_template

* flake8

* fixed component ID in test

* Added to test for invalid values in availability_template

* Added to test for invalid values in availability_template

* Made availability_template redering erorr more concise

* Cleaned template setup

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

* Refactored Template initialisation

* Refactored Template initialisation

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Updated AVAILABILITY_TEMPLATE Rendering error

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Moved const to package Const.py

* Fix import order (pylint)

* Fix import order (pylint)

* Fix import order (pylint)

* Fix import order (pylint)

* Fix import order (pylint)

* Fix import order (pylint)

* Fix import order (pylint)

* Fixed linting issues

* Moved availability_template rendering to common loop

* Moved availability_template rendering to common loop

* Moved availability_template rendering to common loop

* Moved availability_template rendering to common loop

* Removed 'Magic' string

* Removed 'Magic' string and removed duplicate code

* Removed 'Magic' string

* Removed 'Magic' string

* Brought contant into line

* Refactored availability_tempalte rendering to common loop

* Removed 'Magic' string

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

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

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

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

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

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

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

* reverted _available back to boolean

* reverted _available back to boolean

* reverted _available back to boolean

* reverted _available back to boolean

* reverted _available back to boolean

* reverted _available back to boolean

* reverted _available back to boolean

* Fixed tests (magic values and state checks)

* Fixed tests (magic values and state checks)

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

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

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

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

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

* Removed duplicate

* Clean up and remove debug

* Reverted Dev Container Change
2019-11-25 16:30:49 -08:00
Jacob McSwain
d5db55354e Add SSL configuration (#29038)
* OpenGarage: Add protocol configuration (#29037)

* OpenGarage: Change CONF_PROTOCOL to CONF_SSL

Resolves https://github.com/home-assistant/home-assistant/pull/29038#discussion_r350173095

* OpenGarage: Add `verify_ssl` as an option
2019-11-25 15:47:18 -08:00
Quentame
112a3f5e9f Move hangouts imports at top-level (#29055) 2019-11-25 15:44:11 -08:00
SukramJ
1fde0d18ed Add supported_features to Alarm Control Panel to limit device_actions (#29065)
* Add supported_features to Alarm Control Panel

* mark supported_features abstract

* Add SF to async_register_entity_service

* fix test

* Add missing SF SUPPORT_ALARM_ARM_CUSTOM_BYPASS

* isort

* fix async_register_entity_service

* Update alarm_control_panel.py
2019-11-25 15:42:53 -08:00
springstan
3203cba01f Move imports to top for xiaomi_tv (#29073) 2019-11-25 15:40:42 -08:00
springstan
c95a01ce3a Move imports to top for yale_smart_alarm (#29074) 2019-11-25 15:40:25 -08:00
springstan
729116ff3a Move imports to top for version (#29075) 2019-11-25 15:40:08 -08:00
springstan
a64d04da56 Move imports to top for xeoma (#29076) 2019-11-25 15:39:54 -08:00
springstan
d211a29cae Move imports to top for xfinity (#29077) 2019-11-25 15:39:44 -08:00
Quentame
844eb6b8ef Move dlna_dmr imports at top-level (#29082) 2019-11-25 15:37:19 -08:00
Quentame
5015993f30 Move upnp imports at top-level (#29083) 2019-11-25 15:37:03 -08:00
Quentame
29e2201446 Move velux imports at top-level (#29085) 2019-11-25 15:36:37 -08:00
Quentame
12c396fb19 Move epsonworkforce imports at top-level (#29086) 2019-11-25 15:36:04 -08:00
ochlocracy
970a80216d Add valid inputs to alexa InputController (#28483)
* Add supported Inputs for Alexa.InputController.

* Fixed Test.

* Added default parameter for get() per @quthla suggestion.

* Added additional tests, assets call data.

* Added additional tests, asserts call data.

* Accounted for space in input name, added tests to handle space.
2019-11-25 15:17:12 -08:00
mvn23
f53812f261 Fix opentherm_gw config flow migration (#28474)
* Fix opentherm_gw migration to config flow.

* Address feedback
2019-11-25 15:08:18 -08:00
ochlocracy
5ea5db32d2 Add Alexa.ModeController to cover entities, adds open/close utterances! (#28309)
* Added Alexa.ModeController to cover entities.

* Added synonyms for directives.

* Updated tests for additional synonyms for directives.

* Added Alexa.ModeController to cover entities.

* Sacrifice unused variable in split() to please the Pylint gods.

* Removed duplicate instance check.

* Corrected variable name, clarified definition and consistency.

* Changed list to tuple.
2019-11-25 15:07:33 -08:00
ochlocracy
dc8c085872 Support default display category based one switch device_class. (#28221) 2019-11-25 14:50:43 -08:00
Quentame
f971e16749 Move eddystone_temperature imports at top-level (#29052)
* Move eddystone_temperature imports at top-level

* Fix pylint ?
2019-11-25 23:46:12 +01:00
Heine Furubotten
04754b354c Entur public transport code owner (#29080)
* entur code owner

* gen codeowners file
2019-11-25 23:45:33 +01:00
Heine Furubotten
66b7dfec53 Nilu integration code owner (#29081)
* nilu code owner

* gen codeowners file
2019-11-25 23:45:14 +01:00
Quentame
c4108fec4f Move yi imports at top-level (#29001)
* Move yi imports at top-level

* Review 1 : removing useless disable=import-error

* Review 2 : removing useless disable=import-error
2019-11-25 15:32:35 -07:00
majuss
3dd5222ec7 Bumped lupupy to version 0.0.18 (#28989)
* Bumped lupupy

* Ran gen req

* Ran gen hassfest


Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
2019-11-25 20:21:54 +01:00
SukramJ
9a5dc848c9 Fix climate device actions (#28660)
* limit climate device actions

* update test

* use supported_features for device_action

* Fix tests

* user support_features for device_condition
2019-11-25 11:12:00 -08:00
Bas Nijholt
ea6417bea3 track Raspberry Pi 4 image in the version integration (#29059) 2019-11-25 10:07:27 -08:00
Quentame
e40dda3ce3 Move econet imports at top-level (#29050) 2019-11-25 16:06:37 +01:00
Ville Skyttä
f504ac8c65 Drop < 0.97 Huawei LTE sensor unique id migration workaround (#29060) 2019-11-25 16:06:10 +01:00
Pascal Vizeli
9dc63419c4 Bump numpy 1.17.4 / opencv 4.1.2 for Python 3.8 (#29061) 2019-11-25 16:05:21 +01:00
fredericvl
3e4f7fddf2 Handle offline state of SAJ inverters (fixes #29007) (#29009)
* Fix for SAJ issue #29007

* Sort mapping
2019-11-25 08:46:49 -05:00
Quentame
335473cb71 Move hdmi_cec imports at top-level (#29056) 2019-11-25 14:43:17 +01:00
cgtobi
6da01904c4 Fix typo in scaffold generator script (#29058) 2019-11-25 14:42:40 +01:00
SukramJ
1043712c54 Code maintenance for HomematicIP Cloud (#28980)
* Add more type hints to Homematic IP Cloud

* Rename device to entity in async_setup_entry
2019-11-25 14:17:14 +01:00
Otto Winter
b927f40f00 Add climate hvac_action for ESPHome (#28993)
* Add climate action

* Bump aioesphomeapi
2019-11-25 14:13:19 +01:00
Quentame
5edc45e9af Move fibaro imports at top-level (#28995) 2019-11-25 14:12:01 +01:00
springstan
ccb05764b6 Move imports to top for ffmpeg_motion and ffmpeg_noise (#29026)
* Move imports to top for ffmpeg_motion and ffmpeg_noise

* Fixed tests
2019-11-25 14:11:23 +01:00
Quentame
71bafba9ec Move ecoal_boiler imports at top-level (#29049) 2019-11-25 14:08:52 +01:00
Quentame
cb5d00a07b Move ebox imports at top-level (#29048) 2019-11-25 14:08:28 +01:00
kuchel77
63f66785ad Added error checking (#29041)
Add in error checking in case disks or volumes are empty.
2019-11-25 14:08:04 +01:00
Quentame
752a4d7221 Move dyson imports at top-level (#29047) 2019-11-25 14:06:39 +01:00
Quentame
193769c791 Move vizio imports at top-level (#29046) 2019-11-25 14:05:46 +01:00
Quentame
3122182ab2 Move edimax imports at top-level (#29053) 2019-11-25 14:05:07 +01:00
Michaël Arnauts
c21c167f4e Use TADO_MODE for temperature overrides in tado climate component. (#29014)
* Use TADO_MODE for temperature overrides in tado climate component.

* Fix typo in pydoc

* Add myself as a code owner

* Update CODEOWNERS file
2019-11-25 14:04:36 +01:00
Chris Halls
5690313084 Report device unavailable state through Emulated Hue (#29029)
If an entity is in unavailable state in HA, we expose this
as unreachable to Hue clients. This helps when troubleshooting
Hue issues because you can now receive feedback if there is an issue
on the HA side.
2019-11-25 12:17:08 +01:00
springstan
aa00e56e1c Move imports to top for discovery (#29020) 2019-11-25 12:15:55 +01:00
escoand
430f7bdfd4 Catch samsungtv websocket exceptions (#28849)
* catch websocket exceptions

* fix syntax

* use exceptions from base class

* add comments

* add test
2019-11-25 10:45:50 +01:00
Fabian Affolter
5b64052d69 Upgrade discord.py to 1.2.5 (#28998) 2019-11-25 09:50:10 +01:00
springstan
cc3559d54c Move imports to top for geizhals (#29021) 2019-11-25 09:43:59 +01:00
springstan
ee038999fc Move imports to top for todoist (#29022) 2019-11-25 09:43:29 +01:00
springstan
fe9084bb3b Move imports to top for watson_tts (#29023) 2019-11-25 09:42:37 +01:00
Quentame
5822deda1d Move philips_js imports at top-level (#29003) 2019-11-25 09:41:37 +01:00
Philipp Schmitt
6307f383a7 Fix #27028 (#29042) 2019-11-25 09:40:32 +01:00
Josh Anderson
8fade79a0a Add an early start sensor for heating zones (#28732) 2019-11-25 09:13:59 +01:00
Paulus Schoutsen
ebc0ed1e22 Merge pull request #29039 from home-assistant/rc
0.102.2
2019-11-24 21:16:56 -08:00
Paulus Schoutsen
8a467bbf5c Bumped version to 0.102.2 2019-11-24 19:57:50 -08:00
Franck Nijhof
b10d42e330 Alexa gracefully handle climate devices without presets (#29010) 2019-11-24 19:57:43 -08:00
Bram Kragten
2af1ba7492 Updated frontend to 20191119.6 (#28996) 2019-11-24 19:57:42 -08:00
shred86
a56f7f5d75 Fix temp not being reported properly (#28973) 2019-11-24 19:57:42 -08:00
cgtobi
481f71107b Fix manual config (#28956) 2019-11-24 19:57:41 -08:00
Pascal Vizeli
2e85e3662f Fix ikea lights on deconz (#28949)
* Fix ikea lights on deconz

* check for None

* Use cleaner code style
2019-11-24 19:57:40 -08:00
jjlawren
c382406735 Fix Plex setup race condition v2 (#28943)
* Connect websocket when platforms ready, not when HA is ready

* Use callbacks from platform setup tasks instead

* Convert setup to async

* Apply suggestions from code review

Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
2019-11-24 19:57:40 -08:00
Franck Nijhof
48c289fad3 Alexa gracefully handle climate devices without presets (#29010) 2019-11-24 19:57:18 -08:00
Michaël Arnauts
647595fd67 Move imports to the top for Tado. (#29016) 2019-11-24 22:47:31 +01:00
springstan
1495df374b Made spotify playlist name validation less strict (#28684) 2019-11-24 20:53:26 +01:00
springstan
ce8e0e5489 Move imports to top for volkszaehler (#29025) 2019-11-24 20:31:15 +01:00
Franck Nijhof
94f8e634b2 Ensure wheel package is present when running Pylint (#29012) 2019-11-24 14:35:30 +01:00
HomeAssistant Azure
7c6b38d308 [ci skip] Translation update 2019-11-24 00:32:21 +00:00
Fabian Affolter
bbca6e3ac2 Upgrade shodan to 1.20.0 (#28983)
* Upgrade shodan to 1.20.0

* Upgrade mutagen to 1.43.0
2019-11-23 23:12:02 +01:00
Fabian Affolter
98eae305e2 Upgrade zeroconf to 0.24.0 (#28986) 2019-11-23 23:11:01 +01:00
Bram Kragten
6ad74fba30 Updated frontend to 20191119.6 (#28996) 2019-11-23 13:12:56 -08:00
Andrey Kupreychik
9fd8ffdc44 Bumped keenetic NDMS2 client version to 0.0.11 (#28990) 2019-11-23 21:22:50 +01:00
Fabian Affolter
2a8e99d799 Upgrade mutagen to 1.43.0 (#28984) 2019-11-23 18:01:27 +01:00
Jesse Hills
ebd38395fb Update pyjuicenet dependency (#28958)
Closes #28926
2019-11-23 16:46:48 +01:00
Fabian Affolter
f1d4a3cd6e Catch Zeroconf exception (#28728)
* Catch Zeroconf exception

* Make it an error
2019-11-23 16:46:06 +01:00
jjlawren
2c00a9ec68 Fix Plex setup race condition v2 (#28943)
* Connect websocket when platforms ready, not when HA is ready

* Use callbacks from platform setup tasks instead

* Convert setup to async

* Apply suggestions from code review

Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
2019-11-23 09:16:21 -06:00
majuss
614842bcf2 Bumped pypca to 0.0.7 (#28976) 2019-11-23 14:41:52 +01:00
shred86
0a58853689 Fix temp not being reported properly (#28973) 2019-11-23 12:29:54 +01:00
Josef Schlehofer
b4f477f4de Upgrade youtube_dl to 2019.11.22 (#28964) 2019-11-23 11:13:44 +01:00
Tomasz
23737e0225 Rename rest_command request to response, add exc_info for exceptions (#28521)
* rename request to response, isort and black fixes

* Log exception details

* Add status code to success log, reformat log

* new syntax for response

* changed info to debug
2019-11-23 11:02:52 +01:00
cgtobi
0bd01ba495 Fix manual config (#28956) 2019-11-23 11:00:26 +01:00
Chris Mandich
08432c7c09 Add flume support (#27235)
* Add Flume Sensor

Add support for Flume API and sensor

* Add support for choosing timezone

Timezone is now a required option in configuration.yaml

* Add Flume to coveragerc and CODEOWNERS

Add flume to be ommited from testing. Add @ChrisMandich as Flume Code owner

* Revert "Add Flume to coveragerc and CODEOWNERS"

This reverts commit 0b27437a3b.

* Update manifest.json

Added Documentation URL for Flume to HASS.IO

* Update manifest.json

Added missing Newline at EOF.

* Update sensor.py

Update sensor to not required Device ID for configuration. Now loops through all available Type 2 devices and adds them as an entity.

* Update Manifest, CODEOWNERS, and manifest.json

Resolved errors related to code owners and requirements. Using hassfest and gen_requirements_all

* Update sensor.py

Implemented recommendations from @Quentame. Including time zone from Home Assistant, Updated variable names, and Consolidated duplicate functions.

* Implemented suggested changes from @Quentame

This includes: components name, using f-strings instead of concat, snake_case for variables, constants for the addition of future device types, clearer errors, and removed variables no longer in use.

* Update sensor.py

Restored unit_of_measurement. Updated return to "gal".

* Address pylint errors

* Update sensor.py

Include protected attributes in setup_platform.

* Address Pylint errors

homeassistant/components/flume/sensor.py:63:11: W0703: Catching too general exception Exception (broad-except)
homeassistant/components/flume/sensor.py:133:8: R1720: Unnecessary "else" after "raise" (no-else-raise)
homeassistant/components/flume/sensor.py:162:8: R1705: Unnecessary "else" after "return" (no-else-return)
homeassistant/components/flume/sensor.py:236:8: R1720: Unnecessary "else" after "raise" (no-else-raise)

* Update sensor.py

I'm okay with the broad exception clause.
homeassistant/components/flume/sensor.py:65:11: W0703: Catching too general exception Exception (broad-except)

* Update sensor.py

Add more specific exceptions for Try/Except.

* Update Flume Sensory.py

add requirements, exclude from tests, us pyflume pypi package.

* Update sensor.py to support latest pyflume package

* Update manifest

provide better flow of manifest and easier readibility.

* Update manifest.json

Reccomended by @balloob as it is already a core requirement

* Update sensor.py

Add proposed changes from @balloob

* Update requirements_all.txt

pytz is a core dependency, removing flume's requirement for it.

* Update sensor.py

Added @MartinHjelmare recommended changes.

* Update sensor.py

Resolving PyLint error

* Update sensor.py

Remove `KeyError`. Add length check for flume entity list before adding.

* Update sensor.py

* Update pyflume version

* Update imports with isort

* Add line break between standard library and thirdparty imports.

* Remove throttle from sensor.py
2019-11-23 09:55:46 +01:00
HomeAssistant Azure
b4caa4ab82 [ci skip] Translation update 2019-11-23 00:32:17 +00:00
Jonas
829e0a7c42 Add Proxmox VE integration (#27315)
* Added the Proxmox VE integration

* Fixed code as described in PR #27315

* Fixed small linting error

* Fix code as described in PR #27315 code review

* Improve code as described in PR #27315
2019-11-22 23:03:41 +01:00
Santobert
c35f9ee35f Creating a scene by snapshotting entities (#28939)
* Initial commit

* Add tests

* service.yaml

* typo

* snapshooted -> snapshot

* snapshot_entities instead of snapshot

* Edit validator

* Fix tests

* Remove keys()

* Improve coverage

* Activate scenes

* Use pytest.raise

* snapshot -> snapshotted
2019-11-22 13:21:28 -08:00
akasma74
a977f398ae Fix return values of preset_mode(s) properties (#27751)
It is incorrect to return None as a result of proprety call because in such a case state_attr call will return None as well, which means "Unknown attribute".
Instead for preset_mode(s) PRESET_NONE constant should be used for consistency.
2019-11-22 21:27:40 +01:00
Tobias Perschon
d92f48646a Add round to half template method (#28948)
* added round to half method

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

* testcase for new round method

Signed-off-by: Tobias Perschon <tobias@perschon.at>
2019-11-22 10:08:41 -08:00
awkwardDuck
6d77c15f28 fix typo for mediumvioletred (#28941) 2019-11-22 15:33:53 +01:00
Pascal Vizeli
051e37eb49 Fix ikea lights on deconz (#28949)
* Fix ikea lights on deconz

* check for None

* Use cleaner code style
2019-11-22 15:32:05 +01:00
kurniawan77
9a23a1c336 Add device trigger support for Aqara WXKG11LM 2016 switch to Deconz (#28946)
https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Xiaomi-WXKG11LM-2016
2019-11-22 13:54:56 +01:00
HomeAssistant Azure
1968a88336 [ci skip] Translation update 2019-11-22 00:32:10 +00:00
Paulus Schoutsen
37f808f4d8 Merge pull request #28932 from home-assistant/rc
0.102.1
2019-11-21 15:06:27 -08:00
Per Sandström
e3b2a33962 Bump verisure to vsure 1.5.4 and jsonpath 0.82 (#28933) 2019-11-21 22:53:02 +01:00
jjlawren
ab9a60f83f Delay Plex websocket connection to avoid race (#28934) 2019-11-21 12:39:39 -08:00
jjlawren
a62bd97fa5 Delay Plex websocket connection to avoid race (#28934) 2019-11-21 12:39:24 -08:00
Paulus Schoutsen
3391fc660a Bumped version to 0.102.1 2019-11-21 12:25:12 -08:00
Bram Kragten
42809ad6a9 Updated frontend to 20191119.5 (#28925)
* Updated frontend to 20191119.4

* Updated frontend to 20191119.5
2019-11-21 12:25:05 -08:00
cgtobi
dba87fd2e1 Fix missing Netatmo sensors (#28899)
* Update pyatmo to 3.0.1

* Improve sensor name

* Fix missing sensors

* Update pyatmo module

* Update pyatmo to 3.1.0

* Update requirements

* Fix method call
2019-11-21 12:25:04 -08:00
Bram Kragten
c015f94fa2 Updated frontend to 20191119.5 (#28925)
* Updated frontend to 20191119.4

* Updated frontend to 20191119.5
2019-11-21 19:05:26 +01:00
cgtobi
86e581b83d Fix missing Netatmo sensors (#28899)
* Update pyatmo to 3.0.1

* Improve sensor name

* Fix missing sensors

* Update pyatmo module

* Update pyatmo to 3.1.0

* Update requirements

* Fix method call
2019-11-21 17:35:03 +01:00
SNoof85
c7c7a9ad06 Update __init__.py (#28911) 2019-11-20 22:31:39 -08:00
HomeAssistant Azure
0e14c3f92a [ci skip] Translation update 2019-11-21 00:32:11 +00:00
Paulus Schoutsen
df3e17a983 Merge pull request #28909 from home-assistant/rc
0.102.0
2019-11-20 14:04:30 -08:00
Kevin Eifinger
9f181ac92e bump herepy to 0.6.3.3 (#28907)
* bump herepy to 0.6.3.3

* run gen_requirements_all
2019-11-20 22:37:59 +01:00
Paulus Schoutsen
138cee8069 Version bump to 0.102.0 2019-11-20 13:05:54 -08:00
Bram Kragten
787aac7cf2 Fix Almond onboarding url when using cloud (#28908) 2019-11-20 13:05:37 -08:00
Bram Kragten
ae3cf72fb2 Fix Almond onboarding url when using cloud (#28908) 2019-11-20 13:03:01 -08:00
Raman Gupta
1c630738f7 update services.yaml for keyboard component (#28889) 2019-11-20 21:40:00 +01:00
Raman Gupta
288ae8b1e7 Update services.yaml for cloudflare component (#28888)
* update services.yaml for cloudflare component

* Made description more clear
2019-11-20 15:45:11 +01:00
Alexei Chetroi
4ba2bd232c Command arguments for issue_zigbee_cluster_commands. (#28885) 2019-11-20 08:34:06 -05:00
Raman Gupta
b267d54db3 Update services.yaml for Roku component (#28887)
* update services.yaml for roku component

* add new line
2019-11-20 13:14:13 +01:00
Bram Kragten
bca93ca2ec Bumped version to 0.102.0b3 2019-11-20 12:33:39 +01:00
Bram Kragten
98c7ddc0cf Updated frontend to 20191119.2 (#28896) 2019-11-20 12:32:13 +01:00
Bram Kragten
9fb289ad93 Updated frontend to 20191119.1 (#28881) 2019-11-20 12:32:12 +01:00
Bram Kragten
69b096023a Updated frontend to 20191119.0 (#28875) 2019-11-20 12:32:11 +01:00
Santobert
ab41310847 Fix setting colors while reproducing a lights state (#28871)
* Fix setting colors while reproducing state

* Reorder list
2019-11-20 12:32:10 +01:00
Andi
687b7fc8cb Fix Synology camera whitelist (#28822)
* Fix Synology camera whitelist

If whitelist config is set, not camera is added to HA at all.

* Fix Synology Camera whitelist

Fix typo in config key.

* Update camera.py

Access config dict the voluptuous way
2019-11-20 12:32:09 +01:00
Franck Nijhof
89cd5d46cd Fix documentation URL in failed platform config check (#28814)
* Fix documentation URL in failed platform config check

* Replace pop from list by access using negative index

* Use of split instead of rsplit
2019-11-20 12:32:09 +01:00
Bram Kragten
d9f146d076 Updated frontend to 20191119.2 (#28896) 2019-11-20 12:30:32 +01:00
foxy82
9fd6afc5fb Allow connection to rfxtrx using tcp (#28297) 2019-11-19 21:11:17 -05:00
Franck Nijhof
6db4e975e3 Bump pytest to 5.3.0 (#28883) 2019-11-19 20:51:25 -05:00
Abílio Costa
e60ae77f1b Add ZHA service to issue group commands (#28823)
* add service to ZHA to issue group commands
* fix args
2019-11-19 19:49:09 -05:00
HomeAssistant Azure
6b62328c0f [ci skip] Translation update 2019-11-20 00:32:09 +00:00
Santobert
8e7a9521dc Fix setting colors while reproducing a lights state (#28871)
* Fix setting colors while reproducing state

* Reorder list
2019-11-19 16:16:59 -06:00
Bram Kragten
b92b6c40b7 Updated frontend to 20191119.1 (#28881) 2019-11-19 16:16:43 -06:00
Michael Hansen
c2161b1f5a Add HTTP view to conversation to handle intents via JSON POST (#28818) 2019-11-19 13:47:03 -06:00
Rohan Kapoor
cd8c281cb6 Add @rohankapoorcom to CODEOWNERS for speedtestdotnet and fastdotcom (#28879) 2019-11-19 13:43:21 -06:00
Paulus Schoutsen
94675ca5a7 Mark entity abc (#28869)
* Mark entity abc

* Use abstractmethod in climate

* Lint
2019-11-19 13:42:09 -06:00
Franck Nijhof
21157f9dac Downgrade duplicate YAML key log to warning (#28851) 2019-11-19 13:09:23 -06:00
Franck Nijhof
9324845aaa Move imports to top for serial_pm (#28861) 2019-11-19 13:07:29 -06:00
Franck Nijhof
9002955787 Move import to top for aftership (#28860) 2019-11-19 13:07:17 -06:00
Franck Nijhof
2d4b038b48 Move import to top for alarmdecoder (#28862) 2019-11-19 13:06:56 -06:00
Marius
5203c72fca Add state dependent icons to moon sensor (#28743)
* have sensor.moon use state dependent icons

Material design icons have icons for all sensor.states, let's use these natively in the component.
Based on the Season icons, tried to change accordingly.

* Update sensor.py

added state constants

* Update sensor.py

fixed missing mdi:

* order of constants. moon icons and use self.state

change order of constants to alphabetical, changed order in Moon_icons to alphabetical, used self.state for icon lookup

* replace the strings

 replace the strings for self.state with the constants

* removed quotes

* removed spaces, empty line

* local Black

* Sort imports and move import to file header


Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
2019-11-19 19:10:15 +01:00
Franck Nijhof
5fcfdee6b5 Fix documentation URL in failed platform config check (#28814)
* Fix documentation URL in failed platform config check

* Replace pop from list by access using negative index

* Use of split instead of rsplit
2019-11-19 18:33:09 +01:00
springstan
e915dd0d95 Pulseaudio: Changed default port from 4712 to 4713 (#28857) 2019-11-19 16:28:12 +01:00
ktnrg45
b83f92e4a5 Bump pyps4-2ndscreen to 1.0.3 (#28874) 2019-11-19 15:21:46 +01:00
Pascal Vizeli
a4ed1d69b8 Add init for run inside devcontainer 2019-11-19 13:53:12 +00:00
Bram Kragten
1f4296f688 Updated frontend to 20191119.0 (#28875) 2019-11-19 14:48:51 +01:00
Steven Impens
475c8ebae2 Add component VersaSense (#24619)
* Add component VersaSense

* Updates based on review

* Changes based on review

* Fixed whitespace

* Fixed lines too long

* Fixed lines too long

* Formatted using black

* Added available property

* Set unavailable property appropriately

* Conversion to f-strings

* Load platform only once per platform

* Fixed duplicate identifiers across multiple devices

* Single call to async_add_entities during setup

* Removed unnecessary async/await syntax

* Added constants for key-value pairs

* Removed async/await syntax

* Added breaks in measurement check

* Added guard clause for discovery_info
2019-11-19 14:05:23 +01:00
Malte Franken
4e9e9efa43 GeoNet NZ Volcanic Alert Level sensor (#26901)
* first version of new integration

* moved icon to shared consts

* added unit tests

* transformed from geolocation to sensor integration

* alert level is now the state of the sensor

* adopted unit tests

* fixed comment

* keep all sensors registered even if the feed update fails intermittently

* bumped version of upstream library

* bumped version of integration library

* regenerated requirements

* bumped version of integration library

* bumped version of integration library

* fixed generated file

* removed commented out code

* regenerated config flow file

* update to latest integration library version

* simplified code

* removed debug log statement

* simplified code structure

* defined constant

* use core interfaces

* moved test and fixture

* sorted imports

* simplified patching

* moved fixture to central config file
2019-11-19 14:00:59 +01:00
HomeAssistant Azure
8439e597ce [ci skip] Translation update 2019-11-19 00:32:19 +00:00
Andi
61bb24c423 Fix Synology camera whitelist (#28822)
* Fix Synology camera whitelist

If whitelist config is set, not camera is added to HA at all.

* Fix Synology Camera whitelist

Fix typo in config key.

* Update camera.py

Access config dict the voluptuous way
2019-11-18 17:03:10 +01:00
Evgeny
1a46294e6d Update roomba integration (#28560)
* Updated iRobot integration

* added custom delay for periodic mode

* new version of roombapy
2019-11-18 16:59:07 +01:00
Quentame
eb23846cfe Move imports in owntracks component (#27780)
* Move imports in owntracks component

* Fix nacl import

* Fix nacl import 2

* Fix nacl import 3

* Add helper.supports_encryption tests

* Fix tests helper 1

* Fix tests 2

* Add not_supports_encryption + get_cipher_error tests

* Code cov

* Fix nacl_not_imported test
2019-11-18 16:47:30 +01:00
Bram Kragten
7966411274 Bump version 2019-11-18 15:44:17 +01:00
Bram Kragten
bf4c81aa5e Updated frontend to 20191118.0 (#28852) 2019-11-18 15:43:20 +01:00
cgtobi
d91eddc4f0 Update pyatmo to 3.0.1 (#28829) 2019-11-18 15:43:19 +01:00
Jackie Yang
fb1fd19aae Fix miio air quality sensor (#28828)
Fix https://github.com/home-assistant/home-assistant/issues/28827
2019-11-18 15:43:18 +01:00
Michaël Arnauts
c6343c9e88 Fix Comfoconnect errors during startup (#28802)
* Add callback registrations to async_added_to_hass

* Fix CODEOWNERS

* Fix code formatting

* Requested changes.

* Don't pass unused hass and fix string formatting

* Fix import order.
2019-11-18 15:43:17 +01:00
Bram Kragten
b964fcc5b1 Updated frontend to 20191115.0 (#28797) 2019-11-18 15:43:17 +01:00
Peter Nijssen
31cbdbf1dd Fix broken postnl sensor (#28794)
* fix broken postnl sensor

* make sure shipment list is not growing indefinitely
2019-11-18 15:43:16 +01:00
LeoCal
f8be1512b8 Fix Swisscom empty response received (#28782) 2019-11-18 15:43:15 +01:00
SukramJ
5ff24ecf77 Fix HomematicIP Cloud Alarm Control Panel support for basic mode (#28778) 2019-11-18 15:43:14 +01:00
Morten Trab
fe5f30ba78 Fix Repetier integration entity indexing (#28766)
* Fixed multi extruder/beds/chambers index issue, #28130

* Switched from .format to f style name formatting

* Fixed incorrect indexing

* Removed VS files

* Removed not need temp_id subtraction

* Removed VS files

* Fixed access mode

* Fixed access mode

* Fixing access mode - again
2019-11-18 15:43:13 +01:00
Tyler Page
5f0f5ca557 Fix changing venstar operation_mode (#28754) 2019-11-18 15:43:12 +01:00
fredericvl
1479e7353b Change unique id for SAJ sensor based on device SN (#28663)
* Change unique id for SAJ sensor based on device SN

* Add SAJ device name + sn to state attributes

* Revert device state attributes (after review)
2019-11-18 15:43:12 +01:00
Brendon Baumgartner
326c25a766 Fix amazon dependency conflicts (#28217)
* fix amazon dependency conflicts

* bump boto3 for route53
2019-11-18 15:43:11 +01:00
Bram Kragten
f6b48dec94 Updated frontend to 20191118.0 (#28852) 2019-11-18 15:40:26 +01:00
Kevin McCormack
a4ae9a94ee Update Vivotek camera integration (#28841)
- Add optional security_level config
- Bump libpyvivotek to 0.3.1
2019-11-18 10:01:36 +01:00
Paul Romkes
5731f528d2 Make intents end Snips session without speech (#28820)
* intents should also end session without speech

* Move endSession message to try block

* Minor improvement on endSession response
2019-11-18 09:13:22 +01:00
cgtobi
90c7d0e56a Update pyatmo to 3.0.1 (#28829) 2019-11-18 09:10:59 +01:00
Ville Skyttä
d4c80f160c Add bandit, use to catch known vulnerable XML parsing (#28341)
* Add bandit to pre-commit and CI, use to catch known vulnerable XML parsing

* Use defusedxml instead of direct xml.etree to parse XML

* Move config to tests/bandit.yaml
2019-11-18 09:10:15 +01:00
HomeAssistant Azure
aef808d2bf [ci skip] Translation update 2019-11-18 00:32:22 +00:00
Michaël Arnauts
3d5b007c6b Implement more Comfoconnect sensors (#28817)
* Rework Comfoconnect sensor platform

* Sort ATTRS and fix icon

* Add unique_id to fan

* Use a different signal per sensor type

* Add more logging

* Swap to be sure.

* Remove -fan suffix from unique_id
2019-11-18 00:39:49 +01:00
Guillermo Ruffino
0c48b8ec52 Esphome climate features (#28786)
* add esphome climate fan

* adds back compatibility support

* fixes, add swing mode

* revert client config

* sort import

* rebase
2019-11-17 23:14:19 +01:00
Fabian Affolter
101ab5c3fa Align naming (#28830)
* Align naming

* Update tests
2019-11-17 15:53:34 +01:00
Jay Newstrom
cb63a9d7e1 Add broadcast address for WOL and samsungtv (#28819)
* Add broadcast address for WOL and samsungtv

* Fix style

* Fix tests, and add new test for new functionality

* Fix code style
2019-11-17 13:17:22 +01:00
Jordan Speicher
f25a3cbfcf Add broadcast_address for wake-on-lan (#28793) 2019-11-17 12:52:33 +01:00
Jeff Irion
c7f684d3f4 Bump androidtv to 0.0.34 (#28816)
* Bump androidtv to 0.0.33; add pure-python-adb requirement

* python -m script.gen_requirements_all

* Avoid redundant 'available' check

* Bump androidtv to 0.0.34

* Update docstrings for the decorator functions
2019-11-17 12:47:14 +01:00
Jackie Yang
0a9ac7e655 Fix miio air quality sensor (#28828)
Fix https://github.com/home-assistant/home-assistant/issues/28827
2019-11-17 12:18:53 +01:00
HomeAssistant Azure
d1241147c8 [ci skip] Translation update 2019-11-17 00:32:32 +00:00
Michaël Arnauts
d6e99db38e Fix Comfoconnect errors during startup (#28802)
* Add callback registrations to async_added_to_hass

* Fix CODEOWNERS

* Fix code formatting

* Requested changes.

* Don't pass unused hass and fix string formatting

* Fix import order.
2019-11-16 15:05:17 +01:00
Santobert
0996b717ce Improve coverage of input_datetime/reproduce_state (#28272)
* Improve coverage of input_datetime/reproduce_state

* Improve tests
2019-11-16 13:27:54 +01:00
Fabian Affolter
fbe3d8dade Upgrade shodan to 1.19.1 (#28809) 2019-11-16 11:58:15 +01:00
Fabian Affolter
2779d4f66e Upgrade alpha_vantage to 2.1.2 (#28810) 2019-11-16 11:58:04 +01:00
michaeldavie
d736c5f648 Truncate sensor state values (#28788) 2019-11-16 10:56:54 +01:00
Peter Nijssen
87b13ee732 Fix broken postnl sensor (#28794)
* fix broken postnl sensor

* make sure shipment list is not growing indefinitely
2019-11-16 10:37:58 +01:00
bouni
afbd966ba6 Move imports in braviatv component (#27855)
* Move imports in braviatv component

* import braviarc directly

* fixed import

* directly import BraviaRC
2019-11-16 10:25:25 +01:00
Tommy Larsson
8a28d5fbee Add ombi password authentication option (#28742)
* Add password authentication option

* Add vol.Exclusive for auth config params
2019-11-16 10:23:05 +01:00
Ville Skyttä
d88ca0f5cb Lint exclusions (#28655)
* Remove malformed pylint disable markers

* Remove some unused imports

* Remove some unneeded lint exclusions

* Remove more unneeded lint exclusions

* Add specific codes to all noqa's
2019-11-16 10:22:07 +01:00
Ville Skyttä
2aee366a1f Upgrade pylint, tweak config (#28798)
* Upgrade pylint to 2.4.4 and astroid to 2.3.3

https://pylint.readthedocs.io/en/latest/whatsnew/changelog.html#what-s-new-in-pylint-2-4-4
https://github.com/PyCQA/astroid/blob/astroid-2.3.3/ChangeLog

* Disable pylint score and persistence

We don't use scoring, and it can be supposedly incorrect (so worse
than ignorable) when using more than one parallel job.
2019-11-16 09:59:26 +01:00
John Mihalic
16f8ae1535 Bump pyHik library to 0.2.5 for id, tamper fixes (#28807) 2019-11-16 09:57:04 +01:00
Fabian Affolter
d8ca2e9d71 Upgrade sqlalchemy to 1.3.11 (#28721) 2019-11-16 09:56:26 +01:00
Morten Trab
cd335bd434 Fix Repetier integration entity indexing (#28766)
* Fixed multi extruder/beds/chambers index issue, #28130

* Switched from .format to f style name formatting

* Fixed incorrect indexing

* Removed VS files

* Removed not need temp_id subtraction

* Removed VS files

* Fixed access mode

* Fixed access mode

* Fixing access mode - again
2019-11-16 09:45:43 +01:00
Bram Kragten
5e20817ea4 Updated frontend to 20191115.0 (#28797) 2019-11-16 07:22:06 +01:00
HomeAssistant Azure
adb3997547 [ci skip] Translation update 2019-11-16 00:32:13 +00:00
Davide Varricchio
d796053d9f Add support for Hisense AEH-W4A1 wifi module (AC remote control) (#28641)
* First commit

* First working release, but there's a lot to do

* Added support for preset_modes

* Refined logic

* Added translations for config_flow

* Updated translations

* modified:   homeassistant/components/hisense_aehw4a1/climate.py

* modified:   climate.py

* Updated library to latest version

* Small changes

* Null states when AC off

* Minor fixes

* Latest updates for TOX

* First commit

* First working release, but there's a lot to do

* new file:   requirements_test_all.txt

* Added support for preset_modes

* Refined logic

* Added translations for config_flow

* Updated translations

* modified:   homeassistant/components/hisense_aehw4a1/climate.py

* modified:   climate.py

* Updated library to latest version

* Small changes

* Null states when AC off

* Minor fixes

* Latest updates for TOX

* new file:   requirements_test_all.txt

* Fighting with tox

* vs Tox round 2

* Isort and updated requirements_test_all.txt

* Fighting with lint

* Implemented available state

* Changed exception type after Travis-ci pylint fails

* Support entry in configuration.yaml

* Removed commented code

* Switched to async

* Minor changes

* Updated library and fixed pylint errors

* Code optimization

* Implemented static ip addresses in configuration.yaml

* Reverted to existing constant

* Corrected pylint wrong-import-order

* Recovery from nuke event (messing all while rebase)

* Resolved Ci error

* Changes for PR

* Corrected temp scale for frontend

* Added test for config entry from configuration.yaml

* Updated dependency

* Check on manual config

* Imported custom exceptions and modified import config

* Optimized

* Change based on PR revision

* Added logging for failure event on manual config

* Tests added but to be corrected

* Edited tests

* Tests updated to ensure no I/O

* Working on tests

* Cheanges based on revision for PR

* Setting librey exception as direct side_effect in test

* Final changes for PR

* Redundand on command solved

* Improved AC logic
2019-11-15 21:22:24 +01:00
Tyler Page
35000848ed Fix changing venstar operation_mode (#28754) 2019-11-15 12:49:56 +01:00
LeoCal
4c690eace8 Fix Swisscom empty response received (#28782) 2019-11-15 10:52:15 +01:00
SukramJ
60e7440ec1 Fix HomematicIP Cloud Alarm Control Panel support for basic mode (#28778) 2019-11-15 09:55:40 +01:00
Paolo Tuninetto
b4ccc0202a Change keys for Samsung TV next and prev track command (#28213) 2019-11-15 09:53:16 +01:00
fredericvl
5e973dd017 Change unique id for SAJ sensor based on device SN (#28663)
* Change unique id for SAJ sensor based on device SN

* Add SAJ device name + sn to state attributes

* Revert device state attributes (after review)
2019-11-15 09:21:46 +01:00
Lado Kumsiashvili
bc14e93ae3 bump home mitemp_bt to 0.0.3. It has an important bugfix for reading … (#28765)
* bump home mitemp_bt to 0.0.3. It has an important bugfix for reading temperatures under 10 grade

* adjust the version number for mitemp_bt up to 0.0.3
2019-11-15 08:56:32 +01:00
Alan Tse
2aad150419 Convert Tesla to Async (#28748)
* build: bump teslajsonpy to 0.2.0

* feat: add async

* perf: convert unnecessary async calls to sync

* fix: force real login

* Revert change to HVAC_MODE_HEAT

* Remove charging rate sensor

* Remove tests

* Remove tests

* Address requested changes

* Add missing sensors

* Move update to async_setup_scanner

* Align wtih prior update behavior
2019-11-15 05:15:58 +01:00
cgtobi
806b96ef73 Bump pytest to 5.2.3 (#28785) 2019-11-15 05:14:46 +01:00
HomeAssistant Azure
f170ac48d2 [ci skip] Translation update 2019-11-15 00:32:15 +00:00
Brendon Baumgartner
0467ddb60c Fix amazon dependency conflicts (#28217)
* fix amazon dependency conflicts

* bump boto3 for route53
2019-11-14 21:07:43 +01:00
Bram Kragten
b2870b6833 DECONZ - Add device trigger support for aqara 86sw2 switches to Deconz (#28767)
* Add device trigger support for aqara 86sw2 switched to Deconz

* Update device_trigger.py

* Update naming
2019-11-14 19:15:08 +01:00
Paulus Schoutsen
f5a9bcdf6d Bumped version to 0.102.0b1 2019-11-14 14:36:30 +01:00
Paulus Schoutsen
af2443fb10 Fix account link version check (#28770) 2019-11-14 14:34:53 +01:00
Bram Kragten
520e4296ba Updated frontend to 20191114.0 (#28768) 2019-11-14 14:34:53 +01:00
David F. Mulcahey
4f089aba35 Bump ZHA quirks to 0.0.28 (#28750) 2019-11-14 14:34:52 +01:00
Paulus Schoutsen
2cf86a3554 Fix account link version check (#28770) 2019-11-14 14:34:13 +01:00
springstan
ea0bae2d1b Added plus sign to safe characters in urllib.parse.quote method (#28763) 2019-11-14 14:13:16 +01:00
Bram Kragten
962c47b666 Updated frontend to 20191114.0 (#28768) 2019-11-14 14:12:46 +01:00
Fabian Affolter
c6d6bbf3e0 Upgrade ephem to 3.7.7.0 (#28715) 2019-11-14 12:01:53 +01:00
HomeAssistant Azure
08d662c0a5 [ci skip] Translation update 2019-11-14 00:32:16 +00:00
Aaron Bach
3f2c344e4f Add small speed improvement when unloading RainMachine (#28759) 2019-11-13 14:27:42 -07:00
Aaron Bach
fae8cd48c4 Add small speed improvement when unloading OpenUV (#28758) 2019-11-13 14:27:15 -07:00
Aaron Bach
31131e4ac6 Add small speed improvement when unloading Notion (#28757) 2019-11-13 14:26:52 -07:00
Aaron Bach
c27b94c0e5 Add small speed improvement when unloading Ambient PWS (#28756) 2019-11-13 14:25:49 -07:00
Aaron Bach
8789da36be Add support for SimpliSafe locks (#28672)
* Start

* Lock init

* More stubbing

* Final pieces for PR

* Fixed incorrect property access

* Updaed .coveragerc

* Ensure we can handle unknown states

* Account for lock's offline property

* Account for device online

* Unload components concurrently

* Handle unknown states more gracefully
2019-11-13 20:48:08 +01:00
Bram Kragten
15e6278a2e Add config entry and device support to Demo (#28702)
* Add config entry and device support to Demo

* Some more devices

* Fix tests using demo

* Review comments

* Update config_flow.py

* Revert

* Disable pylint
2019-11-13 16:37:31 +01:00
mvn23
15ce738357 Bump pyotgw to 0.5b1 (#28751) 2019-11-13 09:32:22 -05:00
David F. Mulcahey
376e3def1d Bump ZHA quirks to 0.0.28 (#28750) 2019-11-13 09:25:45 -05:00
Thomas Germain
ec45e72bea Add verisure ethernet status (#28656) 2019-11-13 14:12:36 +01:00
Paulus Schoutsen
349e7b8cd1 Bumped version to 0.102.0b0 2019-11-13 13:55:02 +01:00
Paulus Schoutsen
8f390d099a Merge remote-tracking branch 'origin/master' into dev 2019-11-13 13:54:31 +01:00
Thomas
fe942c40a0 Correct openalpr_local config option name (#28746)
Previously was "alp_bin" now "alpr_bin" like it is outlined in the documentation (https://www.home-assistant.io/integrations/openalpr_local/)
2019-11-13 12:11:09 +01:00
Ville Skyttä
a48d426f18 Travis and tox config improvements (#28667)
* Use travis_wait only with pylint

pylint is the only job that is expected to be silent for extended time.
For others such a silence is a sign of a problem and using travis_wait
just lengthens the wait, and makes things harder to follow and debug,
because it also suppresses output in the web UI.

* Use pytest-xdist in tox

Similarly as in Azure.
2019-11-13 08:50:35 +01:00
Fabian Affolter
b4cec23add Upgrade psutil to 5.6.5 (#28717) 2019-11-13 08:43:14 +01:00
Dave T
4bcc669d19 Add device classes to weather sensors. (#28512) 2019-11-13 08:42:46 +01:00
Steven Looman
d7f45a47f5 Upgrade async_upnp_client==0.14.12 (#28733) 2019-11-13 07:43:38 +01:00
Fredrik Erlandsson
70e8c58254 version bump pypoint (#28737) 2019-11-13 07:42:12 +01:00
HomeAssistant Azure
d2d9f09f13 [ci skip] Translation update 2019-11-13 00:32:12 +00:00
Paulus Schoutsen
5961215e6e Set up Almond Web to connect to HA (#28603)
* Set up Almond Web to connect to HA

* Add missing string

* Add type
2019-11-12 11:01:19 -08:00
Otto Winter
a1f2b6d402 ESPHome fix missing state in certain circumstances (#28729)
* Fix ESPHome having missing state in certain situations

Fixes https://github.com/esphome/issues/issues/828

* Update requirements_all

* Also fix climate preset mode
2019-11-12 09:26:46 -08:00
Paulus Schoutsen
fc04b3e31c Remove choice word when Almond has choices (#28725) 2019-11-12 09:22:28 -08:00
jjlawren
5f177fa42e Use library method for season number (#28708) 2019-11-12 10:05:30 -06:00
Kevin Eifinger
48fd95c7db Fix Here Travel Time unable to find entity on startup (#27237)
* add support for entity_id as state of entity

* add circular reference detection

* voluptuous instead of regex

* wait for EVENT_HOMEASSISTANT_START

* move delayed_sensor_update to async_added_to_hass

* add @callback decorator

* remove nested entity resolving
2019-11-12 15:04:17 +01:00
Fabian Affolter
1208ab4c76 Upgrade discogs_client to 2.2.2 (#28723) 2019-11-12 12:28:34 +01:00
SukramJ
e8348221d4 Allow preset boost for Homematic IP Cloud power switches (#28713)
* Allow preset boost for Homematic IP Cloud  power switches

* Sort Imports

* Add test

* align test data
2019-11-12 11:32:32 +01:00
Federico Leoni
4f11eec1a1 Update binary_sensor.py (#28707)
* Update binary_sensor.py

* Fix style issues
2019-11-12 09:53:08 +01:00
jjlawren
87606bc12b Bump plexapi to 3.3.0 (#28709)
* Bump plexapi to 3.2.0

* Bump to 3.3.0
2019-11-11 19:30:07 -08:00
Aaron Bach
a89b4011ee Ensure SimpliSafe alarm control panels can return from being offline (#28710) 2019-11-11 18:55:31 -07:00
Alexei Chetroi
cfa689c3a6 Bump up ZHA dependencies. (#28711) 2019-11-11 20:53:23 -05:00
HomeAssistant Azure
25b0631264 [ci skip] Translation update 2019-11-12 00:32:11 +00:00
GaryOkie
a9a1c2b91d Update Homekit climate.py to remap current mode (#28625)
* Update Homekit climate.py to remap current mode

This update changes the mapping of Homekit's Current Mode Heating/Cooling State  to show the HASS Hvac_action attribute as "idle" instead of "off" when the returned value is 0.

* Update climate.py

removed imported constant no longer being used  (CURRENT_HVAC_OFF)

* corrected update to climate.py

trying again to remove unused constant.

* Update test_climate.py

* removed "change" comment

The added comment describing the change was not needed and should not be included, as it will already be described via "git annotate"  (per @jc2k)
2019-11-12 00:35:09 +01:00
Quentame
decab3e15b Add config flow tests for OwnTracks (#28644)
* Add config flow tests for OwnTracks

* Fix pylint

* Woops, uncomment test

* Woops again, logs removed

* Review from @MartinHjelmare + fix pylint
2019-11-11 21:30:00 +01:00
jjlawren
cfcacc2827 Bump plexwebsocket to 0.0.5 (#28703) 2019-11-11 19:26:56 +01:00
Bas Nijholt
3ce850234f fix typo in comments (#28694)
The global is called `PARALLEL_UPDATES` not `PARALLEL_UPDATE`.
2019-11-11 13:51:26 +01:00
Bram Kragten
90e723e25e Allow icons to be masked (#28692) 2019-11-11 02:53:57 -08:00
Kevin Lee
7bfde2dd33 Add Lutron hybrid keypad raise/lower buttons (#28674)
* Lutron: Add support for hybrid keypad raise/lower buttons

* Add MasterRaiseLower
2019-11-11 08:07:48 +01:00
Teemu R
b6c7976477 Add xiaomi_miio chuangmi.plug.hmi206 (#28688)
Related: https://github.com/rytilahti/python-miio/issues/574
2019-11-11 07:59:07 +01:00
Jon Gilmore
aea7c1c0ce Add codeowner for lutron integration (#28682)
* add codeowner for lutron integration

* ran hassfest
2019-11-11 01:51:24 +01:00
HomeAssistant Azure
0ac8b297cd [ci skip] Translation update 2019-11-11 00:32:13 +00:00
Rohan Kapoor
65dd7d998b #28645: Bump up zm-py to 0.4.0 (#28681) 2019-11-10 13:51:00 -08:00
Bram Kragten
66a574eca4 Hue: store current sensor entities by bridge (#28679) 2019-11-10 11:37:34 -08:00
jjlawren
206547a5d8 Skip updating idle Plex clients (#28664)
* Skip updating idle clients

* Different operators
2019-11-10 11:35:12 +01:00
Per Sandström
a9536e4ed1 verisure autolock service (#27366) 2019-11-10 08:25:10 +01:00
HomeAssistant Azure
65bf0a30f0 [ci skip] Translation update 2019-11-10 00:32:12 +00:00
jjlawren
ef687a36ff Add Plex debug logging (#28665) 2019-11-09 17:02:56 -06:00
Gerard
25f0b70966 Upgrade bimmer_connected to 0.6.2 (#28651)
* Upgrade bimmer_connected to 0.6.1

* Remove time.sleep from library
2019-11-09 23:43:04 +01:00
Aaron Bach
179a2eb187 Create base entity for SimpliSafe 2019-11-09 23:41:02 +01:00
Franck Nijhof
a39cac765e Add sensor platform to WLED integration (#28632)
* Add sensor platform to WLED integration

* Process review comments
2019-11-09 20:18:41 +01:00
Martin Hjelmare
fc95a3d088 Fix xiaomi vacuum tests (#28658)
* Fix xiaomi exceptions test

* Fix xiaomi_specific_services test

* Fix remaining xiaomi miio vacuum tests

* Clean up
2019-11-09 14:07:01 +01:00
bluestripe
0954f7d3be Add bluesound speaker group attribute (#28142)
* Added bluesound speaker group attribute.

* Changed code to fix failing tests.

* Changed condition checking for empty group list.

* Investigating CI pipeline error

* Changed back to the code that passed CI earlier

* Changed condition on existence of list and sorting of bluesound_group

* Re-introduced guard on group_name None
2019-11-09 08:16:53 +01:00
Shulyaka
58eeea903f Add pcal9535a integration (#26563)
* Support for PCAL9535A chip

Signed-off-by: Denis Shulyaka <Shulyaka@gmail.com>

* Code review changes

* Code review changes

* Fix import order

* Fix import order

* Apply suggestions from code review
2019-11-09 08:14:46 +01:00
shred86
97224df4fd Fix Abode capture_image and trigger_quick_action services (#28546)
* Fix Abode services

* Bump abodepy version

* Updated using dispatcher helper

* Code review fixes

* Removed init method from AbodeQuickActionBinary Sensor
2019-11-09 07:35:45 +01:00
HomeAssistant Azure
45b53c8e82 [ci skip] Translation update 2019-11-09 00:32:20 +00:00
LeoCal
bc53e9d0c8 Fix unhandled exception when Swisscom Internet Box is not responsive (#28618)
* Update device_tracker.py

From time to time, Swisscom Internet Box fails to respond and this causes an exception, which is currently not handled by the code:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/device_tracker/setup.py", line 164, in async_device_tracker_scan
    found_devices = await scanner.async_scan_devices()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 46, in scan_devices
    self._update_info()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 67, in _update_info
    data = self.get_swisscom_data()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 83, in get_swisscom_data
    request = requests.post(url, headers=headers, data=data, timeout=10)
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 686, in send
    r.content
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 828, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 757, in generate
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.1.1', port=80): Read timed out.

I've just added a try-except around the post.

* Update device_tracker.py

Addressed blank line issue reported by flake8

* Update device_tracker.py

Fixed alignment to be Black compliant.

* Update device_tracker.py

Fixed one more alignment issue
2019-11-08 11:01:35 -08:00
Ari
504ad6488c Add support for Heat Mode detection for ecobee Heat Pumps (#28273)
* Add support for Heat Mode detection for Heat Pumps - Fixes #26547

Since the ecobee component started to dynamically set the supported HVAC modes based on querying the device a few releases ago, users with Heat Pumps noticed that the Heat mode was no longer offered as an option by HA. Some of us did not actually notice until the summer was over :). This commit fixes that.

For heatpumps, ecobee returns:
'coolStages': 1, 
'heatStages': 0,
'hasHeatPump': True,

Fix tested on HA 100.1 and 100.3

Fixes bug https://github.com/home-assistant/home-assistant/issues/26547

* changed line formatted with black
2019-11-08 19:08:50 +01:00
fredericvl
caedc14b00 Added support for multiple SAJ solar inverters (#28612)
Changes after review
2019-11-08 10:48:28 -07:00
Tomasz
f8d3ea20b6 Move imports in xiaomi_miio (#27773)
* move imports in xiaomi_miio

* reorder imports with isort

* fix pylint error

* Rename imports
2019-11-08 18:32:44 +01:00
David F. Mulcahey
f2c56cff43 Bump ZHA quirks version (#28636) 2019-11-08 09:12:50 -08:00
Bram Kragten
d0f1e9fc01 Updated frontend to 20191108.0 (#28638) 2019-11-08 09:12:20 -08:00
Bram Kragten
28c6837f00 Add attribution and onboarding commands to conversation and Almond (#28621)
* Add attribution and onboarding commands to conversation and Almond

* False -> None

* Comments

* Update __init__.py

* Comments + websocket for convert

* Lint
2019-11-08 09:06:23 -08:00
cgtobi
4435b3a5c9 Fix issue with multiple Netatmo home coach devices (#28407)
* Retrieve more detailed module infos

* Switch to using IDs

* Bump pyatmo version to 2.3.3

* Update requirements

* Undo the change of the unique id

* Rename variable
2019-11-08 17:12:41 +01:00
Fredrik Erlandsson
cffadf919a Add turn_on/off to tfiac (#27712)
* Add turn_on/off to tfiac

* fix ws issue
2019-11-08 17:02:44 +01:00
Paulus Schoutsen
bd54ff3c02 Add TT WS API (#28599)
* Add TT WS API

* Add a test

* Correctly convert TT errrors
2019-11-08 10:06:16 +01:00
Franck Nijhof
b2071b81c1 Add switch platform to WLED integration (#28606)
* Add switch platform to WLED integration

* Use async_schedule_update_ha_state in async context

* Process review comments
2019-11-08 09:48:46 +01:00
akasma74
e96b5ef2b0 Fix generic_thermostat too_hot/too_cold (#27860)
* fix for too_hot/too_cold

Closes #27802

* too_hot correction
2019-11-08 09:25:37 +01:00
Ville Skyttä
4f56f4e7e9 Add Huawei LTE device registry support (#28594) 2019-11-08 09:19:59 +01:00
HomeAssistant Azure
64166583b3 [ci skip] Translation update 2019-11-08 00:32:12 +00:00
Jeff Irion
a71d852f16 Use friendly app names for Fire TV sources (#28417)
* Use friendly app names for Fire TV sources

* Remove debugging statement

* Tests pass

* Use 'blocking=True' to patch service calls

* Remove parentheses
2019-11-07 15:04:59 -07:00
Brett T. Warden
1012215709 Match ALARM in NUT UPS status message (#28591)
If ups.status contains "ALARM", add "Alarm" to virtual sensor ups.status.display.

Fixes #28580
2019-11-07 15:03:32 -07:00
jjlawren
2bdfa9928b Allow to skip SSL validation on Plex websocket (#28615) 2019-11-07 21:54:48 +01:00
Paulus Schoutsen
fadb6a3979 Add support for conversation ID (#28620) 2019-11-07 12:21:12 -08:00
Paulus Schoutsen
9b5fa2e67c Add device conditions to climate (#28553)
* Add device conditions to climate

* Update strings.json
2019-11-07 17:03:06 +01:00
SukramJ
9d3d35ad79 Add cool mode to HomematicIP climate (#28525)
* Add cool mode to HomematicIP climate

* Update test

* remove preset_party

* Fix profile_names check
2019-11-07 16:41:33 +01:00
Paulus Schoutsen
899306c8ec Add vacuum device conditions (#28551) 2019-11-07 16:29:39 +01:00
Paulus Schoutsen
a80baf2e5f Add fan device condition (#28549) 2019-11-07 16:29:10 +01:00
Paulus Schoutsen
48660585f1 Add climate device triggers (#28544)
* Add climate device triggers

* Test capabilities
2019-11-07 16:28:45 +01:00
Heine Furubotten
af73e54aee Add azure servicebus notify service (#27566)
* Add azure servicebus notify service

* files added to .coveragerc

* fix: import content type from const

* Moved imports to top level

* Code review fixes
+ added code owner
+ fixed config validation with has at least one
+ seperate attributes for dto to asb
* fixed doc link
* async setup instead of sync

* rename all the things
- removed too many ifs
* changed setup back to sync
+ comment about sync IO in lib

* More informative logging

* logging exception -> error
2019-11-07 14:47:44 +01:00
Pascal Vizeli
abb78a0d13 Fix fan strings 2019-11-07 13:48:23 +01:00
Pascal Vizeli
50f1b6c689 Fix vacuum strings 2019-11-07 13:47:26 +01:00
Paulus Schoutsen
d34caf50f1 Add climate device actions (#28552) 2019-11-07 13:44:59 +01:00
Bram Kragten
76aae0c23e Fix demo TTS (#28608) 2019-11-07 13:43:43 +01:00
Paulus Schoutsen
6999a712ef Add device triggers to vacuum (#28548)
* Add device triggers to vacuum

* Update strings
2019-11-07 13:39:35 +01:00
Tim Gates
c3f07347a1 Fix simple typo: unhasable -> unhashable (#28605) 2019-11-07 12:39:16 +01:00
Paulus Schoutsen
5032c5a04c Add fan device trigger (#28545) 2019-11-07 12:38:58 +01:00
Paulus Schoutsen
78657bfbaf Add lock device triggers (#28547)
* Add lock device triggers

* Lint
2019-11-07 12:26:59 +01:00
Paulus Schoutsen
2c607c836f Add device action to fan (#28550) 2019-11-07 12:26:10 +01:00
Paulus Schoutsen
11cdce3758 Add device actions to vacuum (#28554) 2019-11-07 12:24:58 +01:00
Jonathan Keljo
68fd39e321 Upgrade greeneye_monitor to 1.0.1 (#28600)
This release has a fix for a crash we were seeing occasionally, and a totally
revamped packet handler which should be more robust and CPU-efficient.

Fixes #25887
2019-11-07 10:42:42 +01:00
Malte Franken
b5587348f5 update to latest integration library version (#28597) 2019-11-06 21:37:29 -08:00
HomeAssistant Azure
265c390b65 [ci skip] Translation update 2019-11-07 00:32:16 +00:00
Franck Nijhof
78b83c653a Add WLED integration (#28542)
* Add WLED integration

* Use f-string for uniq id in sensor platform

* Typing improvements

* Removes sensor & light platform

* Remove PARALLEL_UPDATES from integration level

* Correct type in code comment 'themselves'

* Use async_track_time_interval in async context

* Remove stale code

* Remove decorator from Flow handler

* Remove unused __init__ from config flow

* Move show form methods to sync

* Only wrap lines that can raise in try except block

* Remove domain and platform from uniq id

* Wrap light state in bool object in is_on method

* Use async_schedule_update_ha_state in async context

* Return empty dict in device state attributes instead of None

* Remove unneeded setdefault call in setup entry

* Cancel update timer on entry unload

* Restructure config flow code

* Adjust tests for new uniq id

* Correct typo AdGuard Home -> WLED in config flow file comment

* Convert internal package imports to be relative

* Reformat JSON files with Prettier

* Improve tests based on review comments

* Add test for zeroconf when no data is provided

* Cleanup and extended tests
2019-11-06 23:55:39 +01:00
Hans Oischinger
3d2ff841d3 Handle exceptions from PyViCare library (#28536)
* ViCare: Handle exceptions from PyViCare library (#28072)

Sometimes Viessmann server failures or other connection problems may
lead to exceptions thrown when updating data.

This commit handles those exceptions with some error logging and
makes sure that the component does not break completely in that case.

* Remove unneeded returns

* Remove unneeded returns
2019-11-06 22:46:18 +01:00
Ville Skyttä
bb37bc32e3 Always run flake8 through pre-commit, and with doctests (#28490)
* Enable flake8 doctests everywhere

* Always run flake8 through pre-commit
2019-11-06 21:38:00 +02:00
Paulus Schoutsen
d9edd42532 Update to latest Somfy changes (#28207)
* Update to latest Somfy changes

* Update api.py

* Update api.py
2019-11-06 10:55:56 -08:00
Paulus Schoutsen
9a0a889492 Fix token sent to Almond Web (#28584) 2019-11-06 08:32:33 -08:00
ssenart
9ba3abd1b7 Add Netatmo camera services (#27970)
* Netatmo camera : Implement turn_on and turn_off methods.

* Netatmo camera : Implement turn_on and turn_off methods.

* Netatmo camera : Implement turn_on and turn_off methods.

* Netatmo camera : Implement turn_on and turn_off methods.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.

* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.

* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.

* Netatmo camera : Use new style string formatting.

* Make the file compliant with flake8 linter.

* Make the file compliant with flake8 linter.

* Make it compliant with black formatter.

* Make it compliant with black formatter.

* Bug fix : Flood light control was not working with VPN url.
2019-11-06 07:52:59 -05:00
Kevin Köck
b7153ca207 Add mqtt temp_low/high_template in SCHEMA_BASE (#28257)
* fix missing temp_low/high_template in SCHEMA_BASE

* temperature_high/low_state_template test

* Update test_climate.py

* paste error

* Update test_climate.py

* Update test_climate.py

* Update test_climate.py

* Update test_climate.py
2019-11-06 07:50:54 -05:00
temeteke
2e1d05560f Reset states when connection to MPC-HC is lost (#27541)
* Reset states when connection to MPC-HC is lost

* Add the available property of mpchc
2019-11-06 07:47:34 -05:00
Josef Schlehofer
ac4d8ee07f Upgrade youtube_dl to 2019.11.05 (#28578) 2019-11-06 09:51:20 +01:00
Zach
e99bb8f75e Fix Doods error when detection labels are specified in list form (#28574) 2019-11-06 08:45:16 +01:00
Jeff Irion
438ee99175 Bump adb-shell to 0.0.8 (#28582)
* Bump 'adb-shell' to 0.0.8

* Update requirements_test_all.txt

* Update manifest.json
2019-11-06 08:02:07 +01:00
Grodesh
f8712b4d7f Update nextbus stop tag to accept strings (#27765) 2019-11-06 07:24:11 +01:00
Paulus Schoutsen
a63e976496 Fix invalid JSON in deconz strings.json 2019-11-05 20:33:37 -08:00
HomeAssistant Azure
8ab04d5fc7 [ci skip] Translation update 2019-11-06 00:31:46 +00:00
Aaron Bach
e69cd271dd Bump pytile and re-order imports (#28570) 2019-11-05 22:40:12 +01:00
Pascal Vizeli
005a1b2713 Add additional support over NC (#28527)
* Add voice support over NC

* Add disocery support for TTS / STT

* fix cloud TTS discovery

* Fix dev config

* Fix discovery

* Bump hass-nabucasa 0.25

* Add channel support

* Fix lint

* Update homeassistant/components/cloud/__init__.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/cloud/tts.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/cloud/tts.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/cloud/tts.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

* bump hass-nabucasa

* Update tts.py

* fix lint
2019-11-05 22:39:15 +01:00
Pascal Vizeli
925e26b061 Update azure-pipelines-ci.yml 2019-11-05 21:58:35 +01:00
Pascal Vizeli
10247f6799 Fix dev dockerfile 2019-11-05 21:38:30 +01:00
Pascal Vizeli
1e398a8966 Try fix tests (#28470) 2019-11-05 21:12:29 +01:00
Paulus Schoutsen
a48ac4d18f Merge pull request #28568 from home-assistant/rc
0.101.3
2019-11-05 10:57:08 -08:00
Paulus Schoutsen
a0443b0238 Fix flaky test 2019-11-05 09:46:36 -08:00
Paulus Schoutsen
b2a5c75fbd Bumped version to 0.101.3 2019-11-05 09:09:00 -08:00
Santobert
2814a24f9e Add deprecated attributes to light.reproduce_state (#28557)
* Add deprecated attributes to light.reproduce_state

* Add blank line

* fix minor bug

* Typo
2019-11-05 09:08:06 -08:00
Maciej Bieniek
f5306f769c Fix Airly if more than one config entry (#28498) 2019-11-05 09:08:05 -08:00
Tim McCormick
1618c5c040 Fix missing import (#28460) 2019-11-05 09:08:04 -08:00
Santobert
7b86f0f926 Add deprecated attributes to light.reproduce_state (#28557)
* Add deprecated attributes to light.reproduce_state

* Add blank line

* fix minor bug

* Typo
2019-11-05 06:43:50 -08:00
Quentame
136f1f7fe9 Move imports in samsungtv component (#27775)
* Move imports in samsungtv component

* Fix tests

* Fix review 1

* Fix review 2

* wakeonlan is a module
2019-11-05 15:04:19 +01:00
Jesse Hills
a43095b2b5 Add override switch for juicenet (#28049)
* Add override switch for juicenet

* Update generated files

* Update indentation

* Fix indentation

* Remove unnecessary else statement

* Update homeassistant/components/juicenet/switch.py

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

* Update homeassistant/components/juicenet/switch.py

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

* Remove state property

* Change string formatting

* Bump juicenet package version again
2019-11-05 14:24:20 +01:00
Zach
11efb2c2eb Avoid drawing image_processing font text inside the bow line (#27796)
* Adjust font text such that it won't be drawn inside the bow line in image_processing.draw_box

* Adjust font_height after actually counting the pixels

* Thinned out line_width and adjusted font size
2019-11-05 11:43:36 +01:00
Ville Skyttä
804b6bbc0e Reduce test requirements duplication, sync flake8 and related (#28538)
* Generate pre-commit test dependencies instead of duplicating

* Upgrade/sync to flake8 3.7.9, flake8-docstrings 1.5.0, and pydocstyle 4.0.1

https://flake8.readthedocs.io/en/latest/release-notes/3.7.9.html
https://gitlab.com/pycqa/flake8-docstrings/blob/1.4.0/HISTORY.rst
https://gitlab.com/pycqa/flake8-docstrings/blob/1.5.0/HISTORY.rst
http://www.pydocstyle.org/en/4.0.1/release_notes.html

* Include requirements_test.txt from *_all.txt instead of copying
2019-11-04 21:21:52 -08:00
Santobert
ef20f0985a Improve scene.create service (#28533)
* Improve scene.create service

* Typo

* Improve coverage

* Add from_yaml attribute

* from_service instead of from_yaml
2019-11-04 21:15:58 -08:00
Bouwe Westerdijk
fb0e20543e Update Plugwise (#28237)
* Plugwise update

* Fix DEFAULT_NAME

* Fix pylint errors

* Remove showing of DHW-status

* Remove `if not None` where possible

* Forgot to remove dhw-related code

* Updated w.r.t. comments from MartinHjelmare

* Remove the illuminance attribute - move to sensor

* Update homeassistant/components/plugwise/climate.py

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

* Breaking lines

* Remove thermostat_temperature

* Try fix lint errors.

* Remove spaces

* Remove more spaces
2019-11-05 02:58:17 +01:00
HomeAssistant Azure
ade60742d4 [ci skip] Translation update 2019-11-05 00:31:48 +00:00
Paulus Schoutsen
16a80beb43 Fix scaffold 2019-11-04 14:14:57 -08:00
Paulus Schoutsen
83a9f4ddb8 rate is a separate word (#28535) 2019-11-04 14:01:10 -08:00
Marius Flage
f5fb9fc580 Checking state before actually sending a new state change. Some projectors return ERR if you try to turn off a projector that's already off. (#28529) 2019-11-04 21:54:36 +01:00
Thom Troy
6e58a0c996 Update ephember library version (#28507)
* update ephember library version

* update requirements_all.txt for new pyephember version

* update imports to top of module
2019-11-04 21:49:53 +01:00
shred86
fe749fc0f8 Fix sensor device in the Abode component (#28516)
* Fix for occupancy sensor unique_id

* Add check for sensor attributes before adding entity

* Fixes temperature key issue

* Clean up code with better use of keys

* Code clean up
2019-11-04 21:49:11 +01:00
Bram Kragten
e419689229 Add config endpoint for scene (#28429)
* Add config endpoint for scene

* Add scenes to default config

* Fix test and add context to websocket service call

* Update scene.py

* Add tests
2019-11-04 12:38:18 -08:00
kennedyshead
bbe0cf3a0c Bump version for asuswrt to 1.1.22 (#28322)
* Bumping version

* Fix requirements

* Fix requirements
2019-11-04 20:52:55 +01:00
Martin
06c26f3ffc Add heating_type for ViCare integration (#27296)
* Add heating_type for ViCare

* Add additional gas heating properties

* Update requirements_all

* Add hvac action

* Remove measurements

* Remove unused property
2019-11-04 20:12:43 +01:00
chriscla
aaad8eac0a Fire an event when nzbget download completes (#27763)
* Fire an event when download completes

* Rename event and use a set

* Use a set comprehension

* Renaming method
2019-11-04 19:39:03 +01:00
Ville Skyttä
6a7b5657ac Support Huawei LTE SSDP discovery (#28214)
* Support Huawei LTE SSDP discovery

* Avoid KeyError on simultaneous user initiated flow

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Format code

* Add already configured check

* Initialize context in test flows

* Move deviceType match to manifest

* Update generated.ssdp

* Add SSDP config flow test case

* Remove stale debug print from tests
2019-11-04 19:56:49 +02:00
Charles Garwood
f3ea44cd92 Cleanup Device Registry on Z-Wave Node Removal (#28240)
* Remove device from device registry on node removal

* Make async_get_registry from entity registry more concise

* Lower log level to debug
2019-11-04 10:17:32 -05:00
Jess
5b85456759 Add switches (on/off zones) to geniushub (#28182)
* New switch platform for geniushub
* Update to new geniushub-client with support for on/off zones
2019-11-04 13:32:33 +00:00
Pascal Vizeli
99c0559a0c Speech to Text component (#28434)
* Initial commit for STT

* Fix code review
2019-11-04 13:10:42 +01:00
SukramJ
33c8cba30d Enable transition time for HmIP-BSL - HomematicIP Cloud (#28201)
* Enable transition time for HmIP-BSL - HomematicIP Cloud

harden ACP
fix hao device name

* update test, initalize instance var
2019-11-04 12:22:28 +01:00
SukramJ
b7296c61bc Align attribute naming between light and switch for HomematicIP Cloud (#28271) 2019-11-04 12:05:39 +01:00
Paulus Schoutsen
552fbda58b Remove legacy reproduce state (#28458)
* Remove legacy reproduce state

* Fix imports
2019-11-04 11:12:04 +01:00
Luca Zimmermann
9b72a55d60 Add compatibility for other STBY Codes (#28478)
Added PWR2 as valid standby code
2019-11-04 11:11:10 +01:00
Oscar Tin Lai
6004ef3279 Expose set auto mode for all Dyson fans (#28488)
Set auto mode should be exposed to all dyson fans (e.g. *Pure Cool Link* and *Pure Hot+Cool Link*) instead of only *Pure Cool*, as it is support in all of the models (i.e. similar to the set night mode).
2019-11-04 11:10:59 +01:00
Jonas Janz
fadb9bdfb3 Add information to IFTTT services.yaml (#28385)
* docs(ifttt): add information to services.yaml

* docs(ifttt): start examples lowercase

* docs(ifttt): start examples with capital letter

* docs(ifttt): end description on period
2019-11-04 10:58:39 +01:00
Tobias Efinger
40b676c06f Add services description for ness alarm (#28250) 2019-11-04 10:29:29 +01:00
Florent Thoumie
de1799d486 iaqualink: better handling of failures (#28514) 2019-11-04 09:58:27 +01:00
Fabian Affolter
60d7f730c3 Upgrade jinja2 to >=2.10.3 (#28422) 2019-11-04 09:57:20 +01:00
Fabian Affolter
cb19827932 Upgrade paho-mqtt to 1.5.0 (#28423) 2019-11-04 09:56:58 +01:00
Fabian Affolter
fe00f3558e Imports twitch (#28517)
* Move imports

* Add unique_id
2019-11-04 09:56:46 +01:00
Tom Robinson
e91bb1ab08 Replace Netatmo CO2 sensor icon (#28520) 2019-11-04 09:56:36 +01:00
Fabian Affolter
381bf987d2 Upgrade TwitterAPI to 2.5.10 (#28401) 2019-11-04 09:56:27 +01:00
SukramJ
7cbd55a817 Add dump config service to HomematicIP Cloud (#28231)
* Add dump config service to HomematicIP Cloud

* Mock builin.open

* Fix test

* reduce SGTIN if anonymize

* apply review feedback
2019-11-04 09:55:12 +01:00
Fabian Affolter
c01b7bbf28 Upgrade pillow to 6.2.1 (#28442) 2019-11-04 09:03:58 +01:00
Ville Skyttä
7e6bcb85b7 Don't fail tox pylint if PYLINT_ARGS is not set (#28403)
Closes https://github.com/home-assistant/home-assistant/issues/28342
2019-11-04 08:12:15 +01:00
Kevin McCormack
cb2f42b336 Update Vivotek component stream source (#27941)
* Update Vivotek component

Fix building stream URL

* Update Vivotek component

Make stream path optionally configurable.

* Update Vivotek camera integration

Use f-string to build stream source URL.
This improve readability and I hear it runs faster.
2019-11-04 04:11:14 +01:00
HomeAssistant Azure
0973f1961d [ci skip] Translation update 2019-11-04 00:32:38 +00:00
Maciej Bieniek
4e40394972 Fix Airly if more than one config entry (#28498) 2019-11-04 00:58:35 +01:00
Ville Skyttä
9b038bd10d Don't use deprecated encoding to json.loads (#28509)
Will be removed in 3.9, ignored in earlier supported versions.
2019-11-04 00:24:24 +01:00
Ville Skyttä
734e982822 Import CancelledError from asyncio, not .futures (#28511)
It's no longer in .futures in Python 3.8.0.
2019-11-04 00:05:01 +01:00
escoand
0768ae2dc8 Fix flaky YesssSMS tests on debug messages (#28506) 2019-11-03 23:56:08 +01:00
Joakim Plate
5fd9b474dc Always provide brightness value (#28228)
HA will remove attribute when light is off, but google expect all trait data all the time.
2019-11-03 11:36:02 -08:00
escoand
ecf2e9c0ab Fix flaky Samsung TV tests (#28503) 2019-11-03 18:32:01 +01:00
Ville Skyttä
b904a2c5ad Handle Huawei LTE timeouts (#28465) 2019-11-02 21:28:38 -07:00
Fabian Affolter
314c3d0965 Use integration name in docstring (#28445) 2019-11-02 21:28:07 -07:00
Tim McCormick
5cbb6607a6 Fix missing import (#28460) 2019-11-02 21:25:24 -07:00
András Rutkai
31752d5736 Fixing #27722 Watson TTS platform (sdk upgrade) (#28468) 2019-11-02 21:24:02 -07:00
michaeldavie
0d432f60e2 Bump env_canada to 0.0.30 (#28487) 2019-11-02 21:21:46 -07:00
Paulus Schoutsen
67eeb8f258 Fix flaky test 2019-11-02 21:21:13 -07:00
HomeAssistant Azure
f71527d5db [ci skip] Translation update 2019-11-03 00:31:44 +00:00
Ville Skyttä
1679ec3245 SSDP matching improvements (#28285)
* SSDP matching improvements

- support multiple match groups per domain
- require matches on all, not any item in a group
- support matching on all UPnP device description data

* Manifest structure fixes
2019-11-02 12:30:09 -07:00
Ville Skyttä
a8dff2f2d0 pre-commit: ship default and full configs (#28463)
For now, the only difference between the two is mypy.
2019-11-02 12:21:09 -07:00
Nash Kaminski
b8fa5367db Fix inability to transition between specific presets in Venstar component (#28238)
This change addresses a bug where one is unable to change directly between the away and temperature hold presets, as temperature hold cannot be enabled on a Venstar thermostat if away mode is active.
Furthermore, this change removes redundant state checks as the set_away and set_schedule calls are idempotent in the venstarcolortouch library. See https://github.com/hpeyerl/venstar_colortouch/blob/master/src/venstarcolortouch/venstarcolortouch.py#L275.
2019-11-02 10:51:30 +01:00
ktnrg45
512ef2fce4 Change ps4 state off to state standby (#28261)
* Change state off to state standby

* update docstring
2019-11-02 10:32:37 +01:00
Paulus Schoutsen
6c138e2982 Merge pull request #28456 from home-assistant/rc
101.2
2019-11-01 20:08:30 -07:00
Paulus Schoutsen
969b36a447 Bumped version to 0.101.2 2019-11-01 17:32:57 -07:00
Paulus Schoutsen
3f8dc5ed75 Also install after_deps (#28453) 2019-11-01 17:32:53 -07:00
jjlawren
fc7d43269c Use server-specific unique_ids for Plex media_players (#28447) 2019-11-01 17:32:52 -07:00
Robin Pronk
b88c0cf314 SNMP switch fix integer support (#28425) 2019-11-01 17:32:52 -07:00
Mister Wil
9e9537a3d0 Change Abode cache file path, add cache path to config flow (#28389)
* Changed cache file path

* Cache file naming scheme matches original

* Restart tests

* Adding cache path to config_flow.py

* Moved DEFAULT_CACHEDB to consts file

* Use correct cache path

* Linting issues
2019-11-01 17:32:51 -07:00
phispi
84e4e94d8e Prevent TypeError when KNX RGB(W) light value contains None (#28358)
* Prevent TypeError when KNX RGB(W) light value contains None.

* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.

* Simplified code as suggested by pvizeli.
2019-11-01 17:32:51 -07:00
HomeAssistant Azure
4863face69 [ci skip] Translation update 2019-11-02 00:31:48 +00:00
Fabian Affolter
15900094a1 Update MQTT sensor test (#28449) 2019-11-01 17:30:37 -07:00
Mister Wil
ad4a960ed2 Change Abode cache file path, add cache path to config flow (#28389)
* Changed cache file path

* Cache file naming scheme matches original

* Restart tests

* Adding cache path to config_flow.py

* Moved DEFAULT_CACHEDB to consts file

* Use correct cache path

* Linting issues
2019-11-01 17:28:50 -07:00
Paulus Schoutsen
50affdf953 Also install after_deps (#28453) 2019-11-01 17:21:50 -07:00
Santobert
6655b7db2c Add scene.create service (#28300)
* Initial commit

* Fix scene.create
2019-11-01 15:53:42 -07:00
Robert Svensson
c0e1b97119 deCONZ - Improve discovery logging (#28452) 2019-11-01 23:36:23 +01:00
Robert Svensson
6cc947abbf deCONZ - Add Hue dimmer gen1 (rwl020) support to device triggers(#28450) 2019-11-01 23:06:29 +01:00
jjlawren
21d48218aa Use server-specific unique_ids for Plex media_players (#28447) 2019-11-01 22:41:26 +01:00
Robert Svensson
557e585e56 deCONZ - Support creating battery sensor when reported (#27538) 2019-11-01 22:31:22 +01:00
Robert Svensson
62b09580c4 deCONZ - Add Xiaomi Aqara Cube device trigger support (#27548)
* Add Xiaomi Aqara Cube device trigger support
2019-11-01 22:29:34 +01:00
Santobert
07b7d514ac Add improved scene support to the water_heater integration (#28277) 2019-11-01 13:37:34 -07:00
Santobert
12f1a8f551 Add improved scene support to the alarm_control_panel integration (#28269)
* Add improved scene support to the alarm_control_panel integration

* Add service description for alarm_arm_custom_bypass
2019-11-01 13:36:18 -07:00
SukramJ
1fb377e61e Use defined device class constants for Homematic (#28438)
* Use defined device classes for Homematic

* Remove not required default None

* Missed on None
2019-11-01 21:25:33 +01:00
phispi
f8d779e840 Prevent TypeError when KNX RGB(W) light value contains None (#28358)
* Prevent TypeError when KNX RGB(W) light value contains None.

* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.

* Simplified code as suggested by pvizeli.
2019-11-01 21:23:23 +01:00
John Mihalic
44879b323e Bump pyEight library to 0.1.2 to update API URL (#28413) 2019-11-01 18:40:35 +01:00
Robin Pronk
c7d72f55e9 SNMP switch fix integer support (#28425) 2019-11-01 15:38:13 +01:00
Fabian Affolter
07337badcd Upgrade pysnmp to 4.4.12 (#28428) 2019-11-01 14:28:38 +01:00
Michael Schoonmaker
6f24d2bb3b Add a Services YAML for the Dominos integration (#27289) (#28339) 2019-11-01 14:27:26 +01:00
Fabian Affolter
083d34cdd9 Upgrade attrs to 19.3.0 (#28421) 2019-11-01 13:10:53 +01:00
Fabian Affolter
72a17d4c67 Upgrade thingspeak to 1.0.0 (#28424) 2019-11-01 13:09:45 +01:00
HomeAssistant Azure
bb6a617a6f [ci skip] Translation update 2019-11-01 00:32:13 +00:00
Daniyar Yeralin
54361342ba Introduce SUPPORT_COLOR_TEMP for flux_led component (#26692)
* Introduce SUPPORT_COLOR_TEMP for flux_led component

* Make black linter happy

* Remove duplicate SUPPORT_COLOR_TEMP

* Make linter happy
2019-11-01 00:15:20 +01:00
Paulus Schoutsen
5c9f7484c2 Merge remote-tracking branch 'origin/master' into dev 2019-10-31 14:18:03 -07:00
Malte Franken
d200c2dca2 fix feedreader handling unrecognized published date (#28225) 2019-10-31 21:05:42 +01:00
escoand
82729bef70 Show all UPNP/IGD sensors in one device (#27517)
* show all UPNP/IGD sensors in one device

* use device name correctly

* Use id of device
2019-10-31 20:51:35 +01:00
thoscut
ec373d90c1 Add file list to attributes of folder sensor (#28338) 2019-10-31 20:49:33 +01:00
gngj
b74711793e Fill services.yaml for squeezebox (#28247)
* fill services.yaml for squeezebox

* Minor fix
2019-10-31 20:32:05 +01:00
Nikolay Vasilchuk
abbf6595bb Fix (#28369) 2019-10-31 12:07:07 -07:00
Paulus Schoutsen
631a819bd1 Fix check config (#28393) 2019-10-31 11:39:26 -07:00
Paulus Schoutsen
70c4b4a4f0 Check for import errors before validating config (#28395) 2019-10-31 11:38:06 -07:00
Tsvi Mostovicz
674860e00e Fix hdate spamming homeassistant log (#28392)
* Fix hdate spamming homeassistant log

* Lower verbosity of another spammy message
2019-10-31 11:16:27 -07:00
ZiroNL
5854eef47b Add services.yaml to onvif component (#28349) 2019-10-31 18:57:00 +01:00
Robert Van Gorkom
226b2bc3d0 Update withings-api to avoid data parsing bugs. (#28382) 2019-10-31 18:29:10 +01:00
Alexei Chetroi
89213a4ce8 Don't set entity_id in ZHA entities (#28362)
* Don't set entity_id on ZHA entities.
* Update tests.
* Use comma as separator for multiple channel names.
* Address PR comments.
2019-10-31 12:31:06 -04:00
Maciej Bieniek
d133501735 Fix Airly asyncio timeout error (#28387)
* Raise ConfigEntryNotReady

* Better asyncio.TimeoutError handling

* Sort imports

* Increase asyncio timeout
2019-10-31 09:29:27 -07:00
ochlocracy
ff5b070f4b Implement Alexa.SeekController Interface for media_player in Alexa (#28299)
* Implement Alexa.SeekController Interface for Alexa

* Added error handling and duration checks.

* Split out media_player SeekController tests and added error test.
2019-10-31 10:38:44 +01:00
gngj
bfe4a85e9d Fill services.yaml for duckdns (#28248)
* Fill services.yaml for duckdns

* Apply suggestions from code review

Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
2019-10-31 09:51:15 +01:00
Mark Coombes
e11c9d710c Add modelnumber for ecobee4 (#28278) 2019-10-31 09:49:38 +01:00
Santobert
89df821113 Flux log with debug instead of info (#28352) 2019-10-31 09:41:44 +01:00
fredericvl
ef92c5672d Bump pysaj to v0.0.13 (fix for sensor date) (#28351) 2019-10-31 09:39:27 +01:00
Steve M
d3750401c1 Bump env_canada to fixed 0.0.29 version (#28360)
* Bump env_canada to fixed 0.0.29 version

* bump env_canada to 0.29
2019-10-31 09:38:53 +01:00
HomeAssistant Azure
ee24710524 [ci skip] Translation update 2019-10-31 00:32:14 +00:00
Erik Montnemery
8ae43d2de3 Add device triggers to cover (#28063)
* Add device triggers to cover

* Use numeric_state trigger instead of template trigger

* Tweak translations
2019-10-30 20:49:01 +01:00
Aaron Bach
bda3aadbcf Bump pymyq to 2.0.1 (#28348) 2019-10-30 09:05:13 -06:00
ZiroNL
4350467a00 Add services.yaml to local_file component. (#28330) 2019-10-30 08:36:53 +01:00
springstan
f8efc2adc6 Fix KeyError in decora setup (#28279)
* Imported homeassistant.util and slugified address if no name is specified

* Added a custom validator function in case name is not set in config

* Removed logger.debug line only used for testing
2019-10-30 07:57:40 +01:00
Paulus Schoutsen
24c29f9227 Add OAuth2 config flow scaffold (#28220)
* Add OAuth2 scaffold

* Generate integration if non-existing domain specified

* Update URL
2019-10-29 20:34:03 -07:00
HomeAssistant Azure
e700384cce [ci skip] Translation update 2019-10-30 00:32:11 +00:00
David Bonnes
e1eab214ad allow multiple heaters per incomfort gateway (#28324)
* add multiple heaters per gateway
* bump client to handle the above
2019-10-29 21:29:39 +00:00
Sebastian Muszynski
6d734a714e Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1) (#28301)
* Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1)

* Remove unused variable

* Provide a proper unique_id

* Incorporate review

* Wrap the method that cause the exception

* Undo mistakenly changed file. Fixed in the separate PR.
2019-10-29 22:17:09 +01:00
Renaud Martinet
3a9e3ce857 Add services description for sabnzbd component (#28252) 2019-10-29 15:17:49 -04:00
cgtobi
1dfb67f0c5 Bump pytest to 5.2.2 (#28230) 2019-10-29 15:16:05 -04:00
Bram Kragten
5592eb7709 Updated frontend to 20191025.1 (#28327) 2019-10-29 16:30:33 +01:00
Pascal Vizeli
c00b058e53 Cleanup not needed websocket flags for ingress (#28295) 2019-10-29 12:05:05 +01:00
Jonas Janz
502f59977a Add description for arlo.update service (#28270) 2019-10-29 11:02:25 +01:00
Franck Nijhof
756c36171d Bump youtube_dl to 2019.10.29 (#28312) 2019-10-29 09:37:51 +01:00
Franck Nijhof
4dc6d36224 Bump pre-commit to 1.20.0 (#28313) 2019-10-29 09:37:18 +01:00
Paulus Schoutsen
79ac77a93d Almond integration (#28282)
* Initial Almond integration

* Hassfest

* Update library

* Address comments

* Fix inheritance issue py36

* Remove no longer needed check

* Fix time
2019-10-28 23:47:31 -07:00
Franck Nijhof
a4ec4d5a18 Add source constants for all config entry discovery sources (#28311) 2019-10-28 23:32:57 -07:00
Franck Nijhof
04ab20846a Bump black to 19.10b0 (#28310) 2019-10-28 23:32:34 -07:00
Sebastian Muszynski
5b96704c4a Use dict[key] for required config keys (#28304)
* Use dict[key] for required config keys

* Change CONF_NAME too because it has a default
2019-10-29 01:45:22 +01:00
Sebastian Muszynski
a0f764cf6d Remove blocking I/O from the event loop (#28305) 2019-10-29 01:44:26 +01:00
HomeAssistant Azure
0e4331e922 [ci skip] Translation update 2019-10-29 00:32:16 +00:00
Josh Bendavid
1e27a1f2b9 Add keyboard_remote trigger on multiple event types and emulate key hold events (#27761)
* convert keyboard_remote to async and add possibility to trigger on multiple event types, as well as emulate key hold events

* update requirements

* cleanup shutdown handling and config handling as well as address other minor comments

* cleanup unused return values and debug message formatting

* move start and stop event listen to separate coroutine plus minor cleanup

* make setup coroutine a function

* fix import order and attribute defined outside of init

* add to codeowners

* update codeowners
2019-10-29 00:59:13 +01:00
Florent Thoumie
0ef99934b7 Add more iaqualink entity properties, fix timeout issues (#28236)
* iaqualink: implement some more entity properties

* Style fixes
2019-10-29 00:42:06 +01:00
Ville Skyttä
f88ead597a Type hint improvements (#28260)
* Add and improve core and config_entries type hints

* Complete and improve config_entries type hints

* More entity registry type hints

* Complete helpers.event type hints
2019-10-28 13:36:26 -07:00
Yann Jajkiewicz
f7a64019b6 Add support for Somfy Garage door Rollixo IO DiscreteGarageOpenerIOComponent in Tahoma component (#28291) 2019-10-28 11:22:15 -07:00
jjlawren
31dd69196c Bump library to 0.0.3 (#28294) 2019-10-28 10:39:37 -07:00
Pascal Vizeli
335872b54d Revert "More header cleanup for websocket proxy (#28288)" (#28293)
This reverts commit 7887850505.
2019-10-28 16:54:15 +01:00
Bram Kragten
549e8cf2c5 Hue: Create new config flow when auth is lost (#28204)
* Hue: Create new config flow when auth is lost

* Fix tests

* Fix tests

* Comments

* Lint
2019-10-28 08:45:08 -07:00
Eliseo Martelli
30f4ee121a Remove GTT component (#28286)
* removed GTT component

* Removed gtt.py from coveragerc
2019-10-28 14:54:42 +01:00
Sören
c1d88dd7a4 Bump avea to 1.4 (#28287)
* Bump avea to 1.4

* Bump avea to 1.4 #2
2019-10-28 14:47:04 +01:00
Pascal Vizeli
7887850505 More header cleanup for websocket proxy (#28288) 2019-10-28 14:34:13 +01:00
J.P. Hutchins
54342d2a4e Add transmission info about torrents that is accessible with templating (#27111)
* Add information about current downloads.

* Cleanup: add "Torrent Info" state attribute

* Add username to codeowners

* Rename state_attributes - device_state_attributes.

* Fix snakecase keys, use f-strings, remove redundant method.

* Access started_torrent_dict directly

* Add return None condition

* Remove redundancy.

* Add missing comma in codeowners list.

* Add missing @ to username.

* Update CODEOWNERS with script.hassfest.

* Remove transmission_downloading, give started_torrents the info.

* Confirm changes.

* Actually approve changes.

* Resolve conflicts.

* Remove leftovers from old torrent_info sensor.

* Remove get_started_torrent_info method.

Old method to display boolean for the removed torrent_info sensor.
2019-10-28 10:20:59 +01:00
fwestenberg
edcf476408 Add support for Xiaomi Air Quality Monitor (cgllc.airmonitor.b1) (#27735) 2019-10-28 07:43:01 +01:00
HomeAssistant Azure
72dee7dd21 [ci skip] Translation update 2019-10-28 00:32:16 +00:00
SukramJ
75f94b9147 Reorg and test attributes for HomematicIP Cloud (#28234)
* Reorg and test attribute for HomematicIP Cloud

* Add dutyCycle check to security_group

* Edit test to improve coverage

* Add missing flow test

* apply suggestion

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

* fix assert condition
2019-10-28 01:03:26 +01:00
ZiroNL
6ac7796fb7 Add charset to imap component. (#28258) 2019-10-27 13:07:44 +01:00
Fabian Affolter
a9db2ead33 Suppress traceback (fixes #28243) (#28262) 2019-10-27 12:39:36 +01:00
Fabian Affolter
7e862e4d92 Update praw to 6.4.0 (#27324)
* Update praw to 6.4.0

* Update requirements_test_all.txt

* Fix docstrings

* Update tests
2019-10-27 10:04:43 +01:00
Floris Van der krieken
2747f08385 Add available state to unifiled integration (#28189)
* Added Unifi Led

* fixed manifest

* fixed style issue

* removed unused setting

* added sugested changes.

* fixed order

* fixed settings that are required

* Fix review issues

* fix variable name that was too short

* Testing something

* Reverted to a previous version for testing

* Reverted testing changes.

* Add available status and increase version of unifiled package version.

* No io in init function.
2019-10-27 05:18:23 +01:00
HomeAssistant Azure
868f88a4e0 [ci skip] Translation update 2019-10-27 00:32:10 +00:00
Fabian Affolter
bb8f139716 Upgrade speedtest-cli to 2.1.2 (#28216) 2019-10-26 13:45:42 +02:00
Ville Skyttä
2baee4ac3e Add Huawei LTE mobile data switch support (#28188)
* Add Huawei LTE mobile data switch support

* Remove stale comment

* Do HA state updates in base entity
2019-10-26 13:29:36 +03:00
HomeAssistant Azure
7096826d1d [ci skip] Translation update 2019-10-26 00:32:20 +00:00
Paulus Schoutsen
08cc9fd375 Add cloud account linking support (#28210)
* Add cloud account linking support

* Update account_link.py
2019-10-25 16:04:24 -07:00
Erik Montnemery
475b43500a Add above and below to sensor condition extra_fields (#27364)
* Add above and below to sensor condition extra_fields

* Change unit_of_measurement to suffix in extra_fields

* Check if sensor has unit when getting capabilities

* Improve tests
2019-10-26 06:55:42 +08:00
ochlocracy
d6654eaecb Implement Alexa.PlaybackStateReporter Interface for alexa (#28215) 2019-10-25 14:53:33 -07:00
Erik Montnemery
7fee44b8c5 Add additional device conditions to cover (#27830)
* Add additional device conditions to cover

* Add default value

* Add test

* Use numeric_state condition instead of template condition
2019-10-25 13:50:46 -07:00
ochlocracy
d44bfa8e88 Improved Alexa ThermostatController thermostatMode handling (#28176)
* Update ThermostatController to map directives to supported modes and add support for CUSTOM mode.

* Removed erroneous config value from test.

* Removed unnecessary use of a comprehension by dumbing down comment so pylint could comprehend.

* Removed erroneous import variable caused by removing erroneous config value from test.

* Removed unnecessary use of a comprehension.

* Reverted Removal or erroneous import variable and erroneous config value from test.
Apparently need for additional tests outside this component. Whoops.
2019-10-25 13:42:21 -07:00
Erik Montnemery
f4341c1546 Fix broken deconz trigger (#28211) 2019-10-25 13:40:05 -07:00
ochlocracy
da8a476142 Add support for supportedOperations to Alexa.PlaybackController (#28212)
* Added support for supportedOperations to Alexa.PlaybackController

* Added support for supportedOperations to Alexa.PlaybackController
2019-10-25 13:34:51 -07:00
Markus Pöschl
f2d6cc7329 Increased python-eq3bt version to latest (0.1.11) (#28175) 2019-10-25 21:25:27 +02:00
Hayley McIldoon
7ddce1d52b Add device condition support for device_tracker (#28190) 2019-10-25 10:51:35 -07:00
gngj
d28f7ab120 Fix microsoft tts (#28199)
* Update pycsspeechtts

From 1.0.2 to 1.0.3 as the old one is using an api that doesn't work

* Give a option to choose region

Api is now region dependent, so gave it a config
2019-10-25 10:42:23 -07:00
Hayley McIldoon
2c914e0c59 Add device condition support for media_player (#28161)
* Add device condition for media_player

* Fix typo in strings
2019-10-25 10:22:39 -07:00
ochlocracy
38428308fc Change Alexa default display category based on media_player device_class (#28191)
* Support default display category based one media_player device_class.

* Support default display category based one media_player device_class.
2019-10-25 10:21:22 -07:00
Bram Kragten
5c8a9c2815 Updated frontend to 20191025.0 (#28208) 2019-10-25 10:20:42 -07:00
Ville Skyttä
3c4caaaefc Add presentation URL to SSDP discovery info (#28196) 2019-10-25 20:09:18 +03:00
On Freund
0656f0c62b Address post-merge coolmaster config flow code review (#28163)
* Address post-merge code review comments

* Use component path for 3rd party lib
2019-10-25 18:39:16 +02:00
jjlawren
43c7b57d1e Update Plex via websockets (#28158)
* Save client identifier from auth for future use

* Use websocket events to update Plex

* Handle websocket disconnections

* Use aiohttp, shut down socket cleanly

* Bad rebase fix

* Don't connect websocket during config_flow validation, fix tests

* Move websocket handling to external library

* Close websocket session on HA stop

* Use external library, revert unnecessary test change

* Async & lint fixes

* Clean up websocket stopper on entry unload

* Setup websocket in component, pass actual needed object to library
2019-10-25 18:37:50 +02:00
gngj
9153729b21 move hass-frontend import back down (#28203) 2019-10-25 09:02:40 -07:00
guillempages
98cf3f4aa3 [homematic]Add support for HmIP-BSL LEDs (#27307)
With this commit, 3 entities are created for the HmIP-BSL device:
2 lights for the two independent LEDs and 1 switch for the relais
2019-10-25 16:08:11 +02:00
guillempages
6bfb2460f2 [homematic]Pass channel to light color functions (#27306)
The device HmIP-BSL has two independent LEDs on two different channels,
so the channel needs to be explictly specified when setting the color.
2019-10-25 16:06:52 +02:00
escoand
9661efc312 Add Samsung TV automatic protocol detection (#27492)
* added automatic protocol detection

* fix logger tests

* fix async tests

* add missin const.py

* fix log formatting

* wait for first update call

* migrate first tests

* migrated all test functions

* started to use state machine

* updated all tests to use async_setup_component

* slove hints

* update tests

* get state at correct position

* remove impossible tests

* fix autodetect tests

* use caplog fixture

* add test for duplicate

* catch concrete exceptions

* don't mock samsungctl exceptions

* add test for discovery

* get state when possible

* add test for autodetect without connection
2019-10-25 14:32:12 +02:00
HomeAssistant Azure
95295791bd [ci skip] Translation update 2019-10-25 00:32:15 +00:00
Ville Skyttä
643b3a98ee Huawei LTE sensor metadata update (#28187) 2019-10-24 16:42:54 -07:00
SukramJ
32a024c641 Partially revert tensorflow import move (#28184)
* Revert "Refactor imports for tensorflow (#27617)"

This reverts commit 5a83a92390.

* move only some imports to top

* fix lint

* add comments
2019-10-24 16:41:13 -07:00
Joakim Sørensen
67cf7c26da Removes unwanted tradfri battery sensor (#28181) 2019-10-24 23:25:47 +02:00
Josef Schlehofer
63deec3275 Bump python-slugify to 4.0.0 (#28186) 2019-10-24 23:12:41 +02:00
kennedyshead
98ac8a217d Adding device_class to samsungtv (#28168)
* Adding device_id to samsungtv

* Lint

* Adding test
2019-10-24 13:41:07 -07:00
Diefferson Koderer Môro
c96d4c978d Fix tzinfo type for onvif component (#28178) 2019-10-24 13:39:10 -07:00
Joakim Sørensen
ec478ab848 Add stop feature to tradfri covers (#28180)
* Tradfri cover enhancements

* tradfri dependency update

* Revert addition of battery attrubite

* Remove the supported_features property

* Remove unwanted file
2019-10-24 13:38:24 -07:00
Otto Winter
322d8c2dd5 Fix ESPHome stacktraces when removing entity and shutting down (#28185) 2019-10-24 13:36:47 -07:00
Joakim Sørensen
b61218f90e Tradfri config flow enhancements (#28179) 2019-10-24 21:31:58 +02:00
Otto Winter
8791a48328 Bump aioesphomeapi to 2.4.1 (#28170)
* Bump aioesphomeapi to 2.4.1

* Update requirements

* Bump to 2.4.2
2019-10-24 20:24:46 +02:00
Robert Van Gorkom
15bedd8f27 Use latest withings_api module (#27817)
* Using latest winthings_api module.
Drastically reduced complexity of tests.

* Removing import source.

* Fixing test requirements.

* Using requests_mock instead of responses module.

* Updating file formatting.

* Removing unused method.

* Adding support for new OAuth2 config flow.

* Addressing PR feedback.
Removing unecessary base_url from config, this is a potential breaking change.

* Addressing PR feedback.
2019-10-24 09:41:04 -07:00
Ville Skyttä
fc09702cc3 Modernize Huawei LTE (#26675)
* Modernization rework

- config entry support, with override support from huawei_lte platform in YAML
- device tracker entity registry support
- refactor for easier addition of more features
- internal code cleanups

* Remove log level dependent subscription/data debug hack

No longer needed, because pretty much all keys from supported
categories are exposed as sensors.

Closes https://github.com/home-assistant/home-assistant/issues/23819

* Upgrade huawei-lte-api to 1.4.1

https://github.com/Salamek/huawei-lte-api/releases

* Add support for access without username and password

* Use subclass init instead of config_entries.HANDLERS

* Update huawei-lte-api to 1.4.3 (#27269)

* Convert device state attributes to snake_case

* Simplify scanner entity initialization

* Remove not needed hass reference from Router

* Return explicit None from unsupported old device tracker setup

* Mark unknown connection errors during config as such

* Drop some dead config flow code

* Run config flow sync I/O in executor

* Parametrize config flow login error tests

* Forward entry unload to platforms

* Async/sync fixups

* Improve data subscription debug logging

* Implement on the fly add of new and tracking of seen device tracker entities

* Handle device tracker entry unload cleanup in component

* Remove unnecessary _async_setup_lte, just have code in async_setup_entry

* Remove time tracker on unload

* Fix to not use same mutable default subscription set for all routers

* Pylint fixes

* Remove some redundant defensive device tracker code

* Add back explicit get_scanner None return, hush pylint

* Adjust approach to set system_options on entry create

* Enable some sensors on first add instead of disabling everything

* Fix SMS notification recipients default value

* Add option to skip new device tracker entities

* Fix SMS notification recipient option default

* Work around https://github.com/PyCQA/pylint/issues/3202

* Remove unrelated type hint additions

* Change async_add_new_entities to a regular function

* Remove option to disable polling for new device tracker entries
2019-10-24 19:31:49 +03:00
Alexei Chetroi
969322e14a Fixes/zha ieee tail (#28160)
* Fix ZHA entity_id assignment.

* Update tests.
2019-10-24 12:23:02 -04:00
Floris Van der krieken
b1fcecd526 Add Unifi Led (#27475)
* Added Unifi Led

* fixed manifest

* fixed style issue

* removed unused setting

* added sugested changes.

* fixed order

* fixed settings that are required

* Fix review issues

* fix variable name that was too short

* Testing something

* Reverted to a previous version for testing

* Reverted testing changes.
2019-10-24 17:59:25 +02:00
kennedyshead
d44de6dd2b Fix Venstar formatting to restore clean CI (#28171) 2019-10-24 16:03:29 +02:00
Diefferson Koderer Môro
dd9ca70e96 Add onvif local datetime support (#26656)
* Update camera.py

* Add onvif local datetime support

* Correct capture TimeZone

* Replace one line if-statement by if-block
2019-10-23 21:03:24 -07:00
HomeAssistant Azure
8c31afc31e [ci skip] Translation update 2019-10-24 00:32:18 +00:00
Tyler Page
6a1501b59c Cover all possible values for venstar operation_mode (#27949)
* cover all possible values for operation_mode

* Update climate.py

* Update climate.py

* Update climate.py

mapped homeassistant constants to client ones so we don't have to check for both

* black + pylint

* move mode_map to __init__()

* Update climate.py

* Update climate.py
2019-10-24 02:10:57 +02:00
Teemu R
160c201be1 Bump songpal to fix a regression (#28115)
The new release fixes a single regression from requests to aiohttp conversion.
Some devices do not respond with the correct mimetype which was not enforced
by requests but is enforced by aiohttp.

Related PR https://github.com/rytilahti/python-songpal/pull/59
2019-10-23 23:13:56 +02:00
Paulus Schoutsen
1b21685651 Version bump to 102.0.dev0" 2019-10-23 13:38:35 -07:00
4310 changed files with 83957 additions and 32135 deletions

View File

@@ -5,7 +5,6 @@ omit =
homeassistant/__main__.py
homeassistant/helpers/signal.py
homeassistant/helpers/typing.py
homeassistant/monkey_patch.py
homeassistant/scripts/*.py
homeassistant/util/async.py
@@ -62,6 +61,7 @@ omit =
homeassistant/components/asterisk_cdr/mailbox.py
homeassistant/components/asterisk_mbox/*
homeassistant/components/asuswrt/device_tracker.py
homeassistant/components/aten_pe/*
homeassistant/components/atome/*
homeassistant/components/august/*
homeassistant/components/aurora_abb_powerone/sensor.py
@@ -69,6 +69,7 @@ omit =
homeassistant/components/avea/light.py
homeassistant/components/avion/light.py
homeassistant/components/azure_event_hub/*
homeassistant/components/azure_service_bus/*
homeassistant/components/baidu/tts.py
homeassistant/components/beewi_smartclim/sensor.py
homeassistant/components/bbb_gpio/*
@@ -82,9 +83,8 @@ omit =
homeassistant/components/blinkt/light.py
homeassistant/components/blockchain/sensor.py
homeassistant/components/bloomsky/*
homeassistant/components/bluesound/media_player.py
homeassistant/components/bluetooth_le_tracker/device_tracker.py
homeassistant/components/bluetooth_tracker/device_tracker.py
homeassistant/components/bluesound/*
homeassistant/components/bluetooth_tracker/*
homeassistant/components/bme280/sensor.py
homeassistant/components/bme680/sensor.py
homeassistant/components/bmw_connected_drive/*
@@ -92,8 +92,12 @@ omit =
homeassistant/components/bom/sensor.py
homeassistant/components/bom/weather.py
homeassistant/components/braviatv/media_player.py
homeassistant/components/broadlink/remote.py
homeassistant/components/broadlink/sensor.py
homeassistant/components/broadlink/switch.py
homeassistant/components/brother/__init__.py
homeassistant/components/brother/sensor.py
homeassistant/components/brother/const.py
homeassistant/components/brottsplatskartan/sensor.py
homeassistant/components/browser/*
homeassistant/components/brunt/cover.py
@@ -108,7 +112,7 @@ omit =
homeassistant/components/cast/*
homeassistant/components/cert_expiry/sensor.py
homeassistant/components/cert_expiry/helper.py
homeassistant/components/channels/media_player.py
homeassistant/components/channels/*
homeassistant/components/cisco_ios/device_tracker.py
homeassistant/components/cisco_mobility_express/device_tracker.py
homeassistant/components/cisco_webex_teams/notify.py
@@ -162,6 +166,7 @@ omit =
homeassistant/components/doorbird/*
homeassistant/components/dovado/*
homeassistant/components/downloader/*
homeassistant/components/dsmr_reader/*
homeassistant/components/dte_energy_bridge/sensor.py
homeassistant/components/dublin_bus_transport/sensor.py
homeassistant/components/duke_energy/sensor.py
@@ -177,7 +182,7 @@ omit =
homeassistant/components/ecobee/notify.py
homeassistant/components/ecobee/sensor.py
homeassistant/components/ecobee/weather.py
homeassistant/components/econet/water_heater.py
homeassistant/components/econet/*
homeassistant/components/ecovacs/*
homeassistant/components/eddystone_temperature/sensor.py
homeassistant/components/edimax/switch.py
@@ -198,6 +203,7 @@ omit =
homeassistant/components/envirophat/sensor.py
homeassistant/components/envisalink/*
homeassistant/components/ephember/climate.py
homeassistant/components/epson/const.py
homeassistant/components/epson/media_player.py
homeassistant/components/epsonworkforce/sensor.py
homeassistant/components/eq3btsmart/climate.py
@@ -228,6 +234,7 @@ omit =
homeassistant/components/flexit/climate.py
homeassistant/components/flic/binary_sensor.py
homeassistant/components/flock/notify.py
homeassistant/components/flume/*
homeassistant/components/flunearyou/sensor.py
homeassistant/components/flux_led/light.py
homeassistant/components/folder/sensor.py
@@ -253,6 +260,9 @@ omit =
homeassistant/components/geniushub/*
homeassistant/components/gearbest/sensor.py
homeassistant/components/geizhals/sensor.py
homeassistant/components/gios/__init__.py
homeassistant/components/gios/air_quality.py
homeassistant/components/gios/consts.py
homeassistant/components/github/sensor.py
homeassistant/components/gitlab_ci/sensor.py
homeassistant/components/gitter/sensor.py
@@ -274,7 +284,6 @@ omit =
homeassistant/components/growatt_server/sensor.py
homeassistant/components/gstreamer/media_player.py
homeassistant/components/gtfs/sensor.py
homeassistant/components/gtt/sensor.py
homeassistant/components/habitica/*
homeassistant/components/hangouts/*
homeassistant/components/hangouts/__init__.py
@@ -282,12 +291,13 @@ omit =
homeassistant/components/hangouts/hangouts_bot.py
homeassistant/components/hangouts/hangups_utils.py
homeassistant/components/harman_kardon_avr/media_player.py
homeassistant/components/harmony/remote.py
homeassistant/components/harmony/*
homeassistant/components/haveibeenpwned/sensor.py
homeassistant/components/hdmi_cec/*
homeassistant/components/heatmiser/climate.py
homeassistant/components/hikvision/binary_sensor.py
homeassistant/components/hikvisioncam/switch.py
homeassistant/components/hisense_aehw4a1/*
homeassistant/components/hitron_coda/device_tracker.py
homeassistant/components/hive/*
homeassistant/components/hlk_sw16/*
@@ -313,7 +323,9 @@ omit =
homeassistant/components/iaqualink/light.py
homeassistant/components/iaqualink/sensor.py
homeassistant/components/iaqualink/switch.py
homeassistant/components/icloud/__init__.py
homeassistant/components/icloud/device_tracker.py
homeassistant/components/icloud/sensor.py
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/izone/__init__.py
@@ -326,6 +338,7 @@ omit =
homeassistant/components/influxdb/sensor.py
homeassistant/components/insteon/*
homeassistant/components/incomfort/*
homeassistant/components/intesishome/*
homeassistant/components/ios/*
homeassistant/components/iota/*
homeassistant/components/iperf3/*
@@ -341,6 +354,7 @@ omit =
homeassistant/components/kankun/switch.py
homeassistant/components/keba/*
homeassistant/components/keenetic_ndms2/device_tracker.py
homeassistant/components/kef/*
homeassistant/components/keyboard/*
homeassistant/components/keyboard_remote/*
homeassistant/components/kira/*
@@ -409,6 +423,7 @@ omit =
homeassistant/components/miflora/sensor.py
homeassistant/components/mikrotik/*
homeassistant/components/mill/climate.py
homeassistant/components/mill/const.py
homeassistant/components/minio/*
homeassistant/components/mitemp_bt/sensor.py
homeassistant/components/mjpeg/camera.py
@@ -499,6 +514,7 @@ omit =
homeassistant/components/panasonic_bluray/media_player.py
homeassistant/components/panasonic_viera/media_player.py
homeassistant/components/pandora/media_player.py
homeassistant/components/pcal9535a/*
homeassistant/components/pencom/switch.py
homeassistant/components/philips_js/media_player.py
homeassistant/components/pi_hole/sensor.py
@@ -524,6 +540,7 @@ omit =
homeassistant/components/proliphix/climate.py
homeassistant/components/prometheus/*
homeassistant/components/prowl/notify.py
homeassistant/components/proxmoxve/*
homeassistant/components/proxy/camera.py
homeassistant/components/ptvsd/*
homeassistant/components/pulseaudio_loopback/switch.py
@@ -592,6 +609,7 @@ omit =
homeassistant/components/sensehat/light.py
homeassistant/components/sensehat/sensor.py
homeassistant/components/sensibo/climate.py
homeassistant/components/sentry/__init__.py
homeassistant/components/serial/sensor.py
homeassistant/components/serial_pm/sensor.py
homeassistant/components/sesame/lock.py
@@ -601,9 +619,12 @@ omit =
homeassistant/components/shodan/sensor.py
homeassistant/components/sht31/sensor.py
homeassistant/components/sigfox/sensor.py
homeassistant/components/signal_messenger/__init__.py
homeassistant/components/signal_messenger/notify.py
homeassistant/components/simplepush/notify.py
homeassistant/components/simplisafe/__init__.py
homeassistant/components/simplisafe/alarm_control_panel.py
homeassistant/components/simplisafe/lock.py
homeassistant/components/simulated/sensor.py
homeassistant/components/sisyphus/*
homeassistant/components/sky_hub/device_tracker.py
@@ -631,7 +652,7 @@ omit =
homeassistant/components/somfy/*
homeassistant/components/somfy_mylink/*
homeassistant/components/sonarr/sensor.py
homeassistant/components/songpal/media_player.py
homeassistant/components/songpal/*
homeassistant/components/sonos/*
homeassistant/components/sony_projector/switch.py
homeassistant/components/spc/*
@@ -639,13 +660,16 @@ omit =
homeassistant/components/spider/*
homeassistant/components/spotcrime/sensor.py
homeassistant/components/spotify/media_player.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/squeezebox/*
homeassistant/components/starline/*
homeassistant/components/starlingbank/sensor.py
homeassistant/components/steam_online/sensor.py
homeassistant/components/stiebel_eltron/*
homeassistant/components/stookalert/*
homeassistant/components/streamlabswater/*
homeassistant/components/suez_water/*
homeassistant/components/supervisord/sensor.py
homeassistant/components/surepetcare/*.py
homeassistant/components/swiss_hydrological_data/sensor.py
homeassistant/components/swiss_public_transport/sensor.py
homeassistant/components/swisscom/device_tracker.py
@@ -673,7 +697,14 @@ omit =
homeassistant/components/telnet/switch.py
homeassistant/components/temper/sensor.py
homeassistant/components/tensorflow/image_processing.py
homeassistant/components/tesla/*
homeassistant/components/tesla/__init__.py
homeassistant/components/tesla/binary_sensor.py
homeassistant/components/tesla/climate.py
homeassistant/components/tesla/const.py
homeassistant/components/tesla/device_tracker.py
homeassistant/components/tesla/lock.py
homeassistant/components/tesla/sensor.py
homeassistant/components/tesla/switch.py
homeassistant/components/tfiac/climate.py
homeassistant/components/thermoworks_smoke/sensor.py
homeassistant/components/thethingsnetwork/*
@@ -684,7 +715,9 @@ omit =
homeassistant/components/tikteck/light.py
homeassistant/components/tile/device_tracker.py
homeassistant/components/time_date/sensor.py
homeassistant/components/tmb/sensor.py
homeassistant/components/todoist/calendar.py
homeassistant/components/todoist/const.py
homeassistant/components/tof/sensor.py
homeassistant/components/tomato/device_tracker.py
homeassistant/components/toon/*
@@ -692,7 +725,6 @@ omit =
homeassistant/components/totalconnect/*
homeassistant/components/touchline/climate.py
homeassistant/components/tplink/device_tracker.py
homeassistant/components/tplink/light.py
homeassistant/components/tplink/switch.py
homeassistant/components/tplink_lte/*
homeassistant/components/traccar/device_tracker.py
@@ -720,6 +752,7 @@ omit =
homeassistant/components/uber/sensor.py
homeassistant/components/ubus/device_tracker.py
homeassistant/components/ue_smart_radio/media_player.py
homeassistant/components/unifiled/*
homeassistant/components/upcloud/*
homeassistant/components/upnp/*
homeassistant/components/upc_connect/*
@@ -732,12 +765,13 @@ omit =
homeassistant/components/velbus/climate.py
homeassistant/components/velbus/const.py
homeassistant/components/velbus/cover.py
homeassistant/components/velbus/light.py
homeassistant/components/velbus/sensor.py
homeassistant/components/velbus/switch.py
homeassistant/components/velux/*
homeassistant/components/venstar/climate.py
homeassistant/components/vera/*
homeassistant/components/verisure/*
homeassistant/components/versasense/*
homeassistant/components/vesync/__init__.py
homeassistant/components/vesync/common.py
homeassistant/components/vesync/const.py
@@ -745,7 +779,7 @@ omit =
homeassistant/components/viaggiatreno/sensor.py
homeassistant/components/vicare/*
homeassistant/components/vivotek/camera.py
homeassistant/components/vizio/media_player.py
homeassistant/components/vizio/*
homeassistant/components/vlc/media_player.py
homeassistant/components/vlc_telnet/media_player.py
homeassistant/components/volkszaehler/sensor.py
@@ -759,7 +793,6 @@ omit =
homeassistant/components/waze_travel_time/sensor.py
homeassistant/components/webostv/*
homeassistant/components/wemo/*
homeassistant/components/wemo/fan.py
homeassistant/components/whois/sensor.py
homeassistant/components/wink/*
homeassistant/components/wirelesstag/*
@@ -779,7 +812,6 @@ omit =
homeassistant/components/xmpp/notify.py
homeassistant/components/xs1/*
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/*

View File

@@ -1,4 +1,3 @@
// See https://aka.ms/vscode-remote/devcontainer.json for format details.
{
"name": "Home Assistant Dev",
"context": "..",

View File

@@ -3,6 +3,7 @@
- Make sure you are running the latest version of Home Assistant before reporting an issue: https://github.com/home-assistant/home-assistant/releases
- Frontend issues should be submitted to the home-assistant-polymer repository: https://github.com/home-assistant/home-assistant-polymer/issues
- iOS issues should be submitted to the home-assistant-iOS repository: https://github.com/home-assistant/home-assistant-iOS/issues
- Android issues should be submitted to the home-assistant-android repository: https://github.com/home-assistant/home-assistant-android/issues
- Do not report issues for integrations if you are using custom integration: files in <config-dir>/custom_components
- This is for bugs only. Feature and enhancement requests should go in our community forum: https://community.home-assistant.io/c/feature-requests
- Provide as many details as possible. Paste logs, configuration sample and code into the backticks. Do not delete any text from this template!

View File

@@ -0,0 +1,59 @@
# This configuration includes the full set of hooks we use. In
# addition to the defaults (see .pre-commit-config.yaml), this
# includes hooks that require our development and test dependencies
# installed and the virtualenv containing them active by the time
# pre-commit runs to produce correct results.
#
# If this is not a problem for your workflow, using this config is
# recommended, install it with
# pre-commit install --config .pre-commit-config-all.yaml
# Otherwise, see the default .pre-commit-config.yaml for a lighter one.
repos:
- repo: https://github.com/psf/black
rev: 19.10b0
hooks:
- id: black
args:
- --safe
- --quiet
files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$
- repo: https://github.com/PyCQA/flake8
rev: 3.7.9
hooks:
- id: flake8
additional_dependencies:
- flake8-docstrings==1.5.0
- pydocstyle==5.0.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.6.2
hooks:
- id: bandit
args:
- --quiet
- --format=custom
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
hooks:
- id: check-json
# Using a local "system" mypy instead of the mypy hook, because its
# results depend on what is installed. And the mypy hook runs in a
# virtualenv of its own, meaning we'd need to install and maintain
# another set of our dependencies there... no. Use the "system" one
# and reuse the environment that is set up anyway already instead.
- repo: local
hooks:
- id: mypy
name: mypy
entry: mypy
language: system
types: [python]
require_serial: true
files: ^homeassistant/.+\.py$

View File

@@ -1,6 +1,13 @@
# This configuration includes the default, minimal set of hooks to be
# run on all commits. It requires no specific setup and one can just
# start using pre-commit with it.
#
# See .pre-commit-config-all.yaml for a more complete one that comes
# with a better coverage at the cost of some specific setup needed.
repos:
- repo: https://github.com/psf/black
rev: 19.3b0
rev: 19.10b0
hooks:
- id: black
args:
@@ -8,24 +15,27 @@ repos:
- --quiet
files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.8
rev: 3.7.9
hooks:
- id: flake8
additional_dependencies:
- flake8-docstrings==1.3.1
- pydocstyle==4.0.0
- flake8-docstrings==1.5.0
- pydocstyle==5.0.1
files: ^(homeassistant|script|tests)/.+\.py$
# Using a local "system" mypy instead of the mypy hook, because its
# results depend on what is installed. And the mypy hook runs in a
# virtualenv of its own, meaning we'd need to install and maintain
# another set of our dependencies there... no. Use the "system" one
# and reuse the environment that is set up anyway already instead.
- repo: local
- repo: https://github.com/PyCQA/bandit
rev: 1.6.2
hooks:
- id: mypy
name: mypy
entry: mypy
language: system
types: [python]
require_serial: true
files: ^homeassistant/.+\.py$
- id: bandit
args:
- --quiet
- --format=custom
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
hooks:
- id: check-json

View File

@@ -4,7 +4,7 @@ build:
image: latest
python:
version: 3.6
version: 3.7
setup_py_install: true
requirements_file: requirements_docs.txt

View File

@@ -1,9 +1,7 @@
sudo: false
dist: xenial
dist: bionic
addons:
apt:
sources:
- sourceline: "ppa:jonathonf/ffmpeg-4"
packages:
- libudev-dev
- libavformat-dev
@@ -16,15 +14,13 @@ addons:
matrix:
fast_finish: true
include:
- python: "3.6.1"
- python: "3.7.0"
env: TOXENV=lint
- python: "3.6.1"
env: TOXENV=pylint PYLINT_ARGS=--jobs=0
- python: "3.6.1"
- python: "3.7.0"
env: TOXENV=pylint PYLINT_ARGS=--jobs=0 TRAVIS_WAIT=30
- python: "3.7.0"
env: TOXENV=typing
- python: "3.6.1"
env: TOXENV=py36
- python: "3.7"
- python: "3.7.0"
env: TOXENV=py37
cache:
@@ -33,4 +29,4 @@ cache:
- $HOME/.cache/pre-commit
install: pip install -U tox
language: python
script: travis_wait 50 tox --develop
script: ${TRAVIS_WAIT:+travis_wait $TRAVIS_WAIT} tox --develop

2
.vscode/tasks.json vendored
View File

@@ -33,7 +33,7 @@
{
"label": "Flake8",
"type": "shell",
"command": "flake8 homeassistant tests",
"command": "pre-commit run flake8 --all-files",
"group": {
"kind": "test",
"isDefault": true

View File

@@ -17,8 +17,8 @@ homeassistant/components/abode/* @shred86
homeassistant/components/adguard/* @frenck
homeassistant/components/airly/* @bieniu
homeassistant/components/airvisual/* @bachya
homeassistant/components/alarm_control_panel/* @colinodell
homeassistant/components/alexa/* @home-assistant/cloud @ochlocracy
homeassistant/components/almond/* @gcampax @balloob
homeassistant/components/alpha_vantage/* @fabaff
homeassistant/components/amazon_polly/* @robbiet480
homeassistant/components/ambiclimate/* @danielhiversen
@@ -32,6 +32,7 @@ homeassistant/components/arcam_fmj/* @elupus
homeassistant/components/arduino/* @fabaff
homeassistant/components/arest/* @fabaff
homeassistant/components/asuswrt/* @kennedyshead
homeassistant/components/aten_pe/* @mtdcr
homeassistant/components/atome/* @baqs
homeassistant/components/aurora_abb_powerone/* @davet2001
homeassistant/components/auth/* @home-assistant/core
@@ -42,13 +43,15 @@ homeassistant/components/awair/* @danielsjf
homeassistant/components/aws/* @awarecan @robbiet480
homeassistant/components/axis/* @kane610
homeassistant/components/azure_event_hub/* @eavanvalkenburg
homeassistant/components/azure_service_bus/* @hfurubotten
homeassistant/components/beewi_smartclim/* @alemuro
homeassistant/components/bitcoin/* @fabaff
homeassistant/components/bizkaibus/* @UgaitzEtxebarria
homeassistant/components/blink/* @fronzbot
homeassistant/components/bmw_connected_drive/* @gerard33
homeassistant/components/braviatv/* @robbiet480
homeassistant/components/broadlink/* @danielhiversen
homeassistant/components/broadlink/* @danielhiversen @felipediel
homeassistant/components/brother/* @bieniu
homeassistant/components/brunt/* @eavanvalkenburg
homeassistant/components/bt_smarthub/* @jxwolstenholme
homeassistant/components/buienradar/* @mjj4791 @ties
@@ -59,6 +62,7 @@ homeassistant/components/cisco_webex_teams/* @fbradyirl
homeassistant/components/ciscospark/* @fbradyirl
homeassistant/components/cloud/* @home-assistant/cloud
homeassistant/components/cloudflare/* @ludeeus
homeassistant/components/comfoconnect/* @michaelarnauts
homeassistant/components/config/* @home-assistant/core
homeassistant/components/configurator/* @home-assistant/core
homeassistant/components/conversation/* @home-assistant/core
@@ -76,15 +80,19 @@ homeassistant/components/device_automation/* @home-assistant/core
homeassistant/components/digital_ocean/* @fabaff
homeassistant/components/discogs/* @thibmaek
homeassistant/components/doorbird/* @oblogic7
homeassistant/components/dsmr_reader/* @depl0y
homeassistant/components/dweet/* @fabaff
homeassistant/components/ecobee/* @marthoc
homeassistant/components/ecovacs/* @OverloadUT
homeassistant/components/egardia/* @jeroenterheerdt
homeassistant/components/eight_sleep/* @mezz64
homeassistant/components/elgato/* @frenck
homeassistant/components/elv/* @majuss
homeassistant/components/emby/* @mezz64
homeassistant/components/emulated_hue/* @NobleKangaroo
homeassistant/components/enigma2/* @fbradyirl
homeassistant/components/enocean/* @bdurrer
homeassistant/components/entur_public_transport/* @hfurubotten
homeassistant/components/environment_canada/* @michaeldavie
homeassistant/components/ephember/* @ttroy50
homeassistant/components/epsonworkforce/* @ThaStealth
@@ -92,11 +100,13 @@ homeassistant/components/eq3btsmart/* @rytilahti
homeassistant/components/esphome/* @OttoWinter
homeassistant/components/essent/* @TheLastProject
homeassistant/components/evohome/* @zxdavb
homeassistant/components/fastdotcom/* @rohankapoorcom
homeassistant/components/file/* @fabaff
homeassistant/components/filter/* @dgomes
homeassistant/components/fitbit/* @robbiet480
homeassistant/components/fixer/* @fabaff
homeassistant/components/flock/* @fabaff
homeassistant/components/flume/* @ChrisMandich
homeassistant/components/flunearyou/* @bachya
homeassistant/components/fortigate/* @kifeo
homeassistant/components/fortios/* @kimfrellsen
@@ -109,6 +119,8 @@ homeassistant/components/gearbest/* @HerrHofrat
homeassistant/components/geniushub/* @zxdavb
homeassistant/components/geo_rss_events/* @exxamalte
homeassistant/components/geonetnz_quakes/* @exxamalte
homeassistant/components/geonetnz_volcano/* @exxamalte
homeassistant/components/gios/* @bieniu
homeassistant/components/gitter/* @fabaff
homeassistant/components/glances/* @fabaff @engrbm87
homeassistant/components/gntp/* @robbiet480
@@ -122,10 +134,12 @@ homeassistant/components/growatt_server/* @indykoning
homeassistant/components/gtfs/* @robbiet480
homeassistant/components/harmony/* @ehendrix23
homeassistant/components/hassio/* @home-assistant/hass-io
homeassistant/components/heatmiser/* @andylockran
homeassistant/components/heos/* @andrewsayre
homeassistant/components/here_travel_time/* @eifinger
homeassistant/components/hikvision/* @mezz64
homeassistant/components/hikvisioncam/* @fbradyirl
homeassistant/components/hisense_aehw4a1/* @bannhead
homeassistant/components/history/* @home-assistant/core
homeassistant/components/history_graph/* @andrey-git
homeassistant/components/hive/* @Rendili @KJonline
@@ -140,6 +154,7 @@ homeassistant/components/huawei_lte/* @scop
homeassistant/components/huawei_router/* @abmantis
homeassistant/components/hue/* @balloob
homeassistant/components/iaqualink/* @flz
homeassistant/components/icloud/* @Quentame
homeassistant/components/ign_sismologia/* @exxamalte
homeassistant/components/incomfort/* @zxdavb
homeassistant/components/influxdb/* @fabaff
@@ -149,15 +164,21 @@ homeassistant/components/input_number/* @home-assistant/core
homeassistant/components/input_select/* @home-assistant/core
homeassistant/components/input_text/* @home-assistant/core
homeassistant/components/integration/* @dgomes
homeassistant/components/intent/* @home-assistant/core
homeassistant/components/intesishome/* @jnimmo
homeassistant/components/ios/* @robbiet480
homeassistant/components/iperf3/* @rohankapoorcom
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/juicenet/* @jesserockz
homeassistant/components/kaiterra/* @Michsior14
homeassistant/components/keba/* @dannerph
homeassistant/components/keenetic_ndms2/* @foxel
homeassistant/components/kef/* @basnijholt
homeassistant/components/keyboard_remote/* @bendavid
homeassistant/components/knx/* @Julius2342
homeassistant/components/kodi/* @armills
homeassistant/components/konnected/* @heythisisnate
@@ -168,11 +189,14 @@ homeassistant/components/life360/* @pnbruckner
homeassistant/components/linky/* @Quentame
homeassistant/components/linux_battery/* @fabaff
homeassistant/components/liveboxplaytv/* @pschmitt
homeassistant/components/local_ip/* @issacg
homeassistant/components/logger/* @home-assistant/core
homeassistant/components/logi_circle/* @evanjd
homeassistant/components/lovelace/* @home-assistant/frontend
homeassistant/components/luci/* @fbradyirl @mzdrale
homeassistant/components/luftdaten/* @fabaff
homeassistant/components/lupusec/* @majuss
homeassistant/components/lutron/* @JonGilmore
homeassistant/components/mastodon/* @fabaff
homeassistant/components/matrix/* @tinloaf
homeassistant/components/mcp23017/* @jardiamj
@@ -186,6 +210,7 @@ homeassistant/components/mill/* @danielhiversen
homeassistant/components/min_max/* @fabaff
homeassistant/components/minio/* @tkislan
homeassistant/components/mobile_app/* @robbiet480
homeassistant/components/modbus/* @adamchengtkc
homeassistant/components/monoprice/* @etsinko
homeassistant/components/moon/* @fabaff
homeassistant/components/mpd/* @fabaff
@@ -199,6 +224,7 @@ homeassistant/components/ness_alarm/* @nickw444
homeassistant/components/nest/* @awarecan
homeassistant/components/netdata/* @fabaff
homeassistant/components/nextbus/* @vividboarder
homeassistant/components/nilu/* @hfurubotten
homeassistant/components/nissan_leaf/* @filcole
homeassistant/components/nmbs/* @thibmaek
homeassistant/components/no_ip/* @fabaff
@@ -213,6 +239,7 @@ homeassistant/components/obihai/* @dshokouhi
homeassistant/components/ohmconnect/* @robbiet480
homeassistant/components/ombi/* @larssont
homeassistant/components/onboarding/* @home-assistant/core
homeassistant/components/onewire/* @garbled1
homeassistant/components/opentherm_gw/* @mvn23
homeassistant/components/openuv/* @bachya
homeassistant/components/openweathermap/* @fabaff
@@ -221,14 +248,17 @@ homeassistant/components/oru/* @bvlaicu
homeassistant/components/owlet/* @oblogic7
homeassistant/components/panel_custom/* @home-assistant/frontend
homeassistant/components/panel_iframe/* @home-assistant/frontend
homeassistant/components/pcal9535a/* @Shulyaka
homeassistant/components/persistent_notification/* @home-assistant/core
homeassistant/components/philips_js/* @elupus
homeassistant/components/pi_hole/* @fabaff @johnluetke
homeassistant/components/pilight/* @trekky12
homeassistant/components/plaato/* @JohNan
homeassistant/components/plant/* @ChristianKuehnel
homeassistant/components/plex/* @jjlawren
homeassistant/components/plugwise/* @laetificat @CoMPaTech
homeassistant/components/plugwise/* @laetificat @CoMPaTech @bouwew
homeassistant/components/point/* @fredrike
homeassistant/components/proxmoxve/* @k4ds3
homeassistant/components/ps4/* @ktnrg45
homeassistant/components/ptvsd/* @swamp-ig
homeassistant/components/push/* @dgomes
@@ -244,19 +274,23 @@ homeassistant/components/rainmachine/* @bachya
homeassistant/components/random/* @fabaff
homeassistant/components/repetier/* @MTrab
homeassistant/components/rfxtrx/* @danielhiversen
homeassistant/components/ring/* @balloob
homeassistant/components/rmvtransport/* @cgtobi
homeassistant/components/roomba/* @pschmitt
homeassistant/components/saj/* @fredericvl
homeassistant/components/samsungtv/* @escoand
homeassistant/components/scene/* @home-assistant/core
homeassistant/components/scrape/* @fabaff
homeassistant/components/script/* @home-assistant/core
homeassistant/components/sense/* @kbickar
homeassistant/components/sensibo/* @andrey-git
homeassistant/components/sentry/* @dcramer
homeassistant/components/serial/* @fabaff
homeassistant/components/seventeentrack/* @bachya
homeassistant/components/shell_command/* @home-assistant/core
homeassistant/components/shiftr/* @fabaff
homeassistant/components/shodan/* @fabaff
homeassistant/components/signal_messenger/* @bbernhard
homeassistant/components/simplisafe/* @bachya
homeassistant/components/sinch/* @bendikrb
homeassistant/components/slide/* @ualex73
@@ -272,14 +306,19 @@ homeassistant/components/soma/* @ratsept
homeassistant/components/somfy/* @tetienne
homeassistant/components/songpal/* @rytilahti
homeassistant/components/spaceapi/* @fabaff
homeassistant/components/speedtestdotnet/* @rohankapoorcom
homeassistant/components/spider/* @peternijssen
homeassistant/components/sql/* @dgomes
homeassistant/components/starline/* @anonym-tsk
homeassistant/components/statistics/* @fabaff
homeassistant/components/stiebel_eltron/* @fucm
homeassistant/components/stookalert/* @fwestenberg
homeassistant/components/stream/* @hunterjm
homeassistant/components/stt/* @pvizeli
homeassistant/components/suez_water/* @ooii
homeassistant/components/sun/* @Swamp-Ig
homeassistant/components/supla/* @mwegrzynek
homeassistant/components/surepetcare/* @benleb
homeassistant/components/swiss_hydrological_data/* @fabaff
homeassistant/components/swiss_public_transport/* @fabaff
homeassistant/components/switchbot/* @danielhiversen
@@ -288,29 +327,32 @@ homeassistant/components/switchmate/* @danielhiversen
homeassistant/components/syncthru/* @nielstron
homeassistant/components/synology_srm/* @aerialls
homeassistant/components/syslog/* @fabaff
homeassistant/components/tado/* @michaelarnauts
homeassistant/components/tahoma/* @philklei
homeassistant/components/tautulli/* @ludeeus
homeassistant/components/tellduslive/* @fredrike
homeassistant/components/template/* @PhracturedBlue
homeassistant/components/tesla/* @zabuldon
homeassistant/components/template/* @PhracturedBlue @tetienne
homeassistant/components/tesla/* @zabuldon @alandtse
homeassistant/components/tfiac/* @fredrike @mellado
homeassistant/components/thethingsnetwork/* @fabaff
homeassistant/components/threshold/* @fabaff
homeassistant/components/tibber/* @danielhiversen
homeassistant/components/tile/* @bachya
homeassistant/components/time_date/* @fabaff
homeassistant/components/tmb/* @alemuro
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/transmission/* @engrbm87 @JPHutchins
homeassistant/components/tts/* @robbiet480
homeassistant/components/twentemilieu/* @frenck
homeassistant/components/twilio_call/* @robbiet480
homeassistant/components/twilio_sms/* @robbiet480
homeassistant/components/unifi/* @kane610
homeassistant/components/unifiled/* @florisvdk
homeassistant/components/upc_connect/* @pvizeli
homeassistant/components/upcloud/* @scop
homeassistant/components/updater/* @home-assistant/core
@@ -320,6 +362,7 @@ homeassistant/components/usgs_earthquakes_feed/* @exxamalte
homeassistant/components/utility_meter/* @dgomes
homeassistant/components/velbus/* @cereal2nd
homeassistant/components/velux/* @Julius2342
homeassistant/components/versasense/* @flamm3blemuff1n
homeassistant/components/version/* @fabaff
homeassistant/components/vesync/* @markperdue @webdjoe
homeassistant/components/vicare/* @oischinger
@@ -330,9 +373,12 @@ homeassistant/components/waqi/* @andrey-git
homeassistant/components/watson_tts/* @rutkai
homeassistant/components/weather/* @fabaff
homeassistant/components/weblink/* @home-assistant/core
homeassistant/components/webostv/* @bendavid
homeassistant/components/websocket_api/* @home-assistant/core
homeassistant/components/wemo/* @sqldiablo
homeassistant/components/withings/* @vangorra
homeassistant/components/wled/* @frenck
homeassistant/components/workday/* @fabaff
homeassistant/components/worldclock/* @fabaff
homeassistant/components/wwlln/* @bachya
homeassistant/components/xbox_live/* @MartinHjelmare

View File

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

View File

@@ -24,9 +24,9 @@ RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
WORKDIR /workspaces
# Install Python dependencies from requirements
COPY requirements_test.txt homeassistant/package_constraints.txt ./
COPY requirements_test.txt requirements_test_pre_commit.txt homeassistant/package_constraints.txt ./
RUN pip3 install -r requirements_test.txt -c package_constraints.txt \
&& rm -f requirements_test.txt package_constraints.txt
&& rm -f requirements_test.txt package_constraints.txt requirements_test_pre_commit.txt
# Set the default shell to bash instead of sh
ENV SHELL /bin/bash

View File

@@ -1,14 +1,7 @@
Home Assistant |Chat Status|
=================================================================================
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
To get started:
.. code:: bash
python3 -m pip install homeassistant
hass --open-ui
Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://home-assistant.io/demo/>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,

View File

@@ -14,8 +14,6 @@ pr:
resources:
containers:
- container: 36
image: homeassistant/ci-azure:3.6
- container: 37
image: homeassistant/ci-azure:3.7
repositories:
@@ -25,7 +23,7 @@ resources:
endpoint: 'home-assistant'
variables:
- name: PythonMain
value: '36'
value: '37'
- group: codecov
stages:
@@ -45,11 +43,23 @@ stages:
. venv/bin/activate
pip install -r requirements_test.txt -c homeassistant/package_constraints.txt
pre-commit install-hooks
pre-commit install-hooks --config .pre-commit-config-all.yaml
- script: |
. venv/bin/activate
pre-commit run flake8 --all-files
displayName: 'Run flake8'
- script: |
. venv/bin/activate
pre-commit run bandit --all-files
displayName: 'Run bandit'
- script: |
. venv/bin/activate
pre-commit run isort --all-files --show-diff-on-failure
displayName: 'Run isort'
- script: |
. venv/bin/activate
pre-commit run check-json --all-files
displayName: 'Run check-json'
- job: 'Validate'
pool:
vmImage: 'ubuntu-latest'
@@ -84,10 +94,10 @@ stages:
. venv/bin/activate
pip install -r requirements_test.txt -c homeassistant/package_constraints.txt
pre-commit install-hooks
pre-commit install-hooks --config .pre-commit-config-all.yaml
- script: |
. venv/bin/activate
pre-commit run black --all-files
pre-commit run black --all-files --show-diff-on-failure
displayName: 'Check Black formatting'
- stage: 'Tests'
@@ -100,8 +110,6 @@ stages:
strategy:
maxParallel: 3
matrix:
Python36:
python.container: '36'
Python37:
python.container: '37'
container: $[ variables['python.container'] ]
@@ -127,7 +135,7 @@ stages:
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -n 2 --dist loadfile -qq -o console_output_style=count -p no:sugar tests
pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar tests
script/check_dirty
displayName: 'Run pytest for python $(python.container)'
condition: and(succeeded(), ne(variables['python.container'], variables['PythonMain']))
@@ -135,7 +143,7 @@ stages:
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -n 2 --dist loadfile --cov homeassistant --cov-report html -qq -o console_output_style=count -p no:sugar tests
pytest --timeout=9 --durations=10 -n auto --dist=loadfile --cov homeassistant --cov-report html -qq -o console_output_style=count -p no:sugar tests
codecov --token $(codecovToken)
script/check_dirty
displayName: 'Run pytest for python $(python.container) / coverage'
@@ -158,7 +166,7 @@ stages:
python -m venv venv
. venv/bin/activate
pip install -U pip setuptools
pip install -U pip setuptools wheel
pip install -r requirements_all.txt -c homeassistant/package_constraints.txt
pip install -r requirements_test.txt -c homeassistant/package_constraints.txt
- script: |
@@ -182,8 +190,8 @@ stages:
. venv/bin/activate
pip install -e . -r requirements_test.txt -c homeassistant/package_constraints.txt
pre-commit install-hooks
pre-commit install-hooks --config .pre-commit-config-all.yaml
- script: |
. venv/bin/activate
pre-commit run mypy --all-files
pre-commit run --config .pre-commit-config-all.yaml mypy --all-files
displayName: 'Run mypy'

View File

@@ -14,7 +14,7 @@ schedules:
always: true
variables:
- name: versionBuilder
value: '6.3'
value: '6.9'
- group: docker
- group: github
- group: twine
@@ -94,7 +94,7 @@ stages:
buildMachine: 'raspberrypi2,raspberrypi3,raspberrypi4,odroid-xu,tinker'
aarch64:
buildArch: 'aarch64'
buildMachine: 'qemuarm-64,raspberrypi3-64,raspberrypi4-64,odroid-c2,orangepi-prime'
buildMachine: 'qemuarm-64,raspberrypi3-64,raspberrypi4-64,odroid-c2,odroid-n2'
steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

@@ -8,7 +8,6 @@ Loosely based on https://github.com/astropy/astropy/pull/347
import os
import warnings
__licence__ = 'BSD (3 clause)'

View File

@@ -17,11 +17,11 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import sys
import os
import inspect
import os
import sys
from homeassistant.const import __version__, __short_version__
from homeassistant.const import __short_version__, __version__
PROJECT_NAME = 'Home Assistant'
PROJECT_PACKAGE_NAME = 'homeassistant'

View File

@@ -1,26 +1,23 @@
"""Start Home Assistant."""
import argparse
import asyncio
import os
import platform
import subprocess
import sys
import threading
from typing import List, Dict, Any, TYPE_CHECKING
from typing import TYPE_CHECKING, Any, Dict, List
from homeassistant import monkey_patch
from homeassistant.const import __version__, REQUIRED_PYTHON_VER, RESTART_EXIT_CODE
from homeassistant.const import REQUIRED_PYTHON_VER, RESTART_EXIT_CODE, __version__
if TYPE_CHECKING:
from homeassistant import core
def set_loop() -> None:
"""Attempt to use uvloop."""
import asyncio
"""Attempt to use different loop."""
from asyncio.events import BaseDefaultEventLoopPolicy
policy = None
if sys.platform == "win32":
if hasattr(asyncio, "WindowsProactorEventLoopPolicy"):
# pylint: disable=no-member
@@ -33,15 +30,7 @@ def set_loop() -> None:
_loop_factory = asyncio.ProactorEventLoop
policy = ProactorPolicy()
else:
try:
import uvloop
except ImportError:
pass
else:
policy = uvloop.EventLoopPolicy()
if policy is not None:
asyncio.set_event_loop_policy(policy)
@@ -66,10 +55,8 @@ def ensure_config_path(config_dir: str) -> None:
if not os.path.isdir(config_dir):
if config_dir != config_util.get_default_config_dir():
print(
(
"Fatal Error: Specified configuration directory does "
"not exist {} "
).format(config_dir)
f"Fatal Error: Specified configuration directory {config_dir} "
"does not exist"
)
sys.exit(1)
@@ -77,10 +64,8 @@ def ensure_config_path(config_dir: str) -> None:
os.mkdir(config_dir)
except OSError:
print(
(
"Fatal Error: Unable to create default configuration "
"directory {} "
).format(config_dir)
"Fatal Error: Unable to create default configuration "
f"directory {config_dir}"
)
sys.exit(1)
@@ -89,11 +74,7 @@ def ensure_config_path(config_dir: str) -> None:
try:
os.mkdir(lib_dir)
except OSError:
print(
("Fatal Error: Unable to create library " "directory {} ").format(
lib_dir
)
)
print(f"Fatal Error: Unable to create library directory {lib_dir}")
sys.exit(1)
@@ -158,7 +139,7 @@ def get_arguments() -> argparse.Namespace:
"--log-file",
type=str,
default=None,
help="Log file to write to. If not set, CONFIG/home-assistant.log " "is used",
help="Log file to write to. If not set, CONFIG/home-assistant.log is used",
)
parser.add_argument(
"--log-no-color", action="store_true", help="Disable color logs"
@@ -227,7 +208,7 @@ def check_pid(pid_file: str) -> None:
except OSError:
# PID does not exist
return
print("Fatal Error: HomeAssistant is already running.")
print("Fatal Error: Home Assistant is already running.")
sys.exit(1)
@@ -271,8 +252,7 @@ def cmdline() -> List[str]:
async def setup_and_run_hass(config_dir: str, args: argparse.Namespace) -> int:
"""Set up HASS and run."""
# pylint: disable=redefined-outer-name
"""Set up Home Assistant and run."""
from homeassistant import bootstrap, core
hass = core.HomeAssistant()
@@ -356,11 +336,6 @@ def main() -> int:
"""Start Home Assistant."""
validate_python()
monkey_patch_needed = sys.version_info[:3] < (3, 6, 3)
if monkey_patch_needed and os.environ.get("HASS_NO_MONKEY") != "1":
monkey_patch.disable_c_asyncio()
monkey_patch.patch_weakref_tasks()
set_loop()
# Run a simple daemon runner process on Windows to handle restarts
@@ -394,13 +369,11 @@ def main() -> int:
if args.pid_file:
write_pid(args.pid_file)
from homeassistant.util.async_ import asyncio_run
exit_code = asyncio_run(setup_and_run_hass(config_dir, args))
exit_code = asyncio.run(setup_and_run_hass(config_dir, args))
if exit_code == RESTART_EXIT_CODE and not args.runner:
try_to_restart()
return exit_code # type: ignore
return exit_code
if __name__ == "__main__":

View File

@@ -1,21 +1,21 @@
"""Provide an authentication layer for Home Assistant."""
import asyncio
import logging
from collections import OrderedDict
from datetime import timedelta
import logging
from typing import Any, Dict, List, Optional, Tuple, cast
import jwt
from homeassistant import data_entry_flow
from homeassistant.auth.const import ACCESS_TOKEN_EXPIRATION
from homeassistant.core import callback, HomeAssistant
from homeassistant.core import HomeAssistant, callback
from homeassistant.util import dt as dt_util
from . import auth_store, models
from .const import GROUP_ID_ADMIN
from .mfa_modules import auth_mfa_module_from_config, MultiFactorAuthModule
from .providers import auth_provider_from_config, AuthProvider, LoginFlow
from .mfa_modules import MultiFactorAuthModule, auth_mfa_module_from_config
from .providers import AuthProvider, LoginFlow, auth_provider_from_config
EVENT_USER_ADDED = "user_added"
EVENT_USER_REMOVED = "user_removed"
@@ -67,6 +67,69 @@ async def auth_manager_from_config(
return manager
class AuthManagerFlowManager(data_entry_flow.FlowManager):
"""Manage authentication flows."""
def __init__(self, hass: HomeAssistant, auth_manager: "AuthManager"):
"""Init auth manager flows."""
super().__init__(hass)
self.auth_manager = auth_manager
async def async_create_flow(
self,
handler_key: Any,
*,
context: Optional[Dict[str, Any]] = None,
data: Optional[Dict[str, Any]] = None,
) -> data_entry_flow.FlowHandler:
"""Create a login flow."""
auth_provider = self.auth_manager.get_auth_provider(*handler_key)
if not auth_provider:
raise KeyError(f"Unknown auth provider {handler_key}")
return await auth_provider.async_login_flow(context)
async def async_finish_flow(
self, flow: data_entry_flow.FlowHandler, result: Dict[str, Any]
) -> Dict[str, Any]:
"""Return a user as result of login flow."""
flow = cast(LoginFlow, flow)
if result["type"] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return result
# we got final result
if isinstance(result["data"], models.User):
result["result"] = result["data"]
return result
auth_provider = self.auth_manager.get_auth_provider(*result["handler"])
if not auth_provider:
raise KeyError(f"Unknown auth provider {result['handler']}")
credentials = await auth_provider.async_get_or_create_credentials(
result["data"]
)
if flow.context.get("credential_only"):
result["result"] = credentials
return result
# multi-factor module cannot enabled for new credential
# which has not linked to a user yet
if auth_provider.support_mfa and not credentials.is_new:
user = await self.auth_manager.async_get_user_by_credentials(credentials)
if user is not None:
modules = await self.auth_manager.async_get_enabled_mfa(user)
if modules:
flow.user = user
flow.available_mfa_modules = modules
return await flow.async_step_select_mfa_module()
result["result"] = await self.auth_manager.async_get_or_create_user(credentials)
return result
class AuthManager:
"""Manage the authentication for Home Assistant."""
@@ -82,9 +145,7 @@ class AuthManager:
self._store = store
self._providers = providers
self._mfa_modules = mfa_modules
self.login_flow = data_entry_flow.FlowManager(
hass, self._async_create_login_flow, self._async_finish_login_flow
)
self.login_flow = AuthManagerFlowManager(hass, self)
@property
def auth_providers(self) -> List[AuthProvider]:
@@ -261,7 +322,7 @@ class AuthManager:
"""Enable a multi-factor auth module for user."""
if user.system_generated:
raise ValueError(
"System generated users cannot enable " "multi-factor auth module."
"System generated users cannot enable multi-factor auth module."
)
module = self.get_auth_mfa_module(mfa_module_id)
@@ -276,7 +337,7 @@ class AuthManager:
"""Disable a multi-factor auth module for user."""
if user.system_generated:
raise ValueError(
"System generated users cannot disable " "multi-factor auth module."
"System generated users cannot disable multi-factor auth module."
)
module = self.get_auth_mfa_module(mfa_module_id)
@@ -320,7 +381,7 @@ class AuthManager:
if user.system_generated != (token_type == models.TOKEN_TYPE_SYSTEM):
raise ValueError(
"System generated users can only have system type " "refresh tokens"
"System generated users can only have system type refresh tokens"
)
if token_type == models.TOKEN_TYPE_NORMAL and client_id is None:
@@ -330,7 +391,7 @@ class AuthManager:
token_type == models.TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN
and client_name is None
):
raise ValueError("Client_name is required for long-lived access " "token")
raise ValueError("Client_name is required for long-lived access token")
if token_type == models.TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN:
for token in user.refresh_tokens.values():
@@ -417,50 +478,6 @@ class AuthManager:
return refresh_token
async def _async_create_login_flow(
self, handler: _ProviderKey, *, context: Optional[Dict], data: Optional[Any]
) -> data_entry_flow.FlowHandler:
"""Create a login flow."""
auth_provider = self._providers[handler]
return await auth_provider.async_login_flow(context)
async def _async_finish_login_flow(
self, flow: LoginFlow, result: Dict[str, Any]
) -> Dict[str, Any]:
"""Return a user as result of login flow."""
if result["type"] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return result
# we got final result
if isinstance(result["data"], models.User):
result["result"] = result["data"]
return result
auth_provider = self._providers[result["handler"]]
credentials = await auth_provider.async_get_or_create_credentials(
result["data"]
)
if flow.context.get("credential_only"):
result["result"] = credentials
return result
# multi-factor module cannot enabled for new credential
# which has not linked to a user yet
if auth_provider.support_mfa and not credentials.is_new:
user = await self.async_get_user_by_credentials(credentials)
if user is not None:
modules = await self.async_get_enabled_mfa(user)
if modules:
flow.user = user
flow.available_mfa_modules = modules
return await flow.async_step_select_mfa_module()
result["result"] = await self.async_get_or_create_user(credentials)
return result
@callback
def _async_get_auth_provider(
self, credentials: models.Credentials

View File

@@ -11,7 +11,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.util import dt as dt_util
from . import models
from .const import GROUP_ID_ADMIN, GROUP_ID_USER, GROUP_ID_READ_ONLY
from .const import GROUP_ID_ADMIN, GROUP_ID_READ_ONLY, GROUP_ID_USER
from .permissions import PermissionLookup, system_policies
from .permissions.types import PolicyType

View File

@@ -7,7 +7,7 @@ from typing import Any, Dict, Optional
import voluptuous as vol
from voluptuous.humanize import humanize_error
from homeassistant import requirements, data_entry_flow
from homeassistant import data_entry_flow, requirements
from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError
@@ -42,7 +42,7 @@ class MultiFactorAuthModule:
self.config = config
@property
def id(self) -> str: # pylint: disable=invalid-name
def id(self) -> str:
"""Return id of the auth module.
Default is same as type

View File

@@ -7,9 +7,9 @@ import voluptuous as vol
from homeassistant.core import HomeAssistant
from . import (
MultiFactorAuthModule,
MULTI_FACTOR_AUTH_MODULES,
MULTI_FACTOR_AUTH_MODULE_SCHEMA,
MULTI_FACTOR_AUTH_MODULES,
MultiFactorAuthModule,
SetupFlow,
)

View File

@@ -3,9 +3,9 @@
Sending HOTP through notify service
"""
import asyncio
import logging
from collections import OrderedDict
from typing import Any, Dict, Optional, List
import logging
from typing import Any, Dict, List, Optional
import attr
import voluptuous as vol
@@ -16,9 +16,9 @@ from homeassistant.exceptions import ServiceNotFound
from homeassistant.helpers import config_validation as cv
from . import (
MultiFactorAuthModule,
MULTI_FACTOR_AUTH_MODULES,
MULTI_FACTOR_AUTH_MODULE_SCHEMA,
MULTI_FACTOR_AUTH_MODULES,
MultiFactorAuthModule,
SetupFlow,
)

View File

@@ -1,7 +1,7 @@
"""Time-based One Time Password auth module."""
import asyncio
import logging
from io import BytesIO
import logging
from typing import Any, Dict, Optional, Tuple
import voluptuous as vol
@@ -10,9 +10,9 @@ from homeassistant.auth.models import User
from homeassistant.core import HomeAssistant
from . import (
MultiFactorAuthModule,
MULTI_FACTOR_AUTH_MODULES,
MULTI_FACTOR_AUTH_MODULE_SCHEMA,
MULTI_FACTOR_AUTH_MODULES,
MultiFactorAuthModule,
SetupFlow,
)
@@ -215,7 +215,11 @@ class TotpSetupFlow(SetupFlow):
else:
hass = self._auth_module.hass
self._ota_secret, self._url, self._image = await hass.async_add_executor_job(
(
self._ota_secret,
self._url,
self._image,
) = await hass.async_add_executor_job(
_generate_secret_and_qr_code, # type: ignore
str(self._user.name),
)

View File

@@ -1,5 +1,6 @@
"""Auth models."""
from datetime import datetime, timedelta
import secrets
from typing import Dict, List, NamedTuple, Optional
import uuid
@@ -9,7 +10,6 @@ from homeassistant.util import dt as dt_util
from . import permissions as perm_mdl
from .const import GROUP_ID_ADMIN
from .util import generate_secret
TOKEN_TYPE_NORMAL = "normal"
TOKEN_TYPE_SYSTEM = "system"
@@ -96,8 +96,8 @@ class RefreshToken:
)
id = attr.ib(type=str, factory=lambda: uuid.uuid4().hex)
created_at = attr.ib(type=datetime, factory=dt_util.utcnow)
token = attr.ib(type=str, factory=lambda: generate_secret(64))
jwt_key = attr.ib(type=str, factory=lambda: generate_secret(64))
token = attr.ib(type=str, factory=lambda: secrets.token_hex(64))
jwt_key = attr.ib(type=str, factory=lambda: secrets.token_hex(64))
last_used_at = attr.ib(type=Optional[datetime], default=None)
last_used_ip = attr.ib(type=Optional[str], default=None)

View File

@@ -1,29 +1,16 @@
"""Permissions for Home Assistant."""
import logging
from typing import ( # noqa: F401
cast,
Any,
Callable,
Dict,
List,
Mapping,
Optional,
Set,
Tuple,
Union,
TYPE_CHECKING,
)
from typing import Any, Callable, Optional
import voluptuous as vol
from .const import CAT_ENTITIES
from .entities import ENTITY_POLICY_SCHEMA, compile_entities
from .merge import merge_policies # noqa: F401
from .models import PermissionLookup
from .types import PolicyType
from .entities import ENTITY_POLICY_SCHEMA, compile_entities
from .merge import merge_policies # noqa
from .util import test_all
POLICY_SCHEMA = vol.Schema({vol.Optional(CAT_ENTITIES): ENTITY_POLICY_SCHEMA})
_LOGGER = logging.getLogger(__name__)
@@ -70,15 +57,12 @@ class PolicyPermissions(AbstractPermissions):
def __eq__(self, other: Any) -> bool:
"""Equals check."""
# pylint: disable=protected-access
return isinstance(other, PolicyPermissions) and other._policy == self._policy
class _OwnerPermissions(AbstractPermissions):
"""Owner permissions."""
# pylint: disable=no-self-use
def access_all_entities(self, key: str) -> bool:
"""Check if we have a certain access to all entities."""
return True

View File

@@ -4,11 +4,10 @@ from typing import Callable, Optional
import voluptuous as vol
from .const import SUBCAT_ALL, POLICY_READ, POLICY_CONTROL, POLICY_EDIT
from .const import POLICY_CONTROL, POLICY_EDIT, POLICY_READ, SUBCAT_ALL
from .models import PermissionLookup
from .types import CategoryType, SubCategoryDict, ValueType
from .util import SubCatLookupType, lookup_all, compile_policy
from .util import SubCatLookupType, compile_policy, lookup_all
SINGLE_ENTITY_SCHEMA = vol.Any(
True,

View File

@@ -1,7 +1,7 @@
"""Merging of policies."""
from typing import cast, Dict, List, Set
from typing import Dict, List, Set, cast
from .types import PolicyType, CategoryType
from .types import CategoryType, PolicyType
def merge_policies(policies: List[PolicyType]) -> PolicyType:

View File

@@ -5,8 +5,8 @@ import attr
if TYPE_CHECKING:
# pylint: disable=unused-import
from homeassistant.helpers import entity_registry as ent_reg # noqa
from homeassistant.helpers import device_registry as dev_reg # noqa
from homeassistant.helpers import entity_registry as ent_reg # noqa: F401
from homeassistant.helpers import device_registry as dev_reg # noqa: F401
@attr.s(slots=True)

View File

@@ -1,5 +1,5 @@
"""System policies."""
from .const import CAT_ENTITIES, SUBCAT_ALL, POLICY_READ
from .const import CAT_ENTITIES, POLICY_READ, SUBCAT_ALL
ADMIN_POLICY = {CAT_ENTITIES: True}

View File

@@ -1,6 +1,5 @@
"""Helpers to deal with permissions."""
from functools import wraps
from typing import Callable, Dict, List, Optional, cast
from .const import SUBCAT_ALL
@@ -21,8 +20,9 @@ def lookup_all(
def compile_policy(
policy: CategoryType, subcategories: SubCatLookupType, perm_lookup: PermissionLookup
) -> Callable[[str, str], bool]: # noqa
) -> Callable[[str, str], bool]:
"""Compile policy into a function that tests policy.
Subcategories are mapping key -> lookup function, ordered by highest
priority first.
"""
@@ -80,7 +80,7 @@ def compile_policy(
def _gen_dict_test_func(
perm_lookup: PermissionLookup, lookup_func: LookupFunc, lookup_dict: SubCategoryDict
) -> Callable[[str, str], Optional[bool]]: # noqa
) -> Callable[[str, str], Optional[bool]]:
"""Generate a lookup function."""
def test_value(object_id: str, key: str) -> Optional[bool]:

View File

@@ -8,8 +8,8 @@ import voluptuous as vol
from voluptuous.humanize import humanize_error
from homeassistant import data_entry_flow, requirements
from homeassistant.core import callback, HomeAssistant
from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.util import dt as dt_util
from homeassistant.util.decorator import Registry
@@ -48,7 +48,7 @@ class AuthProvider:
self.config = config
@property
def id(self) -> Optional[str]: # pylint: disable=invalid-name
def id(self) -> Optional[str]:
"""Return id of the auth provider.
Optional, can be None.

View File

@@ -1,20 +1,18 @@
"""Auth provider that validates credentials via an external command."""
from typing import Any, Dict, Optional, cast
import asyncio.subprocess
import collections
import logging
import os
from typing import Any, Dict, Optional, cast
import voluptuous as vol
from homeassistant.exceptions import HomeAssistantError
from . import AuthProvider, AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, LoginFlow
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
from ..models import Credentials, UserMeta
CONF_COMMAND = "command"
CONF_ARGS = "args"
CONF_META = "meta"
@@ -78,7 +76,7 @@ class CommandLineAuthProvider(AuthProvider):
if process.returncode != 0:
_LOGGER.error(
"User %r failed to authenticate, command exited " "with code %d.",
"User %r failed to authenticate, command exited with code %d.",
username,
process.returncode,
)

View File

@@ -3,21 +3,18 @@ import asyncio
import base64
from collections import OrderedDict
import logging
from typing import Any, Dict, List, Optional, Set, cast
import bcrypt
import voluptuous as vol
from homeassistant.const import CONF_ID
from homeassistant.core import callback, HomeAssistant
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from . import AuthProvider, AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, LoginFlow
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
from ..models import Credentials, UserMeta
STORAGE_VERSION = 1
STORAGE_KEY = "auth_provider.homeassistant"
@@ -203,7 +200,7 @@ class Data:
@AUTH_PROVIDERS.register("homeassistant")
class HassAuthProvider(AuthProvider):
"""Auth provider based on a local storage of users in HASS config dir."""
"""Auth provider based on a local storage of users in Home Assistant config dir."""
DEFAULT_TITLE = "Home Assistant Local"

View File

@@ -5,13 +5,12 @@ from typing import Any, Dict, Optional, cast
import voluptuous as vol
from homeassistant.exceptions import HomeAssistantError
from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError
from . import AuthProvider, AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, LoginFlow
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
from ..models import Credentials, UserMeta
USER_SCHEMA = vol.Schema(
{
vol.Required("username"): str,

View File

@@ -12,9 +12,9 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
from . import AuthProvider, AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, LoginFlow
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
from .. import AuthManager
from ..models import Credentials, UserMeta, User
from ..models import Credentials, User, UserMeta
AUTH_PROVIDER_TYPE = "legacy_api_password"
CONF_API_PASSWORD = "api_password"

View File

@@ -3,15 +3,16 @@
It shows list of users if access from trusted network.
Abort login flow if not access from trusted network.
"""
from ipaddress import ip_network, IPv4Address, IPv6Address, IPv4Network, IPv6Network
from ipaddress import IPv4Address, IPv4Network, IPv6Address, IPv6Network, ip_network
from typing import Any, Dict, List, Optional, Union, cast
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError
from . import AuthProvider, AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, LoginFlow
import homeassistant.helpers.config_validation as cv
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
from ..models import Credentials, UserMeta
IPAddress = Union[IPv4Address, IPv6Address]

View File

@@ -1,13 +0,0 @@
"""Auth utils."""
import binascii
import os
def generate_secret(entropy: int = 32) -> str:
"""Generate a secret.
Backport of secrets.token_hex from Python 3.6
Event loop friendly.
"""
return binascii.hexlify(os.urandom(entropy)).decode("ascii")

View File

@@ -1,22 +1,26 @@
"""Provide methods to bootstrap a Home Assistant instance."""
import asyncio
from collections import OrderedDict
import logging
import logging.handlers
import os
import sys
from time import time
from collections import OrderedDict
from typing import Any, Optional, Dict, Set
from typing import Any, Dict, Optional, Set
import voluptuous as vol
from homeassistant import core, config as conf_util, config_entries, loader
from homeassistant.const import EVENT_HOMEASSISTANT_CLOSE
from homeassistant import config as conf_util, config_entries, core, loader
from homeassistant.const import (
EVENT_HOMEASSISTANT_CLOSE,
REQUIRED_NEXT_PYTHON_DATE,
REQUIRED_NEXT_PYTHON_VER,
)
from homeassistant.exceptions import HomeAssistantError
from homeassistant.setup import async_setup_component
from homeassistant.util.logging import AsyncHandler
from homeassistant.util.package import async_get_user_site, is_virtual_env
from homeassistant.util.yaml import clear_secret_cache
from homeassistant.exceptions import HomeAssistantError
_LOGGER = logging.getLogger(__name__)
@@ -27,12 +31,14 @@ DATA_LOGGING = "logging"
DEBUGGER_INTEGRATIONS = {"ptvsd"}
CORE_INTEGRATIONS = ("homeassistant", "persistent_notification")
LOGGING_INTEGRATIONS = {"logger", "system_log"}
LOGGING_INTEGRATIONS = {"logger", "system_log", "sentry"}
STAGE_1_INTEGRATIONS = {
# To record data
"recorder",
# To make sure we forward data to other instances
"mqtt_eventstream",
# To provide account link implementations
"cloud",
}
@@ -60,7 +66,7 @@ async def async_from_config_dict(
hass.config.skip_pip = skip_pip
if skip_pip:
_LOGGER.warning(
"Skipping pip installation of required modules. " "This may cause issues"
"Skipping pip installation of required modules. This may cause issues"
)
core_config = config.get(core.DOMAIN, {})
@@ -93,11 +99,14 @@ async def async_from_config_dict(
stop = time()
_LOGGER.info("Home Assistant initialized in %.2fs", stop - start)
if sys.version_info[:3] < (3, 7, 0):
if REQUIRED_NEXT_PYTHON_DATE and sys.version_info[:3] < REQUIRED_NEXT_PYTHON_VER:
msg = (
"Python 3.6 support is deprecated and will "
"be removed in the first release after December 15, 2019. Please "
"upgrade Python to 3.7.0 or higher."
"Support for the running Python version "
f"{'.'.join(str(x) for x in sys.version_info[:3])} is deprecated and will "
f"be removed in the first release after {REQUIRED_NEXT_PYTHON_DATE}. "
"Please upgrade Python to "
f"{'.'.join(str(x) for x in REQUIRED_NEXT_PYTHON_VER)} or "
"higher."
)
_LOGGER.warning(msg)
hass.components.persistent_notification.async_create(
@@ -159,7 +168,7 @@ def async_enable_logging(
This method must be run in the event loop.
"""
fmt = "%(asctime)s %(levelname)s (%(threadName)s) " "[%(name)s] %(message)s"
fmt = "%(asctime)s %(levelname)s (%(threadName)s) [%(name)s] %(message)s"
datefmt = "%Y-%m-%d %H:%M:%S"
if not log_no_color:

View File

@@ -11,7 +11,6 @@ import logging
from homeassistant.core import split_entity_id
# mypy: allow-untyped-defs
_LOGGER = logging.getLogger(__name__)

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"single_instance_allowed": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Abode."
},
"error": {
"connection_error": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441 Abode.",
"identifier_exists": "\u041f\u0440\u043e\u0444\u0438\u043b\u044a\u0442 \u0435 \u0432\u0435\u0447\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d.",
"invalid_credentials": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u0434\u0430\u043d\u043d\u0438."
},
"step": {
"user": {
"data": {
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
"username": "E-mail \u0430\u0434\u0440\u0435\u0441"
},
"title": "\u041f\u043e\u043f\u044a\u043b\u043d\u0435\u0442\u0435 \u0412\u0430\u0448\u0430\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0432\u0445\u043e\u0434 \u0432 Abode"
}
},
"title": "Abode"
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"single_instance_allowed": "Je povolena pouze jedna konfigurace Abode."
},
"error": {
"connection_error": "Nelze se p\u0159ipojit k Abode.",
"identifier_exists": "\u00da\u010det je ji\u017e zaregistrov\u00e1n.",
"invalid_credentials": "Neplatn\u00e9 p\u0159ihla\u0161ovac\u00ed \u00fadaje."
},
"step": {
"user": {
"data": {
"password": "Heslo",
"username": "E-mailov\u00e1 adresa"
},
"title": "Vypl\u0148te p\u0159ihla\u0161ovac\u00ed \u00fadaje Abode"
}
},
"title": "Abode"
}
}

View File

@@ -12,7 +12,7 @@
"user": {
"data": {
"password": "Adgangskode",
"username": "Email adresse"
"username": "Email-adresse"
},
"title": "Udfyld dine Abode-loginoplysninger"
}

View File

@@ -1,8 +1,17 @@
{
"config": {
"abort": {
"single_instance_allowed": "Somente uma \u00fanica configura\u00e7\u00e3o de Abode \u00e9 permitida."
},
"error": {
"connection_error": "N\u00e3o foi poss\u00edvel conectar ao Abode.",
"identifier_exists": "Conta j\u00e1 cadastrada.",
"invalid_credentials": "Credenciais inv\u00e1lidas."
},
"step": {
"user": {
"data": {
"password": "Senha",
"username": "Endere\u00e7o de e-mail"
}
}

View File

@@ -6,6 +6,7 @@
"step": {
"user": {
"data": {
"password": "Palavra-passe",
"username": "Endere\u00e7o de e-mail"
}
}

View File

@@ -5,8 +5,8 @@
},
"error": {
"connection_error": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Abode.",
"identifier_exists": "\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430.",
"invalid_credentials": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435."
"identifier_exists": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430.",
"invalid_credentials": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435."
},
"step": {
"user": {

View File

@@ -21,16 +21,21 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
)
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.entity import Entity
from .const import ATTRIBUTION, DOMAIN
from .const import (
ATTRIBUTION,
DEFAULT_CACHEDB,
DOMAIN,
SIGNAL_CAPTURE_IMAGE,
SIGNAL_TRIGGER_QUICK_ACTION,
)
_LOGGER = logging.getLogger(__name__)
CONF_POLLING = "polling"
DEFAULT_CACHEDB = "./abodepy_cache.pickle"
SERVICE_SETTINGS = "change_setting"
SERVICE_CAPTURE_IMAGE = "capture_image"
SERVICE_TRIGGER = "trigger_quick_action"
@@ -91,7 +96,7 @@ class AbodeSystem:
self.abode = abode
self.polling = polling
self.devices = []
self.entity_ids = set()
self.logout_listener = None
@@ -165,7 +170,7 @@ async def async_unload_entry(hass, config_entry):
def setup_hass_services(hass):
"""Home assistant services."""
"""Home Assistant services."""
def change_setting(call):
"""Change an Abode system setting."""
@@ -181,27 +186,29 @@ def setup_hass_services(hass):
"""Capture a new image."""
entity_ids = call.data.get(ATTR_ENTITY_ID)
target_devices = [
device
for device in hass.data[DOMAIN].devices
if device.entity_id in entity_ids
target_entities = [
entity_id
for entity_id in hass.data[DOMAIN].entity_ids
if entity_id in entity_ids
]
for device in target_devices:
device.capture()
for entity_id in target_entities:
signal = SIGNAL_CAPTURE_IMAGE.format(entity_id)
dispatcher_send(hass, signal)
def trigger_quick_action(call):
"""Trigger a quick action."""
entity_ids = call.data.get(ATTR_ENTITY_ID, None)
target_devices = [
device
for device in hass.data[DOMAIN].devices
if device.entity_id in entity_ids
target_entities = [
entity_id
for entity_id in hass.data[DOMAIN].entity_ids
if entity_id in entity_ids
]
for device in target_devices:
device.trigger()
for entity_id in target_entities:
signal = SIGNAL_TRIGGER_QUICK_ACTION.format(entity_id)
dispatcher_send(hass, signal)
hass.services.register(
DOMAIN, SERVICE_SETTINGS, change_setting, schema=CHANGE_SETTING_SCHEMA
@@ -292,6 +299,7 @@ class AbodeDevice(Entity):
self._device.device_id,
self._update_callback,
)
self.hass.data[DOMAIN].entity_ids.add(self.entity_id)
async def async_will_remove_from_hass(self):
"""Unsubscribe from device events."""
@@ -354,13 +362,14 @@ class AbodeAutomation(Entity):
self._event = event
async def async_added_to_hass(self):
"""Subscribe Abode events."""
"""Subscribe to a group of Abode timeline events."""
if self._event:
self.hass.async_add_job(
self._data.abode.events.add_event_callback,
self._event,
self._update_callback,
)
self.hass.data[DOMAIN].entity_ids.add(self.entity_id)
@property
def should_poll(self):

View File

@@ -2,6 +2,10 @@
import logging
import homeassistant.components.alarm_control_panel as alarm
from homeassistant.components.alarm_control_panel.const import (
SUPPORT_ALARM_ARM_AWAY,
SUPPORT_ALARM_ARM_HOME,
)
from homeassistant.const import (
ATTR_ATTRIBUTION,
STATE_ALARM_ARMED_AWAY,
@@ -23,9 +27,8 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up an alarm control panel for an Abode device."""
"""Set up Abode alarm control panel device."""
data = hass.data[DOMAIN]
async_add_entities(
[AbodeAlarm(data, await hass.async_add_executor_job(data.abode.get_alarm))]
)
@@ -52,6 +55,11 @@ class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanel):
state = None
return state
@property
def supported_features(self) -> int:
"""Return the list of supported features."""
return SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_AWAY
def alarm_disarm(self, code=None):
"""Send disarm command."""
self._device.set_standby()

View File

@@ -5,9 +5,10 @@ import abodepy.helpers.constants as CONST
import abodepy.helpers.timeline as TIMELINE
from homeassistant.components.binary_sensor import BinarySensorDevice
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from . import AbodeAutomation, AbodeDevice
from .const import DOMAIN
from .const import DOMAIN, SIGNAL_TRIGGER_QUICK_ACTION
_LOGGER = logging.getLogger(__name__)
@@ -18,7 +19,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up a sensor for an Abode device."""
"""Set up Abode binary sensor devices."""
data = hass.data[DOMAIN]
device_types = [
@@ -29,19 +30,19 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
CONST.TYPE_OPENING,
]
devices = []
entities = []
for device in data.abode.get_devices(generic_type=device_types):
devices.append(AbodeBinarySensor(data, device))
entities.append(AbodeBinarySensor(data, device))
for automation in data.abode.get_automations(generic_type=CONST.TYPE_QUICK_ACTION):
devices.append(
entities.append(
AbodeQuickActionBinarySensor(
data, automation, TIMELINE.AUTOMATION_EDIT_GROUP
)
)
async_add_entities(devices)
async_add_entities(entities)
class AbodeBinarySensor(AbodeDevice, BinarySensorDevice):
@@ -61,6 +62,12 @@ class AbodeBinarySensor(AbodeDevice, BinarySensorDevice):
class AbodeQuickActionBinarySensor(AbodeAutomation, BinarySensorDevice):
"""A binary sensor implementation for Abode quick action automations."""
async def async_added_to_hass(self):
"""Subscribe Abode events."""
await super().async_added_to_hass()
signal = SIGNAL_TRIGGER_QUICK_ACTION.format(self.entity_id)
async_dispatcher_connect(self.hass, signal, self.trigger)
def trigger(self):
"""Trigger a quick automation."""
self._automation.trigger()

View File

@@ -7,10 +7,11 @@ import abodepy.helpers.timeline as TIMELINE
import requests
from homeassistant.components.camera import Camera
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.util import Throttle
from . import AbodeDevice
from .const import DOMAIN
from .const import DOMAIN, SIGNAL_CAPTURE_IMAGE
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=90)
@@ -23,15 +24,15 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up a camera for an Abode device."""
"""Set up Abode camera devices."""
data = hass.data[DOMAIN]
devices = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA):
devices.append(AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE))
entities = []
async_add_entities(devices)
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA):
entities.append(AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE))
async_add_entities(entities)
class AbodeCamera(AbodeDevice, Camera):
@@ -54,6 +55,9 @@ class AbodeCamera(AbodeDevice, Camera):
self._capture_callback,
)
signal = SIGNAL_CAPTURE_IMAGE.format(self.entity_id)
async_dispatcher_connect(self.hass, signal, self.capture)
def capture(self):
"""Request a new image capture."""
return self._device.capture()

View File

@@ -10,7 +10,7 @@ from homeassistant import config_entries
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import callback
from .const import DOMAIN # pylint: disable=W0611
from .const import DEFAULT_CACHEDB, DOMAIN # pylint: disable=unused-import
CONF_POLLING = "polling"
@@ -42,9 +42,12 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
username = user_input[CONF_USERNAME]
password = user_input[CONF_PASSWORD]
polling = user_input.get(CONF_POLLING, False)
cache = self.hass.config.path(DEFAULT_CACHEDB)
try:
await self.hass.async_add_executor_job(Abode, username, password, True)
await self.hass.async_add_executor_job(
Abode, username, password, True, True, True, cache
)
except (AbodeException, ConnectTimeout, HTTPError) as ex:
_LOGGER.error("Unable to connect to Abode: %s", str(ex))

View File

@@ -1,3 +1,8 @@
"""Constants for the Abode Security System component."""
DOMAIN = "abode"
ATTRIBUTION = "Data provided by goabode.com"
DEFAULT_CACHEDB = "abodepy_cache.pickle"
SIGNAL_CAPTURE_IMAGE = "abode_camera_capture_{}"
SIGNAL_TRIGGER_QUICK_ACTION = "abode_trigger_quick_action_{}"

View File

@@ -18,14 +18,14 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Abode cover devices."""
data = hass.data[DOMAIN]
devices = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_COVER):
devices.append(AbodeCover(data, device))
entities = []
async_add_entities(devices)
for device in data.abode.get_devices(generic_type=CONST.TYPE_COVER):
entities.append(AbodeCover(data, device))
async_add_entities(entities)
class AbodeCover(AbodeDevice, CoverDevice):

View File

@@ -33,12 +33,12 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Abode light devices."""
data = hass.data[DOMAIN]
devices = []
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_LIGHT):
devices.append(AbodeLight(data, device))
entities.append(AbodeLight(data, device))
async_add_entities(devices)
async_add_entities(entities)
class AbodeLight(AbodeDevice, Light):
@@ -55,7 +55,7 @@ class AbodeLight(AbodeDevice, Light):
self._device.set_color(kwargs[ATTR_HS_COLOR])
if ATTR_BRIGHTNESS in kwargs and self._device.is_dimmable:
# Convert HASS brightness (0-255) to Abode brightness (0-99)
# Convert Home Assistant brightness (0-255) to Abode brightness (0-99)
# If 100 is sent to Abode, response is 99 causing an error
self._device.set_level(ceil(kwargs[ATTR_BRIGHTNESS] * 99 / 255.0))
else:
@@ -78,7 +78,7 @@ class AbodeLight(AbodeDevice, Light):
# Abode returns 100 during device initialization and device refresh
if brightness == 100:
return 255
# Convert Abode brightness (0-99) to HASS brightness (0-255)
# Convert Abode brightness (0-99) to Home Assistant brightness (0-255)
return ceil(brightness * 255 / 99.0)
@property

View File

@@ -18,14 +18,14 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Abode lock devices."""
data = hass.data[DOMAIN]
devices = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_LOCK):
devices.append(AbodeLock(data, device))
entities = []
async_add_entities(devices)
for device in data.abode.get_devices(generic_type=CONST.TYPE_LOCK):
entities.append(AbodeLock(data, device))
async_add_entities(entities)
class AbodeLock(AbodeDevice, LockDevice):

View File

@@ -3,11 +3,7 @@
"name": "Abode",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/abode",
"requirements": [
"abodepy==0.16.6"
],
"requirements": ["abodepy==0.16.7"],
"dependencies": [],
"codeowners": [
"@shred86"
]
}
"codeowners": ["@shred86"]
}

View File

@@ -16,9 +16,9 @@ _LOGGER = logging.getLogger(__name__)
# Sensor types: Name, icon
SENSOR_TYPES = {
"temp": ["Temperature", DEVICE_CLASS_TEMPERATURE],
"humidity": ["Humidity", DEVICE_CLASS_HUMIDITY],
"lux": ["Lux", DEVICE_CLASS_ILLUMINANCE],
CONST.TEMP_STATUS_KEY: ["Temperature", DEVICE_CLASS_TEMPERATURE],
CONST.HUMI_STATUS_KEY: ["Humidity", DEVICE_CLASS_HUMIDITY],
CONST.LUX_STATUS_KEY: ["Lux", DEVICE_CLASS_ILLUMINANCE],
}
@@ -28,16 +28,18 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up a sensor for an Abode device."""
"""Set up Abode sensor devices."""
data = hass.data[DOMAIN]
devices = []
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_SENSOR):
for sensor_type in SENSOR_TYPES:
devices.append(AbodeSensor(data, device, sensor_type))
if sensor_type not in device.get_value(CONST.STATUSES_KEY):
continue
entities.append(AbodeSensor(data, device, sensor_type))
async_add_entities(devices)
async_add_entities(entities)
class AbodeSensor(AbodeDevice):
@@ -62,22 +64,27 @@ class AbodeSensor(AbodeDevice):
"""Return the device class."""
return self._device_class
@property
def unique_id(self):
"""Return a unique ID to use for this device."""
return f"{self._device.device_uuid}-{self._sensor_type}"
@property
def state(self):
"""Return the state of the sensor."""
if self._sensor_type == "temp":
if self._sensor_type == CONST.TEMP_STATUS_KEY:
return self._device.temp
if self._sensor_type == "humidity":
if self._sensor_type == CONST.HUMI_STATUS_KEY:
return self._device.humidity
if self._sensor_type == "lux":
if self._sensor_type == CONST.LUX_STATUS_KEY:
return self._device.lux
@property
def unit_of_measurement(self):
"""Return the units of measurement."""
if self._sensor_type == "temp":
if self._sensor_type == CONST.TEMP_STATUS_KEY:
return self._device.temp_unit
if self._sensor_type == "humidity":
if self._sensor_type == CONST.HUMI_STATUS_KEY:
return self._device.humidity_unit
if self._sensor_type == "lux":
if self._sensor_type == CONST.LUX_STATUS_KEY:
return self._device.lux_unit

View File

@@ -21,17 +21,17 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Abode switch devices."""
data = hass.data[DOMAIN]
devices = []
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_SWITCH):
devices.append(AbodeSwitch(data, device))
entities.append(AbodeSwitch(data, device))
for automation in data.abode.get_automations(generic_type=CONST.TYPE_AUTOMATION):
devices.append(
entities.append(
AbodeAutomationSwitch(data, automation, TIMELINE.AUTOMATION_EDIT_GROUP)
)
async_add_entities(devices)
async_add_entities(entities)
class AbodeSwitch(AbodeDevice, SwitchDevice):

View File

@@ -1,10 +1,8 @@
{
"domain": "acer_projector",
"name": "Acer projector",
"name": "Acer Projector",
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"requirements": [
"pyserial==3.1.1"
],
"requirements": ["pyserial==3.1.1"],
"dependencies": [],
"codeowners": []
}

View File

@@ -1,17 +1,17 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
import logging
import re
import serial
import serial
import voluptuous as vol
from homeassistant.components.switch import SwitchDevice, PLATFORM_SCHEMA
from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchDevice
from homeassistant.const import (
STATE_ON,
STATE_OFF,
STATE_UNKNOWN,
CONF_NAME,
CONF_FILENAME,
CONF_NAME,
STATE_OFF,
STATE_ON,
STATE_UNKNOWN,
)
import homeassistant.helpers.config_validation as cv

View File

@@ -1,18 +1,19 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from collections import namedtuple
import logging
import re
import telnetlib
from collections import namedtuple
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util
from homeassistant.components.device_tracker import (
DOMAIN,
PLATFORM_SCHEMA,
DeviceScanner,
)
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util
_LOGGER = logging.getLogger(__name__)

View File

@@ -1,6 +1,8 @@
{
"config": {
"abort": {
"adguard_home_addon_outdated": "\u0422\u0430\u0437\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u0438\u0441\u043a\u0432\u0430 AdGuard Home {minimal_version} \u0438\u043b\u0438 \u043f\u043e-\u043d\u043e\u0432\u0430 {minimal_version}, \u0438\u043c\u0430\u0442\u0435 {current_version}. \u041c\u043e\u043b\u044f, \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u0439\u0442\u0435 \u0432\u0430\u0448\u0430\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u0437\u0430 Hass.io AdGuard Home.",
"adguard_home_outdated": "\u0422\u0430\u0437\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u0438\u0441\u043a\u0432\u0430 AdGuard Home {minimal_version} \u0438\u043b\u0438 \u043f\u043e-\u043d\u043e\u0432\u0430 {minimal_version}, \u0438\u043c\u0430\u0442\u0435 {current_version}.",
"existing_instance_updated": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.",
"single_instance_allowed": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 AdGuard Home."
},

View File

@@ -1,16 +1,18 @@
{
"config": {
"abort": {
"adguard_home_addon_outdated": "Denne integration kr\u00e6ver AdGuard Home {minimal_version} eller h\u00f8jere, du har {current_version}. Opdater venligst din Hass.io AdGuard Home-tilf\u00f8jelse.",
"adguard_home_outdated": "Denne integration kr\u00e6ver AdGuard Home {minimal_version} eller h\u00f8jere, du har {current_version}.",
"existing_instance_updated": "Opdaterede eksisterende konfiguration.",
"single_instance_allowed": "Det er kun n\u00f8dvendigt med en ops\u00e6tning af AdGuard Home."
"single_instance_allowed": "Kun en enkelt konfiguration af AdGuard Home er tilladt."
},
"error": {
"connection_error": "Forbindelse mislykkedes."
},
"step": {
"hassio_confirm": {
"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"
"description": "Vil du konfigurere Home Assistant til at oprette forbindelse til AdGuard Home leveret af Hass.io-tilf\u00f8jelsen: {addon}?",
"title": "AdGuard Home via Hass.io-tilf\u00f8jelse"
},
"user": {
"data": {
@@ -21,8 +23,8 @@
"username": "Brugernavn",
"verify_ssl": "AdGuard Home bruger et korrekt certifikat"
},
"description": "Konfigurer din AdGuard Home instans for at tillade overv\u00e5gning og kontrol.",
"title": "Link AdGuard Home."
"description": "Konfigurer din AdGuard Home-instans for at tillade overv\u00e5gning og kontrol.",
"title": "Forbind din AdGuard Home."
}
},
"title": "AdGuard Home"

View File

@@ -1,6 +1,8 @@
{
"config": {
"abort": {
"adguard_home_addon_outdated": "Diese Integration erfordert AdGuard Home {minimal_version} oder h\u00f6her, Sie haben {current_version}. Bitte aktualisieren Sie Ihr Hass.io AdGuard Home Add-on.",
"adguard_home_outdated": "Diese Integration erfordert AdGuard Home {minimal_version} oder h\u00f6her, Sie haben {current_version}.",
"existing_instance_updated": "Bestehende Konfiguration wurde aktualisiert.",
"single_instance_allowed": "Es ist nur eine einzige Konfiguration von AdGuard Home zul\u00e4ssig."
},

View File

@@ -1,6 +1,8 @@
{
"config": {
"abort": {
"adguard_home_addon_outdated": "Questa integrazione richiede AdGuard Home {minimal_version} o versione successiva, si dispone di {current_version}. Aggiorna il componente aggiuntivo AdGuard Home di Hass.io.",
"adguard_home_outdated": "Questa integrazione richiede AdGuard Home {minimal_version} o versione successiva, si dispone di {current_version}.",
"existing_instance_updated": "Configurazione esistente aggiornata.",
"single_instance_allowed": "\u00c8 consentita solo una singola configurazione di AdGuard Home."
},
@@ -9,7 +11,7 @@
},
"step": {
"hassio_confirm": {
"description": "Vuoi configurare Home Assistant per connettersi alla AdGuard Home fornita dal componente aggiuntivo di Hass.io: {addon} ?",
"description": "Vuoi configurare Home Assistant per connettersi alla AdGuard Home fornita dal componente aggiuntivo di Hass.io: {addon}?",
"title": "AdGuard Home tramite il componente aggiuntivo di Hass.io"
},
"user": {

View File

@@ -11,7 +11,7 @@
},
"step": {
"hassio_confirm": {
"description": "Hass.io {addon} \uc560\ub4dc\uc628\uc73c\ub85c AdGuard Home \uc5d0 \uc5f0\uacb0\ud558\ub3c4\ub85d Home Assistant \ub97c \uad6c\uc131 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
"description": "Hass.io {addon} \uc560\ub4dc\uc628\uc73c\ub85c AdGuard Home \uc5d0 \uc5f0\uacb0\ud558\ub3c4\ub85d Home Assistant \ub97c \uad6c\uc131\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
"title": "Hass.io \uc560\ub4dc\uc628\uc758 AdGuard Home"
},
"user": {

View File

@@ -4,7 +4,9 @@
"user": {
"data": {
"host": "Servidor",
"port": "Porta"
"password": "Palavra-passe",
"port": "Porta",
"username": "Nome de Utilizador"
}
}
}

View File

@@ -61,7 +61,6 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
password=entry.data[CONF_PASSWORD],
tls=entry.data[CONF_SSL],
verify_ssl=entry.data[CONF_VERIFY_SSL],
loop=hass.loop,
session=session,
)

View File

@@ -79,7 +79,6 @@ class AdGuardHomeFlowHandler(ConfigFlow):
password=user_input.get(CONF_PASSWORD),
tls=user_input[CONF_SSL],
verify_ssl=user_input[CONF_VERIFY_SSL],
loop=self.hass.loop,
session=session,
)
@@ -161,7 +160,6 @@ class AdGuardHomeFlowHandler(ConfigFlow):
self._hassio_discovery[CONF_HOST],
port=self._hassio_discovery[CONF_PORT],
tls=False,
loop=self.hass.loop,
session=session,
)

View File

@@ -1,13 +1,9 @@
{
"domain": "adguard",
"name": "AdGuard Home",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/adguard",
"requirements": [
"adguardhome==0.3.0"
],
"dependencies": [],
"codeowners": [
"@frenck"
]
}
"domain": "adguard",
"name": "AdGuard Home",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/adguard",
"requirements": ["adguardhome==0.4.0"],
"dependencies": [],
"codeowners": ["@frenck"]
}

View File

@@ -178,7 +178,7 @@ class AdGuardHomeReplacedSafeSearchSensor(AdGuardHomeSensor):
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
"Searches Safe Search Enforced",
"AdGuard Safe Searches Enforced",
"mdi:shield-search",
"enforced_safesearch",
"requests",

View File

@@ -1,14 +1,13 @@
"""Support for Automation Device Specification (ADS)."""
import threading
import struct
import logging
import ctypes
from collections import namedtuple
import asyncio
from collections import namedtuple
import ctypes
import logging
import struct
import threading
import async_timeout
import pyads
import voluptuous as vol
from homeassistant.const import (

View File

@@ -11,7 +11,7 @@ from homeassistant.components.binary_sensor import (
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_VAR, DATA_ADS, AdsEntity, STATE_KEY_STATE
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)

View File

@@ -4,25 +4,25 @@ import logging
import voluptuous as vol
from homeassistant.components.cover import (
PLATFORM_SCHEMA,
SUPPORT_OPEN,
SUPPORT_CLOSE,
SUPPORT_STOP,
SUPPORT_SET_POSITION,
ATTR_POSITION,
DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA,
SUPPORT_CLOSE,
SUPPORT_OPEN,
SUPPORT_SET_POSITION,
SUPPORT_STOP,
CoverDevice,
)
from homeassistant.const import CONF_NAME, CONF_DEVICE_CLASS
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
import homeassistant.helpers.config_validation as cv
from . import (
CONF_ADS_VAR,
CONF_ADS_VAR_POSITION,
DATA_ADS,
AdsEntity,
STATE_KEY_STATE,
STATE_KEY_POSITION,
STATE_KEY_STATE,
AdsEntity,
)
_LOGGER = logging.getLogger(__name__)

View File

@@ -16,9 +16,9 @@ from . import (
CONF_ADS_VAR,
CONF_ADS_VAR_BRIGHTNESS,
DATA_ADS,
AdsEntity,
STATE_KEY_BRIGHTNESS,
STATE_KEY_STATE,
AdsEntity,
)
_LOGGER = logging.getLogger(__name__)

View File

@@ -1,10 +1,8 @@
{
"domain": "ads",
"name": "Ads",
"name": "ADS",
"documentation": "https://www.home-assistant.io/integrations/ads",
"requirements": [
"pyads==3.0.7"
],
"requirements": ["pyads==3.0.7"],
"dependencies": [],
"codeowners": []
}

View File

@@ -8,7 +8,7 @@ from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT
import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_FACTOR, CONF_ADS_TYPE, CONF_ADS_VAR, AdsEntity, STATE_KEY_STATE
from . import CONF_ADS_FACTOR, CONF_ADS_TYPE, CONF_ADS_VAR, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)

View File

@@ -3,11 +3,11 @@ import logging
import voluptuous as vol
from homeassistant.components.switch import SwitchDevice, PLATFORM_SCHEMA
from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchDevice
from homeassistant.const import CONF_NAME
import homeassistant.helpers.config_validation as cv
from . import CONF_ADS_VAR, DATA_ADS, AdsEntity, STATE_KEY_STATE
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
_LOGGER = logging.getLogger(__name__)

View File

@@ -1,10 +1,8 @@
{
"domain": "aftership",
"name": "Aftership",
"name": "AfterShip",
"documentation": "https://www.home-assistant.io/integrations/aftership",
"requirements": [
"pyaftership==0.1.2"
],
"requirements": ["pyaftership==0.1.2"],
"dependencies": [],
"codeowners": []
}

View File

@@ -2,6 +2,7 @@
from datetime import timedelta
import logging
from pyaftership.tracker import Tracking
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
@@ -11,6 +12,7 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
@@ -56,8 +58,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None):
"""Set up the AfterShip sensor platform."""
from pyaftership.tracker import Tracking
apikey = config[CONF_API_KEY]
name = config[CONF_NAME]
@@ -77,7 +77,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async_add_entities([instance], True)
async def handle_add_tracking(call):
"""Call when a user adds a new Aftership tracking from HASS."""
"""Call when a user adds a new Aftership tracking from Home Assistant."""
title = call.data.get(CONF_TITLE)
slug = call.data.get(CONF_SLUG)
tracking_number = call.data[CONF_TRACKING_NUMBER]
@@ -93,7 +93,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
)
async def handle_remove_tracking(call):
"""Call when a user removes an Aftership tracking from HASS."""
"""Call when a user removes an Aftership tracking from Home Assistant."""
slug = call.data[CONF_SLUG]
tracking_number = call.data[CONF_TRACKING_NUMBER]

View File

@@ -2,12 +2,12 @@
from datetime import timedelta
import logging
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.config_validation import ( # noqa
from homeassistant.helpers.config_validation import ( # noqa: F401
PLATFORM_SCHEMA,
PLATFORM_SCHEMA_BASE,
)
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_component import EntityComponent
_LOGGER = logging.getLogger(__name__)

View File

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

View File

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

View File

@@ -3,7 +3,7 @@
"error": {
"auth": "API-n\u00f8glen er ikke korrekt.",
"name_exists": "Navnet findes allerede.",
"wrong_location": "Ingen Airly m\u00e5lestationer i dette omr\u00e5de."
"wrong_location": "Ingen Airly-m\u00e5lestationer i dette omr\u00e5de."
},
"step": {
"user": {
@@ -13,7 +13,7 @@
"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",
"description": "Konfigurer Airly luftkvalitetsintegration. For at generere API-n\u00f8gle, g\u00e5 til https://developer.airly.eu/register",
"title": "Airly"
}
},

View File

@@ -10,7 +10,6 @@ import async_timeout
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE
from homeassistant.core import Config, HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.util import Throttle
@@ -31,6 +30,8 @@ DEFAULT_SCAN_INTERVAL = timedelta(minutes=10)
async def async_setup(hass: HomeAssistant, config: Config) -> bool:
"""Set up configured Airly."""
hass.data[DOMAIN] = {}
hass.data[DOMAIN][DATA_CLIENT] = {}
return True
@@ -46,11 +47,6 @@ async def async_setup_entry(hass, config_entry):
await airly.async_update()
if not airly.data:
raise ConfigEntryNotReady()
hass.data[DOMAIN] = {}
hass.data[DOMAIN][DATA_CLIENT] = {}
hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id] = airly
hass.async_create_task(

View File

@@ -1,11 +1,11 @@
"""Support for the Airly air_quality service."""
from homeassistant.components.air_quality import (
AirQualityEntity,
ATTR_AQI,
ATTR_PM_10,
ATTR_PM_2_5,
ATTR_PM_10,
AirQualityEntity,
)
from homeassistant.const import CONF_NAME
from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from .const import (
ATTR_API_ADVICE,
@@ -35,10 +35,13 @@ LABEL_PM_10_PERCENT = f"{ATTR_PM_10}_percent_of_limit"
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Airly air_quality entity based on a config entry."""
name = config_entry.data[CONF_NAME]
latitude = config_entry.data[CONF_LATITUDE]
longitude = config_entry.data[CONF_LONGITUDE]
unique_id = f"{latitude}-{longitude}"
data = hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id]
async_add_entities([AirlyAirQuality(data, name)], True)
async_add_entities([AirlyAirQuality(data, name, unique_id)], True)
def round_state(func):
@@ -56,11 +59,12 @@ def round_state(func):
class AirlyAirQuality(AirQualityEntity):
"""Define an Airly air quality."""
def __init__(self, airly, name):
def __init__(self, airly, name, unique_id):
"""Initialize."""
self.airly = airly
self.data = airly.data
self._name = name
self._unique_id = unique_id
self._pm_2_5 = None
self._pm_10 = None
self._aqi = None
@@ -108,12 +112,12 @@ class AirlyAirQuality(AirQualityEntity):
@property
def unique_id(self):
"""Return a unique_id for this entity."""
return f"{self.airly.latitude}-{self.airly.longitude}"
return self._unique_id
@property
def available(self):
"""Return True if entity is available."""
return bool(self.airly.data)
return bool(self.data)
@property
def device_state_attributes(self):
@@ -132,7 +136,6 @@ class AirlyAirQuality(AirQualityEntity):
if self.airly.data:
self.data = self.airly.data
self._pm_10 = self.data[ATTR_API_PM10]
self._pm_2_5 = self.data[ATTR_API_PM25]
self._aqi = self.data[ATTR_API_CAQI]
self._pm_10 = self.data[ATTR_API_PM10]
self._pm_2_5 = self.data[ATTR_API_PM25]
self._aqi = self.data[ATTR_API_CAQI]

View File

@@ -1,14 +1,14 @@
"""Adds config flow for Airly."""
import async_timeout
import voluptuous as vol
from airly import Airly
from airly.exceptions import AirlyError
import async_timeout
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant import config_entries
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import DEFAULT_NAME, DOMAIN, NO_AIRLY_SENSORS

View File

@@ -2,6 +2,8 @@
from homeassistant.const import (
ATTR_ATTRIBUTION,
ATTR_DEVICE_CLASS,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_NAME,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_PRESSURE,
@@ -60,12 +62,16 @@ SENSOR_TYPES = {
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Airly sensor entities based on a config entry."""
name = config_entry.data[CONF_NAME]
latitude = config_entry.data[CONF_LATITUDE]
longitude = config_entry.data[CONF_LONGITUDE]
data = hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id]
sensors = []
for sensor in SENSOR_TYPES:
sensors.append(AirlySensor(data, name, sensor))
unique_id = f"{latitude}-{longitude}-{sensor.lower()}"
sensors.append(AirlySensor(data, name, sensor, unique_id))
async_add_entities(sensors, True)
@@ -84,11 +90,12 @@ def round_state(func):
class AirlySensor(Entity):
"""Define an Airly sensor."""
def __init__(self, airly, name, kind):
def __init__(self, airly, name, kind, unique_id):
"""Initialize."""
self.airly = airly
self.data = airly.data
self._name = name
self._unique_id = unique_id
self.kind = kind
self._device_class = None
self._state = None
@@ -130,7 +137,7 @@ class AirlySensor(Entity):
@property
def unique_id(self):
"""Return a unique_id for this entity."""
return f"{self.airly.latitude}-{self.airly.longitude}-{self.kind.lower()}"
return self._unique_id
@property
def unit_of_measurement(self):
@@ -140,7 +147,7 @@ class AirlySensor(Entity):
@property
def available(self):
"""Return True if entity is available."""
return bool(self.airly.data)
return bool(self.data)
async def async_update(self):
"""Update the sensor."""

View File

@@ -1,12 +1,8 @@
{
"domain": "airvisual",
"name": "Airvisual",
"name": "AirVisual",
"documentation": "https://www.home-assistant.io/integrations/airvisual",
"requirements": [
"pyairvisual==3.0.1"
],
"requirements": ["pyairvisual==3.0.1"],
"dependencies": [],
"codeowners": [
"@bachya"
]
"codeowners": ["@bachya"]
}

View File

@@ -194,7 +194,7 @@ class AirVisualSensor(Entity):
@property
def unique_id(self):
"""Return a unique, HASS-friendly identifier for this entity."""
"""Return a unique, Home Assistant friendly identifier for this entity."""
return f"{self._location_id}_{self._locale}_{self._type}"
@property

View File

@@ -1,10 +1,8 @@
{
"domain": "aladdin_connect",
"name": "Aladdin connect",
"name": "Aladdin Connect",
"documentation": "https://www.home-assistant.io/integrations/aladdin_connect",
"requirements": [
"aladdin_connect==0.3"
],
"requirements": ["aladdin_connect==0.3"],
"dependencies": [],
"codeowners": []
}

View File

@@ -0,0 +1,18 @@
{
"device_automation": {
"action_type": {
"arm_away": "\u0421\u043b\u043e\u0436\u0438 {entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u0441\u044a\u0441\u0442\u0432\u0438\u0435",
"arm_home": "\u0421\u043b\u043e\u0436\u0438 {entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c \u0432\u043a\u044a\u0449\u0438",
"arm_night": "\u0421\u043b\u043e\u0436\u0438 {entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 \u0432 \u043d\u043e\u0449\u0435\u043d \u0440\u0435\u0436\u0438\u043c",
"disarm": "\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0439 {entity_name}",
"trigger": "\u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0435 {entity_name}"
},
"trigger_type": {
"armed_away": "{entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430",
"armed_home": "{entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 - \u0432\u043a\u044a\u0449\u0438",
"armed_night": "{entity_name} \u043f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 - \u043d\u043e\u0449",
"disarmed": "{entity_name} \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0430",
"triggered": "{entity_name} \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d\u0430"
}
}
}

View File

@@ -6,6 +6,13 @@
"arm_night": "Activa {entity_name} nocturn",
"disarm": "Desactiva {entity_name}",
"trigger": "Dispara {entity_name}"
},
"trigger_type": {
"armed_away": "{entity_name} activada en mode a fora",
"armed_home": "{entity_name} activada en mode a casa",
"armed_night": "{entity_name} activada en mode nocturn",
"disarmed": "{entity_name} desactivada",
"triggered": "{entity_name} disparat/ada"
}
}
}

View File

@@ -0,0 +1,11 @@
{
"device_automation": {
"action_type": {
"arm_away": "Aktivovat {entity_name} v re\u017eimu mimo domov",
"arm_home": "Aktivovat {entity_name} v re\u017eimu doma",
"arm_night": "Aktivovat {entity_name} v re\u017eimu noc",
"disarm": "Deaktivovat {entity_name}",
"trigger": "Spustit {entity_name}"
}
}
}

View File

@@ -1,7 +1,18 @@
{
"device_automation": {
"action_type": {
"arm_away": "Tilkobl {entity_name} ude",
"arm_home": "Tilkobl {entity_name} hjemme",
"arm_night": "Tilkobl {entity_name} nat",
"disarm": "Frakobl {entity_name}",
"trigger": "Udl\u00f8s {entity_name}"
},
"trigger_type": {
"armed_away": "{entity_name} tilkoblet ude",
"armed_home": "{entity_name} tilkoblet hjemme",
"armed_night": "{entity_name} tilkoblet nat",
"disarmed": "{entity_name} frakoblet",
"triggered": "{entity_name} udl\u00f8st"
}
}
}

View File

@@ -0,0 +1,11 @@
{
"device_automation": {
"trigger_type": {
"armed_away": "{entity_name} Unterwegs",
"armed_home": "{entity_name} Zuhause",
"armed_night": "{entity_name} Nacht-Modus",
"disarmed": "{entity_name} deaktiviert",
"triggered": "{entity_name} ausgel\u00f6st"
}
}
}

View File

@@ -6,6 +6,13 @@
"arm_night": "Arm {entity_name} night",
"disarm": "Disarm {entity_name}",
"trigger": "Trigger {entity_name}"
},
"trigger_type": {
"armed_away": "{entity_name} armed away",
"armed_home": "{entity_name} armed home",
"armed_night": "{entity_name} armed night",
"disarmed": "{entity_name} disarmed",
"triggered": "{entity_name} triggered"
}
}
}

View File

@@ -6,6 +6,13 @@
"arm_night": "Armar {entity_name} por la noche",
"disarm": "Desarmar {entity_name}",
"trigger": "Lanzar {entity_name}"
},
"trigger_type": {
"armed_away": "{entity_name} armado fuera",
"armed_home": "{entity_name} armado en casa",
"armed_night": "{entity_name} armado modo noche",
"disarmed": "{entity_name} desarmado",
"triggered": "{entity_name} activado"
}
}
}

View File

@@ -1,11 +1,18 @@
{
"device_automation": {
"action_type": {
"arm_away": "Armer {entity_name} mode sortie",
"arm_home": "Armer {entity_name} mode \u00e0 la maison",
"arm_night": "Armer {entity_name} mode nuit",
"arm_away": "Armer {entity_name} en mode \"sortie\"",
"arm_home": "Armer {entity_name} en mode \"maison\"",
"arm_night": "Armer {entity_name} en mode \"nuit\"",
"disarm": "D\u00e9sarmer {entity_name}",
"trigger": "D\u00e9clencheur {entity_name}"
},
"trigger_type": {
"armed_away": "Armer {entity_name} en mode \"sortie\"",
"armed_home": "Armer {entity_name} en mode \"maison\"",
"armed_night": "Armer {entity_name} en mode \"nuit\"",
"disarmed": "{entity_name} d\u00e9sarm\u00e9",
"triggered": "{entity_name} d\u00e9clench\u00e9"
}
}
}

View File

@@ -0,0 +1,18 @@
{
"device_automation": {
"action_type": {
"arm_away": "{entity_name} \u00e9les\u00edt\u00e9se t\u00e1voz\u00f3 m\u00f3dban",
"arm_home": "{entity_name} \u00e9les\u00edt\u00e9se otthon marad\u00f3 m\u00f3dban",
"arm_night": "{entity_name} \u00e9les\u00edt\u00e9se \u00e9jszakai m\u00f3dban",
"disarm": "{entity_name} hat\u00e1stalan\u00edt\u00e1sa",
"trigger": "{entity_name} riaszt\u00e1si esem\u00e9ny ind\u00edt\u00e1sa"
},
"trigger_type": {
"armed_away": "{entity_name} t\u00e1voz\u00f3 m\u00f3dban lett \u00e9les\u00edtve",
"armed_home": "{entity_name} otthon marad\u00f3 m\u00f3dban lett \u00e9les\u00edtve",
"armed_night": "{entity_name} \u00e9jszakai m\u00f3dban lett \u00e9les\u00edtve",
"disarmed": "{entity_name} hat\u00e1stalan\u00edtva lett",
"triggered": "{entity_name} riaszt\u00e1sba ker\u00fclt"
}
}
}

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