Compare commits

...

1285 Commits

Author SHA1 Message Date
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
Franck Nijhof a1fddc3c4d Merge pull request #69835 from home-assistant/rc 2022-04-11 11:02:51 +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
Dave T f6aead6773 Don't test config on yaml import for generic camera (#69714) 2022-04-10 23:15:04 -07:00
Paulus Schoutsen 2fad42ce06 Bumped version to 2022.4.2 2022-04-10 22:59:28 -07:00
J. Nick Koston 3e92659260 Downgrade av to 8.1.0 to fix memory leak (#69833) 2022-04-10 22:59:22 -07:00
jjlawren 02eec73644 Retry on more Plex connection failures during startup (#69822) 2022-04-10 22:59:21 -07:00
jjlawren 8e3e6efb21 Speed up Plex playback for multiple videos (#69821) 2022-04-10 22:59:20 -07:00
Raman Gupta 5d4c1d9fe4 Reduce API limit for tomorrow.io (#69818) 2022-04-10 22:59:20 -07:00
rikroe 2871ac4f8f Fix converting (value, unit) tuples if value is None (#69802)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-04-10 22:59:19 -07:00
Michael Davie 506f8c1d94 Bump slixmpp to 1.8.2 (#69794) 2022-04-10 22:59:18 -07:00
Allen Porter 5c4df657b2 Bump rtsp-to-webrtc to 0.5.1 (#69776) 2022-04-10 22:59:17 -07:00
Allen Porter 16a1a93332 Handle expired credentials in reauth in google calendar initialization (#69772)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-10 22:59:16 -07:00
Maximilian 7c06514bb4 Upgrade pynina to 0.1.8 (#69771) 2022-04-10 22:59:15 -07:00
Christopher Bailey 0ebd9e093d Fix unifiprotect for 2.0.0-beta2 of UniFi Protect (#69762) 2022-04-10 22:59:15 -07:00
Mike Fugate d9253fd310 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-10 22:59:14 -07:00
Malte Franken 0d7cbb8266 Bump aio_georss_gdacs to 0.7 (#69743) 2022-04-10 22:59:13 -07:00
J. Nick Koston 2ca8a0ef4a 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-10 22:59:13 -07:00
Dave T 2c48f28f13 Support webp still image format in generic camera (#69718) 2022-04-10 22:59:12 -07:00
Allen Porter 2298a1fa70 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-10 22:59:11 -07:00
Shay Levy 87ba8a56ee Fix Shelly gen2 cover unavailable when not calibrated (#69671) 2022-04-10 22:59:10 -07:00
Francois Chagnon 39e4d3e63b 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-10 22:59:10 -07:00
epenet 269405aee0 Suppress Upnp parsing errors in SamsungTV (#69664) 2022-04-10 22:59:09 -07:00
KNXBroker b1eda25ca3 Fix soundtouch service calls (#69655) 2022-04-10 22:59:08 -07:00
epenet 39e9270b79 Fix upnp subscription in SamsungTV (#69652)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-10 22:59:07 -07:00
starkillerOG 5a408d4083 Fix Netgear switch state update (#69597) 2022-04-10 22:59:07 -07:00
azrdev 509d6ffcb2 Update python-mpd2 to 3.0.5 (#69304) 2022-04-10 22:59:06 -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
Paulus Schoutsen 919f4dd719 Merge pull request #69509 from home-assistant/rc 2022-04-07 23:10:23 -07:00
Allen Porter d9cbbd3b05 Fix bugs calendar oauth token date handling (#69641) 2022-04-07 21:53:56 -07: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 7e317bed3e [powerwall] Skip backup reserve sensor if data is unavailable (#69637) 2022-04-07 20:34:25 -07: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 8017cb274e Fix Samjin Multi acceleration in ZHA (#69636) 2022-04-07 20:28:15 -07:00
David F. Mulcahey 261e12e881 Fix Samjin Multi acceleration in ZHA (#69636) 2022-04-07 20:53:12 -04:00
David F. Mulcahey 4d4eb5c850 Bump ZHA quirks to 0.0.71 (#69633) 2022-04-07 17:16:51 -07: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 1866e58ac5 Move new zha_event command parameters into a params key to ensure backwards compatibility (#69631) 2022-04-07 15:33:50 -07: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 b50a78d1d9 Fix tado default overlay for when set pre new overlay feature (#69584) 2022-04-07 15:23:25 -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 88a081be24 Fix ZHA group creation (#69629) 2022-04-07 15:05:11 -07:00
J. Nick Koston 3dd0ddb73e Mark backgrounds optional for tplink random effects (#69622) 2022-04-07 15:05:10 -07:00
Álvaro Fernández Rojas 9063428358 Update aioairzone to v0.3.3 (#69615) 2022-04-07 15:05:09 -07:00
Álvaro Fernández Rojas ee06b2a1b5 Update aioairzone to v0.3.1 (#68975) 2022-04-07 15:05:08 -07:00
Diogo Gomes 62d67a4287 Fix utility_meter reset service (#69612) 2022-04-07 15:02:49 -07:00
Jason Hunter 0b2f0a9f7c Log which device has the time discrepancy (#69595) 2022-04-07 15:02:49 -07:00
Dave T 7803845af1 Generic fix stream thumbnail (#69378) 2022-04-07 15:02:48 -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
J. Nick Koston 2dd3dc2d2d Run energy db calls in the db executor (#69544)
Fixes #69537
2022-04-07 15:26:15 +02:00
J. Nick Koston ceb8d86a7e Fix registered entities without a category not being exclude-able in the HomeKit UI (#69543) 2022-04-07 15:26:12 +02:00
Joakim Sørensen e726ef662c Fix adding OS entities for supervised installations (#69539) 2022-04-07 15:26:08 +02:00
Allen Porter 8c9534d2ba 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 15:26:04 +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
Paulus Schoutsen 5cadea91bb Bumped version to 2022.4.1 2022-04-06 22:36:39 -07:00
J. Nick Koston f9d447e4cd Fix reloading the sun integration (#69495) 2022-04-06 22:35:55 -07:00
Shay Levy 23bb38c5cf Fix remote_rpi_gpio missing requirement (#69488) 2022-04-06 22:35:55 -07:00
Joakim Sørensen 4c16563675 Bump pyhaversion from 22.04.0 to 22.4.1 (#69486) 2022-04-06 22:35:54 -07:00
J. Nick Koston 9351fcf369 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-06 22:35:53 -07:00
Michael 2d74beaa67 Ignore IPv6 link local address on ssdp discovery in Fritz!Smarthome (#69455) 2022-04-06 22:35:52 -07:00
J. Nick Koston 87ab96f9c1 Fix elkm1 connection when panel drops VN request (#69454) 2022-04-06 22:35:52 -07:00
Paulus Schoutsen 0eed329bc8 Fix telegram broadcast (#69452) 2022-04-06 22:35:51 -07:00
Dave T ea5e894ac7 Continue on template error during yaml import for generic (#69440)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-06 22:35:50 -07:00
Raman Gupta 91d2fafe1d Add comments to zwave_js node metadata WS API (#67210)
* Add comments to zwave_js node metadata WS API

* Add test dat
2022-04-06 22:35:50 -07: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 56cf9d900d.

* Revert "Use EntityFeature in myq"

This reverts commit 44a31b1a03.

* Revert "Use EntityFeature in mystrom"

This reverts commit 7260ee0384.

* Revert "Revert "Use EntityFeature in modbus""

This reverts commit 916a612a60.

* Revert "Revert "Use EntityFeature in myq""

This reverts commit a6be42fa17.
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 5dbc137572.
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 089bd7b449.

* Revert "Update DEPENDENCY_CONFLICTS"

This reverts commit ddd83212b8.

* Test fail-fast

* Revert "Test fail-fast"

This reverts commit 446e104a24.
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
3703 changed files with 68834 additions and 28835 deletions
+23 -10
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
+2 -1
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": {
+2 -1
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
+9 -9
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'
+52 -44
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
+4 -3
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"
+4 -4
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 }}
+7 -7
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
+1 -1
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]
+5 -5
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.*
+35 -31
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
+1
View File
@@ -19,6 +19,7 @@ RUN \
libpcap-dev \
libturbojpeg0 \
git \
cmake \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
@@ -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))
@@ -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
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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"
}
}
@@ -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"
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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.",
@@ -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",
@@ -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",
+9 -13
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
+10 -14
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
@@ -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": {
@@ -31,7 +31,7 @@
"host": "Host",
"password": "Wachtwoord"
},
"description": "Selecteer verbindingstype. Lokaal vereist verwarming met bluetooth"
"description": "Selecteer verbindingstype. Lokaal vereist verwarming met Bluetooth."
}
}
}
+6 -7
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."""
+6 -2
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."""
@@ -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: {
@@ -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."""
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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):
+3 -6
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."""
@@ -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": {
@@ -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
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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": ""
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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": ""
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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": ""
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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": ""
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
@@ -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"
}
}
+27 -32
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(
@@ -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",
+70 -9
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
@@ -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)
+70 -68
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.put_hvac(_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)
+36 -20
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,
)
@@ -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,
@@ -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()
@@ -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),
}
@@ -3,7 +3,7 @@
"name": "Airzone",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airzone",
"requirements": ["aioairzone==0.2.3"],
"requirements": ["aioairzone==0.4.2"],
"codeowners": ["@Noltari"],
"iot_class": "local_polling",
"loggers": ["aioairzone"]
+26 -23
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)
@@ -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