Compare commits

...

1282 Commits

Author SHA1 Message Date
Paulus Schoutsen
536d58968f Merge pull request #70605 from home-assistant/rc 2022-04-24 15:59:14 -07: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
Paulus Schoutsen
2df212dcd3 Merge pull request #70331 from home-assistant/rc 2022-04-20 11:27:33 -07:00
Johann Vanackere
c4db48d8f1 Fix #69952: Daikin AC Temperature jumps after being set (#70326) 2022-04-20 10:44:51 -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
Allen Porter
bd02895781 Fix bug in google calendar offset calculation (#70024) (#70166) 2022-04-17 22:33:18 -07: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
Paulus Schoutsen
30db51a49c Merge pull request #70054 from home-assistant/rc 2022-04-14 13:36:07 -07: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
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
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
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
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
Marvin Wichmann
094c185dee Update xknx to 0.20.2 (RC) (#69859) 2022-04-11 19:49:18 +02:00
Franck Nijhof
a1fddc3c4d Merge pull request #69835 from home-assistant/rc 2022-04-11 11:02:51 +02: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
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
Matt Zimmerman
7e317bed3e [powerwall] Skip backup reserve sensor if data is unavailable (#69637) 2022-04-07 20:34:25 -07:00
David F. Mulcahey
8017cb274e Fix Samjin Multi acceleration in ZHA (#69636) 2022-04-07 20:28:15 -07:00
David F. Mulcahey
4d4eb5c850 Bump ZHA quirks to 0.0.71 (#69633) 2022-04-07 17:16:51 -07: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
north3221
b50a78d1d9 Fix tado default overlay for when set pre new overlay feature (#69584) 2022-04-07 15:23:25 -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
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
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
Franck Nijhof
7dd19066e8 Merge pull request #69413 from home-assistant/rc 2022-04-06 15:14:55 +02:00
Franck Nijhof
be3c1055dd Bumped version to 2022.4.0 2022-04-06 14:01:53 +02:00
René Klomp
5a24dbbbf2 Update pysma to 0.6.11 (#69397) 2022-04-06 14:00:49 +02:00
Erik Montnemery
8174b831cf Restore attributes of template binary sensor (#69350) 2022-04-06 14:00:46 +02:00
Raman Gupta
8c794ecf93 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 14:00:42 +02:00
hesselonline
072cd29b90 Fix Wallbox charger status (#68708)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-06 14:00:31 +02:00
Paulus Schoutsen
e3b20cf43f Bumped version to 2022.4.0b6 2022-04-05 16:40:33 -07:00
Zack Barett
2296d0fbee 20220405.0 (#69377) 2022-04-05 16:40:27 -07:00
J. Nick Koston
1e6f8fc48a Abort samsungtv discovery of legacy devices when unique id not available (#69376) 2022-04-05 16:40:26 -07:00
Franck Nijhof
4038575806 Disable Spotify Media Player entity by default (#69372) 2022-04-05 16:40:25 -07:00
Johan Nenzén
531aa87170 Bump pyplaato to 0.0.16 (#69361) 2022-04-05 16:40:24 -07:00
Marvin Wichmann
1896e39f60 Update XKNX to version 0.20.1 (#69353) 2022-04-05 16:40:23 -07:00
starkillerOG
a42327ffce 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 16:40:22 -07:00
shbatm
def04f1ae8 Bump PyISY to 3.0.6 to fix group statuses (#69345) 2022-04-05 16:40:21 -07:00
J. Nick Koston
a39a6fce2a Fix roomba doing I/O in the event loop (#69339) 2022-04-05 16:40:21 -07:00
J. Nick Koston
7b36434101 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 16:40:20 -07:00
Philip Allgaier
a3ac495e03 Prevent issues with config update of "Timer" integration (unknown "restore" key) (#69332) 2022-04-05 16:40:19 -07:00
Joakim Sørensen
186d8c9d50 Bump pyhaversion from 22.02.0 to 22.04.0 (#69329) 2022-04-05 16:40:19 -07:00
Martin Hjelmare
e94fad469f Use recorder executor in demo (#69327) 2022-04-05 16:40:18 -07:00
J. Nick Koston
90d5bd12fb Ensure state is restored when turning on tplink lights without a color mode (#69308) 2022-04-05 16:40:17 -07:00
MoellerDi
685af1dd5c Fix "Camera not found" error in microsoft_face integration (#69295) 2022-04-05 16:40:17 -07:00
Erik Montnemery
44fefa42a8 Improve integration translation strings (#69246)
* Improve integration translation strings

* Update
2022-04-05 16:40:16 -07:00
Paulus Schoutsen
681242f102 Bumped version to 2022.4.0b5 2022-04-04 23:57:57 -07:00
Daniel Hjelseth Høyer
df2a31a70b Update Tibber lib (#69300) 2022-04-04 23:57:46 -07:00
starkillerOG
dc7d140c29 bump pynetgear to 0.9.3 (#69292) 2022-04-04 23:57:46 -07:00
Erik Montnemery
96ac47f36e Correct unit_of_measurement for trigger-based template sensor (#69291) 2022-04-04 23:57:45 -07:00
Joakim Sørensen
b66770d349 Make hassio coordinator refresh data (#69272) 2022-04-04 23:57:44 -07:00
Erik Montnemery
eab7876330 Improve utility_meter translation strings (#69252) 2022-04-04 23:57:43 -07:00
Erik Montnemery
45843297f9 Improve tod translation strings (#69251) 2022-04-04 23:57:43 -07:00
Erik Montnemery
4313be1ca2 Improve threshold translation strings (#69250) 2022-04-04 23:57:42 -07:00
Erik Montnemery
8191172f07 Improve switch_as_x translation strings (#69249) 2022-04-04 23:57:41 -07:00
Erik Montnemery
408f87c7e6 Improve min_max translation strings (#69248)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-04 23:57:41 -07:00
Erik Montnemery
37c0200f83 Improve derivative translation strings (#69245) 2022-04-04 23:57:40 -07:00
Raman Gupta
66cc2c7846 Fix tomorrowio sensor units and conversions (#69166)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-04-04 23:57:39 -07:00
Radu Cotescu
40b9f2f578 Input binary sensors are not generated for Shelly 1 Pro (#69046)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-04-04 23:57:39 -07:00
Toke Høiland-Jørgensen
2efa9f00d5 Fix network starting with no configured IPv4 addresses (#69030)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-04-04 23:57:38 -07:00
Franck Nijhof
e6dcaaadd8 Bumped version to 2022.4.0b4 2022-04-04 11:14:39 +02:00
Erik Montnemery
73cd4a3366 Unsubscribe from listeners when removing threshold binary sensor (#69236) 2022-04-04 11:13:53 +02:00
Erik Montnemery
9ec9dc047b Unsubscribe from listeners when removing integration sensor (#69235) 2022-04-04 11:13:50 +02:00
Erik Montnemery
a3ad44f7b6 Unsubscribe from listeners when removing derivative sensor (#69234) 2022-04-04 11:13:46 +02:00
Erik Montnemery
da3f9fdf7d Drop unsupported SI-prefix peta from integration sensor (#69229) 2022-04-04 11:13:43 +02:00
Simone Chemelli
eeeff761e9 Avoid fritz API calls during shutdown (#69225) 2022-04-04 11:13:40 +02:00
J. Nick Koston
3cd9c7d19d Only fire device_registry_updated for suggested_area if the suggestion results in an area change (#69215) 2022-04-04 11:13:36 +02:00
Franck Nijhof
62b44e6903 Exclude more media player attributes from recorder (#69209) 2022-04-04 11:13:33 +02:00
Daniel Hjelseth Høyer
9c6a69775a Tibber, Use a dedicated executor pool for database operations (#69208) 2022-04-04 11:13:30 +02:00
Franck Nijhof
8ce1b104eb Exclude weather forecast attribute from recorder (#69205) 2022-04-04 11:13:26 +02:00
Franck Nijhof
2916d35626 Exclude update entity picture attribute from recorder (#69201) 2022-04-04 11:13:23 +02:00
Franck Nijhof
814f92a75c Set brand icon as entity picture on update entities (#69200)
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
2022-04-04 11:13:19 +02:00
J. Nick Koston
1ae45fa7ad Exclude static vacuum attributes from being recorded in the database (#69199) 2022-04-04 11:13:16 +02:00
J. Nick Koston
e18d61224d Exclude static siren attributes from being recorded in the database (#69196) 2022-04-04 11:13:11 +02:00
J. Nick Koston
7cfaf46287 Exclude static select attributes from being recorded in the database (#69195) 2022-04-04 11:13:08 +02:00
J. Nick Koston
cebf53c340 Exclude static number attributes from being recorded in the database (#69194) 2022-04-04 11:13:03 +02:00
J. Nick Koston
8fa8716387 Exclude static humidifier attributes from being recorded in the database (#69193) 2022-04-04 11:12:59 +02:00
J. Nick Koston
5a96b0ffbc Exclude static fan attributes from being recorded in the database (#69192) 2022-04-04 11:12:56 +02:00
Erik Montnemery
2e13fb3c24 Unsubscribe listeners when entity meter sensor is removed (#69172) 2022-04-04 11:12:52 +02:00
Jesse Hills
90cb9ccde2 ESPHome: Remove disconnect callbacks after they are done (#69169) 2022-04-04 11:12:49 +02:00
J. Nick Koston
9a91a7edf5 Exclude supported features and attribution from being recorded in the database (#69165) 2022-04-04 11:12:46 +02:00
Raman Gupta
c769b20256 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-04 11:12:42 +02:00
J. Nick Koston
47c1e48166 Exclude static water_heater attributes from being recorded in the database (#69159) 2022-04-04 11:12:39 +02:00
J. Nick Koston
0e6550ab70 Exclude static climate attributes from being recorded in the database (#69158) 2022-04-04 11:12:36 +02:00
J. Nick Koston
5fa2dc540b Exclude static and token attributes from being recorded for media_player (#69156) 2022-04-04 11:12:32 +02:00
J. Nick Koston
b503be9301 Exclude static light attributes from being recorded in the database (#69155) 2022-04-04 11:12:29 +02:00
Diogo Gomes
d99e04e2bc Makes sure YAML defined tariffs are unique (#69151) 2022-04-04 11:12:25 +02:00
Marc Mueller
39a38d9866 Update hangups to 0.4.18 (#69149) 2022-04-04 11:12:22 +02:00
Alex Yao
bc106cc430 Bump Yeelight to v0.7.10 (#69147) 2022-04-04 11:12:18 +02:00
Franck Nijhof
2ae390a342 Set brand icon on WLED update entity (#69145) 2022-04-04 11:12:15 +02:00
Glenn Waters
5cc58579bb 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-04 11:12:12 +02:00
Bouwe Westerdijk
61129734f5 Bump plugwise to v0.17.3 (#69139) 2022-04-04 11:12:09 +02:00
Raman Gupta
a26e221ebc Fix kodi log spamming again (#69137)
* Fix kodi log spamming again

* use try except else
2022-04-04 11:12:05 +02:00
Michael
026c843545 ignore ip6 link local address on ssdp discovery (#69135) 2022-04-04 11:12:02 +02:00
Mick Vleeshouwer
f2d41a0011 Bugfix for overkiz.alarm_control_panel platform exception (#69131)
* Revert changes

* Remove debug statement
2022-04-04 11:11:58 +02:00
Nenad Bogojevic
bee853d415 Fix withings race condition for access token (#69107) 2022-04-04 11:11:55 +02:00
Erik Montnemery
3ba8ddb192 Return unsubscribe callback from start.async_at_start (#69083)
* Return unsubscribe callback from start.async_at_start

* Update calling code
2022-04-04 11:11:52 +02:00
Wictor
53107e4f2c Refactor telegram_bot polling/webhooks platforms and add tests (#66433)
Co-authored-by: Pär Berge <paer.berge@gmail.com>
2022-04-04 11:11:48 +02:00
Franck Nijhof
b539700e45 Bumped version to 2022.4.0b3 2022-04-02 11:40:11 +02:00
Franck Nijhof
dd2c2eb974 Update wled to 0.13.2 (#69116) 2022-04-02 11:39:44 +02:00
Raman Gupta
c1c8299511 Fix kodi log spamming (#69113) 2022-04-02 11:39:40 +02:00
Franck Nijhof
c72db40082 Bump num of conflicts in pip check (#69112) 2022-04-02 11:39:37 +02:00
Marcel van der Veldt
9327938dcc Allow lowercase none for effect value in Hue lights (#69111) 2022-04-02 11:39:33 +02:00
Marcel van der Veldt
c7f807cf33 Adjust check for orphaned Hue device entries for grouped lights (#69110)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-04-02 11:39:30 +02:00
Raman Gupta
691eac7a7f Fix unit prefixes for derivative and integration (#69109) 2022-04-02 11:39:27 +02:00
Keilin Bickar
e341e55e88 Bump asyncsleepiq to 1.2.3 (#69104) 2022-04-02 11:39:24 +02:00
Glenn Waters
51e8ddbd27 Environment Canada: Fix for when temperature is zero (#69101) 2022-04-02 11:39:20 +02:00
puddly
c2c397527e Bump ZHA dependency zigpy-deconz from 0.14.0 to 0.15.0 (#69099) 2022-04-02 11:39:17 +02:00
Bram Kragten
328f479bc4 Update frontend to 20220401.0 (#69095) 2022-04-02 11:39:13 +02:00
Bouwe Westerdijk
5df7882ce4 Remove use of HVAC_MODE_OFF in plugwise climate, it's not implemented (#69094) 2022-04-02 11:39:10 +02:00
Franck Nijhof
7fe6174bd9 Rename current_version to installed_version in Update platform (#69093) 2022-04-02 11:39:06 +02:00
Dave T
d4a31b037f Add image test cases to generic (#69040) 2022-04-02 11:39:03 +02:00
Mick Vleeshouwer
5db1c67812 Fix Protexial alarm in Overkiz integration (#68996) 2022-04-02 11:38:59 +02:00
Paulus Schoutsen
f40513c95b Bumped version to 2022.4.0b2 2022-04-01 09:30:33 -07:00
Mick Vleeshouwer
2d7cbeb1fc Bump pyoverkiz to 1.3.14 in Overkiz integration (#69084) 2022-04-01 09:30:08 -07:00
Erik Montnemery
718bc734f2 Add bluepy as a dependency for zengge (#69067)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-04-01 09:30:07 -07:00
Erik Montnemery
66c131515a Update zengge codeowners (#69068) 2022-04-01 09:28:01 -07:00
Erik Montnemery
200a24d869 Fix utility_meter startup (#69064) 2022-04-01 09:25:55 -07:00
Matthias Alphart
c030af0919 coerce number selector values to int (#69059) 2022-04-01 09:25:55 -07:00
Erik Montnemery
ad2067381b Bump pychromecast to 11.0.0 (#69057) 2022-04-01 09:25:54 -07:00
Joakim Sørensen
cc9e55594f Add auto_update property to supervisor and addon update entities (#69055) 2022-04-01 09:25:53 -07:00
Joakim Sørensen
fadb63c43a Add auto_update property to UpdateEntity (#69054) 2022-04-01 09:25:53 -07:00
Raman Gupta
0cf817698d Fix zwave_js device action logic (#69049)
* Fix zwave_js device action logic

* Add test for this behavior
2022-04-01 09:25:52 -07:00
Shay Levy
432768f503 Remove webostv deprecated YAML import (#69043)
* webostv: remove deprecated YAML import

* Remove unused CUSTOMIZE_SCHEMA and WEBOSTV_CONFIG_FILE
2022-04-01 09:25:51 -07:00
J. Nick Koston
65ccb7446f Prevent HomeKit from offering hidden entities (#69042) 2022-04-01 09:25:50 -07:00
Mick Vleeshouwer
90bec9cfcd Enable select platform in Overkiz integration (#68995) 2022-04-01 09:25:50 -07:00
Erik Montnemery
ab21ac370c Mend incorrectly imported MQTT config entries (#68987)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-04-01 09:25:49 -07:00
Matthias Alphart
43b9e4febf 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 09:25:48 -07:00
Chris Talkington
3659bceedb Update rokuecp to 0.16.0 (#68822) 2022-04-01 09:25:47 -07:00
J. Nick Koston
e4395dee6c Convert statistics to use history api for database access (#68411) 2022-04-01 09:25:47 -07:00
Paulus Schoutsen
0b8bba0db9 Bumped version to 2022.4.0b1 2022-03-31 15:10:09 -07:00
Dave T
2cb77c4702 Improve image checks for generic camera (#69037) 2022-03-31 15:10:01 -07:00
Franck Nijhof
dcbca89d06 Remove deprecated YAML configuration from Yamaha Music Cast (#69033) 2022-03-31 15:10:00 -07:00
Franck Nijhof
9614e8496b Remove deprecated YAML configuration from Fronius (#69032) 2022-03-31 15:10:00 -07:00
Franck Nijhof
deed4c5980 Remove deprecated YAML configuration from EZVIZ (#69031) 2022-03-31 15:09:59 -07:00
Franck Nijhof
9c9bacad31 Remove deprecated YAML configuration from Sensibo (#69028) 2022-03-31 15:09:58 -07:00
Franck Nijhof
daf2f746ed Remove deprecated YAML configuration from Met.no (#69027) 2022-03-31 15:09:57 -07:00
Franck Nijhof
d0bb58c698 Remove deprecated YAML configuration from Yale Smart Alarm (#69025) 2022-03-31 15:09:57 -07:00
Franck Nijhof
652ce897c7 Remove deprecated YAML configuration from Brunt (#69024) 2022-03-31 15:09:56 -07:00
Franck Nijhof
5120a03470 Remove deprecated template support in persistent notifications (#69021) 2022-03-31 15:09:55 -07:00
Joakim Sørensen
b349322055 Cleanup Version after removing YAML (#69020) 2022-03-31 15:09:55 -07:00
Paulus Schoutsen
00b363d896 Enforce EntityCategory enum (#69015)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:09:54 -07:00
Paulus Schoutsen
a1ebea271c Enforce RegistryEntryDisabler enum (#69017)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:09:26 -07:00
Paulus Schoutsen
c73f423102 Device Automation: enforce passing in device-automation-enum (#69013) 2022-03-31 15:06:57 -07:00
Paulus Schoutsen
a630e7dc49 Version: remove deprecated YAML import (#69010) 2022-03-31 15:06:56 -07:00
Paulus Schoutsen
b7e3e7a8e6 Launch Library: remove deprecated YAML import (#69008) 2022-03-31 15:06:56 -07:00
Paulus Schoutsen
7eecf48645 DNS IP: Remove deprecated YAML import (#69007)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:06:55 -07:00
Paulus Schoutsen
bb26ded115 iCloud: remove deprecated YAML import (#69006)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-31 15:06:54 -07:00
Paulus Schoutsen
8c65e930d5 Update tradfri deprecation message (#69005) 2022-03-31 15:06:53 -07:00
Paulus Schoutsen
ff332049e1 Nanoleaf: remove deprecated YAML import (#69004) 2022-03-31 15:06:52 -07:00
Paulus Schoutsen
fa12fd3776 Solax: remove deprecated YAML import (#69003) 2022-03-31 15:06:51 -07:00
Paulus Schoutsen
0adeebfe33 Remove deprecated Switchbot import (#69002) 2022-03-31 15:06:50 -07:00
Paulus Schoutsen
2328813e69 Don't log the stack trace (#69000) 2022-03-31 15:06:50 -07:00
starkillerOG
013f376ef3 bump pynetgear to 0.9.2 (#68986) 2022-03-31 15:06:49 -07:00
Erik Montnemery
a8e6ad9f3d Deprecate temperature conversion in base entity class (#68978)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-31 15:06:48 -07:00
Erik Montnemery
a8dcecf1ec Make utility_meter tariffs a list (#68967) 2022-03-31 15:06:47 -07:00
Erik Montnemery
76db6acfb2 Improve utility_meter services.yaml (#68960) 2022-03-31 15:06:47 -07:00
Paulus Schoutsen
844d0680f0 Change privacy mode to config (#68954) 2022-03-31 15:06:46 -07:00
Raman Gupta
c684603037 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 15:06:45 -07:00
Allen Porter
e6b88a5214 Fix google calendar blocking call, running outside of executor (#68948) 2022-03-31 15:06:45 -07:00
Robert Hillis
a16d86585b Rename google hangouts to google chat (#68941) 2022-03-31 15:06:44 -07:00
J. Nick Koston
df308f703f Exclude large and chatty attributes from being recorded for update entities (#68940)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2022-03-31 15:06:43 -07:00
Philip Allgaier
40e7055934 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 15:06:42 -07:00
Dave T
45bd4038f4 Generic camera: Allow gif image type in still image checker (#68933) 2022-03-31 15:06:42 -07:00
Dave T
3aa0294b5d Generic camera: Allow svg detect to accept leading whitespace (#68932) 2022-03-31 15:06:41 -07:00
Erik Montnemery
143e9f4fc3 Improve utility_meter services.yaml (#68930) 2022-03-31 15:06:40 -07:00
Nathan Spencer
0de84d882a Bump pylitterbot to 2022.3.0 (#68929) 2022-03-31 15:06:39 -07:00
Bram Kragten
ff786c3be8 Handle config entries of integrations that are removed (#68928) 2022-03-31 15:06:39 -07:00
Michael
d617271ca0 Add "station is open" sensor to Tankerkoenig (#68925) 2022-03-31 15:06:38 -07:00
Erik Montnemery
d38382fbe3 Rename helper_config_entry_flow to schema_config_entry_flow (#68924) 2022-03-31 15:06:37 -07:00
Paulus Schoutsen
475b9e212d Mark all input integrations as helpers (#68922) 2022-03-31 15:06:37 -07:00
puddly
a8ad3292c8 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 15:06:36 -07:00
rianadon
78d8bc66d1 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-31 15:06:35 -07:00
Franck Nijhof
cd7e72b38d Bumped version to 2022.4.0b0 2022-03-30 21:34:03 +02:00
Franck Nijhof
9c2a944997 Merge branch 'master' into dev 2022-03-30 21:32:52 +02:00
muchtall
a5eae3dbac Add support for joaoapps_join notification categories (#67445) 2022-03-30 12:28:41 -07:00
Zack Barett
c2e9865f3f Frontend Version Bump to 20220330.0 (#68918) 2022-03-30 12:27:27 -07:00
Cyril Perrin
fb1b0b535f Provide conv_id to intent (#68102) 2022-03-30 12:24:36 -07:00
Mick Vleeshouwer
1be9dc9720 Add supported brands to Overkiz (#67024)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-30 21:21:35 +02:00
Ljzd-PRO
9998ed4fc0 Change xiaomi _retrieve_list() timeout setting (#63964) 2022-03-30 12:19:13 -07:00
Jeff Basso
408e9b2943 Add Identity Attribute to enable areas (#62698) 2022-03-30 12:18:00 -07:00
Martin
a9ebeb2876 Catch kodi protocol errors (#67555) 2022-03-30 12:14:53 -07:00
Sebastian Muszynski
ea2c3e3310 Initialize xiaomi aqara binary sensor state (#68791) 2022-03-30 12:13:35 -07:00
Marvin Wichmann
9b05a1264a Add support for IP secure to KNX config flow (#68906)
* Add support for TCP Secure in KNX config flow

* Add support for TCP Secure in KNX config flow

* Fix typing

* Fix import

* Move assert up to cover all possible cases
2022-03-30 21:10:47 +02:00
Michael
3ccec8f051 Address late review of Tankerkoenig (#68919) 2022-03-30 21:07:00 +02:00
Jeff Rescignano
7767258696 Change sharkiqpy to sharkiq (#68864) 2022-03-30 11:41:34 -07:00
Mick Vleeshouwer
6a0a77f986 Don't close aiohttp session in Overkiz config flow (#68913) 2022-03-30 11:40:14 -07:00
Johann Vanackere
aa6f551b33 Remove Daikin int conversion to allow decimal target temperature steps (#61616)
* Remove int conversion in order to allow decimal target temperature steps

* Convert to float and keep 1 digit
2022-03-30 20:03:22 +02:00
rappenze
4ca4180fd2 Fix on state for fibaro light entity (#68914) 2022-03-30 07:41:18 -10:00
Maximilian
2c245fcfec Address late review of nina (#68911) 2022-03-30 19:38:14 +02:00
Tom
3590467ce6 Update plugwise module to 0.17.2 (#68908) 2022-03-30 19:37:05 +02:00
Erik Montnemery
9471e4d77c Don't override temperature unit for sensors (#68910) 2022-03-30 10:15:00 -07:00
Joakim Sørensen
6d168d2672 Do not mark downgrades as updates (#68893) 2022-03-30 09:34:29 -07:00
J. Nick Koston
fb41734342 Add support for custom effects to tplink light strips (#68502) 2022-03-30 09:34:09 -07:00
J. Nick Koston
d75f577b88 Additional strict typing for recorder (#68860) 2022-03-30 09:20:44 -07:00
Marc Mueller
fa33ac73f3 Update pylint to 2.13.3 (#68904) 2022-03-30 09:18:55 -07:00
Erik Montnemery
2c92d19058 Exclude own entity from group entity selector (#68782) 2022-03-30 18:07:47 +02:00
epenet
463cb8679f Bump python-awair to 0.2.3 (#68905) 2022-03-30 18:04:59 +02:00
Antoni Czaplicki
76f07ec240 Add Uonet+ Vulcan integration (#56357)
* Add Uonet+ Vulcan integration

* Add "configuration_url", fix some minor issues

* Refactor and fix tests

* Optimize code

* Apply suggestion from code review

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>

* Update error handling

* Fix some tests

* Update CODEOWNERS and fix pylint

* Cleanup vulcan tests

* Run prettier

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-30 17:55:24 +02:00
Tom
4d607b2eb5 Update plugwise module to 0.16.9 (#68255)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-30 17:12:20 +02:00
Sven Naumann
94fde3bf23 Prioritize channels for homematic event subscriptions (#56619)
* Prioritize SENSORNODE for event callbacks

* Ran black

* Use lazy % formatting for logging

Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-30 16:28:23 +02:00
Franck Nijhof
ca1337d9c2 Update vehicle to 0.4.0 (#68896) 2022-03-30 16:15:34 +02:00
Marc Mueller
006fa9b700 Improve zha typing [api] (5) (#68684) 2022-03-30 15:54:31 +02:00
Marc Mueller
cde989cd38 Fix zha InovelliCluster base class (#68683) 2022-03-30 15:49:12 +02:00
Jan Bouwhuis
4db2270f3d Refactor MQTT scene to inherit MqttEntity (#68883)
* MQTT scene inherrits MqttEntity

* Default payload_on matches documentation

* remove CONF_ENABLED_BY_DEFAULT from schema return True as default

* Add to the schema, remove not overrided properties

* remove default payload_on

* Update homeassistant/components/mqtt/scene.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-30 15:46:45 +02:00
Erik Montnemery
91f6e58e9a Allow customizing unit for temperature and pressure sensors (#64366)
* Allow customizing unit for temperature and pressure sensors

* pylint

* Adjust google_wifi tests

* Address review comments and add tests

* Improve rounding when scaling

* Tweak rounding

* Further tweak rounding

* Allow setting entity options with config/entity_registry/update

* Address review comments

* Tweak tests

* Load custom unit when sensor is added

* Override async_internal_added_to_hass

* Adjust tests after rebase

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Address review comments

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-30 15:43:04 +02:00
epenet
5b1e319947 Fix DEPENDENCY_CONFLICTS (#68900) 2022-03-30 15:14:54 +02:00
epenet
cb5c7dc716 Prettify json (#68898) 2022-03-30 14:06:41 +02:00
Garrett
ab0abdc988 Add 2FA support for Subaru integration setup (#68753)
* Add 2FA support for Subaru integration setup

* Update config flow to abort with 2FA request fail
2022-03-30 13:53:03 +02:00
Tom Brien
bb7593351b Add option for exchange rate sensor precision to Coinbase (#68792)
* Add user option for precision to exchange rate sensors

* Add tests

* Add strings
2022-03-30 13:51:44 +02:00
Kevin Stillhammer
259b069dd9 Ensure API is called correctly in here_travel_time (#68840) 2022-03-30 13:49:21 +02:00
Eric Svärd
04bb156e99 Discard Solaredge updates for invalid overview data (#68048) 2022-03-30 13:36:55 +02:00
kaareseras
1f2bfcf12e Bump PyJWT from 2.1.0 to 2.3.0 (#68858) 2022-03-30 13:34:40 +02:00
Álvaro Fernández Rojas
0cb8ff9bc6 Fix HVAC modes for Airzone slave zones (#68851) 2022-03-30 13:32:15 +02:00
Eric Severance
3953b6abe2 Fix error handling for expired html5 registration (#67676) 2022-03-30 13:30:08 +02:00
Robert Hillis
9f0665bbb4 Add config flow to discord (#61069) 2022-03-30 13:18:48 +02:00
epenet
93706ca21a Bump prettier to v2.6.1 and enable on CI (#68877) 2022-03-30 13:10:48 +02:00
jan iversen
3cccb948a1 Auto detect call write register or write registers in set_temperature modbus (#68678) 2022-03-30 12:54:24 +02:00
epenet
9aac5d6af1 Prettify json (#68895) 2022-03-30 12:15:04 +02:00
epenet
053c4428a9 Prettify json (component test fixtures) (#68892) 2022-03-30 11:37:17 +02:00
epenet
831e2ace9c Prettify yaml (tests) (#68891) 2022-03-30 11:26:08 +02:00
J. Nick Koston
af6a62ca79 Strict typing for homekit part 1 (#67657)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-30 11:21:07 +02:00
epenet
496d90bf00 Prettify json (tests) (#68888) 2022-03-30 11:12:58 +02:00
J. Nick Koston
bbcefd6fec Exclude sun attributes from being recorded in the database (#68887) 2022-03-30 11:03:08 +02:00
epenet
ecd43f391f Prettify json (manifest.json) (#68886) 2022-03-30 10:56:37 +02:00
Florian Gareis
8669057c11 Update yeelight services file with new selectors (#68814) 2022-03-30 10:43:03 +02:00
Erik Montnemery
cf39a61aa1 Get cast type and manufacturer via http protocol (#68863) 2022-03-30 10:40:38 +02:00
epenet
0dcaa6422d Prettify yaml (2/2) (#68879) 2022-03-30 10:39:30 +02:00
epenet
e362871499 Prettify json (strings.json) (#68885) 2022-03-30 10:35:30 +02:00
epenet
8fb645e1d7 Return cached device_info if refresh fails in SamsungTV (#68844) 2022-03-29 22:16:26 -10:00
Paulus Schoutsen
7a9a0c0c91 Update group description (#68882)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-30 10:16:04 +02:00
Paulus Schoutsen
206ea9d237 Expand group lights/covers etc (#68875)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-30 10:11:09 +02:00
Mick Vleeshouwer
7613784367 Extend Overkiz diagnostics and implement device diagnostics (#68859) 2022-03-29 22:07:34 -10:00
Mick Vleeshouwer
2be8b07af9 Address Overkiz switch feedback (#68813) 2022-03-30 09:58:50 +02:00
Erik Montnemery
47ecc73dfa Disable the SoChain integration (#68856) 2022-03-30 09:55:02 +02:00
Joakim Sørensen
618b16a32b Add full release notes to add-on update entities (#68876) 2022-03-30 09:52:29 +02:00
IceBotYT
5cd532b16a Improve code quality of PECO integration (#68865) 2022-03-30 09:50:25 +02:00
epenet
bfd84ba89c Prettify yaml (services.yaml) (#68878) 2022-03-30 09:48:06 +02:00
Jeef
18517fda65 Move Intellifire error codes to individual sensors (#68249) 2022-03-30 09:41:25 +02:00
epenet
a5c729b724 Fix NoEntitySpecifiedError in SamsungTV (#68880) 2022-03-29 20:59:54 -10:00
epenet
f053fc9167 Add code comment in SamsungTV (#68841) 2022-03-29 20:11:22 -10:00
Raman Gupta
df4ddc6491 Allow timer state to be restored on restart (#67658) 2022-03-29 23:04:46 -07:00
epenet
4d59cb290c Remove duplicate code in SamsungTV bridge (#68839) 2022-03-29 20:04:18 -10:00
north3221
e76170fbfd Add overlay options to Tado (#65886)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-29 22:59:03 -07:00
Marcel van der Veldt
09f6785956 Add virtual device/service for Hue groups (#68569) 2022-03-29 20:33:05 -07:00
Erik Montnemery
7e8d52e5a3 Fix race when handling rapid succession of MQTT discovery messages (#68785)
Co-authored-by: jbouwh <jan@jbsoft.nl>
2022-03-29 20:26:11 -07:00
J. Nick Koston
3d378449e8 Move envoy last reported attribute to its own sensor (#68360) 2022-03-29 20:25:14 -07:00
Michael
2f7aeb64d2 Add config flow to Tankerkoenig (#68386) 2022-03-29 20:23:30 -07:00
J. Nick Koston
f5a13fc51b Add ability to exclude attributes from being recorded by entity domain (#68824) 2022-03-29 20:13:08 -07:00
Sebastian Lövdahl
ced68c1b80 Add Vallox cell state sensor tests (#67069) 2022-03-29 17:07:09 -10:00
Chris Talkington
f4c443ac86 Use fixture for enabling entities in Sonarr tests (#68177) 2022-03-29 17:04:13 -10:00
Nikolai Rahimi
42cec38b66 Vesync core400s fan speed (#67672) 2022-03-29 17:02:57 -10:00
Allen Porter
66a183cfe3 Add nest device level diagnostics (#68024) 2022-03-29 16:56:03 -10:00
Robert Hillis
7e40594748 Bump notifications-android-tv to 0.1.5 (#68599) 2022-03-29 16:53:53 -10:00
Mick Vleeshouwer
365ea59b64 Improve Config Flow and handle TooManyAttemptsBannedException in Overkiz (#68868) 2022-03-29 16:19:57 -10:00
Joakim Sørensen
9a150c2234 Add release_notes method to update entities (#68842) 2022-03-29 17:38:56 -07:00
Jason Hunter
94df0844b3 Add lock groups (#68857) 2022-03-29 17:07:23 -07:00
Michael
61f8af8b58 Add update entity to Synology DSM (#68664) 2022-03-29 17:01:26 -07:00
Michael
96c607d50d Add update entities to PI-Hole (#68749) 2022-03-29 16:56:15 -07:00
Michael
3d64d1b76b Add tests for Fritz!Tools sensors (#67776) 2022-03-29 16:54:16 -07:00
Michael
94c5dbfd16 Rework config flow in AVM Fritz!Tools (#67767) 2022-03-29 16:53:53 -07:00
Raman Gupta
603601b32e Use location selector in tomorrowio config flow (#68431) 2022-03-29 16:53:31 -07:00
Zack Barett
91c0baf086 20220329.0 (#68867) 2022-03-29 16:03:04 -07:00
rappenze
93a66cc357 Add power sensor to fibaro integration (#68848) 2022-03-29 09:53:43 -10:00
Jason Hunter
7f5ee53d51 Fix pre-commit by upgrading black (#68855) 2022-03-29 15:29:30 -04:00
G Johansson
06435f633f Implement config flow for trafikverket_train (#65182) 2022-03-29 08:32:38 -10:00
starkillerOG
425b825ae9 Motion Blinds API lock (#68587) 2022-03-29 08:29:29 -10:00
Marvin Wichmann
cec3a08b95 Cleanup KNX integration (#68820)
* Cleanup KNX integration

* Cleanup KNX integration

* Update homeassistant/components/knx/__init__.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2022-03-29 16:46:02 +02:00
Michael Chisholm
62aa7fe10e dlna_dms fixes from code review (#67796) 2022-03-29 15:32:16 +02:00
Franck Nijhof
be39a3cee0 Merge pull request #68825 from home-assistant/rc 2022-03-29 15:30:51 +02:00
Erik Montnemery
bdb61e0222 Add config flow for utility_meter (#68457) 2022-03-29 14:46:17 +02:00
epenet
826423d8ed Cleanup package constraints (#68833)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 14:42:40 +02:00
Erik Montnemery
d81ee9b2da Mark before/after times as required for times of the day config flow (#68789) 2022-03-29 13:21:58 +02:00
Marc Mueller
c3d937fb0f Fix codeowners script for nested files (#68590) 2022-03-29 13:17:49 +02:00
Poltorak Serguei
d9a6371679 Improved Add Sreen of the Z-WAve.Me intergration (#68568) 2022-03-29 13:00:35 +02:00
ollo69
80f34e5e2e Add diagnostics support for AndroidTV (#68748)
* Add diagnostics support for AndroidTV

* Restore entity_picture attribute
2022-03-29 12:51:04 +02:00
Kevin Stillhammer
dc71ecf67e Wait for Home Assistant start in here_travel_time (#68757)
* Wait for Home Assistant to fully start.

* Update homeassistant/components/here_travel_time/sensor.py

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

* Define callback for _update_at_start

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-29 12:50:47 +02:00
epenet
5830481a53 Use new CONF_MODEL in mqtt (#68832)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 12:49:00 +02:00
epenet
35a5cca1ca Cleanup package constraints (#68833)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 11:44:19 +02:00
epenet
014aadb299 Use new CONF_MODEL core constant (2/3) (#68831)
* Use CONF_MODEL in xiaomi_miio

* Use CONF_MODEL in xiaomi

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 11:12:43 +02:00
epenet
a29990a784 Use new CONF_MODEL core constant (1/3) (#68829)
* Use CONF_MODEL in axis

* Use CONF_MODEL in denonavr

* Use CONF_MODEL in flux_led

* Use CONF_MODEL in konnected

* Use CONF_MODEL in steamist

* Use CONF_MODEL in tellstick

* Use CONF_MODEL in tensorflow

* Use CONF_MODEL in twinkly

* Use CONF_MODEL in yeelight

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 11:11:58 +02:00
cvwillegen
8fc8778995 Improve log when connection to kodi media player cannot be created (#68458)
* Make clearer in log files that connection to media player cannot be created.

* Only give connection error once.

When connection is lost, only give an error message once. When connection is restored and lost again, give error message again.
2022-03-29 11:09:59 +02:00
jjlawren
112d232c2e Autoresume in-progress items from Plex media browser (#68494) 2022-03-29 11:08:26 +02:00
epenet
d4ab48a049 Optimise Upnp event handling in SamsungTV (#68828)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-28 22:55:05 -10:00
MattWestb
2e9c89024b Add presets for 2 new tuya TRVs. (#68576)
Adding presets for "_TZE200_cpmgn2cf" and "_TZE200_9sfg7gm0" that is being added in ZHA thru https://github.com/zigpy/zha-device-handlers/pull/1443.
Need being merged for getting the device working then the quirk is being merged (but can being merged before).
2022-03-29 10:45:05 +02:00
ollo69
0d8736b82b Remove ipaddress check in AndroidTV config flow (#68630) 2022-03-29 10:44:33 +02:00
yoedf
88780b4c87 Add duration support for streaming in mpd (#66110)
* Add duration support for streaming in mpd

* Change to use 1 line instead of if

* Improve code to be more readable
2022-03-29 11:36:05 +03:00
Maximilian
d655d54a8f Added more attributes (#67135) 2022-03-29 11:34:09 +03:00
epenet
99c0ef9ab8 Pin click to fix typer issue (#68808)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 10:21:29 +02:00
epenet
2bb42f48aa Add CONF_MODEL to core constants (#68806)
* Add CONF_MODEL to core constants

* Use CONF_MODEL in SamsungTV

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 10:01:10 +02:00
Sebastian Muszynski
50b2ee8c23 Fix light state on boot up (#68606)
Fixes: #68038
2022-03-29 09:57:30 +02:00
J. Nick Koston
d7634d1cb1 Additional strict typing for additional recorder internals (#68689)
* Strict typing for additional recorder internals

* revert

* fix refactoring error
2022-03-29 09:45:25 +02:00
Ville Skyttä
05ddd773ff Fix _abort_if_unique_id_configured updates type hint (#68730) 2022-03-29 09:24:15 +02:00
Paulus Schoutsen
4041dd61c5 Bumped version to 2022.3.8 2022-03-29 00:11:29 -07:00
Keilin Bickar
fe36ff5fa9 Update sense library to 0.10.4 (#68816) 2022-03-29 00:11:12 -07:00
J. Nick Koston
9acd1471a0 Fix ignoring elkm1 discovery (#68750) 2022-03-29 00:11:11 -07:00
Martin Hjelmare
d1a6eb55b1 Increase zwave_js add-on start attempts before timeout (#68736) 2022-03-29 00:11:10 -07:00
J. Nick Koston
112732c673 Add option to connect to elkm1 non-secure when secure is discovered (#68735)
Co-authored-by: Glenn Waters <glenn@watrs.ca>
2022-03-29 00:11:09 -07:00
J. Nick Koston
45638c78ae Ensure solaredge can still be setup with an ignored entry (#68688) 2022-03-29 00:11:08 -07:00
J. Nick Koston
d5e80ed2a5 Fix screenlogic to get the macaddress from discovery (#68687) 2022-03-29 00:11:07 -07:00
kevdliu
9b3c3232be Revert "Take Abode camera snapshot before fetching latest image" (#68626) 2022-03-29 00:11:06 -07:00
J. Nick Koston
14fbda8412 Add option to connect to elkm1 non-secure when secure is discovered (#68735)
Co-authored-by: Glenn Waters <glenn@watrs.ca>
2022-03-29 00:10:49 -07:00
patagona
e85fb87438 Handle MPD songs with multiple artists (#68759) 2022-03-29 09:10:21 +02:00
Keilin Bickar
557fa198d8 Update sense library to 0.10.4 (#68816) 2022-03-29 00:08:40 -07:00
Marvin Wichmann
1d88ce0d04 Update xknx to version 0.20.0 (#68818) 2022-03-29 08:58:54 +02:00
IceBotYT
fb14ae211e Add support for static typing for the PECO library (#68707) 2022-03-29 08:47:20 +02:00
J. Nick Koston
8714beb5e7 Update iot_class for samsungtv (#68812)
#68777 Made volume updates local push, we should upgrade the iot class
2022-03-29 07:23:52 +02:00
J. Nick Koston
6110e7d194 Remove unneeded __repr__ in samsungtv logging (#68817)
* Remove unneeded __repr__ in samsungtv logging

* keep only the ones we need
2022-03-29 07:22:58 +02:00
Franck Nijhof
085b44e45a Simplify is_on state for switch groups (#68805)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-03-29 07:09:42 +02:00
Paulus Schoutsen
69fcce3b2c Remove energy usage from the switch base class (#68821)
* Remove energy usage from the switch base class

* Remove unused attributes from integrations
2022-03-28 18:56:04 -10:00
Eric Severance
c6ba987995 Use device properties for WeMo Insight sensors (#63525) 2022-03-28 17:47:18 -07:00
J. Nick Koston
349060be2f Disable Unifi Protect Oldest Recording sensor by default (#68804) 2022-03-28 14:24:54 -10:00
Franck Nijhof
963d161f72 Update core services files with new selectors (#68810)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-03-28 17:17:16 -07:00
G Johansson
9b70c10c8e Implement coordinator for trafikverket_weather (#65233) 2022-03-28 13:13:02 -10:00
Álvaro Fernández Rojas
fefd6a1d1a Update aioairzone to v0.2.1 (#68798)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-28 13:05:47 -10:00
starkillerOG
98ca9754d7 Motion Blinds dhcp discovery (#68809)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-28 13:01:17 -10:00
epenet
8eb2e131e5 Use DmrDevice to communicate with SamsungTV (#68777)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-28 12:23:38 -10:00
Mick Vleeshouwer
d0e5e51863 Add alarm control panel to Overkiz integration (#67164) 2022-03-28 15:19:16 -07:00
epenet
f067aa6d71 Pin click to fix typer issue (#68808)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-29 00:07:29 +02:00
Marc Mueller
38a7c7438e Add zha typing [core.device] (1) (#68686) 2022-03-28 23:58:33 +02:00
Marc Mueller
f0e2f964e8 Add zha typing [core.gateway] (3) (#68685) 2022-03-28 23:58:06 +02:00
Matthias Alphart
f2aee38841 Run KNX protocol logic in a separate thread (#68807) 2022-03-28 23:56:29 +02:00
Allen Porter
9881538c27 Improve caldav tests to use APIs rather than entity methods (#68745)
* Improve caldav tests to use APIs rather than entity methods

Update caldav tests to use the best practice of exercising the public APIs rather than directly calling the entity methods directly. This is motivated by additional calendar API cleanup and possibly future breaking changes.

* Remove unnecessary start/end arguments which are ignored
2022-03-28 22:22:49 +02:00
Ville Skyttä
38ef183433 Change newly appeared DISABLED_USERs in tests to RegistryEntryDisablers (#68799) 2022-03-28 21:15:42 +02:00
Dave T
c1a2be72fc Generic IP Camera configflow 2 (#52360)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-28 09:08:00 -10:00
epenet
de130d3b28 Update REST api mocking in SamsungTV (#68172)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-28 09:04:19 -10:00
Paulus Schoutsen
5eee600fa8 Ban brand name translations as step titles (#68801) 2022-03-28 10:41:39 -07:00
Paulus Schoutsen
e80933d6c7 Force helpers to have a mandatory description (#68796) 2022-03-28 10:32:15 -07:00
starkillerOG
68a6359999 Address late motion blinds review comments (#68793) 2022-03-28 18:22:00 +02:00
Allen Porter
609c6ef5d4 Add test coverage for google calendar event response format (#68767)
Add test coverage for the calendar event response format as I am about to do some
refactoring and simplification. Notably, each calendar implementation uses a slightly different
API response, and this is codifying that.
2022-03-28 18:05:02 +02:00
Will Marler
79080f5e2f Adjust "default_config" comment in default config (#68679)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-28 09:03:34 -07:00
Maciej Bieniek
24212ab598 Add diagnostics platform for AccuWeather integration (#68752) 2022-03-28 08:42:25 -07:00
Ville Skyttä
066128a53c Remove leftovers of Huawei LTE YAML config support (#68728) 2022-03-28 08:24:13 -07:00
rappenze
33371bdd20 Change fibaro disconnect log level to debug (#68783) 2022-03-28 08:23:44 -07:00
Mick Vleeshouwer
c763d23cbb Fix reauth message in Overkiz integration (#68787) 2022-03-28 08:23:25 -07:00
Mick Vleeshouwer
443315bcdc Bump dependency (pyoverkiz to 1.3.12) in Overkiz integration (#68788) 2022-03-28 08:22:56 -07:00
rforro
a6d0a4ec64 Update climate.py (#68786)
add TRV presets to all Zonnsmart-like models
2022-03-28 09:56:37 -04:00
epenet
3230ee88b6 Add OUI to SamsungTV (#68771)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-28 12:36:45 +02:00
Erik Montnemery
2ec1e06c75 Mark group as a helper integration (#68775) 2022-03-28 12:36:11 +02:00
Erik Montnemery
cc156c767d Revert light.switch to 2022.3 (#68772) 2022-03-28 12:28:15 +02:00
Franck Nijhof
01980f0445 Add switch groups (#68528) 2022-03-28 12:27:26 +02:00
Erik Montnemery
a597c11ea2 Mark threshold as a helper integration (#68780) 2022-03-28 12:26:52 +02:00
Shay Levy
c2eaa76dde Bump aiowebostv to 0.2.0 (#68773) 2022-03-28 11:28:58 +02:00
Raman Gupta
9d14201b13 Don't create two zwave_js.lock entities for a single device (#68651) 2022-03-28 11:15:48 +02:00
J. Nick Koston
aa7cb087a9 Fix ignoring elkm1 discovery (#68750) 2022-03-28 11:05:50 +02:00
Álvaro Fernández Rojas
67d3e84448 Locally patch AirzoneLocalApi in tests (#68770) 2022-03-28 10:51:59 +02:00
Erik Montnemery
48187cebad Mark integration as a helper integration (#68778) 2022-03-28 10:35:52 +02:00
Erik Montnemery
95d6848726 Mark switch_as_x as a helper integration (#68779) 2022-03-28 10:35:08 +02:00
Franck Nijhof
6f567afc0e Mock out all default onboarding integrations in test (#68776)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-28 10:33:43 +02:00
J. Nick Koston
6cec53bea1 Add support for finding the samsungtv MainTvAgent service location (#68763) 2022-03-27 22:01:07 -10:00
Michael
23c47c2206 Add state class to Tankerkoenig fuel price sensors (#68737) 2022-03-28 09:48:25 +02:00
Erik Montnemery
66d892237d Add config flow for min_max sensor (#67807)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-28 09:39:54 +02:00
Erik Montnemery
1746677b61 Clarify duration selector (#68731) 2022-03-28 09:28:32 +02:00
Jan Bouwhuis
cfc8b5fee7 Fix notify discovery setup (#68451)
* Fix notify discovery setup

* add test

* unsubscribe at reset

* Add guard

* move dispatcher to reload module

* only unsubscribe if platform was setup

* initialize dispatcher once and tests

* test get_service too

* add tests

* fix test

* use get_service for test invalid platform

* Test built-in reload method

* set to None after clearing dispatcher - tests

* Pathing services file

* Update tests/components/notify/test_init.py

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

* dispatcher is not set twice if integration loaded

* empty discovery payload

* Removed not needed services.yaml mock

* Update tests/components/notify/test_init.py

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

* flake8

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-28 08:53:30 +02:00
ollo69
17ddbb4983 Restore AndroidTV entity name from migration (#68756) 2022-03-27 14:57:15 -10:00
epenet
c024033dae Add Upnp volume control/status to SamsungTV (#68663)
Co-authored-by: epenet <epenet@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-27 12:27:24 -10:00
J. Nick Koston
b5496441ae Use new samsungtv exception to detect when reauth is needed (#68762) 2022-03-27 12:12:32 -10:00
Álvaro Fernández Rojas
42a5e2d4fe Add Airzone binary sensor platform (#68140)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-27 10:39:46 -10:00
J. Nick Koston
cc75cebfc5 Add support for setting up encrypted samsung tvs from config flow (#68717)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-27 10:30:45 -10:00
Álvaro Fernández Rojas
b5401ccc4a Add Airzone climate platform (#67924)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-27 08:59:15 -10:00
Jeff Irion
cffc588c6d Bump adb-shell to 0.4.2 (#68742) 2022-03-27 07:49:28 -10:00
Allen Porter
f61c911174 Remove some offset complexity from calendar event (#68724)
Simplify the calendar offset calculations to no longer update the event dictionary
using extra fields. calculate_offset is renamed to extract_offset and the integration
is responsible for overwriting the summary text.

This is in prepration for:
- Improved calendar event typing, removing unnecessary offset_reached field
- Calendar triggers which will remove offsets anyway
2022-03-27 10:02:19 -07:00
Ville Skyttä
945028d43d Update Huawei LTE config entry data on successful reconfig (#68727) 2022-03-27 17:16:45 +02:00
Allen Porter
f05a6826de Add additional type hints for calendar integration (#68660) 2022-03-27 17:08:28 +02:00
Marc Mueller
53110f8cb7 Update pylint to 2.13.2 (#68704) 2022-03-27 16:08:24 +02:00
Martin Hjelmare
ea2b5a80db Increase zwave_js add-on start attempts before timeout (#68736) 2022-03-27 12:29:59 +02:00
Allen Porter
4f595962b7 Pause deprecation of legacy works with Nest API (#68715) 2022-03-27 11:50:13 +02:00
Franck Nijhof
9e6bebd27b Patch out Met in onboarding tests (#68732) 2022-03-27 10:54:29 +02:00
Erik Montnemery
0899b67578 Update selectors with frontend changes (#68623) 2022-03-26 21:41:39 -07:00
Franck Nijhof
a2a612c640 Add enable_day to duration selector (#68705) 2022-03-26 21:31:22 -07:00
Nathan Tilley
4e9430cba5 Fix typo in NMAP Tracker Config Flow (#68712) 2022-03-26 16:05:02 -10:00
Jeff Irion
b9b81da2ec Bump androidtv to 0.0.66 (Android 11 support) (#68720) 2022-03-26 13:01:48 -10:00
rappenze
e844c2380a Add config flow to fibaro (#65203)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-26 09:50:50 -10:00
G Johansson
00b53502fb Break out sensors for filesize (#68702)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-26 09:43:15 -10:00
rhpijnacker
0c2b5b6c12 Support DSMR data read via RFXtrx with integrated P1 reader (#63529)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-26 16:46:33 +01:00
Franck Nijhof
1fd810bced Merge branch 'master' into dev 2022-03-26 14:21:01 +01:00
kevdliu
ee5e9d09a0 Revert "Take Abode camera snapshot before fetching latest image" (#68626) 2022-03-26 14:17:40 +01:00
G Johansson
b96c569657 Fix review comments for filesize (#68703) 2022-03-26 13:52:55 +01:00
J. Nick Koston
25bdb5304d Ensure solaredge can still be setup with an ignored entry (#68688) 2022-03-26 13:15:47 +01:00
Erik Montnemery
23a567e135 Update labels for derivative config flow time units (#68665) 2022-03-26 12:36:35 +01:00
J. Nick Koston
7198ec06d3 Fix screenlogic to get the macaddress from discovery (#68687) 2022-03-26 12:07:24 +01:00
J. Nick Koston
b9f172899e Bump objgraph to 3.5.0 to fix stall in profiler tests (#68690) 2022-03-26 11:59:28 +01:00
Joakim Sørensen
32b2d1e5c9 Add backup platform to recorder (#68229) 2022-03-25 23:17:11 -07:00
Raman Gupta
aa013fa8f6 Add CONF_LOCATION constant (#68474)
* Add CONF_LOCATION constant

* Update all custom CONF_LOCATION definitions to point to constant

* remove CONF_LOCATION from homeassistant/components/totalconnect/const
2022-03-26 00:10:54 -04:00
Marc Mueller
911b159281 Cleanup after pylint update (#68657) 2022-03-26 00:34:12 +01:00
Franck Nijhof
d645e80ccd Clean up async_update_entity helper usage (#68641) 2022-03-25 15:22:58 -07:00
Marc Mueller
53245c6523 Update pylint to 2.13.0 (#68656) 2022-03-25 15:14:48 -07:00
J. Nick Koston
225f7a989b Add strict typing for recorder util (#68681) 2022-03-25 15:03:46 -07:00
Mike Fugate
4dc8aff3d5 Bump asyncsleepiq to 1.2.1 (#68680) 2022-03-25 10:47:28 -10:00
starkillerOG
faf1f229e1 Motion allow changing ip (#68589)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-25 10:10:04 -10:00
G Johansson
67cf053260 Implement config flow for filesize (#67668)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-25 09:30:28 -10:00
Marc Mueller
f5923be4e4 Improve zha typing [core.decorators] (#68650) 2022-03-25 18:13:28 +01:00
hesselonline
4b22f04505 Add typing to test files for Wallbox (#68635)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-03-25 18:09:49 +01:00
Marc Mueller
3ef912b7a0 Improve zha typing [api] (4) (#68649) 2022-03-25 18:09:15 +01:00
Marc Mueller
6ac9c105c1 Improve zha websocket api logic (#68648) 2022-03-25 17:45:47 +01:00
Marc Mueller
931d5b5697 Add zha typing [core.gateway] (2) (#68644) 2022-03-25 17:44:49 +01:00
Marc Mueller
b3632f3efe Simplify zha IEEE validation schema (#68645) 2022-03-25 12:04:12 -04:00
Kevin Fronczak
70648d6e3b Bump Blinkpy to 0.19.0 (#68653) 2022-03-25 11:39:13 +01:00
Marc Mueller
1ce32ad3c0 Update mypy to 0.942 (#68652) 2022-03-25 08:50:10 +01:00
RDFurman
34ace2e1cd Honeywell away temps (#54704) 2022-03-24 15:17:36 -10:00
J. Nick Koston
c5c34bc0d7 Typing and code quality for recorder history (#68647) 2022-03-24 17:58:38 -07:00
Paulus Schoutsen
20c0a5a838 Add support for field descriptions in config flows (#68604) 2022-03-24 17:25:50 -07:00
J. Nick Koston
63ca0e70be Migrate Unifi Protect last tripped time attributes to their own entities (#68347) 2022-03-24 17:23:53 -07:00
Matthias Alphart
9a396c1d16 remove unused constant (#68646) 2022-03-25 00:52:25 +02:00
Franck Nijhof
cfa8f99b1c Update jinja2 to 3.1.0 (#68625) 2022-03-24 22:23:03 +01:00
G Johansson
d23d19f9e6 Improve data handling for Sensibo (#68419) 2022-03-24 11:15:08 -10:00
hesselonline
5fffe9b22f Wallbox remove unnecessary try..except (#68636) 2022-03-24 22:09:59 +01:00
J. Nick Koston
a566d3943c Fix history queries while the database migration is in progress (#68598) 2022-03-24 09:49:13 -10:00
J. Nick Koston
e911936a0d Remove direct usage of concurrent.futures from recorder (#68593) 2022-03-24 09:48:49 -10:00
J. Nick Koston
3777fa52f0 Ensure recorder statistics process registry updates in the db executor (#68633) 2022-03-24 09:48:09 -10:00
Erik Montnemery
9f079a22d5 Add config flow for times of the day binary sensor (#68246)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-24 20:46:34 +01:00
Franck Nijhof
f562f4264f Update grpcio to 1.45.0 (#68632) 2022-03-24 20:45:18 +01:00
epenet
b13e14b80c Add command support to SamsungTV H/J models (#68301)
Co-authored-by: epenet <epenet@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-24 07:58:58 -10:00
Numa Perez
46072d2997 Fix Lyric temperature setting when off (#68573) 2022-03-24 10:11:06 -07:00
Erik Montnemery
76103752b8 Only show light group all option in advanced mode (#68610) 2022-03-24 16:51:31 +01:00
Franck Nijhof
8aff8d89d2 Clean up async_reproduce_state helper usage (#68617) 2022-03-24 14:40:54 +01:00
Erik Montnemery
cbf5b5ead5 Use recorder threadpool in WS recorder/get_statistics_metadata (#68615) 2022-03-24 14:15:09 +01:00
Erik Montnemery
3068c9c9d3 Sort selectors alphabetically (#68612) 2022-03-24 13:20:16 +01:00
Franck Nijhof
15cffbe496 Clean up async_dispatcher_connect helper usage (#68613) 2022-03-24 13:19:11 +01:00
Klaas Schoute
de40770926 Add diagnostics support to Forecast.Solar (#65063)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-24 13:18:19 +01:00
Franck Nijhof
eca5fb5d54 Move remove all light option from group config flow (#68609) 2022-03-24 12:17:52 +01:00
Erik Montnemery
61cc8e32f3 Include has_mean + has_sum in statistics metadata WS response (#68546)
* Include has_mean + has_sum in statistics metadata WS response

* Don't include has_mean/has_sum in history/list_statistic_ids

* Adjust tests

* Do include has_mean/has_sum in history/list_statistic_ids
2022-03-24 10:12:01 +01:00
James Hodgkinson
4736470915 Bump pyaussiebb to 0.0.15 (#68600) 2022-03-24 05:42:21 +01:00
Erik Montnemery
23a630e0bc Update Times of the Day tests to use freezegun (#68327) 2022-03-23 21:06:43 -07:00
Paulus Schoutsen
feea5af3d0 Merge pull request #68592 from home-assistant/rc 2022-03-23 21:04:33 -07:00
Kevin Stillhammer
adbacdd5c2 Use DataUpdateCoordinator in here_travel_time (#61398)
* Add DataUpdateCoordinator

* Use TypedDict for extra_state_attributes

* Extend DataUpdateCoordinator

* Use platform enum

* Use attribution property

* Use relative imports

* Revert native_value logic

* Directly return result in build_hass_attribution

* Correctly declare traffic_mode as bool

* Use self._attr_*

* Fix mypy issues

* Update homeassistant/components/here_travel_time/__init__.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* Update homeassistant/components/here_travel_time/__init__.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* Update homeassistant/components/here_travel_time/sensor.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* blacken

* from datetime import time

* remove none check

* Move dataclasses to models.py

* Set destination to now if None

* Add mypy error code

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2022-03-23 20:53:31 -07:00
Mike Fugate
ad7a2c298b Add SleepIQ select entity for foundation preset positions (#68489) 2022-03-23 16:14:39 -10:00
Michael
be5d816fbe Bump py-synologydsm-api to 1.0.7 (#68584) 2022-03-23 18:08:01 -07:00
Michael
661f2fd613 Bump py-synologydsm-api to 1.0.7 (#68584) 2022-03-23 18:07:45 -07:00
J. Nick Koston
e5f424a280 Switch filter to use the database executor (#68594) 2022-03-23 13:20:43 -10:00
Paulus Schoutsen
911de94345 Bumped version to 2022.3.7 2022-03-23 15:47:05 -07:00
Marcel van der Veldt
53fa6c138a Bump aiohue to version 4.4.1 (#68579) 2022-03-23 15:46:53 -07:00
Marcel van der Veldt
85e6b3950c Bump aiohue to 4.4.0 (#68556) 2022-03-23 15:46:52 -07:00
J. Nick Koston
6fd4355314 Filter IPv6 addresses from AppleTV zeroconf discovery (#68530) 2022-03-23 15:46:14 -07:00
Marcel van der Veldt
050600375d Simplify Hue error handling a bit (#68529) 2022-03-23 15:46:13 -07:00
Paulus Schoutsen
1114877062 Hue handle HTTP errors (#68396) 2022-03-23 15:46:12 -07:00
jjlawren
454cb44ee8 Add cooldown timer before Sonos resubscriptions (#68521) 2022-03-23 15:45:21 -07:00
Keilin Bickar
9636435ff2 Add support for general API exception in Sense integration (#68517) 2022-03-23 15:45:20 -07:00
Erik Montnemery
f85781dc51 Fix targeting all or none entities in service calls (#68513)
* Fix targeting all or none entities in service calls

* Add test
2022-03-23 15:45:10 -07:00
Marcel van der Veldt
dbef90654f Add effects feature to Hue lights (#68567) 2022-03-23 15:13:01 -07:00
J. Nick Koston
8c10963bc0 Small cleanups for recorder (#68551) 2022-03-23 12:12:37 -10:00
Erik Montnemery
c44d7205cf Rename HelperFlowStep to HelperFlowFormStep (#68583) 2022-03-23 14:43:11 -07:00
jjlawren
29a43cef0b Add cooldown timer before Sonos resubscriptions (#68521) 2022-03-23 14:20:20 -07:00
epenet
9ba0475644 Use callback to get app_list in SamsungTV (#68506)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-23 11:12:12 -10:00
Raman Gupta
8293430e25 Redact user codes from zwave_js diagnostics (#68515)
* Redact user codes from zwave_js diagnostics

* simplify test

* Remove unused logic

* revert change and make all inputs to ZwaveValueID optional

* revert change and make all inputs to ZwaveValueID optional

* Remove unused diagnostics data from fixture and test location redaction

* Add empty ZwaveValueID check

* Improve coverage

* Simplify post_init check

* Use dataclasses.astuple for checks instead
2022-03-23 21:13:27 +01:00
Marcel van der Veldt
ccd8c7d5f8 Hue aggregated control for grouped lights (#68566) 2022-03-23 13:06:10 -07:00
J. Nick Koston
d2dc9e6cbe Filter IPv6 addresses from AppleTV zeroconf discovery (#68530) 2022-03-23 20:38:34 +01:00
Marcel van der Veldt
871b7a4a96 Bump aiohue to version 4.4.1 (#68579) 2022-03-23 21:18:06 +02:00
starkillerOG
83983bc875 Motion request update till stop (#68580)
* update untill stop

* fixes

* fix spelling
2022-03-23 20:59:53 +02:00
hesselonline
de3d402930 Add Lock platform to wallbox (#68414)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-03-23 19:50:28 +01:00
JonasClever
b4bb35d4de Fronius - change the unit of capacity from Ah to Wh (#68543) 2022-03-23 20:45:54 +02:00
Robert Hillis
bcfd9eeff2 Remove deprecated yaml config from Awair (#68572) 2022-03-23 20:37:15 +02:00
epenet
df6cc94b25 Cleanup SamsungTV following dependency bump (#68562)
* send_command -> send_commands

* Remove TODO

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-23 20:35:58 +02:00
starkillerOG
c3f0bd45a4 Bump motionblinds to 0.6.2 (#68570) 2022-03-23 20:34:22 +02:00
Erik Montnemery
a50bac5cc2 Make initial group config flow step a menu (#68565) 2022-03-23 08:34:44 -07:00
Erik Montnemery
d3809e4a09 Update group strings (#68571) 2022-03-23 15:36:50 +01:00
Franck Nijhof
cdc78ee129 Update isort to 5.10.1 (#68564) 2022-03-23 14:47:43 +01:00
Marcel van der Veldt
4fd0ed2474 Bump aiohue to 4.4.0 (#68556) 2022-03-23 13:03:14 +01:00
ollo69
790cab2f95 Remove useless async_setup from AndroidTV (#68561) 2022-03-23 12:50:32 +01:00
Erik Montnemery
dc0c3a4d2d Exclude hidden entities from google_assistant (#68554) 2022-03-23 12:46:53 +01:00
Erik Montnemery
ff7d5c92d5 Exclude hidden entities from cloud (#68557) 2022-03-23 12:42:45 +01:00
Erik Montnemery
dc8e87a6f7 Exclude hidden entities from alexa (#68555) 2022-03-23 12:40:28 +01:00
Martin Hjelmare
04843a975e Improve reload helper typing (#68558) 2022-03-23 12:10:42 +01:00
Franck Nijhof
44d3a7e459 Adjust backup type of Update entity (#68553) 2022-03-23 11:20:04 +01:00
Erik Montnemery
1c57e65cea Exclude hidden entities from homekit (#68552) 2022-03-23 10:32:51 +01:00
J. Nick Koston
49bc572d6d Fix tplink effect not being restored when turning back on (#68533)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-23 10:01:20 +01:00
Marc Mueller
c9cc2eb7c8 Fix flaky datetime test (#68524) 2022-03-23 09:30:01 +01:00
Klaas Schoute
0c45241d43 Add inverter size to Forecast.Solar (#68263) 2022-03-23 08:50:30 +01:00
epenet
11cdc3706c Bump samsungtvws to 2.5.0 (#68542)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-22 21:29:00 -10:00
J. Nick Koston
08d6a3d9d4 Cache newly written state attribute ids (#68355) 2022-03-22 21:21:56 -10:00
Franck Nijhof
df3a163a66 Update freezegun to 1.2.1 (#68512) 2022-03-23 08:10:21 +01:00
J. Nick Koston
7deeb92485 Switch sqlalchemy execute to use .all() instead of list() on the iterator (#68540) 2022-03-22 19:24:21 -10:00
Marcel van der Veldt
dd1d7fdbab Simplify Hue error handling a bit (#68529) 2022-03-22 21:59:06 -07:00
Marcel van der Veldt
7381c2114f Remove color temperature workaround in Hue integration (#68531) 2022-03-22 21:57:04 -07:00
Robert Hillis
e1ae940a34 Add config flow to deluge (#58789) 2022-03-22 21:01:24 -07:00
Raman Gupta
45a80f182d Dump entities in zwave_js device diagnostics (#68536) 2022-03-22 20:50:02 -07:00
Robert Hillis
a11a5366be Remove deprecated yaml config from androidtv (#68339) 2022-03-22 20:45:35 -07:00
Zack Barett
b2d7fe15bb Bump Frontend to 20220322.0 (#68535) 2022-03-22 17:48:21 -07:00
Erik Montnemery
b5c5da96ac Add WS API to adjust incorrect energy statistics (#65147)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-22 15:18:30 -07:00
Keilin Bickar
c5a3ba4065 Add support for general API exception in Sense integration (#68517) 2022-03-22 12:14:01 -10:00
J. Nick Koston
b9526b05ee Disable extra emonitor sensors by default (#68519) 2022-03-22 11:05:30 -10:00
Inovelli
78a41022ad Updating to allow for Button Press event logs for Inovelli devices (#68277)
Co-authored-by: codyhackw <49957005+codyhackw@users.noreply.github.com>
2022-03-22 19:59:57 +01:00
Erik Montnemery
34063836ba Fix scaffold script (#68516) 2022-03-22 19:51:24 +01:00
J. Nick Koston
c223397098 Remove unneeded attributes selection from history_states api calls (#68409) 2022-03-22 19:49:07 +01:00
J. Nick Koston
c5f3f9e924 Convert plant to use history api for database access (#68410) 2022-03-22 19:34:46 +01:00
Erik Montnemery
eb068bc850 Fix targeting all or none entities in service calls (#68513)
* Fix targeting all or none entities in service calls

* Add test
2022-03-22 19:45:27 +02:00
Ben Felton
43772b3fa9 Add World Message/MOTD support for MinecraftServer Integration (#66297) 2022-03-22 18:26:23 +01:00
Warwick Davison
0c6a6c360b Fix tuya light 2 channel dimmer module (#68109)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-22 18:24:57 +01:00
Jeff Rescignano
0720b0f891 Add all option to light group (#68447)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-22 16:09:18 +01:00
Marc Mueller
6a66b4dbff Add zha typing [api] (3) (#68353) 2022-03-22 10:15:39 -04:00
Marc Mueller
df05e8b950 Add zha typing [core.channels] (#68377) 2022-03-22 10:14:35 -04:00
Marc Mueller
bdc92271f2 Add zha typing [core.gateway] (1) (#68397)
* Add zha typing [core.gateway] (1)

* Add temporary type ignores

* Fix pylint
2022-03-22 10:13:09 -04:00
J. Nick Koston
94cd656670 Use new internal_state property in tplink diagnostics (#68497) 2022-03-22 14:58:16 +01:00
Joakim Sørensen
0802b64d95 Add boolean for certificate usage to analytics (#68254)
* Add boolean for certificate usage to analytics

* Mock hass.http
2022-03-22 14:49:43 +01:00
Franck Nijhof
1c2b8ee606 Add typing to Alert integration (#68365) 2022-03-22 14:48:36 +01:00
dependabot[bot]
a8df10bb2c Bump actions/cache from 2.1.7 to 3 (#68496)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-22 14:47:09 +01:00
Raman Gupta
174f0a5695 Remove deprecated config option for eight_sleep (#68495) 2022-03-22 13:37:26 +01:00
Robert Hillis
dfc689f49a Deprecate Dune HD YAML configuration (#68381)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-22 13:27:54 +01:00
Franck Nijhof
5ed5bccfe8 Clarify what the Tailscale integration does not (#68499) 2022-03-22 13:04:42 +01:00
Jan Bouwhuis
5afe8fd2db Revert "Add MQTT notify platform (#64728)" (#68505)
This reverts commit e574a3ef1d.
2022-03-22 12:51:24 +01:00
Joakim Sørensen
d17f8e9ed6 Add update platform to the Supervisor integration (#68475) 2022-03-22 12:21:12 +01:00
Erik Montnemery
1b955970f8 Allow hiding and unhiding group members (#68192) 2022-03-22 12:14:34 +01:00
Erik Montnemery
b5d2c6e43a Add config flow for threshold binary sensor (#68238)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-22 11:32:19 +01:00
epenet
87378016c1 Add basic support for SamsungTV encrypted models (#68500)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-22 00:11:41 -10:00
Martin Hjelmare
9180243a54 Deprecate mysensors config YAML (#68504) 2022-03-22 10:40:48 +01:00
J. Nick Koston
06ebb0b8b3 Add support for effects to tplink light strips (#65166) 2022-03-21 20:20:40 -10:00
Paulus Schoutsen
49edaf2f68 Merge pull request #68493 from home-assistant/rc 2022-03-21 21:57:00 -07:00
J. Nick Koston
cb011570e8 Seperate emonitor extra_state_attributes into their own sensors (#68479) 2022-03-21 21:20:17 -07:00
Pawel
bcb8c7ec3c Add API endpoint get_statistics_metadata (#68471)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-21 21:14:47 -07:00
Paulus Schoutsen
2be9798fb8 Bumped version to 2022.3.6 2022-03-21 20:42:13 -07:00
J. Nick Koston
3bf0a64e21 Fix tplink color temp conversion (#68484) 2022-03-21 20:42:09 -07:00
Paulus Schoutsen
23e9aa6ad2 Handle Hue discovery errors (#68392) 2022-03-21 20:42:08 -07:00
J. Nick Koston
a8e1f57058 Filter IPv6 addreses from enphase_envoy discovery (#68362) 2022-03-21 20:42:07 -07:00
Marcel van der Veldt
caee432901 Hue integration: update errors that should be supressed (#68337) 2022-03-21 20:42:07 -07:00
epenet
df5c09e483 Bump renault-api to 0.1.10 (#68260)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-21 20:42:06 -07:00
Franck Nijhof
38eb007f63 Update opensensemap-api to 0.2.0 (#68193) 2022-03-21 20:41:31 -07:00
Marc Mueller
7dd9bfa92f Fix point by adding authlib constraint (#68176)
* Fix point by pinning authlib

* Use constraint
2022-03-21 20:41:31 -07:00
Marc Mueller
54b7f13a54 Add missing await [velbus] (#68153) 2022-03-21 20:41:30 -07:00
Michael
774f2b9b82 Respect disable_new_entities for new device_tracker entities (#68148) 2022-03-21 20:41:29 -07:00
Antonio Larrosa
bc14385317 Fix finding matrix room that is already joined (#67967)
After some debugging, it seems room.canonical_alias contains the
room alias that matches the room_id_or_alias value but is not
contained in room.aliases (which is empty). As a result, the
matrix component thought the room wasn't alread joined, joins
again, and this replaces the previous room which had the listener.
This resulted in the component callback not being called for new
messages in the room.

This fixes #66372
2022-03-21 20:41:28 -07:00
Numa Perez
9352ed1286 Fix lyric climate (#67018)
* Fixed the issues related to auto mode

I was having the same issues as described in #63403, specifically, the error stating that Mode 7 is not valid, only Heat, Cool, Off when trying to do anything while the thermostat is set to Auto. This error originates with the way the Lyric API handles the modes. Basically, when one queries the changeableValues dict, you get a mode=Auto, as well as a heatCoolMode, which is set to either Heat, Cool, Off. Per the documentation, heatCoolMode contains the "heat cool mode when system switch is in Auto mode". It would make sense that when changing the thermostat settings, mode=Auto should be valid, but it's not. The way the API understands that the mode should be set to Auto when changing the thermostat settings is by setting the autoChangeoverActive variable to true, not the mode itself. This require changes in the async_set_hvac_mode, async_set_temperature, and async_set_preset_mode functions. Related to this issue, I got rid of the references to hasDualSetpointStatus, as it seems that it always remains false in the API, even when the mode is set to auto, so again, the key variable for this is autoChangeoverActive.

While I was working on this I also noticed another issue. The support flag SUPPORT_TARGET_TEMPERATURE_RANGE had not been included, which did not allow for the temperature range to be available, thus invalidating the target_temperature_low and target_temperature_high functions. I added this flag and sorted out which set point (heat vs cool) should be called for each of them so things work as expected in Lovelace. I have tested all of these functionalities and they all work great on my end, so I thought I'd share.

* Update climate.py

* Update climate.py

Fixed two additional issues: 1) When the system is turned off from Auto, the heatCoolMode variable becomes 'Off', so when you try to restart the system back to Auto, nothing happens. 2) I now prevent the async_set_temperature function from being called with a new set point when the system is Off.
All changes tested and functional.

* Update climate.py

* Update climate.py

Return SUPPORT_PRESET_MODE flag only for LCC models (i.e. they have the "thermostatSetpointStatus" variable defined). TCC models do not support this feature

* Update climate.py

After playing with the official Honeywell API, I realized it doesn't like to received commands with missing data, i.e., it always wants to get a mode, coolSetpoint, heatSetpoint, and autoChangeoverActive variables. This was causing some random issues with changing modes, especially from coming from off, so I modified the async_set_temperature, and async_set_hvac_mode fuctions to always send all pertinent variables.

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Clean code and test everything

Alright, sorry for the multiple commits, fixing this properly took a fair bit of testing. I went ahead and cleaned up the code and made the following big picture changes: 
1) The integration now supports the Auto mode appropriately, to include the temperature range. 
2) There's a bug that actually manifests when using the native app. When the system is 'Off' and you try to turn it on to 'Auto', it will turn on briefly but will go back to 'Off' after a few seconds. When checking the web api, this appears to be related to the fact that the heatCoolMode variable seems to continue to store 'Off', even if the mode accurately displays 'Auto', and the autoChangeoverActive=True. So to overcome that inherent limitation, when the system is 'Off' and the user turns it to 'Auto', I first turn it to Heat, wait 3 seconds, and then turn it to 'Auto', which seems to work well.

* Update climate.py

* Fixed errors

* Fixed comments that were resulting in error.

* Update climate.py

* Update homeassistant/components/lyric/climate.py

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

* Update homeassistant/components/lyric/climate.py

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

* Update climate.py

I removed a blank line in 268 and another one at the end of the document. I also fixed the outdents of await commands after the _LOGGER.error calls, not sure what else may be driving the flake8 and black errors. Any guidance is much appreciated @MartinHjelmare

* Update climate.py

* Update climate.py

corrected some indents that I think were the culprit of the flake8 errors

* Update climate.py

I used VS Code to fix locate the flake8 errors. I ran black on it, so I'm hoping that will fix the last lingering black error.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-21 20:41:28 -07:00
Michael
70a771b6ed Respect disable_new_entities for new device_tracker entities (#68148) 2022-03-21 20:40:33 -07:00
IceBotYT
a43505a0a3 Add PECO power outage counter integration (#65194)
* Create a new NWS Alerts integration

* Create a new NWS Alerts integration

* Create new PECO integration

* Remove empty keys

* Revert "Create a new NWS Alerts integration"

This reverts commit 38309c5a87.

* Revert "Create a new NWS Alerts integration"

This reverts commit aeabdd37b8.

* Fix test with new mock data

* Add init and sensor to .coveragerc and more tests for config flow

* Small fixes and replacing patch with pytest.raises in testing invalid county

* Add type defs and fix test_config_flow to use MultipleValid instead

* Fix  issues with 'typing.Dict'

* Move API communication to seperate PyPI library

* Switch PyPI library from httpx to aiohttp to allow for passing in websessions

* Commit file changes requested by farmio as listed here: d267e4300a

* Add suggestions requested by farmio as listed here: 586d8ffa42

* Move native_unit_of_measurement from prop to attr

* Update PLATFORMS constant type annotation

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Add peco to .strict-typing

I am from school so I can't run mypy atm

* Forgot to import Final

* Do as requested [here](https://github.com/home-assistant/core/runs/5070634928?check_suite_focus=true)

* Updated mypy.ini, checks should pass now

* Fix to conform to mypy restrictions https://github.com/home-assistant/core/runs/5072861837\?check_suite_focus\=true

* Fix type annotations

* Fix tests

* Use cast in async_update_data

* Add data type to CoordinatorEntity and DataUpdateCoordinator

* More cleanup from suggestions here: https://github.com/home-assistant/core/pull/65194\#pullrequestreview-908183493

* Fix tests for new code

* Cleaning up a speck of dust

* Remove unused variable from the peco sensor

* Add rounding to percentage, and extra clean-up

* Final suggestions from @farmio

* Update SCAN_INTERVAL to be a little bit faster

* Change the SCAN_INTERVAL to be somewhat near the update interval of the outage map, as noted by farmio

* New UpdateCoordinator typing
2022-03-21 23:56:53 +01:00
Erik Montnemery
247af2e74f Improve recorder setup in tests (#68333)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-21 15:49:18 -07:00
jjlawren
653305b998 Support multiple Plex servers in media browser (#68321) 2022-03-21 15:48:44 -07:00
J. Nick Koston
16655c4ccc Fix tplink color temp conversion (#68484) 2022-03-21 12:41:15 -10:00
Tom
574f4710aa Add select platform to Plugwise (#68303)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-21 21:13:03 +01:00
J. Nick Koston
1f135a20a0 Remove extra attributes from pvoutput sensors (#68481) 2022-03-21 20:54:57 +01:00
Mike Fugate
d065475aac Bump asyncsleepiq to 1.2.0 (#68438)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-21 08:27:51 -10:00
Franck Nijhof
28d3117a88 Track number of persons in a Zone (#68473) 2022-03-21 10:41:55 -07:00
Marc Mueller
7c71beaa61 Trigger full ci run on label (#68469) 2022-03-21 16:13:19 +01:00
Franck Nijhof
c56b77f2b3 Move WLED update title to class attribute (#68470) 2022-03-21 15:51:46 +01:00
Marc Mueller
1072aff017 Update coordinator typing (1) [a-c] (#68442) 2022-03-21 15:49:39 +01:00
Franck Nijhof
40d4495ed0 Add update platform to WLED (#68454)
* Add update platform to WLED

* Copy pasta fixes

* Apply suggestions from code review

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

* Update tests/components/wled/test_update.py

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

* Fix tests

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-21 15:38:29 +01:00
Marc Mueller
129c9e42f1 Update coordinator typing (7) [w-z] (#68467) 2022-03-21 15:29:11 +01:00
Marc Mueller
539a469a8b Update coordinator typing (5) [r-s] (#68465) 2022-03-21 15:24:05 +01:00
Marc Mueller
b664bcd007 Update coordinator typing (4) [o-p] (#68464) 2022-03-21 14:45:24 +01:00
Franck Nijhof
2424564d2c Change update default entity category based on features (#68455) 2022-03-21 14:35:40 +01:00
Marc Mueller
add741d789 Update coordinator typing (6) [t-v] (#68466) 2022-03-21 14:20:35 +01:00
Marc Mueller
0d29b7cbb3 Update coordinator typing (3) [g-n] (#68463) 2022-03-21 14:14:46 +01:00
Marc Mueller
354fc4c1ae Update coordinator typing (2) [e-f] (#68462) 2022-03-21 14:13:16 +01:00
Franck Nijhof
073fb40b79 Add update entity platform (#68248)
Co-authored-by: Glenn Waters <glenn@watrs.ca>
2022-03-21 11:02:48 +01:00
Marc Mueller
830cc278d3 Improve CoordinatorEntity typing (#68441) 2022-03-21 10:22:30 +01:00
Paulus Schoutsen
3320606a1b Hue handle HTTP errors (#68396) 2022-03-21 10:16:19 +01:00
Diogo Gomes
ba814af701 Adopt SelectEntity in Utility Meter (#55690)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-21 08:21:26 +01:00
Paulus Schoutsen
3213091b8d Add integration type (#68349) 2022-03-20 20:38:13 -07:00
J. Nick Koston
4f9df1fd0f Fix logbook tests (#68443) 2022-03-20 20:34:02 -07:00
Paulus Schoutsen
929df2bc29 Improve error handling process_play_media_url (#68322) 2022-03-20 20:25:15 -07:00
Jeef
ed94cc3673 Intellifire DHCP Auto Discovery (#67053)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-20 13:51:54 -10:00
Paulus Schoutsen
8bbbd1947d Raise if referenced entity does not support service (#68394) 2022-03-20 16:01:58 -07:00
Diogo Gomes
0cbc29caca Add unique_id through YAML to the integration component (#68435) 2022-03-20 22:48:11 +01:00
Robert Hillis
40484a3483 Tweak hassfest codeowners script (#68382) 2022-03-20 22:04:55 +01:00
J. Nick Koston
3c10ac308d Fix migration to schema v25 with Postgresql (#68426) 2022-03-20 21:49:11 +01:00
Franck Nijhof
1d35b91a14 Add calendar platform to Twente Milieu (#68190)
* Add calendar platform to Twente Milieu

* Apply suggestions from code review

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

* Sorting...

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-20 20:37:01 +01:00
Aaron Bach
314154d5c5 Bump aioridwell to 2022.03.0 (#68423) 2022-03-20 19:13:52 +01:00
Baptiste Candellier
a136cf7086 Remove SmartHab integration (#67874) 2022-03-20 19:00:16 +01:00
G Johansson
89cfb4e86f Add yale_smart_alarm to strict typing (#68422)
* Add yale_smart_alarm to strict typing

* Type as Any
2022-03-20 19:50:37 +02:00
Aaron Bach
1013f77013 Bump simplisafe-python to 2022.03.0 (#68424) 2022-03-20 18:19:32 +01:00
Marc Mueller
3b798ee14a Fix pip_check (#68421) 2022-03-20 16:29:50 +01:00
Poltorak Serguei
972afc5cea Add Cover to Z-Wave.Me integration (#68233)
* Cover integration

* isort fix

* Update homeassistant/components/zwave_me/cover.py

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

* Update cover.py

* Update cover.py

* Apply suggestions from code review

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

* coveragerc for cover

* Fix position range

* Clean up

Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-20 14:50:16 +01:00
Jesse Hills
994ea04c85 Add device_id into ESPHome event data (#68408) 2022-03-20 13:14:07 +01:00
J. Nick Koston
6ffef8373b Add shutdown guard to Recorder pool in case there is no connection (#68407) 2022-03-20 01:28:44 -10:00
J. Nick Koston
3150915cb7 Convert unindexed domain queries to entity_id queries (#68404) 2022-03-20 01:28:17 -10:00
J. Nick Koston
816695cc96 Avoid selecting attributes in the history api when no_attributes is passed (#68352) 2022-03-19 23:47:22 -10:00
Garrett
a0a96dab05 Add door locks to Subaru integration (#52852)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-19 23:41:53 -10:00
Marc Mueller
e09d0b7106 Fix CI file changed filter (#68351) 2022-03-20 10:32:10 +01:00
Erik Montnemery
cf4033b1bc Simplify time zone setting in tests (#68330)
* Simplify timezone setting in tests

* Fix typo

* Adjust caldav tests

* Adjust input_datetime tests

* Adjust time_date tests

* Adjust tod tests

* Adjust helper tests

* Adjust recorder tests

* Adjust risco tests

* Adjust aemet tests

* Adjust flux tests

* Adjust forecast_solar tests

* Revert unnecessary change in forecast_solar test

* Adjust climacell tests

* Adjust google tests

* Adjust sensor tests

* Adjust sonarr tests

* Adjust template tests

* Adjust zodiac tests

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-20 10:25:15 +01:00
James Hodgkinson
dbeec1f7da Update pyaussiebb to 0.0.14 (#68293) 2022-03-20 07:35:34 +01:00
J. Nick Koston
0c0df07c52 Avoid hashing attributes when they are already in the cache (#68395) 2022-03-19 23:33:37 -07:00
Paulus Schoutsen
a91888a7f8 Don't use hass.helpers (#68393) 2022-03-19 11:39:32 -10:00
Álvaro Fernández Rojas
f1f48475f2 Add Airzone coordinator tests (#68384) 2022-03-19 11:34:52 -10:00
Paulus Schoutsen
ead81edcec Handle Hue discovery errors (#68392) 2022-03-19 14:28:16 -07:00
J. Nick Koston
7ee647cc78 Fix FOREIGN KEY constraint failed when removing state_attributes (#68364) 2022-03-19 14:21:28 -07:00
J. Nick Koston
fed447a3f4 Filter IPv6 addreses from enphase_envoy discovery (#68362) 2022-03-19 13:40:00 -07:00
Felipe Martins Diel
0df88b80e7 Bump broadlink to 0.18.1 (#68391) 2022-03-19 10:34:30 -10:00
Marcel van der Veldt
8187541d41 Hue integration: update errors that should be supressed (#68337) 2022-03-19 13:27:04 -07:00
Allen Porter
5027e1bcff Mark stream available on idle timeout (#68380)
Mark stream as available on idle timeout so that the frontend can
still interact with it. In particular, the Frontend won't interact
with camera objects that are not available e.g. from picture glance
card.

Issue #67922
2022-03-19 10:24:32 -07:00
Raman Gupta
8220817d47 Switch zwave_js redact keys from tuple to set (#68375) 2022-03-19 16:26:44 +01:00
Franck Nijhof
cca0ecc5da Update sentry-sdk to 1.5.8 (#68367) 2022-03-19 16:18:35 +02:00
Marc Mueller
126320529e Add zha typing [core.discovery] (1) (#68359)
* Add zha typing [core.discovery] (1)

* Fix circular import
2022-03-19 07:37:04 -04:00
Franck Nijhof
ce30b32add Update pytest to 7.1.1 (#68366) 2022-03-19 12:14:05 +01:00
Scott Bradshaw
b160931603 Bump python-smarttub dependency to 0.0.30 (#68356) 2022-03-19 10:45:18 +01:00
Raman Gupta
4cd4fbefbf Add new tomorrow.io integration to replace Climacell (#68156)
* Add new tomorrow.io integration to replace Climacell - Part 1/3 (#57121)

* Add new tomorrow.io integration to replace Climacell - Part 1/3

* remove unused code

* remove extra test

* remove more unused code

* Remove even more unused code

* Feedback

* clean up options flow

* clean up options flow

* tweaks and fix tests

* remove device_class from tomorrowio entity description class

* use timestep

* fix tests

* always use default name but add zone name if location is in a zone

* revert change that will go into future PR

* review comments

* move code out of try block

* bump max requests to 500 as per docs

* fix tests

* Add new tomorrow.io integration to replace Climacell - Part 2/3 (#57124)

* Add new tomorrow.io integration to replace Climacell - Part 2/3

* translations

* set config flow to false in manifest

* Cleanup more code and re-add options flow test

* fixes

* patch I/O calls

* Update tests/components/climacell/test_config_flow.py

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

* remove unused import

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

* Fix codeowners

* fix mypy and pylint

* Switch to DeviceInfo

* Fix fixture location and improve sensor entities in tomorrowio integration (#63527)

* Add new tomorrow.io integration to replace Climacell - Part 3/3 (#59698)

* Switch to DeviceInfo

* Add new tomorrow.io integration to replace Climacell - Part 1/3 (#57121)

* Add new tomorrow.io integration to replace Climacell - Part 1/3

* remove unused code

* remove extra test

* remove more unused code

* Remove even more unused code

* Feedback

* clean up options flow

* clean up options flow

* tweaks and fix tests

* remove device_class from tomorrowio entity description class

* use timestep

* fix tests

* always use default name but add zone name if location is in a zone

* revert change that will go into future PR

* review comments

* move code out of try block

* bump max requests to 500 as per docs

* fix tests

* Migrate ClimaCell entries to Tomorrow.io

* tweaks

* pylint

* Apply fix from #60454 to tomorrowio integration

* lint and mypy

* use speed conversion instead of distance conversion

* Use SensorDeviceClass enum

* Use built in conversions and remove unused loggers

* fix requirements

* Update homeassistant/components/tomorrowio/__init__.py

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

* Use constants

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

* Black

* Update logic and add coverage

* remove extra line

* Do patching correctly

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-19 08:42:22 +01:00
Raman Gupta
4578de68e7 Redact data from zwave_js diagnostics (#68348)
* Redact home ID and location from zwave_js diagnostics

* Switch to set
2022-03-19 02:46:01 -04:00
Michael Kowalchuk
e0b577f8bd Add zwave_js fan preset modes and enable them for Inovelli LZW36 (#60947)
* Rework fan data templates to support preset modes, and define data for the Inovelli LZW36

* Add tests. Add dispatching to async_set_preset_mode in async_turn_on.

* Add a test case for invalid preset modes

* Remove unintended merge artifact

* Fix indentation

* Fix merge error

* rm blank line

* Add tests for invalid fan config data, and fix an issue where this prevented the node from being added.

* Fix tests and improve error handling
2022-03-19 03:56:05 +01:00
Marc Mueller
f9dcf5afa2 Add zha typing [core.group] (#68350) 2022-03-18 22:08:19 -04:00
Franck Nijhof
171c58fed2 Rename Lovelace to Dashboards (#68346) 2022-03-18 23:29:57 +01:00
J. Nick Koston
4cc8998ea7 Make powerwall attribute sensors their own sensors (#68345) 2022-03-18 21:23:26 +01:00
Robert Hillis
619c1f014b Remove deprecated yaml config from trafikverket_weatherstation (#68336) 2022-03-18 19:33:01 +01:00
Marc Mueller
ffcc02e93d Add zha typing [api] (2) (#68335) 2022-03-18 19:06:44 +01:00
jjlawren
dbb79e2937 Add support for Sonos subwoofer gain controls (#68334) 2022-03-18 10:12:10 -07:00
Franck Nijhof
7174e7897c Update mypy to 0.941 (#68305) 2022-03-18 16:22:32 +01:00
J. Nick Koston
9864090e0b Cache parsing attr in LazyState (#68232) 2022-03-18 07:44:37 -07:00
Allen Porter
41a032e3e3 Add diagnostics to stream's Stream objects (#68020)
* Add diagnostics to stream's Stream objects

Add diagnostics key/value pair to the Stream object. Diagnostics support
in camera integration will be added in a follow up and will access the
diagnostics on the Stream object, similar to the examples in the unit
test.

* Rename to audio/video codec

* Fix test codec names

* Update tests/components/stream/test_worker.py

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: uvjustin <46082645+uvjustin@users.noreply.github.com>
2022-03-18 07:40:09 -07:00
Franck Nijhof
2686be921c Remove deprecated (old) Z-Wave integration (#67221)
* Remove deprecated (old) Z-Wave integration

* Mark migration tests as skip, for later cleanup
2022-03-18 13:09:10 +01:00
Simone Chemelli
35261a9089 Add switch platform to UptimeRobot (#65394)
* Add switch platfor mto UptimeRobot

* Add tests

* Apply review comment

* review comments part 2

* review comments part 3

* Fix tests after swapping logic on/off

* Fix reauth test

* Check for read-only key

* Fix reauth for switch platform

* mypy

* cleanup

* cleanup part 2

* Fixes + review comments

* Tests

* Apply more review comments

* Required changes

* fix test

* Remove if

* 100% tests coverage

* Check readonly key in config_flow

* Fix strings & translation

* Add guard for 'monitor' keys

* allign tests

* Wrong API key message reworded
2022-03-18 12:18:19 +01:00
Erik Montnemery
5bb271c9fb Add config flow for derivative sensor (#68268) 2022-03-18 12:14:38 +01:00
J. Nick Koston
b284eddc63 Fix statistics doing I/O in the event loop (#68315) 2022-03-18 00:49:11 -10:00
J. Nick Koston
9215702388 Separate attrs into another table (reduces database size) (#68224) 2022-03-18 00:23:13 -10:00
Erik Montnemery
d7145095ef Tweak selectors (#68267)
* Optionally don't convert output of duration and time selectors

* Allow number selector selection to be None

* Never convert output of duration and time selectors

* Revert "Allow number selector selection to be None"

This reverts commit b6f52c1e83.
2022-03-18 10:26:05 +01:00
Erik Montnemery
2fcced333d Add config flow for sun (#68295)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-18 10:12:15 +01:00
J. Nick Koston
bc862e97ed Use a dedicated executor pool for database operations (#68105)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-17 23:09:01 -10:00
Erik Montnemery
0655ebbd84 Add config flow for integration sensor (#68288) 2022-03-18 09:52:17 +01:00
epenet
f7fd781a27 Fix TypeError in SamsungTV (#68235)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-18 09:26:19 +01:00
Paulus Schoutsen
ad1e43e083 Add support for variables on trigger (#68275) 2022-03-18 09:25:22 +01:00
Marc Mueller
ad84a02b8e Add zha typing [api] (1) (#68220) 2022-03-18 09:23:52 +01:00
jjlawren
7b38f81040 Bump plexapi to 4.10.1 (#68313) 2022-03-17 22:36:58 -07:00
J. Nick Koston
95f20500ca Commit any pending changes before running non-EventTasks in the recorder (#68287) 2022-03-17 21:33:22 -07:00
Dave T
490c921763 Don't access hass.data directly in generic camera test. (#68316) 2022-03-17 14:29:21 -10:00
Zack Barett
712c9d4a4f Bump frontend to 20220317.0 (#68314) 2022-03-17 16:12:31 -07:00
Steven Looman
f006cffac6 Bump async-upnp-client to 0.27.0 (#68310) 2022-03-17 12:32:46 -10:00
jjlawren
b34da1294c Improve Plex media search failure feedback (#67493) 2022-03-17 13:57:22 -07:00
jjlawren
f75d621888 Normalize enqueuing Plex media on Sonos (#68132) 2022-03-17 13:52:59 -07:00
Malte Franken
a8dae97917 Migrate geo_json_events to async library (#68236)
* use async integration library

* migrating to async library

* migrating tests to async library

* renamed method and fixed comment

* removed callback annotation

* use async dispatcher
2022-03-17 20:40:43 +01:00
epenet
0adc7042dc Make new_token_callback more generic in SamsungTV (#67990)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-17 09:24:00 -10:00
Avi Miller
9ea73e0d90 Skip unsupported LIFX Switches during discovery (#67726)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-17 19:13:08 +01:00
Marc Mueller
8f69d31322 Make TypeVars private (3) (#68207) 2022-03-17 19:11:14 +01:00
Marc Mueller
eae0c75620 Make TypeVars private (2) (#68206) 2022-03-17 19:09:55 +01:00
Marc Mueller
be7ef6115c Make TypeVars private (1) (#68205) 2022-03-17 18:52:38 +01:00
gigatexel
a9c383a1e5 Correct naming for electrical energy meter (#68290) 2022-03-17 18:50:18 +01:00
Erik Montnemery
ead5b3e2c0 Improve strings for helper flow scaffold (#68257) 2022-03-17 13:14:38 +01:00
Marc Mueller
81d001bcdc Remove duplicate (partial) pytest job (#68221) 2022-03-17 12:57:36 +01:00
Joakim Plate
6069d26800 Rename root media folder to integration name (#68213) 2022-03-17 11:13:46 +01:00
Joakim Plate
4e21757b75 Rename root node to integration name (#68214) 2022-03-17 11:13:03 +01:00
Myles Eftos
38d8332e92 Add amberelectric price descriptors (#67981)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-17 10:15:47 +01:00
wchan-ranelagh
fc693001a1 Change default timeout for operations in SNMP component (#68230) 2022-03-17 10:10:46 +01:00
Paulus Schoutsen
aabfa08834 Add if subscription is active to cloud status (#68266) 2022-03-17 09:51:07 +01:00
epenet
d021222d6d Bump renault-api to 0.1.10 (#68260)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-17 09:51:03 +02:00
epenet
d6f5f0c794 Bump samsungtvws to 2.4.0 (#68225)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-16 20:44:14 -10:00
Zack Barett
3ecc914f29 20220316.0 (#68276) 2022-03-16 16:40:24 -07:00
Raman Gupta
15d9233c77 Bump PyNaCl to 1.5.0 (#68226) 2022-03-16 23:30:04 +01:00
Paulus Schoutsen
f6af93ae35 Add support for menu step (#68203) 2022-03-16 14:14:50 -07:00
d6e
aa57907c18 Improve logging for Discord integration (#68160) 2022-03-16 21:16:38 +01:00
jjlawren
d8c966fd0a Fix Spotify podcasts & Plex allow_multiple on Sonos (#68131)
* Bump soco to 0.27.0

* Bump soco to 0.27.1
2022-03-16 17:35:31 +01:00
Hans Oischinger
2c8bf006eb Fix precision of vicare target & current temperature (#66456) 2022-03-16 13:14:11 +01:00
Erik Montnemery
f0dba8ec70 Add scaffold for helper integration config flow (#67803) 2022-03-16 12:57:56 +01:00
Franck Nijhof
aa82f96c16 Use Platform StrEnum in Hassfest manifest plugin (#68234) 2022-03-16 11:21:51 +01:00
Álvaro Fernández Rojas
62c4fed549 Update aioairzone to v0.1.0 (#68194) 2022-03-16 10:44:06 +01:00
Paulus Schoutsen
984e30075b Validate TTS base url (#68212)
* Validate TTS base url

* Update tests/components/tts/test_init.py

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

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-03-16 10:18:55 +01:00
Francois Chagnon
21aa07e3e5 Add Z-Wave thermostat fan entity (#65865)
* Add Z-Wave thermostat fan entity

* Fix failing test, increase number of entities to 27

* Add tests to improve coverage

* Take back unrelated changes to climate.py

* Clean up guard clauses, use info.primary_value, and make entity disabled by default

* Fix tests

* Add more tests for code coverage

* Remove unused const

* Remove speed parameter from overridden method since it was removed from entity

* Address PR comments
2022-03-15 22:17:51 -04:00
J. Nick Koston
4b963c2ac0 Add diagnostics support to nexia (#68215) 2022-03-15 15:55:08 -10:00
Jeef
484f723875 IntelliFire Diagnostic Error Sensor (#67403)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-15 12:52:19 -10:00
Joakim Sørensen
6f61ed8799 Add backup platform support (#68182) 2022-03-15 14:46:02 -07:00
Antonio Larrosa
2aaeb1fa99 Fix finding matrix room that is already joined (#67967)
After some debugging, it seems room.canonical_alias contains the
room alias that matches the room_id_or_alias value but is not
contained in room.aliases (which is empty). As a result, the
matrix component thought the room wasn't alread joined, joins
again, and this replaces the previous room which had the listener.
This resulted in the component callback not being called for new
messages in the room.

This fixes #66372
2022-03-15 22:33:59 +01:00
J. Nick Koston
65c670c2c7 Add diagnostics to august (#68157) 2022-03-15 19:05:56 +01:00
Franck Nijhof
ed24638201 Update SMA config entry when unique ID already configured (#68179) 2022-03-15 19:51:33 +02:00
Robert Svensson
4bb52297a6 Replace hass helper calls in deCONZ device trigger tests (#68197) 2022-03-15 18:51:12 +01:00
Erik Montnemery
46f27fdefd Don't prevent automations from triggering themselves (#68178) 2022-03-15 18:48:54 +01:00
Erik Montnemery
b99934f62f Small tweaks of group tests (#68196) 2022-03-15 18:39:18 +01:00
Erik Montnemery
f026245cb4 Small tweaks of switch_as_x tests (#68195) 2022-03-15 18:34:46 +01:00
Robert Hillis
0c4efae31f Clean up twitch (#67595) 2022-03-15 18:33:16 +01:00
leranp
668e0c19a2 Bump gTTS to 2.2.4 (#68180)
* Update gTTS to 2.2.4

* ADD Hebrew language

* Update requirements_all.txt

* Update requirements_test_all.txt

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-03-15 19:23:39 +02:00
Franck Nijhof
c5a8e9d59c Update opensensemap-api to 0.2.0 (#68193) 2022-03-15 19:14:07 +02:00
Erik Montnemery
d360ac91ca Disable recorder nightly jobs in tests (#68188) 2022-03-15 09:23:52 -07:00
Erik Montnemery
34eb4aa2d0 Exclude hidden entities from targets (#68149) 2022-03-15 08:42:22 -07:00
Erik Montnemery
8ea31cea3a Fix deadlock when stopping queued script (#68175) 2022-03-15 08:29:04 -07:00
Marc Mueller
cdd23abea7 Add missing await [velbus] (#68153) 2022-03-15 15:57:36 +01:00
Marc Mueller
aabf46b1b3 Fix point by adding authlib constraint (#68176)
* Fix point by pinning authlib

* Use constraint
2022-03-15 15:56:08 +01:00
Marc Mueller
db4b69663f Fix met TypeVar usage (#68152)
* Fix met TypeVar usage

* Change format_condition
2022-03-15 15:53:40 +01:00
Erik Montnemery
1a27025793 Prevent spawning script runs when shutting down (#68170) 2022-03-15 12:46:58 +01:00
Franck Nijhof
f7cb10e2f5 Update twentemilieu to 0.6.0 (#68171) 2022-03-15 12:05:15 +01:00
Franck Nijhof
fabcdf7498 Update flake8-comprehensions to 3.8.0 (#68164) 2022-03-15 11:06:13 +01:00
Numa Perez
fa1394ff47 Fix lyric climate (#67018)
* Fixed the issues related to auto mode

I was having the same issues as described in #63403, specifically, the error stating that Mode 7 is not valid, only Heat, Cool, Off when trying to do anything while the thermostat is set to Auto. This error originates with the way the Lyric API handles the modes. Basically, when one queries the changeableValues dict, you get a mode=Auto, as well as a heatCoolMode, which is set to either Heat, Cool, Off. Per the documentation, heatCoolMode contains the "heat cool mode when system switch is in Auto mode". It would make sense that when changing the thermostat settings, mode=Auto should be valid, but it's not. The way the API understands that the mode should be set to Auto when changing the thermostat settings is by setting the autoChangeoverActive variable to true, not the mode itself. This require changes in the async_set_hvac_mode, async_set_temperature, and async_set_preset_mode functions. Related to this issue, I got rid of the references to hasDualSetpointStatus, as it seems that it always remains false in the API, even when the mode is set to auto, so again, the key variable for this is autoChangeoverActive.

While I was working on this I also noticed another issue. The support flag SUPPORT_TARGET_TEMPERATURE_RANGE had not been included, which did not allow for the temperature range to be available, thus invalidating the target_temperature_low and target_temperature_high functions. I added this flag and sorted out which set point (heat vs cool) should be called for each of them so things work as expected in Lovelace. I have tested all of these functionalities and they all work great on my end, so I thought I'd share.

* Update climate.py

* Update climate.py

Fixed two additional issues: 1) When the system is turned off from Auto, the heatCoolMode variable becomes 'Off', so when you try to restart the system back to Auto, nothing happens. 2) I now prevent the async_set_temperature function from being called with a new set point when the system is Off.
All changes tested and functional.

* Update climate.py

* Update climate.py

Return SUPPORT_PRESET_MODE flag only for LCC models (i.e. they have the "thermostatSetpointStatus" variable defined). TCC models do not support this feature

* Update climate.py

After playing with the official Honeywell API, I realized it doesn't like to received commands with missing data, i.e., it always wants to get a mode, coolSetpoint, heatSetpoint, and autoChangeoverActive variables. This was causing some random issues with changing modes, especially from coming from off, so I modified the async_set_temperature, and async_set_hvac_mode fuctions to always send all pertinent variables.

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Clean code and test everything

Alright, sorry for the multiple commits, fixing this properly took a fair bit of testing. I went ahead and cleaned up the code and made the following big picture changes: 
1) The integration now supports the Auto mode appropriately, to include the temperature range. 
2) There's a bug that actually manifests when using the native app. When the system is 'Off' and you try to turn it on to 'Auto', it will turn on briefly but will go back to 'Off' after a few seconds. When checking the web api, this appears to be related to the fact that the heatCoolMode variable seems to continue to store 'Off', even if the mode accurately displays 'Auto', and the autoChangeoverActive=True. So to overcome that inherent limitation, when the system is 'Off' and the user turns it to 'Auto', I first turn it to Heat, wait 3 seconds, and then turn it to 'Auto', which seems to work well.

* Update climate.py

* Fixed errors

* Fixed comments that were resulting in error.

* Update climate.py

* Update homeassistant/components/lyric/climate.py

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

* Update homeassistant/components/lyric/climate.py

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

* Update climate.py

I removed a blank line in 268 and another one at the end of the document. I also fixed the outdents of await commands after the _LOGGER.error calls, not sure what else may be driving the flake8 and black errors. Any guidance is much appreciated @MartinHjelmare

* Update climate.py

* Update climate.py

corrected some indents that I think were the culprit of the flake8 errors

* Update climate.py

I used VS Code to fix locate the flake8 errors. I ran black on it, so I'm hoping that will fix the last lingering black error.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-15 10:59:18 +01:00
Robert Svensson
283f4555a4 Fix deconz typing (#68143) 2022-03-15 10:51:26 +01:00
Marc Mueller
376ac1bd83 Don't import TypeVars from core modules (#68154) 2022-03-15 09:30:55 +01:00
Marc Mueller
7ab9e5cf0f Improve sonos error decorator typing (#67199) 2022-03-15 09:24:52 +01:00
Tom
66f506557f Prevent adding plugwise products used as secondary controllers (#68098)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-03-15 08:53:53 +01:00
Per Öberg
7615f138d9 Clean up code for onewire config flow (#67970)
* Change debug level of integration reload after config update to debug

* Remove extra .keys() call for dict itreation

* Remove unecessary type check

* Remove unused LOGGER reference
2022-03-15 08:26:54 +01:00
Marc Mueller
ef71ab04ad Remove unused TypeVars (#68155) 2022-03-15 08:24:13 +01:00
epenet
125ab5eb2b Handle ConnectionClosed in SamsungTV try_connect (#68125)
* Handle ConnectionClosed in SamsungTV try_connect

* Add tests

* Add quotes around the error message

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-15 08:20:24 +01:00
Paulus Schoutsen
b1153720c0 Merge pull request #68159 from home-assistant/rc 2022-03-15 00:11:48 -07:00
Allen Porter
7876ffe9e3 Update google calendar integration with a config flow (#68010)
* Convert google calendar to config flow and async

* Call correct exchange method

* Fix async method and reduce unnecessary diffs

* Wording improvements

* Reduce unnecessary diffs

* Run load/update config from executor

* Update homeassistant/components/google/calendar.py

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

* Remove unnecessary updating of unexpected multiple config entries.

* Remove unnecessary unique_id checks

* Improve readability with comments about device code expiration

* Update homeassistant/components/google/calendar.py

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

* Update homeassistant/components/google/calendar.py

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

* Update homeassistant/components/google/api.py

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

* Add comment for when code is none on timeout

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-15 07:51:02 +01:00
Franck Nijhof
27d275e6f7 Fix Efergy tests (#68086) 2022-03-14 23:22:59 -07:00
Paulus Schoutsen
1191c095f8 Bumped version to 2022.3.5 2022-03-14 22:46:08 -07:00
Jan Bouwhuis
b86d115764 Fix MQTT false positive deprecation warnings (#68117) 2022-03-14 22:45:53 -07:00
Frank
479a230da7 Update home_connect to 0.7.0 (#68089) 2022-03-14 22:45:52 -07:00
J. Nick Koston
7aecd69e3b Bump pyisy to 3.0.5 (#68069)
* Bump pyisy to 3.0.4

- Fixes #66003

- Changelog: https://github.com/automicus/PyISY/compare/v3.0.1...v3.0.4

* again
2022-03-14 22:45:52 -07:00
Sean Vig
69587dd50a Bump amcrest version to 1.9.7 (#68055) 2022-03-14 22:45:51 -07:00
Christopher Thornton
6d8bd6af4d Default somfy_mylink shade's _attr_is_closed to None (#68053)
The base `Cover` entity requires an explicit value for
`_attr_is_closed`.

Since the `SomfyShade` is an assumed state, we don't know
by default whether the shade is open or not, so we need to
explicitly return `None` for `_attr_is_closed`
2022-03-14 22:45:50 -07:00
Shay Levy
31b19e09b5 Fix Shelly EM/3EM invalid energy value after reboot (#68052) 2022-03-14 22:45:49 -07:00
Sean Vig
a42ba9e10a Fix turning amcrest camera on and off (#68050) 2022-03-14 22:45:49 -07:00
J. Nick Koston
a285478cf8 Filter IPv6 addresses from doorbird discovery (#68031) 2022-03-14 22:45:48 -07:00
Benjamin
4988c4683c Bump volkszahler to 0.3.2 (#67958)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-03-15 00:33:08 +01:00
Erik Montnemery
f134219c74 Minor tweak of config entity_registry test (#68141) 2022-03-14 23:07:52 +01:00
J. Nick Koston
9d6e1ab0e5 Ensure flux_led is reloaded when the title changes (#68146) 2022-03-14 22:55:52 +01:00
J. Nick Koston
59c4c75915 Ensure WiZ is reloaded on title change (#68147) 2022-03-14 22:52:27 +01:00
Paulus Schoutsen
a9fd744247 Add media source support to unifiprotect (#67570) 2022-03-14 10:16:22 -10:00
Erik Montnemery
7fc0ffd5c5 Restore state of trigger based template binary sensor (#67538) 2022-03-14 12:28:55 -07:00
Franck Nijhof
86abb85efa Update pytest-xdist to 2.5.0 (#68135) 2022-03-14 20:17:36 +01:00
Paulus Schoutsen
a109889f13 Add media source support to openhome (#67566) 2022-03-14 12:14:21 -07:00
Erik Montnemery
314175135f Hide switch_as_x tracked entity (#67949)
* Hide switch_as_x tracked entity

* Hide wrapped switch during config flow

* Allow setting/getting entity disabled by via WS

* Adjust tests

* Improve test coverage

* Improve tests
2022-03-14 19:39:07 +01:00
J. Nick Koston
8a8d7741d5 Fix Magic Home devices with multiple network interfaces (#68029) 2022-03-14 19:38:54 +01:00
Gido
0e602dd390 Bump Rova to 0.3.0 (#67688) 2022-03-14 19:37:34 +01:00
Robert Svensson
bff91b170f Complete typing of some platforms of deCONZ integration (#67494) 2022-03-14 19:34:05 +01:00
Shay Levy
2a538f6ae1 Downgrade SSDP failed to setup listener warning to debug (#68129) 2022-03-14 19:14:45 +01:00
Franck Nijhof
ed6466f706 Add Lock platform to Switch as X (#68123)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-14 10:45:45 -07:00
Zack Barett
c95d55e6d6 20220301.2 (#68130) 2022-03-14 10:07:58 -07:00
Robert Svensson
4506d45345 Add typing of deconz_event (#67497) 2022-03-14 17:40:58 +01:00
Mike Fugate
1bb0f52814 Set isolated_build = True for tox (#67238) 2022-03-14 17:38:40 +01:00
Robert Svensson
362191a0e6 Add typing of deCONZ device_trigger (#67496) 2022-03-14 17:37:48 +01:00
Sean Vig
38306417ad Bump amcrest version to 1.9.7 (#68055) 2022-03-14 17:36:16 +01:00
Franck Nijhof
57c33a5cf0 Remove deprecated OpenZWave integration (#68054) 2022-03-14 17:33:04 +01:00
epenet
c0860931b3 Fix WebSocketTimeoutException in SamsungTV (#68114)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-14 09:32:14 -07:00
Franck Nijhof
344537d0a8 Add Fan platform to Switch as X (#68122) 2022-03-14 15:07:21 +01:00
Franck Nijhof
ed6c86a281 Add siren platform to Switch as X (#68118)
* Add siren platform to Switch as X

* Clarify inline test documentation

* Clarify inline test documentation
2022-03-14 13:55:06 +01:00
Jan Bouwhuis
c8fb86a8ed Fix MQTT false positive deprecation warnings (#68117) 2022-03-14 12:39:44 +01:00
Franck Nijhof
c70c699af0 Add cover platform to Switch as X (#68107) 2022-03-14 11:59:55 +01:00
Franck Nijhof
6aacaa744e Only create WLED current sensors when available (#68116) 2022-03-14 11:49:16 +01:00
Franck Nijhof
a29afc3731 Clean up Whois tests use entity_registry_enabled_by_default fixture (#68113) 2022-03-14 11:41:56 +01:00
Franck Nijhof
fb703ddc5d Update pyupgrade to v2.31.1 (#68110) 2022-03-14 11:36:34 +01:00
Franck Nijhof
6b36ada4ec Update pytest to 7.1.0 (#68108) 2022-03-14 11:35:19 +01:00
Franck Nijhof
dfdf5f2583 Add fixture for enabling disabled entities in WLED tests (#68087) 2022-03-14 09:50:55 +01:00
Jeef
cea21a00b3 Add intellifire UDP discovery at configuration start (#67002)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-13 20:58:55 -10:00
G Johansson
8e76948297 Add binary_sensor platform for Sensibo (#68088) 2022-03-13 20:58:34 -10:00
J. Nick Koston
b18096fc54 Remove unused columns from states/events tables (#68078) 2022-03-13 23:44:55 -07:00
G Johansson
a6c189b450 Add Pure devices to Sensibo (#67695) 2022-03-13 14:30:37 -10:00
GitHub Action
65821f9492 [ci skip] Translation update 2022-03-14 00:21:06 +00:00
Franck Nijhof
276d795bf7 Remove unused types for emoji (#68091) 2022-03-14 00:10:40 +02:00
Dmitry Kosenkov
0b1663b150 Update slixmpp to 1.8.0.1 (#68080)
fix for python 3.10
2022-03-13 19:40:09 +01:00
Tom
b138a759b6 Update plugwise module to 0.16.8 (#68082) 2022-03-13 19:37:59 +01:00
Franck Nijhof
cc046e64f5 Update freezegun to 1.2.0 (#68090) 2022-03-13 19:36:36 +01:00
Franck Nijhof
25f2e4bd99 Small improvements for Switch as X (#68079)
* Small improvements forr Switch as X

* Test improvements

* Remove intregration tests from config flow test
2022-03-13 19:34:02 +01:00
Mike Fugate
4ea921e57a Clean up SleepIQ migration (#68092) 2022-03-13 17:27:45 +01:00
J. Nick Koston
bfb8765752 Bump pyisy to 3.0.5 (#68069)
* Bump pyisy to 3.0.4

- Fixes #66003

- Changelog: https://github.com/automicus/PyISY/compare/v3.0.1...v3.0.4

* again
2022-03-13 16:33:55 +02:00
Franck Nijhof
c35aaef980 Fix Efergy tests (#68086) 2022-03-13 16:32:56 +02:00
Frank
334fa33fab Update home_connect to 0.7.0 (#68089) 2022-03-13 16:31:57 +02:00
Franck Nijhof
693e9caa32 Update wled to 0.13.1 (#68084) 2022-03-13 14:03:52 +02:00
Franck Nijhof
f5e43d99e4 Update google-cloud-texttospeech to 2.11.0 (#68076) 2022-03-12 22:54:41 -10:00
Franck Nijhof
89cf914d3f Update sentry-sdk to 1.5.7 (#68077) 2022-03-12 22:54:23 -10:00
Franck Nijhof
36acb09cae Update sqlalchemy to 1.4.32 (#68075) 2022-03-12 22:52:47 -10:00
Franck Nijhof
cd3f931ded Add base entity to Switch as X (#68057) 2022-03-13 00:04:00 -08:00
Christopher Thornton
4ea0f7d321 Default somfy_mylink shade's _attr_is_closed to None (#68053)
The base `Cover` entity requires an explicit value for
`_attr_is_closed`.

Since the `SomfyShade` is an assumed state, we don't know
by default whether the shade is open or not, so we need to
explicitly return `None` for `_attr_is_closed`
2022-03-13 08:46:35 +01:00
Allen Porter
d4d47faabb Update google-cloud-pubsub to 2.11.0 (#68074) 2022-03-13 08:04:08 +01:00
Brandon Rothweiler
0bd65db31c Add switch platform to the Mazda integration (#68025) 2022-03-12 16:32:35 -10:00
GitHub Action
c64b4d997b [ci skip] Translation update 2022-03-13 00:18:58 +00:00
Steve Easley
a2ce395fc6 Add remote platform to Kaleidescape integration (#67959) 2022-03-12 14:10:45 -10:00
Paulus Schoutsen
a911139c08 Bump frontend to 20220312.0 (#68061) 2022-03-12 15:05:31 -08:00
Mike Fugate
e59bf4f3af Migrate SleepIQ unique IDs that are using sleeper name instead of sleeper ID (#68062) 2022-03-12 12:54:26 -10:00
Paulus Schoutsen
a902f0ee53 Fix switch light adding itself to devices (#68060) 2022-03-12 13:53:40 -08:00
J. Nick Koston
ea6da674df Remove unneeded permissions check from subscribe entities (#68044) 2022-03-12 13:30:27 -08:00
G Johansson
03a155af83 Add sensors to Sensibo for motion sensor (#67748) 2022-03-12 10:45:24 -10:00
Shay Levy
eccf8c76fd Fix Shelly EM/3EM invalid energy value after reboot (#68052) 2022-03-12 22:21:45 +02:00
Mike Fugate
6831be67f4 Add number entities to control SleepIQ actuator positions (#67770) 2022-03-12 09:58:03 -10:00
J. Nick Koston
8e3454e46a Remove legacy compatiblity for camera platforms that do not support width/height (#68039)
- async_camera_image or camera_image must accept the width and
  height arguments
2022-03-12 20:47:14 +02:00
Sean Vig
6124081ddc Fix turning amcrest camera on and off (#68050) 2022-03-12 20:42:28 +02:00
Jesse Hills
de31e576b7 Bump python-juicenet to 1.1.0 (#67992) 2022-03-12 19:52:41 +02:00
Shay Levy
083d51a727 Cleanup - move Shelly logger to const (#68046) 2022-03-12 14:43:57 +02:00
jan iversen
1a79118600 Fix modbus reload service (#68040)
* Fix modbus reload service.

* Please coverage.

* Resolve difference between local pytest and github.
2022-03-12 14:12:38 +02:00
J. Nick Koston
a851921fe6 Filter IPv6 addresses from doorbird discovery (#68031) 2022-03-12 02:09:02 -10:00
J. Nick Koston
68310a426b Small code quality improvements for subscribe_entities (#68026) 2022-03-12 02:07:01 -10:00
Franck Nijhof
0070e27c04 Remove deprecated PCAL9535A I/O Expander integration (#67274) 2022-03-12 04:05:22 -08:00
Franck Nijhof
2bb5573ddc Remove deprecated PiFace Digital I/O (PFIO) integration (#67282) 2022-03-12 04:04:46 -08:00
Davor Val Vega
d41eeaa88b Add Home Connect pre-rinse capability for a dishwasher (#63536) 2022-03-12 12:38:43 +01:00
Franck Nijhof
0467dc55fe Add config flow to Uptime (#67408) 2022-03-12 12:36:08 +01:00
epenet
23b8229143 Adjust ms.remote.control error logging in SamsungTV (#67988)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-12 01:20:04 -10:00
J. Nick Koston
0d8f649bd6 Websocket api to subscribe to entities (payloads reduced by ~80%+ vs state_changed events) (#67891) 2022-03-11 20:54:49 -08:00
Robert Svensson
6526b4eae5 Add typing to deconz_device (#67501) 2022-03-11 20:35:25 -08:00
Hmmbob
c8351387d7 Print client error in rest_command (#67900) 2022-03-11 20:34:06 -08:00
Joakim Sørensen
c5800d6103 Split out sync functions in backup manager (#67428) 2022-03-11 20:32:05 -08:00
J. Nick Koston
d3deae6288 Fix typing on Context.user_id (#68019) 2022-03-11 20:31:03 -08:00
Robert Hillis
09944d936d Clean up Efergy (#67755)
* Clean up Efergy

* tweak
2022-03-11 20:29:18 -08:00
Joakim Plate
09a85d2a5d Add basic rfxtrx diagnostics (#67671)
* Add basic rfxtrx diagnostics

* Skip diagnostics for coverage
2022-03-11 20:27:08 -08:00
starkillerOG
03ec77fb62 Motion blinds support direct wifi blinds (#67372)
* bump motionblinds to 0.6.0

* fix unknown type

* fix name for wifi direct blinds

* push motionblinds to 0.6.1

* fix RSSI sensor

* Do not add singnal sensor twice for direct WiFi blinds

* fix device registry

* fix typo

* missing import

* fix styling

* fix spelling
2022-03-11 20:13:46 -08:00
Brandon Rothweiler
5d2a65bb21 Add binary sensors to Mazda integration (#64604) 2022-03-11 16:32:47 -10:00
G Johansson
c4b3e2b9cd Add select entity to Sensibo (#67741) 2022-03-11 16:23:24 -10:00
Paulus Schoutsen
898af3e04c Merge pull request #68001 from home-assistant/rc 2022-03-11 17:11:03 -08:00
GitHub Action
dc31f420ed [ci skip] Translation update 2022-03-12 00:17:47 +00:00
jjlawren
80ff497cfc Rework available Sonos sources (#67931) 2022-03-11 15:57:57 -08:00
Marc Mueller
41df798375 Bump mypy to 0.940 (#68007) 2022-03-11 15:57:38 -08:00
Diogo Gomes
3de341099f Bump pymediaroom (#68016) 2022-03-11 15:45:40 -08:00
Diogo Gomes
380f04277e Bump pymediaroom (#68016) 2022-03-11 15:45:29 -08:00
jan iversen
d2e5c85429 Remove pragma from discover check. (#68002) 2022-03-11 19:58:18 +02:00
Paulus Schoutsen
7fb76c68bb Bumped version to 2022.3.4 2022-03-11 09:25:55 -08:00
Guido Schmitz
7de5e070fb Bump pysabnzbd to 1.1.1 (#67971) 2022-03-11 09:24:50 -08:00
Tom Harris
1bfb01e0d1 Rollback pyinsteon (#67956) 2022-03-11 09:24:50 -08:00
Erik Montnemery
ca664ab5a5 Correct local import of paho-mqtt (#67944)
* Correct local import of paho-mqtt

* Remove MqttClientSetup.mqtt class attribute

* Remove reference to MqttClientSetup.mqtt
2022-03-11 09:24:49 -08:00
Franck Nijhof
5a39e63d25 Update radios to 0.1.1 (#67902) 2022-03-11 09:24:48 -08:00
Joakim Plate
c608cafebd Make sure blueprint cache is flushed on script reload (#67899) 2022-03-11 09:24:47 -08:00
Shay Levy
07e70c81b0 Fix shelly duo scene restore (#67871) 2022-03-11 09:24:46 -08:00
J. Nick Koston
cad397d6a7 Add missing callback decorator to sun (#67840) 2022-03-11 09:24:45 -08:00
Raman Gupta
c22af2c82a Bump zwave-js-server-python to 0.35.2 (#67839) 2022-03-11 09:24:45 -08:00
Richard de Boer
f5b6d93706 Support playing local "file" media on Kodi (#67832)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-11 09:24:44 -08:00
cheng2wei
28b3edf6b2 Fix discord embed class initialization (#67831) 2022-03-11 09:24:43 -08:00
Guido Schmitz
4de59b065a Bump pysabnzbd to 1.1.1 (#67971) 2022-03-11 09:24:08 -08:00
jan iversen
306498378c Coverage 100% of Modbus climate (#67396)
* Coverage 100% of climate.py

* Allow 100% test.
2022-03-11 19:14:40 +02:00
Artem Draft
bc2aaedcec Add DeviceClass TV to LG Netcast (#67999) 2022-03-11 17:59:45 +01:00
Paulus Schoutsen
49b642a6ba Log device IP sending local msg (#67987) 2022-03-11 07:50:44 -08:00
Erik Montnemery
8948bada58 Add switch_as_x entity to wrapped switch's device (#67961) 2022-03-11 09:46:32 +01:00
GitHub Action
66d757115c [ci skip] Translation update 2022-03-11 00:21:48 +00:00
Erik Montnemery
e43c8b513e Listen to entity registry events for wrapped switch in switch_as_x (#67962)
* Listen to entity registry events for wrapped switch in switch_as_x

* Simplify test
2022-03-10 21:26:35 +01:00
Thomas Schamm
62e3563752 Bumped to boschshcpy==0.2.30 (#67965) 2022-03-10 20:43:43 +02:00
Erik Montnemery
65fbcfa0ba Prevent recursive script calls from deadlocking (#67861)
* Prevent recursive script calls from deadlocking

* Address review comments, improve tests

* Tweak comment
2022-03-10 19:28:00 +01:00
Erik Montnemery
3d212b868e Address review comments on switch_as_x tests (#67951)
* Address review comments on switch_as_x tests

* Correct test

* Move test instead of duplicating it
2022-03-10 17:23:16 +01:00
Tom Harris
14b5847da8 Rollback pyinsteon (#67956) 2022-03-10 17:50:36 +02:00
Erik Montnemery
ee38dbd698 Add helper to set name of helper config entries (#67950) 2022-03-10 16:18:26 +01:00
Erik Montnemery
4e7d4db7ae Align selectors with frontend updates (#67906)
* Align selectors with frontend updates

* Drop metadata from MediaSelector selection

* Adjust blueprint tests

* Address review comments

* Add tests for new selectors

* Don't stringify input

* Require min+max for number selector in slider mode

* vol.Schema does not like static methods

* Tweak
2022-03-10 16:17:59 +01:00
Steve Easley
ab4aa835d1 Add sensor platform to Kaleidescape (#67884) 2022-03-10 09:15:53 -06:00
Steve Easley
245f55edf4 Removed unused const (#67932) 2022-03-10 08:30:11 -06:00
epenet
86b775e46a Use generic SamsungTVBridge for SamsungTV type hints (#67942)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-10 07:48:30 -06:00
Erik Montnemery
cb7e492e81 Add switch_as_x integration (#67878)
* Add switch_as_x integration

* Address review comments

* Add translation strings

* Rename entity_type option to target_domain

* Move LightSwitch class definition to switch_as_x/light.py

* Update manifest

* Move tests
2022-03-10 12:23:01 +01:00
Erik Montnemery
5ae48bcf74 Add config flow for binary_sensor group (#67802)
* Add config flow for binary_sensor group

* Address review comments

* Remove device class selection from flow

* Update translation strings
2022-03-10 10:39:51 +01:00
Erik Montnemery
e5523ef6b6 Correct local import of paho-mqtt (#67944)
* Correct local import of paho-mqtt

* Remove MqttClientSetup.mqtt class attribute

* Remove reference to MqttClientSetup.mqtt
2022-03-10 10:32:49 +01:00
Kevin Stillhammer
f803c880ae Correct type for convert_time_to_isodate (#67846) 2022-03-10 07:21:22 +01:00
GitHub Action
d0afc31063 [ci skip] Translation update 2022-03-10 00:17:10 +00:00
J. Nick Koston
aaeaed4117 Compatibility for "device_state_attributes" which was deprecated in 2021.4 has been removed (#67837)
* Small performance tweaks to _async_write_ha_state

- Only call self.available once per cycle

- Only call self.device_state_attributes once per update cycle

- Do not check for device_state_attributes if extra_state_attributes is not None

* drop backcompat

* remove prop
2022-03-09 21:39:43 +01:00
Álvaro Fernández Rojas
542c3cbf90 Address late Airzone PR comments and fix Fahrenheit temperatures (#67904)
* airzone: address late PR comments

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

* airzone: fix fahrenheit temperatures

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

* airzone: add changes suggested by @MartinHjelmare

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-03-09 20:51:39 +01:00
Marc Mueller
cc11562fa2 Bump volvooncall to 0.10.0 (#67918) 2022-03-09 21:31:27 +02:00
Franck Nijhof
9f12ee7b2d Update radios to 0.1.1 (#67902) 2022-03-09 11:22:10 -08:00
Joakim Plate
251691f5b7 Make sure blueprint cache is flushed on script reload (#67899) 2022-03-09 11:21:31 -08:00
Shay Levy
eee0c5372c Use import instead of hass in Shelly tests (#67909) 2022-03-09 19:29:20 +01:00
Erik Montnemery
e02c21a4de Remove unused constant from group (#67910) 2022-03-09 16:45:09 +01:00
Franck Nijhof
a8ad9fc5f4 Mock Radio Browser entry setup in onboarding tests (#67905) 2022-03-09 06:41:14 -08:00
escoand
3dc100e816 Removing myself from Samsung TV codeowners (#67903) 2022-03-09 14:42:00 +01:00
Erik Montnemery
e7fba46a06 Refactor helper_config_entry_flow (#67895) 2022-03-09 13:18:19 +01:00
Raman Gupta
2791cd68c2 Timer code cleanup (#67604) 2022-03-09 10:42:07 +01:00
J. Nick Koston
723dcbafca Complete fan speed transition from #59781 (#67743) 2022-03-09 10:38:12 +01:00
Poltorak Serguei
c6952a0ee3 Add Siren to Z-Wave.Me integration (#67200)
* Siren integration

* Clean up

Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-09 09:09:29 +01:00
cheng2wei
36385396b0 Fix discord embed class initialization (#67831) 2022-03-08 20:01:00 -08:00
Brandon Rothweiler
2fc100926f Add button entities to Mazda integration (#67597) 2022-03-09 04:16:07 +01:00
GitHub Action
6af9c897e4 [ci skip] Translation update 2022-03-09 00:19:01 +00:00
Álvaro Fernández Rojas
8549e31b27 Add Airzone HVAC Zoning Systems (#67666) 2022-03-08 22:28:39 +01:00
epenet
9ab56bd5c8 Allow discovery to update invalid unique_id in SamsungTV (#67859)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 22:27:53 +01:00
Allen Porter
8adcd10f55 Make google calendar loading API centric, not loading from yaml (#67722)
* Make google calendar loading API centric, not loading from yaml

Update the behavior for google calendar to focus on loading calendars based on the
API and using the yaml configuration to override behavior. The old behavior was
to first load from yaml, then also load from the API, which is atypical.

This is pulled out from a larger change to rewrite calendar using async and config
flows.

Tests needed to be updated to reflect the new API centric behavior, and changing
the API call ordering required changing tests that exercise failures.

* Update to use async_fire_time_changed to invoke updates
2022-03-08 21:56:49 +01:00
Shay Levy
98256746d3 Fix shelly duo scene restore (#67871) 2022-03-08 09:56:57 -08:00
Richard de Boer
7323ad2799 Support playing local "file" media on Kodi (#67832)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-08 07:56:15 -08:00
uvjustin
accc4fda28 Bump PyAV to v9.0.0 (#67848) 2022-03-08 07:53:17 -08:00
Jan Bouwhuis
e574a3ef1d Add MQTT notify platform (#64728)
* Mqtt Notify service draft

* fix updates

* Remove TARGET config parameter

* do not use protected attributes

* complete tests

* device support for auto discovery

* Add targets attribute and support for data param

* Add tests and resolve naming issues

* CONF_COMMAND_TEMPLATE from .const

* Use mqtt as default service name

* make sure service  has a unique name

* pylint error

* fix type error

* Conditional device removal and test

* Improve tests

* update description has_notify_services()

* Use TypedDict for service config

* casting- fix discovery - hass.data

* cleanup

* move MqttNotificationConfig after the schemas

* fix has_notify_services

* do not test log for reg update

* Improve casting types

* Simplify obtaining the device_id

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

* await not needed

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

* Improve casting types and naming

* cleanup_device_registry signature change and black

* remove not needed condition

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-08 16:27:18 +01:00
Thomas Schamm
13ac6e62e2 Remove bosch_shc switch surplus toggle method (#67851) 2022-03-08 12:53:41 +01:00
epenet
d12118a425 Fix reauth trigger in SamsungTV (#67850)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 11:02:00 +01:00
Shay Levy
2d4d18ab90 Add Shelly gen2 cover support (#67705)
* Add Shelly gen2 cover support

* Make status property
2022-03-08 11:58:08 +02:00
Thomas Schamm
0b7b1baf30 Add switch platform to bosch_shc integration (#62315)
* Add support for switch platform.

* Add untested files to .coveragerc.

* Differ between Light Switch and Smart Plug.
Bumped to boschshcpy==0.2.27

* Removed duplicated code.
Fixed suggestions from code review.

* Fixed pylint errors

* Fix pylint issue.

* Add property statement

* Fixed wrong attribute access

* Apply suggestions from code review

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

* Move switch function to base class.
Changes from code review.

* Apply suggestions from code review

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

* Merged camera switch into SHCSwitch class

* Type hint

* Removed deprecated sensor entities in switch device.
Added routing switch entity.

* Apply suggestions from code review

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

* Icon and EntityCategory as class attributes

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-03-08 10:35:29 +01:00
J. Nick Koston
bfe94f1cc5 Fix profiler dumping object when repr fails (#67674)
* Fix profiler dumping object when repr fails

* cover
2022-03-08 10:33:08 +01:00
J. Nick Koston
ee38203e1d Add missing callback decorator to sun (#67840) 2022-03-08 10:16:41 +01:00
epenet
36049ac514 Batch send commands in SamsungTV (#67847)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 10:10:17 +01:00
Raman Gupta
e199be6391 Bump zwave-js-server-python to 0.35.2 (#67839) 2022-03-08 09:44:39 +01:00
epenet
6da38d67ff Simplify SSDP discovery in SamsungTV (#67843)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 08:54:03 +01:00
Lester Lo
56abd5f2cf Add homekit pm type sensor (#46060)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-08 08:37:20 +01:00
epenet
e1b57d83c7 Adjust config entry matching in SamsungTV (#67842)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 08:30:11 +01:00
epenet
6f38eda114 Adjust power_off for TheFrame in SamsungTV (#67841)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 08:20:58 +01:00
epenet
5b23b9a617 Adjust get_mac routine in SamsungTV (#67804)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 07:54:12 +01:00
epenet
2d4ccddd99 Fix SSDP unique id in SamsungTV config flow (#67811)
Co-authored-by: epenet <epenet@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-08 07:53:59 +01:00
epenet
8260767e8f Enable basic type checking in upnp (#66253)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 07:51:23 +01:00
epenet
1793c29fac Move key sequences to bridge in SamsungTV (#67762)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-08 07:46:34 +01:00
Aaron Godfrey
d302b0d14e Fix todoist parsing due dates for calendar events (#65403) 2022-03-07 22:00:39 -08:00
G Johansson
00c84d8927 Modify diagnostics for yale_smart_alarm (#67761) 2022-03-07 21:52:58 -08:00
Paulus Schoutsen
737c502e94 Merge pull request #67838 from home-assistant/rc 2022-03-07 21:51:30 -08:00
Paulus Schoutsen
46984afbb8 Add media source support to Yamaha MusicCast (#67572) 2022-03-07 21:50:25 -08:00
Paulus Schoutsen
a1abcbc7eb Bumped version to 2022.3.3 2022-03-07 20:45:49 -08:00
J. Nick Koston
b09ab2dafb Prevent scene from restoring unavailable states (#67836) 2022-03-07 20:45:44 -08:00
Teemu R
4e6fc3615b Bump python-miio version to 0.5.11 (#67824) 2022-03-07 20:45:43 -08:00
Bram Kragten
580c998552 Update frontend to 20220301.1 (#67812) 2022-03-07 20:45:25 -08:00
Franck Nijhof
97ba17d1ec Catch Elgato connection errors (#67799) 2022-03-07 20:44:09 -08:00
J. Nick Koston
8d7cdceb75 Handle fan_modes being set to None in homekit (#67790) 2022-03-07 20:44:08 -08:00
Simone Chemelli
dfa1c3abb3 Fix profile name update for Shelly Valve (#67778) 2022-03-07 20:44:08 -08:00
Simone Chemelli
c807c57a9b Fix internet access switch for old discovery (#67777) 2022-03-07 20:44:07 -08:00
J. Nick Koston
f4ec7e0902 Prevent polling from recreating an entity after removal (#67750) 2022-03-07 20:44:06 -08:00
G Johansson
814c96834e Fix temperature stepping in Sensibo (#67737)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-07 20:44:05 -08:00
muppet3000
87492e6b3e Fix timezone for growatt lastdataupdate (#67684)
* Added timezone for growatt lastdataupdate (#67646)

* Growatt lastdataupdate set to local timezone
2022-03-07 20:44:05 -08:00
Jan Bouwhuis
4aaafb0a99 Fix false positive MQTT climate deprecation warnings for defaults (#67661)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-07 20:44:04 -08:00
J. Nick Koston
c9ac0b49f6 Prevent scene from restoring unavailable states (#67836) 2022-03-07 20:43:19 -08:00
J. Nick Koston
a75bbc79a2 Prevent polling from recreating an entity after removal (#67750) 2022-03-07 20:42:16 -08:00
J. Nick Koston
aed2c1cce8 Remove unused import code from powerview (#67834) 2022-03-08 03:13:00 +01:00
GitHub Action
c374435282 [ci skip] Translation update 2022-03-08 00:18:11 +00:00
Joakim Sørensen
6b3b21bcfd Revert "Add update integration (#66552)" (#67641) 2022-03-07 15:52:15 -08:00
Teemu R
46d49336a1 Bump python-miio version to 0.5.11 (#67824) 2022-03-07 15:43:05 -08:00
Steve Easley
ea82f2e293 Add Kaleidescape integration (#67711) 2022-03-08 00:16:43 +01:00
epenet
c70bed86ff Adjust websocket bridge logging in SamsungTV (#67809)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-07 23:31:57 +01:00
epenet
d1ef92c17a Bump samsungtvws to 2.3.0 (#67821)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-07 23:30:54 +01:00
G Johansson
b8e4780aa1 Modify diagnostics for Sensibo (#67764) 2022-03-07 23:27:37 +01:00
Franck Nijhof
63957787c4 Update PyTurboJPEG to 1.6.6 (#67800) 2022-03-07 23:26:30 +01:00
Franck Nijhof
9d42a425fc Add config flow to Season (#67413) 2022-03-07 18:58:29 +01:00
G Johansson
7041bc797a Fix temperature stepping in Sensibo (#67737)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-07 09:55:12 -08:00
Franck Nijhof
48e6738367 Catch Elgato connection errors (#67799) 2022-03-07 09:14:14 -08:00
J. Nick Koston
f268191985 Handle fan_modes being set to None in homekit (#67790) 2022-03-07 09:10:38 -08:00
Simone Chemelli
d65b2b37dc Fix profile name update for Shelly Valve (#67778) 2022-03-07 09:05:10 -08:00
Bram Kragten
99300570f1 Update frontend to 20220301.1 (#67812) 2022-03-07 08:56:52 -08:00
Simone Chemelli
405c2f9cf3 Fix internet access switch for old discovery (#67777) 2022-03-07 17:23:08 +01:00
Jan Bouwhuis
98adeb6070 Fix false positive MQTT climate deprecation warnings for defaults (#67661)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-07 15:38:33 +01:00
Jan Stienstra
2f25d52f69 Fix Jellyfin erroring on media items without a source (#67697)
* Fix erroring on media items with a source

* code style improvement
2022-03-07 14:13:51 +01:00
Erik Montnemery
a9cc2d2322 Add config flow for cover, fan, light and media_player groups (#67660)
* Add options flow support to HelperConfigFlowHandler

* Add config flow for cover, fan, light and media_player groups

* Update according to review comments

* Update translation strings

* Update translation strings

* Copy schema before adding suggested values
2022-03-07 13:05:04 +01:00
Robert Hillis
6a92081e83 Add strict typing to adguard (#67775) 2022-03-07 11:43:21 +01:00
epenet
68f932f6c3 Bump samsungtvws to 2.2.0 (#67771) 2022-03-07 12:15:49 +02:00
Joakim Sørensen
9a6f5bbc04 Update whoami URL (#67793) 2022-03-07 11:11:25 +01:00
epenet
d656acfa2c Bump async-upnp-client to 0.26.0 (#67760) 2022-03-07 11:08:50 +01:00
muppet3000
6b4e9374b7 Fix timezone for growatt lastdataupdate (#67684)
* Added timezone for growatt lastdataupdate (#67646)

* Growatt lastdataupdate set to local timezone
2022-03-07 10:14:05 +01:00
Allen Porter
74c339eb7b Simplify google calendar new calendar tracking (#67772)
* Simplify google calendar new calendar tracking

* Remove application of CONFIG_SCHEMA
2022-03-07 09:44:32 +01:00
GitHub Action
2957f4ce85 [ci skip] Translation update 2022-03-07 00:18:40 +00:00
Paulus Schoutsen
58321c50e1 Fix scaffold (#67769) 2022-03-07 01:13:39 +01:00
Clifford Roche
cdaa7bb60c Bump greeclimate to 1.1.0 (#67763) 2022-03-06 22:57:18 +02:00
G Johansson
208e8b16db Add problem sensor to yale_smart_alarm (#67699) 2022-03-06 13:16:09 -07:00
Paulus Schoutsen
2aecdd3d6d Merge pull request #67730 from home-assistant/rc 2022-03-06 12:11:16 -08:00
Jc2k
76336df91a Fix regression with homekit_controller + Aqara motion/vibration sensors (#67740) 2022-03-06 08:45:56 -08:00
Jc2k
b6c962726a Fix regression with homekit_controller + Aqara motion/vibration sensors (#67740) 2022-03-06 08:45:41 -08:00
Allen Porter
69c58a9ce6 Bump google-nest-sdm to 1.8.0 (#67723) 2022-03-06 15:35:16 +02:00
Allen Porter
496287973d Bump google-cloud-pubsub to 2.10.0 (#67724) 2022-03-06 15:34:47 +02:00
Joakim Plate
e8c05298ba Remove rfxtrx signal repetition (#67675) 2022-03-06 10:29:20 +01:00
Paulus Schoutsen
88e0380aa2 Bumped version to 2022.3.2 2022-03-06 00:07:45 -08:00
Avi Miller
10a2c97cab Update aiolifx dependency to resolve log flood (#67721) 2022-03-06 00:07:41 -08:00
J. Nick Koston
92c3c08a10 Add missing disconnect in elkm1 config flow validation (#67716) 2022-03-06 00:07:40 -08:00
J. Nick Koston
4f8b69d985 Ensure elkm1 can be manually configured when discovered instance is not used (#67712) 2022-03-06 00:07:39 -08:00
Martin Hjelmare
f5aaf44e50 Bump pydroid-ipcam to 1.3.1 (#67655)
* Bump pydroid-ipcam to 1.3.1

* Remove loop and set ssl to False
2022-03-06 00:07:39 -08:00
Erik Montnemery
f3c85b3459 Fix reload of media player groups (#67653) 2022-03-06 00:07:38 -08:00
Franck Nijhof
d7348718e0 Fix Fan template loosing percentage/preset (#67648)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-06 00:07:37 -08:00
Simone Chemelli
2a6d5ea7bd Improve logging for Fritz switches creation (#67640) 2022-03-06 00:07:37 -08:00
Simone Chemelli
5ae83e3c40 Allign logic for Fritz sensors and binary_sensors (#67623) 2022-03-06 00:07:36 -08:00
G Johansson
5657a9e6bd Fix sql false warning (#67614) 2022-03-06 00:07:35 -08:00
J. Nick Koston
b290e62170 Handle elkm1 login case with username and insecure login (#67602) 2022-03-06 00:07:35 -08:00
epenet
679ddbd1be Downgrade Renault warning (#67601)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-06 00:07:34 -08:00
Teemu R
b54652a849 Remove use of deprecated xiaomi_miio classes (#67590) 2022-03-06 00:07:33 -08:00
Joakim Plate
24013ad94c rfxtrx: bump to 0.28 (#67530) 2022-03-06 00:07:32 -08:00
Chris Talkington
9849b86a84 Suppress roku power off timeout errors (#67414) 2022-03-06 00:07:32 -08:00
Simone Chemelli
8bbf55c85d Add unique_id to Fritz diagnostics (#67384)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-06 00:07:31 -08:00
Avi Miller
6c41786be4 Update aiolifx dependency to resolve log flood (#67721) 2022-03-06 00:03:52 -08:00
J. Nick Koston
23b218bc44 Add missing disconnect in elkm1 config flow validation (#67716) 2022-03-06 00:02:45 -08:00
J. Nick Koston
26c5dca45d Ensure elkm1 can be manually configured when discovered instance is not used (#67712) 2022-03-06 00:02:22 -08:00
G Johansson
1358aed016 Code cleanup yale_smart_alarm (#67701) 2022-03-05 21:27:06 -08:00
GitHub Action
f5d25eaf8f [ci skip] Translation update 2022-03-06 00:18:25 +00:00
G Johansson
3d26f6b85d Quicker update on hvac mode change in Sensibo (#67692) 2022-03-05 12:01:53 -10:00
G Johansson
2474d84e35 Implement measurement sensor for Sensibo (#66949) 2022-03-05 11:59:15 -10:00
Mike Fugate
cc9fd2bcba Add firmness number entity to SleepIQ (#65841) 2022-03-05 11:45:56 -10:00
G Johansson
a8baebee8d Return None for fields not reported in Sensibo (#67693) 2022-03-05 11:42:03 -10:00
G Johansson
af7670a5a5 Add base entity for Sensibo (#67696) 2022-03-05 11:37:44 -10:00
Ville Skyttä
ca32c38859 Upgrade bandit to 1.7.4 (#67669)
No new issues flagged.

https://github.com/PyCQA/bandit/releases/tag/1.7.1
https://github.com/PyCQA/bandit/releases/tag/1.7.2
https://github.com/PyCQA/bandit/releases/tag/1.7.3
https://github.com/PyCQA/bandit/releases/tag/1.7.4
2022-03-05 20:13:30 +01:00
Jeef
8484060915 Add Hyperion device configuration URL (#67495)
* Adding device configuration url

* bump version
2022-03-05 09:10:39 +01:00
Raman Gupta
9632cbeffa Improve zwave_js custom triggers and services (#67461)
* Improve zwave_js custom triggers and services

* Switch from pop to get

* Support string boolean values

* refactor and add coverage

* comments and additional assertions
2022-03-05 09:00:31 +01:00
Martin Hjelmare
cdb463ea55 Refactor android_ip_webcam (#67664)
* Add native camera platform

* Remove double mjpeg platform

* Fix docstring

* Remove not needed update
2022-03-05 08:37:58 +01:00
epenet
c5f7e7d1b0 Refactor run app in SamsungTV (#67616)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-04 14:37:27 -10:00
GitHub Action
acd906dfab [ci skip] Translation update 2022-03-05 00:19:17 +00:00
Simone Chemelli
777ae584d4 Add unique_id to Fritz diagnostics (#67384)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-04 14:43:33 -08:00
Simone Chemelli
53543f15a5 Allign logic for Fritz sensors and binary_sensors (#67623) 2022-03-04 14:38:28 -08:00
J. Nick Koston
e4221336dc Handle elkm1 login case with username and insecure login (#67602) 2022-03-04 14:30:40 -08:00
Erik Montnemery
1ebe82fc4b Fix reload of media player groups (#67653) 2022-03-04 14:17:43 -08:00
Keilin Bickar
f09e288fee Bump sleepiq library version (#67659) 2022-03-04 12:07:01 -10:00
epenet
9db3e321e4 Add message for unsupported models in samsungtv (#67549)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-04 12:06:15 -10:00
Aaron Bach
b8420a7e3b Add missing Ambient PWS sensors (#67322) 2022-03-04 13:21:11 -07:00
Franck Nijhof
cb1299b434 Fix Fan template loosing percentage/preset (#67648)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-03-04 20:17:11 +01:00
Martin Hjelmare
c337e69f0a Bump pydroid-ipcam to 1.3.1 (#67655)
* Bump pydroid-ipcam to 1.3.1

* Remove loop and set ssl to False
2022-03-04 20:09:49 +01:00
Erik Montnemery
0c12914548 Add config flow for switch.light (#67447)
* Add config flow for switch.light

* Refactor according to code review

* Setup light switch from config entry

* Improve async_resolve_entity

* Prepare for multiple steps

* Remove name and options flow from switch light

* Check type before adding description to schema keys

* Remove options flow enabler

* Copy name from the switch

* Move helper flows to new file

* Improve test coverage

* Fix name

* Remove dead code from abstract method

* Remove manifest 'helper' option

* Validate registry entry id before forwarding to light platform

* Improve test

* Add translations

* Improve config entry setup

* Log when config entry fails setup

* Update homeassistant/components/switch/__init__.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-04 20:02:17 +01:00
G Johansson
3f9a6bbaa7 Fix sql false warning (#67614) 2022-03-04 08:20:10 -10:00
Franck Nijhof
5965b015dd Adjust data entry flow to have an option data_schema (#67637) 2022-03-04 16:42:02 +01:00
Paulus Schoutsen
3eadc67d59 Add media source support to HeOS (#67562) 2022-03-04 07:41:22 -08:00
Erik Montnemery
209a5854f8 End JSON files updated by scaffold script with a newline (#67639) 2022-03-04 15:50:23 +01:00
Simone Chemelli
749a76c4e1 Improve logging for Fritz switches creation (#67640) 2022-03-04 15:49:22 +01:00
Paulus Schoutsen
abf4f50515 Add media browser support to forked_daapd (#67564) 2022-03-04 15:47:06 +01:00
Paulus Schoutsen
84c460ce78 Add media source support to mpd (#67565) 2022-03-04 15:44:57 +01:00
Paulus Schoutsen
cf1a21eb6e Allow squeezebox to play media sources (#67561) 2022-03-04 15:41:51 +01:00
Paulus Schoutsen
12a7b64e64 Add media source support to bluesound (#67563) 2022-03-04 14:51:42 +01:00
Martin Hjelmare
f91a809350 Add mysensors notify tests (#67634) 2022-03-04 14:47:27 +01:00
Paulus Schoutsen
624c3be3ae Add media source support to panasonic_viera (#67568) 2022-03-04 13:21:52 +01:00
dependabot[bot]
f3ca52c2a1 Bump actions/upload-artifact from 2.3.1 to 3.0.0 (#67598)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-04 12:39:44 +01:00
Jan Bouwhuis
5ab4b5d15a MQTT Improve warning override deprecated settings (#67609) 2022-03-04 12:39:29 +01:00
epenet
5f421252a6 Downgrade Renault warning (#67601)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-04 11:03:38 +02:00
Erik Montnemery
cd25769667 Rename async_resolve_entity_ids to async_validate_entity_ids (#67603) 2022-03-04 09:51:53 +01:00
Paulus Schoutsen
fbc39d1206 Log stack trace if exception without message (#67587) 2022-03-04 09:48:07 +01:00
Allen Porter
57ffc65af2 Improve google calendar test quality and share setup (#67441)
* Improve google calendar test quality and share setup

Improve google calendar test quality by exercising different combinations of
cases and new coverage. The existing test cases do achieve very high coverage,
however some of the subtle interactions between the components are not as well
exercised, which is needed when we start changing how the internal code is
structured moving to async or to config entries.

Ipmrovement include:
- Exercising additional cases around different types of configuration parameters
  that control how calendars are tracked or not tracked. The tracking can be
  configured in google_calendars.yaml, or by defaults set in configuration.yaml
  for new calendars.
- Share even more test setup, used when exercising the above different scenarios
- Add new test cases for event creation.
- Improve test readability by making more clear the differences between tests
  exercising yaml and API test calendars. The data types are now more clearly
  separated in the two cases, as well as the entity names created in the two
  cases.

* Undo some diffs for readability

* Improve pydoc readability

* Improve pydoc readability

* Incorporate improvements from Martin

* Make test parameters a State instance

* Update test naming to be more correct

* Fix flake8 errors
2022-03-03 23:12:24 -08:00
Allen Porter
4e52f26ed1 Fix flaky google calendar test (#67600) 2022-03-03 22:48:55 -08:00
Chris Talkington
79e9eb1b94 Suppress roku power off timeout errors (#67414) 2022-03-03 21:08:29 -08:00
Teemu R
d0bc5410cc Remove use of deprecated xiaomi_miio classes (#67590) 2022-03-03 20:55:01 -08:00
GitHub Action
2242b023d3 [ci skip] Translation update 2022-03-04 00:21:35 +00:00
Simone Chemelli
b75993d809 Check if UPnP is enabled on Fritz device (#67512)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-03 15:41:50 -08:00
Erik Montnemery
2007379701 Restore state of template binary sensor with on or off delay (#67546) 2022-03-03 15:27:39 -08:00
Emory Penney
69f08ec524 Bump pyobihai (#67571) 2022-03-03 15:22:36 -08:00
Allen Porter
a8842d3636 Bump httplib2 to 0.20.4 (#67552) 2022-03-03 15:22:11 -08:00
Franck Nijhof
02391663c1 Add config flow to Moon (#67444) 2022-03-03 15:12:33 -08:00
muppet3000
81a509e69e Fix data type for growatt lastdataupdate (#67511) (#67582)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-03 15:05:13 -08:00
J. Nick Koston
6d2302b703 Add guards for HomeKit version/names that break apple watches (#67585) 2022-03-03 15:03:46 -08:00
Paulus Schoutsen
e7ca6b6e38 Highlight in logs it is a custom component when setup fails (#67559)
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
2022-03-03 15:03:03 -08:00
Marc Mueller
a55d20f164 Use cached_property instead of stacked property + cache (#67515) 2022-03-03 23:59:48 +01:00
Jan Bouwhuis
9356bf1a8e Fix MQTT config flow with advanced parameters (#67556)
* Fix MQTT config flow with advanced parameters

* Add test
2022-03-03 21:40:15 +01:00
Keilin Bickar
24e0c0b092 Add pressure sensor for SleepIQ (#67574) 2022-03-03 10:27:22 -10:00
Keilin Bickar
423c14e2a1 Add light entity to SleepIQ (#67363) 2022-03-03 09:42:33 -10:00
Per Öberg
cfed1ff799 Add config flow for selecting precision of DS18B20 devices (#64315)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-03 11:41:59 -08:00
epenet
8e3b0f6554 Cleanup mac fixtures in samsungtv tests (#67529)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-03 08:07:08 -10:00
epenet
74483d2669 Fix Samsung TV state when the device is turned off (#67541)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-03 08:06:33 -10:00
Joakim Sørensen
1a78e18eeb Add update integration (#66552)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-03-03 08:27:09 -08:00
Allen Porter
2678d8120a Update nest media source to make device play most recent event (#67557) 2022-03-03 08:16:03 -08:00
Joakim Plate
13eeaa4c73 rfxtrx: bump to 0.28 (#67530) 2022-03-03 11:29:58 +01:00
Richard T. Schaefer
15580281a3 Allow area, device, and entity selectors to optionally support multiple selections like target selector (#63138)
* Allow area, device, and entity selectors to optionally support multiple selections like target selector

* Update according to code review comments

* Adjust tests

* Update according to review comments

* Tweak error message for multiple entities

Co-authored-by: Erik <erik@montnemery.com>
2022-03-03 10:35:06 +01:00
dependabot[bot]
58c00da8a0 Bump home-assistant/builder from 2022.01.0 to 2022.03.1 (#67525)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-03 08:48:02 +01:00
jan iversen
85c863a766 Allow reload of modbus (#67390)
* Allow reload of modbus.

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-03-03 08:46:58 +01:00
J. Nick Koston
ad87d06d1f Enable strict typing for usb (#67466)
* Enable strict typing for usb

* Enable strict typing for usb

* Enable strict typing for usb

* adjust

* coverage

* Update tests/components/usb/test_init.py
2022-03-03 07:59:31 +01:00
GitHub Action
11175b39f5 [ci skip] Translation update 2022-03-03 00:20:45 +00:00
Franck Nijhof
4b298863c7 Fix nightly manifest (#67489) 2022-03-03 00:38:26 +01:00
jjlawren
e7e4c7e3da Bump soco to 0.26.4 (#67498) 2022-03-03 00:41:03 +02:00
G Johansson
a3a66451d7 Implement reauth for Sensibo (#67446) 2022-03-02 12:22:14 -10:00
G Johansson
8ee3be33e9 Bump pysensibo to v1.0.8 (#67506) 2022-03-02 12:20:10 -10:00
epenet
26f2388fa1 Adjust error handling scope in samsungtv (#66692)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-02 20:52:11 +01:00
epenet
b8861578ff Implement async websocket in samsungtv (#67127)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-02 09:30:33 -10:00
epenet
b245ba6d57 Bump samsungtvws to v2.1.0 (#67483)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-02 10:09:06 -08:00
jan iversen
a4915eb704 Handle exception in modbus slave sensor (#67472) 2022-03-02 09:49:57 -08:00
Paulus Schoutsen
dc24e6505e Add guard radio browser media source (#67486) 2022-03-02 17:22:34 +01:00
Jan Bouwhuis
a97fe7aae0 Mqtt fix issue with displaying non UTF-8 payload (#67471)
* Mqtt fix issue with displaying non UTF-8 payload

* None or binary

* Casting and additional test

* casting
2022-03-02 17:01:47 +01:00
Joakim Sørensen
9f51fd7c6f Set fail-fast to false for meta container (#67484) 2022-03-02 16:55:33 +01:00
Michael Chisholm
797a9c3de5 Sort DMS results using only criteria supported by the device (#67475) 2022-03-02 07:54:47 -08:00
Erik Montnemery
c5dd5e18c0 Improve binary sensor group when member is unknown or unavailable (#67468) 2022-03-02 07:53:13 -08:00
Erik Montnemery
5b8cf379a3 Improve mobile_app key handling (#67429) 2022-03-02 07:49:48 -08:00
Jc2k
0974abf9e2 Remove Ecobee homekit vendor extensions that just don't work (#67474) 2022-03-02 15:00:48 +01:00
Igor Pakhomov
a5806fb868 Add buttons for dmaker.airfresh.a1/t2017 to xiaomi_miio (#67065)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-03-02 14:08:19 +01:00
Jc2k
2ff1101a15 Bump to aiohomekit 0.7.15 (#67470) 2022-03-02 13:58:39 +01:00
Joakim Sørensen
063872a0c0 Split meta image creation (#67480) 2022-03-02 13:55:05 +01:00
Shay Levy
aac4036c0c Bump aioshelly to 1.0.11 (#67476) 2022-03-02 14:30:54 +02:00
cnico
beb4756eb8 Address late review of flipr (#67477) 2022-03-02 13:00:33 +01:00
Joakim Plate
3c3a27584a Rfxtrx correct overzealous type checking (#67437) 2022-03-02 10:36:23 +01:00
Ryan Fleming
4ac1746e28 Update Pyoctoprint to 1.8 (#67459) 2022-03-02 10:08:03 +01:00
Marc Mueller
d7d41e2a4d Bump actions/checkout from 2.4.0 to 3.0.0 (#67456) 2022-03-02 09:32:02 +01:00
dependabot[bot]
e9a7d4ddb2 Bump docker/login-action from 1.14.0 to 1.14.1 (#67462)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-02 08:48:40 +01:00
Martin Hjelmare
e9496869da Rework mysensors test fixtures (#67331)
* Reworks mysensors test fixtures

* Fix missing autospecced methods
2022-03-02 07:23:36 +01:00
Mike Degatano
4ea6ca7f91 Prefer internal docker URL for VLC telnet when possible (#67090) 2022-03-01 21:56:20 -08:00
Paulus Schoutsen
65eefcacfc Add support for detecting hostname based addresses as internal (#67407) 2022-03-01 16:56:05 -08:00
Simone Chemelli
de2ddfe7b7 Add missing temperature sensor for Shelly Motion2 (#67458) 2022-03-01 16:22:15 -08:00
cnico
7889aace5f Add flipr API error detection and catch it correctly. (#67405) 2022-03-01 16:21:47 -08:00
Franck Nijhof
133add6100 Fix CO2Signal having unknown data (#67453) 2022-03-01 16:06:36 -08:00
Paulus Schoutsen
dc10a4f0bb Bump frontend to 20220301.0 (#67457) 2022-03-01 16:05:23 -08:00
J. Nick Koston
78a49eb9e8 Partially revert powerwall abs change from #67245 (#67300) 2022-03-01 14:00:48 -10:00
Paulus Schoutsen
d68ada74cc Restore children media class (#67409) 2022-03-01 15:14:14 -08:00
JeroenTuinstra
57705bc13d Correct selector for remote integration line 50 (#67432) 2022-03-01 15:12:54 -08:00
Marc Mueller
555d0445d8 Pip setup-python to 3.0.0 (#67448) 2022-03-01 22:14:26 +01:00
Joakim Sørensen
e58ce7ab6e Fix returned value from backup/info WS command (#67439) 2022-03-01 21:37:51 +01:00
J. Nick Koston
94130a6060 Avoid creating wiring select for Magic Home if its not supported (#67417) 2022-03-01 09:18:09 -10:00
uvjustin
a81fa31314 Bump httpx and httpcore (#67438) 2022-03-01 09:17:25 -10:00
epenet
b613008eda Cleanup samsungtv bridge (#67424)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-01 09:05:51 -10:00
epenet
418808d873 Cleanup search for mac in samsungtv (#67374)
* Add logging on config_entry update

* Add search for mac

* Use info

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-03-01 19:21:40 +02:00
Teemu R
6dacf75aaf Bump python-songpal to 0.14.1 (#67435)
Changelog https://github.com/rytilahti/python-songpal/releases/tag/0.14.1
2022-03-01 19:19:34 +02:00
jan iversen
2e7de9570a CONF_SLAVE do not have default 0 in a validator (#67418) 2022-03-01 16:40:00 +01:00
Joakim Sørensen
32adeb8356 Remove class attributes for backup manager (#67431)
* Remove class attributes for backup manager

* remove patches
2022-03-01 15:16:18 +01:00
Igor Pakhomov
7bbde822d2 Add "Auxiliary Heat Status" binary_sensor for dmaker.airfresh.a1/t2017 to xiaomi_miio (#67040) 2022-03-01 14:57:14 +01:00
Igor Pakhomov
0515a8bd2d Add additional switch for dmaker.airfresh.a1/t2017 to xiaomi_miio (#67033)
* Add additional switch for dmaker.airfresh.a1/t2017 to xiaomi_miio
- Auxiliary heat switch
- Display switch

* Auxiliary heat => Auxiliary Heat

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
2022-03-01 14:15:23 +01:00
dependabot[bot]
741b010f8f Bump docker/login-action from 1.13.0 to 1.14.0 (#67416)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-01 13:56:48 +01:00
Erik Montnemery
f40932853f Bump hatasmota to 0.4.0 (#67421) 2022-03-01 13:18:49 +02:00
Joakim Sørensen
d018cbab3d Enable strict typing for backup integration (#67427) 2022-03-01 13:16:10 +02:00
Franck Nijhof
82948cc6c1 Update google-cloud-texttospeech to 2.10.0 (#66746) 2022-03-01 10:19:13 +01:00
Franck Nijhof
e4c62a2037 Update coverage to 6.3.2 (#67395) 2022-03-01 08:58:19 +01:00
Franck Nijhof
76e890f523 Update ephem to 4.1.2 (#67404) 2022-03-01 08:57:02 +01:00
dependabot[bot]
6a07641600 Bump actions/setup-python from 2.3.2 to 3 (#67415)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2.3.2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.3.2...v3)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-01 07:52:38 +01:00
G Johansson
f2dabf4978 Set precision to tenths in Sensibo (#67297) 2022-02-28 20:02:27 -10:00
J. Nick Koston
fc4cb743bd Add Signal Strength sensor to WiZ (#67411) 2022-02-28 18:50:26 -10:00
J. Nick Koston
ac031cb817 Add diagnostics support to bond (#67412) 2022-02-28 18:50:15 -10:00
J. Nick Koston
076fe97110 Strict typing for dhcp (#67361) 2022-02-28 18:49:44 -10:00
J. Nick Koston
21ce441a97 Bump zeroconf to 0.38.4 (#67406) 2022-02-28 16:39:13 -08:00
jjlawren
aea1209d0d Reduce magic in Sonos error handling fixture (#67401) 2022-02-28 16:38:08 -08:00
GitHub Action
e963ad96d4 [ci skip] Translation update 2022-03-01 00:23:47 +00:00
Joakim Sørensen
0ed51dae13 Add Backup integration (#66395)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-02-28 15:48:12 -08:00
Franck Nijhof
487f4dcd90 Remove deprecated Raspihats integration (#67380) 2022-02-28 23:10:58 +01:00
Franck Nijhof
e3709590cb Update sentry-sdk to 1.5.6 (#67394) 2022-02-28 23:10:40 +01:00
Franck Nijhof
353a963890 Update shodan to 1.27.0 (#67393) 2022-02-28 23:10:14 +01:00
epenet
1556868d56 Use async rest api in SamsungTV (#67369)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-02-28 09:53:42 -10:00
Jeff
508ed257d4 Support disconnected Powerwall configuration (#67325)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-02-28 09:37:11 -10:00
Matt Zimmerman
d077c3b8d1 Add sensor to expose Powerwall backup reserve percentage (#66393) 2022-02-28 09:31:34 -10:00
Kevin Worrel
974296697e Add diagnostics for screenlogic (#67368) 2022-02-28 09:13:56 -10:00
Erik Montnemery
148762ce3f Improve cast test for removing device (#67385) 2022-02-28 11:08:27 -08:00
jan iversen
e891df0ff3 Allow multi read of Modbus sensor (#67378) 2022-02-28 11:07:55 -08:00
jan iversen
690223fb69 Add tests for Modbus slave binary sensors, up coverage to 100% (#67373) 2022-02-28 11:06:32 -08:00
Franck Nijhof
2ca97f6309 Code quality improvements for Worldclock (#67392) 2022-02-28 11:03:43 -08:00
Allen Porter
c456b4c646 Fix google calendar comment typo (#67389) 2022-02-28 18:52:52 +01:00
k3mpaxl
430cdc6d4c Update modbus climate (#62483)
Single register values weren't parsed accordingly for climate devices.
Co-authored-by: jan Iversen <jancasacondor@gmail.com>
2022-02-28 18:52:36 +01:00
Erik Montnemery
f9616c2ae3 Remove custom WS command for removing Tasmota devices (#67382) 2022-02-28 18:13:38 +01:00
Erik Montnemery
5e4b16c69a Remove custom WS command for removing MQTT devices (#67381)
* Remove custom WS command for removing MQTT devices

* Re-add removed test
2022-02-28 15:50:49 +01:00
Erik Montnemery
c7d59bb272 Fix race when unsubscribing from MQTT topics (#67376)
* Fix race when unsubscribing from MQTT topics

* Improve test
2022-02-28 14:19:50 +01:00
Franck Nijhof
0db6a0b248 Remove deprecated Bosch BME680 Environmental Sensor integration (#67273) 2022-02-28 13:29:13 +01:00
Erik Montnemery
277c6f8803 Bump pychromecast to 10.3.0 (#67370) 2022-02-28 13:27:24 +01:00
jan iversen
0d8ff3d724 Add codeowner to internal integrations that are without (#67286) 2022-02-28 09:06:16 +01:00
jjlawren
5922a98936 Bump plexapi to 4.10.0 (#67364) 2022-02-28 07:50:42 +01:00
Allen Porter
a375a4e16e Fix recurring events in google calendar (#67355) 2022-02-27 19:56:24 -08:00
Keilin Bickar
bafa99fe3e Add reauth to SleepIQ (#67321)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-02-27 15:47:31 -10:00
epenet
1cca317294 Bump samsungtvws to 2.0.0 (#67351) 2022-02-27 15:29:31 -10:00
GitHub Action
1b97f48c1f [ci skip] Translation update 2022-02-28 00:19:57 +00:00
Allen Porter
afaaabd2fe Cleanup google calendar by removing some device abstractions (#67356)
* Remove unnecessary abstraction in google calendar

* Simplify diffs for calendar event filtering
2022-02-27 15:01:54 -08:00
G Johansson
bb4b7c96d0 Migrate entry unique id for Sensibo (#67119) 2022-02-27 11:38:39 -10:00
Paulus Schoutsen
9c440d8aa6 Guard for non-string inputs in Alexa (#67348) 2022-02-27 12:59:05 -08:00
Paulus Schoutsen
f9b02d5cab Guard for index error in picnic (#67345) 2022-02-27 12:04:22 -08:00
Mick Vleeshouwer
e0172cb8da Bump pyoverkiz to 1.3.9 in Overkiz integration (#67339) 2022-02-27 11:19:20 -08:00
Franck Nijhof
e77de3aeea Remove deprecated Bosch BMP280 Environmental Sensor integration (#67280) 2022-02-27 11:16:13 -08:00
Allen Porter
466f1686e4 Cleanup google calendar shared test fixtures (#67343) 2022-02-27 19:58:00 +01:00
Steven Looman
dbbb5655e5 Bump async-upnp-client to 0.25.0 (#66414)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-02-27 08:29:29 -10:00
Franck Nijhof
1c0365a72b Remove deprecated MCP23017 I/O Expander integration (#67281) 2022-02-27 15:40:25 +01:00
Franck Nijhof
e4903f9a13 Remove deprecated HTU21D(F) Sensor integration (#67279) 2022-02-27 15:35:39 +01:00
James Hewitt
494ae9aef6 Clean up RFXtrx tests (#67278)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-02-27 01:49:46 +01:00
Allen Porter
deda9e38e4 Simplify google calendar API interactions (#67319)
* Simplify google calendar APIs and tests

* Simplify authentication logic at startup

* Improve readability of diffs

* Reduce diffs

* Simplify api datetime logic

* Remove duplicate test fixtures added in prior commit

* Remove duplicate event filter calls

* Fix event list argument names

* More improvements found from additional testing

* Remove unnecessary variables in create event call
2022-02-26 16:19:45 -08:00
GitHub Action
479aa13211 [ci skip] Translation update 2022-02-27 00:19:29 +00:00
Allen Porter
1383034df2 Simplify google calendar event filters (#67312)
Simplify google calendar event filtering logic currently copied between two methods.
2022-02-26 15:27:08 -08:00
Marc Mueller
f6be0c2b88 Remove redundant type cast (#67317) 2022-02-27 00:23:56 +01:00
Allen Porter
0e74184e4f Simplify google calendar authentication setup (#67314)
Simplify google calendar authentication to combine some of the cases together, and reduce unecessarily checks. Make the
tests share common authentication setup and reduce use of mocks by introducing a fake for holding on to credentials.
This makes future refactoring simpler, so we don't have to care as much about the interactions with the credentials
storage.
2022-02-26 15:17:02 -08:00
Joakim Plate
a151d3f9a0 Don't trigger device removal for non rfxtrx devices (#67315) 2022-02-27 00:14:12 +01:00
Joakim Plate
01fa6e7513 Eliminate extra include (#67316) 2022-02-27 00:13:48 +01:00
Paulus Schoutsen
02d4739b28 Bump frontend to 20220226.0 (#67313) 2022-02-26 14:12:33 -08:00
Martin Hjelmare
d299915c1a Fix netgear typing (#67287) 2022-02-26 14:00:33 -08:00
Paulus Schoutsen
7f4faafe38 Add type code that is being ignored (#67311) 2022-02-26 13:56:47 -08:00
Franck Nijhof
9920b3eef5 Remove deprecated Enviro pHAT integration (#67277) 2022-02-26 13:35:13 -08:00
Franck Nijhof
0abecc8513 Remove deprecated DHT Sensor integration (#67276) 2022-02-26 13:34:34 -08:00
Franck Nijhof
0b20b107e1 Remove deprecated Sense HAT integration (#67272) 2022-02-26 13:33:12 -08:00
stegm
3b2b2b9c69 Add diagnostics to Kostal Plenticore (#66435) 2022-02-26 13:32:38 -08:00
jan iversen
6ec9c402b1 Remove generic data types INT, UINT, FLOAT in modbus (#67268) 2022-02-26 13:27:48 -08:00
Franck Nijhof
fbfdabe4fc Remove deprecated Raspberry Pi RF integration (#67283) 2022-02-26 13:26:41 -08:00
Allen Porter
648aa0cae6 Reduce google calendar test flake (#67310) 2022-02-26 13:23:11 -08:00
Allen Porter
1ee4f47f8b Cleanup google calendar use of hass.data (#67305)
Update google calendar's use of hass.data to follow the best practices of storing
data under hass.data[DOMAIN]. This is in preparation for storing additional
data later, pulled out of a larger cleanup.
2022-02-26 12:30:04 -08:00
Allen Porter
1cc4ae2bdd Bump googel-api-python-client to 2.3.8 (last updated 2017) (#67298) 2022-02-26 19:47:42 +01:00
Martin Hjelmare
d9abd5efea Fix dhcp None hostname (#67289)
* Fix dhcp None hostname

* Test handle None hostname
2022-02-26 19:37:24 +01:00
Allen Porter
f901c61d54 Add myself as code owner for google calendar integration (#67299) 2022-02-26 17:55:46 +01:00
Mike Fugate
858c09060d Validate SleepIQ connection/credentials for the import step (#67292) 2022-02-26 17:55:11 +01:00
Joakim Sørensen
e65670fef4 Repository event subscription (#67284) 2022-02-26 15:56:36 +01:00
Joakim Sørensen
73fdd47d54 Change GitHub coordinator name (#67285) 2022-02-26 11:50:05 +01:00
Joakim Sørensen
452b072bd2 Bump aiogithubapi from 22.2.3 to 22.2.4 (#67269) 2022-02-26 10:38:19 +01:00
Paulus Schoutsen
7e4b63690d Fix camera content type while browsing (#67256) 2022-02-26 10:02:13 +01:00
Paulus Schoutsen
442e2eecd5 Kodi: Mark MJPEG cameras using PNGs as incompatible (#67257) 2022-02-26 09:58:45 +01:00
Alan Tse
34d38c7ada Fix Doorbird warning if registering favorites fail (#67262) 2022-02-26 09:56:07 +01:00
pailloM
a3d30f6ecc Re-enable apcupsd (#67264) 2022-02-26 09:46:16 +01:00
GitHub Action
0f418341f3 [ci skip] Translation update 2022-02-26 00:17:09 +00:00
Paulus Schoutsen
e6cd155c01 Bump hass-nabucasa to 0.54.0 (#67252) 2022-02-25 14:01:20 -08:00
Paulus Schoutsen
22aed088f3 Kodi/Roku: Add brand logos to brand folders at root level (#67251) 2022-02-25 21:19:56 +01:00
Paulus Schoutsen
0a6c8f8e6c Improve not shown handling (#67247) 2022-02-25 11:52:14 -08:00
James Hewitt
069e70ff03 Add mode setting to RFXtrx device configuration (#67173)
This allows users to configure the modes on their RFXtrx device without
downloading additional software that only runs on Windows. It also
enables the use of modes that cannot be permanently enabled on the
device, such as for undecoded and raw messages.
2022-02-25 20:43:29 +01:00
jan iversen
8233278ccc Correct tests to use data_type in Modbus (#67246) 2022-02-25 11:37:52 -08:00
J. Nick Koston
e81ca64aa4 Prevent the wrong WiZ device from being used when the IP is a different device (#67250) 2022-02-25 11:37:19 -08:00
Paulus Schoutsen
99bc2a7c9e Give Sonos media browse folders Sonos logos to distinguish from media… (#67248) 2022-02-25 11:35:39 -08:00
J. Nick Koston
3f16c6d6ef Fix powerwall data incompatibility with energy integration (#67245) 2022-02-25 20:20:56 +01:00
Paulus Schoutsen
6fd9e71b8f Adjust serializing resolved media (#67240) 2022-02-25 10:00:03 -08:00
Mark Dietzer
07a792019e Fix Twitch component to use new API (#67153)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-02-25 09:15:49 -08:00
jjlawren
a4ba71408b Adjust Sonos visibility checks (#67196) 2022-02-25 08:27:06 -08:00
martijnvanduijneveldt
199d359814 Fix nanoleaf white flashing when using scenes (#67168) 2022-02-25 08:25:13 -08:00
epenet
715d7f70f0 Adjust SamsungTV abstraction layer (#67216)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-02-25 17:15:45 +01:00
Franck Nijhof
c62a3c4f0d Add support for 8-gang switches to Tuya (#67218) 2022-02-25 08:11:22 -08:00
Franck Nijhof
5edb4cbdc6 Remove deprecated pi4ioe5v9xxxx IO Expander integration (#67188) 2022-02-25 08:10:12 -08:00
Franck Nijhof
e7e8ee5ff3 Remove deprecated pigpio Daemon PWM LED integration (#67187) 2022-02-25 08:09:23 -08:00
jan iversen
c6f5633e24 Fix modbus test_delay (#66993) 2022-02-25 08:06:25 -08:00
Martin Hjelmare
c856f673fb Fix zwave_js migration luminance sensor (#67234) 2022-02-25 08:05:56 -08:00
jan iversen
adc4c1e33f Secure ATTR_ and CONF_ use identical texts in Modbus (#66901) 2022-02-25 08:05:19 -08:00
Franck Nijhof
5c4b149f50 Remove deprecated Piglow integration (#67227) 2022-02-25 08:03:32 -08:00
Franck Nijhof
cd18641385 Remove deprecated Media Player Classic Home Cinema (MPC-HC) integration (#67189) 2022-02-25 08:01:27 -08:00
jan iversen
3173f1672b Remove deprecated reverse_order and data_count from Modbus (#67236) 2022-02-25 08:01:03 -08:00
Franck Nijhof
29350ee2e2 Remove deprecated Sensirion SHT31 integration (#67176) 2022-02-25 16:04:17 +02:00
Martin Hjelmare
a0214d695a Clean up mysensors hass.data gateway access (#67233) 2022-02-25 14:54:25 +01:00
Franck Nijhof
0bd25a192d Move Phone Modem reject call deprecation warning (#67223) 2022-02-25 10:57:29 +01:00
Andre Lengwenus
684f01f466 Add tests for LCN cover platform (#64832) 2022-02-25 10:22:48 +01:00
Avi Miller
21715c5f8a Bump the Twinkly dependency to fix the excessive debug output (#67207) 2022-02-25 09:59:16 +01:00
kevdliu
ad6c3d37be Take Abode camera snapshot before fetching latest image (#67150)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-02-25 09:44:17 +01:00
Paulus Schoutsen
406fbca4bc Add media source support to Kodi (#67203) 2022-02-24 23:40:28 -08:00
Joakim Plate
8a74295d6f Add support for rfxtrx sirens and chimes (#66416)
* Add support for sirens and chimes

* Fixup testing

* Fixup comments

* Hook up existing off delay

* Add docs for off delay.

* Rename mixin
2022-02-25 07:53:22 +01:00
Raman Gupta
ad4409bcb0 Don't add extra entities for zwave_js controller (#67209)
* Don't add extra entities for zwave_js controller

* Revert reformat of controller_state

* fix indentation issues

* fix indentation issues
2022-02-25 07:39:30 +01:00
Zack Barett
7842d12b75 20220224.0 (#67204) 2022-02-24 19:28:36 -08:00
Paulus Schoutsen
ff7510f96c Bump aiohue to 4.3.0 (#67202) 2022-02-24 16:30:53 -08:00
GitHub Action
5e366d93fc [ci skip] Translation update 2022-02-25 00:17:52 +00:00
Paulus Schoutsen
2a8dc38d2d Move media_source to after_deps (#67195) 2022-02-24 14:54:46 -08:00
Martin Hjelmare
d64777359d Set zwave_js siren to unknown state if value is None (#67172) 2022-02-24 23:21:36 +01:00
Franck Nijhof
ae073d132c Remove deprecated Bosch BME280 Environmental Sensor integration (#67185) 2022-02-24 23:54:01 +02:00
Franck Nijhof
5eec425e2c Remove deprecated MH-Z19 CO2 Sensor integration (#67186) 2022-02-24 23:50:17 +02:00
Franck Nijhof
ba6493d66f Remove deprecated Orange Pi GPIO integration (#67177) 2022-02-24 23:46:59 +02:00
J. Nick Koston
00c6e30988 Fix ElkM1 systems that do not use password authentication (#67194) 2022-02-24 11:07:17 -08:00
J. Nick Koston
4dc6aab17e Move camera to after deps for HomeKit (#67190) 2022-02-24 20:03:59 +01:00
Franck Nijhof
dd927adba9 Remove deprecated Blinkt! integration (#67165) 2022-02-24 19:26:32 +02:00
Marc Mueller
2af5b2c845 Fix return type for entity update methods (#67184) 2022-02-24 19:25:38 +02:00
Franck Nijhof
d495bded5c Remove deprecated BH1750 integration (#67161) 2022-02-24 19:23:32 +02:00
Franck Nijhof
12dbcca078 Remove deprecated BeagleBone Black GPIO integration (#67160) 2022-02-24 19:22:48 +02:00
Franck Nijhof
21f3e5ef13 Fix MQTT config entry deprecation warnings (#67174) 2022-02-24 18:14:38 +01:00
Paulus Schoutsen
fb4de7211b Make Google sync_seralize a callback (#67155) 2022-02-24 08:36:36 -08:00
Shay Levy
7068c46f8f Use SSDP dataclass in webostv tests (#67181) 2022-02-24 16:59:20 +01:00
rforro
cbdfff25ca Presets for single ZONNSMART TRV (#67157)
* Presets for single ZONNSMART TRV

* added zonnsmart climate tests

* black8 fix
2022-02-24 08:48:15 -05:00
Franck Nijhof
636e4ed90b Remove deprecated Time of Flight integration (#67167) 2022-02-24 14:47:20 +01:00
jan iversen
9131fb39fe Allow "slave" parameter in modbus service calls (#66874)
* Allow "slave" parameter in modbus service calls.
2022-02-24 13:35:45 +01:00
rikroe
a12870081e Remove deprecated yaml config from bmw_connected_drive (#66965)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-02-24 13:04:21 +01:00
Franck Nijhof
14059c5aa9 Remove deprecated YAML configuration from CPU Speed (#67166) 2022-02-24 11:25:42 +01:00
Franck Nijhof
85b87ffb8b Remove deprecated APNS integration (#67158) 2022-02-24 10:31:00 +01:00
Franck Nijhof
1d03313bf5 Remove deprecated YAML configuration from Whois (#67163)
* Remove deprecated YAML configuration from Whois

* Clean up platform schema
2022-02-24 10:03:42 +01:00
Franck Nijhof
6bd21f05dc Remove deprecated YAML configuration from PVOutput (#67162)
* Remove deprecated YAML configuration from PVOutput

* Clean up platform schema
2022-02-24 10:02:42 +01:00
J. Nick Koston
c9e46d360b Use compact encoding for JSON websocket messages (#67148)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-02-23 22:15:20 -08:00
Gage Benne
5366c0e3e3 Bump pydexcom to 0.2.3 (#67152) 2022-02-23 22:05:45 -08:00
Keilin Bickar
f8763aad75 SleepIQ Dependency update (#67154) 2022-02-23 21:27:31 -08:00
Robert Hillis
e431e98fff Bump aiopyarr to 22.2.2 (#67149) 2022-02-23 21:18:14 -08:00
Paulus Schoutsen
a42547c0e5 Allow get_states to recover (#67146) 2022-02-23 21:15:48 -08:00
soluga
79bdd71da7 Don't try to resolve state if native_value is Null (#67134) 2022-02-23 16:29:26 -08:00
Paulus Schoutsen
a5383e40eb Media source to verify domain to avoid KeyError (#67137) 2022-02-23 16:22:39 -08:00
Paulus Schoutsen
fff74c66ae Fix SQL sensor (#67144) 2022-02-23 16:21:24 -08:00
GitHub Action
6364e81be5 [ci skip] Translation update 2022-02-24 00:17:55 +00:00
jjlawren
e3e962691c Fix Sonos radio metadata processing with missing data (#67141) 2022-02-23 15:42:18 -08:00
Franck Nijhof
43b847220e Bump version to 2022.4.0dev0 (#67132) 2022-02-23 22:12:37 +01:00
3756 changed files with 213171 additions and 164329 deletions

View File

@@ -3,102 +3,104 @@
core: &core
- homeassistant/*.py
- homeassistant/auth/**
- homeassistant/helpers/*
- homeassistant/helpers/**
- homeassistant/package_constraints.txt
- homeassistant/util/*
- homeassistant/util/**
- pyproject.toml
- requirements.txt
- setup.cfg
# Our base platforms, that are used by other integrations
base_platforms: &base_platforms
- homeassistant/components/air_quality/*
- homeassistant/components/alarm_control_panel/*
- homeassistant/components/binary_sensor/*
- homeassistant/components/button/*
- homeassistant/components/calendar/*
- homeassistant/components/camera/*
- homeassistant/components/climate/*
- homeassistant/components/cover/*
- homeassistant/components/device_tracker/*
- homeassistant/components/diagnostics/*
- homeassistant/components/fan/*
- homeassistant/components/geo_location/*
- homeassistant/components/humidifier/*
- homeassistant/components/image_processing/*
- homeassistant/components/light/*
- homeassistant/components/lock/*
- homeassistant/components/media_player/*
- homeassistant/components/notify/*
- homeassistant/components/number/*
- homeassistant/components/remote/*
- homeassistant/components/scene/*
- homeassistant/components/select/*
- homeassistant/components/sensor/*
- homeassistant/components/siren/*
- homeassistant/components/stt/*
- homeassistant/components/switch/*
- homeassistant/components/tts/*
- homeassistant/components/vacuum/*
- homeassistant/components/water_heater/*
- homeassistant/components/weather/*
- homeassistant/components/air_quality/**
- homeassistant/components/alarm_control_panel/**
- homeassistant/components/binary_sensor/**
- homeassistant/components/button/**
- homeassistant/components/calendar/**
- homeassistant/components/camera/**
- homeassistant/components/climate/**
- homeassistant/components/cover/**
- homeassistant/components/device_tracker/**
- homeassistant/components/diagnostics/**
- homeassistant/components/fan/**
- homeassistant/components/geo_location/**
- homeassistant/components/humidifier/**
- homeassistant/components/image_processing/**
- homeassistant/components/light/**
- homeassistant/components/lock/**
- homeassistant/components/media_player/**
- homeassistant/components/notify/**
- homeassistant/components/number/**
- homeassistant/components/remote/**
- homeassistant/components/scene/**
- homeassistant/components/select/**
- homeassistant/components/sensor/**
- homeassistant/components/siren/**
- homeassistant/components/stt/**
- homeassistant/components/switch/**
- homeassistant/components/tts/**
- homeassistant/components/update/**
- homeassistant/components/vacuum/**
- homeassistant/components/water_heater/**
- homeassistant/components/weather/**
# Extra components that trigger the full suite
components: &components
- homeassistant/components/alert/*
- homeassistant/components/alexa/*
- homeassistant/components/auth/*
- homeassistant/components/automation/*
- homeassistant/components/cloud/*
- homeassistant/components/config/*
- homeassistant/components/configurator/*
- homeassistant/components/conversation/*
- homeassistant/components/demo/*
- homeassistant/components/device_automation/*
- homeassistant/components/dhcp/*
- homeassistant/components/discovery/*
- homeassistant/components/energy/*
- homeassistant/components/ffmpeg/*
- homeassistant/components/frontend/*
- homeassistant/components/google_assistant/*
- homeassistant/components/group/*
- homeassistant/components/hassio/*
- homeassistant/components/alert/**
- homeassistant/components/alexa/**
- homeassistant/components/auth/**
- homeassistant/components/automation/**
- homeassistant/components/backup/**
- homeassistant/components/cloud/**
- homeassistant/components/config/**
- homeassistant/components/configurator/**
- homeassistant/components/conversation/**
- homeassistant/components/demo/**
- homeassistant/components/device_automation/**
- homeassistant/components/dhcp/**
- homeassistant/components/discovery/**
- homeassistant/components/energy/**
- homeassistant/components/ffmpeg/**
- homeassistant/components/frontend/**
- homeassistant/components/google_assistant/**
- homeassistant/components/group/**
- homeassistant/components/hassio/**
- homeassistant/components/homeassistant/**
- homeassistant/components/http/**
- homeassistant/components/image/*
- homeassistant/components/input_boolean/*
- homeassistant/components/input_button/*
- homeassistant/components/input_datetime/*
- homeassistant/components/input_number/*
- homeassistant/components/input_select/*
- homeassistant/components/input_text/*
- homeassistant/components/logbook/*
- homeassistant/components/logger/*
- homeassistant/components/lovelace/*
- homeassistant/components/media_source/*
- homeassistant/components/mjpeg/*
- homeassistant/components/mqtt/*
- homeassistant/components/network/*
- homeassistant/components/onboarding/*
- homeassistant/components/otp/*
- homeassistant/components/persistent_notification/*
- homeassistant/components/person/*
- homeassistant/components/recorder/*
- homeassistant/components/safe_mode/*
- homeassistant/components/script/*
- homeassistant/components/shopping_list/*
- homeassistant/components/ssdp/*
- homeassistant/components/stream/*
- homeassistant/components/sun/*
- homeassistant/components/system_health/*
- homeassistant/components/tag/*
- homeassistant/components/template/*
- homeassistant/components/timer/*
- homeassistant/components/usb/*
- homeassistant/components/webhook/*
- homeassistant/components/websocket_api/*
- homeassistant/components/zeroconf/*
- homeassistant/components/zone/*
- homeassistant/components/image/**
- homeassistant/components/input_boolean/**
- homeassistant/components/input_button/**
- homeassistant/components/input_datetime/**
- homeassistant/components/input_number/**
- homeassistant/components/input_select/**
- homeassistant/components/input_text/**
- homeassistant/components/logbook/**
- homeassistant/components/logger/**
- homeassistant/components/lovelace/**
- homeassistant/components/media_source/**
- homeassistant/components/mjpeg/**
- homeassistant/components/mqtt/**
- homeassistant/components/network/**
- homeassistant/components/onboarding/**
- homeassistant/components/otp/**
- homeassistant/components/persistent_notification/**
- homeassistant/components/person/**
- homeassistant/components/recorder/**
- homeassistant/components/safe_mode/**
- homeassistant/components/script/**
- homeassistant/components/shopping_list/**
- homeassistant/components/ssdp/**
- homeassistant/components/stream/**
- homeassistant/components/sun/**
- homeassistant/components/system_health/**
- homeassistant/components/tag/**
- homeassistant/components/template/**
- homeassistant/components/timer/**
- homeassistant/components/usb/**
- homeassistant/components/webhook/**
- homeassistant/components/websocket_api/**
- homeassistant/components/zeroconf/**
- homeassistant/components/zone/**
# Testing related files that affect the whole test/linting suite
tests: &tests
@@ -107,26 +109,27 @@ tests: &tests
- requirements_test_pre_commit.txt
- requirements_test.txt
- tests/auth/**
- tests/backports/*
- tests/backports/**
- tests/common.py
- tests/conftest.py
- tests/hassfest/*
- tests/helpers/*
- tests/hassfest/**
- tests/helpers/**
- tests/ignore_uncaught_exceptions.py
- tests/mock/*
- tests/pylint/*
- tests/scripts/*
- tests/test_util/*
- tests/mock/**
- tests/pylint/**
- tests/scripts/**
- tests/test_util/**
- tests/testing_config/**
- tests/util/**
other: &other
- .github/workflows/*
- .github/workflows/**
- homeassistant/scripts/**
requirements: &requirements
- .github/workflows/*
- .github/workflows/**
- homeassistant/package_constraints.txt
- script/pip_check
- requirements*.txt
- setup.cfg

View File

@@ -59,6 +59,7 @@ omit =
homeassistant/components/ampio/*
homeassistant/components/android_ip_webcam/*
homeassistant/components/androidtv/__init__.py
homeassistant/components/androidtv/diagnostics.py
homeassistant/components/anel_pwrctrl/switch.py
homeassistant/components/anthemav/media_player.py
homeassistant/components/apcupsd/*
@@ -101,10 +102,8 @@ omit =
homeassistant/components/baidu/tts.py
homeassistant/components/balboa/__init__.py
homeassistant/components/beewi_smartclim/sensor.py
homeassistant/components/bbb_gpio/*
homeassistant/components/bbox/device_tracker.py
homeassistant/components/bbox/sensor.py
homeassistant/components/bh1750/sensor.py
homeassistant/components/bitcoin/sensor.py
homeassistant/components/bizkaibus/sensor.py
homeassistant/components/blink/__init__.py
@@ -114,16 +113,10 @@ omit =
homeassistant/components/blink/const.py
homeassistant/components/blink/sensor.py
homeassistant/components/blinksticklight/light.py
homeassistant/components/blinkt/light.py
homeassistant/components/blockchain/sensor.py
homeassistant/components/bloomsky/*
homeassistant/components/bluesound/*
homeassistant/components/bluetooth_tracker/*
homeassistant/components/bme280/__init__.py
homeassistant/components/bme280/const.py
homeassistant/components/bme280/sensor.py
homeassistant/components/bme680/sensor.py
homeassistant/components/bmp280/sensor.py
homeassistant/components/bmw_connected_drive/__init__.py
homeassistant/components/bmw_connected_drive/binary_sensor.py
homeassistant/components/bmw_connected_drive/button.py
@@ -137,6 +130,7 @@ omit =
homeassistant/components/bosch_shc/cover.py
homeassistant/components/bosch_shc/entity.py
homeassistant/components/bosch_shc/sensor.py
homeassistant/components/bosch_shc/switch.py
homeassistant/components/braviatv/__init__.py
homeassistant/components/braviatv/const.py
homeassistant/components/braviatv/media_player.py
@@ -204,6 +198,8 @@ omit =
homeassistant/components/decora/light.py
homeassistant/components/decora_wifi/light.py
homeassistant/components/delijn/*
homeassistant/components/deluge/__init__.py
homeassistant/components/deluge/coordinator.py
homeassistant/components/deluge/sensor.py
homeassistant/components/deluge/switch.py
homeassistant/components/denon/media_player.py
@@ -218,10 +214,10 @@ omit =
homeassistant/components/devolo_home_control/sensor.py
homeassistant/components/devolo_home_control/subscriber.py
homeassistant/components/devolo_home_control/switch.py
homeassistant/components/dht/sensor.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
homeassistant/components/dlib_face_detect/image_processing.py
homeassistant/components/dlib_face_identify/image_processing.py
@@ -303,7 +299,6 @@ omit =
homeassistant/components/environment_canada/camera.py
homeassistant/components/environment_canada/sensor.py
homeassistant/components/environment_canada/weather.py
homeassistant/components/envirophat/sensor.py
homeassistant/components/envisalink/*
homeassistant/components/ephember/climate.py
homeassistant/components/epson/__init__.py
@@ -342,7 +337,15 @@ omit =
homeassistant/components/faa_delays/binary_sensor.py
homeassistant/components/fastdotcom/*
homeassistant/components/ffmpeg/camera.py
homeassistant/components/fibaro/*
homeassistant/components/fibaro/__init__.py
homeassistant/components/fibaro/binary_sensor.py
homeassistant/components/fibaro/climate.py
homeassistant/components/fibaro/cover.py
homeassistant/components/fibaro/light.py
homeassistant/components/fibaro/lock.py
homeassistant/components/fibaro/scene.py
homeassistant/components/fibaro/sensor.py
homeassistant/components/fibaro/switch.py
homeassistant/components/filesize/sensor.py
homeassistant/components/fints/sensor.py
homeassistant/components/fireservicerota/__init__.py
@@ -398,7 +401,6 @@ omit =
homeassistant/components/fritz/common.py
homeassistant/components/fritz/const.py
homeassistant/components/fritz/device_tracker.py
homeassistant/components/fritz/sensor.py
homeassistant/components/fritz/services.py
homeassistant/components/fritz/switch.py
homeassistant/components/fritzbox_callmonitor/__init__.py
@@ -490,7 +492,6 @@ omit =
homeassistant/components/honeywell/climate.py
homeassistant/components/horizon/media_player.py
homeassistant/components/hp_ilo/sensor.py
homeassistant/components/htu21d/sensor.py
homeassistant/components/huawei_lte/__init__.py
homeassistant/components/huawei_lte/binary_sensor.py
homeassistant/components/huawei_lte/device_tracker.py
@@ -622,7 +623,6 @@ omit =
homeassistant/components/launch_library/sensor.py
homeassistant/components/lcn/binary_sensor.py
homeassistant/components/lcn/climate.py
homeassistant/components/lcn/cover.py
homeassistant/components/lcn/helpers.py
homeassistant/components/lcn/scene.py
homeassistant/components/lcn/sensor.py
@@ -678,7 +678,6 @@ omit =
homeassistant/components/map/*
homeassistant/components/mastodon/notify.py
homeassistant/components/matrix/*
homeassistant/components/mcp23017/*
homeassistant/components/media_extractor/*
homeassistant/components/mediaroom/media_player.py
homeassistant/components/melcloud/__init__.py
@@ -718,8 +717,6 @@ omit =
homeassistant/components/mjpeg/camera.py
homeassistant/components/mjpeg/util.py
homeassistant/components/mochad/*
homeassistant/components/modbus/climate.py
homeassistant/components/modbus/binary_sensor.py
homeassistant/components/modem_callerid/button.py
homeassistant/components/modem_callerid/sensor.py
homeassistant/components/moehlenhoff_alpha2/__init__.py
@@ -729,7 +726,6 @@ omit =
homeassistant/components/motion_blinds/const.py
homeassistant/components/motion_blinds/cover.py
homeassistant/components/motion_blinds/sensor.py
homeassistant/components/mpchc/media_player.py
homeassistant/components/mpd/media_player.py
homeassistant/components/mqtt_room/sensor.py
homeassistant/components/msteams/notify.py
@@ -751,7 +747,6 @@ omit =
homeassistant/components/mysensors/handler.py
homeassistant/components/mysensors/helpers.py
homeassistant/components/mysensors/light.py
homeassistant/components/mysensors/notify.py
homeassistant/components/mysensors/switch.py
homeassistant/components/mystrom/binary_sensor.py
homeassistant/components/mystrom/light.py
@@ -862,12 +857,12 @@ omit =
homeassistant/components/openweathermap/weather_update_coordinator.py
homeassistant/components/opnsense/*
homeassistant/components/opple/light.py
homeassistant/components/orangepi_gpio/*
homeassistant/components/oru/*
homeassistant/components/orvibo/switch.py
homeassistant/components/osramlightify/light.py
homeassistant/components/otp/sensor.py
homeassistant/components/overkiz/__init__.py
homeassistant/components/overkiz/alarm_control_panel.py
homeassistant/components/overkiz/binary_sensor.py
homeassistant/components/overkiz/button.py
homeassistant/components/overkiz/climate.py
@@ -889,13 +884,9 @@ omit =
homeassistant/components/ovo_energy/__init__.py
homeassistant/components/ovo_energy/const.py
homeassistant/components/ovo_energy/sensor.py
homeassistant/components/ozw/__init__.py
homeassistant/components/ozw/entity.py
homeassistant/components/ozw/services.py
homeassistant/components/panasonic_bluray/media_player.py
homeassistant/components/panasonic_viera/media_player.py
homeassistant/components/pandora/media_player.py
homeassistant/components/pcal9535a/*
homeassistant/components/pencom/switch.py
homeassistant/components/philips_js/__init__.py
homeassistant/components/philips_js/diagnostics.py
@@ -904,10 +895,7 @@ omit =
homeassistant/components/philips_js/remote.py
homeassistant/components/philips_js/switch.py
homeassistant/components/pi_hole/sensor.py
homeassistant/components/pi4ioe5v9xxxx/binary_sensor.py
homeassistant/components/pi4ioe5v9xxxx/switch.py
homeassistant/components/picotts/tts.py
homeassistant/components/piglow/light.py
homeassistant/components/pilight/*
homeassistant/components/ping/__init__.py
homeassistant/components/ping/const.py
@@ -920,8 +908,10 @@ omit =
homeassistant/components/plaato/const.py
homeassistant/components/plaato/entity.py
homeassistant/components/plaato/sensor.py
homeassistant/components/plex/cast.py
homeassistant/components/plex/media_player.py
homeassistant/components/plex/view.py
homeassistant/components/plugwise/select.py
homeassistant/components/plum_lightpad/light.py
homeassistant/components/pocketcasts/sensor.py
homeassistant/components/point/__init__.py
@@ -967,7 +957,6 @@ omit =
homeassistant/components/rainmachine/model.py
homeassistant/components/rainmachine/sensor.py
homeassistant/components/rainmachine/switch.py
homeassistant/components/raspihats/*
homeassistant/components/raspyrfm/*
homeassistant/components/recollect_waste/__init__.py
homeassistant/components/recollect_waste/sensor.py
@@ -981,6 +970,7 @@ omit =
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/rest/notify.py
homeassistant/components/rest/switch.py
homeassistant/components/rfxtrx/diagnostics.py
homeassistant/components/ridwell/__init__.py
homeassistant/components/ridwell/sensor.py
homeassistant/components/ridwell/switch.py
@@ -1003,9 +993,6 @@ omit =
homeassistant/components/rova/sensor.py
homeassistant/components/rpi_camera/*
homeassistant/components/rpi_gpio/*
homeassistant/components/rpi_gpio_pwm/light.py
homeassistant/components/rpi_pfio/*
homeassistant/components/rpi_rf/switch.py
homeassistant/components/rtorrent/sensor.py
homeassistant/components/russound_rio/media_player.py
homeassistant/components/russound_rnet/media_player.py
@@ -1016,6 +1003,7 @@ omit =
homeassistant/components/screenlogic/__init__.py
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/diagnostics.py
homeassistant/components/screenlogic/light.py
homeassistant/components/screenlogic/number.py
homeassistant/components/screenlogic/sensor.py
@@ -1026,8 +1014,6 @@ omit =
homeassistant/components/sense/__init__.py
homeassistant/components/sense/binary_sensor.py
homeassistant/components/sense/sensor.py
homeassistant/components/sensehat/light.py
homeassistant/components/sensehat/sensor.py
homeassistant/components/senseme/__init__.py
homeassistant/components/senseme/binary_sensor.py
homeassistant/components/senseme/discovery.py
@@ -1036,10 +1022,14 @@ omit =
homeassistant/components/senseme/light.py
homeassistant/components/senseme/switch.py
homeassistant/components/sensibo/__init__.py
homeassistant/components/sensibo/binary_sensor.py
homeassistant/components/sensibo/climate.py
homeassistant/components/sensibo/coordinator.py
homeassistant/components/sensibo/diagnostics.py
homeassistant/components/sensibo/entity.py
homeassistant/components/sensibo/number.py
homeassistant/components/sensibo/select.py
homeassistant/components/sensibo/sensor.py
homeassistant/components/serial/sensor.py
homeassistant/components/serial_pm/sensor.py
homeassistant/components/sesame/lock.py
@@ -1055,7 +1045,6 @@ omit =
homeassistant/components/shelly/number.py
homeassistant/components/shelly/sensor.py
homeassistant/components/shelly/utils.py
homeassistant/components/sht31/sensor.py
homeassistant/components/sigfox/sensor.py
homeassistant/components/simplepush/notify.py
homeassistant/components/simplisafe/__init__.py
@@ -1086,9 +1075,6 @@ omit =
homeassistant/components/smappee/sensor.py
homeassistant/components/smappee/switch.py
homeassistant/components/smarty/*
homeassistant/components/smarthab/__init__.py
homeassistant/components/smarthab/cover.py
homeassistant/components/smarthab/light.py
homeassistant/components/sms/__init__.py
homeassistant/components/sms/const.py
homeassistant/components/sms/gateway.py
@@ -1194,6 +1180,7 @@ omit =
homeassistant/components/synology_dsm/sensor.py
homeassistant/components/synology_dsm/service.py
homeassistant/components/synology_dsm/switch.py
homeassistant/components/synology_dsm/update.py
homeassistant/components/synology_srm/device_tracker.py
homeassistant/components/syslog/notify.py
homeassistant/components/system_bridge/__init__.py
@@ -1209,7 +1196,10 @@ omit =
homeassistant/components/tado/sensor.py
homeassistant/components/tado/water_heater.py
homeassistant/components/tank_utility/sensor.py
homeassistant/components/tankerkoenig/*
homeassistant/components/tankerkoenig/__init__.py
homeassistant/components/tankerkoenig/binary_sensor.py
homeassistant/components/tankerkoenig/const.py
homeassistant/components/tankerkoenig/sensor.py
homeassistant/components/tapsaff/binary_sensor.py
homeassistant/components/tautulli/const.py
homeassistant/components/tautulli/coordinator.py
@@ -1244,7 +1234,6 @@ omit =
homeassistant/components/tmb/sensor.py
homeassistant/components/todoist/calendar.py
homeassistant/components/todoist/const.py
homeassistant/components/tof/sensor.py
homeassistant/components/tolo/__init__.py
homeassistant/components/tolo/binary_sensor.py
homeassistant/components/tolo/button.py
@@ -1287,8 +1276,10 @@ omit =
homeassistant/components/tradfri/light.py
homeassistant/components/tradfri/sensor.py
homeassistant/components/tradfri/switch.py
homeassistant/components/trafikverket_train/__init__.py
homeassistant/components/trafikverket_train/sensor.py
homeassistant/components/trafikverket_weatherstation/__init__.py
homeassistant/components/trafikverket_weatherstation/coordinator.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
@@ -1335,10 +1326,8 @@ omit =
homeassistant/components/upc_connect/*
homeassistant/components/uscis/sensor.py
homeassistant/components/vallox/__init__.py
homeassistant/components/vallox/const.py
homeassistant/components/vallox/fan.py
homeassistant/components/vallox/sensor.py
homeassistant/components/vallox/binary_sensor.py
homeassistant/components/vasttrafik/sensor.py
homeassistant/components/velbus/__init__.py
homeassistant/components/velbus/binary_sensor.py
@@ -1391,6 +1380,9 @@ omit =
homeassistant/components/volumio/browse_media.py
homeassistant/components/volumio/media_player.py
homeassistant/components/volvooncall/*
homeassistant/components/vulcan/__init__.py
homeassistant/components/vulcan/calendar.py
homeassistant/components/vulcan/fetch_data.py
homeassistant/components/w800rf32/*
homeassistant/components/waqi/sensor.py
homeassistant/components/waterfurnace/*
@@ -1433,6 +1425,7 @@ omit =
homeassistant/components/xiaomi_miio/air_quality.py
homeassistant/components/xiaomi_miio/alarm_control_panel.py
homeassistant/components/xiaomi_miio/binary_sensor.py
homeassistant/components/xiaomi_miio/button.py
homeassistant/components/xiaomi_miio/device.py
homeassistant/components/xiaomi_miio/device_tracker.py
homeassistant/components/xiaomi_miio/fan.py
@@ -1489,18 +1482,19 @@ omit =
homeassistant/components/ziggo_mediabox_xl/media_player.py
homeassistant/components/zoneminder/*
homeassistant/components/supla/*
homeassistant/components/zwave/util.py
homeassistant/components/zwave_js/discovery.py
homeassistant/components/zwave_js/sensor.py
homeassistant/components/zwave_me/__init__.py
homeassistant/components/zwave_me/binary_sensor.py
homeassistant/components/zwave_me/button.py
homeassistant/components/zwave_me/cover.py
homeassistant/components/zwave_me/climate.py
homeassistant/components/zwave_me/helpers.py
homeassistant/components/zwave_me/light.py
homeassistant/components/zwave_me/lock.py
homeassistant/components/zwave_me/number.py
homeassistant/components/zwave_me/sensor.py
homeassistant/components/zwave_me/siren.py
homeassistant/components/zwave_me/switch.py
[report]

View File

@@ -24,12 +24,12 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
with:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
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@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
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@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -135,7 +135,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.01.0
uses: home-assistant/builder@2022.03.1
with:
args: |
$BUILD_ARGS \
@@ -173,7 +173,7 @@ jobs:
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set build additional args
run: |
@@ -200,7 +200,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.01.0
uses: home-assistant/builder@2022.03.1
with:
args: |
$BUILD_ARGS \
@@ -216,7 +216,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- 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@v2.4.0
uses: actions/checkout@v3.0.0
- name: Login to DockerHub
if: matrix.registry == 'homeassistant'
@@ -339,7 +339,7 @@ jobs:
# Create general tags
if [[ "${{ needs.init.outputs.version }}" =~ d ]]; then
create_manifest"dev" "${{ needs.init.outputs.version }}"
create_manifest "dev" "${{ needs.init.outputs.version }}"
elif [[ "${{ needs.init.outputs.version }}" =~ b ]]; then
create_manifest "beta" "${{ needs.init.outputs.version }}"
create_manifest "rc" "${{ needs.init.outputs.version }}"

View File

@@ -11,18 +11,18 @@ on:
workflow_dispatch:
inputs:
full:
description: 'Full run (regardless of changes)'
description: "Full run (regardless of changes)"
default: false
type: boolean
lint-only:
description: 'Skip pytest'
description: "Skip pytest"
default: false
type: boolean
env:
CACHE_VERSION: 9
PIP_CACHE_VERSION: 3
HA_SHORT_VERSION: 2022.3
HA_SHORT_VERSION: 2022.4
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@v2.4.0
uses: actions/checkout@v3.0.0
- name: Filter for core changes
uses: dorny/paths-filter@v2.10.2
id: core
@@ -62,7 +62,7 @@ jobs:
integrations=$(ls -Ad ./homeassistant/components/[!_]* | xargs -n 1 basename)
touch .integration_paths.yaml
for integration in $integrations; do
echo "${integration}: [homeassistant/components/${integration}/*, tests/components/${integration}/*]" \
echo "${integration}: [homeassistant/components/${integration}/**, tests/components/${integration}/**]" \
>> .integration_paths.yaml;
done
echo "Result:"
@@ -119,7 +119,8 @@ jobs:
|| [[ "${{ github.ref }}" == "refs/heads/master" ]] \
|| [[ "${{ github.ref }}" == "refs/heads/rc" ]] \
|| [[ "${{ steps.core.outputs.any }}" == "true" ]] \
|| [[ "${{ github.event.inputs.full }}" == "true" ]];
|| [[ "${{ github.event.inputs.full }}" == "true" ]] \
|| [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci-full-run') }}" == "true" ]];
then
test_groups="[1, 2, 3, 4, 5, 6]"
test_group_count=6
@@ -151,10 +152,10 @@ jobs:
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Generate partial Python venv restore key
@@ -171,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@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: >-
@@ -188,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@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -211,7 +212,7 @@ jobs:
hashFiles('.pre-commit-config.yaml') }}"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >-
@@ -232,15 +233,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -252,7 +253,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -282,15 +283,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -302,7 +303,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -333,15 +334,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -353,7 +354,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -375,15 +376,15 @@ jobs:
- prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -395,7 +396,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
@@ -434,6 +435,11 @@ jobs:
. venv/bin/activate
pre-commit run --hook-stage manual check-json --all-files
- name: Run prettier
run: |
. venv/bin/activate
pre-commit run --hook-stage manual prettier --all-files
- name: Register check executables problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/check-executables-have-shebangs.json"
@@ -485,10 +491,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -509,15 +515,15 @@ jobs:
needs: prepare-base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.3.2
uses: actions/setup-python@v3.0.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
@@ -544,7 +550,7 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
@@ -559,7 +565,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@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: >-
@@ -576,7 +582,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@v2.1.7
uses: actions/cache@v3.0.0
with:
path: ${{ env.PIP_CACHE }}
key: >-
@@ -612,10 +618,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -654,10 +660,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -686,7 +692,7 @@ jobs:
pip-check:
runs-on: ubuntu-latest
if: needs.changes.outputs.requirements == 'true'
if: needs.changes.outputs.requirements == 'true' || github.event.inputs.full == 'true'
needs:
- changes
- prepare-tests
@@ -698,10 +704,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -741,10 +747,10 @@ jobs:
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v2.1.7
uses: actions/cache@v3.0.0
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
@@ -812,24 +818,8 @@ jobs:
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }}
- name: Run pytest (partially); no coverage
if: needs.changes.outputs.test_full_suite == 'false'
timeout-minutes: 10
run: |
. venv/bin/activate
python --version
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--durations=10 \
-n auto \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }}
- name: Upload coverage artifact
uses: actions/upload-artifact@v2.3.1
uses: actions/upload-artifact@v3.0.0
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -845,7 +835,7 @@ jobs:
- pytest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Download all coverage artifacts
uses: actions/download-artifact@v2
- name: Upload coverage to Codecov (full coverage)

View File

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

View File

@@ -22,7 +22,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Get information
id: info
@@ -50,13 +50,13 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v2.3.1
uses: actions/upload-artifact@v3.0.0
with:
name: env_file
path: ./.env_file
- name: Upload requirements_diff
uses: actions/upload-artifact@v2.3.1
uses: actions/upload-artifact@v3.0.0
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -74,7 +74,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Download env_file
uses: actions/download-artifact@v2
@@ -99,7 +99,7 @@ jobs:
pip: "Cython;numpy"
skip-binary: aiohttp
constraints: "homeassistant/package_constraints.txt"
requirements-diff: 'requirements_diff.txt'
requirements-diff: "requirements_diff.txt"
requirements: "requirements.txt"
integrations:
@@ -115,7 +115,7 @@ jobs:
- "3.9-alpine3.14"
steps:
- name: Checkout the repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.0.0
- name: Download env_file
uses: actions/download-artifact@v2
@@ -135,14 +135,9 @@ jobs:
sed -i "s|# bluepy|bluepy|g" ${requirement_file}
sed -i "s|# beacontools|beacontools|g" ${requirement_file}
sed -i "s|# RPi.GPIO|RPi.GPIO|g" ${requirement_file}
sed -i "s|# raspihats|raspihats|g" ${requirement_file}
sed -i "s|# rpi-rf|rpi-rf|g" ${requirement_file}
sed -i "s|# blinkt|blinkt|g" ${requirement_file}
sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file}
sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file}
sed -i "s|# evdev|evdev|g" ${requirement_file}
sed -i "s|# smbus-cffi|smbus-cffi|g" ${requirement_file}
sed -i "s|# i2csense|i2csense|g" ${requirement_file}
sed -i "s|# python-eq3bt|python-eq3bt|g" ${requirement_file}
sed -i "s|# pycups|pycups|g" ${requirement_file}
sed -i "s|# homekit|homekit|g" ${requirement_file}
@@ -152,9 +147,7 @@ jobs:
sed -i "s|# PySwitchbot|PySwitchbot|g" ${requirement_file}
sed -i "s|# pySwitchmate|pySwitchmate|g" ${requirement_file}
sed -i "s|# face_recognition|face_recognition|g" ${requirement_file}
sed -i "s|# bme680|bme680|g" ${requirement_file}
sed -i "s|# python-gammu|python-gammu|g" ${requirement_file}
sed -i "s|# homeassistant-pyozw|homeassistant-pyozw|g" ${requirement_file}
done
- name: Build wheels
@@ -170,5 +163,5 @@ jobs:
pip: "Cython;numpy;scikit-build"
skip-binary: aiohttp,grpcio
constraints: "homeassistant/package_constraints.txt"
requirements-diff: 'requirements_diff.txt'
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txt"

View File

@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.31.0
rev: v2.31.1
hooks:
- id: pyupgrade
args: [--py39-plus]
- repo: https://github.com/psf/black
rev: 22.1.0
rev: 22.3.0
hooks:
- id: black
args:
@@ -31,12 +31,12 @@ repos:
- pyflakes==2.4.0
- flake8-docstrings==1.6.0
- pydocstyle==6.1.1
- flake8-comprehensions==3.7.0
- flake8-comprehensions==3.8.0
- flake8-noqa==1.2.1
- mccabe==0.6.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.7.0
rev: 1.7.4
hooks:
- id: bandit
args:
@@ -45,7 +45,7 @@ repos:
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/isort
rev: 5.10.0
rev: 5.10.1
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -65,10 +65,9 @@ repos:
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.2.1
rev: v2.6.1
hooks:
- id: prettier
stages: [manual]
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.3.5
hooks:

View File

@@ -2,4 +2,3 @@
azure-*.yml
docs/source/_templates/*
homeassistant/components/*/translations/*.json
tests/fixtures/*

View File

@@ -28,10 +28,12 @@ homeassistant.util.unit_system
# --- Add components below this line ---
homeassistant.components
homeassistant.components.alert.*
homeassistant.components.abode.*
homeassistant.components.acer_projector.*
homeassistant.components.accuweather.*
homeassistant.components.actiontec.*
homeassistant.components.adguard.*
homeassistant.components.aftership.*
homeassistant.components.air_quality.*
homeassistant.components.airly.*
@@ -45,6 +47,7 @@ homeassistant.components.amcrest.*
homeassistant.components.ampio.*
homeassistant.components.aseko_pool_live.*
homeassistant.components.automation.*
homeassistant.components.backup.*
homeassistant.components.binary_sensor.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
@@ -68,6 +71,7 @@ homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
homeassistant.components.devolo_home_network.*
homeassistant.components.dhcp.*
homeassistant.components.dlna_dmr.*
homeassistant.components.dnsip.*
homeassistant.components.dsmr.*
@@ -78,6 +82,7 @@ homeassistant.components.esphome.*
homeassistant.components.energy.*
homeassistant.components.evil_genius_labs.*
homeassistant.components.fastdotcom.*
homeassistant.components.filesize.*
homeassistant.components.fitbit.*
homeassistant.components.flunearyou.*
homeassistant.components.flux_led.*
@@ -94,6 +99,14 @@ homeassistant.components.group.*
homeassistant.components.guardian.*
homeassistant.components.history.*
homeassistant.components.homeassistant.triggers.event
homeassistant.components.homekit
homeassistant.components.homekit.accessories
homeassistant.components.homekit.aidmanager
homeassistant.components.homekit.config_flow
homeassistant.components.homekit.diagnostics
homeassistant.components.homekit.logbook
homeassistant.components.homekit.type_triggers
homeassistant.components.homekit.util
homeassistant.components.homekit_controller
homeassistant.components.homekit_controller.alarm_control_panel
homeassistant.components.homekit_controller.button
@@ -114,6 +127,7 @@ homeassistant.components.isy994.*
homeassistant.components.iqvia.*
homeassistant.components.jellyfin.*
homeassistant.components.jewish_calendar.*
homeassistant.components.kaleidescape.*
homeassistant.components.knx.*
homeassistant.components.kraken.*
homeassistant.components.lametric.*
@@ -125,10 +139,11 @@ homeassistant.components.lookin.*
homeassistant.components.luftdaten.*
homeassistant.components.mailbox.*
homeassistant.components.media_player.*
homeassistant.components.media_source.*
homeassistant.components.mjpeg.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
homeassistant.components.media_source.*
homeassistant.components.moon.*
homeassistant.components.mysensors.*
homeassistant.components.nam.*
homeassistant.components.nanoleaf.*
@@ -146,6 +161,7 @@ homeassistant.components.oncue.*
homeassistant.components.onewire.*
homeassistant.components.open_meteo.*
homeassistant.components.openuv.*
homeassistant.components.peco.*
homeassistant.components.overkiz.*
homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
@@ -156,9 +172,18 @@ homeassistant.components.pure_energie.*
homeassistant.components.rainmachine.*
homeassistant.components.rdw.*
homeassistant.components.recollect_waste.*
homeassistant.components.recorder
homeassistant.components.recorder.const
homeassistant.components.recorder.backup
homeassistant.components.recorder.executor
homeassistant.components.recorder.history
homeassistant.components.recorder.models
homeassistant.components.recorder.pool
homeassistant.components.recorder.purge
homeassistant.components.recorder.repack
homeassistant.components.recorder.statistics
homeassistant.components.recorder.util
homeassistant.components.recorder.websocket_api
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.ridwell.*
@@ -202,8 +227,10 @@ homeassistant.components.tts.*
homeassistant.components.twentemilieu.*
homeassistant.components.unifiprotect.*
homeassistant.components.upcloud.*
homeassistant.components.update.*
homeassistant.components.uptime.*
homeassistant.components.uptimerobot.*
homeassistant.components.usb.*
homeassistant.components.vacuum.*
homeassistant.components.vallox.*
homeassistant.components.velbus.*
@@ -217,6 +244,8 @@ homeassistant.components.websocket_api.*
homeassistant.components.wemo.*
homeassistant.components.whois.*
homeassistant.components.wiz.*
homeassistant.components.worldclock.*
homeassistant.components.yale_smart_alarm.*
homeassistant.components.zodiac.*
homeassistant.components.zeroconf.*
homeassistant.components.zone.*

2313
CODEOWNERS

File diff suppressed because it is too large Load Diff

View File

@@ -15,8 +15,7 @@ RUN \
-r homeassistant/requirements.txt --use-deprecated=legacy-resolver
COPY requirements_all.txt homeassistant/
RUN \
sed -i "s|# homeassistant-pyozw|homeassistant-pyozw|g" homeassistant/requirements_all.txt \
&& pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements_all.txt --use-deprecated=legacy-resolver
## Setup Home Assistant Core

View File

@@ -4,13 +4,15 @@ from __future__ import annotations
from enum import Enum
from typing import Any, TypeVar
T = TypeVar("T", bound="StrEnum")
_StrEnumT = TypeVar("_StrEnumT", bound="StrEnum")
class StrEnum(str, Enum):
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
def __new__(cls: type[T], value: str, *args: Any, **kwargs: Any) -> T:
def __new__(
cls: type[_StrEnumT], value: str, *args: Any, **kwargs: Any
) -> _StrEnumT:
"""Create a new StrEnum instance."""
if not isinstance(value, str):
raise TypeError(f"{value!r} is not a string")
@@ -21,7 +23,7 @@ class StrEnum(str, Enum):
return str(self.value)
@staticmethod
def _generate_next_value_( # pylint: disable=arguments-differ # https://github.com/PyCQA/pylint/issues/5371
def _generate_next_value_(
name: str, start: int, count: int, last_values: list[Any]
) -> Any:
"""

View File

@@ -88,8 +88,6 @@ class AbodeCamera(AbodeDevice, Camera):
self, width: int | None = None, height: int | None = None
) -> bytes | None:
"""Get a camera image."""
if not self.capture():
return None
self.refresh_image()
if self._response:

View File

@@ -26,11 +26,10 @@
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_mfa_code": "Invalid MFA code"
},
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
}
}
}

View File

@@ -6,7 +6,7 @@
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_auth": "Authentification invalide",
"invalid_auth": "Authentification non valide",
"invalid_mfa_code": "Code MFA non valide"
},
"step": {
@@ -19,14 +19,14 @@
"reauth_confirm": {
"data": {
"password": "Mot de passe",
"username": "Email"
"username": "Courriel"
},
"title": "Remplissez vos informations de connexion Abode"
},
"user": {
"data": {
"password": "Mot de passe",
"username": "Email"
"username": "Courriel"
},
"title": "Remplissez vos informations de connexion Abode"
}

View File

@@ -0,0 +1,28 @@
"""Diagnostics support for AccuWeather."""
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
from homeassistant.core import HomeAssistant
from . import AccuWeatherDataUpdateCoordinator
from .const import DOMAIN
TO_REDACT = {CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict:
"""Return diagnostics for a config entry."""
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][
config_entry.entry_id
]
diagnostics_data = {
"config_entry_data": async_redact_data(dict(config_entry.data), TO_REDACT),
"coordinator_data": coordinator.data,
}
return diagnostics_data

View File

@@ -58,11 +58,12 @@ async def async_setup_entry(
async_add_entities(sensors)
class AccuWeatherSensor(CoordinatorEntity, SensorEntity):
class AccuWeatherSensor(
CoordinatorEntity[AccuWeatherDataUpdateCoordinator], SensorEntity
):
"""Define an AccuWeather entity."""
_attr_attribution = ATTRIBUTION
coordinator: AccuWeatherDataUpdateCoordinator
entity_description: AccuWeatherSensorDescription
def __init__(

View File

@@ -2,8 +2,6 @@
"config": {
"step": {
"user": {
"title": "AccuWeather",
"description": "If you need help with the configuration have a look here: https://www.home-assistant.io/integrations/accuweather/\n\nSome 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.",
"data": {
"name": "[%key:common::config_flow::data::name%]",
"api_key": "[%key:common::config_flow::data::api_key%]",
@@ -12,6 +10,9 @@
}
}
},
"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": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
@@ -24,7 +25,6 @@
"options": {
"step": {
"user": {
"title": "AccuWeather Options",
"description": "Due to the limitations of the free version of the AccuWeather API key, when you enable weather forecast, data updates will be performed every 80 minutes instead of every 40 minutes.",
"data": {
"forecast": "Weather forecast"

View File

@@ -16,7 +16,7 @@
"longitude": "Longitud",
"name": "Nombre"
},
"description": "Si necesitas ayuda con la configuraci\u00f3n, echa un vistazo aqu\u00ed: https://www.home-assistant.io/integrations/accuweather/ \n\nEl pron\u00f3stico del tiempo no est\u00e1 habilitado por defecto. Puedes habilitarlo en las opciones de la integraci\u00f3n.",
"description": "Si necesitas ayuda con la configuraci\u00f3n, echa un vistazo aqu\u00ed: https://www.home-assistant.io/integrations/accuweather/ \n\nAlgunos sensores no est\u00e1n habilitados por defecto. Los puedes habilitar en el registro de entidades despu\u00e9s de configurar la integraci\u00f3n.\nEl pron\u00f3stico del tiempo no est\u00e1 habilitado por defecto. Puedes habilitarlo en las opciones de la integraci\u00f3n.",
"title": "AccuWeather"
}
}

View File

@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_api_key": "Cl\u00e9 API invalide",
"invalid_api_key": "Cl\u00e9 d'API non valide",
"requests_exceeded": "Le nombre autoris\u00e9 de requ\u00eates adress\u00e9es \u00e0 l'API AccuWeather a \u00e9t\u00e9 d\u00e9pass\u00e9. Vous devez attendre ou modifier la cl\u00e9 API."
},
"step": {

View File

@@ -56,11 +56,11 @@ async def async_setup_entry(
async_add_entities([AccuWeatherEntity(name, coordinator)])
class AccuWeatherEntity(CoordinatorEntity, WeatherEntity):
class AccuWeatherEntity(
CoordinatorEntity[AccuWeatherDataUpdateCoordinator], WeatherEntity
):
"""Define an AccuWeather entity."""
coordinator: AccuWeatherDataUpdateCoordinator
def __init__(
self, name: str, coordinator: AccuWeatherDataUpdateCoordinator
) -> None:

View File

@@ -3,12 +3,8 @@
"name": "Adax",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/adax",
"requirements": [
"adax==0.2.0", "Adax-local==0.1.3"
],
"codeowners": [
"@danielhiversen"
],
"requirements": ["adax==0.2.0", "Adax-local==0.1.3"],
"codeowners": ["@danielhiversen"],
"iot_class": "local_polling",
"loggers": ["adax", "adax_local"]
}

View File

@@ -4,23 +4,23 @@
"already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9",
"heater_not_available": "Chauffage non disponible. Essayez de r\u00e9initialiser le chauffage en appuyant sur + et OK pendant quelques secondes.",
"heater_not_found": "Chauffage introuvable. Essayez de rapprocher le radiateur de l'ordinateur Home Assistant.",
"invalid_auth": "Authentification invalide"
"invalid_auth": "Authentification non valide"
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_auth": "Authentification invalide"
"invalid_auth": "Authentification non valide"
},
"step": {
"cloud": {
"data": {
"account_id": "Identifiant de compte",
"password": "Mot der passe"
"password": "Mot de passe"
}
},
"local": {
"data": {
"wifi_pswd": "Mot de passe WiFi",
"wifi_ssid": "identifiant Wifi"
"wifi_pswd": "Mot de passe Wi-Fi",
"wifi_ssid": "R\u00e9seau Wi-Fi"
},
"description": "R\u00e9initialisez le radiateur en appuyant sur + et OK jusqu'\u00e0 ce que l'\u00e9cran affiche \u00ab\u00a0Reset\u00a0\u00bb. Appuyez ensuite sur le bouton OK du radiateur et maintenez-le enfonc\u00e9 jusqu'\u00e0 ce que le voyant bleu commence \u00e0 clignoter avant d'appuyer sur Soumettre. La configuration du chauffage peut prendre quelques minutes."
},

View File

@@ -27,11 +27,11 @@
"user": {
"data": {
"account_id": "\u5e33\u865f ID",
"connection_type": "\u9078\u64c7\u9023\u7dda\u985e\u578b",
"connection_type": "\u9078\u64c7\u9023\u7dda\u985e\u5225",
"host": "\u4e3b\u6a5f\u7aef",
"password": "\u5bc6\u78bc"
},
"description": "\u9078\u64c7\u9023\u7dda\u985e\u578b\u3002\u672c\u5730\u7aef\u5c07\u9700\u8981\u5177\u5099\u85cd\u82bd\u52a0\u71b1\u5668"
"description": "\u9078\u64c7\u9023\u7dda\u985e\u5225\u3002\u672c\u5730\u7aef\u5c07\u9700\u8981\u5177\u5099\u85cd\u82bd\u52a0\u71b1\u5668"
}
}
}

View File

@@ -27,7 +27,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
VERSION = 1
_hassio_discovery = None
_hassio_discovery: dict[str, Any] | None = None
async def _show_setup_form(
self, errors: dict[str, str] | None = None
@@ -56,7 +56,6 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
return self.async_show_form(
step_id="hassio_confirm",
description_placeholders={"addon": self._hassio_discovery["addon"]},
data_schema=vol.Schema({}),
errors=errors or {},
)

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
from datetime import timedelta
import logging
from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
@@ -76,7 +77,7 @@ class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
"""Return the state of the switch."""
return self._state
async def async_turn_off(self, **kwargs) -> None:
async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn off the switch."""
try:
await self._adguard_turn_off()
@@ -88,7 +89,7 @@ class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
"""Turn off the switch."""
raise NotImplementedError()
async def async_turn_on(self, **kwargs) -> None:
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn on the switch."""
try:
await self._adguard_turn_on()

View File

@@ -18,12 +18,12 @@ write_data_by_name:
selector:
select:
options:
- 'bool'
- 'byte'
- 'dint'
- 'int'
- 'udint'
- 'uint'
- "bool"
- "byte"
- "dint"
- "int"
- "udint"
- "uint"
value:
name: Value
description: The value to write to the variable.

View File

@@ -3,15 +3,9 @@
"name": "Advantage Air",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/advantage_air",
"codeowners": [
"@Bre77"
],
"requirements": [
"advantage_air==0.3.1"
],
"codeowners": ["@Bre77"],
"requirements": ["advantage_air==0.3.1"],
"quality_scale": "platinum",
"iot_class": "local_polling",
"loggers": [
"advantage_air"
]
}
"loggers": ["advantage_air"]
}

View File

@@ -64,7 +64,7 @@ async def async_setup_entry(
async_add_entities(entities)
class AbstractAemetSensor(CoordinatorEntity, SensorEntity):
class AbstractAemetSensor(CoordinatorEntity[WeatherUpdateCoordinator], SensorEntity):
"""Abstract class for an AEMET OpenData sensor."""
_attr_extra_state_attributes = {ATTR_ATTRIBUTION: ATTRIBUTION}

View File

@@ -1,31 +1,30 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]"
},
"error": {
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]"
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "Name of the integration"
},
"description": "Set up AEMET OpenData integration. To generate API key go to https://opendata.aemet.es/centrodedescargas/altaUsuario",
"title": "AEMET OpenData"
}
}
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]"
},
"options": {
"step": {
"init": {
"data": {
"station_updates": "Gather data from AEMET weather stations"
}
}
}
"error": {
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]"
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "Name of the integration"
},
"description": "To generate API key go to https://opendata.aemet.es/centrodedescargas/altaUsuario"
}
}
},
"options": {
"step": {
"init": {
"data": {
"station_updates": "Gather data from AEMET weather stations"
}
}
}
}
}

View File

@@ -4,7 +4,7 @@
"already_configured": "L'emplacement est d\u00e9j\u00e0 configur\u00e9"
},
"error": {
"invalid_api_key": "Cl\u00e9 API invalide"
"invalid_api_key": "Cl\u00e9 d'API non valide"
},
"step": {
"user": {

View File

@@ -43,7 +43,7 @@ async def async_setup_entry(
async_add_entities(entities, False)
class AemetWeather(CoordinatorEntity, WeatherEntity):
class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
"""Implementation of an AEMET OpenData sensor."""
_attr_attribution = ATTRIBUTION

View File

@@ -2,9 +2,7 @@
"domain": "aftership",
"name": "AfterShip",
"documentation": "https://www.home-assistant.io/integrations/aftership",
"requirements": [
"pyaftership==21.11.0"
],
"requirements": ["pyaftership==21.11.0"],
"codeowners": [],
"iot_class": "cloud_polling"
}

View File

@@ -15,7 +15,10 @@ from homeassistant.const import CONF_API_KEY, CONF_NAME
from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.dispatcher import (
async_dispatcher_connect,
async_dispatcher_send,
)
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import Throttle
@@ -128,9 +131,7 @@ class AfterShipSensor(SensorEntity):
async def async_added_to_hass(self) -> None:
"""Register callbacks."""
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
UPDATE_TOPIC, self._force_update
)
async_dispatcher_connect(self.hass, UPDATE_TOPIC, self._force_update)
)
async def _force_update(self) -> None:

View File

@@ -2,6 +2,6 @@
"domain": "air_quality",
"name": "Air Quality",
"documentation": "https://www.home-assistant.io/integrations/air_quality",
"codeowners": [],
"codeowners": ["@home-assistant/core"],
"quality_scale": "internal"
}

View File

@@ -134,10 +134,9 @@ async def async_setup_entry(
async_add_entities(sensors, False)
class AirlySensor(CoordinatorEntity, SensorEntity):
class AirlySensor(CoordinatorEntity[AirlyDataUpdateCoordinator], SensorEntity):
"""Define an Airly sensor."""
coordinator: AirlyDataUpdateCoordinator
entity_description: AirlySensorEntityDescription
def __init__(

View File

@@ -2,8 +2,7 @@
"config": {
"step": {
"user": {
"title": "Airly",
"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",
"data": {
"name": "[%key:common::config_flow::data::name%]",
"api_key": "[%key:common::config_flow::data::api_key%]",

View File

@@ -4,7 +4,7 @@
"already_configured": "L'emplacement est d\u00e9j\u00e0 configur\u00e9"
},
"error": {
"invalid_api_key": "Cl\u00e9 API invalide",
"invalid_api_key": "Cl\u00e9 d'API non valide",
"wrong_location": "Aucune station de mesure Airly dans cette zone."
},
"step": {

View File

@@ -70,11 +70,9 @@ async def async_setup_entry(
async_add_entities(entities, False)
class AirNowSensor(CoordinatorEntity, SensorEntity):
class AirNowSensor(CoordinatorEntity[AirNowDataUpdateCoordinator], SensorEntity):
"""Define an AirNow sensor."""
coordinator: AirNowDataUpdateCoordinator
def __init__(
self,
coordinator: AirNowDataUpdateCoordinator,

View File

@@ -2,8 +2,7 @@
"config": {
"step": {
"user": {
"title": "AirNow",
"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/",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",

View File

@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_auth": "Authentification invalide",
"invalid_auth": "Authentification non valide",
"invalid_location": "Aucun r\u00e9sultat trouv\u00e9 pour cet emplacement",
"unknown": "Erreur inattendue"
},

View File

@@ -4,9 +4,7 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airthings",
"requirements": ["airthings_cloud==0.1.0"],
"codeowners": [
"@danielhiversen"
],
"codeowners": ["@danielhiversen"],
"iot_class": "cloud_polling",
"loggers": ["airthings"]
}
}

View File

@@ -18,4 +18,4 @@
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]"
}
}
}
}

View File

@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_auth": "Authentification invalide",
"invalid_auth": "Authentification non valide",
"unknown": "Erreur inattendue"
},
"step": {

View File

@@ -3,12 +3,8 @@
"name": "AirTouch 4",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airtouch4",
"requirements": [
"airtouch4pyapi==1.0.5"
],
"codeowners": [
"@LonePurpleWolf"
],
"requirements": ["airtouch4pyapi==1.0.5"],
"codeowners": ["@LonePurpleWolf"],
"iot_class": "local_polling",
"loggers": ["airtouch4pyapi"]
}
}

View File

@@ -7,7 +7,7 @@
"error": {
"cannot_connect": "\u00c9chec de connexion",
"general_error": "Erreur inattendue",
"invalid_api_key": "Cl\u00e9 API invalide",
"invalid_api_key": "Cl\u00e9 d'API non valide",
"location_not_found": "Emplacement introuvable"
},
"step": {
@@ -25,7 +25,7 @@
"api_key": "Cl\u00e9 d'API",
"city": "Ville",
"country": "Pays",
"state": "Etat"
"state": "\u00c9tat"
},
"description": "Utilisez l'API cloud AirVisual pour surveiller une ville / un \u00e9tat / un pays.",
"title": "Configurer un lieu g\u00e9ographique"

View File

@@ -11,7 +11,7 @@
"airvisual__pollutant_level": {
"good": "Bon",
"hazardous": "Hasardeux",
"moderate": "Mod\u00e9rer",
"moderate": "Mod\u00e9r\u00e9",
"unhealthy": "Malsain",
"unhealthy_sensitive": "Malsain pour les groupes sensibles",
"very_unhealthy": "Tr\u00e8s malsain"

View File

@@ -2,7 +2,8 @@
"state": {
"airvisual__pollutant_level": {
"good": "\u05d8\u05d5\u05d1",
"unhealthy": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0"
"unhealthy": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0",
"unhealthy_sensitive": "\u05dc\u05d0 \u05d1\u05e8\u05d9\u05d0 \u05dc\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05e8\u05d2\u05d9\u05e9\u05d5\u05ea"
}
}
}

View File

@@ -45,7 +45,7 @@
"title": "\u91cd\u65b0\u8a8d\u8b49 AirVisual"
},
"user": {
"description": "\u9078\u64c7\u6240\u8981\u76e3\u63a7\u7684 AirVisual \u8cc7\u6599\u985e\u578b\u3002",
"description": "\u9078\u64c7\u6240\u8981\u76e3\u63a7\u7684 AirVisual \u8cc7\u6599\u985e\u5225\u3002",
"title": "\u8a2d\u5b9a AirVisual"
}
}

View File

@@ -0,0 +1,89 @@
"""The Airzone integration."""
from __future__ import annotations
from typing import Any
from aioairzone.common import ConnectionOptions
from aioairzone.const import (
AZD_ID,
AZD_NAME,
AZD_SYSTEM,
AZD_THERMOSTAT_FW,
AZD_THERMOSTAT_MODEL,
AZD_ZONES,
)
from aioairzone.localapi import AirzoneLocalApi
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.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN, MANUFACTURER
from .coordinator import AirzoneUpdateCoordinator
PLATFORMS: list[Platform] = [Platform.BINARY_SENSOR, Platform.CLIMATE, Platform.SENSOR]
class AirzoneEntity(CoordinatorEntity[AirzoneUpdateCoordinator]):
"""Define an Airzone entity."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
entry: ConfigEntry,
system_zone_id: str,
zone_data: dict[str, Any],
) -> None:
"""Initialize."""
super().__init__(coordinator)
self.system_id = zone_data[AZD_SYSTEM]
self.system_zone_id = system_zone_id
self.zone_id = zone_data[AZD_ID]
self._attr_device_info: DeviceInfo = {
"identifiers": {(DOMAIN, f"{entry.entry_id}_{system_zone_id}")},
"manufacturer": MANUFACTURER,
"model": self.get_zone_value(AZD_THERMOSTAT_MODEL),
"name": f"Airzone [{system_zone_id}] {zone_data[AZD_NAME]}",
"sw_version": self.get_zone_value(AZD_THERMOSTAT_FW),
}
def get_zone_value(self, key):
"""Return zone value by key."""
value = None
if self.system_zone_id in self.coordinator.data[AZD_ZONES]:
zone = self.coordinator.data[AZD_ZONES][self.system_zone_id]
if key in zone:
value = zone[key]
return value
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],
)
airzone = AirzoneLocalApi(aiohttp_client.async_get_clientsession(hass), options)
coordinator = AirzoneUpdateCoordinator(hass, airzone)
await coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok

View File

@@ -0,0 +1,114 @@
"""Support for the Airzone sensors."""
from __future__ import annotations
from collections.abc import Mapping
from dataclasses import dataclass
from typing import Any, Final
from aioairzone.const import (
AZD_AIR_DEMAND,
AZD_ERRORS,
AZD_FLOOR_DEMAND,
AZD_NAME,
AZD_PROBLEMS,
AZD_ZONES,
)
from homeassistant.components.binary_sensor import (
DEVICE_CLASS_PROBLEM,
DEVICE_CLASS_RUNNING,
BinarySensorEntity,
BinarySensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
from .const import DOMAIN
from .coordinator import AirzoneUpdateCoordinator
@dataclass
class AirzoneBinarySensorEntityDescription(BinarySensorEntityDescription):
"""A class that describes airzone binary sensor entities."""
attributes: dict[str, str] | None = None
BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]] = (
AirzoneBinarySensorEntityDescription(
device_class=DEVICE_CLASS_RUNNING,
key=AZD_AIR_DEMAND,
name="Air Demand",
),
AirzoneBinarySensorEntityDescription(
device_class=DEVICE_CLASS_RUNNING,
key=AZD_FLOOR_DEMAND,
name="Floor Demand",
),
AirzoneBinarySensorEntityDescription(
attributes={
"errors": AZD_ERRORS,
},
device_class=DEVICE_CLASS_PROBLEM,
entity_category=EntityCategory.DIAGNOSTIC,
key=AZD_PROBLEMS,
name="Problem",
),
)
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add Airzone binary sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
binary_sensors = []
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in BINARY_SENSOR_TYPES:
if description.key in zone_data:
binary_sensors.append(
AirzoneBinarySensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
)
async_add_entities(binary_sensors)
class AirzoneBinarySensor(AirzoneEntity, BinarySensorEntity):
"""Define an Airzone sensor."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
description: AirzoneBinarySensorEntityDescription,
entry: ConfigEntry,
system_zone_id: str,
zone_data: dict[str, Any],
) -> 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.entity_description = description
@property
def extra_state_attributes(self) -> Mapping[str, Any] | None:
"""Return state attributes."""
if not self.attributes:
return None
return {key: self.get_zone_value(val) for key, val in self.attributes.items()}
@property
def is_on(self) -> bool | None:
"""Return true if the binary sensor is on."""
return self.get_zone_value(self.entity_description.key)

View File

@@ -0,0 +1,191 @@
"""Support for the Airzone climate."""
from __future__ import annotations
import logging
from typing import Final
from aioairzone.common import OperationMode
from aioairzone.const import (
API_MODE,
API_ON,
API_SET_POINT,
API_SYSTEM_ID,
API_ZONE_ID,
AZD_DEMAND,
AZD_HUMIDITY,
AZD_MASTER,
AZD_MODE,
AZD_MODES,
AZD_NAME,
AZD_ON,
AZD_TEMP,
AZD_TEMP_MAX,
AZD_TEMP_MIN,
AZD_TEMP_SET,
AZD_TEMP_UNIT,
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,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
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_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_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,
}
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add Airzone sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
async_add_entities(
AirzoneClimate(
coordinator,
entry,
system_zone_id,
zone_data,
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
)
class AirzoneClimate(AirzoneEntity, ClimateEntity):
"""Define an Airzone sensor."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
entry: ConfigEntry,
system_zone_id: str,
zone_data: dict,
) -> 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_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_temperature_unit = TEMP_UNIT_LIB_TO_HASS[
self.get_zone_value(AZD_TEMP_UNIT)
]
self._attr_hvac_modes = [
HVAC_MODE_LIB_TO_HASS[mode] for mode in self.get_zone_value(AZD_MODES)
]
self._async_update_attrs()
async def _async_update_hvac_params(self, params) -> None:
"""Send HVAC parameters to API."""
try:
await self.coordinator.airzone.put_hvac(params)
except (AirzoneError, ClientConnectorError) 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."""
params = {
API_SYSTEM_ID: self.system_id,
API_ZONE_ID: self.zone_id,
}
if hvac_mode == HVAC_MODE_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):
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,
}
_LOGGER.debug("Set temp=%s params=%s", temp, params)
await self._async_update_hvac_params(params)
@callback
def _handle_coordinator_update(self) -> None:
"""Update attributes when the coordinator updates."""
self._async_update_attrs()
super()._handle_coordinator_update()
@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_hvac_mode = HVAC_MODE_LIB_TO_HASS[mode]
if self.get_zone_value(AZD_DEMAND):
self._attr_hvac_action = HVAC_ACTION_LIB_TO_HASS[mode]
else:
self._attr_hvac_action = CURRENT_HVAC_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)

View File

@@ -0,0 +1,62 @@
"""Config flow for Airzone."""
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
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import aiohttp_client
from .const import DEFAULT_LOCAL_API_PORT, DOMAIN
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle config flow for an Airzone device."""
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the initial step."""
errors = {}
if user_input is not None:
self._async_abort_entries_match(
{
CONF_HOST: user_input[CONF_HOST],
CONF_PORT: user_input[CONF_PORT],
}
)
airzone = AirzoneLocalApi(
aiohttp_client.async_get_clientsession(self.hass),
ConnectionOptions(
user_input[CONF_HOST],
user_input[CONF_PORT],
),
)
try:
await airzone.validate_airzone()
except (ClientConnectorError, InvalidHost):
errors["base"] = "cannot_connect"
else:
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,
}
),
errors=errors,
)

View File

@@ -0,0 +1,19 @@
"""Constants for the Airzone integration."""
from typing import Final
from aioairzone.common import TemperatureUnit
from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT
DOMAIN: Final = "airzone"
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,
TemperatureUnit.FAHRENHEIT: TEMP_FAHRENHEIT,
}

View File

@@ -0,0 +1,42 @@
"""The Airzone integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from aioairzone.localapi import AirzoneLocalApi
from aiohttp.client_exceptions import ClientConnectorError
import async_timeout
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import AIOAIRZONE_DEVICE_TIMEOUT_SEC, DOMAIN
SCAN_INTERVAL = timedelta(seconds=60)
_LOGGER = logging.getLogger(__name__)
class AirzoneUpdateCoordinator(DataUpdateCoordinator):
"""Class to manage fetching data from the Airzone device."""
def __init__(self, hass: HomeAssistant, airzone: AirzoneLocalApi) -> None:
"""Initialize."""
self.airzone = airzone
super().__init__(
hass,
_LOGGER,
name=DOMAIN,
update_interval=SCAN_INTERVAL,
)
async def _async_update_data(self):
"""Update data via library."""
async with async_timeout.timeout(AIOAIRZONE_DEVICE_TIMEOUT_SEC):
try:
await self.airzone.update_airzone()
except ClientConnectorError as error:
raise UpdateFailed(error) from error
return self.airzone.data()

View File

@@ -0,0 +1,10 @@
{
"domain": "airzone",
"name": "Airzone",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airzone",
"requirements": ["aioairzone==0.3.3"],
"codeowners": ["@Noltari"],
"iot_class": "local_polling",
"loggers": ["aioairzone"]
}

View File

@@ -0,0 +1,93 @@
"""Support for the Airzone sensors."""
from __future__ import annotations
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,
SensorEntity,
SensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
PERCENTAGE,
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirzoneEntity
from .const import DOMAIN, TEMP_UNIT_LIB_TO_HASS
from .coordinator import AirzoneUpdateCoordinator
SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
SensorEntityDescription(
device_class=DEVICE_CLASS_TEMPERATURE,
key=AZD_TEMP,
name="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
state_class=STATE_CLASS_MEASUREMENT,
),
SensorEntityDescription(
device_class=DEVICE_CLASS_HUMIDITY,
key=AZD_HUMIDITY,
name="Humidity",
native_unit_of_measurement=PERCENTAGE,
state_class=STATE_CLASS_MEASUREMENT,
),
)
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add Airzone sensors from a config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
sensors = []
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items():
for description in SENSOR_TYPES:
if description.key in zone_data:
sensors.append(
AirzoneSensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
)
)
async_add_entities(sensors)
class AirzoneSensor(AirzoneEntity, SensorEntity):
"""Define an Airzone sensor."""
def __init__(
self,
coordinator: AirzoneUpdateCoordinator,
description: SensorEntityDescription,
entry: ConfigEntry,
system_zone_id: str,
zone_data: dict[str, Any],
) -> 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.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)
)
@property
def native_value(self):
"""Return the state."""
return self.get_zone_value(self.entity_description.key)

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"description": "Set up Airzone integration."
}
}
}
}

View File

@@ -0,0 +1,18 @@
{
"config": {
"abort": {
"already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
},
"step": {
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"port": "\u041f\u043e\u0440\u0442"
}
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "El dispositiu ja est\u00e0 configurat"
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3"
},
"step": {
"user": {
"data": {
"host": "Amfitri\u00f3",
"port": "Port"
},
"description": "Configura la integraci\u00f3 Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert"
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Richte die Airzone-Integration ein."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u0397 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03c9\u03b8\u03b5\u03af"
},
"error": {
"cannot_connect": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2"
},
"step": {
"user": {
"data": {
"host": "\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03cc\u03c2 \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae\u03c2",
"port": "\u0398\u03cd\u03c1\u03b1"
},
"description": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Device is already configured"
},
"error": {
"cannot_connect": "Failed to connect"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Set up Airzone integration."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Seade on juba h\u00e4\u00e4lestatud"
},
"error": {
"cannot_connect": "\u00dchendamine nurjus"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Seadista Airzone'i sidumine"
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9"
},
"error": {
"cannot_connect": "\u00c9chec de connexion"
},
"step": {
"user": {
"data": {
"host": "H\u00f4te",
"port": "Port"
},
"description": "Configurer l'int\u00e9gration Airzone."
}
}
}
}

View File

@@ -0,0 +1,18 @@
{
"config": {
"abort": {
"already_configured": "\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d4\u05ea\u05e7\u05df \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4"
},
"error": {
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4"
},
"step": {
"user": {
"data": {
"host": "\u05de\u05d0\u05e8\u05d7",
"port": "\u05e4\u05ea\u05d7\u05d4"
}
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van"
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s"
},
"step": {
"user": {
"data": {
"host": "C\u00edm",
"port": "Port"
},
"description": "Airzone integr\u00e1ci\u00f3 be\u00e1ll\u00edt\u00e1sa."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Perangkat sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Port"
},
"description": "Siapkan integrasi Airzone"
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Il dispositivo \u00e8 gi\u00e0 configurato"
},
"error": {
"cannot_connect": "Impossibile connettersi"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Porta"
},
"description": "Imposta l'integrazione Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u30c7\u30d0\u30a4\u30b9\u306f\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f"
},
"step": {
"user": {
"data": {
"host": "\u30db\u30b9\u30c8",
"port": "\u30dd\u30fc\u30c8"
},
"description": "Airzone\u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7"
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Apparaat is al geconfigureerd"
},
"error": {
"cannot_connect": "Kon niet verbinden"
},
"step": {
"user": {
"data": {
"host": "Host",
"port": "Poort"
},
"description": "Airzone integratie instellen."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Enheten er allerede konfigurert"
},
"error": {
"cannot_connect": "Tilkobling mislyktes"
},
"step": {
"user": {
"data": {
"host": "Vert",
"port": "Port"
},
"description": "Sett opp Airzone-integrasjon."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Urz\u0105dzenie jest ju\u017c skonfigurowane"
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia"
},
"step": {
"user": {
"data": {
"host": "Nazwa hosta lub adres IP",
"port": "Port"
},
"description": "Skonfiguruj integracj\u0119 Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Dispositivo j\u00e1 est\u00e1 configurado"
},
"error": {
"cannot_connect": "Falha ao conectar"
},
"step": {
"user": {
"data": {
"host": "Nome do host",
"port": "Porta"
},
"description": "Configure a integra\u00e7\u00e3o Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 Home Assistant."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f."
},
"step": {
"user": {
"data": {
"host": "\u0425\u043e\u0441\u0442",
"port": "\u041f\u043e\u0440\u0442"
},
"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 Airzone."
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "\u88dd\u7f6e\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557"
},
"step": {
"user": {
"data": {
"host": "\u4e3b\u6a5f\u7aef",
"port": "\u901a\u8a0a\u57e0"
},
"description": "\u8a2d\u5b9a Airzone \u6574\u5408\u3002"
}
}
}
}

View File

@@ -2,6 +2,6 @@
"domain": "alarm_control_panel",
"name": "Alarm Control Panel",
"documentation": "https://www.home-assistant.io/integrations/alarm_control_panel",
"codeowners": [],
"codeowners": ["@home-assistant/core"],
"quality_scale": "internal"
}

View File

@@ -30,15 +30,15 @@
"armed": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
"armed_away": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03bc\u03b1\u03ba\u03c1\u03b9\u03ac",
"armed_custom_bypass": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03b7 \u03c0\u03b1\u03c1\u03ac\u03ba\u03b1\u03bc\u03c8\u03b7 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae",
"armed_home": "\u03a3\u03c0\u03af\u03c4\u03b9 \u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf",
"armed_night": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03b2\u03c1\u03ac\u03b4\u03c5",
"armed_home": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c3\u03c0\u03af\u03c4\u03b9",
"armed_night": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03b2\u03c1\u03ac\u03b4\u03c5",
"armed_vacation": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ce\u03bd",
"arming": "\u038c\u03c0\u03bb\u03b9\u03c3\u03b7",
"disarmed": "\u0391\u03c6\u03bf\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
"disarming": "\u0391\u03c6\u03cc\u03c0\u03bb\u03b9\u03c3\u03b7",
"pending": "\u0395\u03ba\u03ba\u03c1\u03b5\u03bc\u03ae\u03c2",
"triggered": "\u03a0\u03b1\u03c1\u03b1\u03b2\u03af\u03b1\u03c3\u03b7"
"triggered": "\u03a0\u03c5\u03c1\u03bf\u03b4\u03bf\u03c4\u03ae\u03b8\u03b7\u03ba\u03b5"
}
},
"title": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c9\u03bd"
"title": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b1\u03b3\u03b5\u03c1\u03bc\u03bf\u03cd"
}

View File

@@ -22,6 +22,7 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_platform
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import (
@@ -95,8 +96,8 @@ class AlarmDecoderAlarmPanel(AlarmControlPanelEntity):
async def async_added_to_hass(self):
"""Register callbacks."""
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_PANEL_MESSAGE, self._message_callback
async_dispatcher_connect(
self.hass, SIGNAL_PANEL_MESSAGE, self._message_callback
)
)

View File

@@ -4,6 +4,7 @@ import logging
from homeassistant.components.binary_sensor import BinarySensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import (
@@ -90,26 +91,24 @@ class AlarmDecoderBinarySensor(BinarySensorEntity):
async def async_added_to_hass(self):
"""Register callbacks."""
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_ZONE_FAULT, self._fault_callback
async_dispatcher_connect(self.hass, SIGNAL_ZONE_FAULT, self._fault_callback)
)
self.async_on_remove(
async_dispatcher_connect(
self.hass, SIGNAL_ZONE_RESTORE, self._restore_callback
)
)
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_ZONE_RESTORE, self._restore_callback
async_dispatcher_connect(
self.hass, SIGNAL_RFX_MESSAGE, self._rfx_message_callback
)
)
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_RFX_MESSAGE, self._rfx_message_callback
)
)
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_REL_MESSAGE, self._rel_message_callback
async_dispatcher_connect(
self.hass, SIGNAL_REL_MESSAGE, self._rel_message_callback
)
)

View File

@@ -2,6 +2,7 @@
from homeassistant.components.sensor import SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import SIGNAL_PANEL_MESSAGE
@@ -26,8 +27,8 @@ class AlarmDecoderSensor(SensorEntity):
async def async_added_to_hass(self):
"""Register callbacks."""
self.async_on_remove(
self.hass.helpers.dispatcher.async_dispatcher_connect(
SIGNAL_PANEL_MESSAGE, self._message_callback
async_dispatcher_connect(
self.hass, SIGNAL_PANEL_MESSAGE, self._message_callback
)
)

View File

@@ -57,7 +57,7 @@
"zone_relayaddr": "\u4e2d\u7e7c\u4f4d\u5740",
"zone_relaychan": "\u4e2d\u7e7c\u983b\u9053",
"zone_rfid": "RF \u5e8f\u5217",
"zone_type": "\u5340\u57df\u985e\u578b"
"zone_type": "\u5340\u57df\u985e\u5225"
},
"description": "\u8f38\u5165\u5340\u57df {zone_number} \u8a73\u7d30\u8cc7\u6599\u3002\u6b32\u522a\u9664\u5340\u57df {zone_number}\uff0c\u4fdd\u6301\u5340\u57df\u540d\u7a31\u7a7a\u767d\u3002",
"title": "\u8a2d\u5b9a AlarmDecoder"

View File

@@ -1,6 +1,10 @@
"""Support for repeating alerts when conditions are met."""
from __future__ import annotations
from collections.abc import Callable
from datetime import timedelta
import logging
from typing import Any, final
import voluptuous as vol
@@ -23,10 +27,15 @@ from homeassistant.const import (
STATE_OFF,
STATE_ON,
)
from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.helpers import event, service
from homeassistant.core import Event, HomeAssistant, ServiceCall
from homeassistant.helpers import service
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import ToggleEntity
from homeassistant.helpers.event import (
async_track_point_in_time,
async_track_state_change_event,
)
from homeassistant.helpers.template import Template
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.dt import now
@@ -62,7 +71,7 @@ ALERT_SCHEMA = vol.Schema(
vol.Optional(CONF_DONE_MESSAGE): cv.template,
vol.Optional(CONF_TITLE): cv.template,
vol.Optional(CONF_DATA): dict,
vol.Required(CONF_NOTIFIERS): cv.ensure_list,
vol.Required(CONF_NOTIFIERS): vol.All(cv.ensure_list, [cv.string]),
}
)
@@ -73,14 +82,14 @@ CONFIG_SCHEMA = vol.Schema(
ALERT_SERVICE_SCHEMA = vol.Schema({vol.Required(ATTR_ENTITY_ID): cv.entity_ids})
def is_on(hass, entity_id):
def is_on(hass: HomeAssistant, entity_id: str) -> bool:
"""Return if the alert is firing and not acknowledged."""
return hass.states.is_state(entity_id, STATE_ON)
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the Alert component."""
entities = []
entities: list[Alert] = []
for object_id, cfg in config[DOMAIN].items():
if not cfg:
@@ -144,10 +153,16 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
schema=ALERT_SERVICE_SCHEMA,
)
hass.services.async_register(
DOMAIN, SERVICE_TURN_ON, async_handle_alert_service, schema=ALERT_SERVICE_SCHEMA
DOMAIN,
SERVICE_TURN_ON,
async_handle_alert_service,
schema=ALERT_SERVICE_SCHEMA,
)
hass.services.async_register(
DOMAIN, SERVICE_TOGGLE, async_handle_alert_service, schema=ALERT_SERVICE_SCHEMA
DOMAIN,
SERVICE_TOGGLE,
async_handle_alert_service,
schema=ALERT_SERVICE_SCHEMA,
)
for alert in entities:
@@ -163,20 +178,20 @@ class Alert(ToggleEntity):
def __init__(
self,
hass,
entity_id,
name,
watched_entity_id,
state,
repeat,
skip_first,
message_template,
done_message_template,
notifiers,
can_ack,
title_template,
data,
):
hass: HomeAssistant,
entity_id: str,
name: str,
watched_entity_id: str,
state: str,
repeat: list[float],
skip_first: bool,
message_template: Template | None,
done_message_template: Template | None,
notifiers: list[str],
can_ack: bool,
title_template: Template | None,
data: dict[Any, Any],
) -> None:
"""Initialize the alert."""
self.hass = hass
self._attr_name = name
@@ -204,16 +219,18 @@ class Alert(ToggleEntity):
self._firing = False
self._ack = False
self._cancel = None
self._cancel: Callable[[], None] | None = None
self._send_done_message = False
self.entity_id = f"{DOMAIN}.{entity_id}"
event.async_track_state_change_event(
async_track_state_change_event(
hass, [watched_entity_id], self.watched_entity_change
)
@final # type: ignore[misc]
@property
def state(self): # pylint: disable=overridden-final-method
# pylint: disable=overridden-final-method
def state(self) -> str: # type: ignore[override]
"""Return the alert status."""
if self._firing:
if self._ack:
@@ -221,17 +238,17 @@ class Alert(ToggleEntity):
return STATE_ON
return STATE_IDLE
async def watched_entity_change(self, ev):
async def watched_entity_change(self, event: Event) -> None:
"""Determine if the alert should start or stop."""
if (to_state := ev.data.get("new_state")) is None:
if (to_state := event.data.get("new_state")) is None:
return
_LOGGER.debug("Watched entity (%s) has changed", ev.data.get("entity_id"))
_LOGGER.debug("Watched entity (%s) has changed", event.data.get("entity_id"))
if to_state.state == self._alert_state and not self._firing:
await self.begin_alerting()
if to_state.state != self._alert_state and self._firing:
await self.end_alerting()
async def begin_alerting(self):
async def begin_alerting(self) -> None:
"""Begin the alert procedures."""
_LOGGER.debug("Beginning Alert: %s", self._attr_name)
self._ack = False
@@ -245,26 +262,27 @@ class Alert(ToggleEntity):
self.async_write_ha_state()
async def end_alerting(self):
async def end_alerting(self) -> None:
"""End the alert procedures."""
_LOGGER.debug("Ending Alert: %s", self._attr_name)
self._cancel()
if self._cancel is not None:
self._cancel()
self._cancel = None
self._ack = False
self._firing = False
if self._send_done_message:
await self._notify_done_message()
self.async_write_ha_state()
async def _schedule_notify(self):
async def _schedule_notify(self) -> None:
"""Schedule a notification."""
delay = self._delay[self._next_delay]
next_msg = now() + delay
self._cancel = event.async_track_point_in_time(
self.hass, self._notify, next_msg
)
self._cancel = async_track_point_in_time(self.hass, self._notify, next_msg)
self._next_delay = min(self._next_delay + 1, len(self._delay) - 1)
async def _notify(self, *args):
async def _notify(self, *args: Any) -> None:
"""Send the alert notification."""
if not self._firing:
return
@@ -281,7 +299,7 @@ class Alert(ToggleEntity):
await self._send_notification_message(message)
await self._schedule_notify()
async def _notify_done_message(self, *args):
async def _notify_done_message(self) -> None:
"""Send notification of complete alert."""
_LOGGER.info("Alerting: %s", self._done_message_template)
self._send_done_message = False
@@ -293,15 +311,15 @@ class Alert(ToggleEntity):
await self._send_notification_message(message)
async def _send_notification_message(self, message):
async def _send_notification_message(self, message: Any) -> None:
msg_payload = {ATTR_MESSAGE: message}
if self._title_template is not None:
title = self._title_template.async_render(parse_result=False)
msg_payload.update({ATTR_TITLE: title})
msg_payload[ATTR_TITLE] = title
if self._data:
msg_payload.update({ATTR_DATA: self._data})
msg_payload[ATTR_DATA] = self._data
_LOGGER.debug(msg_payload)
@@ -310,19 +328,19 @@ class Alert(ToggleEntity):
DOMAIN_NOTIFY, target, msg_payload, context=self._context
)
async def async_turn_on(self, **kwargs):
async def async_turn_on(self, **kwargs: Any) -> None:
"""Async Unacknowledge alert."""
_LOGGER.debug("Reset Alert: %s", self._attr_name)
self._ack = False
self.async_write_ha_state()
async def async_turn_off(self, **kwargs):
async def async_turn_off(self, **kwargs: Any) -> None:
"""Async Acknowledge alert."""
_LOGGER.debug("Acknowledged Alert: %s", self._attr_name)
self._ack = True
self.async_write_ha_state()
async def async_toggle(self, **kwargs):
async def async_toggle(self, **kwargs: Any) -> None:
"""Async toggle alert."""
if self._ack:
return await self.async_turn_on()

View File

@@ -3,7 +3,7 @@
"name": "Alert",
"documentation": "https://www.home-assistant.io/integrations/alert",
"after_dependencies": ["notify"],
"codeowners": [],
"codeowners": ["@home-assistant/core"],
"quality_scale": "internal",
"iot_class": "local_push"
}

View File

@@ -75,6 +75,8 @@ class AlexaCapability:
https://developer.amazon.com/docs/device-apis/message-guide.html
"""
# pylint: disable=no-self-use
supported_locales = {"en-US"}
def __init__(self, entity: State, instance: str | None = None) -> None:
@@ -86,28 +88,23 @@ class AlexaCapability:
"""Return the Alexa API name of this interface."""
raise NotImplementedError
@staticmethod
def properties_supported() -> list[dict]:
def properties_supported(self) -> list[dict]:
"""Return what properties this entity supports."""
return []
@staticmethod
def properties_proactively_reported() -> bool:
def properties_proactively_reported(self) -> bool:
"""Return True if properties asynchronously reported."""
return False
@staticmethod
def properties_retrievable() -> bool:
def properties_retrievable(self) -> bool:
"""Return True if properties can be retrieved."""
return False
@staticmethod
def properties_non_controllable() -> bool | None:
def properties_non_controllable(self) -> bool | None:
"""Return True if non controllable."""
return None
@staticmethod
def get_property(name):
def get_property(self, name):
"""Read and return a property.
Return value should be a dict, or raise UnsupportedProperty.
@@ -117,13 +114,11 @@ class AlexaCapability:
"""
raise UnsupportedProperty(name)
@staticmethod
def supports_deactivation():
def supports_deactivation(self):
"""Applicable only to scenes."""
return None
@staticmethod
def capability_proactively_reported():
def capability_proactively_reported(self):
"""Return True if the capability is proactively reported.
Set properties_proactively_reported() for proactively reported properties.
@@ -131,16 +126,14 @@ class AlexaCapability:
"""
return None
@staticmethod
def capability_resources():
def capability_resources(self):
"""Return the capability object.
Applicable to ToggleController, RangeController, and ModeController interfaces.
"""
return []
@staticmethod
def configuration():
def configuration(self):
"""Return the configuration object.
Applicable to the ThermostatController, SecurityControlPanel, ModeController, RangeController,
@@ -148,8 +141,7 @@ class AlexaCapability:
"""
return []
@staticmethod
def configurations():
def configurations(self):
"""Return the configurations object.
The plural configurations object is different that the singular configuration object.
@@ -157,31 +149,29 @@ class AlexaCapability:
"""
return []
@staticmethod
def inputs():
def inputs(self):
"""Applicable only to media players."""
return []
@staticmethod
def semantics():
def semantics(self):
"""Return the semantics object.
Applicable to ToggleController, RangeController, and ModeController interfaces.
"""
return []
@staticmethod
def supported_operations():
def supported_operations(self):
"""Return the supportedOperations object."""
return []
@staticmethod
def camera_stream_configurations():
def camera_stream_configurations(self):
"""Applicable only to CameraStreamController."""
return None
def serialize_discovery(self):
"""Serialize according to the Discovery API."""
# pylint: disable=assignment-from-none
# Methods may be overridden and return a value.
result = {"type": "AlexaInterface", "interface": self.name(), "version": "3"}
if (instance := self.instance) is not None:

View File

@@ -200,6 +200,8 @@ class AlexaCapabilityResource:
https://developer.amazon.com/docs/device-apis/resources-and-assets.html#capability-resources
"""
# pylint: disable=no-self-use
def __init__(self, labels):
"""Initialize an Alexa resource."""
self._resource_labels = []
@@ -210,13 +212,11 @@ class AlexaCapabilityResource:
"""Return capabilityResources object serialized for an API response."""
return self.serialize_labels(self._resource_labels)
@staticmethod
def serialize_configuration():
def serialize_configuration(self):
"""Return ModeResources, PresetResources friendlyNames serialized for an API response."""
return []
@staticmethod
def serialize_labels(resources):
def serialize_labels(self, resources):
"""Return resource label objects for friendlyNames serialized for an API response."""
labels = []
for label in resources:

View File

@@ -68,7 +68,10 @@ class AlexaConfig(AbstractConfig):
entity_registry = er.async_get(self.hass)
if registry_entry := entity_registry.async_get(entity_id):
auxiliary_entity = registry_entry.entity_category is not None
auxiliary_entity = (
registry_entry.entity_category is not None
or registry_entry.hidden_by is not None
)
else:
auxiliary_entity = False
return not auxiliary_entity

View File

@@ -8,7 +8,6 @@ from typing import Any
from aiohttp import ClientError
import async_timeout
from pyalmond import AlmondLocalAuth, WebAlmondAPI
import voluptuous as vol
from yarl import URL
from homeassistant import core, data_entry_flow
@@ -122,5 +121,4 @@ class AlmondFlowHandler(
return self.async_show_form(
step_id="hassio_confirm",
description_placeholders={"addon": data["addon"]},
data_schema=vol.Schema({}),
)

View File

@@ -3,7 +3,7 @@
"abort": {
"cannot_connect": "\u00c9chec de connexion",
"missing_configuration": "Le composant n'est pas configur\u00e9. Veuillez suivre la documentation.",
"no_url_available": "Aucune URL disponible. Pour plus d'informations sur cette erreur, [consultez la section d'aide] ( {docs_url} )",
"no_url_available": "Aucune URL disponible. Pour plus d'informations sur cette erreur, [consultez la section d'aide]({docs_url})",
"single_instance_allowed": "D\u00e9j\u00e0 configur\u00e9. Une seule configuration possible."
},
"step": {

View File

@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_api_key": "Cl\u00e9 API invalide"
"invalid_api_key": "Cl\u00e9 d'API non valide"
},
"step": {
"reauth_confirm": {

View File

@@ -24,7 +24,9 @@ PRICE_SPIKE_ICONS = {
}
class AmberPriceGridSensor(CoordinatorEntity, BinarySensorEntity):
class AmberPriceGridSensor(
CoordinatorEntity[AmberUpdateCoordinator], BinarySensorEntity
):
"""Sensor to show single grid binary values."""
_attr_attribution = ATTRIBUTION

View File

@@ -10,6 +10,7 @@ from amberelectric.model.actual_interval import ActualInterval
from amberelectric.model.channel import ChannelType
from amberelectric.model.current_interval import CurrentInterval
from amberelectric.model.forecast_interval import ForecastInterval
from amberelectric.model.interval import Descriptor
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -44,6 +45,27 @@ def is_feed_in(interval: ActualInterval | CurrentInterval | ForecastInterval) ->
return interval.channel_type == ChannelType.FEED_IN
def normalize_descriptor(descriptor: Descriptor) -> str | None:
"""Return the snake case versions of descriptor names. Returns None if the name is not recognized."""
if descriptor is None:
return None
if descriptor.value == "spike":
return "spike"
if descriptor.value == "high":
return "high"
if descriptor.value == "neutral":
return "neutral"
if descriptor.value == "low":
return "low"
if descriptor.value == "veryLow":
return "very_low"
if descriptor.value == "extremelyLow":
return "extremely_low"
if descriptor.value == "negative":
return "negative"
return None
class AmberUpdateCoordinator(DataUpdateCoordinator):
"""AmberUpdateCoordinator - In charge of downloading the data for a site, which all the sensors read."""
@@ -65,6 +87,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
result: dict[str, dict[str, Any]] = {
"current": {},
"descriptors": {},
"forecasts": {},
"grid": {},
}
@@ -81,6 +104,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
raise UpdateFailed("No general channel configured")
result["current"]["general"] = general[0]
result["descriptors"]["general"] = normalize_descriptor(general[0].descriptor)
result["forecasts"]["general"] = [
interval for interval in forecasts if is_general(interval)
]
@@ -92,6 +116,9 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
]
if controlled_load:
result["current"]["controlled_load"] = controlled_load[0]
result["descriptors"]["controlled_load"] = normalize_descriptor(
controlled_load[0].descriptor
)
result["forecasts"]["controlled_load"] = [
interval for interval in forecasts if is_controlled_load(interval)
]
@@ -99,6 +126,9 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
feed_in = [interval for interval in current if is_feed_in(interval)]
if feed_in:
result["current"]["feed_in"] = feed_in[0]
result["descriptors"]["feed_in"] = normalize_descriptor(
feed_in[0].descriptor
)
result["forecasts"]["feed_in"] = [
interval for interval in forecasts if is_feed_in(interval)
]

View File

@@ -1,14 +1,10 @@
{
"domain": "amberelectric",
"name": "Amber Electric",
"documentation": "https://www.home-assistant.io/integrations/amberelectric",
"config_flow": true,
"codeowners": [
"@madpilot"
],
"requirements": [
"amberelectric==1.0.3"
],
"iot_class": "cloud_polling",
"loggers": ["amberelectric"]
}
"domain": "amberelectric",
"name": "Amber Electric",
"documentation": "https://www.home-assistant.io/integrations/amberelectric",
"config_flow": true,
"codeowners": ["@madpilot"],
"requirements": ["amberelectric==1.0.4"],
"iot_class": "cloud_polling",
"loggers": ["amberelectric"]
}

View File

@@ -26,7 +26,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import ATTRIBUTION, DOMAIN
from .coordinator import AmberUpdateCoordinator
from .coordinator import AmberUpdateCoordinator, normalize_descriptor
ICONS = {
"general": "mdi:transmission-tower",
@@ -51,7 +51,7 @@ def friendly_channel_type(channel_type: str) -> str:
return "General"
class AmberSensor(CoordinatorEntity, SensorEntity):
class AmberSensor(CoordinatorEntity[AmberUpdateCoordinator], SensorEntity):
"""Amber Base Sensor."""
_attr_attribution = ATTRIBUTION
@@ -160,6 +160,7 @@ class AmberForecastSensor(AmberSensor):
datum["end_time"] = interval.end_time.isoformat()
datum["renewables"] = round(interval.renewables)
datum["spike_status"] = interval.spike_status.value
datum["descriptor"] = normalize_descriptor(interval.descriptor)
if interval.range is not None:
datum["range_min"] = format_cents_to_dollars(interval.range.min)
@@ -170,7 +171,16 @@ class AmberForecastSensor(AmberSensor):
return data
class AmberGridSensor(CoordinatorEntity, SensorEntity):
class AmberPriceDescriptorSensor(AmberSensor):
"""Amber Price Descriptor Sensor."""
@property
def native_value(self) -> str | None:
"""Return the current price descriptor."""
return self.coordinator.data[self.entity_description.key][self.channel_type]
class AmberGridSensor(CoordinatorEntity[AmberUpdateCoordinator], SensorEntity):
"""Sensor to show single grid specific values."""
_attr_attribution = ATTRIBUTION
@@ -214,6 +224,16 @@ async def async_setup_entry(
)
entities.append(AmberPriceSensor(coordinator, description, channel_type))
for channel_type in current:
description = SensorEntityDescription(
key="descriptors",
name=f"{entry.title} - {friendly_channel_type(channel_type)} Price Descriptor",
icon=ICONS[channel_type],
)
entities.append(
AmberPriceDescriptorSensor(coordinator, description, channel_type)
)
for channel_type in forecasts:
description = SensorEntityDescription(
key="forecasts",

View File

@@ -6,7 +6,6 @@
"api_token": "API Token",
"site_id": "Site ID"
},
"title": "Amber Electric",
"description": "Go to {api_url} to generate an API key"
},
"site": {
@@ -14,9 +13,8 @@
"site_nmi": "Site NMI",
"site_name": "Site Name"
},
"title": "Amber Electric",
"description": "Select the NMI of the site you would like to add"
}
}
}
}
}

View File

@@ -28,10 +28,22 @@ TYPE_BATT6 = "batt6"
TYPE_BATT7 = "batt7"
TYPE_BATT8 = "batt8"
TYPE_BATT9 = "batt9"
TYPE_BATT_CO2 = "batt_co2"
TYPE_BATTIN = "battin"
TYPE_BATTOUT = "battout"
TYPE_PM25_BATT = "batt_25"
TYPE_BATT_CO2 = "batt_co2"
TYPE_BATT_LIGHTNING = "batt_lightning"
TYPE_BATT_SM1 = "battsm1"
TYPE_BATT_SM10 = "battsm10"
TYPE_BATT_SM2 = "battsm2"
TYPE_BATT_SM3 = "battsm3"
TYPE_BATT_SM4 = "battsm4"
TYPE_BATT_SM5 = "battsm5"
TYPE_BATT_SM6 = "battsm6"
TYPE_BATT_SM7 = "battsm7"
TYPE_BATT_SM8 = "battsm8"
TYPE_BATT_SM9 = "battsm9"
TYPE_PM25IN_BATT = "batt_25in"
TYPE_PM25_BATT = "batt_25"
TYPE_RELAY1 = "relay1"
TYPE_RELAY10 = "relay10"
TYPE_RELAY2 = "relay2"
@@ -129,9 +141,86 @@ BINARY_SENSOR_DESCRIPTIONS = (
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATTIN,
name="Interior Battery",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT10,
name="Battery 10",
name="Soil Monitor Battery 10",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM1,
name="Soil Monitor Battery 1",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM2,
name="Soil Monitor Battery 2",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM3,
name="Soil Monitor Battery 3",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM4,
name="Soil Monitor Battery 4",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM5,
name="Soil Monitor Battery 5",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM6,
name="Soil Monitor Battery 6",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM7,
name="Soil Monitor Battery 7",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM8,
name="Soil Monitor Battery 8",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM9,
name="Soil Monitor Battery 9",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_SM10,
name="Soil Monitor Battery 10",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
@@ -143,6 +232,13 @@ BINARY_SENSOR_DESCRIPTIONS = (
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_BATT_LIGHTNING,
name="Lightning Detector Battery",
device_class=BinarySensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
on_state=0,
),
AmbientBinarySensorDescription(
key=TYPE_PM25IN_BATT,
name="PM25 Indoor Battery",

View File

@@ -5,7 +5,7 @@ from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY
from homeassistant.const import CONF_API_KEY, CONF_LOCATION
from homeassistant.core import HomeAssistant
from . import AmbientStation
@@ -14,7 +14,6 @@ from .const import CONF_APP_KEY, DOMAIN
CONF_API_KEY_CAMEL = "apiKey"
CONF_APP_KEY_CAMEL = "appKey"
CONF_DEVICE_ID_CAMEL = "deviceId"
CONF_LOCATION = "location"
CONF_MAC_ADDRESS = "mac_address"
CONF_MAC_ADDRESS_CAMEL = "macAddress"
CONF_TZ = "tz"

View File

@@ -32,6 +32,10 @@ from . import AmbientStation, AmbientWeatherEntity
from .const import ATTR_LAST_DATA, DOMAIN, TYPE_SOLARRADIATION, TYPE_SOLARRADIATION_LX
TYPE_24HOURRAININ = "24hourrainin"
TYPE_AQI_PM25 = "aqi_pm25"
TYPE_AQI_PM25_24H = "aqi_pm25_24h"
TYPE_AQI_PM25_IN = "aqi_pm25_in"
TYPE_AQI_PM25_IN_24H = "aqi_pm25_in_24h"
TYPE_BAROMABSIN = "baromabsin"
TYPE_BAROMRELIN = "baromrelin"
TYPE_CO2 = "co2"
@@ -53,6 +57,8 @@ TYPE_HUMIDITY8 = "humidity8"
TYPE_HUMIDITY9 = "humidity9"
TYPE_HUMIDITYIN = "humidityin"
TYPE_LASTRAIN = "lastRain"
TYPE_LIGHTNING_PER_DAY = "lightning_day"
TYPE_LIGHTNING_PER_HOUR = "lightning_hour"
TYPE_MAXDAILYGUST = "maxdailygust"
TYPE_MONTHLYRAININ = "monthlyrainin"
TYPE_PM25 = "pm25"
@@ -112,6 +118,30 @@ SENSOR_DESCRIPTIONS = (
native_unit_of_measurement=PRECIPITATION_INCHES,
state_class=SensorStateClass.TOTAL_INCREASING,
),
SensorEntityDescription(
key=TYPE_AQI_PM25,
name="AQI PM2.5",
device_class=SensorDeviceClass.AQI,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=TYPE_AQI_PM25_24H,
name="AQI PM2.5 24h Avg",
device_class=SensorDeviceClass.AQI,
state_class=SensorStateClass.TOTAL_INCREASING,
),
SensorEntityDescription(
key=TYPE_AQI_PM25_IN,
name="AQI PM2.5 Indoor",
device_class=SensorDeviceClass.AQI,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
key=TYPE_AQI_PM25_IN_24H,
name="AQI PM2.5 Indoor 24h Avg",
device_class=SensorDeviceClass.AQI,
state_class=SensorStateClass.TOTAL_INCREASING,
),
SensorEntityDescription(
key=TYPE_BAROMABSIN,
name="Abs Pressure",
@@ -246,6 +276,20 @@ SENSOR_DESCRIPTIONS = (
icon="mdi:water",
device_class=SensorDeviceClass.TIMESTAMP,
),
SensorEntityDescription(
key=TYPE_LIGHTNING_PER_DAY,
name="Lightning Strikes Per Day",
icon="mdi:lightning-bolt",
native_unit_of_measurement="strikes",
state_class=SensorStateClass.TOTAL_INCREASING,
),
SensorEntityDescription(
key=TYPE_LIGHTNING_PER_HOUR,
name="Lightning Strikes Per Hour",
icon="mdi:lightning-bolt",
native_unit_of_measurement="strikes",
state_class=SensorStateClass.TOTAL_INCREASING,
),
SensorEntityDescription(
key=TYPE_MAXDAILYGUST,
name="Max Gust",

View File

@@ -4,7 +4,7 @@
"already_configured": "Le service est d\u00e9j\u00e0 configur\u00e9"
},
"error": {
"invalid_key": "Cl\u00e9 API invalide",
"invalid_key": "Cl\u00e9 d'API non valide",
"no_devices": "Aucun appareil trouv\u00e9 dans le compte"
},
"step": {

View File

@@ -52,6 +52,7 @@ from .const import (
DATA_AMCREST,
DEVICES,
DOMAIN,
RESOLUTION_LIST,
SERVICE_EVENT,
SERVICE_UPDATE,
)
@@ -76,8 +77,6 @@ RECHECK_INTERVAL = timedelta(minutes=1)
NOTIFICATION_ID = "amcrest_notification"
NOTIFICATION_TITLE = "Amcrest Camera Setup"
RESOLUTION_LIST = {"high": 0, "low": 1}
SCAN_INTERVAL = timedelta(seconds=10)
AUTHENTICATION_LIST = {"basic": "basic"}

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