Compare commits

..

1178 Commits

Author SHA1 Message Date
Paulus Schoutsen
bf66f39ca4 2022.12.7 (#84162) 2022-12-17 21:01:22 -05:00
Paulus Schoutsen
d95a843d93 Bumped version to 2022.12.7 2022-12-17 20:05:11 -05:00
Matthias Alphart
76d33fdaf1 Fix KNX ConfigFlow for manual secure tunnel keys (#84155) 2022-12-17 20:04:53 -05:00
Michael
0b4d1fe641 Fix check if Surveillance Station is available in Synology DSM (#84140)
start coordinator only when surveillance_station is avialble during api setup
2022-12-17 20:04:52 -05:00
Allen Porter
1e70901b9e Bump ical to 4.2.3 (#84104) 2022-12-17 20:04:51 -05:00
Joakim Plate
dac8560e14 Make sure philips_hs remote entity calls parent added (#84082)
Make sure remote calls parent added
2022-12-17 20:04:51 -05:00
J. Nick Koston
5e949b062a Bump bluetooth-auto-recovery to 1.0.3 (#84075)
* Bump bluetooth-auto-recovery to 1.0.1

changelog: https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v1.0.0...v1.0.1

Handles the case were the adapter gets a new hci number
after a usb reset.

* one more

* bump again
2022-12-17 20:04:31 -05:00
Daniel Hjelseth Høyer
2d2318438c Update Tibber lib, improve realtime streaming (#84065)
Update tibber lib, improve realtime streaming

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-12-17 20:03:55 -05:00
J. Nick Koston
6ce2bf6be5 Bump govee-ble to 0.19.3 (#84062)
* Bump govee-ble to 0.19.2

fixes #82994 fixes #81335

changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.19.1...v0.19.2

* .3
2022-12-17 20:03:54 -05:00
Bram Kragten
b32ba33250 Update frontend to 20221213.1 (#84058) 2022-12-17 20:03:16 -05:00
muppet3000
c97b48cf3b Re-add missing Growatt TLX values (#84040)
* Growatt - Re-adding missing TLX values (#81470)

* Growatt - Added missing files to .coveragerc

* Growatt - Correcting TLX Voltage types

* Growatt - Addressing review comments
2022-12-17 20:02:08 -05:00
J. Nick Koston
2b3123b925 Bump pySwitchbot to 0.23.2 (#84002) 2022-12-17 19:52:00 -05:00
Paulus Schoutsen
cc40c6d16a 2022.12.6 (#83998) 2022-12-14 13:50:07 -05:00
Paulus Schoutsen
283349f17e Bumped version to 2022.12.6 2022-12-14 12:48:04 -05:00
Erik Montnemery
59b6d56207 Ignore certain device trigger validation errors (#83972) 2022-12-14 12:47:03 -05:00
J. Nick Koston
353fb3be7d Bump aioesphomeapi to 13.0.2 to fix reconnects after bad protobuf message (#83951) 2022-12-14 12:47:02 -05:00
J. Nick Koston
bedb587290 Bump aioshelly to 5.1.2 to fix state updates not firing after reconnect (#83950)
Bump aioshelly to 5.1.2

changelog: https://github.com/home-assistant-libs/aioshelly/compare/5.1.1...5.1.2
2022-12-14 12:47:01 -05:00
majuss
4ef2e91fd5 Bump lupupy dependency to v0.2.3 (#83765)
fixes undefined
2022-12-14 12:47:01 -05:00
Sergio Oller
a0518295d5 Do not add a Content-Type header to ingress (#83425) 2022-12-14 12:47:00 -05:00
Paulus Schoutsen
47a7807cbd 2022.12.5 (#83944) 2022-12-13 14:22:09 -05:00
Paulus Schoutsen
c75bf20a3c Bumped version to 2022.12.5 2022-12-13 13:26:18 -05:00
Bram Kragten
edffb794f7 Update frontend to 20221213.0 (#83940) 2022-12-13 13:25:47 -05:00
Erik Montnemery
412e9d34d9 Bump pychromecast to 13.0.4 (#83896) 2022-12-13 13:25:18 -05:00
Artem Draft
700dbcf2a4 Fix saving options with missing ignored sources in BraviaTV (#83891)
fix https://github.com/home-assistant/core/issues/83217
fixes undefined
2022-12-13 13:25:17 -05:00
Koen van Zuijlen
fcbb40092a Fix Just Nimbus error codes (#83856) 2022-12-13 13:25:16 -05:00
Paulus Schoutsen
05c429bcd7 2022.12.4 (#83870) 2022-12-12 22:36:56 -05:00
J. Nick Koston
31d0e5e316 Fix HomeKit media players when entity has duplicate sources (#83890)
fixes #83852 fixes #83698
2022-12-12 21:33:31 -05:00
J. Nick Koston
8fb400e7ca Fix bleak-retry-connector get_device hang with HAOS 9.4 and only proxies (#83879)
The bleak connection setup to dbus hangs forever instead of errors if
there are no local bluetooth adapters and we are using remote proxies.

The library now times out when this happens instead of hanging
forever.

changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.10.1...v2.10.2
2022-12-12 21:33:04 -05:00
Nyro
a3fb8a6514 Bump pyoverkiz to 1.7.2 (#83866)
Bump pyoverkiz
2022-12-12 21:32:21 -05:00
Nyro
4c2975ad99 Fix issue on Overkiz Domestic Hot water heater entities with away mode (#83684)
* Don't call set boostMode Duration with 0 to disable boost mode

* use states.get() instead of states[]

* Revert select states
2022-12-12 21:32:20 -05:00
Joakim Sørensen
38ab48b4fd Use the async_migrate_paypal_agreement function to get the migration URL (#83469)
* Use the async_migrate_paypal_agreement function to get the migration URL

* Update URL

* Handle timeout error
2022-12-12 16:27:11 -05:00
Paulus Schoutsen
463edd984b Bumped version to 2022.12.4 2022-12-12 16:16:41 -05:00
Michael
0a2fa9984d Move template check into fritzbox entry setup (#83863)
* move template check into entry setup

* use else in try-except block
2022-12-12 16:16:35 -05:00
Erik Montnemery
89efc455e3 Bump pychromecast to 13.0.3 (#83861) 2022-12-12 16:16:35 -05:00
David F. Mulcahey
3fe2f4f572 Bump version of ZHA quirks to 0.0.89 (#83848) 2022-12-12 16:16:34 -05:00
Bram Kragten
712cb1157f Update frontend to 20221212.0 (#83842) 2022-12-12 16:16:28 -05:00
J. Nick Koston
4452a84ee0 Bump bluetooth-auto-recovery to 1.0.0 (#83800)
fixes https://github.com/home-assistant/core/issues/83673
2022-12-12 16:15:37 -05:00
Paulus Schoutsen
753a4e9e5e SleepIQ to not retry a re-auth right away 2022-12-12 16:12:35 -05:00
Paulus Schoutsen
0f68a57913 2022.12.3 (#83797) 2022-12-11 22:32:46 -05:00
Paulus Schoutsen
87432be102 Bumped version to 2022.12.3 2022-12-11 21:19:18 -05:00
Paulus Schoutsen
858cf8ca33 Drop aiohttp to 3.8.1 (#83795) 2022-12-11 21:19:15 -05:00
Paulus Schoutsen
9b4d86399e 2022.12.2 (#83778) 2022-12-11 14:58:31 -05:00
Paulus Schoutsen
d61be9a0eb Bumped version to 2022.12.2 2022-12-11 13:55:31 -05:00
G Johansson
3838c2ab62 Fix scan_interval in Scrape (#83758)
Scrape fix scan_interval
2022-12-11 13:55:27 -05:00
Michael
c9611303d5 Fix IPv6 sensor is only loaded when Fritz!Box is in router mode (#83757)
do not check ipv6 when device is not a router
2022-12-11 13:55:26 -05:00
Avi Miller
00655ef21c lifx: bump aiolifx_effects dependency to v0.3.1 (#83730)
Fixes #83719

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

Signed-off-by: Avi Miller <me@dje.li>
2022-12-11 13:55:25 -05:00
Kostas Chatzikokolakis
c169654bdf Bump androidtv dependency of androitv component (#83707)
Fixes #80555
2022-12-11 13:55:25 -05:00
Michael
e1505339a5 Fix loading of Fritz!Smarthome issues on older Fritz!Box (#83688)
* check if templates are available

* add test
2022-12-11 13:55:24 -05:00
J. Nick Koston
3a2fb402a4 Fix delay setting up new Yale Access Bluetooth entries (#83683)
Entries took a while to setup because of the
async_wait_init_flow_finish call in _async_setup_component

The delay was so long that users thought the integration
was broken

We had a wait in place for advertisements to arrive
during discovery in case the lock was not
yet seen.  Since integration discovery is deferred
until after startup this wait it no longer needed
2022-12-11 13:55:23 -05:00
Shay Levy
d8982116fb Bump aioshelly to 5.1.1 (#83680) 2022-12-11 13:55:00 -05:00
SukramJ
4c346697f0 Add missing CONF_SPEED to sensor device_trigger SCHEMA (#83679)
* Update device_trigger.py

* add missing CONF_IS_SPEED to device_condition
2022-12-11 13:51:01 -05:00
Christopher Bailey
eb03307bce Fix event sensor for UniFi Protect (#83663)
* Fix event sensor for UniFi Protect

* Linting

* Adds no cover

* Clean up check

* Linting
2022-12-11 13:49:11 -05:00
rappenze
77336427a4 Fix fibaro climate unit (#83659) 2022-12-11 13:49:10 -05:00
Erik Montnemery
169b7c91c3 Bump pychromecast to 13.0.2 (#83625)
* Bump pychromecast to 13.0.2

* Pass hass UUID to HomeAssistantController
2022-12-11 13:49:09 -05:00
Maarten Weyns
b22bcc568a Bump pyrisco to 0.5.7 (#83548) 2022-12-11 13:49:09 -05:00
Franck Nijhof
4e73063ed3 2022.12.1 (#83592) 2022-12-09 08:29:14 +01:00
Paulus Schoutsen
e9796547c6 Make mypy happy (#83605) 2022-12-08 23:21:45 -05:00
Paulus Schoutsen
9c7b80090a Disable multi-pan (#83603)
* Disable multi-pan

* One more test skip
2022-12-08 22:44:16 -05:00
J. Nick Koston
19ddf478e2 Bump bluetooth-auto-recovery to 0.5.5 (#83597)
changelog: https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v0.5.4...v0.5.5

fixes #78036
2022-12-08 21:44:15 -05:00
Jeef
5cdcbcd5fe Bump intellifire4py to 2.2.2 (#83589) 2022-12-08 21:43:54 -05:00
Franck Nijhof
803d4a9998 Bump pip_check conflicts +1 (#83536)
* Bump pip_check conflicts +1

* Update script/pip_check

Co-authored-by: Philip Allgaier <mail@spacegaier.de>

Co-authored-by: Philip Allgaier <mail@spacegaier.de>
2022-12-08 21:39:30 -05:00
Paulus Schoutsen
8ccc77eb3d Bumped version to 2022.12.1 2022-12-08 16:45:23 -05:00
Allen Porter
5994dd558b Improve local calendar input validation error handling (#83563) 2022-12-08 16:45:16 -05:00
Bram Kragten
b548be35bc Update frontend to 20221208.0 (#83551) 2022-12-08 16:45:16 -05:00
Marc Mueller
2cf1235b78 Fix issue with Callable, Union, and Python 3.9 [mqtt] (#83547) 2022-12-08 16:45:15 -05:00
Allen Porter
609fc9196f Bump ical to 4.2.2 (#83520)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-12-08 16:45:14 -05:00
mezz64
b7396a736e Bump pyhik to 0.3.2 (#83517)
Increase pyHik version to fix videoloss error
2022-12-08 16:45:13 -05:00
Marcel van der Veldt
a64e56c8ad Bump python-matter-server to 1.0.7 (#83507) 2022-12-08 16:45:12 -05:00
Aaron Bach
94160903a7 Bump simplisafe-python to 2022.12.0 (#83497) 2022-12-08 16:45:12 -05:00
Joakim Plate
f4948e8f48 Make sure super async_added_to_hass is called (#83493)
Make sure super added to hass is called
2022-12-08 16:45:11 -05:00
Christian Kündig
ec7302ef1b Set connectable as false for sensirion_ble (#83481)
This is a passive ble integration. Not setting it as false means it won't match properly when using through a passive remote scanner.
2022-12-08 16:45:10 -05:00
Franck Nijhof
7b462e1b8e 2022.12.0 (#83482) 2022-12-07 20:26:50 +01:00
puddly
92bc93466e Fix missing Shelly UnitOfTemperature import (#83483) 2022-12-07 18:45:16 +01:00
Franck Nijhof
54dd556459 Bumped version to 2022.12.0 2022-12-07 17:49:50 +01:00
Bram Kragten
8553faf3c8 Update frontend to 20221207.0 (#83479) 2022-12-07 17:49:22 +01:00
TheJulianJES
1631d10365 Cleanup ZHA initialization for TS011F child_lock (#83478) 2022-12-07 17:49:19 +01:00
Joakim Sørensen
141f37504d When an account exist without a subscription "provider" will not exist (#83472) 2022-12-07 17:49:16 +01:00
David F. Mulcahey
f97795fbb9 Bump the ZHA quirks lib to 0.0.88 (#83468) 2022-12-07 17:49:12 +01:00
Joakim Sørensen
ebf133ef80 Bump hass-nabucasa from 0.59.0 to 0.61.0 (#83466) 2022-12-07 17:49:08 +01:00
Franck Nijhof
886525112b Remove doubtful repairs issue from UniFi Protect (#83463) 2022-12-07 17:49:05 +01:00
Maciej Bieniek
9a15494e69 Fix restored temperature values in Shelly climate platform (#83428)
* Set last_target_temp value according the unit system

* Convert restored temperature values

* Add test

* Improve comments

* Move _last_target_temp value to constants
2022-12-07 17:49:01 +01:00
mbo18
047012d167 Add Child lock support to Tuya devices (#83233)
* Add Child lock support to Tuya devices

* flake/black

* Add attribute to general.py

* apply only to TS011F

* also update general.py
2022-12-07 17:48:56 +01:00
Paulus Schoutsen
8703e14cab Bumped version to 2022.12.0b7 2022-12-06 22:58:47 -05:00
J. Nick Koston
5992361717 Do not try to stop the shelly ble scanner if not connected (#83424)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-12-06 22:58:42 -05:00
Daniel Hjelseth Høyer
54748cec82 Update tibber lib to 0.26.4, improve logging (#83418) 2022-12-06 22:58:41 -05:00
Raman Gupta
c8d560946b Add via_device support to zwave_js (#83219)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-12-06 22:58:40 -05:00
Martin Hjelmare
07c60686b1 Add matter switch platform (#83149) 2022-12-06 22:58:40 -05:00
Martin Hjelmare
7795cc7fe8 Add matter sensor platform (#83147) 2022-12-06 22:58:39 -05:00
Guido Pio Mariotti
172d587f84 Update pyvesync to 2.1.1 (#83146)
Update pyvesync to 2.1.1 to close #70420
2022-12-06 22:58:38 -05:00
Martin Hjelmare
7903f01f0c Add matter binary sensor platform (#83144) 2022-12-06 22:58:37 -05:00
Paulus Schoutsen
ced9248051 Bumped version to 2022.12.0b6 2022-12-06 13:22:52 -05:00
Bram Kragten
52ed121970 Update frontend to 20221206.0 (#83415) 2022-12-06 13:22:45 -05:00
Allen Porter
a2ba126be1 Tighten validation on calendar create event websocket (#83413) 2022-12-06 13:22:44 -05:00
Martin Hjelmare
1cfd292075 Bypass zwave_js config validation if driver not ready (#83410) 2022-12-06 13:22:43 -05:00
Franck Nijhof
048553cd02 Fix Goalzero time to empty sensor device class (#83389)
* Fix Goalzero time to empty sensor device class

* Fix tests
2022-12-06 13:22:43 -05:00
epenet
3a7efddb4b Fix sensor schema for device classes (#83378) 2022-12-06 13:22:42 -05:00
Raman Gupta
861a8ee3c7 Fix zwave_js_value_updated event (#83358)
* Fix zwave_js_value_updated event

* Fix zwave_js_value_updated event
2022-12-06 13:22:41 -05:00
Marcel van der Veldt
2b0c0cc6d2 Replace fixtures for Matter tests (#83328)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-12-06 13:22:40 -05:00
Paulus Schoutsen
d14655d891 Bumped version to 2022.12.0b5 2022-12-05 22:43:59 -05:00
Erik Montnemery
1f31e621c8 Fix repairing datetime precision for PostgreSQL (#83351) 2022-12-05 22:43:55 -05:00
puddly
afd27792da Bump ZHA dependencies (#83350) 2022-12-05 22:43:55 -05:00
Bram Kragten
7fc3708f76 Update frontend to 20221205.0 (#83349) 2022-12-05 22:43:54 -05:00
Bouwe Westerdijk
351bdff531 Update plugwise to v0.25.14, improve number detection (#83345)
fixes undefined
2022-12-05 22:43:53 -05:00
J. Nick Koston
604c4588cc Bump aiohomekit to 2.4.1 (#83341) 2022-12-05 22:43:52 -05:00
Martin Hjelmare
218046bfa5 Deprecate the Xbox Live integration (#83339) 2022-12-05 22:43:52 -05:00
Michał Ajduk
fed08a9d80 Fix Tuya number native value raw return (#83333)
fixes undefined
2022-12-05 22:43:51 -05:00
J. Nick Koston
f951808863 Fix bluetooth device connection failure when device is seen by dbus but not bleak (#83281) 2022-12-05 22:43:50 -05:00
Maikel Punie
c34f8dc246 Small fix for the velbus clear-cache service (#83279) 2022-12-05 22:43:50 -05:00
Christopher Bailey
8985a3cc06 Update UniFi Protect ring entity to use event entity (#83270) 2022-12-05 22:43:49 -05:00
Garrett
b30c98c525 Bump subarulink to v0.7.0 (#83213)
fixes undefined
2022-12-05 22:43:48 -05:00
Stephan Singer
8c02c778d4 Add IPv6 sensor to fritz component (#75708)
* Add IPv6 sensor to fritz component

* Cast return type to string

* Make ipv6 sensor suitable

* simplify cast to str

* use extisting property

Co-authored-by: chemelli74 <simone.chemelli@gmail.com>
Co-authored-by: mib1185 <mail@mib85.de>
2022-12-05 22:43:47 -05:00
Paulus Schoutsen
e862caa704 Bumped version to 2022.12.0b4 2022-12-04 21:17:16 -05:00
Joris Pelgröm
8d433aa481 Fix mobile_app returning cloud URL when not subscribed (#83257)
fixes undefined
2022-12-04 21:17:09 -05:00
Allen Porter
d89d2d3b33 Bump ical to 4.2.1 (#83254) 2022-12-04 21:17:08 -05:00
jjlawren
8c92f99cda Do not discard zero positions for Sonos media players (#83249)
fixes undefined
2022-12-04 21:17:08 -05:00
J. Nick Koston
17cd7d0a85 Avoid regex overhead in processing esphome bluetooth advertisements (#83246) 2022-12-04 21:17:07 -05:00
Allen Porter
7da31f6ee4 Bump gcal_sync to 4.0.4 (#83245) 2022-12-04 21:17:06 -05:00
Allen Porter
5d8650484b Bump ical to 4.2.0 (#83244) 2022-12-04 21:17:05 -05:00
J. Nick Koston
1aa2820c63 Bump pySwitchbot to 0.22.0 (#83243)
fixes https://github.com/home-assistant/core/issues/82961
2022-12-04 21:17:04 -05:00
Simone Chemelli
c1e808cc84 Fix missing title placeholders in Synology DSM reauth flow (#83238)
* Fix missing title placeholders in reauth flow

* fix tests

Co-authored-by: mib1185 <mail@mib85.de>
2022-12-04 21:17:03 -05:00
J. Nick Koston
d6b691e3e1 Bump aioesphomeapi to 13.0.1 (#83223)
fixes https://github.com/home-assistant/core/issues/83212
2022-12-04 21:17:02 -05:00
Joe Rogers
eb0450ad0c Handle numeric versions in mqtt update (#83218)
* Handle numeric versions in mqtt update

* Remove need for type:ignore

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2022-12-04 21:17:01 -05:00
Michael Chisholm
d14324c792 Update async-upnp-client to 0.32.3 (#83215) 2022-12-04 21:17:01 -05:00
J. Nick Koston
d32c32608b Raise an exception when an esp proxy gets empty services during connection so callers know to retry (#83211) 2022-12-04 21:17:00 -05:00
J. Nick Koston
be94e67ecc Restore HomeKit Controller BLE GSN at startup (#83206) 2022-12-04 21:16:59 -05:00
Olen
fe170ccd44 Switch Twinkly to awesomeversion (#83205)
Switch to awesomeversion
2022-12-04 21:16:58 -05:00
Aidan Timson
f396d66386 Update aiolyric to 1.0.9 (#83190) 2022-12-04 21:16:58 -05:00
Paulus Schoutsen
7f5ae00d58 Bumped version to 2022.12.0b3 2022-12-03 14:56:41 -05:00
Aaron Bach
ccd5783daf Fix SimpliSafe service calls that require a device selector (#83200)
fixes undefined
2022-12-03 14:56:36 -05:00
J. Nick Koston
f19322b1f3 Bump yalexs-ble to 1.10.2 (#83199) 2022-12-03 14:56:36 -05:00
J. Nick Koston
c63bb0e1d5 Bump pySwitchbot to 0.20.8 (#83197)
fixes https://github.com/home-assistant/core/issues/80491
2022-12-03 14:56:35 -05:00
J. Nick Koston
284c226cc0 Bump aiohomekit to 2.3.6 (#83196) 2022-12-03 14:56:34 -05:00
Allen Porter
5c918e9053 Bump ical to 4.1.2 to fix emoji in local calendar (#83193)
Bump ical to 4.1.2
2022-12-03 14:56:33 -05:00
J. Nick Koston
1a2f23f110 Fix missing services with esp32 proxies (#83192) 2022-12-03 14:56:33 -05:00
Joakim Sørensen
b015c5ab0c Add CLOSED as an expected type (#83180) 2022-12-03 14:56:32 -05:00
Daniel Hjelseth Høyer
31725df4d5 Update pyTibber to 0.26.3 (#83175)
Update Tibber lib 0.26.3

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-12-03 14:56:31 -05:00
J. Nick Koston
968a3c4eb2 Bump pySwitchbot to 0.20.7 (#83170)
changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.20.5...0.20.7
2022-12-03 14:56:30 -05:00
Kevin Stillhammer
75038d420c Raise UpdateFailed when here_travel_time cannot find_location (#83157)
Fixes https://github.com/home-assistant/core/issues/83100
fixes undefined
2022-12-03 14:56:30 -05:00
Olen
bb827a60ed Support older twinkly devices without effects (#83145)
fixes undefined
2022-12-03 14:56:29 -05:00
Joakim Sørensen
a7993e0640 Bump hass-nabucasa from 0.56.0 to 0.59.0 (#82987)
* Bump hass-nabucasa from 0.56.0 to 0.58.0

* 0.59.0
2022-12-03 14:56:28 -05:00
Matthias Alphart
fcb3445b8e KNX Config/OptionsFlow: Test connection to manually configured tunnel (#82872) 2022-12-03 14:56:27 -05:00
Lars
96cb856308 Add integration_type to AVM FRITZ!SmartHome (#81096) 2022-12-03 14:56:27 -05:00
Paulus Schoutsen
627f337e1e Bumped version to 2022.12.0b2 2022-12-02 21:01:38 -05:00
J. Nick Koston
5c8ccc89b1 Bump aiohomekit to 2.3.5 (#83168) 2022-12-02 21:01:31 -05:00
J. Nick Koston
2b4587a7a8 Fix race setting up homekit controller triggers (#83166)
fixes https://github.com/home-assistant/core/issues/83165
2022-12-02 21:01:30 -05:00
J. Nick Koston
f5de016f25 Fix reauth with esphome when adding noise encryption (#83164)
* Fix reauth with esphome when adding noise encryption

fixes #80813

* fix with unique id
2022-12-02 21:01:29 -05:00
J. Nick Koston
81c7a24133 Fix logging the wrong bluetooth adapter while connecting and out of slots (#83158) 2022-12-02 21:01:28 -05:00
J. Nick Koston
e13413ee09 Bump bluetooth-auto-recovery to 0.5.4 (#83155)
changelog: https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v0.5.3...v0.5.4
2022-12-02 21:01:28 -05:00
J. Nick Koston
0be9391d79 Fix esphome ble client leaking notify on disconnect (#83106)
* Fix esphome ble client leaking notify on disconnect

needs: https://github.com/esphome/aioesphomeapi/pull/329

* leak

* more cleanup

* more cleanup

* bump
2022-12-02 21:01:27 -05:00
Olen
daad93dd31 Fix twinkly effects (#83104)
Adding additional checks
2022-12-02 21:01:26 -05:00
J. Nick Koston
f635751020 Bump bleak-retry-connector to 2.8.7 (#83095)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.6...v2.8.7
2022-12-02 21:01:25 -05:00
J. Nick Koston
67d03031d5 Bump aiohomekit to 2.3.4 (#83094) 2022-12-02 21:01:25 -05:00
Raman Gupta
83af8434cd Bump zwave-js-server-python to 0.43.1 (#83093) 2022-12-02 21:01:24 -05:00
J. Nick Koston
f13f165d64 Fix wrong ble device being logged (#83091)
This code can be simplified a bit now that we
have the fast bleak lookup. We do connect
via the correct path, but we logged the wrong one
2022-12-02 21:01:23 -05:00
Christopher Bailey
1f804e2eed Bump pyunifiprotect to 4.5.2 (#83090) 2022-12-02 21:01:22 -05:00
Aaron Bach
52b3a309f8 Return empty data when OpenUV API call fails (#83089)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
fixes undefined
2022-12-02 21:01:22 -05:00
Marc Mueller
ee467e0f3a Fix prettier [ci] (#83077) 2022-12-02 21:01:21 -05:00
majuss
305dfda9ac Bump lupupy to 0.2.1 (#83071) 2022-12-02 21:01:20 -05:00
Alex Yao
e6b0d93c1d Fix html5 Firefox Notifications (#82556)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
fixes undefined
2022-12-02 21:01:19 -05:00
Paulus Schoutsen
68f5a3a82c Bumped version to 2022.12.0b1 2022-12-01 16:38:12 -05:00
J. Nick Koston
9cf2bd0794 Defer xiaomi ble polling until after startup (#83074)
fixes https://github.com/home-assistant/core/issues/77178
2022-12-01 16:38:00 -05:00
Christopher Bailey
90dfa9d2af Assorted fixes for UniFi Protect (#83032) 2022-12-01 16:37:59 -05:00
Daniel Hjelseth Høyer
5192b20a7c Tibber, fix date parsing (#83067)
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-12-01 16:37:08 -05:00
Marcel van der Veldt
095cc77bf9 Add matter integration BETA (#83064)
* Add matter base (#79372)

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>

* Add matter server add-on flow (#82698)

* Add matter server add-on flow

* Fix stale error argument

* Clean docstrings

* Use localhost as default address

* Add matter websocket api foundation (#82848)

* Add matter config entry add-on management (#82865)

* Use matter refactored server/client library (#83003)

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

* Bump python-matter-server to 1.0.6 (#83059)

* Extend matter websocket api (#82948)

* Extend matter websocket api

* Finish docstring

* Fix pin type

* Adjust api after new client

* Adjust api to frontend for now

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-12-01 16:37:07 -05:00
Bram Kragten
1bf5925cdf Update frontend to 20221201.1 (#83062) 2022-12-01 16:37:06 -05:00
Joakim Sørensen
47af4a6753 Fix hassfest serializer injecting commas in empty lists (#83052)
* No trailing comma for empty lists

* Update script/hassfest/serializer.py

Co-authored-by: Aarni Koskela <akx@iki.fi>

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Aarni Koskela <akx@iki.fi>
2022-12-01 16:37:05 -05:00
Jc2k
a9e1c14024 Fix getting updated thread IP at startup in homekit_controller (#83037) 2022-12-01 16:37:05 -05:00
J. Nick Koston
88072512d8 Fix incorrect mapping of sensitive mode on oralb 4000 series (#83031) 2022-12-01 16:37:04 -05:00
Keilin Bickar
5147beb475 Bump sense_api to 0.11.0 and add refresh token support (#83030)
fixes undefined
2022-12-01 16:37:03 -05:00
J. Nick Koston
b14dc306cf Fix yale access bluetooth locks delaying startup when key changes (#83024)
If the keys changed for the yale locks, the locks would be
slow to setup. Because august had yalexs_ble as an
after dep, it would be waiting with the new keys but not
able to setup because it was waiting for the locks to setup
which would be trying over and over until they failed because
the key had changed out from under it.

This change moves some more code into the lib to avoid
the dep and allows both to startup at the same time so
the cloud service can feed the new keys in if needed without
waiting for the lock to fail to setup

changelog: https://github.com/bdraco/yalexs-ble/compare/v1.9.8...v1.10.0
2022-12-01 16:37:02 -05:00
J. Nick Koston
cc2ab25916 Bump aiohomekit to 2.3.2 (#83019) 2022-12-01 16:37:01 -05:00
Franck Nijhof
a5afe47df7 Bumped version to 2022.12.0b0 2022-12-01 01:21:06 +01:00
J. Nick Koston
f4ee38687c Bump aioesphomeapi to 12.2.1 (#83017) 2022-12-01 01:10:40 +01:00
Franck Nijhof
40009ffa19 Merge branch 'master' into dev 2022-12-01 01:09:14 +01:00
Bram Kragten
a3fe08b62b Update frontend to 20221130.0 (#83014) 2022-11-30 23:28:24 +01:00
J. Nick Koston
b283015987 Bump yalexs-ble to 1.9.8 (#83012) 2022-11-30 23:23:29 +01:00
J. Nick Koston
d620b199fc Bump bleak-retry-connector to 2.8.6 (#83011) 2022-11-30 23:10:06 +01:00
Mike Degatano
b3deb476ef Allow is_state to accept a list of values (#81877)
* Allow is_state to accept a list of values

* Slightly more efficient

* Fix typing of state

Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-30 22:54:14 +01:00
Kevin Stillhammer
e158546425 Add missing @callback decorator in here_travel_time sensor (#83009) 2022-11-30 22:40:17 +01:00
Aaron Bach
671e6b3832 Remove old system ID format from SimpliSafe base stations (#82993) 2022-11-30 22:10:56 +01:00
J. Nick Koston
4239923ea2 Fix memory leak in onvif (#83006)
fixes https://github.com/home-assistant/core/issues/82504
2022-11-30 21:40:59 +01:00
Allen Porter
532ab12a48 Local calendar integration (#79601) 2022-11-30 21:20:21 +01:00
Artem Draft
8acc114cd9 Fix BraviaTV fake reauthentication (#82986) 2022-11-30 21:08:15 +01:00
Shay Levy
0d00e9c2d0 Fix Shelly addon analog input sensor (#83005) 2022-11-30 21:01:34 +01:00
puddly
7f96fbb035 Bump ZHA dependencies (#82999) 2022-11-30 20:56:07 +01:00
Robert Svensson
182c4bbc05 Bump aiounifi to v42 (#82995) 2022-11-30 19:04:14 +01:00
Matthias Alphart
a43d944309 Address late KNX flow tests review (#82975)
* KNX flow tests review

* patch out async_setup_entry in options-flow tests

* remove unneeded hass.async_block_till_done()

* Update test_config_flow.py

* autouse setup mock

* patch out async_setup too

* rename fixture according to pytest docs

* test call count to async_setup_entry

* dict access instead of .get()
2022-11-30 18:54:06 +01:00
Willem-Jan van Rootselaar
949dede16b Add support for BSBLAN firmware v3 (#82288)
* bump python-bsblan version to 0.5.8

* add static_state

this holds values that only needs retrieving once in a while

* update diagnostics  json with the right info
2022-11-30 16:36:33 +01:00
Nyro
cad04bff99 Use same Overkiz (Atlantic) climate entity for 2 different ui widget name (#82955)
* Use same overkiz entity for 2 different ui widget name

* Update homeassistant/components/overkiz/climate_entities/__init__.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
2022-11-30 16:32:07 +01:00
Kevin Stillhammer
dffdc78915 Make HERETravelTimeSensor extend RestoreSensor (#82400) 2022-11-30 16:13:11 +01:00
epenet
a12568440d Adjust precipitation unit in tomorrowio (#82982)
Adjust precipitation_unit in tomorrowio
2022-11-30 16:04:37 +01:00
epenet
5599ab6e4a Use OptionsFlowWithConfigEntry in bmw connected drive (#82904) 2022-11-30 15:02:21 +01:00
epenet
5be961f07f Use SchemaOptionsFlowHandler in blink (#82903)
* Use SchemaOptionsFlowHandler in blink

* Use config entry update listener

* Adjust tests

* Simplify options init

* Don't reload

* Use selector
2022-11-30 14:59:26 +01:00
Jan Bouwhuis
89a7d5fecc Update codeowners for mqtt integration (#82979)
Add @jbouwh to codeowners
2022-11-30 14:55:31 +01:00
Franck Nijhof
13a4541b7b 2022.11.5 (#82980)
Co-authored-by: mvn23 <schopdiedwaas@gmail.com>
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: Aaron Bach <bachya1208@gmail.com>
2022-11-30 14:42:45 +01:00
epenet
cbf8a41eed Add ability to edit sensors in scrape config flow (#82926)
* Add ability to edit sensors in scrape config flow

* Fix docstring

* Update homeassistant/components/scrape/config_flow.py

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

* docstring

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-11-30 14:16:28 +01:00
epenet
92fef0f2ba Improve resource validation in scrape config flow (#82965)
* Improve resource validation in scrape

* Coverage
2022-11-30 14:05:01 +01:00
Shay Levy
cd2bb292ab Address late review of Switcher button (#82981) 2022-11-30 13:32:45 +01:00
Jan Bouwhuis
f180f15bde Cleanup removed mqtt fan speed config variables (#82978) 2022-11-30 13:14:41 +01:00
Christopher McCurdy
4167edc52d Create a UUID from given LG soundbar device name (#81918)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Fixes https://github.com/home-assistant/core/issues/77524
fixes undefined
2022-11-30 12:53:49 +01:00
epenet
98f263c289 Make SchemaFlowFormStep functions async (#82962)
* Make validate async in SchemaOptionsFlowHandler

* Adjust group

* Adjust tests

* Move all to async

* Adjust integrations

* Missed an integration

* Missed one

* Rebase to fix conflict
2022-11-30 12:26:52 +01:00
Marc Mueller
490aec0b11 Update pylint to 2.15.7 (#82977) 2022-11-30 12:20:18 +01:00
Franck Nijhof
20b73d8724 Bumped version to 2022.11.5 2022-11-30 11:49:39 +01:00
Aaron Bach
f76e6d7ab3 Bump simplisafe-python to 2022.11.2 (#82943) 2022-11-30 11:48:40 +01:00
Aaron Bach
688b643ed6 Add missing SimpliSafe alarm states (#82813) 2022-11-30 11:48:37 +01:00
Aaron Bach
78ba1cbb32 Add missing SimpliSafe keypad battery sensor (#82797) 2022-11-30 11:48:34 +01:00
Daniel Hjelseth Høyer
97a7745e0a Update pyTibber to 0.26.1 (#82787)
* Update tibber library, 0.26.0

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

* 0.26.1

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-11-30 11:48:30 +01:00
G Johansson
8c63639905 Bump pysensibo to 1.0.22 (#82738)
fixes undefined
2022-11-30 11:48:24 +01:00
G Johansson
d7be666293 Bump pysensibo to 1.0.21 (#82023)
* pysensibo 1.0.21

* Add name to fixture
2022-11-30 11:48:20 +01:00
J. Nick Koston
7a1c5066a7 Fix homekit controller triggers not attaching when integration is setup after startup (#82717)
fixes https://github.com/home-assistant/core/issues/78852
2022-11-30 11:45:47 +01:00
J. Nick Koston
b7f0cba843 Fix iBeacons with infrequent random mac address changes unexpectedly going unavailable (#82668)
fixes https://github.com/home-assistant/core/issues/79781
2022-11-30 11:45:42 +01:00
Allen Porter
e3d1851343 Bump gcal_sync to 4.0.3 (#82606)
fixes undefined
2022-11-30 11:45:20 +01:00
J. Nick Koston
c91ef833f4 Ensure esphome client tasks await cancelation (#82547) 2022-11-30 11:45:15 +01:00
puddly
6c88574dee Bump ZHA dependencies (#82509)
* Bump ZHA dependencies

* Use the corrected `TypeValue` keyword argument name in unit tests
2022-11-30 11:37:52 +01:00
mvn23
a7315477ef Bump pyotgw to 2.1.3 (#82430) 2022-11-30 11:37:47 +01:00
epenet
0316800347 Enforce MediaPlayerState in media-player entities (#78467) 2022-11-30 11:18:49 +01:00
muppet3000
d243da99c7 Bump growattServer to 1.3.0 (#82953)
* Growatt library bump and init tweak (#81951)

* Addressing review comments (#81951)
2022-11-30 10:56:47 +01:00
Joakim Sørensen
2f91e2d6a5 Bump pycfdns from 2.0.0 to 2.0.1 (#82971) 2022-11-30 10:43:53 +01:00
Duco Sebel
c2d372dd13 Fix HomeWizard code quality issues (#82973)
* Sort platforms a-z

* Collect all switch entities and load in a single call

* Add test for button press
2022-11-30 10:28:28 +01:00
epenet
663482fb10 Add flow_state to SchemaCommonFlowHandler (#82967)
* Add local_context to SchemaCommonFlowHandler

* Rename to context

* Rename to flow_state
2022-11-30 10:18:57 +01:00
epenet
200f29563a Enforce MediaPlayerState in group (#78465)
* Enforce MediaPlayerState in group

* Adjust

* Use self._attr_state

* Add warning

* Add group name to logger warning

* Remove logger warning

* Remove duplicate code

* Add type hints to tests

* Improve coverage

* Improve coverage

* suppress ValueError
2022-11-30 10:13:14 +01:00
Matrix
b5aac9a1c7 Add entity update condition to yolink (#82970)
add entity update condition
2022-11-30 10:11:02 +01:00
Raman Gupta
e88e8862db Add missing device action string for text (#82963)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-30 09:40:24 +01:00
Thijs W
f2180de7c0 Adjust code comment in Frontier Silicon (#82969) 2022-11-30 09:38:37 +01:00
puddly
8c8994352d Allow only specific packages to be skipped during startup dependency installation (#82758) 2022-11-30 08:38:52 +01:00
epenet
fcf60a3b53 Use SchemaOptionsFlowHandler in buienradar (#82901)
* Use SchemaOptionsFlowHandler in buienradar

* Use NumberSelector

* Add mode and unit of measurement
2022-11-30 08:35:19 +01:00
yeahme49
fb57785ca6 Add Tuya DPCode for fsd (#82792)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-11-30 08:11:04 +01:00
J. Nick Koston
a28214caec Fix bluetooth remote connections not picking the best path (#82957) 2022-11-29 19:56:31 -10:00
Christopher Bailey
6c5aa3b8f9 Make UniFI Protect views more versatile (#82928) 2022-11-29 18:49:16 -10:00
Marvin Wichmann
1908feab79 Increase file upload limit to 100 MB (#77117)
* Increase file upload limit to 100 MB

* Remove comment

* Add test and fix chunk processing

* Add test for wrong field

* Add review suggestions

* Use nonlocal and remove unneeded executor task

* Use Janus to process chunk uploading

* Address review comments

* Address review comments #2

* Improve tests

* Fix discovery test

* Fix tests
2022-11-29 20:46:34 -05:00
J. Nick Koston
a3ec9529ec Fix lutron caseta triggers when device fails to setup before startup finishes (#82714)
Refactor the trigger attach so its not dependant on the intergration
being already setup

fixes #82495 & fixes #81999
2022-11-29 20:46:01 -05:00
Aaron Bach
43c8adc5ec Bump simplisafe-python to 2022.11.2 (#82943) 2022-11-29 18:35:35 -07:00
GitHub Action
197e71203b [ci skip] Translation update 2022-11-30 00:26:16 +00:00
Nyro
73cd2636dd Add Overkiz DomesticHotWaterProduction (#81538)
* Port DomesticHotWaterProduction from HA-Tahoma

* Add new domestic hot water controllable_name

* Update DHWP to detect existing commands instead of devices

* Update homeassistant/components/overkiz/water_heater_entities/domestic_hot_water_production.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/water_heater_entities/domestic_hot_water_production.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Improve read states and comment for overkiz DHWP

* Remove DHWP_BOOST_MODES

* Update DHWP to handle more device correctly

* Improve current_temperature for bogus device

* Init overkiz_to_operation_mode for DHWP

* Update command to be correct

* Upgrade pyoverkiz and use new constants for DHWP

* Remove .tow/.package.lock

Co-authored-by: Quentame <polletquentin74@me.com>
2022-11-29 23:08:13 +01:00
Joakim Plate
c576a68d33 Upgrade pytest-aiohttp (#82475)
* Upgrade pytest-aiohttp

* Make sure executors, tasks and timers are closed

Some test will trigger warnings on garbage collect, these warnings
spills over into next test.

Some test trigger tasks that raise errors on shutdown, these spill
over into next test.

This is to mimic older pytest-aiohttp and it's behaviour on test
cleanup.

Discussions on similar changes for pytest-aiohttp are here:
https://github.com/pytest-dev/pytest-asyncio/pull/309

* Replace loop with event_loop

* Make sure time is frozen for tests

* Make sure the ConditionType is not async

  /home-assistant/homeassistant/helpers/template.py:2082: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    def wrapper(*args, **kwargs):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

* Increase litejet press tests with a factor 10

The times are simulated anyway, and we can't stop the normal
event from occuring.

* Use async handlers for aiohttp

tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
  /Users/joakim/src/hass/home-assistant/venv/lib/python3.9/site-packages/aiohttp/web_urldispatcher.py:189: DeprecationWarning: Bare functions are deprecated, use async ones
    warnings.warn(

* Switch to freezegun in modbus tests

The tests allowed clock to tick in between steps

* Make sure skybell object are fully mocked

Old tests would trigger attempts to post to could services:

```
DEBUG:aioskybell:HTTP post https://cloud.myskybell.com/api/v3/login/ Request with headers: {'content-type': 'application/json', 'accept': '*/*', 'x-skybell-app-id': 'd2b542c7-a7e4-4e1e-b77d-2b76911c7c46', 'x-skybell-client-id': '1f36a3c0-6dee-4997-a6db-4e1c67338e57'}
```

* Fix sorting that broke after rebase
2022-11-29 22:36:36 +01:00
Erik Montnemery
b7652c78ee Add options flow to enable multiprotocol support on sky connect (#82525) 2022-11-29 16:34:55 -05:00
Aarni Koskela
16fc2972d3 Remove more useless manifest truthiness checks in hassfest (#82914) 2022-11-29 21:57:58 +01:00
Franck Nijhof
205a2ee215 Ensure Abode provides valid device classes (#82929) 2022-11-29 15:37:54 -05:00
Franck Nijhof
368694d6bf Collection of DeviceClass related typing fixes (#82931) 2022-11-29 14:31:25 -05:00
Jan Bouwhuis
2785b2b52f Add mqtt text platform (#82884) 2022-11-29 20:31:05 +01:00
Franck Nijhof
b4e30c4033 Use SensorDeviceClass enum in KNX (#82947) 2022-11-29 20:29:47 +01:00
Franck Nijhof
c36dd17780 Simplify use of binary sensor device classes in MySensors (#82946) 2022-11-29 20:23:57 +01:00
Bram Kragten
573320a0b4 Add country to detect location info (#82941) 2022-11-29 13:52:49 -05:00
Nyro
1c0f9cf941 Add Overkiz Hitachi DHW (#81536)
* Port ha-tahome hitachi dhw

* Use int for setting temperature

* Use value as float when possible

* Use device state for current operation

* Update homeassistant/components/overkiz/water_heater_entities/hitachi_dhw.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/water_heater_entities/hitachi_dhw.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Use ON instead of ECO for standard operation mode

Co-authored-by: Quentame <polletquentin74@me.com>
2022-11-29 19:27:05 +01:00
Joakim Sørensen
10e7d6e04d Add supervisor key to homassistant_alerts (#82862) 2022-11-29 13:22:36 -05:00
Matrix
4ab6f97341 Expose mcu detected temperature & signal (#82905) 2022-11-29 18:41:01 +01:00
epenet
c092f2be04 Use new unit enums in weather integrations (#82938) 2022-11-29 18:13:05 +01:00
epenet
4ad9633dfb Use new unit enums in weather entity (#82937) 2022-11-29 18:10:31 +01:00
Matthias Alphart
0561c14d53 Add text platform for KNX (#82811) 2022-11-29 18:05:51 +01:00
Franck Nijhof
d769359b4f Remove invalid custom device class from MinutPoint sound sensor (#82934) 2022-11-29 17:22:01 +01:00
epenet
db9e8d2fa1 Use OptionsFlowWithConfigEntry in braviatv (#82902)
* Use OptionsFlowWithConfigEntry in braviatv

* Make use of add_suggested_values_to_schema

* Full coverage
2022-11-29 16:48:51 +01:00
Franck Nijhof
a69e0defe6 Use device class enum instead of string (#82935) 2022-11-29 16:40:59 +01:00
epenet
2d7701cab5 Use SchemaOptionsFlowHandler in openuv (#82494)
* Use suggested_values helper in openuv

* Use SchemaOptionsFlowHandler
2022-11-29 16:14:32 +01:00
iridris
2173075004 Bump pycsspeechtts to v1.0.8 (#82922) 2022-11-29 16:06:44 +01:00
Marvin Wichmann
211dd64df1 Update xknx to 2.1.0 (#82930) 2022-11-29 16:03:03 +01:00
Mick Vleeshouwer
9a2b608d85 Bump pyoverkiz to 1.7.1 (#82925) 2022-11-29 16:00:52 +01:00
Franck Nijhof
f9364c4e01 Fix 4 misconfigured sensor entity descriptions in Tuya (#82933) 2022-11-29 15:54:48 +01:00
Franck Nijhof
a3b346b560 Trigger full CI on Text integration changes (#82907) 2022-11-29 15:49:10 +01:00
Duco Sebel
982966a3d9 Use device_registry for HomeWizard device_info (#82921)
* Use global device and use didentifiers to get device_info

* Remove unused config_entry
2022-11-29 14:30:22 +01:00
Matrix
f0b979556c Add YoLink MultiOutlet support (#82622) 2022-11-29 14:10:38 +01:00
Franck Nijhof
412c12b992 Improve device class handling in ESPHome (#82923) 2022-11-29 14:07:56 +01:00
Franck Nijhof
9805d8a6cc Fix device class typing in Universal Devices ISY994 (#82924) 2022-11-29 14:07:30 +01:00
north3221
d8a7336a3f Remove as codeowner for tado (#82919) 2022-11-29 13:58:53 +01:00
Marc Mueller
79b400d71b Improve PluggableActionsEntry typing (#82885)
* Improve PluggableActionsEntry typing

* Add parameter typing
2022-11-29 13:37:22 +01:00
epenet
f8e1cb5bcf Use SchemaOptionsFlowHandler in balboa (#82899)
* Use SchemaOptionsFlowHandler in balboa

* Make CONF_SYNC_TIME required
2022-11-29 13:37:05 +01:00
epenet
e6333c15eb Use SchemaOptionsFlowHandler in bluetooth (#82900) 2022-11-29 13:36:50 +01:00
epenet
23831d746e Add ability to remove sensors in scrape config flow (#82912)
* Add ability to remove sensors in scrape config flow

* Add test

* Cleanup registry

* Cleanup

* Adjust comments

* Fix bad cleanup
2022-11-29 13:36:33 +01:00
Thijs W
ce1b2f45c7 Add BROWSE_MEDIA support to frontier_silicon (#74950)
* Add BROWSE_MEDIA support to frontier_silicon

* Address review comments

* Don't use mediatype to differentiate between channels and presets
2022-11-29 13:31:49 +01:00
Erik Montnemery
7ebd279e14 Tweak pytest-durations CI parameters (#82918) 2022-11-29 13:30:26 +01:00
Olen
424febbbed Remove twinkly debug-logging (#82915)
Remove debug-logging

Removing a few debug logging statements
2022-11-29 13:01:43 +01:00
J. Nick Koston
d885e45ebb Bump bluetooth-auto-recovery to 0.5.3 (#82909) 2022-11-29 12:50:54 +01:00
Pascal Vizeli
e5c48edddd Bump aioecowitt to 2022.11.0 (#82913) 2022-11-29 12:48:07 +01:00
Erik Montnemery
a888ce9282 Increase timeout of MariaDB CI job (#82911) 2022-11-29 12:37:57 +01:00
mlemainque
060102832e Update daikin sensors (#82441)
fixes undefined
2022-11-29 11:47:03 +01:00
Olen
33cd59d3c2 Add Twinkly effects (#82861)
* Add Twinkly effects

* Remove spurious comment
2022-11-29 11:15:30 +01:00
hahn-th
9f8dea10f7 Add support for HmIP-eTRV-E to homematicip_cloud (#82876)
* Add device HmIP-eTRV-E

* Fix test
2022-11-29 11:13:53 +01:00
epenet
987c7a28a9 Add tests for suggested_values in SchemaFlowFormStep (#82906)
* Add tests

* Add test for merging user input
2022-11-29 11:09:12 +01:00
Christopher Bailey
596016c2ac Add new features from new UniFi Protect (#82892)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-28 23:44:31 -10:00
an0nfunc
a5890b2374 Support xiaomi_miio Smartmi Air Purifier (zhimi.airpurifier.za1) (#80387) 2022-11-29 10:29:34 +01:00
J. Nick Koston
f88487be25 Bump yalexs-ble to 1.9.7 (#82888) 2022-11-29 10:27:28 +01:00
Raman Gupta
1453308bc4 Add reproduce state support to text platform (#82772)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-11-29 10:27:05 +01:00
Erik Montnemery
f869ce9d06 Validate common statistics DB schema errors on start (#79707)
* Validate common statistics db schema errors on start

* Fix test

* Add tests

* Adjust tests

* Disable statistics schema validation in tests

* Update after rebase
2022-11-29 10:16:08 +01:00
epenet
724a79a8e8 Add suggested_value helper for FlowHandler (#82491)
* Add suggested_value helper for ConfigFlow

* Move helper function to FlowHandler

* Rename and adjust docstring

* Fix rebase
2022-11-29 10:16:01 +01:00
epenet
53e05dec02 Add ability to add sensors in scrape config flow (#82802)
* Add ability to add sensors in scrape config flow

* Fix menu

* Adjust comment

* Use sentinel

* Adjust docstring
2022-11-29 10:13:38 +01:00
Raman Gupta
258b9fe663 Support restoring TextEntity native_value (#82770) 2022-11-29 10:09:41 +01:00
Jan Bouwhuis
fcccc44ccb Cleanup unused AlexaPercentageController code (#82880) 2022-11-29 10:06:53 +01:00
dependabot[bot]
026a222d16 Bump home-assistant/builder from 2022.09.0 to 2022.11.0 (#82897)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-29 09:38:45 +01:00
J. Nick Koston
46b18367f7 Send back BLE address type when connecting via esphome proxies (#82890) 2022-11-28 18:54:53 -10:00
Christopher Bailey
1748a19242 Bump pyunifiprotect to 4.5.1 (#82886)
* Bump pyunifiprotect to 4.5.0

* Bump version to 4.5.1
2022-11-28 18:30:48 -10:00
J. Nick Koston
fb98128b9f Add support for esphome ble client connections v3 (#82815) 2022-11-28 16:56:18 -10:00
GitHub Action
230b50d099 [ci skip] Translation update 2022-11-29 00:26:01 +00:00
Joakim Sørensen
7c82b78f8c Add repair for legacy subscription to cloud integration (#82621) 2022-11-28 23:35:24 +01:00
Joakim Sørensen
82b2aaaa3e Patch entry setup in upcloud test (#82882) 2022-11-28 22:38:31 +01:00
ark
eb25968b31 Add valid country tests to workday sensors (#82799)
fixes undefined
2022-11-28 22:22:57 +01:00
Raman Gupta
71eb45072c Add device action for text platform (#82773) 2022-11-28 20:57:44 +01:00
Jan Bouwhuis
5d4c4a1293 Add humidifier support for Alexa (#81329) 2022-11-28 09:55:22 -10:00
Franck Nijhof
35e81cf982 Update aiohttp to 3.8.3 (#78860) 2022-11-28 20:42:10 +01:00
Christopher Bailey
b842e26d36 Split UniFi Protect object sensor into multiple (#82595) 2022-11-28 09:07:53 -10:00
Erik Montnemery
892be99ca0 Check if Multi-PAN addon is using the HA Yellow's radio (#82853) 2022-11-28 13:55:07 -05:00
Erik Montnemery
58b3a00b16 Remove unnecessary DB access from statistic_during_period (#82871) 2022-11-28 13:48:06 -05:00
Erik Montnemery
a038314d8b Add display unit to WS recorder/get_statistics_metadata (#82870) 2022-11-28 13:46:57 -05:00
pizzaboy192
3a65537c5e Enable Optional Indoor Humidity sensor for Lyric (#81420) 2022-11-28 17:55:06 +00:00
J. Nick Koston
1000f500df Bump aioesphomeapi to 12.0.1 (#82873) 2022-11-28 18:40:04 +01:00
Marc Mueller
2c43873317 Update codespell to 2.2.2 (#82856) 2022-11-28 17:52:15 +01:00
Avi Miller
9849735dc5 Bump aiolifx to 0.8.7 and refactor config flow connection (#82818)
Signed-off-by: Avi Miller <me@dje.li>

Signed-off-by: Avi Miller <me@dje.li>
2022-11-28 17:27:27 +01:00
Marc Mueller
63d519c1a8 Spelling updates (#82867) 2022-11-28 16:51:43 +01:00
Marc Mueller
d72802cfb0 Spelling - runtime and test changes (#82868) 2022-11-28 16:42:20 +01:00
epenet
42701a6872 Improve type hints in media player state (#82845)
* Improve type hints in media player state

* Reduce size of PR
2022-11-28 16:41:14 +01:00
Erik Montnemery
effa9940ff Save migrated store data (#82523) 2022-11-28 09:42:08 -05:00
Aarni Koskela
69d519418e Remove unnecessary truthiness checks for integration.manifest (#82319) 2022-11-28 15:33:14 +01:00
jjlawren
f887aeedfe Fix Sonos alarm 'scheduled_today' attribute logic (#82816)
fixes undefined
2022-11-28 15:31:32 +01:00
G Johansson
db480191ad Strict typing derivative (#82785) 2022-11-28 15:12:22 +01:00
Shay Levy
4c3d481b7b Parametrize Switcher button tests (#82849) 2022-11-28 14:57:52 +01:00
Marc Mueller
15f95a0787 Update flake8 and related dependencies (#82854) 2022-11-28 14:49:11 +01:00
Paulus Schoutsen
7dff44b3e9 Fix mobile app passing incorrect device ID when scanning tag (#82820) 2022-11-28 08:35:57 -05:00
epenet
fa08916a0a Use attributes in roon media player (#82838)
* Use _attr_state in roon media player

* Remove more properties

* Use early exit
2022-11-28 14:11:55 +01:00
Marc Mueller
476821bbf8 Update pyupgrade to 3.2.2 (#82855) 2022-11-28 13:55:04 +01:00
hahn-th
caa981bbea Bump homematicip 1.0.11 (#82852)
fixes undefined
2022-11-28 13:54:20 +01:00
epenet
49879fd257 Use attributes in yamaha media player (#82843) 2022-11-28 13:51:09 +01:00
epenet
e8a03ea870 Use attributes in xiaomi-tv media player (#82842) 2022-11-28 12:26:24 +01:00
epenet
a747a8f936 Use attributes in vlc media player (#82841) 2022-11-28 12:25:47 +01:00
epenet
6a17937dc3 Use attributes in ue smart radio media player (#82840) 2022-11-28 12:25:06 +01:00
epenet
4bf1475c95 Use attributes in ps4 media player (#82837) 2022-11-28 12:23:20 +01:00
Aaron Bach
7ba234a7ad Add missing SimpliSafe alarm states (#82813) 2022-11-28 10:51:30 +01:00
epenet
ac896121d3 Use _attr in pandora media player (#82835) 2022-11-28 10:47:11 +01:00
epenet
19abba7f6b Use _attr in onkyo media player (#82832) 2022-11-28 10:42:38 +01:00
epenet
9ecbcd2d8f Use _attr_state in panasonic bluray media player (#82834) 2022-11-28 10:40:32 +01:00
epenet
9802c2a646 Use _attr in nad media player (#82831) 2022-11-28 10:35:57 +01:00
epenet
841c408344 Use _attr in pjlink media player (#82836) 2022-11-28 10:33:08 +01:00
epenet
cee716b892 Use _attr_state in ziggo mediabox xl media player (#82844) 2022-11-28 10:31:16 +01:00
epenet
622466b3d3 Use _attr_state in russound met media player (#82839) 2022-11-28 10:30:15 +01:00
epenet
7a1907e540 Enforce MediaPlayerState in denonavr media player (#82847) 2022-11-28 10:25:20 +01:00
epenet
afe01c2434 Use attributes in demo media player (#78040) 2022-11-28 10:19:47 +01:00
Matthias Alphart
e738df502b Fix KNX secure config switching from manual to keyfile (#82724) 2022-11-28 10:18:45 +01:00
epenet
8a20a90324 Use SchemaOptionsFlowHandler in asuswrt (#82806) 2022-11-28 09:56:08 +01:00
Erik Montnemery
67e4f2c202 Raise repairs issue if country is not configured (#82685) 2022-11-28 09:54:13 +01:00
epenet
b2b3e14810 Use OptionsFlowWithConfigEntry in androidtv (#82805) 2022-11-28 09:47:40 +01:00
epenet
6e37aa425b Use _attr_state in gstreamer media player (#82846) 2022-11-28 09:46:45 +01:00
epenet
b7f1ebe13c Use _attr_state in mediaroom media player (#82830) 2022-11-28 09:29:46 +01:00
epenet
ff67374901 Use _attr_state in lg-netcast media player (#82828) 2022-11-28 09:29:28 +01:00
epenet
3e35d869d2 Use _attr_state in horizon media player (#82827) 2022-11-28 09:29:04 +01:00
epenet
9ea8e0a7ca Use _attr_state in harman kardon avr media player (#82826) 2022-11-28 09:28:08 +01:00
epenet
5be36912b2 Use _attr_state in openhome media player (#82833) 2022-11-28 09:19:41 +01:00
epenet
a236836796 Fix typo in helper docstring (#82824) 2022-11-28 09:15:16 +01:00
Shay Levy
f97ac9fdcd Add Switcher button platform (#81245) 2022-11-28 10:06:14 +02:00
epenet
ec823582eb Use OptionsFlowWithConfigEntry in axis (#82804) 2022-11-28 07:39:47 +01:00
Matthias Alphart
cb06f8b668 KNX Config/OptionsFlow: minimize wait time for interface discovery (#81982)
* Minimize wait time for interface discovery

* fix OptionsFlow when connection failed

there is no `self.hass.data["KNX"]` when we are in retry mode after failed integration setup

* review changes

* fix new tests
2022-11-28 07:03:51 +01:00
J. Nick Koston
d451a74c2d Add a destruction check to the ESPHome bluetooth client (#82760) 2022-11-27 21:17:35 -05:00
Duco Sebel
367b5e586b Add support for HomeWizard identify feature (#82375)
* Add support for Identify feature

* Add tests for button

* Use only identifiers for device_info

* Update homeassistant/components/homewizard/button.py
2022-11-27 20:48:35 -05:00
GitHub Action
b65d8cc1b3 [ci skip] Translation update 2022-11-28 00:23:09 +00:00
Matthias Alphart
4517af509c Add support for KNX IP-Secure routing (#82765)
* always use instance variable for new entry data

- change `self._tunneling_config` to non-optional `self.new_entry_data`
- always use self.new_entry_data in `finish_flow()`

* support secure routing

* amend current tests

* use sync latency tolerance

* test secure routing config flow

* diagnostics redact backbone_key

* test xknx library setup

* check length of backbone_key

* better readable key validation
2022-11-27 23:33:12 +01:00
J. Nick Koston
d6e287f47a Add manufacturer and model to bluetooth adapter device (#82769)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-11-27 15:44:44 -05:00
Álvaro Fernández Rojas
873b903cf0 Add QNAP QSW binary sensors for each port (#76522)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-27 15:34:14 -05:00
Robert Hillis
8a1805fa89 Add Do Not Disturb sensor to Slack (#72380) 2022-11-27 15:31:38 -05:00
Mask3007
e1572872a1 Update holidays dependency to latest 0.17.2 (#82794)
fixes undefined
2022-11-27 15:14:21 -05:00
Robert Svensson
3853182ccf Add deconz_relative_rotary event for Hue Tap Dial (#82727) 2022-11-27 15:01:58 -05:00
Aaron Bach
4928c3d683 Add missing SimpliSafe keypad battery sensor (#82797) 2022-11-27 14:59:54 -05:00
J. Nick Koston
f0ae1cc6ce Add bluetooth diagnostics to esphome (#82761) 2022-11-27 14:59:37 -05:00
J. Nick Koston
3e3138ef1b Bump yalexs-ble to 1.9.6 (#82779) 2022-11-27 14:58:32 -05:00
Allen Porter
682486c864 Bump pyrainbird to 0.6.3 and drop dependency conflict count (#82800) 2022-11-27 14:49:47 -05:00
uvjustin
31ad208500 Use async with to fetch HTTP streams in tests (#82788) 2022-11-27 14:35:03 -05:00
Michael
444ad52757 Fix info message in config_entries handle_reload (#82798) 2022-11-27 14:34:01 -05:00
J. Nick Koston
6662dbf3c8 Bump bluetooth-auto-recovery to 0.5.2 (#82768) 2022-11-27 14:27:59 -05:00
Duco Sebel
27bd1520e8 Add support for HomeWizard enable/disable cloud feature (#82573) 2022-11-27 14:26:15 -05:00
Daniel Hjelseth Høyer
093bd00807 Update pyTibber to 0.26.1 (#82787)
* Update tibber library, 0.26.0

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

* 0.26.1

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2022-11-27 16:46:42 +01:00
mkmer
cf249d85ee Bump AIOAladdinConnect to 0.1.48 (#82791) 2022-11-27 05:31:41 -10:00
J. Nick Koston
8345176ccc Adjust pip check for four conflicts (#82777) 2022-11-27 10:31:32 +01:00
GitHub Action
4becb9454b [ci skip] Translation update 2022-11-27 00:26:07 +00:00
G Johansson
528a4819f0 Bump pytrafikverket to 0.2.2 (#82739)
Bump pytrafikverket 0.2.2
2022-11-27 00:06:49 +02:00
G Johansson
c2d52f8fcb Fix duplicate "devices" in DNSIP (#82741)
* duplicate device

* clean
2022-11-27 00:05:54 +02:00
G Johansson
6cfb40f080 Bump pysensibo to 1.0.22 (#82738)
fixes undefined
2022-11-26 11:14:11 -10:00
uvjustin
9390359fe3 Bump httpx to 0.23.1 (#82725) 2022-11-26 10:04:22 -10:00
J. Nick Koston
05f89efd2c Fix homekit controller triggers not attaching when integration is setup after startup (#82717)
fixes https://github.com/home-assistant/core/issues/78852
2022-11-26 09:19:06 -10:00
Maciej Bieniek
dcf50e5e90 Bump nextdns library to version 1.2.2 (#82735)
Bump nextdns library to version 1.2.2
2022-11-26 13:02:12 -05:00
G Johansson
987cf8b9d0 Fix pushbullet test that break CI (#82744)
pushbullet break ci
2022-11-26 13:01:22 -05:00
Erik Montnemery
2fe8e95309 Add helper to calculate statistic period start and end (#82493)
* Add helper to calculate statistic period start and end

* Don't parse values in resolve_period

* Add specific test for resolve_period

* Improve typing

* Move to recorder/util.py

* Extract period schema
2022-11-26 13:00:40 -05:00
mbo18
405c2ca82d Add native unit where device class is set in rflink (#82729)
Add native unit where device class is set
2022-11-26 16:40:57 +01:00
On Freund
5adfae2235 Reduce error trace in Risco config flow to debug (#82730) 2022-11-26 16:38:12 +01:00
jan iversen
8ed4ce64c3 Solve modbus binary slave problem (#82338)
* Solve modbus binary slave problem.
2022-11-26 11:11:50 +01:00
Robert Svensson
e1a0f8314e Fix deCONZ Air Quality PPB device class and unit of measurement (#82726)
Fix Air Quality PPB device class and unit of measurement
2022-11-26 10:56:09 +01:00
Matthias Alphart
daf56e92a0 Update xknx to 2.0.0 (#82709) 2022-11-26 06:49:11 +01:00
mbo18
6f1208b07f Add more sensors to SensorEntityDescription for RFLink (#82036)
* Add more sensors to SensorEntityDescription

* changes from comments

* add device_class precipitation

* fix test

* change state_class for total_rain
2022-11-26 05:40:02 +01:00
Willem-Jan van Rootselaar
fb132f8a26 Add diagnostics to bsblan (#80957)
* add diagnostics to bsblan

* add device info

check firmware.

* add test for diagnostics

* Update tests/components/bsblan/test_diagnostics.py

Co-authored-by: Aarni Koskela <akx@iki.fi>

* add fixture for diagnostics test

Co-authored-by: Aarni Koskela <akx@iki.fi>
2022-11-26 03:12:07 +01:00
GitHub Action
797dc51bc5 [ci skip] Translation update 2022-11-26 00:22:30 +00:00
J. Nick Koston
1c9b068331 Fix grammar in ibeacon comments (#82718)
* Fix grammar in ibeacon comments

* Update homeassistant/components/ibeacon/coordinator.py
2022-11-25 22:34:36 +01:00
Jan Bouwhuis
e9a9ab9025 Correction in mqtt error string (#82712)
Text correction in mqtt error string
2022-11-25 21:07:08 +01:00
Erik Montnemery
7b5c80720a Tweak scaffold script (#82705) 2022-11-25 20:12:27 +01:00
Erik Montnemery
35dbc3151a Fix docstring for entity helper (#82704)
Fix some language in entity.py
2022-11-25 18:20:33 +01:00
epenet
3c3f48fe28 Use SchemaOptionsFlowHandler in azure-event-hub (#82619)
* Use SchemaOptionsFlowHandler in azure-event-hub

* Update config_flow.py

* black
2022-11-25 17:26:50 +01:00
epenet
0a4549e202 Add callback to SchemaFlowFormStep for suggested_values (#82706)
* Allow callback for suggested_values

* docstring
2022-11-25 16:38:58 +01:00
epenet
20474e500c Use SchemaOptionsFlowHandler in aemet (#82638)
* Use SchemaOptionsFlowHandler in aemet

* Update homeassistant/components/aemet/config_flow.py

* Update config_flow.py

* black
2022-11-25 16:16:43 +01:00
uvjustin
5381f9f92f Fix owntone websocket reconnection (#82680) 2022-11-25 16:16:16 +01:00
On Freund
424d38ecc7 Add exception trace in Risco config flow (#82683) 2022-11-25 16:12:31 +01:00
Jan Bouwhuis
4335b0db25 Clean up or correct from removed deprecation for MQTT platform (#82684)
Clean up or correct from removed deprecation
2022-11-25 16:11:22 +01:00
epenet
34757fa539 Use SchemaOptionsFlowHandler in airvisual (#82686) 2022-11-25 16:09:18 +01:00
epenet
283ee94cf3 Use SchemaOptionsFlowHandler in aurora (#82687) 2022-11-25 16:09:09 +01:00
epenet
e00808bea8 Use SchemaOptionsFlowHandler in apple_tv (#82688) 2022-11-25 16:09:01 +01:00
Erik Montnemery
e9ce08763c Allow SchemaFlowFormStep.next_step to return None (#82707) 2022-11-25 16:00:26 +01:00
Franck Nijhof
13458dc722 Centralize exception handling in Plugwise (#82694) 2022-11-25 15:56:58 +01:00
epenet
fd3e996a1e Merge test files (#82703) 2022-11-25 15:11:09 +01:00
Klaas Schoute
be13f3fbcf Add API key validation for Forecast.Solar (#80856)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-11-25 15:05:01 +01:00
epenet
fcba9974e5 Rename options to suggested_values (#82700) 2022-11-25 14:40:20 +01:00
epenet
6c615016b8 Fix None schema in SchemaCommonFlowHandler (#82699) 2022-11-25 14:30:02 +01:00
Jan Bouwhuis
95e6faad0a Set mqtt quality scale to gold (#82696) 2022-11-25 13:41:46 +01:00
G Johansson
5d7f9aee27 Add number entities to config flow for min_max (#82665) 2022-11-25 12:38:51 +01:00
Kevin Stillhammer
5257875ac6 Use SensorDeviceClass.DISTANCE for here_travel_time (#79159)
* Use SensorDeviceClass.DISTANCE in here_travel_time

* Removed unused import

* Use explicit units and conversion
2022-11-25 12:30:33 +01:00
Franck Nijhof
c715035016 Add support for raising ConfigEntryError (#82689) 2022-11-25 11:33:03 +01:00
epenet
e7d4f745ec Expose config_entry and options as properties (#82691)
Expose config_entry and options as a property
2022-11-25 11:13:44 +01:00
Bouwe Westerdijk
ea1868b7b9 Bump plugwise to v0.25.12 (#82146)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
fixes undefined
2022-11-25 10:55:51 +01:00
epenet
9feb64cebd Simplify schema callback in SchemaFlowFormStep (#82682)
* Simplify SchemaFlowFormStep.schema callback

* Expose parent handler

* Adjust docstrings
2022-11-25 10:50:38 +01:00
Jan Bouwhuis
01b0f4d565 Announce a deprecated callback for MQTT subscribe will stop working (#82610)
* Announce a deprecated callback will stop working

* Use 2 months grace period

* Use 2 months grace period

* Use 2 months grace period

* Add deprecation comment to tests
2022-11-25 10:22:12 +01:00
epenet
a4dbb9a24e Add handler to validate_user_input (#82681)
* Add handler to validate_user_input

* Adjust group config flow
2022-11-25 09:29:54 +01:00
GitHub Action
f3b3193f7a [ci skip] Translation update 2022-11-25 00:24:19 +00:00
Erik Montnemery
e1338adf1a Allow configuring country and language in core config (#81734)
* Allow configuring country and language in core config

* Add script for updating list of countries

* Use black for formatting

* Fix quoting

* Move country codes to a separate file

* Address review comments

* Add generated/countries.py

* Get default language from owner account

* Remove unused variable

* Add script to generate list of supported languages

* Add tests

* Fix stale docsring

* Use format_python_namespace

* Correct async_user_store

* Improve typing

* Fix with_store decorator

* Initialize language in core store migration

* Fix startup

* Tweak

* Apply suggestions from code review

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

* Update storage.py

Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-24 23:25:50 +01:00
J. Nick Koston
09c3df7eb2 Fix iBeacons with infrequent random mac address changes unexpectedly going unavailable (#82668)
fixes https://github.com/home-assistant/core/issues/79781
2022-11-24 23:20:19 +01:00
Erik Montnemery
47cec8da8e Add integration filter to utility_meter.calibrate service (#82671) 2022-11-24 22:41:56 +01:00
uvjustin
fcfc0e64d5 Fix mime type in forked_daapd test (#82660) 2022-11-24 22:41:26 +01:00
G Johansson
6cb004b770 Selector for SingleEntitySelectorConfig allow domain to be a list (#82666) 2022-11-24 22:34:39 +01:00
Erik Montnemery
9995cef0f9 Pass sensor DOMAIN constant to EntitySelectorConfig (#82670) 2022-11-24 22:19:47 +01:00
Erik Montnemery
b94e1e9ef8 Fire events when long term statistics is updated (#82492)
* Fire events when long term statistics is updated

* Allow the new events to be subscribed to by anyone

* Address review comments

* Finish renaming events

* Finish renaming events

* Fix do_adhoc_statistics

* Adjust tests

* Adjust tests
2022-11-24 22:01:36 +01:00
epenet
9f9114cb4a Simplify SchemaFlowStep typing (#82661)
* Simplify SchemaFlowStep typing

* Adjust accuweather
2022-11-24 21:59:41 +01:00
Gleb Sinyavskiy
6c024c8875 Bump aiotractive, properly handle auth errors when reading events (#76715)
* Bump aiotractive, start handling authorzation errors when reading events

* Bump aiotractive, start handling authorzation errors when reading events

* Properly handle unauthorized errors

* Update homeassistant/components/tractive/__init__.py

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

* Use await when unsibscribing after auth error

* Update homeassistant/components/tractive/__init__.py

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

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-24 21:51:18 +01:00
J. Nick Koston
18dd605a74 Fix un-retrieved future in esphome ble client when library raises (#82537) 2022-11-24 10:38:53 -10:00
Robert Hillis
c30ce12c49 Remove deprecated Radarr YAML config (#81210) 2022-11-24 21:14:26 +01:00
G Johansson
a63581b5c8 Add unique id for Scrape config entry entities (#82508)
* scrape unique id

* fix uuid str

* add back UoM
2022-11-24 21:12:47 +01:00
Teemu R
e4fbbdfa05 Do not crash on non-existing enum values in xiaomi_miio.select (#82625)
fixes undefined
2022-11-24 20:49:30 +01:00
G Johansson
3b0a42f8f4 Code quality Local IP (#82050) 2022-11-24 20:39:14 +01:00
Shay Levy
815dfe9134 Fix Shelly gen2 channel name (#82655)
* Fix Shelly gen2 channel name

* Review comment
2022-11-24 21:38:32 +02:00
Erik Montnemery
978122c882 Fix docstring in SchemaFlowFormStep (#82612) 2022-11-24 20:30:23 +01:00
G Johansson
635d8c01fb Add sum to min_max helper (#82651)
sum to min_max
2022-11-24 20:21:09 +01:00
G Johansson
cf681cd921 Add myself as codeowner for min_max (#82658)
codeowner
2022-11-24 20:14:08 +01:00
epenet
6e2803a6d8 Use SchemaOptionsFlowHandler in Accuweather (#82627)
Use SchemaOptionsFlowHandler in accuweather
2022-11-24 20:08:14 +01:00
Shay Levy
5e32abd04e Mark Shelly as Platinum integration (#82656) 2022-11-24 09:04:51 -10:00
Raman Gupta
003e4224c8 Add text platform (#79454)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-24 20:01:01 +01:00
epenet
9132c42037 Improve Selector typing (#82636) 2022-11-24 19:27:26 +01:00
Maciej Bieniek
34633b0ede Bump nextdns library to 1.2.0 (#82643) 2022-11-24 19:24:47 +01:00
Felipe Santos
dfa1ecd032 Update base image to 2022.11.0 (#82527)
fixes undefined
2022-11-24 19:21:42 +01:00
rappenze
cd2377bc05 Support hvacsystem in fibaro integration (#78234)
fixes undefined
2022-11-24 19:16:33 +01:00
Shay Levy
1e68e8c4b4 Add Shelly tests coverage (#82642)
* Add Shelly tests coverage

* Review comments

* Remove leftovers
2022-11-24 20:07:19 +02:00
epenet
caa99ea9fb Allow next_step to be a string (#82647)
* Allow next_step to be a string

* Adjust docstrings

* Add test
2022-11-24 18:55:53 +01:00
Franck Nijhof
285aff154d Remove Google Chat/Hangouts integration (#82645) 2022-11-24 18:33:13 +01:00
Erik Montnemery
8577310e6d Fix show_menu support in SchemaFlowFormStep (#82634)
* Fix show_menu support in SchemaFlowFormStep

* Add test

* Fix test
2022-11-24 17:30:01 +01:00
Allen Porter
bba119affa Bump gcal_sync to 4.0.3 (#82606)
fixes undefined
2022-11-24 17:01:20 +01:00
Rogelio Orts
bb517c269e Add unknown tuya modes as presets (#82056)
Fixes https://github.com/home-assistant/core/issues/81681
fixes undefined
2022-11-24 16:28:43 +01:00
epenet
e386bab682 Add type hint to template wrapper (#82563)
* Add type to template hassfunction decorator

* Adjust to use EvalContext

* Use runtime.Context

* Use TypeVar for context

* Use jinja2.runtime.Context

* Reverse declarations

* Use Any

* Update homeassistant/helpers/template.py

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-11-24 15:30:21 +01:00
Joakim Sørensen
d0390860fb Add repair abort flow to demo integration (#82614) 2022-11-24 14:54:41 +01:00
epenet
a856abf47f Make async_options_flow_finished optional (#82615)
* Make async_options_flow_finished optional

* Adjust docstring
2022-11-24 14:43:40 +01:00
Marc Mueller
c0425619e2 Fix round typing [mqtt] (#82629) 2022-11-24 14:39:01 +01:00
epenet
ba18571cbe Set last_step in SchemaCommonFlowHandler (#82616)
* Set last_step in SchemaCommonFlowHandler

* Always use boolean

* Adjust next_step definition
2022-11-24 14:37:55 +01:00
Marc Mueller
072bbcf203 Fix round typing [homewizard] (#82628) 2022-11-24 13:46:39 +01:00
epenet
4c38a5d773 Add OptionsFlow helper class (#82531)
* Add OptionsFlow helper classes

* More integrations

* Adjust SchemaOptionsFlowHandler

* Use single class

* Simplify access to options

* Reduce PR

* Make _options private

* Add test
2022-11-24 12:18:09 +01:00
Franck Nijhof
7f90fb1cd1 Merge branch 'master' into dev 2022-11-24 09:31:08 +01:00
epenet
b525259878 Add type hints to template result wrapper (#82575)
* Add type hints to template result wrapper

* Remove `ignore[call-arg]`

* Use tuple

* Alphabetise
2022-11-24 08:41:14 +01:00
On Freund
9dd1b85cbb Allow device_attr and is_device_attr to be used as a filter and a test (respectively) (#81924)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-11-24 08:31:17 +01:00
Jan Bouwhuis
8a8732f0bc Strict type hints for MQTT integration (#82317)
* Strict type hints for MQTT integration

* Fix errors

* Additional corrections

* Use cv.template to avoid untyped calls

* Enable strict typing policy for MQTT integration

* Use ignore[no-untyped-call]

* Use # type: ignore[unreachable]

* Correct cast

* Refactor getting discovery_payload

* Remove unused type ignore comments
2022-11-24 08:25:44 +01:00
epenet
697b5db3f2 Migrate precipitation units to an enum (#81143) 2022-11-24 08:23:30 +01:00
Joakim Sørensen
621068211f Do not delete issue when aborting repairs fix flow (#82593)
* Do not delete issue when aborting repairs fix flow

* lint

* types
2022-11-24 08:21:54 +01:00
mkmer
ae07e2a9a8 Add reauth config flow to Whirlpool (#82532)
* Add ReauthFlow

* Update homeassistant/components/whirlpool/config_flow.py

Darn it - thought I caught all of these.

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update homeassistant/components/whirlpool/config_flow.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update homeassistant/components/whirlpool/config_flow.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update homeassistant/components/whirlpool/config_flow.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update homeassistant/components/whirlpool/config_flow.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

* Update homeassistant/components/whirlpool/config_flow.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2022-11-23 19:40:33 -08:00
GitHub Action
33d391a110 [ci skip] Translation update 2022-11-24 00:26:32 +00:00
Maciej Bieniek
845bcf3f7d Translate PowerOff state of select entity in Harmony integration (#77491)
* Add custom device_class for select entity

* Update tests

* Make the state PowerOff translatable

* Update strings.select.json file

* add select.en.json

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-24 00:08:43 +01:00
epenet
d7f0b904d0 Add type to template function (#82564) 2022-11-23 21:50:45 +01:00
Kevin Stillhammer
f43f0c4bcc Use assignment expression for alexa init (#81242) 2022-11-23 20:54:16 +01:00
Joakim Plate
8bd4125390 Test corrections noticed during pytest upgrade (#82579)
* Withing trigger a call to coordinator after init

* Stop discovery task on STOP event

* Stop dsmr connection task on STOP

* Use autospec in modem_serial tests

close on AioSerial is non async, and should not be mocked as a coroutine

* Make sure responder is specced correctly

tests/components/emulated_hue/test_init.py::test_setup_works
  /Users/joakim/src/hass/home-assistant/homeassistant/components/emulated_hue/__init__.py:119: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    protocol.close()

* Don't assume Pymodbus is the only thing logging

* Use gather instead of wait

```
homeassistant/components/homeassistant/__init__.py:208: DeprecationWarning: The explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.
```

* Increase wait time for automation tests

Assuming exit within 1 seconds is unreasonable on a potentially loaded
test machine.

* Avoid changing app state after startup
2022-11-23 20:53:28 +01:00
Joakim Plate
25c7754edb Upgrade arcam_fmj to entity naming (#82586) 2022-11-23 20:36:17 +01:00
Álvaro Fernández Rojas
f1ffb25d99 Add Airzone DHCP discovery support (#82339) 2022-11-23 12:32:23 -07:00
epenet
f91e250e90 Fix TemplateError definition (#82570) 2022-11-23 20:30:32 +01:00
epenet
6b85d17e7c Add type hints to template tests (#82566) 2022-11-23 20:28:52 +01:00
Jan Bouwhuis
23bc39b7f4 Add type hints on Template().__init__() (#82574) 2022-11-23 20:26:55 +01:00
Tom Schneider
27e6b69656 Add yamaha brand configuration (#81267)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-23 20:19:20 +01:00
G Johansson
8704f1aa47 Fully type min_max (#79496) 2022-11-23 19:54:12 +01:00
Aarni Koskela
97b40b5f49 Make hassfest strictly typed (#82091) 2022-11-23 19:05:31 +01:00
Franck Nijhof
0b5357de44 Cleanup Climacell translations (#82584) 2022-11-23 17:49:59 +01:00
Duco Sebel
a969f69fd5 Add support for controlling HomeWizard Energy Socket status light level (#82378)
* Add control option for Energy Socket status LED

* Add tests for number

* Fix failing tests in switch

* Fix comments

* Adjust name

* Simplify device_info
2022-11-23 11:47:32 -05:00
epenet
aa02a53ac6 Add type hints to template states (#82582)
* Add type hints to template states

* Undo rename

* Remove invalid mypy issue link
2022-11-23 17:46:51 +01:00
Matrix
95cbf7cca7 Add yolink Dimmer support (#81970)
* Add yolink Dimmer support

* suggest change

* fix suggest

* fix suggest

* fix suggest
2022-11-23 16:27:51 +01:00
Jan Bouwhuis
4f3919cb95 Move mqtt device_tracker files (#82581)
Move mqtt device_tracker files to single file
2022-11-23 16:24:56 +01:00
Joakim Plate
a55fb445b0 Bump to Arcam 1.0.1 and make strictly typed (#82487)
* Make arcam_fmj strictly typed

* Add test for invalid UDN
2022-11-23 16:23:25 +01:00
Jan Bouwhuis
32d68f375b Add Mqtt WebSockets support (#82078)
* Add Mqtt WebSockets support

* Fix tests

* Add testing websockets options

* Add tests transport settings

* Do not use templates for ws_headers

* Use json helper - small corrections
2022-11-23 15:03:31 +01:00
Franck Nijhof
4ea9926497 Not to Tox (#76582) 2022-11-23 14:40:37 +01:00
Joakim Sørensen
3738135e0b Add helper to access RepairsFlowManager (#82567)
async_external_step
2022-11-23 12:00:38 +01:00
Hessel
c68149c75b Fix Wallbox price unit (#82420)
* Change Symbol to Currency code in test

* change unit to currency/kWh

* f string
2022-11-23 11:25:21 +01:00
J. Nick Koston
188cdd1bac Ensure esphome client tasks await cancelation (#82547) 2022-11-23 10:07:05 +01:00
GitHub Action
eaf6d43508 [ci skip] Translation update 2022-11-23 00:26:26 +00:00
Jc2k
f20c8c657a Fix HomeKit CoAP connection getting RST incorrectly (#82553) 2022-11-23 00:05:40 +00:00
Jesse Hills
7c36f1409d Bump aioesphomeapi to 12.0.0 (#82543) 2022-11-22 13:45:40 -06:00
epenet
22f6a72694 Improve type hints in acmedia config flow (#82534) 2022-11-22 16:14:08 +01:00
Álvaro Fernández Rojas
00afcffbf9 Abort before trying to connect in QNAP QSW DHCP discovery when already configured (#82362) 2022-11-22 09:12:33 -06:00
Shay Levy
4a089b5c28 Add tests coverage for Shelly climate platform (#82529) 2022-11-22 09:04:55 -06:00
Jan Bouwhuis
9c1e8486c5 Add unique id option for mqtt_room sensors (#82521)
Add unique_id setting for mqtt_room
2022-11-22 15:56:31 +01:00
Jevgeni Kiski
157222126e Add Vallox temperature control entities (#75858)
Co-authored-by: Sebastian Lövdahl <slovdahl@hibox.fi>
Co-authored-by: Andre Richter <andre-richter@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-22 12:46:57 +01:00
epenet
687d162a94 Fix incorrect type hint in SchemaOptionsFlow (#82516) 2022-11-22 12:45:35 +01:00
epenet
9d192643ee Move PluggableAction to trigger helpers (#81900)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Joakim Plate <elupus@ecce.se>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-11-22 11:35:18 +01:00
Erik Montnemery
b566d55998 Sort ignore-words-list (#82520) 2022-11-22 11:26:53 +01:00
Erik Montnemery
be7e76f302 Migrate ZHA when enabling multi-PAN support on HA Yellow (#82213)
* Migrate ZHA when enabling multi-PAN support on HA Yellow

* Refactor BaseZhaFlow.async_step_maybe_confirm_ezsp_restore

* Change data passed to ZHA to initiate migration

* Catch errors during ZHA migration

* Fix ZhaMigrationHelper.async_prepare_yellow_migration return value

* Improve test coverage

* Improve test coverage

* Fix spelling

* Rename some none HA yellow specifics

* Rename again

* Increase number of migration retries + refactor

* Suppress OperationNotAllowed when reloading

* Adjust tests
2022-11-22 11:17:23 +01:00
jan iversen
15176300e2 Add full test of wrap option (#82308)
fixes undefined
2022-11-22 09:57:04 +01:00
Guido Schmitz
1e64d830ac Migrate devolo Home Control to new entity naming (#74969) 2022-11-22 09:54:05 +01:00
Aarni Koskela
e4c73259f7 Configure autoflake for pre-commit (#82414) 2022-11-22 08:10:36 +01:00
epenet
bf3c6e5f58 Enforce VacuumEntityFeature (#82466) 2022-11-22 07:27:27 +01:00
epenet
4134d722da Enforce WaterHeaterEntityFeature (#82467) 2022-11-22 07:27:09 +01:00
epenet
ab26ea06b9 Enforce UpdateEntityFeature (#82465) 2022-11-22 07:16:53 +01:00
epenet
ff5f1aee53 Enforce SirenEntityFeature (#82464) 2022-11-22 07:16:29 +01:00
epenet
0cb3ec142e Enforce RemoteEntityFeature (#82463) 2022-11-22 07:16:03 +01:00
epenet
6f05a74686 Enforce MediaPlayerEntityFeature (#82462) 2022-11-22 07:15:37 +01:00
epenet
a225fc456f Enforce LockEntityFeature (#82461) 2022-11-22 07:15:11 +01:00
epenet
7f1e1ed1d8 Enforce LightEntityFeature (#82460) 2022-11-22 07:14:47 +01:00
epenet
d4bd9a0f7e Enforce HumidifierEntityFeature (#82459) 2022-11-22 07:14:19 +01:00
epenet
12cb17620e Enforce FanEntityFeature (#82458)
* Enforce FanEntityFeature

* Adjust pylint
2022-11-22 07:13:54 +01:00
epenet
34607d4410 Enforce CoverEntityFeature (#82457)
* Enforce CoverEntityFeature

* Adjust pylint
2022-11-22 07:09:19 +01:00
epenet
48cc3071bb Enforce ClimateEntityFeature (#82329) 2022-11-22 07:08:53 +01:00
epenet
8b54a0679f Enforce CameraEntityFeature (#82325) 2022-11-22 07:08:28 +01:00
J. Nick Koston
7df711f1f3 Show HomeKit Controller unhandled pairing error reason in the UI (#82505) 2022-11-21 21:24:35 -05:00
J. Nick Koston
a7caa038be Accept advertisements from alternate scanners when a scanner stops scanning (#82448) 2022-11-21 21:23:07 -05:00
puddly
dfed57ed4d Bump ZHA dependencies (#82509)
* Bump ZHA dependencies

* Use the corrected `TypeValue` keyword argument name in unit tests
2022-11-21 19:39:34 -05:00
GitHub Action
0be2a3f182 [ci skip] Translation update 2022-11-22 00:26:32 +00:00
wildekek
f9e80fead3 Add new Amazon Polly voices (#82501) 2022-11-22 01:17:37 +01:00
David F. Mulcahey
5329a679bb Add Aqara c1 pet feeder support to ZHA (#82340)
* Add Aqara c1 pet feeder support to ZHA

* clean up

* cleanup

* state classes for daily measurements

* cleanups

* cleanups

* restore the refreshing of the inverted value cache

* cleanup
2022-11-21 18:03:17 -05:00
David F. Mulcahey
d47fe35a88 Add config entities for lumi.motion.agl04 (#82087) 2022-11-21 18:02:54 -05:00
epenet
aa443842b7 Fix incorrect type hints in scrape (#82502) 2022-11-21 17:38:23 -05:00
epenet
cec81e137c Enforce AlarmControlPanelEntityFeature (#82313) 2022-11-21 22:58:36 +01:00
G Johansson
b3dd59f202 Add config flow to Scrape (#81193)
* Scrape take 2

* cleanup

* new entity name

* Fix name, add tests

* Use FlowResultType

* Add test abort

* hassfest

* Remove not needed test

* clean

* Remove config entry and implement datacoordinator

* fix codeowners

* fix codeowners

* codeowners reset

* Fix coordinator

* Remove test config_flow

* Fix tests

* hassfest

* reset config flow

* reset strings

* reset sensor

* Reconfig

* Fix tests

* coverage

* Remove coverage

* Remove print

* Add config flow

* Fix config flow

* Add back init

* Add entry to sensor

* float to int

* Fix SelectSelector

* Add tests for config entry to existing

* Test config flow

* Fix test reload

* Fix rebase

* Fix strings

* clean init

* Clean test_sensor

* Align sensor setup entry

* Add error to strings

* review changes

* clean tests

* Add back options flow

* review changes

* update_listener

* Add tests

* Remove duplicate abort

* strings

* sensors to sensor

* review changes

* more review changes

* clarify test payload

* fixture name
2022-11-21 21:39:39 +01:00
Marc Mueller
848821139d Fix picnic typing (#82476) 2022-11-21 19:00:34 +01:00
Marc Mueller
a88e865dff Fix round typing [tplink] (#82437) 2022-11-21 18:59:08 +01:00
Marc Mueller
0337b5d975 Fix round typing [isy994] (#82435) 2022-11-21 11:07:30 -06:00
Shay Levy
91a44b697b Add tests coverage for Shelly number platform (#82480) 2022-11-21 10:55:06 -06:00
epenet
13c03d022b Fix suggested values in openuv config flow (#82479)
* Fix suggested values in openuv config flow

* Don't use new helper
2022-11-21 17:12:28 +01:00
Erik Montnemery
4b0b2ecc0e Bump pychromecast to 13.0.1 (#82472) 2022-11-21 14:55:32 +01:00
Marc Mueller
caac3d03c4 Fix round typing [fritzbox] (#82434) 2022-11-21 11:46:18 +01:00
Marc Mueller
c899e72029 Code quality improvements for dsmr (#82443) 2022-11-21 10:13:22 +01:00
Jan Bouwhuis
982e75a15f Improve type hints MQTT light schema template (#82211)
* Improve type hints MQTT light schema template

* A few improvements

* Follow up comments
2022-11-21 09:20:11 +01:00
Marc Mueller
aa3bd78f7e Code quality improvements for nissan_leaf (#82442)
Code quality improvements for nissan_leaf
2022-11-21 09:06:30 +01:00
Joakim Plate
36e38841a4 Bump nibe to 1.3.0 (#82445) 2022-11-21 09:02:11 +01:00
Marc Mueller
8f33ad38cf Update pylint to 2.15.6 (#82440)
* Update pylint to 2.15.6

* Use single pylint disable

* Use implicit dict constructor
2022-11-21 08:58:45 +01:00
epenet
914384578e Fix overkiz bitwise operation (#82456) 2022-11-21 08:53:52 +01:00
Marc Mueller
33e57c2e24 Fix round typing [tradfri] (#82438) 2022-11-21 08:51:04 +01:00
mvn23
71604f544b Bump pyotgw to 2.1.3 (#82430) 2022-11-21 08:47:38 +01:00
Marc Mueller
c068024abe Allow None return for notify get_service (#82444) 2022-11-21 08:18:37 +01:00
Paulus Schoutsen
5fe426a4fc 2022.11.4 (#82428) 2022-11-20 20:12:02 -05:00
Marc Mueller
d2000f0c7a Fix round typing [zwave_js] (#82439) 2022-11-21 01:29:55 +01:00
GitHub Action
3bea04e387 [ci skip] Translation update 2022-11-21 00:26:41 +00:00
Shay Levy
32f3eb722e Add tests coverage for Shelly entity (#82432)
* Add tests coverage for Shelly entity

* Make it generator expression
2022-11-20 23:59:25 +02:00
Marc Mueller
4bb69fee23 Fix round typing [accuweather] (#82433) 2022-11-20 22:52:43 +01:00
Marc Mueller
e897c8c47c Fix round typing [shelly] (#82436) 2022-11-20 23:45:34 +02:00
Felipe Martins Diel
574f6f3fd1 Bump broadlink to 0.18.3 (#82427)
fixes undefined
2022-11-20 15:13:18 -06:00
Paulus Schoutsen
2a384987e7 Bumped version to 2022.11.4 2022-11-20 15:27:43 -05:00
J. Nick Koston
3ab1df4660 Prevent powerwall from switching addresses if its online (#82410)
* Prevent powerwall from switching addresses if its online

If the wifi interface was discovered we would switch the
ip address in the entry to the wifi ip even if it was
connected via ethernet

* cover

* more cover
2022-11-20 15:27:38 -05:00
David F. Mulcahey
b578a76cb9 Attempt to fix occasional Flo timeouts (#82408)
* Attempt to fix occasional Flo timeouts

* remove gather
2022-11-20 15:27:37 -05:00
Marvin Wichmann
243941f3fd Update xknx to 1.2.1 (#82404) 2022-11-20 15:27:37 -05:00
J. Nick Koston
018300858f Bump bleak-retry-connector to 2.8.5 (#82387)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.4...v2.8.5

from: https://github.com/esphome/esphome/pull/4049
2022-11-20 15:27:15 -05:00
TheJulianJES
5ec7cff3ff Bump PyViCare to 2.19.0 (#82381)
fixes undefined
2022-11-20 15:26:01 -05:00
Michael
d45a0cc41e Fix invalid configuration_url in Netatmo (#82372) 2022-11-20 15:25:59 -05:00
J. Nick Koston
f490119fed Bump flux_led to 0.28.34 (#82347)
* Bump flux_led to 0.28.33

fixes #75832

changelog: https://github.com/Danielhiversen/flux_led/compare/0.28.32...0.28.33

* more more bump for legacy turn on
2022-11-20 15:25:58 -05:00
René Klomp
23280268c8 Bump pysma to version 0.7.3 (#82343)
fixes undefined
2022-11-20 15:25:57 -05:00
Aaron Bach
df2953403e Bump regenmaschine to 2022.11.0 (#82337)
fixes undefined
2022-11-20 15:25:57 -05:00
Joakim Plate
1c06c6c1e6 Add kilo watts unit mapping for nibe_heatpump (#82284) 2022-11-20 15:25:56 -05:00
jan iversen
6a73406e9f Solve Modbus reload issue (#82253)
fixes undefined
2022-11-20 15:25:55 -05:00
Daan Beverdam
5ab7c8e9ba Fix moving average for 0 values (#80476) 2022-11-20 15:25:54 -05:00
J. Nick Koston
3f5649092e Break out bluetooth apis into api.py (#82416)
* Break out bluetooth apis into api.py

Like #82291 this is not a functional change.

* cleanups
2022-11-20 12:33:03 -05:00
Aarni Koskela
6ec8c63b5c Use HA SensorDeviceClass in ruuvitag-ble (#82321)
* Use HA SensorDeviceClass in ruuvitag-ble

Refs https://github.com/home-assistant/core/pull/81327#discussion_r1024565439

* Use HA SensorDeviceClass even more
2022-11-20 16:58:37 +01:00
David F. Mulcahey
adff01876a Attempt to fix occasional Flo timeouts (#82408)
* Attempt to fix occasional Flo timeouts

* remove gather
2022-11-20 10:39:47 -05:00
J. Nick Koston
a1d9d7116c Prevent powerwall from switching addresses if its online (#82410)
* Prevent powerwall from switching addresses if its online

If the wifi interface was discovered we would switch the
ip address in the entry to the wifi ip even if it was
connected via ethernet

* cover

* more cover
2022-11-20 10:38:30 -05:00
Jan Bouwhuis
5c00b8b823 Wait for MQTT entry on snips integration startup (#81733)
Wait for MQTT integration to load
2022-11-20 16:17:45 +01:00
J. Nick Koston
7801cd96de Split bluetooth models into base_scanner and wrappers (#82291) 2022-11-20 08:44:28 -06:00
Aarni Koskela
76cb1c4978 Correct SensorDeviceClass for sensirion_ble (#82413) 2022-11-20 08:27:36 -06:00
Paarth Shah
372c3cd0f0 Bump plexapi version to 4.13.1 (#82396) 2022-11-20 08:26:00 -06:00
David F. Mulcahey
2a817a2874 Remove duplicate device class on Flo water sensor (#82407)
Fixes https://github.com/home-assistant/core/issues/82390
fixes undefined
2022-11-20 08:19:15 -06:00
TheJulianJES
ea0c3e806d Bump PyViCare to 2.19.0 (#82381)
fixes undefined
2022-11-20 08:13:19 -06:00
Marvin Wichmann
3618160768 Update xknx to 1.2.1 (#82404) 2022-11-20 08:12:38 -06:00
J. Nick Koston
9add474c45 Bump bleak-retry-connector to 2.8.5 (#82387)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.4...v2.8.5

from: https://github.com/esphome/esphome/pull/4049
2022-11-19 19:46:06 -05:00
Aarni Koskela
38b84620bd Add support for Sensirion BLE sensors (#82382) 2022-11-19 14:26:54 -06:00
Shay Levy
8bd7f59b93 Add tests for Shelly sensor platform (#82385) 2022-11-19 22:01:30 +02:00
Florent Thoumie
6de887b9b9 iaqualink: fix supported_effects reference after function was renamed (#82383)
Fix supported_effects reference
2022-11-19 20:48:45 +01:00
Shay Levy
ea98f0e9e8 Add tests for Shelly binary_sensor platform (#82367)
* Add tests for Shelly binary_sensor platform

* Rename create to register for
2022-11-19 18:07:02 +02:00
Joakim Plate
e028516939 Use unit enums in nibe heatpump (#82370)
Use unit enums in nibe
2022-11-19 16:57:18 +01:00
René Klomp
14f2649ae2 Bump pysma to version 0.7.3 (#82343)
fixes undefined
2022-11-19 09:05:38 -06:00
Michael
217d8eb9c5 Address late review of fritzbox (#82369) 2022-11-19 15:12:24 +01:00
Michael
93897016f0 Fix invalid configuration_url in Netatmo (#82372) 2022-11-19 15:02:07 +01:00
J. Nick Koston
df959c364c Bump flux_led to 0.28.34 (#82347)
* Bump flux_led to 0.28.33

fixes #75832

changelog: https://github.com/Danielhiversen/flux_led/compare/0.28.32...0.28.33

* more more bump for legacy turn on
2022-11-19 13:49:54 +01:00
Ernst Klamer
672acf30a4 Bump bthome-ble to 2.3.1 (#82342)
* Bump bthome-ble

* Bump bthome-ble
2022-11-19 13:48:33 +01:00
Benjamin
c8d4febe13 Add Homematic sensor descriptions (#82156)
Update sensor.py

Add Sensor Descriptions.
2022-11-19 13:09:57 +01:00
J. Nick Koston
e4666206ec Improve time change helper comments (#82349)
* Improve time change helper comments

https://github.com/home-assistant/core/pull/82324#discussion_r1026962806

* Improve time change helper comments

https://github.com/home-assistant/core/pull/82324#discussion_r1026962806
2022-11-19 04:04:19 +01:00
Aaron Bach
9fefa2e139 Bump regenmaschine to 2022.11.0 (#82337)
fixes undefined
2022-11-18 18:37:12 -06:00
GitHub Action
fe5246fb6f [ci skip] Translation update 2022-11-19 00:26:11 +00:00
Álvaro Fernández Rojas
fff967ce17 Update aioairzone to v0.5.1 (#82311)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-18 18:01:41 +01:00
Ayk Borstelmann
3b783a85c3 AVM Fritz!Box SmartHome: Integrate Templates (#81885) 2022-11-18 17:37:56 +01:00
Hessel
f7badfe441 Add wallbox Energy Price (#82039)
fixes undefined
2022-11-18 17:36:38 +01:00
Franck Nijhof
ca6376488d Remove CI cache cleanup (#82330) 2022-11-18 17:35:24 +01:00
Jan Bouwhuis
c720742ec9 Revert #81771 (wait_for_states) and #81801 (late review) (#82085)
* Revert "Address late review of config entry wait for states tests (#81801)"

This reverts commit 12d76a8a4f.

* Revert "Implement ConfigEntry async_wait_for_states (#81771)"

This reverts commit 3cc9ecf1dc.
2022-11-18 17:16:03 +01:00
G Johansson
c5c23cbc95 Add unique id to Times of Day (#81196) 2022-11-18 16:53:32 +01:00
G Johansson
2ca61eef79 Code quality tests Wake on Lan (#82048) 2022-11-18 16:27:20 +01:00
J. Nick Koston
1c6b4967cf Fix litejet tests (#82324)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-18 08:19:38 -06:00
J. Nick Koston
077bd594eb Fix modbus test assuming repeat listeners always fire at 0 microseconds (#82320) 2022-11-18 14:23:42 +01:00
epenet
dd960c4e62 Add precipitation device class (#81145) 2022-11-18 12:41:33 +01:00
Jan Bouwhuis
fb909d694f Improve type hints MQTT light schema json (#82208)
* Improve type hints schema json

* Add hint for brightness

* Follow up comments

* Follow up missed comments

* Correct hint on flash arg

* hints on one line
2022-11-18 12:12:27 +01:00
Jevgeni Kiski
5453b346dd Add Vallox bypass locking switch entity (#75857)
* Switch entity

* adding missing function for tests

* Apply suggestions from code review

Co-authored-by: Sebastian Lövdahl <slovdahl@hibox.fi>

* Review

* fix

* Update homeassistant/components/vallox/switch.py

Co-authored-by: Andre Richter <andre-richter@users.noreply.github.com>

* Apply suggestions from code review

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

* Adding a separate parameter for the expected state

Co-authored-by: Sebastian Lövdahl <slovdahl@hibox.fi>
Co-authored-by: Andre Richter <andre-richter@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-18 10:16:54 +01:00
epenet
b166a6d88b Cleanup supported_features default values (#82306) 2022-11-18 10:09:40 +01:00
epenet
7b4d4d11ac Remove unused variable from homekit_controller (#82307) 2022-11-18 10:09:18 +01:00
Joakim Plate
547b36d09a Add kilo watts unit mapping for nibe_heatpump (#82284) 2022-11-18 09:56:34 +01:00
jan iversen
6bd70fdf15 Solve Modbus reload issue (#82253)
fixes undefined
2022-11-18 09:32:51 +01:00
GitHub Action
5119005a8d [ci skip] Translation update 2022-11-18 00:29:16 +00:00
J. Nick Koston
f28d9285bf Bump dbus-fast to 1.75.0 (#82289) 2022-11-17 23:02:35 +01:00
Jan Bouwhuis
7c2e7863d2 Remove legacy YAML support from MQTT (#82102) 2022-11-17 22:55:31 +01:00
Daan Beverdam
f82c4c7633 Fix moving average for 0 values (#80476) 2022-11-17 21:57:26 +01:00
Erik Montnemery
1a274adc28 Add config_entries.async_wait_component (#76980)
Co-authored-by: thecode <levyshay1@gmail.com>
2022-11-17 21:52:57 +01:00
Marc Mueller
e3749e0f76 Cleanup pip cache workaround [ci] (#82272) 2022-11-17 21:14:54 +01:00
Franck Nijhof
a07117470e Add number device class support to ESPHome (#82277) 2022-11-17 21:12:45 +01:00
Jan Bouwhuis
b717da879f Add support for Mqtt protocol version 5 (#82260) 2022-11-17 21:12:27 +01:00
Matthieu
b5390f55ce Add intent_script debug logging (#82060) 2022-11-17 20:59:13 +01:00
J. Nick Koston
47c66dbed4 Offload platform specific bluetooth code to bluetooth-adapters (#82196)
* Offload platform specific bluetooth code to bluetooth-adapters

* adjust

* fix some more patch targets

* more test fixes

* almost there

* may not be setup yet

* more fixes

* fixes

* fix test

* fix merge
2022-11-17 14:34:19 -05:00
J. Nick Koston
d0efdd750f Fix high latency from thundering heard at 0 microseconds (#82233)
* Fix high latency at 0 microseconds

fixes #82231

* fix async_track_utc_time_change alignment

* use replace to preserve fold

* naming

* tweak

* make async_fire_time_changed aware of the thundering heard issue
2022-11-17 14:22:06 -05:00
epenet
0c887eab87 Cleanup access to supported features (#82274) 2022-11-17 20:00:52 +01:00
Álvaro Fernández Rojas
3dba9c4695 Add QNAP QSW accumulated port sensors (#76514)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-17 12:41:33 -06:00
Álvaro Fernández Rojas
e8ff3d10f7 Update aioairzone to v0.5.0 (#82278) 2022-11-17 12:40:27 -06:00
J. Nick Koston
8da969b767 Disable BLE options flow for sleepy shelly devices (#82283) 2022-11-17 20:39:51 +02:00
J. Nick Koston
0aa5610d88 Add bluetooth loggers to manifest.json (#82276) 2022-11-17 11:06:21 -06:00
J. Nick Koston
8792d664e7 Add websocket endpoints to control integration logging (#65158)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik <erik@montnemery.com>
2022-11-17 08:57:43 -06:00
epenet
9d607c8bd5 Adjust type hints for WaterHeaterEntityFeature (#82270) 2022-11-17 15:51:55 +01:00
epenet
ced16da576 Adjust type hints for VacuumEntityFeature (#82269) 2022-11-17 15:31:09 +01:00
epenet
3be750812d Adjust type hints for UpdateEntityFeature (#82268) 2022-11-17 15:17:50 +01:00
epenet
295cd0143c Adjust type hints for SirenEntityFeature (#82266) 2022-11-17 15:06:26 +01:00
epenet
9b9bdc725f Adjust type hints for RemoteEntityFeature (#82265) 2022-11-17 15:06:16 +01:00
Erik Montnemery
b6586d5c34 Align number and sensor device classes (#81909)
* Align number and sensor device classes

* Add tests

* Tweak tests
2022-11-17 14:00:28 +01:00
epenet
18e30e7c06 Adjust type hints for MediaPlayerEntityFeature (#82258) 2022-11-17 13:58:34 +01:00
Marc Mueller
569e52c9ac Show full error on cache delete failure (2) [ci] (#82263) 2022-11-17 13:23:42 +01:00
epenet
44b28d67f1 Use _attr_supported_features in nest climate (#82217) 2022-11-17 04:03:50 -08:00
Marc Mueller
ae181a47fd Show full error on cache delete failure [ci] (#82259) 2022-11-17 12:52:17 +01:00
epenet
8570d3aabe Adjust type hints for LockEntityFeature (#82256) 2022-11-17 12:47:48 +01:00
epenet
4986f65dca Adjust supported_features defaults in lights (#82252) 2022-11-17 12:47:08 +01:00
epenet
dd7bc7971f Adjust type hints for LightEntityFeature (#82251) 2022-11-17 12:46:42 +01:00
epenet
8a084cf94d Use _attr_supported_features in osram light (#82255) 2022-11-17 12:45:59 +01:00
epenet
2453f95b24 Adjust HumidifierEntity type hints (#82248) 2022-11-17 10:58:46 +01:00
epenet
38a8e86dde Cleanup supported_features in group (#82242)
* Cleanup supported_features in group

* Remove defaults
(already set to 0 in fan and media_player)
2022-11-17 10:45:32 +01:00
Thomas Dietrich
ad8b882cb6 Switch statistics config to require either/both 'max_age' and 'sampling_size' (#80999)
* Remove default characteristic

* Remove default sampling_size

* Fix typo

* Fix typo
2022-11-17 10:31:06 +01:00
epenet
1b80c66195 Adjust type hints for FanEntityFeature (#82241)
* Adjust type hints for FanEntityFeature

* Adjust template default
2022-11-17 10:30:39 +01:00
Jan Bouwhuis
3d00923665 Improve MQTT type hints / refactor part 9 - light (#81151)
* Improve type hints light base

* improve type hints light schema basic

* Improve type hints light schema json

* Use MQTT Template models with light template

* Addtional type hints for template light

* Improve template hints for schema template

* Use strict type hints for templates

* MyPy corrections

* Follow up comments

* Follow up comments

* Revert changes schema_json

* Revert changes schema template

* Hints setup_entity_json and setup_entity_template

* Remove type hint on setup_entity JSON
2022-11-17 10:22:25 +01:00
epenet
da2efde354 Set alarm and climate supported features default (#82247) 2022-11-17 10:21:55 +01:00
Jan Bouwhuis
f60850586e Remove b64 encoding work-a-round for MQTT camera (#82244) 2022-11-17 10:11:25 +01:00
J. Nick Koston
4c8850ec7b Add dhcp support for newer powerwall gateways (#82236) 2022-11-17 10:10:55 +01:00
epenet
6424c71daa Cleanup supported_features in demo (#82239)
* Cleanup supported_features in demo cover

* Improve other platforms

* Adjust media_player patch
2022-11-17 09:39:46 +01:00
epenet
89c7568515 Remove duplicate code in hassfest model (#82203) 2022-11-17 09:10:37 +01:00
Kevin Stillhammer
146fe8f156 Rename convert_time_to_isodate to next_datetime (#82214) 2022-11-17 09:06:56 +01:00
epenet
17573196c8 Adjust type hints for CoverEntityFeature (#82238) 2022-11-17 08:39:44 +01:00
epenet
6856374f24 Cleanup supported_features in smartthings cover (#82240) 2022-11-17 09:32:42 +02:00
GitHub Action
c999953514 [ci skip] Translation update 2022-11-17 00:26:24 +00:00
Marc Mueller
ba8f69a5ce Cache improvements [ci] (#80898)
* Cleanup old pip caches
* Add workflow to delete caches for closed PRs
2022-11-16 23:51:38 +01:00
J. Nick Koston
4b89d087bb Bump home-assistant-bluetooth to 1.8.1 (#82222)
changelog: https://github.com/home-assistant-libs/home-assistant-bluetooth/compare/v1.8.0...v1.8.1
2022-11-16 23:08:17 +02:00
epenet
e85e79052b Improve climate type hints for supported_features (#82223) 2022-11-16 23:07:48 +02:00
J. Nick Koston
9d8dfc2d71 Add effects support to led-ble (#82224) 2022-11-16 23:07:02 +02:00
epenet
e37211ad42 Use _attr_supported_features in demo climate (#82216) 2022-11-16 21:28:23 +01:00
epenet
39ac2c1101 Adjust type hints for ClimateEntityFeature (#82206) 2022-11-16 21:17:50 +01:00
J. Nick Koston
4e11246ba5 Create an issue when using older esphome firmwares when bluetooth support is enabled (#82162)
* Create an issue when using older esphome firmwares when bluetooth support is enabled

2022.11.0 has some significant stability imporvements with
BLE. Its is non-obvious if the user is running an older
esphome version that does not have the fixes

* name

* skip repair issue if a project name is set

* drop reflashing term

* Update homeassistant/components/esphome/strings.json

* Update homeassistant/components/esphome/translations/en.json

* Update homeassistant/components/esphome/translations/en.json

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

* Update homeassistant/components/esphome/translations/en.json

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

* Update homeassistant/components/esphome/strings.json

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

* Update homeassistant/components/esphome/strings.json

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

* Update homeassistant/components/esphome/strings.json

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-11-16 22:16:51 +02:00
Franck Nijhof
dc7f0fb21c 2022.11.3 (#82197) 2022-11-16 21:00:42 +01:00
epenet
c62c19e58b Use _attr_supported_features in tado climate (#82219) 2022-11-16 21:52:36 +02:00
epenet
ba546e1072 Use _attr_supported_features in nexia climate (#82218) 2022-11-16 13:47:58 -06:00
Erik Montnemery
a6ff8c5fb3 Fix Home Assistant Yellow tests (#82212) 2022-11-16 13:01:53 -06:00
J. Nick Koston
74c2639495 Fix missing await in nexia emergency heat (#82207)
fixes undefined
2022-11-16 19:03:01 +01:00
J. Nick Koston
7ce6600f69 Fix missing await in nexia emergency heat (#82207)
fixes undefined
2022-11-16 19:02:09 +01:00
J. Nick Koston
08398370c5 Bump dbus-fast to 1.74.1 (#82202) 2022-11-16 11:26:47 -06:00
Erik Montnemery
aaec464627 Add support for managing the silabs multiprotocol add-on (#82170)
* Add support for managing the silabs multiprotocol add-on

* Fix passing context when starting option flow

* Allow unloading a ha yellow config entry

* Fix tests

* Log data passed to ZHA option flow

* Improve ZHA migration logic

* Move tests

* Improve test coverage

* Remove dead code

* Drop automatic ZHA migration
2022-11-16 17:38:07 +01:00
Erik Montnemery
607a0e7697 Reduce size of get_statistics_during_period WS API response (#82131) 2022-11-16 17:36:30 +01:00
Erik Montnemery
bb64b39d0e Minor refactor of zha config flow (#82200)
* Minor refactor of zha config flow

* Move ZhaRadioManager to a separate module
2022-11-16 17:13:23 +01:00
epenet
f952b74b74 Adjust type hints for AlarmControlPanelEntityFeature (#82186) 2022-11-16 17:08:42 +01:00
J. Nick Koston
1f0691bf18 Bump bluetooth-auto-recovery to 0.4.0 (#82195) 2022-11-16 17:07:01 +01:00
J. Nick Koston
b0714e32b1 Fix static version in homekit tests (#82201) 2022-11-16 16:38:09 +01:00
J. Nick Koston
03e6132d98 Fix static version in homekit tests (#82201) 2022-11-16 09:37:00 -06:00
epenet
615f7204cb Add type hints to mobile app webhooks (#82177) 2022-11-16 16:07:43 +01:00
Franck Nijhof
6371cb4ebd Bumped version to 2022.11.3 2022-11-16 15:43:18 +01:00
muppet3000
987add50cb Fix Growatt incorrect energy dashboard values for grid import (#82163)
* Fix Growatt incorrect energy dashboard values for grid import (#80905)

* Growatt - addressing review comments (#80905)

* Growatt - addressing more review comments (#80905)
2022-11-16 15:42:57 +01:00
Robert Hillis
83db9a3335 Fix Google Sheets formula input (#82157) 2022-11-16 15:42:53 +01:00
Robert Hillis
aade51248d Add missing strings in Onvif (#82141) 2022-11-16 15:42:49 +01:00
Jan Bouwhuis
228fa9f5a0 Always update attributes on an update for MQTT update (#82139) 2022-11-16 15:42:46 +01:00
Franck Nijhof
57c868e615 Update sqlalchemy to 1.4.44 (#82129) 2022-11-16 15:42:42 +01:00
J. Nick Koston
431f93e1d3 Bump PySwitchbot to 0.20.5 (#82099) 2022-11-16 15:42:38 +01:00
muppet3000
66d3891a37 Bump growattServer to 1.2.4 (#82071)
Growatt - Library bump to workaround for #81951
2022-11-16 15:42:33 +01:00
Avi Miller
2a641d1d19 Restore color_temp handling for lifx.set_state (#82067)
fixes undefined
2022-11-16 15:42:29 +01:00
J. Nick Koston
f8b5a97e72 Bump pySwitchbot to 0.20.4 (#82055)
Fixes for curtain firmware v6

changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.20.3...0.20.4
2022-11-16 15:42:25 +01:00
J. Nick Koston
609438d929 Make sure the config_flow key is set for brands (#82038)
Fixes https://github.com/home-assistant/frontend/issues/14376
2022-11-16 15:42:22 +01:00
Vincent Giorgi
76cc26ad17 Bump airthings-ble to 0.5.3 (#82033)
Bump airthings-ble
2022-11-16 15:42:18 +01:00
Allen Porter
533efa2880 Bump gcal_sync 4.0.2 (#82017) 2022-11-16 15:42:15 +01:00
J. Nick Koston
3bf3a1fd85 Bump oralb-ble to 0.14.2 (#81969)
fixes detection of the black 9000 model

fixes #81967

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.14.1...v0.14.2
2022-11-16 15:42:11 +01:00
Jeef
5306b32a48 Increasing device usage update interval for Flume (#81968) 2022-11-16 15:42:08 +01:00
David F. Mulcahey
4e82f134b2 Bump ZHA quirks lib to 0.0.86 (#81966) 2022-11-16 15:42:04 +01:00
Diogo Gomes
0457a74428 Fix ONVIF subscription errors (#81965)
fixes undefined
2022-11-16 15:42:01 +01:00
J. Nick Koston
8f3449d942 Bump PySwitchbot to 0.20.3 (#81938)
changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.20.2...0.20.3

releases the connection sooner to reduce the risk
of running out of connection slots on the ble adapter
2022-11-16 15:41:57 +01:00
J. Nick Koston
97929bd234 Bump bleak-retry-connector to 2.8.4 (#81937)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.3...v2.8.4

reduces the risk that the operation will fail because the adapter
temporarily runs out of connection slots
2022-11-16 15:41:52 +01:00
J. Nick Koston
a9d461a109 Fix esphome bleak client seeing disconnects too late (#81932)
* Fix esphome bleak client seeing disconnects too late

Because allbacks are delivered asynchronously its possible
that we find out during the operation before the callback
is delivered telling us about the disconnected.

We now watch for error code -1 which indicates the connection
dropped out from under us

* debug logging

* cleanup comment

* Fix comment grammar

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-16 15:41:49 +01:00
Aaron Bach
f24549f7d1 Bump aioridwell to 2022.11.0 (#81929) 2022-11-16 15:41:44 +01:00
J. Nick Koston
0d62d80038 Fix bluetooth adapters with missing firmware patch files not being discovered (#81926) 2022-11-16 15:41:40 +01:00
Allen Porter
223d864b04 Revert google calendar back to old API for free/busy readers (#81894)
* Revert google calendar back to old API for free/busy readers

* Update homeassistant/components/google/calendar.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-16 15:41:36 +01:00
David F. Mulcahey
082d4079ef Fix ZHA configuration APIs (#81874)
* Fix ZHA configuration loading and saving issues

* add tests
2022-11-16 15:41:32 +01:00
Allen Porter
70b360b1f8 Bump gcal_sync to 4.0.1 to fix Google Calendar config flow (#81873)
Bump gcal_sync to 4.0.1

This reverts test chagnes from PR #81562 that were actually incorrect given
the calendar "get" API returns less information that the "CalendarList" api.
2022-11-16 15:41:28 +01:00
J. Nick Koston
5488e9d5f3 Bump oralb-ble to 0.14.1 (#81869) 2022-11-16 15:41:25 +01:00
Jc2k
c8177f48ce Fix homekit_controller climate entity not becoming active when changing modes (#81868) 2022-11-16 15:41:21 +01:00
J. Nick Koston
930dc3615e Bump aiohomekit to 2.2.19 (#81867) 2022-11-16 15:41:18 +01:00
epenet
1ecb7ab887 Fix rest schema (#81857) 2022-11-16 15:41:14 +01:00
Erik Montnemery
248ed3660f Fix statistic_during_period for data with holes (#81847) 2022-11-16 15:41:10 +01:00
J. Nick Koston
3a60466e7c Fix switchbot not becoming available again after unavailable (#81822)
* Fix switchbot not becoming available again after unavailable

If the advertisment was the same and we were previously
marked as unavailable we would not mark the device as
available again until the advertisment changed. For lights
there is a counter but for the bots there is no counter
which means the bots would show unavailable even though
they were available again

* naming

* naming
2022-11-16 15:41:07 +01:00
Phil Bruckner
04fda5638c Change life360 timeouts & retries (#81799)
Change from single timeout of 10 to socket timeout of 15, total timeout of 60, and retry up to 3 times.

Bump life360 package to 5.3.0.
2022-11-16 15:41:03 +01:00
Ville Skyttä
252941ae26 Upgrade huawei-lte-api to 1.6.7, fixes empty username issues (#81751)
Recentish versions of huawei-lte-api behave differently with regards to
empty/default username compared to the older versions this integration
was originally written against. 1.6.5+ changes the behavior so that our
existing implementation works as expected when no username is supplied
for the config entry.

https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.4
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.5
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.6
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.7
2022-11-16 15:40:59 +01:00
Oliver Dippel
2eacbef061 Fix ibeacon source attribute not being updated (#81740)
fixes undefined
2022-11-16 15:40:55 +01:00
chpego
3f666396c9 Fix Fully Kiosk start application service field (#81738)
Fix attributes services to start_application
2022-11-16 15:40:52 +01:00
rappenze
7d20bb0532 Fix accelerator sensor in fibaro integration (#81237)
* Fix accelerator sensor in fibaro integration

* Implement suggestions from code review

* Implement suggestions from code review

* Changes as suggested in code review

* Adjust as suggested in code review
2022-11-16 15:40:48 +01:00
J. Nick Koston
d94e969dc1 Fix instability with HomeKit trigger accessories (#80703)
fixes https://github.com/home-assistant/core/issues/78774
fixes https://github.com/home-assistant/core/issues/81685
2022-11-16 15:40:44 +01:00
Yukon Vinecki
18842ef571 Fix Z-Wave JS cover stop support (#78723)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-16 15:40:38 +01:00
Franck Nijhof
6a1bb8c421 Deprecate Python 3.9 (#82193) 2022-11-16 15:38:10 +01:00
rappenze
f87ef742e8 Use parameterized test for better code readability (#82194)
* Use parameterized test for better code readability

* Use parameterized test for better code readability

* Update tests/components/fibaro/test_config_flow.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-16 15:27:20 +01:00
epenet
871b4135ee Remove unused variable in qvr_pro (#82190) 2022-11-16 15:26:37 +01:00
Martin Hjelmare
ecb7509333 Add tibber price sensor state class (#82189) 2022-11-16 15:12:08 +01:00
epenet
5d78632d04 Adjust type hints for CameraEntityFeature (#82191) 2022-11-16 14:44:08 +01:00
Aarni Koskela
4f7b583f19 Fix shadowing of outer name in config_validation (#82088)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-16 14:04:57 +01:00
shou72
987b840665 Add Tuya wkcz thermostat sensors and switches (#81667)
fixes undefined
2022-11-16 13:51:33 +01:00
Olliver Schinagl
7dfb8dda0a Keep rest_command interface consistent (#82116)
rest_command: Keep interface consistent

This is a tiny cosmetic patch, where we keep the variable names of the
interface more consistent, to avoid having to wonder "is it a name or a
command?".

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-11-16 13:30:05 +01:00
Yukon Vinecki
9098592257 Fix Z-Wave JS cover stop support (#78723)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-16 13:14:14 +01:00
Aarni Koskela
322cb352ac Use functools.cache instead of global in hassfest requirements (#82124) 2022-11-16 13:13:45 +01:00
Robert Hillis
d38bae76be Add missing strings in Onvif (#82141) 2022-11-16 13:04:34 +01:00
Owen Johnson
3695f39515 Correctly Map Heavy Rain and Thunderstorms (#80926) 2022-11-16 13:02:26 +01:00
epenet
0538154767 Add type hints to requirements script (#82075) 2022-11-16 13:00:35 +01:00
Erik Montnemery
1582d88957 Remove deprecated history WS API (#82136) 2022-11-16 12:54:03 +01:00
Diogo Gomes
7999f109d1 Fix ONVIF subscription errors (#81965)
fixes undefined
2022-11-16 12:51:14 +01:00
Robert Svensson
af6338343e Remove (2021) backwards supporting functionality from UniFi (#81981) 2022-11-16 12:49:10 +01:00
Erik Montnemery
9b8f94363c Fix statistic_during_period for data with holes (#81847) 2022-11-16 12:46:29 +01:00
epenet
a91abebea8 Use IntFlag for EntityFeature (#81903) 2022-11-16 12:43:17 +01:00
Franck Nijhof
e01115fd1f Update apprise to 1.2.0 (#82182) 2022-11-16 12:39:39 +01:00
rappenze
ff1ec7a028 Normalize url entered in fibaro integration setup dialog (#81996)
* Normalize url entered in fibaro integration setup dialog

* Improvements as suggested in code review

* Fix spelling in comments
2022-11-16 10:44:34 +01:00
muppet3000
93401df73f Fix Growatt incorrect energy dashboard values for grid import (#82163)
* Fix Growatt incorrect energy dashboard values for grid import (#80905)

* Growatt - addressing review comments (#80905)

* Growatt - addressing more review comments (#80905)
2022-11-16 10:41:14 +01:00
Franck Nijhof
5b29fe650b Revert "Wake on LAN yaml configuration move to integration key" (#82184) 2022-11-16 10:22:50 +01:00
cnico
c7dfd6b15a Add flipr battery level sensor (#81389)
* Addition of battery level sensor. Correction of pylint errors

* Review improvement for typing

* Review improvement for typing

* Correction following review
2022-11-16 09:42:31 +01:00
Jean-François Paris
532c6b74d4 Enable long term stats for fitbit entities (#81934) 2022-11-16 09:27:51 +01:00
Brynley McDonald
3bfb91d159 Add integration_type for flick_electric (#81065)
* Add integration_type for flick_electric

* Updates from hassfest
2022-11-16 00:27:09 -06:00
epenet
00f4933e72 Import tag from homeassistant.components (#82161) 2022-11-16 07:09:46 +01:00
G Johansson
52298a251b Wake on LAN yaml configuration move to integration key (#81249)
* Wake on Lan integration yaml

* clean code

* Add test

* Add test fixture

* Address loading
2022-11-16 06:23:48 +01:00
Kevin Stillhammer
aedbfdabee Use HERE API v8 (#80892)
* Use HERE API v8

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

* Add migration

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

* Catch correct voluptuous error

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

* Use list comprehension for transit values

* Add migration alternative

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-11-15 19:04:41 -08:00
J. Nick Koston
495ca67e8b Bump xiaomi_ble to 0.12.2 (#82167) 2022-11-15 20:38:46 -06:00
J. Nick Koston
248b93f112 Update aiohomekit to 2.3.0 (#82164) 2022-11-15 20:38:31 -06:00
GitHub Action
361bd6bb81 [ci skip] Translation update 2022-11-16 00:27:00 +00:00
Robert Hillis
21b32804d1 Fix Google Sheets formula input (#82157) 2022-11-15 23:07:43 +01:00
J. Nick Koston
ae7272575a Enable shelly BLE when the scanner is enabled if it is disabled (#82153)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-11-15 15:37:45 -06:00
J. Nick Koston
7614aba401 Stop shelly BLE scanner on unload (#82151)
* Stop shelly BLE scanner on unload

needs https://github.com/home-assistant-libs/aioshelly/pull/285

* bump
2022-11-15 23:22:33 +02:00
Franck Nijhof
a2e638329e Update geopy to 2.3.0 (#82145) 2022-11-15 21:52:50 +01:00
Aarni Koskela
8038485ca4 Use partition instead of split where possible in core (#81806) 2022-11-15 21:45:48 +01:00
Aarni Koskela
35c1604ea7 Remove unused hassfest helper (#82123) 2022-11-15 21:26:34 +01:00
J. Nick Koston
682187541f Move BluetoothServiceInfoBleak to home_assistant_bluetooth (#82064) 2022-11-15 14:00:52 -06:00
Steve Repsher
c940ad9920 Add autocomplete to text selector (#81060) 2022-11-15 12:58:59 -06:00
J. Nick Koston
435fc23737 Add shelly ble scanner support (#82007) 2022-11-15 12:34:45 -06:00
Jan Bouwhuis
7932864e00 Always update attributes on an update for MQTT update (#82139) 2022-11-15 18:43:01 +01:00
J. Nick Koston
ade4b62aec Fix instability with HomeKit trigger accessories (#80703)
fixes https://github.com/home-assistant/core/issues/78774
fixes https://github.com/home-assistant/core/issues/81685
2022-11-15 18:41:55 +01:00
Robert Svensson
1331a3771a Block client switches should rely only on events for state changes (#81883)
fixes undefined
2022-11-15 18:31:30 +01:00
Robert Svensson
f9ebbb936a Fix UniFi block client switches on 2022.11.2 (#81884)
fixes undefined
2022-11-15 18:30:56 +01:00
J. Nick Koston
c65f894fbe Bump PySwitchbot to 0.20.5 (#82099) 2022-11-15 18:30:03 +01:00
Jeef
dd38d2ff05 Increasing device usage update interval for Flume (#81968) 2022-11-15 18:29:32 +01:00
J. Nick Koston
f035223599 Make sure the config_flow key is set for brands (#82038)
Fixes https://github.com/home-assistant/frontend/issues/14376
2022-11-15 18:27:59 +01:00
epenet
af9ac9022b Import tag via hass.components in mobile_app (#82138)
* Import tag via hass.components in mobile_app

* Update webhook.py
2022-11-15 18:27:37 +01:00
Franck Nijhof
ab5c99fe22 Update sentry-sdk to 1.11.0 (#82122) 2022-11-15 17:59:02 +01:00
Jan Bouwhuis
285c61c0d7 Add TagProtocol as type hint in MQTT tag (#82134) 2022-11-15 16:54:39 +01:00
G Johansson
9eef5129f0 Full test coverage Min Max (#82053) 2022-11-15 09:04:22 -06:00
Franck Nijhof
19e5e671a2 Update sqlalchemy to 1.4.44 (#82129) 2022-11-15 08:51:13 -06:00
J. Nick Koston
f497b989b9 Bump dbus-fast to 1.74.0 (#82107)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.73.0...v1.74.0
2022-11-15 15:27:54 +01:00
uvjustin
e7dd31f37b Iterate over entities safely in camera setup (#82080)
fixes undefined
2022-11-15 08:02:35 -06:00
epenet
4cce359960 Fix legacy scrape scan interval (#81764)
* Fix legacy scrape scan interval

* Adjust init

* Adjust tests

* Clearer default
2022-11-15 13:39:30 +01:00
Jan Bouwhuis
6975186f2f Improve MQTT type hints / refactor part 10 - vacuum (#81253)
* Improve type hints vacuum __init__ and schema

* Improve type hints and refactor templates legacy

* Improve type hints state vacuum

* Add hint for template parameters

* Apply suggestions from code review

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

* Some corrections

* Remove stale constant

* Use bitwise and

* Follow-up comment

* Remove incorrect type hint

* Remove asserts

* Cleanup  asserts and reduce code

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-15 12:48:02 +01:00
uvjustin
6bab63fb0a Redact more credentials in stream URL query params (#82089)
Co-authored-by: Allen Porter <allen.porter@gmail.com>
2022-11-15 12:42:40 +08:00
Andrew Berry
f96a4e2d0f Fix HomeKit logging None instead of the linked battery sensor (#81860) 2022-11-14 21:35:10 -06:00
J. Nick Koston
9c0a3cdae0 Fix homekit_controller comment (#82111) 2022-11-14 21:18:10 -06:00
GitHub Action
83a6012f80 [ci skip] Translation update 2022-11-15 00:26:42 +00:00
Marc Mueller
2ac2a288cc Update mypy to 0.991 (#82096) 2022-11-14 21:16:44 +01:00
J. Nick Koston
956120662e Add the ability to register for shelly event callbacks (#82052) 2022-11-14 19:58:10 +01:00
G Johansson
13577981f9 Local ip tests (#82051) 2022-11-14 12:20:45 -06:00
Aarni Koskela
3d29638804 Deduplicate sensor_device_info_to_device_info (#81905)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-14 12:12:53 -06:00
Ernst Klamer
af73afa2e2 Add support for HHCCJCY10 to xiaomi_ble (#82069) 2022-11-14 11:18:51 -06:00
J. Nick Koston
1ded3ac51e Poll HomeKit Controller locks for state after lock operation (#82058) 2022-11-14 10:54:28 -06:00
Aarni Koskela
bbda122c99 Fix mqtt typo (#82086)
mqtt: fix "certiticate" typo
2022-11-14 16:22:23 +01:00
epenet
7d5794cfb1 Remove unused function from hassfest model (#82073)
* Remove unused function from hassfest model

* Update model.py

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-14 16:18:11 +01:00
Aarni Koskela
fa9a51e528 Use os.path.dirname() for getting the directory name of a path (#81504) 2022-11-14 15:21:35 +01:00
epenet
1826795d37 Add TagProtocol for type checking (#81086)
* Add TagProtocol for type checking

* Adjust type hints
2022-11-14 14:32:10 +01:00
Pascal Reeb
e9117cd1db Update pynuki to 1.6.0 (#81208) 2022-11-14 13:43:24 +01:00
epenet
55444b15a9 Add type hints to hassfest models (#82074)
* Add type hints to hassfest models

* Implement review
2022-11-14 12:41:49 +01:00
Erik Montnemery
de313dcc3f Improve config tests (#81898)
* Improve config tests

* Fix stale docstring

* Use os.path.basename
2022-11-14 11:13:20 +01:00
muppet3000
096ef85c68 Bump growattServer to 1.2.4 (#82071)
Growatt - Library bump to workaround for #81951
2022-11-14 10:41:25 +01:00
Thomas Dietrich
a0b0e4088c Replace quantiles by percentile characteristic for statistics component (#81027)
* Remove quantiles characteristic

* Add percentile characteristic
2022-11-14 09:23:02 +01:00
Aarni Koskela
727dcd6df6 Keep mypy.ini and strict-typing files sorted with hassfest (#81331)
hassfest: keep mypy.ini and .strict-typing sorted
2022-11-14 06:37:47 +01:00
Allen Porter
4bf233a4c1 Bump python-google-nest-sdm to 2.1.0 (#82066) 2022-11-13 18:24:32 -08:00
Avi Miller
42652872f6 Restore color_temp handling for lifx.set_state (#82067)
fixes undefined
2022-11-13 19:43:45 -06:00
G Johansson
48f6c9a486 Add tests DNS IP (#82059) 2022-11-13 18:23:14 -06:00
Christopher Bailey
ae436d46fc Add options to UniFi Protect diagnostics (#82062) 2022-11-13 17:57:09 -06:00
J. Nick Koston
298c95d9f0 Bump pySwitchbot to 0.20.4 (#82055)
Fixes for curtain firmware v6

changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.20.3...0.20.4
2022-11-14 00:12:52 +01:00
J. Nick Koston
f584efa0c2 Move bluetooth remote scanner implementation into a base class (#82012) 2022-11-13 14:18:36 -06:00
Oliver Dippel
bd28483b43 Fix ibeacon source attribute not being updated (#81740)
fixes undefined
2022-11-13 14:17:59 -06:00
J. Nick Koston
50f960097f Add support for thermobeacon WS 03 aka device 0x18 (#82045)
* Add support for thermobeacon WS 03 aka device 0x18

changelog: https://github.com/Bluetooth-Devices/thermobeacon-ble/compare/v0.3.2...v0.4.0

* empty
2022-11-13 20:30:50 +01:00
On Freund
52a8f4df82 Refactor binary sensor creation in Risco integration (#82043) 2022-11-13 11:53:54 -06:00
Avi Miller
fe7ffe9519 Enable more customization of the LIFX pulse and color loop effects (#81699) 2022-11-13 10:59:47 -06:00
Allen Porter
2ff45e198d Bump pyrainbird 0.6.2 (#82040) 2022-11-13 10:56:38 -06:00
G Johansson
f25ec15b07 Add element sensors to Sensibo (#82025)
fixes undefined
2022-11-13 09:40:11 -06:00
Christopher Bailey
bfd2eb50b2 Detect Early Access versions of UniFi Protect and Warn User (#81758) 2022-11-13 09:34:29 -06:00
Vincent Giorgi
8252d7f3b5 Bump airthings-ble to 0.5.3 (#82033)
Bump airthings-ble
2022-11-13 16:11:07 +01:00
Malte Franken
3658c5f673 Add integration_type to nsw_rural_fire_service_feed (#82031)
define integration type
2022-11-13 16:06:33 +01:00
G Johansson
50c686343e Bump pysensibo to 1.0.21 (#82023)
* pysensibo 1.0.21

* Add name to fixture
2022-11-13 16:05:54 +01:00
Allen Porter
edad5ece58 Bump gcal_sync 4.0.2 (#82017) 2022-11-13 06:58:59 -08:00
David F. Mulcahey
ebffe0f33b Fix ZHA configuration APIs (#81874)
* Fix ZHA configuration loading and saving issues

* add tests
2022-11-13 08:30:16 -05:00
J. Nick Koston
e4ecaa433a Update bluetooth util for upcoming bleak (#82020)
Fixes
```
Nov 08 21:41:14 homeassistant homeassistant[474]: /usr/src/homeassistant/homeassistant/components/bluetooth/util.py:39: FutureWarning: BLEDevice.rssi is deprecated and will be removed in a future version of Bleak, use AdvertisementData.rssi instead
Nov 08 21:41:14 homeassistant homeassistant[474]:   rssi=history.device.rssi,

```
2022-11-13 11:28:49 +01:00
J. Nick Koston
62bd692a58 Bump bluetooth-data-tools to 0.3.0 (#82016)
prep work for #82007

changelog: https://github.com/Bluetooth-Devices/bluetooth-data-tools/compare/v0.2.0...v0.3.0
2022-11-13 09:47:24 +01:00
Allen Porter
636bfe0f7b Bump pyrainbird to 0.6.1 (#82009)
* Bump pyrainbird to 0.6.0

* Bump pyrainbird to 0.6.1
2022-11-13 09:33:26 +01:00
corneyl
a848dc1155 Add service for adding products to a Picnic order (#67877)
* Add Picnic services for searching products and adding products to the cart

* Improve the Picnic services implementation and add unit tests

* Fix pre-commit check issues

* Fix comments and example product name

* Remove search service, update add_product service schema

* Fix pylint suggestion

* Add more tests and removed unused code

* Remove code needed for the removed service, clean tests from obvious comments and add type hints

* Remove unused import

* Remove unnecessary comments and simplify getting the config entry id

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

* Don't use hass.data in tests, make device id mandatory for service

* Rewrite all service tests so using lru.cache is not needed

* Add test for uncovered line in _product_search()

* Require a config entry id as service parameter instead of device id

* Use explicit check in get_api_client() and raise HomeAssistantError

* Fix HomeAssistantError import, fix services tests

* Change HomeAssistantError to ValueError when config entry is not found

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2022-11-12 20:15:45 -08:00
kingy444
7ddf2e4ca4 Bump Powerview aiopvapi to 2.0.4 (#82014) 2022-11-12 20:58:02 -06:00
GitHub Action
6df90291cf [ci skip] Translation update 2022-11-13 00:25:38 +00:00
Ian Byrne
9be2704c11 Add option to include attachments from remote URL to Discord notifications (#74811)
* Add option to include attachments from remote URL to Discord notifications

* Use aiohttp instead of requests for Discord Notify URL retrieval

* Refactor discord notifications code

* Remove unecessary images check in discord notifier
2022-11-12 16:11:06 -08:00
Cougar
5e610cdfd2 Bump luftdaten to 0.7.4 (#82002)
Bump luftdaten to 0.7.4 (#61687)

changelog: https://github.com/home-assistant-ecosystem/python-luftdaten/compare/0.7.2...0.7.4

Fixes API connection error handling (#61687)
2022-11-12 14:24:33 -08:00
Ziv
b6c27585c7 Implemented RestoreEntity for Dynalite (#73911)
* Implemented RestoreEntity
Merged commit conflict

* removed accidental change

* Update homeassistant/components/dynalite/dynalitebase.py

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

* added tests for the state

* added tests for switch state

* moved to ATTR_x and STATE_x instead of strings
some fixes to test_cover

* moved blind to DEVICE_CLASS_BLIND

* used correct constant instead of deprecated

* Implemented RestoreEntity

* removed accidental change

* added tests for the state

* added tests for switch state

* moved to ATTR_x and STATE_x instead of strings
some fixes to test_cover

* fixed isort issue from merge

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-11-12 22:59:29 +01:00
On Freund
4bb1f4ec79 Add Armed binary sensor to local Risco (#81997) 2022-11-12 21:29:31 +01:00
uvjustin
ee910bd0e4 Refactor camera stream settings (#81663) 2022-11-13 01:22:59 +08:00
rappenze
1fe85c9b17 Fix accelerator sensor in fibaro integration (#81237)
* Fix accelerator sensor in fibaro integration

* Implement suggestions from code review

* Implement suggestions from code review

* Changes as suggested in code review

* Adjust as suggested in code review
2022-11-12 10:43:11 +01:00
GitHub Action
a6a3bf261d [ci skip] Translation update 2022-11-12 00:28:24 +00:00
J. Nick Koston
de48ae2e53 Bump dbus-fast to 1.73.0 (#81959)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.72.0...v1.73.0
2022-11-11 23:22:22 +01:00
David F. Mulcahey
8ee60c2e7f Bump ZHA quirks lib to 0.0.86 (#81966) 2022-11-11 17:03:32 -05:00
J. Nick Koston
a8aea6df5e Bump oralb-ble to 0.14.2 (#81969)
fixes detection of the black 9000 model

fixes #81967

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.14.1...v0.14.2
2022-11-11 17:01:54 -05:00
muppet3000
380ae12997 Fix Growatt missing state class (#81980)
Growatt - Fix #80003 - Add missing state class
2022-11-11 17:01:15 -05:00
epenet
1baa5c12c0 Fix rest schema (#81857) 2022-11-11 10:08:26 -06:00
Jc2k
b5dfe8c6b9 Fix battery %, battery voltage and signal strength not being diagnostic entities in xiaomi_ble (#81960) 2022-11-11 15:37:57 +00:00
J. Nick Koston
89959e7cda Reduce complexity of bluetooth scanners for local adapters (#81940)
This is a small refactor to align the bluetooth scanner class
to the same design used in the esphome scanner to pass the
callback for new service infos in the constructor.

The original thinking was that multiple callbacks would
be needed to send the service infos to different paths,
however with the creation of a central manager, this
designed turned out to not be needed and can be
simplified
2022-11-11 14:59:06 +01:00
J. Nick Koston
6517e3e21e Fix esphome bleak client seeing disconnects too late (#81932)
* Fix esphome bleak client seeing disconnects too late

Because allbacks are delivered asynchronously its possible
that we find out during the operation before the callback
is delivered telling us about the disconnected.

We now watch for error code -1 which indicates the connection
dropped out from under us

* debug logging

* cleanup comment

* Fix comment grammar

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-11 09:09:28 +01:00
J. Nick Koston
8c9a8d72a8 Bump PySwitchbot to 0.20.3 (#81938)
changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.20.2...0.20.3

releases the connection sooner to reduce the risk
of running out of connection slots on the ble adapter
2022-11-11 08:53:07 +01:00
J. Nick Koston
777bf27dda Bump bleak-retry-connector to 2.8.4 (#81937)
changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.3...v2.8.4

reduces the risk that the operation will fail because the adapter
temporarily runs out of connection slots
2022-11-11 08:51:58 +01:00
GitHub Action
df0ba28b05 [ci skip] Translation update 2022-11-11 00:30:00 +00:00
J. Nick Koston
5621dfe419 Small cleanups for HomeKit Controller (#81933) 2022-11-10 17:07:30 -06:00
Aaron Bach
f67ecd8ef5 Bump aioridwell to 2022.11.0 (#81929) 2022-11-10 15:32:49 -06:00
J. Nick Koston
78180b2ad8 Fix bluetooth adapters with missing firmware patch files not being discovered (#81926) 2022-11-10 14:14:37 -06:00
cdheiser
2813101418 Add cdheiser to Lutron codeowners (#81922)
* Update manifest.json

Add cdheiser as codeowner

* Update CODEOWNERS

Add @cdheiser as owner of Lutron.
2022-11-10 19:35:47 +01:00
Guido Schmitz
97ebe59584 Use UnitOfTemperature in devolo Home Control (#81923) 2022-11-10 19:33:10 +01:00
Allen Porter
e6d1a4a422 Revert google calendar back to old API for free/busy readers (#81894)
* Revert google calendar back to old API for free/busy readers

* Update homeassistant/components/google/calendar.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-10 08:31:28 -08:00
Erik Montnemery
a2da1c7db5 Create repairs issue if an outdated currency code is configured in core store (#81772)
* Create repairs issue if an outdated currency code is configured in core store

* Update homeassistant/config.py

Co-authored-by: Aarni Koskela <akx@iki.fi>

Co-authored-by: Aarni Koskela <akx@iki.fi>
2022-11-10 17:28:19 +01:00
Erik Montnemery
25d54f407e Fix race when deleting a scene (#81896) 2022-11-10 17:27:26 +01:00
Erik Montnemery
2f9982d1c7 Fix race when deleting a script (#81897) 2022-11-10 17:27:14 +01:00
Erik Montnemery
ae2b2acab5 Fix grammar in tts service description (#81916) 2022-11-10 17:25:42 +01:00
Jan Bouwhuis
7500d0c61c Refactor MQTT_WILL_BIRTH_SCHEMA (#81879)
* Refactor MQTT_WILL_BIRTH_SCHEMA

* Refactor and move birth/will validation to utils

* Simplify birth will validation
2022-11-10 15:24:56 +01:00
Erik Montnemery
9bd676aff6 Improve automation reload (#81854)
* Improve automation reload

* Small tweak

* Improve
2022-11-10 14:44:55 +01:00
Matthias Alphart
ee9231363f Refactor KNX Config and Options flows (#80641) 2022-11-10 14:25:41 +01:00
Erik Montnemery
874ece195e Include config entry id in response to WS API hardware/info (#81906) 2022-11-10 13:19:21 +01:00
lunmay
a954443795 Fix string typos and consistencies in nibe_heatpump (#81902)
* Fix typos and consistency

* Fix typos and consistency
2022-11-10 10:32:07 +01:00
Martin Hjelmare
9ded232522 Move zwave_js addon manager to hassio integration (#81354) 2022-11-10 10:09:52 +01:00
Ernst Klamer
0bd04068de Omit unit of measurement and device class equal to None (#81880)
Omit unit of measurement and dev class none
2022-11-10 09:40:22 +01:00
Malte Franken
3089ca06c5 Add integration_type to qld_bushfire (#81895)
define integration type
2022-11-10 08:16:37 +01:00
Allen Porter
f34de5072a Bump gcal_sync to 4.0.1 to fix Google Calendar config flow (#81873)
Bump gcal_sync to 4.0.1

This reverts test chagnes from PR #81562 that were actually incorrect given
the calendar "get" API returns less information that the "CalendarList" api.
2022-11-09 19:34:31 -08:00
GitHub Action
8b4dbbe593 [ci skip] Translation update 2022-11-10 00:27:41 +00:00
Erik Montnemery
7aa4654eb4 Improve docstring for sensor testcase (#81875) 2022-11-09 23:59:58 +01:00
Aaron Bach
adf84b0c62 Add async_get_active_reauth_flows helper for config entries (#81881)
* Add `async_get_active_reauth_flows` helper for config entries

* Code review

* Code review + tests
2022-11-09 15:36:50 -07:00
Allen Porter
0941ed076c Cleanup unnecessary google calendar test fixtures (#81876) 2022-11-09 20:59:00 +01:00
J. Nick Koston
b18c558a80 Bump oralb-ble to 0.14.1 (#81869) 2022-11-09 10:21:31 -06:00
J. Nick Koston
438184a43c Bump aiohomekit to 2.2.19 (#81867) 2022-11-09 10:01:12 -06:00
Aarni Koskela
f3e85b6492 Deduplicate blackening (#81802) 2022-11-09 16:58:20 +01:00
J. Nick Koston
f9ff23a2c8 Fix benign typo in test_config_entries.py (#81789)
* Fix typo in test_config_entries.py

* touch ups

* Update tests/test_config_entries.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-09 16:36:46 +01:00
uvjustin
84725f15a6 Use IntEnum for stream orientation (#81835)
* Use IntEnum for stream orientation

* Rename enum values

* Add comments

* Fix import
2022-11-09 07:28:28 -08:00
Jc2k
9de4d7cba3 Fix homekit_controller climate entity not becoming active when changing modes (#81868) 2022-11-09 15:27:36 +00:00
Ville Skyttä
e690db9ba6 Upgrade huawei-lte-api to 1.6.7, fixes empty username issues (#81751)
Recentish versions of huawei-lte-api behave differently with regards to
empty/default username compared to the older versions this integration
was originally written against. 1.6.5+ changes the behavior so that our
existing implementation works as expected when no username is supplied
for the config entry.

https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.4
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.5
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.6
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6.7
2022-11-09 15:51:33 +01:00
Phil Bruckner
8874bf7791 Change life360 timeouts & retries (#81799)
Change from single timeout of 10 to socket timeout of 15, total timeout of 60, and retry up to 3 times.

Bump life360 package to 5.3.0.
2022-11-09 15:44:30 +01:00
Aarni Koskela
5a6f7e66cb Refactor + strictly-type image component (#81808)
* image: refactor size validation to use partition

* image: give _generate_thumbnail types and use partition

* image: become strictly typed
2022-11-09 15:36:03 +01:00
Aarni Koskela
ec316e94ed RuuviTag BLE sensor support (#81327) 2022-11-09 08:35:30 -06:00
Ernst Klamer
b72876d369 Add support for BTHome V2 to bthome (#81811)
* Add BTHome v2 support

* Add new sensor types

* Add new sensor types
2022-11-09 15:31:58 +01:00
Hessel
4b4bf54994 Bump wallbox to 0.4.12 (#81852)
Version Bump for WALLBOX
2022-11-09 15:22:54 +01:00
Vincent Knoop Pathuis
0cd9fe3288 Landis+Gyr Heat Meter code improvements (#81184) 2022-11-09 13:45:28 +01:00
Franck Nijhof
2eb37f527a Update psutil to 5.9.4 (#81840) 2022-11-09 12:45:33 +01:00
Aarni Koskela
738419309d Add numpy requirement to stream (#81841)
Closes https://github.com/home-assistant/core/pull/81790
2022-11-09 12:22:14 +01:00
epenet
402bac5ed7 Improve type hints in camera (#81794) 2022-11-09 12:14:26 +01:00
Malte Franken
b7f3eb77dc Add integration_type to usgs_earthquakes_feed (#81846) 2022-11-09 11:20:27 +01:00
Avishay
92b5721f80 Fix modbus hvac mode keys (#81747)
Change the HVAC mode register conf constants
2022-11-09 11:09:21 +01:00
Kryštof Korb
21d96e00a2 Use better icon for system monitor IP sensor (#81779) 2022-11-09 10:51:28 +01:00
Aarni Koskela
44e4b8c676 Omit native_unit_of_measurement=None (#81844) 2022-11-09 10:48:37 +01:00
Aarni Koskela
059623c6bf Remove vestigial move.yml (#81557) 2022-11-09 09:47:10 +01:00
epenet
9f691ab359 Revert "Fix coordinator TypeVar definition (#81298)" (#81834) 2022-11-09 09:03:59 +01:00
J. Nick Koston
ad992f0a86 Fix switchbot not becoming available again after unavailable (#81822)
* Fix switchbot not becoming available again after unavailable

If the advertisment was the same and we were previously
marked as unavailable we would not mark the device as
available again until the advertisment changed. For lights
there is a counter but for the bots there is no counter
which means the bots would show unavailable even though
they were available again

* naming

* naming
2022-11-09 08:09:06 +01:00
GitHub Action
dcf68d768e [ci skip] Translation update 2022-11-09 00:27:20 +00:00
Joakim Plate
58c691be1e Update nibe to 1.2.1 with support for 2120 pumps (#81824)
Update nibe to 1.2.1
2022-11-09 01:20:55 +01:00
Jan Bouwhuis
12d76a8a4f Address late review of config entry wait for states tests (#81801)
* Late review on tests #81771

* Clean-up duplicate assignment
2022-11-08 22:14:17 +01:00
Aarni Koskela
6021cedb09 deconz: Use partition instead of split where possible (#81804)
* deconz: Use partition instead of split where possible

With a smattering of code deduplication

Split out of #81493

* Update homeassistant/components/deconz/util.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-11-08 20:54:01 +01:00
Jan Bouwhuis
b364ef98a0 Use _attr_ for MQTT vacuum (#81534)
* Use `_attr_` for MQTT vacuum

* Remove unneeded properties

* Follow-up comment

* Remove default value
2022-11-08 18:48:08 +01:00
Jan Bouwhuis
3cc9ecf1dc Implement ConfigEntry async_wait_for_states (#81771)
* Implement async_wait_for_states

* stale docstr, remove hints

* Assert return states for tests
2022-11-08 17:18:40 +01:00
Jan Bouwhuis
7d768dc3a6 Improve MQTT type hints / refactor part 7 - trigger (#81019)
* Improve typing trigger

* Improve hints on templates

* Use new sentinel for template

* Follow-up comment
2022-11-08 17:02:06 +01:00
J. Nick Koston
2cb58b8189 Fix off by one in HomeKit iid allocator (#81793) 2022-11-08 09:20:03 -06:00
Aarni Koskela
88a7c76739 Fix late-import paho (#81791)
fix: late-import MQTTMessage

`paho-mqtt` is not listed in main requirements and is imported early by `conftest`.

Import it late to avoid an ImportError.

Split out from #81678.
2022-11-08 16:16:31 +01:00
ztamas83
5040b94330 Retry tibber setup (#81785)
* Handle integration setup retries

* Fix black error

* Update to falsy check

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

* Remove duplicated log

* Update exception message

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-08 16:09:58 +01:00
Aaron Bach
45be2a260e Add re-auth flow for OpenUV (#79691) 2022-11-08 07:41:09 -07:00
Bram Kragten
014c2d487d Update frontend to 20221108.0 (#81787) 2022-11-08 15:00:30 +01:00
Malte Franken
3edaef63b0 Add integration_type to ign_sismologia (#81729)
define integration type
2022-11-08 14:47:00 +01:00
Marc Mueller
0c8eeaa643 Update mypy to 0.990 (#81783)
* Update mypy to 0.990

* Remove type ignore - overriding attr with property (13475)

* Remove type ignores - hasattr (13544)

* Adjust type ignore - assignment (13549)

* New error code - type-abstract (13785)

* Disable annotation-unchecked (13851)
2022-11-08 14:41:39 +01:00
chpego
2082026ff5 Fix Fully Kiosk start application service field (#81738)
Fix attributes services to start_application
2022-11-08 14:39:53 +01:00
J. Nick Koston
b7533aff48 Replace led-ble util with bluetooth-data-tools (#81093) 2022-11-08 07:26:16 -06:00
epenet
9b0b8ae9c0 Add short-hand attributes to vacuum (#81782)
Add attributes to vacuum
2022-11-08 13:58:47 +01:00
Jan Bouwhuis
4293c88fb6 Improve MQTT type hints part 6 (#81001)
* Improve typing siren

* Improve typing switch

* Set siren type hints at class level

* Set switch type hints at class level

* Follow up comment

* Improve hints on siren templates

* Another cleanup for siren

* Follow up comment

* Follow up comment
2022-11-08 13:11:45 +01:00
Jan Bouwhuis
47dba6f6bc Improve MQTT type hints part 5 (#80979)
* Improve typing scene

* Improve typing select

* Improve typing sensor

* move expire_after - and class level attrs

* Follow up comment

* Solve type confict

* Remove stale sentinel const

* Update homeassistant/components/mqtt/sensor.py

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

* Make _expire_after a class attribute

* Code styling

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-08 12:55:41 +01:00
Joakim Sørensen
d6c10cd887 Bump pycfdns from 1.2.2 to 2.0.0 (#81776) 2022-11-08 12:28:36 +01:00
Allen Porter
dfab3b2651 Partially revert google local sync for search cases (#81761)
fixes undefined
2022-11-08 11:21:13 +01:00
J. Nick Koston
4d1fa42a3c Use more efficient async_progress_by_handler call in async_start_reauth (#81757) 2022-11-08 11:20:54 +01:00
epenet
c585817e67 Adjust REST schema validation (#81723)
fixes undefined
2022-11-08 11:18:58 +01:00
J. Nick Koston
53c1c2eb56 Fix homekit bridge iid allocations (#81613)
fixes undefined
2022-11-08 11:15:16 +01:00
J. Nick Koston
11034f56dc Ensure HomeKit temperature controls appear before fan controls on thermostat accessories (#81586) 2022-11-08 11:04:24 +01:00
J. Nick Koston
462e2a8ea1 Fix HomeKit reset accessory procedure (#81573)
fixes https://github.com/home-assistant/core/issues/81571
2022-11-08 11:03:37 +01:00
Steven Looman
274049cc8e Fix ignored upnp discoveries not being matched when device changes its unique identifier (#81240)
Fixes https://github.com/home-assistant/core/issues/78454
fixes undefined
2022-11-08 11:02:53 +01:00
Joakim Plate
fc0e0bf099 Support for direct modbus connection to nibe pumps (#80557)
* Initial support for modbus

* Complete test coverage of config flow

* Bump to 1.1.0 with corrected numbers

* Handle missing mapping for reset-alarm

* Fixup type checks after library bump

* Adjust coil number

* Move word_swap to nibegw

* Adjust to 1.1.2 with fixes

* Add series property

* Add S series models

* Correct test for invalid host

* Apply suggestions from code review

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

* Move some things into library

* Adjust strings somewhat

* Correct black

* Correct test after validation change

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-08 10:49:47 +01:00
epenet
318122fe53 Fix coordinator TypeVar definition (#81298)
* Adjust coordinator TypeVar definition

* Adjust again
2022-11-08 10:38:29 +01:00
Jan Bouwhuis
d66d079330 Use _attr_ for MQTT light (#81465)
* Schema basic

* Schema json

* Schema template

* add color_mode - follow up comments

* Fix regression

* Follow up comments 2

* Fix mypy errors

* Update homeassistant/components/mqtt/light/schema_template.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-08 10:16:05 +01:00
Jan Bouwhuis
8c0a7b9d7f Add type hints for MQTT tag (#81495)
* Improve typing tag

* Additional type hints for tag platform

* Follow up comment tag

* Folow up comments

* Revert comment removal
2022-11-08 09:24:16 +01:00
Jan Bouwhuis
88faf33cb8 Improve type hints for MQTT climate (#81396)
* Improve typing climate

* Move climate type hints to class level

* Apply suggestions from code review

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

* remove stale command after applying suggestions

* cleanup

* Update homeassistant/components/mqtt/climate.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-11-08 09:17:03 +01:00
Robert Svensson
23bed25e52 Remove old UniFi POE client implementation (#81749)
Remove all references to POE client implementation
2022-11-08 07:48:54 +01:00
Robert Svensson
3444d2af1a UniFi switch entity description (#81680)
* Consolidate switch entities to one class

* Move turn on/off into UnifiSwitchEntity

* Add event subscription
Remove storing entity for everything but legacy poe switch

* Only one entity class

* Improve generics naming

* Rename loader to description

* Improve control_fn naming

* Move wrongfully placed method that should only react to dpi apps being emptied

* Improve different methods

* Minor renaming and sorting

* Mark callbacks properly
2022-11-08 07:38:31 +01:00
Erik Montnemery
c3d4a9cd99 Create repairs issue if an outdated currency code is configured (#81717)
* Create repairs issue if an outdated currency code is configured

* Add script for updating list of currencies

* Use black for formatting

* Move currency codes to a separate file

* Address review comments
2022-11-08 07:21:09 +01:00
Jon Gilmore
0ce301ae7b Remove JonGilmore from lutron codeowners (#81727) 2022-11-07 21:22:03 -06:00
J. Nick Koston
c2c26e2608 Fix check for duplicate config entry reauth when context is passed or augmented (#81753)
fixes https://github.com/home-assistant/core/issues/77578
2022-11-07 21:19:57 -06:00
GitHub Action
785cf0e29c [ci skip] Translation update 2022-11-08 00:26:39 +00:00
Thibaut
55cad465b2 Add support for AEH with adjustable temperature in Overkiz integration (#72790)
* Import and clean from ha-tahoma

* Fix wrong search and replace

* Clean code

* Use elif

* Sort import

* Fix imports

* Update homeassistant/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Fix import

* Remove cast

* Remove useless constructor

* Use constant

* Remove now useless conditions

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
2022-11-08 00:07:02 +01:00
J. Nick Koston
5c38321c4f Ignore unspecified addresses from zeroconf (#81620) 2022-11-07 15:50:45 -06:00
Raman Gupta
7f23ab9d86 Add measurement state class to eight_sleep sensors (#81589)
* Add measurement state class to eight_sleep sensors

* tweaks
2022-11-07 21:46:41 +01:00
Robert Hillis
bc146a09db Add integration_type for some integrations (#81499) 2022-11-07 19:39:29 +01:00
Joakim Sørensen
e7a616b8ff Use location info helper for IP in Cloudflare DNS (#81714)
* Use location info helper for IP in Cloudflare DNS

* simplify

* Blow up

* coverage
2022-11-07 19:31:47 +01:00
Christopher Bailey
1b9c2dfb68 Bump pyunifiprotect to 4.4.1 (#81732) 2022-11-07 19:10:42 +02:00
Jan Bouwhuis
b9c47ed3c3 Align MQTT config entry setup strings with option flow (#81616) 2022-11-07 10:45:27 -06:00
puddly
74357bef15 Use a unique ID for the Yellow ZHA hardware discovery (#81523)
* Set unique ID for hardware discovery

* Use the provided `name` for discovered hardware
2022-11-07 11:28:28 -05:00
puddly
604cd46ec9 Enable SkyConnect config flow and use correct case in USB matching (#81522)
* Ensure `USBCallbackMatcher` uses the appropriate case for each field

* Enable the config flow for the SkyConnect integration

* Update unit test
2022-11-07 17:26:16 +01:00
puddly
3788a950e6 Validate matcher field case in usb.async_is_plugged_in (#81514)
* Support case-insensitive matching

* Revert "Support case-insensitive matching"

This reverts commit 0fdb2aa6bc6165d9adae39ecbe7f6698e7b94715.

* Explicitly check the case of matcher fields in `async_is_plugged_in`
2022-11-07 17:14:57 +01:00
J. Nick Koston
43745dbc6c Pass explict time in logbook tests (#81725)
The CI sets the timezone to US/Pacific and the logbook
uses start_of_local_day when called without a time.

We now call the logbook api with a specific time to
avoid them being out of sync since the test would
fail at CET 8:55am on Mon Nov 7th 2022 (and probably
other dates)
2022-11-07 16:26:38 +01:00
Mick Vleeshouwer
ff18cece7b Add Brandt, Hexaom, SIMU & Ubiwizz as virtuals integrations of Overkiz (#79566)
* Match supported brands with Overkiz libs

* Add missing files for mypy
2022-11-07 16:17:56 +01:00
TheJulianJES
523c3089f7 Add TI router transmit power config entity to ZHA (#81520)
Make TI Router Transmit Power configurable in ZHA
2022-11-07 08:54:43 -05:00
StefanIacobLivisi
902e075d58 Add livisi integration (#76863) 2022-11-07 14:40:23 +01:00
epenet
f479b2385e Add type hints to rest switch (#81307) 2022-11-07 14:02:49 +01:00
epenet
934cec9778 Modernize rest switch tests (#81306)
* Adjust rest switch tests to use schema validation

* Simplify

* Use async_setup_component in tests

* Rewrite tests

* Add patch

* Remove patch

* Adjust mock
2022-11-07 13:08:05 +01:00
epenet
9b2a8901b1 Adjust payload sentinel in mqtt (#81553)
* Adjust payload sentinel in mqtt

* Add type hints

* Update sensor.py

* Adjust vacuum

* Add type hints

* Adjust schema basic

* Remove invalid hint
2022-11-07 12:31:11 +01:00
David F. Mulcahey
d1fd141e8c Bump ZHA quirks and associated changes (#81587) 2022-11-07 12:28:59 +01:00
Robert Hillis
9860b06913 Bump aiopyarr to 22.11.0 (#81694) 2022-11-07 12:23:49 +01:00
Christopher Bailey
190840cd33 Bump pyunifiprotect to 4.4.0 (#81696) 2022-11-07 12:12:41 +01:00
J. Nick Koston
2bea77549d Fix creating multiple ElkM1 systems with TLS 1.2 (#81627)
fixes https://github.com/home-assistant/core/issues/81516
2022-11-07 12:09:36 +01:00
J. Nick Koston
3184c8a526 Fix use of deprecated device.rssi in bluetooth scanner (#81690) 2022-11-07 12:06:38 +01:00
J. Nick Koston
11a55d6d4c Fix flapping logbook tests (#81695) 2022-11-07 11:41:02 +01:00
Benjamin Salchow
1d633ac484 Accept input register in Modbus binary sensor (#81352)
Adds input register as valid option for modbus binary_sensor

Co-authored-by: jan iversen <jancasacondor@gmail.com>
2022-11-07 10:14:12 +01:00
epenet
5e05739019 Add type hints to template helper (#81308)
* Add type hints to template helper

* Update homeassistant/helpers/template.py

* Adjust use of ensure_compiled
2022-11-07 09:41:53 +01:00
Ville Skyttä
9bc029000a Upgrade prettier to v2.7.1 (#81682)
No formatting changes.

https://github.com/prettier/prettier/blob/2.7.1/CHANGELOG.md
2022-11-07 09:09:47 +01:00
Malte Franken
efd60de1ac Add integration_type to geonetnz_volcano (#81607)
define integration type
2022-11-07 09:01:07 +01:00
Jan Bouwhuis
ff4456cb29 Improve MQTT type hints part 4 (#80971)
* Improve typing humidifier

* Improve typing lock

* Improve typing number

* Set humidifier type hints at class level

* Set lock type hints at class level

* Set number type hints at class level

* Some small updates

* Follow up comment

* Remove assert
2022-11-07 08:24:49 +01:00
tstabrawa
499839c596 Fix nuheat temporary hold time (#81635)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-11-06 19:16:22 -06:00
J. Nick Koston
9c3bd22e77 Bump bleak to 0.19.2 (#81688) 2022-11-06 19:07:21 -06:00
GitHub Action
e2788f8321 [ci skip] Translation update 2022-11-07 00:26:17 +00:00
Simone Chemelli
2a42a58ec4 Restore negative values for shelly power factors (#81689)
fixes undefined
2022-11-06 18:16:58 -06:00
J. Nick Koston
3cfcb93d70 Bump aiohomekit to 2.2.18 (#81693) 2022-11-06 18:04:45 -06:00
J. Nick Koston
c3946159d8 Bump bleak-retry-connector to 2.8.3 (#81675)
Improves chances of making a BLE connection with the ESP32s

changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.2...v2.8.3
2022-11-07 00:45:53 +01:00
J. Nick Koston
e7b5aaec47 Bump aioesphomeapi to 11.4.3 (#81676) 2022-11-06 17:13:14 -06:00
Artem Draft
04d01cefb2 Fix Bravia TV options flow when device is off (#81644)
* Fix options flow when tv is off

* abort with message
2022-11-06 20:26:40 +00:00
Maciej Bieniek
df7000f96d Always use Celsius in Shelly integration, part 2 (#81602)
* Always use Celsius in Shelly integration

* Update homeassistant/components/shelly/sensor.py

Co-authored-by: Aarni Koskela <akx@iki.fi>

* Restore unit from the registry during HA startup

Co-authored-by: Aarni Koskela <akx@iki.fi>
2022-11-06 20:23:48 +00:00
Aaron Bach
d62bac9c59 Fix missing RainMachine restrictions switches (#81673) 2022-11-06 13:38:55 -06:00
Aarni Koskela
496f78bae5 FIX: patch correct async_setup_entry in tilt_ble (#81671) 2022-11-06 13:37:44 -06:00
J. Nick Koston
d3529cb346 Add missing h2 dep to iaqualink (#81630)
fixes https://github.com/home-assistant/core/issues/81439
2022-11-06 12:59:32 -06:00
J. Nick Koston
3630de909c Bump aiohomekit to 2.2.17 (#81657)
Improve BLE pairing reliability, especially with esp32 proxies

changelog: https://github.com/Jc2k/aiohomekit/compare/2.2.16...2.2.17
2022-11-06 09:47:07 -06:00
Christopher Bailey
6c659c0d68 Add repair warning about UniFi Protect Early Access (#81658) 2022-11-06 09:11:49 -06:00
J. Nick Koston
b18a1e6d7c Bump dbus-fast to 1.72.0 (#81574) 2022-11-06 08:12:58 -06:00
Klaas Schoute
4056f673b8 Fix watermeter issue for old P1 Monitor versions (#81570)
* Bump the python package version

* Add exception to check if user has a water meter
2022-11-06 14:51:19 +01:00
Sebastian Muszynski
4c65a2f455 Bump PyXiaomiGateway to 0.14.3 (#81603)
Fixes: #80249
2022-11-06 13:02:59 +01:00
J. Nick Koston
cdec4fe110 Bump oralb-ble to 0.13.0 (#81622)
* Bump oralb-ble to 0.11.1

adds some more missing pressure mappings

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.2...v0.11.1

* bump again to update for additional reports

* bump again for more data from issue reports
2022-11-06 12:38:01 +01:00
Tobias Sauerwein
8e965eb56f Bump pyatmo to 7.4.0 (#81636) 2022-11-06 10:21:48 +01:00
GitHub Action
fc472eb040 [ci skip] Translation update 2022-11-06 00:27:15 +00:00
Allen Porter
2ad1d31119 Bump gcal_sync to 4.0.0 (#81562)
* Bump gcal_sync to 2.2.4

* Bump gcal sync to 4.0.0

* Add Calendar accessRole fields which are now required
2022-11-05 17:06:34 -07:00
Steven Looman
a635e9c9d2 Fix repeating SSDP errors by checking address scope_ids and proper hostname (#81611) 2022-11-05 17:11:59 -05:00
Avi Miller
f66009c77d Fix lifx.set_state so it works with kelvin and color_temp_kelvin and color names (#81515) 2022-11-05 16:46:00 -05:00
J. Nick Koston
64a29fddb4 Bump aiohomekit to 2.2.16 (#81621) 2022-11-05 15:58:11 -05:00
Tim Rightnour
89ebca7594 Bump venstarcolortouch to 0.19 to fix API rev 3 devices (#81614) 2022-11-05 15:29:20 -05:00
J. Nick Koston
6495c65d10 Align esphome ble client notify behavior to match BlueZ (#81463) 2022-11-05 15:28:47 -05:00
Bouwe Westerdijk
5f9f956023 Bump plugwise to v0.25.7 (#81612) 2022-11-05 15:26:19 -05:00
Robert Svensson
3a33d36466 Fix situation where deCONZ sensor platform setup would fail (#81629)
* Fix situation where deCONZ sensor platform setup would fail

* Don't use try
2022-11-05 21:23:36 +01:00
Aaron Bach
5884f50a82 Bump pyairvisual to 2022.11.1 (#81556) 2022-11-05 12:58:47 -05:00
Nathan Spencer
24f218c46b Bump pylitterbot to 2022.11.0 (#81572) 2022-11-05 15:57:57 +01:00
J. Nick Koston
883ac12bcb Add additional coverage for adding multiple elkm1 instances (#81528)
* Add additional coverage for adding multiple elkm1 instances

* fix copy error
2022-11-05 15:57:32 +01:00
J. Nick Koston
b313f37946 Bump nexia to 2.0.6 (#81474)
* Bump nexia to 2.0.6

- Marks thermostat unavailable when it is offline

* is property
2022-11-05 15:55:43 +01:00
David F. Mulcahey
83c6a7e18b Fix invalid min and max color temp in bad ZHA light devices (#81604)
* Fix ZHA default color temps

* update test
2022-11-05 08:40:28 -04:00
Malte Franken
64a508be7b Add integration_type to geonetnz_quakes (#81548)
define integration type
2022-11-05 11:05:19 +01:00
J. Nick Koston
089c4a7da2 Bump bluetooth-adapters to 0.7.0 (#81576)
changelog: https://github.com/Bluetooth-Devices/bluetooth-adapters/releases/tag/v0.7.0
2022-11-05 10:44:05 +01:00
Raman Gupta
9a747bafa3 Use enums instead of deprecated constants (#81591) 2022-11-05 10:33:56 +01:00
GitHub Action
0311063c44 [ci skip] Translation update 2022-11-05 00:28:23 +00:00
Shay Levy
59ec52a079 Fix Shelly Plus HT missing battery entity (#81564) 2022-11-04 18:29:00 +02:00
J. Nick Koston
ca905a8c05 Bump dbus-fast to 1.71.0 (#81541)
performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.67.0...v1.71.0
2022-11-04 15:29:15 +01:00
javicalle
52c80b7c5b Add Tuya Backlight mode configuration (#81218)
* Tuya backlight configuration

* fix codespell
2022-11-04 09:54:19 -04:00
J. Nick Koston
2e92a0d1c2 Bump oralb-ble to 0.10.2 (#81537)
Fixes some more missing pressure mappings

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.1...v0.10.2
2022-11-04 14:42:37 +01:00
Nyro
ddbfed354e Add Overkiz AtlanticPassAPCDHW (#78665)
* Add Overkiz AtlanticPassAPCDHW

* Remove unnecessary line

* Improve atlantic pass_apcdhw for operation and target temprature

* Remove async_execute_commands

* Fix small code issues for Overkiz AtlanticPassAPCDHW

* Update homeassistant/components/overkiz/const.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_pass_apc_dhw.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_pass_apc_dhw.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Fix small issues

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
Co-authored-by: Quentame <polletquentin74@me.com>
2022-11-04 10:42:58 +01:00
Nyro
1a5eeb2db1 Add Overkiz AtlanticPassAPCHeatingAndCoolingZone (#78659)
* Add Overkiz AtlanticPassAPCHeatingAndCoolingZone

* Fix commands instanciations to be simpler

* Update AtlanticPassAPCHeatingAndCoolingZone to show temperature and fix HA threads

* Simplify async_execute_commands in order to receive simpler list

* Fix get and set temperature in derogation or auto mode

* Remove hvac_action from AtlanticPassAPCHeatingAndCoolingZone

* Remove unused lines

* Update async_execute_commands to work like async_execute_command
Implement cancel for multiple commands

* Improve to use preset_home for internal scheduling

* Remove async_execute_commands

* Improvement for AtlanticPassAPCHeatingAndCoolingZone

* Update homeassistant/components/overkiz/climate_entities/__init__.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_and_cooling_zone.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_and_cooling_zone.py

Co-authored-by: Quentame <polletquentin74@me.com>

* Update homeassistant/components/overkiz/const.py

Co-authored-by: Quentame <polletquentin74@me.com>

Co-authored-by: Quentame <polletquentin74@me.com>
2022-11-04 10:21:30 +01:00
J. Nick Koston
93072d8ac5 Bump dbus-fast to 1.67.0 (#81517)
Bump dbus to 1.67.0

The bleak BlueZ clients use the negotiate_unix_fd path
which was not optimized but is now.  (The scanners already
used a fast path)

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.64.0...v1.67.0
2022-11-04 06:34:23 +01:00
GitHub Action
c7fc51cfa5 [ci skip] Translation update 2022-11-04 00:29:52 +00:00
krazos
71c18ec527 Fix errant reference to "Solar.Forecast" in "Forecast.Solar" config options (#81252)
Fix errant reference to Solar.Forecast

Config options string referred to "Solar.Forecast".  That reference has been corrected to "Forecast.Solar".
2022-11-03 23:23:42 +01:00
Renat Sibgatulin
dd5baa6e48 Add air-Q integration (air quality sensors) (#76999)
* Added initial files for air-Q integration

* Allow FIXME comments in pylint (temporary)

Also reintroduce --ignore-missing-annotations=y

* Set up air-q entry to connect to aioairq's API (initial attempt)

Also add necessary constants

* Implement a class for sensors and its update logic

Very early stage, WIP

* Zeroconf and authentication are working

* Complete the bare-bone minimal working version

Specifically, make AirQSensor update its values.

* Handle invalid authentication gracefully

* Handle ClientConnectionError gracefully

* Add field hint for the login form

The key in the schema, which defines the form in
`ConfigFlow.async_show_form` is looked up in both `airq/strings/json`
and `airq/translations/en.json`. I am still not 100% sure how this
lookup is performed. WIP

* Minor cleanups

* Extend sensor list to all supported by SensorDeviceClass

Also manage warming up sensors

* aioairq is published to PyPI and mentioned in requirements

* Reordered constants and list content alphabetically

As required by style guides. Also turned SENSOR_TYPES to a list

* Updated file docstrings for a dev unfamiliar w/homeassistant like myself

* Adding a bit of logging for the integration setup process

* Expose scan interval & smoothing flag

Also streamline test_authentication in config_flow.

* Fix a type annotation mistake

* Use as many constants from homeassistant.const as possible

My only concern is using CONST_IP_ADDRESS = "ip_address" for smth which
stands for both IP address and mDNS...

* Temporarily rollback ConfigFlow.async_step_configure and use defaults

TODO: implement OptionFlowHandler instead

* Define custom Coordinator, w subset of airq config

The latter is then accessed from entity / sensor constructors to define
correct DeviceInfo

* Provide translations to de & fr + minor changes to en

* Provide translations to ru + a minor en changes

* Make translation a little more helpful and polite

* Fix devicename and entry title

* Remove stale commented out code

* Test config_flow

At this point two helper functions which interact with the external
library are not tested

* Clean up unrelated and meant as temporary changes

* Clean up unnecessary comments meant for internal use

* Move fetching config to a dedicated async coordinator method

As opposed to it being a potentially poorly justified step in
async_setup_entry

* Remove zeroconf support since it is not yet ready

* Remove translations other than en

* Remove unnecessary comments, manifest.json entries, and constants

* Improve exception handling

- `_LOGGER` uses `debug` and not `error` levels.
- Drop `ClientConnect` and catch `aiohttop.ClientConnectError` directly
- Drop `Exception` as it is not expected from `aioairq` (remove the
  corresponding test too)

* Drop strings for obsolete errors and steps

Specifically, `unknown` error isn't caught any more. `configure` step
has also been removed.

* Refactor en.json to be consistent with strings.json

* Move target_route from a coordinator argument to a constant

At this point a user cannot configure the target_route route, thus it
does not make sense to expose it half-heartedly in
`AirQCoordinator.__init__`, since it cannot be accessed.

* Fix an async call in `AirQCoordinator.async_setup_entry`

* Refactor underlying aioairq API

- Use `homeassistant.helpers.aiohttp.async_get_clientsession` and pass a
  single persistent session to `aioariq.AirQ.__init__`
- `aioairq.AirQ.fetch_device_info` now returns a `DeviceInfo` object heavily
  inspired and almost compatible with `homeassistant.helpers.entity.DeviceInfo`.
  Make heavier use of this object and define a single `DeviceInfo` in the
  `AirQCoordinator` (instead of recreating the same object for each sensor
  of the device in `sensor.AirQSensor`)
- Drop two helper functions in `config_flow.py` and operate on `aioariq.AirQ`
  methods directly

* Fix the version of aioairq

* Add 15 more sensors + icons

* Remove cnt* & TypPS, change units of health & performance

* Add 12 more sensors

* Add a missing icon

* Gracefully handle device not being available on setup

If the device and the host are not on the same WiFi,
ServerTimeoutError is raised, which is caught by
ClientConnectionError.
If the device is powered off, ClientConnectionError is expected.
In both cases, ConfigEntryNotReady is raised, as prescribed by the docs.
Newer version of aioairq times-out far quicker than the default 5 mins.

* Rename two sensors

* Validate provided IP address / mDNS

aioairq now raises InvalidInput if provided IP / mDNS does not seem
valid. Handle this exception correctly

* Apply suggestions from code review

Clean up the comments and rename the logger

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Only fetch device info during the first refresh

- Fetched info is stored in AirQCoordinator.device_info.
- In `AirQSensor.native_value` only multiply by the factor if
  the sensor reading is not None
- Fix the tests for ConfigFlow for aioairq==0.2.3. Specifically
  make the dummy data pass the new validation step upstream
  + add a test which fails it

* Drop custom device classes for now

* Apply suggestions from code review

Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Only fetch device info during ConfigFlow.async_step_user

Store the result obtained by `airq.fetch_device_info` it in
`config_entry.data`. Pass the entire config entry to `AirQCoordinator`
and build the entire `homeassistant.helpers.entity.DeviceInfo` in the
`AirQCoordinator.__init__`. This makes
`AirQCoordinator._async_fetch_device_info` and overloaded
`AirQCoordinator._async_config_entry_first_refresh` obsolete.

Bump aioairq version.

Turn update_interval from `AirQCoordinator.__init__` argument into a
contestant.

* Custom entity description exposing a hook to modify sensor value

Use a `AirQEntityDescription` with a callable `value_fn` which allows to
change the sensor value retrieved from the device. Note that the
callable does not handle data retrieval itself (even from
`coordinator.data`). Instead it is purely a hook to transform obtained
value.

* Avoid duplicated use of unique_id

Device info is fetched  during the `ConfigFlow.async_user_step`.
`unique_id` is taken from the device info and is **not** stored
in `config_entry.data`. Subsequently `config_entry.unique_id` is
used instead.

* Drop unnecessary try-except

Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Clarify the use of value_transform_fn

* Refactor the use of lambdas in AirQEntityDescription

Now it is the job of the callable under `value` to get the sensor
reading from the coordinator's data. Factoring this functionality into a
callback decouples  the key of the description from the key of dict,
returned by the API, so `AirQEntityDescription` no longer requires its key
to be set to smth clearly internal (e.g. `nh3_MR100`).

* Use a callback to update native_value

Since all `native_value`s are updated synchronously, it can as well be
done in a callback for better state consistency (right?)

* Revert the description keys to match data keys

Must match given the current way of identifying available sensors. On a
broader scale, they must match to be able to relate the descriptions to
sensors, unless a separate lookup table is maintained.

* Reduce number of loops when adding sensors

Filtering warming up sensors and non-sensor keys can be combined with
adding entities.

* Remove obsolete imports

* Update integrations.json

* Add integration_type

Integration supports multiple devices => hub

Co-authored-by: dl2080 <daniel.lehmann@runbox.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>
Co-authored-by: Daniel Lehmann <43613560+dl2080@users.noreply.github.com>
Co-authored-by: Martin Selbmann <job@martin-selbmann.de>
2022-11-03 23:13:57 +01:00
J. Nick Koston
08936e4041 Bump oralb-ble to 0.10.1 (#81491)
fixes #81489

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.0...v0.10.1
2022-11-03 20:35:05 +01:00
mkmer
9c85d22bab Bump AIOAladdinConnect to 0.1.47 (#81479) 2022-11-03 15:39:02 +01:00
J. Nick Koston
cd5901e0d0 Fix HomeKit thermostat to take priority over fans (#81473) 2022-11-03 14:49:12 +01:00
Franck Nijhof
bad33da2c1 Merge branch 'master' into dev 2022-11-03 13:13:35 +01:00
Jan Bouwhuis
b3403d7fca Improve MQTT type hints part 3 (#80542)
* Improve typing debug_info

* Improve typing device_automation

* Improve typing device_trigger

* Improve typing fan

* Additional type hints device_trigger

* Set fan type hints to class level

* Cleanup and mypy

* Follow up and missed hint

* Follow up comment
2022-11-03 13:06:53 +01:00
Dennis Schroer
dcd1ab7ec3 Update energyflip-client dependency to 0.2.2 (#81426) 2022-11-03 12:53:58 +01:00
J. Nick Koston
905005e1e8 Bump dbus-fast 1.64.0 (#81462)
- Performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.61.1...v1.64.0
2022-11-03 12:51:38 +01:00
hahn-th
918940a0c6 Add HmIP-WGC to homematicip_cloud integration (#75733)
* Add HmIP-WGC

* remove unused code

* removed test test_manually_configured_platform
2022-11-03 12:03:49 +01:00
Franck Nijhof
7556f2b84e Update cryptography to 38.0.3 (#81455) 2022-11-03 11:18:25 +01:00
J. Nick Koston
454f328a36 Bump aiohomekit to 2.2.14 (#81454) 2022-11-03 11:14:01 +01:00
Franck Nijhof
08772004b3 Fix SSDP failure to start on missing URLs (#81453) 2022-11-03 11:13:23 +01:00
Jan Bouwhuis
203c83b6f0 Use _attr_ in MQTT climate (#81406)
* Use _attr_ in MQTT climate

* Follow up comment

* Do not change code
2022-11-03 10:58:37 +01:00
Rami Mosleh
328eda044a Use DataUpdateCoordinator for glances (#72748)
* use DataUpdateCoordinator for glances

add tests to increase coverage

fix test_config_flow.py

fix codecov/patch

remove unused const, minor tweaks

remove invalid_auth test as it is not implemented

fix type hints

* change to async_forward_entry_setups

* Use Dataupdatecoordinator for glances

* minor fixex

* minor fixes

* minor fix

* remove support_versions const

* coe cleanup

* address comments

* fix sensor native_value

* Rename entry to entry_data in `get_api`

* Remove whitespace in sensor name
2022-11-03 10:02:25 +01:00
Raman Gupta
739ed6a6c8 Fix eight sleep client creation (#81440)
Fix eight sleep bug
2022-11-03 09:43:48 +01:00
Malte Franken
ee4d28000d Add integration_type to gdacs (#81451) 2022-11-03 09:32:40 +01:00
J. Nick Koston
adf35e5ec2 Skip flume devices with location missing (#81441)
fixes #81438
2022-11-03 08:51:08 +01:00
Jan
6bd8cf0072 Use 'kWh' as unit for 'IEC_ENERGY_COUNTER' (#81427)
The standard unit for the 'IEC_ENERGY_COUNTER' type is 'kWh' instead of 'Wh'
2022-11-03 08:27:46 +01:00
Austin Brunkhorst
28989754cd Update pysnooz to 0.8.3 (#81428) 2022-11-03 03:10:07 +01:00
GitHub Action
7995f0e414 [ci skip] Translation update 2022-11-03 00:28:45 +00:00
rappenze
1beab96946 Replace deprecated unit constants in fibaro sensor (#81425) 2022-11-02 23:02:44 +01:00
Jan Bouwhuis
bda7e416c4 Improve MQTT type hints part 2 (#80529)
* Improve typing camera

* Improve typing cover

* b64 encoding can be either bytes or a string.
2022-11-02 20:33:46 +01:00
Jan Bouwhuis
b4ad03784f Improve MQTT type hints part 1 (#80523)
* Improve typing alarm_control_panel

* Improve typing binary_sensor

* Improve typing button

* Add misssed annotation

* Move CONF_EXPIRE_AFTER to _setup_from_config

* Use CALL_BACK type

* Remove assert, improve code style
2022-11-02 20:33:18 +01:00
Bram Kragten
76819d81be Update frontend to 20221102.1 (#81422) 2022-11-02 20:25:31 +01:00
epenet
9afabc17ae Use attr in mqtt sensor (#81402) 2022-11-02 19:50:11 +01:00
epenet
d385a85ccb Cleanup schema validation in scrape sensor (#81419) 2022-11-02 18:46:03 +01:00
epenet
466365c8de Fix Renault charging power sensor (#81412) 2022-11-02 18:07:51 +01:00
Allen Porter
e1be63f26c Bump gcal_sync to 2.2.3 (#81414) 2022-11-02 17:57:23 +01:00
Poltorak Serguei
7af0f16f79 Rework Z-Wave.Me to group entities of one physical devices (#78553)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
2022-11-02 17:53:10 +01:00
G Johansson
93d74cafdc Fix late review comments for Scrape (#81259)
* Review comments from #74325

* Remove moved test

* Fix init

* Handle no data

* Remove print

* Fix tests

* PlatformNotReady if no data

* Recover failed platform setup

* Fix broken test

* patch context

* reset test init

* Move to platform

* asyncio gather

* Remove duplicate code
2022-11-02 17:52:36 +01:00
epenet
442c5ccc06 Use attr in mqtt fan (#81401)
* Use attr in mqtt fan

* Fix is_on
2022-11-02 16:25:18 +01:00
Rami Mosleh
fc3843f5e2 Add config flow to pushbullet (#74240)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-11-02 16:11:44 +01:00
Franck Nijhof
71920cd687 Update spotipy to 2.21.0 (#81395) 2022-11-02 15:02:09 +01:00
J. Nick Koston
ab14e55c05 Ensure we do not actually create a BleakScanner in the usage test (#81362)
Avoids a failure when bluetooth is turned off when
testing on macos:

bleak.exc.BleakError: Bluetooth device is turned off
2022-11-02 14:57:59 +01:00
Daniel Hjelseth Høyer
b2a4228dae Update adax library to 0.1.5 (#81407) 2022-11-02 14:50:38 +01:00
epenet
a255546e9d Use attr in mqtt binary sensor and switch (#81403) 2022-11-02 13:41:14 +01:00
epenet
7a930d7e79 Use attr in mqtt humidifier (#81400) 2022-11-02 13:39:36 +01:00
epenet
dd4b843d47 Use attr in mqtt number (#81399) 2022-11-02 13:39:21 +01:00
Paulus Schoutsen
a8c527f6f3 Add unit conversion for energy costs (#81379)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-11-02 12:18:50 +01:00
Bram Kragten
44f63252e7 Update frontend to 20221102.0 (#81405) 2022-11-02 11:52:19 +01:00
J. Nick Koston
f445b96a4e Bump aiohomekit to 2.2.13 (#81398) 2022-11-02 11:08:16 +01:00
Mike Degatano
0bfb0c25f6 Improve supervisor repairs (#81387)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-11-01 21:29:11 -04:00
J. Nick Koston
10aa1d386a Bump dbus-fast to 1.61.1 (#81386) 2022-11-01 20:52:13 -04:00
GitHub Action
697a81c4a3 [ci skip] Translation update 2022-11-02 00:30:01 +00:00
J. Nick Koston
054a271bd2 Bump aiohomekit to 2.2.12 (#81372)
* Bump aiohomekit to 2.2.12

Fixes a missing lock which was noticable on the esp32s
since they disconnect right away when you ask for gatt
notify.

https://github.com/Jc2k/aiohomekit/compare/2.2.11...2.2.12

* empty
2022-11-02 00:00:04 +02:00
Maciej Bieniek
329466d131 Enable strict typing for NextDNS (#81378) 2022-11-01 23:58:07 +02:00
J. Nick Koston
54df052699 Bump bleak-retry-connector to 2.8.2 (#81370)
* Bump bleak-retry-connector to 2.8.2

Tweaks for the esp32 proxies now that we have better error
reporting. This change improves the retry cases a bit with
the new https://github.com/esphome/esphome/pull/3971

* empty
2022-11-01 21:49:05 +01:00
J. Nick Koston
914ccdbc4f Fix unload race in unifiprotect tests (#81361) 2022-11-01 13:21:20 -05:00
Franck Nijhof
5c99e2e5d3 Improve error logging of WebSocket API (#81360) 2022-11-01 14:11:50 -04:00
puddly
b4637fae37 Bump zigpy-zigate to 0.10.3 (#81363) 2022-11-01 12:57:53 -05:00
J. Nick Koston
972b36b469 Adjust time to remove stale connectable devices from the esphome ble to closer match bluez (#81356) 2022-11-01 13:07:42 -04:00
J. Nick Koston
5b09ab93dc Immediately prefer advertisements from alternate sources when a scanner goes away (#81357) 2022-11-01 13:07:03 -04:00
J. Nick Koston
9be204629b Bump aiohomekit to 2.2.11 (#81358) 2022-11-01 16:44:58 +00:00
Jan Bouwhuis
db0785827f Revert "Do not write state if payload is ''" for MQTT sensor (#81347)
* Revert "Do not write state if payload is ''"

This reverts commit 869c11884e2b06d5f5cb5a8a4f78247a6972149e.

* Add test
2022-11-01 16:25:01 +01:00
Maciej Bieniek
509d5fd69d Lower log level for non-JSON payload in MQTT update (#81348)
Change log level
2022-11-01 15:57:48 +01:00
Joakim Plate
8d50b05d0d Add ability to set device class on knx sensor (#81278)
Add ability to set device class on sensor
2022-11-01 14:30:42 +01:00
David F. Mulcahey
5f1c92ce51 Fix individual LED range for ZHA device action (#81351)
The inovelli individual LED effect device action can address 7 LEDs. I had set the range 1-7 but it should be 0-6.
2022-11-01 09:06:55 -04:00
javicalle
514f619cff Tuya configuration for tuya_manufacturer cluster (#81311)
* Tuya configuration for tuya_manufacturer cluster

* fix codespell

* Add attributes initialization

* Fix pylint complaints
2022-11-01 08:51:20 -04:00
Shay Levy
f5f96535ad Bump aioshelly to 4.1.2 (#81342) 2022-11-01 12:53:44 +02:00
Franck Nijhof
e22f69ea8c Update Pillow to 9.3.0 (#81343) 2022-11-01 11:34:44 +02:00
Franck Nijhof
9dd6d5d0ab Fix power/energy mixup in Youless (#81345) 2022-11-01 10:17:01 +01:00
Ron Klinkien
3afef1f8fe Add task id attribute to fireservicerota sensor (#81323) 2022-11-01 10:10:30 +01:00
Allen Porter
2b935564c2 Bump gcal_sync to 2.2.2 and fix recurring event bug (#81339)
* Bump gcal_sync to 2.2.2 and fix recurring event bug

* Bump to 2.2.2
2022-11-01 11:08:36 +02:00
Maciej Bieniek
16beed2565 Always use Celsius in Shelly integration (#80842) 2022-11-01 09:29:38 +01:00
Willem-Jan van Rootselaar
ed2696f03e Bump python-bsblan to version 0.5.7 (#81330) 2022-11-01 09:28:02 +01:00
TheJulianJES
52fe40d539 Only try initializing Hue motion LED on endpoint 2 with ZHA (#81205) 2022-10-31 21:22:21 -04:00
J. Nick Koston
eea4719544 Fix Yale Access Bluetooth not being available again after being unavailable (#81320) 2022-10-31 21:21:40 -04:00
J. Nick Koston
d87ca0b099 Improve esphome bluetooth error reporting (#81326) 2022-10-31 21:21:11 -04:00
GitHub Action
0bca9a614c [ci skip] Translation update 2022-11-01 00:33:48 +00:00
On Freund
009d5aedd5 Extract bypassed attribute in Risco zones to a switch (#81137)
* Split bypassed to a switch

* Address code review comments
2022-11-01 00:29:00 +01:00
On Freund
f8de4c3931 Reauth flow for Risco cloud (#81264)
* Risco reauth flow

* Address code review comments

* Remove redundant log
2022-10-31 23:01:22 +01:00
Bram Kragten
4a9859bf54 Update frontend to 20221031.0 (#81324) 2022-10-31 20:42:18 +01:00
Aidan Timson
d6689937a3 Add integration type to OVO Energy (#81187) 2022-10-31 20:42:02 +01:00
Aidan Timson
8044b9587a Add integration type to System Bridge (#81186) 2022-10-31 20:41:12 +01:00
Franck Nijhof
c08848b22e Update base image to 2022.10.0 (#81317) 2022-10-31 20:36:59 +01:00
J. Nick Koston
82e90587c7 Bump oralb-ble to 0.10.0 (#81315) 2022-10-31 19:38:57 +01:00
J. Nick Koston
3764f7d95b Bump zeroconf to 0.39.4 (#81313) 2022-10-31 12:35:43 -05:00
J. Nick Koston
4f5aad9d6d Bump aiohomekit to 2.2.10 (#81312) 2022-10-31 12:29:12 -05:00
epenet
94e2646c87 Implement reauth_confirm in fireservicerota (#77487) 2022-10-31 15:56:13 +01:00
epenet
fee3898f64 Use _attr_is_on in rest (#81305) 2022-10-31 15:36:43 +01:00
epenet
a0ed91e30c Add type hints to rest tests (#81304) 2022-10-31 15:30:29 +01:00
Mike Degatano
82151bfd40 Create repairs for unsupported and unhealthy (#80747) 2022-10-31 09:57:54 -04:00
J. Nick Koston
1589c06203 Significantly reduce clock_gettime syscalls on platforms with broken vdso (#81257) 2022-10-31 09:35:08 -04:00
J. Nick Koston
8416cc1906 Try to switch to a different esphome BLE proxy if we run out of slots while connecting (#81268) 2022-10-31 09:27:04 -04:00
J. Nick Koston
5ba3b499fe Bump dbus-fast to 1.60.0 (#81296) 2022-10-31 09:18:49 -04:00
epenet
fbc8f0a2cf Improve type hints in rest integration (#81291) 2022-10-31 14:06:09 +01:00
Franck Nijhof
be68412c64 Update pytest to 7.2.0 (#81295) 2022-10-31 13:26:05 +01:00
epenet
283f8585b8 Adjust scrape coordinator logging (#81299) 2022-10-31 13:21:37 +01:00
Josh Anderson
dd092d86d4 Update supported and deprecated IBM Watson voices (#81247) 2022-10-31 13:19:52 +01:00
Tobias Sauerwein
927b8b2eef Bump pyatmo to 7.3.0 (#81290)
* Bump pyatmo to 7.3.0

* Update test fixture data and tests
2022-10-31 11:09:15 +01:00
Maciej Bieniek
ae2419b569 Add support for PMSx003 sensors in NAM integration (#81289)
* Add support for PMSx003

* Organize the order of tests
2022-10-31 10:22:45 +01:00
Chris Talkington
47a0f89ada Bump pyipp to 0.12.1 (#81287)
bump pyipp to 0.12.1
2022-10-31 09:23:05 +01:00
J. Nick Koston
8db7afb2e0 Include esphome device name in BLE logs (#81284)
* Include esphome device name in BLE logs

This makes it easier to debug what is going on when there
are multiple esphome proxies

* revert unintended change
2022-10-31 00:31:37 -05:00
J. Nick Koston
1bdd8fff44 Bump bleak-retry-connector to 2.8.1 (#81285)
* Bump bleak-retry-connector to 2.8.1

reduces logging now that we have found the problem
with esphome devices not disconnecting ble devices
after timeout

changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.0...v2.8.1

* empty
2022-10-31 00:28:38 -05:00
aschmitz
a766b41b13 Add basic Aranet integration (#80865) 2022-10-30 22:50:46 -05:00
J. Nick Koston
ccefc510c3 Do not fire the esphome ble disconnected callback if we were not connected (#81286) 2022-10-30 22:10:30 -05:00
J. Nick Koston
1d94fbb176 Bump bleak-retry-connector to 2.8.0 (#81283) 2022-10-30 20:40:01 -05:00
J. Nick Koston
e709b74c3f Bump aioesphomeapi to 11.4.1 (#81282) 2022-10-30 20:39:34 -05:00
GitHub Action
e636169878 [ci skip] Translation update 2022-10-31 00:32:43 +00:00
J. Nick Koston
4fb6fa9cca Bump bleak-retry-connector to 2.7.0 (#81280) 2022-10-30 19:24:32 -05:00
J. Nick Koston
7e47aff316 Bump aioesphomeapi to 11.4.0 (#81277) 2022-10-30 19:24:14 -05:00
Tobias Sauerwein
4899f1d632 Revert 81271 (#81275) 2022-10-30 18:27:12 -05:00
J. Nick Koston
c8a3392471 Move esphome gatt services cache to be per device (#81265) 2022-10-30 18:02:54 -05:00
J. Nick Koston
11d7e1e45f Provide a human readable error when an esphome ble proxy connection fails (#81266) 2022-10-30 17:43:09 -05:00
J. Nick Koston
1106df158d Bump bleak-retry-connector to 2.6.0 (#81270) 2022-10-30 17:38:09 -05:00
Allen Porter
ba8fd6b01e Google calendar test cleanup, avoiding dupe config entry setup (#81256) 2022-10-30 23:07:10 +01:00
Tobias Sauerwein
03f74b3234 Bump pyatmo to 7.3.0 (#81271) 2022-10-30 22:46:16 +01:00
Maciej Bieniek
ec038835f6 Catch ApiError while checking credentials in NAM integration (#81243)
* Catch ApiError while checking credentials

* Update tests

* Suggested change
2022-10-30 20:01:10 +01:00
Stackie Jia
a1eec7b55d Expose NO2 and VOCs sensors to homekit (#81217)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-30 11:33:06 -05:00
Pascal Reeb
5d282db439 Handle HTTPError on nuki integration (#80801)
fix(nuki): handle requests errors
2022-10-30 08:36:19 -07:00
J. Nick Koston
225be6fc2e Bump aiohomekit to 2.2.9 (#81254) 2022-10-30 10:35:39 -05:00
Jc2k
eb76f9b3cb Set the correct state class for Eve Energy in homekit_controller (#81255) 2022-10-30 10:32:19 -05:00
Jafar Atili
d5a46c3a10 Bump pyswitchbee to 1.6.1 (#81067)
* Bumped pyswitchbee to 1.6.0

* library typing fix
2022-10-30 16:06:00 +01:00
Tobias Sauerwein
df29a8388d Make Netatmo/Legrande/BTicino lights and switches optimistic (#81246)
* Make Netatmo lights optimistic

* Same for switches
2022-10-30 13:27:42 +01:00
G Johansson
662aee17a6 Scrape move yaml config to integration key (#74325)
* Scrape take 2

* cleanup

* new entity name

* Fix name, add tests

* Use FlowResultType

* Add test abort

* issue

* hassfest

* Remove not needed test

* clean

* Remove config entry and implement datacoordinator

* fix codeowners

* fix codeowners

* codeowners reset

* Fix coordinator

* Remove test config_flow

* Fix tests

* hassfest

* reset config flow

* reset strings

* reset sensor

* next version

* Reconfig

* Adjust sensor

* cleanup sensor

* cleanup init

* Fix tests

* coverage

* Guard against empty sensor

* naming

* Remove coverage

* Review comments

* Remove print

* Move sensor check
2022-10-30 13:02:11 +01:00
Rami Mosleh
06773efcbd Deprecate name key in Transmission services (#78577)
* Use entry_id instead of name in Transmission services

* fix return type for _get_client

* address comments

* combine conditions
2022-10-30 12:00:47 +01:00
J. Nick Koston
d9d6902803 Bump dbus-fast to 1.59.1 (#81229)
* Bump dbus-fast to 1.59.1

fixes incorrect logging of an exception when it was already handled

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.59.0...v1.59.1

* empty
2022-10-30 11:32:57 +01:00
epenet
2c190cf323 Add integration_type to renault (#81099) 2022-10-30 08:27:47 +01:00
Raj Laud
dd8b4e2a9b Fix Squeezebox media browsing (#81197)
* Squeezebox media browser fix icons

* Update pysqueezebox to 0.6.1
2022-10-30 06:23:46 +01:00
mezz64
52f592a7d9 Bump pyHik to 0.3.1 (#81173)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-30 06:13:54 +01:00
GitHub Action
1c7800c224 [ci skip] Translation update 2022-10-30 00:32:36 +00:00
G Johansson
6e69c57ef5 Code Quality for Wake on Lan (#81206)
Wake on Lan cleanup
2022-10-29 18:05:18 -04:00
Tobias Sauerwein
f10b36873a Mute superfluous exception when no Netatmo webhook is to be dropped (#81221)
* Mute superfluous exception when no webhook is to be droped

* Update homeassistant/components/netatmo/__init__.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-10-29 18:04:01 -04:00
Guido Schmitz
b043406b74 Fix Danfoss thermostat support in devolo Home Control (#81200)
Fix Danfoss thermostat
2022-10-29 17:51:53 -04:00
Kevin Stillhammer
782148423c Add missing string for option traffic_mode for google_travel_time (#81213)
Add missing string for option traffic_mode
2022-10-29 17:51:11 -04:00
Tobias Sauerwein
833d271eb3 Add missing Netatmo config url for public weather (#81220)
Add missing config url for public weather
2022-10-29 17:50:34 -04:00
Tobias Sauerwein
82f03f6089 Add integration_type to netatmo (#81225) 2022-10-29 17:47:35 -04:00
Vincent Knoop Pathuis
a2c38b9d04 Bump ultraheat api to version 0.5.1 (#81194) 2022-10-29 23:23:09 +02:00
Garrett
494cbf0dbe Add diagnostics to Subaru integration (#81169)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-29 15:02:32 -05:00
J. Nick Koston
7f047cf95c Bump dbus-fast to 1.59.0 (#81215)
* Bump dbus-fast to 1.59.0

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.58.0...v1.59.0

* empty
2022-10-29 15:06:17 -04:00
J. Nick Koston
208150c353 Restore homekit_controller BLE broadcast_key from disk (#81211)
* Restore homekit_controller BLE broadcast_key from disk

Some accessories will sleep for a long time and only send broadcasted
events which makes them have very long connection intervals to save
battery. Since we need to connect to get a new broadcast key we now
save the broadcast key between restarts to ensure we can decrypt
the advertisments coming in even though we cannot make a connection
to the device during startup. When we get a disconnected event later
we will try again to connect and the device will be awake which will
trigger a full sync

* bump bump
2022-10-29 15:05:59 -04:00
Paulus Schoutsen
770aefbd52 SSDP to allow more URLs (#81171)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-29 14:26:12 -04:00
Menco Bolt
871c1bc952 Today's Consumption is INCREASING (#81204)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-10-29 14:25:46 -04:00
J. Nick Koston
ccfa314e87 Update to bleak 0.19.1 and bleak-retry-connector 2.5.0 (#81198) 2022-10-29 14:25:35 -04:00
J. Nick Koston
91efe68cdd Bump dbus-fast to 1.58.0 (#81195) 2022-10-29 14:22:46 -04:00
G Johansson
7bd89621ce Change IoT Class for Min/Max to calculated (#81199) 2022-10-29 14:21:28 -04:00
rappenze
b16094b93f Add integration type to fibaro integration (#81202) 2022-10-29 18:53:50 +02:00
René Klomp
26d174adae Bump pysma to 0.7.2 (#81188) 2022-10-29 10:04:05 -05:00
Maciej Bieniek
19debda059 Bump nettigo-air-monitor to 1.5.0 (#81183)
* Bump NAM library

* Update tests
2022-10-29 14:43:02 +02:00
Brian Norman
74e476a070 Add optional support for users with multiple ovo accounts (#80901)
* Added optional support for users with multiple ovo accounts

* Made changes from code review around naming

* Renaming config variable

* Removing account from async_step_reauth

* Removing more account from async_step_reauth

* Fixing code now I better understand and can test async_step_reauth

* Storing account id returned by ovoenergy client in config to handle when user has single account but then another gets added

* Putting account into async_step_user
2022-10-29 13:45:00 +02:00
Jan Bouwhuis
591d13bc49 Move MQTT CONF_SCHEMA from light and vacuum to .const (#81152)
Move CONF_SCHEMA to .const
2022-10-29 10:22:59 +02:00
J. Nick Koston
effe8d9207 Bump dbus-fast to 1.56.0 (#81177)
* Bump dbus-fast to 1.56.0

Addes optimized readers for manufacturer data
and interfaces added messages

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.55.0...v1.56.0

* empty
2022-10-29 09:40:40 +02:00
mezz64
482b5459dc Bump pyEight to 0.3.2 (#81172)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-29 09:09:12 +02:00
Mick Vleeshouwer
1d9bbdcbf3 Add integration type to Overkiz integration (#81147) 2022-10-29 08:33:04 +02:00
Paulus Schoutsen
a786b32857 Set date in test to fixed one (#81175) 2022-10-28 23:58:02 -04:00
Shay Levy
9dedbb2a24 Add diagnostics to Switcher (#81146) 2022-10-28 22:05:21 -04:00
Kevin Stillhammer
77585686e0 Allow empty string for filters for waze_travel_time (#80953)
* Allow empty string for filters

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

* Apply PR feedback

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-10-28 21:01:53 -04:00
J. Nick Koston
e47f06fde8 Bump dbus-fast to 1.54.0 (#81148)
* Bump dbus-fast to 1.53.0

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.51.0...v1.53.0

* 54
2022-10-28 21:01:03 -04:00
GitHub Action
4b5de420ed [ci skip] Translation update 2022-10-29 00:24:41 +00:00
muppet3000
08b3df56a0 Growatt version bump - fixes #80950 (#81161) 2022-10-28 18:32:57 -04:00
J. Nick Koston
674655bf7d Bump oralb-ble to 0.9.0 (#81166)
* Bump oralb-ble to 0.9.0

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.8.0...v0.9.0

* empty
2022-10-28 18:32:38 -04:00
puddly
6479001501 Bump zigpy to 0.51.5 (#81164)
Bump zigpy from 0.51.4 to 0.51.5
2022-10-28 18:31:53 -04:00
J. Nick Koston
5c521a4c0e Bump aiohomekit to 2.2.7 (#81163)
changelog: https://github.com/Jc2k/aiohomekit/compare/2.2.6...2.2.7
2022-10-28 18:31:30 -04:00
Robert Hillis
6225f1f737 Bump aiopyarr to 22.10.0 (#81153) 2022-10-28 17:25:44 -05:00
javicalle
4dbb265590 Fix RFLink unit conversions (#79436)
* Fix unit conversions

* Fix tests

* Address requests changes

* Address requests changes

* Address requests changes

* Address requests changes

* migrate to SensorEntityDescription

* forgotten test

* forgotten test

* chango to WIND_SPEED

* manage UOM

* fix test

* address comments

* fix implementation

* prevent from mutate config
2022-10-29 00:20:26 +02:00
J. Nick Koston
b7a651519b Bump aiohomekit to 2.2.6 (#81144) 2022-10-28 12:05:48 -05:00
Shay Levy
5cf4483df5 Fix Shelly Plus H&T sleep period on external power state change (#81121) 2022-10-28 19:48:27 +03:00
Jan Bouwhuis
bcae6d604e Improve MQTT type hints part 8 (#81034)
* Improve typing device_tracker discovery

* Improve typing device_tracker yaml

* Add test source_type attribute

* Follow up comment

* Initialize at `__init__` not at class level.

* Use full name for return variable

* Correct import, remove assert

* Use AsyncSeeCallback
2022-10-28 18:20:33 +02:00
epenet
2214fff3b4 Cleanup device_tracker imports (#81139) 2022-10-28 17:40:37 +02:00
Maciej Bieniek
11ea834cbe Improve MQTT update platform (#81131)
* Allow JSON as state_topic payload

* Add title

* Add release_url

* Add release_summary

* Add entity_picture

* Fix typo

* Add abbreviations
2022-10-28 17:05:43 +02:00
epenet
b39ff4a020 Expose device_tracker base entities (#81135)
* Expose TrackerEntity in device_tracker

* Also expose BaseTrackerEntity

* Add ScannerEntity

* Revert BaseTrackerEntity
2022-10-28 15:21:06 +02:00
Shay Levy
a34148104a Add diagnostics to webostv (#81133) 2022-10-28 14:48:16 +02:00
Thibaut
2bce44c4d7 Bump pyoverkiz to 1.5.6 (#81129) 2022-10-28 13:02:33 +02:00
Dave T
67644f4bc5 Remove unused strings from generic camera (#80796)
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-10-28 12:35:09 +02:00
J. Nick Koston
16ac063b71 Bump oralb-ble to 0.8.0 (#81123) 2022-10-28 12:31:50 +02:00
epenet
30fe4826ff Refactor Scrape sensor to inherit TemplateSensor (#81130) 2022-10-28 11:55:53 +02:00
Jan Bouwhuis
f10f74a65a Add default source_type for MQTT device_tracker (#81128)
Make sure the source_type is set - default to gps
2022-10-28 10:49:01 +02:00
Glenn Waters
5eb3473d41 Add diagnostics to Environment Canada integration (#79517)
* Add diagnostics to EC integration.

* Add test for diagnostics.

* Simplify diagnostics returned.

* Fix for comment.

* Update datetime to fixed date.
2022-10-28 06:38:11 +02:00
GitHub Action
f399385147 [ci skip] Translation update 2022-10-28 00:30:47 +00:00
Bram Kragten
c7d342a719 Update frontend to 20221027.0 (#81114) 2022-10-27 23:13:43 +02:00
Matthias Alphart
428a33c00f Migrate KNX to use kelvin for color temperature (#81112) 2022-10-27 16:00:34 -04:00
Erik Montnemery
68346599d2 Add WS API recorder/statistic_during_period (#80663) 2022-10-27 15:51:09 -04:00
J. Nick Koston
588277623f Bump dbus-fast to 1.51.0 (#81109) 2022-10-27 15:38:53 -04:00
J. Nick Koston
c21fb222f9 Add support for oralb IO Series 4 (#81110) 2022-10-27 15:38:42 -04:00
Tobias Sauerwein
fa350b984a Clean up superfluous Netatmo API calls (#81095) 2022-10-27 14:42:16 -04:00
Willem-Jan van Rootselaar
b490f47334 Bump python-bsblan to 0.5.6 (#80956)
* Bump python-bsblan to 0.5.6

* update requirements
2022-10-27 19:25:14 +03:00
epenet
60b3c36775 Add integration_type to onewire (#81097) 2022-10-27 19:19:45 +03:00
epenet
7feb463a4c Add integration_type to samsungtv (#81101) 2022-10-27 19:18:09 +03:00
epenet
663c2ef993 Cleanup scrape constants (#81076)
* Cleanup scrape constants

* Adjust comments

* Revert removal of DEFAULT_VERIFY_SSL constant
2022-10-27 18:11:40 +02:00
epenet
3d42a46871 Align Scrape resource model with Rest integration (#81074) 2022-10-27 17:48:35 +02:00
Tobias Sauerwein
dbd875cd25 Bring back Netatmo force update code (#81098) 2022-10-27 11:37:52 -04:00
Michał Huryn
147fe6f856 Update blebox_uniapi to 2.1.3 (#81071)
fix: #80124 blebox_uniapi dependency version bump
2022-10-27 14:12:51 +02:00
Franck Nijhof
7df8ad5c66 Update sentry-sdk to 1.10.1 (#81072) 2022-10-27 11:43:05 +02:00
Aaron Bach
fe4da8d584 Remove previously-deprecated SimpliSafe service (#81054) 2022-10-27 10:39:57 +02:00
Aaron Bach
d72b8a025f Remove previously-deprecated RainMachine sensors (#81053) 2022-10-27 10:25:07 +02:00
Aaron Bach
4e8e53f357 Remove previously-deprecated OpenUV services (#81055) 2022-10-27 10:22:44 +02:00
Aaron Bach
1967ce67d7 Remove previously-deprecated Guardian services and binary sensor (#81056) 2022-10-27 10:19:07 +02:00
Sean Vig
7213102c51 Update pymonoprice version to 0.4.0 (#81062)
Update pymonoprice version
2022-10-27 09:31:51 +02:00
J. Nick Koston
44e368ad55 Bump nexia to 2.0.5 (#81061)
fixes #80988
2022-10-27 07:38:03 +02:00
mezz64
24ab6fc31d Eight Sleep catch missing keys (#81058)
Catch missing keys
2022-10-27 01:37:48 -04:00
shbatm
e785d04abf Add RainMachine config option to use default run times from app (#80984) 2022-10-26 22:27:08 -06:00
Avi Miller
f9c16fab1a Bump aiolifx-themes to 0.2.0 (#81059) 2022-10-26 23:01:15 -05:00
puddly
91c6892001 Bump zigpy to 0.51.4 (#81050)
Bump zigpy from 0.51.3 to 0.51.4
2022-10-26 21:47:38 -04:00
puddly
b8edc86500 Handle sending ZCL commands with empty bitmap options (#81051)
Handle sending commands with empty bitmaps
2022-10-26 21:29:48 -04:00
GitHub Action
ce1b56e345 [ci skip] Translation update 2022-10-27 00:30:06 +00:00
J. Nick Koston
6e19629539 Bump zeroconf to 0.39.3 (#81049) 2022-10-27 01:03:13 +02:00
J. Nick Koston
28b3d1fc7a Bump aiohomekit to 2.2.5 (#81048) 2022-10-26 17:05:09 -05:00
Franck Nijhof
cee7b788d4 Bump version to 2022.12.0dev0 (#81044) 2022-10-26 23:44:38 +02:00
J. Nick Koston
d381be3868 Fix homekit diagnostics test when version changes (#81046) 2022-10-26 22:50:59 +02:00
4158 changed files with 98141 additions and 34083 deletions

View File

@@ -38,6 +38,7 @@ base_platforms: &base_platforms
- homeassistant/components/siren/**
- homeassistant/components/stt/**
- homeassistant/components/switch/**
- homeassistant/components/text/**
- homeassistant/components/tts/**
- homeassistant/components/update/**
- homeassistant/components/vacuum/**

View File

@@ -35,6 +35,8 @@ omit =
homeassistant/components/agent_dvr/helpers.py
homeassistant/components/airnow/__init__.py
homeassistant/components/airnow/sensor.py
homeassistant/components/airq/__init__.py
homeassistant/components/airq/sensor.py
homeassistant/components/airthings/__init__.py
homeassistant/components/airthings/sensor.py
homeassistant/components/airthings_ble/__init__.py
@@ -232,8 +234,6 @@ omit =
homeassistant/components/dlib_face_detect/image_processing.py
homeassistant/components/dlib_face_identify/image_processing.py
homeassistant/components/dlink/switch.py
homeassistant/components/dnsip/__init__.py
homeassistant/components/dnsip/sensor.py
homeassistant/components/dominos/*
homeassistant/components/doods/*
homeassistant/components/doorbird/__init__.py
@@ -455,7 +455,7 @@ omit =
homeassistant/components/github/sensor.py
homeassistant/components/gitlab_ci/sensor.py
homeassistant/components/gitter/sensor.py
homeassistant/components/glances/__init__.py
homeassistant/components/glances/const.py
homeassistant/components/glances/sensor.py
homeassistant/components/goalfeed/*
homeassistant/components/goodwe/__init__.py
@@ -471,7 +471,9 @@ omit =
homeassistant/components/greenwave/light.py
homeassistant/components/group/notify.py
homeassistant/components/growatt_server/__init__.py
homeassistant/components/growatt_server/const.py
homeassistant/components/growatt_server/sensor.py
homeassistant/components/growatt_server/sensor_types/*
homeassistant/components/gstreamer/media_player.py
homeassistant/components/gtfs/sensor.py
homeassistant/components/guardian/__init__.py
@@ -483,11 +485,6 @@ omit =
homeassistant/components/habitica/__init__.py
homeassistant/components/habitica/const.py
homeassistant/components/habitica/sensor.py
homeassistant/components/hangouts/__init__.py
homeassistant/components/hangouts/hangouts_bot.py
homeassistant/components/hangouts/hangups_utils.py
homeassistant/components/hangouts/intents.py
homeassistant/components/hangouts/notify.py
homeassistant/components/harman_kardon_avr/media_player.py
homeassistant/components/harmony/const.py
homeassistant/components/harmony/data.py
@@ -676,8 +673,8 @@ omit =
homeassistant/components/lcn/services.py
homeassistant/components/led_ble/__init__.py
homeassistant/components/led_ble/light.py
homeassistant/components/led_ble/util.py
homeassistant/components/lg_netcast/media_player.py
homeassistant/components/lg_soundbar/__init__.py
homeassistant/components/lg_soundbar/media_player.py
homeassistant/components/lidarr/__init__.py
homeassistant/components/lidarr/coordinator.py
@@ -729,6 +726,9 @@ omit =
homeassistant/components/map/*
homeassistant/components/mastodon/notify.py
homeassistant/components/matrix/*
homeassistant/components/matter/__init__.py
homeassistant/components/matter/adapter.py
homeassistant/components/matter/entity.py
homeassistant/components/meater/__init__.py
homeassistant/components/meater/const.py
homeassistant/components/meater/sensor.py
@@ -951,6 +951,8 @@ omit =
homeassistant/components/overkiz/sensor.py
homeassistant/components/overkiz/siren.py
homeassistant/components/overkiz/switch.py
homeassistant/components/overkiz/water_heater.py
homeassistant/components/overkiz/water_heater_entities/*
homeassistant/components/ovo_energy/__init__.py
homeassistant/components/ovo_energy/const.py
homeassistant/components/ovo_energy/sensor.py
@@ -960,6 +962,7 @@ omit =
homeassistant/components/pencom/switch.py
homeassistant/components/philips_js/__init__.py
homeassistant/components/philips_js/diagnostics.py
homeassistant/components/philips_js/helpers.py
homeassistant/components/philips_js/light.py
homeassistant/components/philips_js/media_player.py
homeassistant/components/philips_js/remote.py
@@ -999,6 +1002,7 @@ omit =
homeassistant/components/proxmoxve/*
homeassistant/components/proxy/camera.py
homeassistant/components/pulseaudio_loopback/switch.py
homeassistant/components/pushbullet/api.py
homeassistant/components/pushbullet/notify.py
homeassistant/components/pushbullet/sensor.py
homeassistant/components/pushover/notify.py
@@ -1107,13 +1111,6 @@ omit =
homeassistant/components/sesame/lock.py
homeassistant/components/seven_segments/image_processing.py
homeassistant/components/seventeentrack/sensor.py
homeassistant/components/shelly/binary_sensor.py
homeassistant/components/shelly/climate.py
homeassistant/components/shelly/coordinator.py
homeassistant/components/shelly/entity.py
homeassistant/components/shelly/number.py
homeassistant/components/shelly/sensor.py
homeassistant/components/shelly/utils.py
homeassistant/components/shiftr/*
homeassistant/components/shodan/sensor.py
homeassistant/components/sia/__init__.py
@@ -1147,6 +1144,7 @@ omit =
homeassistant/components/skybell/switch.py
homeassistant/components/slack/__init__.py
homeassistant/components/slack/notify.py
homeassistant/components/slack/sensor.py
homeassistant/components/slide/*
homeassistant/components/slimproto/__init__.py
homeassistant/components/slimproto/media_player.py
@@ -1574,6 +1572,7 @@ omit =
homeassistant/components/yolink/coordinator.py
homeassistant/components/yolink/cover.py
homeassistant/components/yolink/entity.py
homeassistant/components/yolink/light.py
homeassistant/components/yolink/lock.py
homeassistant/components/yolink/sensor.py
homeassistant/components/yolink/siren.py

View File

@@ -9,7 +9,6 @@ docs
.vscode
# Test related files
.tox
tests
# Other virtualization methods

13
.github/move.yml vendored
View File

@@ -1,13 +0,0 @@
# Configuration for move-issues - https://github.com/dessant/move-issues
# Delete the command comment. Ignored when the comment also contains other content
deleteCommand: true
# Close the source issue after moving
closeSourceIssue: true
# Lock the source issue after moving
lockSourceIssue: false
# Set custom aliases for targets
# aliases:
# r: repo
# or: owner/repo

View File

@@ -159,7 +159,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.09.0
uses: home-assistant/builder@2022.11.0
with:
args: |
$BUILD_ARGS \
@@ -225,7 +225,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.09.0
uses: home-assistant/builder@2022.11.0
with:
args: |
$BUILD_ARGS \

View File

@@ -22,7 +22,7 @@ on:
env:
CACHE_VERSION: 3
PIP_CACHE_VERSION: 3
HA_SHORT_VERSION: 2022.11
HA_SHORT_VERSION: 2022.12
DEFAULT_PYTHON: 3.9
ALL_PYTHON_VERSIONS: "['3.9', '3.10']"
PRE_COMMIT_CACHE: ~/.cache/pre-commit
@@ -842,7 +842,6 @@ jobs:
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--durations=10 \
-n auto \
--cov="homeassistant.components.${{ matrix.group }}" \
--cov-report=xml \
@@ -936,7 +935,7 @@ jobs:
. venv/bin/activate
pip install mysqlclient sqlalchemy_utils
- name: Run pytest (partially)
timeout-minutes: 10
timeout-minutes: 15
shell: bash
run: |
. venv/bin/activate
@@ -944,14 +943,13 @@ jobs:
python3 -X dev -m pytest \
-qq \
--timeout=9 \
--timeout=20 \
-n 1 \
--cov="homeassistant.components.recorder" \
--cov-report=xml \
--cov-report=term-missing \
-o console_output_style=count \
--durations=0 \
--durations-min=10 \
--durations=10 \
-p no:sugar \
--dburl=mysql://root:password@127.0.0.1/homeassistant-test \
tests/components/recorder

1
.gitignore vendored
View File

@@ -58,7 +58,6 @@ pip-log.txt
# Unit test / coverage reports
.coverage
.tox
coverage.xml
nosetests.xml
htmlcov/

View File

@@ -1,9 +1,16 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v3.1.0
rev: v3.2.2
hooks:
- id: pyupgrade
args: [--py39-plus]
- repo: https://github.com/PyCQA/autoflake
rev: v2.0.0
hooks:
- id: autoflake
args:
- --in-place
- --remove-all-unused-imports
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
@@ -13,27 +20,27 @@ repos:
- --quiet
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
- repo: https://github.com/codespell-project/codespell
rev: v2.1.0
rev: v2.2.2
hooks:
- id: codespell
args:
- --ignore-words-list=hass,alot,datas,dof,dur,ether,farenheit,hist,iff,iif,ines,ist,lightsensor,mut,nd,pres,referer,rime,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing,iam,incomfort,ba,haa,pullrequests
- --ignore-words-list=additionals,alot,ba,bre,bund,datas,dof,dur,ether,farenheit,falsy,fo,haa,hass,hist,iam,iff,iif,incomfort,ines,ist,lightsensor,mut,nam,nd,pres,pullrequests,referer,resset,rime,ser,serie,sur,te,technik,ue,uint,unsecure,visability,wan,wanna,withing,zar
- --skip="./.*,*.csv,*.json"
- --quiet-level=2
exclude_types: [csv, json]
exclude: ^tests/fixtures/|homeassistant/generated/
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
rev: 6.0.0
hooks:
- id: flake8
additional_dependencies:
- pycodestyle==2.8.0
- pyflakes==2.4.0
- pycodestyle==2.10.0
- pyflakes==3.0.1
- flake8-docstrings==1.6.0
- pydocstyle==6.1.1
- flake8-comprehensions==3.10.0
- flake8-noqa==1.2.8
- mccabe==0.6.1
- flake8-comprehensions==3.10.1
- flake8-noqa==1.3.0
- mccabe==0.7.0
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.7.4
@@ -65,7 +72,7 @@ repos:
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.6.1
rev: v2.7.1
hooks:
- id: prettier
- repo: https://github.com/cdce8p/python-typing-update

View File

@@ -5,14 +5,10 @@
# Strict typing is enabled by default for core files.
# Add it here to add 'disallow_any_generics'.
# --- Only for core file! ---
homeassistant.exceptions
homeassistant.core
homeassistant.loader
homeassistant.requirements
homeassistant.runner
homeassistant.setup
homeassistant.auth.auth_store
homeassistant.auth.providers.*
homeassistant.core
homeassistant.exceptions
homeassistant.helpers.area_registry
homeassistant.helpers.condition
homeassistant.helpers.debounce
@@ -29,6 +25,10 @@ homeassistant.helpers.script_variables
homeassistant.helpers.singleton
homeassistant.helpers.sun
homeassistant.helpers.translation
homeassistant.loader
homeassistant.requirements
homeassistant.runner
homeassistant.setup
homeassistant.util.async_
homeassistant.util.color
homeassistant.util.decorator
@@ -79,13 +79,14 @@ homeassistant.components.button.*
homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.clickatell.*
homeassistant.components.clicksend.*
homeassistant.components.cover.*
homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*
homeassistant.components.deconz.*
homeassistant.components.demo.*
homeassistant.components.derivative.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
@@ -151,6 +152,7 @@ homeassistant.components.http.*
homeassistant.components.huawei_lte.*
homeassistant.components.hyperion.*
homeassistant.components.ibeacon.*
homeassistant.components.image.*
homeassistant.components.image_processing.*
homeassistant.components.input_button.*
homeassistant.components.input_select.*
@@ -173,17 +175,21 @@ homeassistant.components.litterrobot.*
homeassistant.components.local_ip.*
homeassistant.components.lock.*
homeassistant.components.logbook.*
homeassistant.components.logger.*
homeassistant.components.lookin.*
homeassistant.components.luftdaten.*
homeassistant.components.mailbox.*
homeassistant.components.matter.*
homeassistant.components.media_player.*
homeassistant.components.media_source.*
homeassistant.components.metoffice.*
homeassistant.components.mikrotik.*
homeassistant.components.min_max.*
homeassistant.components.mjpeg.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
homeassistant.components.moon.*
homeassistant.components.mqtt.*
homeassistant.components.mysensors.*
homeassistant.components.nam.*
homeassistant.components.nanoleaf.*
@@ -191,6 +197,7 @@ homeassistant.components.neato.*
homeassistant.components.nest.*
homeassistant.components.netatmo.*
homeassistant.components.network.*
homeassistant.components.nextdns.*
homeassistant.components.nfandroidtv.*
homeassistant.components.nissan_leaf.*
homeassistant.components.no_ip.*
@@ -213,9 +220,9 @@ homeassistant.components.prusalink.*
homeassistant.components.pure_energie.*
homeassistant.components.pvoutput.*
homeassistant.components.qnap_qsw.*
homeassistant.components.radarr.*
homeassistant.components.rainmachine.*
homeassistant.components.rdw.*
homeassistant.components.radarr.*
homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remote.*
@@ -228,12 +235,14 @@ homeassistant.components.rituals_perfume_genie.*
homeassistant.components.roku.*
homeassistant.components.rpi_power.*
homeassistant.components.rtsp_to_webrtc.*
homeassistant.components.ruuvitag_ble.*
homeassistant.components.samsungtv.*
homeassistant.components.scene.*
homeassistant.components.schedule.*
homeassistant.components.select.*
homeassistant.components.senseme.*
homeassistant.components.sensibo.*
homeassistant.components.sensirion_ble.*
homeassistant.components.sensor.*
homeassistant.components.senz.*
homeassistant.components.shelly.*
@@ -283,6 +292,7 @@ homeassistant.components.vacuum.*
homeassistant.components.vallox.*
homeassistant.components.velbus.*
homeassistant.components.vlc_telnet.*
homeassistant.components.wake_on_lan.*
homeassistant.components.wallbox.*
homeassistant.components.water_heater.*
homeassistant.components.watttime.*

View File

@@ -45,6 +45,8 @@ build.json @home-assistant/supervisor
/tests/components/airly/ @bieniu
/homeassistant/components/airnow/ @asymworks
/tests/components/airnow/ @asymworks
/homeassistant/components/airq/ @Sibgatulin @dl2080
/tests/components/airq/ @Sibgatulin @dl2080
/homeassistant/components/airthings/ @danielhiversen
/tests/components/airthings/ @danielhiversen
/homeassistant/components/airthings_ble/ @vincegio
@@ -61,8 +63,8 @@ build.json @home-assistant/supervisor
/tests/components/alarm_control_panel/ @home-assistant/core
/homeassistant/components/alert/ @home-assistant/core @frenck
/tests/components/alert/ @home-assistant/core @frenck
/homeassistant/components/alexa/ @home-assistant/cloud @ochlocracy
/tests/components/alexa/ @home-assistant/cloud @ochlocracy
/homeassistant/components/alexa/ @home-assistant/cloud @ochlocracy @jbouwh
/tests/components/alexa/ @home-assistant/cloud @ochlocracy @jbouwh
/homeassistant/components/almond/ @gcampax @balloob
/tests/components/almond/ @gcampax @balloob
/homeassistant/components/amberelectric/ @madpilot
@@ -94,6 +96,8 @@ build.json @home-assistant/supervisor
/tests/components/apprise/ @caronc
/homeassistant/components/aprs/ @PhilRW
/tests/components/aprs/ @PhilRW
/homeassistant/components/aranet/ @aschmitz
/tests/components/aranet/ @aschmitz
/homeassistant/components/arcam_fmj/ @elupus
/tests/components/arcam_fmj/ @elupus
/homeassistant/components/arris_tg2492lg/ @vanbalken
@@ -477,6 +481,8 @@ build.json @home-assistant/supervisor
/tests/components/homeassistant/ @home-assistant/core
/homeassistant/components/homeassistant_alerts/ @home-assistant/core
/tests/components/homeassistant_alerts/ @home-assistant/core
/homeassistant/components/homeassistant_hardware/ @home-assistant/core
/tests/components/homeassistant_hardware/ @home-assistant/core
/homeassistant/components/homeassistant_sky_connect/ @home-assistant/core
/tests/components/homeassistant_sky_connect/ @home-assistant/core
/homeassistant/components/homeassistant_yellow/ @home-assistant/core
@@ -631,6 +637,10 @@ build.json @home-assistant/supervisor
/tests/components/litejet/ @joncar
/homeassistant/components/litterrobot/ @natekspencer @tkdrob
/tests/components/litterrobot/ @natekspencer @tkdrob
/homeassistant/components/livisi/ @StefanIacobLivisi
/tests/components/livisi/ @StefanIacobLivisi
/homeassistant/components/local_calendar/ @allenporter
/tests/components/local_calendar/ @allenporter
/homeassistant/components/local_ip/ @issacg
/tests/components/local_ip/ @issacg
/homeassistant/components/lock/ @home-assistant/core
@@ -649,13 +659,15 @@ build.json @home-assistant/supervisor
/homeassistant/components/luftdaten/ @fabaff @frenck
/tests/components/luftdaten/ @fabaff @frenck
/homeassistant/components/lupusec/ @majuss
/homeassistant/components/lutron/ @JonGilmore
/homeassistant/components/lutron/ @cdheiser
/homeassistant/components/lutron_caseta/ @swails @bdraco @danaues
/tests/components/lutron_caseta/ @swails @bdraco @danaues
/homeassistant/components/lyric/ @timmo001
/tests/components/lyric/ @timmo001
/homeassistant/components/mastodon/ @fabaff
/homeassistant/components/matrix/ @tinloaf
/homeassistant/components/matter/ @MartinHjelmare @marcelveldt
/tests/components/matter/ @MartinHjelmare @marcelveldt
/homeassistant/components/mazda/ @bdr99
/tests/components/mazda/ @bdr99
/homeassistant/components/meater/ @Sotolotl @emontnemery
@@ -687,8 +699,8 @@ build.json @home-assistant/supervisor
/tests/components/mikrotik/ @engrbm87
/homeassistant/components/mill/ @danielhiversen
/tests/components/mill/ @danielhiversen
/homeassistant/components/min_max/ @fabaff
/tests/components/min_max/ @fabaff
/homeassistant/components/min_max/ @gjohansson-ST
/tests/components/min_max/ @gjohansson-ST
/homeassistant/components/minecraft_server/ @elmurato
/tests/components/minecraft_server/ @elmurato
/homeassistant/components/minio/ @tkislan
@@ -713,8 +725,8 @@ build.json @home-assistant/supervisor
/tests/components/motion_blinds/ @starkillerOG
/homeassistant/components/motioneye/ @dermotduffy
/tests/components/motioneye/ @dermotduffy
/homeassistant/components/mqtt/ @emontnemery
/tests/components/mqtt/ @emontnemery
/homeassistant/components/mqtt/ @emontnemery @jbouwh
/tests/components/mqtt/ @emontnemery @jbouwh
/homeassistant/components/msteams/ @peroyvind
/homeassistant/components/mullvad/ @meichthys
/tests/components/mullvad/ @meichthys
@@ -776,6 +788,8 @@ build.json @home-assistant/supervisor
/tests/components/nsw_fuel_station/ @nickw444
/homeassistant/components/nsw_rural_fire_service_feed/ @exxamalte
/tests/components/nsw_rural_fire_service_feed/ @exxamalte
/homeassistant/components/nuheat/ @tstabrawa
/tests/components/nuheat/ @tstabrawa
/homeassistant/components/nuki/ @pschmitt @pvizeli @pree
/tests/components/nuki/ @pschmitt @pvizeli @pree
/homeassistant/components/numato/ @clssn
@@ -878,6 +892,8 @@ build.json @home-assistant/supervisor
/tests/components/pure_energie/ @klaasnicolaas
/homeassistant/components/push/ @dgomes
/tests/components/push/ @dgomes
/homeassistant/components/pushbullet/ @engrbm87
/tests/components/pushbullet/ @engrbm87
/homeassistant/components/pushover/ @engrbm87
/tests/components/pushover/ @engrbm87
/homeassistant/components/pvoutput/ @frenck
@@ -955,6 +971,8 @@ build.json @home-assistant/supervisor
/tests/components/rtsp_to_webrtc/ @allenporter
/homeassistant/components/ruckus_unleashed/ @gabe565
/tests/components/ruckus_unleashed/ @gabe565
/homeassistant/components/ruuvitag_ble/ @akx
/tests/components/ruuvitag_ble/ @akx
/homeassistant/components/sabnzbd/ @shaiu
/tests/components/sabnzbd/ @shaiu
/homeassistant/components/safe_mode/ @home-assistant/core
@@ -985,6 +1003,8 @@ build.json @home-assistant/supervisor
/tests/components/senseme/ @mikelawrence @bdraco
/homeassistant/components/sensibo/ @andrey-git @gjohansson-ST
/tests/components/sensibo/ @andrey-git @gjohansson-ST
/homeassistant/components/sensirion_ble/ @akx
/tests/components/sensirion_ble/ @akx
/homeassistant/components/sensor/ @home-assistant/core
/tests/components/sensor/ @home-assistant/core
/homeassistant/components/sensorpro/ @bdraco
@@ -1001,8 +1021,8 @@ build.json @home-assistant/supervisor
/tests/components/sharkiq/ @JeffResc @funkybunch @AritroSaha10
/homeassistant/components/shell_command/ @home-assistant/core
/tests/components/shell_command/ @home-assistant/core
/homeassistant/components/shelly/ @balloob @bieniu @thecode @chemelli74
/tests/components/shelly/ @balloob @bieniu @thecode @chemelli74
/homeassistant/components/shelly/ @balloob @bieniu @thecode @chemelli74 @bdraco
/tests/components/shelly/ @balloob @bieniu @thecode @chemelli74 @bdraco
/homeassistant/components/shodan/ @fabaff
/homeassistant/components/sia/ @eavanvalkenburg
/tests/components/sia/ @eavanvalkenburg
@@ -1121,8 +1141,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/synology_srm/ @aerialls
/homeassistant/components/system_bridge/ @timmo001
/tests/components/system_bridge/ @timmo001
/homeassistant/components/tado/ @michaelarnauts @north3221
/tests/components/tado/ @michaelarnauts @north3221
/homeassistant/components/tado/ @michaelarnauts
/tests/components/tado/ @michaelarnauts
/homeassistant/components/tag/ @balloob @dmulcahey
/tests/components/tag/ @balloob @dmulcahey
/homeassistant/components/tailscale/ @frenck
@@ -1140,6 +1160,8 @@ build.json @home-assistant/supervisor
/tests/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/homeassistant/components/tesla_wall_connector/ @einarhauks
/tests/components/tesla_wall_connector/ @einarhauks
/homeassistant/components/text/ @home-assistant/core
/tests/components/text/ @home-assistant/core
/homeassistant/components/tfiac/ @fredrike @mellado
/homeassistant/components/thermobeacon/ @bdraco
/tests/components/thermobeacon/ @bdraco

View File

@@ -1,11 +1,11 @@
image: homeassistant/{arch}-homeassistant
shadow_repository: ghcr.io/home-assistant
build_from:
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2022.10.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2022.10.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2022.10.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2022.10.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2022.10.0
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2022.11.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2022.11.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2022.11.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2022.11.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2022.11.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io

View File

@@ -89,11 +89,21 @@ def get_arguments() -> argparse.Namespace:
parser.add_argument(
"--open-ui", action="store_true", help="Open the webinterface in a browser"
)
parser.add_argument(
skip_pip_group = parser.add_mutually_exclusive_group()
skip_pip_group.add_argument(
"--skip-pip",
action="store_true",
help="Skips pip install of required packages on startup",
)
skip_pip_group.add_argument(
"--skip-pip-packages",
metavar="package_names",
type=lambda arg: arg.split(","),
default=[],
help="Skip pip install of specific packages on startup",
)
parser.add_argument(
"-v", "--verbose", action="store_true", help="Enable verbose logging to file."
)
@@ -180,6 +190,7 @@ def main() -> int:
log_file=args.log_file,
log_no_color=args.log_no_color,
skip_pip=args.skip_pip,
skip_pip_packages=args.skip_pip_packages,
safe_mode=args.safe_mode,
debug=args.debug,
open_ui=args.open_ui,

View File

@@ -356,8 +356,7 @@ class AuthManager:
provider = self._async_get_auth_provider(credentials)
if provider is not None and hasattr(provider, "async_will_remove_credentials"):
# https://github.com/python/mypy/issues/1424
await provider.async_will_remove_credentials(credentials) # type: ignore[attr-defined]
await provider.async_will_remove_credentials(credentials)
await self._store.async_remove_credentials(credentials)

View File

@@ -166,7 +166,6 @@ async def _load_mfa_module(hass: HomeAssistant, module_name: str) -> types.Modul
processed = hass.data[DATA_REQS] = set()
# https://github.com/python/mypy/issues/1424
await requirements.async_process_requirements(
hass, module_path, module.REQUIREMENTS
)

View File

@@ -47,7 +47,7 @@ def _lookup_domain(
perm_lookup: PermissionLookup, domains_dict: SubCategoryDict, entity_id: str
) -> ValueType | None:
"""Look up entity permissions by domain."""
return domains_dict.get(entity_id.split(".", 1)[0])
return domains_dict.get(entity_id.partition(".")[0])
def _lookup_area(

View File

@@ -250,9 +250,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
auth_module, "async_initialize_login_mfa_step"
):
try:
await auth_module.async_initialize_login_mfa_step( # type: ignore[attr-defined]
self.user.id
)
await auth_module.async_initialize_login_mfa_step(self.user.id)
except HomeAssistantError:
_LOGGER.exception("Error initializing MFA step")
return self.async_abort(reason="unknown_error")

View File

@@ -88,12 +88,12 @@ class CommandLineAuthProvider(AuthProvider):
for _line in stdout.splitlines():
try:
line = _line.decode().lstrip()
if line.startswith("#"):
continue
key, value = line.split("=", 1)
except ValueError:
# malformed line
continue
if line.startswith("#") or "=" not in line:
continue
key, _, value = line.partition("=")
key = key.strip()
value = value.strip()
if key in self.ALLOWED_META_KEYS:

View File

@@ -17,7 +17,7 @@ import voluptuous as vol
import yarl
from . import config as conf_util, config_entries, core, loader
from .components import http, persistent_notification
from .components import http
from .const import (
REQUIRED_NEXT_PYTHON_HA_RELEASE,
REQUIRED_NEXT_PYTHON_VER,
@@ -53,6 +53,7 @@ ERROR_LOG_FILENAME = "home-assistant.log"
# hass.data key for logging information.
DATA_LOGGING = "logging"
DATA_REGISTRIES_LOADED = "bootstrap_registries_loaded"
LOG_SLOW_STARTUP_INTERVAL = 60
SLOW_STARTUP_CHECK_INTERVAL = 1
@@ -117,7 +118,8 @@ async def async_setup_hass(
)
hass.config.skip_pip = runtime_config.skip_pip
if runtime_config.skip_pip:
hass.config.skip_pip_packages = runtime_config.skip_pip_packages
if runtime_config.skip_pip or runtime_config.skip_pip_packages:
_LOGGER.warning(
"Skipping pip installation of required modules. This may cause issues"
)
@@ -175,6 +177,7 @@ async def async_setup_hass(
if old_logging:
hass.data[DATA_LOGGING] = old_logging
hass.config.skip_pip = old_config.skip_pip
hass.config.skip_pip_packages = old_config.skip_pip_packages
hass.config.internal_url = old_config.internal_url
hass.config.external_url = old_config.external_url
hass.config.config_dir = old_config.config_dir
@@ -216,6 +219,32 @@ def open_hass_ui(hass: core.HomeAssistant) -> None:
)
async def load_registries(hass: core.HomeAssistant) -> None:
"""Load the registries and cache the result of platform.uname().processor."""
if DATA_REGISTRIES_LOADED in hass.data:
return
hass.data[DATA_REGISTRIES_LOADED] = None
def _cache_uname_processor() -> None:
"""Cache the result of platform.uname().processor in the executor.
Multiple modules call this function at startup which
executes a blocking subprocess call. This is a problem for the
asyncio event loop. By primeing the cache of uname we can
avoid the blocking call in the event loop.
"""
platform.uname().processor # pylint: disable=expression-not-assigned
# Load the registries and cache the result of platform.uname().processor
await asyncio.gather(
area_registry.async_load(hass),
device_registry.async_load(hass),
entity_registry.async_load(hass),
issue_registry.async_load(hass),
hass.async_add_executor_job(_cache_uname_processor),
)
async def async_from_config_dict(
config: ConfigType, hass: core.HomeAssistant
) -> core.HomeAssistant | None:
@@ -228,6 +257,7 @@ async def async_from_config_dict(
hass.config_entries = config_entries.ConfigEntries(hass, config)
await hass.config_entries.async_initialize()
await load_registries(hass)
# Set up core.
_LOGGER.debug("Setting up %s", CORE_INTEGRATIONS)
@@ -268,16 +298,31 @@ async def async_from_config_dict(
REQUIRED_NEXT_PYTHON_HA_RELEASE
and sys.version_info[:3] < REQUIRED_NEXT_PYTHON_VER
):
msg = (
"Support for the running Python version "
f"{'.'.join(str(x) for x in sys.version_info[:3])} is deprecated and will "
f"be removed in Home Assistant {REQUIRED_NEXT_PYTHON_HA_RELEASE}. "
"Please upgrade Python to "
f"{'.'.join(str(x) for x in REQUIRED_NEXT_PYTHON_VER[:2])}."
current_python_version = ".".join(str(x) for x in sys.version_info[:3])
required_python_version = ".".join(str(x) for x in REQUIRED_NEXT_PYTHON_VER[:2])
_LOGGER.warning(
(
"Support for the running Python version %s is deprecated and "
"will be removed in Home Assistant %s; "
"Please upgrade Python to %s"
),
current_python_version,
REQUIRED_NEXT_PYTHON_HA_RELEASE,
required_python_version,
)
_LOGGER.warning(msg)
persistent_notification.async_create(
hass, msg, "Python version", "python_version"
issue_registry.async_create_issue(
hass,
core.DOMAIN,
"python_version",
is_fixable=False,
severity=issue_registry.IssueSeverity.WARNING,
breaks_in_ha_version=REQUIRED_NEXT_PYTHON_HA_RELEASE,
translation_key="python_version",
translation_placeholders={
"current_python_version": current_python_version,
"required_python_version": required_python_version,
"breaks_in_ha_version": REQUIRED_NEXT_PYTHON_HA_RELEASE,
},
)
return hass
@@ -404,7 +449,7 @@ async def async_mount_local_lib_path(config_dir: str) -> str:
def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
"""Get domains of components to set up."""
# Filter out the repeating and common config section [homeassistant]
domains = {key.split(" ")[0] for key in config if key != core.DOMAIN}
domains = {key.partition(" ")[0] for key in config if key != core.DOMAIN}
# Add config entry domains
if not hass.config.safe_mode:
@@ -515,25 +560,6 @@ async def _async_set_up_integrations(
_LOGGER.info("Domains to be set up: %s", domains_to_setup)
def _cache_uname_processor() -> None:
"""Cache the result of platform.uname().processor in the executor.
Multiple modules call this function at startup which
executes a blocking subprocess call. This is a problem for the
asyncio event loop. By primeing the cache of uname we can
avoid the blocking call in the event loop.
"""
platform.uname().processor # pylint: disable=expression-not-assigned
# Load the registries and cache the result of platform.uname().processor
await asyncio.gather(
area_registry.async_load(hass),
device_registry.async_load(hass),
entity_registry.async_load(hass),
issue_registry.async_load(hass),
hass.async_add_executor_job(_cache_uname_processor),
)
# Initialize recorder
if "recorder" in domains_to_setup:
recorder.async_initialize_recorder(hass)

View File

@@ -14,7 +14,6 @@
"google",
"nest",
"cast",
"hangouts",
"dialogflow"
]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "yamaha",
"name": "Yamaha",
"integrations": ["yamaha", "yamaha_musiccast"]
}

View File

@@ -1,4 +1,7 @@
"""Support for Abode Security System binary sensors."""
from __future__ import annotations
from contextlib import suppress
from typing import cast
from abodepy.devices.binary_sensor import AbodeBinarySensor as ABBinarySensor
@@ -47,8 +50,10 @@ class AbodeBinarySensor(AbodeDevice, BinarySensorEntity):
return cast(bool, self._device.is_on)
@property
def device_class(self) -> str:
def device_class(self) -> BinarySensorDeviceClass | None:
"""Return the class of the binary sensor."""
if self._device.get_value("is_window") == "1":
return BinarySensorDeviceClass.WINDOW
return cast(str, self._device.generic_type)
with suppress(ValueError):
return BinarySensorDeviceClass(cast(str, self._device.generic_type))
return None

View File

@@ -116,8 +116,3 @@ class AbodeLight(AbodeDevice, LightEntity):
if self._device.is_dimmable:
return {ColorMode.BRIGHTNESS}
return {ColorMode.ONOFF}
@property
def supported_features(self) -> int:
"""Flag supported features."""
return 0

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0442\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435 \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e",
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430",
"single_instance_allowed": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0435 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Abode."
},
"error": {

View File

@@ -1,21 +1,34 @@
{
"config": {
"abort": {
"reauth_successful": "Op\u00e4tovn\u00e9 overenie bolo \u00faspe\u0161n\u00e9"
"reauth_successful": "Op\u00e4tovn\u00e9 overenie bolo \u00faspe\u0161n\u00e9",
"single_instance_allowed": "U\u017e je nakonfigurovan\u00fd. Mo\u017en\u00e1 len jedna konfigur\u00e1cia."
},
"error": {
"invalid_auth": "Neplatn\u00e9 overenie"
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"invalid_auth": "Neplatn\u00e9 overenie",
"invalid_mfa_code": "Neplatn\u00fd k\u00f3d MFA"
},
"step": {
"mfa": {
"data": {
"mfa_code": "K\u00f3d MFA (6-miestny)"
},
"title": "Zadajte svoj k\u00f3d MFA pre Abode"
},
"reauth_confirm": {
"data": {
"password": "Heslo",
"username": "Email"
}
},
"title": "Vypl\u0148te svoje prihlasovacie \u00fadaje do slu\u017eby Abode"
},
"user": {
"data": {
"password": "Heslo",
"username": "Email"
}
},
"title": "Vypl\u0148te svoje prihlasovacie \u00fadaje Abode"
}
}
}

View File

@@ -17,9 +17,22 @@ from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.schema_config_entry_flow import (
SchemaFlowFormStep,
SchemaOptionsFlowHandler,
)
from .const import CONF_FORECAST, DOMAIN
OPTIONS_SCHEMA = vol.Schema(
{
vol.Optional(CONF_FORECAST, default=False): bool,
}
)
OPTIONS_FLOW = {
"init": SchemaFlowFormStep(OPTIONS_SCHEMA),
}
class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
"""Config flow for AccuWeather."""
@@ -84,41 +97,6 @@ class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_options_flow(
config_entry: ConfigEntry,
) -> AccuWeatherOptionsFlowHandler:
def async_get_options_flow(config_entry: ConfigEntry) -> SchemaOptionsFlowHandler:
"""Options callback for AccuWeather."""
return AccuWeatherOptionsFlowHandler(config_entry)
class AccuWeatherOptionsFlowHandler(config_entries.OptionsFlow):
"""Config flow options for AccuWeather."""
def __init__(self, entry: ConfigEntry) -> None:
"""Initialize AccuWeather options flow."""
self.config_entry = entry
async def async_step_init(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Manage the options."""
return await self.async_step_user()
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle a flow initialized by the user."""
if user_input is not None:
return self.async_create_entry(title="", data=user_input)
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Optional(
CONF_FORECAST,
default=self.config_entry.options.get(CONF_FORECAST, False),
): bool
}
),
)
return SchemaOptionsFlowHandler(config_entry, OPTIONS_FLOW)

View File

@@ -253,7 +253,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
name="Cloud ceiling",
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: LENGTH_METERS if metric else LENGTH_FEET,
value_fn=lambda data, unit: round(data[unit][ATTR_VALUE]),
value_fn=lambda data, unit: round(cast(float, data[unit][ATTR_VALUE])),
),
AccuWeatherSensorDescription(
key="CloudCover",

View File

@@ -24,7 +24,7 @@
},
"options": {
"step": {
"user": {
"init": {
"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

@@ -20,6 +20,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e"
},
"description": "\u041f\u043e\u0440\u0430\u0434\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 API \u043a\u043b\u044e\u0447\u0430 \u043d\u0430 AccuWeather, \u043a\u043e\u0433\u0430\u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0442\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430\u0442\u0430 \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e, \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u0442\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u0449\u0435 \u0441\u0435 \u0438\u0437\u0432\u044a\u0440\u0448\u0432\u0430\u0442 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438 80 \u043c\u0438\u043d\u0443\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0432\u0441\u0435\u043a\u0438 40 \u043c\u0438\u043d\u0443\u0442\u0438."
},
"user": {
"data": {
"forecast": "\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e"

View File

@@ -24,6 +24,11 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Previsi\u00f3 meteorol\u00f2gica"
}
},
"user": {
"data": {
"forecast": "Previsi\u00f3 meteorol\u00f2gica"

View File

@@ -21,6 +21,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "P\u0159edpov\u011b\u010f po\u010das\u00ed"
},
"description": "Vzhledem k omezen\u00edm bezplatn\u00e9 verze kl\u00ed\u010de AccuWeather API, kdy\u017e povol\u00edte p\u0159edpov\u011b\u010f po\u010das\u00ed, aktualizace dat se budou prov\u00e1d\u011bt ka\u017ed\u00fdch 80 minut m\u00edsto ka\u017ed\u00fdch 40 minut."
},
"user": {
"data": {
"forecast": "P\u0159edpov\u011b\u010f po\u010das\u00ed"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Wettervorhersage"
},
"description": "Aufgrund der Einschr\u00e4nkungen der kostenlosen Version des AccuWeather API-Schl\u00fcssels werden bei aktivierter Wettervorhersage Datenaktualisierungen alle 80 Minuten statt alle 40 Minuten durchgef\u00fchrt."
},
"user": {
"data": {
"forecast": "Wettervorhersage"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "\u03a0\u03c1\u03cc\u03b3\u03bd\u03c9\u03c3\u03b7 \u03ba\u03b1\u03b9\u03c1\u03bf\u03cd"
},
"description": "\u039b\u03cc\u03b3\u03c9 \u03c4\u03c9\u03bd \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03ce\u03bd \u03c4\u03b7\u03c2 \u03b4\u03c9\u03c1\u03b5\u03ac\u03bd \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd AccuWeather API, \u03cc\u03c4\u03b1\u03bd \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03b3\u03bd\u03c9\u03c3\u03b7 \u03ba\u03b1\u03b9\u03c1\u03bf\u03cd, \u03bf\u03b9 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b8\u03b1 \u03b5\u03ba\u03c4\u03b5\u03bb\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03ba\u03ac\u03b8\u03b5 80 \u03bb\u03b5\u03c0\u03c4\u03ac \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 \u03ba\u03ac\u03b8\u03b5 40 \u03bb\u03b5\u03c0\u03c4\u03ac."
},
"user": {
"data": {
"forecast": "\u03a0\u03c1\u03cc\u03b3\u03bd\u03c9\u03c3\u03b7 \u03ba\u03b1\u03b9\u03c1\u03bf\u03cd"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Weather forecast"
},
"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."
},
"user": {
"data": {
"forecast": "Weather forecast"

View File

@@ -4,7 +4,7 @@
"single_instance_allowed": "Ya est\u00e1 configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"create_entry": {
"default": "Algunos sensores no est\u00e1n habilitados de forma predeterminada. Puedes habilitarlos en el registro de la entidad despu\u00e9s de la configuraci\u00f3n de la integraci\u00f3n.\nEl pron\u00f3stico del tiempo no est\u00e1 habilitado de forma predeterminada. Puedes habilitarlo en las opciones de integraci\u00f3n."
"default": "Algunos sensores no est\u00e1n habilitados de forma predeterminada. Puedes habilitarlos en el registro de la entidad despu\u00e9s de la configuraci\u00f3n de la integraci\u00f3n.\nLa previsi\u00f3n meteorol\u00f3gica no est\u00e1 habilitada de forma predeterminada. Puedes habilitarla en las opciones de integraci\u00f3n."
},
"error": {
"cannot_connect": "No se pudo conectar",
@@ -24,11 +24,17 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Previsi\u00f3n meteorol\u00f3gica"
},
"description": "Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilitas la previsi\u00f3n meteorol\u00f3gica, las actualizaciones de datos se realizar\u00e1n cada 80 minutos en lugar de cada 40 minutos."
},
"user": {
"data": {
"forecast": "Pron\u00f3stico del tiempo"
"forecast": "Previsi\u00f3n meteorol\u00f3gica"
},
"description": "Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilitas el pron\u00f3stico del tiempo, las actualizaciones de datos se realizar\u00e1n cada 80 minutos en lugar de cada 40 minutos."
"description": "Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilitas la previsi\u00f3n meteorol\u00f3gica, las actualizaciones de datos se realizar\u00e1n cada 80 minutos en lugar de cada 40 minutos."
}
}
},

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Ilmateade"
},
"description": "AccuWeather API tasuta versioonis toimub ilmaennustuse lubamisel andmete v\u00e4rskendamine iga 80 minuti j\u00e4rel (muidu 40 minutit)."
},
"user": {
"data": {
"forecast": "Ilmateade"

View File

@@ -24,6 +24,11 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Pr\u00e9visions m\u00e9t\u00e9orologiques"
}
},
"user": {
"data": {
"forecast": "Pr\u00e9visions m\u00e9t\u00e9orologiques"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Prakiraan cuaca"
},
"description": "Karena keterbatasan versi gratis kunci API AccuWeather, ketika Anda mengaktifkan prakiraan cuaca, pembaruan data akan dilakukan setiap 80 menit, bukan setiap 40 menit."
},
"user": {
"data": {
"forecast": "Prakiraan cuaca"

View File

@@ -28,7 +28,7 @@
"data": {
"forecast": "\u5929\u6c17\u4e88\u5831"
},
"description": "\u5236\u9650\u306b\u3088\u308a\u7121\u6599\u30d0\u30fc\u30b8\u30e7\u30f3\u306eAccuWeather API\u30ad\u30fc\u3067\u306f\u3001\u5929\u6c17\u4e88\u5831\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u30c7\u30fc\u30bf\u306e\u66f4\u65b0\u306f40\u5206\u3067\u306f\u306a\u304f80\u5206\u3054\u3068\u3067\u3059\u3002"
"description": "\u7121\u6599\u7248\u306eAccuWeather API\u30ad\u30fc\u306e\u5236\u9650\u306b\u3088\u308a\u3001\u5929\u6c17\u4e88\u5831\u3092\u6709\u52b9\u306b\u3057\u305f\u5834\u5408\u3001\u30c7\u30fc\u30bf\u306e\u66f4\u65b0\u306f40\u5206\u6bce\u3067\u306f\u306a\u304f80\u5206\u6bce\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002"
}
}
},

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Weersverwachting"
},
"description": "Wanneer je de weersverwachting ingeschakeld zullen updates elke 80 minuten plaatsvinden i.p.v. elke 40 minuten, dit komt door de beperkingen van de gratis versie van de AccuWeather API sleutel."
},
"user": {
"data": {
"forecast": "Weervoorspelling"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "V\u00e6rmelding"
},
"description": "P\u00e5 grunn av begrensningene til gratisversjonen av AccuWeather API-n\u00f8kkelen, n\u00e5r du aktiverer v\u00e6rmelding, vil dataoppdateringer utf\u00f8res hvert 80. minutt i stedet for hvert 40. minutt."
},
"user": {
"data": {
"forecast": "V\u00e6rmelding"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Previs\u00e3o do tempo"
},
"description": "Devido \u00e0s limita\u00e7\u00f5es da vers\u00e3o gratuita da chave API AccuWeather, quando voc\u00ea ativa a previs\u00e3o do tempo, as atualiza\u00e7\u00f5es de dados s\u00e3o realizadas a cada 80 minutos em vez de 40 minutos."
},
"user": {
"data": {
"forecast": "Previs\u00e3o do Tempo"

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e\u0433\u043e\u0434\u044b"
},
"description": "\u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043b\u044e\u0447\u0430 API AccuWeather, \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e\u0433\u043e\u0434\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0435 80 \u043c\u0438\u043d\u0443\u0442, \u0430 \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0435 40 \u043c\u0438\u043d\u0443\u0442."
},
"user": {
"data": {
"forecast": "\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e\u0433\u043e\u0434\u044b"

View File

@@ -0,0 +1,8 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "Klesaj\u00faci",
"rising": "Padaj\u00faci"
}
}
}

View File

@@ -1,7 +1,12 @@
{
"config": {
"abort": {
"single_instance_allowed": "U\u017e je nakonfigurovan\u00fd. Mo\u017en\u00e1 len jedna konfigur\u00e1cia."
},
"error": {
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d"
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d",
"requests_exceeded": "Povolen\u00fd po\u010det po\u017eiadaviek na rozhranie Accuweather API bol prekro\u010den\u00fd. Mus\u00edte po\u010dka\u0165 alebo zmeni\u0165 k\u013e\u00fa\u010d API."
},
"step": {
"user": {
@@ -13,5 +18,25 @@
}
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast": "Predpove\u010f po\u010dasia"
}
},
"user": {
"data": {
"forecast": "Predpove\u010f po\u010dasia"
}
}
}
},
"system_health": {
"info": {
"can_reach_server": "Oslovi\u0165 server AccuWeather",
"remaining_requests": "Zost\u00e1vaj\u00face povolen\u00e9 \u017eiadosti"
}
}
}

View File

@@ -1,4 +1,14 @@
{
"options": {
"step": {
"init": {
"data": {
"forecast": "\u5929\u6c14\u9884\u62a5"
},
"description": "\u7531\u4e8e AccuWeather API \u5bc6\u94a5\u514d\u8d39\u7248\u672c\u7684\u9650\u5236\uff0c\u5f53\u60a8\u542f\u7528\u5929\u6c14\u9884\u62a5\u65f6\uff0c\u6570\u636e\u66f4\u65b0\u5c06\u6bcf 80 \u5206\u949f\u6267\u884c\u4e00\u6b21\uff0c\u800c\u4e0d\u662f\u6bcf 40 \u5206\u949f\u4e00\u6b21\u3002"
}
}
},
"system_health": {
"info": {
"can_reach_server": "\u53ef\u8bbf\u95ee AccuWeather \u670d\u52a1\u5668",

View File

@@ -24,6 +24,12 @@
},
"options": {
"step": {
"init": {
"data": {
"forecast": "\u5929\u6c23\u9810\u5831"
},
"description": "\u7531\u65bc AccuWeather API \u91d1\u9470\u514d\u8cbb\u7248\u672c\u9650\u5236\uff0c\u7576\u958b\u555f\u5929\u6c23\u9810\u5831\u6642\u3001\u6578\u64da\u6703\u6bcf 80 \u5206\u9418\u66f4\u65b0\u4e00\u6b21\uff0c\u800c\u975e 40 \u5206\u9418\u3002"
},
"user": {
"data": {
"forecast": "\u5929\u6c23\u9810\u5831"

View File

@@ -18,16 +18,11 @@ from homeassistant.components.weather import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
LENGTH_INCHES,
LENGTH_KILOMETERS,
LENGTH_MILES,
LENGTH_MILLIMETERS,
PRESSURE_HPA,
PRESSURE_INHG,
SPEED_KILOMETERS_PER_HOUR,
SPEED_MILES_PER_HOUR,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UnitOfLength,
UnitOfPrecipitationDepth,
UnitOfPressure,
UnitOfSpeed,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@@ -72,19 +67,19 @@ class AccuWeatherEntity(
# converted, hence the weather entity's native units follow the configured unit
# system
if coordinator.hass.config.units is METRIC_SYSTEM:
self._attr_native_precipitation_unit = LENGTH_MILLIMETERS
self._attr_native_pressure_unit = PRESSURE_HPA
self._attr_native_temperature_unit = TEMP_CELSIUS
self._attr_native_visibility_unit = LENGTH_KILOMETERS
self._attr_native_wind_speed_unit = SPEED_KILOMETERS_PER_HOUR
self._attr_native_precipitation_unit = UnitOfPrecipitationDepth.MILLIMETERS
self._attr_native_pressure_unit = UnitOfPressure.HPA
self._attr_native_temperature_unit = UnitOfTemperature.CELSIUS
self._attr_native_visibility_unit = UnitOfLength.KILOMETERS
self._attr_native_wind_speed_unit = UnitOfSpeed.KILOMETERS_PER_HOUR
self._unit_system = API_METRIC
else:
self._unit_system = API_IMPERIAL
self._attr_native_precipitation_unit = LENGTH_INCHES
self._attr_native_pressure_unit = PRESSURE_INHG
self._attr_native_temperature_unit = TEMP_FAHRENHEIT
self._attr_native_visibility_unit = LENGTH_MILES
self._attr_native_wind_speed_unit = SPEED_MILES_PER_HOUR
self._attr_native_precipitation_unit = UnitOfPrecipitationDepth.INCHES
self._attr_native_pressure_unit = UnitOfPressure.INHG
self._attr_native_temperature_unit = UnitOfTemperature.FAHRENHEIT
self._attr_native_visibility_unit = UnitOfLength.MILES
self._attr_native_wind_speed_unit = UnitOfSpeed.MILES_PER_HOUR
self._attr_unique_id = coordinator.location_key
self._attr_attribution = ATTRIBUTION
self._attr_device_info = coordinator.device_info

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
import asyncio
from contextlib import suppress
from typing import Any
import aiopulse
import async_timeout
@@ -10,6 +11,7 @@ import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_HOST, CONF_ID
from homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN
@@ -19,11 +21,13 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
VERSION = 1
def __init__(self):
def __init__(self) -> None:
"""Initialize the config flow."""
self.discovered_hubs: dict[str, aiopulse.Hub] | None = None
async def async_step_user(self, user_input=None):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle a flow initialized by the user."""
if (
user_input is not None
@@ -37,7 +41,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
entry.unique_id for entry in self._async_current_entries()
}
hubs = []
hubs: list[aiopulse.Hub] = []
with suppress(asyncio.TimeoutError):
async with async_timeout.timeout(5):
async for hub in aiopulse.Hub.discover():
@@ -63,7 +67,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
),
)
async def async_create(self, hub):
async def async_create(self, hub: aiopulse.Hub) -> FlowResult:
"""Create the Acmeda Hub entry."""
await self.async_set_unique_id(hub.id, raise_on_progress=False)
return self.async_create_entry(title=hub.id, data={CONF_HOST: hub.host})

View File

@@ -70,9 +70,9 @@ class AcmedaCover(AcmedaBase, CoverEntity):
return position
@property
def supported_features(self) -> int:
def supported_features(self) -> CoverEntityFeature:
"""Flag supported features."""
supported_features = 0
supported_features = CoverEntityFeature(0)
if self.current_cover_position is not None:
supported_features |= (
CoverEntityFeature.OPEN

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea"
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05d4\u05ea\u05e7\u05e0\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea"
},
"step": {
"user": {

View File

@@ -0,0 +1,14 @@
{
"config": {
"abort": {
"no_devices_found": "V sieti sa nena\u0161li \u017eiadne zariadenia"
},
"step": {
"user": {
"data": {
"id": "ID hostite\u013ea"
}
}
}
}
}

View File

@@ -1,7 +1,33 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9",
"heater_not_available": "Ohrieva\u010d nie je k dispoz\u00edcii. Sk\u00faste resetova\u0165 ohrieva\u010d stla\u010den\u00edm + a OK na nieko\u013eko sek\u00fand.",
"heater_not_found": "Ohrieva\u010d sa nena\u0161iel. Sk\u00faste presun\u00fa\u0165 ohrieva\u010d bli\u017e\u0161ie k Home Assistant.",
"invalid_auth": "Neplatn\u00e9 overenie"
},
"error": {
"cannot_connect": "Nepodarilo sa pripoji\u0165"
},
"step": {
"cloud": {
"data": {
"account_id": "ID \u00fa\u010dtu",
"password": "Heslo"
}
},
"local": {
"data": {
"wifi_pswd": "Heslo Wi-Fi",
"wifi_ssid": "Wi-Fi SSID"
}
},
"user": {
"data": {
"connection_type": "Vyberte typ pripojenia"
},
"description": "Vyberte typ pripojenia. Miestne vy\u017eaduje ohrieva\u010de s bluetooth"
}
}
}
}

View File

@@ -1,9 +1,25 @@
{
"config": {
"abort": {
"already_configured": "Slu\u017eba u\u017e je nakonfigurovan\u00e1",
"existing_instance_updated": "Aktualizovan\u00e1 existuj\u00faca konfigur\u00e1cia."
},
"error": {
"cannot_connect": "Nepodarilo sa pripoji\u0165"
},
"step": {
"hassio_confirm": {
"description": "Chcete nakonfigurova\u0165 Home Assistant na pripojenie k AdGuard Home poskytovan\u00e9mu doplnkom: {addon}?",
"title": "AdGuard Home cez doplnok Home Assistant"
},
"user": {
"data": {
"port": "Port"
"host": "Hostite\u013e",
"password": "Heslo",
"port": "Port",
"ssl": "Pou\u017e\u00edva SSL certifik\u00e1t",
"username": "Pou\u017e\u00edvate\u013esk\u00e9 meno",
"verify_ssl": "Overi\u0165 SSL certifik\u00e1t"
}
}
}

View File

@@ -1,10 +1,18 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"cannot_connect": "Nepodarilo sa pripoji\u0165"
},
"step": {
"user": {
"data": {
"ip_address": "IP adresa",
"port": "Port"
}
},
"title": "Pripoji\u0165"
}
}
}

View File

@@ -8,9 +8,22 @@ from homeassistant import config_entries
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.schema_config_entry_flow import (
SchemaFlowFormStep,
SchemaOptionsFlowHandler,
)
from .const import CONF_STATION_UPDATES, DEFAULT_NAME, DOMAIN
OPTIONS_SCHEMA = vol.Schema(
{
vol.Required(CONF_STATION_UPDATES): bool,
}
)
OPTIONS_FLOW = {
"init": SchemaFlowFormStep(OPTIONS_SCHEMA),
}
class AemetConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Config flow for AEMET OpenData."""
@@ -54,32 +67,9 @@ class AemetConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
@callback
def async_get_options_flow(
config_entry: config_entries.ConfigEntry,
) -> OptionsFlowHandler:
) -> SchemaOptionsFlowHandler:
"""Get the options flow for this handler."""
return OptionsFlowHandler(config_entry)
class OptionsFlowHandler(config_entries.OptionsFlow):
"""Handle a option flow for AEMET."""
def __init__(self, config_entry: config_entries.ConfigEntry) -> None:
"""Initialize options flow."""
self.config_entry = config_entry
async def async_step_init(self, user_input=None):
"""Handle options flow."""
if user_input is not None:
return self.async_create_entry(title="", data=user_input)
data_schema = vol.Schema(
{
vol.Required(
CONF_STATION_UPDATES,
default=self.config_entry.options.get(CONF_STATION_UPDATES),
): bool,
}
)
return self.async_show_form(step_id="init", data_schema=data_schema)
return SchemaOptionsFlowHandler(config_entry, OPTIONS_FLOW)
async def _is_aemet_api_online(hass, api_key):

View File

@@ -1,5 +1,8 @@
{
"config": {
"abort": {
"already_configured": "Umiestnenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d"
},
@@ -8,7 +11,18 @@
"data": {
"api_key": "API k\u013e\u00fa\u010d",
"latitude": "Zemepisn\u00e1 \u0161\u00edrka",
"longitude": "Zemepisn\u00e1 d\u013a\u017eka"
"longitude": "Zemepisn\u00e1 d\u013a\u017eka",
"name": "N\u00e1zov integr\u00e1cie"
},
"description": "Ak chcete vygenerova\u0165 k\u013e\u00fa\u010d API, prejdite na https://opendata.aemet.es/centrodedescargas/altaUsuario"
}
}
},
"options": {
"step": {
"init": {
"data": {
"station_updates": "Zhroma\u017edi\u0165 \u00fadaje z meteorologick\u00fdch stan\u00edc AEMET"
}
}
}

View File

@@ -12,10 +12,10 @@ from homeassistant.components.weather import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
LENGTH_MILLIMETERS,
PRESSURE_HPA,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
UnitOfPrecipitationDepth,
UnitOfPressure,
UnitOfSpeed,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@@ -91,10 +91,10 @@ class AemetWeather(CoordinatorEntity[WeatherUpdateCoordinator], WeatherEntity):
"""Implementation of an AEMET OpenData sensor."""
_attr_attribution = ATTRIBUTION
_attr_native_precipitation_unit = LENGTH_MILLIMETERS
_attr_native_pressure_unit = PRESSURE_HPA
_attr_native_temperature_unit = TEMP_CELSIUS
_attr_native_wind_speed_unit = SPEED_KILOMETERS_PER_HOUR
_attr_native_precipitation_unit = UnitOfPrecipitationDepth.MILLIMETERS
_attr_native_pressure_unit = UnitOfPressure.HPA
_attr_native_temperature_unit = UnitOfTemperature.CELSIUS
_attr_native_wind_speed_unit = UnitOfSpeed.KILOMETERS_PER_HOUR
def __init__(
self,

View File

@@ -1,11 +1,16 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"already_in_progress": "Konfigur\u00e1cia u\u017e prebieha"
"already_in_progress": "Konfigur\u00e1cia u\u017e prebieha",
"cannot_connect": "Nepodarilo sa pripoji\u0165"
},
"step": {
"user": {
"data": {
"host": "Hostite\u013e",
"port": "Port"
}
}

View File

@@ -21,7 +21,8 @@
},
"system_health": {
"info": {
"can_reach_server": "Lze kontaktovat Airly server"
"can_reach_server": "Lze kontaktovat Airly server",
"requests_per_day": "Povolen\u00e9 po\u017eadavky za den"
}
}
}

View File

@@ -1,7 +1,11 @@
{
"config": {
"abort": {
"already_configured": "Umiestnenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d"
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d",
"wrong_location": "V tejto oblasti nie s\u00fa \u017eiadne meracie stanice Airly."
},
"step": {
"user": {
@@ -10,8 +14,16 @@
"latitude": "Zemepisn\u00e1 \u0161\u00edrka",
"longitude": "Zemepisn\u00e1 d\u013a\u017eka",
"name": "N\u00e1zov"
}
},
"description": "Ak chcete vygenerova\u0165 k\u013e\u00fa\u010d API, prejdite na https://developer.airly.eu/register"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Dosta\u0148te sa na server Airly",
"requests_per_day": "Povolen\u00e9 po\u017eiadavky za de\u0148",
"requests_remaining": "Zost\u00e1vaj\u00face povolen\u00e9 \u017eiadosti"
}
}
}

View File

@@ -1,15 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"invalid_auth": "Neplatn\u00e9 overenie"
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"invalid_auth": "Neplatn\u00e9 overenie",
"invalid_location": "Pre t\u00fato lokalitu sa nena\u0161li \u017eiadne v\u00fdsledky",
"unknown": "Neo\u010dak\u00e1van\u00e1 chyba"
},
"step": {
"user": {
"data": {
"api_key": "API k\u013e\u00fa\u010d",
"latitude": "Zemepisn\u00e1 \u0161\u00edrka",
"longitude": "Zemepisn\u00e1 d\u013a\u017eka"
}
"longitude": "Zemepisn\u00e1 d\u013a\u017eka",
"radius": "Polomer stanice (m\u00edle; volite\u013en\u00e9)"
},
"description": "Ak chcete vygenerova\u0165 k\u013e\u00fa\u010d API, prejdite na https://docs.airnowapi.org/account/request/"
}
}
}

View File

@@ -0,0 +1,78 @@
"""The air-Q integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from aioairq import AirQ
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_IP_ADDRESS, CONF_PASSWORD, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import DOMAIN, MANUFACTURER, TARGET_ROUTE, UPDATE_INTERVAL
_LOGGER = logging.getLogger(__name__)
PLATFORMS: list[Platform] = [Platform.SENSOR]
class AirQCoordinator(DataUpdateCoordinator):
"""Coordinator is responsible for querying the device at a specified route."""
def __init__(
self,
hass: HomeAssistant,
entry: ConfigEntry,
) -> None:
"""Initialise a custom coordinator."""
super().__init__(
hass,
_LOGGER,
name=DOMAIN,
update_interval=timedelta(seconds=UPDATE_INTERVAL),
)
session = async_get_clientsession(hass)
self.airq = AirQ(
entry.data[CONF_IP_ADDRESS], entry.data[CONF_PASSWORD], session
)
self.device_id = entry.unique_id
assert self.device_id is not None
self.device_info = DeviceInfo(
manufacturer=MANUFACTURER,
identifiers={(DOMAIN, self.device_id)},
)
self.device_info.update(entry.data["device_info"])
async def _async_update_data(self) -> dict:
"""Fetch the data from the device."""
data = await self.airq.get(TARGET_ROUTE)
return self.airq.drop_uncertainties_from_data(data)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up air-Q from a config entry."""
coordinator = AirQCoordinator(hass, entry)
# Query the device for the first time and initialise coordinator.data
await coordinator.async_config_entry_first_refresh()
# Record the coordinator in a global store
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = coordinator
await hass.config_entries.async_forward_entry_setups(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,84 @@
"""Config flow for air-Q integration."""
from __future__ import annotations
import logging
from typing import Any
from aioairq import AirQ, InvalidAuth, InvalidInput
from aiohttp.client_exceptions import ClientConnectionError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_IP_ADDRESS, CONF_PASSWORD
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
STEP_USER_DATA_SCHEMA = vol.Schema(
{
vol.Required(CONF_IP_ADDRESS): str,
vol.Required(CONF_PASSWORD): str,
}
)
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for air-Q."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the initial (authentication) configuration step."""
if user_input is None:
return self.async_show_form(
step_id="user", data_schema=STEP_USER_DATA_SCHEMA
)
errors: dict[str, str] = {}
session = async_get_clientsession(self.hass)
try:
airq = AirQ(user_input[CONF_IP_ADDRESS], user_input[CONF_PASSWORD], session)
except InvalidInput:
_LOGGER.debug(
"%s does not appear to be a valid IP address or mDNS name",
user_input[CONF_IP_ADDRESS],
)
errors["base"] = "invalid_input"
else:
try:
await airq.validate()
except ClientConnectionError:
_LOGGER.debug(
"Failed to connect to device %s. Check the IP address / device ID "
"as well as whether the device is connected to power and the WiFi",
user_input[CONF_IP_ADDRESS],
)
errors["base"] = "cannot_connect"
except InvalidAuth:
_LOGGER.debug(
"Incorrect password for device %s", user_input[CONF_IP_ADDRESS]
)
errors["base"] = "invalid_auth"
else:
_LOGGER.debug(
"Successfully connected to %s", user_input[CONF_IP_ADDRESS]
)
device_info = await airq.fetch_device_info()
await self.async_set_unique_id(device_info.pop("id"))
self._abort_if_unique_id_configured()
return self.async_create_entry(
title=device_info["name"],
data=user_input | {"device_info": device_info},
)
return self.async_show_form(
step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors
)

View File

@@ -0,0 +1,9 @@
"""Constants for the air-Q integration."""
from typing import Final
DOMAIN: Final = "airq"
MANUFACTURER: Final = "CorantGmbH"
TARGET_ROUTE: Final = "average"
CONCENTRATION_GRAMS_PER_CUBIC_METER: Final = "g/m³"
ACTIVITY_BECQUEREL_PER_CUBIC_METER: Final = "Bq/m³"
UPDATE_INTERVAL: float = 10.0

View File

@@ -0,0 +1,11 @@
{
"domain": "airq",
"name": "air-Q",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airq",
"requirements": ["aioairq==0.2.4"],
"codeowners": ["@Sibgatulin", "@dl2080"],
"iot_class": "local_polling",
"loggers": ["aioairq"],
"integration_type": "hub"
}

View File

@@ -0,0 +1,361 @@
"""Definition of air-Q sensor platform."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
import logging
from typing import Literal
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
PERCENTAGE,
PRESSURE_HPA,
SOUND_PRESSURE_WEIGHTED_DBA,
TEMP_CELSIUS,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirQCoordinator
from .const import (
ACTIVITY_BECQUEREL_PER_CUBIC_METER,
CONCENTRATION_GRAMS_PER_CUBIC_METER,
DOMAIN,
)
_LOGGER = logging.getLogger(__name__)
@dataclass
class AirQEntityDescriptionMixin:
"""Class for keys required by AirQ entity."""
value: Callable[[dict], float | int | None]
@dataclass
class AirQEntityDescription(SensorEntityDescription, AirQEntityDescriptionMixin):
"""Describes AirQ sensor entity."""
# Keys must match those in the data dictionary
SENSOR_TYPES: list[AirQEntityDescription] = [
AirQEntityDescription(
key="nh3_MR100",
name="Ammonia",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("nh3_MR100"),
),
AirQEntityDescription(
key="cl2_M20",
name="Chlorine",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("cl2_M20"),
),
AirQEntityDescription(
key="co",
name="CO",
device_class=SensorDeviceClass.CO,
native_unit_of_measurement=CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("co"),
),
AirQEntityDescription(
key="co2",
name="CO2",
device_class=SensorDeviceClass.CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("co2"),
),
AirQEntityDescription(
key="dewpt",
name="Dew point",
native_unit_of_measurement=TEMP_CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("dewpt"),
icon="mdi:water-thermometer",
),
AirQEntityDescription(
key="ethanol",
name="Ethanol",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("ethanol"),
),
AirQEntityDescription(
key="ch2o_M10",
name="Formaldehyde",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("ch2o_M10"),
),
AirQEntityDescription(
key="h2s",
name="H2S",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("h2s"),
),
AirQEntityDescription(
key="health",
name="Health Index",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:heart-pulse",
value=lambda data: data.get("health", 0.0) / 10.0,
),
AirQEntityDescription(
key="humidity",
name="Humidity",
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("humidity"),
),
AirQEntityDescription(
key="humidity_abs",
name="Absolute humidity",
native_unit_of_measurement=CONCENTRATION_GRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("humidity_abs"),
icon="mdi:water",
),
AirQEntityDescription(
key="h2_M1000",
name="Hydrogen",
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("h2_M1000"),
),
AirQEntityDescription(
key="ch4_MIPEX",
name="Methane",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("ch4_MIPEX"),
),
AirQEntityDescription(
key="n2o",
name="N2O",
device_class=SensorDeviceClass.NITROUS_OXIDE,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("n2o"),
),
AirQEntityDescription(
key="no_M250",
name="NO",
device_class=SensorDeviceClass.NITROGEN_MONOXIDE,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("no_M250"),
),
AirQEntityDescription(
key="no2",
name="NO2",
device_class=SensorDeviceClass.NITROGEN_DIOXIDE,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("no2"),
),
AirQEntityDescription(
key="o3",
name="Ozone",
device_class=SensorDeviceClass.OZONE,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("o3"),
),
AirQEntityDescription(
key="oxygen",
name="Oxygen",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("oxygen"),
icon="mdi:leaf",
),
AirQEntityDescription(
key="performance",
name="Performance Index",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
icon="mdi:head-check",
value=lambda data: data.get("performance", 0.0) / 10.0,
),
AirQEntityDescription(
key="pm1",
name="PM1",
device_class=SensorDeviceClass.PM1,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("pm1"),
icon="mdi:dots-hexagon",
),
AirQEntityDescription(
key="pm2_5",
name="PM2.5",
device_class=SensorDeviceClass.PM25,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("pm2_5"),
icon="mdi:dots-hexagon",
),
AirQEntityDescription(
key="pm10",
name="PM10",
device_class=SensorDeviceClass.PM10,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("pm10"),
icon="mdi:dots-hexagon",
),
AirQEntityDescription(
key="pressure",
name="Pressure",
device_class=SensorDeviceClass.PRESSURE,
native_unit_of_measurement=PRESSURE_HPA,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("pressure"),
),
AirQEntityDescription(
key="pressure_rel",
name="Relative pressure",
native_unit_of_measurement=PRESSURE_HPA,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("pressure_rel"),
icon="mdi:gauge",
),
AirQEntityDescription(
key="c3h8_MIPEX",
name="Propane",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("c3h8_MIPEX"),
),
AirQEntityDescription(
key="so2",
name="SO2",
device_class=SensorDeviceClass.SULPHUR_DIOXIDE,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("so2"),
),
AirQEntityDescription(
key="sound",
name="Noise",
native_unit_of_measurement=SOUND_PRESSURE_WEIGHTED_DBA,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("sound"),
icon="mdi:ear-hearing",
),
AirQEntityDescription(
key="sound_max",
name="Noise (Maximum)",
native_unit_of_measurement=SOUND_PRESSURE_WEIGHTED_DBA,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("sound_max"),
icon="mdi:ear-hearing",
),
AirQEntityDescription(
key="radon",
name="Radon",
native_unit_of_measurement=ACTIVITY_BECQUEREL_PER_CUBIC_METER,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("radon"),
icon="mdi:radioactive",
),
AirQEntityDescription(
key="temperature",
name="Temperature",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=TEMP_CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("temperature"),
),
AirQEntityDescription(
key="tvoc",
name="VOC",
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("tvoc"),
),
AirQEntityDescription(
key="tvoc_ionsc",
name="VOC (Industrial)",
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_BILLION,
state_class=SensorStateClass.MEASUREMENT,
value=lambda data: data.get("tvoc_ionsc"),
),
]
async def async_setup_entry(
hass: HomeAssistant,
config: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up sensor entities based on a config entry."""
coordinator = hass.data[DOMAIN][config.entry_id]
entities: list[AirQSensor] = []
device_status: dict[str, str] | Literal["OK"] = coordinator.data["Status"]
for description in SENSOR_TYPES:
if description.key not in coordinator.data:
if isinstance(
device_status, dict
) and "sensor still in warm up phase" in device_status.get(
description.key, "OK"
):
# warming up sensors do not contribute keys to coordinator.data
# but still must be added
_LOGGER.debug("Following sensor is warming up: %s", description.key)
else:
continue
entities.append(AirQSensor(coordinator, description))
async_add_entities(entities)
class AirQSensor(CoordinatorEntity, SensorEntity):
"""Representation of a Sensor."""
_attr_has_entity_name = True
def __init__(
self,
coordinator: AirQCoordinator,
description: AirQEntityDescription,
) -> None:
"""Initialize a single sensor."""
super().__init__(coordinator)
self.entity_description: AirQEntityDescription = description
self._attr_device_info = coordinator.device_info
self._attr_name = description.name
self._attr_unique_id = f"{coordinator.device_id}_{description.key}"
self._attr_native_value = description.value(coordinator.data)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle updated data from the coordinator."""
self._attr_native_value = self.entity_description.value(self.coordinator.data)
self.async_write_ha_state()

View File

@@ -0,0 +1,22 @@
{
"config": {
"step": {
"user": {
"title": "Identify the device",
"description": "Provide the IP address or mDNS of the device and its password",
"data": {
"ip_address": "[%key:common::config_flow::data::ip%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"invalid_input": "[%key:common::config_flow::error::invalid_host%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
}
}

View File

@@ -0,0 +1,22 @@
{
"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",
"invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435",
"invalid_input": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e \u0438\u043c\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442 \u0438\u043b\u0438 IP \u0430\u0434\u0440\u0435\u0441"
},
"step": {
"user": {
"data": {
"ip_address": "IP \u0430\u0434\u0440\u0435\u0441",
"password": "\u041f\u0430\u0440\u043e\u043b\u0430"
},
"description": "\u041f\u043e\u0441\u043e\u0447\u0435\u0442\u0435 IP \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u043b\u0438 mDNS \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0438 \u043d\u0435\u0433\u043e\u0432\u0430\u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u0430",
"title": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "El dispositiu ja est\u00e0 configurat"
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_auth": "Autenticaci\u00f3 inv\u00e0lida",
"invalid_input": "Nom de l'amfitri\u00f3 o adre\u00e7a IP inv\u00e0lids"
},
"step": {
"user": {
"data": {
"ip_address": "Adre\u00e7a IP",
"password": "Contrasenya"
},
"description": "Proporciona l'adre\u00e7a IP o el mDNS del dispositiu i la seva contrasenya",
"title": "Identificaci\u00f3 del dispositiu"
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Za\u0159\u00edzen\u00ed je ji\u017e nastaveno"
},
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"invalid_auth": "Neplatn\u00e9 ov\u011b\u0159en\u00ed",
"invalid_input": "Neplatn\u00fd hostitel nebo IP adresa"
},
"step": {
"user": {
"data": {
"ip_address": "IP adresa",
"password": "Heslo"
}
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert"
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_auth": "Ung\u00fcltige Authentifizierung",
"invalid_input": "Ung\u00fcltiger Hostname oder IP-Adresse"
},
"step": {
"user": {
"data": {
"ip_address": "IP-Adresse",
"password": "Passwort"
},
"description": "Gib die IP-Adresse oder den mDNS des Ger\u00e4ts und sein Passwort an",
"title": "Identifizieren des Ger\u00e4ts"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"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",
"invalid_auth": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2",
"invalid_input": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03ba\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03bf\u03cd \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae \u03ae \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 IP"
},
"step": {
"user": {
"data": {
"ip_address": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 IP",
"password": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2"
},
"description": "\u0394\u03ce\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 IP \u03ae \u03c4\u03bf mDNS \u03c4\u03b7\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03ae\u03c2 \u03c4\u03b7\u03c2",
"title": "\u03a0\u03c1\u03bf\u03c3\u03b4\u03b9\u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Device is already configured"
},
"error": {
"cannot_connect": "Failed to connect",
"invalid_auth": "Invalid authentication",
"invalid_input": "Invalid hostname or IP address"
},
"step": {
"user": {
"data": {
"ip_address": "IP Address",
"password": "Password"
},
"description": "Provide the IP address or mDNS of the device and its password",
"title": "Identify the device"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado"
},
"error": {
"cannot_connect": "No se pudo conectar",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
"invalid_input": "Nombre de host o direcci\u00f3n IP no v\u00e1lidos"
},
"step": {
"user": {
"data": {
"ip_address": "Direcci\u00f3n IP",
"password": "Contrase\u00f1a"
},
"description": "Proporciona la direcci\u00f3n IP o mDNS del dispositivo y su contrase\u00f1a",
"title": "Identificar el dispositivo"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Seade on juba h\u00e4\u00e4lestatud"
},
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"invalid_auth": "Tuvastamine nurjus",
"invalid_input": "Hostinimi v\u00f5i IP aadress vigane"
},
"step": {
"user": {
"data": {
"ip_address": "IP aadress",
"password": "Salas\u00f5na"
},
"description": "Sisesta seadme IP-aadress v\u00f5i mDNS ja parool",
"title": "Seadme tuvastamine"
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9"
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_auth": "Authentification non valide",
"invalid_input": "Nom d'h\u00f4te ou adresse IP non valide"
},
"step": {
"user": {
"data": {
"ip_address": "Adresse IP",
"password": "Mot de passe"
}
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Ure\u0111aj je ve\u0107 konfiguriran"
},
"error": {
"cannot_connect": "Povezivanje nije uspjelo",
"invalid_auth": "Neva\u017ee\u0107a provjera autenti\u010dnosti",
"invalid_input": "Neva\u017ee\u0107i naziv hosta ili IP adresa"
},
"step": {
"user": {
"data": {
"ip_address": "IP adresa",
"password": "Lozinka"
},
"description": "Navedite IP adresu ili mDNS ure\u0111aja i njegovu lozinku",
"title": "Identificirajte ure\u0111aj"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Az eszk\u00f6z m\u00e1r konfigur\u00e1lva van"
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s",
"invalid_auth": "\u00c9rv\u00e9nytelen hiteles\u00edt\u00e9s",
"invalid_input": "\u00c9rv\u00e9nytelen hosztn\u00e9v vagy IP-c\u00edm"
},
"step": {
"user": {
"data": {
"ip_address": "IP c\u00edm",
"password": "Jelsz\u00f3"
},
"description": "Adja meg az eszk\u00f6z IP-c\u00edm\u00e9t vagy mDNS c\u00edm\u00e9t \u00e9s jelszav\u00e1t.",
"title": "Az eszk\u00f6z azonos\u00edt\u00e1sa"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Perangkat sudah dikonfigurasi"
},
"error": {
"cannot_connect": "Gagal terhubung",
"invalid_auth": "Autentikasi tidak valid",
"invalid_input": "Nama host atau alamat IP tidak valid"
},
"step": {
"user": {
"data": {
"ip_address": "Alamat IP",
"password": "Kata Sandi"
},
"description": "Berikan alamat IP atau mDNS perangkat dan kata sandinya",
"title": "Identifikasi perangkat"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Il dispositivo \u00e8 gi\u00e0 configurato"
},
"error": {
"cannot_connect": "Impossibile connettersi",
"invalid_auth": "Autenticazione non valida",
"invalid_input": "Nome host o indirizzo IP non valido"
},
"step": {
"user": {
"data": {
"ip_address": "Indirizzo IP",
"password": "Password"
},
"description": "Fornire l'indirizzo IP o mDNS del dispositivo e la relativa password",
"title": "Identifica il dispositivo"
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"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",
"invalid_auth": "\u7121\u52b9\u306a\u8a8d\u8a3c",
"invalid_input": "\u7121\u52b9\u306a\u30db\u30b9\u30c8\u540d\u307e\u305f\u306fIP\u30a2\u30c9\u30ec\u30b9"
},
"step": {
"user": {
"data": {
"ip_address": "IP\u30a2\u30c9\u30ec\u30b9",
"password": "\u30d1\u30b9\u30ef\u30fc\u30c9"
}
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Apparaat is al geconfigureerd"
},
"error": {
"cannot_connect": "Verbinding mislukt",
"invalid_auth": "Ongeldige authenticatie poging",
"invalid_input": "Ongeldige hostnaam of IP adres"
},
"step": {
"user": {
"data": {
"ip_address": "IP adres",
"password": "Wachtwoord"
},
"description": "Geef het IP adress of mDNS van het apparaat en het bijbehorend wachtwoord",
"title": "Identificeer het apparaat"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Enheten er allerede konfigurert"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"invalid_auth": "Ugyldig godkjenning",
"invalid_input": "Ugyldig vertsnavn eller IP-adresse"
},
"step": {
"user": {
"data": {
"ip_address": "IP adresse",
"password": "Passord"
},
"description": "Oppgi IP-adressen eller mDNS til enheten og passordet",
"title": "Identifiser enheten"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Urz\u0105dzenie jest ju\u017c skonfigurowane"
},
"error": {
"cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
"invalid_auth": "Niepoprawne uwierzytelnienie",
"invalid_input": "Nieprawid\u0142owa nazwa hosta lub adres IP"
},
"step": {
"user": {
"data": {
"ip_address": "Adres IP",
"password": "Has\u0142o"
},
"description": "Podaj adres IP lub mDNS urz\u0105dzenia i jego has\u0142o",
"title": "Zidentyfikuj urz\u0105dzenie"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Dispositivo j\u00e1 est\u00e1 configurado"
},
"error": {
"cannot_connect": "Falha ao conectar",
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida",
"invalid_input": "Nome de host ou endere\u00e7o IP inv\u00e1lido"
},
"step": {
"user": {
"data": {
"ip_address": "Endere\u00e7o IP",
"password": "Senha"
},
"description": "Forne\u00e7a o endere\u00e7o IP ou mDNS do dispositivo e sua senha",
"title": "Identifique o dispositivo"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"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.",
"invalid_auth": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.",
"invalid_input": "\u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0438\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441."
},
"step": {
"user": {
"data": {
"ip_address": "IP-\u0430\u0434\u0440\u0435\u0441",
"password": "\u041f\u0430\u0440\u043e\u043b\u044c"
},
"description": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438 mDNS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044c.",
"title": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"invalid_auth": "Neplatn\u00e9 overenie",
"invalid_input": "Neplatn\u00fd n\u00e1zov hostite\u013ea alebo IP adresa"
},
"step": {
"user": {
"data": {
"ip_address": "IP adresa",
"password": "Heslo"
},
"description": "Zadajte IP adresu alebo mDNS zariadenia a jeho heslo",
"title": "Identifikujte zariadenie"
}
}
}
}

View File

@@ -0,0 +1,22 @@
{
"config": {
"abort": {
"already_configured": "\u88dd\u7f6e\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_auth": "\u9a57\u8b49\u78bc\u7121\u6548",
"invalid_input": "\u7121\u6548\u4e3b\u6a5f\u540d\u7a31\u6216 IP \u4f4d\u5740"
},
"step": {
"user": {
"data": {
"ip_address": "IP \u4f4d\u5740",
"password": "\u5bc6\u78bc"
},
"description": "\u63d0\u4f9b\u88dd\u7f6e\u4e4b IP \u4f4d\u5740\u6216 mDNS \u53ca\u5bc6\u78bc",
"title": "\u8b58\u5225\u88dd\u7f6e"
}
}
}
}

View File

@@ -1,7 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u00da\u010det je u\u017e nakonfigurovan\u00fd"
},
"error": {
"invalid_auth": "Neplatn\u00e9 overenie"
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"invalid_auth": "Neplatn\u00e9 overenie",
"unknown": "Neo\u010dak\u00e1van\u00e1 chyba"
},
"step": {
"user": {
"data": {
"description": "Ak chcete n\u00e1js\u0165 svoje poverenia, prihl\u00e1ste sa na adrese {url}",
"id": "ID",
"secret": "Tajn\u00e9"
}
}
}
}
}

View File

@@ -3,7 +3,7 @@
"name": "Airthings BLE",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/airthings_ble",
"requirements": ["airthings-ble==0.5.2"],
"requirements": ["airthings-ble==0.5.3"],
"dependencies": ["bluetooth"],
"codeowners": ["@vincegio"],
"iot_class": "local_polling",

View File

@@ -4,7 +4,7 @@
"already_configured": "\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d4\u05ea\u05e7\u05df \u05db\u05d1\u05e8 \u05e0\u05e7\u05d1\u05e2\u05d4",
"already_in_progress": "\u05d6\u05e8\u05d9\u05de\u05ea \u05d4\u05ea\u05e6\u05d5\u05e8\u05d4 \u05db\u05d1\u05e8 \u05de\u05ea\u05d1\u05e6\u05e2\u05ea",
"cannot_connect": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea",
"no_devices_found": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05d4\u05ea\u05e7\u05e0\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea",
"unknown": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05dc\u05ea\u05d9 \u05e6\u05e4\u05d5\u05d9\u05d4"
},
"flow_title": "{name}",

View File

@@ -0,0 +1,18 @@
{
"config": {
"abort": {
"cannot_connect": "\u0549\u0570\u0561\u057b\u0578\u0572\u057e\u0565\u0581 \u0574\u056b\u0561\u0576\u0561\u056c",
"no_devices_found": "\u0551\u0561\u0576\u0581\u0578\u0582\u0574 \u057d\u0561\u0580\u0584\u0565\u0580 \u0579\u0565\u0576 \u0563\u057f\u0576\u057e\u0565\u056c",
"unknown": "\u0531\u0576\u057d\u057a\u0561\u057d\u0565\u056c\u056b \u057d\u056d\u0561\u056c"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "\u0551\u0561\u0576\u056f\u0561\u0576\u0578\u0582\u055e\u0574 \u0565\u0584 \u056f\u0561\u0580\u0563\u0561\u057e\u0578\u0580\u0565\u056c {name}-\u0568:"
},
"user": {
"description": "\u0538\u0576\u057f\u0580\u0565\u0584 \u057d\u0561\u0580\u0584\u0568 \u056f\u0561\u0580\u0563\u0561\u057e\u0578\u0580\u0565\u056c\u0578\u0582 \u0570\u0561\u0574\u0561\u0580"
}
}
}
}

View File

@@ -5,18 +5,18 @@
"already_in_progress": "Nederlands",
"cannot_connect": "Nederlands",
"no_devices_found": "Nederlands",
"unknown": "Nederlands"
"unknown": "Onverwachte fout"
},
"flow_title": "Nederlands",
"step": {
"bluetooth_confirm": {
"description": "Nederlands"
"description": "Wilt u {name} instellen?"
},
"user": {
"data": {
"address": "Nederlands"
"address": "Apparaat"
},
"description": "Nederlands"
"description": "Kies een apparaat om in te stellen"
}
}
}

View File

@@ -0,0 +1,23 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9",
"already_in_progress": "Konfigur\u00e1cia u\u017e prebieha",
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"no_devices_found": "V sieti sa nena\u0161li \u017eiadne zariadenia",
"unknown": "Neo\u010dak\u00e1van\u00e1 chyba"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "Chcete nastavi\u0165 {name}?"
},
"user": {
"data": {
"address": "Zaradenie"
},
"description": "Vyberte zariadenie, ktor\u00e9 chcete nastavi\u0165"
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Zariadenie u\u017e je nakonfigurovan\u00e9"
},
"error": {
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"no_units": "Nepodarilo sa n\u00e1js\u0165 \u017eiadne skupiny AirTouch 4."
},
"step": {
"user": {
"data": {
"host": "Hostite\u013e"
},
"title": "Nastavte podrobnosti pripojenia AirTouch 4."
}
}
}
}

View File

@@ -17,7 +17,7 @@ from pyairvisual.node import NodeProError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigEntry, OptionsFlow
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_API_KEY,
CONF_IP_ADDRESS,
@@ -30,6 +30,10 @@ from homeassistant.const import (
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.schema_config_entry_flow import (
SchemaFlowFormStep,
SchemaOptionsFlowHandler,
)
from . import async_get_geography_id
from .const import (
@@ -66,6 +70,13 @@ PICK_INTEGRATION_TYPE_SCHEMA = vol.Schema(
}
)
OPTIONS_SCHEMA = vol.Schema(
{vol.Required(CONF_SHOW_ON_MAP): bool},
)
OPTIONS_FLOW = {
"init": SchemaFlowFormStep(OPTIONS_SCHEMA),
}
class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle an AirVisual config flow."""
@@ -165,9 +176,9 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow:
def async_get_options_flow(config_entry: ConfigEntry) -> SchemaOptionsFlowHandler:
"""Define the config flow to handle options."""
return AirVisualOptionsFlowHandler(config_entry)
return SchemaOptionsFlowHandler(config_entry, OPTIONS_FLOW)
async def async_step_geography_by_coords(
self, user_input: dict[str, str] | None = None
@@ -258,30 +269,3 @@ class AirVisualFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
if user_input["type"] == INTEGRATION_TYPE_GEOGRAPHY_NAME:
return await self.async_step_geography_by_name()
return await self.async_step_node_pro()
class AirVisualOptionsFlowHandler(config_entries.OptionsFlow):
"""Handle an AirVisual options flow."""
def __init__(self, entry: ConfigEntry) -> None:
"""Initialize."""
self.entry = entry
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
"""Manage the options."""
if user_input is not None:
return self.async_create_entry(title="", data=user_input)
return self.async_show_form(
step_id="init",
data_schema=vol.Schema(
{
vol.Required(
CONF_SHOW_ON_MAP,
default=self.entry.options.get(CONF_SHOW_ON_MAP),
): bool
}
),
)

View File

@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0442\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435 \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e"
"reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430"
},
"error": {
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0445 \u043f\u0440\u0438 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",

View File

@@ -1,7 +1,20 @@
{
"state": {
"airvisual__pollutant_label": {
"co": "Oxid uho\u013enat\u00fd",
"n2": "Oxid dusi\u010dit\u00fd",
"o3": "Oz\u00f3n",
"p1": "PM10",
"p2": "PM2,5",
"s2": "Oxid siri\u010dit\u00fd"
},
"airvisual__pollutant_level": {
"good": "Dobr\u00e9"
"good": "Dobr\u00e9",
"hazardous": "Nebezpe\u010dn\u00e9",
"moderate": "Mierne",
"unhealthy": "Nezdrav\u00e9",
"unhealthy_sensitive": "Nezdrav\u00e9 pre citliv\u00e9 skupiny",
"very_unhealthy": "Ve\u013emi nezdrav\u00e9"
}
}
}

View File

@@ -1,10 +1,14 @@
{
"config": {
"abort": {
"already_configured": "Umiestnenie u\u017e je nakonfigurovan\u00e9 alebo ID uzla/Pro je u\u017e zaregistrovan\u00e9.",
"reauth_successful": "Op\u00e4tovn\u00e9 overenie bolo \u00faspe\u0161n\u00e9"
},
"error": {
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d"
"cannot_connect": "Nepodarilo sa pripoji\u0165",
"general_error": "Neo\u010dak\u00e1van\u00e1 chyba",
"invalid_api_key": "Neplatn\u00fd API k\u013e\u00fa\u010d",
"location_not_found": "Poloha sa nena\u0161la"
},
"step": {
"geography_by_coords": {
@@ -12,17 +16,42 @@
"api_key": "API k\u013e\u00fa\u010d",
"latitude": "Zemepisn\u00e1 \u0161\u00edrka",
"longitude": "Zemepisn\u00e1 d\u013a\u017eka"
}
},
"title": "Konfigur\u00e1cia geografie"
},
"geography_by_name": {
"data": {
"api_key": "API k\u013e\u00fa\u010d"
"api_key": "API k\u013e\u00fa\u010d",
"city": "Mesto",
"country": "Krajina",
"state": "stav"
},
"title": "Konfigur\u00e1cia geografie"
},
"node_pro": {
"data": {
"ip_address": "Hostite\u013e",
"password": "Heslo"
}
},
"reauth_confirm": {
"data": {
"api_key": "API k\u013e\u00fa\u010d"
}
},
"title": "Op\u00e4tovn\u00e9 overenie AirVisual"
},
"user": {
"title": "Nakonfigurujte AirVisual"
}
}
},
"options": {
"step": {
"init": {
"data": {
"show_on_map": "Zobrazte na mape sledovan\u00fa geografiu"
},
"title": "Nakonfigurujte AirVisual"
}
}
}

View File

@@ -1,6 +1,7 @@
"""Config flow for Airzone."""
from __future__ import annotations
import logging
from typing import Any
from aioairzone.const import DEFAULT_PORT, DEFAULT_SYSTEM_ID
@@ -9,13 +10,16 @@ from aioairzone.localapi import AirzoneLocalApi, ConnectionOptions
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.components import dhcp
from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.data_entry_flow import AbortFlow, FlowResult
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers.device_registry import format_mac
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
CONFIG_SCHEMA = vol.Schema(
{
vol.Required(CONF_HOST): str,
@@ -29,9 +33,17 @@ SYSTEM_ID_SCHEMA = CONFIG_SCHEMA.extend(
)
def short_mac(addr: str) -> str:
"""Convert MAC address to short address."""
return addr.replace(":", "")[-4:].upper()
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle config flow for an Airzone device."""
_discovered_ip: str | None = None
_discovered_mac: str | None = None
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
@@ -60,7 +72,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
errors["base"] = "cannot_connect"
else:
if mac:
await self.async_set_unique_id(format_mac(mac))
await self.async_set_unique_id(
format_mac(mac), raise_on_progress=False
)
self._abort_if_unique_id_configured(
updates={
CONF_HOST: user_input[CONF_HOST],
@@ -76,3 +90,78 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
data_schema=data_schema,
errors=errors,
)
async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult:
"""Handle DHCP discovery."""
self._discovered_ip = discovery_info.ip
self._discovered_mac = discovery_info.macaddress
_LOGGER.debug(
"DHCP discovery detected Airzone WebServer: %s", self._discovered_mac
)
self._async_abort_entries_match({CONF_HOST: self._discovered_ip})
await self.async_set_unique_id(format_mac(self._discovered_mac))
self._abort_if_unique_id_configured()
options = ConnectionOptions(self._discovered_ip)
airzone = AirzoneLocalApi(
aiohttp_client.async_get_clientsession(self.hass), options
)
try:
await airzone.get_version()
except AirzoneError as err:
raise AbortFlow("cannot_connect") from err
return await self.async_step_discovered_connection()
async def async_step_discovered_connection(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Confirm discovery."""
assert self._discovered_ip is not None
assert self._discovered_mac is not None
errors = {}
base_schema = {vol.Required(CONF_PORT, default=DEFAULT_PORT): int}
if user_input is not None:
airzone = AirzoneLocalApi(
aiohttp_client.async_get_clientsession(self.hass),
ConnectionOptions(
self._discovered_ip,
user_input[CONF_PORT],
user_input.get(CONF_ID, DEFAULT_SYSTEM_ID),
),
)
try:
mac = await airzone.validate()
except InvalidSystem:
base_schema[vol.Required(CONF_ID, default=1)] = int
errors[CONF_ID] = "invalid_system_id"
except AirzoneError:
errors["base"] = "cannot_connect"
else:
user_input[CONF_HOST] = self._discovered_ip
if mac is None:
mac = self._discovered_mac
await self.async_set_unique_id(format_mac(mac))
self._abort_if_unique_id_configured(
updates={
CONF_HOST: user_input[CONF_HOST],
CONF_PORT: user_input[CONF_PORT],
}
)
title = f"Airzone {short_mac(mac)}"
return self.async_create_entry(title=title, data=user_input)
return self.async_show_form(
step_id="discovered_connection",
data_schema=vol.Schema(base_schema),
errors=errors,
)

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