Commit Graph

6939 Commits (cf6352e93ccdf5c43800c482e5f455f660e576a2)

Author SHA1 Message Date
Robert Svensson 50d3aae418
Improve restoring UniFi POE entity state (#47148)
* Improve restoring data and better handling when the restore data is empty
Improve readability of some logic related to POE clients

* There is no need to check clients_all in Switch platform

* Add better tests when restoring state

* Port except handling shouldn't be needed anymore

* Walrusify get_last_state
2021-03-05 22:09:05 +01:00
Robert Svensson 793929f2ea
Increase test coverage of UniFi integration (#46347)
* Increase coverage of init

* Increase coverage of config_flow

* Improve coverage of controller

* Minor improvement to switch test

* Fix review comment

* Mock websocket class

* Replace the rest of the old websocket event tests

* Improve websocket fixture for cleaner tests

* Fix typing

* Improve connection state signalling based on Martins feedback

* Improve tests of reconnection_mechanisms based on Martins review comments

* Fix unload entry

* Fix isort issue after rebase

* Fix martins comment on not using caplog

* Fix wireless clients test

* Fix martins comments on wireless clients test
2021-03-05 21:28:41 +01:00
Emily Mills 7c08592b5a
Convert kulersky to use new async backend (#47403) 2021-03-05 14:24:55 -06:00
Emily Mills a547d0fea2
Prevent Zerproc leaving open unnecessary connections (#47401)
* Zerproc: Prevent leaving open unnecessary connections

* Fix config entry unloading
2021-03-05 13:14:03 -06:00
tkdrob 3baeed3684
Clean up constants (#47323) 2021-03-05 19:08:04 +01:00
Franck Nijhof cc99fd5e32
Fix Hue scene overriding Hue default transition times (#47454) 2021-03-05 09:43:26 -08:00
Martin Hjelmare 0350a6ed21
Only create snapshot if add-on update will be done (#47424) 2021-03-04 16:38:33 -08:00
Raman Gupta ee69e93b46
Bump zwave-js-server-python to 0.21.0 (#47408)
Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
2021-03-04 16:15:50 -08:00
Martin Hjelmare 682943511a
Make zwave_js add-on manager more flexible (#47356) 2021-03-04 14:14:24 -08:00
Martin Hjelmare 5ced7395f3
Fix access of missing zwave_js climate unit value (#47380) 2021-03-04 13:11:38 -08:00
Martin Hjelmare d64fe6ea32
Fix zwave_js manual reconfiguration of add-on managed entry (#47364) 2021-03-04 13:11:07 -08:00
Franck Nijhof 7a8b7224c8
Don't raise on known non-matching states in numeric state condition (#47378) 2021-03-04 13:09:08 -08:00
Eric Severance f05f60c4c4
Revert "Speed-up wemo discovery (#46821)" (#47392)
This reverts commit 6e52b26c06.
2021-03-04 13:07:42 -08:00
Erik Montnemery 17401cbc29
Initial automation tracing (#46755)
* Initial prototype of automation tracing

* Small fixes

* Lint

* Move trace helpers to its own file

* Improve trace for state and numeric_state conditions

* Tweaks + apply suggestions from code review

* Index traces by automation_id, trace while script is running

* Refactor condition tracing

* Improve WS API to get traces for single automation

* Add tests

* Fix imports

* Fix imports

* Address review comments

* Cap logging of loops

* Remove unused ContextVar action_config
2021-03-04 14:16:24 +01:00
Chris 6d478804e7
Add LZW36 device schema to zwave_js discovery (#47314)
* Add LZW26 device schema to discovery

Co-authored-by: @kpine

* Update homeassistant/components/zwave_js/discovery.py

Co-authored-by: kpine <keith.pine@gmail.com>

* Add tests

* Fix test

Co-authored-by: kpine <keith.pine@gmail.com>
2021-03-04 00:32:37 +01:00
Erik Montnemery b147ba1377
Correct gogogate2 battery sensor attributes (#47302) 2021-03-03 10:20:48 +01:00
Martin Hjelmare d3721bcf26
Add zwave_js add-on manager (#47251)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-03-02 14:22:42 -08:00
Raman Gupta 42af775f53
Add raw values to zwave_js value notification event (#47258)
* add value_raw to value notification event that always shows the untranslated state value

* add property key and property to event params
2021-03-02 16:10:30 -05:00
Quentame 198ecb0945
Uniformize platform setup (#47101)
* A platform is not a component

* Fix dynalite

* SUPPORTED_PLATFORMS --> PLATFORMS

* In tests

* In tests 2

* Fix SmartThings

* Fix ZHA test

* Fix Z-Wave

* Revert Z-Wave

* Use PLATFORMS const in ambient_station

* Fix ihc comment
2021-03-02 21:43:59 +01:00
Rene Lehfeld 2272925699
Add force_update to tasmota sensors (#47052)
* Add force update also to non-binary sensors as e.g. POWER Measurement agerage cannot be calculated otherwise. This is the same behavior as set with the obsolete tasmota detection

* add tests in binary_sensor and test_sensor for force_update flag

* satisfy flake8

* next try for force_update test but this time on the entity object which is the correct level

* once again satisfy flake8

* one more try for a test

* fix typo

* satisfy black
2021-03-02 18:57:14 +01:00
Paulus Schoutsen 2ebca88950
Fix Alexa doorbells (#47257) 2021-03-02 15:13:45 +01:00
Quentame 6b9abfc2c6
Add init test to Freebox (#46998)
* Add init test to Freebox

* Review : more readable conftest

* Expect 2 blank lines between defs

* Review : Not I/O in the event loop

* Fix test_setup test

* remove useless const

* Review : mock setup methods

* Add service test

* Add import test
2021-03-02 13:37:33 +01:00
tkdrob ab53b49d3f
Clean up constants (#46948)
* Clean up constants

* clean up humidifier constants

* fix tests

* fix prometheus tests

Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
2021-03-02 12:52:00 +01:00
Ville Skyttä dc880118a4
Lint suppression cleanups (#47248)
* Unused pylint suppression cleanups

* Remove outdated pylint bug references

* Add flake8-noqa config and note to run it every now and then

* Add codes to noqa's

* Unused noqa cleanups
2021-03-02 09:02:04 +01:00
Erik Montnemery 7e71050669
Add battery sensor for gogogate2 wireless door sensor (#47145)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-03-01 17:34:37 -10:00
Marcel van der Veldt 853d9ac4a9
Update color logic for zwave_js light platform (#47110)
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
2021-03-01 17:12:49 -08:00
Raman Gupta 3e34bb3e89
Add suggested area for zwave_js devices (#47250) 2021-03-01 15:24:55 -08:00
Erik Montnemery 96cc17b462
Add support for a list of known hosts to Google Cast (#47232) 2021-03-01 15:18:18 -08:00
Erik Montnemery dd9e926689
Pass variables to initial evaluation of template trigger (#47236)
* Pass variables to initial evaluation of template trigger

* Add test

* Clarify test
2021-03-01 23:34:26 +01:00
Raman Gupta 3c290c9a44
Address late hassio review (#47229)
* hassio code cleanup to address comments in #46342

* fix code
2021-03-01 12:10:51 -05:00
Dermot Duffy be8584c0bc
Overhaul command_line tests (#46682) 2021-03-01 17:27:04 +01:00
Matt Zimmerman 947f6ea51e
Parameterize SmartTub tests (#47189)
* Parameterize SmartTub tests

* parameterize light service calls

* remove stray print()

* add comment
2021-03-01 13:53:57 +01:00
J. Nick Koston 2de01ddaeb
Remove griddy integration (#47218) 2021-03-01 10:35:23 +01:00
Tobias Sauerwein 732db3b67c
Revert const replacement in fritzbox_callmonitor (#47211) 2021-03-01 10:31:13 +01:00
Raman Gupta 0592309b65
Add hassio addon_update service and hassio config entry with addon and OS devices and entities (#46342)
* add addon_update service, use config flow to set up config entry, create disabled sensors

* move most of entity logic to common entity class, improve device info, get rid of config_flow user step

* fix setup logic

* additional refactor

* fix refactored logic

* fix config flow tests

* add test for addon_update service and get_addons_info

* add entry setup and unload test and fix update coordinator

* handle if entry setup calls unload

* return nothing for coordinator if entry is being reloaded because coordinator will get recreated anyway

* remove entry when HA instance is no longer hassio and add corresponding test

* handle adding and removing device registry entries

* better config entry reload logic

* fix comment

* bugfix

* fix flake error

* switch pass to return

* use repository attribute for model and fallback to url

* use custom 'system' source since hassio source is misleading

* Update homeassistant/components/hassio/entity.py

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

* update remove addons function name

* Update homeassistant/components/hassio/__init__.py

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

* fix import

* pop coordinator after unload

* additional fixes

* always pass in sensor name when creating entity

* prefix one more function with async and fix tests

* use supervisor info for addons since list is already filtered on what's installed

* remove unused service

* update sensor names

* remove added handler function

* use walrus

* add OS device and sensors

* fix

* re-add addon_update service schema

* add more test coverage and exclude entities from tests

* check if instance is using hass OS in order to create OS entities

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-03-01 09:41:04 +01:00
J. Nick Koston 853da40e70
Increment the homekit config version when restarting (#47209)
If an entity changes between restart the iOS/controller
device may have cached the old chars for the accessory.
To force the iOS/controller to reload the chars, we
increment the config version when Home Assistant restarts
2021-02-28 20:42:09 -08:00
Allen Porter 715a254913
Handle stream failures in recorder (#47151)
* Handle stream failures in recorder

Fail gracefully with an error message when the recorder is invoked with no segments due to a stream failure.

* Update homeassistant/components/stream/recorder.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
2021-02-28 18:01:28 -08:00
Matt Zimmerman 277c3cb661
Cleanup SmartTub filtration cycles (#47192) 2021-02-28 13:53:57 -10:00
Matt Zimmerman bab66a5cb9
Remove turn_on and turn_off from SmartTub pump switches (#47184) 2021-02-28 13:48:30 -10:00
starkillerOG 1c9a9be197
Fix Xiaomi Miio discovery (#47134) 2021-02-28 12:25:40 -08:00
Erik Montnemery 19cd29affa
Fix MQTT trigger where wanted payload may be parsed as an integer (#47162) 2021-02-28 12:19:27 -08:00
Allen Porter 5cc8302e6a
Fix flaky hls keepalive test (#47186)
Remove a call to stream.start() which is issued before the test is fully
setup (e.g. keepalive is not set to True, and mock calls are not registered)
2021-02-28 10:25:07 -08:00
tkdrob fa1d91d1fe
Clean up mqtt_room (#46882) 2021-02-28 14:16:37 +01:00
Maciej Bieniek 66027bcef5
Bump airly library to version 1.1.0 (#47163) 2021-02-28 12:53:13 +01:00
Paulus Schoutsen 7c2545af6e
Use async_capture_events to avoid running in executor (#47111) 2021-02-26 13:28:52 -08:00
Joakim Plate e12eba1989
Add support for v6 features to philips js integration (#46422) 2021-02-26 09:34:40 -08:00
J. Nick Koston 7ab2d91bf0
Add suggested area to hue (#47056) 2021-02-26 10:35:09 -06:00
Charles Garwood d8633f94f6
Guard zwave_js missing nodes in websocket api (#47096) 2021-02-26 16:07:50 +01:00
Raman Gupta 56673f7edf
Remove flaky climacell test (#47080) 2021-02-26 13:45:21 +01:00
Erik Montnemery dfbb653107
Bump pychromecast to 9.0.0 (#47086)
* Adapt to Pychromecast 9.0.0

* Bump pychromecast to 9.0.0

* Fix lint issues
2021-02-26 13:43:53 +01:00
Paulus Schoutsen 6bd253094f
Bump Z-Wave JS Server Python to 0.20.0 (#47076) 2021-02-25 22:01:08 -08:00
J. Nick Koston 6af67c9558
Ensure hue options show the defaults when the config options have not yet been saved (#47067) 2021-02-25 21:58:35 -08:00
Raman Gupta 7118b7169c
catch ValueError when unique ID update fails because its taken and remove the duplicate entity (#47072) 2021-02-25 20:41:54 -05:00
Bram Kragten e3105c7eb1
Revert CORS changes for my home assistant (#47064)
* Revert CORS changes for my home assistant

* Update test_init.py

* Update test_init.py
2021-02-25 15:28:22 -08:00
Joakim Sørensen 7d90cdea1e
Use dispatch instead of eventbus for supervisor events (#46986)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-02-25 19:52:11 +01:00
Quentame 125206adbf
Add zeroconf discovery to Freebox (#47045)
* Add zeroconf discovery to Freebox

- remove deprecated discovery
- tried with SSDP too but the presentation URL is not the same (*.fbxos.fr for zeroconf, http://mafreebox.freebox.fr/ for SSDP)
- so config entry unique_id should be the MAC (included into SSDP, but not zeroconf, can be retrieve from `fbx.system.get_config()`)
- DHCP discovery might be added in the future too

* host and port are required on zeroconf

* cleanup in other PR
2021-02-25 16:50:58 +01:00
João Gabriel 372ed2db91
Add remote control platform to Panasonic Viera (#42450)
* Adding remote platform

* Update homeassistant/components/panasonic_viera/remote.py

Simplify entity creation

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

* Use Pytest fixture

* Use Pytest fixtures and assert service calls

* Adding conftest.py and organizing tests

* Reorganizing tests

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-25 13:40:01 +01:00
Paulus Schoutsen 1989b8c07d
Clean up discovery integration (#47022)
* Clean up discovery integration

* Fix tests

* Remove discovery step from freebox
2021-02-25 12:19:21 +01:00
Robert Svensson 6b0c569a70
Normally there should only be one battery sensor per device from deCONZ. (#46761)
With these Danfoss devices each endpoint can report its own battery state.
2021-02-25 09:54:46 +01:00
Raman Gupta a43f3c1a0c
Fix zwave_js unique ID migration logic (#47031) 2021-02-24 23:14:32 -08:00
Marcel van der Veldt 23cbd2dda3
Change Z-Wave JS discovery logic to adopt changes to DeviceClass (#46983)
Co-authored-by: raman325 <7243222+raman325@users.noreply.github.com>
2021-02-24 12:59:06 -08:00
Nathan Tilley 8d2606134d
Add FAA Delays Integration (#41347)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-24 14:11:20 -06:00
jjlawren 2f1dba74d1
Use Plex server URL as config entry title (#47010) 2021-02-24 20:57:02 +01:00
Erik Montnemery daf7595ca6
Support value_template in MQTT triggers (#46891)
* Support value_template in MQTT triggers

* Rename value_template to payload_template

* Revert "Rename value_template to payload_template"

This reverts commit 902094eefc.
2021-02-24 20:16:36 +01:00
Raman Gupta 783e0f9a14
Setup config entry even if vizio device is unreachable (#46864) 2021-02-24 20:15:47 +01:00
Marcel van der Veldt 868a536d81
Add number platform to Z-Wave JS (#46956)
* add number platform to zwave_js integration
* add discovery scheme for thermostat valve control, using number platform

Co-authored-by: kpine <keith.pine@gmail.com>
2021-02-24 19:39:35 +01:00
Tobias Sauerwein 722b1e8746
Add Netatmo device trigger (#45387)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-24 19:20:40 +01:00
Martin Hjelmare db8f597f10
Fix zwave_js config flow server version timeout (#46990) 2021-02-24 16:22:58 +01:00
Raman Gupta 424526db7e
Migrate zwave_js entities to use new unique ID format (#46979)
* migrate zwave_js entities to use new unique ID format

* remove extra param from helper

* add comment to remove migration logic in the future

* update comment

* use instance attribute instead of calling functino on every state update
2021-02-24 09:41:10 -05:00
adrian-vlad 44293a3738
Add enable and disable services for recorder (#45778) 2021-02-24 07:26:05 -06:00
Álvaro Fernández Rojas 470121e5b0
Restore Tado binary sensor attributes (#46069) 2021-02-24 07:17:01 -06:00
Maciej Bieniek b645b151f9
Catch AuthRequired exception in confirm discovery step for Shelly config flow (#46135) 2021-02-24 07:13:32 -06:00
Franck Nijhof 45b50c53ad
Mullvad integration improvements (#46987) 2021-02-24 13:43:44 +01:00
MeIchthys 1a73cb4791
Mullvad VPN (#44189)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-02-24 12:04:38 +01:00
Martin Hjelmare 1c7c6163dd
Save mysensors gateway type in config entry (#46981) 2021-02-24 11:31:31 +01:00
Raman Gupta eccdae60bf
Add ClimaCell weather integration (#36547)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-24 09:34:27 +01:00
Allen Porter 19f5b467b7
Make FAN_ON use the max duration rather than 15 min default (#46489) 2021-02-23 20:38:52 -06:00
Nathan Spencer b8f7bc12ee
Add switches and sensors to Litter-Robot (#46942) 2021-02-23 20:34:25 -06:00
Marcel van der Veldt d4d68ebc64
Extend zwave_js discovery scheme for lights (#46907) 2021-02-23 16:31:24 -08:00
J. Nick Koston 87cbbcb014
Automatically create HomeKit accessory mode entries (#46473)
When we set up HomeKit, we asked users if they wanted
to create an entry in bridge or accessory mode.

This approach required the user to understand how HomeKit works and
choose which type to create.

When the user includes the media player or camera domains,
we exclude them from the bridge and create the additional entries
for each entity in accessory mode.
2021-02-23 16:22:23 -08:00
Raman Gupta b657fd02cd
deep copy zwave_js state in test fixtures so tests are more isolated (#46976) 2021-02-23 18:58:25 -05:00
Raman Gupta 1a99562e91
Add zwave_js.refresh_value service (#46944)
* add poll_value service

* switch vol.All to vol.Schema

* more relevant log message

* switch service name to refresh_value, add parameter to refresh all watched values, fix tests

* rename parameter and create task for polling command so we don't wait for a response

* raise ValueError for unknown entity

* better error message

* fix test
2021-02-23 18:58:04 -05:00
jjlawren 425d56d024
Fix Plex showing removed shared users (#46971) 2021-02-23 23:36:46 +01:00
MHV33 23b2953773
Add more shopping list services (#45591)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-02-23 23:25:50 +01:00
J. Nick Koston d68a51ddce
Avoid having to ask for the bond token when possible during config (#46845) 2021-02-23 13:42:56 -08:00
Martin Hjelmare 089effbe3f
Improve zwave_js config flow (#46906) 2021-02-23 13:41:19 -08:00
Jon Caruana 6a8b5ee51b
LiteJet is now configured using config_flow (#44409)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-23 14:20:58 -06:00
Raman Gupta 5a3bd30e01
Add zwave_js.set_config_parameter service (#46673)
* create zwave_js.set_config_value service

* update docstring

* PR comments

* make proposed changes

* handle providing a label for the new value

* fix docstring

* use new library function

* config param endpoint is always 0

* corresponding changes from upstream PR

* bug fixes and add tests

* create zwave_js.set_config_value service

* update docstring

* PR comments

* make proposed changes

* handle providing a label for the new value

* fix docstring

* use new library function

* config param endpoint is always 0

* corresponding changes from upstream PR

* bug fixes and add tests

* use lambda to avoid extra function

* add services description file

* bring back the missing selector

* move helper functions to helper file for reuse

* allow target selector for automation editor

* formatting

* fix service schema

* update docstrings

* raise error in service if call to set value is unsuccessful

* Update homeassistant/components/zwave_js/services.yaml

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

* Update homeassistant/components/zwave_js/services.yaml

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

* Update homeassistant/components/zwave_js/services.yaml

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

* Update homeassistant/components/zwave_js/services.yaml

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

* Update homeassistant/components/zwave_js/services.yaml

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

* Update homeassistant/components/zwave_js/services.yaml

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

* remove extra param to vol.Optional

* switch to set over list for nodes

* switch to set over list for nodes

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-02-23 11:35:11 -05:00
Martin Hjelmare c94968d811
Catch more zwave_js errors (#46957) 2021-02-23 16:36:53 +01:00
Charles Garwood 3c35b6558b
Return states list from zwave_js get_config_parameters websocket if available (#46954) 2021-02-23 09:31:47 -05:00
tkdrob 4fdb617e22
Clean up constants (#46924)
* Clean up constants

* fix imports
2021-02-23 09:56:44 +01:00
J. Nick Koston bd87047ff2
Update tasmota to use new fan entity model (#45877) 2021-02-22 21:27:21 -06:00
uvjustin f005c68630
Restore stream recorder functionality and add discontinuity support (#46772)
* Add discontinuity support to stream recorder

* Use same container options for both StreamOutputs

* Fix pts adjuster

* Remove redundant/incorrect duplicate hls segment check

* Use same StreamBuffer across outputs

* Remove keepalive check for recorder

* Set output video timescale explicitly

* Disable avoid_negative_ts
2021-02-23 10:37:19 +08:00
Raman Gupta 1cecf229b9
Add zwave_js set_config_parameter WS API command (#46910)
* add WS API command

* handle error scenario better

* fixes and remove duplicate catch

* make elif statement more compact

* fix conflict

* switch to str(err)
2021-02-22 20:34:47 -05:00
Raman Gupta 20ccec9aab
Add zwave_js/get_log_config and zwave_js/update_log_config WS API commands (#46601)
* Add zwave_js.update_log_config service

* fix comment

* reduce lines

* move update_log_config from service to ws API call

* fix docstring

* Add zwave_js/get_log_config WS API command

* resolve stale comments

* remove transports since it will be removed from upstream PR

* add support to update all log config parameters since they could be useful outside of the UI for advanced users

* fix comment

* switch to lambda instead of single line validator

* fix rebase

* re-add ATTR_DOMAIN
2021-02-22 18:35:19 -05:00
Charles Garwood 04e07d8b2c
Add get_config_parameters websocket command to zwave_js (#46463)
* Add get_configuration_values websocket command to zwave_js

* Tweak return value

* Review comments and cleanup returned values

* Update test

* Rename to get_config_parameters

* Add get_configuration_values websocket command to zwave_js

* Rename to get_config_parameters

* fix test

* fix tests #2

* Add readable to metadata

Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
2021-02-22 17:03:38 -05:00
kpine fb32c2e3a8
Test zwave_js GE 12730 fan controller device-specific discovery (#46840)
* Add test for GE 12730 fan controller device-specific discovery

* Adjust

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-22 10:56:23 -08:00
Nathan Spencer e70d896e1b
Add litterrobot integration (#45886) 2021-02-22 08:53:57 -10:00
tkdrob 75e04f3a71
Clean up constants (#46885) 2021-02-22 15:28:08 +01:00
Matt Zimmerman 81d011efc5
Add binary sensor to SmartTub for online status (#46889) 2021-02-22 04:10:00 -10:00
starkillerOG 338c07a56b
Add Xiaomi Miio vacuum config flow (#46669) 2021-02-22 13:01:02 +01:00
Austin Mroczek e5aef45bd7
Add usercode support to totalconnect (#39199)
* Add test for invalid usercode

* Add usercodes to totalconnect.

* Update existing tests for usercodes

* Fix tests

* Add test for invalid usercode

* Add usercodes to totalconnect.

* Update existing tests for usercodes

* Fix tests

* Remove YAML support

* Fix conflict

* Bump to total_connect_client 0.56

* Change Exception to HomeAssistantError

* Fix config_flow.py

* Simplify async_setup since no yaml

* Remove import from config flow and tests

* Add reauth and test for it.  Various other fixes.

* Fix pylint in __init__

* Show config yaml as deprecated

* separate config_flow and init tests

* Assert ENTRY_STATE_SETUP_ERROR in init test

* Add test for reauth flow

* Fix reauth and tests

* Fix strings

* Restore username and usercode with new passord

* Correct the integration name

* Update tests/components/totalconnect/test_config_flow.py

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

* Update tests/components/totalconnect/test_init.py

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

* Update .coveragerc

* Add test for invalid auth during reauth

* Bump total-connect-client to 0.57

* Fix .coveragerc

* More tests for usercodes

* Fix usercode test

* Reload config entry on reauth

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-22 10:39:10 +01:00
Jan-Willem Mulder 75b37b4c2a
Expose locked attribute in deCONZ climate platform (#46814) 2021-02-22 07:53:58 +01:00
Matt Zimmerman b2b476596b
Add UV sensor to SmartTub (#46888) 2021-02-21 20:25:01 -10:00
Diogo Gomes 5c29adea3d
Add KMTronic Integration (#41682)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-21 20:12:50 -10:00
Matt Zimmerman 5cd022a683
Add light platform to SmartTub (#46886)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-21 20:09:21 -10:00
Matt Zimmerman 5d8390fd9b
Add support for SmartTub filtration cycles (#46868) 2021-02-21 19:36:50 -10:00
Matt Zimmerman a8be5be376
Add switch platform and pump entity to SmartTub (#46842) 2021-02-21 18:48:27 -10:00
Matt Zimmerman d32dbc4cdd
Add support for SmartTub heat modes (#46876) 2021-02-21 18:46:54 -10:00
Diogo Gomes 0e44d61225
Add weather platform to template domain (#45031)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-21 18:08:00 -10:00
Matt Zimmerman 12c4db076c
Add more sensors to SmartTub integration (#46839) 2021-02-21 17:40:23 -10:00
J. Nick Koston c1ee9f7e4a
Fix unmocked I/O in rituals_perfume_genie config flow test (#46862) 2021-02-21 20:47:38 +01:00
J. Nick Koston e2fd255a96
Cleanup recorder tests (#46836) 2021-02-21 09:52:41 +01:00
J. Nick Koston d9ab1482bc
Add support for preset modes in homekit fans (#45962) 2021-02-20 19:24:14 -08:00
Erik Montnemery 5e26bda52d
Add support for disabling config entries (#46779) 2021-02-20 19:21:39 -08:00
Garrett 3ad207a499
Add new Subaru integration (#35760)
Co-authored-by: On Freund <onfreund@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-20 16:52:44 -10:00
Steven Looman efa339ca54
Allow upnp ignore SSDP-discoveries (#46592) 2021-02-20 16:26:17 -10:00
Tom Harris f045c0512b
Fix Insteon config flow with add X10 and device override (#45854) 2021-02-20 13:00:18 -10:00
Matt Zimmerman 115fe26642
Add smarttub sensor platform and state sensor (#46775) 2021-02-20 12:25:02 -10:00
Milan Meulemans 4af619d383
Add Rituals Perfume Genie integration (#46218)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-20 11:55:23 -10:00
Eric Severance 6e52b26c06
Speed-up wemo discovery (#46821)
* Speed-up wemo discovery

* Use gather_with_concurrency to limit concurrent executor usage

* Comment fixup: asyncio executors -> executor threads
2021-02-20 11:16:50 -10:00
Martin Hjelmare 43a5852561
Fix habitica entry unload clean up (#46798)
* Fix habitica entry unload clean up

* Fix service remove

* Add entry setup and unload test

* Fix config flow tests

* Assert service
2021-02-20 20:59:59 +01:00
Chris Talkington cf69415272
Implement suggested area in roku (#46819)
* implement suggested area in roku

* Update const.py

* Update test_media_player.py

* Update test_media_player.py

* Update test_media_player.py

* Update test_media_player.py
2021-02-20 12:57:24 -06:00
kpine 2ae790283c
Detect iBlinds v2.0 switch value as a cover not light (#46807)
* Remove unused "fibaro_fgs222" discovery hint

* Simplify multilevel switch current value discovery schema

* Force iBlinds v2.0 devices to be discovered as cover entities

* Rename discovery test file
2021-02-20 19:52:23 +01:00
uvjustin 39da0dc409
Add rtsp transport options to generic camera (#46623)
* Add rtsp transport options to generic camera
2021-02-21 02:11:50 +08:00
J. Nick Koston adf480025d
Add support for bond up and down lights (#46233) 2021-02-20 08:03:40 -10:00
Allen Porter 4aa4f7e285
Rollback stream StreamOutput refactoring in PR#46610 (#46684)
* Rollback PR#46610

* Update stream tests post-merge
2021-02-20 06:49:39 -08:00
Raman Gupta 788134cbc4
Bump zwave-js-server-python to 0.18.0 (#46787)
* updates to support changes in zwave-js-server-python

* bump lib version

* use named arguments for optional args

* re-add lost commits
2021-02-20 09:50:00 +01:00
Anders Melchiorsen 26ce316c18
Do not trigger when numeric_state is true at startup (#46424) 2021-02-20 09:11:36 +01:00
J. Nick Koston b775a0d796
Run homekit service calls in async since the server is now async (#45859)
* Simplify homekit runs and service calls

Now that the homekit server is async, call_service
and run are running in the Home Assistant event loop

* remove comment

* remove another comment
2021-02-19 21:34:52 -10:00
J. Nick Koston 41332493b5
Add suggested area support to Sonos (#46794) 2021-02-19 21:28:52 -10:00
J. Nick Koston 9b69549f73
Recover and restart the recorder if the sqlite database encounters corruption while running (#46612) 2021-02-19 21:26:24 -10:00
J. Nick Koston 5b0b01d727
Implement suggested areas in bond (#45942)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-02-19 21:06:43 -10:00
J. Nick Koston 6707496c5d
Update alexa for new fan model (#45836) 2021-02-19 22:45:14 -08:00
J. Nick Koston 773a202777
Implement percentage step sizes in HomeKit (#46722) 2021-02-19 22:37:12 -08:00
J. Nick Koston 22dbac259b
Ensure recorder shuts down cleanly on restart before startup is finished (#46604) 2021-02-19 22:18:21 -08:00
J. Nick Koston 2f3c2f5f4d
Add support for using a single endpoint for rest data (#46711) 2021-02-19 21:44:15 -08:00
J. Nick Koston 71586b7661
Cleanup inconsistencies in zha fan and make it a bit more dry (#46714)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-19 19:42:14 -10:00
J. Nick Koston bb7e4d7daa
Implement suggested_area in the device registry (#45940)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-02-19 19:34:33 -10:00
Raman Gupta 47dcd2bf32
Format zwave_js dump as json (#46792) 2021-02-19 18:44:15 -05:00
Raman Gupta 4d23ffacd1
Add zwave_js thermostat fan mode and fan state support (#46793)
* add thermostat fan mode and fan state support

* return when fan mode is not supported

* use get just in case

* validate state key is in states so we dont have to use get

* pylint
2021-02-20 00:20:10 +01:00
J. Nick Koston f2b303d509
Implement percentage step sizes for fans (#46512)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-02-18 21:05:09 -10:00
Matt Zimmerman da51e23514
Address late smarttub review (#46703)
* _config -> config

* remove unused string

* remove entity tests

* replace unit tests with integration tests using the core

* refactor polling to use asyncio.gather

* remove redundant component init

* remove gather in favor of simple loop

* use async_fire_time_changed instead of async_update_entity

* use hass.config_entries.async_setup instead of calling smarttub.async_setup_entry directly

* replace stray smarttub.async_setup_entry call

* async_unload_entry -> hass.config_entries.async_unload

* remove broken test
2021-02-19 01:18:02 +01:00
Allen Porter 88d143a644
Add discontinuity support to HLS streams and fix nest expiring stream urls (#46683)
* Support HLS stream discontinuity.

* Clarify discontinuity comments

* Signal a stream discontinuity on restart due to stream error

* Apply suggestions from code review

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Simplify stream discontinuity logic
2021-02-18 20:26:02 +08:00
J. Nick Koston 39785c5cef
Switch ssdp to be async by using async_upnp_client for scanning (#46554)
SSDP scans no longer runs in the executor

This is an interim step that converts the async_upnp_client
response to netdisco's object to ensure fully backwards
compatibility
2021-02-18 11:00:11 +01:00
Eric Severance 2ac075bb37
Perform wemo state update quickly after a timeout (#46702)
* Perform state update quickly after a timeout

* with async_timeout.timeout(...) -> async with async_timeout.timeout(...)
2021-02-18 00:38:08 +01:00
J. Nick Koston b2df9aaaf1
Update zha to use new fan entity model (#45758)
* Update zha to use new fan entity model

* fixes

* tweaks for zha

* pylint

* augment test cover
2021-02-17 13:03:11 -05:00
Eric Severance eb3e5cb67f
Remove calls to wemo.reconnect_with_device (#46646) 2021-02-17 13:17:31 +01:00
ollo69 fb73768164
Fix Tuya Option Flow tests (#46651) 2021-02-17 10:43:12 +01:00
Eric Severance 94131df5e0
Remove exception handling for AttributeError in wemo (#46674) 2021-02-17 00:07:22 -08:00
Ilja Leiko 8c72cb6163
Add sensors to fetch Habitica tasks (#38910)
* Adding sensors to fetch habitica tasks

* PR changes and rebase

* Fixing pylint

* Fixing failed test dependancy

* Generating requirements

* Apply suggestions from code review

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

* PR changes

* Update homeassistant/components/habitica/config_flow.py

Thank you, @MartinHjelmare

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

* PR Changes

* Fix failing test

* Update tests/components/habitica/test_config_flow.py

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

* Fixing linting and imports

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-17 09:04:11 +01:00
Allen Porter 56f32196bd
Add back block_until_done calls removed in PR 46610 (#46680) 2021-02-16 22:05:20 -08:00
Paulus Schoutsen b956a571f4
Fix Cloud Google/Alexa check (#46681) 2021-02-17 06:49:53 +01:00
Matt Zimmerman 58499946ed
Add SmartTub integration (#37775)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-16 19:37:56 -10:00
Allen Porter aaecd91407
Fix exception in stream idle callback (#46642)
* Fix exception in stream idle callback

Fix bug where idle timeout callback fails if the stream previously exited.

* Add a test for stream idle timeout after stream is stopped.

* Add clarifying comment to idle timer clear method

* Clear hls timer only on stop
2021-02-16 12:10:26 -08:00
Mark Coombes 960b5b7d86
Fix climate hold bug in ecobee (#46613) 2021-02-16 07:06:20 -10:00
Allen Porter 08201d146b
Separate HLS logic out of core StreamOutput to prepare for discontinuity (#46610)
Separate the HLS stream view logic out of StreamOutput since the hls
stream view is about to get more complex to track discontinuities. This
makes the idle timeout, shutdown, and coupling between hls and record
more explicit.
2021-02-16 06:59:43 -08:00
tkdrob add0d9d3eb
Use core constants for yeelight (#46552) 2021-02-16 09:00:09 -05:00
Franck Nijhof a6912277eb
Remove defunct CoinMarketCap integration (#46615) 2021-02-16 11:00:08 +01:00
Joakim Plate 0bfcd5e1ee
Use explicit open/close for covers (#46602) 2021-02-16 10:26:38 +01:00
J. Nick Koston 20d93b4b29
Remove support for migrating pre-config entry homekit (#46616)
HomeKit pairings and accessory ids from versions 0.109 and earlier are no longer
migrated on upgrade. Users upgrading directly to 2021.3 from 0.109
and older should upgrade to 2021.2 first if they wish to preserve
HomeKit configuration and avoid re-pairing the bridge.

This change does not affect upgrades from 0.110 and later.
2021-02-16 08:37:43 +01:00
ollo69 3c26235e78
Bump tuyaha to 0.0.10 and fix set temperature issues (#45732) 2021-02-15 16:20:45 -10:00
tkdrob 2a7d2868be
Use core constants for xiaomi_aqara (#46551) 2021-02-16 00:14:27 +01:00
starkillerOG 2f9fda73f4
Add config flow to Xiaomi Miio switch (#46179) 2021-02-15 20:11:27 +01:00
Allen Porter 89aaeb3c35
Refactor stream worker responsibilities for segmenting into a separate class (#46563)
* Remove stream_worker dependencies on Stream

Removee stream_worker dependencies on Stream and split out the logic
for writing segments to a stream buffer.

* Stop calling internal stream methods

* Update homeassistant/components/stream/worker.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Reuse self._outputs when creating new streams

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
2021-02-15 09:52:37 -08:00
Joakim Sørensen 886067a327
Add websocket handlers to hassio (#46571) 2021-02-15 18:18:45 +01:00
Shay Levy a5d943b5f1
MQTT cover Bugfixes (#46479)
* MQTT cover Bugfixes

* Remove period
2021-02-15 17:33:42 +01:00
uvjustin 9917bb76fb
Use httpx in generic camera (#46576)
* Use httpx in generic camera

* Remove commented out code
2021-02-15 16:37:53 +01:00
J. Nick Koston c5b9ad83c2
Log ffmpeg errors for homekit cameras (#46545) 2021-02-15 12:39:51 +01:00
Erik Montnemery c8e04ee960
Bump hatasmota to 0.2.9 (#46561) 2021-02-15 12:16:28 +01:00
Allen Porter 3f4828f5e1
Add additional stream HLS payload tests (#46517)
* Add tests for HLS playlist view details

* Add tests for hls playlist payloads

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

* Update tests/components/stream/test_hls.py

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>

Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
2021-02-14 20:32:37 -08:00
Raman Gupta cfdaadf5d9
Allow users to set device class for universal media player (#46550) 2021-02-14 17:05:23 -10:00
Raman Gupta a3b733f1ec
Add additional supported feature support to universal media player (#44711)
* add additional supported feature support to universal media player

* add missing services
2021-02-14 19:35:14 -05:00
J. Nick Koston c9df42b69a
Add support for pre-filtering events to the event bus (#46371) 2021-02-14 09:42:55 -10:00
Anders Melchiorsen f8f86fbe48
Do not trigger when template is true at startup (#46423) 2021-02-14 19:54:11 +01:00
jan iversen 855bd653b4
Update modbus test harness (#44892)
* Update test harness to allow discovery_info testing.

This is a needed update, before the whole config is converted
to the new structure, because it allows test of both the old
and new configuration style.

The following changes have been made:
- Combine test functions into a single base_test.
- Prepare for new mock by combining the 2 common test functions into one.
- Change mock to be only modbusHub
- Do not replace whole modbus class, but only the class that
  connects to pymodbus (modbusHub). This allows test of modbus
  configurations and not only component configurations, and is needed
  when testing discovery activated platform.
- Add test of climate.
  Warning this is merely test of discovery,
  the real cover tests still needs to be added.
- Add test of cover.
  Warning this is merely test of discovery,
  the real cover tests still needs to be added.

* Update comment for old config

* Do not use hass.data, but instead patch pymodbus library.

* Add test of configuration (old/new way as available).

* Move assert to test function.

Make assert more understandable by removing it from the helper.

add base_config_test (check just calls base_test) to make it clear if
test is wanted or just controlling the config.

* use setup_component to load Modbus since it is an integration.

* Optimized flow in test helper.
2021-02-14 17:40:30 +01:00
tkdrob a5a45f29e2
Cleanup unused loggers (#46510) 2021-02-14 13:46:58 +01:00
kpine dfa973f9ef
Add barrier covers to zwave_js integration (#46379) 2021-02-14 13:24:29 +01:00
Andrey Kupreychik accba85e35
Add keenetic_ndms2 config flow (#38353) 2021-02-14 13:09:19 +01:00
Franck Nijhof 7148071be8
Improve Elgato code quality (#46505) 2021-02-13 23:50:25 +01:00
Álvaro Fernández Rojas eecf07d7df
Add AEMET OpenData integration (#45074)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-13 21:53:28 +01:00
ollo69 f38b06ed6d
Add Asuswrt Config Flow and Scanner Entities (#46468)
* Add Asuswrt config flow (#43948)

* Add AsusWrt Scanner Entity (#44759)

* Add Scanner Entity

- device tracker entity changed from "DeviceScanner" to "ScannerEntity"
- sensors recoded to use "router" class
- config entry review to allow multiple entity (for future use)

* Force checks

* Removed new option and change sensors

* Update test_sensor.py

* Requested changes

* Removed router unique-id

* Update last_activity attr only when available

* Add Options for AsusWRT Scanner Entity (#44808)

* Add Asuswrt config flow (#43948)

* Add AsusWrt Scanner Entity (#44759)

* Add Scanner Entity

- device tracker entity changed from "DeviceScanner" to "ScannerEntity"
- sensors recoded to use "router" class
- config entry review to allow multiple entity (for future use)

* Force checks

* Removed new option and change sensors

* Update test_sensor.py

* Requested changes

* Removed router unique-id

* Update last_activity attr only when available

* Add Options for Scanner Entity

* Fix isort

* Removed "Track New" option

* Add Options for Scanner Entity

* Fix isort

* Removed "Track New" option

* Add test for all the options in the config flow
2021-02-13 19:17:06 +01:00
tkdrob 2ecac6550f
Use core constants for dynalite (#46044) 2021-02-13 12:06:20 +01:00
J. Nick Koston bc8a52038b
Fix homekit migration not being awaited (#46460) 2021-02-12 08:45:19 -10:00
tkdrob f929aa222f
Use core constants for roomba (#46441) 2021-02-12 16:09:36 +01:00
Joakim Plate a67b598971
Correct errors found on post merge review in philips_js (#46428)
* Correct missed review changes

* Adjust return value for device trigger

* Drop cannot connect

* Always assume there is a unique id

* No need to yield

* Update homeassistant/components/philips_js/media_player.py

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

* Move typing to init

* Adjust typing instead of returning lambda

* Explicity return None

* Coerce into int

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-12 02:35:29 +01:00
Joakim Plate 8dc06e612f
Add config flow to philips_js (#45784)
* Add config flow to philips_js

* Adjust name of entry to contain serial

* Use device id in event rather than entity id

* Adjust turn on text

* Deprecate all fields

* Be somewhat more explicit in typing

* Switch to direct coordinator access

* Refactor the pluggable action

* Adjust tests a bit

* Minor adjustment

* More adjustments

* Add missing await in update coordinator

* Be more lenient to lack of system info

* Use constant for trigger type and simplify

* Apply suggestions from code review

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-11 21:37:53 +01:00
Czapla 14a64ea970
Add generic_thermostat unique ID parameter (#46399)
* Add generic_thermostat unique ID parameter

* Add tests for unique id

* Fix flake8
2021-02-11 19:46:58 +00:00
Erik Montnemery 26e7916367
Migrate mobile_app to RestoreEntity (#46391) 2021-02-11 20:18:03 +01:00
Erik Montnemery ed31cc363b
Wait for registries to load at startup (#46265)
* Wait for registries to load at startup

* Don't decorate new functions with @bind_hass

* Fix typing errors in zwave_js

* Load registries in async_test_home_assistant

* Tweak

* Typo

* Tweak

* Explicitly silence mypy errors

* Fix tests

* Fix more tests

* Fix test

* Improve docstring

* Wait for registries to load
2021-02-11 17:36:19 +01:00
Steve Dwyer 5ce49c62b1
Allow MQTT template light floating point transition (#46385)
Allow to use floating point values for the transition time of the MQTT
template light.
2021-02-11 14:57:27 +01:00
tkdrob c75e63dc95
Use core constants for modbus (#46388) 2021-02-11 07:58:16 -05:00
tkdrob 29d8b8a22f
Some code cleanups for ESPHome (#46367) 2021-02-11 10:19:39 +01:00
Mike Keesey f549ec5ec9
Use activity ids for unique_id for Harmony switches (#46139) 2021-02-10 21:50:27 -10:00
Leonardo Figueiro 6182fedf3f
Update wilight tests for new fan entity model (#46358) 2021-02-10 13:09:03 -10:00
ehendrix23 9bc3c6c130
Bump pymyq to 3.0.1 (#46079)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-10 10:30:52 -10:00
J. Nick Koston c59b1c72c5
Add reauth support for tesla (#46307) 2021-02-10 20:55:06 +01:00
J. Nick Koston 884df40951
Update powerwall for new authentication requirements (#46254)
Co-authored-by: badguy99 <61918526+badguy99@users.noreply.github.com>
2021-02-10 20:50:38 +01:00
Leonardo Figueiro 2db102e023
Add WiLight Cover (#46065)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-02-10 09:08:39 -10:00
Alan Tse cdd78316c4
Use oauthv3 for Tesla (#45766) 2021-02-10 08:01:24 -10:00
Paulus Schoutsen 538df17a28
Restore Google/Alexa extra significant change checks (#46335) 2021-02-10 16:30:29 +01:00
Joakim Sørensen 917a616ce1
Replace parse_version with AwesomeVersion (#46329) 2021-02-10 15:58:26 +01:00
Erik Montnemery c66d9ea25c
Hide volume control for cast devices with fixed volume (#46328) 2021-02-10 08:39:10 -05:00
Franck Nijhof 22389043eb
Remove base_url fallback (#46316) 2021-02-10 14:31:11 +01:00
Bram Kragten 4b493c5ab9
Add target to service call API (#45898)
* Add target to service call API

* Fix _async_call_service_step

* CONF_SERVICE_ENTITY_ID overrules target

* Move merging up before processing schema

* Restore services.yaml

* Add test
2021-02-10 12:42:28 +01:00
Allen Porter 26f455223b
Update nest stream URLs expiration (#46311) 2021-02-09 23:53:34 -08:00
Allen Porter 00aebec90d
Fix bug in test found by manual log inspection (#46309) 2021-02-09 21:59:49 -08:00
J. Nick Koston 6a62ebb6a4
Add BPUP (push updates) support to bond (#45550) 2021-02-09 09:43:38 +01:00
Maciej Bieniek 2fc1c19a45
Allow to setup of a previously discovered sleeping Shelly device (#46124)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-02-09 09:28:40 +01:00
Robert Svensson 20f45f8ab9
Improve deCONZ tests by using aioclient_mock rather than patching web requests (#45927)
* Don't patch web requests, use aioclient_mock instead

* Remove stale prints

* Remove tests for old way of loading platforms

* Remove unused imports
2021-02-09 08:31:29 +01:00
Allen Porter 2bcf87b980
Change the API boundary between camera and stream with initial improvement for nest expiring stream urls (#45431)
* Change the API boundary between stream and camera

Shift more of the stream lifecycle management to the camera.  The motivation is to support stream urls that expire
giving the camera the ability to change the stream once it is created.

* Document stream lifecycle and simplify stream/camera interaction

* Reorder create_stream function to reduce diffs

* Increase test coverage for camera_sdm.py

* Fix ffmpeg typo.

* Add a stream identifier for each stream, managed by camera

* Remove stream record service

* Update homeassistant/components/stream/__init__.py

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

* Unroll changes to Stream interface back into camera component

* Fix preload stream to actually start the background worker

* Reduce unncessary diffs for readability

* Remove redundant camera stream start code

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-02-08 19:53:28 -08:00
Pascal Reeb 889baef456
Add DHCP discovery support to Nuki integration (#46032) 2021-02-08 17:11:27 -10:00
J. Nick Koston 6563c37ab1
Add support for generic lights to bond (#46193) 2021-02-09 00:39:21 +01:00
J. Nick Koston 93fafedf72
Cleanup bond identifiers and device info (#46192) 2021-02-09 00:37:32 +01:00
J. Nick Koston 6467eff09c
Fix incorrect current temperature for homekit water heaters (#46076) 2021-02-08 23:23:02 +01:00
J. Nick Koston dc26fd5149
Ensure creating an index that already exists is forgiving for postgresql (#46185)
Unlikely sqlite and mysql, postgresql throws ProgrammingError instead
of InternalError or OperationalError when trying to create an index
that already exists.
2021-02-08 23:22:38 +01:00
Allen Porter dca6a93898
Centralize keepalive logic in Stream class (#45850)
* Remove dependencies on keepalive from StremaOutput and stream_worker

Pull logic from StreamOutput and stream_worker into the Stream
class, unifying keepalive and idle timeout logic. This prepares
for future changes to preserve hls state across stream url changes.
2021-02-08 07:19:41 -08:00
Shay Levy 81c88cd639
Enhance MQTT cover platform (#46059)
* Enhance MQTT cover platform

Allow combining of position and state of MQTT cover
Add template and fix optimistic in set tilt position
Add tests

* Add abbreviations

* Add tests and stopped state

* Cleanup & fix range for templates

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2021-02-08 16:02:12 +01:00
Greg Dowling 8f4ea3818d
Add unavailable to Vera (#46064) 2021-02-08 15:25:54 +01:00
Joeri 2811e39c5c
Add entity specific force_update for DSMR (#46111) 2021-02-08 15:18:36 +01:00
Bram Kragten 6f446cf627
Add my component (#46058)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-08 14:44:46 +01:00
Anders Melchiorsen 48002f47f4
Use caplog fixture for log capturing (#46214) 2021-02-08 14:33:57 +01:00
Erik Montnemery 0780e52ca4
Support templates in event triggers (#46207)
* Support templates in event triggers

* Don't validate trigger schemas twice
2021-02-08 14:06:27 +01:00
Erik Montnemery 2744d64a3e
Pass variables to state trigger templates (#46208)
* Pass variables to state trigger templates

* Remove non working test
2021-02-08 13:22:01 +01:00
Erik Montnemery 9d9c4b47ee
Pass variables to numeric state trigger templates (#46209) 2021-02-08 13:21:31 +01:00
Erik Montnemery f99c27c6d4
Remove unneeded from_state from device triggers (#45152) 2021-02-08 11:09:45 +01:00
Erik Montnemery 047f16772f
Support templating MQTT triggers (#45614)
* Add support for limited templates (no HASS access)

* Pass variables to automation triggers

* Support templates in MQTT triggers

* Spelling

* Handle trigger referenced by variables

* Raise on unsupported function in limited templates

* Validate MQTT trigger schema in MQTT device trigger

* Add trigger_variables to automation config schema

* Don't print stacktrace when setting up trigger throws

* Make pylint happy

* Add trigger_variables to variables

* Add debug prints, document limited template

* Add tests

* Validate MQTT trigger topic early when possible

* Improve valid_subscribe_topic_template
2021-02-08 10:50:38 +01:00
Anders Melchiorsen b9b1caf4d7
Raise ConditionError for numeric_state errors (#45923) 2021-02-08 10:47:57 +01:00
Paulus Schoutsen 9e07910ab0
Mark entities as unavailable when they are removed but are still registered (#45528)
* Mark entities as unavailable when they are removed but are still registered

* Add sync_entity_lifecycle to collection helper

* Remove debug print

* Lint

* Fix tests

* Fix tests

* Update zha

* Update zone

* Fix tests

* Update hyperion

* Update rfxtrx

* Fix tests

* Pass force_remove=True from integrations

Co-authored-by: Erik <erik@montnemery.com>
2021-02-08 10:45:46 +01:00
Erik Montnemery 28ef3f68f3
Add media_player device triggers (#45430)
* Add media player device triggers

* Update tests
2021-02-08 09:36:14 +01:00
Daniel Shokouhi d02b78c634
Revert "Convert ozw climate values to correct units (#45369)" (#46163)
This reverts commit 1b6ee8301a.
2021-02-08 07:05:10 +01:00
Robert Svensson 618fcda821
Simplify UniFi entry configuration data (#45759)
* Simplify configuration structure by removing the controller key

* Fix flake8

* Fix review comments

* Don't use migrate_entry mechanism to flatten configuration
Keep legacy configuration when creating new entries as well
2021-02-06 21:32:18 +01:00
Robert Svensson 60e3fce7dc
Convert old deCONZ groups unique ids (#46093)
* Convert old groups unique ids
Work around for walrus operator not working properly :/

* Remove CONF_GROUP_ID_BASE once entities unique id are updated

* Don't use migrate_entry mechanism to update unique_ids of groups

* Remove walrus operator :(

* Fix review comments

* Walrusify assignment to old_unique_id
2021-02-06 14:32:17 +01:00
Robert Svensson 94ecb792ec
Use async_update_entry rather than updating config_entry.data directly in Axis (#46078)
Don't step version in migrate_entry to support rollbacking
2021-02-06 13:17:52 +01:00
J. Nick Koston a74ae3585a
Fix backwards compatiblity with fan update to new model (#45951)
* Fix backwards compatiblity with fans update to new model

There were some non-speeds and devices that report a none
speed. These problems were discovered when updating zha
tasmota and vesync to the new model in #45407

* Update coverage

* fix check
2021-02-06 12:48:18 +01:00
Raman Gupta af4e6f856f
Use better names for zwave_js platforms that are self describing (#46083)
* use better names for platforms that are self describing

* add missing light change

* fix tests

* only use value_name in sensors and binary_sensors
2021-02-06 12:08:25 +01:00
djtimca f2d9e6f70c
Add sensor platform for Aurora integration (#43148)
* Removed pylint disable on unused after updating CI files that were out of date.
* Pylint still fails due to bug on DOMAIN import. Added disable check.
* Addressed PR comments
* Added import for ClientError to test_config_flow.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-02-05 23:05:39 -08:00
Franck Nijhof 67392338da
Activate manual ZHA config flow when no comports detected (#46077) 2021-02-05 17:23:47 -05:00
Robert Svensson 434b4dfa58
Improve deCONZ logbook to be more robust in different situations (#46063) 2021-02-05 23:07:12 +01:00
Sergio Conde Gómez 2c74befd4f
Fix foscam to work again with non-admin accounts and make RTSP port configurable again (#45975)
* Do not require admin account for foscam cameras.

Foscam cameras require admin account for getting the MAC address,
requiring an admin account in the integration is not desirable as
an operator one is good enough (and a good practice).

Old entries using the MAC address as unique_id are migrated to the
new unique_id format so everything is consistent.

Also fixed unhandled invalid responses from the camera in the
config flow process.

* Make RTSP port configurable again as some cameras reports wrong port

* Remove periods from new log lines

* Set new Config Flow version to 2 and adjust the entity migration

* Create a proper error message for the InvalidResponse exception

* Change crafted unique_id to use entry_id in the entity

* Abort if same host and port is already configured

* Fix entry tracking to use entry_id instead of unique_id

* Remove unique_id from mocked config entry in tests
2021-02-05 22:39:31 +01:00
functionpointer c01e01f797
MySensors config flow (#45421)
* MySensors: Add type annotations

Adds a bunch of type annotations that were created
while understanding the code.

* MySensors: Change GatewayId to string

In preparation for config flow.
The GatewayId used to be id(gateway).

With config flows, every gateway will have its own
ConfigEntry. Every ConfigEntry has a unique id.
Thus we would have two separate but one-to-one related ID systems.

This commit removes this unneeded duplication by using the id of the ConfigEntry
as GatewayId.

* MySensors: Add unique_id to all entities

This allows entities to work well with the frontend.

* MySensors: Add device_info to all entities

Entities belonging to the same node_id will now by grouped as a device.

* MySensors: clean up device.py a bit

* MySensors: Add config flow support

With this change the MySensors can be fully configured from the GUI.

Legacy configuration.yaml configs will be migrated by reading them once.
Note that custom node names are not migrated. Users will have to re-enter
the names in the front-end.
Since there is no straight-forward way to configure global settings,
all previously global settings are now per-gateway. These settings include:
- MQTT retain
- optimistic
- persistence enable
- MySensors version

When a MySensors integration is loaded, it works as follows:
1. __init__.async_setup_entry is called
2. for every platform, async_forward_entry_setup is called
3. the platform's async_setup_entry is called
4. __init__.setup_mysensors_platform is called
5. the entity's constructor (e.g. MySensorsCover) is called
6. the created entity is stored in a dict in the hass object

* MySensors: Fix linter errors

* MySensors: Remove unused import

* MySensors: Feedback from @MartinHjelmare

* MySensors: Multi-step config flow

* MySensors: More feedback

* MySensors: Move all storage in hass object under DOMAIN

The integration now stores everything under hass.data["mysensors"]
instead of using several top level keys.

* MySensors: await shutdown of gateway instead of creating a task

* MySensors: Rename Ethernet to TCP

* MySensors: Absolute imports and cosmetic changes

* MySensors: fix gw_stop

* MySensors: Allow user to specify persistence file

* MySensors: Nicer log message

* MySensors: Add lots of unit tests

* MySensors: Fix legacy import of persistence file name

Turns out tests help to find bugs :D

* MySensors: Improve test coverage

* MySensors: Use json persistence files by default

* MySensors: Code style improvements

* MySensors: Stop adding attributes to existing objects

This commit removes the extra attributes that were being
added to the gateway objects from pymysensors.

Most attributes were easy to remove, except for the gateway id.
The MySensorsDevice class needs the gateway id as it is part of its DevId
as well as the unique_id and device_info.
Most MySensorsDevices actually end up being Entities.
Entities have access to their ConfigEntry via self.platform.config_entry.

However, the device_tracker platform does not become an Entity.
For this reason, the gateway id is not fetched from self.plaform but
given as an argument.

Additionally, MySensorsDevices expose the address of the gateway
(CONF_DEVICE). Entities can easily fetch this information via self.platform,
but the device_tracker cannot. This commit chooses to remove the gateway
address from device_tracker. While this could in theory break some automations,
the simplicity of this solution was deemed worth it.
The alternative of adding the entire ConfigEntry as an argument to MySensorsDevices
is not viable, because device_tracker is initialized by the async_setup_scanner function
that isn't supplied a ConfigEntry. It only gets discovery_info.
Adding the entire ConfigEntry doesn't seem appropriate for this edge case.

* MySensors: Fix gw_stop and the translations

* MySensors: Fix incorrect function calls

* MySensors: Fewer comments in const.py

* MySensors: Remove union from _get_gateway and remove id from try_connect

* MySensors: Deprecate nodes option in configuration.yaml

* MySensors: Use version parser from packaging

* MySensors: Remove prefix from unique_id and change some private property names

* MySensors: Change _get_gateway function signature

* MySensors: add packaging==20.8 for the version parser

* MySensors: Rename some stuff

* MySensors: use pytest.mark.parametrize

* MySensors: Clean up test cases

* MySensors: Remove unneeded parameter from devices

* Revert "MySensors: add packaging==20.8 for the version parser"

This reverts commit 6b200ee01a.

* MySensors: Use core interface for testing configuration.yaml import

* MySensors: Fix test_init

* MySensors: Rename a few variables

* MySensors: cosmetic changes

* MySensors: Update strings.json

* MySensors: Still more feedback from @MartinHjelmare

* MySensors: Remove unused strings

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

* MySensors: Fix typo and remove another unused string

* MySensors: More strings.json

* MySensors: Fix gateway ready handler

* MySensors: Add duplicate detection to config flows

* MySensors: Deal with non-existing topics and ports.

Includes unit tests for these cases.

* MySensors: Use awesomeversion instead of packaging

* Add string already_configured

* MySensors: Abort config flow when config is found to be invalid while importing

* MySensors: Copy all error messages to also be abort messages

All error strings may now also be used as an abort reason,
so the strings should be defined

* Use string references

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-05 22:13:57 +01:00
Robert Svensson 0d620eb7c3
Add unique id to UniFi config entries using the unique id of the site it is controlling (#45737)
* Add unique id to UniFi config entries using the unique id of the site it is controlling

* Fix failing test
2021-02-05 19:38:08 +01:00
Johan Nenzén 55f81a8a04
Address Plaato post merge review (#46024) 2021-02-05 18:28:06 +01:00
Robert Svensson ae2c7e4c74
Improve UniFi tests (#45871) 2021-02-05 16:31:47 +01:00
tkdrob 9a570d7c32
Use core constants for bmw_connected_drive (#46042) 2021-02-05 08:02:28 -05:00
Greg Dowling e01ca40d56
Force Vera refresh after starting subscription (#46001)
* Force vera refresh after starting subscription.

* Request refresh on device load.

* Update init test.
2021-02-05 13:20:15 +01:00
Nathan Spencer 92886cafe9
Fix zwave_js cover control for Up/Down and Open/Close (#45965)
* Fix issue with control of cover when the target value is Up/Down instead of Open/Close

* Adjust open/close/stop cover control to account for no Open/Up or Close/Down targets

* Revert back to using values of 0/99 to close/open a cover since it is supported by all covers

* Replace RELEASE_BUTTON with False and remove unused PRESS_BUTTON in zwave_js cover
2021-02-05 10:48:47 +01:00
J. Nick Koston 374aa3aee1
Fix homekit options not being prefilled (#45926)
* Fix homekit options not being prefilled

When changing homekit options, the existing ones
were not being prefilled on the form.

* hide camera screen if no cameras
2021-02-05 02:39:07 +01:00
J. Nick Koston 01e73911d6
Do not listen for dhcp packets if the filter cannot be setup (#46006) 2021-02-05 00:36:55 +01:00
DeadEnd 7b280bdbe7
Fix Local Media in Media Browser (#45987)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-02-04 17:02:56 +01:00