Compare commits

..

1328 Commits

Author SHA1 Message Date
Paulus Schoutsen
abe1f8e862 Merge pull request #71444 from home-assistant/rc 2022-05-06 12:58:44 -07:00
Paulus Schoutsen
4a7710572c Bumped version to 2022.5.2 2022-05-06 11:25:53 -07:00
Paulus Schoutsen
dc3e421b3b Stringify enums in selectors (#71441) 2022-05-06 11:25:48 -07:00
David F. Mulcahey
2fffac02a3 Update Zigpy attribute cache for switch devices that do not report state (#71417)
* fix devices that do not report state

* whoops
2022-05-06 11:25:48 -07:00
0bmay
46a36adf26 Fix Canary camera stream blocking call (#71369)
* fix: Canary stream camera, fix blocker

fixes a "detected blocking call to putrequest inside the event loop. This is causing stability issues. Please report issue for canary doing blocking calls at homeassistant/components/canary/camera.py, line 149: self._live_stream_session.live_stream_url, extra_cmd=self._ffmpeg_arguments" from log file.

* refactor: black formatting changes

tsia
2022-05-06 11:25:47 -07:00
Alessandro Di Felice
c54e236416 Upgrade glances_api to 0.3.5 (#71243) 2022-05-06 11:25:46 -07:00
Paulus Schoutsen
97c7d40d8a Merge pull request #71376 from home-assistant/rc 2022-05-05 16:05:29 -07:00
Paulus Schoutsen
4ae596fef2 Bump pychromecast to 12.1.1 (#71377) 2022-05-05 15:01:39 -07:00
Paulus Schoutsen
e2ae62ea95 Bumped version to 2022.5.1 2022-05-05 14:43:44 -07:00
Shai Ungar
9a4ce19aff Add unique ids to sensors (#71367) 2022-05-05 14:43:34 -07:00
Paulus Schoutsen
61a3873d09 Fix importing blueprints (#71365)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-05-05 14:43:33 -07:00
Paulus Schoutsen
9f8111cabe Ignore loading system entity category (#71361) 2022-05-05 14:43:32 -07:00
Maciej Bieniek
aa69e7646f Bump library version (#71349) 2022-05-05 14:43:30 -07:00
Erik Montnemery
f2a07254a4 Only lookup unknown Google Cast models once (#71348)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-05-05 14:43:30 -07:00
Pascal Vizeli
b8dccbbbf3 Bump numpy to 1.21.6 (#71325) 2022-05-05 14:43:29 -07:00
Erik Montnemery
6ccd707a65 Fix Meater (#71324) 2022-05-05 14:43:28 -07:00
Paulus Schoutsen
c7b24c45ba Fix apple tv warning (#71321) 2022-05-05 14:43:28 -07:00
Álvaro Fernández Rojas
61a6d13d79 Update aioairzone to v0.4.3 (#71312)
* Update aioairzone to v0.4.3

Fixes exception on older local API.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: switch to set_hvac_parameters function

Fixes failing airzone tests.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-05 14:43:27 -07:00
J. Nick Koston
7be5eed25c Fix lutron caseta occupancy sensors (#71309)
* Fix lutron_caseta occupancy sensors

* Fix lutron_caseta occupancy sensors

* Make as service since its a group

* merge

* Revert "merge"

This reverts commit 69d19dc0088bd1b3483cfc481ed2f72e49599cf8.

* model and type not present
2022-05-05 14:43:26 -07:00
J. Nick Koston
5a5cde690f Ensure rachio retries setup later when cloud service is broken (#71300) 2022-05-05 14:43:25 -07:00
epenet
52333bb720 Only test for EncryptedBridge in Samsung J/H models (#71291) 2022-05-05 14:43:25 -07:00
Markus Bong
0bac48864f fix reading of battery messages (#70659) 2022-05-05 14:43:24 -07:00
Franck Nijhof
4196c4e81c Merge pull request #71297 from home-assistant/rc 2022-05-04 19:11:20 +02:00
Franck Nijhof
d458ac0239 Bumped version to 2022.5.0 2022-05-04 17:48:27 +02:00
Franck Nijhof
4e431274ea Pin grpcio-status to 1.45.0 (#71293) 2022-05-04 17:46:32 +02:00
Erik Montnemery
87a8a82040 Allow scripts to turn themselves on (#71289) 2022-05-04 17:46:29 +02:00
Guido Schmitz
4e331c331f Handle empty zeroconf properties in devolo_home_network (#71288)
* Handle empty zeroconf properties in devolo_home_network

* Change approach

* Restore test data
2022-05-04 17:46:25 +02:00
Joakim Sørensen
deec879a4b Remove more info links for hassio system health (#71286) 2022-05-04 17:46:22 +02:00
Marcel van der Veldt
efa931f698 Bump aioslimproto to 2.0.1 (#71285) 2022-05-04 17:46:18 +02:00
Bram Kragten
d6e3325ea7 Update frontend to 20220504.0 (#71284) 2022-05-04 17:46:15 +02:00
Erik Montnemery
44d17a80c3 Fix meater sensor (#71283)
* Fix meater sensor

* Cleanup MeaterEntityDescription

* Apply suggestions from code review

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

* Update sensor.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-05-04 17:46:12 +02:00
Marvin Wichmann
bf17bd55fd Update xknx to 0.21.2 (#71271) 2022-05-04 17:46:09 +02:00
Paulus Schoutsen
d525aad87e Fix homekit tests in beta (#71268) 2022-05-04 17:46:05 +02:00
starkillerOG
444a56341b Bump pynetgear to 0.10.0 (#71251) 2022-05-04 17:46:02 +02:00
Sean Vig
aa0335408a Change Amcrest event monitor to non-async (#69640) 2022-05-04 17:45:57 +02:00
J. Nick Koston
0890f4e514 Fix history using pre v25 queries during v26 migration (#71294) 2022-05-04 17:44:20 +02:00
Paulus Schoutsen
461ebcc835 Bumped version to 2022.5.0b7 2022-05-03 12:21:11 -07:00
Paulus Schoutsen
269c71d2fb Bump aioslimproto to 2.0.0 (#71265) 2022-05-03 12:21:07 -07:00
Erik Montnemery
23738d5e91 Reject MQTT topics which include control- or non-characters (#71263) 2022-05-03 12:21:06 -07:00
Zack Barett
ad5c2cdf8f Bump frontend to 20220503.0 (#71262) 2022-05-03 12:21:06 -07:00
Tom Harris
a175943187 Load Insteon modem database on startup if needed (#71261) 2022-05-03 12:21:05 -07:00
James Szalay
9aed63f2d8 Updated vesync component fans list to handle alt ids for models. (#71259)
* Updated vesync component fans list to handle alt ids for models.

* Lint

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-05-03 12:21:04 -07:00
J. Nick Koston
707aa5f684 Fix oncue not logging back in when the session expires (#71258) 2022-05-03 12:21:03 -07:00
J. Nick Koston
c9eca40336 Allow hidden entities to be selected in homekit include mode (#71250) 2022-05-03 12:21:02 -07:00
starkillerOG
989fa4274b Prevent Netgear SSDP from updating host (#71240) 2022-05-03 12:21:01 -07:00
Erik Montnemery
f4f5ba93b5 Add test for failing conditions in sub scripts (#71238) 2022-05-03 12:21:00 -07:00
Franck Nijhof
d69a08bdf9 Indicate disabled steps in script trace (#71237) 2022-05-03 12:20:59 -07:00
Erik Montnemery
6301873d89 Fix script conditions (#71235) 2022-05-03 12:20:59 -07:00
Erik Montnemery
8252ba82d1 Isolate parallel subscripts (#71233) 2022-05-03 12:20:58 -07:00
Paulus Schoutsen
1f4e9effd8 Bump aioslimproto to 1.0.2 (#71231) 2022-05-03 12:20:57 -07:00
Paulus Schoutsen
1a2a061c19 Fix homepod streaming and browsing apps (#71230) 2022-05-03 12:20:56 -07:00
Erik Montnemery
19bff35437 Ensure 'this' variable is always defined for template entities (#70911) 2022-05-03 12:20:56 -07:00
Paulus Schoutsen
8ac5dd32a8 Bumped version to 2022.5.0b6 2022-05-02 15:40:51 -07:00
Paulus Schoutsen
06f939b0ac Bump frontend to 20220502.0 (#71221) 2022-05-02 15:40:22 -07:00
Paulus Schoutsen
d213cc3c8e Add media source support to Bose Soundtouch (#71209) 2022-05-02 15:40:21 -07:00
Paulus Schoutsen
6cac24887c Skip signing URL that we know requires no auth (#71208) 2022-05-02 15:40:20 -07:00
Franck Nijhof
71506bd02b Adjust version number in template default deprecation warning (#71203) 2022-05-02 15:40:20 -07:00
David F. Mulcahey
2b87e03fac Fix bad ZHA _attr definitions (#71198) 2022-05-02 15:40:19 -07:00
Erik Montnemery
4dfcc9dcf9 Allow cancelling async_at_start helper (#71196) 2022-05-02 15:40:18 -07:00
Erik Montnemery
fed4d0a38d Stop script if sub-script stops or aborts (#71195) 2022-05-02 15:40:18 -07:00
Erik Montnemery
c37fec67a1 Remove entity registry entries when script is removed (#71193) 2022-05-02 15:40:17 -07:00
Robert Svensson
35bc812397 Make sure sensor state value is not None prior to trying to used the scaled value (#71189) 2022-05-02 15:40:16 -07:00
epenet
d97bce2d9d Fix Renault diagnostics (#71186) 2022-05-02 15:40:15 -07:00
Paulus Schoutsen
c07e36283b Add media source support to AppleTV (#71185) 2022-05-02 15:40:15 -07:00
Paulus Schoutsen
b558425333 Offer visit device for Squeezelite32 devices (#71181) 2022-05-02 15:40:14 -07:00
Tom Harris
6bb3957730 Fix Insteon thermostats and reduce logging (#71179)
* Bump pyinsteon to 1.1.0

* Load modem aldb if read write mode is unkwown

* Correct reference to read_write_mode
2022-05-02 15:40:13 -07:00
Zoltán Tóth
b8e0066ec2 Fix SAJ Solar inverter RecursionError (#71157) 2022-05-02 15:40:13 -07:00
Robert Svensson
72eb963c7a Handle situation where mac might not exist in clients (#71016) 2022-05-02 15:40:12 -07:00
Erik Montnemery
494902e185 Remove entity category system in favor of hidden_by (#68550) 2022-05-02 15:40:11 -07:00
stegm
0ec29711e1 Handle missing kostal plenticore battery option (#65237)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-05-02 15:40:10 -07:00
Paulus Schoutsen
78439eebb9 Bumped version to 2022.5.0b5 2022-05-01 21:53:15 -07:00
Aaron Bach
d4780ac43c Fix issues with SimpliSafe email-based 2FA (#71180)
* FIx issues with email-based SimpliSafe 2FA

* Bump
2022-05-01 21:53:11 -07:00
Allen Porter
5c4861011b Bump gcal_sync to 0.7.1 to fix calendar API timezone handling (#71173) 2022-05-01 21:53:11 -07:00
G Johansson
c791c52d28 Fix template error in sql (#71169) 2022-05-01 21:53:10 -07:00
Matt Zimmerman
0d4947a2d3 update python-smarttub to 0.0.32 (#71164) 2022-05-01 21:53:09 -07:00
J. Nick Koston
1f912e9c98 Bump zeroconf to 0.38.5 (#71160) 2022-05-01 21:53:08 -07:00
J. Nick Koston
db53b3cbe0 Fix missing device info in lutron_caseta (#71156)
- There was a missing return due to a bad merge conflict resolution

- Fixes #71154
2022-05-01 21:53:08 -07:00
G Johansson
e7bcf839ac Bump pysensibo 1.0.14 (#71150) 2022-05-01 21:53:07 -07:00
Marvin Wichmann
79cc216327 Update xknx to 0.21.1 (#71144) 2022-05-01 21:53:06 -07:00
Kuba Wolanin
01b096bb09 Add Show logs URL to integration errors notification (#71142) 2022-05-01 21:53:06 -07:00
Robert Svensson
174717dd85 Abort UniFi Network options flow if integration is not setup (#71128) 2022-05-01 21:53:05 -07:00
Robert Svensson
4751356638 Make deCONZ SSDP discovery more strict by matching on manufacturerURL (#71124) 2022-05-01 21:53:04 -07:00
Robert Svensson
47d19b3967 Fix copy paste issue leaving one device trigger with a wrong subtype (#71121) 2022-05-01 21:53:04 -07:00
Allen Porter
c1bbcfd275 Bump gcal_sync to 0.7.0 (#71116) 2022-05-01 21:53:03 -07:00
Matthias Alphart
adc2f3d169 Update xknx to 0.21.0 (#71108) 2022-05-01 21:53:02 -07:00
Shay Levy
6a110e5a77 Add entity id to template error logging (#71107)
* Add entity id to template error logging

* Increase coverage
2022-05-01 21:53:02 -07:00
G Johansson
3ce531e2f1 Sensibo bugfix device on (#71106)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-05-01 21:53:01 -07:00
G Johansson
ce73b517b8 Bump pysensibo to 1.0.13 (#71105) 2022-05-01 21:53:00 -07:00
Franck Nijhof
4f784c42ab Fix missing device & entity references in automations (#71103) 2022-05-01 21:52:59 -07:00
Raman Gupta
c0b6d6a44e Bump zwave-js-server-python to 0.36.1 (#71096) 2022-05-01 21:52:59 -07:00
Tom Harris
4346d8cc2f Fix Insteon tests (#71092) 2022-05-01 21:52:58 -07:00
Robert Hillis
4c7c7b72b7 Clean up Steam integration (#71091)
* Clean up Steam

* uno mas

* uno mas

* uno mas
2022-05-01 21:52:57 -07:00
J. Nick Koston
26b6952c06 Reduce calls to asyncio.iscoroutine (#71090) 2022-05-01 21:52:56 -07:00
Dave T
5d37cfc61e Generic camera handle template adjacent to portnumber (#71031) 2022-05-01 21:52:56 -07:00
Michael
51aa070e19 Fix "station is open" binary sensor in Tankerkoenig (#70928) 2022-05-01 21:52:55 -07:00
Diogo Gomes
205a8fc752 update unit_of_measurement even if unit_of_measurement is known (#69699) 2022-05-01 21:52:54 -07:00
Paulus Schoutsen
1c6e5ea844 Bumped version to 2022.5.0b4 2022-04-29 16:10:40 -07:00
Zack Barett
e72b53371c Frontend bump 20220429.0 (#71085) 2022-04-29 16:10:28 -07:00
Paulus Schoutsen
2ab19464e5 Fix /config/server_control redirect (#71084) 2022-04-29 16:10:27 -07:00
David F. Mulcahey
4b86045256 Fix ZHA cover initial state (#71083) 2022-04-29 16:10:26 -07:00
Robert Svensson
05d3ca7e02 Fix linking issue when deCONZ gateway is not unlocked (#71082) 2022-04-29 16:10:25 -07:00
Tom Harris
b3e97577fd Patch Insteon Hub connectivity issues (#71081) 2022-04-29 16:10:24 -07:00
Robert Svensson
b5808a7b4a Don't rely on deCONZ gateway object in config options flow (#71079) 2022-04-29 16:10:24 -07:00
Robert Svensson
cc174022e4 Pydeconz raise ResponseError when deCONZ Rest API Plugin is not yet ready (#71078) 2022-04-29 16:10:23 -07:00
J. Nick Koston
b657a7d68b Fix unsafe websocket stop call in isy994 (#71071)
Fixes
```
2022-04-29 12:49:10 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Alexander (192.168.209.83) for isy994
Traceback (most recent call last):
  File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 474, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/Users/bdraco/home-assistant/homeassistant/components/isy994/__init__.py", line 294, in async_unload_entry
    await hass.async_add_executor_job(_stop_auto_update)
  File "/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/Users/bdraco/home-assistant/homeassistant/components/isy994/__init__.py", line 292, in _stop_auto_update
    isy.websocket.stop()
  File "/Users/bdraco/home-assistant/venv/lib/python3.9/site-packages/pyisy/events/websocket.py", line 110, in stop
    self.websocket_task.cancel()
  File "/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 753, in call_soon
    self._check_thread()
  File "/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 790, in _check_thread
    raise RuntimeError(
RuntimeError: Non-thread-safe operation invoked on an event loop other than the current one
```
2022-04-29 16:10:22 -07:00
Paulus Schoutsen
5a777966e7 Bumped version to 2022.5.0b3 2022-04-29 10:02:18 -07:00
G Johansson
65c3ffd522 Fix sql integration issues 5.0 beta (#71063)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-29 10:02:13 -07:00
David F. Mulcahey
28d864ea8d Update ZHA switch entities to leverage Zigpy cache appropriately (#71062) 2022-04-29 10:02:12 -07:00
Paulus Schoutsen
08def3c933 Fix race causing google config pre-init access (#71042) 2022-04-29 10:02:12 -07:00
J. Nick Koston
7072509bde Bump sqlalchemy to 1.4.36 (#71039) 2022-04-29 10:02:11 -07:00
J. Nick Koston
bff4c5f9d2 Fix history_stats for timezones with a positive offset from UTC (#71038) 2022-04-29 10:02:10 -07:00
Franck Nijhof
3ffdbc454e Support shorthand logical operators in script sequences (#71022) 2022-04-29 10:02:09 -07:00
J. Nick Koston
0b144be61c Prevent sqlalchemy Transparent SQL Compilation Caching from filling up during purge (#71015) 2022-04-29 10:02:08 -07:00
Paulus Schoutsen
c52ad6e63c Bumped version to 2022.5.0b2 2022-04-28 15:14:47 -07:00
Robert Svensson
0fd4778462 Bump pydeconz to v91 (#71030) 2022-04-28 15:14:27 -07:00
Zack Barett
0db553d91c Frontend Bump to 20220428.0 (#71029) 2022-04-28 15:14:26 -07:00
Paulus Schoutsen
16ce74348c Add redirect for server controls (#71027)
Co-authored-by: Zack Barett <zackbarett@hey.com>
2022-04-28 15:14:25 -07:00
jjlawren
e2b28082a3 Fix Sonos races related to grouping and startup (#71026) 2022-04-28 15:14:25 -07:00
Aaron Bach
e5797dff71 Ensure that email-based 2FA in SimpliSafe shows the progress UI (#71021) 2022-04-28 15:13:51 -07:00
David F. Mulcahey
53181b409f Remove unnecessary update_before_add from ZHA (#71010)
* Additional streamlining for ZHA entity init

* fix tests
2022-04-28 15:12:08 -07:00
Aaron Bach
dea9ff4f18 Ensure SimpliSafe re-auth only looks at SimpliSafe config entries (#71009)
* Ensure SimpliSafe re-auth only looks at SimpliSafe config entries

* Add a test

* Trigger Build

* Linting

* Comment

* Simplify test
2022-04-28 15:12:07 -07:00
Shai Ungar
43b27de011 Sabnzbd config flow improvments (#70981)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-28 15:12:07 -07:00
j-a-n
8f1df6b917 Add unique_id attribute to Alpha2Climate entity (#70964)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-04-28 15:12:06 -07:00
Paulus Schoutsen
7b69e20db7 Sync area changes to google (#70936)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-28 15:12:05 -07:00
jjlawren
250a2aa260 Use standard attribute for Sonos group members (#70924) 2022-04-28 15:12:04 -07:00
Tom Harris
af0d61fb8d Insteon Device Control Panel (#70834)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-28 15:12:03 -07:00
Franck Nijhof
6d91797366 Manually update translations for 2022.5 (#71005) 2022-04-28 08:34:40 -07:00
Paulus Schoutsen
dd739e95d0 Bumped version to 2022.5.0b1 2022-04-27 21:59:41 -07:00
Allen Porter
a1f47b2036 Set nest climate min/max temp range (#70960) 2022-04-27 21:59:30 -07:00
Allen Porter
8a33eb4418 Bump gcal_sync 0.6.3 to fix calendar path encoding bug (#70959) 2022-04-27 21:59:29 -07:00
J. Nick Koston
6a131ca7de Add dhcp hostname of older ZJ series Magic Home bulbs to discovery (#70958) 2022-04-27 21:59:28 -07:00
David F. Mulcahey
e41490f8ba Fix flaky ZHA tests (#70956) 2022-04-27 21:59:27 -07:00
J. Nick Koston
f3a18bc8f2 Adjust get_latest_short_term_statistics query to be postgresql compatible (#70953) 2022-04-27 21:59:27 -07:00
J. Nick Koston
32d7f04a65 Add discovery support for polisy to isy994 (#70940) 2022-04-27 21:59:26 -07:00
J. Nick Koston
a5ac263276 Add additional OUI for tplink light devices (#70922) 2022-04-27 21:59:25 -07:00
David F. Mulcahey
4f9ff2a252 Bump ZHA dependencies (#70900)
* Bump ZHA libs

* bump Zigpy
2022-04-27 21:59:25 -07:00
Theo Arends
5a618e7f58 Bump hatasmota to 0.4.1 (#70799)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-27 21:59:24 -07:00
Erik Montnemery
627bd0d58a Handle removed entites in collection.sync_entity_lifecycle (#70759)
* Handle removed entites in collection.sync_entity_lifecycle

* Add comment
2022-04-27 21:59:23 -07:00
Dave T
d00d82389d Remove invalid unique id from generic camera (#70568)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-27 21:59:22 -07:00
David F. Mulcahey
f963270a80 Improve ZHA startup performance (#70111)
* Remove semaphores and background mains init

* additional logging

* correct cache usage and update tests
2022-04-27 21:59:22 -07:00
Franck Nijhof
6304cbb71e Bumped version to 2022.5.0b0 2022-04-27 16:30:03 +02:00
Allen Porter
8a13c6744a Bump gcal_sync to 0.6.2 and switch to google calendar async iterator api (#70616)
* Switch to google calendar async iterator api

* Update homeassistant/components/google/calendar.py

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

* Add test coverage for paging through results

* Bump gcal_sync to 0.6.1

* Bump gcal-sync 0.6.2

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-27 07:22:15 -07:00
epenet
25d2c63827 Migrate plum_lightpad light to ColorMode (#70880) 2022-04-27 16:17:48 +02:00
epenet
0b40123fd9 Migrate qwikswitch light to color_mode (#70805) 2022-04-27 16:17:12 +02:00
uvjustin
06c80e454b Use av instead of ha-av (#70885) 2022-04-27 16:08:05 +02:00
epenet
c0d8f94487 Adjust ColorMode type hint in light (#70806)
* Adjust ColorMode type hint in light

* Adjust components
2022-04-27 16:02:23 +02:00
epenet
906c12d8aa Migrate screenlogic light to ColorMode (#70902) 2022-04-27 15:42:35 +02:00
epenet
f7e05c5e1c Migrate ring light to ColorMode (#70903) 2022-04-27 15:42:01 +02:00
epenet
ea104feab7 Migrate scsgate light to ColorMode (#70904) 2022-04-27 15:41:19 +02:00
epenet
abd60832fe Migrate sleepiq light to ColorMode (#70905) 2022-04-27 15:40:35 +02:00
Erik Montnemery
c530bc823b Support buffering in media_player device conditions (#70863)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-27 15:40:07 +02:00
epenet
9daf3d8e72 Migrate xbee light to ColorMode (#70907) 2022-04-27 15:39:58 +02:00
epenet
db296a6d1e Migrate wilight light to ColorMode (#70906) 2022-04-27 15:39:40 +02:00
uvjustin
9281f46bcd Skip invalid segments in stream recorder (#70896)
* Skip segment if duration is None

* Copy segments deque before passing to thread
2022-04-27 15:36:09 +02:00
epenet
485ae70308 Migrate skybell light to ColorMode (#70878)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-27 15:02:44 +02:00
Marc Mueller
e935e1b5b4 Update bmw_connected_drive coordinator typing (#70872) 2022-04-27 14:44:50 +02:00
Marc Mueller
ee356aa851 Improve fibaro _init_controller typing (#70883) 2022-04-27 14:29:29 +02:00
Marc Mueller
2691441700 Fix co2signal get_data typing (#70881) 2022-04-27 14:28:20 +02:00
epenet
d362e5b6b7 Migrate xiaomi_aqara light to ColorMode (#70879) 2022-04-27 14:26:26 +02:00
Marc Mueller
613d49fa19 Improve mysensors config_flow typing (#70884) 2022-04-27 14:23:43 +02:00
epenet
b4cea96c21 Migrate philips_js light to ColorMode (#70877) 2022-04-27 14:23:31 +02:00
Álvaro Fernández Rojas
d999c110a5 Remove unneeded attributes from Airzone Binary Sensors (#70873) 2022-04-27 14:22:49 +02:00
Marcel van der Veldt
aeb88a8f6a Change title of squeezebox integration (#70876) 2022-04-27 14:22:26 +02:00
epenet
f77bcd252e Migrate opple light to ColorMode (#70875) 2022-04-27 14:16:51 +02:00
Erik Montnemery
13cc7583ed Support buffering in media_player reproduce state (#70859) 2022-04-27 11:48:00 +02:00
Erik Montnemery
e982e315ee Support buffering in media_player device triggers (#70864) 2022-04-27 11:47:04 +02:00
Marco Trevisan
71529f4476 hassio: Add support for creating (un)compressed archives (#70819)
* hassio: Add support for creating (un)compressed archives

This is supported by hassio since version 2022.02.0, but not exposed by the
core component.

See: https://github.com/home-assistant/supervisor/pull/3378

* Update homeassistant/components/hassio/services.yaml

* Update homeassistant/components/hassio/__init__.py

Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>

* Apply suggestions from code review

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2022-04-27 11:41:16 +02:00
J. Nick Koston
df8981f7c4 Ensure lookin retries setup when device is unreachable (#70865) 2022-04-27 11:15:03 +02:00
Franck Nijhof
5345d14d01 Add translation string for buffering media player state (#70856) 2022-04-27 11:05:11 +02:00
Tomasz
ce13161ea0 Fix strings.json in tautulli (#70860) 2022-04-27 10:48:20 +02:00
Álvaro Fernández Rojas
f107cd8470 Add missing default QNAP QSW sensor icons (#70862) 2022-04-27 10:47:57 +02:00
Aaron Bach
031149dfdd Re-work SimpliSafe authentication to only need username/password (#70160) 2022-04-27 10:16:28 +02:00
epenet
b9ce236054 Migrate wilight light to ColorMode (#70855) 2022-04-27 10:02:54 +02:00
epenet
ad348d3273 Use shorthand attributes in ecovacs vacuum (#70845) 2022-04-27 09:59:14 +02:00
epenet
052c3fcb6a Use shorthand attributes in xiaomi_miio vacuum (#70848) 2022-04-27 09:57:18 +02:00
epenet
e6b8843423 Use shorthand attributes in litterrobot vacuum (#70842) 2022-04-27 09:53:25 +02:00
epenet
492e183b7c Migrate zerproc light to ColorMode (#70851) 2022-04-27 09:52:41 +02:00
epenet
ea4979c511 Migrate tikteck light to ColorMode (#70853) 2022-04-27 09:52:22 +02:00
Erik Montnemery
66551e6fcb Add state buffering to media_player and use it in cast (#70802) 2022-04-27 09:49:50 +02:00
epenet
4a46fd9559 Migrate yeelightsunflower light to ColorMode (#70852) 2022-04-27 09:49:20 +02:00
epenet
4e6043e05e Migrate lightwave light to ColorMode (#70849) 2022-04-27 09:24:45 +02:00
epenet
0425f8bc4e Use shorthand attributes in sharkiq vacuum (#70844) 2022-04-27 09:16:05 +02:00
Reuben Bijl
3901b5c8e8 Add zwave_js MultilevelSwitch Notification (#70470)
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
2022-04-27 09:12:23 +02:00
epenet
21badfc40f Use shorthand attributes in template vacuum (#70847) 2022-04-27 09:00:00 +02:00
ollo69
21f9b19fad Review AndroidTV tests (#69048) 2022-04-26 23:26:22 -07:00
Marcel van der Veldt
25779a49a4 Add slimproto integration (Squeezebox players) (#70444)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-26 23:24:17 -07:00
Franck Nijhof
5c1be2f99d Add unique ID to energy sensors (#70378) 2022-04-26 23:14:16 -07:00
Shai Ungar
3f5027834b Sabnzbd config flow (#68138)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-26 23:09:10 -07:00
Robert Hillis
b1a6521abd Add config flow to steam_online integration (#67261)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-26 23:07:21 -07:00
Paulus Schoutsen
5f63944142 Bump frontend to 20220427.0 (#70841) 2022-04-26 22:45:39 -07:00
Jason Hunter
29a2df3dfc Restore ONVIF sensors (#70393)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-26 22:42:53 -07:00
G Johansson
6adcf500b3 Add trafikverket_ferry integration (#70443) 2022-04-26 19:40:53 -10:00
Allen Porter
5e49457c65 Add camera/stream platform diagnostics, exercised with nest (#69780) 2022-04-26 22:33:04 -07:00
Kevin Fronczak
4317daaf08 Fix uncaught Blink exceptions (#69770) 2022-04-26 19:22:03 -10:00
Jeef
4a6ea5afd8 Address late IntelliFire review (#70461)
* Addressing MartinHjelmare comments in closed PR

* updated tests accordingly

* Update tests/components/intellifire/test_config_flow.py

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

* Update tests/components/intellifire/test_config_flow.py

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

* updated error message

* addressing late review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-27 07:07:30 +02:00
Paulus Schoutsen
56000c0378 Clean up when TTS base URL is applied (#70835) 2022-04-27 02:18:29 +02:00
rappenze
c4e85b78ba Use current HA logic in fibaro binary sensor (#70816) 2022-04-27 02:12:59 +02:00
G Johansson
84f38578e9 Add button for yale_smart_alarm (#70813) 2022-04-27 02:10:21 +02:00
Can Geliş
fbbfdeae39 Add integration for Tuya wake up light ii (#68845) 2022-04-27 01:50:46 +02:00
starkillerOG
d418df5f75 Tuya correct scaling (#69348) 2022-04-27 01:49:11 +02:00
Robert Hillis
09a7116efc Add config flow to tautulli integration (#57450) 2022-04-27 01:37:13 +02:00
Álvaro Fernández Rojas
8a2b20faf0 Add new QNAP QSW integration (#70151)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-26 13:10:23 -10:00
Robert Svensson
bd8e705252 Streamline setup of deCONZ light platform (#70822) 2022-04-26 16:06:01 -07:00
J. Nick Koston
195811843b Remove get_state and get_states history api calls (#70830) 2022-04-26 16:05:43 -07:00
Marc Mueller
348089efcf Remove deprecated yaml schema [fritzbox_callmonitor] (#70829) 2022-04-27 00:32:18 +02:00
Aaron Bach
1113503106 Bump pyiqvia to 2022.04.0 (#70826) 2022-04-27 00:31:24 +02:00
Aaron Bach
0da228d210 Bump pyopenuv to 2022.04.0 (#70825) 2022-04-27 00:28:57 +02:00
avee87
53135267f4 Add configuration url for Tado (#70715) 2022-04-27 00:16:39 +02:00
Thomas Dietrich
9fdec407e0 Provide statistics device_class based on source entity and characteristic (#69710) 2022-04-26 12:12:47 -10:00
hesselonline
c973e5d0d2 Add Switch platform to Wallbox (#70584)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-04-26 23:27:43 +02:00
Paulus Schoutsen
9303e35a7d tts.say to use media source URLs (#70382) 2022-04-26 13:49:32 -07:00
Robert Svensson
e387e6d332 Add logging to UniFi device tracker for help debugging client status (#70824)
* Add logging to UniFi device tracker for help debugging client status

* Add if _LOGGER.isEnabledFor(logging.DEBUG)
2022-04-26 13:49:03 -07:00
Erik Montnemery
f96c1136b0 Bump pytest-socket to 0.5.1 (#69624)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-26 10:42:37 -10:00
Erik Montnemery
c7c011d772 Add load_media_failed callback to cast MediaStatusListener (#70048) 2022-04-26 13:37:17 -07:00
Erik Montnemery
ce302f4540 Play first item in m3u and pls playlists when casting (#70047)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-26 13:16:37 -07:00
Marc Mueller
0959ee4353 Pin backoff <2.0 (#70817) 2022-04-26 22:12:48 +02:00
J. Nick Koston
6ce768465f Improve purge performance for non-sqlite databases (#70576) 2022-04-26 13:11:57 -07:00
J. Nick Koston
1c4a785fb3 Prevent autoflush from happening during attrs lookup (#70768) 2022-04-26 13:04:58 -07:00
J. Nick Koston
f073f17040 Refactor tracking of the recorder run history (#70456)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-26 09:59:43 -10:00
Marc Mueller
130e7fe128 Add myself as codeowner [fritzbox_callmonitor] (#70820) 2022-04-26 21:51:16 +02:00
Avi Miller
f593b387a4 Refactor LIFX discovery to make it faster and more reliable (#70458)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-26 08:58:01 -10:00
Marc Mueller
c15c22655b Enable strict typing [fritzbox_callmonitor] (#70815) 2022-04-26 20:39:42 +02:00
Marc Mueller
997fb7a11c Add fritzbox_callmonitor type hints (2) (#70293) 2022-04-26 20:26:42 +02:00
rappenze
e894ffecd8 Use platform enum consistently in fibaro integration (#69035) 2022-04-26 20:08:41 +02:00
J. Nick Koston
853b57e7cf Suppress mypy checks for incorrect typing in overkiz (#70811) 2022-04-26 20:04:32 +02:00
Marc Mueller
3d70031d02 Add fritzbox_callmonitor type hints (3) (#70780) 2022-04-26 19:49:29 +02:00
Paulus Schoutsen
4a53121b58 Test that mobile app requires empty object for encrypted webhooks without data (#70718) 2022-04-26 19:30:08 +02:00
Tobias Perschon
f2bd4131eb Add missing state_class and device_cass attributes to daikin sensors (#70317) 2022-04-26 19:27:39 +02:00
J. Nick Koston
1c3203abda Use device class duration for history_stats sensors (#70720) 2022-04-26 19:24:28 +02:00
Marc Mueller
a5fa40180c Fix unifiprotect TypeVar inheritance (#70782) 2022-04-26 19:15:47 +02:00
epenet
abdf5bb86a Use light enums in tasmota (#70788) 2022-04-26 19:04:12 +02:00
epenet
bd87ae79ae Adjust climate constants in coolmaster config flow (#70764) 2022-04-26 18:57:45 +02:00
jjlawren
403992dfa5 Fix resume and offset params for Plex play_media (#70809) 2022-04-26 19:53:27 +03:00
rappenze
6d90eb6f34 Fix run scene for fibaro home center 3 (#70709) 2022-04-26 18:52:12 +02:00
duncanvanzyl
2ea2e2e65b Hourly forecast time is string (#70390) 2022-04-26 18:45:33 +02:00
micha91
3460abba54 Add Yamaha MusicCast Switch Entities (#66925) 2022-04-26 18:41:12 +02:00
J. Nick Koston
755b5aa2e8 Fix powerwall data drop outs (#70383) 2022-04-26 18:38:01 +02:00
epenet
173a11893a Add short-hand attributes to vacuum (#69417) 2022-04-26 18:30:20 +02:00
Erik Montnemery
90ef6e209c Add meater cook sensors (#70669) 2022-04-26 18:27:06 +02:00
Gleb Sinyavskiy
cf5f0a415c Add tractive client_id, update aiotractive (#70807)
* Add client_id to Tractive

* Update aiotractive
2022-04-26 19:21:27 +03:00
Maciej Bieniek
5d1e6c5905 Bump lib version (#70803) 2022-04-26 19:12:54 +03:00
Erik Montnemery
3016b5fbfc Use recorder fixtures and helpers in tests (#70773) 2022-04-26 06:08:00 -10:00
Raman Gupta
24b090a038 Create zwave_js.invoke_cc_api service (#70466) 2022-04-26 11:30:49 -04:00
Franck Nijhof
f84c33203b Fix update entity not sticking with skipped version (#70779) 2022-04-26 07:50:32 -07:00
J. Nick Koston
89e3a48751 Use database executor in migration test (#70774) 2022-04-26 07:42:28 -07:00
Marc Mueller
97af164858 Prepare for upcoming mypy update (#70800) 2022-04-26 07:41:52 -07:00
epenet
7d2363ad22 Use light enums in tests (#70801) 2022-04-26 16:32:00 +02:00
Franck Nijhof
cad2ba4d44 Detect duplicate script objects in config validation (#70368) 2022-04-26 15:33:43 +02:00
epenet
9a7f6393aa Use light enums in smarttub (#70789) 2022-04-26 14:59:24 +02:00
epenet
5d8b35face Use light enums in yeelight (#70797) 2022-04-26 14:55:44 +02:00
epenet
d58430bc93 Use light enums in tplink (#70787) 2022-04-26 14:54:17 +02:00
Franck Nijhof
6f88722454 Merge branch 'master' into dev 2022-04-26 14:42:22 +02:00
Joakim Sørensen
4c38d25e49 Remove manage URL for hassio system health info (#70776) 2022-04-26 14:39:56 +02:00
epenet
bac69d9e75 Use light enums in velbus (#70784) 2022-04-26 15:33:12 +03:00
epenet
7ab0dc5177 Use light enums in wiz (#70785) 2022-04-26 15:33:02 +03:00
epenet
56e0b8dbb5 Use light enums in upb (#70786) 2022-04-26 15:32:54 +03:00
epenet
fe0120b65a Use light enums in zwave_js (#70791) 2022-04-26 15:31:25 +03:00
epenet
01dffc3447 Use light enums in mystrom (#70792) 2022-04-26 15:31:05 +03:00
epenet
679ea69f72 Use light enums in litejet (#70794) 2022-04-26 15:30:51 +03:00
epenet
01efbdb104 Use light enums in nanoleaf (#70795) 2022-04-26 15:30:42 +03:00
epenet
67b411d2b2 Use light enums in lcn (#70796) 2022-04-26 15:30:34 +03:00
epenet
5af496682b Use light enums in shelly (#70790) 2022-04-26 15:29:56 +03:00
Franck Nijhof
13fc6ee426 Remove METISU from Tuya codeowners (#70783) 2022-04-26 15:29:30 +03:00
epenet
7c5c0f7558 Use light enums in lw12wifi (#70793) 2022-04-26 15:27:10 +03:00
epenet
24b4690e5d Use climate enums in zwave_js (#70757) 2022-04-26 12:23:48 +02:00
Robert Svensson
fe3fb230be Streamline setup of deCONZ group platform (#70712) 2022-04-26 11:44:47 +02:00
epenet
bdba3e193e Use climate enums in prometheus (#70772) 2022-04-26 11:43:45 +02:00
Robert Svensson
f7d9797c62 Streamline setup of deCONZ scene platform (#70700) 2022-04-26 11:42:56 +02:00
epenet
9dfc2636a9 Use climate enums in homekit (#70770) 2022-04-26 11:27:38 +02:00
epenet
c44b7cc4c0 Use HVACAction in zha sensors (#70769) 2022-04-26 11:26:59 +02:00
epenet
09350d350d Drop single-use constants in venstar (#70765) 2022-04-26 11:25:26 +02:00
epenet
3440be803c Use climate enums in daikin (#70766) 2022-04-26 10:53:54 +02:00
epenet
cf8f2132a2 Use climate enums in iaqualink (#70671) 2022-04-26 10:53:02 +02:00
Álvaro Fernández Rojas
add7103d55 Use Airzone WebServer MAC address as unique ID (#70287)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-25 22:52:55 -10:00
Álvaro Fernández Rojas
7d51da1b39 Update aioairzone to v0.4.2 (#70697)
* Upsate aioairzone to v0.4.1

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Trigger Github checks

* Update aioairzone to v0.4.2

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-04-26 10:50:46 +02:00
epenet
7dbed17602 Use climate enums in intesishome (#70675) 2022-04-26 10:28:29 +02:00
epenet
f678b584e8 Use climate enums in proliphix (#70730) 2022-04-26 10:12:43 +02:00
epenet
0a3f88d14c Use climate enums in opentherm_gw (#70728) 2022-04-26 10:12:03 +02:00
epenet
8745401af5 Use climate enums in zha (#70754) 2022-04-26 10:09:13 +02:00
epenet
ca01183375 Use climate enums in adax (#70620) 2022-04-26 10:00:06 +02:00
epenet
9f428f268c Use climate enums in atag (#70623) 2022-04-26 09:59:31 +02:00
epenet
59b7318db4 Use climate enums in airtouch4 (#70622) 2022-04-26 09:59:02 +02:00
epenet
c3353e4726 Use climate enums in esphome (#70638) 2022-04-26 09:58:30 +02:00
epenet
035635dbaf Use climate enums in heatmiser (#70662) 2022-04-26 09:57:20 +02:00
epenet
cb6320536f Use climate enums in hisense_aehw4a1 (#70666) 2022-04-26 09:56:45 +02:00
epenet
9132262fa7 Use climate enums in hive (#70664) 2022-04-26 09:56:11 +02:00
epenet
c104383ab9 Use climate enums in zhong_hong (#70755) 2022-04-25 21:49:50 -10:00
epenet
4827fe5280 Use climate enums in homematicip_cloud (#70668) 2022-04-26 09:41:02 +02:00
Marc Mueller
eeecdf213d Use StrEnum [fritzbox_callmonitor] (#70289) 2022-04-26 09:40:08 +02:00
epenet
196c60bdca Use climate enums in incomfort (#70672) 2022-04-26 09:38:15 +02:00
epenet
f2b7390ee7 Use climate enums in lcn (#70679) 2022-04-26 09:37:13 +02:00
epenet
f85e225227 Use climate enums in spider (#70740) 2022-04-26 10:36:54 +03:00
epenet
f2d5433339 Use climate enums in lyric (#70682) 2022-04-26 09:36:32 +02:00
epenet
3c097d5672 Use climate enums in maxcube (#70688) 2022-04-26 09:35:49 +02:00
epenet
0e6b543375 Use climate enums in melcloud (#70689) 2022-04-26 09:34:39 +02:00
rappenze
c5abf54f10 Color mode support for fibaro light (#69189)
* color_mode support for fibaro light

* color_mode support for fibaro light

* color_mode support for fibaro light

* Improve based on code review

* Updated to use the ColorMode enum
2022-04-26 09:34:22 +02:00
epenet
68832178b7 Use climate enums in moehlenhoff_alpha2 (#70694) 2022-04-26 09:32:46 +02:00
epenet
d2c31de4ba Use climate enums in zwave_me (#70756) 2022-04-25 21:30:54 -10:00
epenet
a7bb74e151 Use climate enums in melissa (#70690) 2022-04-26 09:30:46 +02:00
epenet
661152527d Use climate enums in mill (#70691) 2022-04-26 09:29:44 +02:00
epenet
fbfce51536 Use climate enums in izone (#70674) 2022-04-26 09:28:58 +02:00
epenet
475296fb36 Use climate enums in vicare (#70751) 2022-04-25 21:28:19 -10:00
epenet
2dbd2575d8 Use climate enums in whirlpool (#70752) 2022-04-25 21:27:28 -10:00
epenet
30b25a4d3d Use climate enums in xs1 (#70753) 2022-04-25 21:26:29 -10:00
epenet
10905f6074 Use climate enums in vera (#70750) 2022-04-25 21:25:24 -10:00
epenet
ae5ec1a320 Use climate enums in overkiz (#70731) 2022-04-25 21:24:11 -10:00
epenet
c4eeeb9674 Use climate enums in honeywell (#70667) 2022-04-25 21:23:08 -10:00
epenet
65af9cb1a0 Use climate enums in airzone (#70624) 2022-04-25 21:21:44 -10:00
epenet
1bc9744be3 Use climate enums in advantage_air (#70621) 2022-04-25 21:21:17 -10:00
epenet
7fb0691a8b Use climate enums in balboa (#70626) 2022-04-25 21:19:52 -10:00
epenet
df2a4223da Use climate enums in oem (#70727) 2022-04-26 09:19:38 +02:00
epenet
76dd82f8e5 Use climate enums in nest (#70723) 2022-04-26 09:19:02 +02:00
epenet
7cbe56dcdf Use climate enums in insteon (#70673) 2022-04-25 21:18:44 -10:00
epenet
073833fcec Use climate enums in netatmo (#70724) 2022-04-26 09:18:09 +02:00
epenet
09393d6f64 Use climate enums in modbus (#70693) 2022-04-25 21:18:00 -10:00
epenet
20f7e2f4d2 Use climate enums in venstar (#70749) 2022-04-25 21:17:19 -10:00
epenet
9009b1ef7d Use climate enums in schluter (#70733) 2022-04-26 09:16:07 +02:00
epenet
b69b3be4b0 Use climate enums in senz (#70735) 2022-04-26 09:15:26 +02:00
epenet
a3938deb24 Use climate enums in shelly (#70736) 2022-04-26 09:14:31 +02:00
epenet
98d757b2b2 Use climate enums in smartthings (#70737) 2022-04-26 09:12:54 +02:00
epenet
c534d0a90e Use climate enums in nuheat (#70726) 2022-04-25 21:11:23 -10:00
epenet
c44391f368 Use climate enums in smarttub (#70738) 2022-04-26 09:10:48 +02:00
epenet
347d769ea5 Use climate enums in screenlogic (#70732) 2022-04-25 21:07:27 -10:00
epenet
7fb8bb7769 Use climate enums in nexia (#70725) 2022-04-25 21:06:33 -10:00
epenet
dbf567d664 Use climate enums in velbus (#70748) 2022-04-26 09:05:38 +02:00
epenet
fcecc38294 Use climate enums in radiotherm (#70758) 2022-04-26 09:05:15 +02:00
epenet
896b616687 Use climate enums in plugwise (#70729) 2022-04-26 09:03:23 +02:00
epenet
ab1dd7887e Use climate enums in tfiac (#70746) 2022-04-26 09:01:54 +02:00
epenet
ba7cff505e Use climate enums in sensibo (#70734) 2022-04-25 21:01:32 -10:00
epenet
24b7d1f47b Use climate enums in tolo (#70743) 2022-04-26 08:47:17 +02:00
epenet
b9379b5a88 Use climate enums in toon (#70744) 2022-04-26 08:46:39 +02:00
epenet
9342a1b577 Use climate enums in somfy (#70739) 2022-04-26 08:44:13 +02:00
epenet
e688f6b315 Use climate enums in tuya (#70747) 2022-04-26 08:39:41 +02:00
epenet
7e85510912 Use climate enums in touchline (#70745) 2022-04-26 08:37:53 +02:00
epenet
8429b23d65 Use climate enums in stiebel_eltron (#70741) 2022-04-26 08:36:56 +02:00
epenet
f68eda97bc Use climate enums in tado (#70742) 2022-04-26 08:35:49 +02:00
epenet
6df53d7c1f Use climate enums in lookin (#70681) 2022-04-25 18:29:36 -10:00
epenet
d288c569fa Use climate enums in isy994 (#70678) 2022-04-25 18:28:56 -10:00
epenet
62c8687a86 Use climate enums in homekit_controller (#70663) 2022-04-25 18:27:58 -10:00
epenet
e235926037 Use climate enums in elkm1 (#70635) 2022-04-25 18:27:17 -10:00
Álvaro Fernández Rojas
8d71595f31 Improve and fix Airzone config flow (#70474) 2022-04-25 18:25:11 -10:00
epenet
7894326270 Deprecate COLOR_MODE_* light constants (#69302) 2022-04-25 16:21:19 -10:00
epenet
34da029d48 Deprecate SUPPORT_* constants in vacuum (#69516) 2022-04-25 16:20:13 -10:00
starkillerOG
c6267d54ea Motion Blinds add DualShade support (#70019) 2022-04-25 16:19:34 -10:00
jjlawren
5bcc83f6f2 Remove "sonos" prefix for Sonos switch entity_ids (#70698) 2022-04-25 16:01:54 -10:00
Zack Barett
083e40a00d Frontend Bump to 20220425.0 (#70719) 2022-04-25 17:03:41 -07:00
J. Nick Koston
1d2c949c51 Convert history_stats to use a coordinator (#70388)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-25 15:20:06 -07:00
Marc Mueller
c1d2017988 Improve typing for core add_job and run_job methods (#70702) 2022-04-25 23:50:01 +02:00
Jason Hunter
0d9191c344 Add new ONVIF sensors (#70394)
* add digital input and relay sensors / clean up default sensor names

* add relay

* fix copy/paste errors
2022-04-25 17:49:00 -04:00
epenet
7f11df4c79 Use climate enums in lightwave (#70680) 2022-04-25 23:16:14 +03:00
epenet
93e2d5c29a Use climate enums in bsblan (#70627)
* Use climate enums in bsblan

* Adjust type hint

* Update climate.py
2022-04-25 22:45:46 +03:00
J. Nick Koston
96d64bd6b7 Avoid selecting last_updated from the db when filtering on last_updated==last_changed (#70459) 2022-04-25 08:46:37 -10:00
Paulus Schoutsen
87dceaf238 Hue config flow to guard ipv6 (#70703)
* Hue config flow to guard ipv6

* Use helper
2022-04-25 10:52:57 -07:00
Paulus Schoutsen
5317bf02e6 Fix hidden default (#70699) 2022-04-25 10:10:42 -07:00
J. Nick Koston
791138eb8b Add duration device class to sensor platform (#70543) 2022-04-25 09:56:42 -07:00
J. Nick Koston
5224cf5968 Update async_upnp_client to 0.29.0 (#70604) 2022-04-25 09:53:35 -07:00
Erik Montnemery
f6d9c75476 Remove metadata from device conditions and triggers (#70695) 2022-04-25 09:48:24 -07:00
epenet
57ae1f930f Use climate enums in mysensors (#70692) 2022-04-25 18:28:48 +02:00
Tom Harris
6363c67398 Insteon HUB DHCP discovery (#70685)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-25 09:01:56 -07:00
Erik Montnemery
28ba572d9d Only apply color from light profile if no color specified (#70640) 2022-04-25 07:56:07 -07:00
Marc Mueller
9b9b553521 Disable no-self-use [pylint] (#70641)
* Disable no-self-use

* Remove disable comments
2022-04-25 07:41:01 -07:00
epenet
9dcbc8469e Use climate enums in deconz (#70630)
* Use climate enums in deconz

* Adjust tests

* Adjust type hint

* Update climate.py

* Update climate.py

* Update climate.py

* Don't edit files in Github!
2022-04-25 16:18:44 +02:00
epenet
b2b99417c9 Use climate enums in homematic (#70665) 2022-04-25 16:17:41 +02:00
David F. Mulcahey
ea9c8b15de Coerce int in Flo set sleep mode service (#70592)
* Coerce int in Flo set sleep mode service

* add test to ensure exception thrown for bad value
2022-04-25 09:18:09 -04:00
epenet
069dd567f7 Use climate enums in knx (#70676) 2022-04-25 14:57:31 +02:00
Erik Montnemery
23d9e135bc Allow 'turning on' cast groups (#70642)
* Allow 'turning on' cast groups

* Adjust test
2022-04-25 14:41:24 +02:00
Marc Mueller
c467f318ed Add fritzbox_callmonitor type hints (1) (#70292) 2022-04-25 14:28:17 +02:00
Erik Montnemery
d045e8678d Use recorder test fixtures in tests (#70652) 2022-04-25 14:23:52 +02:00
Martin Hjelmare
09b4b7eb37 Remove hass.helpers from config_entries (#70660) 2022-04-25 14:21:03 +02:00
epenet
0cdfd386a7 Use climate enums in evohome (#70639) 2022-04-25 13:34:59 +02:00
epenet
d52234a57a Use climate enums in fritzbox (#70650)
* Use climate enums in fritzbox

* Adjust tests

* Update homeassistant/components/fritzbox/climate.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-25 13:33:51 +02:00
epenet
0fd2a7dc83 Use climate enums in freedompro (#70651)
* Use climate enums in freedompro

* Adjust tests

* Adjust type hints
2022-04-25 13:33:19 +02:00
epenet
2efc25c7ca Use climate enums in ephember (#70637) 2022-04-25 13:21:12 +02:00
epenet
a5f5cfb156 Use climate enums in eq3btsmart (#70636) 2022-04-25 13:20:37 +02:00
epenet
04b9c93006 Use climate enums in econet (#70633) 2022-04-25 13:20:18 +02:00
epenet
7b1d5fb10a Use climate enums in ecobee (#70632) 2022-04-25 13:19:54 +02:00
epenet
2267e32114 Use climate enums in devolo_home_control (#70631) 2022-04-25 13:19:02 +02:00
epenet
4de2730844 Use climate enums in coolmaster (#70629) 2022-04-25 13:18:34 +02:00
epenet
e51ed7a11b Use climate enums in blebox (#70628)
* Use climate enums in blebox

* Adjust tests
2022-04-25 13:17:46 +02:00
epenet
a75daab33f Adjust set_hvac_mode type hint in ClimateEntity (#70658)
* Adjust set_hvac_mode type hint in ClimateEntity

* Remove override
2022-04-25 13:16:02 +02:00
epenet
d22a679262 Adjust hvac_modes type hint in ClimateEntity (#70657)
* Adjust hvac_modes type hint in ClimateEntity

* Adjust tuya
2022-04-25 13:15:08 +02:00
Erik Montnemery
28ebab9c5a Simplify waiting for recorder in tests (#70647) 2022-04-25 12:04:47 +02:00
epenet
a8a7359c6f Use VacuumEntityFeature in mqtt (#70570)
* Use VacuumEntityFeature in mqtt

* Fix tests
2022-04-25 11:34:06 +02:00
epenet
6988b0725d Use climate enums in ambiclimate (#70625) 2022-04-25 11:25:29 +02:00
Martin Hjelmare
54fed9ee7b Fix zwave_js diagnostics zwave value endpoint lookup (#70646) 2022-04-25 11:01:07 +02:00
Poltorak Serguei
5b9e3a5e7b Add Z-Wave.Me SensorMultilevels types (#68585)
* Added SensorMultilevels types

* Fixed sort and spaces

* co, co2

* PF -> PERCENTAGE

* POWER_FACTOR to PERCENTAGE

* Fix import sorting

* Whitespaces for flake8

* Whitespaces

* Whitespaces

* Fixed entity_description type

Co-authored-by: aivs <aivs@yandex.ru>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-25 11:00:33 +02:00
epenet
1af7c26741 Use climate enums in fibaro (#70649) 2022-04-25 10:59:22 +02:00
epenet
23c5bd9779 Use climate enums in gree (#70655)
* Use climate enums in gree

* Adjust tests
2022-04-25 10:58:39 +02:00
epenet
b81f8e75ee Use climate enums in generic_thermostat (#70656)
* Use climate enums in generic_thermostat

* Adjust tests
2022-04-25 10:58:05 +02:00
epenet
8db4994345 Use climate enums in flexit (#70654) 2022-04-25 10:47:12 +02:00
epenet
587505c85b Use climate enums in geniushub (#70653) 2022-04-25 10:46:52 +02:00
Marc Mueller
2676f4df7a Fix fritzbox_callmonitor event listener (#70291)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-25 10:24:37 +02:00
code-review-doctor
304426edb1 Fix issue probably-meant-fstring found at https://codereview.doctor (#70574)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-25 09:58:17 +02:00
Robert Svensson
8eae572c93 Mark type "On/Off Switch" as a deCONZ switch entity (#70598)
Convert entity types of light platform to switch platform
2022-04-25 08:25:38 +02:00
J. Nick Koston
9f11063724 Fix state_changes_during_period bakery caching for limit and descending (#70610) 2022-04-24 21:47:21 -07:00
Glenn Waters
e79fa03c85 ElkM1 integration, bump lib (#70615) 2022-04-24 18:15:55 -10:00
Avi Miller
4ad26af2ea Update the LIFX manifest with full list of models (#70614) 2022-04-24 16:25:09 -10:00
J. Nick Koston
929dafc3ad Bump kasa to 0.5.0 (#70607) 2022-04-24 14:01:22 -10:00
Paulus Schoutsen
56362e5d80 Bump frontend to 20220424.0 (#70608) 2022-04-24 15:59:52 -07:00
Paulus Schoutsen
536d58968f Merge pull request #70605 from home-assistant/rc 2022-04-24 15:59:14 -07:00
David F. Mulcahey
31eae0980b Add state class to Flo sensor entities (#70591) 2022-04-24 12:48:49 -10:00
Paulus Schoutsen
f3d12635cc Bumped version to 2022.4.7 2022-04-24 14:47:52 -07:00
Johann Vanackere
9925a19a75 Daikin AC : Round to nearest half degree (#70446) (#70452) 2022-04-24 14:47:47 -07:00
J. Nick Koston
6f6b16b410 Fix history not including start time state (#70447) 2022-04-24 14:47:46 -07:00
J. Nick Koston
c7ff4baa6b Ensure rainmachine creates config entry titles as strings (#70417) 2022-04-24 14:47:46 -07:00
J. Nick Koston
e389beb1d1 Bump aiodiscover to 1.4.11 (#70413)
Fixes #70402

Changelog: https://github.com/bdraco/aiodiscover/compare/v1.4.10...v1.4.11
2022-04-24 14:47:45 -07:00
Johan Nenzén
cad90a086d Bump pyplaato to 0.0.18 (#70391) 2022-04-24 14:47:44 -07:00
Raman Gupta
d54558530c Bump zwave-js-server-python to 0.35.3 (#70357) 2022-04-24 14:47:43 -07:00
J. Nick Koston
0d42bda316 Bump aiodiscover to 1.4.10 (#70348) 2022-04-24 14:47:43 -07:00
Marvin Wichmann
1dfd76085e Update xknx to version 0.20.4 (#70342) 2022-04-24 14:47:42 -07:00
Dmitry Katsubo
cbdef59651 Fixed syntax error in ALTER TABLE statement (#70304) (#70336) 2022-04-24 14:47:41 -07:00
Johann Vanackere
e2bbdb26be Daikin AC : Round to nearest half degree (#70446) (#70452) 2022-04-24 14:47:09 -07:00
J. Nick Koston
022deb20fd Fix history not including start time state (#70447) 2022-04-24 14:34:00 -07:00
Robert Svensson
b15387ffb9 Remove migration of entities from deCONZ switch to siren platform (#70600) 2022-04-24 23:32:13 +02:00
Robert Svensson
0726bc2cab Streamline setup of deCONZ button platform (#70593)
* Streamline setup of deCONZ button platform

* Update homeassistant/components/deconz/button.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-24 22:58:36 +02:00
Allen Porter
bab9f4ba76 Fix nest error handling and bug in tests for media fetches (#70596) 2022-04-24 10:17:59 -10:00
Daniel Reimer
31b6b3deb5 Add sensors for current and potential to AVM FRITZ!SmartHome / Fritz!DECT (#69999)
* Update sensor.py

Add sensors for current and potential to AVM FRITZ!SmartHome. Tested with Fritz!DECT 200

* Update sensor.py

black, flake8 and isort checked

* Fix the change requests

Fixed the division by 1000 on two code parts to comply with the AVM API documention.
Added device.power to availability check.

* black --fast applied

* fix issort

* rename electric potential to voltage

Co-authored-by: mib1185 <mail@mib85.de>
2022-04-24 22:02:19 +02:00
Allen Porter
dc7e3a6df6 Fix boundary case in calednar trigger (#70467)
Update calendar trigger scan logic to add a one second boundary due to the
exclusive search. Add a test that reproduced the issue.
2022-04-24 12:52:17 -07:00
epenet
965665213f Use ColorMode enum in hue (#70578) 2022-04-24 09:29:51 -10:00
Robert Svensson
8330d7906a Streamline setup of deCONZ alarm control panel platform (#70589) 2022-04-24 21:25:01 +02:00
epenet
5b7bca1d82 Use ColorMode enum in elgato (#70487) 2022-04-24 09:15:43 -10:00
epenet
38d86fc7b1 Use ColorMode enum in mqtt (#70579) 2022-04-24 09:06:56 -10:00
G Johansson
472ffd3bc6 Implement config flow for SQL integration (#68700) 2022-04-24 08:50:32 -10:00
Steven Looman
776565c23f Bump async-upnp-client to 0.28.0 (#70582) 2022-04-24 08:46:13 -10:00
David F. Mulcahey
9b8d217b0e Implement support for start_up_on_off in ZHA (#70110)
* Implement support for start_up_on_off

fix discovery issues

remove cover change

* add tests
2022-04-24 12:50:06 -04:00
glcos
8a73381b56 ZHA ElectricalMeasurement cluster add Frequency and Power Factor (#59417)
* Add files via upload

* Add Frequency and PF

* Add Frequency and PF

Add Frequency and PF

* Add Frequency and PF

Add Frequency and PF

* Add Frequency and PF

Add Frequency and PF

* Add Frequency and PF

Add Frequency and PF

* Update homeassistant/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/zha/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/const.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Fix rebase

* rebase cleanup

* fix stale doc string

* missed this again

* isort

* update tests

* update discovery test data

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
2022-04-24 12:42:52 -04:00
TheJulianJES
e4a613a4b3 Add "LUX" manufacturer to "ZenWithin" ZHA thermostat (#70190) 2022-04-24 11:58:06 -04:00
epenet
c342ff5da8 Use VacuumEntityFeature in roomba (#70577) 2022-04-24 00:32:16 -10:00
epenet
4830b427ac Use ColorMode enum in homekit (#70581) 2022-04-24 00:30:08 -10:00
epenet
f902aed6b3 Use ColorMode enum in flux_led (#70580) 2022-04-24 00:29:51 -10:00
Robert Svensson
790beb1346 Move deCONZ light imports to reflect changes in pydeconz (#70469) 2022-04-24 10:27:56 +02:00
Michael
781f18e0c3 Extract entity base classes into a new module for Synology DSM (#69796)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-23 22:26:34 -10:00
Robert Svensson
009111151d Move deCONZ alarm system imports to reflect the changes in pydeconz (#70453) 2022-04-24 10:17:46 +02:00
Robert Svensson
83fde83279 Move deCONZ group and scene imports to reflect the changes in pydeconz (#70468)
* Move deCONZ scene imports to reflect the changes in pydeconz

* Move deCONZ group imports to reflect the changes in pydeconz

* Use common resourcegroup rather than 5 different imports in gateway
2022-04-24 10:09:58 +02:00
G Johansson
859dcb396a Bump pysensibo to 1.0.12 (#70484) 2022-04-23 13:58:33 -10:00
epenet
43b9c62aa5 Use VacuumEntityFeature in tuya (#70563) 2022-04-23 11:45:22 -10:00
epenet
4247318634 Use VacuumEntityFeature in xiaomi_miio (#70564) 2022-04-23 11:45:10 -10:00
epenet
7c3fcdee95 Use VacuumEntityFeature in sharkiq (#70565) 2022-04-23 11:44:49 -10:00
epenet
acc5c7ddf0 Use VacuumEntityFeature in litterrobot (#70562) 2022-04-23 11:43:13 -10:00
epenet
c1888ce559 Use VacuumEntityFeature in neato (#70561) 2022-04-23 11:42:32 -10:00
epenet
ca337b54a3 Use ColorMode enum in philips_js (#70529) 2022-04-23 11:27:32 -10:00
epenet
1179a88808 Use ColorMode enum in yeelight (#70560) 2022-04-23 11:04:54 -10:00
epenet
89200b27f0 Use ColorMode enum in tuya (#70545) 2022-04-23 11:00:34 -10:00
epenet
9906fd649e Use ColorMode enum in vesync (#70553) 2022-04-23 10:59:50 -10:00
epenet
753a13d68d Use ColorMode enum in wiz (#70554) 2022-04-23 10:59:21 -10:00
epenet
5a0bbedef8 Use ColorMode enum in group (#70500) 2022-04-23 10:27:55 -10:00
epenet
be6dc81fc0 Use ColorMode enum in switch (#70537) 2022-04-23 10:26:35 -10:00
epenet
7d2e75e6ab Use ColorMode enum in zwave_js (#70559) 2022-04-23 10:26:09 -10:00
epenet
677614546a Use ColorMode enum in zwave_me (#70558) 2022-04-23 10:25:21 -10:00
epenet
f9dbb92e60 Use ColorMode enum in zengge (#70557) 2022-04-23 10:10:35 -10:00
epenet
da2312765c Use ColorMode enum in wled (#70555) 2022-04-23 10:09:46 -10:00
epenet
663dbc4080 Use ColorMode enum in x10 (#70556) 2022-04-23 10:08:00 -10:00
epenet
d00d9a2473 Use ColorMode enum in velux (#70552) 2022-04-23 10:02:25 -10:00
epenet
1b08e509ed Use ColorMode enum in tasmota (#70549) 2022-04-23 10:02:18 -10:00
epenet
265bf3e9e0 Use ColorMode enum in upb (#70551) 2022-04-23 10:02:04 -10:00
epenet
20336ec49c Use ColorMode enum in unifiprotect (#70547) 2022-04-23 10:01:55 -10:00
epenet
95f0d14f08 Use ColorMode enum in velbus (#70550) 2022-04-23 10:01:35 -10:00
epenet
3bbd08d9c9 Use ColorMode enum in unifiled (#70548) 2022-04-23 10:00:33 -10:00
Robert Svensson
301dcaae63 Move deCONZ sensor imports to reflect changes in pydeconz (#70471) 2022-04-23 22:59:51 +03:00
epenet
76aea16f29 Use ColorMode enum in twinkly (#70546) 2022-04-23 09:47:13 -10:00
epenet
121d2008c2 Use ColorMode enum in tplink (#70542) 2022-04-23 09:46:54 -10:00
epenet
9a38172d1f Use ColorMode enum in tradfri (#70544) 2022-04-23 09:46:24 -10:00
epenet
6e1b8a9387 Use ColorMode enum in tellstick (#70540) 2022-04-23 09:44:48 -10:00
epenet
6e14f67860 Use ColorMode enum in tolo (#70541) 2022-04-23 09:44:29 -10:00
epenet
30b76db390 Use ColorMode enum in tellduslive (#70539) 2022-04-23 09:44:14 -10:00
epenet
23974eed41 Use ColorMode enum in switch_as_x (#70538) 2022-04-23 09:43:16 -10:00
epenet
9c42443910 Use ColorMode enum in smarttub (#70536) 2022-04-23 09:43:08 -10:00
epenet
2d498f71bb Use ColorMode enum in sisyphus (#70535) 2022-04-23 09:43:00 -10:00
epenet
dcddc910b8 Use ColorMode enum in rflink (#70531) 2022-04-23 09:42:54 -10:00
epenet
dad806b16b Use ColorMode enum in pilight (#70532) 2022-04-23 09:42:45 -10:00
epenet
93be31290d Use ColorMode enum in shelly (#70534) 2022-04-23 09:42:36 -10:00
epenet
d4d64b914d Use ColorMode enum in senseme (#70533) 2022-04-23 09:42:29 -10:00
epenet
2ea583536b Use ColorMode enum in rfxtrx (#70530) 2022-04-23 09:42:14 -10:00
epenet
1677a76ba4 Use ColorMode enum in myq (#70524) 2022-04-23 09:26:07 -10:00
epenet
4a276d90b0 Use ColorMode enum in overkiz (#70528) 2022-04-23 09:25:47 -10:00
epenet
1d5096638e Use ColorMode enum in nanoleaf (#70527) 2022-04-23 09:25:03 -10:00
epenet
f68764a053 Use ColorMode enum in mystrom (#70526) 2022-04-23 09:24:43 -10:00
epenet
177e6356b1 Use ColorMode enum in mysensors (#70525) 2022-04-23 09:24:33 -10:00
epenet
6d237275f8 Use ColorMode enum in modern_forms (#70523) 2022-04-23 09:24:19 -10:00
epenet
a2bf33e74c Use ColorMode enum in modbus (#70522) 2022-04-23 09:24:06 -10:00
epenet
e40b4bee2d Use ColorMode enum in mochad (#70521) 2022-04-23 09:23:55 -10:00
epenet
e1f772c88f Use ColorMode enum in lw12wifi (#70520) 2022-04-23 09:22:24 -10:00
epenet
aa64acf918 Use ColorMode enum in lutron_caseta (#70519) 2022-04-23 09:22:10 -10:00
epenet
5bb850eea3 Use ColorMode enum in lutron (#70518) 2022-04-23 09:21:57 -10:00
epenet
addf73d007 Use ColorMode enum in litejet (#70516) 2022-04-23 09:21:44 -10:00
epenet
1ba0a58b6d Use ColorMode enum in lcn (#70515) 2022-04-23 09:21:33 -10:00
epenet
a9cd5bd9c8 Use ColorMode enum in firmata (#70494) 2022-04-23 09:21:18 -10:00
epenet
33c1501f35 Use ColorMode enum in futurenow (#70498) 2022-04-23 09:21:05 -10:00
epenet
562927cc17 Use ColorMode enum in fritzbox (#70497) 2022-04-23 09:20:52 -10:00
epenet
5c0bc0063f Use ColorMode enum in fjaraskupan (#70496) 2022-04-23 09:20:39 -10:00
epenet
e8ff812d39 Use ColorMode enum in freedompro (#70495) 2022-04-23 09:20:23 -10:00
epenet
d75862762b Use ColorMode enum in evil_genius_labs (#70493) 2022-04-23 09:20:09 -10:00
epenet
80db3428b8 Use ColorMode enum in everlights (#70492) 2022-04-23 09:19:01 -10:00
epenet
4904d7b216 Use ColorMode enum in eufy (#70491) 2022-04-23 09:18:47 -10:00
epenet
cc260db496 Use ColorMode enum in lookin (#70517) 2022-04-23 09:17:51 -10:00
epenet
cf4232467c Use ColorMode enum in kulersky (#70514) 2022-04-23 09:17:31 -10:00
epenet
7e7519fe05 Use ColorMode enum in knx (#70513) 2022-04-23 09:17:18 -10:00
epenet
5811e43319 Use ColorMode enum in iglo (#70512) 2022-04-23 09:16:58 -10:00
epenet
2f26407a31 Use ColorMode enum in insteon (#70511) 2022-04-23 09:16:40 -10:00
epenet
149cc01ed3 Use ColorMode enum in iaqualink (#70510) 2022-04-23 09:16:27 -10:00
epenet
346a385f1a Use ColorMode enum in ihc (#70508) 2022-04-23 09:16:07 -10:00
epenet
34ad7b329e Use ColorMode enum in hyperion (#70507) 2022-04-23 09:15:54 -10:00
epenet
ee1ac730b8 Use ColorMode enum in homeworks (#70506) 2022-04-23 09:15:40 -10:00
epenet
e30b3b4ab1 Use ColorMode enum in homematicip_cloud (#70505) 2022-04-23 09:15:26 -10:00
epenet
e5eaa4b105 Use ColorMode enum in homematic (#70504) 2022-04-23 09:15:10 -10:00
epenet
994905d1ea Use ColorMode enum in home_connect (#70502) 2022-04-23 09:14:49 -10:00
epenet
648c973785 Use ColorMode enum in hive (#70501) 2022-04-23 09:14:34 -10:00
epenet
033445721d Use ColorMode enum in greenwave (#70499) 2022-04-23 09:14:13 -10:00
epenet
24ace6a1fb Use ColorMode enum in enocean (#70489) 2022-04-23 09:13:53 -10:00
epenet
31fbc088fe Use ColorMode enum in esphome (#70490) 2022-04-23 09:13:40 -10:00
epenet
a0c7fca003 Use ColorMode enum in homekit_controller (#70503) 2022-04-23 09:09:25 -10:00
epenet
50823045e8 Use ColorMode enum in isy994 (#70509) 2022-04-23 09:06:23 -10:00
epenet
fddc0e14c0 Use ColorMode enum in elkm1 (#70488) 2022-04-23 08:40:58 -10:00
Ani Betts
6c391ecc59 Remove broken Arlo component (#70330)
* Remove broken Arlo component

This component has been fully broken since early 2019 because of
authentication changes from Arlo.

* Update requirements
2022-04-23 20:16:28 +03:00
ollo69
95e38b16f9 Address late review of AsusWRT config flow changes (#70448)
* Address late review of  AsusWRT config flow changes

* Review schema preparation

* Requested changes
2022-04-23 13:28:09 +02:00
Matthias Alphart
639e3bb900 Add optional type for KNX notify entity configuration (#70451) 2022-04-23 12:21:58 +02:00
Álvaro Fernández Rojas
0c2acdf337 Add Airzone diagnostics (#69362)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-22 22:28:07 -10:00
Dmitry Katsubo
521579fc6a Fixed syntax error in ALTER TABLE statement (#70304) (#70336) 2022-04-22 21:29:25 -10:00
Raman Gupta
37ea4660f9 Bump zwave-js-server-python to 0.36.0 (#70464)
* Bump zwave-js-server-python to 0.36.0

* update missed property name change
2022-04-23 02:20:50 -04:00
Michael
ed8fe9963e Improve entity and device naming in Synology DSM (#69754) 2022-04-22 19:57:39 -10:00
rikroe
eccc8bf79d Bump bimmer_connected to 0.8.12, fix china login (#70374)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-22 19:52:37 -10:00
Andrzej Raczkowski
bf9467ad7b Bump cryptography to 36.0.2 (#70438) 2022-04-22 19:50:45 -10:00
epenet
2e5ad58c32 Use ColorMode enum in dynalite (#70436) 2022-04-22 19:50:02 -10:00
epenet
68697b6477 Use ColorMode enum in broadlink (#70434) 2022-04-22 19:49:46 -10:00
epenet
643d04a717 Use ColorMode enum in blebox (#70426) 2022-04-22 19:49:39 -10:00
epenet
72b31ca51a Use ColorMode enum in blinksticklight (#70433) 2022-04-22 19:49:29 -10:00
epenet
0e1911cd9b Use ColorMode enum in decora_wifi (#70430) 2022-04-22 19:49:22 -10:00
epenet
35e395235a Use ColorMode enum in decora (#70429) 2022-04-22 19:49:14 -10:00
epenet
7ffe399a08 Use ColorMode enum in control4 (#70428) 2022-04-22 19:49:08 -10:00
epenet
bd2639af65 Use ColorMode enum in avea (#70424) 2022-04-22 19:48:53 -10:00
epenet
c390ec33cd Use ColorMode enum in ads (#70422) 2022-04-22 19:48:38 -10:00
epenet
e806020bc3 Use ColorMode enum in avion (#70423) 2022-04-22 19:46:29 -10:00
Raman Gupta
44c1dc7f5a Bump pytomorrowio to 0.3.3 (#70463)
* Bump pytomorrowio to 0.3.3

* Empty commit
2022-04-23 01:46:13 -04:00
Erik Montnemery
982e314de6 Use recorder_mock in tests (#70363)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-22 19:29:44 -10:00
Johan Nenzén
16ca038f12 Bump pyplaato to 0.0.18 (#70391) 2022-04-22 19:28:26 -10:00
Oliver
8dea97e084 Update denonavr to version 0.10.11 (#70450)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-22 19:27:58 -10:00
Robert Svensson
678888c65f deCONZ dependency exports type hints (#70449) 2022-04-22 19:27:47 -10:00
Álvaro Fernández Rojas
a29265e725 Add Airzone Low Battery Binary Sensor (#69022)
* airzone: binary_sensor: add Low Battery

This binary sensor is only applicable for Radio Thermostats.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: use BinarySensorDeviceClass

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-04-22 19:27:23 -10:00
Álvaro Fernández Rojas
6dc44863c4 Split and refactor AirzoneEntity (#70421) 2022-04-22 19:20:14 -10:00
Allen Porter
5ffaa70bb6 Add calendar event end trigger (#70372)
* Add calendar event end trigger

* Rename start date to last_endtime

* Rename now to last_endtime
2022-04-22 21:19:35 -07:00
Jason Hunter
9008a76bd4 Remove deprecated YAML configuration from ONVIF (#70395)
* Remove deprecated YAML configuration from ONVIF

* remove async_setup completely
2022-04-22 21:35:11 -04:00
epenet
489e70bd7f Use ColorMode enum in bond (#70427) 2022-04-22 14:44:31 -10:00
Raman Gupta
7da2e765d1 Reorganize tomorrowio code to keep it clean (#70454) 2022-04-22 16:10:13 -07:00
J. Nick Koston
23cf8bef65 Bump aiodiscover to 1.4.11 (#70413)
Fixes #70402

Changelog: https://github.com/bdraco/aiodiscover/compare/v1.4.10...v1.4.11
2022-04-22 19:26:06 +03:00
epenet
fde79e606d Use ColorMode enum in axis (#70425) 2022-04-22 17:51:04 +02:00
epenet
5ec855e020 Use ColorMode enum in deconz (#70431) 2022-04-22 17:50:00 +02:00
Erik Montnemery
e45d4d53dd Correct time stamp format in Alexa responses (#70267) 2022-04-22 08:44:59 -07:00
epenet
56921a41bf Use ColorMode enum in crownstone (#70432) 2022-04-22 16:25:20 +02:00
J. Nick Koston
cc3d6aa247 Ensure rainmachine creates config entry titles as strings (#70417) 2022-04-22 07:58:19 -06:00
epenet
edffac82e9 Use ColorMode enum in devolo_home_control (#70435) 2022-04-22 15:31:11 +02:00
J. Nick Koston
3737b58e85 Avoid fetching metadata multiple times during stat compile (#70397) 2022-04-22 00:25:42 -10:00
Raman Gupta
be0fbba523 Bump pytomorrowio to 0.3.1 (#70130) 2022-04-22 09:22:43 +02:00
Robert Svensson
69f4aeaf42 Enable strict typing of deconz_device (#70341)
* Enable strict typing of deconz_device completing strict typing of deconz integration
2022-04-22 09:19:35 +02:00
ollo69
74b50a8009 Enable AsusWRT strict typing (#70396)
* Enable AsusWRT strict typing

* Fix myPi errors
2022-04-22 10:14:13 +03:00
dependabot[bot]
d35fa28721 Bump actions/checkout from 3.0.1 to 3.0.2 (#70405)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-22 10:07:31 +03:00
dependabot[bot]
2c437c20ce Bump codecov/codecov-action from 3.0.0 to 3.1.0 (#70404)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-22 08:59:26 +02:00
J. Nick Koston
c96781a795 Prevent plumbum from causing the testsuite to fail (#70400) 2022-04-22 08:40:23 +02:00
Dave T
70e125850c Limit autogenerated entity_id string length (#69739) 2022-04-21 22:39:51 -07:00
Franck Nijhof
7b75a16745 Add visible by default property to base Entity (#70370) 2022-04-21 22:06:34 -07:00
J. Nick Koston
9761a7310e Adjust doc string for recorder.Recorder.async_periodic_statistics (#70398) 2022-04-21 22:04:42 -07:00
J. Nick Koston
3142a106fc Additional prep work for sqlalchemy 2.0 (#70358) 2022-04-21 12:39:18 -10:00
J. Nick Koston
034ba7d3ff Only read HomeKit service/chars from disk once (#70354) 2022-04-21 13:54:44 -07:00
J. Nick Koston
f1b400feaf Revert changes from #70300 part 2 (#70386) 2022-04-21 10:50:00 -10:00
J. Nick Koston
23de8d4156 Revert changes to test/conftest.py from #70300 (#70385) 2022-04-21 10:49:47 -10:00
Marc Mueller
90dab235f7 Update pylint to 2.13.7 (#70381)
* Update pylint to 2.13.7

* Spelling

* Remove old pylint config value

* Code updates
2022-04-21 13:02:52 -07:00
Dave T
020f94fa56 Handle additional ONVIF messages (Hikvision) (#66357)
* Handle additional onvif messages (hikvision)

* Only convert to local timezone once.

* Code review: put new parser in a better place.

* Remove whitespace

* Code review: Remove ONVIF 'line crossed' parser

* Code review: Unparsed events log info not warning

* Fix isort

* Handle additional onvif messages (hikvision)

* Only convert to local timezone once.

* Code review: put new parser in a better place.

* Remove whitespace

* Code review: Remove ONVIF 'line crossed' parser

* Code review:only return valid datetime,improve try

* Code review: datetime conversions into try blocks

* address PR comments

Co-authored-by: Jason Hunter <hunterjm@gmail.com>
2022-04-21 15:30:35 -04:00
Jason Hunter
22db21b9d4 Add diagnostics to ONVIF (#69708) 2022-04-21 11:38:20 -07:00
Franck Nijhof
d08b751a85 Add unique ID to scripts (#70345) 2022-04-21 20:04:02 +02:00
jjlawren
ac88d0be14 Add Sonos favorites sensor (#70235) 2022-04-21 10:37:16 -07:00
Erik Montnemery
9bec649323 Restore state of trigger-based template sensor (#69344) 2022-04-21 09:32:18 -07:00
Erik Montnemery
7b1e0e42f7 Allow device conditions and triggers for unitless sensors (#70337) 2022-04-21 09:31:15 -07:00
Jeef
4d09078114 IntelliFire Config API Token Config Update (#68134)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-21 09:14:13 -07:00
J. Nick Koston
73a368c242 Refactor history_stats to minimize database access (part 2) (#70255) 2022-04-21 09:06:59 -07:00
ollo69
f6e5e1b167 Simplify AsusWRT config flow (#69800) 2022-04-21 08:23:40 -07:00
Allen Porter
a2c74b9786 Add initial implementation of a calendar trigger (#68674)
* Add initial implementation of calendar trigger

This is an initial implementation of a calendar trigger, that supports
triggering on calendar start time.

See architecture proposal in:
https://github.com/home-assistant/architecture/discussions/700

* Address reviewer feedback

* Use f-strings for all tests

* Apply suggestions from code review

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

* Remove logging f-strings, and move to main code

* Remove mypy ignore

* Apply suggestions from code review

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

* Update calendar triggers to use new calendar data model

* Update tests/components/calendar/test_trigger.py

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

* Rewrite tests using freezegun

Rewrite tests using freezegun and improve edge case handling, and use utc consistently for all alarms.

* Update homeassistant/components/calendar/trigger.py

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

* Update homeassistant/components/calendar/trigger.py

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

* Increase test coverage based on pr feedback

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-04-21 08:09:50 -07:00
Franck Nijhof
7003862bd8 Fix Plugwise to not use invalid discovery data (#70366) 2022-04-21 16:06:22 +03:00
Raman Gupta
220cb57add Bump zwave-js-server-python to 0.35.3 (#70357) 2022-04-21 14:14:39 +02:00
rikroe
80653463bf Add DataUpdateCoordinator to bmw_connected_drive (#67003)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-04-20 22:13:09 -10:00
Jason Maners
089f7279bc Update vesync to use pyvesync v2.0.2 (#70281)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-04-21 10:36:02 +03:00
Erik Montnemery
de9f39745b Fix race in _process_recorder_platform (#70339)
* Fix race in _process_recorder_platform

* Update homeassistant/components/recorder/__init__.py

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

* Update tests

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-21 09:03:05 +02:00
Raman Gupta
c390834ae4 Add available tones property to siren entity description (#70216)
* Fix siren entity description and available tones property

* Add test

* Fix bug

* Add coverage
2022-04-21 02:33:22 -04:00
Erik Montnemery
5e50a8abd5 Mark device triggers from hidden or auxiliary entities as secondary (#70335)
* Mark device triggers from hidden or auxiliary entities as secondary

* Update tests
2022-04-21 08:01:32 +02:00
Allen Porter
0e0c0ce22b Move google calendar integration to aiohttp (#70173)
* Use new aiohttp based google client library in gcal_sync.

* Use base url in tests for shorter string

* Remove unnecessary line of code

* Jump to gcal-sync-0.4.1

* Update tests/components/google/conftest.py

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

* Update to gcal_sync 0.5.0 incorporating PR feedback

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-20 20:18:24 -07:00
J. Nick Koston
b8369f79eb Bump aiodiscover to 1.4.10 (#70348) 2022-04-21 01:43:27 +02:00
Zack Barett
2c284f5a28 Bump frontend to 20220420.0 (#70347) 2022-04-20 16:18:03 -07:00
Marvin Wichmann
029ffad537 Update xknx to version 0.20.4 (#70342) 2022-04-21 02:16:08 +03:00
Franck Nijhof
35687def02 Merge stop & error script actions (#70109) 2022-04-20 14:22:37 -07:00
Steven Looman
bddfbe01f3 Better handle devices changing UDN and/or location in upnp component (#70008) 2022-04-20 11:01:43 -10:00
Franck Nijhof
bfc82b030f Replace Climate CURRENT_HVAC_* constants with HVACAction enum (#70319) 2022-04-20 13:41:05 -07:00
Erik Montnemery
9e213caefc Tweak utility_meter service descriptions (#70338) 2022-04-20 22:07:16 +02:00
Erik Montnemery
150f173eed Mark device conditions from hidden or auxiliary entities as secondary (#70333) 2022-04-20 21:41:59 +02:00
Erik Montnemery
7c0b0f7cc1 Migrate homekit_controller light to color_mode (#69261) 2022-04-20 09:26:15 -10:00
Glenn Waters
2abe551eef Complete strict typing for ElkM1 integration (#70334) 2022-04-20 09:04:11 -10:00
Paulus Schoutsen
2df212dcd3 Merge pull request #70331 from home-assistant/rc 2022-04-20 11:27:33 -07:00
Erik Montnemery
64381acbaf Mark device actions from hidden or auxiliary entities as secondary (#70278) 2022-04-20 10:48:46 -07:00
Glenn Waters
2a99084911 ElkM1 integration, add strict types to config_flow (#70323) 2022-04-20 10:46:36 -07:00
Johann Vanackere
c4db48d8f1 Fix #69952: Daikin AC Temperature jumps after being set (#70326) 2022-04-20 10:44:51 -07:00
Johann Vanackere
b0ed42a5a5 Fix #69952: Daikin AC Temperature jumps after being set (#70326) 2022-04-20 10:43:44 -07:00
Paulus Schoutsen
50bfc4d86c Bumped version to 2022.4.6 2022-04-20 10:11:19 -07:00
J. Nick Koston
6f13ce9445 Bump aiohomekit to 0.7.17 (#70313)
Changelog: https://github.com/Jc2k/aiohomekit/compare/0.7.16...0.7.17

Fixes: #67665
2022-04-20 10:11:15 -07:00
Paulus Schoutsen
596d46dbba Add Insteon USB discovery (#70306)
* Add Insteon USB discovery

* Update tests/components/insteon/test_config_flow.py

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

* Black

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-20 10:11:14 -07:00
Christopher Bailey
2c6e670fd8 Fix updating CameraZone coords for UniFi Protect (#70260) 2022-04-20 10:11:13 -07:00
J. Nick Koston
767e519e86 Fix handling unassigned areas in lutron_caseta (#70258) 2022-04-20 10:11:13 -07:00
Kevin Worrel
03a896cbc8 Screenlogic config: Filter unexpected host names (#70256) 2022-04-20 10:11:12 -07:00
J. Nick Koston
2b39f4b7cd Bump aiodiscover to 1.4.9 (#70213) 2022-04-20 10:11:11 -07:00
Dave T
acd6048cbd Hide credentials from generated titles in generic camera (#70204) 2022-04-20 10:11:10 -07:00
Dave T
82cf6e44d6 Auto set content type for stream-only in generic camera (#70200) 2022-04-20 10:11:09 -07:00
J. Nick Koston
bc2c4a41b8 Fix handling of powerview stale state (#70195) 2022-04-20 10:10:40 -07:00
Sébastien RAMAGE
40ba0e0aed Revert zigpy-zigate to 0.7.4 (#70184)
* Update requirements_all.txt

revert to zigpy-zigate 0.7.4

* Update requirements_test_all.txt

revert to zigpy-zigate 0.7.4

* Update manifest.json

revert to zigpy-zigate 0.7.4
2022-04-20 10:08:16 -07:00
Simone Chemelli
f4f1a36a16 Fix file size last_updated (#70114)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-20 10:08:15 -07:00
J. Nick Koston
0e89bde189 Move handling of non-secure login to the elkm1 library (#69483) 2022-04-20 10:08:14 -07:00
Thibaut
df768c34e4 Fix opening/closing for awning in Overkiz integration (#68890) 2022-04-20 10:08:13 -07:00
Greg Dowling
0b5b7d5907 Improve roon integraton (#66000)
* Update to new library, revise discovery to work with new library, specify port to work with new library.

* Move user gui to fallback.

* Revise tests.

* Handle old config.

* Improve debugging, refresh faster on load.

* Remove duplicate.

* Bump library version.

* Fix docstring per review.

* Review suggestion

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

* Review suggestion

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

* Add check for duplicate host.

* Add error message to strings.

* Tidy.

* Review changes.

* Remove default.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-20 10:08:12 -07:00
Paulus Schoutsen
b049ffca23 Add Insteon USB discovery (#70306)
* Add Insteon USB discovery

* Update tests/components/insteon/test_config_flow.py

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

* Black

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-20 10:07:35 -07:00
J. Nick Koston
415c8b4ab8 Fix handling unassigned areas in lutron_caseta (#70258) 2022-04-20 10:07:00 -07:00
akloeckner
d20a620590 Make this variable available in template entities (#65201)
* feat: make this variable available in template entities

This makes the variable `this` available in template entities.
It will simplify the use of self-referencing template entities.
Because, without this, we have to repeat the entity id every time.
If we can solve this without explicitly spelling the entity id,
code can be re-used much better.

As a side-effect, this will allow to use `variables`-like patterns,
where attributes can be used as variables to calculate subsequent attributes or state.

Example:
```yaml
template:
  sensor:
    - name: test
      state: "{{ this.attributes.test }}"
      # not: "{{ state_attr('sensor.test', 'test' }}"
      attributes:
        test: "{{ now() }}"
```

* expose entity_id instead of this

* add test

* Refactor to expose this variable

* Tweak repr dunder

Co-authored-by: Erik <erik@montnemery.com>
2022-04-20 15:30:17 +02:00
Fabian Affolter
9316909e60 Upgrade psutil to 5.9.0 (#70316) 2022-04-20 15:17:21 +02:00
Thibaut
b4a536ca09 Fix opening/closing for awning in Overkiz integration (#68890) 2022-04-20 14:53:20 +02:00
Franck Nijhof
a22f36178f Replace Climate HVAC_MODE_* constants with HVACMode enum (#70286)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-20 13:20:53 +02:00
J. Nick Koston
0dc426e2c4 Bump aiohomekit to 0.7.17 (#70313)
Changelog: https://github.com/Jc2k/aiohomekit/compare/0.7.16...0.7.17

Fixes: #67665
2022-04-20 13:02:17 +03:00
Fabian Affolter
cd52a8afe5 Remove myself from arest codeowners (#70314) 2022-04-19 22:56:33 -10:00
Shay Levy
70616d2b78 Revert "Add humidity to tomorrowio hourly weather forecasts (#70186)" (#70311)
This reverts commit febcab11fb.
2022-04-20 11:56:13 +03:00
Fabian Affolter
4358152b63 Remove myself from bitcoin codeowners (#70315) 2022-04-19 22:55:35 -10:00
Robert Svensson
78b02fe0ce Enable strict typing for deCONZ platforms (#70290) 2022-04-20 09:03:53 +02:00
Justin Edelson
abbac235a5 Add cmake to devcontainer (#70253)
* add cmake to devcontainer. fixes #70250

* reformatting
2022-04-20 00:01:06 -07:00
Diego Elio Pettenò
16de5edcbf Don't attempt to set invalid fan percentage and preset_mode (try 3) (#70294)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-19 23:59:57 -07:00
Franck Nijhof
c460100af1 Add backup.create service (#70118) 2022-04-20 08:56:05 +02:00
Poltorak Serguei
725339145f Scale Z-Wave.Me max values (#70274)
Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
2022-04-20 08:38:55 +02:00
Michael
9860ae562e Highlight to drag-and-drop diagnostic data instead of copy-and-paste in issue template (#70279) 2022-04-20 07:52:56 +02:00
Glenn Waters
1492ea1fe3 Elk types 4 (#70305) 2022-04-19 16:45:45 -10:00
arantes555
a1f33a093c Generic thermostat temp step (#70303)
* Add target_temp_step to generic_thermostat

* Add target_temp_step to generic_thermostat : fix default + add tests

* Add target_temp_step to generic_thermostat : fix test by using new 'units_imperial' fixture
2022-04-20 01:19:59 +03:00
J. Nick Koston
309424d3b9 Prevent tests changing units from affecting other tests (#70300)
* Prevent tests changing temperature_unit from affecting other tests

* tweak
2022-04-19 11:38:52 -10:00
J. Nick Koston
27c9e96865 Fix flapping goalzero tests (#70298) 2022-04-19 23:38:07 +02:00
Glenn Waters
cec2a40602 ElkM1 integration adding types, part 3 (#70214)
* ElkM1 integration adding types, part 3

* Fix default _state value.

* Tweak fan get.

* change get to dict access.
2022-04-19 10:52:46 -10:00
IceBotYT
1fb261cdc5 Code quality improvements to PECO (#70301) 2022-04-19 22:45:27 +02:00
ollo69
b7c1fbc842 Add missing typing in AsusWRT router class (#70189)
* Add missing typing in AsusWRT router class

* Fix typing in device tracker

* Fix mypy incompatible type
2022-04-19 22:55:46 +03:00
J. Nick Koston
c08afca912 Revert "Add target_temp_step to generic_thermostat (#58691)" (#70299)
This reverts commit ba4ca3e38e.
2022-04-19 22:46:42 +03:00
Paulus Schoutsen
78f5614cdc Add extra tests for input text (#70283) 2022-04-19 19:31:09 +02:00
Robert Svensson
7bc9d01520 Enable strict typing for deCONZ platforms cover+lock+siren+switch (#69930) 2022-04-19 18:14:56 +02:00
lymanepp
febcab11fb Add humidity to tomorrowio hourly weather forecasts (#70186)
* Add humidity to hourly weather forecasts

* Don't include humidity in daily forecasts

* Fix test
2022-04-19 19:14:07 +03:00
Mask3007
2228ea5ee0 Add update entity to fritz integration (#70096) 2022-04-19 17:12:21 +02:00
Michael
89c717bf40 Enable long term statistics for Xiaomi Mijia BLE Temperature and Humidity Sensor (#70272) 2022-04-19 17:09:41 +02:00
Álvaro Fernández Rojas
5729209d5d Update aioairzone to v0.4.0 (#70280) 2022-04-19 17:03:13 +02:00
arantes555
ba4ca3e38e Add target_temp_step to generic_thermostat (#58691)
* Add target_temp_step to generic_thermostat

* Add target_temp_step to generic_thermostat : fix default + add tests
2022-04-19 17:16:37 +03:00
Franck Nijhof
d65e12ab6e Add clear_skipped service to update entity (#70116) 2022-04-19 16:11:16 +02:00
Poltorak Serguei
9d016dd434 Add Z-Wave.Me Fan support (#69768)
* Fan entity

* Fix union

* Fix union

* Apply suggestions from code review

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

* Fix percentage scale

Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-19 13:06:31 +02:00
Franck Nijhof
0969e50553 Update Pillow to 9.1.0 (#70273) 2022-04-19 12:49:43 +02:00
Franck Nijhof
3869388f5f Update sentry-sdk to 1.5.10 (#70269) 2022-04-19 12:49:28 +02:00
Simone Chemelli
23446fa1c0 Fix file size last_updated (#70114)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-19 12:49:07 +02:00
Joakim Sørensen
9525077574 Add diagnostics platform to the Supervisor integration (#70265)
* Add diagnostics platform to the Supervisor integration

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-19 12:16:36 +02:00
Dave T
8245ebaef5 Correct grammar in notification description (#70249) 2022-04-19 11:12:24 +02:00
J. Nick Koston
95b98ac9f1 Revert "Revert "Use recorder executor in demo (#69327)" (#69334)" (#69545)
- We have found the issue causing the CI failures and its
  being solved in #69410.

This reverts commit 28350b9792.
2022-04-19 11:09:16 +02:00
Robert Svensson
506be5a818 Enable strict typing for deCONZ platforms binary_sensor+fan+logbook+number (#70171) 2022-04-19 10:32:57 +02:00
Diogo Gomes
03874d1b65 Correct state restoring for Utility Meter sensors (#66851)
* fix merge

* backward compatability

* add status

* increase coverage

* increase further the coverage

* adds support for Decimal in SensorExtraStoredData

* more precise

* review

* don't restore broken last_reset

* increase coverage

* address review comments

* stale

* coverage increase

* Update homeassistant/components/utility_meter/sensor.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* catch corrupt files and respective tests

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-19 09:01:52 +02:00
Diogo Gomes
9dfd37c60b Use CONF_NAME consistently in utility meter sensors with and without tariffs (#69152)
* apply name to tariff based sensors too

* change name without breaking entity_id

* address comments
2022-04-19 09:00:36 +02:00
jjlawren
c29a5dc3fd Add guard for Sonos S1 radio show compatibility (#70251) 2022-04-19 08:56:03 +02:00
Kevin Worrel
16c6d79265 Screenlogic config: Filter unexpected host names (#70256) 2022-04-19 08:51:05 +02:00
Christopher Bailey
3fa3ee9ea2 Fix updating CameraZone coords for UniFi Protect (#70260) 2022-04-19 08:45:39 +02:00
hesselonline
84666ce05e Rename wallbox non-config CONF_ variables (#69737) 2022-04-19 08:44:25 +02:00
J. Nick Koston
d03760d0bb Switch to using ULIDs for context_ids (#70246) 2022-04-18 22:45:41 -07:00
Bram Gerritsen
1da7927fbb Fix issue with turning the ambilight on after switched off (#69132)
* Refactor ambilight component. Fix issue with turning the ambilight on after switched off

* Move dataclass to original location. Add factory method

* Remove follow video effect list

* Fix log

* Remove follow video effect list

* Update homeassistant/components/philips_js/light.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

* Update homeassistant/components/philips_js/light.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

* Add missing typing

* Fix issues with restoring last state

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-04-19 06:32:18 +02:00
J. Nick Koston
e70c8fa359 Refactor history_stats to minimize database access (part 1) (#70134) 2022-04-18 13:18:38 -10:00
IceBotYT
6c75eaa1bc Add outage map alerts to PECO (#69825) 2022-04-18 23:22:14 +02:00
G Johansson
c87992715f Add update platform for Sensibo (#70180) 2022-04-18 23:17:39 +02:00
J. Nick Koston
f63465bd71 Add recorder platform to input_select (#70223) 2022-04-18 22:18:19 +02:00
Thomas Lovén
b50f369fe4 Add shorthand notation for boolean conditions (#70120) 2022-04-18 22:09:09 +02:00
Sebastian Lövdahl
8f4979ea17 Reduce state updates for OctoPrint (#70146) 2022-04-18 21:33:40 +02:00
ollo69
f4d4b52204 Improve AsusWrt test coverage (#70215)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-18 09:20:40 -10:00
ollo69
a27f61cf07 Improve AsusWRT diagnostics (#69826) 2022-04-18 09:20:01 -10:00
Franck Nijhof
ce1f074ca9 Add Template selector (#70229) 2022-04-18 11:28:01 -07:00
Franck Nijhof
1e4aacaeb1 Replace Alarm Control Panel FORMAT_ constants with CodeFormat enum (#69861) 2022-04-18 19:37:32 +02:00
Franck Nijhof
81f3c82aef Add recorder platform to input_text (#70227) 2022-04-18 08:22:14 -07:00
Franck Nijhof
ec92c295d4 Add recorder platform to input_number (#70226) 2022-04-18 08:21:53 -07:00
Franck Nijhof
5d62f405f1 Add recorder platform to input_datetime (#70225) 2022-04-18 08:19:55 -07:00
Franck Nijhof
fc4e9b0cc3 Add recorder platform to input_button (#70224) 2022-04-18 08:18:46 -07:00
J. Nick Koston
4dceff88fc Use new async_process_integration_platform_for_component helper in sun (#70183) 2022-04-18 08:13:30 -07:00
Dave T
d69a7e7be9 Hide credentials from generated titles in generic camera (#70204) 2022-04-18 07:57:52 -07:00
Franck Nijhof
f9450d32ea Update pytest-cov to 3.0.0 (#68611) 2022-04-18 16:31:28 +02:00
Greg Dowling
23264c8fd4 Improve roon integraton (#66000)
* Update to new library, revise discovery to work with new library, specify port to work with new library.

* Move user gui to fallback.

* Revise tests.

* Handle old config.

* Improve debugging, refresh faster on load.

* Remove duplicate.

* Bump library version.

* Fix docstring per review.

* Review suggestion

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

* Review suggestion

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

* Add check for duplicate host.

* Add error message to strings.

* Tidy.

* Review changes.

* Remove default.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-18 16:27:14 +02:00
J. Nick Koston
c3108b3899 Exclude attributes for automation and script domains (#70168) 2022-04-18 12:10:18 +02:00
Franck Nijhof
38a1ef45ed Add recorder platform to input_boolean (#70154)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-18 11:38:48 +02:00
J. Nick Koston
026e1635cc Rename async_process_integration_platform to async_process_integration_platform_for_component (#70217) 2022-04-17 20:59:31 -10:00
J. Nick Koston
a9a5645255 Defer profiler imports until needed to reduce memory pressure (#70202) 2022-04-17 20:16:25 -10:00
jjlawren
c53aa50093 Rework Sonos discovery & availability (#70066) 2022-04-17 22:54:51 -07:00
J. Nick Koston
40eb1554d9 Only set attributes based on the configured type for min_max sensors (#70142) 2022-04-17 22:53:49 -07:00
J. Nick Koston
b4ef150339 Add a guard when there are no integration platforms loaded (#70182) 2022-04-17 22:45:52 -07:00
J. Nick Koston
b74986f9c3 Avoid importing distutils in plex (#70203) 2022-04-17 22:45:10 -07:00
J. Nick Koston
c393622b64 Avoid calling time.monotonic on coordinator refresh unless we are debugging (#70209) 2022-04-17 22:40:44 -07:00
J. Nick Koston
80ab8b465b Fix elkm1 climate auto mode mapping (#69297) 2022-04-17 22:37:19 -07:00
Allen Porter
bd02895781 Fix bug in google calendar offset calculation (#70024) (#70166) 2022-04-17 22:33:18 -07:00
J. Nick Koston
2c2b678e80 Fix handling of powerview stale state (#70195) 2022-04-17 22:31:48 -07:00
J. Nick Koston
e2881ba57e Bump aiodiscover to 1.4.9 (#70213) 2022-04-17 22:29:48 -07:00
Dave T
32f9aefb40 Auto set content type for stream-only in generic camera (#70200) 2022-04-17 22:28:25 -07:00
Glenn Waters
24e817a173 ElkM1 integration add types, part 2 (#70210) 2022-04-17 14:31:37 -10:00
Glenn Waters
2641ecdec8 ElkM1 integration: library bump (#70197) 2022-04-17 10:21:41 -10:00
Robert Svensson
b6cf65decb Improve typing of deCONZ sensor platform (#70161) 2022-04-17 20:58:42 +03:00
Sébastien RAMAGE
2af1b7d974 Revert zigpy-zigate to 0.7.4 (#70184)
* Update requirements_all.txt

revert to zigpy-zigate 0.7.4

* Update requirements_test_all.txt

revert to zigpy-zigate 0.7.4

* Update manifest.json

revert to zigpy-zigate 0.7.4
2022-04-17 20:52:17 +03:00
J. Nick Koston
42c448c422 Add the ability to process integration platforms on demand (#70174) 2022-04-17 00:23:00 -10:00
Clifford Roche
4184c97b65 Bump greeclimate to 1.1.1 (#70158) 2022-04-16 23:20:51 +02:00
Hans Oischinger
248b41b964 Fix broken translation (#70156) 2022-04-16 23:14:36 +02:00
J. Nick Koston
37d39ac6d3 Add restored to the set of attributes excluded from being recorded in the db (#70169)
* Add restored to the set of attributes excluded from being recorded in the database

- Noticed on restart that the table gets 100s of new rows because
  of these

* Update homeassistant/components/recorder/const.py
2022-04-16 23:09:08 +02:00
Raman Gupta
3bcd921a28 Add entity registry helper to update entity platform (#69162)
* Add entity registry helper to migrate entity to new platform

* Add additional assertion

* Add more properties to migration logic

* Change logic after thinking about erik's comments

* Require new_config_entry_id if entry.config_entry_id is not None

* Create private async_update_entity function that all update functions use

* Don't have special handling for entity ID missing in async_update_entity_platform

* fix docstring
2022-04-16 16:18:52 -04:00
Avi Miller
42e0bc849c Narrow down the list of LIFX models for HomeKit discovery (#70125)
* Narrow down the list of LIFX models for HomeKit discovery

This allows the LIFX Switch to be integrated using the HomeKit
Controller component. I also adjusted the zeroconf test so that
the partial match still matches the lifx integration.

Signed-off-by: Avi Miller <me@dje.li>

* Update tests/components/zeroconf/test_init.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-16 10:08:44 -10:00
Robert Svensson
f0b1d35562 Address late review of deconz climate (#70148)
* Fix late comment

* Avoid unnecessary properties

* Add clip sensor test to increase coverage of climate

* Fix review_comment
2022-04-16 21:14:54 +02:00
Franck Nijhof
098c6d446e Merge pull request #70155 from home-assistant/rc 2022-04-16 19:42:51 +02:00
Franck Nijhof
f790a343c0 Bumped version to 2022.4.5 2022-04-16 18:17:07 +02:00
G Johansson
70a4de5efe Fix StationInfo not string in Trafikverket Train (#70153) 2022-04-16 18:16:13 +02:00
J. Nick Koston
2205b63778 Ensure powerwall retries setup when api returns too many requests (#70143) 2022-04-16 18:16:09 +02:00
Brandon Rothweiler
cdc979e1e6 Bump pymazda to 0.3.3 (#70136) 2022-04-16 18:16:06 +02:00
Matthias Alphart
73478dc76d update xknx to 0.20.3 (#70123) 2022-04-16 18:16:03 +02:00
Raman Gupta
a9c670c56f Correct tomorrowio weather units (#70107) 2022-04-16 18:16:00 +02:00
Joakim Sørensen
410e0f52a3 Limit Supervisor refresh updates (#70075) 2022-04-16 18:15:57 +02:00
Shay Levy
0a6182264a Set source & sound mode at start in media player reproduce state (#70064) 2022-04-16 18:15:53 +02:00
Simone Chemelli
236acd6206 Fix retry when Met config entry fails (#70012) 2022-04-16 18:15:49 +02:00
Brandon Rothweiler
a2337f4a43 Bump pymazda to 0.3.3 (#70136) 2022-04-16 18:08:21 +02:00
Simone Chemelli
0f8595e8a7 Fix retry when Met config entry fails (#70012) 2022-04-16 18:04:09 +02:00
G Johansson
f5318ef6c2 Fix StationInfo not string in Trafikverket Train (#70153) 2022-04-16 17:08:54 +02:00
J. Nick Koston
ad1241a116 Fix missing patching of homekit matchers in zeroconf tests (#70141) 2022-04-16 16:41:10 +02:00
J. Nick Koston
cac0e935a8 Bump flux_led to 0.28.28 (#70139) 2022-04-16 16:40:37 +02:00
J. Nick Koston
b629b3d99a Ensure powerwall retries setup when api returns too many requests (#70143) 2022-04-16 12:12:16 +02:00
Thomas Lovén
7cc799becf Fix setup failure tests failing for the wrong reason (#70144) 2022-04-16 11:59:38 +02:00
Franck Nijhof
6a362956dd Merge branch 'master' into dev 2022-04-16 09:38:16 +02:00
Fabian Affolter
2c61a06644 Remove myself from codeowners (#70127) 2022-04-16 02:27:09 +03:00
Fabian Affolter
7133b80b35 Remove myself from codeowners (#70129) 2022-04-16 02:26:23 +03:00
Matthias Alphart
04a153345e update xknx to 0.20.3 (#70123) 2022-04-16 00:15:05 +03:00
Glenn Waters
c80853496d Improve Elk-M1 Control typing (#69924)
* Add types to __init__.py

* Fixup typing.

* Fix type error.

* Bump lib to fix login error.

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-04-16 00:14:45 +03:00
Robert Svensson
f8367d3c01 Improve typing of config flow (#69438) 2022-04-15 23:04:56 +02:00
Hans Oischinger
bc5594e263 vicare: Diagnostics (#69819)
* vicare: Diagnostics

* Exclude diagnostics from codecoverage
2022-04-15 23:22:24 +03:00
Raman Gupta
7c875bf658 Correct tomorrowio weather units (#70107) 2022-04-15 23:20:54 +03:00
epenet
ddb6e37a5c Fix supported_features in Ecovacs vacuum (#69906)
* Revert _attr_supported_features from Ecovacs

* Override supported_features property

* Remove space
2022-04-15 23:19:30 +03:00
Maciej Bieniek
e00a010560 Add diagnostics platform (#70046) 2022-04-15 23:09:03 +03:00
Erik Montnemery
353c091973 Migrate nanoleaf light to color_mode (#69429) 2022-04-15 20:09:47 +02:00
Paulus Schoutsen
5f6a970826 Bump pyevilgenius to 2.0.0 (#70074)
* Bump pyevilgenius to 2.0.0

* Fix tests
2022-04-15 20:54:20 +03:00
J. Nick Koston
03c91dad78 Fix missing title placeholders during unifiprotect reauth (#70067) 2022-04-15 07:31:50 -10:00
Franck Nijhof
1b48d7eda1 Add for each item support to repeat action (#70093) 2022-04-15 19:10:25 +02:00
Álvaro Fernández Rojas
4a950f06e2 airzone: climate: move id params to _async_update_hvac_params (#70099)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-04-15 20:06:47 +03:00
Franck Nijhof
e04fef3c2d Allow disabling specific triggers/actions/conditions (#70082) 2022-04-15 09:33:09 -07:00
Joakim Sørensen
ae9315aa29 Limit Supervisor refresh updates (#70075) 2022-04-15 09:31:02 -07:00
Shay Levy
1a2a3b5955 Set source & sound mode at start in media player reproduce state (#70064) 2022-04-15 09:14:07 -07:00
J. Nick Koston
89807f0d2d Reduce the number of queries needed to compile statistics (#69731)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-15 09:13:29 -07:00
Diogo Gomes
012ef6bb7b sanitize state_classes (#70090) 2022-04-15 16:38:08 +03:00
Álvaro Fernández Rojas
abea7d3245 airzone: implement turn on/off (#70095)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-04-15 16:13:59 +03:00
dependabot[bot]
8ab9cd1695 Bump actions/checkout from 3.0.0 to 3.0.1 (#70073) 2022-04-15 14:06:21 +02:00
Erik Montnemery
5a1bcc2c5b Revert "Narrow the list of models of LIFX devices discovered using HomeKit" (#70085) 2022-04-15 12:50:39 +02:00
Jan Bouwhuis
3b2aae5045 Refactor MQTT discovery (#67966)
* Proof of concept

* remove notify platform

* remove loose test

* Add rework from #67912 (#1)

* Move notify serviceupdater to Mixins

* Move tag discovery handler to Mixins

* fix tests

* Add typing for async_load_platform_helper

* Add add entry unload support for notify platform

* Simplify discovery updates

* Remove not needed extra logic

* Cleanup inrelevant or duplicate code

* reuse update_device and move to mixins

* Remove notify platform

* revert changes to notify platform

* Rename update class

* unify tag entry setup

* Use shared code for device_trigger `update_device`

* PoC shared dispatcher for device_trigger

* Fix bugs

* Improve typing - remove async_update

* Unload config_entry and tests

* Release dispatcher after setup and deduplicate

* closures to methods, revert `in` to `=`, updates

* Re-add update support for tag platform

* Re-add update support for device-trigger platform

* Cleanup rediscovery code revert related changes

* Undo discovery code shift

* Update homeassistant/components/mqtt/mixins.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/device_trigger.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/mixins.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* revert doc string changes

* move conditions

* typing and check config_entry_id

* Update homeassistant/components/mqtt/mixins.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* cleanup not used attribute

* Remove entry_unload code and tests

* update  comment

* add second comment

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-15 12:35:08 +02:00
Milan Meulemans
c932407560 Add SENZ OAuth2 integration (#61233) 2022-04-14 15:29:31 -07:00
J. Nick Koston
c85387290a Increase recorder queue max backlog to 40k, improve message (#70065) 2022-04-14 11:45:07 -10:00
Avi Miller
2b908bd542 Narrow the list of models of LIFX devices discovered using HomeKit (#70068)
This allows the LIFX Switch to be discovered by the HomeKit Controller
integration instead of being captured by the LIFX integration which
doesn't support switches.

Signed-off-by: Avi Miller <me@dje.li>
2022-04-14 11:44:37 -10:00
Robert Svensson
c920d7d5e0 Improve typing of deCONZ diagnostics (#69491)
* Improve typing of deCONZ diagnostics

homeassistant/components/deconz/diagnostics.py:28: error: Item "None" of "Optional[WSClient]" has no attribute "state"  [union-attr]
homeassistant/components/deconz/diagnostics.py:40: error: Unpacking a string is disallowed  [misc]
homeassistant/components/deconz/diagnostics.py:40: error: Cannot determine type of "k"  [has-type]
homeassistant/components/deconz/diagnostics.py:40: error: Cannot determine type of "v"  [has-type]
homeassistant/components/deconz/diagnostics.py:42: error: Unpacking a string is disallowed  [misc]
homeassistant/components/deconz/diagnostics.py:42: error: Cannot determine type of "k"  [has-type]
homeassistant/components/deconz/diagnostics.py:42: error: Cannot determine type of "v"  [has-type]

* Fix review comments

* These mypy ignores arent useful until py.typed is introduced with the library which I will do once I resolve as much as possible in the integration
2022-04-14 23:04:32 +02:00
Álvaro Fernández Rojas
459d775ad5 Update aioairzone to v0.3.8 (#70060) 2022-04-14 10:59:14 -10:00
Franck Nijhof
cdabcce83a Add ability to continue scripts/automations on error (#70004) 2022-04-14 13:43:14 -07:00
Paulus Schoutsen
30db51a49c Merge pull request #70054 from home-assistant/rc 2022-04-14 13:36:07 -07:00
Robert Svensson
66265b6e9a Improve typing of deCONZ light platform (#69886)
homeassistant/components/deconz/light.py:66: error: Incompatible types in assignment (expression has type "List[Union[ConfigurationTool, Cover, Fan, Light, Lock, Siren]]", variable has type "Optional[List[Light]]")  [assignment]
homeassistant/components/deconz/light.py:68: error: Item "None" of "Optional[List[Light]]" has no attribute "__iter__" (not iterable)  [union-attr]
homeassistant/components/deconz/light.py:159: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:159: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:161: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:161: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:163: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:163: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode"  [union-attr]
homeassistant/components/deconz/light.py:165: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness"  [union-attr]
homeassistant/components/deconz/light.py:165: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness"  [union-attr]
homeassistant/components/deconz/light.py:174: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:174: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness"  [union-attr]
homeassistant/components/deconz/light.py:174: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:174: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness"  [union-attr]
homeassistant/components/deconz/light.py:179: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:179: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_temp"  [union-attr]
homeassistant/components/deconz/light.py:179: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:179: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_temp"  [union-attr]
homeassistant/components/deconz/light.py:179: error: Incompatible return value type (got "Union[int, None, Any]", expected "int")  [return-value]
homeassistant/components/deconz/light.py:179: note: Error code "return-value" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:184: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "hue"  [union-attr]
homeassistant/components/deconz/light.py:184: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "hue"  [union-attr]
homeassistant/components/deconz/light.py:184: error: Unsupported operand types for / ("None" and "int")  [operator]
homeassistant/components/deconz/light.py:184: note: Left operand is of type "Union[int, None, Any]"
homeassistant/components/deconz/light.py:184: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "saturation"  [union-attr]
homeassistant/components/deconz/light.py:184: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "saturation"  [union-attr]
homeassistant/components/deconz/light.py:189: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:189: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "xy"  [union-attr]
homeassistant/components/deconz/light.py:189: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:189: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "xy"  [union-attr]
homeassistant/components/deconz/light.py:194: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:194: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "state"  [union-attr]
homeassistant/components/deconz/light.py:194: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:194: error: Incompatible return value type (got "Union[bool, None, Any]", expected "bool")  [return-value]
homeassistant/components/deconz/light.py:194: note: Error code "return-value" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:228: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state"  [union-attr]
homeassistant/components/deconz/light.py:228: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state"  [union-attr]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Union[str, None, Literal['none', 'select', 'lselect']]"  [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[int]"  [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Union[str, None, Literal['colorloop', 'none']]"  [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[bool]"  [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[Tuple[float, float]]"  [arg-type]
homeassistant/components/deconz/light.py:232: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "state"  [union-attr]
homeassistant/components/deconz/light.py:245: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state"  [union-attr]
homeassistant/components/deconz/light.py:245: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state"  [union-attr]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Union[str, None, Literal['none', 'select', 'lselect']]"  [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[int]"  [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Union[str, None, Literal['colorloop', 'none']]"  [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[bool]"  [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[Tuple[float, float]]"  [arg-type]
2022-04-14 23:31:48 +03:00
Robert Svensson
87551b7880 Improve typing of deCONZ climate platform (#69882)
* Improve typing of deCONZ climate platform

homeassistant/components/deconz/climate.py:153: error: Dict entry 0 has incompatible type "str": "bool"; expected "str": "str"  [dict-item]
homeassistant/components/deconz/climate.py:154: error: Dict entry 1 has incompatible type "str": "bool"; expected "str": "str"  [dict-item]
homeassistant/components/deconz/climate.py:176: error: Argument 1 to "get" of "Mapping" has incompatible type "Optional[Literal['off', 'low', 'medium', 'high', 'on', 'auto', 'smart']]"; expected "str"  [arg-type]
homeassistant/components/deconz/climate.py:200: error: Argument 1 to "get" of "Mapping" has incompatible type "Optional[Literal['off', 'auto', 'cool', 'heat', 'emergency heating', 'precooling', 'fan only', 'dry', 'sleep']]"; expected "str"  [arg-type]
homeassistant/components/deconz/climate.py:218: error: Argument 1 to "set_config" of "Thermostat" has incompatible type "**Dict[str, str]"; expected "Optional[int]"  [arg-type]
homeassistant/components/deconz/climate.py:218: error: Argument 1 to "set_config" of "Thermostat" has incompatible type "**Dict[str, str]"; expected "Optional[bool]"  [arg-type]
homeassistant/components/deconz/climate.py:218: error: Argument 1 to "set_config" of "Thermostat" has incompatible type "**Dict[str, str]"; expected "Optional[List[str]]"  [arg-type]
homeassistant/components/deconz/climate.py:225: error: Argument 1 to "get" of "Mapping" has incompatible type "Optional[Literal['holiday', 'auto', 'manual', 'comfort', 'eco', 'boost', 'complex']]"; expected "str"  [arg-type]
homeassistant/components/deconz/climate.py:244: error: Unused "type: ignore" comment
homeassistant/components/deconz/climate.py:250: error: Unused "type: ignore" comment
homeassistant/components/deconz/climate.py:253: error: Unused "type: ignore" comment

* Simplify populating supported_hvac_modes
Fix tests
2022-04-14 23:19:42 +03:00
Fabian Affolter
a275b6a9ec Upgrade beautifulsoup4 to 4.11.1 (#70058) 2022-04-14 23:15:40 +03:00
Fabian Affolter
d3f5087a14 Upgrade praw to 7.5.0 (#70061) 2022-04-14 23:14:25 +03:00
Paulus Schoutsen
a537534880 Add media player features enum 2022-04-14 12:48:51 -07:00
Paulus Schoutsen
ea8ee02403 Check supported features in media player reproduce state (#70055) 2022-04-14 12:46:21 -07:00
Paulus Schoutsen
a5134d9ba2 Check supported features in media player reproduce state (#70055) 2022-04-14 12:44:41 -07:00
breakthestatic
7474e2f96a Add extra check for tuple length to avoid out of range error in Frontend resolver (#66470) 2022-04-14 11:57:08 -07:00
Paulus Schoutsen
d244af6df1 Bumped version to 2022.4.4 2022-04-14 10:09:26 -07:00
Raman Gupta
74d38e00e4 Fix tomorrow.io units... again... (#70029) 2022-04-14 10:09:20 -07:00
Joakim Sørensen
e01faa7a8f Handle KeyError when loading backups (#70028) 2022-04-14 10:09:20 -07:00
Fabian Affolter
45341c69c2 Remove myself from syslog codeowners (#70045) 2022-04-14 19:05:27 +02:00
MeIchthys
da5cb2afdb use _attr_ form for mullvad and add _unique_id (#68947) 2022-04-14 19:03:53 +02:00
Barry Williams
8bdce8ef68 use newer version of openhomedevice (#70022) 2022-04-14 10:00:27 -07:00
David F. Mulcahey
31df67a4c1 ZHA diagnostics fixes (#70000) 2022-04-14 10:00:26 -07:00
Aaron Bach
fe7c3a7ba5 Fix missing interior battery sensor for Ambient PWS (#69994) 2022-04-14 10:00:25 -07:00
epenet
276e8f185b Suppress UpnpResponseError in SamsungTV (#69984) 2022-04-14 10:00:24 -07:00
Michael Chisholm
741252a32d Fix config_flow error for UPnP info with single service (#69979) 2022-04-14 10:00:24 -07:00
Michael Chisholm
f8db38c0b6 Fix config_flow error from dlna_dmr for UPnP discovery info containing a single service (#69977) 2022-04-14 10:00:23 -07:00
uvjustin
4ce6b6dd22 Use ha-av instead of av and bump to v9.1.1-3 (#69974) 2022-04-14 10:00:22 -07:00
Joakim Sørensen
de0126c880 Fix available property in the base supervisor entity (#69966) 2022-04-14 10:00:21 -07:00
J. Nick Koston
7bd60bf0fb Fix HomeKit Controller device class for CO Sensors (#69949) 2022-04-14 10:00:20 -07:00
J. Nick Koston
69828da4bc Fix race during homekit controller pairing (#69948) 2022-04-14 10:00:20 -07:00
Diogo Gomes
261ae2ef33 Fix Prosegur availability through Alexa (#69941) 2022-04-14 10:00:18 -07:00
Sander
814cbcd13a Remove duplicate program (#69734) 2022-04-14 10:00:17 -07:00
Raman Gupta
60ac53374b Fix tomorrow.io units... again... (#70029) 2022-04-14 09:58:16 -07:00
J. Nick Koston
c73cf2cf50 Fix race during homekit controller pairing (#69948) 2022-04-14 09:57:36 -07:00
Joakim Sørensen
b44ce32c7f Handle KeyError when loading backups (#70028) 2022-04-14 09:56:59 -07:00
Barry Williams
ddafc50fb4 use newer version of openhomedevice (#70022) 2022-04-14 09:56:25 -07:00
Fabian Affolter
c2ba096224 Remove myself from alpha_vantage codeowners (#70034) 2022-04-14 18:25:12 +02:00
Sander
8886f1c4c0 Remove duplicate program (#69734) 2022-04-14 13:16:14 +02:00
uvjustin
44e9146463 Use ha-av instead of av and bump to v9.1.1-3 (#69974) 2022-04-14 13:36:25 +10:00
Allen Porter
36bb947cdf Fix bug in google calendar offset calculation (#70024)
Move the offset reached computation outside of the update method so that it is
computed when state updates occur rather than when data refreshes happen (which
are throttled and happen at most every 15 minutes).

Issue #69892
2022-04-13 19:04:59 -07:00
J. Nick Koston
c00e226b2a Add additional tplink ouis for dhcp discovery (#70020) 2022-04-14 01:27:38 +02:00
Aaron Bach
6cf7973a49 Eliminate duplicated run state logic in RainMachine (#70009) 2022-04-13 12:26:30 -10:00
Diogo Gomes
8e64ae8478 Add unique_id to utility_meter sensors (#68596)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-13 23:58:15 +02:00
Fabian Affolter
19e21cad60 Upgrade voluptuous to 0.13.1 (#70007) 2022-04-14 00:51:39 +03:00
Shay Levy
d4d819679c Add Shelly gen2 authentication support (#69753) 2022-04-14 00:30:03 +03:00
Maciej Bieniek
7edbe66b26 Add diagnostics platform for GIOS integration (#69918)
* Add diagnostics platform

* Fix fixture data
2022-04-14 00:12:56 +03:00
Aaron Bach
6853db71e3 Reduce precision of over-precise RainmMachine switch attributes (#70006)
* Reduce precision of over-precise RainmMachine switch attributes

* linting

* Simplify
2022-04-13 15:10:07 -06:00
David F. Mulcahey
53216883f8 ZHA diagnostics fixes (#70000) 2022-04-13 17:02:57 -04:00
Shay Levy
4bb4daf86d Bump aioshelly to 2.0.0 (#70005) 2022-04-13 23:56:04 +03:00
Michael Chisholm
37bf504828 Fix config_flow error for UPnP info with single service (#69979) 2022-04-13 10:53:04 -10:00
Kevin Worrel
258ca30bc0 Sensor updates (#69937)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-13 10:43:17 -10:00
Aaron Bach
c7b5d7107f Fix issue with relative time-based state updates in RainMachine zones (#69206)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-13 10:41:48 -10:00
Robert Svensson
5258022e45 Improve typing of deCONZ binary_sensor platform (#70003) 2022-04-13 23:08:20 +03:00
Franck Nijhof
d704d4f853 Add parallel automation/script actions (#69903) 2022-04-13 13:07:44 -07:00
Aaron Bach
3df6d26712 Fix missing interior battery sensor for Ambient PWS (#69994) 2022-04-13 11:30:19 -07:00
Diogo Gomes
b7fdec05e1 Fix Prosegur availability through Alexa (#69941) 2022-04-13 11:29:13 -07:00
DDanii
25504b697c Prevent item appear in media browser if name starts with dot (#69820) 2022-04-13 20:27:59 +02:00
rikroe
f456996e12 BMW Connected Drive: Remove deprecated services (#69808)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-04-13 20:26:06 +02:00
Marc Mueller
2346cb1cd7 Update pyupgrade to 2.32.0 (#69991) 2022-04-13 20:23:19 +02:00
Maciej Bieniek
74e9c050af Add diagnostics platform for Airly integration (#69874)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-04-13 19:22:37 +02:00
Diogo Gomes
fa28ee1f14 Remove deprecated unit configuration option from integration integration (#69157) 2022-04-13 19:19:34 +02:00
RDFurman
77efe385b7 Use honeywell keys for unique IDs (#69858) 2022-04-13 19:17:38 +02:00
Álvaro Fernández Rojas
c76b21e24e Support specifying Airzone System ID (#69751) 2022-04-13 19:12:21 +02:00
Fabian Affolter
00621617c2 Upgrade TwitterAPI to 2.7.12 (#69986) 2022-04-13 19:05:25 +02:00
Fabian Affolter
1a82121ae9 Remove myself from dweet codeowners (#69987) 2022-04-13 19:04:47 +02:00
Michael Chisholm
4e57b1b118 Fix config_flow error from dlna_dmr for UPnP discovery info containing a single service (#69977) 2022-04-13 19:04:03 +02:00
Erik J. Olson
1c2bea2dbd Fix gif autoplaying in Matrix chat clients (#69982) 2022-04-13 19:02:38 +02:00
Maciej Bieniek
4fe5eefc98 Add diagnostics platform to Xiaomi Miio integration (#69985) 2022-04-13 18:59:02 +02:00
Fabian Affolter
471871df4c Remove myself from Gitter codeowners (#69967)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-13 18:56:42 +02:00
Robert Hillis
52282210d8 Remove digital loggers integration (#69939) 2022-04-13 18:43:08 +02:00
Marc Mueller
e407960f68 Update pylint to 2.13.5 (#69989) 2022-04-13 18:36:05 +02:00
epenet
2b69dffe57 Suppress UpnpResponseError in SamsungTV (#69984) 2022-04-13 18:20:44 +02:00
Fabian Affolter
85fc1aebfe Remove fabaff as codeowner from NO-IP integration (#69988) 2022-04-13 17:59:32 +02:00
epenet
28ba57ed94 Add type hints to Vacuum platform (#69960) 2022-04-13 17:33:55 +02:00
Franck Nijhof
88cfc9229d Update sentry-sdk to 1.5.9 (#69940) 2022-04-13 17:21:11 +02:00
Fabian Affolter
427f3da6fd Remove myself from Flock codeowners (#69973) 2022-04-13 16:11:47 +02:00
Fabian Affolter
123a7f9a63 Remove myself from InfluxDB codeowners (#69964) 2022-04-13 16:09:02 +02:00
Fabian Affolter
93b714a978 Remove myself from Music Player Daemon codeowners (#69963) 2022-04-13 16:07:41 +02:00
Fabian Affolter
7a3e995030 Remove myself from Glances codeowners (#69962) 2022-04-13 16:05:14 +02:00
Fabian Affolter
7b52dc5abc Remove myself from PVOutput codeowners (#69957) 2022-04-13 16:04:09 +02:00
Fabian Affolter
ca9bbc72f3 Remove myself from Pi-hole codeowners (#69956) 2022-04-13 16:02:26 +02:00
Joakim Sørensen
dc53a39b0f Fix available property in the base supervisor entity (#69966) 2022-04-13 12:17:35 +02:00
Jeff Irion
0df30782a6 Bump androidtv to 0.0.67 (improve connect attempt logging) (#69721) 2022-04-13 09:38:07 +02:00
J. Nick Koston
ad5d7a845b Fix HomeKit Controller device class for CO Sensors (#69949) 2022-04-13 07:50:56 +02:00
Paulus Schoutsen
398c7be850 Merge pull request #69935 from home-assistant/rc 2022-04-12 16:19:07 -07:00
Paulus Schoutsen
25fc64a9e0 Guard against non http schemes (#69938) 2022-04-12 15:27:38 -07:00
Paulus Schoutsen
a543160070 Not all music are URLs (#69936) 2022-04-12 15:27:37 -07:00
rappenze
51bfe53444 Fix fibaro light state for rgb lights and HC3 (#69884) 2022-04-12 15:27:36 -07:00
Paulus Schoutsen
f6a3598070 Guard against non http schemes (#69938) 2022-04-12 15:27:20 -07:00
Diogo Gomes
d57863946d Don't allow <= 0 Hz frame rates in Generic Camera (#69814) 2022-04-13 00:00:55 +02:00
rappenze
6b5062eec5 Fix fibaro light state for rgb lights and HC3 (#69884) 2022-04-12 23:58:52 +02:00
Paulus Schoutsen
9e5c1e37c0 Not all music are URLs (#69936) 2022-04-12 14:50:07 -07:00
Franck Nijhof
fb92fc6a8e Trigger on not matching to/from states (#69760) 2022-04-12 14:18:23 -07:00
Paulus Schoutsen
cc6afdba3c Bumped version to 2022.4.3 2022-04-12 14:14:13 -07:00
puddly
8a8ee3c732 Downgrade ZHA dependency zigpy-deconz from 0.15.0 to 0.14.0 (#69927) 2022-04-12 14:14:09 -07:00
Erik Montnemery
27721d5b84 Fix adjusting statistics in ft³ (#69913)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-12 14:14:08 -07:00
Erik Montnemery
fee80a9d4a Fix adjusting 5-minute statistics (#69921) 2022-04-12 14:13:53 -07:00
Franck Nijhof
e49da79d1b Fix climate HVAC device condition (#69908) 2022-04-12 14:13:18 -07:00
epenet
ec541ca7ed Bump renault-api to 0.1.11 (#69900) 2022-04-12 14:13:17 -07:00
epenet
f5bb9e6047 Fix unique id in SamsungTV config flow (#69899)
* Fix unique id in SamsungTV config flow

* coverage

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-12 14:13:17 -07:00
Joakim Sørensen
242bd921df Handle add-on issues (#69897) 2022-04-12 14:13:16 -07:00
puddly
ba16156a79 Bump zigpy to 0.44.2 and and zha-quirks to 0.0.72 (#69879) 2022-04-12 14:13:15 -07:00
starkillerOG
84d8a7857d Motion blinds fix set absolute position service (#69873) 2022-04-12 14:13:14 -07:00
Erik Montnemery
9607dfe57c Use quickplay when casting splash for mediaplayer.turn_on (#69866) 2022-04-12 14:13:14 -07:00
Allen Porter
aeb8dc2c07 Fix google calendar timestamp out of range (#69863) 2022-04-12 14:13:13 -07:00
Mick Vleeshouwer
71fb2d09b7 Fix #69694 (#69850) 2022-04-12 14:13:12 -07:00
Guido Schmitz
fd8fb59f7a Bump devolo-home-control-api to 0.18.1 (#69840) 2022-04-12 14:13:11 -07:00
David F. Mulcahey
49bf1d6bff Add diagnostics support for ZHA (#69756) 2022-04-12 14:13:10 -07:00
Raj Laud
8bd07bcff2 Handle Squeezebox media ids that are not URLs (#69696) 2022-04-12 14:13:10 -07:00
J. Nick Koston
85bc863830 Fix profiler object growth logging test (#69211) 2022-04-12 14:13:09 -07:00
Steven Looman
0d6d8a17e3 Drop upnp options flow (#69134) 2022-04-12 14:10:54 -07:00
Erik Montnemery
ba07663e7d Fix adjusting statistics in ft³ (#69913)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-12 14:08:38 -07:00
puddly
7e6605331d Downgrade ZHA dependency zigpy-deconz from 0.15.0 to 0.14.0 (#69927) 2022-04-12 11:57:34 -07:00
Erik Montnemery
eb3458a3d2 Add MutexPool for recorder tests (#69410)
* Add MutexPool for recorder tests

* Fix get_schema_version

* Update test test_last_run_was_recently_clean

* Update test test_shutdown_before_startup_finishes

* Revert comments in test_write_lock_db

* Make the MutexPool lock a class variable

* Remove stale comment

* Move MutexPool

* Tweak debug prints
2022-04-12 07:41:46 -10:00
Raj Laud
f8870c6364 Handle Squeezebox media ids that are not URLs (#69696) 2022-04-12 10:08:54 -07:00
Guido Schmitz
ba4c11af5a Bump devolo-home-control-api to 0.18.1 (#69840) 2022-04-12 10:07:17 -07:00
Erik Montnemery
1645ab25a6 Use quickplay when casting splash for mediaplayer.turn_on (#69866) 2022-04-12 10:06:25 -07:00
Erik Montnemery
80ff1ecb2a Fix adjusting 5-minute statistics (#69921) 2022-04-12 18:10:17 +02:00
Erik Montnemery
a9742cc445 Drop frontend metadata from entity service schemas (#69894) 2022-04-12 18:09:06 +02:00
Franck Nijhof
d1f4b7a3d9 Fix climate HVAC device condition (#69908) 2022-04-12 15:31:59 +02:00
Franck Nijhof
67b200a532 Add if/else automation/script action (#69811)
Co-authored-by: Erik <erik@montnemery.com>
2022-04-12 15:02:17 +02:00
dependabot[bot]
5bb3d6487b Bump actions/cache from 3.0.1 to 3.0.2 (#69909)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 14:56:10 +02:00
dependabot[bot]
c9e76f9fc8 Bump actions/setup-python from 3.1.1 to 3.1.2 (#69910)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 14:55:50 +02:00
Erik Montnemery
a9d9773539 Update Meater codeowners (#69915) 2022-04-12 14:54:01 +02:00
epenet
30eb8ba9ad Bump renault-api to 0.1.11 (#69900) 2022-04-12 12:30:41 +02:00
epenet
d8d1e98d4e Fix unique id in SamsungTV config flow (#69899)
* Fix unique id in SamsungTV config flow

* coverage

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-11 23:37:05 -10:00
Joakim Sørensen
2ebbdf45f8 Handle add-on issues (#69897) 2022-04-12 11:00:55 +02:00
David F. Mulcahey
5f37f58673 Add diagnostics support for ZHA (#69756) 2022-04-11 22:35:29 -07:00
Franck Nijhof
c93c7e8eff Replace Camera STREAM_ constants with StreamType enum (#69871) 2022-04-11 16:27:27 -07:00
Glenn Waters
75fce1f036 Update elkm1_lib to 1.3.0 (#69885) 2022-04-11 12:28:39 -10:00
Franck Nijhof
81d90b1bc7 Add stop/error script/automation action (#67340) 2022-04-11 14:22:22 -07:00
Mick Vleeshouwer
af737f2be8 Fix #69694 (#69850) 2022-04-11 22:18:31 +03:00
puddly
701ed68bc4 Bump zigpy to 0.44.2 and and zha-quirks to 0.0.72 (#69879) 2022-04-11 22:11:51 +03:00
Allen Porter
2543f18e70 Fix google calendar timestamp out of range (#69863) 2022-04-11 20:02:22 +02:00
Sebastian Lövdahl
c787cebb84 Run stale workflow only in the home-assistant organization (#69875) 2022-04-11 19:56:30 +02:00
Franck Nijhof
7087020283 Allow any entity to match state condition (#69763) 2022-04-11 10:53:42 -07:00
Marvin Wichmann
094c185dee Update xknx to 0.20.2 (RC) (#69859) 2022-04-11 19:49:18 +02:00
Maciej Bieniek
85f698f873 Use pysnmplib instead of pysnmp (#69841) 2022-04-11 07:45:48 -10:00
ablack89
1b64dbec67 EmonCMS - Set device and state class for more feed units (#69872)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-04-11 19:37:53 +02:00
Mick Vleeshouwer
8c01decef7 Bump dependencies in Overkiz integration (#69855) 2022-04-11 19:27:49 +02:00
Marvin Wichmann
919a746ebc Mark KNX as a platinum quality integration (#69711) 2022-04-11 19:00:04 +02:00
starkillerOG
a00ffe9fc3 Motion blinds fix set absolute position service (#69873) 2022-04-11 18:52:16 +02:00
Franck Nijhof
27bc5e1d74 Add ColorMode enum to light platform (#69223) 2022-04-11 18:18:29 +02:00
Marvin Wichmann
3d30a757bf Update xknx to 0.20.2 (#69853) 2022-04-11 16:51:13 +02:00
Robert Svensson
81a55703bf Improve typing of deCONZ alarm control panel (#69680)
* Improve typing of deCONZ alarm control panel

* Fix review comments
2022-04-11 16:19:54 +02:00
dependabot[bot]
6bc74ca745 Bump actions/download-artifact from 2 to 3 (#69837)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 13:15:03 +02:00
dependabot[bot]
7719a555c5 Bump actions/stale from 4 to 5 (#69836)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 13:14:40 +02:00
Franck Nijhof
6524dd8fb7 Add support for expanding zones in templates (#69793) 2022-04-11 12:59:45 +02:00
Raman Gupta
b325c112b4 Add SelectorType enum and TypedDicts for each selector's data (#68399)
* rebase off current

* rearrange

* Overload selector function

* Update/fix all selector references

* better typing?

* remove extra option

* move things around

* Switch to Sequence type to avoid ignoring mypy error

* Get rid of ...'s

* Improve typing to reduce number of ignores

* Remove all typing ignores

* Make config optional for selectors that don't need a config

* add missing unit prefixes

* Rename TypedDicts

* Update homeassistant/helpers/selector.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* review feedback

* remove peta from integration integration

* Fix min_max

* Revert change to selector function

* Fix logic

* Add typing for selector classes

* Update selector.py

* Fix indent

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-11 09:20:56 +02:00
Robert Svensson
e996142592 Improve typing of deCONZ gateway (#69459)
* Improve typing of deCONZ gateway
* Fix review comments
2022-04-11 09:13:25 +02:00
Franck Nijhof
800bf926aa Add attribute to zone indicating persons in zone (#69767)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-10 23:36:40 -07:00
J. Nick Koston
32a10648a5 Downgrade av to 8.1.0 to fix memory leak (#69833) 2022-04-10 22:58:30 -07:00
jjlawren
200ef847c9 Speed up Plex playback for multiple videos (#69821) 2022-04-10 22:29:43 -07:00
jjlawren
016f67b855 Retry on more Plex connection failures during startup (#69822) 2022-04-10 22:25:19 -07:00
ollo69
bc2ba8e1c8 Add missing type declaration to AsusWrt Scanner Entity (#69773) 2022-04-10 14:28:12 -07:00
Daniel Hjelseth Høyer
801b0b55a8 Update Tibber library (#69807) 2022-04-10 14:17:21 -07:00
Raman Gupta
9b49deea5e Reduce API limit for tomorrow.io (#69818) 2022-04-10 14:07:28 -07:00
Franck Nijhof
287edf9ac0 Fix area name unchanged gets written (#69813) 2022-04-11 00:03:01 +03:00
Allen Porter
f99b6004ea Cleanup calendar APIs and introduce a dataclass for representing events (#68843)
* Introduce data class to hold calendar event data

* Rename CalendarEventDevice to CalendarEntity

* Apply suggestions from code review

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

* Fix docstring on google calendar api conversion function.

* Update todoist to new calendar enttiy api, tested manually

* Add back old API for a legacy compatibility layer

* Add deprecation warning for old calendar APIs

* Fix deprecation warning

* Fix merge for missing summary #69520

* Add mypy typing for newly introduced classes

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-10 12:04:07 -07:00
Michael Davie
c98d120ba0 Bump slixmpp to 1.8.2 (#69794) 2022-04-10 20:57:56 +03:00
Diogo Gomes
8fe9e364e1 Update integration Riemann sum to use _attr* (#69769)
* move to _attr

* improve debug

* review comment

Co-authored-by: Shay Levy <levyshay1@gmail.com>

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-04-10 20:09:33 +03:00
rikroe
8b2774e082 Fix converting (value, unit) tuples if value is None (#69802)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-04-10 19:40:03 +03:00
Robert Svensson
3373938cdb Improve typing of deCONZ events (#69478) 2022-04-10 17:18:37 +02:00
Maximilian
987823ea97 Upgrade pynina to 0.1.8 (#69771) 2022-04-10 17:07:22 +03:00
Matthias Alphart
b3d1574a71 Refactor KNX config flow and validate user input (#69698)
* validate config flow user input

* test flow for invalid user input

* validate multicast address blocks

* Update homeassistant/components/knx/config_flow.py

Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>

Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>
2022-04-10 15:56:45 +02:00
Michael
4853ce208f Move constants into corresponding platforms in Synology DSM (#69752)
* move sensor related constants

* move switch related constants

* move binary sensor related constants
2022-04-10 16:45:58 +03:00
Robert Svensson
e44d34018e Improve typing of deCONZ services (#69444) 2022-04-10 15:24:28 +02:00
azrdev
afd21e4084 Update python-mpd2 to 3.0.5 (#69304) 2022-04-10 14:16:23 +02:00
Malte Franken
0606f4d18f Bump aio_georss_gdacs to 0.7 (#69743) 2022-04-10 11:36:35 +02:00
Allen Porter
a063f55c82 Handle expired credentials in reauth in google calendar initialization (#69772)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-09 23:01:48 -07:00
Allen Porter
60681a3800 Bump rtsp-to-webrtc to 0.5.1 (#69776) 2022-04-09 22:41:18 -07:00
starkillerOG
f579c6d982 Fix Netgear switch state update (#69597) 2022-04-09 22:40:48 -07:00
Christopher Bailey
ad29d89484 Fix unifiprotect for 2.0.0-beta2 of UniFi Protect (#69762) 2022-04-09 11:34:48 -10:00
Mike Fugate
836b051be9 Fix SleepIQ firmness number step and min values (#69757)
* fix sleepiq firmness number step and min values

* add asserts for min/max/step attributes
2022-04-09 22:46:58 +03:00
J. Nick Koston
fe6a4bfb1d Remove EVENT_TIME_CHANGED and EVENT_TIMER_OUT_OF_SYNC (#69643)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-09 09:05:54 -10:00
J. Nick Koston
689b347904 Increase tplink effects random seed allowed range to 1-600 (#69725)
* Increase tplink effects random seed allowed range to 1-600

Reported https://community.home-assistant.io/t/tp-link-integration-support-for-kl430-led-light-strip/190635/62?u=bdraco

* cover
2022-04-09 10:08:17 +03:00
Allen Porter
d76fb2d891 Remove unnecessary async from test fixtures (#69722) 2022-04-09 08:33:24 +02:00
Dave T
6d17f4ffff Support webp still image format in generic camera (#69718) 2022-04-08 23:06:34 -07:00
epenet
071ef6c74f Fix upnp subscription in SamsungTV (#69652)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-08 23:05:00 -07:00
KNXBroker
632d75e009 Fix soundtouch service calls (#69655) 2022-04-08 23:04:11 -07:00
Dave T
6fd041b290 Don't test config on yaml import for generic camera (#69714) 2022-04-08 22:59:54 -07:00
Shay Levy
06e4c2f351 Fix Shelly gen2 cover unavailable when not calibrated (#69671) 2022-04-08 22:54:42 -07:00
Allen Porter
06d2aeec6b Refresh google calendar tokens with invalid expiration times (#69679)
* Refresh google calendar tokens with invalid expiration times

* Update tests/components/google/conftest.py

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

* Remove unnecessary async methods in functions being touched already

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-08 20:27:58 -07:00
Marvin Wichmann
b5b514b62f Full test coverage for KNX integration (#69697)
* Full test coverage for KNX integration

* Allow for 0 values, since we all live at those kind of areas in the world

* Remove unneeded method

* Add missing test for climate mode

* Cleanup test and remove fixture that was used only once
2022-04-09 00:33:50 +02:00
MatthewFlamm
d060d57a87 bump pynws (#69634) 2022-04-08 23:28:03 +03:00
Allen Porter
d54cb49f32 Remove "XXX" from calendar tests and implement real test (#69677)
* Remove "XXX" from calendar tests and implement real test

Remove a placeholder that was accidentally commited in the
calendar tests, and replace with a real test.

* Remove stale comment
2022-04-08 18:46:51 +03:00
Francois Chagnon
c70c9ac341 Add None guard for zwave_js humidifier entity (#69667)
* Add None guard for humidifier entity is_on

* Add guards in more places

* Update homeassistant/components/zwave_js/humidifier.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-08 17:27:06 +02:00
epenet
fa13a243d4 Deprecate SUPPORT_* constants in siren (#69648) 2022-04-08 16:38:57 +03:00
epenet
2ad096733a Suppress Upnp parsing errors in SamsungTV (#69664) 2022-04-08 16:36:43 +03:00
J. Nick Koston
5076437413 Reduce indent in recorder event processing (#69659) 2022-04-07 23:37:20 -10:00
J. Nick Koston
72fffde77a Fix spelling of periodic in recorder (#69658)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-07 23:37:02 -10:00
epenet
89dd199ac2 Use SirenEntityFeature enum in mqtt (#69647) 2022-04-08 10:37:12 +02:00
epenet
f0a021d255 Deprecate SUPPORT_* constants in camera (#69481) 2022-04-08 10:22:42 +02:00
dependabot[bot]
4298f83b93 Bump actions/setup-python from 3.1.0 to 3.1.1 (#69646)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-08 10:16:08 +02:00
epenet
9eba1425e0 Use SirenEntityFeature enum in demo (#69649) 2022-04-08 09:30:15 +02:00
epenet
af57f9c6a4 Use SirenEntityFeature enum in components (#69645) 2022-04-08 09:13:12 +02:00
Allen Porter
1cce0a5744 Fix bugs calendar oauth token date handling (#69641) 2022-04-07 21:53:30 -07:00
J. Nick Koston
66f0a3816a Reduce memory pressure during database migration (#69628) 2022-04-07 18:29:31 -10:00
Matt Zimmerman
8c00fde27d [powerwall] Skip backup reserve sensor if data is unavailable (#69637) 2022-04-07 20:34:00 -07:00
David F. Mulcahey
261e12e881 Fix Samjin Multi acceleration in ZHA (#69636) 2022-04-07 20:53:12 -04:00
David F. Mulcahey
2ae3372128 Bump ZHA quirks to 0.0.71 (#69633) 2022-04-07 17:16:36 -07:00
Erik Montnemery
949b0e1b65 Don't allow in-memory SQLite database (#69616) 2022-04-08 00:43:09 +02:00
puddly
fab1f29a29 Move new zha_event command parameters into a params key to ensure backwards compatibility (#69631) 2022-04-07 15:33:14 -07:00
north3221
ad946cf9d2 Fix tado default overlay for when set pre new overlay feature (#69584) 2022-04-07 15:23:07 -07:00
puddly
74bec58bfa Fix ZHA group creation (#69629) 2022-04-07 15:02:14 -07:00
Dave T
be8e28503c Generic fix stream thumbnail (#69378) 2022-04-07 15:01:29 -07:00
Álvaro Fernández Rojas
7519436f60 Update aioairzone to v0.3.3 (#69615) 2022-04-08 00:00:29 +02:00
Diogo Gomes
a3cfb6d4ae Fix utility_meter reset service (#69612) 2022-04-07 23:55:34 +02:00
epenet
7ce9b5910a Deprecate SUPPORT_* constants in alarm_control_panel (#69475) 2022-04-07 23:28:32 +02:00
epenet
7635cafd47 Deprecate SUPPORT_* constants in cover (#69484) 2022-04-07 23:27:55 +02:00
epenet
5b6cb6bffd Deprecate SUPPORT_* constants in media_player (#69518) 2022-04-07 23:26:09 +02:00
epenet
6feeece574 Deprecate SUPPORT_* constants in climate (#69482) 2022-04-07 23:25:14 +02:00
Erik Montnemery
f4fb29200c Allow empty config in discovery.async_load_platform (#69619) 2022-04-07 23:24:47 +02:00
epenet
15348965f3 Deprecate SUPPORT_* constants in fan (#69514) 2022-04-07 23:23:29 +02:00
J. Nick Koston
6dc72ebf6c Mark backgrounds optional for tplink random effects (#69622) 2022-04-07 23:19:17 +02:00
epenet
a61ac3ddc6 Add EntityFeature enum to Siren (#69585)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-04-07 23:08:09 +02:00
Matt Zimmerman
340dd3ab82 Bump smarttub to 0.0.31 (#69599) 2022-04-07 23:07:33 +02:00
Patrik Lindgren
74021d62da Finalize deprecation of groups in Tradfri integration (#69460)
* Finalise cleanup of groups

* Fix tests

* Remove

* Revert change
2022-04-07 22:19:12 +02:00
epenet
c583df74e4 Use EntityFeature enums in template (#69583) 2022-04-07 20:08:57 +02:00
epenet
c8e06e2456 Use EntityFeature enums in lutron_caseta (#69588) 2022-04-07 18:05:59 +02:00
Jason Hunter
62b6d03321 Log which device has the time discrepancy (#69595) 2022-04-07 18:04:09 +02:00
epenet
d56f6f39c1 Use EntityFeature enums in mobile_app (#69592) 2022-04-07 18:01:19 +02:00
epenet
10ed9cfdf2 Use EntityFeature enums in overkiz (#69587) 2022-04-07 18:00:24 +02:00
epenet
04dab04ee7 Use EntityFeature enums in nest (#69590) 2022-04-07 07:52:18 -07:00
Erik Montnemery
4a7c978f69 Speedup recorder test test_write_lock_db (#69578) 2022-04-07 15:36:58 +02:00
epenet
075c362fd7 Deprecate SUPPORT_* constants in humidifier (#69519) 2022-04-07 15:36:16 +02:00
epenet
381e669b64 Deprecate SUPPORT_* constants in water-heater (#69512) 2022-04-07 15:33:09 +02:00
epenet
4a0e00d939 Use EntityFeature enum in components (k**) (#69411)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-04-07 15:31:54 +02:00
epenet
2e7c65495b Use EntityFeature enums in aladdin_connect (#69574) 2022-04-07 15:23:50 +02:00
epenet
c61378337a Use EntityFeature enums in emulated_hue (#69573) 2022-04-07 15:22:56 +02:00
epenet
2bc25aa92a Use EntityFeature enums in forked_daapd (#69572) 2022-04-07 15:22:09 +02:00
epenet
cac8d71764 Use EntityFeature enum in components (o**) (#69433) 2022-04-07 15:15:05 +02:00
epenet
3aeb53ec98 Use EntityFeature enum in components (y**) (#69470) 2022-04-07 15:10:38 +02:00
epenet
190ef4ee35 Use EntityFeature enum in components (s** 2/2) (#69441) 2022-04-07 15:06:34 +02:00
epenet
80a857c6c2 Use EntityFeature enum in components (p**) (#69434) 2022-04-07 15:03:42 +02:00
epenet
b8fc399882 Use EntityFeature enum in components (r**) (#69437) 2022-04-07 14:55:09 +02:00
Erik Montnemery
cbb76824e9 Migrate mystrom light to color_mode (#69428) 2022-04-07 14:53:23 +02:00
Erik Montnemery
0c72a39e23 Migrate mochad light to color_mode (#69425) 2022-04-07 14:52:49 +02:00
Erik Montnemery
c43bd047fd Migrate litejet light to color_mode (#69421) 2022-04-07 14:52:24 +02:00
Erik Montnemery
09f4e31343 Migrate lw12wifi light to color_mode (#69424) 2022-04-07 14:51:59 +02:00
Erik Montnemery
5110565488 Migrate lutron light to color_mode (#69422) 2022-04-07 14:50:21 +02:00
Erik Montnemery
e8852e0f30 Migrate lcn light to color_mode (#69419) 2022-04-07 14:49:12 +02:00
epenet
4f494a876e Use EntityFeature enums in alexa (#69570) 2022-04-07 14:46:50 +02:00
epenet
1ec08d2fe0 Use EntityFeature enum in components (x**) (#69469) 2022-04-07 14:39:09 +02:00
epenet
3c57adefdb Deprecate SUPPORT_* constants in lock (#69513) 2022-04-07 14:14:38 +02:00
epenet
bbf19582bb Use EntityFeature enum in components (t**) (#69457) 2022-04-07 14:07:27 +02:00
epenet
889e1f4442 Use EntityFeature enum in vizio (#69571) 2022-04-07 14:02:17 +02:00
J. Nick Koston
23b84449e6 Bump sqlalchemy to 1.4.35 (#69534)
Changes: https://docs.sqlalchemy.org/en/14/changelog/changelog_14.html#change-1.4.35
2022-04-07 14:59:23 +03:00
J. Nick Koston
47c3aef7a2 Fix registered entities without a category not being exclude-able in the HomeKit UI (#69543) 2022-04-07 13:46:41 +02:00
Joakim Sørensen
a5dc95e715 Fix adding OS entities for supervised installations (#69539) 2022-04-07 13:34:20 +02:00
Erik Montnemery
0ad9da9dd0 Always use a commit interval of 0 for the in memory db in tests (#69556) 2022-04-07 13:04:08 +02:00
J. Nick Koston
5c7c09726a Cleanup recorder history typing (#69408) 2022-04-07 00:09:05 -10:00
J. Nick Koston
97aa65d9a4 Run energy db calls in the db executor (#69544)
Fixes #69537
2022-04-07 11:50:49 +02:00
epenet
6773c252d2 CI: Use partial runs for prettier (#69546) 2022-04-07 11:48:43 +02:00
epenet
4fe6b0c140 Adjust inheritance in rflink lights (#69541)
* Add color-more to RflinkLight

* Adjust inheritance
2022-04-07 10:34:24 +02:00
epenet
54bb86d198 Migrate upb light to color_mode (#69524)
* Migrate upb light to color_mode

* Add supported_color_modes

* Apply code review
2022-04-07 09:58:50 +02:00
epenet
3e426c0fa6 Use EntityFeature enum in mqtt (#69416) 2022-04-07 09:44:26 +02:00
epenet
4592583988 Migrate velbus light to color_mode (#69525)
* Migrate velbus light to color_mode

* Add COLOR_MODE_ONOFF
2022-04-07 09:43:18 +02:00
epenet
d614ccd161 Deprecate SUPPORT_* constants in remote (#69515) 2022-04-07 09:42:36 +02:00
epenet
d33fbbfb6d Migrate tellduslive light to color_mode (#69522) 2022-04-07 09:40:17 +02:00
epenet
75b1760b29 Migrate rflink light to color_mode (#69532)
* Migrate rflink light to color_mode

* Add COLOR_MODE_ONOFF
2022-04-07 09:39:22 +02:00
epenet
d5ab7e7525 Use EntityFeature enum in components (s** 1/2) (#69439) 2022-04-06 21:38:14 -10:00
epenet
e6d8aa34fa Use EntityFeature enum in components (i**) (#69409) 2022-04-06 21:35:27 -10:00
epenet
75eec850c1 Use EntityFeature enum in components (u**) (#69462) 2022-04-06 21:35:15 -10:00
epenet
95fb4695e4 Use EntityFeature enum in components (l**) (#69412) 2022-04-06 21:34:58 -10:00
epenet
96819fff74 Use EntityFeature enum in components (n**) (#69432) 2022-04-06 21:34:29 -10:00
epenet
2cc3bfa056 Migrate sisyphus light to color_mode (#69521) 2022-04-07 09:18:06 +02:00
epenet
ee71dcca6c Migrate unifiled light to color_mode (#69523) 2022-04-07 09:15:20 +02:00
epenet
72429a6c04 Migrate x10 light to color_mode (#69526) 2022-04-07 09:13:19 +02:00
epenet
34a9a1d152 Migrate unifiprotect light to color_mode (#69527) 2022-04-07 09:12:28 +02:00
epenet
e66c4e11c9 Migrate tellstick light to color_mode (#69528) 2022-04-07 09:11:43 +02:00
epenet
3828c36202 Migrate smarttub light to color_mode (#69529) 2022-04-07 09:10:40 +02:00
epenet
766e6f2e9c Migrate rfxtrx light to color_mode (#69530) 2022-04-07 09:09:47 +02:00
epenet
71b298f3ed Use EntityFeature constants in homekit (#69535) 2022-04-06 21:09:27 -10:00
Erik Montnemery
9834197f71 Migrate myq light to color_mode (#69427) 2022-04-06 21:09:07 -10:00
epenet
a10a1794d9 Migrate pilight light to color_mode (#69531) 2022-04-07 09:08:41 +02:00
Erik Montnemery
8cba371318 Migrate lutron_caseta light to color_mode (#69423) 2022-04-06 21:08:22 -10:00
Patrik Lindgren
af5d29735f Deprecate SUPPORT_*-constants for Tradfri integration (#69368)
* Refactor constants

* Remove _LOGGER

* Fix sort order

* Refactor constats

* Run isort

* Remove SUPPORTED_ constants from Tradfri integration

* Remove constant

* Remove line

* Use brackets

* Add documentation

* Address review comments
2022-04-07 09:06:29 +02:00
epenet
f194f7809b Use EntityFeature enum in components (v**) (#69465)
* Use EntityFeature enum in vallox

* Use EntityFeature enum in velbus

* Use EntityFeature enum in velux

* Use EntityFeature enum in venstar

* Use EntityFeature enum in vera

* Use EntityFeature enum in verisure

* Use EntityFeature enum in vesync

* Use EntityFeature enum in vicare

* Use EntityFeature enum in vivotek

* Use EntityFeature enum in vizio

* Use EntityFeature enum in vlc

* Use EntityFeature enum in vlc_telnet

* Use EntityFeature enum in volumio
2022-04-07 08:42:18 +02:00
Allen Porter
10a1b1f734 Gracefully handle empty summary in google calendar (#69520)
Gracefully handle empty summary in google calendar matching the old behavior
before some code cleanup.
2022-04-07 08:26:07 +02:00
epenet
fbea950eb0 Use EntityFeature enum in components (z**) (#69471)
* Use EntityFeature enum in zha

* Use EntityFeature enum in zhong_hong

* Use EntityFeature enum in ziggo_mediabox_xl

* Use EntityFeature enum in zwave_js

* Use EntityFeature enum in zwave_me
2022-04-07 08:21:31 +02:00
Michael Davie
aaf64f728e Bump env_canada to 0.5.22 (#69503) 2022-04-06 22:35:13 -07:00
Allen Porter
c07100e519 Move Local OAuth http endpoint registration to auth component (#69507) 2022-04-06 22:34:31 -07:00
Robert Hillis
8ef7ac1877 Remove deprecated Wanted sensor in radarr (#69500) 2022-04-07 08:32:52 +03:00
J. Nick Koston
5bcb795bca Move handling of non-secure login to the elkm1 library (#69483) 2022-04-06 22:32:31 -07:00
epenet
f11f1db177 Use EntityFeature enum in switch_as_x (#69442) 2022-04-07 08:14:10 +03:00
epenet
a6f112df80 Use EntityFeature enum in components (w**) (#69468)
* Use EntityFeature enum in webostv

* Use EntityFeature enum in wemo

* Use EntityFeature enum in whirlpool

* Use EntityFeature enum in wilight
2022-04-07 08:12:39 +03:00
Glenn Waters
caff81f613 Add service to set type of radar to retrieve. (#68252) 2022-04-06 13:55:37 -10:00
Joakim Sørensen
280dcbed18 Bump pyhaversion from 22.04.0 to 22.4.1 (#69486) 2022-04-06 16:13:11 -07:00
J. Nick Koston
d6619dd4bc Fix reloading the sun integration (#69495) 2022-04-06 16:06:22 -07:00
Dave T
c6bba19e05 Continue on template error during yaml import for generic (#69440)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-06 15:49:59 -07:00
Shay Levy
fe8e193225 Fix remote_rpi_gpio missing requirement (#69488) 2022-04-06 15:48:47 -07:00
Michael
95421b1ae7 Ignore IPv6 link local address on ssdp discovery in Fritz!Smarthome (#69455) 2022-04-06 15:45:46 -07:00
J. Nick Koston
02d245a31a Fix reload race in unifiprotect (#69485)
- The integration already has a reload listener installed
  once it is setup. We should not reload from the config
  flow since they compete
2022-04-07 00:21:50 +03:00
Erik Montnemery
181142aae7 Migrate modbus light to color_mode (#69426) 2022-04-06 20:27:03 +02:00
Erik Montnemery
def305cf46 Improve the use of bakeries in recorder (#69418) 2022-04-06 08:00:10 -10:00
J. Nick Koston
dd6a0e3a89 Fix elkm1 connection when panel drops VN request (#69454) 2022-04-06 10:45:40 -07:00
Paulus Schoutsen
c765e11f55 Fix telegram broadcast (#69452) 2022-04-06 10:44:02 -07:00
Raman Gupta
bc194cd209 Add zeroconf discovery to zwave_js (#69382) 2022-04-06 18:46:13 +02:00
Franck Nijhof
c0e9cfedfb Add device trigger support to Update entity (#69395) 2022-04-06 08:50:21 -07:00
epenet
5e2cc2b9b0 Use EntityFeature enum in components (m**) (#69414)
* Use EntityFeature in melcloud

* Use EntityFeature in mystrom

* Use EntityFeature in mysensors

* Use EntityFeature in myq

* Use EntityFeature in mpd

* Use EntityFeature in monoprice

* Use EntityFeature in moehlenhoff_alpha2

* Use EntityFeature in modern_forms

* Use EntityFeature in modbus

* Use EntityFeature in melissa

* Use EntityFeature in mediaroom

* Use EntityFeature in maxcube

* Use EntityFeature in manual_mqtt

* Fix maxcube tests

* Revert "Use EntityFeature in modbus"

This reverts commit 56cf9d900d71cdb1d39d20bde9a78ba6aef560a7.

* Revert "Use EntityFeature in myq"

This reverts commit 44a31b1a03b4ca23a65d600a2f002f47e80cee73.

* Revert "Use EntityFeature in mystrom"

This reverts commit 7260ee0384ff46426c919e65b3725200f5677b6a.

* Revert "Revert "Use EntityFeature in modbus""

This reverts commit 916a612a6091221359aca8570a76eb7a03dbce20.

* Revert "Revert "Use EntityFeature in myq""

This reverts commit a6be42fa1762ea3ab66f97a89b254e7d2ba76a33.
2022-04-06 17:33:41 +02:00
Erik Montnemery
8e090a8c04 Minor tweak of recorder typing (#69415) 2022-04-06 08:08:00 -07:00
René Klomp
4a65e54665 Update pysma to 0.6.11 (#69397) 2022-04-06 13:01:55 +02:00
dependabot[bot]
753d14e0f5 Bump codecov/codecov-action from 2.1.0 to 3 (#69383)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-06 12:54:43 +02:00
epenet
a661e06e25 Use EntityFeature in homematic (#69405)
* Use EntityFeature in homematic

* Use EntityFeature in homematicip_cloud
2022-04-06 12:33:35 +02:00
hesselonline
ef14ae85c8 Fix Wallbox charger status (#68708)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-06 12:05:50 +02:00
epenet
a5b919ec6b Use EntityFeature in homekit_controller (#69404) 2022-04-06 12:04:58 +02:00
epenet
999e2f3bf0 Use EntityFeature enum in components (h**) (#69403) 2022-04-06 11:59:23 +02:00
Brynley McDonald
38cfa83e23 Fix units for Flick Electric sensor (#69396) 2022-04-06 11:57:06 +02:00
epenet
a3e0a1d04d Use EntityFeature in group (#69393) 2022-04-06 11:56:05 +02:00
epenet
0b18459ab8 Use EntityFeature enum in evohome (#69385) 2022-04-06 11:53:41 +02:00
epenet
dae2cf2827 Use EntityFeature enum in esphome (#69386) 2022-04-06 11:52:59 +02:00
epenet
78045df227 Use EntityFeature enum in components (e**) (#69384) 2022-04-06 11:03:29 +02:00
epenet
9ab9fcfc56 Use EntityFeature enum in components (f**) (#69389) 2022-04-06 10:55:25 +02:00
epenet
1fe5b1e68a Use EntityFeature in ffmpeg (#69390) 2022-04-06 10:53:03 +02:00
epenet
20c1a155b6 Use EntityFeature enum in components (g**) (#69394) 2022-04-06 10:46:44 +02:00
epenet
42d0a4b81e Use EntityFeature in geniushub (#69392)
* Use EntityFeature in geniushub

* Cleanup _supported_features
2022-04-06 11:22:33 +03:00
Erik Montnemery
7b5dd4a623 Restore attributes of template binary sensor (#69350) 2022-04-05 22:58:12 -07:00
Raman Gupta
79dc551f5a Fix regression in zwave_js (#69312)
* Handle unique ID update during discovery step

* Use callback to convert unique IDs to strings

* Adjust test to make sure logic works

* Fix other tests

* Move comment

* Move migration to async_setup

* Remove async_migrate_entry since we take care of it during setup

* Remove unused test
2022-04-06 00:40:33 -04:00
ollo69
add01d434e Minor changes on AndroidTV diagnostics (#69197) 2022-04-05 21:32:28 -07:00
J. Nick Koston
4b5033d08f Abort samsungtv discovery of legacy devices when unique id not available (#69376) 2022-04-05 16:38:55 -07:00
Johan Nenzén
f31d1164e5 Bump pyplaato to 0.0.16 (#69361) 2022-04-05 16:33:13 -07:00
Zack Barett
39c485ba88 20220405.0 (#69377) 2022-04-05 16:32:24 -07:00
J. Nick Koston
bde3646293 Always use a commit interval of 0 for the in memory db in tests (#69330) 2022-04-05 12:06:06 -10:00
epenet
c8df2656b1 Use EntityFeature enum in components (d**) (#69358) 2022-04-06 00:00:37 +02:00
Franck Nijhof
9e2198fa47 Disable Spotify Media Player entity by default (#69372) 2022-04-05 14:54:03 -07:00
epenet
8af37235ec Use EntityFeature enum in components (b**) (#69336) 2022-04-05 23:53:45 +02:00
epenet
6343752f98 Use EntityFeature enum in components (c**) (#69341) 2022-04-05 23:49:20 +02:00
epenet
246f4e081a Use EntityFeature enum in components (a**) (#69333) 2022-04-05 23:42:05 +02:00
J. Nick Koston
8b2948f030 Ensure state is restored when turning on tplink lights without a color mode (#69308) 2022-04-05 13:46:12 -07:00
Robert Svensson
d6d7f3cb3c Bump pydeconz to v88 (#69369) 2022-04-05 13:44:04 -07:00
Philip Allgaier
da55c48cce Prevent issues with config update of "Timer" integration (unknown "restore" key) (#69332) 2022-04-05 22:22:03 +03:00
shbatm
433a946f62 Bump PyISY to 3.0.6 to fix group statuses (#69345) 2022-04-05 22:20:38 +03:00
Erik Montnemery
fcad10dd0d Improve integration translation strings (#69246)
* Improve integration translation strings

* Update
2022-04-05 20:08:17 +02:00
Marvin Wichmann
2689f1a7fd Update XKNX to version 0.20.1 (#69353) 2022-04-05 21:07:11 +03:00
MoellerDi
c9a754b29a Fix "Camera not found" error in microsoft_face integration (#69295) 2022-04-05 20:00:12 +02:00
starkillerOG
b40df08eb5 bump pynetgear to 0.9.4 (#69346)
* Bump home-assistant/wheels from 2022.01.0 to 2022.01.1

Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2022.01.0 to 2022.01.1.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2022.01.0...2022.01.1)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-type: direct:production
...

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

* Bump home-assistant/wheels from 2022.01.1 to 2022.01.2

Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2022.01.1 to 2022.01.2.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2022.01.1...2022.01.2)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-type: direct:production
...

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

* Bump home-assistant/builder from 2021.12.0 to 2022.01.0

Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2021.12.0 to 2022.01.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2021.12.0...2022.01.0)

---
updated-dependencies:
- dependency-name: home-assistant/builder
  dependency-type: direct:production
...

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

* bump pynetgear to 0.9.4

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-05 17:31:54 +03:00
Erik Montnemery
7b18d511cc Migrate homematic light to color_mode (#69267) 2022-04-05 15:54:27 +02:00
J. Nick Koston
1a9420dda0 Try exact match first for update state (#69335)
- Exact matches are much cheaper than creating an AwesomeVersion
  and calling the __gt__ method, and since most of the time the
  result is expected to be off, we want to optimize for this case
2022-04-05 15:51:25 +02:00
epenet
2cf3057ff1 Add basic type hints to utility_meter (#69325)
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2022-04-05 15:43:10 +02:00
Erik Montnemery
28350b9792 Revert "Use recorder executor in demo (#69327)" (#69334)
This reverts commit ff84104f45.
2022-04-05 14:50:58 +02:00
Patrik Lindgren
04fc3a1f25 Cleanup constants in Tradfri integration (#69125)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-05 14:00:45 +02:00
Leonardo Merza
c8b4696ba2 Add vesync 600S support (#69311) 2022-04-05 13:56:26 +02:00
epenet
ad98bedd4a Add basic type hints to zwave_me (#69322) 2022-04-05 13:44:20 +02:00
J. Nick Koston
e5c1cc35e1 Fix roomba doing I/O in the event loop (#69339) 2022-04-05 13:10:20 +02:00
Joakim Sørensen
caa5b8f96c Bump pyhaversion from 22.02.0 to 22.04.0 (#69329) 2022-04-05 13:57:33 +03:00
Martin Hjelmare
ff84104f45 Use recorder executor in demo (#69327) 2022-04-05 11:46:42 +02:00
epenet
336c0a1ec7 Add basic type hints to meater (#69323) 2022-04-05 11:31:37 +03:00
epenet
20126363f2 Add basic type hints to vulcan (#69321) 2022-04-05 11:28:52 +03:00
epenet
36be2bfd75 Add basic type hints to subaru (#69324) 2022-04-05 11:28:07 +03:00
Bram Gerritsen
9c949f7f8f PhilipsTV - Add Ambilight + Hue switch entity (#69141)
* Bump ha-philipsjs requirements

* Directly write correct ha state after switching on

* Update homeassistant/components/philips_js/switch.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

* Update homeassistant/components/philips_js/switch.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

* Format with black

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-04-05 10:23:07 +02:00
Sebastian Lövdahl
5d07be7190 Add GitHub PRs and issues extension to devcontainer (#69296) 2022-04-05 10:17:56 +02:00
Erik Montnemery
821908ca45 Include threadname and time in pytest logs (#69307)
* Include threadname and time in pytest logs

* Add failing test

* Include the name of the logger

* Revert "Add failing test"

This reverts commit 5dbc1375722909cb5a0022b3e1c021f3bb5415cb.
2022-04-05 10:10:16 +02:00
J. Nick Koston
ec131d685e Auto repack the database on the second sunday of the month (#69314) 2022-04-04 21:39:12 -10:00
Daniel Hjelseth Høyer
0ab866cd23 Update Tibber lib (#69300) 2022-04-04 23:55:17 -07:00
Toke Høiland-Jørgensen
8145b103fb Fix network starting with no configured IPv4 addresses (#69030)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-04 23:53:50 -07:00
Raman Gupta
6965a6d13b Fix tomorrowio sensor units and conversions (#69166)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-04 23:52:36 -07:00
Erik Montnemery
a95b4f6763 Correct unit_of_measurement for trigger-based template sensor (#69291) 2022-04-04 22:10:59 -07:00
epenet
d0288f14f0 Add sensor DEVICE_CLASS_* to deprecated imports (#69243) 2022-04-04 15:03:28 -07:00
starkillerOG
fb23843e63 Motion revert moving state (#69299)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 10:55:56 -10:00
starkillerOG
4dade9668a Motion Blinds auto interface (#68852)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-04 10:55:36 -10:00
epenet
c6e2bdcea0 Use SensorDeviceClass in honeywell (#69298) 2022-04-04 21:23:57 +02:00
starkillerOG
0446a2b4e5 bump pynetgear to 0.9.3 (#69292) 2022-04-04 22:09:48 +03:00
epenet
4e87a8c568 Adjust binary_sensor device classes in homekit (#69239) 2022-04-04 12:55:55 -06:00
Daniel Hjelseth Høyer
396fddfbfa Switch Mill to ClimateEntityFeature (#69293) 2022-04-04 20:46:46 +02:00
RDFurman
95a97d99dd Honeywell outdoor sensor (#65347) 2022-04-04 12:26:33 -06:00
Erik Montnemery
e830032b33 Remove deprecated temperature conversion of non temperature sensors (#69069) 2022-04-04 20:02:40 +02:00
Daniel Hjelseth Høyer
04dd7c3f7c Switch Adax to ClimateEntityFeature (#69286) 2022-04-04 19:48:33 +02:00
epenet
9ef67c4b4c Add more constants to deprecated imports (#69253)
* Add core ENTITY_CATEGORY_* to deprecated imports

* Alphabetical order

* Add core SOURCE_* to deprecated imports

* Add switch DEVICE_CLASS_* to deprecated imports

* Add binary_sensor DEVICE_CLASS_* to deprecated imports

* Add humidifier DEVICE_CLASS_* to deprecated imports

* Add config_entries.DISABLED_***

* Add device_registry.DISABLED_***

* Add humidifier.const

* Add media_player DEVICE_CLASS_*

* Add cover DEVICE_CLASS_*
2022-04-04 19:48:14 +02:00
Erik Montnemery
9cd83c8b48 Migrate homematicip_cloud light to color_mode (#69270) 2022-04-04 09:32:51 -07:00
Erik Montnemery
cb79126cd9 Migrate ihc light to color_mode (#69280) 2022-04-04 09:28:30 -07:00
Erik Montnemery
25d9d14bd9 Migrate insteon light to color_mode (#69281) 2022-04-04 09:25:40 -07:00
Erik Montnemery
fe65804de1 Correct unit of vera power meter sensor (#69285) 2022-04-04 09:25:02 -07:00
Erik Montnemery
ef9cd66320 Migrate hive light to color_mode (#69259) 2022-04-04 18:24:56 +02:00
Erik Montnemery
1c1b792fb7 Migrate homeworks light to color_mode (#69271) 2022-04-04 18:20:48 +02:00
Erik Montnemery
3416e9b621 Migrate home_connect light to color_mode (#69260) 2022-04-04 18:20:20 +02:00
Erik Montnemery
e9a60418c2 Migrate isy994 light to color_mode (#69282) 2022-04-04 18:19:32 +02:00
Erik Montnemery
dffb3cc196 Migrate futurenow light to color_mode (#69257) 2022-04-04 18:18:50 +02:00
Erik Montnemery
5d56f94786 Migrate firmata light to color_mode (#69256) 2022-04-04 18:17:21 +02:00
epenet
67c95e92b1 Use CoverDeviceClass in homekit_controller (#69268) 2022-04-04 18:16:50 +02:00
epenet
18866e4e39 Use CoverDeviceClass in soma (#69264) 2022-04-04 18:16:24 +02:00
Daniel Hjelseth Høyer
4b89b2f5d8 Switch Sensibo to ClimateEntityFeature (#69279) 2022-04-04 18:15:01 +02:00
Franck Nijhof
b369616aad Remove deprecated YAML configuration from MJPEG Camera (#68980) 2022-04-04 17:57:48 +02:00
Erik Montnemery
8222b783a3 Improve min_max translation strings (#69248)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-04 17:55:09 +02:00
Erik Montnemery
7f1d10dcca Improve switch_as_x translation strings (#69249) 2022-04-04 17:53:16 +02:00
Erik Montnemery
c3a2eedf0b Migrate iglo light to color_mode (#69278) 2022-04-04 17:49:11 +02:00
Erik Montnemery
2e84cdb16f Migrate iaqualink light to color_mode (#69277) 2022-04-04 17:47:11 +02:00
epenet
6745e01b80 Use SensorDeviceClass in goodwe (#69263) 2022-04-04 17:45:44 +02:00
Erik Montnemery
c8d4b2ecab Improve threshold translation strings (#69250) 2022-04-04 17:45:24 +02:00
Erik Montnemery
88c76be5ad Improve tod translation strings (#69251) 2022-04-04 17:43:25 +02:00
Erik Montnemery
fa07dd660f Use stdlib statistics functions in min_max sensor (#69255) 2022-04-04 17:42:21 +02:00
epenet
772fc71275 Use SensorDeviceClass in homewizard (#69266) 2022-04-04 17:41:06 +02:00
Erik Montnemery
f04a3737a8 Migrate greenwave light to color_mode (#69258) 2022-04-04 17:40:06 +02:00
Erik Montnemery
6b4e0c744c Migrate hyperion light to color_mode (#69276) 2022-04-04 17:39:21 +02:00
epenet
7e6bb3354a Use MediaPlayerDeviceClass in vizio (#69265) 2022-04-04 17:35:25 +02:00
Joakim Sørensen
cfdfa3eab2 Make hassio coordinator refresh data (#69272) 2022-04-04 17:34:06 +02:00
Erik Montnemery
bfa364741b Correct misleading comment in SensorEntity 2022-04-04 17:10:17 +02:00
Erik Montnemery
82af314678 Improve utility_meter translation strings (#69252) 2022-04-04 14:24:56 +02:00
Erik Montnemery
c058478edb Improve derivative translation strings (#69245) 2022-04-04 14:14:26 +02:00
Radu Cotescu
9c1f37aa95 Input binary sensors are not generated for Shelly 1 Pro (#69046)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-04-04 13:39:40 +02:00
Franck Nijhof
614076cdf1 Migrate WLED to use EntityFeature enums (#69219) 2022-04-04 14:28:19 +03:00
epenet
76247414bf Add pylint plugin for deprecated STATE_CLASS_* (#69237) 2022-04-04 11:45:53 +02:00
Erik Montnemery
c79b361927 Unsubscribe from listeners when removing integration sensor (#69235) 2022-04-04 11:09:38 +02:00
Erik Montnemery
f98b3e44de Unsubscribe from listeners when removing derivative sensor (#69234) 2022-04-04 11:09:21 +02:00
Simone Chemelli
bf23abdfae Avoid fritz API calls during shutdown (#69225) 2022-04-04 11:04:54 +02:00
Erik Montnemery
e4b148458b Unsubscribe from listeners when removing threshold binary sensor (#69236) 2022-04-04 11:02:30 +02:00
epenet
9231819532 Add type hints to yeelight (#69213) 2022-04-04 10:58:44 +02:00
Erik Montnemery
8ee9695e3b Migrate control4 light to color_mode (#69079) 2022-04-04 10:53:06 +02:00
Erik Montnemery
fd6cedeeb8 Migrate blinkstick light to color_mode (#69076) 2022-04-04 10:52:29 +02:00
Erik Montnemery
230f0122ff Migrate avion light to color_mode (#69075) 2022-04-04 10:51:52 +02:00
Erik Montnemery
d96ace82aa Migrate avea light to color_mode (#69073) 2022-04-04 10:51:29 +02:00
Erik Montnemery
bfbe0d1d76 Migrate ads light to color_mode (#69071) 2022-04-04 10:50:47 +02:00
J. Nick Koston
c2c6d12d73 Only fire device_registry_updated for suggested_area if the suggestion results in an area change (#69215) 2022-04-04 09:51:39 +02:00
Erik Montnemery
514e08c8fe Drop unsupported SI-prefix peta from integration sensor (#69229) 2022-04-04 09:48:28 +02:00
Alex Yao
29e8b9f2ac Bump Yeelight to v0.7.10 (#69147) 2022-04-04 09:47:44 +02:00
dependabot[bot]
23dd3ee953 Bump actions/setup-python from 3.0.0 to 3.1.0 (#69227)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:15:36 +02:00
Franck Nijhof
81ec60b7e4 Move some Alarm Control Panel constants (#69221) 2022-04-04 06:59:56 +02:00
epenet
db10c313b5 Add type hints to here_travel_time (#69216)
* Add type hints to here_travel_time

* Adjust
2022-04-03 23:14:11 +03:00
Álvaro Fernández Rojas
39abf1453c Switch Airzone to ClimateEntityFeature (#69136) 2022-04-03 22:11:24 +02:00
epenet
f6ec0a6323 Add type hints to honeywell (#69217) 2022-04-03 22:06:53 +02:00
Franck Nijhof
14a19aea03 Exclude update entity picture attribute from recorder (#69201) 2022-04-03 21:41:51 +02:00
J. Nick Koston
cf685ef651 Fix profiler object growth logging test (#69211) 2022-04-03 20:39:47 +02:00
Franck Nijhof
b644e7ed0f Set brand icon as entity picture on update entities (#69200)
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
2022-04-03 20:38:05 +02:00
Franck Nijhof
bd1d7bdbb7 Exclude more media player attributes from recorder (#69209) 2022-04-03 12:37:13 -06:00
Daniel Hjelseth Høyer
40fba130e8 Tibber, Use a dedicated executor pool for database operations (#69208) 2022-04-03 20:22:03 +02:00
Franck Nijhof
20f95fa6b3 Exclude weather forecast attribute from recorder (#69205) 2022-04-03 20:16:12 +02:00
Kevin Stillhammer
6106f07820 Catch malformed coordinates in here_travel_time (#69023)
* Catch malformed coordinates in here_travel_time

* Add testcase for malformed entity_id state

* Replace type ignore with None check

* Directly raise InvalidCoordinatesException
2022-04-03 10:21:55 -07:00
J. Nick Koston
f9a47f0f9e Bump sqlalchemy to 1.4.34 (#69202)
Changelog: https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_1_4_34
https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_1_4_33
2022-04-03 18:39:07 +03:00
starkillerOG
00a088b75c Motion Blinds integration add dhcp discovery for Connector (#68969) 2022-04-03 09:22:15 -06:00
starkillerOG
2bb71cf6bc Motion Blinds opening closing (#68837) 2022-04-03 09:21:53 -06:00
Jesse Hills
0558be0ab2 ESPHome: Remove disconnect callbacks after they are done (#69169) 2022-04-03 17:19:23 +02:00
J. Nick Koston
198f4a12f0 Exclude static select attributes from being recorded in the database (#69195) 2022-04-03 17:17:55 +02:00
J. Nick Koston
e364456a46 Exclude static siren attributes from being recorded in the database (#69196) 2022-04-03 17:16:49 +02:00
J. Nick Koston
e48cec4b33 Exclude static vacuum attributes from being recorded in the database (#69199) 2022-04-03 17:15:50 +02:00
J. Nick Koston
9e390996cc Exclude static fan attributes from being recorded in the database (#69192) 2022-04-03 15:52:46 +02:00
Marc Mueller
aec5d0d53d Update hangups to 0.4.18 (#69149) 2022-04-03 15:46:28 +02:00
J. Nick Koston
4f8c7fe05b Exclude static number attributes from being recorded in the database (#69194) 2022-04-03 15:43:44 +02:00
J. Nick Koston
8de26e5085 Exclude static humidifier attributes from being recorded in the database (#69193) 2022-04-03 15:42:29 +02:00
Austin Mroczek
e5fe18bdb1 Improve totalconnect error handling (#68716) 2022-04-03 07:12:33 -06:00
J. Nick Koston
5b874ce6e8 Exclude static light attributes from being recorded in the database (#69155) 2022-04-03 06:13:03 -06:00
Erik Montnemery
5e44049994 Migrate decora light to color_mode (#69174) 2022-04-03 14:01:01 +02:00
Erik Montnemery
7e2f024e29 Migrate decora_wifi light to color_mode (#69175) 2022-04-03 13:59:27 +02:00
Erik Montnemery
eeeb21a9f1 Migrate dynalite light to color_mode (#69177) 2022-04-03 13:58:28 +02:00
Erik Montnemery
b38ca5ddd6 Migrate elkm1 light to color_mode (#69179) 2022-04-03 13:56:46 +02:00
J. Nick Koston
522a9bb6b1 Exclude supported features and attribution from being recorded in the database (#69165) 2022-04-03 13:51:42 +02:00
Erik Montnemery
9335b9a52e Migrate enocean light to color_mode (#69180) 2022-04-03 13:44:38 +02:00
Erik Montnemery
24754c31ca Remove use of deprecated constants from evil_genius_labs light (#69183) 2022-04-03 13:37:29 +02:00
Bouwe Westerdijk
2ce8c97ebd Bump plugwise to v0.17.3 (#69139) 2022-04-03 13:20:20 +02:00
Erik Montnemery
422f4fb4ea Migrate devolo_home_control light to color_mode (#69176) 2022-04-03 13:18:01 +02:00
ollo69
0876239927 Do not redact diagnostics empty key (#69160) 2022-04-03 13:17:08 +02:00
Erik Montnemery
d7992c1e87 Unsubscribe listeners when entity meter sensor is removed (#69172) 2022-04-03 13:15:22 +02:00
Erik Montnemery
dbb9dc2d39 Migrate eufy light to color_mode (#69181) 2022-04-03 12:45:58 +02:00
Erik Montnemery
88b01b80ce Migrate everlights light to color_mode (#69182) 2022-04-03 12:44:21 +02:00
Simone Chemelli
beb5184720 Add Fritz visit device link to discovered devices (#69186) 2022-04-03 11:59:47 +02:00
Simone Chemelli
f8333feb51 Add Shelly visit device link to discovered devices (#69185) 2022-04-03 11:53:25 +02:00
Glenn Waters
69461f115d Environment Canada: allow AQHI to pull from forecast when current not available (#69142)
* Allow AQHI to pull from forecast when current not available.

* Remove redundant check.

* Remove lambda.
2022-04-03 11:59:27 +03:00
Franck Nijhof
27b48573ea Add EntityFeature enum to Remote (#69120) 2022-04-02 20:58:48 -07:00
Franck Nijhof
17403f930f Add EntityFeature enum to Media Player (#69119) 2022-04-02 20:58:23 -07:00
Franck Nijhof
721db6d962 Add EntityFeature enum to Lock (#69118) 2022-04-02 20:57:32 -07:00
Franck Nijhof
ea148a1b8e Add EntityFeature enum to Light (#69103)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-02 20:57:01 -07:00
Franck Nijhof
2d37066ce5 Add EntityFeature enum to Vacuum (#69121) 2022-04-02 20:55:44 -07:00
Franck Nijhof
cce19dc480 Add EntityFeature enum to Water Heater (#69123) 2022-04-02 20:55:17 -07:00
Raman Gupta
e06856f965 Make zwave_js config entry unique ID a string (#69163)
* Make zwave_js config entry unique ID a string

* Add test

* Fix tests
2022-04-02 23:52:07 -04:00
J. Nick Koston
b92fc42f0f Exclude static climate attributes from being recorded in the database (#69158) 2022-04-02 20:48:32 -07:00
J. Nick Koston
9d82248017 Exclude static and token attributes from being recorded for media_player (#69156) 2022-04-02 20:47:43 -07:00
J. Nick Koston
42bf62e187 Exclude static water_heater attributes from being recorded in the database (#69159) 2022-04-02 20:46:41 -07:00
Diogo Gomes
6389959fb7 Makes sure YAML defined tariffs are unique (#69151) 2022-04-02 20:41:03 -07:00
Nenad Bogojevic
ccd5ada341 Fix withings race condition for access token (#69107) 2022-04-02 20:39:44 -07:00
Wictor
d7375f1a9c Refactor telegram_bot polling/webhooks platforms and add tests (#66433)
Co-authored-by: Pär Berge <paer.berge@gmail.com>
2022-04-02 20:39:14 -07:00
Michael
55c6112a28 ignore ip6 link local address on ssdp discovery (#69135) 2022-04-02 22:34:12 +03:00
Franck Nijhof
1a04dc4fca Set brand icon on WLED update entity (#69145) 2022-04-02 22:28:08 +03:00
Mick Vleeshouwer
1103c5d101 Bugfix for overkiz.alarm_control_panel platform exception (#69131)
* Revert changes

* Remove debug statement
2022-04-02 22:27:12 +03:00
Raman Gupta
963ed74797 Fix kodi log spamming again (#69137)
* Fix kodi log spamming again

* use try except else
2022-04-02 13:26:50 -04:00
Dave T
c3354dcaae Add image test cases to generic (#69040) 2022-04-02 10:54:19 +02:00
Keilin Bickar
1563420de8 Bump asyncsleepiq to 1.2.3 (#69104) 2022-04-02 10:44:16 +02:00
Franck Nijhof
9a1f5ca16f Update wled to 0.13.2 (#69116) 2022-04-02 10:43:50 +02:00
puddly
88ae7de4fb Bump ZHA dependency zigpy-deconz from 0.14.0 to 0.15.0 (#69099) 2022-04-02 10:23:22 +02:00
Erik Montnemery
66e9b263a8 Migrate bond light to color_mode (#69078) 2022-04-01 22:03:19 -10:00
Álvaro Fernández Rojas
aa969d5ae8 Add missing typing to Airzone tests (#69097) 2022-04-02 10:01:49 +02:00
Glenn Waters
912923f55d Environment Canada: Fix for when temperature is zero (#69101) 2022-04-02 09:44:40 +02:00
Marcel van der Veldt
538c8160f3 Adjust check for orphaned Hue device entries for grouped lights (#69110)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-02 09:44:05 +02:00
Raman Gupta
5f897874cb Fix kodi log spamming (#69113) 2022-04-02 09:42:19 +02:00
Franck Nijhof
ebfba783e0 Bump num of conflicts in pip check (#69112) 2022-04-02 09:38:10 +02:00
Raman Gupta
15fc7349ed Fix unit prefixes for derivative and integration (#69109) 2022-04-02 09:36:56 +02:00
Marcel van der Veldt
ee4eebea7d Allow lowercase none for effect value in Hue lights (#69111) 2022-04-02 09:14:56 +02:00
Erik Montnemery
ae9c2df691 Return unsubscribe callback from start.async_at_start (#69083)
* Return unsubscribe callback from start.async_at_start

* Update calling code
2022-04-01 23:34:36 +02:00
Patrik Lindgren
4b5996c5ed Drop support for Tradfri groups and YAML configuration (#68033)
* Drop support for Tradfri groups

* Remove context

* Remove async_setup

* Mark removed

* Pass generator expression
2022-04-01 23:26:35 +02:00
Franck Nijhof
853923c30a Add EntityFeature enum to Fan (#69091) 2022-04-01 20:53:38 +02:00
Bouwe Westerdijk
9902ecb417 Remove use of HVAC_MODE_OFF in plugwise climate, it's not implemented (#69094) 2022-04-01 20:53:09 +02:00
Álvaro Fernández Rojas
4f49939bc0 Remove deprecated DEVICE_CLASS_* and STATE_CLASS_* from Airzone (#69096) 2022-04-01 20:51:20 +02:00
Bram Kragten
cb437449dd Update frontend to 20220401.0 (#69095) 2022-04-01 11:26:18 -07:00
Franck Nijhof
c31e788439 Rename current_version to installed_version in Update platform (#69093) 2022-04-01 20:11:17 +02:00
Franck Nijhof
02dbd617b9 Add EntityFeature enum to Humidifier (#69092) 2022-04-01 20:10:52 +02:00
Mick Vleeshouwer
325a260cfd Fix Protexial alarm in Overkiz integration (#68996) 2022-04-01 10:26:34 -07:00
Franck Nijhof
8fc55b71c5 Add EntityFeature enum to Climate (#69077) 2022-04-01 09:41:49 -07:00
epenet
4c7e1fe060 Cleanup ENTITY_CATEGORIES_SCHEMA (#66549)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-04-01 09:40:43 -07:00
Franck Nijhof
330c931067 Add EntityFeature enum to Cover (#69088) 2022-04-01 09:38:21 -07:00
Franck Nijhof
93571c2d01 Add EntityFeature enum to Camera (#69072) 2022-04-01 09:38:03 -07:00
Erik Montnemery
7f1b90a51c Migrate crownstone light to color_mode (#69081) 2022-04-01 18:18:13 +02:00
J. Nick Koston
8cf6ac281e Convert statistics to use history api for database access (#68411) 2022-04-01 08:49:21 -07:00
Mick Vleeshouwer
4f4f7e40e3 Bump pyoverkiz to 1.3.14 in Overkiz integration (#69084) 2022-04-01 08:48:14 -07:00
Joakim Sørensen
78e4d7e1ca Add auto_update property to supervisor and addon update entities (#69055) 2022-04-01 08:31:39 -07:00
Erik Montnemery
bda997efe9 Fix utility_meter startup (#69064) 2022-04-01 08:28:50 -07:00
Erik Montnemery
87100c2517 Drop deprecated support for unit_of_measurement from sensor (#69061) 2022-04-01 08:22:19 -07:00
Erik Montnemery
9b21a48048 Mend incorrectly imported MQTT config entries (#68987)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-01 08:11:31 -07:00
Mick Vleeshouwer
2c82befc78 Enable select platform in Overkiz integration (#68995) 2022-04-01 16:28:29 +02:00
Erik Montnemery
cbd3d7c037 Add bluepy as a dependency for zengge (#69067)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-01 15:58:08 +02:00
Billy Stevenson
2c3d9566cb Add Meater integration (#44929)
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
Co-authored-by: Brian Rogers <brg468@hotmail.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Erik <erik@montnemery.com>
2022-04-01 15:11:37 +02:00
Erik Montnemery
c01637130b Update zengge codeowners (#69068) 2022-04-01 14:38:34 +02:00
Erik Montnemery
044d71f016 Add color mode support to zengge light (#55260) 2022-04-01 14:18:08 +02:00
Franck Nijhof
be7fc35dfa Add EntityFeature enum to Alarm Control Panel (#69044) 2022-04-01 13:54:03 +02:00
Chris Talkington
165e79be8f Update rokuecp to 0.16.0 (#68822) 2022-04-01 13:39:28 +02:00
J. Nick Koston
220beefb89 Prevent HomeKit from offering hidden entities (#69042) 2022-04-01 13:34:44 +02:00
Joakim Sørensen
a81194cdd7 Add auto_update property to UpdateEntity (#69054) 2022-04-01 12:56:58 +02:00
Diogo Gomes
2963aea3ec Ignore old_state when using delta_values (#68402)
* delta value updates don't require old_state

* add test

* merge
2022-04-01 12:08:00 +03:00
Erik Montnemery
617f459b57 Bump pychromecast to 11.0.0 (#69057) 2022-04-01 12:01:51 +03:00
Franck Nijhof
93ce18806c Update debugpy to 1.6.0 (#68989) 2022-04-01 12:00:16 +03:00
epenet
c22a08334c Bump voluptuous to 0.13.0 (#68897)
* Bump voluptuous to v0.13.0

* Update DEPENDENCY_CONFLICTS

* Update following python_awair bump

* Revert "Update following python_awair bump"

This reverts commit 089bd7b4498d170e06b72cc815b8e61c51f2f42a.

* Revert "Update DEPENDENCY_CONFLICTS"

This reverts commit ddd83212b8a0c21f01e00feafe181dc7b1866b0f.

* Test fail-fast

* Revert "Test fail-fast"

This reverts commit 446e104a2463a7ad1ac1eb21ea04c21fff27f88c.
2022-04-01 11:42:21 +03:00
Anders Melchiorsen
480d9d63ee LIFX device cleanup cleanup (#68937) 2022-04-01 11:40:29 +03:00
Mick Vleeshouwer
fbba318a18 Invert number option (#68972) 2022-04-01 11:38:00 +03:00
Franck Nijhof
72d0cef169 Update watchdog to 2.1.7 (#68985) 2022-04-01 11:30:53 +03:00
Matthias Alphart
2733600755 coerce number selector values to int (#69059) 2022-04-01 11:07:13 +03:00
Shay Levy
4a921ac67f Remove webostv deprecated YAML import (#69043)
* webostv: remove deprecated YAML import

* Remove unused CUSTOMIZE_SCHEMA and WEBOSTV_CONFIG_FILE
2022-04-01 11:05:59 +03:00
Allen Porter
68d563c630 Remove calendar mypy ignores, now that calendar has full typing (#69051) 2022-04-01 07:46:48 +02:00
Raman Gupta
94a8d75142 Fix zwave_js device action logic (#69049)
* Fix zwave_js device action logic

* Add test for this behavior
2022-04-01 07:44:52 +02:00
Franck Nijhof
91404041e0 Update jinja2 to 3.1.1 (#68988) 2022-03-31 15:54:13 -07:00
Artem Draft
2c49323b5f Remove update throttle in LG Netcast (#68902) 2022-03-31 15:39:47 -07:00
Matthias Alphart
46a457a638 Update KNX flow strings to use "data_description" and remove invalid options (#68935)
* use `data_description`

* use selectors so `data_description` shows

* remove unused config option

`individual_address` has no effect for tunneling. The address is always assigned by the tunnelling server.

* remove unsupported option for tunneling V1 devices
2022-04-01 00:15:53 +02:00
Dave T
a741b26e28 Improve image checks for generic camera (#69037) 2022-03-31 15:05:39 -07:00
Paulus Schoutsen
130ca2213f Enforce EntityCategory enum (#69015)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:04:33 -07:00
Paulus Schoutsen
824066f519 Device Automation: enforce passing in device-automation-enum (#69013) 2022-03-31 14:30:11 -07:00
Erik Montnemery
69ee4cd978 Deprecate temperature conversion in base entity class (#68978)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-31 14:29:44 -07:00
Franck Nijhof
39cc91dec6 Remove deprecated reject_call service from modem_callerid (#69019) 2022-03-31 23:12:11 +02:00
Michael
c6cd474312 Add "station is open" sensor to Tankerkoenig (#68925) 2022-03-31 13:45:58 -07:00
Franck Nijhof
e69450f7ca Remove deprecated YAML configuration from Fronius (#69032) 2022-03-31 22:38:54 +02:00
Franck Nijhof
beb54dfb63 Remove deprecated YAML configuration from Yamaha Music Cast (#69033) 2022-03-31 13:35:44 -07:00
Franck Nijhof
7a31c8f53c Remove deprecated YAML configuration from Brunt (#69024) 2022-03-31 13:31:17 -07:00
Franck Nijhof
388677e03b Remove deprecated YAML configuration from EZVIZ (#69031) 2022-03-31 13:30:42 -07:00
Franck Nijhof
5280bf2296 Remove deprecated template support in persistent notifications (#69021) 2022-03-31 13:28:15 -07:00
Paulus Schoutsen
72c4c359a4 iCloud: remove deprecated YAML import (#69006)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 13:25:32 -07:00
Paulus Schoutsen
5eb19b8a70 Enforce RegistryEntryDisabler enum (#69017)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 13:10:07 -07:00
Franck Nijhof
a9a14d6544 Remove deprecated YAML configuration from Yale Smart Alarm (#69025) 2022-03-31 13:09:24 -07:00
Franck Nijhof
af6953157f Remove deprecated YAML configuration from Met.no (#69027) 2022-03-31 13:08:51 -07:00
Franck Nijhof
b45399b164 Remove deprecated YAML configuration from Sensibo (#69028) 2022-03-31 13:07:48 -07:00
Paulus Schoutsen
666cbebd28 DNS IP: Remove deprecated YAML import (#69007)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 21:04:55 +02:00
Joakim Sørensen
fef43d4f39 Cleanup Version after removing YAML (#69020) 2022-03-31 20:59:26 +02:00
Paulus Schoutsen
56998f219b Version: remove deprecated YAML import (#69010) 2022-03-31 20:25:01 +02:00
Paulus Schoutsen
bb322a18bb Launch Library: remove deprecated YAML import (#69008) 2022-03-31 20:23:52 +02:00
Paulus Schoutsen
ce5d20eb8e Update tradfri deprecation message (#69005) 2022-03-31 20:20:50 +02:00
Paulus Schoutsen
513b05c927 Nanoleaf: remove deprecated YAML import (#69004) 2022-03-31 20:18:17 +02:00
Paulus Schoutsen
d5f4e512e9 Solax: remove deprecated YAML import (#69003) 2022-03-31 20:16:55 +02:00
Paulus Schoutsen
88c9233d50 Remove deprecated Switchbot import (#69002) 2022-03-31 20:12:02 +02:00
Paulus Schoutsen
3bc2586874 Don't log the stack trace (#69000) 2022-03-31 20:10:16 +02:00
Aaron Bach
70922f9733 Bump simplisafe-python to 2022.03.3 (#68990) 2022-03-31 19:59:40 +02:00
Álvaro Fernández Rojas
86bec82c24 Update aioairzone to v0.3.1 (#68975) 2022-03-31 19:58:56 +02:00
starkillerOG
f0740ce73a bump pynetgear to 0.9.2 (#68986) 2022-03-31 09:58:49 -07:00
Aaron Bach
b8e4784d4a Bump aioguardian to 2022.03.2 (#68916)
* Bump aioguardian to 2022.03.0

* Another bump

* Another bump

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-03-31 18:52:07 +02:00
puddly
0f6296e4b5 Bump zigpy to 0.44.1 and zha-quirks to 0.0.69 (#68921)
* Make unit tests pass

* Flip response type check to not rely on it being a list
https://github.com/zigpy/zigpy/pull/716#issuecomment-1025236190

* Bump zigpy and quirks versions to ZCLR8 releases

* Fix renamed zigpy cluster attributes

* Handle the default response for ZLL `get_group_identifiers`

* Add more error context to `stage failed` errors

* Fix unit test returning lists as ZCL request responses

* Always load quirks when testing ZHA

* Bump zha-quirks to 0.0.69
2022-03-31 11:26:27 -04:00
Philip Allgaier
398db35334 Prevent issues with setting up "Timer" integration (unknown "restore" key) (#68936)
* Prevent issues with setting up "Timer" for existing entities

* Use default constant

* Update homeassistant/components/timer/__init__.py

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-31 10:57:52 -04:00
Franck Nijhof
2c66ac6203 Remove deprecated Updater integration (#68981)
* Remove deprecated Updater integration

* Remove updater mock
2022-03-31 16:39:57 +02:00
Raman Gupta
4e2b6db397 Add comments to zwave_js node metadata WS API (#67210)
* Add comments to zwave_js node metadata WS API

* Add test dat
2022-03-31 10:31:17 -04:00
epenet
2c0153a32e Revert "Pin click to fix typer issue" (#68927) 2022-03-31 14:53:18 +02:00
Robert Hillis
fc27f38de1 Rename google hangouts to google chat (#68941) 2022-03-31 14:47:51 +02:00
J. Nick Koston
185aa025ac Exclude large and chatty attributes from being recorded for update entities (#68940)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2022-03-31 14:28:19 +02:00
Joakim Sørensen
f7c936e842 Add scaffold template for backup (#68961) 2022-03-31 14:18:45 +02:00
Erik Montnemery
400943ce99 Make utility_meter tariffs a list (#68967) 2022-03-31 13:57:26 +02:00
Allen Porter
3c478c312a Fix google calendar blocking call, running outside of executor (#68948) 2022-03-31 13:22:33 +02:00
Erik Montnemery
4327d3aef9 Improve utility_meter services.yaml (#68960) 2022-03-31 11:32:11 +02:00
Raman Gupta
6b2fe6cba9 Add support for new select selector properties (#68952)
* Add support for new select selector properties

* fix mode option

* Apply suggestions from code review

* Correct validation for empty options, update tests

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-31 11:28:49 +02:00
Paulus Schoutsen
9432ab07c2 Change privacy mode to config (#68954) 2022-03-31 11:06:07 +02:00
dependabot[bot]
01a029be2d Bump actions/cache from 3.0.0 to 3.0.1 (#68958)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-31 09:03:33 +02:00
Dave T
7a5235dc0c Generic camera: Allow gif image type in still image checker (#68933) 2022-03-30 21:02:43 -10:00
Aaron Bach
f9aa0a7cd8 Bump simplisafe-python to 2022.03.2 (#68915)
* Bump simplisafe-python to 2022.03.1

* Another bump
2022-03-30 21:21:38 -06:00
Nathan Spencer
e1c4245ff0 Bump pylitterbot to 2022.3.0 (#68929) 2022-03-31 01:01:43 +02:00
Erik Montnemery
3be689baf4 Improve utility_meter services.yaml (#68930) 2022-03-31 00:47:15 +02:00
Dave T
3244980a35 Generic camera: Allow svg detect to accept leading whitespace (#68932) 2022-03-31 00:45:55 +02:00
starkillerOG
d25f7e1376 Motion Blinds integration add Brel dhcp discovery (#68938) 2022-03-30 12:14:22 -10:00
Erik Montnemery
f9f360c64e Rename helper_config_entry_flow to schema_config_entry_flow (#68924) 2022-03-30 14:36:47 -07:00
Bram Kragten
89daf4f96b Handle config entries of integrations that are removed (#68928) 2022-03-30 14:35:12 -07:00
Franck Nijhof
217d98e008 Bump version to 2022.5.0dev0 (#68923) 2022-03-30 23:02:19 +02:00
Paulus Schoutsen
423ecfa69d Mark all input integrations as helpers (#68922) 2022-03-30 22:50:13 +02:00
rianadon
c4a2204cc7 Calculate temperature precision based on user units (#59560)
* Calculate temperature precision based on user units

* Fix a few more failing tests

* Fix failing test

Co-authored-by: Erik <erik@montnemery.com>
2022-03-30 22:49:28 +02:00
J. Nick Koston
8b04c676ac Fix typing on recorder.history (#68917) 2022-03-30 09:50:21 -10:00
3707 changed files with 69666 additions and 29100 deletions

View File

@@ -73,7 +73,6 @@ omit =
homeassistant/components/arest/binary_sensor.py
homeassistant/components/arest/sensor.py
homeassistant/components/arest/switch.py
homeassistant/components/arlo/*
homeassistant/components/arris_tg2492lg/*
homeassistant/components/aruba/device_tracker.py
homeassistant/components/arwn/sensor.py
@@ -83,9 +82,7 @@ omit =
homeassistant/components/aseko_pool_live/sensor.py
homeassistant/components/asterisk_cdr/mailbox.py
homeassistant/components/asterisk_mbox/*
homeassistant/components/asuswrt/__init__.py
homeassistant/components/asuswrt/diagnostics.py
homeassistant/components/asuswrt/router.py
homeassistant/components/aten_pe/*
homeassistant/components/atome/*
homeassistant/components/aurora/__init__.py
@@ -120,6 +117,7 @@ omit =
homeassistant/components/bmw_connected_drive/__init__.py
homeassistant/components/bmw_connected_drive/binary_sensor.py
homeassistant/components/bmw_connected_drive/button.py
homeassistant/components/bmw_connected_drive/coordinator.py
homeassistant/components/bmw_connected_drive/device_tracker.py
homeassistant/components/bmw_connected_drive/lock.py
homeassistant/components/bmw_connected_drive/notify.py
@@ -215,7 +213,6 @@ omit =
homeassistant/components/devolo_home_control/subscriber.py
homeassistant/components/devolo_home_control/switch.py
homeassistant/components/digital_ocean/*
homeassistant/components/digitalloggers/switch.py
homeassistant/components/discogs/sensor.py
homeassistant/components/discord/__init__.py
homeassistant/components/discord/notify.py
@@ -593,10 +590,6 @@ omit =
homeassistant/components/keyboard_remote/*
homeassistant/components/kira/*
homeassistant/components/kiwi/lock.py
homeassistant/components/knx/__init__.py
homeassistant/components/knx/climate.py
homeassistant/components/knx/cover.py
homeassistant/components/knx/notify.py
homeassistant/components/kodi/__init__.py
homeassistant/components/kodi/browse_media.py
homeassistant/components/kodi/const.py
@@ -678,6 +671,9 @@ omit =
homeassistant/components/map/*
homeassistant/components/mastodon/notify.py
homeassistant/components/matrix/*
homeassistant/components/meater/__init__.py
homeassistant/components/meater/const.py
homeassistant/components/meater/sensor.py
homeassistant/components/media_extractor/*
homeassistant/components/mediaroom/media_player.py
homeassistant/components/melcloud/__init__.py
@@ -996,7 +992,8 @@ omit =
homeassistant/components/rtorrent/sensor.py
homeassistant/components/russound_rio/media_player.py
homeassistant/components/russound_rnet/media_player.py
homeassistant/components/sabnzbd/*
homeassistant/components/sabnzbd/__init__.py
homeassistant/components/sabnzbd/sensor.py
homeassistant/components/saj/sensor.py
homeassistant/components/satel_integra/*
homeassistant/components/schluter/*
@@ -1030,6 +1027,10 @@ omit =
homeassistant/components/sensibo/number.py
homeassistant/components/sensibo/select.py
homeassistant/components/sensibo/sensor.py
homeassistant/components/sensibo/update.py
homeassistant/components/senz/__init__.py
homeassistant/components/senz/api.py
homeassistant/components/senz/climate.py
homeassistant/components/serial/sensor.py
homeassistant/components/serial_pm/sensor.py
homeassistant/components/sesame/lock.py
@@ -1128,6 +1129,8 @@ omit =
homeassistant/components/spotify/media_player.py
homeassistant/components/spotify/system_health.py
homeassistant/components/spotify/util.py
homeassistant/components/slimproto/__init__.py
homeassistant/components/slimproto/media_player.py
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
@@ -1177,6 +1180,7 @@ omit =
homeassistant/components/synology_dsm/camera.py
homeassistant/components/synology_dsm/diagnostics.py
homeassistant/components/synology_dsm/common.py
homeassistant/components/synology_dsm/entity.py
homeassistant/components/synology_dsm/sensor.py
homeassistant/components/synology_dsm/service.py
homeassistant/components/synology_dsm/switch.py
@@ -1201,7 +1205,7 @@ omit =
homeassistant/components/tankerkoenig/const.py
homeassistant/components/tankerkoenig/sensor.py
homeassistant/components/tapsaff/binary_sensor.py
homeassistant/components/tautulli/const.py
homeassistant/components/tautulli/__init__.py
homeassistant/components/tautulli/coordinator.py
homeassistant/components/tautulli/sensor.py
homeassistant/components/ted5000/sensor.py
@@ -1265,6 +1269,7 @@ omit =
homeassistant/components/tractive/__init__.py
homeassistant/components/tractive/binary_sensor.py
homeassistant/components/tractive/device_tracker.py
homeassistant/components/tractive/diagnostics.py
homeassistant/components/tractive/entity.py
homeassistant/components/tractive/sensor.py
homeassistant/components/tractive/switch.py
@@ -1276,6 +1281,9 @@ omit =
homeassistant/components/tradfri/light.py
homeassistant/components/tradfri/sensor.py
homeassistant/components/tradfri/switch.py
homeassistant/components/trafikverket_ferry/__init__.py
homeassistant/components/trafikverket_ferry/coordinator.py
homeassistant/components/trafikverket_ferry/sensor.py
homeassistant/components/trafikverket_train/__init__.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_weatherstation/__init__.py
@@ -1365,6 +1373,7 @@ omit =
homeassistant/components/vicare/button.py
homeassistant/components/vicare/climate.py
homeassistant/components/vicare/const.py
homeassistant/components/vicare/diagnostics.py
homeassistant/components/vicare/__init__.py
homeassistant/components/vicare/sensor.py
homeassistant/components/vicare/water_heater.py
@@ -1428,6 +1437,7 @@ omit =
homeassistant/components/xiaomi_miio/button.py
homeassistant/components/xiaomi_miio/device.py
homeassistant/components/xiaomi_miio/device_tracker.py
homeassistant/components/xiaomi_miio/diagnostics.py
homeassistant/components/xiaomi_miio/fan.py
homeassistant/components/xiaomi_miio/gateway.py
homeassistant/components/xiaomi_miio/humidifier.py
@@ -1443,6 +1453,7 @@ omit =
homeassistant/components/yale_smart_alarm/__init__.py
homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yale_smart_alarm/binary_sensor.py
homeassistant/components/yale_smart_alarm/button.py
homeassistant/components/yale_smart_alarm/const.py
homeassistant/components/yale_smart_alarm/coordinator.py
homeassistant/components/yale_smart_alarm/diagnostics.py
@@ -1452,6 +1463,7 @@ omit =
homeassistant/components/yamaha_musiccast/media_player.py
homeassistant/components/yamaha_musiccast/number.py
homeassistant/components/yamaha_musiccast/select.py
homeassistant/components/yamaha_musiccast/switch.py
homeassistant/components/yandex_transport/*
homeassistant/components/yeelightsunflower/light.py
homeassistant/components/yi/camera.py
@@ -1489,6 +1501,7 @@ omit =
homeassistant/components/zwave_me/button.py
homeassistant/components/zwave_me/cover.py
homeassistant/components/zwave_me/climate.py
homeassistant/components/zwave_me/fan.py
homeassistant/components/zwave_me/helpers.py
homeassistant/components/zwave_me/light.py
homeassistant/components/zwave_me/lock.py

View File

@@ -11,7 +11,8 @@
"ms-python.vscode-pylance",
"visualstudioexptteam.vscodeintellicode",
"redhat.vscode-yaml",
"esbenp.prettier-vscode"
"esbenp.prettier-vscode",
"GitHub.vscode-pull-request-github"
],
// Please keep this file in sync with settings in home-assistant/.vscode/settings.default.json
"settings": {

View File

@@ -78,12 +78,13 @@ body:
- type: textarea
attributes:
label: Diagnostics information
placeholder: "drag-and-drop the diagnostics data file here (do not copy-and-paste the content)"
description: >-
Many integrations provide the ability to download diagnostic data
on the device page (and on the integration dashboard).
**It would really help if you could download the diagnostics data for the device you are having issues with,
and drag-and-drop that file into the textbox below.**
and <ins>drag-and-drop that file into the textbox below.</ins>**
It generally allows pinpointing defects and thus resolving issues faster.
- type: textarea

View File

@@ -24,12 +24,12 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -67,10 +67,10 @@ jobs:
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -100,11 +100,11 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -173,7 +173,7 @@ jobs:
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set build additional args
run: |
@@ -216,7 +216,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -255,7 +255,7 @@ jobs:
- "homeassistant"
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Login to DockerHub
if: matrix.registry == 'homeassistant'

View File

@@ -22,7 +22,7 @@ on:
env:
CACHE_VERSION: 9
PIP_CACHE_VERSION: 3
HA_SHORT_VERSION: 2022.4
HA_SHORT_VERSION: 2022.5
DEFAULT_PYTHON: 3.9
PRE_COMMIT_CACHE: ~/.cache/pre-commit
PIP_CACHE: /tmp/pip-cache
@@ -51,7 +51,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Filter for core changes
uses: dorny/paths-filter@v2.10.2
id: core
@@ -152,10 +152,10 @@ jobs:
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Generate partial Python venv restore key
@@ -172,7 +172,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: >-
@@ -189,7 +189,7 @@ jobs:
# ${{ runner.os }}-${{ steps.python.outputs.python-version }}-base-venv-${{ env.CACHE_VERSION }}-
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -212,7 +212,7 @@ jobs:
hashFiles('.pre-commit-config.yaml') }}"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >-
@@ -233,15 +233,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -253,7 +253,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -283,15 +283,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -303,7 +303,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -334,15 +334,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -354,7 +354,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -376,15 +376,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -396,7 +396,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -435,11 +435,19 @@ jobs:
. venv/bin/activate
pre-commit run --hook-stage manual check-json --all-files
- name: Run prettier
- name: Run prettier (fully)
if: needs.changes.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual prettier --all-files
- name: Run prettier (partially)
if: needs.changes.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --hook-stage manual prettier --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/*
- name: Register check executables problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/check-executables-have-shebangs.json"
@@ -491,10 +499,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -515,15 +523,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -550,7 +558,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
@@ -565,7 +573,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: >-
@@ -582,7 +590,7 @@ jobs:
# ${{ runner.os }}-${{ matrix.python-version }}-venv-${{ env.CACHE_VERSION }}-
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -618,10 +626,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -660,10 +668,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -704,10 +712,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -747,10 +755,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.0
uses: actions/cache@v3.0.2
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -835,14 +843,14 @@ jobs:
- pytest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Download all coverage artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
- name: Upload coverage to Codecov (full coverage)
if: needs.changes.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v2.1.0
uses: codecov/codecov-action@v3.1.0
with:
flags: full-suite
- name: Upload coverage to Codecov (partial coverage)
if: needs.changes.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v2.1.0
uses: codecov/codecov-action@v3.1.0

View File

@@ -8,6 +8,7 @@ on:
jobs:
stale:
if: github.repository_owner == 'home-assistant'
runs-on: ubuntu-latest
steps:
# The 90 day stale policy
@@ -16,7 +17,7 @@ jobs:
# - No PRs marked as no-stale
# - No issues marked as no-stale or help-wanted
- name: 90 days stale issues & PRs policy
uses: actions/stale@v4
uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
@@ -53,7 +54,7 @@ jobs:
# - No PRs marked as no-stale or new-integrations
# - No issues (-1)
- name: 30 days stale PRs policy
uses: actions/stale@v4
uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
@@ -78,7 +79,7 @@ jobs:
# - No Issues marked as no-stale or help-wanted
# - No PRs (-1)
- name: Needs more information stale issues policy
uses: actions/stale@v4
uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
only-labels: "needs-more-information"

View File

@@ -21,10 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -40,10 +40,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v3.0.0
uses: actions/setup-python@v3.1.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}

View File

@@ -22,7 +22,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Get information
id: info
@@ -74,15 +74,15 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Download env_file
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: requirements_diff
@@ -115,15 +115,15 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v3.0.0
uses: actions/checkout@v3.0.2
- name: Download env_file
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: requirements_diff

View File

@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.31.1
rev: v2.32.0
hooks:
- id: pyupgrade
args: [--py39-plus]

View File

@@ -46,6 +46,7 @@ homeassistant.components.ambient_station.*
homeassistant.components.amcrest.*
homeassistant.components.ampio.*
homeassistant.components.aseko_pool_live.*
homeassistant.components.asuswrt.*
homeassistant.components.automation.*
homeassistant.components.backup.*
homeassistant.components.binary_sensor.*
@@ -62,11 +63,7 @@ homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.crownstone.*
homeassistant.components.cpuspeed.*
homeassistant.components.deconz
homeassistant.components.deconz.config_flow
homeassistant.components.deconz.diagnostics
homeassistant.components.deconz.gateway
homeassistant.components.deconz.services
homeassistant.components.deconz.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
@@ -78,6 +75,7 @@ homeassistant.components.dsmr.*
homeassistant.components.dunehd.*
homeassistant.components.efergy.*
homeassistant.components.elgato.*
homeassistant.components.elkm1.*
homeassistant.components.esphome.*
homeassistant.components.energy.*
homeassistant.components.evil_genius_labs.*
@@ -88,6 +86,7 @@ homeassistant.components.flunearyou.*
homeassistant.components.flux_led.*
homeassistant.components.forecast_solar.*
homeassistant.components.fritzbox.*
homeassistant.components.fritzbox_callmonitor.*
homeassistant.components.fronius.*
homeassistant.components.frontend.*
homeassistant.components.fritz.*
@@ -196,6 +195,7 @@ homeassistant.components.scene.*
homeassistant.components.select.*
homeassistant.components.sensor.*
homeassistant.components.senseme.*
homeassistant.components.senz.*
homeassistant.components.shelly.*
homeassistant.components.simplisafe.*
homeassistant.components.slack.*

View File

@@ -56,7 +56,6 @@ build.json @home-assistant/supervisor
/tests/components/alexa/ @home-assistant/cloud @ochlocracy
/homeassistant/components/almond/ @gcampax @balloob
/tests/components/almond/ @gcampax @balloob
/homeassistant/components/alpha_vantage/ @fabaff
/homeassistant/components/ambee/ @frenck
/tests/components/ambee/ @frenck
/homeassistant/components/amberelectric/ @madpilot
@@ -82,7 +81,6 @@ build.json @home-assistant/supervisor
/tests/components/aprs/ @PhilRW
/homeassistant/components/arcam_fmj/ @elupus
/tests/components/arcam_fmj/ @elupus
/homeassistant/components/arest/ @fabaff
/homeassistant/components/arris_tg2492lg/ @vanbalken
/homeassistant/components/aseko_pool_live/ @milanmeu
/tests/components/aseko_pool_live/ @milanmeu
@@ -121,7 +119,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/beewi_smartclim/ @alemuro
/homeassistant/components/binary_sensor/ @home-assistant/core
/tests/components/binary_sensor/ @home-assistant/core
/homeassistant/components/bitcoin/ @fabaff
/homeassistant/components/bizkaibus/ @UgaitzEtxebarria
/homeassistant/components/blebox/ @bbx-a @bbx-jp
/tests/components/blebox/ @bbx-a @bbx-jp
@@ -253,7 +250,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/dunehd/ @bieniu
/tests/components/dunehd/ @bieniu
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @Hummel95
/homeassistant/components/dweet/ @fabaff
/homeassistant/components/dynalite/ @ziv1234
/tests/components/dynalite/ @ziv1234
/homeassistant/components/eafm/ @Jc2k
@@ -332,7 +328,6 @@ build.json @home-assistant/supervisor
/tests/components/flipr/ @cnico
/homeassistant/components/flo/ @dmulcahey
/tests/components/flo/ @dmulcahey
/homeassistant/components/flock/ @fabaff
/homeassistant/components/flume/ @ChrisMandich @bdraco
/tests/components/flume/ @ChrisMandich @bdraco
/homeassistant/components/flunearyou/ @bachya
@@ -354,6 +349,8 @@ build.json @home-assistant/supervisor
/tests/components/fritz/ @mammuth @AaronDavidSchneider @chemelli74 @mib1185
/homeassistant/components/fritzbox/ @mib1185 @flabbamann
/tests/components/fritzbox/ @mib1185 @flabbamann
/homeassistant/components/fritzbox_callmonitor/ @cdce8p
/tests/components/fritzbox_callmonitor/ @cdce8p
/homeassistant/components/fronius/ @nielstron @farmio
/tests/components/fronius/ @nielstron @farmio
/homeassistant/components/frontend/ @home-assistant/frontend
@@ -381,9 +378,8 @@ build.json @home-assistant/supervisor
/tests/components/gios/ @bieniu
/homeassistant/components/github/ @timmo001 @ludeeus
/tests/components/github/ @timmo001 @ludeeus
/homeassistant/components/gitter/ @fabaff
/homeassistant/components/glances/ @fabaff @engrbm87
/tests/components/glances/ @fabaff @engrbm87
/homeassistant/components/glances/ @engrbm87
/tests/components/glances/ @engrbm87
/homeassistant/components/goalzero/ @tkdrob
/tests/components/goalzero/ @tkdrob
/homeassistant/components/gogogate2/ @vangorra @bdraco
@@ -476,8 +472,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/image_processing/ @home-assistant/core
/tests/components/image_processing/ @home-assistant/core
/homeassistant/components/incomfort/ @zxdavb
/homeassistant/components/influxdb/ @fabaff @mdegat01
/tests/components/influxdb/ @fabaff @mdegat01
/homeassistant/components/influxdb/ @mdegat01
/tests/components/influxdb/ @mdegat01
/homeassistant/components/input_boolean/ @home-assistant/core
/tests/components/input_boolean/ @home-assistant/core
/homeassistant/components/input_button/ @home-assistant/core
@@ -554,6 +550,7 @@ build.json @home-assistant/supervisor
/tests/components/lcn/ @alengwenus
/homeassistant/components/lg_netcast/ @Drafteed
/homeassistant/components/life360/ @pnbruckner
/homeassistant/components/lifx/ @Djelibeybi
/homeassistant/components/light/ @home-assistant/core
/tests/components/light/ @home-assistant/core
/homeassistant/components/linux_battery/ @fabaff
@@ -588,6 +585,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/matrix/ @tinloaf
/homeassistant/components/mazda/ @bdr99
/tests/components/mazda/ @bdr99
/homeassistant/components/meater/ @Sotolotl @emontnemery
/tests/components/meater/ @Sotolotl @emontnemery
/homeassistant/components/media_player/ @home-assistant/core
/tests/components/media_player/ @home-assistant/core
/homeassistant/components/media_source/ @hunterjm
@@ -637,7 +636,6 @@ build.json @home-assistant/supervisor
/tests/components/motion_blinds/ @starkillerOG
/homeassistant/components/motioneye/ @dermotduffy
/tests/components/motioneye/ @dermotduffy
/homeassistant/components/mpd/ @fabaff
/homeassistant/components/mqtt/ @emontnemery
/tests/components/mqtt/ @emontnemery
/homeassistant/components/msteams/ @peroyvind
@@ -684,8 +682,6 @@ build.json @home-assistant/supervisor
/tests/components/nina/ @DeerMaximum
/homeassistant/components/nissan_leaf/ @filcole
/homeassistant/components/nmbs/ @thibmaek
/homeassistant/components/no_ip/ @fabaff
/tests/components/no_ip/ @fabaff
/homeassistant/components/noaa_tides/ @jdelaney72
/homeassistant/components/notify/ @home-assistant/core
/tests/components/notify/ @home-assistant/core
@@ -758,8 +754,8 @@ build.json @home-assistant/supervisor
/tests/components/persistent_notification/ @home-assistant/core
/homeassistant/components/philips_js/ @elupus
/tests/components/philips_js/ @elupus
/homeassistant/components/pi_hole/ @fabaff @johnluetke @shenxn
/tests/components/pi_hole/ @fabaff @johnluetke @shenxn
/homeassistant/components/pi_hole/ @johnluetke @shenxn
/tests/components/pi_hole/ @johnluetke @shenxn
/homeassistant/components/picnic/ @corneyl
/tests/components/picnic/ @corneyl
/homeassistant/components/pilight/ @trekky12
@@ -793,13 +789,15 @@ build.json @home-assistant/supervisor
/tests/components/pure_energie/ @klaasnicolaas
/homeassistant/components/push/ @dgomes
/tests/components/push/ @dgomes
/homeassistant/components/pvoutput/ @fabaff @frenck
/tests/components/pvoutput/ @fabaff @frenck
/homeassistant/components/pvoutput/ @frenck
/tests/components/pvoutput/ @frenck
/homeassistant/components/pvpc_hourly_pricing/ @azogue
/tests/components/pvpc_hourly_pricing/ @azogue
/homeassistant/components/qbittorrent/ @geoffreylagaisse
/homeassistant/components/qld_bushfire/ @exxamalte
/tests/components/qld_bushfire/ @exxamalte
/homeassistant/components/qnap_qsw/ @Noltari
/tests/components/qnap_qsw/ @Noltari
/homeassistant/components/quantum_gateway/ @cisasteelersfan
/homeassistant/components/qvr_pro/ @oblogic7
/homeassistant/components/qwikswitch/ @kellerza
@@ -857,6 +855,8 @@ build.json @home-assistant/supervisor
/tests/components/rtsp_to_webrtc/ @allenporter
/homeassistant/components/ruckus_unleashed/ @gabe565
/tests/components/ruckus_unleashed/ @gabe565
/homeassistant/components/sabnzbd/ @shaiu
/tests/components/sabnzbd/ @shaiu
/homeassistant/components/safe_mode/ @home-assistant/core
/tests/components/safe_mode/ @home-assistant/core
/homeassistant/components/saj/ @fredericvl
@@ -887,6 +887,8 @@ build.json @home-assistant/supervisor
/tests/components/sensor/ @home-assistant/core
/homeassistant/components/sentry/ @dcramer @frenck
/tests/components/sentry/ @dcramer @frenck
/homeassistant/components/senz/ @milanmeu
/tests/components/senz/ @milanmeu
/homeassistant/components/serial/ @fabaff
/homeassistant/components/seven_segments/ @fabaff
/homeassistant/components/sharkiq/ @JeffResc @funkybunch @AritroSaha10
@@ -915,6 +917,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/sleepiq/ @mfugate1 @kbickar
/tests/components/sleepiq/ @mfugate1 @kbickar
/homeassistant/components/slide/ @ualex73
/homeassistant/components/slimproto/ @marcelveldt
/tests/components/slimproto/ @marcelveldt
/homeassistant/components/sma/ @kellerza @rklomp
/tests/components/sma/ @kellerza @rklomp
/homeassistant/components/smappee/ @bsmappee
@@ -929,8 +933,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/smhi/ @gjohansson-ST
/tests/components/smhi/ @gjohansson-ST
/homeassistant/components/sms/ @ocalvo
/homeassistant/components/smtp/ @fabaff
/tests/components/smtp/ @fabaff
/homeassistant/components/solaredge/ @frenck
/tests/components/solaredge/ @frenck
/homeassistant/components/solaredge_local/ @drobtravels @scheric
@@ -957,8 +959,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/splunk/ @Bre77
/homeassistant/components/spotify/ @frenck
/tests/components/spotify/ @frenck
/homeassistant/components/sql/ @dgomes
/tests/components/sql/ @dgomes
/homeassistant/components/sql/ @dgomes @gjohansson-ST
/tests/components/sql/ @dgomes @gjohansson-ST
/homeassistant/components/squeezebox/ @rajlaud
/tests/components/squeezebox/ @rajlaud
/homeassistant/components/srp_energy/ @briglx
@@ -967,6 +969,8 @@ build.json @home-assistant/supervisor
/tests/components/starline/ @anonym-tsk
/homeassistant/components/statistics/ @fabaff @ThomDietrich
/tests/components/statistics/ @fabaff @ThomDietrich
/homeassistant/components/steam_online/ @tkdrob
/tests/components/steam_online/ @tkdrob
/homeassistant/components/steamist/ @bdraco
/tests/components/steamist/ @bdraco
/homeassistant/components/stiebel_eltron/ @fucm
@@ -1002,7 +1006,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/synology_dsm/ @hacf-fr @Quentame @mib1185
/tests/components/synology_dsm/ @hacf-fr @Quentame @mib1185
/homeassistant/components/synology_srm/ @aerialls
/homeassistant/components/syslog/ @fabaff
/homeassistant/components/system_bridge/ @timmo001
/tests/components/system_bridge/ @timmo001
/homeassistant/components/tado/ @michaelarnauts @north3221
@@ -1016,7 +1019,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/tapsaff/ @bazwilliams
/homeassistant/components/tasmota/ @emontnemery
/tests/components/tasmota/ @emontnemery
/homeassistant/components/tautulli/ @ludeeus
/homeassistant/components/tautulli/ @ludeeus @tkdrob
/tests/components/tautulli/ @ludeeus @tkdrob
/homeassistant/components/tellduslive/ @fredrike
/tests/components/tellduslive/ @fredrike
/homeassistant/components/template/ @PhracturedBlue @tetienne @home-assistant/core
@@ -1042,14 +1046,16 @@ build.json @home-assistant/supervisor
/tests/components/tomorrowio/ @raman325
/homeassistant/components/totalconnect/ @austinmroczek
/tests/components/totalconnect/ @austinmroczek
/homeassistant/components/tplink/ @rytilahti @thegardenmonkey
/tests/components/tplink/ @rytilahti @thegardenmonkey
/homeassistant/components/tplink/ @rytilahti @thegardenmonkey @bdraco
/tests/components/tplink/ @rytilahti @thegardenmonkey @bdraco
/homeassistant/components/traccar/ @ludeeus
/tests/components/traccar/ @ludeeus
/homeassistant/components/trace/ @home-assistant/core
/tests/components/trace/ @home-assistant/core
/homeassistant/components/tractive/ @Danielhiversen @zhulik @bieniu
/tests/components/tractive/ @Danielhiversen @zhulik @bieniu
/homeassistant/components/trafikverket_ferry/ @gjohansson-ST
/tests/components/trafikverket_ferry/ @gjohansson-ST
/homeassistant/components/trafikverket_train/ @endor-force @gjohansson-ST
/tests/components/trafikverket_train/ @endor-force @gjohansson-ST
/homeassistant/components/trafikverket_weatherstation/ @endor-force @gjohansson-ST
@@ -1058,8 +1064,8 @@ build.json @home-assistant/supervisor
/tests/components/transmission/ @engrbm87 @JPHutchins
/homeassistant/components/tts/ @pvizeli
/tests/components/tts/ @pvizeli
/homeassistant/components/tuya/ @Tuya @zlinoliver @METISU @frenck
/tests/components/tuya/ @Tuya @zlinoliver @METISU @frenck
/homeassistant/components/tuya/ @Tuya @zlinoliver @frenck
/tests/components/tuya/ @Tuya @zlinoliver @frenck
/homeassistant/components/twentemilieu/ @frenck
/tests/components/twentemilieu/ @frenck
/homeassistant/components/twinkly/ @dr1rrb @Robbie1221
@@ -1076,8 +1082,6 @@ build.json @home-assistant/supervisor
/tests/components/upcloud/ @scop
/homeassistant/components/update/ @home-assistant/core
/tests/components/update/ @home-assistant/core
/homeassistant/components/updater/ @home-assistant/core
/tests/components/updater/ @home-assistant/core
/homeassistant/components/upnp/ @StevenLooman @ehendrix23
/tests/components/upnp/ @StevenLooman @ehendrix23
/homeassistant/components/uptime/ @frenck
@@ -1104,8 +1108,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/verisure/ @frenck
/tests/components/verisure/ @frenck
/homeassistant/components/versasense/ @flamm3blemuff1n
/homeassistant/components/version/ @fabaff @ludeeus
/tests/components/version/ @fabaff @ludeeus
/homeassistant/components/version/ @ludeeus
/tests/components/version/ @ludeeus
/homeassistant/components/vesync/ @markperdue @webdjoe @thegardenmonkey
/tests/components/vesync/ @markperdue @webdjoe @thegardenmonkey
/homeassistant/components/vicare/ @oischinger

View File

@@ -19,6 +19,7 @@ RUN \
libpcap-dev \
libturbojpeg0 \
git \
cmake \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -147,9 +147,7 @@ class Data:
if not bcrypt.checkpw(password.encode(), user_hash):
raise InvalidAuth
def hash_password( # pylint: disable=no-self-use
self, password: str, for_storage: bool = False
) -> bytes:
def hash_password(self, password: str, for_storage: bool = False) -> bytes:
"""Encode a password."""
hashed: bytes = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))

View File

@@ -4,10 +4,7 @@ from __future__ import annotations
from abodepy.devices.alarm import AbodeAlarm as AbodeAl
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.components.alarm_control_panel import AlarmControlPanelEntityFeature
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
STATE_ALARM_ARMED_AWAY,
@@ -38,7 +35,10 @@ class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanelEntity):
_attr_icon = ICON
_attr_code_arm_required = False
_attr_supported_features = SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_AWAY
_attr_supported_features = (
AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_AWAY
)
_device: AbodeAl
@property

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
},
"create_entry": {
"default": "Alguns sensors no estan activats de manera predeterminada. Els pots activar des del registre d'entitats, despr\u00e9s de la configuraci\u00f3 de la integraci\u00f3.\nLa previsi\u00f3 meteorol\u00f2gica no est\u00e0 activada de manera predeterminada. Pots activar-la a les opcions de la integraci\u00f3."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_api_key": "Clau API inv\u00e0lida",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Bereits konfiguriert. Nur eine einzige Konfiguration m\u00f6glich."
},
"create_entry": {
"default": "Einige Sensoren sind standardm\u00e4\u00dfig nicht aktiviert. Du kannst sie nach der Integrationskonfiguration in der Entit\u00e4tsregistrierung aktivieren.\nDie Wettervorhersage ist nicht standardm\u00e4\u00dfig aktiviert. Du kannst sie in den Integrationsoptionen aktivieren."
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_api_key": "Ung\u00fcltiger API-Schl\u00fcssel",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "\u0388\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af. \u039c\u03cc\u03bd\u03bf \u03bc\u03af\u03b1 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae."
},
"create_entry": {
"default": "\u039f\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03b9 \u03b1\u03b9\u03c3\u03b8\u03b7\u03c4\u03ae\u03c1\u03b5\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf\u03b9 \u03b1\u03c0\u03cc \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae. \u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf \u03bc\u03b7\u03c4\u03c1\u03ce\u03bf \u03bf\u03bd\u03c4\u03bf\u03c4\u03ae\u03c4\u03c9\u03bd \u03bc\u03b5\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b5\u03bd\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2.\n \u0397 \u03c0\u03c1\u03cc\u03b3\u03bd\u03c9\u03c3\u03b7 \u03ba\u03b1\u03b9\u03c1\u03bf\u03cd \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b7 \u03b1\u03c0\u03cc \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae. \u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03bf \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b9\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2."
},
"error": {
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2",
"invalid_api_key": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03ba\u03bb\u03b5\u03b9\u03b4\u03af API",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Already configured. Only a single configuration possible."
},
"create_entry": {
"default": "Some sensors are not enabled by default. You can enable them in the entity registry after the integration configuration.\nWeather forecast is not enabled by default. You can enable it in the integration options."
},
"error": {
"cannot_connect": "Failed to connect",
"invalid_api_key": "Invalid API key",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Sidumine juba tehtud. V\u00f5imalik on ainult 1 sidumine."
},
"create_entry": {
"default": "M\u00f5ned andurid ei ole vaikimisi lubatud. Saad neid lubada \u00fcksuse registris p\u00e4rast sidumise seadistamist.\nIlmaprognoos ei ole vaikimisi lubatud. Saad selle lubada sidumise valikutes."
},
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"invalid_api_key": "API v\u00f5ti on vale",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "D\u00e9j\u00e0 configur\u00e9. Une seule configuration possible."
},
"create_entry": {
"default": "Certains capteurs ne sont pas activ\u00e9s par d\u00e9faut. Vous pouvez les activer dans le registre des entit\u00e9s une fois la configuration de l'int\u00e9gration termin\u00e9e.\nLes pr\u00e9visions m\u00e9t\u00e9orologiques ne sont pas activ\u00e9es par d\u00e9faut. Vous pouvez les activer dans les options de l'int\u00e9gration."
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_api_key": "Cl\u00e9 d'API non valide",
@@ -16,7 +19,7 @@
"longitude": "Longitude",
"name": "Nom"
},
"description": "Si vous avez besoin d'aide pour la configuration, consultez le site suivant : https://www.home-assistant.io/integrations/accuweather/\n\nCertains capteurs ne sont pas activ\u00e9s par d\u00e9faut. Vous pouvez les activer dans le registre des entit\u00e9s apr\u00e8s la configuration de l'int\u00e9gration.\nLes pr\u00e9visions m\u00e9t\u00e9orologiques ne sont pas activ\u00e9es par d\u00e9faut. Vous pouvez l'activer dans les options d'int\u00e9gration.",
"description": "Si vous avez besoin d'aide pour la configuration, consultez\u00a0: https://www.home-assistant.io/integrations/accuweather/\n\nCertains capteurs ne sont pas activ\u00e9s par d\u00e9faut. Vous pouvez les activer dans le registre des entit\u00e9s une fois la configuration de l'int\u00e9gration termin\u00e9e.\nLes pr\u00e9visions m\u00e9t\u00e9orologiques ne sont pas activ\u00e9es par d\u00e9faut. Vous pouvez les activer dans les options de l'int\u00e9gration.",
"title": "AccuWeather"
}
}

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "M\u00e1r konfigur\u00e1lva van. Csak egy konfigur\u00e1ci\u00f3 lehets\u00e9ges."
},
"create_entry": {
"default": "Egyes \u00e9rz\u00e9kel\u0151k alap\u00e9rtelmez\u00e9s szerint nincsenek enged\u00e9lyezve. Az integr\u00e1ci\u00f3s konfigur\u00e1ci\u00f3 ut\u00e1n enged\u00e9lyezheti \u0151ket az entit\u00e1s rendszerle\u00edr\u00f3 adatb\u00e1zis\u00e1ban.\nAz id\u0151j\u00e1r\u00e1s-el\u0151rejelz\u00e9s alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve. Ezt az integr\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokban enged\u00e9lyezheti."
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"invalid_api_key": "\u00c9rv\u00e9nytelen API kulcs",
@@ -14,7 +17,7 @@
"api_key": "API kulcs",
"latitude": "Sz\u00e9less\u00e9g",
"longitude": "Hossz\u00fas\u00e1g",
"name": "N\u00e9v"
"name": "Elnevez\u00e9s"
},
"description": "Ha seg\u00edts\u00e9gre van sz\u00fcks\u00e9ge a konfigur\u00e1l\u00e1shoz, n\u00e9zze meg itt: https://www.home-assistant.io/integrations/accuweather/ \n\nEgyes \u00e9rz\u00e9kel\u0151k alap\u00e9rtelmez\u00e9s szerint nincsenek enged\u00e9lyezve. Az integr\u00e1ci\u00f3s konfigur\u00e1ci\u00f3 ut\u00e1n enged\u00e9lyezheti \u0151ket az entit\u00e1s-nyilv\u00e1ntart\u00e1sban.\nAz id\u0151j\u00e1r\u00e1s-el\u0151rejelz\u00e9s alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve. Ezt az integr\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokban enged\u00e9lyezheti.",
"title": "AccuWeather"

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Sudah dikonfigurasi. Hanya satu konfigurasi yang diizinkan."
},
"create_entry": {
"default": "Beberapa sensor tidak diaktifkan secara default. Anda dapat mengaktifkannya di registri entitas setelah konfigurasi integrasi.\nPrakiraan cuaca tidak diaktifkan secara default. Anda dapat mengaktifkannya di opsi integrasi."
},
"error": {
"cannot_connect": "Gagal terhubung",
"invalid_api_key": "Kunci API tidak valid",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Gi\u00e0 configurato. \u00c8 possibile una sola configurazione."
},
"create_entry": {
"default": "Alcuni sensori non sono abilitati per impostazione predefinita. Puoi abilitarli nel registro delle entit\u00e0 dopo la configurazione dell'integrazione.\nLe previsioni del tempo non sono abilitate per impostazione predefinita. Puoi abilitarlo nelle opzioni di integrazione."
},
"error": {
"cannot_connect": "Impossibile connettersi",
"invalid_api_key": "Chiave API non valida",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5358\u4e00\u306e\u8a2d\u5b9a\u3057\u304b\u3067\u304d\u307e\u305b\u3093\u3002"
},
"create_entry": {
"default": "\u4e00\u90e8\u306e\u30bb\u30f3\u30b5\u30fc\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u6210\u5f8c\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30ec\u30b8\u30b9\u30c8\u30ea\u3067\u305d\u308c\u3089\u3092\u6709\u52b9\u306b\u3067\u304d\u307e\u3059\u3002\n\u5929\u6c17\u4e88\u5831\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6709\u52b9\u306b\u3067\u304d\u307e\u3059\u3002"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
"invalid_api_key": "\u7121\u52b9\u306aAPI\u30ad\u30fc",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Al geconfigureerd. Slechts een enkele configuratie mogelijk."
},
"create_entry": {
"default": "Sommige sensoren zijn standaard niet ingeschakeld. U kunt ze inschakelen in het entiteitenregister na de integratieconfiguratie.\nWeersvoorspelling is niet standaard ingeschakeld. U kunt deze inschakelen in de integratieopties."
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_api_key": "API-sleutel",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"create_entry": {
"default": "Noen sensorer er ikke aktivert som standard. Du kan aktivere dem i enhetsregisteret etter integrasjonskonfigurasjonen.\n V\u00e6rmelding er ikke aktivert som standard. Du kan aktivere det i integreringsalternativene."
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"invalid_api_key": "Ugyldig API-n\u00f8kkel",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Ju\u017c skonfigurowano. Mo\u017cliwa jest tylko jedna konfiguracja."
},
"create_entry": {
"default": "Niekt\u00f3re sensory nie s\u0105 domy\u015blnie w\u0142\u0105czone. Mo\u017cesz je w\u0142\u0105czy\u0107 w rejestrze encji po skonfigurowaniu integracji.\nPrognoza pogody nie jest domy\u015blnie w\u0142\u0105czona. Mo\u017cesz to w\u0142\u0105czy\u0107 w opcjach integracji."
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"invalid_api_key": "Nieprawid\u0142owy klucz API",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "J\u00e1 configurado. Apenas uma configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"create_entry": {
"default": "Alguns sensores n\u00e3o s\u00e3o ativados por padr\u00e3o. Voc\u00ea pode habilit\u00e1-los no registro da entidade ap\u00f3s a configura\u00e7\u00e3o da integra\u00e7\u00e3o.\n A previs\u00e3o do tempo n\u00e3o est\u00e1 habilitada por padr\u00e3o. Voc\u00ea pode habilit\u00e1-lo nas op\u00e7\u00f5es de integra\u00e7\u00e3o."
},
"error": {
"cannot_connect": "Falha ao conectar",
"invalid_api_key": "Chave de API inv\u00e1lida",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e."
},
"create_entry": {
"default": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u043d\u0441\u043e\u0440\u044b \u0441\u043a\u0440\u044b\u0442\u044b \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e\u0433\u043e\u0434\u044b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u0432 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e\u0433\u043e\u0434\u044b \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"invalid_api_key": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 API.",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Zaten yap\u0131land\u0131r\u0131lm\u0131\u015f. Yaln\u0131zca tek bir konfig\u00fcrasyon m\u00fcmk\u00fcnd\u00fcr."
},
"create_entry": {
"default": "Baz\u0131 sens\u00f6rler varsay\u0131lan olarak etkin de\u011fildir. Bunlar\u0131, entegrasyon yap\u0131land\u0131rmas\u0131ndan sonra varl\u0131k kay\u0131t defterinde etkinle\u015ftirebilirsiniz.\n Hava tahmini varsay\u0131lan olarak etkin de\u011fildir. Entegrasyon se\u00e7eneklerinde etkinle\u015ftirebilirsiniz."
},
"error": {
"cannot_connect": "Ba\u011flanma hatas\u0131",
"invalid_api_key": "Ge\u00e7ersiz API anahtar\u0131",

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210\u3001\u50c5\u80fd\u8a2d\u5b9a\u4e00\u7d44\u88dd\u7f6e\u3002"
},
"create_entry": {
"default": "\u90e8\u5206\u611f\u6e2c\u5668\u9810\u8a2d\u70ba\u4e0d\u555f\u7528\u72c0\u614b\u3002\u53ef\u4ee5\u7a0d\u5f8c\u65bc\u6574\u5408\u8a2d\u5b9a\u9801\u9762\u4e2d\u7684\u5be6\u9ad4\u8a3b\u518a\u8868\u9032\u884c\u555f\u7528\u3002\n\u5929\u6c23\u9810\u5831\u9810\u8a2d\u70ba\u4e0d\u555f\u7528\u3001\u53ef\u4ee5\u65bc\u6574\u5408\u9078\u9805\u4e2d\u9032\u884c\u555f\u7528\u3002"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_api_key": "API \u91d1\u9470\u7121\u6548",

View File

@@ -3,15 +3,8 @@ from __future__ import annotations
from homeassistant.components.cover import (
ATTR_POSITION,
SUPPORT_CLOSE,
SUPPORT_CLOSE_TILT,
SUPPORT_OPEN,
SUPPORT_OPEN_TILT,
SUPPORT_SET_POSITION,
SUPPORT_SET_TILT_POSITION,
SUPPORT_STOP,
SUPPORT_STOP_TILT,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, callback
@@ -79,14 +72,17 @@ class AcmedaCover(AcmedaBase, CoverEntity):
supported_features = 0
if self.current_cover_position is not None:
supported_features |= (
SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_STOP | SUPPORT_SET_POSITION
CoverEntityFeature.OPEN
| CoverEntityFeature.CLOSE
| CoverEntityFeature.STOP
| CoverEntityFeature.SET_POSITION
)
if self.current_cover_tilt_position is not None:
supported_features |= (
SUPPORT_OPEN_TILT
| SUPPORT_CLOSE_TILT
| SUPPORT_STOP_TILT
| SUPPORT_SET_TILT_POSITION
CoverEntityFeature.OPEN_TILT
| CoverEntityFeature.CLOSE_TILT
| CoverEntityFeature.STOP_TILT
| CoverEntityFeature.SET_TILT_POSITION
)
return supported_features

View File

@@ -7,11 +7,7 @@ from adax import Adax
from adax_local import Adax as AdaxLocal
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_TARGET_TEMPERATURE,
)
from homeassistant.components.climate.const import ClimateEntityFeature, HVACMode
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_TEMPERATURE,
@@ -65,10 +61,10 @@ async def async_setup_entry(
class AdaxDevice(ClimateEntity):
"""Representation of a heater."""
_attr_hvac_modes = [HVAC_MODE_HEAT, HVAC_MODE_OFF]
_attr_hvac_modes = [HVACMode.HEAT, HVACMode.OFF]
_attr_max_temp = 35
_attr_min_temp = 5
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
_attr_target_temperature_step = PRECISION_WHOLE
_attr_temperature_unit = TEMP_CELSIUS
@@ -86,12 +82,12 @@ class AdaxDevice(ClimateEntity):
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
"""Set hvac mode."""
if hvac_mode == HVAC_MODE_HEAT:
if hvac_mode == HVACMode.HEAT:
temperature = max(self.min_temp, self.target_temperature or self.min_temp)
await self._adax_data_handler.set_room_target_temperature(
self._device_id, temperature, True
)
elif hvac_mode == HVAC_MODE_OFF:
elif hvac_mode == HVACMode.OFF:
await self._adax_data_handler.set_room_target_temperature(
self._device_id, self.min_temp, False
)
@@ -116,10 +112,10 @@ class AdaxDevice(ClimateEntity):
self._attr_current_temperature = room.get("temperature")
self._attr_target_temperature = room.get("targetTemperature")
if room["heatingEnabled"]:
self._attr_hvac_mode = HVAC_MODE_HEAT
self._attr_hvac_mode = HVACMode.HEAT
self._attr_icon = "mdi:radiator"
else:
self._attr_hvac_mode = HVAC_MODE_OFF
self._attr_hvac_mode = HVACMode.OFF
self._attr_icon = "mdi:radiator-off"
return
@@ -127,11 +123,11 @@ class AdaxDevice(ClimateEntity):
class LocalAdaxDevice(ClimateEntity):
"""Representation of a heater."""
_attr_hvac_modes = [HVAC_MODE_HEAT]
_attr_hvac_mode = HVAC_MODE_HEAT
_attr_hvac_modes = [HVACMode.HEAT]
_attr_hvac_mode = HVACMode.HEAT
_attr_max_temp = 35
_attr_min_temp = 5
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
_attr_target_temperature_step = PRECISION_WHOLE
_attr_temperature_unit = TEMP_CELSIUS

View File

@@ -20,9 +20,9 @@
"local": {
"data": {
"wifi_pswd": "WiFi jelsz\u00f3",
"wifi_ssid": "WiFi ssid"
"wifi_ssid": "Wi-Fi SSID"
},
"description": "\u00c1ll\u00edtsa vissza a f\u0171t\u0151berendez\u00e9st a + \u00e9s az OK gomb nyomvatart\u00e1s\u00e1val, m\u00edg a kijelz\u0151n a \"Reset\" (Vissza\u00e1ll\u00edt\u00e1s) felirat nem jelenik meg. Ezut\u00e1n nyomja meg \u00e9s tartsa lenyomva a f\u0171t\u0151berendez\u00e9s OK gombj\u00e1t, am\u00edg a k\u00e9k led villogni nem kezd, majd nyomja meg a K\u00fcld\u00e9s gombot. A f\u0171t\u0151berendez\u00e9s konfigur\u00e1l\u00e1sa n\u00e9h\u00e1ny percet vehet ig\u00e9nybe."
"description": "\u00c1ll\u00edtsa vissza a f\u0171t\u0151berendez\u00e9st a + \u00e9s az OK gomb nyomvatart\u00e1s\u00e1val, m\u00edg a kijelz\u0151n a \"Reset\" (Vissza\u00e1ll\u00edt\u00e1s) felirat nem jelenik meg. Ezut\u00e1n nyomja meg \u00e9s tartsa lenyomva a f\u0171t\u0151berendez\u00e9s OK gombj\u00e1t, am\u00edg a k\u00e9k led villogni nem kezd, l\u00e9pjen tov\u00e1bb. A f\u0171t\u0151berendez\u00e9s konfigur\u00e1l\u00e1sa n\u00e9h\u00e1ny percet vehet ig\u00e9nybe."
},
"user": {
"data": {

View File

@@ -31,7 +31,7 @@
"host": "Host",
"password": "Wachtwoord"
},
"description": "Selecteer verbindingstype. Lokaal vereist verwarming met bluetooth"
"description": "Selecteer verbindingstype. Lokaal vereist verwarming met Bluetooth."
}
}
}

View File

@@ -8,11 +8,8 @@ from homeassistant.components.cover import (
ATTR_POSITION,
DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA,
SUPPORT_CLOSE,
SUPPORT_OPEN,
SUPPORT_SET_POSITION,
SUPPORT_STOP,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
from homeassistant.core import HomeAssistant
@@ -117,11 +114,13 @@ class AdsCover(AdsEntity, CoverEntity):
self._ads_var_close = ads_var_close
self._ads_var_stop = ads_var_stop
self._attr_device_class = device_class
self._attr_supported_features = SUPPORT_OPEN | SUPPORT_CLOSE
self._attr_supported_features = (
CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE
)
if ads_var_stop is not None:
self._attr_supported_features |= SUPPORT_STOP
self._attr_supported_features |= CoverEntityFeature.STOP
if ads_var_pos_set is not None:
self._attr_supported_features |= SUPPORT_SET_POSITION
self._attr_supported_features |= CoverEntityFeature.SET_POSITION
async def async_added_to_hass(self):
"""Register device notification."""

View File

@@ -7,7 +7,7 @@ import voluptuous as vol
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
PLATFORM_SCHEMA,
SUPPORT_BRIGHTNESS,
ColorMode,
LightEntity,
)
from homeassistant.const import CONF_NAME
@@ -60,7 +60,11 @@ class AdsLight(AdsEntity, LightEntity):
self._state_dict[STATE_KEY_BRIGHTNESS] = None
self._ads_var_brightness = ads_var_brightness
if ads_var_brightness is not None:
self._attr_supported_features = SUPPORT_BRIGHTNESS
self._attr_color_mode = ColorMode.BRIGHTNESS
self._attr_supported_color_modes = {ColorMode.BRIGHTNESS}
else:
self._attr_color_mode = ColorMode.ONOFF
self._attr_supported_color_modes = {ColorMode.ONOFF}
async def async_added_to_hass(self):
"""Register device notification."""

View File

@@ -9,15 +9,8 @@ from homeassistant.components.climate.const import (
FAN_HIGH,
FAN_LOW,
FAN_MEDIUM,
HVAC_MODE_AUTO,
HVAC_MODE_COOL,
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_FAN_MODE,
SUPPORT_TARGET_TEMPERATURE,
ClimateEntityFeature,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, TEMP_CELSIUS
@@ -35,20 +28,20 @@ from .const import (
from .entity import AdvantageAirEntity
ADVANTAGE_AIR_HVAC_MODES = {
"heat": HVAC_MODE_HEAT,
"cool": HVAC_MODE_COOL,
"vent": HVAC_MODE_FAN_ONLY,
"dry": HVAC_MODE_DRY,
"myauto": HVAC_MODE_AUTO,
"heat": HVACMode.HEAT,
"cool": HVACMode.COOL,
"vent": HVACMode.FAN_ONLY,
"dry": HVACMode.DRY,
"myauto": HVACMode.AUTO,
}
HASS_HVAC_MODES = {v: k for k, v in ADVANTAGE_AIR_HVAC_MODES.items()}
AC_HVAC_MODES = [
HVAC_MODE_OFF,
HVAC_MODE_COOL,
HVAC_MODE_HEAT,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_DRY,
HVACMode.OFF,
HVACMode.COOL,
HVACMode.HEAT,
HVACMode.FAN_ONLY,
HVACMode.DRY,
]
ADVANTAGE_AIR_FAN_MODES = {
@@ -61,7 +54,7 @@ HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()}
FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100}
ADVANTAGE_AIR_SERVICE_SET_MYZONE = "set_myzone"
ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_HEAT_COOL]
ZONE_HVAC_MODES = [HVACMode.OFF, HVACMode.HEAT_COOL]
PARALLEL_UPDATES = 0
@@ -108,7 +101,9 @@ class AdvantageAirAC(AdvantageAirClimateEntity):
_attr_fan_modes = [FAN_AUTO, FAN_LOW, FAN_MEDIUM, FAN_HIGH]
_attr_hvac_modes = AC_HVAC_MODES
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE | SUPPORT_FAN_MODE
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.FAN_MODE
)
def __init__(self, instance, ac_key):
"""Initialize an AdvantageAir AC unit."""
@@ -116,7 +111,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity):
self._attr_name = self._ac["name"]
self._attr_unique_id = f'{self.coordinator.data["system"]["rid"]}-{ac_key}'
if self._ac.get("myAutoModeEnabled"):
self._attr_hvac_modes = AC_HVAC_MODES + [HVAC_MODE_AUTO]
self._attr_hvac_modes = AC_HVAC_MODES + [HVACMode.AUTO]
@property
def target_temperature(self):
@@ -128,7 +123,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity):
"""Return the current HVAC modes."""
if self._ac["state"] == ADVANTAGE_AIR_STATE_ON:
return ADVANTAGE_AIR_HVAC_MODES.get(self._ac["mode"])
return HVAC_MODE_OFF
return HVACMode.OFF
@property
def fan_mode(self):
@@ -137,7 +132,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity):
async def async_set_hvac_mode(self, hvac_mode):
"""Set the HVAC Mode and State."""
if hvac_mode == HVAC_MODE_OFF:
if hvac_mode == HVACMode.OFF:
await self.async_change(
{self.ac_key: {"info": {"state": ADVANTAGE_AIR_STATE_OFF}}}
)
@@ -169,7 +164,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
"""AdvantageAir Zone control."""
_attr_hvac_modes = ZONE_HVAC_MODES
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
def __init__(self, instance, ac_key, zone_key):
"""Initialize an AdvantageAir Zone control."""
@@ -183,8 +178,8 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
def hvac_mode(self):
"""Return the current state as HVAC mode."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return HVAC_MODE_HEAT_COOL
return HVAC_MODE_OFF
return HVACMode.HEAT_COOL
return HVACMode.OFF
@property
def current_temperature(self):
@@ -198,7 +193,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
async def async_set_hvac_mode(self, hvac_mode):
"""Set the HVAC Mode and State."""
if hvac_mode == HVAC_MODE_OFF:
if hvac_mode == HVACMode.OFF:
await self.async_change(
{
self.ac_key: {

View File

@@ -1,11 +1,9 @@
"""Cover platform for Advantage Air integration."""
from homeassistant.components.cover import (
ATTR_POSITION,
SUPPORT_CLOSE,
SUPPORT_OPEN,
SUPPORT_SET_POSITION,
CoverDeviceClass,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
@@ -43,7 +41,11 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
"""Advantage Air Cover Class."""
_attr_device_class = CoverDeviceClass.DAMPER
_attr_supported_features = SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_SET_POSITION
_attr_supported_features = (
CoverEntityFeature.OPEN
| CoverEntityFeature.CLOSE
| CoverEntityFeature.SET_POSITION
)
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Cover Class."""

View File

@@ -14,7 +14,7 @@
"longitude": "Longitud",
"name": "Nom de la integraci\u00f3"
},
"description": "Configura la integraci\u00f3 d'AEMET OpenData. Per generar la clau API, v\u00e9s a https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Per generar la clau API, v\u00e9s a https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "L\u00e4ngengrad",
"name": "Name der Integration"
},
"description": "Richte die AEMET OpenData Integration ein. Um den API-Schl\u00fcssel zu generieren, besuche https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Um den API-Schl\u00fcssel zu generieren, besuche https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Longitude",
"name": "Name of the integration"
},
"description": "Set up AEMET OpenData integration. To generate API key go to https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "To generate API key go to https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Pikkuskraad",
"name": "Sidumise nimi"
},
"description": "Seadista AEMET OpenData sidumine. API v\u00f5tme loomiseks mine aadressile https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "API-v\u00f5tme loomiseks mine aadressile https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Longitude",
"name": "Nom de l'int\u00e9gration"
},
"description": "Configurez l'int\u00e9gration AEMET OpenData. Pour g\u00e9n\u00e9rer la cl\u00e9 API, acc\u00e9dez \u00e0 https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Pour g\u00e9n\u00e9rer une cl\u00e9 d'API, rendez-vous sur https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Hossz\u00fas\u00e1g",
"name": "Az integr\u00e1ci\u00f3 neve"
},
"description": "\u00c1ll\u00edtsa be az AEMET OpenData integr\u00e1ci\u00f3t. Az API-kulcs el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz keresse fel a https://opendata.aemet.es/centrodedescargas/altaUsuario webhelyet.",
"description": "Az API-kulcs l\u00e9trehoz\u00e1s\u00e1hoz keresse fel a https://opendata.aemet.es/centrodedescargas/altaUsuario webhelyet",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Bujur",
"name": "Nama integrasi"
},
"description": "Siapkan integrasi AEMET OpenData. Untuk menghasilkan kunci API, buka https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Untuk membuat kunci API, buka https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Logitudine",
"name": "Nome dell'integrazione"
},
"description": "Imposta l'integrazione di AEMET OpenData. Per generare la chiave API, vai su https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Per generare la chiave API, vai su https://opendata.aemet.es/centrodescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Lengtegraad",
"name": "Naam van de integratie"
},
"description": "Stel AEMET OpenData-integratie in. Ga naar https://opendata.aemet.es/centrodedescargas/altaUsuario om een API-sleutel te genereren",
"description": "Om een API sleutel te genereren ga naar https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Lengdegrad",
"name": "Navnet p\u00e5 integrasjonen"
},
"description": "Sett opp AEMET OpenData-integrasjon. For \u00e5 generere API-n\u00f8kkel, g\u00e5 til https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "For \u00e5 generere API-n\u00f8kkel, g\u00e5 til https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "D\u0142ugo\u015b\u0107 geograficzna",
"name": "Nazwa integracji"
},
"description": "Skonfiguruj integracj\u0119 AEMET OpenData. Aby wygenerowa\u0107 klucz API, przejd\u017a do https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Aby wygenerowa\u0107 klucz API, przejd\u017a do https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Longitude",
"name": "Nome da integra\u00e7\u00e3o"
},
"description": "Configure a integra\u00e7\u00e3o AEMET OpenData. Para gerar a chave API acesse https://opendata.aemet.es/centrodedescargas/altaUsuario",
"description": "Para gerar a chave API acesse https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435"
},
"description": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Home Assistant \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 AEMET OpenData. \u0427\u0442\u043e\u0431\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 https://opendata.aemet.es/centrodedescargas/altaUsuario.",
"description": "\u0427\u0442\u043e\u0431\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://opendata.aemet.es/centrodedescargas/altaUsuario.",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "Boylam",
"name": "Entegrasyonun ad\u0131"
},
"description": "AEMET OpenData entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://opendata.aemet.es/centrodedescargas/altaUsuario adresine gidin.",
"description": "API anahtar\u0131 olu\u015fturmak i\u00e7in https://opendata.aemet.es/centrodedescargas/altaUsuario adresine gidin.",
"title": "AEMET OpenData"
}
}

View File

@@ -14,7 +14,7 @@
"longitude": "\u7d93\u5ea6",
"name": "\u6574\u5408\u540d\u7a31"
},
"description": "\u6b32\u8a2d\u5b9a AEMET OpenData \u6574\u5408\u3002\u8acb\u81f3 https://opendata.aemet.es/centrodedescargas/altaUsuario \u7522\u751f API \u91d1\u9470",
"description": "\u8acb\u81f3 https://opendata.aemet.es/centrodedescargas/altaUsuario \u4ee5\u7522\u751f API \u91d1\u9470",
"title": "AEMET OpenData"
}
}

View File

@@ -1,9 +1,7 @@
"""Support for Agent DVR Alarm Control Panels."""
from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity
from homeassistant.components.alarm_control_panel.const import (
SUPPORT_ALARM_ARM_AWAY,
SUPPORT_ALARM_ARM_HOME,
SUPPORT_ALARM_ARM_NIGHT,
from homeassistant.components.alarm_control_panel import (
AlarmControlPanelEntity,
AlarmControlPanelEntityFeature,
)
from homeassistant.const import (
STATE_ALARM_ARMED_AWAY,
@@ -38,7 +36,9 @@ class AgentBaseStation(AlarmControlPanelEntity):
_attr_icon = ICON
_attr_supported_features = (
SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_AWAY | SUPPORT_ALARM_ARM_NIGHT
AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_AWAY
| AlarmControlPanelEntityFeature.ARM_NIGHT
)
def __init__(self, client):

View File

@@ -4,7 +4,7 @@ import logging
from agent import AgentError
from homeassistant.components.camera import SUPPORT_ON_OFF
from homeassistant.components.camera import CameraEntityFeature
from homeassistant.components.mjpeg import MjpegCamera, filter_urllib3_logging
from homeassistant.const import ATTR_ATTRIBUTION
from homeassistant.helpers import entity_platform
@@ -63,6 +63,8 @@ async def async_setup_entry(
class AgentCamera(MjpegCamera):
"""Representation of an Agent Device Stream."""
_attr_supported_features = CameraEntityFeature.ON_OFF
def __init__(self, device):
"""Initialize as a subclass of MjpegCamera."""
self.device = device
@@ -134,11 +136,6 @@ class AgentCamera(MjpegCamera):
"""Return True if entity is connected."""
return self.device.connected
@property
def supported_features(self) -> int:
"""Return supported features."""
return SUPPORT_ON_OFF
@property
def is_on(self) -> bool:
"""Return true if on."""

View File

@@ -4,7 +4,7 @@
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van"
},
"error": {
"already_in_progress": "A konfigur\u00e1l\u00e1s m\u00e1r folyamatban van",
"already_in_progress": "A be\u00e1ll\u00edt\u00e1si folyamat m\u00e1r el lett kezdve",
"cannot_connect": "Sikertelen csatlakoz\u00e1s"
},
"step": {

View File

@@ -0,0 +1,31 @@
"""Diagnostics support for Airly."""
from __future__ import annotations
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,
CONF_LONGITUDE,
CONF_UNIQUE_ID,
)
from homeassistant.core import HomeAssistant
from . import AirlyDataUpdateCoordinator
from .const import DOMAIN
TO_REDACT = {CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_UNIQUE_ID}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict:
"""Return diagnostics for a config entry."""
coordinator: AirlyDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
diagnostics_data = {
"config_entry": async_redact_data(config_entry.as_dict(), TO_REDACT),
"coordinator_data": coordinator.data,
}
return diagnostics_data

View File

@@ -15,7 +15,7 @@
"longitude": "Longitud",
"name": "Nom"
},
"description": "Configura la integraci\u00f3 de qualitat de l'aire Airly. Per generar la clau API, v\u00e9s a https://developer.airly.eu/register",
"description": "Per generar la clau API, v\u00e9s a https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "L\u00e4ngengrad",
"name": "Name"
},
"description": "Einrichtung der Airly-Luftqualit\u00e4t Integration. Um einen API-Schl\u00fcssel zu generieren, registriere dich auf https://developer.airly.eu/register",
"description": "Um einen API-Schl\u00fcssel zu generieren, besuche https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Longitude",
"name": "Name"
},
"description": "Set up Airly air quality integration. To generate API key go to https://developer.airly.eu/register",
"description": "To generate API key go to https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Pikkuskraad",
"name": "Nimi"
},
"description": "Seadista Airly \u00f5hukvaliteedi andmete sidumine. API v\u00f5tme loomiseks mine aadressile https://developer.airly.eu/register",
"description": "API-v\u00f5tme loomiseks mine aadressile https://developer.airly.eu/register",
"title": ""
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Longitude",
"name": "Nom"
},
"description": "Configurez l'int\u00e9gration de la qualit\u00e9 de l'air Airly. Pour g\u00e9n\u00e9rer une cl\u00e9 API, rendez-vous sur https://developer.airly.eu/register.",
"description": "Pour g\u00e9n\u00e9rer une cl\u00e9 d'API, rendez-vous sur https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -13,9 +13,9 @@
"api_key": "API kulcs",
"latitude": "Sz\u00e9less\u00e9g",
"longitude": "Hossz\u00fas\u00e1g",
"name": "N\u00e9v"
"name": "Elnevez\u00e9s"
},
"description": "Az Airly leveg\u0151min\u0151s\u00e9gi integr\u00e1ci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1sa. Api-kulcs l\u00e9trehoz\u00e1s\u00e1hoz nyissa meg a k\u00f6vetkez\u0151 weboldalt: https://developer.airly.eu/register",
"description": "Az API-kulcs l\u00e9trehoz\u00e1s\u00e1hoz keresse fel a https://developer.airly.eu/register webhelyet",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Bujur",
"name": "Nama"
},
"description": "Siapkan integrasi kualitas udara Airly. Untuk membuat kunci API, buka https://developer.airly.eu/register",
"description": "Untuk membuat kunci API, buka https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Logitudine",
"name": "Nome"
},
"description": "Configurazione dell'integrazione della qualit\u00e0 dell'aria Airly. Per generare la chiave API vai su https://developer.airly.eu/register",
"description": "Per generare la chiave API, vai su https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Lengtegraad",
"name": "Naam"
},
"description": "Airly-integratie van luchtkwaliteit instellen. Ga naar https://developer.airly.eu/register om de API-sleutel te genereren",
"description": "Om een API sleutel te genereren ga naar https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Lengdegrad",
"name": "Navn"
},
"description": "Sett opp Airly luftkvalitet integrasjon. For \u00e5 opprette API-n\u00f8kkel, g\u00e5 til [https://developer.airly.eu/register](https://developer.airly.eu/register)",
"description": "For \u00e5 generere API-n\u00f8kkel, g\u00e5 til https://developer.airly.eu/register",
"title": ""
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "D\u0142ugo\u015b\u0107 geograficzna",
"name": "Nazwa"
},
"description": "Konfiguracja integracji Airly. By wygenerowa\u0107 klucz API, przejd\u017a na stron\u0119 https://developer.airly.eu/register",
"description": "By wygenerowa\u0107 klucz API, przejd\u017a na stron\u0119 https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Longitude",
"name": "Nome"
},
"description": "Configure a integra\u00e7\u00e3o da qualidade do ar airly. Para gerar a chave de API v\u00e1 para https://developer.airly.eu/register",
"description": "Para gerar a chave de API, acesse https://developer.airly.eu/register",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435"
},
"description": "\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u0434\u0443\u0445\u0430 Airly. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://developer.airly.eu/register.",
"description": "\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://developer.airly.eu/register.",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "Boylam",
"name": "Ad"
},
"description": "Airly hava kalitesi entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://developer.airly.eu/register adresine gidin.",
"description": "API anahtar\u0131 olu\u015fturmak i\u00e7in https://developer.airly.eu/register adresine gidin.",
"title": "Airly"
}
}

View File

@@ -15,7 +15,7 @@
"longitude": "\u7d93\u5ea6",
"name": "\u540d\u7a31"
},
"description": "\u6b32\u8a2d\u5b9a Airly \u7a7a\u6c23\u54c1\u8cea\u6574\u5408\u3002\u8acb\u81f3 https://developer.airly.eu/register \u7522\u751f API \u91d1\u9470",
"description": "\u8acb\u81f3 https://developer.airly.eu/register \u4ee5\u7522\u751f API \u91d1\u9470",
"title": "Airly"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Longitud",
"radius": "Radi de l'estaci\u00f3 (milles; opcional)"
},
"description": "Configura la integraci\u00f3 de qualitat d'aire AirNow. Per generar la clau API, v\u00e9s a https://docs.airnowapi.org/account/request/",
"description": "Per generar la clau API, v\u00e9s a https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "L\u00e4ngengrad",
"radius": "Stationsradius (Meilen; optional)"
},
"description": "Richte die AirNow-Luftqualit\u00e4tsintegration ein. Um den API-Schl\u00fcssel zu generieren, besuche https://docs.airnowapi.org/account/request/.",
"description": "Um den API-Schl\u00fcssel zu generieren, besuche https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Longitude",
"radius": "Station Radius (miles; optional)"
},
"description": "Set up AirNow air quality integration. To generate API key go to https://docs.airnowapi.org/account/request/",
"description": "To generate API key go to https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Pikkuskraad",
"radius": "Jaama raadius (miilid; valikuline)"
},
"description": "Seadista AirNow \u00f5hukvaliteedi sidumine. API-v\u00f5tme loomiseks mine aadressile https://docs.airnowapi.org/account/request/",
"description": "API-v\u00f5tme loomiseks mine aadressile https://docs.airnowapi.org/account/request/",
"title": ""
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Longitude",
"radius": "Rayon d'action de la station (en miles, facultatif)"
},
"description": "Configurez l'int\u00e9gration de la qualit\u00e9 de l'air AirNow. Pour g\u00e9n\u00e9rer la cl\u00e9 API, acc\u00e9dez \u00e0 https://docs.airnowapi.org/account/request/",
"description": "Pour g\u00e9n\u00e9rer une cl\u00e9 d'API, rendez-vous sur https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Hossz\u00fas\u00e1g",
"radius": "\u00c1llom\u00e1s sugara (m\u00e9rf\u00f6ld; opcion\u00e1lis)"
},
"description": "\u00c1ll\u00edtsa be az AirNow leveg\u0151min\u0151s\u00e9gi integr\u00e1ci\u00f3t. Az API-kulcs el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz keresse fel a https://docs.airnowapi.org/account/request/ oldalt.",
"description": "Az API-kulcs l\u00e9trehoz\u00e1s\u00e1hoz keresse fel a https://docs.airnowapi.org/account/request/ webhelyet",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Bujur",
"radius": "Radius Stasiun (mil; opsional)"
},
"description": "Siapkan integrasi kualitas udara AirNow. Untuk membuat kunci API buka https://docs.airnowapi.org/account/request/",
"description": "Untuk membuat kunci API buka https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Logitudine",
"radius": "Raggio stazione (miglia; opzionale)"
},
"description": "Configura l'integrazione per la qualit\u00e0 dell'aria AirNow. Per generare la chiave API, vai su https://docs.airnowapi.org/account/request/",
"description": "Per generare la chiave API vai su https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Lengtegraad",
"radius": "Stationsradius (mijl; optioneel)"
},
"description": "AirNow luchtkwaliteit integratie opzetten. Om een API sleutel te genereren ga naar https://docs.airnowapi.org/account/request/",
"description": "Om een API sleutel te genereren ga naar https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Lengdegrad",
"radius": "Stasjonsradius (miles; valgfritt)"
},
"description": "Konfigurer integrering av luftkvalitet i AirNow. For \u00e5 generere en API-n\u00f8kkel, g\u00e5r du til https://docs.airnowapi.org/account/request/",
"description": "For \u00e5 generere API-n\u00f8kkel, g\u00e5 til https://docs.airnowapi.org/account/request/",
"title": ""
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "D\u0142ugo\u015b\u0107 geograficzna",
"radius": "Promie\u0144 od stacji (w milach; opcjonalnie)"
},
"description": "Konfiguracja integracji jako\u015bci powietrza AirNow. Aby wygenerowa\u0107 klucz API, przejd\u017a do https://docs.airnowapi.org/account/request/",
"description": "Aby wygenerowa\u0107 klucz API, przejd\u017a do https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Longitude",
"radius": "Raio da Esta\u00e7\u00e3o (milhas; opcional)"
},
"description": "Configure a integra\u00e7\u00e3o da qualidade do ar AirNow. Para gerar a chave de API, acesse https://docs.airnowapi.org/account/request/",
"description": "Para gerar a chave de API, acesse https://docs.airnowapi.org/account/request/",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"radius": "\u0420\u0430\u0434\u0438\u0443\u0441 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 (\u0432 \u043c\u0438\u043b\u044f\u0445; \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)"
},
"description": "\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u0434\u0443\u0445\u0430 AirNow. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://docs.airnowapi.org/account/request/.",
"description": "\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u044e\u0447 API, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://docs.airnowapi.org/account/request/.",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "Boylam",
"radius": "\u0130stasyon Yar\u0131\u00e7ap\u0131 (mil; iste\u011fe ba\u011fl\u0131)"
},
"description": "AirNow hava kalitesi entegrasyonunu ayarlay\u0131n. API anahtar\u0131 olu\u015fturmak i\u00e7in https://docs.airnowapi.org/account/request/ adresine gidin.",
"description": "API anahtar\u0131 olu\u015fturmak i\u00e7in https://docs.airnowapi.org/account/request/ adresine gidin.",
"title": "AirNow"
}
}

View File

@@ -17,7 +17,7 @@
"longitude": "\u7d93\u5ea6",
"radius": "\u89c0\u6e2c\u7ad9\u534a\u5f91\uff08\u82f1\u91cc\uff1b\u9078\u9805\uff09"
},
"description": "\u6b32\u8a2d\u5b9a AirNow \u7a7a\u6c23\u54c1\u8cea\u6574\u5408\u3002\u8acb\u81f3 https://docs.airnowapi.org/account/request/ \u7522\u751f API \u91d1\u9470",
"description": "\u8acb\u81f3 https://docs.airnowapi.org/account/request/ \u4ee5\u7522\u751f API \u91d1\u9470",
"title": "AirNow"
}
}

View File

@@ -11,14 +11,8 @@ from homeassistant.components.climate.const import (
FAN_HIGH,
FAN_LOW,
FAN_MEDIUM,
HVAC_MODE_AUTO,
HVAC_MODE_COOL,
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_FAN_MODE,
SUPPORT_TARGET_TEMPERATURE,
ClimateEntityFeature,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
@@ -29,24 +23,23 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
SUPPORT_FLAGS = SUPPORT_TARGET_TEMPERATURE | SUPPORT_FAN_MODE
AT_TO_HA_STATE = {
"Heat": HVAC_MODE_HEAT,
"Cool": HVAC_MODE_COOL,
"AutoHeat": HVAC_MODE_AUTO, # airtouch reports either autoheat or autocool
"AutoCool": HVAC_MODE_AUTO,
"Auto": HVAC_MODE_AUTO,
"Dry": HVAC_MODE_DRY,
"Fan": HVAC_MODE_FAN_ONLY,
"Heat": HVACMode.HEAT,
"Cool": HVACMode.COOL,
"AutoHeat": HVACMode.AUTO, # airtouch reports either autoheat or autocool
"AutoCool": HVACMode.AUTO,
"Auto": HVACMode.AUTO,
"Dry": HVACMode.DRY,
"Fan": HVACMode.FAN_ONLY,
}
HA_STATE_TO_AT = {
HVAC_MODE_HEAT: "Heat",
HVAC_MODE_COOL: "Cool",
HVAC_MODE_AUTO: "Auto",
HVAC_MODE_DRY: "Dry",
HVAC_MODE_FAN_ONLY: "Fan",
HVAC_MODE_OFF: "Off",
HVACMode.HEAT: "Heat",
HVACMode.COOL: "Cool",
HVACMode.AUTO: "Auto",
HVACMode.DRY: "Dry",
HVACMode.FAN_ONLY: "Fan",
HVACMode.OFF: "Off",
}
AT_TO_HA_FAN_SPEED = {
@@ -59,7 +52,7 @@ AT_TO_HA_FAN_SPEED = {
"Turbo": "turbo",
}
AT_GROUP_MODES = [HVAC_MODE_OFF, HVAC_MODE_FAN_ONLY]
AT_GROUP_MODES = [HVACMode.OFF, HVACMode.FAN_ONLY]
HA_FAN_SPEED_TO_AT = {value: key for key, value in AT_TO_HA_FAN_SPEED.items()}
@@ -90,7 +83,9 @@ async def async_setup_entry(
class AirtouchAC(CoordinatorEntity, ClimateEntity):
"""Representation of an AirTouch 4 ac."""
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE | SUPPORT_FAN_MODE
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.FAN_MODE
)
_attr_temperature_unit = TEMP_CELSIUS
def __init__(self, coordinator, ac_number, info):
@@ -147,7 +142,7 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
"""Return hvac target hvac state."""
is_off = self._unit.PowerState == "Off"
if is_off:
return HVAC_MODE_OFF
return HVACMode.OFF
return AT_TO_HA_STATE[self._airtouch.acs[self._ac_number].AcMode]
@@ -156,7 +151,7 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
"""Return the list of available operation modes."""
airtouch_modes = self._airtouch.GetSupportedCoolingModesForAc(self._ac_number)
modes = [AT_TO_HA_STATE[mode] for mode in airtouch_modes]
modes.append(HVAC_MODE_OFF)
modes.append(HVACMode.OFF)
return modes
async def async_set_hvac_mode(self, hvac_mode):
@@ -164,7 +159,7 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
if hvac_mode not in HA_STATE_TO_AT:
raise ValueError(f"Unsupported HVAC mode: {hvac_mode}")
if hvac_mode == HVAC_MODE_OFF:
if hvac_mode == HVACMode.OFF:
return await self.async_turn_off()
await self._airtouch.SetCoolingModeForAc(
self._ac_number, HA_STATE_TO_AT[hvac_mode]
@@ -204,7 +199,7 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
class AirtouchGroup(CoordinatorEntity, ClimateEntity):
"""Representation of an AirTouch 4 group."""
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
_attr_temperature_unit = TEMP_CELSIUS
_attr_hvac_modes = AT_GROUP_MODES
@@ -267,18 +262,18 @@ class AirtouchGroup(CoordinatorEntity, ClimateEntity):
# there are other power states that aren't 'on' but still count as on (eg. 'Turbo')
is_off = self._unit.PowerState == "Off"
if is_off:
return HVAC_MODE_OFF
return HVACMode.OFF
return HVAC_MODE_FAN_ONLY
return HVACMode.FAN_ONLY
async def async_set_hvac_mode(self, hvac_mode):
"""Set new operation mode."""
if hvac_mode not in HA_STATE_TO_AT:
raise ValueError(f"Unsupported HVAC mode: {hvac_mode}")
if hvac_mode == HVAC_MODE_OFF:
if hvac_mode == HVACMode.OFF:
return await self.async_turn_off()
if self.hvac_mode == HVAC_MODE_OFF:
if self.hvac_mode == HVACMode.OFF:
await self.async_turn_on()
self._unit = self._airtouch.GetGroups()[self._group_number]
_LOGGER.debug(

View File

@@ -10,7 +10,7 @@
},
"airvisual__pollutant_level": {
"good": "Bon",
"hazardous": "Hasardeux",
"hazardous": "Dangereux",
"moderate": "Mod\u00e9r\u00e9",
"unhealthy": "Malsain",
"unhealthy_sensitive": "Malsain pour les groupes sensibles",

View File

@@ -1,23 +1,30 @@
"""The Airzone integration."""
from __future__ import annotations
import logging
from typing import Any
from aioairzone.common import ConnectionOptions
from aioairzone.const import (
AZD_ID,
AZD_MAC,
AZD_NAME,
AZD_SYSTEM,
AZD_THERMOSTAT_FW,
AZD_THERMOSTAT_MODEL,
AZD_WEBSERVER,
AZD_ZONES,
DEFAULT_SYSTEM_ID,
)
from aioairzone.localapi import AirzoneLocalApi
from aioairzone.localapi import AirzoneLocalApi, ConnectionOptions
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_PORT, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import aiohttp_client
from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT, Platform
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import (
aiohttp_client,
device_registry as dr,
entity_registry as er,
)
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -26,10 +33,20 @@ from .coordinator import AirzoneUpdateCoordinator
PLATFORMS: list[Platform] = [Platform.BINARY_SENSOR, Platform.CLIMATE, Platform.SENSOR]
_LOGGER = logging.getLogger(__name__)
class AirzoneEntity(CoordinatorEntity[AirzoneUpdateCoordinator]):
"""Define an Airzone entity."""
def get_airzone_value(self, key) -> Any:
"""Return Airzone entity value by key."""
raise NotImplementedError()
class AirzoneZoneEntity(AirzoneEntity):
"""Define an Airzone Zone entity."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
@@ -47,12 +64,15 @@ class AirzoneEntity(CoordinatorEntity[AirzoneUpdateCoordinator]):
self._attr_device_info: DeviceInfo = {
"identifiers": {(DOMAIN, f"{entry.entry_id}_{system_zone_id}")},
"manufacturer": MANUFACTURER,
"model": self.get_zone_value(AZD_THERMOSTAT_MODEL),
"model": self.get_airzone_value(AZD_THERMOSTAT_MODEL),
"name": f"Airzone [{system_zone_id}] {zone_data[AZD_NAME]}",
"sw_version": self.get_zone_value(AZD_THERMOSTAT_FW),
"sw_version": self.get_airzone_value(AZD_THERMOSTAT_FW),
}
self._attr_unique_id = (
entry.entry_id if entry.unique_id is None else entry.unique_id
)
def get_zone_value(self, key):
def get_airzone_value(self, key) -> Any:
"""Return zone value by key."""
value = None
if self.system_zone_id in self.coordinator.data[AZD_ZONES]:
@@ -62,17 +82,58 @@ class AirzoneEntity(CoordinatorEntity[AirzoneUpdateCoordinator]):
return value
async def _async_migrate_unique_ids(
hass: HomeAssistant,
entry: ConfigEntry,
coordinator: AirzoneUpdateCoordinator,
) -> None:
"""Migrate entities when the mac address gets discovered."""
@callback
def _async_migrator(entity_entry: er.RegistryEntry) -> dict[str, Any] | None:
updates = None
unique_id = entry.unique_id
entry_id = entry.entry_id
entity_unique_id = entity_entry.unique_id
if entity_unique_id.startswith(entry_id):
new_unique_id = f"{unique_id}{entity_unique_id[len(entry_id):]}"
_LOGGER.info(
"Migrating unique_id from [%s] to [%s]",
entity_unique_id,
new_unique_id,
)
updates = {"new_unique_id": new_unique_id}
return updates
if (
entry.unique_id is None
and AZD_WEBSERVER in coordinator.data
and AZD_MAC in coordinator.data[AZD_WEBSERVER]
and (mac := coordinator.data[AZD_WEBSERVER][AZD_MAC]) is not None
):
updates: dict[str, Any] = {
"unique_id": dr.format_mac(mac),
}
hass.config_entries.async_update_entry(entry, **updates)
await er.async_migrate_entries(hass, entry.entry_id, _async_migrator)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Airzone from a config entry."""
options = ConnectionOptions(
entry.data[CONF_HOST],
entry.data[CONF_PORT],
entry.data.get(CONF_ID, DEFAULT_SYSTEM_ID),
)
airzone = AirzoneLocalApi(aiohttp_client.async_get_clientsession(hass), options)
coordinator = AirzoneUpdateCoordinator(hass, airzone)
await coordinator.async_config_entry_first_refresh()
await _async_migrate_unique_ids(hass, entry, coordinator)
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator

View File

@@ -7,6 +7,7 @@ from typing import Any, Final
from aioairzone.const import (
AZD_AIR_DEMAND,
AZD_BATTERY_LOW,
AZD_ERRORS,
AZD_FLOOR_DEMAND,
AZD_NAME,
@@ -15,8 +16,7 @@ from aioairzone.const import (
)
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_PROBLEM,
DEVICE_CLASS_RUNNING,
BinarySensorDeviceClass,
BinarySensorEntity,
BinarySensorEntityDescription,
)
@@ -25,7 +25,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
from . import AirzoneEntity, AirzoneZoneEntity
from .const import DOMAIN
from .coordinator import AirzoneUpdateCoordinator
@@ -37,14 +37,19 @@ class AirzoneBinarySensorEntityDescription(BinarySensorEntityDescription):
attributes: dict[str, str] | None = None
BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]] = (
ZONE_BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]] = (
AirzoneBinarySensorEntityDescription(
device_class=DEVICE_CLASS_RUNNING,
device_class=BinarySensorDeviceClass.RUNNING,
key=AZD_AIR_DEMAND,
name="Air Demand",
),
AirzoneBinarySensorEntityDescription(
device_class=DEVICE_CLASS_RUNNING,
device_class=BinarySensorDeviceClass.BATTERY,
key=AZD_BATTERY_LOW,
name="Battery Low",
),
AirzoneBinarySensorEntityDescription(
device_class=BinarySensorDeviceClass.RUNNING,
key=AZD_FLOOR_DEMAND,
name="Floor Demand",
),
@@ -52,7 +57,7 @@ BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]] = (
attributes={
"errors": AZD_ERRORS,
},
device_class=DEVICE_CLASS_PROBLEM,
device_class=BinarySensorDeviceClass.PROBLEM,
entity_category=EntityCategory.DIAGNOSTIC,
key=AZD_PROBLEMS,
name="Problem",
@@ -66,12 +71,12 @@ async def async_setup_entry(
"""Add Airzone binary sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
binary_sensors = []
binary_sensors: list[AirzoneBinarySensor] = []
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in BINARY_SENSOR_TYPES:
for description in ZONE_BINARY_SENSOR_TYPES:
if description.key in zone_data:
binary_sensors.append(
AirzoneBinarySensor(
AirzoneZoneBinarySensor(
coordinator,
description,
entry,
@@ -84,7 +89,28 @@ async def async_setup_entry(
class AirzoneBinarySensor(AirzoneEntity, BinarySensorEntity):
"""Define an Airzone sensor."""
"""Define an Airzone binary sensor."""
entity_description: AirzoneBinarySensorEntityDescription
@property
def extra_state_attributes(self) -> Mapping[str, Any] | None:
"""Return state attributes."""
if not self.entity_description.attributes:
return None
return {
key: self.get_airzone_value(val)
for key, val in self.entity_description.attributes.items()
}
@property
def is_on(self) -> bool | None:
"""Return true if the binary sensor is on."""
return self.get_airzone_value(self.entity_description.key)
class AirzoneZoneBinarySensor(AirzoneZoneEntity, AirzoneBinarySensor):
"""Define an Airzone Zone binary sensor."""
def __init__(
self,
@@ -96,19 +122,9 @@ class AirzoneBinarySensor(AirzoneEntity, BinarySensorEntity):
) -> None:
"""Initialize."""
super().__init__(coordinator, entry, system_zone_id, zone_data)
self._attr_name = f"{zone_data[AZD_NAME]} {description.name}"
self._attr_unique_id = f"{entry.entry_id}_{system_zone_id}_{description.key}"
self.attributes = description.attributes
self._attr_unique_id = (
f"{self._attr_unique_id}_{system_zone_id}_{description.key}"
)
self.entity_description = description
@property
def extra_state_attributes(self) -> Mapping[str, Any] | None:
"""Return state attributes."""
if not self.attributes:
return None
return {key: self.get_zone_value(val) for key, val in self.attributes.items()}
@property
def is_on(self) -> bool | None:
"""Return true if the binary sensor is on."""
return self.get_zone_value(self.entity_description.key)

View File

@@ -2,7 +2,7 @@
from __future__ import annotations
import logging
from typing import Final
from typing import Any, Final
from aioairzone.common import OperationMode
from aioairzone.const import (
@@ -26,23 +26,12 @@ from aioairzone.const import (
AZD_ZONES,
)
from aioairzone.exceptions import AirzoneError
from aiohttp.client_exceptions import ClientConnectorError
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
CURRENT_HVAC_COOL,
CURRENT_HVAC_DRY,
CURRENT_HVAC_FAN,
CURRENT_HVAC_HEAT,
CURRENT_HVAC_IDLE,
CURRENT_HVAC_OFF,
HVAC_MODE_COOL,
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_TARGET_TEMPERATURE,
ClimateEntityFeature,
HVACAction,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE
@@ -50,35 +39,35 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
from . import AirzoneZoneEntity
from .const import API_TEMPERATURE_STEP, DOMAIN, TEMP_UNIT_LIB_TO_HASS
from .coordinator import AirzoneUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
HVAC_ACTION_LIB_TO_HASS: Final[dict[OperationMode, str]] = {
OperationMode.STOP: CURRENT_HVAC_OFF,
OperationMode.COOLING: CURRENT_HVAC_COOL,
OperationMode.HEATING: CURRENT_HVAC_HEAT,
OperationMode.FAN: CURRENT_HVAC_FAN,
OperationMode.DRY: CURRENT_HVAC_DRY,
HVAC_ACTION_LIB_TO_HASS: Final[dict[OperationMode, HVACAction]] = {
OperationMode.STOP: HVACAction.OFF,
OperationMode.COOLING: HVACAction.COOLING,
OperationMode.HEATING: HVACAction.HEATING,
OperationMode.FAN: HVACAction.FAN,
OperationMode.DRY: HVACAction.DRYING,
}
HVAC_MODE_LIB_TO_HASS: Final[dict[OperationMode, str]] = {
OperationMode.STOP: HVAC_MODE_OFF,
OperationMode.COOLING: HVAC_MODE_COOL,
OperationMode.HEATING: HVAC_MODE_HEAT,
OperationMode.FAN: HVAC_MODE_FAN_ONLY,
OperationMode.DRY: HVAC_MODE_DRY,
OperationMode.AUTO: HVAC_MODE_HEAT_COOL,
HVAC_MODE_LIB_TO_HASS: Final[dict[OperationMode, HVACMode]] = {
OperationMode.STOP: HVACMode.OFF,
OperationMode.COOLING: HVACMode.COOL,
OperationMode.HEATING: HVACMode.HEAT,
OperationMode.FAN: HVACMode.FAN_ONLY,
OperationMode.DRY: HVACMode.DRY,
OperationMode.AUTO: HVACMode.HEAT_COOL,
}
HVAC_MODE_HASS_TO_LIB: Final[dict[str, OperationMode]] = {
HVAC_MODE_OFF: OperationMode.STOP,
HVAC_MODE_COOL: OperationMode.COOLING,
HVAC_MODE_HEAT: OperationMode.HEATING,
HVAC_MODE_FAN_ONLY: OperationMode.FAN,
HVAC_MODE_DRY: OperationMode.DRY,
HVAC_MODE_HEAT_COOL: OperationMode.AUTO,
HVAC_MODE_HASS_TO_LIB: Final[dict[HVACMode, OperationMode]] = {
HVACMode.OFF: OperationMode.STOP,
HVACMode.COOL: OperationMode.COOLING,
HVACMode.HEAT: OperationMode.HEATING,
HVACMode.FAN_ONLY: OperationMode.FAN,
HVACMode.DRY: OperationMode.DRY,
HVACMode.HEAT_COOL: OperationMode.AUTO,
}
@@ -98,7 +87,7 @@ async def async_setup_entry(
)
class AirzoneClimate(AirzoneEntity, ClimateEntity):
class AirzoneClimate(AirzoneZoneEntity, ClimateEntity):
"""Define an Airzone sensor."""
def __init__(
@@ -110,61 +99,74 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
) -> None:
"""Initialize Airzone climate entity."""
super().__init__(coordinator, entry, system_zone_id, zone_data)
self._attr_name = f"{zone_data[AZD_NAME]}"
self._attr_unique_id = f"{entry.entry_id}_{system_zone_id}"
self._attr_supported_features = SUPPORT_TARGET_TEMPERATURE
self._attr_unique_id = f"{self._attr_unique_id}_{system_zone_id}"
self._attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
self._attr_target_temperature_step = API_TEMPERATURE_STEP
self._attr_max_temp = self.get_zone_value(AZD_TEMP_MAX)
self._attr_min_temp = self.get_zone_value(AZD_TEMP_MIN)
self._attr_max_temp = self.get_airzone_value(AZD_TEMP_MAX)
self._attr_min_temp = self.get_airzone_value(AZD_TEMP_MIN)
self._attr_temperature_unit = TEMP_UNIT_LIB_TO_HASS[
self.get_zone_value(AZD_TEMP_UNIT)
self.get_airzone_value(AZD_TEMP_UNIT)
]
self._attr_hvac_modes = [
HVAC_MODE_LIB_TO_HASS[mode] for mode in self.get_zone_value(AZD_MODES)
HVAC_MODE_LIB_TO_HASS[mode] for mode in self.get_airzone_value(AZD_MODES)
]
self._async_update_attrs()
async def _async_update_hvac_params(self, params) -> None:
async def _async_update_hvac_params(self, params: dict[str, Any]) -> None:
"""Send HVAC parameters to API."""
_params = {
API_SYSTEM_ID: self.system_id,
API_ZONE_ID: self.zone_id,
**params,
}
_LOGGER.debug("update_hvac_params=%s", _params)
try:
await self.coordinator.airzone.put_hvac(params)
except (AirzoneError, ClientConnectorError) as error:
await self.coordinator.airzone.set_hvac_parameters(_params)
except AirzoneError as error:
raise HomeAssistantError(
f"Failed to set zone {self.name}: {error}"
) from error
else:
self.coordinator.async_set_updated_data(self.coordinator.airzone.data())
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
"""Set hvac mode."""
async def async_turn_on(self) -> None:
"""Turn the entity on."""
params = {
API_SYSTEM_ID: self.system_id,
API_ZONE_ID: self.zone_id,
API_ON: 1,
}
if hvac_mode == HVAC_MODE_OFF:
await self._async_update_hvac_params(params)
async def async_turn_off(self) -> None:
"""Turn the entity off."""
params = {
API_ON: 0,
}
await self._async_update_hvac_params(params)
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set hvac mode."""
params = {}
if hvac_mode == HVACMode.OFF:
params[API_ON] = 0
else:
mode = HVAC_MODE_HASS_TO_LIB[hvac_mode]
if mode != self.get_zone_value(AZD_MODE):
if self.get_zone_value(AZD_MASTER):
if mode != self.get_airzone_value(AZD_MODE):
if self.get_airzone_value(AZD_MASTER):
params[API_MODE] = mode
else:
raise HomeAssistantError(
f"Mode can't be changed on slave zone {self.name}"
)
params[API_ON] = 1
_LOGGER.debug("Set hvac_mode=%s params=%s", hvac_mode, params)
await self._async_update_hvac_params(params)
async def async_set_temperature(self, **kwargs) -> None:
"""Set new target temperature."""
temp = kwargs.get(ATTR_TEMPERATURE)
params = {
API_SYSTEM_ID: self.system_id,
API_ZONE_ID: self.zone_id,
API_SET_POINT: temp,
API_SET_POINT: kwargs.get(ATTR_TEMPERATURE),
}
_LOGGER.debug("Set temp=%s params=%s", temp, params)
await self._async_update_hvac_params(params)
@callback
@@ -176,16 +178,16 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
@callback
def _async_update_attrs(self) -> None:
"""Update climate attributes."""
self._attr_current_temperature = self.get_zone_value(AZD_TEMP)
self._attr_current_humidity = self.get_zone_value(AZD_HUMIDITY)
if self.get_zone_value(AZD_ON):
mode = self.get_zone_value(AZD_MODE)
self._attr_current_temperature = self.get_airzone_value(AZD_TEMP)
self._attr_current_humidity = self.get_airzone_value(AZD_HUMIDITY)
if self.get_airzone_value(AZD_ON):
mode = self.get_airzone_value(AZD_MODE)
self._attr_hvac_mode = HVAC_MODE_LIB_TO_HASS[mode]
if self.get_zone_value(AZD_DEMAND):
if self.get_airzone_value(AZD_DEMAND):
self._attr_hvac_action = HVAC_ACTION_LIB_TO_HASS[mode]
else:
self._attr_hvac_action = CURRENT_HVAC_IDLE
self._attr_hvac_action = HVACAction.IDLE
else:
self._attr_hvac_action = CURRENT_HVAC_OFF
self._attr_hvac_mode = HVAC_MODE_OFF
self._attr_target_temperature = self.get_zone_value(AZD_TEMP_SET)
self._attr_hvac_action = HVACAction.OFF
self._attr_hvac_mode = HVACMode.OFF
self._attr_target_temperature = self.get_airzone_value(AZD_TEMP_SET)

View File

@@ -3,18 +3,30 @@ from __future__ import annotations
from typing import Any
from aioairzone.common import ConnectionOptions
from aioairzone.exceptions import InvalidHost
from aioairzone.localapi import AirzoneLocalApi
from aiohttp.client_exceptions import ClientConnectorError
from aioairzone.const import DEFAULT_PORT, DEFAULT_SYSTEM_ID
from aioairzone.exceptions import AirzoneError, InvalidSystem
from aioairzone.localapi import AirzoneLocalApi, ConnectionOptions
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers.device_registry import format_mac
from .const import DEFAULT_LOCAL_API_PORT, DOMAIN
from .const import DOMAIN
CONFIG_SCHEMA = vol.Schema(
{
vol.Required(CONF_HOST): str,
vol.Required(CONF_PORT, default=DEFAULT_PORT): int,
}
)
SYSTEM_ID_SCHEMA = CONFIG_SCHEMA.extend(
{
vol.Required(CONF_ID, default=1): int,
}
)
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
@@ -24,39 +36,43 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the initial step."""
data_schema = CONFIG_SCHEMA
errors = {}
if user_input is not None:
self._async_abort_entries_match(
{
CONF_HOST: user_input[CONF_HOST],
CONF_PORT: user_input[CONF_PORT],
}
)
self._async_abort_entries_match(user_input)
airzone = AirzoneLocalApi(
aiohttp_client.async_get_clientsession(self.hass),
ConnectionOptions(
user_input[CONF_HOST],
user_input[CONF_PORT],
user_input.get(CONF_ID, DEFAULT_SYSTEM_ID),
),
)
try:
await airzone.validate_airzone()
except (ClientConnectorError, InvalidHost):
mac = await airzone.validate()
except InvalidSystem:
data_schema = SYSTEM_ID_SCHEMA
errors[CONF_ID] = "invalid_system_id"
except AirzoneError:
errors["base"] = "cannot_connect"
else:
if mac:
await self.async_set_unique_id(format_mac(mac))
self._abort_if_unique_id_configured(
updates={
CONF_HOST: user_input[CONF_HOST],
CONF_PORT: user_input[CONF_PORT],
}
)
title = f"Airzone {user_input[CONF_HOST]}:{user_input[CONF_PORT]}"
return self.async_create_entry(title=title, data=user_input)
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Required(CONF_HOST): str,
vol.Required(CONF_PORT, default=DEFAULT_LOCAL_API_PORT): int,
}
),
data_schema=data_schema,
errors=errors,
)

View File

@@ -11,7 +11,6 @@ MANUFACTURER: Final = "Airzone"
AIOAIRZONE_DEVICE_TIMEOUT_SEC: Final = 10
API_TEMPERATURE_STEP: Final = 0.5
DEFAULT_LOCAL_API_PORT: Final = 3000
TEMP_UNIT_LIB_TO_HASS: Final[dict[TemperatureUnit, str]] = {
TemperatureUnit.CELSIUS: TEMP_CELSIUS,

View File

@@ -4,8 +4,8 @@ from __future__ import annotations
from datetime import timedelta
import logging
from aioairzone.exceptions import AirzoneError
from aioairzone.localapi import AirzoneLocalApi
from aiohttp.client_exceptions import ClientConnectorError
import async_timeout
from homeassistant.core import HomeAssistant
@@ -36,7 +36,7 @@ class AirzoneUpdateCoordinator(DataUpdateCoordinator):
"""Update data via library."""
async with async_timeout.timeout(AIOAIRZONE_DEVICE_TIMEOUT_SEC):
try:
await self.airzone.update_airzone()
except ClientConnectorError as error:
await self.airzone.update()
except AirzoneError as error:
raise UpdateFailed(error) from error
return self.airzone.data()

View File

@@ -0,0 +1,29 @@
"""Support for the Airzone diagnostics."""
from __future__ import annotations
from typing import Any
from aioairzone.const import AZD_MAC
from homeassistant.components.diagnostics.util import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from .const import DOMAIN
from .coordinator import AirzoneUpdateCoordinator
TO_REDACT = [
AZD_MAC,
]
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator: AirzoneUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
return {
"info": async_redact_data(config_entry.data, TO_REDACT),
"data": async_redact_data(coordinator.data, TO_REDACT),
}

View File

@@ -3,7 +3,7 @@
"name": "Airzone",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airzone",
"requirements": ["aioairzone==0.3.3"],
"requirements": ["aioairzone==0.4.3"],
"codeowners": ["@Noltari"],
"iot_class": "local_polling",
"loggers": ["aioairzone"]

View File

@@ -6,38 +6,34 @@ from typing import Any, Final
from aioairzone.const import AZD_HUMIDITY, AZD_NAME, AZD_TEMP, AZD_TEMP_UNIT, AZD_ZONES
from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT,
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
PERCENTAGE,
TEMP_CELSIUS,
)
from homeassistant.const import PERCENTAGE, TEMP_CELSIUS
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
from . import AirzoneEntity, AirzoneZoneEntity
from .const import DOMAIN, TEMP_UNIT_LIB_TO_HASS
from .coordinator import AirzoneUpdateCoordinator
SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
ZONE_SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
SensorEntityDescription(
device_class=DEVICE_CLASS_TEMPERATURE,
device_class=SensorDeviceClass.TEMPERATURE,
key=AZD_TEMP,
name="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
device_class=DEVICE_CLASS_HUMIDITY,
device_class=SensorDeviceClass.HUMIDITY,
key=AZD_HUMIDITY,
name="Humidity",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
state_class=SensorStateClass.MEASUREMENT,
),
)
@@ -48,12 +44,12 @@ async def async_setup_entry(
"""Add Airzone sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
sensors = []
sensors: list[AirzoneSensor] = []
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in SENSOR_TYPES:
for description in ZONE_SENSOR_TYPES:
if description.key in zone_data:
sensors.append(
AirzoneSensor(
AirzoneZoneSensor(
coordinator,
description,
entry,
@@ -68,6 +64,15 @@ async def async_setup_entry(
class AirzoneSensor(AirzoneEntity, SensorEntity):
"""Define an Airzone sensor."""
@property
def native_value(self):
"""Return the state."""
return self.get_airzone_value(self.entity_description.key)
class AirzoneZoneSensor(AirzoneZoneEntity, AirzoneSensor):
"""Define an Airzone Zone sensor."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
@@ -78,16 +83,14 @@ class AirzoneSensor(AirzoneEntity, SensorEntity):
) -> None:
"""Initialize."""
super().__init__(coordinator, entry, system_zone_id, zone_data)
self._attr_name = f"{zone_data[AZD_NAME]} {description.name}"
self._attr_unique_id = f"{entry.entry_id}_{system_zone_id}_{description.key}"
self._attr_unique_id = (
f"{self._attr_unique_id}_{system_zone_id}_{description.key}"
)
self.entity_description = description
if description.key == AZD_TEMP:
self._attr_native_unit_of_measurement = TEMP_UNIT_LIB_TO_HASS.get(
self.get_zone_value(AZD_TEMP_UNIT)
self.get_airzone_value(AZD_TEMP_UNIT)
)
@property
def native_value(self):
"""Return the state."""
return self.get_zone_value(self.entity_description.key)

View File

@@ -4,7 +4,8 @@
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_system_id": "Invalid Airzone System ID"
},
"step": {
"user": {

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