Compare commits

...

2992 Commits

Author SHA1 Message Date
Paulus Schoutsen
3abd0877f7 Bumped version to 2022.10.0b4 2022-10-02 21:25:55 -04:00
Jesse Hills
68aa0856c3 Bump aioesphomeapi to 11.1.0 (#79515) 2022-10-02 21:25:34 -04:00
J. Nick Koston
ad1ed811e8 Bump bluetooth dependencies (#79514) 2022-10-02 21:25:33 -04:00
Michael
8c84efa842 Remove deprecated update binary sensor from Synology DSM (#79509) 2022-10-02 21:25:32 -04:00
Michael
12fc7f29d5 Set Synology DSM update entity to unavailable in case no data from api gathered (#79508) 2022-10-02 21:25:32 -04:00
Bram Kragten
cc8267fb13 Update frontend to 20221002.0 (#79491) 2022-10-02 21:25:31 -04:00
Robert Svensson
bcd9510733 Fix missing string message in UniFi (#79487) 2022-10-02 21:25:30 -04:00
TheJulianJES
43891f0baa Fix empty default ZHA configuration (#79475)
* Also add 0 as a default for transition in const.py

This is the same default transition (none) that is used in ZHA's light.py

* Send default values for unconfigured options in ZHA's configuration API

* Remove options that match defaults values before saving
2022-10-02 21:25:30 -04:00
IceBotYT
70010c0115 Fix LaCrosse View not updating (#79474) 2022-10-02 21:25:29 -04:00
David F. Mulcahey
c32e4d34f6 Remove unnecessary config entity from ZHA (#79472) 2022-10-02 21:25:28 -04:00
J. Nick Koston
f8f3d96a74 Bump dbus-fast to 1.20.0 (#79465) 2022-10-02 21:25:28 -04:00
zbeky
412ef9d126 Add EVOLVEO Heat M30v2 TRV (#79462) 2022-10-02 21:25:27 -04:00
Hung Nguyen
9bb75bb726 Skip parsing Flume sensors without location (#79456) 2022-10-02 21:25:26 -04:00
Allen Porter
321da50a7e Update nest climate to avoid duplicate set mode commands (#79445) 2022-10-02 21:25:26 -04:00
Erik Montnemery
e410e298c4 Remove state_unit_of_measurement from metadata DB table (#79370)
* Remove state_unit_of_measurement from metadata DB table

* Adjust test
2022-10-02 21:25:25 -04:00
Nyro
d41d09aa7e Fix overkiz entity name (#79229) 2022-10-02 21:25:24 -04:00
Paulus Schoutsen
590d47aad0 Bumped version to 2022.10.0b3 2022-10-01 21:28:46 -04:00
J. Nick Koston
6c7060e0e2 Bump ibeacon-ble to 0.7.3 (#79443) 2022-10-01 21:28:40 -04:00
J. Nick Koston
2fed773b93 Bump bluetooth-adapters to 0.5.3 (#79442) 2022-10-01 21:28:39 -04:00
J. Nick Koston
71e320fc96 Bump dbus-fast to 1.18.0 (#79440)
Changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.17.0...v1.18.0
2022-10-01 21:28:39 -04:00
Tobias Sauerwein
de90358f2a Fix Netatmo scope issue with HA cloud (#79437)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-10-01 21:28:38 -04:00
Michael
2703bbc630 Fix checking of upgrade API availability during setup of Synology DSM integration (#79435) 2022-10-01 21:28:37 -04:00
Matrix
a3833a408b Fix mqtt reconnect fail when token expired (#79428)
* fix mqtt reconnect fail when token expired

* suggest change
2022-10-01 21:28:37 -04:00
Hans Oischinger
933b84050e vicare: Don't create unsupportedd button entites (#79425)
Button entities should only be offered when the datapoint exists on
the API.
2022-10-01 21:28:36 -04:00
Shay Levy
046c3b4dd1 Bump aiowebostv to 0.2.1 (#79423) 2022-10-01 21:28:35 -04:00
Mick Vleeshouwer
7e8905758b Fix low speed cover in Overkiz integration (#79416)
Fix low speed cover
2022-10-01 21:28:35 -04:00
Shay Levy
97f5670fdc Fix unifiprotect test failing CI (#79406) 2022-10-01 21:28:34 -04:00
Maciej Bieniek
b3c43b981a Do not use AQI device class for CAQI sensor in Airly integration (#79402) 2022-10-01 21:28:33 -04:00
uvjustin
ebb213eb14 Fix onvif snapshot fallback (#79394)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-10-01 21:28:33 -04:00
J. Nick Koston
a0ba102492 Ensure bluetooth disconnect callback fires if esphome config entry is reloaded (#79389) 2022-10-01 21:28:32 -04:00
J. Nick Koston
be036914a6 Improve robustness of linking homekit yaml to config entries (#79386) 2022-10-01 21:28:31 -04:00
G Johansson
ecb934ee6a Fix _attr_name issue in Yale Smart Alarm (#79378)
Fix name issue
2022-10-01 21:28:31 -04:00
J. Nick Koston
783f514df3 Enable delete device support for iBeacon (#79339) 2022-10-01 21:28:30 -04:00
kingy444
2e2d8d1367 Powerview bump aiopvapi to 2.0.2 (#79274) 2022-10-01 21:28:29 -04:00
Allen Porter
1836dc4a3b Address Google Sheets PR feedback (#78889) 2022-10-01 21:28:29 -04:00
Paulus Schoutsen
62679950b1 Bumped version to 2022.10.0b2 2022-09-30 14:47:22 -04:00
Shay Levy
4db4ab1ab0 Make Shelly update sensors disabled by default (#79376) 2022-09-30 14:45:20 -04:00
Joakim Plate
2436e375bb Fjaraskupan stop on 0 percentage (#79367)
* Make sure fan turns off on 0 percentage

* Remember old percentage
2022-09-30 14:45:19 -04:00
epenet
ac8805601d Realign util constants with 2022.9.7 (#79357) 2022-09-30 14:45:18 -04:00
epenet
a5b8ec7113 Make temperature conversions private (#79349) 2022-09-30 14:45:17 -04:00
epenet
7e2af8685a Adjust icons with new device classes (#79348)
* Adjust icons with new device classes

* Fix mysensors tests

* Fix mysensors tests
2022-09-30 14:45:17 -04:00
Zack Barett
5bab83511a Add Third Reality to Zigbee Iot standards (#79341) 2022-09-30 14:45:16 -04:00
J. Nick Koston
3d4e5b88e0 Bump govee-ble to 0.19.1 to handle another H5181 (#79340)
fixes #79188
2022-09-30 14:45:15 -04:00
J. Nick Koston
dcae000683 Remove iBeacon devices that rotate their major,minor and mac (#79338) 2022-09-30 14:45:15 -04:00
J. Nick Koston
ffaa277f18 Switch to using new esphome bluetooth_proxy_version field (#79331) 2022-09-30 14:45:14 -04:00
Duco Sebel
ffb8be167f Use SensorDeviceClass.VOLUME in HomeWizard (#79323)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-30 14:45:14 -04:00
J. Nick Koston
5c86e47e99 Handle short local names from esphome proxies (#79321) 2022-09-30 14:45:13 -04:00
Robert Hillis
ba8b01597f Unregister Google sheets services during unload (#79314)
* Unregister services during unload - Google Sheets

* uno mas
2022-09-30 14:45:12 -04:00
Erik Montnemery
54ba4a74bc Improve naming of units used in statistics (#79276) 2022-09-30 14:45:11 -04:00
uvjustin
adc5e9f215 Mask spotify content in owntone library (#79247) 2022-09-30 14:45:11 -04:00
Paulus Schoutsen
e3d4a7cf22 Store alternative domain for Zeroconf homekit discovery (#79240) 2022-09-30 14:45:10 -04:00
Paulus Schoutsen
3909fa70d5 Bumped version to 2022.10.0b1 2022-09-29 13:44:27 -04:00
Bram Kragten
0c7eb3b084 Update frontend to 20220929.0 (#79317) 2022-09-29 13:44:14 -04:00
Aaron Bach
fda831e17b Don't create Repairs issue on Guardian entity replacement (#79311) 2022-09-29 13:44:14 -04:00
Aaron Bach
482ce758e4 Don't create Repairs issue on RainMachine entity replacement (#79310)
* Don't create Repairs issue on RainMachine entity replacement

* Strings
2022-09-29 13:44:13 -04:00
Aaron Bach
2df05ee353 Use correct exception type for RainMachine select API error (#79309) 2022-09-29 13:44:12 -04:00
HarvsG
1e7f79ff99 Add repair for missing Bayesian prob_given_false (#79303) 2022-09-29 13:44:12 -04:00
Maciej Bieniek
bae41d0702 Check if new_version is not empty string in Shelly update platform (#79300) 2022-09-29 13:44:11 -04:00
epenet
8c2cfe0281 Use SensorDeviceClass.DISTANCE in components (#79285)
* Use SensorDeviceClass.DISTANCE in components

* Adjust mysensors
2022-09-29 13:44:10 -04:00
epenet
8342964345 Use SensorDeviceClass.WEIGHT in components (#79277) 2022-09-29 13:44:10 -04:00
epenet
7b026a8eaf Use SensorDeviceClass.SPEED in metoffice (#79263) 2022-09-29 13:44:09 -04:00
epenet
b17413f152 Use SensorDeviceClass.SPEED in components (#79262) 2022-09-29 13:44:08 -04:00
epenet
d552056c17 Use SensorDeviceClass.SPEED in rfxtrx (#79261)
Use SensorDeviceClass.VOLUME in rfxtrx
2022-09-29 13:44:08 -04:00
epenet
ddd981d4fe Use SensorDeviceClass.VOLUME in components (#79253) 2022-09-29 13:44:07 -04:00
J. Nick Koston
0e02d37815 Wait for disconnect when we are out of connection ble slots in esphome (#79246) 2022-09-29 13:44:06 -04:00
Paulus Schoutsen
92d2210a81 Add DialogFlow to Google brand (#79245) 2022-09-29 13:44:06 -04:00
Paulus Schoutsen
ef0de81c68 Add Leviton brand (#79244) 2022-09-29 13:44:05 -04:00
Dennis Schroer
ef8c1130d6 Update huisbaasje-client 0.1.0 to energyflip-client 0.2.0 (#79233) 2022-09-29 13:44:04 -04:00
Paulus Schoutsen
45a217238e Add ubiquiti brand (#79232) 2022-09-29 13:44:03 -04:00
Paulus Schoutsen
9aa6323c46 Add Cast + Chat to Google brand (#79231) 2022-09-29 13:44:03 -04:00
Paulus Schoutsen
0ef73df451 Add Denon brand (#79230) 2022-09-29 13:44:02 -04:00
Paulus Schoutsen
0c05e0e019 Add Apple brand (#79227) 2022-09-29 13:44:01 -04:00
Paulus Schoutsen
0d462b6a14 Add fritz brand (#79226) 2022-09-29 13:44:01 -04:00
Paulus Schoutsen
49114c72e0 Finish Google brand (#79225) 2022-09-29 13:44:00 -04:00
J. Nick Koston
d756383c5b Bump yalexs to 1.2.4 (#79222) 2022-09-29 13:43:59 -04:00
HarvsG
3e5523c549 Add to issue registry if user has mirrored entries for breaking in #67631 (#79208)
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2022-09-29 13:43:59 -04:00
Raman Gupta
db7fabc53f Bump zwave-js-server-python to 0.42.0 (#79020) 2022-09-29 13:43:58 -04:00
Rami Mosleh
e421b90838 Allow entries with same user_key for Pushover (#77904)
* Allow entries with same user_key for Pushover

* remove unique_id completely

* Abort reauth if entered api_key already exists
Update tests
2022-09-29 13:43:57 -04:00
ehendrix23
b15af5beca Resolve traceback error when using variables in template triggers (#77287)
Co-authored-by: Erik <erik@montnemery.com>
2022-09-29 13:43:57 -04:00
Franck Nijhof
e09605ff9b Bumped version to 2022.10.0b0 2022-09-28 20:49:01 +02:00
Jafar Atili
0e9e72c6e9 Bump pyswitchbee to 1.5.5 (#79206) 2022-09-28 20:41:33 +02:00
David F. Mulcahey
2ed48a9b28 Add configuration entities and device actions for Inovelli Blue Series switch to ZHA (#79106)
* Add Inovelli configutation entities to ZHA

* add device actions

* fix attribute name collision

* add device action tests

* disable remote protection per Inovelli request

* expect_reply to false

* update test for expect_reply change

* inovelli feedback

* translation keys and strings

* clean up numbers

* prevent double events

* remove individual LED defaults per inovelli

* redundant check

* update test
2022-09-28 14:22:39 -04:00
J. Nick Koston
7042d6d35b Add ESPHome BleakClient (#78911)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-28 08:06:30 -10:00
epenet
9c3b40dad1 Deprecate conversion utilities (#78957)
* Deprecate utilities

* Deprecate distance and speed

* Add tests

* Adjust pylint

* Simplify temperature deprecation
2022-09-28 19:39:44 +02:00
Daniel Shokouhi
3b05bb5b3a Update iBeacon UUID Major and Minor format for compatibility (#79220) 2022-09-28 07:23:55 -10:00
starkillerOG
4bdd8cb459 Shelly migrate to update entity (#78305)
* Add update entity

* fixes

* fixes

* change to CONFIG catogory

* return latest version if no update available

* fixes

* Remove firmware binary_sensors and buttons

* import Callable from collections

* remove ota_update tests

* Update homeassistant/components/shelly/update.py

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

* simplify

* fix mypy

* Create test_update.py

* fix isort

* add progress support

* fix styling

* fix update_tests

* fix styling

* do not exclude shelly update test

* bring coverage to 100%

* snake case

* snake case

* change str(x) to cast(str, x)

* simplify tests

* further simplify tests

* Split MOCK_SHELLY_COAP and MOCK_SHELLY_RPC

* fix issort

* fix status test

* fix isort

* run python3 -m script.hassfest

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-09-28 20:21:30 +03:00
Bram Kragten
bfd9201623 Update frontend to 20220928.0 (#79217) 2022-09-28 19:05:37 +02:00
Allen Porter
cef1ebba3b Rename Google Calendars to Google Calendar (#79210) 2022-09-28 18:02:32 +02:00
Jafar Atili
5262f44b81 Refactor duplicate code in switchbee (#79209)
* Refactored duplicate code

* Update homeassistant/components/switchbee/entity.py

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

* Update homeassistant/components/switchbee/entity.py

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

* Update homeassistant/components/switchbee/entity.py

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

* more

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-28 17:46:40 +02:00
Erik Montnemery
b173ae7f44 Add support for integrations v2 (#78801)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-28 11:31:48 -04:00
Erik Montnemery
7f08dd851e Make script entities register their own service (#79202) 2022-09-28 11:05:29 -04:00
Maciej Bieniek
8719829fbe Add missing error catch in Shelly reauth flow (#79205) 2022-09-28 11:00:27 -04:00
avee87
8c0e3b9d50 Migrate MetOffice to new entity naming style (#74978)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-09-28 16:37:35 +02:00
Jafar Atili
de3a1f444c Add light platform for switchbee integration (#78382)
* Added Light platform for switchbee integration

* added light to .coveragerc

* Applied code review feedback from other PR

* Fixes based on previous reviewes

* fixed small mistake

* added test coverage for light

* aligned code with other PR

* rebased

* fixes

* removed unecessary changes

* Update homeassistant/components/switchbee/light.py

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

* Update homeassistant/components/switchbee/light.py

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

* more fixes

* more fixes

* adjusting switch with the new change

* more fixes

* Update homeassistant/components/switchbee/light.py

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

* Update homeassistant/components/switchbee/light.py

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

* Update homeassistant/components/switchbee/light.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-28 16:30:33 +02:00
epenet
24c26dc032 Use unit_conversion in components (#79204)
* Use unit_conversion in components

* Two more
2022-09-28 16:05:31 +02:00
epenet
f76eeaeea1 Adjust docstring for SensorDeviceClass.WEIGHT (#79201) 2022-09-28 09:03:18 -04:00
Maciej Bieniek
1ac5696e7f Bump pybravia to 0.2.3 (#79200) 2022-09-28 14:46:43 +02:00
Vilppu Vuorinen
e39c4db438 Add daily energy consumption sensor for melcloud (#78682) 2022-09-28 14:45:14 +02:00
epenet
253647aaa9 Use unit_conversion in unit_system utility (#79004) 2022-09-28 14:37:22 +02:00
Colin Robbins
a38b36cf34 Add long term stats support to Withings sensors (#74829) 2022-09-28 14:33:38 +02:00
Jafar Atili
4453241176 Fix spelling in switchbee (#79195) 2022-09-28 14:18:06 +02:00
Erik Montnemery
cce23683f1 Add additional integration_type options for integration manifests (#79193)
* Add additional integration_type options for integration manifests

* Rename integration_type internal to system
2022-09-28 14:17:39 +02:00
Jan Bouwhuis
84b2c74746 Move MQTT discovery hass.data globals to dataclass (#78706)
* Add MQTT discovery hass.data globals to dataclass

* isort

* Additional rework

* Add hass.data["mqtt_tags"] to dataclass

* Follow-up comment

* Corrections
2022-09-28 14:13:44 +02:00
Phil Bruckner
a38c125765 Improve Life360 address attribute (#76269) 2022-09-28 14:10:19 +02:00
Paulus Schoutsen
d3f5ccfed8 Allow fetching script config (#79131) 2022-09-28 13:52:58 +02:00
Jafar Atili
653e0917bb Bump pyswitchbee to 1.5.3 (#78583)
* Add switchbee to strict-typing

* strict typing

* Bumped pyswitchbee

* bumped library to 1.5.1

* strict-typed the package

* fixed issue

* addressed epenet comments

* fixed requirements_all

* once more
2022-09-28 13:51:52 +02:00
epenet
5438552d4a Cleanup unit conversion (#79197)
* Move UNIT_RATIO to BaseUnitConverter

* Make UNIT_CONVERSION private

* Remove STATISTIC_UNIT_TO_UNIT_CLASS constant

* Cleanup websocket_api

* Imrpove valid_units check
2022-09-28 13:49:46 +02:00
Teemu R
a5c9c1880a Add missing quality scales for internal integrations (#76499) 2022-09-28 13:46:20 +02:00
Rami Mosleh
9bd2117240 Add typing hints to mikrotik tests (#79144) 2022-09-28 13:05:45 +02:00
Paulus Schoutsen
4843d330f3 Allow fetching automation config (#79130) 2022-09-28 12:49:00 +02:00
epenet
5389ff3253 Add new weight device class (#79185) 2022-09-28 12:13:49 +02:00
epenet
c96c5bed7d Remove argument validation in Unit Converter (#79107)
* Remove argument validation in Unit Converter

* Use HomeAssistantError

* Adjust tests

* Improve coverage
2022-09-28 10:58:04 +02:00
epenet
1b8bed936c Use new DISTANCE and VOLUME device classes in Renault (#77488) 2022-09-28 10:46:24 +02:00
Paulus Schoutsen
010430780e Allow controlling PrusaLink print jobs (#78720)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-28 10:42:19 +02:00
Tom Brien
87dfe82613 Bump holidays to 0.16 (#78832) 2022-09-28 10:39:43 +02:00
Erik Montnemery
6ef33b1d39 Fix overriding a script's entity_id (#78765) 2022-09-28 10:37:34 +02:00
Marc Mueller
4a432db611 Remove type ignore from bluetooth (#79146) 2022-09-28 10:29:55 +02:00
JQWeb
65788fad57 Update roomba config flow description (#77974)
* Update strings.json

Automatic retrieval of the Roomba password is not possible when the iRobot App is opened on any device.
If the iRobot App is open, the password retrieval will fail.
- I added a sentence informing the users that they should make sure that the iRobot App is closed on all devices, before pressing the Home Button on the Roomba.
- Also i added a sentence informing the users that they should make sure that the iRobot App is closed on all devices, in the failure message.
This way, more users will have a succesful password retrieval, resulting in a smoother configuration experience for their Roomba into Home Assistant.

* Update strings.json

Added the sentence to the front of the message
Added an "Important" notice to catch more attention.

* Update homeassistant/components/roomba/strings.json

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>

* Update strings.json

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>
2022-09-28 10:05:58 +02:00
J. Nick Koston
63b7a23636 Bump switchbot to fix assertion error on processing humidifer data (#79180)
changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.19.12...0.19.13
2022-09-28 09:29:09 +02:00
Yuxin Wang
52307708c8 Refactor apcupsd to use config flow (#64809)
* Add Config Flow to APCUPSd integration and remove YAML support.

* Hide the binary sensor if user does not select STATFLAG resource.

* Add tests for config flows.

* Simplify config flow code.

* Spell fix.

* Fix pylint warnings.

* Simplify the code for config flow.

* First attempt to implement import flows to suppport legacy YAML configurations.

* Remove unnecessary log calls.

* Wrap synchronous update call with `hass.async_add_executor_job`.

* Import the YAML configurations when sensor platform is set up.

* Move the logger call since the variables are not properly set up.

* Add codeowner.

* Fix name field of manifest.json.

* Fix linting issue.

* Fix incorrect dependency due to incorrect rebase.

* Update codeowner and config flows via hassfest.

* Postpone the deprecation warning to 2022.7.

* Import future annotations for init file.

* Add an newline at the end to make prettier happy.

* Update github id.

* Add type hints for return types of steps in config flow.

* Move the deprecation date for YAML config to 2022.12.

* Update according to reviews.

* Use async_forward_entry_setups.

* Add helper properties to `APCUPSdData` class.

* Add device_info for binary sensor.

* Simplify config flow.

* Remove options flow strings.

* update the tests according to the changes.

* Add `entity_registry_enabled_default` to entities and use imported CONF_RESOURCES to disable entities instead of skipping them.

* Update according to reviews.

* Do not use model of the UPS as the title for the integration.

Instead, simply use "APCUPSd" as the integration title and let the device info serve as title for each device instead.

* Change schema to be a global variable.

* Add more comments.

* Rewrite the tests for config flows.

* Fix enabled_by_default.

* Show friendly titles in the integration.

* Add import check in `async_setup_platform` to avoid importing in sensor platform setup.

* Add import check in `async_setup_platform` to avoid importing in sensor platform setup.

* Update comments in test files.

* Use parametrize instead of manually iterating different test cases.

* Swap the order of the platform constants.

* Avoid using broad exceptions.

* Set up device info via `_attr_device_info`.

* Remove unrelated test in `test_config_flow`.

* Use `DeviceInfo` instead of dict to assign to `_attr_device_info`.

* Add english translation.

* Add `async_create_issue` for deprecated YAML configuration.

* Enable UPS status by default since it could show "online, charging, on battery etc" which is meaningful for all users.

* Apply suggestions from code review

* Apply suggestion

* Apply suggestion

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-28 09:14:04 +02:00
G Johansson
18be5f1387 SQL fix entry options save (#78145)
* SQL fix options

* Testing
2022-09-28 08:49:37 +02:00
Jack Boswell
3d3aa824b3 Refactor Trend to use async_setup_platform (#78216)
* Move trend constants to const.py

* Migrate to async_setup_platform

* Fix test

* Reorder attrs
2022-09-28 08:46:13 +02:00
Erik Montnemery
c38b1e7727 Improve check of new_entity_id in entity_registry.async_update_entity (#78276)
* Improve check of new_entity_id in entity_registry.async_update_entity

* Fix race in rfxtrx config flow

* Make sure Event is created on time

* Rename poorly named variable

* Fix typing

* Correct typing of _handle_state_change
2022-09-28 08:43:58 +02:00
Michael
69bf77be12 Avoid multiline lambdas in Fritz!Smarthome sensors (#78524)
* avoid multiline lambdas

* update tests
2022-09-28 08:43:31 +02:00
Vincent Knoop Pathuis
9ee81fdd77 Landis+Gyr Heat Meter: add heat previous year GJ as diagnostic (#78690)
Add heat previous year GJ as diagnostic
2022-09-28 08:28:31 +02:00
Robert Hillis
e360a4fa9e Bump aiopyarr to 22.9.0 (#79173) 2022-09-28 08:06:24 +02:00
J. Nick Koston
0c191df598 Bump ibeacon-ble to 0.7.1 (#79182) 2022-09-28 07:48:38 +02:00
Ville Skyttä
b54458dfba Fix EZVIZ spelling case (#79164)
* Fix EZVIZ spelling case

The vendor seems consistent about all-uppercase spelling, so let's
follow suit.

* Revert changes to translations other than English
2022-09-28 07:41:33 +02:00
J. Nick Koston
38f3fa0762 Handle invalid ISY data when the device is booting (#79163) 2022-09-27 17:42:48 -10:00
J. Nick Koston
7b708f4b35 Fix bluetooth active update coordinator not returning on failure (#79167)
We also need to return on polling exception so we do not
try to update.

Fixes #79166
2022-09-27 22:51:46 -04:00
J. Nick Koston
40f5c317c7 Bump yalexs to 1.2.3 (#79170)
Maps more missing activities

Fixes #79119

changelog: https://github.com/bdraco/yalexs/compare/v1.2.2...v1.2.3
2022-09-27 22:50:56 -04:00
J. Nick Koston
1cf1d2c2bb Update pySwitchbot for newer firmwares (#79174)
changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.19.11...0.19.12

found while developing bluetooth proxies for esphome
2022-09-27 22:50:40 -04:00
J. Nick Koston
8c3e0d527d Bump dbus-fast to 0.17.0 (#79177)
Changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.15.1...v1.17.0
2022-09-27 22:50:06 -04:00
David F. Mulcahey
cd4b0f53a1 Bump ZHA quirks lib (#79175) 2022-09-27 20:35:14 -04:00
javicalle
e5630c6a66 New ZONNSMART TRVs (#79169)
Adds a few missing ZONNSMART TRVs
2022-09-27 16:25:36 -04:00
Erik Montnemery
9084beda32 Keep storing statistics for sensors which change device class (#79155) 2022-09-27 14:33:28 -04:00
uvjustin
a561b608bf Add spotify support to forked-daapd (#79136) 2022-09-27 14:32:05 -04:00
uvjustin
b043a6ba88 Cleanup add browse media forked daapd #79009 (#79157) 2022-09-27 14:07:19 -04:00
J. Nick Koston
5eb50f63fd Ensure bleak_retry_connector uses HaBleakClientWrapper (#79132) 2022-09-27 14:06:10 -04:00
J. Nick Koston
8eaa22cf90 Break out esphome domain data (#79134) 2022-09-27 07:56:00 -10:00
J. Nick Koston
d11916758c Handle timeout on pairing close in HomeKit Controller (#79133) 2022-09-27 07:51:42 -10:00
J. Nick Koston
d991c173a2 Add new distance device class to iBeacons (#79162) 2022-09-27 13:49:34 -04:00
epenet
12e4d18038 Add volume to SensorDeviceClass (#77960)
* Add volume to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust sensor UNIT_CONVERTERS

* Adjust recorder

* Update strings.json
2022-09-27 19:37:52 +02:00
Franck Nijhof
d8a15f3dda Fix Withings authentication to leverage default redirect URI (#79158) 2022-09-27 13:22:52 -04:00
epenet
7c448416e1 Add speed to SensorDeviceClass (#77953)
* Add speed to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust sensor UNIT_CONVERTERS

* Add tests

* Add websocket tests

* Update strings.json
2022-09-27 17:19:34 +01:00
Erik Montnemery
7ead77eea6 Correct typing of async_track_state_change (#79150)
* Correct typing of async_track_state_change

* Update integrations
2022-09-27 16:32:54 +01:00
Erik Montnemery
4fcd0f3e23 Fix recorder fixtures (#79147) 2022-09-27 17:00:06 +02:00
Erik Montnemery
53263ea9bc Revert "Add serial_number to device registry entries" (#79139) 2022-09-27 16:36:38 +02:00
epenet
bfcc18e5b8 Add distance to SensorDeviceClass (#77951)
* Add distance to SensorDeviceClass

* Adjust recorder

* Adjust tests

* Adjust recorder

* Update __init__.py

* Update test_websocket_api.py

* Update test_websocket_api.py

* Update test_websocket_api.py

* Update strings.json

* Fix tests

* Adjust docstring
2022-09-27 15:34:00 +01:00
Tom Puttemans
a58f919972 Add unique ID to dsmr_reader sensors (#79101) 2022-09-27 14:46:18 +02:00
starkillerOG
88500145d2 Goodwe reset to 0 at midnight (#76793)
* reset at midnight

* fix styling

* Update sensor.py

* Update homeassistant/components/goodwe/sensor.py

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

* fix missing import

* Only reset if inverter is offline at midnight

* fix issort

* Add detailed explanation

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-27 14:09:55 +02:00
Erik Montnemery
5bcef1c7ce Indicate in statistics issues when units can be converted (#79121) 2022-09-27 13:51:38 +02:00
Erik Montnemery
2167cf540d Drop some unused constants from recorder (#79138) 2022-09-27 10:52:16 +02:00
Erik Montnemery
cba3b6ad94 Add serial_number to device registry entries (#77713) 2022-09-27 09:08:54 +02:00
Erik Montnemery
c52d0f7495 Support converting statistics to another unit (#79117) 2022-09-27 08:44:58 +02:00
Kenneth Henderick
772581dd28 Microsoft TTS: Add support for gender and type (#78848)
* Add support for gender and type

* Reformat code
2022-09-27 08:31:41 +02:00
epenet
df47fda2a0 Remove parametrization in recorder websocket api tests (#78864)
Remove parametrization in websocket api tests
2022-09-27 08:27:26 +02:00
Bram Kragten
7e9be812ca Add unique id to entity reg list response (#78945)
* Add unique id to entity reg list response

* Update test_entity_registry.py
2022-09-27 08:25:56 +02:00
Joakim Plate
fb32e745fc Listen to out of band coil updates in Nibe Heat Pumps (#78976)
Listen to callbacks
2022-09-27 08:24:58 +02:00
epenet
dc82ae4f69 Make VALID_UNITS a set (#79104)
* Make VALID_UNITS a set

* Also adjust weather
2022-09-27 07:16:03 +01:00
Jan Bouwhuis
c5a58c8501 Fix MQTT setup after changing config entry flow options (#79103)
Fix issues with config flow options
2022-09-27 08:05:28 +02:00
uvjustin
499c3410d1 Add browse media to forked-daapd (#79009)
* Add browse media to forked-daapd

* Use elif in async_browse_image

* Add tests

* Add tests

* Add test

* Fix test
2022-09-26 20:40:23 -04:00
Marc Mueller
1e3a3d32ad Use explicit return value in frontend (#79122) 2022-09-26 20:38:19 -04:00
Marc Mueller
50e732d00f Add image_processing device_class StrEnum (#79124) 2022-09-26 20:37:04 -04:00
GitHub Action
4460953ff4 [ci skip] Translation update 2022-09-27 00:31:59 +00:00
Jan Bouwhuis
7216d4c636 Add debug logging for MQTT templates (#79016) 2022-09-27 00:36:10 +02:00
Marc Mueller
9c62c55f42 Fix rfxtrx typing (#79125) 2022-09-27 00:32:32 +02:00
Robert Hillis
0950674146 Remove issue from Radarr (#79127) 2022-09-27 00:22:58 +02:00
Matthias Alphart
3ae092f272 Update xknx to 1.1.0 - Routing flow control (#79118)
xknx 1.1.0
2022-09-26 23:17:33 +02:00
Marc Mueller
f48d1a1f07 Remove unused icloud code (#79116) 2022-09-26 22:10:59 +02:00
Marc Mueller
e8156adb13 Update mypy to 0.981 (#79115) 2022-09-26 16:10:06 -04:00
J. Nick Koston
1f6d19bb99 Bump dbus-fast to 0.15.1 (#79111)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.14.0...v1.15.1
2022-09-26 21:50:08 +02:00
J. Nick Koston
c89d776d37 Bump bleak-retry-connector to 2.1.3 (#79105) 2022-09-26 08:42:56 -10:00
Franck Nijhof
c777e8592c Merge branch 'master' into dev 2022-09-26 19:40:11 +02:00
Marc Mueller
ed812b5ee4 Remove unused alexa code (#79100) 2022-09-26 19:22:07 +02:00
Paulus Schoutsen
77a933d6f0 2022.9.7 (#79095) 2022-09-26 11:18:42 -04:00
Kevin Stillhammer
de3be96bdb Remove deprecated YAML import for here_travel_time (#77959) 2022-09-26 08:10:16 -07:00
Paulus Schoutsen
04d4483998 Pin pyOpenSSL to 22.0.0 (#79066) 2022-09-26 10:32:27 -04:00
Paulus Schoutsen
217ea5e676 Hassfest 2022-09-26 10:31:26 -04:00
Martin Hjelmare
2a94c42cea Support VLC 4 pause (#77302)
* Support VLC 4 pause

* Clean vlc tests types
2022-09-26 16:17:39 +02:00
G Johansson
fc62ba58a6 Start deprecation yaml uptime (#77782) 2022-09-26 16:11:07 +02:00
G Johansson
05568792d1 Start deprecation yaml season (#77781) 2022-09-26 16:08:27 +02:00
G Johansson
58e9ad8c1d Start deprecation yaml moon (#77780) 2022-09-26 16:07:45 +02:00
Paulus Schoutsen
943cca3d23 Bumped version to 2022.9.7 2022-09-26 09:59:39 -04:00
Erik Montnemery
a0f2571872 Always install requirements of after_dependencies (#79094) 2022-09-26 09:59:34 -04:00
J. Nick Koston
f2860fd6b3 Bump govee-ble to 0.19.0 (#79038) 2022-09-26 09:59:34 -04:00
Jan Bouwhuis
44109a6922 Fix MQTT device_tracker generating unique id-s - regression on #78547 (#79033) 2022-09-26 09:59:33 -04:00
Franck Nijhof
b55ce96a56 Fix failing LaMetric pairing message during config flow (#79031) 2022-09-26 09:59:32 -04:00
Thomas Schamm
f2fe91dac1 Bumped boschshcpy 0.2.30 to 0.2.35 (#79017)
Bumped to boschshcpy==0.2.35
2022-09-26 09:59:31 -04:00
Maikel Punie
eb80062b26 Fix velbus matching ignored entries in config flow (#78999)
* Fix bug #fix78826

* start using async_abort_entries_match

* fix/rewrite tests
2022-09-26 09:59:31 -04:00
J. Nick Koston
3b8f08270e Bump yalexs to 1.2.2 (#78978) 2022-09-26 09:59:30 -04:00
Jan Bouwhuis
60c78fd33f Set OWM default mode to hourly legacy API (#78951) 2022-09-26 09:59:29 -04:00
starkillerOG
12903a14c5 Bump motionblinds to 0.6.13 (#78946) 2022-09-26 09:59:29 -04:00
Diogo Gomes
32cea6b95d Bump pyipma to 3.0.5 (#78936)
* fix #78928 and review of #78332

* address comment
2022-09-26 09:59:28 -04:00
Erik Montnemery
408069cb0c Always install requirements of after_dependencies (#79094) 2022-09-26 09:59:01 -04:00
Bouwe Westerdijk
2667f0b792 Bump plugwise to v0.21.3, add related new features (#76610)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-09-26 15:55:29 +02:00
J. Nick Koston
75f6f9b5e2 Improve performance of Bluetooth device fallback (#79078) 2022-09-26 09:12:08 -04:00
Robert Hillis
a8b8b245d1 Allow multiple entries in Tautulli (#74406) 2022-09-26 08:54:17 -04:00
Joakim Plate
f463b22053 Add nibe heat pump switch entities (#78943)
* Add switch platform

* Enable switch platform

* Drop unneeded variable
2022-09-26 14:46:43 +02:00
Pascal Vizeli
edc9c0d09c Update aioecowitt to 2022.09.3 (#79087) 2022-09-26 13:24:15 +02:00
IceBotYT
677cba582b Fix name truncation and unusual entity names for LaCrosse View (#78254) 2022-09-26 11:35:33 +02:00
uvjustin
2d7b364713 Bump ha-av to v10.0.0.b5 (#78977) 2022-09-26 10:52:03 +02:00
Joakim Plate
92e9e7fb6c Add nibe heat pump number entities (#78941)
* Add number platform

* Enable number platform

* Adjust typing

* Update homeassistant/components/nibe_heatpump/number.py

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

* Fix format

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-26 10:40:11 +02:00
Franck Nijhof
fe5e3320d4 Adjust switch as X to inherit entity category (#79081) 2022-09-26 10:22:45 +02:00
J. Nick Koston
87e0c555db Bump aiohomekit to 2.0.1 (#79080) 2022-09-25 21:43:38 -10:00
Avi Miller
691028dfb4 Enable the move firmware effect on multizone lights (#78918)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-25 21:08:36 -10:00
J. Nick Koston
75104159c6 Fix mqtt tests (#79079) 2022-09-25 20:07:50 -10:00
starkillerOG
d9b58e5ef1 Netgear add router switches (#72171) 2022-09-25 23:30:17 -04:00
Jeef
b617d2bab0 IntelliFire Fan Support (#74181)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-25 23:24:46 -04:00
Tom Puttemans
7aa53feff4 Add config flow and MQTT autodiscover to dsmr_reader integration (#71617)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-25 23:15:50 -04:00
Justin Sherman
f26fadbdfc Add range to min_max (#78282) 2022-09-25 23:08:31 -04:00
Robert Hillis
bd01f90d42 Migrate attributes to sensors in Litter-Robot (#78580) 2022-09-25 22:40:34 -04:00
Robert Hillis
82bab545df Add missing doc strings and requirements in Google Sheets (#78616) 2022-09-25 22:12:07 -04:00
HarvsG
49eeeae51d Fix Bayesian sensor to use negative observations (#67631)
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2022-09-25 22:02:35 -04:00
Marc Mueller
faad904cbc Remove unnecessary boolean checks for callables (#78819) 2022-09-25 22:01:27 -04:00
Mick Vleeshouwer
c6fd2bde46 Migrate Overkiz to new entity naming style (#76687) 2022-09-25 21:59:18 -04:00
Tobias Sauerwein
81abeac83e Netatmo refactor to use pyatmo 7.0.1 (#73482) (#78523)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-09-25 21:55:58 -04:00
Paul Annekov
1b17c83095 More details about SMS modem (#75694) 2022-09-25 21:49:55 -04:00
J. Nick Koston
92612c9fe3 Add RSSI sensor to HomeKit Controller (#78906) 2022-09-25 21:31:56 -04:00
epenet
c1bc26b413 Finish migration of recorder to unit conversion (#78985) 2022-09-25 21:14:18 -04:00
J. Nick Koston
3ad5d799c6 Bump dbus-fast to 1.14.0 (#79063) 2022-09-25 21:02:29 -04:00
Joakim Plate
f8d42e9246 Add nibe heat pump select entities (#78942) 2022-09-25 20:57:14 -04:00
Paulus Schoutsen
697e7b3a20 TTS Cleanup and expose get audio (#79065) 2022-09-25 20:53:20 -04:00
GitHub Action
39ddc37d76 [ci skip] Translation update 2022-09-26 00:30:11 +00:00
J. Nick Koston
49f203c635 Add support for newer Magic Home sockets (#79074) 2022-09-25 13:47:56 -10:00
Robert Hillis
43c66b90df Change Skybell color mode to RGB (#78078) 2022-09-25 13:47:38 -10:00
Robert Hillis
c2209111b2 Migrate Radarr to new entity naming style (#79042)
Move Radarr to new naming scheme
2022-09-26 01:26:50 +02:00
J. Nick Koston
917cf674de Handle battery services that only report low battery in HomeKit Controller (#79072) 2022-09-25 12:08:28 -10:00
Robert Hillis
b70027aec1 Add binary sensor to Radarr (#79043)
* Add binary sensor to Radarr

* uno mas
2022-09-25 23:50:09 +02:00
Robert Hillis
b820fed11a Fix Radarr import (#79037) 2022-09-25 23:48:25 +02:00
Paulus Schoutsen
f41b69e19e Bump cryptography to 38 (#79067) 2022-09-25 17:39:42 -04:00
Paulus Schoutsen
0cc03c37bb Pin pyOpenSSL to 22.0.0 (#79066) 2022-09-25 15:19:06 -04:00
Robert Svensson
bfd12730f2 Bump aiounifi to v35 (#79040)
* Update imports
Replace constants with enums

* Import new request objects

* Bump aiounifi to v35
2022-09-25 20:08:56 +02:00
Robert Hillis
42bd664305 Add diagnostic sensor to Radarr (#79044)
* Add diagnostic sensor to Radarr

* coverage
2022-09-25 16:11:53 +02:00
Raman Gupta
ef30ebd9e1 Stop ignoring test coverage in zwave_js (#79049) 2022-09-25 07:32:59 -04:00
Oscar Calvo
b4b892a3b3 Fix a bug where SMS will not be sent as GSM-alphabet (#78800)
* Fix #76283

Fix #76283

* Update notify.py

* Fixes a bug where unicode parameter is not parssed correctly

* Apply PR feedback

* Apply PR feedback
2022-09-25 08:43:46 +02:00
Jan Bouwhuis
fffa70a136 Set OWM default mode to hourly legacy API (#78951) 2022-09-24 22:03:54 -04:00
Franck Nijhof
5d378f6fbd Fix failing LaMetric pairing message during config flow (#79031) 2022-09-24 22:03:21 -04:00
Jan Bouwhuis
bdcece4904 Fix MQTT device_tracker generating unique id-s - regression on #78547 (#79033) 2022-09-24 22:03:03 -04:00
J. Nick Koston
62490f1838 Bump govee-ble to 0.19.0 (#79038) 2022-09-24 22:02:17 -04:00
Maciej Bieniek
c46f55caa8 Add reauth flow to Shelly integration (#78786) 2022-09-24 22:01:49 -04:00
J. Nick Koston
26b8e4e0fb Bump bluetooth dependencies (#79035)
* Bump dbus-fast to 1.10.0

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.9.0...v1.10.0

* bump again

* bump again

* to 13

* bump

* try again
2022-09-24 15:44:59 -10:00
GitHub Action
3e9c0f18f9 [ci skip] Translation update 2022-09-25 00:28:01 +00:00
J. Nick Koston
a3cb38e114 Bump dbus-fast to 1.9.0 (#79024) 2022-09-24 05:04:52 -10:00
Maciej Bieniek
38b6377a31 Bump shelly backend library to version 2.0.2 (#79026)
Bump aioshelly library to version 2.0.2
2022-09-24 12:30:16 +02:00
Paulus Schoutsen
5774664234 Clean up Speech-to-text integration and add tests (#79012) 2022-09-24 09:58:01 +02:00
J. Nick Koston
1b144c0e4d Update to bleak 0.18.0 (#79008) 2022-09-23 15:09:28 -10:00
J. Nick Koston
02731efc4c Handle iBeacons that broadcast multiple different uuids (#79011)
* Handle iBeacons that broadcast multiple different uuids

* fix flip-flopping between uuids

* naming
2022-09-23 20:45:09 -04:00
Thomas Schamm
fc58d88770 Bumped boschshcpy 0.2.30 to 0.2.35 (#79017)
Bumped to boschshcpy==0.2.35
2022-09-23 20:43:03 -04:00
GitHub Action
3875ce6c9e [ci skip] Translation update 2022-09-24 00:31:54 +00:00
Aaron Bach
55b214c911 Replace two RainMachine binary sensors with config switches (#76478) 2022-09-23 17:05:07 -06:00
Maikel Punie
a495df9759 Fix velbus matching ignored entries in config flow (#78999)
* Fix bug #fix78826

* start using async_abort_entries_match

* fix/rewrite tests
2022-09-23 23:11:06 +02:00
epenet
26d9962fe5 Add base entity to switchbee (#78987)
* Add base entity to switchbee

* Adjust coverage

* Add SwitchBeeDeviceEntity

* Don't move available

* Update homeassistant/components/switchbee/entity.py

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

* Update homeassistant/components/switchbee/entity.py

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

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-09-23 22:34:49 +02:00
Aaron Bach
21b91f75ba Bump regenmaschine to 2022.09.2 (#79010)
* Bump `regenmaschine` to 2022.09.2

* Fix tests

* Restore incorrectly-deleted test
2022-09-23 13:46:25 -06:00
Jan Bouwhuis
81514b0d1c Move MQTT debug_info to dataclass (#78788)
* Add MQTT debug_info to dataclass

* Remove total attr, assign factory

* Rename typed dict to MqttDebugInfo and use helper

* Split entity and trigger debug info

* Refactor

* More rework
2022-09-23 20:55:29 +02:00
Paulus Schoutsen
d39ed0cde4 Remove unused custom data in Google Assistant (#79003) 2022-09-23 13:03:28 -04:00
starkillerOG
e6f567a751 Use device class duration for relevant Xiaomi Miio sensors (#78974) 2022-09-23 18:44:52 +02:00
epenet
dd7a06b9dc Use unit_conversion in components (#78991) 2022-09-23 17:33:32 +02:00
epenet
62022a2657 Increase code coverage for migrated utilities (#78990)
Increase code coverage for migrated utilites
2022-09-23 17:32:59 +02:00
Jc2k
ffd88ab50e Enable Thread transport in homekit_controller (#78994) 2022-09-23 16:09:10 +01:00
J. Nick Koston
5477ebdb13 Avoid creating iBeacon trackers when the device has no name (#78983) 2022-09-23 05:06:24 -10:00
Joakim Plate
ace9592aa1 Enable strict typing for rfxtrx (#74927)
* Additional typing

* Enable strict typing

* Avoid changes causing coverage change

* Adjust comment on force update

* Rename to replace_devices

* Reduce typing scope

* Adjust mypy
2022-09-23 16:47:58 +02:00
Diogo Gomes
67779089cd Bump pyipma to 3.0.5 (#78936)
* fix #78928 and review of #78332

* address comment
2022-09-23 16:23:33 +02:00
epenet
08ebb9f31a Test sum AND mean in recorder tests (#78998) 2022-09-23 09:55:17 -04:00
Joakim Plate
55d90c0abc Correct ssdp generation for bravia (#79002)
Correct ssdp generation
2022-09-23 15:42:11 +02:00
Artem Draft
ab4c1ebfd6 Add Button platform to Bravia TV (#78093)
* Add Button platform to Bravia TV

* Add button.py to coveragerc

* improve callable type
2022-09-23 15:39:24 +02:00
Artem Draft
7c460cc641 Add PSK auth and SSDP discovery to Bravia TV (#77772) 2022-09-23 09:03:43 -04:00
epenet
83b426deb0 Adjust normalization routines in recorder statistics (#78966) 2022-09-23 08:27:27 -04:00
epenet
4200778eaf Move distance and speed util to unit_conversion (#78967) 2022-09-23 08:23:59 -04:00
Raman Gupta
95e3572277 Retire climacell entirely (#78901)
* Retire climacell entirely

* remove fixtures

* remove const file

* Remove all traces of climacell integration

* missed some
2022-09-23 09:05:55 +02:00
J. Nick Koston
d1da6ea04d Fix flapping bluetooth scanner test (#78961) 2022-09-22 23:39:38 -04:00
J. Nick Koston
a7da155a2a Bump yalexs to 1.2.2 (#78978) 2022-09-22 23:39:23 -04:00
J. Nick Koston
2b8d582894 Remove min rssi setting from iBeacon (#78843) 2022-09-22 23:39:00 -04:00
Robert Hillis
0ccb495209 Radarr Config Flow (#78965) 2022-09-22 22:16:24 -04:00
Erik Montnemery
6b0c9b6a6a Simplify energy settings (#78947) 2022-09-22 21:58:15 -04:00
Erik Montnemery
27599ea0ee Minor tweaks of hassfest and loader.py (#78929) 2022-09-22 21:54:22 -04:00
GitHub Action
bbe19e6255 [ci skip] Translation update 2022-09-23 00:32:50 +00:00
Nathan Spencer
8297317f2a Bump pylitterbot to 2022.9.6 (#78970) 2022-09-22 14:14:43 -10:00
Aaron Bach
48744bfd68 Replace RainMachine freeze protection temperature sensor with a select (#76484)
* Migrate two RainMachine binary sensors to config-category switches

* Removal

* Replace RainMachine freeze protection temperature sensor with a select

* Fix CI

* Show options in current unit system

* Have message include what entity is replacing this sensor

* Don't define a method for every dataclass instance

* Add issue registry through helper

* Breaking change -> deprecation

* Naming

* Translations

* Remove extraneous list

* Don't swallow exception

* Don't be prematurely defensive

* Better Repairs instructions
2022-09-22 13:19:33 -06:00
epenet
9692cdaf2d Make _is_valid_unit private in unit system (#78924) 2022-09-22 21:02:31 +02:00
epenet
5c7d40cccf Rename property in Plugwise EntityDescription (#78935) 2022-09-22 18:55:57 +02:00
epenet
ddf56baf7a Move temperature utility to unit_conversion (#78960) 2022-09-22 18:31:50 +02:00
starkillerOG
090d004122 Bump motionblinds to 0.6.13 (#78946) 2022-09-22 06:17:53 -10:00
Joakim Plate
e46180ee76 Add binary sensor platform to Nibe Heatpump (#78927)
* Add binary_sensor platform

* Enable binary_sensor platform

* Add binary_sensor to coveragerc

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-22 17:57:20 +02:00
epenet
c8491c4404 Move volume utility to unit_conversion (#78955)
* Move volume utility to unit_conversion

* Split tests
2022-09-22 17:49:45 +02:00
epenet
523d8d246b Move pressure utility to unit_conversion (#78953) 2022-09-22 16:44:09 +02:00
epenet
0767cdd935 Move energy and power utilites to unit_conversion (#78950)
* Move energy and power utilites to unit_conversion

* Move tests
2022-09-22 15:39:49 +02:00
Jafar Atili
c97817bb0e Add Button platform to switchbee integration (#78386)
* Added Button platform to switchbee integration

* fixed review comments

* Addressed CR comments

* Update homeassistant/components/switchbee/button.py

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

* Update homeassistant/components/switchbee/button.py

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

* Update homeassistant/components/switchbee/button.py

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

* removed the zone name from the entity name

* Re-add space

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-22 14:20:32 +02:00
epenet
6002377d4f Convert UnitConverter protocol to a class (#78934)
* Convert UnitConverter protocl to a class

* Remove logic change

* Use TypeVar

* Remove NORMALIZED_UNIT from pressure

* Reduce size of PR

* Reduce some more

* Once more

* Once more

* Remove DEVICE_CLASS
2022-09-22 14:15:22 +02:00
Joakim Plate
27d1c1f471 Nibe Heat Pump after merge fixups (#78931) 2022-09-22 12:17:04 +02:00
dependabot[bot]
9f62a29928 Bump actions/stale from 5 to 6.0.0 (#78922)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-09-22 10:48:34 +02:00
Franck Nijhof
b4f1683c40 2022.9.6 (#78916) 2022-09-22 10:29:12 +02:00
Raman Gupta
a286600b03 Add debug logging to tomorrowio and mask API key (#78915)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-22 10:09:37 +02:00
rikroe
7be5fde8d6 Bump bimmer_connected to 0.10.4 (#78910)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-09-22 08:55:03 +02:00
J. Nick Koston
d44ff16f9d Handle timeout fetching bond token in config flow (#78896) 2022-09-22 08:55:00 +02:00
J. Nick Koston
b51dc0884e Fix samsungtv to abort when ATTR_UPNP_MANUFACTURER is missing (#78895) 2022-09-22 08:54:56 +02:00
Jan Bouwhuis
f3451858ef Correct return typing for catch_log_exception (#78399) 2022-09-22 08:54:42 +02:00
rikroe
da4ceea647 Bump bimmer_connected to 0.10.4 (#78910)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-09-22 08:53:29 +02:00
epenet
713fb874a8 Add NORMALISED_UNIT to UnitConverter (#78920)
* Add NORMALISED_UNIT to UnitConverter

* Adjust statistics

* Rename
2022-09-22 08:50:08 +02:00
Joakim Plate
f5120872aa Support for nibe heat pumps with local access (#78542)
* Add nibe local integration

* Add sensor platform

* Enable sensor platform

* Fix manifest

* Correct domain after rename

* Adjust tests for rename

* Correct codeowners

* Add requirements for tests

* Grab coil by name

* Switch to home assistant error

* Config entry always exist

* Switch to create task

* Bump to 0.5.0

* Use new coils access

* Remove unneeded check

* Use single instance of logger

* Test invalid ip

* Don't allow coil to be None

* Remove sleep

* Initialize data in coordinator init

* Add utils to ignore

* Update homeassistant/components/nibe_heatpump/manifest.json

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

* Use generator instead

* Use tenacity as retry decorator

* Use package instead of name to get logger

* Skip broad exception handling

* Catch missing coil exception

* Add missing test

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-22 08:43:30 +02:00
epenet
39315b7fe3 Introduce UnitConverter protocol (#78888)
* Introduce ConversionUtility

* Use ConversionUtility in number

* Use ConversionUtility in sensor

* Use ConversionUtility in sensor recorder

* Add normalise to ConversionUtility

* Revert changes to recorder.py

* Reduce size of PR

* Adjust recorder statistics

* Rename variable

* Rename

* Apply suggestion

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

* Apply suggestion

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

* Apply suggestion

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-22 07:18:00 +02:00
Raman Gupta
e62e21ce46 Bump pytomorrowio to 0.3.5 (#78914) 2022-09-22 07:10:13 +02:00
Allen Porter
d034fd2629 Prompt user to remove application credentials when deleting config entries (#74825)
* Prompt user to remove application credentials when deleting config entries

* Adjust assertions on intermediate state in config entry tests

* Add a callback hook to modify config entry remove result

* Improve test coverage and simplify implementation

* Register remove callback per domain

* Update homeassistant/components/application_credentials/__init__.py

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

* Fix tests to use new variable name including domain

* Add websocket command to return application credentials for an integration

* Remove unnecessary diff

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-21 21:02:40 -07:00
Paulus Schoutsen
103f490519 Bumped version to 2022.9.6 2022-09-21 22:33:08 -04:00
Paulus Schoutsen
68fa40c0fa Disable force update Netatmo (#78913) 2022-09-21 22:31:36 -04:00
Paulus Schoutsen
56e5774e26 Disable force update Netatmo (#78913) 2022-09-21 22:31:14 -04:00
J. Nick Koston
5c294550e8 Handle default RSSI values from bleak in bluetooth (#78908) 2022-09-21 22:30:41 -04:00
Michael
72769130f9 Check Surveillance Station permissions during setup of Synology DSM integration (#78884) 2022-09-21 22:30:40 -04:00
Jc2k
8f21e7775b Fix parsing Eve Energy characteristic data (#78880) 2022-09-21 22:30:40 -04:00
Marc Mueller
6704efd1ef Pin Python patch versions [ci] (#78830) 2022-09-21 22:29:25 -04:00
Joakim Plate
829777a211 If brightness is not available, don't set a value (#78827) 2022-09-21 22:25:42 -04:00
J. Nick Koston
48c6fbf22e Bump dbus-fast to 1.5.1 (#78802) 2022-09-21 22:25:42 -04:00
Aaron Bach
fac2a46781 Guard Guardian switches from redundant on/off calls (#78791) 2022-09-21 22:25:13 -04:00
Aaron Bach
a688b4c581 Fix bug wherein RainMachine services use the wrong controller (#78780) 2022-09-21 22:21:29 -04:00
Nico
8c9e0a8239 Bump aioimaplib to 1.0.1 (#78738) 2022-09-21 22:21:28 -04:00
J. Nick Koston
91398b6a75 Drop PARALLEL_UPDATES from switchbot (#78713) 2022-09-21 22:21:28 -04:00
Jan Bouwhuis
dea221b155 Link manually added MQTT entities the the MQTT config entry (#78547)
Co-authored-by: Erik <erik@montnemery.com>
2022-09-21 22:20:56 -04:00
starkillerOG
bfcb333227 Add status codes 23 and 26 to Xiaomi Miio vacuum (#78289)
* Add status codes 23 and 26

* change status 26
2022-09-21 22:15:47 -04:00
Jan Bouwhuis
3dd0dbf38f Make hass.data["mqtt"] an instance of a DataClass (#77972)
* Use dataclass to reference hass.data globals

* Add discovery_registry_hooks to dataclass

* Move discovery registry hooks to dataclass

* Add device triggers to dataclass

* Cleanup DEVICE_TRIGGERS const

* Add last_discovery to data_class

* Simplify typing for class `Subscription`

* Follow up on comment

* Redo suggested typing change to sasisfy mypy

* Restore typing

* Add mypy version to CI check logging

* revert changes to ci.yaml

* Add docstr for protocol

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

* Mypy update after merging #78399

* Remove mypy ignore

* Correct return type

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-21 22:15:47 -04:00
Jan Bouwhuis
4894e2e5a4 Refactor common MQTT tests to use modern schema (#77583)
* Common tests availability

* Common tests attributes

* Common tests unique id

* Common tests discovery

* Common tests encoding

* Common tests device info

* Common tests entity_id updated

* Common tests entity debug info

* Common test entity category

* Common tests setup reload unload+corrections

* Cleanup sweep

* Comments from curent change

* Cleanup

* Remove unused legacy config
2022-09-21 22:15:46 -04:00
Jan Bouwhuis
e7a616e8e4 Refactor MQTT tests to use modern platform schema part 2 (#77525)
* Tests light json

* Tests light template

* Missed test light json

* Tests light

* Tests lock

* Tests number

* Tests scene

* Tests select

* Tests sensor

* Tests siren

* Tests state vacuuum

* Tests switch

* Derive DEFAULT_CONFIG_LEGACY from DEFAULT_CONFIG

* Suggested comment changes
2022-09-21 22:15:46 -04:00
Jan Bouwhuis
b3a4838978 Refactor MQTT tests to use modern platform schema part 1 (#77387)
* Tests alarm_control_panel

* Tests binary_sensor

* Tests button

* Tests camera

* Tests Climate + corrections default config

* Tests cover

* Tests device_tracker

* Tests fan

* Tests humidifier

* Fix test_supported_features test fan

* Tests init

* Tests legacy vacuum

* Derive DEFAULT_CONFIG_LEGACY from DEFAULT_CONFIG

* Commit suggestion comment changes
2022-09-21 22:15:45 -04:00
spycle
0e0318dc53 Add Keymitt BLE integration (#76575)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-21 15:44:37 -10:00
GitHub Action
bbb5d6772c [ci skip] Translation update 2022-09-22 00:27:20 +00:00
J. Nick Koston
488b04fc8b Handle default RSSI values from bleak in bluetooth (#78908) 2022-09-21 17:03:50 -04:00
uvjustin
420285f7ef Support announce and enqueue in forked-daapd (#77744) 2022-09-21 14:08:28 -04:00
J. Nick Koston
e079968ef4 Handle timeout fetching bond token in config flow (#78896) 2022-09-21 14:03:05 -04:00
J. Nick Koston
0a8a5b973a Fix samsungtv to abort when ATTR_UPNP_MANUFACTURER is missing (#78895) 2022-09-21 14:02:54 -04:00
J. Nick Koston
17ddc40784 Bump pylutron_caseta to 0.15.2 (#78900) 2022-09-21 14:02:34 -04:00
J. Nick Koston
4d167856a5 Bump unifi-discovery to 1.1.7 (#78898) 2022-09-21 14:02:01 -04:00
epenet
ca78b1a77d Add new energy utility (#78883)
* Add new energy utility

* Adjust STATISTIC_UNIT_TO_VALID_UNITS
2022-09-21 19:40:40 +02:00
Aaron Bach
fa245e24f8 Fix bug wherein RainMachine services use the wrong controller (#78780) 2022-09-21 13:34:04 -04:00
epenet
0d696b84b2 Cleanup root component imports in tests (#78893) 2022-09-21 06:57:41 -10:00
Erik Montnemery
cd6697615f Validate units when importing statistics (#78891) 2022-09-21 12:08:53 -04:00
Jc2k
e7b594b5cf Fix parsing Eve Energy characteristic data (#78880) 2022-09-21 05:41:01 -10:00
Michael
2c08dc509f Check Surveillance Station permissions during setup of Synology DSM integration (#78884) 2022-09-21 11:27:05 -04:00
Ernst Klamer
c4eafb98fa Add support for Kegtron Smart (Beer) Keg Monitor BLE devices (#78709) 2022-09-21 05:09:39 -10:00
epenet
d7382aadfe Add new power utility (#78867)
* Add power utility

* Fix tests
2022-09-21 14:48:38 +02:00
epenet
664a576113 Cleanup Plenticore select entity (#78877) 2022-09-21 14:32:25 +02:00
Franck Nijhof
a81bb10ff9 Update yarl to 1.8.1 (#78866) 2022-09-21 13:59:42 +02:00
Franck Nijhof
166160e2b5 Add LaMetric button tests (#78754) 2022-09-21 13:57:40 +02:00
epenet
e58dd6df95 Cleanup Plenticore switch entity (#78878) 2022-09-21 13:46:43 +02:00
epenet
cf3b5ff7f9 Cleanup properties in Plenticore sensor (#78879) 2022-09-21 13:37:53 +02:00
epenet
a605b6bcf1 Fix typo in tuya select (#78881) 2022-09-21 13:27:11 +02:00
epenet
9e7c03af56 Use m3 as intermediate unit for volume conversions (#78861)
* Use m3 as SI volume standard unit

* Adjust comment

* Apply suggestion

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

* Apply suggestion

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-21 12:37:31 +02:00
epenet
063074acf5 Adjust Plenticore sensor initialisation (#78869) 2022-09-21 12:08:00 +02:00
epenet
988e8bfe7b Adjust Plenticore select initialisation (#78873) 2022-09-21 11:58:59 +02:00
epenet
9e31cf51cb Adjust Plenticore switch initialisation (#78871) 2022-09-21 11:54:14 +02:00
Franck Nijhof
1800e98f05 Remove leftover debug print from Melnor (#78870) 2022-09-21 11:49:22 +02:00
epenet
daba474182 Use SelectEntityDescription in kostal plenticore (#78840) 2022-09-21 11:31:14 +02:00
epenet
67f7c17d34 Use SwitchEntityDescription in kostal plenticore (#78841) 2022-09-21 11:30:17 +02:00
Aaron Bach
e265848b63 Remove deprecated Flu Near You integration (#78700) 2022-09-21 11:24:21 +02:00
J. Nick Koston
d7b58f6949 Bump pySwitchbot to 0.19.11 (#78857) 2022-09-21 11:21:14 +02:00
J. Nick Koston
a981d096aa Improve code readability in iBeacon integration (#78844) 2022-09-21 11:18:38 +02:00
epenet
bc120e9ff2 Use SensorEntityDescription in kostal plenticore (#78842) 2022-09-21 11:17:23 +02:00
Midbin
00f1f3e355 Change minimal brightness value for hue.activate_scene service to 1 (#78154)
* Adjust Implementation Hue Scene Brightness so it cannot be 0
2022-09-21 11:12:50 +02:00
epenet
0ac581a0b1 Cleanup EntityFeature in tests (#78859) 2022-09-21 10:48:55 +02:00
epenet
c88a874063 Cleanup FlowResultType in tests (#78810) 2022-09-21 09:17:20 +02:00
Michael Jäger
7a6897c757 Add deconz current hvac operation to thermostate based on "state" (#59989)
* deconz - add current hvac operation to thermostate based on "state"

* deconz - extend current hvac operation to thermostate based on "state" and "mode"

* Add tests for current hvac action

* Add boost mode as special case

* format using Black

* sort imports

* Add test for device with mode none and state none

* Update homeassistant/components/deconz/climate.py

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

* Fix test_climate.py test_no_mode_no_state

* Add test for boost mode

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-09-21 08:20:44 +02:00
GitHub Action
d7eb277bc8 [ci skip] Translation update 2022-09-21 00:32:35 +00:00
Erik Montnemery
dae00c70de Allow selecting display unit when fetching statistics (#78578) 2022-09-20 17:43:57 -04:00
Marek Skrobacki
3f512e38db Fix Sonos cover art when browsing albums (#75105) 2022-09-21 04:03:10 +08:00
epenet
f453726b18 Cleanup HVACAction and HVACMode in tests (#78813) 2022-09-20 20:30:54 +02:00
epenet
3cf26c4a5d Move constants in kostal_plenticore (#78837) 2022-09-20 20:28:27 +02:00
Marc Mueller
6f782628b9 Pin Python patch versions [ci] (#78830) 2022-09-20 20:24:39 +02:00
Franck Nijhof
774d5138ca Update PyJWT to 2.5.0 (#78776) 2022-09-20 20:17:49 +02:00
epenet
e58531f118 Add MqttData helper to mqtt (#78825)
* Add MqttData helper to mqtt

* Adjust client for circular dependencies

* Move MqttData to models.py

* Move get_mqtt_data to util.py
2022-09-20 19:40:06 +02:00
epenet
6b3c91bd6a Cleanup ColorMode in tests (#78807) 2022-09-20 18:33:45 +02:00
epenet
41d2ac3943 Cleanup MediaClass and MediaType in tests (#78817)
Cleanup MediaClass/MediaType in tests
2022-09-20 17:55:13 +02:00
Robert Hillis
2a2cc79fc3 Add Lidarr integration (#66438) 2022-09-20 11:51:29 -04:00
starkillerOG
3776fc3b9f Add status codes 23 and 26 to Xiaomi Miio vacuum (#78289)
* Add status codes 23 and 26

* change status 26
2022-09-20 17:32:10 +02:00
Joakim Plate
924bffc7d0 Add query data to google assistant diagnostic (#78828) 2022-09-20 17:05:10 +02:00
epenet
4f31f28e67 Cleanup SourceType in tests (#78809) 2022-09-20 10:50:07 -04:00
epenet
25b1dfb53a Cleanup EntityCategory in tests (#78808) 2022-09-20 10:49:44 -04:00
epenet
fe747601ff Cleanup DeviceClass and StateClass in tests (#78811) 2022-09-20 10:49:11 -04:00
Joakim Plate
bd0daf68e0 If brightness is not available, don't set a value (#78827) 2022-09-20 07:57:54 -04:00
dependabot[bot]
e05ca87cc7 Bump codecov/codecov-action from 3.1.0 to 3.1.1 (#78812)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-20 09:49:15 +02:00
J. Nick Koston
bb78d52f34 Add iBeacon Tracker integration (#78671) 2022-09-19 21:43:41 -04:00
J. Nick Koston
12856dea05 Create an issue when Bluetooth is active on old HAOS (#78430)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-19 21:02:13 -04:00
J. Nick Koston
caba202efa Fix failing bluetooth tests (#78757) 2022-09-19 20:59:27 -04:00
J. Nick Koston
a02eed9bd8 Bump dbus-fast to 1.5.1 (#78802) 2022-09-19 20:59:07 -04:00
J. Nick Koston
635c2f3738 Change bluetooth source to be the address of the adapter on Linux (#78795) 2022-09-19 20:58:18 -04:00
J. Nick Koston
5829ff5aea Prevent tilt_ble from matching generic ibeacons (#78722) 2022-09-19 20:57:18 -04:00
GitHub Action
4b2bea4972 [ci skip] Translation update 2022-09-20 00:30:13 +00:00
Erik Montnemery
1021c90bb8 Use black to format hassfest generated files (#78794) 2022-09-19 17:37:22 -04:00
Erik Montnemery
e66f28f3f7 Teach sqlite3 about HAFakeDatetime (#78756) 2022-09-19 23:09:50 +02:00
Brad Downey
f07204ba55 Add unique_id to ohmconnect (#78479)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-09-19 21:54:01 +02:00
Nathan Spencer
10a12b1bc9 Bump pylitterbot to 2022.9.5 (#78785) 2022-09-19 21:29:29 +02:00
mkmer
08c8ab7302 Bumped AIOAladdinConnect 0.1.46 (#78767) 2022-09-19 21:18:53 +02:00
Aaron Bach
d591787077 Guard Guardian switches from redundant on/off calls (#78791) 2022-09-19 21:15:32 +02:00
y34hbuddy
691df5a394 Add support for imperial units of measure in volvooncall (#77669) 2022-09-19 16:22:13 +02:00
G Johansson
acf8bfb299 Migrate Trafikverket Train to new entity naming style (#75208) 2022-09-19 16:11:39 +02:00
epenet
8cc0c4dbba Adjust root-import in demo humidifier tests (#78772) 2022-09-19 15:48:01 +02:00
epenet
7cfc28e915 Add unit constant for revolutions per minute (#78752) 2022-09-19 15:46:47 +02:00
epenet
e6970cb62f Adjust root-import in netatmo tests (#78771) 2022-09-19 15:42:59 +02:00
epenet
beca4bb7a5 Adjust root-import in motioneye tests (#78770) 2022-09-19 15:42:19 +02:00
epenet
7e41afe660 Adjust root-import in nest tests (#78769) 2022-09-19 15:41:45 +02:00
epenet
7ffac12de7 Adjust root-import in google-assistant tests (#78768) 2022-09-19 15:40:56 +02:00
epenet
52a377ca9d Adjust root-import in alexa tests (#78766) 2022-09-19 15:38:33 +02:00
Kenneth J. Miller
3b653de3fd Fix Airly CO sensor unit (#78649) 2022-09-19 15:35:13 +02:00
epenet
7bc2712142 Adjust root-import in tests (#78761)
* Adjust root-import in tests

* Adjust diagnostics

* Adjust button

* Adjust select

* Adjust device_tracker

* Adjust camera

* Adjust humidifier

* Adjust media_source

* Adjust update

* Adjust siren

* Adjust number

* Adjust alarm_control_panel

* Adjust notify

* Adjust sensor

* Adjust switch

* Revert anthemav

* Don't adjust demo humidifier
2022-09-19 15:22:23 +02:00
epenet
75e52ef389 Use DOMAIN constant in plex (#78764) 2022-09-19 15:08:40 +02:00
epenet
903edfd881 Use correct constant in anthemav tests (#78759) 2022-09-19 15:07:42 +02:00
epenet
d83e9072e7 Use attributes in zoneminder (#77895) 2022-09-19 15:05:29 +02:00
epenet
ecef755217 Adjust root-import in tomorrowio tests (#78763) 2022-09-19 14:56:51 +02:00
epenet
4b813f2460 Adjust pylint plugin for tests directory (#78727)
* Add module_name to parametrize

* Add tests for tests directory

* Apply patch from mib1185

* Adjust plugin to allow imports from component being tested
2022-09-19 14:27:21 +02:00
Justin Vanderhooft
3eab4a234b Add support for controlling manual watering time on Melnor Bluetooth devices (#78653)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-19 06:56:34 -05:00
Nico
3dc6db94ce Bump aioimaplib to 1.0.1 (#78738) 2022-09-19 12:59:09 +02:00
Mick Vleeshouwer
33bd840c0a Bump pyoverkiz to 1.5.3 in Overkiz integration (#78743) 2022-09-19 12:57:52 +02:00
epenet
0dcbc85684 Adjust relative-import plugin for tests (#78742) 2022-09-19 12:57:07 +02:00
Jorim Tielemans
cd6959d809 Update psutil to 5.9.2 (#78745) 2022-09-19 12:56:08 +02:00
epenet
f30a94daa1 Improve type hints in keenetic_ndms2 (#77649) 2022-09-19 12:35:59 +02:00
epenet
747e538172 Apply hass-relative-import to bluetooth tests (#78736) 2022-09-19 12:35:23 +02:00
epenet
019d297ff0 Apply hass-relative-import to recorder tests (#78734) 2022-09-19 12:35:03 +02:00
Franck Nijhof
36eda3801d Add LaMetric integration init tests (#78679) 2022-09-19 11:11:05 +02:00
epenet
b5c1f856e2 Fix litterrobot tests (#78741) 2022-09-19 10:25:25 +02:00
epenet
72bf1ca6dd Use attributes in kef media player (#77650) 2022-09-19 10:21:48 +02:00
Marc Mueller
b9d34ce169 Improve sonos typing (#78661) 2022-09-19 09:59:12 +02:00
epenet
38548b0986 Adjust homekit-controller test imports (#78731) 2022-09-19 09:53:56 +02:00
epenet
e9f55f4e54 Apply hass-relative-import to tests (s-z) (#78733) 2022-09-19 09:51:31 +02:00
epenet
c5a56dab42 Apply hass-relative-import to tests (a-c) (#78728) 2022-09-19 09:48:25 +02:00
epenet
00dd27ef1b Apply hass-relative-import to tests (i-r) (#78732) 2022-09-19 09:46:59 +02:00
epenet
a809e18559 Apply hass-relative-import to tests (d-h) (#78730) 2022-09-19 09:31:57 +02:00
Robert Hillis
aa0cbf0afe Add tests for LitterRobot sensors (#78638) 2022-09-18 21:12:38 -07:00
J. Nick Koston
933dde1d1e Handle Modalias missing from the bluetooth adapter details on older BlueZ (#78716) 2022-09-18 21:10:05 -04:00
J. Nick Koston
9655f30146 Handle Modalias missing from the bluetooth adapter details on older BlueZ (#78715) 2022-09-18 21:09:45 -04:00
GitHub Action
1f92804211 [ci skip] Translation update 2022-09-19 00:27:46 +00:00
J. Nick Koston
ba74f00fb5 Add tests for switchbot sensor platform (#78611) 2022-09-18 16:49:12 -05:00
J. Nick Koston
a1735b742c Drop PARALLEL_UPDATES from switchbot (#78713) 2022-09-18 16:36:50 -05:00
Tom Brien
d33cc2c83e Add GALA currency to Coinbase (#78708)
Add GALA currency
2022-09-18 23:30:09 +02:00
Maciej Bieniek
721fddc016 Bump brother backend library (#78072)
* Update integration for a new library

* Update tests

* Add unique_id migration

* Update integration and tests for lib 2.0.0

* Improve test coverage

* Improve typing in tests
2022-09-18 23:28:17 +02:00
Orad SA
3c6c673a20 Add state_class to Waze travel time for statistics support (#77386) 2022-09-18 22:34:53 +02:00
Joakim Sørensen
3655958d26 Seperate timeout errors in rest requests (#78710) 2022-09-18 21:38:27 +02:00
Arto Jantunen
8fd18cda30 Fix Vallox extract and supply fan speed measurement units (#77692) 2022-09-18 21:35:19 +02:00
Brett Adams
fa7f04c34b Code Quality Improvements for Advantage Air (#77695)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-18 21:27:09 +02:00
Raman Gupta
4fbf44cced Create repair issue if zwave-js-server is too old (#78670)
* Create repair issue if zwave-js-server is too old

* Switch is_fixable to false

* review comments
2022-09-18 21:25:37 +02:00
Aaron Bach
d74f5c6ee0 Make Guardian Repairs strings more consistent (and instructive) (#78694)
Make Guardian Repairs strings consistently helpful
2022-09-18 21:24:21 +02:00
Nathan Spencer
b03de1c92f Address code review from litterrobot PR (#78699)
Address code review
2022-09-18 21:21:24 +02:00
Paulus Schoutsen
a411cd9c20 2022.9.5 (#78703) 2022-09-18 14:05:34 -04:00
Erik Montnemery
6094c00705 Warn user if Tasmota devices are configured with invalid MQTT topics (#77640) 2022-09-18 19:50:43 +02:00
Paulus Schoutsen
da81dbe6ac Bumped version to 2022.9.5 2022-09-18 13:13:54 -04:00
J. Nick Koston
f5c30ab10a Bump thermobeacon-ble to 0.3.2 (#78693) 2022-09-18 13:13:48 -04:00
J. Nick Koston
454675d86b Fix bluetooth callback matchers when only matching on connectable (#78687) 2022-09-18 13:13:08 -04:00
Franck Nijhof
cce4496ad6 Remove mDNS iteration from Plugwise unique ID (#78680)
* Remove mDNS iteration from Plugwise unique ID

* Add iteration to tests
2022-09-18 13:10:11 -04:00
Raman Gupta
ebeebeaec1 Handle multiple files properly in zwave_js update entity (#78658)
* Handle multiple files properly in zwave_js update entity

* Until we have progress, set in progress to true. And fix when we write state

* fix tests

* Assert we set in progress to true before we get progress

* Fix tests

* Comment
2022-09-18 13:10:10 -04:00
Franck Nijhof
c8d16175da Update demetriek to 0.2.4 (#78646) 2022-09-18 13:10:09 -04:00
J. Nick Koston
a2aa0e608d Add a helpful message to the config_entries.OperationNotAllowed exception (#78631)
We only expect this exception to be raised as a result of an
implementation problem. When it is raised during production
it is currently hard to trace down why its happening

See #75835
2022-09-18 13:10:09 -04:00
Sergio Conde Gómez
7eb98ffbd1 Bump qingping-ble to 0.7.0 (#78630) 2022-09-18 13:10:08 -04:00
J. Nick Koston
6e62080cd9 Fix reconnect race in HomeKit Controller (#78629) 2022-09-18 13:10:07 -04:00
J. Nick Koston
39dee6d426 Fix switchbot not accepting the first advertisement (#78610) 2022-09-18 13:10:07 -04:00
Franck Nijhof
3a89a49d4a Fix WebSocket condition testing (#78570) 2022-09-18 13:10:06 -04:00
On Freund
ef66d8e705 Bump pyrisco to v0.5.5 (#78566)
Upgrade to pyrisco 0.5.5
2022-09-18 13:10:05 -04:00
Raman Gupta
c1809681b6 Fix zwave_js update entity startup state (#78563)
* Fix update entity startup state

* Only write state if there is a change

* Add test to show that when an existing entity gets recreated, skipped version does not reset

* Remove unused blocks

* Update homeassistant/components/zwave_js/update.py

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-09-18 13:10:05 -04:00
J. Nick Koston
050c09df62 Bump aiohomekit to 1.5.8 (#78515) 2022-09-18 12:58:22 -04:00
J. Nick Koston
e0b63ac488 Bump led-ble to 0.10.1 (#78511) 2022-09-18 12:58:21 -04:00
J. Nick Koston
ed6575fefb Bump yalexs_ble to 1.9.2 (#78508) 2022-09-18 12:58:21 -04:00
J. Nick Koston
318ae7750a Bump PySwitchbot to 0.19.9 (#78504) 2022-09-18 12:58:20 -04:00
Teemu R
0525a1cd97 Bump python-songpal to 0.15.1 (#78481) 2022-09-18 12:58:20 -04:00
J. Nick Koston
d31d4e2916 Bump bleak-retry-connector to 0.17.1 (#78474) 2022-09-18 12:58:19 -04:00
Erik Montnemery
40c5689507 Prevent deleting blueprints which are in use (#78444) 2022-09-18 12:57:40 -04:00
Raman Gupta
a4749178f1 Only redact zwave_js values that are worth redacting (#78420)
* Only redact zwave_js values that are worth redacting

* Tweak test

* Use redacted fixture for test
2022-09-18 12:56:40 -04:00
Pete
8229e241f1 Fix fan speed regression for some xiaomi fans (#78406)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-18 12:56:39 -04:00
Jan Bouwhuis
354411feed Link manually added MQTT entities the the MQTT config entry (#78547)
Co-authored-by: Erik <erik@montnemery.com>
2022-09-18 12:55:31 -04:00
J. Nick Koston
49ead219a5 Bump thermobeacon-ble to 0.3.2 (#78693) 2022-09-18 12:47:13 -04:00
Aaron Bach
a282e41d68 Revert unintended OpenUV unique ID change (#78691) 2022-09-18 09:24:13 -06:00
J. Nick Koston
d4181aa911 Fix bluetooth callback matchers when only matching on connectable (#78687) 2022-09-18 10:22:54 -05:00
Raman Gupta
4d6151666e Handle multiple files properly in zwave_js update entity (#78658)
* Handle multiple files properly in zwave_js update entity

* Until we have progress, set in progress to true. And fix when we write state

* fix tests

* Assert we set in progress to true before we get progress

* Fix tests

* Comment
2022-09-18 14:56:46 +02:00
Franck Nijhof
2eb265f28b Remove mDNS iteration from Plugwise unique ID (#78680)
* Remove mDNS iteration from Plugwise unique ID

* Add iteration to tests
2022-09-18 12:17:28 +02:00
J. Nick Koston
8dbbd0ded0 Cache template regex compiles (#78529) 2022-09-18 11:48:04 +02:00
G Johansson
59aef20e99 Add missing typing met config flow (#78645) 2022-09-18 11:46:43 +02:00
Joakim Sørensen
87f8ebceb2 Limit Github event subscription if polling is disabled (#78662) 2022-09-18 11:40:42 +02:00
Joakim Sørensen
69c5d910d4 Remove deprecated update binary sensor from Supervisor (#78664) 2022-09-18 09:58:14 +02:00
Pete
1f7c90baa0 Fix fan speed regression for some xiaomi fans (#78406)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-17 23:45:31 -04:00
J. Nick Koston
b8ccf53799 Fix switchbot not accepting the first advertisement (#78610) 2022-09-17 23:45:04 -04:00
Marc Mueller
f7ef9eb91b Remove low level call from fritzbox_callmonitor (#78668) 2022-09-18 03:08:55 +02:00
Marc Mueller
dbc02707a9 Improve media_player typing (#78666) 2022-09-18 03:08:17 +02:00
GitHub Action
e9eb5dc338 [ci skip] Translation update 2022-09-18 00:29:50 +00:00
Aaron Bach
ca5a9c9456 Allow multiple instances of OpenUV via the homeassistant.update_entity service (#76878)
* Allow for multiple instances of the OpenUV integration

* Docstring

* Remove Repairs

* Fix tests

* Slightly faster OpenUV object lookup

* Entity update service

* Remove service descriptions

* hassfest

* Simplify strings

* Don't add UI instructions to Repairs item

* Add a throttle to entity update

* Update homeassistant/components/openuv/__init__.py

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

* Switch from Throttle to Debouncer(s)

* Keep dispatcher for services

* Reduce change surface area

* Duplicate method

* Add issue registry through helper

* Update deprecation version

* Use config entry selector

* Remove device/service info

* Remove commented out method

* Correct entity IDs and better verbiage

* Fix tests

* Handle missing config entry ID in service calls

* Remove unhelpful comment

* Remove unused constants

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-17 17:56:45 -06:00
Justin Vanderhooft
b87c452106 Bump melnor-bluetooth to v0.0.20 (#78642) 2022-09-17 17:19:19 -05:00
Aaron Bach
08e6e27a3b Remove deprecated Guardian services (scheduled for 2022.10.0) (#78663)
Remove deprecated Guardian services (schedule for 2022.10.0)
2022-09-17 16:09:40 -06:00
J. Nick Koston
18eef5da1f Restore history from bluetooth stack at startup (#78612) 2022-09-17 16:58:19 -05:00
Aaron Bach
13d3f4c3b2 Replace Guardian disable_ap and enable_ap services with a switch (#75034)
* Starter buttons

* Ready to go

* Replace Guardian `disable_ap` and `enable_ap` services with a switch

* Clean up how actions are stored

* Make similar to buttons

* Remove service definitions

* Docstring

* Docstring

* flake8

* Add repairs item

* Add a repairs issue to notify of removed entity

* Add entity replacement strategy

* Fix repairs import

* Update deprecation version

* Remove breaking change

* Include future breaking change version

* Naming
2022-09-17 15:01:57 -06:00
Jan Bouwhuis
1f410e884a Make hass.data["mqtt"] an instance of a DataClass (#77972)
* Use dataclass to reference hass.data globals

* Add discovery_registry_hooks to dataclass

* Move discovery registry hooks to dataclass

* Add device triggers to dataclass

* Cleanup DEVICE_TRIGGERS const

* Add last_discovery to data_class

* Simplify typing for class `Subscription`

* Follow up on comment

* Redo suggested typing change to sasisfy mypy

* Restore typing

* Add mypy version to CI check logging

* revert changes to ci.yaml

* Add docstr for protocol

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

* Mypy update after merging #78399

* Remove mypy ignore

* Correct return type

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-17 21:43:42 +02:00
epenet
391d895426 Enable disallow-any-generics in media-player (#78498)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-17 21:23:16 +02:00
Kevin Addeman
b51fd7f688 Fix lutron_caseta get_triggers() raising error for non-button devices (caseta and ra3/hwqsx) (#78397) 2022-09-17 13:26:04 -05:00
J. Nick Koston
74f7ae409b Add a helpful message to the config_entries.OperationNotAllowed exception (#78631)
We only expect this exception to be raised as a result of an
implementation problem. When it is raised during production
it is currently hard to trace down why its happening

See #75835
2022-09-17 20:52:28 +03:00
Nathan Spencer
943fe657c5 Add additional status sensor state strings for Litter-Robot 4 (#78652) 2022-09-17 20:50:47 +03:00
J. Nick Koston
8cae33a730 Fix rachio not being able to be ignored (#78636)
Fixes #77272
2022-09-17 20:44:24 +03:00
Raman Gupta
01acc3d1e5 Fix zwave_js update entity startup state (#78563)
* Fix update entity startup state

* Only write state if there is a change

* Add test to show that when an existing entity gets recreated, skipped version does not reset

* Remove unused blocks

* Update homeassistant/components/zwave_js/update.py

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-09-17 20:43:35 +03:00
J. Nick Koston
6e4a0b9fdc Switch recorder to use async_timeout instead of asyncio.wait_for (#78607) 2022-09-17 20:40:10 +03:00
G Johansson
51b01fcd80 Bump smhi-pkg to 1.0.16 (#78639) 2022-09-17 20:38:35 +03:00
epenet
64988521bb Make use of generic EntityComponent (part 2) (#78494) 2022-09-17 18:18:53 +02:00
Marc Mueller
bbf54e6f44 Improve light typing (#78641) 2022-09-17 17:37:39 +02:00
Jan Bouwhuis
35221e9a61 Correct return typing for catch_log_exception (#78399) 2022-09-17 17:27:22 +02:00
Franck Nijhof
5a6a474bbe Update demetriek to 0.2.4 (#78646) 2022-09-17 17:15:11 +02:00
Franck Nijhof
24df3574bc Automatically set up Awair during onboarding (#78632) 2022-09-17 15:04:09 +02:00
Sergio Conde Gómez
9acea07d31 Bump qingping-ble to 0.7.0 (#78630) 2022-09-17 06:59:29 -05:00
J. Nick Koston
cd8a5ea1e2 Fix reconnect race in HomeKit Controller (#78629) 2022-09-17 05:13:33 -05:00
Nathan Spencer
c3ca9f3ad1 Add litter level sensor for Litter-Robot 4 (#78602)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-17 05:03:12 -05:00
Nathan Spencer
cc51052be5 Change litterrobot integration to cloud_push (#77741)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-17 04:29:56 -05:00
Joakim Sørensen
0b4e4e81d4 Handle connection issues with Traccar (#78624) 2022-09-17 10:26:59 +02:00
J. Nick Koston
98dd84f535 Ensure bluetooth callbacks are only fired when advertisement data changes (#78609) 2022-09-17 10:26:02 +02:00
J. Nick Koston
82407ca433 Switch yeelight to use async_timeout instead of asyncio.wait_for (#78606) 2022-09-17 08:35:53 +02:00
J. Nick Koston
5cde3ca4e1 Switch emulated_hue to use async_timeout instead of asyncio.wait_for (#78608) 2022-09-17 08:34:44 +02:00
Kevin Stillhammer
f59c8d985d Correct unit for here_travel_time distance sensor (#78303)
Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>

Signed-off-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
2022-09-16 21:03:18 -07:00
GitHub Action
38b087d220 [ci skip] Translation update 2022-09-17 00:27:28 +00:00
Aaron Bach
b4356a432e Replace SimpliSafe clear_notifications service with a button (#75283)
* Replace SimpliSafe `clear_notifications` service with a button

* Better log message

* Coverage

* Docstring

* Add repairs item

* Better repairs strings

* Mark issue as fixable

* Add issue registry through helper

* Update deprecation version
2022-09-16 16:41:17 -06:00
Kenneth J. Miller
84cd0da26b Add Airly gas sensors (#77908)
* Add support for gases queryable via Airly API:
  CO, NO₂, O₃, SO₂
* Add tests for above sensors and update test fixtures
2022-09-16 15:19:30 -06:00
Raman Gupta
06178d3446 Only redact zwave_js values that are worth redacting (#78420)
* Only redact zwave_js values that are worth redacting

* Tweak test

* Use redacted fixture for test
2022-09-16 15:04:55 -06:00
epenet
be17ba15db Use attributes in demo media-player (#78461)
* Use attributes in demo media-player

* Use _attr_is_volume_muted

* Use _attr_shuffle

* Use _attr_sound_mode / _attr_sound_mode_list
2022-09-16 15:04:29 -06:00
On Freund
047c3862d7 Bump pyrisco to v0.5.5 (#78566)
Upgrade to pyrisco 0.5.5
2022-09-16 14:29:08 -06:00
Nathan Spencer
e507e00317 Bump pylitterbot to 2022.9.3 (#78590) 2022-09-16 21:56:50 +03:00
Franck Nijhof
8774f34271 Update Awair config entry on discovery (#78521) 2022-09-16 18:42:44 +03:00
Marc Mueller
0b97dcf0bd Use vol.Coerce for notify SourceType enum (#77930) 2022-09-16 16:46:26 +02:00
Hurzelchen
501b8b341f Use commands enum in LG Netcast (#78584)
lg_netcast: Use LG_COMMAND constants instead of magic numbers
2022-09-16 16:17:46 +02:00
Jafar Atili
42c28cd074 Address late review of SwitchBee (#78585) 2022-09-16 16:10:40 +02:00
epenet
f2a661026f Fix kira remote implementation (#77878) 2022-09-16 15:11:12 +02:00
Jafar Atili
491177e5d3 Address late review of SwitchBee (#78412) 2022-09-16 14:19:50 +02:00
Martin Hjelmare
383c83d15f Improve notify typing (#78575) 2022-09-16 12:52:24 +02:00
Franck Nijhof
fbd265aa2d Update pyupgrade to v2.38.0 (#78573) 2022-09-16 12:51:58 +02:00
J. Nick Koston
085abc74ee Reduce overhead to update passive bluetooth devices (#78545) 2022-09-16 12:24:20 +02:00
Rami Mosleh
b093c2840b Remove name key from config flow in Mikrotik (#78571) 2022-09-16 11:30:29 +02:00
Franck Nijhof
a19a7e64d5 Fix WebSocket condition testing (#78570) 2022-09-16 11:18:00 +02:00
Franck Nijhof
564150169b Update LaMetric config entry using DHCP discovery data (#78527)
* Update LaMetric config entry using DHCP discovery data

* Update translations
2022-09-16 08:35:12 +02:00
Phil Bruckner
e7ca40156f Bump life360 package to 5.1.1 (#78550) 2022-09-16 08:07:02 +02:00
GitHub Action
ec258410c5 [ci skip] Translation update 2022-09-16 00:29:29 +00:00
epenet
8300f8234c Make async_extract_entities generic (#78490) 2022-09-16 00:20:47 +02:00
Ricardo Steijn
635ed562ee crownstone-sse: bump to 2.0.4 (#78538) 2022-09-15 18:05:55 +02:00
Erik Montnemery
dd20a7ea62 Display statistics in the source's unit (#78031) 2022-09-15 12:01:24 -04:00
epenet
4dba2a85db Improve type hints in trace (#78441) 2022-09-15 11:57:48 -04:00
epenet
b29605060a Enforce MediaPlayerState in hdmi_cec media player (#78522) 2022-09-15 11:48:05 -04:00
epenet
7d11509011 Cleanup self._attr_state in samsungtv media player (#78518) 2022-09-15 11:47:07 -04:00
Simone Chemelli
bb5c1ad659 Remove some low level calls from Fritz (#77848)
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2022-09-15 16:05:58 +02:00
Michael
6f02f7c6ce Bump pyfritzhome to 0.6.7 (#78324) 2022-09-15 16:01:55 +02:00
Joakim Sørensen
8dbe293ae2 Add version to templates (#78484) 2022-09-15 15:01:40 +02:00
epenet
de7e12eeaf Enable disallow-any-generics in light (#78499) 2022-09-15 08:47:05 -04:00
epenet
a443cefa7b Use self._attr_state in demo media player (#78520) 2022-09-15 08:44:20 -04:00
Franck Nijhof
69ca055fd8 Update requests_mock to 1.10.0 (#78510) 2022-09-15 14:33:12 +02:00
epenet
cd2abf368f Use self._attr_state in vlc_telnet media player (#78517) 2022-09-15 14:26:09 +02:00
Joakim Sørensen
a38d998000 Bump awesomeversion from 22.8.0 to 22.9.0 (#78525) 2022-09-15 14:05:34 +02:00
epenet
96de76fc6f Adjust MEDIA_CLASS_MAP in dlna-dms (#78458)
* Adjust MEDIA_CLASS_MAP in dlna-dms

* Revert
2022-09-15 14:04:07 +02:00
J. Nick Koston
4168892d0a Bump aiohomekit to 1.5.8 (#78515) 2022-09-15 13:25:50 +02:00
J. Nick Koston
2331e2a55c Bump led-ble to 0.10.1 (#78511) 2022-09-15 13:25:40 +02:00
J. Nick Koston
8ede711f68 Bump PySwitchbot to 0.19.9 (#78504) 2022-09-15 13:25:25 +02:00
J. Nick Koston
2c03578f6f Bump yalexs_ble to 1.9.2 (#78508) 2022-09-15 13:25:12 +02:00
Franck Nijhof
6dc3c0b572 Update black to 22.8.0 (#78509) 2022-09-15 12:45:18 +02:00
Erik Montnemery
c0b04e9f91 Sort some code in the search integration (#78519) 2022-09-15 12:13:36 +02:00
Erik Montnemery
aa0fd8c935 Avoid mutating globals in nina tests (#78513) 2022-09-15 12:05:29 +02:00
epenet
ada1cff4b1 Use new media player enums in homekit_controller (#78105)
* Use new media player enums in homekit_controller

* Replace OK/PROBLEM with ON/OFF

* Fix tests
2022-09-15 12:00:52 +02:00
epenet
b56eabc35b Enable disallow-any-generics in number (#78502) 2022-09-15 11:58:24 +02:00
Franck Nijhof
eae384bbf7 Update sqlalchemy to 1.4.41 (#78507) 2022-09-15 11:54:18 +02:00
epenet
0448afabb6 Sort strict-typing alphabetically (#78506) 2022-09-15 11:53:56 +02:00
Franck Nijhof
19c1065387 Update pytest to 7.1.3 (#78503) 2022-09-15 11:53:40 +02:00
Franck Nijhof
cf138c7266 Update pyotp to 2.7.0 (#78500) 2022-09-15 11:53:16 +02:00
epenet
b4afb1cb6b Make use of generic EntityComponent (#78492) 2022-09-15 11:53:00 +02:00
epenet
19ea95a6e4 Enable disallow-any-generics in update (#78501) 2022-09-15 11:29:11 +02:00
Erik Montnemery
c37d294d12 Use reload helper to reload rest component (#78491) 2022-09-15 11:02:37 +02:00
epenet
2cc45cd302 Use new media player enums in bluesound (#78096) 2022-09-15 11:00:55 +02:00
epenet
0a13fe99d2 Move mypy override for device_registry (#78493) 2022-09-15 11:00:25 +02:00
Federico Marani
08449dc1bc Bump aioftp to 0.21.3 (#78257) 2022-09-15 10:52:33 +02:00
Vincent Knoop Pathuis
035f206e95 Bump ultraheat-api to 0.4.3 (#78295) 2022-09-15 10:51:19 +02:00
J. Nick Koston
11789dd079 Bump bleak-retry-connector to 0.17.1 (#78474) 2022-09-15 10:40:52 +02:00
Franck Nijhof
ec2afd2bce Update pipdeptree to 2.3.1 (#78497) 2022-09-15 10:24:18 +02:00
Franck Nijhof
4e7a99dc77 Update sentry-sdk to 1.9.8 (#78496) 2022-09-15 09:57:35 +02:00
ollo69
aa46ba4ad5 Add device class TV to AndroidTV (#78487) 2022-09-15 08:56:30 +02:00
Avi Miller
c0cf9d8729 Add infrared brightness select entity for LIFX Night Vision bulbs (#77943)
* Add infrared brightness select entity for LIFX Night Vision bulbs

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

* Code refactored from review comments

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

* Update and refactor from code review feedback

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

Signed-off-by: Avi Miller <me@dje.li>
2022-09-15 08:53:58 +02:00
starkillerOG
ade4fcaebd Use asyncio in XiaomiAqara instead of threading (#74979)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-15 08:36:56 +02:00
Erik Montnemery
84a812ad05 Allow setting number selector step size to 'any' (#78265)
* Allow setting number selector step size to 'any'

* Improve test coverage
2022-09-15 08:29:46 +02:00
Erik Montnemery
30702bdcd2 Deduplicate some code in scripts and automations (#78443) 2022-09-15 07:41:11 +02:00
Erik Montnemery
0a1fd36e03 Catch up with statistics after DB migration is done (#78469)
* Catch up with statistics after DB migration is done

* Don't access the database from the event loop

* Fix deadlocking test

* Fix test
2022-09-15 07:40:56 +02:00
GitHub Action
bcf01e8873 [ci skip] Translation update 2022-09-15 00:29:28 +00:00
Shay Levy
1b3088e41a Bump aioswitcher to 3.0.0 (#78471) 2022-09-15 00:29:59 +03:00
Teemu R
43053d05b4 Bump python-songpal to 0.15.1 (#78481) 2022-09-14 21:54:01 +02:00
Franck Nijhof
6678f660a8 Remove U.S. Citizenship and Immigration Services (USCIS) integration (#78432)
* Remove U.S. Citizenship and Immigration Services (USCIS) integration

* Update .coveragerc

Fix due to sorting in https://github.com/home-assistant/core/pull/78447

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-09-14 21:51:24 +03:00
Erik Montnemery
8a55f85703 Improve MQTT debug log of retained messages (#78453)
Improve MQTT debug log for retained messages
2022-09-14 20:45:46 +02:00
Robert Hillis
a46982befb Add Google Sheets integration (#77853)
Co-authored-by: Allen Porter <allen@thebends.org>
2022-09-14 14:31:54 -04:00
epenet
996bcbdac6 Make EntityComponent generic (#78473) 2022-09-14 14:16:23 -04:00
epenet
fd05d949cc Fix device_class in demo (#78463)
Use _attr_device_class in demo
2022-09-14 20:09:31 +03:00
Stefan Agner
650aae49fe Support AMD SoC CPU temperature (#78472)
This adds support for CPU temperature readings on AMD SoC based systems
like the AMD G-Series GX-222G found in FUJITSU FUTRO S920.
2022-09-14 20:06:29 +03:00
Erik Montnemery
2ba0f42acc Prevent deleting blueprints which are in use (#78444) 2022-09-14 16:47:08 +02:00
uvjustin
855b0dfdba Pass tasks instead of coros to asyncio.wait in forked_daapd (#78462)
* Remove coroutines from asyncio.wait in forked_daapd

* Update homeassistant/components/forked_daapd/media_player.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-14 15:49:00 +02:00
epenet
219cee2ca9 Move Trace classes to separate module (#78433) 2022-09-14 09:23:29 -04:00
Marc Mueller
99ebac13ed Bump openevsewifi to 1.1.2 (#78460)
Update openevsewifi to 1.1.2
2022-09-14 15:19:43 +02:00
uvjustin
ae865a07b2 Cleanup async_announce in forked_daapd (#78457) 2022-09-14 20:40:20 +08:00
Poltorak Serguei
003d160a96 Rework Z-Wave.Me switch multilevel devices to also use light entity (#77969)
Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
2022-09-14 14:19:17 +02:00
epenet
3941290edc Force root import of const from other components (#78014)
* Force root import of const from other components

* Add missing commit

* Add tests

* Add tests

* Apply suggestion

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

* Apply suggestion

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

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-14 14:07:57 +02:00
epenet
1fcab33653 Improve type hints in light (#78349) 2022-09-14 13:36:20 +02:00
epenet
374b72f052 Make LimitedSizeDict a generic (#78440)
* Make LimitedSizeDict a generic

* Remove comments

* Use super()

* Apply suggestion

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

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-14 13:30:17 +02:00
uvjustin
ad25a966a8 Sort constants in forked_daapd (#78455) 2022-09-14 19:24:51 +08:00
epenet
efb482fb1d Add demo to strict-typing (#77596)
* Add demo to strict-typing

* Adjust component

* Adjust PR

* Update homeassistant/components/demo/mailbox.py

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-14 13:05:00 +02:00
epenet
5e338d2166 Improve type hints in automation (#78368)
* Improve type hints in automation

* Apply suggestion

* Apply suggestion

* Apply suggestion

* Add Protocol for IfAction

* Use ConfigType for IfAction

* Rename variable
2022-09-14 13:04:09 +02:00
J. Nick Koston
b7e9fcb9fe Replace asyncio.wait_for with async_timeout in baf (#78445) 2022-09-14 12:29:43 +02:00
epenet
db44be7054 Sort coveragerc (#78447) 2022-09-14 12:26:22 +02:00
epenet
2625189529 Use async_timeout in forked_daapd (#78451) 2022-09-14 12:24:54 +02:00
Ernst Klamer
fad0b00fbc Binary sensor description for BTHome (#78408) 2022-09-14 12:09:03 +02:00
epenet
13c7a7bbcc Refactor forked_daapd to use _async_announce (#78446) 2022-09-14 11:58:32 +02:00
epenet
5cccb24830 Improve type hints in group (#78350) 2022-09-14 11:36:28 +02:00
epenet
03a24e3a05 Improve type hints in proximity (#78348) 2022-09-14 11:22:58 +02:00
epenet
abc87b5dfa Improve type hints in scene (#78347) 2022-09-14 11:18:23 +02:00
epenet
dce2569389 Improve type hints in weather (#78346)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-14 11:15:47 +02:00
epenet
b87cd926e7 Fix image-processing type hint (#78426) 2022-09-14 11:13:48 +02:00
Franck Nijhof
2b40f3f1e5 2022.9.4 (#78438) 2022-09-14 11:01:27 +02:00
Franck Nijhof
393f1487a5 Remove Ambee integration (#78427) 2022-09-14 10:25:01 +02:00
Franck Nijhof
e839849456 Bumped version to 2022.9.4 2022-09-14 10:03:04 +02:00
Bram Kragten
e711758cfd Update frontend to 20220907.2 (#78431) 2022-09-14 10:02:43 +02:00
Bram Kragten
9382f4be23 Update frontend to 20220907.2 (#78431) 2022-09-14 09:54:51 +02:00
Simone Chemelli
9d535b9ae9 Bump fritzconnection to 1.10.3 (#77847)
* Bump fritzconnection to 1.10.2

* bump to 1.10.3
2022-09-14 08:13:42 +02:00
Paulus Schoutsen
896955e4df 2022.9.3 (#78410) 2022-09-13 21:50:29 -04:00
Diogo Gomes
7b83807baa Retry on unavailable IPMA api (#78332)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-13 21:01:19 -04:00
Diogo Gomes
831c87205f Retry on unavailable IPMA api (#78332)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-13 21:00:59 -04:00
Aaron Bach
6a197332c7 Fix bug with RainMachine update entity (#78411)
* Fix bug with RainMachine update entity

* Comment
2022-09-13 20:57:38 -04:00
GitHub Action
23faf8024e [ci skip] Translation update 2022-09-14 00:28:24 +00:00
Aaron Bach
5501b7e710 Fix bug with RainMachine update entity (#78411)
* Fix bug with RainMachine update entity

* Comment
2022-09-13 18:16:21 -04:00
epenet
416a5cb279 Import constants from component root (#78395) 2022-09-14 00:12:54 +02:00
epenet
f1c7fb7866 Adjust pylint plugin for relative imports (#78277) 2022-09-14 00:11:57 +02:00
epenet
d3be06906b Improve type hints in script helpers (#78364)
* Improve type hints in script helpers

* Import CONF_SERVICE_DATA from homeassistant.const

* Make data optional
2022-09-13 23:11:29 +02:00
epenet
4f963cfc64 Improve type hints in integration (#78345) 2022-09-13 22:45:25 +02:00
J. Nick Koston
14611f9b5c Fix race in logbook websocket test (#78390) 2022-09-13 16:40:08 -04:00
Paulus Schoutsen
1955ff9e0d Bumped version to 2022.9.3 2022-09-13 16:31:51 -04:00
J. Nick Koston
29caf06439 Bump govee-ble to 0.17.3 (#78405) 2022-09-13 16:31:40 -04:00
Bram Kragten
0b5953038e Update frontend to 20220907.1 (#78404) 2022-09-13 16:31:39 -04:00
Marc Mueller
f07e1bc500 Fix CI workflow caching (#78398) 2022-09-13 16:31:38 -04:00
J. Nick Koston
843d5f101a Fix flapping system log test (#78391)
Since we run tests with asyncio debug on, there is
a chance we will get an asyncio log message instead
of the one we want

Fixes https://github.com/home-assistant/core/actions/runs/3045080236/jobs/4906717578
2022-09-13 16:31:38 -04:00
Pascal Vizeli
d98ed5c6f6 Unregister EcoWitt webhook at unload (#78388) 2022-09-13 16:31:37 -04:00
Erik Montnemery
8599472880 Don't allow partial update of timer settings (#78378) 2022-09-13 16:31:37 -04:00
Erik Montnemery
04d6bb085b Don't allow partial update of input_text settings (#78377) 2022-09-13 16:31:36 -04:00
Erik Montnemery
6f9a311cec Don't allow partial update of input_select settings (#78376) 2022-09-13 16:31:35 -04:00
Erik Montnemery
336179df6d Don't allow partial update of input_button settings (#78374) 2022-09-13 16:31:34 -04:00
Erik Montnemery
9459af30b0 Don't allow partial update of input_datetime settings (#78373) 2022-09-13 16:31:34 -04:00
Erik Montnemery
ee07ca8caa Don't allow partial update of input_boolean settings (#78372) 2022-09-13 16:31:33 -04:00
Erik Montnemery
3beed13586 Don't allow partial update of counter settings (#78371) 2022-09-13 16:31:33 -04:00
J. Nick Koston
f0753f7a97 Bump aiohomekit to 1.5.7 (#78369) 2022-09-13 16:31:32 -04:00
J. Nick Koston
dd007cd765 Bump led-ble to 0.10.0 (#78367) 2022-09-13 16:31:31 -04:00
J. Nick Koston
7cdac3ee8c Bump xiaomi-ble to 0.10.0 (#78365) 2022-09-13 16:31:31 -04:00
J. Nick Koston
cd7f65bb6a Bump xiaomi-ble to 0.9.3 (#78301) 2022-09-13 16:31:30 -04:00
J. Nick Koston
b21a37cad5 Bump yalexs-ble to 1.9.0 (#78362) 2022-09-13 16:30:45 -04:00
J. Nick Koston
bfcb9402ef Bump PySwitchbot to 0.19.8 (#78361)
* Bump PySwitchbot to 0.19.7

Changes for bleak 0.17

https://github.com/Danielhiversen/pySwitchbot/compare/0.19.6...0.19.7

* bump again to fix some more stale state bugs
2022-09-13 16:30:44 -04:00
Erik Montnemery
ad396f0538 Don't allow partial update of input_number settings (#78356) 2022-09-13 16:30:44 -04:00
Erik Montnemery
12edfb3929 Drop initial when loading input_number from storage (#78354) 2022-09-13 16:30:43 -04:00
J. Nick Koston
47f6be77cc Bump bleak to 0.17.0 (#78333) 2022-09-13 16:30:42 -04:00
Erik Montnemery
9acf74d783 Fix calculating gas cost for gas measured in ft3 (#78327) 2022-09-13 16:30:42 -04:00
David F. Mulcahey
0aa2685e0c Fix sengled bulbs in ZHA (#78315)
* Fix sengled bulbs in ZHA

* fix tests

* update discovery data
2022-09-13 16:30:41 -04:00
J. Nick Koston
a90b6d37bf Make yalexs_ble matcher more specific (#78307) 2022-09-13 16:30:40 -04:00
J. Nick Koston
d6bf1a8caa Bump pySwitchbot to 0.19.6 (#78304)
No longer swallows exceptions from bleak connection errors which
was hiding the root cause of problems.

This was the original behavior from a long time ago which
does not make sense anymore since we retry a few times anyways

https://github.com/Danielhiversen/pySwitchbot/compare/0.19.5...0.19.6
2022-09-13 16:30:40 -04:00
J. Nick Koston
95a89448e0 Bump aiodiscover to 1.4.13 (#78253) 2022-09-13 16:30:39 -04:00
J. Nick Koston
f6d26476b5 Bump bluetooth-auto-recovery to 0.3.3 (#78245)
Downgrades a few more loggers to debug since the only reason we check them is to give a better error message when the bluetooth adapter is blocked by rfkill.

https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v0.3.2...v0.3.3

closes #78211
2022-09-13 16:30:38 -04:00
d-walsh
9640553b52 Fix missing dependency for dbus_next (#78235) 2022-09-13 16:30:38 -04:00
TheJulianJES
3129114d07 Bump PyViCare==2.17.0 (#78232) 2022-09-13 16:30:37 -04:00
Yevhenii Vaskivskyi
184a1c95f0 Bump blinkpy to 0.19.2 (#78097) 2022-09-13 16:30:36 -04:00
Robert Svensson
f18ab504a5 Move up setup of service to make it more robust when running multiple instances of deCONZ (#77621) 2022-09-13 16:30:36 -04:00
epenet
6c0ad54a84 Use media player enums in dlna_dms (#78393)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-09-13 23:27:04 +03:00
J. Nick Koston
13e8bae432 Bump govee-ble to 0.17.3 (#78405) 2022-09-13 16:17:09 -04:00
Bram Kragten
4c164cc48d Update frontend to 20220907.1 (#78404) 2022-09-13 16:15:45 -04:00
J. Nick Koston
8189af0e7e Bump led-ble to 0.10.0 (#78367) 2022-09-13 16:15:30 -04:00
J. Nick Koston
e2c563c79d Bump yalexs-ble to 1.9.0 (#78362) 2022-09-13 16:14:53 -04:00
J. Nick Koston
32c6f8aaef Bump PySwitchbot to 0.19.8 (#78361)
* Bump PySwitchbot to 0.19.7

Changes for bleak 0.17

https://github.com/Danielhiversen/pySwitchbot/compare/0.19.6...0.19.7

* bump again to fix some more stale state bugs
2022-09-13 23:11:44 +03:00
J. Nick Koston
bf852812bc Fix flapping system log test (#78391)
Since we run tests with asyncio debug on, there is
a chance we will get an asyncio log message instead
of the one we want

Fixes https://github.com/home-assistant/core/actions/runs/3045080236/jobs/4906717578
2022-09-13 23:10:50 +03:00
epenet
02c9541862 Improve type hints in mailbox (#78353) 2022-09-13 21:55:50 +02:00
epenet
49ab5cfc9c Improve type hints in geo-location (#78352) 2022-09-13 21:55:13 +02:00
Pascal Vizeli
0ab19fe6f6 Bump aioecowitt 2022.09.2 (#78287)
* Bump aioecowitt 2022.09.2

* add percentage type
2022-09-13 22:11:57 +03:00
J. Nick Koston
9c2601036d Bump xiaomi-ble to 0.10.0 (#78365) 2022-09-13 21:06:17 +02:00
epenet
dc3c4a2b54 Expose SOURCE_CLOUD in google-assistant root (#78394) 2022-09-13 15:05:55 -04:00
Marc Mueller
4da08ee1e9 Fix CI workflow caching (#78398) 2022-09-13 15:01:46 -04:00
J. Nick Koston
be52b66f6c Bump aiohomekit to 1.5.7 (#78369) 2022-09-13 15:00:45 -04:00
Erik Montnemery
4898a41dcf Don't allow partial update of timer settings (#78378) 2022-09-13 14:58:12 -04:00
Erik Montnemery
925a4b0286 Don't allow partial update of input_text settings (#78377) 2022-09-13 14:57:14 -04:00
Erik Montnemery
19e853dbb0 Don't allow partial update of input_select settings (#78376) 2022-09-13 14:56:59 -04:00
Erik Montnemery
abf8b59831 Don't allow partial update of input_button settings (#78374) 2022-09-13 14:56:46 -04:00
Erik Montnemery
33fa4ec8b2 Don't allow partial update of input_datetime settings (#78373) 2022-09-13 14:56:40 -04:00
Erik Montnemery
e2a0dd9955 Don't allow partial update of input_boolean settings (#78372) 2022-09-13 14:55:24 -04:00
Erik Montnemery
47da1c456b Don't allow partial update of counter settings (#78371) 2022-09-13 14:55:06 -04:00
Erik Montnemery
15f104911a Don't allow partial update of input_number settings (#78356) 2022-09-13 14:54:52 -04:00
Pascal Vizeli
0e7c81288f Unregister EcoWitt webhook at unload (#78388) 2022-09-13 14:51:04 -04:00
J. Nick Koston
be34fdc344 Bump pylutron-caseta to 0.15.1 (#78209) 2022-09-13 17:00:18 +02:00
Yevhenii Vaskivskyi
328530479d Bump blinkpy to 0.19.2 (#78097) 2022-09-13 16:46:31 +02:00
G Johansson
fd7c257a90 Fix Sensibo Pure sensitivity sensor text (#78313) 2022-09-13 16:44:22 +02:00
epenet
69b59c9d59 Improve type hints in trace (#78366) 2022-09-13 09:09:38 -04:00
epenet
458ddb6f4b Improve type hints in image-processing (#78351) 2022-09-13 08:39:39 -04:00
Erik Montnemery
6256d07255 Drop initial when loading input_number from storage (#78354) 2022-09-13 08:39:05 -04:00
dependabot[bot]
a5fa34b4bb Bump home-assistant/builder from 2022.07.0 to 2022.09.0 (#78103)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-13 14:32:37 +02:00
J. Nick Koston
392548fe6e Bump bleak to 0.17.0 (#78333) 2022-09-13 14:31:34 +02:00
epenet
bad81c1bc9 Prevent use of deprecated media-player constants (#77937) 2022-09-13 14:20:15 +02:00
epenet
1dff0075b0 Import humidifier constants from root (#78343) 2022-09-13 14:05:36 +02:00
epenet
7c3258fbec Import network constants from root (#78342) 2022-09-13 14:04:02 +02:00
Daniel Hjelseth Høyer
0d38073817 Bump mill-local to 0.2.0 (#78302) 2022-09-13 13:59:46 +02:00
TheJulianJES
b5935e5a4f Bump PyViCare==2.17.0 (#78232) 2022-09-13 13:01:13 +02:00
J. Nick Koston
131512f7fd Make yalexs_ble matcher more specific (#78307) 2022-09-13 12:38:01 +02:00
epenet
52ea9998bb Use new media player enums in forked_daapd (#78100) 2022-09-13 11:55:24 +02:00
epenet
d88334b2b2 Expose humidifier constants at the top level (#78033) 2022-09-13 11:28:08 +02:00
Robin Wohlers-Reichel
b0249e6aa9 Update solax to 0.3.0 (#78219) 2022-09-13 10:07:38 +02:00
jafar-atili
24266f1426 Add SwitchBee Integration (#70201)
* Add SwitchBee Integration

* fixes

* improved API and more logs

* fixed test_config_flow code

* removed light and cover

* Fixed CR comments, updated pylib, improved response time and lowered the scan interval for lower latency

* CR fixes, added advanced setup form to let the
user choose the following:
    - scan interval in seconds: default 5
    - whether to expose scenarios and group switches from the CU or not

* used SCAN_INTERVAL_SEC instead of typing just the number

* Fixed PR comments, added unit tests

* fixes

* Improved the pypi and updated the code accordingly

* Add SwitchBee Integration

* fixes

* improved API and more logs

* fixed test_config_flow code

* removed light and cover

* Fixed CR comments, updated pylib, improved response time and lowered the scan interval for lower latency

* CR fixes, added advanced setup form to let the
user choose the following:
    - scan interval in seconds: default 5
    - whether to expose scenarios and group switches from the CU or not

* used SCAN_INTERVAL_SEC instead of typing just the number

* Fixed PR comments, added unit tests

* fixes

* Improved the pypi and updated the code accordingly

* fixes

* restored new line in .coveragerc

* test: increased config_flow test coverage

* removed two way type

* Updated CODEOWNERS

* fix: code review comments

* fixed review comments

* added device_info

* moved device info to attribute
2022-09-13 09:01:29 +02:00
Erik Montnemery
4e32bf2ac9 Drop old migration code from entity registry (#78278) 2022-09-12 22:28:05 -04:00
epenet
13f250319d Import websocket api constants from root (#78250) 2022-09-12 22:07:58 -04:00
Erik Montnemery
8a9edea2c1 Fix calculating gas cost for gas measured in ft3 (#78327) 2022-09-12 21:24:49 -04:00
epenet
b5402f9b57 Import device tracker constants from root (#78242) 2022-09-12 20:50:44 -04:00
GitHub Action
955f3b7083 [ci skip] Translation update 2022-09-13 00:29:19 +00:00
J. Nick Koston
05d4ece4de Bump bluetooth-auto-recovery to 0.3.3 (#78245)
Downgrades a few more loggers to debug since the only reason we check them is to give a better error message when the bluetooth adapter is blocked by rfkill.

https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v0.3.2...v0.3.3

closes #78211
2022-09-12 20:16:46 -04:00
d-walsh
0b2c3cfb99 Fix missing dependency for dbus_next (#78235) 2022-09-12 18:03:07 -05:00
Marc Mueller
93a5b99191 Rename zwave_js trigger helper to avoid confusion (#78331)
* Rename zwave_js trigger helper to avoid confusion

* Fix test
2022-09-12 18:36:05 -04:00
epenet
9b0602a8b6 Import device automation constants from root (#78272) 2022-09-13 00:19:57 +02:00
J. Nick Koston
5f1979dbc3 Bump xiaomi-ble to 0.9.3 (#78301) 2022-09-12 16:54:20 -05:00
epenet
e32adfc801 Import modbus constants from root (#78273) 2022-09-12 23:46:24 +02:00
epenet
c687273180 Import media source constants from root (#78275) 2022-09-12 23:45:19 +02:00
epenet
2857a15cbc Import http constants from root (#78274) 2022-09-12 23:43:59 +02:00
epenet
7db1f8186c Improve zone typing (#78294)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-12 23:43:21 +02:00
epenet
dbc6dda41e Adjust components to use relative imports (#78279) 2022-09-12 23:33:21 +02:00
epenet
9cb8d910ce Improve media-player typing (#78300)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-12 23:32:07 +02:00
epenet
55e59b778c Add type hints to TTS provider (#78285)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-12 23:29:55 +02:00
David F. Mulcahey
9d47160e68 Fix sengled bulbs in ZHA (#78315)
* Fix sengled bulbs in ZHA

* fix tests

* update discovery data
2022-09-12 15:37:11 -04:00
epenet
19bee11a01 Improve sun typing (#78298) 2022-09-12 21:34:35 +02:00
J. Nick Koston
3be9bee61e Bump pySwitchbot to 0.19.6 (#78304)
No longer swallows exceptions from bleak connection errors which
was hiding the root cause of problems.

This was the original behavior from a long time ago which
does not make sense anymore since we retry a few times anyways

https://github.com/Danielhiversen/pySwitchbot/compare/0.19.5...0.19.6
2022-09-12 21:18:26 +02:00
epenet
5c8e8e4860 Use new media player enums (#78264) 2022-09-12 20:06:27 +02:00
epenet
5e9c0399eb Add STT checks to pylint plugin (#78284) 2022-09-12 18:58:06 +02:00
epenet
7871a517a8 Import constants from root (#78271) 2022-09-12 18:53:05 +02:00
epenet
7aa7458a22 Expose modbus constants in root (#78269) 2022-09-12 18:48:10 +02:00
epenet
1fc8a570b0 Expose media-source constants in root (#78268) 2022-09-12 18:46:25 +02:00
epenet
1e6e10ec93 Expose constants in device_tracker root (#78240) 2022-09-12 18:43:50 +02:00
epenet
454bdcc00d Expose http constants in root (#78267) 2022-09-12 18:41:18 +02:00
epenet
17e217269f Expose device_automation constants in root (#78266) 2022-09-12 18:39:07 +02:00
epenet
2f3091122b Import update constants from root (#78251) 2022-09-12 18:22:22 +02:00
epenet
d8c5d08f90 Expose websocket_api constants in root (#78249) 2022-09-12 18:18:37 +02:00
epenet
ac3534cba1 Import number constants from root (#78248) 2022-09-12 18:14:49 +02:00
epenet
9c8e9f044b Import stt constants from root (#78247) 2022-09-12 18:12:06 +02:00
epenet
45a69090f0 Expose and use lovelace constants from root (#78246) 2022-09-12 18:10:33 +02:00
epenet
4dcbe3e608 Import notify constants from root (#78244) 2022-09-12 18:07:26 +02:00
epenet
1fb5800bdf Import trace constants from root (#78243) 2022-09-12 18:06:03 +02:00
epenet
0ce526efe1 Import logbook constants from root (#78236) 2022-09-12 17:53:06 +02:00
Radu
6a5678154a Add ZigStar ZeroConf (#78237) 2022-09-12 09:26:23 -05:00
alakdae
844074c3a9 Add extra precision to ADC voltage (from 1 decimal to 2 decimals) (#77889) 2022-09-12 16:53:03 +03:00
epenet
253d355526 Remove unused mypy ignore statements (#78292) 2022-09-12 09:25:11 -04:00
J. Nick Koston
e83594a179 Bump aiodiscover to 1.4.13 (#78253) 2022-09-12 12:19:45 +02:00
Raman Gupta
abebf3c067 Switch to new entity naming schema across zwave_js (#77434) 2022-09-12 09:14:59 +02:00
GitHub Action
b56f54745a [ci skip] Translation update 2022-09-12 00:26:16 +00:00
epenet
7eb5e6d623 Import automation constants from root (#78238) 2022-09-11 21:11:51 +02:00
Paulus Schoutsen
2bd71f62ea 2022.9.2 (#78169) 2022-09-11 13:28:28 -04:00
J. Nick Koston
296db8b2af Bump aiohomekit to 1.5.6 (#78228) 2022-09-11 12:21:29 -04:00
J. Nick Koston
a277664187 Bump led-ble to 0.9.1 (#78226) 2022-09-11 12:21:28 -04:00
J. Nick Koston
1b7a06912a Bump yalexs-ble to 1.8.1 (#78225) 2022-09-11 12:21:27 -04:00
J. Nick Koston
e7986a54a5 Bump PySwitchbot to 0.19.5 (#78224) 2022-09-11 12:21:26 -04:00
G Johansson
de8b066a1d Bump pysensibo to 1.0.20 (#78222) 2022-09-11 12:21:25 -04:00
J. Nick Koston
4d4a87ba05 Bump led_ble to 0.8.5 (#78215)
* Bump led_ble to 0.8.4

Changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v0.8.3...v0.8.4

* bump again
2022-09-11 12:21:24 -04:00
Aaron Bach
4b79e82e31 Bump regenmaschine to 2022.09.1 (#78210) 2022-09-11 12:21:24 -04:00
J. Nick Koston
1e8f461270 Bump bluetooth-adapters to 0.4.1 (#78205)
Switches to dbus-fast which fixes a file descriptor leak
2022-09-11 12:21:23 -04:00
Vincent Knoop Pathuis
6e88b8d3d5 Landis+Gyr integration: increase timeout and add debug logging (#78025) 2022-09-11 12:21:22 -04:00
J. Nick Koston
c0374a9434 Bump PySwitchbot to 0.19.5 (#78224) 2022-09-11 12:19:31 -04:00
J. Nick Koston
5a9dfa9df9 Bump aiohomekit to 1.5.6 (#78228) 2022-09-11 12:19:12 -04:00
J. Nick Koston
7e0652f80e Bump led-ble to 0.9.1 (#78226) 2022-09-11 12:19:01 -04:00
J. Nick Koston
4da10a50ad Bump yalexs-ble to 1.8.1 (#78225) 2022-09-11 12:18:52 -04:00
G Johansson
f0053066ca Bump pysensibo to 1.0.20 (#78222) 2022-09-11 12:18:38 -04:00
Vincent Knoop Pathuis
93b7f604d5 Landis+Gyr integration: increase timeout and add debug logging (#78025) 2022-09-11 12:18:01 -04:00
Artem Draft
29be6d17b0 Add is_host_valid util (#76589) 2022-09-11 11:12:04 -05:00
epenet
b0777e6280 Use new media player enums in demo (#78114)
* Use new media player enums in demo

* Adjust import location
2022-09-11 16:48:18 +02:00
epenet
9a61cc07c7 Use new media player enums in emby (#78098) 2022-09-11 16:36:03 +02:00
Aaron Bach
49222d6bc8 Bump regenmaschine to 2022.09.1 (#78210) 2022-09-11 10:17:36 +02:00
J. Nick Koston
d77ca99791 Bump bluetooth-adapters to 0.4.1 (#78205)
Switches to dbus-fast which fixes a file descriptor leak
2022-09-11 10:06:13 +02:00
J. Nick Koston
e77058b762 Bump led_ble to 0.8.5 (#78215)
* Bump led_ble to 0.8.4

Changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v0.8.3...v0.8.4

* bump again
2022-09-11 10:04:05 +02:00
GitHub Action
051974304a [ci skip] Translation update 2022-09-11 00:27:01 +00:00
epenet
5f2567cd43 Use alphabetical order for platforms in pylint plugin (#78126) 2022-09-10 23:46:30 +02:00
epenet
0d2465cf0a Expose logbook constants at the top level (#78184) 2022-09-10 23:44:03 +02:00
epenet
6affd9c6fb Import climate constants from root [m-z] (#78178) 2022-09-10 23:42:28 +02:00
epenet
ec532414ba Import climate constants from root [a-l] (#78177) 2022-09-10 23:39:52 +02:00
epenet
7eefaa308f Use new media player enums in universal (#78112) 2022-09-10 22:29:04 +02:00
epenet
0d88567e0e Use new media player enums in soundtouch (#78110) 2022-09-10 22:26:26 +02:00
epenet
9e1cb914b1 Use new media player enums in snapcast (#78109) 2022-09-10 22:24:01 +02:00
epenet
d0605d3a59 Use new media player enums in kodi (#78106) 2022-09-10 22:22:18 +02:00
epenet
a2559b48ce Use new media player enums in group (#78104) 2022-09-10 22:17:38 +02:00
epenet
64fd84bd88 Use new media player enums in frontier_silicon (#78101) 2022-09-10 22:16:04 +02:00
epenet
a1aac4a2e9 Use new media player enums in esphome (#78099) 2022-09-10 22:12:37 +02:00
J. Nick Koston
a626ab4f1a Bump aiohomekit to 1.5.4 to handle stale ble connections at startup (#78203) 2022-09-10 14:37:06 -04:00
J. Nick Koston
c7cb0d1a07 Close stale switchbot connections at setup time (#78202) 2022-09-10 14:37:05 -04:00
puddly
183c61b6ca Bump ZHA dependencies (#78201) 2022-09-10 14:37:05 -04:00
J. Nick Koston
95c20df367 Fix Yale Access Bluetooth not setting up when already connected at startup (#78199) 2022-09-10 14:37:04 -04:00
J. Nick Koston
a969ce273a Fix switchbot not setting up when already connected at startup (#78198) 2022-09-10 14:37:03 -04:00
J. Nick Koston
5f90760176 Bump led-ble to 0.8.3 (#78188)
* Bump led-ble to 0.8.0

Fixes setup when the previous shutdown was not clean and
the device is still connected

* bump again

* bump again

* bump again
2022-09-10 14:37:03 -04:00
Pascal Vizeli
795be361b4 Add dependencies to ecowitt (#78187) 2022-09-10 14:37:02 -04:00
Rami Mosleh
cdd5c809bb Fix sending notification to multiple targets in Pushover (#78111)
fix sending to mulitple targets
2022-09-10 14:37:01 -04:00
J. Nick Koston
27e8e40968 Bump aiohomekit to 1.5.4 to handle stale ble connections at startup (#78203) 2022-09-10 14:36:44 -04:00
J. Nick Koston
a3ec28ea79 Close stale switchbot connections at setup time (#78202) 2022-09-10 14:21:10 -04:00
puddly
f19af72895 Bump ZHA dependencies (#78201) 2022-09-10 13:56:01 -04:00
Rami Mosleh
17ed090f98 Fix sending notification to multiple targets in Pushover (#78111)
fix sending to mulitple targets
2022-09-10 19:35:26 +02:00
J. Nick Koston
dbcb269111 Fix switchbot not setting up when already connected at startup (#78198) 2022-09-10 13:32:38 -04:00
J. Nick Koston
1e302c12ff Fix Yale Access Bluetooth not setting up when already connected at startup (#78199) 2022-09-10 13:32:29 -04:00
J. Nick Koston
c406e4defe Bump led-ble to 0.8.3 (#78188)
* Bump led-ble to 0.8.0

Fixes setup when the previous shutdown was not clean and
the device is still connected

* bump again

* bump again

* bump again
2022-09-10 19:30:30 +02:00
Pascal Vizeli
a877c8030f Add dependencies to ecowitt (#78187) 2022-09-10 17:02:36 +02:00
Paulus Schoutsen
c731e2f125 Fix ecowitt typing (#78171) 2022-09-09 23:32:26 -04:00
Paulus Schoutsen
b2692ecc80 Fix ecowitt typing (#78171) 2022-09-09 23:32:14 -04:00
J. Nick Koston
1789a8a385 Bump aiohomekit to 1.5.3 (#78170) 2022-09-09 23:20:55 -04:00
J. Nick Koston
68b511737d Bump aiohomekit to 1.5.3 (#78170) 2022-09-09 23:20:39 -04:00
Ernst Klamer
39f40011cc Add BTHome binary sensors (#78151) 2022-09-09 22:43:25 -04:00
Paulus Schoutsen
57717f13fc Bumped version to 2022.9.2 2022-09-09 22:39:13 -04:00
J. Nick Koston
e4aab6a818 Bump pySwitchbot to 0.19.1 (#78168) 2022-09-09 22:37:35 -04:00
Jc2k
258791626e Add missing moisture sensor to xiaomi_ble (#78160) 2022-09-09 22:37:35 -04:00
Pascal Vizeli
78802c8480 Bump aioecowitt to 2022.09.1 (#78142) 2022-09-09 22:37:34 -04:00
Yevhenii Vaskivskyi
b24f3725d6 Add missing strings for errors in amberelectric config flow (#78140) 2022-09-09 22:37:33 -04:00
J. Nick Koston
06116f76fa Bump bluetooth-adapters to 0.3.6 (#78138) 2022-09-09 22:37:33 -04:00
Erik Montnemery
27c0a37053 Allow non-integers in threshold sensor config flow (#78137) 2022-09-09 22:37:32 -04:00
Erik Montnemery
2b961fd327 Improve unique_id collision checks in entity_platform (#78132) 2022-09-09 22:37:31 -04:00
Raman Gupta
125afb39f0 Fix zwave_js update entity (#78116)
* Test zwave_js update entity progress

* Block until firmware update is done

* Update homeassistant/components/zwave_js/update.py

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

* revert params

* unsub finished event listener

* fix tests

* Add test for returned failure

* refactor a little

* rename

* Remove unnecessary controller logic for mocking

* Clear event when resetting

* Comments

* readability

* Fix test

* Fix test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-09 22:37:31 -04:00
Anders Melchiorsen
3ee62d619f Fix LIFX light turning on while fading off (#78095) 2022-09-09 22:37:30 -04:00
J. Nick Koston
dc7c860c6a Fix switchbot writing state too frequently (#78094) 2022-09-09 22:37:29 -04:00
Paulus Schoutsen
f042cc5d7b Handle missing supported brands (#78090) 2022-09-09 22:37:29 -04:00
Jan Bouwhuis
4c0872b4e4 Improve warning messages on invalid received modes (#77909) 2022-09-09 22:37:28 -04:00
Jan Bouwhuis
21f6b50f7c Clear MQTT discovery topic when a disabled entity is removed (#77757)
* Cleanup discovery on entity removal

* Add test

* Cleanup and test

* Test with clearing payload not unique id

* Address comments

* Tests cover and typing

* Just pass hass

* reuse code

* Follow up comments revert changes to cover tests

* Add test unique_id has priority over disabled

* Update homeassistant/components/mqtt/__init__.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-09 22:37:27 -04:00
Jan Bouwhuis
d670df74cb Fix reload of MQTT config entries (#76089)
* Wait for unsubscribes

* Spelling comment

* Remove notify_all() during _register_mid()

* Update homeassistant/components/mqtt/client.py

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

* Correct handling reload manual set up MQTT items

* Save and restore device trigger subscriptions

* Clarify we are storing all remaining subscriptions

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-09 22:37:27 -04:00
J. Nick Koston
a1ec9c6147 Bump pySwitchbot to 0.19.1 (#78168) 2022-09-09 22:32:17 -04:00
Jc2k
28f4a5b7a2 Add missing moisture sensor to xiaomi_ble (#78160) 2022-09-09 22:31:51 -04:00
Pascal Vizeli
0227f2cd67 Bump aioecowitt to 2022.09.1 (#78142) 2022-09-09 22:31:10 -04:00
GitHub Action
901031eb25 [ci skip] Translation update 2022-09-10 00:29:43 +00:00
J. Nick Koston
d98ed03845 Fix switchbot writing state too frequently (#78094) 2022-09-09 18:13:27 -05:00
J. Nick Koston
fcb6888f87 Start logbook stream faster (#77921)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-09 17:16:02 -05:00
Raman Gupta
8cc0b41daf Fix zwave_js update entity (#78116)
* Test zwave_js update entity progress

* Block until firmware update is done

* Update homeassistant/components/zwave_js/update.py

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

* revert params

* unsub finished event listener

* fix tests

* Add test for returned failure

* refactor a little

* rename

* Remove unnecessary controller logic for mocking

* Clear event when resetting

* Comments

* readability

* Fix test

* Fix test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-09 22:10:56 +02:00
Michael Kowalchuk
19cf5dfc6d Add zwave_js speed configuration for Leviton ZW4SF fans (#60677)
* Add speed info for Leviton 4 speed fans

* Use new format for fan speed configuration

* Add a fixture and test for the Leviton ZW4SF

* Use pytest.approx
2022-09-09 22:06:01 +02:00
J. Nick Koston
8084d163d3 Bump bluetooth-adapters to 0.3.6 (#78138) 2022-09-09 13:56:21 -04:00
G Johansson
167b9cb1a0 Additional cleanup for Sensibo (#78144)
* Clean sensibo code

* Add function to description
2022-09-09 17:06:57 +02:00
epenet
7a3ca8278d Expose climate constants at the top level (#78018)
* Expose climate constants at the top level

* Add new climate enums

* Add new climate enums

* Import new enums

* Adjust ClimateEntity

* Adjust pylint

* Fix mypy

* Revert "Fix mypy"

This reverts commit 3dbe2fab01.

* Revert "Adjust pylint"

This reverts commit b19b085b22.

* Revert "Adjust ClimateEntity"

This reverts commit 6a822c58f1.

* Revert "Import new enums"

This reverts commit 7d70007c60.

* Revert "Add new climate enums"

This reverts commit dcd7716106.

* Revert "Add new climate enums"

This reverts commit a9aaa08a1c.
2022-09-09 16:42:01 +02:00
Yevhenii Vaskivskyi
6a41a631db Add missing strings for errors in amberelectric config flow (#78140) 2022-09-09 10:36:48 -04:00
Erik Montnemery
5c40dffb29 Allow non-integers in threshold sensor config flow (#78137) 2022-09-09 10:05:14 -04:00
epenet
dd86d7f0ea Use new media player enums in mediaroom (#78108) 2022-09-09 15:27:30 +02:00
Jan Bouwhuis
fb67123d77 Clear MQTT discovery topic when a disabled entity is removed (#77757)
* Cleanup discovery on entity removal

* Add test

* Cleanup and test

* Test with clearing payload not unique id

* Address comments

* Tests cover and typing

* Just pass hass

* reuse code

* Follow up comments revert changes to cover tests

* Add test unique_id has priority over disabled

* Update homeassistant/components/mqtt/__init__.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-09 15:24:26 +02:00
Anders Melchiorsen
0a143ac596 Fix LIFX light turning on while fading off (#78095) 2022-09-09 08:43:54 -04:00
Erik Montnemery
e332091d76 Improve unique_id collision checks in entity_platform (#78132) 2022-09-09 14:35:23 +02:00
uvjustin
9b2d17cd00 Escape media_content_id in media player proxy (#77811)
* Escape media_content_id in media player proxy

* Change usage in kodi

* Change usage in roku

* Change usage in sonos

* Add test

* Add comment

* Change path regex instead of double quoting

* Use .+ instead of .*
2022-09-09 13:18:24 +02:00
holysoles
c3b2e03ce8 Support unique_id for Universal Media Player (#77461)
* support unique id

* tests for unique_id

* use unique_id attribute
2022-09-09 11:50:39 +02:00
epenet
b369c2f54c Deprecate SUPPORT_* constants for color_mode (#69269)
* Deprecate SUPPORT_* constants for color_mode

* Simplify

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-09-09 11:27:16 +02:00
Jan Bouwhuis
9a4c8f5f0e Refactor common MQTT tests to use modern schema (#77583)
* Common tests availability

* Common tests attributes

* Common tests unique id

* Common tests discovery

* Common tests encoding

* Common tests device info

* Common tests entity_id updated

* Common tests entity debug info

* Common test entity category

* Common tests setup reload unload+corrections

* Cleanup sweep

* Comments from curent change

* Cleanup

* Remove unused legacy config
2022-09-09 11:15:48 +02:00
Jan Bouwhuis
d53d59eb6c Improve warning messages on invalid received modes (#77909) 2022-09-09 11:12:09 +02:00
epenet
8b3ce8c58c Use new constants in dlna_dmr media player (#78045) 2022-09-09 09:03:59 +02:00
epenet
7ff23506fe Use new enums in cast (#77946)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-09 08:57:14 +02:00
Erik Montnemery
eb28d7188b Fix DB migration to schema version 29 (#78037)
* Fix DB migration to schema version 29

* Fix misspelled constants
2022-09-09 08:06:14 +02:00
Paulus Schoutsen
0e734e629c Handle missing supported brands (#78090) 2022-09-09 07:47:33 +02:00
Paulus Schoutsen
0a7f3f6ced 2022.9.1 (#78081) 2022-09-08 21:58:18 -04:00
rlippmann
fee9a303ff Fix issue #77920 - ecobee remote sensors not updating (#78035) 2022-09-08 21:02:32 -04:00
rlippmann
fe04af8798 Fix issue #77920 - ecobee remote sensors not updating (#78035) 2022-09-08 21:01:43 -04:00
GitHub Action
718d4ac6cc [ci skip] Translation update 2022-09-09 00:28:55 +00:00
Alex Thompson
45b69618d3 Add iBeacon start byte to allowed Apple Bluetooth advertisements (#78088) 2022-09-08 18:21:58 -05:00
epenet
a9b5e276bb Use new media player enums [x-z] (#78068) 2022-09-08 23:25:51 +02:00
epenet
8bdeb3ca5b Use new media player enums [u-w] (#78067) 2022-09-08 23:22:16 +02:00
epenet
6b157921ea Use new media player enums [s] (#78064) 2022-09-08 23:05:10 +02:00
epenet
45d0ec7150 Use new media player enums [r] (#78062) 2022-09-08 22:59:52 +02:00
epenet
52b5e1779f Use new media player enums [p] (#78058) 2022-09-08 22:54:43 +02:00
Paulus Schoutsen
a4f398a750 Bumped version to 2022.9.1 2022-09-08 16:50:47 -04:00
Jan Bouwhuis
c873eae79c Allow OpenWeatherMap config flow to test using old API to pass (#78074)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-08 16:50:13 -04:00
Nathan Spencer
d559b6482a Bump pylitterbot to 2022.9.1 (#78071) 2022-09-08 16:50:12 -04:00
Aaron Bach
760853f615 Fix bug with 1st gen RainMachine controllers and unknown API calls (#78070)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-08 16:50:12 -04:00
J. Nick Koston
cfe8ebdad4 Bump bluetooth-auto-recovery to 0.3.2 (#78063) 2022-09-08 16:50:11 -04:00
J. Nick Koston
2ddd1b516c Bump bluetooth-adapters to 0.3.5 (#78052) 2022-09-08 16:50:10 -04:00
Martin Hjelmare
3b025b211e Fix zwave_js device re-interview (#78046)
* Handle stale node and entity info on re-interview

* Add test

* Unsubscribe on config entry unload
2022-09-08 16:50:10 -04:00
Maikel Punie
4009a32fb5 Bump velbus-aio to 2022.9.1 (#78039)
Bump velbusaio to 2022.9.1
2022-09-08 16:50:09 -04:00
Joakim Sørensen
6f3b49601e Extract lametric device from coordinator in notify (#78027) 2022-09-08 16:50:08 -04:00
Martin Hjelmare
31858ad779 Fix zwave_js default emulate hardware in options flow (#78024) 2022-09-08 16:50:08 -04:00
Raman Gupta
ab9d9d599e Add value ID to zwave_js device diagnostics (#78015) 2022-09-08 16:50:07 -04:00
Yevhenii Vaskivskyi
ce6d337bd5 Fix len method typo for Osram light (#78008)
* Fix `len` method typo for Osram light

* Fix typo in line 395
2022-09-08 16:50:06 -04:00
Raman Gupta
3fd887b1f2 Show progress for zwave_js.update entity (#77905)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-08 16:50:05 -04:00
Jan Bouwhuis
9c192dea9c Allow OpenWeatherMap config flow to test using old API to pass (#78074)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-09-08 16:49:49 -04:00
epenet
2f8af92735 Use new media player enums [m-o] (#78057) 2022-09-08 22:47:59 +02:00
epenet
56c4e0391d Use new media player enums [e-h] (#78049) 2022-09-08 22:44:30 +02:00
Aaron Bach
9fc9d50e07 Fix bug with 1st gen RainMachine controllers and unknown API calls (#78070)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-08 16:41:09 -04:00
Raman Gupta
52d2ebd2c8 Show progress for zwave_js.update entity (#77905)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-08 16:40:55 -04:00
epenet
823e7e8830 Use new media player enums [i-l] (#78054) 2022-09-08 22:35:53 +02:00
Erik Montnemery
7937bfeedb Deprecate history integration's statistics API (#78056) 2022-09-08 16:03:43 -04:00
Maikel Punie
c528a2d2cd Bump velbus-aio to 2022.9.1 (#78039)
Bump velbusaio to 2022.9.1
2022-09-08 20:28:40 +02:00
Martin Hjelmare
f11b51e12b Fix zwave_js device re-interview (#78046)
* Handle stale node and entity info on re-interview

* Add test

* Unsubscribe on config entry unload
2022-09-08 20:15:27 +02:00
Raman Gupta
996a3477b0 Increase rate limit for zwave_js updates
Al provided a new key which bumps the rate limit from 10k per hour to 100k per hour
2022-09-08 14:03:04 -04:00
J. Nick Koston
be064bfeef Bump bluetooth-auto-recovery to 0.3.2 (#78063) 2022-09-08 19:15:26 +02:00
Nathan Spencer
03e6bd0811 Bump pylitterbot to 2022.9.1 (#78071) 2022-09-08 19:13:20 +02:00
Raman Gupta
01189b023c Increase rate limit for zwave_js updates
Al provided a new key which bumps the rate limit from 10k per hour to 100k per hour
2022-09-08 12:53:30 -04:00
J. Nick Koston
2a23792b23 Bump bluetooth-adapters to 0.3.5 (#78052) 2022-09-08 09:58:53 -04:00
epenet
03f4eb84a0 Improve type hints in demo and dependencies (#78022) 2022-09-08 12:46:41 +02:00
epenet
ff356205bf Use platform constants from root (#78032) 2022-09-08 12:24:45 +02:00
epenet
f14bb8195f Import climate constants from root [a-l] (#78021) 2022-09-08 11:24:15 +02:00
Erik Montnemery
c134bcc536 Remove use of deprecated SUPPORT_* constants from Template light (#77836) 2022-09-08 11:22:38 +02:00
Erik Montnemery
b21f8c9ea8 Remove use of deprecated SUPPORT_* constants from MQTT light (#77828)
* Remove use of deprecated SUPPORT_* constants from MQTT light

* Refactor
2022-09-08 11:21:46 +02:00
epenet
9a5fe950a4 Use new media player enums [a-d] (#77939) 2022-09-08 11:03:10 +02:00
Martin Hjelmare
bfe245cc3f Fix zwave_js default emulate hardware in options flow (#78024) 2022-09-08 10:59:40 +02:00
Joakim Sørensen
11e897a5e8 Extract lametric device from coordinator in notify (#78027) 2022-09-08 10:50:14 +02:00
epenet
5276d849ec Improve type hints in apple_tv media player (#77940) 2022-09-08 10:46:23 +02:00
epenet
e2568d8375 Import climate constants from root [m-z] (#78020) 2022-09-08 10:34:44 +02:00
epenet
f87e873275 Adjust alexa imports (#78013) 2022-09-08 09:45:22 +02:00
epenet
23168434d5 Add pylint directory to black pre-commit (#78011)
Add pylint to black CI
2022-09-08 09:14:58 +02:00
Raman Gupta
37631d2017 Add value ID to zwave_js device diagnostics (#78015) 2022-09-08 09:13:01 +02:00
Yevhenii Vaskivskyi
1802ecfc24 Fix len method typo for Osram light (#78008)
* Fix `len` method typo for Osram light

* Fix typo in line 395
2022-09-08 08:49:36 +02:00
GitHub Action
ea26c0bf77 [ci skip] Translation update 2022-09-08 00:27:38 +00:00
epenet
f62fbbe524 Use _attr_force_update in mqtt (#77902) 2022-09-07 23:42:16 +02:00
Paulus Schoutsen
910f27f3a2 2022.9.0 (#77968) 2022-09-07 12:49:59 -04:00
Franck Nijhof
4ab5cdcb79 Bumped version to 2022.9.0 2022-09-07 17:46:53 +02:00
Bram Kragten
e69fde6875 Update frontend to 20220907.0 (#77963) 2022-09-07 17:45:47 +02:00
J. Nick Koston
10f7e2ff8a Handle stale switchbot advertisement data while connected (#77956) 2022-09-07 17:45:42 +02:00
J. Nick Koston
3acc3af38c Bump PySwitchbot to 0.18.25 (#77935) 2022-09-07 17:45:36 +02:00
J. Nick Koston
a3edbfc601 Small tweaks to improve performance of bluetooth matching (#77934)
* Small tweaks to improve performance of bluetooth matching

* Small tweaks to improve performance of bluetooth matching

* cleanup
2022-09-07 17:45:31 +02:00
J. Nick Koston
941a5e3820 Bump led-ble to 0.7.1 (#77931) 2022-09-07 17:45:26 +02:00
J. Nick Koston
2eeab820b7 Bump aiohomekit to 1.5.2 (#77927) 2022-09-07 17:45:21 +02:00
Franck Nijhof
8d0ebdd1f9 Revert "Add ability to ignore devices for UniFi Protect" (#77916) 2022-09-07 17:45:16 +02:00
Raman Gupta
9901b31316 Bump zwave-js-server-python to 0.41.1 (#77915)
* Bump zwave-js-server-python to 0.41.1

* Fix fixture
2022-09-07 17:45:11 +02:00
Chris McCurdy
a4f528e908 Add additional method of retrieving UUID for LG soundbar configuration (#77856) 2022-09-07 17:45:05 +02:00
puddly
9aa87761cf Fix ZHA lighting initial hue/saturation attribute read (#77727)
* Handle the case of `current_hue` being `None`

* WIP unit tests
2022-09-07 17:45:00 +02:00
Matthew Simpson
d1b637ea7a Bump btsmarthub_devicelist to 0.2.2 (#77609) 2022-09-07 17:44:54 +02:00
Chris McCurdy
52c8c80f91 Add additional method of retrieving UUID for LG soundbar configuration (#77856) 2022-09-07 17:43:05 +02:00
Bram Kragten
cd5967c4c6 Update frontend to 20220907.0 (#77963) 2022-09-07 17:31:53 +02:00
puddly
4076f8b94e Fix ZHA lighting initial hue/saturation attribute read (#77727)
* Handle the case of `current_hue` being `None`

* WIP unit tests
2022-09-07 11:10:24 -04:00
J. Nick Koston
2cfdc15c38 Handle stale switchbot advertisement data while connected (#77956) 2022-09-07 16:54:21 +02:00
epenet
645f5e5ac1 Introduce new MediaPlayerState StrEnum (#77941)
* Adjust media-player checks in pylint plugin

* Adjust media-player definitions

* Adjust cast signatures

* Adjust play_media signature

* Introduce MediaPlayerState

* Fix cast implementations

* Revert cast changes

* Update hass_enforce_type_hints.py

* Use set

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

* Fix tests

* Keep unused constants

* Fix test

* Revert tests

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-07 16:30:22 +02:00
Alex Thompson
951047d94e Add initial implementation of tilt_ble integration (#77633)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-07 09:24:21 -05:00
epenet
9490771a87 Refactor distance, speed and volume utils (#77952)
* Refactor distance util

* Fix bmw connected drive tests

* Adjust here travel time tests

* Adjust waze travel time tests

* Adjust test_distance

* Adjust rounding values

* Adjust more tests

* Adjust volume conversions

* Add tests
2022-09-07 16:18:00 +02:00
Marc Mueller
01f1629ac0 Update surepy to 0.8.0 (#77948) 2022-09-07 15:13:51 +02:00
kingy444
a0071e7877 Bump aiopvapi to 2.0.1 (#77949) 2022-09-07 13:17:45 +02:00
J. Nick Koston
e42c48ebca Bump PySwitchbot to 0.18.25 (#77935) 2022-09-07 06:12:17 -05:00
epenet
f71313ee1e Adjust get_scanner pylint checks (#77944) 2022-09-07 10:58:54 +02:00
Daniel Hjelseth Høyer
9fa30af8de Bump pyTibber to 0.25.2 (#77919) 2022-09-07 10:26:07 +02:00
J. Nick Koston
79b46956e9 Bump led-ble to 0.7.1 (#77931) 2022-09-07 10:22:19 +02:00
epenet
9fb0b3995c Adjust pylint checks for notify get_service (#77606)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-07 09:44:15 +02:00
epenet
a82484d7a7 Use attributes in rest base entity (#77903) 2022-09-07 09:40:52 +02:00
Raman Gupta
fce28d4848 Bump zwave-js-server-python to 0.41.1 (#77915)
* Bump zwave-js-server-python to 0.41.1

* Fix fixture
2022-09-07 07:28:47 +02:00
Ståle Storø Hauknes
79d2c87844 Mill gen 3 cloud, support precision halves for gen 3 heaters (#77932)
* Update pymill to latest version

* Use float with PRECISION_HALVES for Mill Gen 3 cloud connected heaters
2022-09-07 07:25:23 +02:00
Lennard Scheibel
35cdad943b Fix shopping_list service calls not notifying event bus (#77794) 2022-09-06 23:18:27 -04:00
GitHub Action
4f7ad27b65 [ci skip] Translation update 2022-09-07 00:27:56 +00:00
J. Nick Koston
dfef6c3d28 Small tweaks to improve performance of bluetooth matching (#77934)
* Small tweaks to improve performance of bluetooth matching

* Small tweaks to improve performance of bluetooth matching

* cleanup
2022-09-06 19:12:32 -04:00
J. Nick Koston
9ba1bb7c73 Bump aiohomekit to 1.5.2 (#77927) 2022-09-06 16:43:18 -05:00
Matthew Simpson
4e625f0360 Bump btsmarthub_devicelist to 0.2.2 (#77609) 2022-09-06 21:50:03 +02:00
Rami Mosleh
769084058d Add sensors for Tuya "tdq" category switches (#77581) 2022-09-06 20:22:04 +02:00
epenet
19b85851a1 Use _attr_force_update in tasmota (#77900) 2022-09-06 20:20:07 +02:00
epenet
6864f43986 Drop unused property from zha (#77897) 2022-09-06 20:19:33 +02:00
Marc Mueller
87ab14d758 Add protocol type for legacy notify platforms (#77894) 2022-09-06 20:18:52 +02:00
Franck Nijhof
dbb556a812 Revert "Add ability to ignore devices for UniFi Protect" (#77916) 2022-09-06 20:13:01 +02:00
epenet
5632e33426 Improve type hints in lw12wifi light (#77656) 2022-09-06 20:00:51 +02:00
epenet
759f12bcda Use attributes in hvv_departures (#77588) 2022-09-06 19:58:27 +02:00
Paulus Schoutsen
c8ad8a6d86 Bumped version to 2022.9.0b6 2022-09-06 12:55:44 -04:00
Bram Kragten
9155f669e9 Update frontend to 20220906.0 (#77910) 2022-09-06 12:55:37 -04:00
J. Nick Koston
e1e153f391 Bump bluetooth-auto-recovery to 0.3.1 (#77898) 2022-09-06 12:55:36 -04:00
Artem Draft
1dbcf88e15 Bump pybravia to 0.2.2 (#77867) 2022-09-06 12:55:35 -04:00
Raman Gupta
a13438c5b0 Improve performance impact of zwave_js update entity and other tweaks (#77866)
* Improve performance impact of zwave_js update entity and other tweaks

* Reduce concurrent polls

* we need to write state after setting in progress to false

* Fix existing tests

* Fix tests by fixing fixtures

* remove redundant conditional

* Add test for delayed startup

* tweaks

* outdent happy path

* Add missing PROGRESS feature support

* Update homeassistant/components/zwave_js/update.py

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

* Update homeassistant/components/zwave_js/update.py

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

* Fix tests by reverting outdent, PR comments, mark callback

* Remove redundant conditional

* make more readable

* Remove unused SCAN_INTERVAL

* Catch FailedZWaveCommand

* Add comment and remove poll unsub on update

* Fix catching error and add test

* readability

* Fix tests

* Add assertions

* rely on built in progress indicator

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-06 12:55:35 -04:00
J. Nick Koston
d98687b789 Bump thermopro-ble to 0.4.3 (#77863)
* Bump thermopro-ble to 0.4.2

- Turns on rounding of long values
- Uses bluetooth-data-tools under the hood
- Adds the TP393 since it works without any changes to the parser

Changelog: https://github.com/Bluetooth-Devices/thermopro-ble/compare/v0.4.0...v0.4.2

* bump again for device detection fix
2022-09-06 12:55:34 -04:00
Marc Mueller
319b0b8902 Pin astroid to fix pylint (#77862) 2022-09-06 12:55:33 -04:00
J. Nick Koston
62dcbc4d4a Add RSSI to the bluetooth debug log (#77860) 2022-09-06 12:55:33 -04:00
J. Nick Koston
6989b16274 Bump zeroconf to 0.39.1 (#77859) 2022-09-06 12:55:32 -04:00
J. Nick Koston
31d085cdf8 Fix history stats device class when type is not time (#77855) 2022-09-06 12:55:31 -04:00
Oliver Völker
61ee621c90 Adjust Renault default scan interval (#77823)
raise DEFAULT_SCAN_INTERVAL to 7 minutes

This PR is raising the default scan interval for the Renault API from 5 minutes to 7 minutes. Lower intervals fail sometimes, maybe due to quota limitations. This seems to be a working interval as described in home-assistant#73220
2022-09-06 12:55:30 -04:00
Yevhenii Vaskivskyi
f5e61ecdec Handle exception on projector being unavailable (#77802) 2022-09-06 12:55:30 -04:00
G Johansson
2bfcdc66b6 Allow empty db in SQL options flow (#77777) 2022-09-06 12:55:29 -04:00
Martin Hjelmare
3240f8f938 Refactor zwave_js event handling (#77732)
* Refactor zwave_js event handling

* Clean up
2022-09-06 12:55:28 -04:00
Steven Looman
74ddc336ca Use identifiers host and serial number to match device (#75657) 2022-09-06 12:55:28 -04:00
Bram Kragten
97d63e5c36 Update frontend to 20220906.0 (#77910) 2022-09-06 12:54:53 -04:00
epenet
5de95663a9 Introduce new StrEnums in media player (#77872)
* Introduce RepeatMode enum in media player
* Add MediaClass and MediaType
2022-09-06 18:47:34 +02:00
epenet
85beceb533 Use attributes in rflink binary sensor (#77901)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-09-06 18:17:28 +02:00
epenet
bd84981ae0 Use _attr_force_update in tellstick (#77899) 2022-09-06 18:03:53 +02:00
epenet
e3fb04e116 Add comment to life360 device tracker (#77879) 2022-09-06 11:34:59 -04:00
Yevhenii Vaskivskyi
5459b5fdfe Handle exception on projector being unavailable (#77802) 2022-09-06 11:34:11 -04:00
Steven Looman
d550b17bd9 Use identifiers host and serial number to match device (#75657) 2022-09-06 11:33:16 -04:00
J. Nick Koston
b2f86ddf76 Bump bluetooth-auto-recovery to 0.3.1 (#77898) 2022-09-06 08:48:39 -05:00
Raman Gupta
91fbff05db Improve performance impact of zwave_js update entity and other tweaks (#77866)
* Improve performance impact of zwave_js update entity and other tweaks

* Reduce concurrent polls

* we need to write state after setting in progress to false

* Fix existing tests

* Fix tests by fixing fixtures

* remove redundant conditional

* Add test for delayed startup

* tweaks

* outdent happy path

* Add missing PROGRESS feature support

* Update homeassistant/components/zwave_js/update.py

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

* Update homeassistant/components/zwave_js/update.py

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

* Fix tests by reverting outdent, PR comments, mark callback

* Remove redundant conditional

* make more readable

* Remove unused SCAN_INTERVAL

* Catch FailedZWaveCommand

* Add comment and remove poll unsub on update

* Fix catching error and add test

* readability

* Fix tests

* Add assertions

* rely on built in progress indicator

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-06 09:40:20 -04:00
J. Nick Koston
b945327056 Bump zeroconf to 0.39.1 (#77859) 2022-09-06 08:00:05 -05:00
epenet
3a0eae3986 Improve entity type hints [z] (#77890) 2022-09-06 14:01:09 +02:00
epenet
23052dc7b5 Improve entity type hints [y] (#77888) 2022-09-06 14:00:25 +02:00
epenet
856318b137 Improve entity type hints [x] (#77887) 2022-09-06 14:00:09 +02:00
epenet
a6b6949793 Improve entity type hints [w] (#77886) 2022-09-06 13:59:37 +02:00
epenet
050cb275ff Improve entity type hints [v] (#77885) 2022-09-06 13:59:05 +02:00
epenet
3798d28bec Improve entity type hints [u] (#77884) 2022-09-06 13:37:00 +02:00
epenet
3ec231c911 Improve entity type hints [s] (part 2/2) (#77882) 2022-09-06 13:36:44 +02:00
epenet
458001a06e Improve entity type hints [t] (#77883) 2022-09-06 13:35:52 +02:00
epenet
0c767bd0d3 Improve entity type hints [s] (part 1/2) (#77881) 2022-09-06 13:35:14 +02:00
uvjustin
34da463df0 Cleanup camera after late PR review (#77880)
Cleanup changes to camera from #77439
2022-09-06 12:33:21 +02:00
epenet
e5ac50fc57 Add BaseNotificationService to pylint checks (#77663)
* Add BaseNotificationService to pylint checks

* Remove comment
2022-09-06 12:18:29 +02:00
epenet
03b4d25564 Add notify get_service to pylint checks (#77643)
Add notify get_service to pylint checks (take 3)
2022-09-06 12:18:15 +02:00
ollo69
3327493ab7 Add state class total increasing to Tasmota energy today sensor (#77140)
Add  total increasing to tasmota energy today sensor
2022-09-06 11:24:08 +02:00
Oliver Völker
57212a39e4 Adjust Renault default scan interval (#77823)
raise DEFAULT_SCAN_INTERVAL to 7 minutes

This PR is raising the default scan interval for the Renault API from 5 minutes to 7 minutes. Lower intervals fail sometimes, maybe due to quota limitations. This seems to be a working interval as described in home-assistant#73220
2022-09-06 11:10:35 +02:00
Jan Bouwhuis
13188a5c63 Refactor MQTT tests to use modern platform schema part 2 (#77525)
* Tests light json

* Tests light template

* Missed test light json

* Tests light

* Tests lock

* Tests number

* Tests scene

* Tests select

* Tests sensor

* Tests siren

* Tests state vacuuum

* Tests switch

* Derive DEFAULT_CONFIG_LEGACY from DEFAULT_CONFIG

* Suggested comment changes
2022-09-06 11:03:02 +02:00
Jan Bouwhuis
a4792998a2 Refactor MQTT tests to use modern platform schema part 1 (#77387)
* Tests alarm_control_panel

* Tests binary_sensor

* Tests button

* Tests camera

* Tests Climate + corrections default config

* Tests cover

* Tests device_tracker

* Tests fan

* Tests humidifier

* Fix test_supported_features test fan

* Tests init

* Tests legacy vacuum

* Derive DEFAULT_CONFIG_LEGACY from DEFAULT_CONFIG

* Commit suggestion comment changes
2022-09-06 11:02:15 +02:00
epenet
ea71a462d6 Improve entity type hints [o] (#77826) 2022-09-06 10:25:35 +02:00
epenet
d6ca3544ee Improve type hint in opensky (#77829) 2022-09-06 10:21:43 +02:00
epenet
36f3028ec3 Improve type hint in onvif (#77833) 2022-09-06 10:12:16 +02:00
Kevin Stillhammer
b4669d8939 Add has_entity_name for kraken (#77841)
Add has_entity_name
2022-09-06 10:10:46 +02:00
J. Nick Koston
ac8a12f99c Bump thermopro-ble to 0.4.3 (#77863)
* Bump thermopro-ble to 0.4.2

- Turns on rounding of long values
- Uses bluetooth-data-tools under the hood
- Adds the TP393 since it works without any changes to the parser

Changelog: https://github.com/Bluetooth-Devices/thermopro-ble/compare/v0.4.0...v0.4.2

* bump again for device detection fix
2022-09-06 09:55:43 +02:00
J. Nick Koston
0e369d5b2e Add RSSI to the bluetooth debug log (#77860) 2022-09-06 09:54:52 +02:00
Artem Draft
72f9e5f6ec Bump pybravia to 0.2.2 (#77867) 2022-09-06 09:52:27 +02:00
epenet
474844744b Improve entity type hints [p] (#77871) 2022-09-06 09:51:33 +02:00
epenet
6f564e4f51 Improve entity type hints [r] (#77874) 2022-09-06 09:47:35 +02:00
epenet
7198273a42 Improve entity type hints [q] (#77875) 2022-09-06 09:43:49 +02:00
uvjustin
852b0caf5b Add orientation transforms to stream (#77439) 2022-09-06 13:31:36 +08:00
uvjustin
bb77af71ff Use fragmented mp4 in stream recorder (#77822) 2022-09-06 13:30:55 +08:00
GitHub Action
5c30b33ee2 [ci skip] Translation update 2022-09-06 00:27:55 +00:00
Justin Vanderhooft
50933fa3ae Move Melnor Bluetooth switches to sub-services off the main device (#77842)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-05 18:34:59 -05:00
Marc Mueller
7f8e2fa5d4 Pin astroid to fix pylint (#77862) 2022-09-05 17:39:42 -04:00
epenet
024a4f39b0 Use attributes in nightscout (#77825) 2022-09-05 16:20:56 -04:00
G Johansson
76006ce9d7 Allow empty db in SQL options flow (#77777) 2022-09-05 14:50:47 -05:00
Allen Porter
8280b8422c Remove google calendar configuration.yaml deprecated in 2022.6 (#77814) 2022-09-05 21:12:38 +02:00
J. Nick Koston
6644f62ad2 Fix history stats device class when type is not time (#77855) 2022-09-05 14:56:27 -04:00
Paulus Schoutsen
6c36d5acaa Bumped version to 2022.9.0b5 2022-09-05 14:28:36 -04:00
Bram Kragten
e8c4711d88 Update frontend to 20220905.0 (#77854) 2022-09-05 14:28:26 -04:00
J. Nick Koston
bca9dc1f61 Bump govee-ble to 0.17.2 (#77849) 2022-09-05 14:28:25 -04:00
J. Nick Koston
4f8421617e Bump led-ble to 0.7.0 (#77845) 2022-09-05 14:28:24 -04:00
Erik Montnemery
40421b41f7 Add the hardware integration to default_config (#77840) 2022-09-05 14:28:24 -04:00
Jc2k
b0ff4fc057 Less verbose error logs for bleak connection errors in ActiveBluetoothProcessorCoordinator (#77839)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-05 14:28:23 -04:00
Charles Garwood
605e350159 Add remoteAdminPasswordEnd to redacted keys in fully_kiosk diagnostics (#77837)
Add remoteAdminPasswordEnd to redacted keys in diagnostics
2022-09-05 14:28:22 -04:00
Artem Draft
ad8cd9c957 Bump pybravia to 0.2.1 (#77832) 2022-09-05 14:28:21 -04:00
Raman Gupta
e8ab4eef44 Fix device info for zwave_js device entities (#77821) 2022-09-05 14:28:21 -04:00
J. Nick Koston
b1241bf0f2 Fix isy994 calling sync api in async context (#77812) 2022-09-05 14:28:20 -04:00
J. Nick Koston
f3e811417f Prefilter noisy apple devices from bluetooth (#77808) 2022-09-05 14:28:19 -04:00
Ernst Klamer
1231ba4d03 Rename BThome to BTHome (#77807)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-05 14:28:19 -04:00
G Johansson
e07554dc25 Bump yale_smart_alarm_client to 0.3.9 (#77797) 2022-09-05 14:28:18 -04:00
Robert Hillis
2fa517b81b Make Sonos typing more complete (#68072) 2022-09-05 14:28:17 -04:00
Bram Kragten
6867029062 Update frontend to 20220905.0 (#77854) 2022-09-05 14:27:48 -04:00
Robert Hillis
73ba7a989b Make Sonos typing more complete (#68072) 2022-09-05 13:12:37 -05:00
J. Nick Koston
6fbc0a8103 Bump govee-ble to 0.17.2 (#77849) 2022-09-05 14:05:53 -04:00
J. Nick Koston
33dd8a4a45 Bump led-ble to 0.7.0 (#77845) 2022-09-05 14:05:37 -04:00
Jc2k
a641bbc352 Less verbose error logs for bleak connection errors in ActiveBluetoothProcessorCoordinator (#77839)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-05 10:33:10 -04:00
epenet
61f4040d56 Address late review on kulersky light (#77838) 2022-09-05 16:19:34 +02:00
Erik Montnemery
4a0cbfb550 Add the hardware integration to default_config (#77840) 2022-09-05 10:18:49 -04:00
Artem Draft
c158575aa5 Bump pybravia to 0.2.1 (#77832) 2022-09-05 10:04:33 -04:00
Charles Garwood
b0c093ac70 Add remoteAdminPasswordEnd to redacted keys in fully_kiosk diagnostics (#77837)
Add remoteAdminPasswordEnd to redacted keys in diagnostics
2022-09-05 09:20:37 -04:00
rappenze
601fb5ebb5 Add reauth flow to fibaro (#74300) 2022-09-05 07:55:12 -05:00
epenet
420733a064 Improve entity type hints [n] (#77824) 2022-09-05 07:53:55 -05:00
Ernst Klamer
42393db9f3 Rename BThome to BTHome (#77807)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-05 07:52:50 -04:00
Raman Gupta
d6cf416c63 Fix device info for zwave_js device entities (#77821) 2022-09-05 12:15:14 +02:00
J. Nick Koston
363f95c954 Remove auto lowercasing from async_track_entity_registry_updated_event (#77740) 2022-09-05 12:13:05 +02:00
epenet
6355e682fa Improve entity type hints [m] (#77816) 2022-09-05 10:59:36 +02:00
Michael
ce6e57da5d Bump fritzconnection from 1.8.0 to 1.10.1 (#77751)
bump fritzconnection from 1.8.0 to 1.10.1
2022-09-05 11:50:00 +03:00
epenet
5739712a0d Adjust type hint in meteoalarm (#77818) 2022-09-05 10:47:01 +02:00
epenet
bbf77ed46f Adjust type hint in mediaroom (#77817) 2022-09-05 10:19:57 +02:00
J. Nick Koston
8e0b9e1f98 Fix isy994 calling sync api in async context (#77812) 2022-09-05 08:45:35 +02:00
Allen Porter
ddf668d1cb Remove CalendarEventDevice which was deprecated in 2022.5 (#77809) 2022-09-04 22:25:43 -07:00
epenet
6044e2b054 Improve type hints in kulersky light (#77652) 2022-09-05 06:37:25 +02:00
J. Nick Koston
016a59ac94 Add support for subscribing to config entry changes (#77803) 2022-09-04 22:57:43 -05:00
J. Nick Koston
804e4ab989 Prefilter noisy apple devices from bluetooth (#77808) 2022-09-04 20:57:40 -04:00
GitHub Action
c5100d2895 [ci skip] Translation update 2022-09-05 00:31:16 +00:00
Avi Miller
168d122db4 Add set_hev_cycle_state service to LIFX integration (#77546)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-04 19:04:36 -05:00
epenet
23a579d1c9 Improve type hints in lastfm sensor (#77657) 2022-09-04 22:45:41 +02:00
epenet
be07bb7976 Improve type hints in file and huawei_lte notify (#77648) 2022-09-04 22:41:46 +02:00
epenet
14fc7c7595 Improve type hints in kodi media player (#77653) 2022-09-04 22:41:18 +02:00
G Johansson
f51b33034f Bump yale_smart_alarm_client to 0.3.9 (#77797) 2022-09-04 14:43:38 -05:00
G Johansson
03d804123a Sensibo clean code (#74437) 2022-09-04 14:42:08 -05:00
Ståle Storø Hauknes
b3596fdea1 Mill 3. gen add support for PRECISION_HALVES (#73592)
* Add support for PRECISION_HALVES for Mill 3. generation heaters

* Add support for precision halves for Mill local API

* Make sure to cast to float for local api

* Support both float for gen 3 heaters and int for gen < 3 heaters when using cloud api

* Mill attribute bugfix

* Add support for PRECISION_HALVES for Mill 3. generation heaters

* Add support for precision halves for Mill local API

* Make sure to cast to float for local api

* Support both float for gen 3 heaters and int for gen < 3 heaters when using cloud api

* Mill attribute bugfix

* Revert PRECISION_HALVES for Mill cloud integration

* Remove unused code

* Revert to casting to int for mill cloud integration

* Remove unused code
2022-09-04 10:32:57 -07:00
Paulus Schoutsen
0d042d496d Bumped version to 2022.9.0b4 2022-09-04 13:00:37 -04:00
G Johansson
c8156d5de6 Bump pysensibo to 1.0.19 (#77790) 2022-09-04 13:00:28 -04:00
J. Nick Koston
9f06baa778 Bump led-ble to 0.6.0 (#77788)
* Bump ble-led to 0.6.0

Fixes reading the white channel on same devices

Changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v0.5.4...v0.6.0

* Bump flux_led to 0.28.32

Changelog: https://github.com/Danielhiversen/flux_led/compare/0.28.31...0.28.32

Fixes white channel support for some more older protocols

* keep them in sync

* Update homeassistant/components/led_ble/manifest.json
2022-09-04 13:00:27 -04:00
J. Nick Koston
52abf0851b Bump flux_led to 0.28.32 (#77787) 2022-09-04 13:00:27 -04:00
Justin Vanderhooft
da83ceca5b Tweak unique id formatting for Melnor Bluetooth switches (#77773) 2022-09-04 13:00:26 -04:00
Avi Miller
f9b95cc4a4 Fix lifx service call interference (#77770)
* Fix #77735 by restoring the wait to let state settle

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

* Skip the asyncio.sleep during testing

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

* Patch out asyncio.sleep for lifx tests

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

* Patch out a constant instead of overriding asyncio.sleep directly

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

Signed-off-by: Avi Miller <me@dje.li>
2022-09-04 13:00:25 -04:00
Avi Miller
f60ae40661 Rename the binary sensor to better reflect its purpose (#77711) 2022-09-04 13:00:25 -04:00
Avi Miller
ea0b406692 Add binary sensor platform to LIFX integration (#77535)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-04 13:00:24 -04:00
Michael
9387449abf Replace archived sucks by py-sucks and bump to 0.9.8 for Ecovacs integration (#77768) 2022-09-04 12:58:19 -04:00
Matt Zimmerman
5f4013164c Update smarttub to 0.0.33 (#77766) 2022-09-04 12:58:18 -04:00
Raman Gupta
3856178dc0 Handle dead nodes in zwave_js update entity (#77763) 2022-09-04 12:58:17 -04:00
J. Nick Koston
32a9fba58e Increase default august timeout (#77762)
Fixes
```
2022-08-28 20:32:46.223 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/Users/bdraco/home-assistant/homeassistant/helpers/debounce.py", line 82, in async_call
    await task
  File "/Users/bdraco/home-assistant/homeassistant/components/august/activity.py", line 49, in _async_update_house_id
    await self._async_update_house_id(house_id)
  File "/Users/bdraco/home-assistant/homeassistant/components/august/activity.py", line 137, in _async_update_house_id
    activities = await self._api.async_get_house_activities(
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/yalexs/api_async.py", line 96, in async_get_house_activities
    response = await self._async_dict_to_api(
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/yalexs/api_async.py", line 294, in _async_dict_to_api
    response = await self._aiohttp_session.request(method, url, **api_dict)
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/client.py", line 466, in _request
    with timer:
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/helpers.py", line 721, in __exit__
    raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
```
2022-09-04 12:58:17 -04:00
J. Nick Koston
9733887b6a Add BlueMaestro integration (#77758)
* Add BlueMaestro integration

* tests

* dc
2022-09-04 12:58:16 -04:00
Michael
b215514c90 Fix upgrade api disabling during setup of Synology DSM (#77753) 2022-09-04 12:58:15 -04:00
Pete
0e930fd626 Fix setting and reading percentage for MIOT based fans (#77626) 2022-09-04 12:58:15 -04:00
Simon Hansen
cd4c31bc79 Convert platform in iss integration (#77218)
* Hopefully fix everthing and be happy

* ...

* update coverage file

* Fix tests
2022-09-04 12:58:14 -04:00
starkillerOG
bc04755d05 Register xiaomi_miio unload callbacks later in setup (#76714) 2022-09-04 12:58:13 -04:00
Michael
03b3959b95 Replace archived sucks by py-sucks and bump to 0.9.8 for Ecovacs integration (#77768) 2022-09-04 12:57:50 -04:00
J. Nick Koston
2b63d7644a Bump led-ble to 0.6.0 (#77788)
* Bump ble-led to 0.6.0

Fixes reading the white channel on same devices

Changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v0.5.4...v0.6.0

* Bump flux_led to 0.28.32

Changelog: https://github.com/Danielhiversen/flux_led/compare/0.28.31...0.28.32

Fixes white channel support for some more older protocols

* keep them in sync

* Update homeassistant/components/led_ble/manifest.json
2022-09-04 19:54:40 +03:00
Justin Vanderhooft
e1150ce190 Expose battery and rssi sensors in Melnor Bluetooth integration (#77576) 2022-09-04 12:47:13 -04:00
G Johansson
98441e8620 Bump pysensibo to 1.0.19 (#77790) 2022-09-04 11:06:04 -05:00
J. Nick Koston
1b13105538 Bump flux_led to 0.28.32 (#77787) 2022-09-04 11:00:19 -05:00
Avi Miller
0e63a4c091 Fix lifx service call interference (#77770)
* Fix #77735 by restoring the wait to let state settle

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

* Skip the asyncio.sleep during testing

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

* Patch out asyncio.sleep for lifx tests

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

* Patch out a constant instead of overriding asyncio.sleep directly

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

Signed-off-by: Avi Miller <me@dje.li>
2022-09-04 17:51:57 +02:00
Matt Zimmerman
a9c19e2ffb Update smarttub to 0.0.33 (#77766) 2022-09-04 09:51:48 -05:00
Mick Vleeshouwer
fe65c02c2b Add Boost/Away mode duration to Overkiz integration (#76690) 2022-09-04 09:06:59 -05:00
Justin Vanderhooft
7e9f1a508a Tweak unique id formatting for Melnor Bluetooth switches (#77773) 2022-09-04 08:56:10 -05:00
J. Nick Koston
ed365cb8e9 Add BlueMaestro integration (#77758)
* Add BlueMaestro integration

* tests

* dc
2022-09-04 09:45:52 -04:00
Mick Vleeshouwer
6dcce61565 Add support for AtlanticHeatRecoveryVentilation to Overkiz integration (#74015) 2022-09-04 07:02:00 -05:00
Mick Vleeshouwer
807d197ca0 Add goToAlias button (my position) to Overkiz integration (#76694) 2022-09-04 07:01:42 -05:00
Mick Vleeshouwer
9a6b22a156 Address late review in Overkiz (add duration device class) (#77778)
Address follow-up review in Overkiz (duration device class)
2022-09-04 12:01:17 +02:00
J. Nick Koston
a4261d588b Increase default august timeout (#77762)
Fixes
```
2022-08-28 20:32:46.223 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/Users/bdraco/home-assistant/homeassistant/helpers/debounce.py", line 82, in async_call
    await task
  File "/Users/bdraco/home-assistant/homeassistant/components/august/activity.py", line 49, in _async_update_house_id
    await self._async_update_house_id(house_id)
  File "/Users/bdraco/home-assistant/homeassistant/components/august/activity.py", line 137, in _async_update_house_id
    activities = await self._api.async_get_house_activities(
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/yalexs/api_async.py", line 96, in async_get_house_activities
    response = await self._async_dict_to_api(
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/yalexs/api_async.py", line 294, in _async_dict_to_api
    response = await self._aiohttp_session.request(method, url, **api_dict)
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/client.py", line 466, in _request
    with timer:
  File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/helpers.py", line 721, in __exit__
    raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
```
2022-09-04 11:13:34 +02:00
GitHub Action
6921583410 [ci skip] Translation update 2022-09-04 00:28:06 +00:00
Martin Hjelmare
7ca7a28db9 Refactor zwave_js event handling (#77732)
* Refactor zwave_js event handling

* Clean up
2022-09-03 17:19:05 -04:00
Pete
5d7e9a6695 Fix setting and reading percentage for MIOT based fans (#77626) 2022-09-03 22:55:34 +02:00
Raman Gupta
fa987564a7 Handle dead nodes in zwave_js update entity (#77763) 2022-09-03 22:53:21 +02:00
Mick Vleeshouwer
cd24223c1f Enhance operating time sensor in Overkiz integration (#76688) 2022-09-03 16:18:56 -04:00
Michael
ab215b653a Fix upgrade api disabling during setup of Synology DSM (#77753) 2022-09-03 13:19:52 -04:00
Jan Bouwhuis
a3e6abd396 Use hass.config_entries.async_setup in mqtt test (#77750)
* Use hass.config_entries.async_setup

* The setup is awaited hence waiting is not needed
2022-09-03 15:44:50 +02:00
Erik Montnemery
b0d033ef29 Add mixin class CollectionEntity for the collection helper (#77703)
* Add mixin class CollectionEntity for the collection helper

* Improve typing

* Address review comments

* Fix tests
2022-09-03 12:56:49 +02:00
Erik Montnemery
56278a4421 Simplify device registry (#77715)
* Simplify device registry

* Fix test fixture

* Update homeassistant/helpers/device_registry.py

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

* Update device_registry.py

* Remove dead code

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-03 12:50:55 +02:00
Simon Hansen
7e100b64ea Convert platform in iss integration (#77218)
* Hopefully fix everthing and be happy

* ...

* update coverage file

* Fix tests
2022-09-03 10:32:03 +02:00
Øyvind Matheson Wergeland
f52c00a1c1 Add Nobø Ecohub integration (#50913)
* Initial version of Nobø Ecohub.

* Options update listener for Nobø Ecohub

* Unit test for nobo_hub config flow

* Cleanup

* Moved comment re backwards compatibility

* Improved tests

* Improved tests

* Options flow test
Pylint

* Fix backwards compatibility mode

* Don't require Python 3.9

* Import form configuration.yaml

* Check if device is already configured.
Correct tests for only discovering serial prefix
Fix importing when only serial suffix is configured

* Use constants

* Pylint and variable name clenaup.

* Review

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

* Fix tests

* Correct disabling off_command and on_commands ("Default" is a hard coded week profile in the hub).

* Improve options dialog

* Configure override type in options dialog

* Formatting

* pyupgrade

* Incorporated review comments

* Incorporated review comments.

* Incorporated second round of review comments.

* Add polling to discover preset change in HVAC_MODE_AUTO.

* Added tests/components/nobo_hub to CODEOWNERS.

* Update homeassistant/components/nobo_hub/config_flow.py

Review

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

* Update homeassistant/components/nobo_hub/climate.py

Review

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

* Simplify if tests.

* Update homeassistant/components/nobo_hub/__init__.py

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

* Update homeassistant/components/nobo_hub/__init__.py

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

* Update homeassistant/components/nobo_hub/__init__.py

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

* Separate config step for manual configuration.

* Fixed indentation

* Made async_set_temperature more robust

* Thermometer supports tenths even though thermostat is in ones.

* Preserve serial suffix in config dialog on error.

* Initial version of Nobø Ecohub.

* Improved tests

* Review

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

* Configure override type in options dialog

* Separate config step for manual configuration.

* Update homeassistant/components/nobo_hub/__init__.py

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

* Formatting (prettier)

* Fix HA stop listener.

* Review

* Apply suggestions from code review

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

* Review
- Removed workaround to support "OFF" setting.
- Simplified config flow to add a new device.

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Fixed review comments

* Update en.json with correction in review.

* Implemented review comments:
- Register devices
- Simplifed async_set_temperature

* Register hub as device in init module

* Implemented review comments.
Upgraded pynobo to 1.4.0.

* Apply suggestions from code review

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

* Avoid tacking on the device name in the entity name

* Inherit entity name from device name

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Allen Porter <allen.porter@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-09-03 10:11:40 +02:00
Paulus Schoutsen
041eaf27a9 Bumped version to 2022.9.0b3 2022-09-02 20:54:37 -04:00
Paulus Schoutsen
d6a99da461 Bump frontend to 20220902.0 (#77734) 2022-09-02 20:54:30 -04:00
Raman Gupta
1d2439a6e5 Change zwave_js firmware update service API key (#77719)
* Change zwave_js firmware update service API key

* Update const.py
2022-09-02 20:54:29 -04:00
J. Nick Koston
6fff633325 Bump bluetooth-adapters to 3.3.4 (#77705) 2022-09-02 20:54:29 -04:00
Nathan Spencer
9652c0c326 Adjust litterrobot platform loading/unloading (#77682)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-02 20:54:28 -04:00
Christopher Bailey
36c1b9a419 Fix timezone edge cases for Unifi Protect media source (#77636)
* Fixes timezone edge cases for Unifi Protect media source

* linting
2022-09-02 20:54:27 -04:00
Paulus Schoutsen
cf988354db Bump frontend to 20220902.0 (#77734) 2022-09-02 20:53:33 -04:00
GitHub Action
945299dfb6 [ci skip] Translation update 2022-09-03 00:24:50 +00:00
starkillerOG
b49d47a559 Register xiaomi_miio unload callbacks later in setup (#76714) 2022-09-02 23:50:52 +02:00
Erik Montnemery
51c5f1d16a Remove useless device_registry test (#77714) 2022-09-02 20:44:42 +00:00
Nathan Spencer
916c44b5b4 Adjust litterrobot platform loading/unloading (#77682)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-02 16:18:10 -04:00
J. Nick Koston
e4e29aa29d Bump bluetooth-adapters to 3.3.4 (#77705) 2022-09-02 16:17:35 -04:00
Erik Montnemery
3a86209dec Remove unnecessary use of dunder methods from entity registry (#77716) 2022-09-02 17:02:14 +00:00
Jan Bouwhuis
2e34814d7a Fix reload of MQTT config entries (#76089)
* Wait for unsubscribes

* Spelling comment

* Remove notify_all() during _register_mid()

* Update homeassistant/components/mqtt/client.py

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

* Correct handling reload manual set up MQTT items

* Save and restore device trigger subscriptions

* Clarify we are storing all remaining subscriptions

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-09-02 18:54:20 +02:00
Raman Gupta
2e4d5aca09 Change zwave_js firmware update service API key (#77719)
* Change zwave_js firmware update service API key

* Update const.py
2022-09-02 16:50:05 +02:00
Avi Miller
1acb9a981a Rename the binary sensor to better reflect its purpose (#77711) 2022-09-02 12:13:03 +00:00
Erik Montnemery
1bc8770b51 Remove area_id from entity_registry.async_get_or_create (#77700)
* Remove area_id from entity_registry.async_get_or_create

* Adjust tests

* Fix lying comment in test
2022-09-02 13:31:05 +02:00
Erik Montnemery
8924725d69 Improve some device registry tests (#77659) 2022-09-02 08:54:02 +02:00
Erik Montnemery
8bab2a9bea Tweak schedule test (#77696) 2022-09-02 08:39:27 +02:00
amitfin
32e4a2515e Time range should be treated as open ended (#77660)
* Time range should be treated as open end

* Refactored the logic of calculating the state

* Improve tests

* Improve tests

Co-authored-by: Erik <erik@montnemery.com>
2022-09-02 08:14:06 +02:00
Robert Svensson
6b361b70c9 Move up setup of service to make it more robust when running multiple instances of deCONZ (#77621) 2022-09-01 21:33:55 -04:00
Paulus Schoutsen
a10a16ab21 Bumped version to 2022.9.0b2 2022-09-01 21:25:12 -04:00
Paulus Schoutsen
1f9c5ff369 Bump frontend to 20220901.0 (#77689) 2022-09-01 21:25:05 -04:00
J. Nick Koston
f4273a098d Bump bluetooth-adapters to 0.3.3 (#77683) 2022-09-01 21:25:05 -04:00
Paulus Schoutsen
329c692065 Pin Pandas 1.4.3 (#77679) 2022-09-01 21:25:04 -04:00
J. Nick Koston
dc2c0a159f Ensure unique id is set for esphome when setup via user flow (#77677) 2022-09-01 21:25:03 -04:00
J. Nick Koston
c9d4924dea Bump pySwitchbot to 0.18.22 (#77673) 2022-09-01 21:25:02 -04:00
starkillerOG
0cdbb295bc bump pynetgear to 0.10.8 (#77672) 2022-09-01 21:25:02 -04:00
Jc2k
ee0e12ac46 Fix async_all_discovered_devices(False) to return connectable and unconnectable devices (#77670) 2022-09-01 21:25:01 -04:00
Erik Montnemery
377791d6e7 Include entity registry id in entity registry WS API (#77668) 2022-09-01 21:25:00 -04:00
Erik Montnemery
37e425db30 Clean up user overridden device class in entity registry (#77662) 2022-09-01 21:25:00 -04:00
Kevin Stillhammer
073ca240f1 Required option_flow values for here_travel_time (#77651) 2022-09-01 21:24:59 -04:00
luar123
68a01562ec Add and remove Snapcast client/group callbacks properly (#77624)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-01 21:24:58 -04:00
On Freund
8c697b1881 Increase sleep in Risco setup (#77619) 2022-09-01 21:24:57 -04:00
Nathan Spencer
d6b2f0ff76 Code quality improvements for litterrobot integration (#77605) 2022-09-01 21:24:57 -04:00
uvjustin
b3830d0f17 Fix basic browse_media support in forked-daapd (#77595) 2022-09-01 21:24:56 -04:00
Kevin Stillhammer
aa57594d21 Required config_flow values for here_travel_time (#75026) 2022-09-01 21:24:55 -04:00
Paulus Schoutsen
8eaadc0aaf Bump frontend to 20220901.0 (#77689) 2022-09-01 21:24:30 -04:00
J. Nick Koston
e230a1f253 Bump bluetooth-adapters to 0.3.3 (#77683) 2022-09-01 21:22:12 -04:00
GitHub Action
ccef03f1d4 [ci skip] Translation update 2022-09-02 00:25:46 +00:00
starkillerOG
8e392b85ee bump pynetgear to 0.10.8 (#77672) 2022-09-01 22:08:14 +00:00
Avi Miller
45f8b64a34 Add binary sensor platform to LIFX integration (#77535)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-09-01 22:07:21 +00:00
Diogo Gomes
1fe5948afd Cleanup IPMA code (#77674)
revert yaml import
2022-09-01 23:15:42 +02:00
puddly
73e26b71b1 Migrate ZHA lighting to use newer zigpy ZCL request syntax (#77676)
* Migrate unit test to use more command definition constants

* Use keyword argument syntax for sending ZCL requests

* Ensure all ZHA unit tests pass
2022-09-01 15:32:32 -04:00
Paulus Schoutsen
57c766c03c Pin Pandas 1.4.3 (#77679) 2022-09-01 15:00:50 -04:00
J. Nick Koston
7bac5fecee Bump pySwitchbot to 0.18.22 (#77673) 2022-09-01 15:00:14 -04:00
J. Nick Koston
9a5bdaf87e Ensure unique id is set for esphome when setup via user flow (#77677) 2022-09-01 14:10:20 -04:00
Erik Montnemery
e326dd2847 Fix demo external energy statistics (#77665) 2022-09-01 14:03:37 -04:00
Nathan Spencer
d0d1b303fd Code quality improvements for litterrobot integration (#77605) 2022-09-01 14:02:46 -04:00
On Freund
1692808d5b Increase sleep in Risco setup (#77619) 2022-09-01 14:02:09 -04:00
Jc2k
93a8aef4cc Fix async_all_discovered_devices(False) to return connectable and unconnectable devices (#77670) 2022-09-01 12:57:49 -04:00
Erik Montnemery
d65eaf11f4 Include entity registry id in entity registry WS API (#77668) 2022-09-01 11:51:27 -04:00
Ernst Klamer
db4391adff Add device class moisture (#77666) 2022-09-01 11:47:47 -04:00
Erik Montnemery
cd2045b66d Clean up user overridden device class in entity registry (#77662) 2022-09-01 11:45:19 -04:00
luar123
8afcde4ea9 Add and remove Snapcast client/group callbacks properly (#77624)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-09-01 08:52:06 -04:00
epenet
d1ecd74a1a Improve entity type hints [l] (#77655) 2022-09-01 14:14:31 +02:00
Christopher Bailey
08ab10d470 Fix timezone edge cases for Unifi Protect media source (#77636)
* Fixes timezone edge cases for Unifi Protect media source

* linting
2022-09-01 08:49:36 +00:00
uvjustin
3d64cf7304 Fix basic browse_media support in forked-daapd (#77595) 2022-09-01 10:46:43 +02:00
Martin Hjelmare
f9a3757d71 Bump ci env HA_SHORT_VERSION (#77644) 2022-09-01 10:24:51 +02:00
Kevin Stillhammer
dec2661322 Required option_flow values for here_travel_time (#77651) 2022-09-01 10:19:21 +02:00
epenet
6f8b032a6e Adjust notify type hints in mysensors (#77647) 2022-09-01 10:11:09 +02:00
Paulus Schoutsen
8dda2389c8 2022.10.0.dev0 (#77635) 2022-09-01 07:01:10 +02:00
Paulus Schoutsen
5f4411113a Bumped version to 2022.9.0b1 2022-08-31 22:57:12 -04:00
Justin Vanderhooft
a080256f88 Bump melnor-bluetooth to 0.0.15 (#77631) 2022-08-31 22:57:07 -04:00
J. Nick Koston
129f717634 Bump bleak to 0.16.0 (#77629)
Co-authored-by: Justin Vanderhooft <justinvdhooft@gmail.com>
2022-08-31 22:57:06 -04:00
Matthias Alphart
de35e84543 Update xknx to 1.0.2 (#77627) 2022-08-31 22:57:06 -04:00
Christopher Bailey
7d90f6ccea Bump version of pyunifiprotect to 4.2.0 (#77618) 2022-08-31 22:57:05 -04:00
Artem Draft
37acd3e3f2 Suppress 404 in Bravia TV (#77288) 2022-08-31 22:57:04 -04:00
Mick Vleeshouwer
8b8db998df Catch unknown user exception in Overkiz integration (#76693) 2022-08-31 22:57:04 -04:00
J. Nick Koston
34ed6d1ecb Bump bleak to 0.16.0 (#77629)
Co-authored-by: Justin Vanderhooft <justinvdhooft@gmail.com>
2022-08-31 22:43:18 -04:00
Artem Draft
e19fb56dd3 Suppress 404 in Bravia TV (#77288) 2022-08-31 22:42:23 -04:00
Kevin Stillhammer
95dd9def66 Required config_flow values for here_travel_time (#75026) 2022-08-31 18:40:13 -07:00
Justin Vanderhooft
f81cdf4bca Bump melnor-bluetooth to 0.0.15 (#77631) 2022-09-01 00:23:45 +00:00
Matthias Alphart
ae3dca11fe Update xknx to 1.0.2 (#77627) 2022-09-01 01:18:34 +02:00
y34hbuddy
a9fe9857bd Implement reauth flow for volvooncall (#77328)
* implement reauth flow

* added more tests

* implement feedback for __init__.py

* implemented feedback

* remove impossible return checks

* raise UpdateFailed when update fails
2022-08-31 22:37:38 +02:00
Christopher Bailey
de9f22f308 Bump version of pyunifiprotect to 4.2.0 (#77618) 2022-08-31 20:35:58 +00:00
epenet
cf41dc639b Adjust Available in hisense_aehw4a1 (#77590) 2022-08-31 22:22:07 +02:00
epenet
86c7f0bbac Improve type hints in hive (#77586) 2022-08-31 22:19:44 +02:00
epenet
c15faa161b Improve type hints in heatmiser (#77592) 2022-08-31 22:18:39 +02:00
epenet
152022aef3 Improve type hints in home_connect (#77587) 2022-08-31 22:16:21 +02:00
epenet
448f4ee755 Improve entity type hints [j-k] (#77594) 2022-08-31 22:10:18 +02:00
epenet
a40c1401d3 Adjust temperature_unit in heatmiser (#77584) 2022-08-31 22:06:14 +02:00
epenet
471878b5fa Adjust temperature_unit in hisense_aehw4a1 (#77585) 2022-08-31 22:05:31 +02:00
Phil Bruckner
c6b3b9fa90 Convert life360 to aiohttp (#77508)
Bump life360 package to 5.1.0.
2022-08-31 14:54:23 -05:00
Mick Vleeshouwer
c98ee412c0 Catch unknown user exception in Overkiz integration (#76693) 2022-08-31 21:16:00 +02:00
Paulus Schoutsen
7115e63044 Bumped version to 2022.9.0b0 2022-08-31 14:11:29 -04:00
Joakim Plate
083e902dc0 Ignore unknown states in universal media player (#77388)
Ignore unknown states
2022-08-31 19:53:14 +02:00
Paulus Schoutsen
1bee9923dc Bump frontend to 20220831.0 (#77615) 2022-08-31 19:28:58 +02:00
jjlawren
4e21d56d7b Bump plexapi to 4.13.0 (#77597) 2022-08-31 16:44:31 +00:00
puddly
f8fc90bc07 Add ZHA config flow single instance checks for zeroconf and hardware (#77612) 2022-08-31 12:41:41 -04:00
J. Nick Koston
67ccb6f25a Fix yet another Govee H5181 variant (#77611) 2022-08-31 12:41:22 -04:00
Paulus Schoutsen
708e614823 Migrate Ecowitt to webhooks (#77610) 2022-08-31 12:41:04 -04:00
puddly
4b24370549 ZHA Yellow config flow fixes (#77603) 2022-08-31 11:21:37 -04:00
Erik Montnemery
7d5c00b851 Fix comment in login_flow (#77600) 2022-08-31 15:58:18 +02:00
Artem Draft
0aae416425 Log command list in Bravia TV Remote (#77329) 2022-08-31 15:58:07 +02:00
Erik Montnemery
d0375959fd Add additional test to schedule (#77601) 2022-08-31 15:19:50 +02:00
MosheTzvi
875651f32d Add Chatzot Hayom to Jewish calendar (#76378) 2022-08-31 14:47:23 +02:00
Erik Montnemery
d18097580e Bump hatasmota to 0.6.0 (#77560) 2022-08-31 14:23:57 +02:00
Nathan Spencer
5bc2f37bf8 Add support for Feeder-Robot select (#77512)
* Add support for Feeder-Robot select

* Use lambda to get current selected option

* Use generics and required keys mixin

* Code improvements

* Even more generics

* Fix missing type hint

* Apply suggestions from code review

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-08-31 13:23:51 +02:00
rikroe
cfa838b27a Small refactoring of BMW lock entity (#77451)
* Refactor entity_description

* Fix default attrs not always shown

* Simplify further

Co-authored-by: @emontnemery

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-31 13:19:47 +02:00
Diogo Gomes
f98e86d3a6 Bump pyipma to 3.0.2 (#76332)
* upgrade to pyipma 3.0.0

* bump to support python3.9

* remove deprecated async_setup_platform

* full coverage

* add migrate
2022-08-31 07:00:42 -04:00
Robert Hillis
e5eddba223 Litterrobot - Do not load a platform if there is no device supporting it (#77497)
* Do not load button platform if no Litter Robot 3

* uno mas

* uno mas

* Do not load Vacuum if not needed

* Use dict to map platforms for each model

* uno mas
2022-08-31 12:54:59 +02:00
Rami Mosleh
b303c8e040 Refactor version key in glances (#77541)
* update version key

* Fix merge mistake

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-31 12:52:52 +02:00
Pascal Vizeli
105bb3e082 Ecowitt integration (#77441)
* Add ecowitt integration

* add tests

* use total

* use total

* test coverage

* Update homeassistant/components/ecowitt/__init__.py

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

* Update homeassistant/components/ecowitt/binary_sensor.py

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

* Update homeassistant/components/ecowitt/entity.py

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

* Update homeassistant/components/ecowitt/diagnostics.py

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

* add to async_on_unload

* remove attr_name / unload callback

* support unload platforms

* using replace

* address mapping

* update type

* mark final

* Apply suggestions from code review

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

* Fix bracket

* Fix another bracket

* Address comment

* Add strings

* update tests

* Update homeassistant/components/ecowitt/strings.json

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

* update text

* Update homeassistant/components/ecowitt/strings.json

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

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-31 12:51:39 +02:00
likeablob
ee6ffb1be4 Fix feedreader component to keep the last entry timestamp up to date (#77547)
Fix feedreader to keep the last entry timestamp up to date

- Use `updated` date in precedence over `published` date to update `last_entry_timestamp`
  in the case a feed entry has both updated date and published date.
2022-08-31 12:43:50 +02:00
Erik Montnemery
008ac8d10d Improve statistics metadata WS API (#77209) 2022-08-31 11:30:45 +02:00
epenet
7c585bd380 Fix sync context in icloud (#77582)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-31 10:52:41 +02:00
Robert Svensson
61ff52c93a Normalize deCONZ sensor unique IDs (#76357)
* Normalize deCONZ sensor unique IDs

* Handle battery sensors properly

* Fix daylight sensor unique ID
2022-08-31 08:12:25 +02:00
epenet
3df2ec1ed6 Implement reauth_confirm in icloud (#77530) 2022-08-31 00:07:32 -04:00
Nathan Spencer
e192c99d2f Add support for Feeder-Robot switches (#77503) 2022-08-31 00:03:02 -04:00
On Freund
3caa4963bc Use partition name as device name in Risco alarm control panels (#77526) 2022-08-30 23:48:03 -04:00
Joakim Plate
4185a70882 Allow data from un-connectable sources in fjäråskupan (#77236) 2022-08-30 23:40:25 -04:00
Robert Svensson
ff3d3088ee Add Aqara FP1 support to deCONZ integration (#77568) 2022-08-30 23:33:05 -04:00
puddly
5b3f4ec471 Fix failing unifiprotect unit tests (#77575)
* Patch `final` pydantic fields during unit test

* Use a fixed date with 31 days to ensure unit tests pass every month
2022-08-30 22:17:03 -04:00
Raman Gupta
0c35166a7b Simplify zwave_js update entity (#77572) 2022-08-30 22:02:13 -04:00
Nathan Spencer
3ba1fbe69d Add pet weight sensor for Litter-Robot 4 (#77566) 2022-08-30 22:01:49 -04:00
J. Nick Koston
5297dc1d5f Bump govee-ble to add support for H5185 firmware variant (#77564) 2022-08-30 22:01:35 -04:00
J. Nick Koston
edb8c58566 Add sensorpro (BLE) integration (#77569) 2022-08-30 21:49:31 -04:00
Erik Montnemery
cdca08e68a Add periodic system stats to hardware integration (#76873) 2022-08-30 21:45:13 -04:00
GitHub Action
1f08635d0a [ci skip] Translation update 2022-08-31 00:31:51 +00:00
puddly
a3af8c07a9 Fix SkyConnect unit tests broken by #77044 (#77570) 2022-08-30 19:03:44 -04:00
J. Nick Koston
4b3355c111 Bump flux_led to 0.28.31 to add support for Armacost devices (#77500) 2022-08-30 16:14:58 -05:00
Justin Vanderhooft
8d94c8f74a Add Melnor Bluetooth valve watering Integration (#70457) 2022-08-30 16:06:44 -05:00
Ernst Klamer
f43f440739 Add new sensors to BThome (#77561) 2022-08-30 17:03:41 -04:00
Erik Montnemery
7c5a5f86ee Allow setting to-time in schedule to 24:00 (#77558) 2022-08-30 15:54:31 -04:00
epenet
4b2e4c8276 Improve type hints in demo [3/3] (#77186) 2022-08-30 21:51:21 +02:00
epenet
7f883b7ff3 Use attributes in mochad (#76032) 2022-08-30 21:49:28 +02:00
epenet
46affe5c82 Adjust type hints in generic_thermostat (#77490) 2022-08-30 21:46:50 +02:00
Erik Montnemery
4655ed995e Fix resetting of attributes in EntityRegistry.async_get_or_create (#77516)
* Fix resetting of attributes in EntityRegistry.async_get_or_create

* Fix typing

* Fix resetting config entry

* Improve test

* Update tests
2022-08-30 21:07:50 +02:00
epenet
67db380253 Adjust type hints in greewave (#77492) 2022-08-30 21:06:31 +02:00
epenet
809aa6b30f Adjust type hints in gitlab_ci (#77493) 2022-08-30 21:05:49 +02:00
Erik Montnemery
c8c9a4b09f Migrate osramlightify light to color_mode (#70915) 2022-08-30 20:58:38 +02:00
epenet
b366354d55 Improve type hints in insteon (#77532) 2022-08-30 20:56:10 +02:00
epenet
7f55e26cd1 Improve type hints in icloud (#77531) 2022-08-30 20:55:27 +02:00
epenet
a1374963d1 Improve entity type hints [h] (#77468) 2022-08-30 20:55:01 +02:00
Kevin Addeman
05264cedfa Fix lutron_caseta handling of 'None' serials for RA3/QSX zones (#77553)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-30 13:46:54 -05:00
Erik Montnemery
8936c91f50 Migrate smartthings light to color_mode (#70968) 2022-08-30 20:45:52 +02:00
Nathan Spencer
fe881230db Add support for Feeder-Robot button (#77501)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-08-30 13:30:42 -05:00
J. Nick Koston
0c60e887e3 Bump unifi-discovery to 1.1.6 (#77557) 2022-08-30 13:30:30 -05:00
J. Nick Koston
ba499dff25 Add Nutrichef as a supported brand of inkbird (#77551) 2022-08-30 13:29:13 -05:00
J. Nick Koston
935274c2e7 Bump bluetooth-auto-recovery to 0.3.0 (#77555) 2022-08-30 12:55:48 -05:00
epenet
23090cb8a2 Improve entity type hints [i] (#77529) 2022-08-30 19:21:08 +02:00
epenet
50663bbc5d Use _attr_available in denonavr (#77486) 2022-08-30 19:19:36 +02:00
epenet
9cdb7bba4c Fix glances config-flow flaky test (#77549) 2022-08-30 11:57:42 -05:00
Raman Gupta
df214c2d26 Add support for zwave_js firmware update service (#77401)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-08-30 12:49:27 -04:00
puddly
f78b39bdbf ZHA backup/restore config flow (#77044) 2022-08-30 12:40:16 -04:00
Rami Mosleh
e48d493db4 Bump glances library to 0.4.1 (#77540) 2022-08-30 11:14:54 -05:00
epenet
a2f1b88227 Use generics in litterrobot (#77537) 2022-08-30 11:14:06 -05:00
mkmer
110803f23a Bump AIOAladdinConnect 0.1.44 (#77542) 2022-08-30 11:12:41 -05:00
Paulus Schoutsen
c11925f7a9 Add prusalink test cases and fix config flow (#77544) 2022-08-30 17:04:14 +02:00
Robert Hillis
b0a05530b0 Migrate Litterrobot to new entity naming style (#77484)
* Migrate Litterrobot to new entity naming style

* uno mas
2022-08-30 16:37:03 +02:00
Åke Strandberg
640d8b40f0 Add hvac_action property to Senz (#77413)
Add hvac_action property
2022-08-30 16:27:42 +02:00
guozi7788
f9eee0e9d7 Add the USB discovery for the Sonoff ZigBee dongle plus V2 (#77523) 2022-08-30 08:58:21 -05:00
epenet
b47de426d8 Adjust callback registration in harmony (#77533) 2022-08-30 08:54:32 -05:00
David F. Mulcahey
5f31bdf2d7 Bump the ZHA quirks lib (#77545) 2022-08-30 09:53:40 -04:00
Paulus Schoutsen
3e066e469a Remove "Awair" from score entity name (#77522) 2022-08-30 08:23:39 -04:00
Erik Montnemery
cac4015882 Fix schedule during single weekday (#77543) 2022-08-30 08:14:46 -04:00
Joakim Sørensen
6ed095f000 Revert dark_ image variants for add-ons (#77528) 2022-08-30 07:56:19 -04:00
Wagner Sartori Junior
8bb182dffb Sync supported locales from alexa official documentation into alexa smart home integration (#77536) 2022-08-30 07:55:52 -04:00
Erik Montnemery
14717951c3 Support configuring the mode of MQTT number entities (#77478)
* Support configuring the mode of MQTT number entities

* Use modern schema for tests

Co-authored-by: jbouwh <jan@jbsoft.nl>
2022-08-30 12:47:35 +02:00
Simon Hansen
cf5a11a1e7 Use DataUpdateCoordinator in ISS (#65178)
* Move update method to coordinator

* Add missing type annotations

* Simplify update function

* Add missing type annotation for coordinates

* Forgot to extend with CoordinatorEntity

* ...

* Tweaks

* ...

* Fix linting and conflicts

* import coordinatorentity

* ...

* Hopefully fixed linting

* ...

* Fix suggestions
2022-08-30 08:11:53 +02:00
Joris Pelgröm
fa0dfd812c Update allowlisted OAuth redirect URIs for Wear OS (#77411) 2022-08-29 21:52:10 -04:00
Paulus Schoutsen
79b5147b46 Awair local use config entry name + add measurement state class (#77383) 2022-08-29 20:46:03 -04:00
Paulus Schoutsen
481205535c Add PrusaLink integration (#77429)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-29 20:45:27 -04:00
GitHub Action
035cd16a95 [ci skip] Translation update 2022-08-30 00:30:17 +00:00
Erik Montnemery
3bddd6cf96 Correct device class for tasmota apparent and reactive power sensors (#77519) 2022-08-29 19:30:48 -04:00
Paulus Schoutsen
14f68ec1a9 Store redirect URI in context instead of asking each time (#77380)
* Store redirect URI in context instead of asking each time

* Fix tests
2022-08-29 19:28:42 -04:00
puddly
2224d0f43a Add a callback for data flow handler removal (#77394)
* Add a callback for when data flows are removed

* Call `async_remove` at the very end

* Handle and log exceptions caught during flow removal

* Log the error as an exception, with a traceback

* Adjust test's expected logging output to match updated format specifier
2022-08-29 16:25:34 -04:00
simeon-simsoft
a6c61cf339 Wallbox switch entity state incorrect while discharging (#76530)
Switch entity state incorrect while discharging
2022-08-29 22:07:48 +02:00
epenet
e19e65908a Use _attr_precision in entities (#77477) 2022-08-29 22:02:29 +02:00
Simon Engelhardt
d4c020b675 Fix Tuya mc device support (#77346)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-29 21:14:12 +02:00
Samuel Dumont
bb1e6bf209 Fix oauth2 in Toon (#77480) 2022-08-29 21:12:09 +02:00
Franck Nijhof
fcdedf54ea Merge branch 'master' into dev 2022-08-29 20:52:48 +02:00
Nathan Spencer
58d4172dec Bump pylitterbot to 2022.8.2 (#77504) 2022-08-29 13:41:07 -05:00
Christopher Bailey
b7244da3ab Bump version of pyunifiprotect to 4.1.9 (#77498) 2022-08-29 13:39:04 -05:00
Paulus Schoutsen
7d9ae0784e Allow searching for person (#77339) 2022-08-29 19:59:00 +02:00
Charles Garwood
4ba8fb6457 Add basic media_player to Fully Kiosk Browser integration (#77266) 2022-08-29 19:39:05 +02:00
J. Nick Koston
8e0c26bf86 Add LED BLE integration (#77489)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-08-29 11:38:18 -05:00
epenet
af9910d143 Use _attr_native_value in glances sensor (#77494) 2022-08-29 11:58:36 -04:00
Nathan Spencer
d4ae81d2bb Add support for Feeder-Robot sensors (#77395) 2022-08-29 10:48:24 -05:00
puddly
2e8d598795 Allow ZHA startup to fail instead of raising ConfigEntryNotReady (#77417)
* Retry startup within ZHA instead of raising `ConfigEntryNotReady`

* Add unit tests

* Disable pylint warning for intentional broad except
2022-08-29 11:42:01 -04:00
J. Nick Koston
795691038f Add light platform to switchbot (#77430) 2022-08-29 09:30:09 -05:00
J. Nick Koston
40e8979951 Add bluetooth api to get the count of connectable and non-connectable scanners (#77427) 2022-08-29 10:21:30 -04:00
Erik Montnemery
6b9c4c7ec1 Tweak comment about humidity sensors (#77482) 2022-08-29 09:57:40 -04:00
Erik Montnemery
2e3a2d29e5 Finish update of integrations to import issue_registry from helpers (#77473) 2022-08-29 09:52:17 -04:00
Penny Wood
d47edd5a34 Bump pizone version (#77257) 2022-08-29 08:30:35 -05:00
Doug Hoffman
01c200e11d Fix issue caused by restoring datetime value from mobile app (#77462)
* Only pass strings to dt_util.parse_datetime()

* Update homeassistant/components/mobile_app/sensor.py

* Update sensor.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-29 12:19:44 +02:00
J. Nick Koston
8c41d0d3d7 Ensure LIFX connection is cleaned up on failure (#77465)
Fixes #77464
2022-08-29 11:02:41 +02:00
Rami Mosleh
bf01b5a466 Import issue_registry from helpers for speedtestdotnet (#77467)
import issue_registry from helpers for speedtestdotnet
2022-08-29 10:40:47 +02:00
Anil Daoud
3846efecc5 Handle kaiterra ClientConnectorError exception (#77428)
* Update api_data.py

add ClientConnectorError exception

* Update api_data.py

fix ClientConnectorError exception handling

* Update api_data.py

import in alphabetical order and better exception logging
2022-08-29 10:40:24 +02:00
epenet
0c401bcab2 Use _attr_temperature_unit in climate entities (#77472) 2022-08-29 10:20:55 +02:00
epenet
8ed689fede Add new rule to enforce relative imports in pylint (#77358)
* Add new rule to enforce relative imports in pylint

* Early return

* Adjust components
2022-08-29 08:55:32 +02:00
Erik Montnemery
067d21a307 Refactor hardware.async_info to return list[HardwareInfo] (#77183) 2022-08-29 08:45:39 +02:00
Robert Svensson
0154a1cecb Improve deCONZ binary sensor classes (#77419) 2022-08-29 08:15:10 +02:00
Brett Adams
779e020dc4 Add update platform to Advantage Air (#75391)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-28 23:41:37 -05:00
Robert Hillis
7c27be230c Add reauth flow to Litterrobot (#77459)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-28 23:40:28 -05:00
J. Nick Koston
4333d9a7d1 Fix recorder being imported before deps are installed (#77460) 2022-08-28 22:18:35 -05:00
Robert Hillis
f41ba39a5e Add Litter Robot 4 DHCP discovery (#77463) 2022-08-28 21:11:57 -05:00
Christopher Bailey
0867392f96 Add ability to ignore devices for UniFi Protect (#77414)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-28 20:35:45 -05:00
Brett Adams
2857739958 Add light platform to Advantage Air (#75425) 2022-08-28 19:44:08 -05:00
GitHub Action
a093057420 [ci skip] Translation update 2022-08-29 00:27:51 +00:00
Marc Mueller
37395ecd36 Update tesla-wall-connector to 1.0.2 (#77458) 2022-08-28 17:51:36 -05:00
jjlawren
5c8bd1ec25 Fix Plex to Cast media resuming (#76681) 2022-08-28 17:51:20 -05:00
epenet
7eb8e1f25d Improve type hints in demo [1/3] (#77180) 2022-08-28 17:51:10 -05:00
Raj Laud
575ac5ae0a Squeezebox play now support (#72626)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-28 17:50:44 -05:00
Tomasz Wieczorek
50a1de9f73 Add set default for domain for scaffold script (#76628)
* Add set default for domain for scaffold script

* Add default domain for config_flow_discovery integration

* Extend comment explaining usage
2022-08-29 00:02:27 +02:00
Robert Hillis
7be6d6eba2 Use generators for async_add_entities in Anthemav (#76587) 2022-08-28 16:40:53 -05:00
Maciej Bieniek
bf510fcb4c Add CAQI sensors to Nettigo Air Monitor integration (#76709)
* Add CAQI sensors

* Add state translation

* Add icon

* Update tests

* Remove unit

* Update test

* Do not use device_class

* Update tests

* Remove unit and device_class
2022-08-28 21:54:00 +02:00
Marc Mueller
1210897f83 Update pylint to 2.15.0 (#77408)
* Update pylint to 2.15.0

* Remove useless suppressions

* Fix TypeVar name
2022-08-28 21:14:09 +02:00
Joakim Sørensen
0caf998547 Bump awesomeversion from 22.6.0 to 22.8.0 (#77436) 2022-08-28 14:52:23 -04:00
J. Nick Koston
533d23ce05 Add thermobeacon supported brands (#77423)
Add thermobeacon alternate brands
2022-08-28 20:46:04 +02:00
Christopher Bailey
d29be2390b Add new features from UniFi Protect 2.2.1-beta5 (#77391) 2022-08-28 12:31:07 -05:00
Matthias Alphart
441d7c0461 Wait for config entry platforms in KNX (#77437) 2022-08-28 12:36:31 +02:00
Raman Gupta
eab0ff5185 Bump zwave-js-server-python to 0.41.0 (#76903) 2022-08-27 21:27:41 -04:00
GitHub Action
7f1a203721 [ci skip] Translation update 2022-08-28 00:29:27 +00:00
J. Nick Koston
a28aeeeca7 Hide bluetooth passive option if its not available on the host system (#77421)
* Hide bluetooth passive option if its not available

- We now have a way to determine in advance if passive
  scanning is supported by BlueZ

* drop string
2022-08-27 19:18:54 -04:00
Raman Gupta
d25a76d3d6 Use Platform and ValueType enum in zwave_js.discovery (#77402) 2022-08-28 00:47:46 +02:00
J. Nick Koston
8e88e039f7 Add diagnostics to bluetooth (#77393) 2022-08-27 16:41:49 -05:00
Kris Molendyke
15ad10643a Bump Tank Utility Version (#77103)
* Bump Tank Utility Version

Bumps to a new release which includes the license in the artifact.

* Regen all reqs
2022-08-27 12:07:56 -04:00
On Freund
1addf5a51b Upgarde PyRisco to 0.5.3 (#77407)
Upgarde PyRisco
2022-08-27 11:59:57 -04:00
Jan Bouwhuis
448b720eb7 Fix trait processing Fan state without percentage_step (#77351)
* Fix trait processing Fan without percentage_step

* Update homeassistant/components/google_assistant/trait.py

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

* Fix test

* Fix formatting

Co-authored-by: Joakim Plate <elupus@ecce.se>
2022-08-27 17:17:02 +02:00
Ernst Klamer
b2e958292c Add support for BThome (#77224)
* Add BThome BLE

* Update BThome to latest version

* 0.3.4

* Rename to bthome 2

* Fix uuids not being found

* Make energy a total increasing state class

* Change unit of measurement of VOC

* Use short identifier

* Fix the reauth flow

* Bump bthome_ble

* Parameterize sensor tests

* Remove Move function to parameter

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-27 15:25:29 +02:00
J. Nick Koston
a6770f8b03 Adjust bluetooth matcher comments (#77409) 2022-08-27 15:23:47 +02:00
Joakim Plate
fcba6def49 Replace STATE_HOME with STATE_IDLE (#77385) 2022-08-27 13:50:41 +02:00
J. Nick Koston
61d5ed1dcf Index bluetooth matchers to resolve performance concerns with many adapters/remotes (#77372) 2022-08-26 23:07:51 -04:00
J. Nick Koston
f6bc5ad8b1 Add Thermobeacon (BLE) integration (#77313) 2022-08-26 22:44:10 -04:00
Robert Hillis
9c6780f76a Rework Accuweather sensors (#76567) 2022-08-26 22:11:25 -04:00
epenet
2b9116f1f8 Use _attr_should_poll in components [s-t] (#77368)
* Use _attr_should_poll in components [s-t]

* Adjust touchline

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-26 22:03:50 -04:00
GitHub Action
c916fcb2c6 [ci skip] Translation update 2022-08-27 00:24:30 +00:00
Christopher Bailey
487cd313c1 Bump version of pyunifiprotect to 4.1.8 (#77389) 2022-08-26 18:15:29 -05:00
epenet
d32f3e359f Use _attr_should_poll in components [o-r] (#77364) 2022-08-26 21:41:41 +02:00
epenet
4142530368 Adjust inheritance in ring (#77366)
* Adjust inheritance in ring

* Fix extra_state_attributes
2022-08-26 21:40:28 +02:00
epenet
d8b2563b3d Use _attr_should_poll in components [u-z] (#77371) 2022-08-26 21:22:27 +02:00
epenet
dff9baf880 Use _attr_should_poll in components [j-n] (#77357) 2022-08-26 21:19:37 +02:00
Rami Mosleh
b36321988f Deprecate speedtest service (#77261)
deprecate speedtest service
2022-08-26 11:57:43 -07:00
David F. Mulcahey
5af015dd7d Fix missing entities in ZHA for IKEA STARKVIND (#77360) 2022-08-26 19:44:34 +02:00
epenet
9b8912a558 Remove unnecessary property from proliphix (#77363) 2022-08-26 19:43:36 +02:00
David F. Mulcahey
0881ff2d1f Add guard to enhanced current hue usage in ZHA (#77359) 2022-08-26 10:00:46 -04:00
Charles Garwood
36d77d1f33 Add diagnostics to Fully Kiosk Browser integration (#77274) 2022-08-26 15:21:45 +02:00
epenet
38ca74b547 Adjust pylint plugin for absolute/relative imports (#77219)
* Adjust pylint plugin for absolute/relative imports

* Adjust components

* One more

* Adjust mqtt

* Adjust mqtt.DOMAIN import

* Adjust internal import

* Add tests for valid local component imports

* Adjust relative path check

* Fixes

* Fixes
2022-08-26 14:27:13 +02:00
Christopher Bailey
1fb8fbf5de Refactor and unify device fetching for UniFi Protect (#77341) 2022-08-26 06:46:11 -05:00
Franck Nijhof
dfc3e7d80f Don't expose attribute option in state selector (#77347) 2022-08-26 11:51:36 +02:00
epenet
7fb9c4a37f Improve type hint in flexit climate entity (#77159) 2022-08-26 11:43:20 +02:00
epenet
b043053aad Improve entity type hints [g] (#77145) 2022-08-26 11:37:12 +02:00
epenet
452ee0284a Improve type hints in demo [2/3] (#77185) 2022-08-26 11:34:38 +02:00
Brett Adams
94cd8e801b Fix attributes scope in Advantage Air Select platform (#76744) 2022-08-26 11:04:38 +02:00
rikroe
516dc3372f Migrate BMW Connected Drive to new entity naming (#77045)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-26 11:04:09 +02:00
Aidan Timson
b5f9f08aa8 Use UUID identifier in System Bridge (#76921) 2022-08-26 11:02:10 +02:00
epenet
ab6bb7cd93 Fix issue with flexit fan mode (#77157) 2022-08-26 10:55:06 +02:00
epenet
0482d50d13 Improve type hint in frontier silicon media player (#77167) 2022-08-26 10:54:22 +02:00
epenet
c840026198 Improve type hint in fibaro climate entity (#77153) 2022-08-26 10:52:57 +02:00
Marc Mueller
79bdc02829 Improve esphome state property decorator typing (#77152) 2022-08-26 10:52:05 +02:00
epenet
563c956539 Improve type hint in everlights light entity (#77139) 2022-08-26 10:50:47 +02:00
epenet
6c4290e418 Improve type hint in acmeda base entity (#77171) 2022-08-26 10:48:31 +02:00
epenet
8f9ff0f88e Improve type hint in freedompro entities (#77170) 2022-08-26 10:48:12 +02:00
epenet
8896229ea6 Improve type hint in foobot sensor entity (#77164) 2022-08-26 10:33:17 +02:00
epenet
3031caafed Improve type hint in flic binary sensor entity (#77161) 2022-08-26 10:30:51 +02:00
Marc Mueller
c438c26df3 Improve WLED typing (#77200) 2022-08-26 10:25:33 +02:00
epenet
f9a46cc79f Use _attr_should_poll in econet (#77262) 2022-08-26 10:21:13 +02:00
epenet
2a8109304f Use _attr_should_poll in components [h-i] (#77270) 2022-08-26 10:20:38 +02:00
epenet
a46c25d2c8 Use _attr_should_poll in components [a-g] (#77268) 2022-08-26 10:15:33 +02:00
J. Nick Koston
120c76524d Fix incorrect key update for Gen2 locks with yalexs_ble (#77335) 2022-08-26 09:33:35 +02:00
Christopher Bailey
6558643448 Handle remove packets for UniFi Protect (#77337)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-25 22:05:18 -05:00
J. Nick Koston
47848b7cf8 Fix IssueSeverity import (#77338) 2022-08-25 21:52:33 -05:00
Franck Nijhof
5f0cca9b26 Raise repairs issue if automation calls unknown service (#76949) 2022-08-25 20:56:26 -04:00
GitHub Action
d7724235ff [ci skip] Translation update 2022-08-26 00:27:16 +00:00
Christopher Bailey
5c0fc0c002 Add adopt/unadopt flows for UniFi Protect devices (#76524)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-25 18:54:52 -05:00
Martin Hjelmare
bda9cb59d2 Clean up double spotify persistent notification for re-auth (#77307) 2022-08-26 00:20:29 +02:00
Christopher Bailey
0e10e6f4cd Bump version of pyunifiprotect to 4.1.7 (#77334) 2022-08-26 00:15:56 +02:00
J. Nick Koston
29b74f10c2 Bump govee-ble to 0.16.1 (#77311) 2022-08-26 00:05:43 +02:00
Paulus Schoutsen
525afb729c Disable some upnp entities by default (#77330) 2022-08-25 23:45:27 +02:00
J. Nick Koston
a09e9040f3 Bump aiohomekit to 1.5.1 (#77323) 2022-08-25 15:22:09 -05:00
Paulus Schoutsen
f2e177a5af 2022.8.7 (#77324) 2022-08-25 15:51:17 -04:00
Jeef
edb4e4de35 Refactor Flume to use base entity class (#77115)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-25 14:45:35 -05:00
mkmer
c420242656 Add BLE sensor to Aladdin_connect (#76221)
* Add BLE sensor
Default Enable BLE & Battery for Model 02

* recommended changes

* Recommended changes

Model 02 -> 01 (oops)
2x async_block_till_done() not needed.
2022-08-25 14:36:54 -04:00
Nathan Spencer
8c24d5810c Remove deprecated reset_waste_drawer and set_wait_time services from litterrobot (#77052) 2022-08-25 13:31:04 -05:00
Paulus Schoutsen
f700a2ea1c Bumped version to 2022.8.7 2022-08-25 14:13:44 -04:00
mletenay
c169a957ab Fix grid_export_limit unit for DT inverters (#77290)
FIx grid_export_limit unit for DT inverters
2022-08-25 14:13:40 -04:00
Matthias Alphart
abaf89f57d Update xknx to 1.0.1 (#77244) 2022-08-25 14:13:39 -04:00
donoghdb
88451e3002 Fix met_eireann default wind speed unit (#77229)
Update default units
2022-08-25 14:13:38 -04:00
mkmer
3efc5bb0be Fix Aladdin connect multiple doors on one device (#77226)
Fixed Multiple doors device_info
2022-08-25 14:13:37 -04:00
Robert Svensson
0c617a0471 Fix level controllable output controls in deCONZ (#77223)
Fix level controllable output controls
2022-08-25 14:13:36 -04:00
Robert Svensson
58debaf837 Minor deCONZ clean up (#76323)
* Rename secondary_temperature with internal_temperature

* Prefix binary and sensor descriptions matching on all sensor devices with COMMON_

* Always create entities in the same order

Its been reported previously that if the integration is removed and setup again that entity IDs can change if not sorted in the numerical order

* Rename alarmsystems to alarm_systems

* Use websocket enums

* Don't use legacy pydeconz constants

* Bump pydeconz to v103

* unsub -> unsubscribe
2022-08-25 14:13:36 -04:00
puddly
b8b4031d31 Bump ZHA dependencies (#77125) 2022-08-25 14:12:24 -04:00
Maciej Bieniek
94d8863da9 Protect against an exception in Shelly climate platform (#77102)
Check if state in HVACMode
2022-08-25 14:12:23 -04:00
J. Nick Koston
df5b57431d Bump pySwitchbot to 0.18.14 (#77090) 2022-08-25 14:12:23 -04:00
J. Nick Koston
1150c3a51a Bump pySwitchbot to 0.18.12 (#77040) 2022-08-25 14:12:22 -04:00
Dave Atherton
81a5c0f9b5 Change growatt server URL (#76824)
Co-authored-by: Chris Straffon <c.m.straffon@gmail.com>
2022-08-25 14:12:21 -04:00
Stephan Uhle
160e3bda23 Add edl21 sensor unit mapping for Hz (#76783)
Added sensor unit mapping for Hz.
2022-08-25 14:12:20 -04:00
Christopher Bailey
7fbb9c189f Bump version of pyunifiprotect to 4.1.15 (#77320) 2022-08-25 13:09:38 -05:00
Nathan Spencer
b563bd0ae5 Add support for Litter-Robot 4 (#75790) 2022-08-25 11:32:27 -05:00
Jeef
462ec4ced3 Add Flume DataUpdateCoordinator class (#77114)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-25 11:21:41 -05:00
Erik Montnemery
ac9ba8f231 Improve demo test coverage (#77301) 2022-08-25 10:39:51 -05:00
Jc2k
f166d21390 Fix characteristic cache clear in homekit_controller on BLE unpair (#77309) 2022-08-25 16:22:58 +01:00
Erik Montnemery
c741d9d045 Update integrations to import issue_registry from helpers (#77305)
* Update integrations to import issue_registry from helpers

* Update tests
2022-08-25 15:33:05 +02:00
J. Nick Koston
0f86bb94d5 Add thermopro integration (BLE) (#77242) 2022-08-25 08:24:55 -05:00
Robert Hillis
4f526a9212 Add reauth flow to Skybell (#75682)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-25 08:24:09 -05:00
Artem Draft
8ddee30787 Revert "Add remote learn command to BraviaTV" (#77306) 2022-08-25 14:23:11 +02:00
Jan Bouwhuis
5d9e462118 Add repair for deprecated MQTT yaml config (#77174)
* Add repair for deprecated MQTT yaml config

* Update homeassistant/components/mqtt/strings.json

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

* Update homeassistant/components/mqtt/strings.json

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

* Add restart instruction

* Update homeassistant/components/mqtt/strings.json

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

* Update English translation

* update issue_registry imports

* Update homeassistant/components/mqtt/manifest.json

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-08-25 13:30:05 +02:00
Erik Montnemery
e18dd4da16 Add pressure to openweathermap weather forecast (#77303) 2022-08-25 13:16:12 +02:00
Jan Bouwhuis
7fc294d9b1 Set cv hass in hass fixture (#77271)
* Set cv hass in hass fixture

* Move test_hass_cv and update docstring

* Update tests/test_test_fixtures.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-25 12:29:31 +02:00
Maciej Bieniek
ad6beac535 Add hw_version to MQTT device info (#77210)
* Add hw_version

* Add abbreviation for hw_version

* Update tests

* Update discovery tests
2022-08-25 11:55:33 +02:00
Erik Montnemery
dfed3ba75e Move issue_registry to homeassistant.helpers (#77299)
* Move issue_registry to homeassistant.helpers

* Add backwards compatibility
2022-08-25 11:32:06 +02:00
epenet
79ab794e6a Add .strict-typing to prettier ignore list (#77177) 2022-08-25 09:39:00 +02:00
Erik Montnemery
3d723bddf8 Use mock_restore_cache in tests (#77298) 2022-08-25 09:28:53 +02:00
Erik Montnemery
c55505b47b Use mock_restore_cache in mqtt tests (#77297) 2022-08-25 09:27:38 +02:00
mletenay
cef6ffb552 Fix grid_export_limit unit for DT inverters (#77290)
FIx grid_export_limit unit for DT inverters
2022-08-25 08:43:09 +02:00
mletenay
bbc2c28ef3 Add Synchronize inverter clock button (#69220)
* Add Synchronize inverter clock button

* Use generic GoodweButtonEntityDescription

* Replace deprecated code

* Fix DT inverter export limit type

* Remove fix to DT inverter export limit time
2022-08-25 07:52:05 +02:00
mkmer
cd7625d4a2 Bump AIOAladdinConnect to 0.1.43 (#77263)
Bumped AIOAladdin Connect 0.1.43
Added door to callback key
2022-08-25 07:05:57 +02:00
J. Nick Koston
f6a03625ba Implement websocket message coalescing (#77238)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-08-24 22:50:48 -05:00
Robert Svensson
2161b6f049 Fix level controllable output controls in deCONZ (#77223)
Fix level controllable output controls
2022-08-24 22:00:54 -04:00
epenet
859effee56 Remove unnecessary property from fritz (#77269) 2022-08-24 21:59:00 -04:00
GitHub Action
16b93d1af2 [ci skip] Translation update 2022-08-25 00:28:02 +00:00
epenet
d33f93d5ca Remove unnecessary property from hvv_departures (#77267) 2022-08-24 19:46:59 -04:00
J. Nick Koston
e79f1de9e9 Bump qingping-ble to 0.6.0 (#77289)
Adds support for the Qingping Temp RH M

Changelog: https://github.com/Bluetooth-Devices/qingping-ble/compare/v0.5.0...v0.6.0
2022-08-24 19:46:34 -04:00
Maciej Bieniek
ae481948a3 Bump Accuweather library (#77285)
Bump accuweather library
2022-08-24 19:46:22 -04:00
J. Nick Koston
109d5c7084 Fix bluetooth discovery when advertisement format changes (#77286) 2022-08-24 17:36:21 -05:00
yllar
5d1c9a2e94 Songpal dependency upgrade (#77278)
Bump python-songpal to 0.15
2022-08-24 16:54:59 -04:00
Artem Draft
647eb9650d Add remote learn command to BraviaTV (#76655)
* add bravia remote learn

* unwrap
2022-08-24 22:50:07 +02:00
kingy444
cfa26ae0ca Migrate Hunter Douglas Powerview to aiopvapi 2.0.0 (#76998) 2022-08-24 12:53:22 -05:00
J. Nick Koston
d1486d04d9 Add support for bleak passive scanning on linux (#75542) 2022-08-24 12:17:28 -05:00
epenet
7ee47f0f26 Adjust inheritance in homeworks (#77265) 2022-08-24 15:41:35 +02:00
Franck Nijhof
4d02cccd11 Fix typing of ConfigEntrySelector (#77259) 2022-08-24 15:15:29 +02:00
McYars
7f4c5c04d3 Add Xiaomi Smartmi Fresh Air System XFXTDFR02ZM (#76637) 2022-08-24 15:09:01 +02:00
Franck Nijhof
a4d7130d7a Fix unneeded inheritance in LaMetric base entity (#77260) 2022-08-24 15:01:24 +02:00
On Freund
635eda584d Support for local push in Risco integration (#75874)
* Local config flow

* Local entities

* Apply suggestions from code review

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

* Address code review comments

* More type hints

* Apply suggestions from code review

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

* More annotations

* Even more annonations

* New entity naming

* Move fixtures to conftest

* Improve state tests for local

* Remove mutable default arguments

* Remove assertions for lack of state

* Add missing file

* Switch setup to fixtures

* Use error fixtures in test_config_flow

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-24 13:09:54 +02:00
Erik Montnemery
2497ff5a39 Add energy and gas sensors to demo integration (#77206) 2022-08-24 11:09:23 +02:00
Erik Montnemery
853fab0a68 Mock MQTT setup in hassio tests (#77245)
* Mock MQTT setup in hassio tests

* Tweak
2022-08-24 10:48:23 +02:00
Franck Nijhof
c26d6879ae Add button platform to LaMetric (#76768)
* Add button platform to LaMetric

* coveragerc

* Fix docstring

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-24 10:10:36 +02:00
Matthias Alphart
619e99d24c Update xknx to 1.0.1 (#77244) 2022-08-24 09:57:57 +02:00
mkmer
a926e7062c Fix Aladdin connect multiple doors on one device (#77226)
Fixed Multiple doors device_info
2022-08-24 09:53:17 +02:00
epenet
a40ddb5e83 Use _attr_should_poll in xiaomi_aqara entities (#77197)
* Use _attr_should_poll in xiaomi_aqara entities

* Adjust switch
2022-08-24 09:11:01 +02:00
donoghdb
671f129317 Fix met_eireann default wind speed unit (#77229)
Update default units
2022-08-24 08:18:10 +02:00
J. Nick Koston
de7fdeddf9 Update qingping matcher to support additional models (#77225)
* Update qingping matcher to support additional models

* tweak

* bump

* Update BinarySensorEntityDescription

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
2022-08-24 06:18:47 +02:00
puddly
8167cd615a Bump ZHA dependencies (#77125) 2022-08-23 20:53:43 -04:00
GitHub Action
a4dcb3a9c1 [ci skip] Translation update 2022-08-24 00:27:09 +00:00
Franck Nijhof
dc17bca00c Add config entry selector (#77108) 2022-08-24 00:29:30 +02:00
Martin Hjelmare
f1075644f8 Bump pymysensors to 0.24.0 (#77201) 2022-08-24 00:00:54 +02:00
mkmer
5ce64539c5 Bump AIOAladdinConnect to 0.1.42 (#77205) 2022-08-23 23:57:38 +02:00
y34hbuddy
99ec341d6e Refactor volvooncall to use ConfigFlow (#76680)
* refactor volvooncall to use ConfigFlow

* remove unused constant SIGNAL_STATE_UPDATED

* implemented feedback

* improve ConfigFlow UX by giving an option for region=None

* implemented more feedback

* next round of feedback

* implemented more feedback

* improve test coverage

* more test coverage

* Apply suggestions from code review

* implemented feedback on tests

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-23 20:58:17 +02:00
Erik Montnemery
f61edf0778 Fix updating of statistics metadata name (#77207)
* Fix updating of statistics metadata name

* Fix test

* Test renaming
2022-08-23 17:51:17 +02:00
Abílio Costa
b1d249c391 Update Whirlpool integration for 0.17.0 library (#76780)
* Update Whirlpool integration for 0.17.0 library

* Use dataclass for integration shared data
2022-08-23 17:25:58 +02:00
J. Nick Koston
7f001cc1d1 ESPHome BLE scanner support (#77123)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-08-23 10:41:50 -04:00
J. Nick Koston
c975146146 Reduce discovery integration matching overhead (#77194) 2022-08-23 10:35:20 -04:00
dependabot[bot]
bf5ab64b99 Bump actions/cache from 3.0.7 to 3.0.8 (#77196)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-23 12:37:28 +02:00
Erik Flodin
9e66b30af9 Add new sensors for energy produced (via Tibbber) (#76165)
The new sensors tibber:energy_(production|profit)_<home_id> are like the
existing consumption/totalCost ones except that they report outgoing
energy instead of incomeing.
2022-08-23 10:02:58 +02:00
Thijs W
680a477009 Fix frontier silicon EQ Mode not present on all devices (#76200)
* Fix #76159: EQ Mode not present on all devices

* Address review remarks

* Duplicate bookkeeping of sound mode support

* reduce length of try-blocks
2022-08-23 09:41:07 +02:00
Jan Bouwhuis
be2366d773 Add this object to MQTT templates (#77142)
* Add `this` object to MQTT templates

* Only set once, remove hass guard

* Set once if there is a state

* Add tests TemplateStateFromEntityId calls once
2022-08-23 08:43:07 +02:00
J. Nick Koston
c76dec138a Discover new bluetooth adapters when they are plugged in (#77006) 2022-08-22 15:45:08 -10:00
epenet
325557c3e9 Use _attr_should_poll in zha entities (#77175) 2022-08-22 21:38:26 -04:00
Christopher Bailey
ce3502291d Add better support for UniFi Protect Cameras with Removable Lens (#76942) 2022-08-22 14:58:31 -10:00
GitHub Action
0f0e398945 [ci skip] Translation update 2022-08-23 00:32:02 +00:00
Franck Nijhof
9843753f30 Add alias support to all triggers (#77184) 2022-08-22 17:43:09 -04:00
Klaas Schoute
29b502bb0a Add diagnostics for Pure Energie integration (#77151)
* Add diagnostics for Pure Energie integration

* Update test after feedback
2022-08-22 22:18:17 +02:00
epenet
f0646dfb42 Improve type hint in filter sensor entity (#77155) 2022-08-22 21:40:33 +02:00
epenet
df5f6bdfc1 Use _attr_should_poll in camera entities (#77173) 2022-08-22 20:30:35 +02:00
epenet
03ed552ca9 Improve type hint in foscam camera entity (#77166) 2022-08-22 20:23:15 +02:00
Christopher Bailey
e3210291a5 Bump version of pyunifiprotect to 4.1.4 (#77172) 2022-08-22 08:10:02 -10:00
Oscar Calvo
e4b288ef7c Load sms notify via discovery (#76733)
* Fix #76283

Fix #76283

* Update notify.py

* Support sending SMS as ANSI

* Put back load via discovery

* Update homeassistant/components/sms/const.py

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

* Update homeassistant/components/sms/__init__.py

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

* Update homeassistant/components/sms/__init__.py

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

* Update homeassistant/components/sms/notify.py

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

* Fix typo

* Apply PR feedback

* Fix bad reference

* Update homeassistant/components/sms/notify.py

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

* Update homeassistant/components/sms/notify.py

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

* Update homeassistant/components/sms/notify.py

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

* Update homeassistant/components/sms/notify.py

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

* Update homeassistant/components/sms/notify.py

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

* Apply PR feedback

* Add back schema

* Update homeassistant/components/sms/notify.py

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

* Fix pylint

* Remove platform schema

* Fix after merge

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-22 20:03:57 +02:00
J. Nick Koston
3938015c93 Add support for scanners that do not provide connectable devices (#77132) 2022-08-22 14:02:26 -04:00
Erik Montnemery
61ff1b786b Add a context variable holding a HomeAssistant reference (#76303)
* Add a context variable holding a HomeAssistant reference

* Move variable setup and update test

* Refactor

* Revert "Refactor"

This reverts commit 346d005ee6.

* Set context variable when creating HomeAssistant object

* Update docstring

* Update docstring

Co-authored-by: jbouwh <jan@jbsoft.nl>
2022-08-22 15:58:01 +02:00
epenet
58b9785485 Improve entity type hints [f] (#77143) 2022-08-22 13:36:33 +02:00
epenet
b108ddbfd3 Improve type hint in ephember climate entity (#77138) 2022-08-22 13:32:06 +02:00
epenet
d7685f869a Improve type hint in emby media-player entity (#77136) 2022-08-22 13:30:28 +02:00
epenet
6693cfd036 Improve type hint in ecobee climate entity (#77133) 2022-08-22 13:27:36 +02:00
epenet
9467b7d018 Improve type hint in eq3btsmart climate entity (#77131) 2022-08-22 13:27:02 +02:00
Franck Nijhof
5a0e4fa5ee Add hide attribute support to attribute selector (#77072)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-22 12:55:30 +02:00
epenet
5cb91d7cef Improve type hint in eddystone sensor entity (#77135) 2022-08-22 11:36:59 +02:00
epenet
361f82f5fa Improve type hints in epson media player (#77129) 2022-08-22 11:34:20 +02:00
Oscar Calvo
8cd04750fc Support send SMS using GSM alphabet (#76834)
* Fix #76283

Fix #76283

* Update notify.py

* Load SMS via discovery

* Put back send as ANSI
2022-08-22 09:22:43 +02:00
Khole
1940d9a377 Hive Add ability to trigger the alarm (#76985)
* Add ability to trigger the alarm

* Add mapping for sos state when triggered manually

* Update homeassistant/components/hive/alarm_control_panel.py

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

* Update homeassistant/components/hive/alarm_control_panel.py

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

* Fix linter issues

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-22 09:20:12 +02:00
epenet
ed60611b07 Improve type hint in cast media_player entity (#77025)
* Improve type hint in cast media_player entity

* Update docstring
2022-08-22 09:13:14 +02:00
Maciej Bieniek
e03eb238e2 Protect against an exception in Shelly climate platform (#77102)
Check if state in HVACMode
2022-08-22 09:03:32 +02:00
sophof
8b46174667 Add NZBGet speed limit sensor (#77104)
* Added sensor for download rate limit

* Added test for speed limit
2022-08-22 09:02:05 +02:00
Maciej Bieniek
cba2893862 Set quality scale to platinum in the NextDNS integration (#77099)
* Set quality scale to platinum

* Catch exceptions on when service calls

* Add tests
2022-08-21 22:08:57 -07:00
GitHub Action
eef7bdb44b [ci skip] Translation update 2022-08-22 00:27:12 +00:00
J. Nick Koston
f3e432c9c7 Reduce bluetooth logging noise when an adapter is recovered (#77109) 2022-08-21 12:03:14 -10:00
Franck Nijhof
bce74ee19e Merge branch 'master' into dev 2022-08-21 22:17:58 +02:00
J. Nick Koston
86e17865f9 Bump pySwitchbot to 0.18.14 (#77090) 2022-08-21 20:36:27 +02:00
Vincent Knoop Pathuis
90ef87f4a6 Add default polling for landis gyr heat meter (#77078) 2022-08-21 20:16:38 +02:00
Maciej Bieniek
ed7ceb0268 Bump NextDNS backend library (#77105) 2022-08-21 19:34:37 +02:00
Daniel
2f652901b6 Add long term statistics for tellduslive (#75789)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-21 19:31:49 +02:00
Gábor Gyenge
23ef3bf9ac Add UV switch to Pet Waterer in Tuya integration (#76718)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-21 19:31:34 +02:00
Artem Draft
ac56b3306a Fix covers moving state in HomeKit (#77101)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-21 06:54:37 -10:00
J. Nick Koston
5d8f5708f4 Bump qingping-ble to 0.3.0 (#77094) 2022-08-21 18:51:58 +02:00
Joakim Plate
4dad24bc51 Don't check for periodic ventilation in fan control (#77089)
Don't check for periodic ventilation
2022-08-21 09:48:23 +02:00
Joakim Plate
2689eddbe8 Make sure we always connect to last known bluetooth device in fjäråskupan (#77088)
Make sure we always connect to last known device
2022-08-21 09:47:04 +02:00
J. Nick Koston
9edb25887c Bump yalexs_ble to 1.6.4 (#77080) 2022-08-20 15:08:35 -10:00
GitHub Action
296e52d918 [ci skip] Translation update 2022-08-21 00:24:25 +00:00
J. Nick Koston
2d0b11f18e Add a new constant for multiple bluetooth watchdog failure hits (#77081) 2022-08-20 13:41:25 -10:00
J. Nick Koston
0bd4973134 Bump bluetooth-auto-recovery to 0.2.2 (#77082) 2022-08-20 13:41:09 -10:00
J. Nick Koston
ced8278e32 Auto recover when the Bluetooth adapter stops responding (#77043) 2022-08-20 11:58:14 -10:00
Jc2k
eb0828efdb Dont rely on config flow to monitor homekit_controller c# changes (#76861) 2022-08-20 10:58:59 -10:00
Kevin Addeman
8b1713a691 Add support for non-serialized devices (light, switch, cover, fan in RA3 Zones) (#75323)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-20 10:56:19 -10:00
mvn23
87be71ce6a Update pyotgw to 2.0.3 (#77073) 2022-08-20 20:18:27 +02:00
Franck Nijhof
453307e01a Add attribute support to state selector (#77071) 2022-08-20 13:30:38 -04:00
J. Nick Koston
18246bb8c8 Improve bluetooth logging when there are multiple adapters (#77007) 2022-08-20 13:22:42 -04:00
Franck Nijhof
49957c752b Add coordinator and number platform to LaMetric (#76766) 2022-08-20 19:06:35 +02:00
epenet
9ac01b8c9b Improve type hint in derivative sensor entity (#77038) 2022-08-20 11:27:01 +02:00
epenet
2c2e0cd4a0 Improve type hint in daikin climate entity (#77037) 2022-08-20 08:41:41 +02:00
epenet
c9fe1f44b8 Improve type hint in denon media player entity (#77036) 2022-08-20 08:40:51 +02:00
epenet
1edb68f8ba Improve type hint in darksky sensor entity (#77035) 2022-08-20 08:39:53 +02:00
epenet
f329428c7f Remove unused variable from directv media player (#77034) 2022-08-20 08:38:59 +02:00
epenet
b88e71762d Improve type hint in cups sensor entity (#77030) 2022-08-20 08:37:47 +02:00
epenet
09ab07921a Improve type hint in compensation sensor entity (#77027) 2022-08-20 08:34:47 +02:00
epenet
fea0ec4d4d Improve type hints in vacuum entities (#76561) 2022-08-20 08:33:27 +02:00
J. Nick Koston
52fbd50d3c Bump yalexs_ble to 1.6.2 (#77056) 2022-08-20 08:15:25 +02:00
J. Nick Koston
828bf63ac2 Bump pySwitchbot to 0.18.12 (#77040) 2022-08-20 08:14:47 +02:00
Klaas Schoute
5cb79696d0 Use data description for Pure Energie integration (#77047) 2022-08-20 08:04:17 +02:00
Klaas Schoute
0795d28ed5 Remove name option from config_flow for P1 Monitor (#77046) 2022-08-20 08:03:43 +02:00
epenet
3a3f41f3df Improve entity type hints [e] (#77041) 2022-08-20 07:52:55 +02:00
GitHub Action
21cd2f5db7 [ci skip] Translation update 2022-08-20 00:23:43 +00:00
Aidan Timson
a076d3faa0 Address late review of system bridge media source (#77032)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-20 00:27:33 +02:00
J. Nick Koston
98c9399ff0 Bump yalexs-ble to 1.6.0 (#77042) 2022-08-19 11:27:43 -10:00
epenet
bf7239c25d Improve entity type hints [d] (#77031) 2022-08-19 16:10:45 +02:00
Franck Nijhof
2d197fd59e Add state selector (#77024)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-19 09:24:53 -04:00
Stephan Uhle
d8392ef6ba Add edl21 sensor unit mapping for Hz (#76783)
Added sensor unit mapping for Hz.
2022-08-19 13:28:03 +02:00
Martin Hjelmare
d0986c7650 Type feedreader strictly (#76707)
* Type feedreader strictly

* Run hassfest
2022-08-19 13:20:41 +02:00
epenet
0f792eb92e Improve entity type hints [c] (#77023) 2022-08-19 13:02:46 +02:00
Rami Mosleh
80c1c11b1a Re-write tests for transmission (#76607)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-19 12:10:34 +02:00
epenet
039c071a80 Improve type hint in brottsplatskartan sensor entity (#77019) 2022-08-19 12:09:58 +02:00
Rami Mosleh
63dcd8ec08 Bump pydroid-ipcam to 2.0.0 (#76906)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-19 11:57:30 +02:00
Dave Atherton
324f5555ed Change growatt server URL (#76824)
Co-authored-by: Chris Straffon <c.m.straffon@gmail.com>
2022-08-19 11:51:27 +02:00
Jan Bouwhuis
90aba6c523 Add cv.deprecated to MQTT modern schema's too (#76884)
Add cv.deprcated to modern schema too
2022-08-19 11:12:47 +02:00
epenet
a5e151691c Fix acmeda battery sensor definition (#76928)
* Fix acmeda battery sensor definition

* Use float | int | None
2022-08-19 11:02:48 +02:00
Johannes Jonker
f966b48d84 Add newly-released Amazon Polly voices (#76934)
* Add newly-released Amazon Polly voices

Cf. announcement at https://aws.amazon.com/about-aws/whats-new/2022/06/amazon-polly-adds-male-neural-tts-voices-languages/ and updated voice list at https://docs.aws.amazon.com/polly/latest/dg/voicelist.html

* Fix inline comment spacing
2022-08-19 11:01:42 +02:00
epenet
61af82223f Improve type hint in blebox light entity (#77013)
* Improve type hint in blebox light entity

* Adjust

* Adjust supported_features

* Adjust effect_list property

* Improve base class
2022-08-19 10:58:51 +02:00
Robert Hillis
cbeaea98d1 Remove deprecated YAML configuration from Skybell (#76940) 2022-08-19 10:56:01 +02:00
Aaron Bach
c3305caabe Provide slight speedup to RainMachine device lookup during service call (#76944)
Fix
2022-08-19 10:41:33 +02:00
Rami Mosleh
655e2f92ba Add strict typing to mikrotik (#76974)
add strict typing to mikrotik
2022-08-19 10:39:14 +02:00
epenet
801f7d1d5f Adjust type hints in airtouch4 climate entity (#76987) 2022-08-19 10:33:34 +02:00
epenet
d70bc68b93 Improve type hint in brottsplatskartan sensor entity (#77015) 2022-08-19 10:30:34 +02:00
epenet
4de50fc471 Improve type hint in bsblan climate entity (#77014) 2022-08-19 10:09:20 +02:00
epenet
dedf063e43 Improve entity type hints [b] (#77012) 2022-08-19 09:54:13 +02:00
Aaron Bach
dd109839b9 Provide slight speedup to Guardian device lookup during service call (#77004)
* Provide slight speedup to Guardian device lookup during service call

* Messages
2022-08-19 09:39:48 +02:00
Erik Montnemery
6d49362573 Revert rename of confirm step in zha config flow (#77010)
* Revert rename of confirm step in zha config flow

* Update tests
2022-08-19 09:33:57 +02:00
Marc Mueller
1faabb8f40 Add timeouts to requests calls (#76851) 2022-08-19 08:58:18 +02:00
rikroe
4eb4146e29 Remove unneeded charging_status attribute in bmw_connected_drive binary sensor (#74921)
* Use `charging_status.value` in attribute for BMW binary sensor

* Remove `charging_status` attribute

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-19 08:36:46 +02:00
Rami Mosleh
72a4f8af3d Add config flow to pushover (#74500)
* Add config flow to `pushover`

* Add tests for reauth

* add deprecated yaml issue

* address comments

* fix test error, other fixes

* update translations
2022-08-19 08:07:32 +02:00
Kevin Addeman
09aaf45f0a Fix lutron caseta Sunnata Keypad support (#75324)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-08-18 16:23:20 -10:00
J. Nick Koston
cd59d3ab81 Add support for multiple Bluetooth adapters (#76963) 2022-08-18 21:41:07 -04:00
GitHub Action
a434d755b3 [ci skip] Translation update 2022-08-19 00:27:31 +00:00
epenet
f323c5e880 Adjust type hints in android_ip_webcam switch entity (#76989) 2022-08-18 22:49:59 +02:00
epenet
009a573324 Adjust type hints in alpha-vantage sensor entity (#76988) 2022-08-18 22:48:49 +02:00
epenet
7a45739104 Adjust type hints in aquostv media player entity (#76990) 2022-08-18 22:47:56 +02:00
Klaas Schoute
b8d8d5540e P1 Monitor add water meter support (#74004) 2022-08-18 22:35:28 +02:00
epenet
eec45c1208 Adjust type hints in august sensor entity (#76992) 2022-08-18 22:21:19 +02:00
Erik Montnemery
bb74730e96 Add support for USB dongles to the hardware integration (#76795)
* Add support for USB dongles to the hardware integration

* Update hardware integrations

* Adjust tests

* Add USB discovery for SkyConnect 1.0

* Improve test coverage

* Apply suggestions from code review

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

* Fix frozen dataclass shizzle

* Adjust test

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-18 21:52:12 +02:00
epenet
fb5a67fb1f Add vacuum checks to pylint plugin (#76560) 2022-08-18 19:22:08 +02:00
Joakim Sørensen
f5487b3a7e Bump pyhaversion from 22.4.1 to 22.8.0 (#76994) 2022-08-18 18:03:10 +02:00
Paulus Schoutsen
6e92931087 Add file selector and file upload integration (#76672) 2022-08-18 12:02:12 -04:00
IceBotYT
92a9011953 Code quality changes for LaCrosse View (#76265) 2022-08-18 17:17:58 +02:00
Erik Montnemery
21ebd1f612 Simplify ZHA config entry title (#76991) 2022-08-18 10:58:44 -04:00
Erik Montnemery
88a5b90489 Minor improvement of zha test (#76993) 2022-08-18 16:52:41 +02:00
Vincent Knoop Pathuis
7a497c1e6e Add Landis+Gyr Heat Meter integration (#73363)
* Add Landis+Gyr Heat Meter integration

* Add contant for better sensor config

* Add test for init

* Refactor some of the PR suggestions in config_flow

* Apply small fix

* Correct total_increasing to total

* Add test for restore state

* Add MWh entity that can be added as gas on the energy dashoard

* Remove GJ as unit

* Round MWh to 5 iso 3 digits

* Update homeassistant/components/landisgyr_heat_meter/const.py

* Update CODEOWNERS

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-18 16:40:04 +02:00
epenet
65eb1584f7 Improve entity type hints [a] (#76986) 2022-08-18 15:56:52 +02:00
epenet
24f1287bf9 Improve type hints in homeassistant scene (#76930) 2022-08-18 15:39:56 +02:00
epenet
c7301a449b Add switch checks to pylint plugin (#76909) 2022-08-18 14:48:23 +02:00
Erik Montnemery
60c8d95a77 Remove white_value support from light (#76926) 2022-08-18 08:21:05 -04:00
Paulus Schoutsen
c894ddeb95 Merge pull request #76964 from home-assistant/rc 2022-08-18 08:09:01 -04:00
Yasser Saleemi
f0deaa33a0 Include moonsighting calc for islamic_prayer_times (#75595) 2022-08-18 14:07:58 +02:00
Franck Nijhof
c212fe7ca5 Adjust version comparison in HA Cloud account linking (#76978) 2022-08-18 14:06:50 +02:00
Charles Garwood
1aef60c81c Add screen on/off switch to Fully Kiosk Browser integration (#76957) 2022-08-18 13:33:38 +02:00
epenet
07ba3c1383 Add update checks to pylint plugin (#76912) 2022-08-18 13:27:05 +02:00
Erik Montnemery
a79f578b1d Add issue_domain parameter to repairs.create_issue (#76972) 2022-08-18 12:45:24 +02:00
Maciej Bieniek
681b726128 Add parental control switches to NextDNS integration (#76559)
* Add new switches

* Make new switches disabled by default

* Update tests
2022-08-18 11:40:24 +02:00
Franck Nijhof
6e9c67c203 Update coverage to 6.4.4 (#76907) 2022-08-18 10:52:55 +02:00
Charles Garwood
6fbdc8e339 Add Fully Kiosk Browser number platform (#76952)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-18 10:51:28 +02:00
epenet
4a84a8caa9 Use Platform enum (#76967) 2022-08-18 10:22:49 +02:00
Paulus Schoutsen
d5b6ccab07 Bumped version to 2022.8.6 2022-08-17 23:09:00 -04:00
Robert Hillis
b9964c73ed Pass the real config for Slack (#76960) 2022-08-17 23:08:57 -04:00
Robert Hillis
341bf8eff4 Pass the real config for Discord (#76959) 2022-08-17 23:08:56 -04:00
J. Nick Koston
34cb79408a Fix race in notify setup (#76954) 2022-08-17 23:08:55 -04:00
epenet
c0b4eb35fe Fix acmeda set cover tilt position (#76927) 2022-08-17 23:08:55 -04:00
Erik Montnemery
b4cb9a521a Correct restoring of mobile_app sensors (#76886) 2022-08-17 23:08:54 -04:00
starkillerOG
c1d02388d1 Bump pynetgear to 0.10.7 (#76754) 2022-08-17 23:08:53 -04:00
Mick Vleeshouwer
8e9313840e Fix Overkiz startup order to prevent unnamed device showing up (#76695)
Gateways should be added first, before platform setup
2022-08-17 23:08:53 -04:00
rikroe
1f13e332ac Fix displayed units for BMW Connected Drive (#76613)
* Fix displayed units

* Add tests for unit conversion

* Streamline test config entry init

* Refactor test to pytest fixture

* Fix renamed mock

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-17 23:08:52 -04:00
J. Nick Koston
82b6deeb79 Bump qingping-ble to 0.2.4 (#76958) 2022-08-17 22:43:22 -04:00
Robert Hillis
6ab9652b60 Pass the real config for Discord (#76959) 2022-08-17 22:41:59 -04:00
Robert Hillis
280ae91ba1 Pass the real config for Slack (#76960) 2022-08-17 22:41:28 -04:00
J. Nick Koston
03fac0c529 Fix race in notify setup (#76954) 2022-08-17 22:37:47 -04:00
Joakim Plate
3eaa1c30af Restore fixed step fan speeds for google assistant (#76871) 2022-08-17 22:15:48 -04:00
GitHub Action
d2e5d91eba [ci skip] Translation update 2022-08-18 00:25:40 +00:00
Franck Nijhof
71cdc1645b Refactor LaMetric integration (#76759)
* Refactor LaMetric integration

* Use async_setup

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

* use async_get_service

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

* Update tests/components/lametric/conftest.py

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

* Update tests/components/lametric/conftest.py

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

* Pass hassconfig

* Remove try/catch

* Fix passing hassconfig

* Use menu

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-18 00:49:11 +02:00
J. Nick Koston
071cae2c0b Implement auto switching when there are multiple bluetooth scanners (#76947) 2022-08-17 12:38:04 -10:00
J. Nick Koston
7bf13167d8 Prevent bluetooth scanner from being shutdown by BleakClient not using BLEDevice (#76945) 2022-08-17 11:42:12 -10:00
J. Nick Koston
3bcc274dfa Rework bluetooth to support scans from multiple sources (#76900) 2022-08-17 10:51:56 -10:00
Christopher Bailey
ff7ef7e526 Bump version of pyunifiprotect to 4.1.2 (#76936) 2022-08-17 18:45:34 +02:00
epenet
49c793b1a2 Add scene checks to pylint plugin (#76908) 2022-08-17 18:44:08 +02:00
epenet
27b5ebb9d3 Add RestoreSensor to sensor checks in pylint (#76916) 2022-08-17 18:43:28 +02:00
epenet
fc6c66fe6c Add RestoreEntity to button checks in pylint (#76932) 2022-08-17 18:42:35 +02:00
René Klomp
a63a3b96b7 Bump pysma to 0.6.12 (#76937) 2022-08-17 17:53:21 +02:00
epenet
ce07748979 Add water_heater checks to pylint plugin (#76911) 2022-08-17 17:50:00 +02:00
epenet
171893b484 Fix acmeda set cover tilt position (#76927) 2022-08-17 17:00:30 +02:00
epenet
35d01d7939 Add RestoreNumber to number checks in pylint (#76933) 2022-08-17 16:58:42 +02:00
epenet
673a72503d Improve type hints in water_heater (#76910)
* Improve type hints in water_heater

* Adjust melcloud
2022-08-17 16:58:17 +02:00
epenet
8619df5294 Improve type hints in utility_meter select entity (#76447) 2022-08-17 16:38:41 +02:00
Charles Garwood
79ab13d118 Add Fully Kiosk Browser switch platform (#76931) 2022-08-17 16:30:20 +02:00
epenet
eec0f3351a Add weather checks to pylint plugin (#76915) 2022-08-17 16:27:47 +02:00
Diogo Gomes
ef6b6e7850 Remove deprecated utility_meter entity (#76480)
* remove deprecated utility_meter domain

* remove select_tariff
2022-08-17 16:25:34 +02:00
Charles Garwood
924704e0d1 Fix fully_kiosk button test docstring and function name (#76935)
Fix button test docstring and function name
2022-08-17 10:22:12 -04:00
Erik Montnemery
05e33821fd Remove white_value support from group light (#76924) 2022-08-17 08:01:50 -04:00
Erik Montnemery
d034ed1fc2 Remove some error prone code from Alexa tests (#76917) 2022-08-17 07:54:54 -04:00
Erik Montnemery
426a620084 Remove deprecated white_value support from template light (#76923) 2022-08-17 07:53:56 -04:00
Erik Montnemery
4cc1428eea Add support for color_mode white to MQTT JSON light (#76918) 2022-08-17 13:07:50 +02:00
Erik Montnemery
0ed265e2be Correct restoring of mobile_app sensors (#76886) 2022-08-17 10:53:05 +02:00
Franck Nijhof
b4323108b1 Update cryptography to 37.0.4 (#76853) 2022-08-17 09:41:50 +02:00
mkmer
5ef6b5a300 Add BLE sensor to Aladdin_connect (#76221)
* Add BLE sensor
Default Enable BLE & Battery for Model 02

* recommended changes

* Recommended changes

Model 02 -> 01 (oops)
2x async_block_till_done() not needed.
2022-08-17 09:09:19 +02:00
Charles Garwood
7e366a78e6 Add Fully Kiosk Browser button platform (#76894)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-17 08:36:56 +02:00
J. Nick Koston
ee1b08bbd6 Bump govee-ble to 0.16.0 (#76882) 2022-08-16 21:21:47 -04:00
Franck Nijhof
7a82279af8 Update hass-nabucasa to 0.55.0 (#76892) 2022-08-16 21:20:47 -04:00
Marc Mueller
d73754d292 Fix TypeAlias + TypeVar names (#76897) 2022-08-16 21:19:55 -04:00
Franck Nijhof
ec1b133201 Add DHCP updates to Fully Kiosk (#76896) 2022-08-16 21:19:23 -04:00
J. Nick Koston
6f3cdb6db1 Reorganize bluetooth integration to prepare for remote and multi-adapter support (#76883) 2022-08-16 14:52:53 -10:00
Paulus Schoutsen
8c62713af3 Bump frontend to 20220816.0 (#76895) 2022-08-16 20:49:27 -04:00
GitHub Action
683132ae19 [ci skip] Translation update 2022-08-17 00:26:42 +00:00
Charles Garwood
8070875ff4 Add Fully Kiosk Browser sensor platform (#76887) 2022-08-17 00:20:30 +02:00
Paulus Schoutsen
59878ea1ef Indieauth updates (#76880) 2022-08-16 17:17:10 -04:00
rikroe
cb2799bc37 Fix displayed units for BMW Connected Drive (#76613)
* Fix displayed units

* Add tests for unit conversion

* Streamline test config entry init

* Refactor test to pytest fixture

* Fix renamed mock

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-16 21:36:33 +02:00
Charles Garwood
1e9ede25ad Add Fully Kiosk Browser integration with initial binary sensor platform (#76737)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-16 20:08:35 +02:00
starkillerOG
73ad34244e Bump pynetgear to 0.10.7 (#76754) 2022-08-16 19:49:49 +02:00
epenet
5736ba6230 Add remote checks to pylint plugin (#76875) 2022-08-16 19:24:00 +02:00
epenet
2630ff8fce Add sensor checks to pylint plugin (#76876) 2022-08-16 19:22:15 +02:00
Zach Berger
5331af2143 Capture local Awair firmware version to DeviceInfo (#76700) 2022-08-16 13:17:53 -04:00
Igor Pakhomov
65f86ce44f Add additional select for dmaker.airfresh.t2017 to xiaomi_miio (#67058) 2022-08-16 17:30:56 +02:00
Franck Nijhof
d50b5cebee Various improvement for JustNimbus (#76858)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-16 17:10:11 +02:00
Franck Nijhof
93a72982ce Update debugpy to 1.6.3 (#76849) 2022-08-16 17:09:50 +02:00
Franck Nijhof
1a2a20cfc5 Update google-cloud-texttospeech to 2.12.1 (#76854) 2022-08-16 17:09:00 +02:00
Joakim Sørensen
2ab4817d81 Use secure in Speedtest (#76852) 2022-08-16 08:05:09 -07:00
Erik Montnemery
73001e29ff Remove deprecated white_value support from MQTT light (#76848)
* Remove deprecated white_value support from MQTT light

* Remove deprecated white_value support from MQTT JSON light

* Remove deprecated white_value support from MQTT template light
2022-08-16 16:47:21 +02:00
Franck Nijhof
63d71457aa Type BrowseMedia children as a covariant (#76869) 2022-08-16 16:31:09 +02:00
Franck Nijhof
2e191d6a60 Update sentry-sdk to 1.9.5 (#76857) 2022-08-16 16:30:04 +02:00
Franck Nijhof
3d567d2c1b Update numpy to 1.23.2 (#76855) 2022-08-16 16:18:40 +02:00
Marc Mueller
563ec67d39 Add strict typing for auth (#75586) 2022-08-16 10:10:37 -04:00
Franck Nijhof
735dec8dde Process UniFi Protect review comments (#76870) 2022-08-16 15:53:16 +02:00
Aidan Timson
3cb062dc13 Add System Bridge Media Source (#72865) 2022-08-16 09:48:01 -04:00
Franck Nijhof
00c0ea8869 Remove stale debug prints (#76865) 2022-08-16 09:33:33 -04:00
Martin Hjelmare
45b253f65f Clean awair debug print (#76864) 2022-08-16 14:58:55 +02:00
Paulus Schoutsen
c7d46bc719 Improve Awair config flow (#76838) 2022-08-16 14:30:07 +02:00
jonasrickert
3e1c9f1ac7 Add Rollotron DECT 1213 to fritzbox (#76386) 2022-08-16 11:49:31 +02:00
Jc2k
a663445f25 Bump aiohomekit to 1.3.0 (#76841) 2022-08-16 10:34:17 +01:00
Marc Mueller
93630cf1f8 Add missing entry for SOURCE_TYPE_* to hass-imports plugin (#76829) 2022-08-16 11:17:10 +02:00
Marc Mueller
91005f4694 Update pylint plugin to use TriggerActionType (#76819) 2022-08-16 11:16:33 +02:00
Mick Vleeshouwer
7ec54edc69 Fix Overkiz startup order to prevent unnamed device showing up (#76695)
Gateways should be added first, before platform setup
2022-08-16 07:54:26 +02:00
Marc Mueller
b8f83f6c70 Use BinarySensorDeviceClass instead of deprecated constants (#76830) 2022-08-16 07:40:33 +02:00
Paulus Schoutsen
795ed9fbf6 Merge pull request #76835 from home-assistant/rc 2022-08-15 21:59:42 -04:00
Paulus Schoutsen
ec4ff824ad Bumped version to 2022.8.5 2022-08-15 21:09:58 -04:00
J. Nick Koston
f4a09455c0 Fix lifx homekit discoveries not being ignorable or updating the IP (#76825) 2022-08-15 21:09:48 -04:00
Erik Montnemery
bf88448ffd Correct referenced entities and devices for event triggers (#76818) 2022-08-15 21:09:48 -04:00
J. Nick Koston
bae01f188a Fix bluetooth callback registration not surviving a reload (#76817) 2022-08-15 21:09:47 -04:00
J. Nick Koston
d142618297 Bump aiohomekit to 1.2.11 (#76784) 2022-08-15 21:09:46 -04:00
Frank
d91e9f7f98 Bump homeconnect to 0.7.2 (#76773) 2022-08-15 21:09:45 -04:00
J. Nick Koston
70541eac61 Fix stale data with SensorPush sensors (#76771) 2022-08-15 21:09:45 -04:00
Marcel van der Veldt
30a5e396d3 Bump aiohue to 4.5.0 (#76757) 2022-08-15 21:09:44 -04:00
rikroe
ae99b53757 Bump bimmer_connected to 0.10.2 (#76751)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-15 21:09:43 -04:00
J. Nick Koston
71a6128c65 Fix bad data with inkbird bbq sensors (#76739) 2022-08-15 21:09:43 -04:00
J. Nick Koston
69ea07f29d Bump aiohomekit to 1.2.10 (#76738) 2022-08-15 21:09:42 -04:00
Marvin Wichmann
41faf9092a Update xknx to 1.0.0 🎉 (#76734) 2022-08-15 21:09:41 -04:00
starkillerOG
ef6285800f Motion Blinds fix OperationNotAllowed (#76712)
fix OperationNotAllowed

homeassistant.config_entries.OperationNotAllowed
2022-08-15 21:09:41 -04:00
Allen Porter
bd40d6f332 Fix google calendar disabled entity handling (#76699)
Fix google calendar disable entity handling
2022-08-15 21:09:40 -04:00
J. Nick Koston
d10e2336e2 Bump pySwitchbot to 0.18.10 to handle empty data and disconnects (#76684)
* Bump pySwitchbot to 0.18.7 to handle empty data

Fixes #76621

* bump again

* bump

* bump for rssi on disconnect logging
2022-08-15 21:09:39 -04:00
J. Nick Koston
875de80b41 Bump pySwitchbot to 0.18.6 to fix disconnect race (#76656) 2022-08-15 21:09:38 -04:00
J. Nick Koston
666e938b14 Bump pySwitchbot to 0.18.5 (#76640) 2022-08-15 21:09:37 -04:00
hansgoed
972aad0e99 🐛 Fix "The request content was malformed" error in home_connect (#76411) 2022-08-15 21:09:36 -04:00
Aidan Timson
872b2f56ac Update systembridgeconnector to 3.4.4 (#75362)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-15 21:09:36 -04:00
J. Nick Koston
b43242ef0d Fix lifx homekit discoveries not being ignorable or updating the IP (#76825) 2022-08-15 21:09:13 -04:00
GitHub Action
ff3fd4c29d [ci skip] Translation update 2022-08-16 00:30:51 +00:00
Erik Montnemery
1c1b23ef69 Correct referenced entities and devices for event triggers (#76818) 2022-08-15 17:35:30 -04:00
Marc Mueller
f400a404cd Update pylint to 2.14.5 (#76821) 2022-08-15 23:27:08 +02:00
J. Nick Koston
4890785299 Fix bluetooth callback registration not surviving a reload (#76817) 2022-08-15 10:19:37 -10:00
Marc Mueller
d8916c3e47 Use TriggerActionType [a-k] (#76812) 2022-08-15 20:26:49 +02:00
Marc Mueller
badbc414fb Use TriggerActionType [w-z] (#76814) 2022-08-15 20:15:57 +02:00
Marc Mueller
702f8180a6 Use TriggerActionType [l-t] (#76813) 2022-08-15 14:00:42 -04:00
Marcel van der Veldt
223ea03492 Fix Hue events for relative_rotary devices (such as Hue Tap Dial) (#76758)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-08-15 13:32:44 -04:00
Marc Mueller
453cbc3e14 Use TriggerActionType [core, t-z] (#76808) 2022-08-15 18:15:20 +02:00
Marc Mueller
7360cce1c2 Use TriggerActionType [core, homeassistant] (#76805) 2022-08-15 18:06:16 +02:00
Marc Mueller
19cf6089d6 Use TriggerActionType [core, a-d] (#76803) 2022-08-15 17:44:12 +02:00
Marc Mueller
1ebac6c7ca Use TriggerActionType [core, r-t] (#76807) 2022-08-15 17:40:16 +02:00
Marc Mueller
af002d9dc4 Use TriggerActionType [core, l-m] (#76806) 2022-08-15 17:39:55 +02:00
Marc Mueller
e39672078d Use TriggerActionType [core, d-h] (#76804) 2022-08-15 17:39:14 +02:00
hansgoed
1557a7c36d 🐛 Fix "The request content was malformed" error in home_connect (#76411) 2022-08-15 15:07:39 +02:00
Aidan Timson
64898af58e Update systembridgeconnector to 3.4.4 (#75362)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-15 15:00:29 +02:00
Marc Mueller
c93d9d9a90 Move AutomationActionType to helpers.trigger (#76790) 2022-08-15 08:37:11 -04:00
rikroe
4239757c2c Bump bimmer_connected to 0.10.2 (#76751)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-15 13:55:23 +02:00
Álvaro Fernández Rojas
cf867730cd Update aioqsw to v0.2.2 (#76760) 2022-08-15 12:12:31 +02:00
Álvaro Fernández Rojas
f443edfef4 Enable statistics for WLED WiFi RSSI/Signal sensors (#76789) 2022-08-15 11:49:22 +02:00
Franck Nijhof
8f0f734c28 Fix entity category for LIFX buttons (#76788) 2022-08-15 11:35:53 +02:00
Marcel van der Veldt
669e6bec39 Bump aiohue to 4.5.0 (#76757) 2022-08-15 11:23:38 +02:00
Frank
f4c23ad68d Bump homeconnect to 0.7.2 (#76773) 2022-08-15 10:44:14 +02:00
epenet
6243f24b05 Add media-player checks to pylint plugin (#76675)
* Add media-player checks to pylint plugin

* Fix invalid hints

* Add tests

* Adjust tests

* Add extra test

* Adjust regex

* Cleanup comment

* Move media player tests up
2022-08-15 09:48:03 +02:00
Aaron Bach
c9feda1562 Fix missing state classes on various Ambient PWS entities (#76683) 2022-08-14 21:13:11 -10:00
J. Nick Koston
68979009e3 Bump aiohomekit to 1.2.11 (#76784) 2022-08-14 20:54:49 -10:00
J. Nick Koston
cf19536c43 Fix stale data with SensorPush sensors (#76771) 2022-08-14 20:48:28 -10:00
J. Nick Koston
9dedba4843 Fix bad data with inkbird bbq sensors (#76739) 2022-08-14 20:48:06 -10:00
Jan Bouwhuis
161e533c5f Remove MQTT climate support for hold and away modes (#76299)
Remove support for hold and away modes
2022-08-15 08:27:37 +02:00
Jan Bouwhuis
f72cfef7be Fix MQTT camera encoding (#76124)
* Fix MQTT camera encoding

* Reduce code

* Add test for using image_encoding parameter

* Move deprecation check to validation

* Dependency

* Set correct strings and log warning

* Rename constant

* Use better issue string identifier

* Revert unwanted change to hassio test

* Avoid term `deprecated` in issue description

* Revert changes using the repairs API

* Add a notice when work-a-round will be removed

* Update homeassistant/components/mqtt/camera.py

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

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-08-15 08:26:17 +02:00
epenet
4f9e6d2407 Improve vacuum type hints (#76747)
* Improve vacuum type hints

* Black

* Black

* Adjust

* One more
2022-08-15 08:23:05 +02:00
J. Nick Koston
8a85881ca0 Bump pySwitchbot to 0.18.10 to handle empty data and disconnects (#76684)
* Bump pySwitchbot to 0.18.7 to handle empty data

Fixes #76621

* bump again

* bump

* bump for rssi on disconnect logging
2022-08-15 07:53:27 +02:00
epenet
aadecdf6cb Add type hints to MediaPlayerEntity (#76743)
* Add media-player checks to pylint plugin

* Fix invalid hints

* Add tests

* Adjust tests

* Add extra test

* Adjust regex

* Cleanup comment

* Revert

* Revert

* Update homeassistant/components/media_player/__init__.py

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

* Update homeassistant/components/denonavr/media_player.py

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

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-08-15 00:54:25 +03:00
Christopher Bailey
7fc2d9e087 Persist previous mic/record values for UniFi Protect privacy mode (#76472) 2022-08-14 10:57:25 -10:00
J. Nick Koston
5f827f4ca6 Bump aiohomekit to 1.2.10 (#76738) 2022-08-13 21:56:57 -10:00
J. Nick Koston
f55c274d83 Add Qingping integration (BLE) (#76598)
* Add Qingping integration (BLE)

* commit the binary sensor

* add binary_sensor file

* Update homeassistant/components/qingping/sensor.py

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

* Update homeassistant/components/qingping/config_flow.py

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

* Update homeassistant/components/qingping/sensor.py

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

* fix const CONCENTRATION_MICROGRAMS_PER_CUBIC_METER

* cover case where config flow is started, another path adds it, and then they resume

* fix missed values

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-14 09:00:27 +02:00
Marvin Wichmann
0d45cef6f6 Update xknx to 1.0.0 🎉 (#76734) 2022-08-14 06:31:39 +02:00
GitHub Action
bec8e544f4 [ci skip] Translation update 2022-08-14 00:25:47 +00:00
J. Nick Koston
b4a840c00d Avoid creating door sensor when it does no exist on older yalexs_ble locks (#76710) 2022-08-13 12:47:35 -10:00
Marc Mueller
bac44cf473 Enable no_implicit_optional globally [mypy] (#76723) 2022-08-13 19:33:57 +02:00
dependabot[bot]
4fc1d59b74 Bump actions/cache from 3.0.6 to 3.0.7 (#76648)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-13 18:55:09 +02:00
Marc Mueller
67e339c67b Fix implicit Optional [t-z] (#76722) 2022-08-13 18:47:17 +02:00
Marc Mueller
5db1fec99e Fix implicit Optional [p-s] (#76721) 2022-08-13 18:46:49 +02:00
Marc Mueller
5a046ae7be Fix implicit Optional [a-n] (#76720) 2022-08-13 18:46:34 +02:00
Marc Mueller
cf7c716bda Fix implicit Optional [core] (#76719) 2022-08-13 18:46:08 +02:00
rikroe
a70252a243 Log not allowed attributes only once in BMW binary sensors (#76708)
* Log not allowed keys only once

* Fix spelling

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

Co-authored-by: rikroe <rikroe@users.noreply.github.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2022-08-13 16:05:23 +02:00
starkillerOG
db03c273f1 Netgear skip devices withouth mac (#76626)
skip devices withouth mac
2022-08-13 15:17:49 +02:00
Allen Porter
b969ed00b9 Fix google calendar disabled entity handling (#76699)
Fix google calendar disable entity handling
2022-08-13 15:02:32 +02:00
starkillerOG
bcc0a92e2b Motion Blinds fix OperationNotAllowed (#76712)
fix OperationNotAllowed

homeassistant.config_entries.OperationNotAllowed
2022-08-13 14:39:04 +02:00
J. Nick Koston
93a80d8fc3 Bump yalexs-ble to 1.4.0 (#76685) 2022-08-13 10:36:30 +02:00
Mick Vleeshouwer
9181b0171a Bump pyoverkiz to 1.5.0 (#76682) 2022-08-13 10:35:13 +02:00
Maciej Bieniek
e44b1fa98c Bump nettigo-air-monitor to 1.4.2 (#76670) 2022-08-13 10:32:58 +02:00
rikroe
c9c84639ad Remove charging_time_label sensor in BMW Connected Drive (#76616)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-13 10:30:39 +02:00
J. Nick Koston
58883feaf6 Small cleanups to Yale Access Bluetooth (#76691)
- Abort the discovery flow if the user has already
  started interacting with a user flow or bluetooth
  discovery

- Remove docs_url from the flow

- Fix useless return
2022-08-13 09:55:48 +02:00
GitHub Action
6e03b12a93 [ci skip] Translation update 2022-08-13 00:25:00 +00:00
Paulus Schoutsen
2f29f38ec6 Streamline discovery flow callback (#76666) 2022-08-12 16:42:41 -07:00
starkillerOG
2e40fc7288 Bump motionblinds to 0.6.12 (#76665) 2022-08-12 16:39:12 -07:00
Paulus Schoutsen
e2fae855e7 Merge pull request #76679 from home-assistant/rc 2022-08-12 14:48:45 -04:00
Paulus Schoutsen
fdde4d540d Bumped version to 2022.8.4 2022-08-12 14:04:21 -04:00
rikroe
5606b4026f Fix non-awaited coroutine in BMW notify (#76664)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-12 14:04:18 -04:00
J. Nick Koston
84b8029c6a Add missing _abort_if_unique_id_configured to ble integrations (#76624) 2022-08-12 14:04:17 -04:00
Martin Hjelmare
294cc3ac6e Fix evohome preset modes (#76606) 2022-08-12 14:04:16 -04:00
J. Nick Koston
99c20223e5 Fix Govee 5181 with old firmware (#76600) 2022-08-12 14:04:16 -04:00
Antonino Piazza
451ab47caa Improve code quality in huawei_lte (#76583)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-12 14:04:15 -04:00
Franck Nijhof
738423056e Fix Spotify deviding None value in current progress (#76581) 2022-08-12 14:04:14 -04:00
Jc2k
a3ea881a01 Fix homekit_controller not noticing ip and port changes that zeroconf has found (#76570) 2022-08-12 14:04:13 -04:00
Dave
2dcc886b2f Replaces aiohttp.hdrs CONTENT_TYPE with plain string for the Swisscom integration (#76568) 2022-08-12 14:04:12 -04:00
puddly
6e688b2b7f Bump ZHA dependencies (#76565) 2022-08-12 14:04:12 -04:00
Robert Hillis
e033c8b380 Migrate Abode to new entity naming style (#76673) 2022-08-12 13:14:41 -04:00
rikroe
0293db343f Allow only known attrs for BMW binary sensors (#76663)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-12 09:45:28 -04:00
J. Nick Koston
eeb9a9f058 Make sure all discovery flows are using the helper (#76641) 2022-08-12 09:25:23 -04:00
rikroe
a86397cc10 Fix non-awaited coroutine in BMW notify (#76664)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-08-12 09:19:16 -04:00
J. Nick Koston
563e899d2e Bump yalexs_ble to 1.3.1 to fix disconnect race (#76657) 2022-08-12 08:58:59 -04:00
J. Nick Koston
795e7f5707 Bump pySwitchbot to 0.18.6 to fix disconnect race (#76656) 2022-08-12 08:58:48 -04:00
Rami Mosleh
cafc6ca895 Fix typing in glances config flow (#76654)
fix typing in config_flow
2022-08-12 11:42:42 +02:00
Jc2k
46369b274b Initial binary_sensor support for Xiaomi BLE (#76635) 2022-08-11 22:25:24 -10:00
Rami Mosleh
86b968bf79 Migrate Glances to new entity naming style (#76651)
* Migrate Glances to new entity naming style

* minor fixes
2022-08-12 09:50:27 +02:00
J. Nick Koston
828b97f460 Bump pySwitchbot to 0.18.5 (#76640) 2022-08-11 16:03:31 -10:00
David F. Mulcahey
3937ac2ca3 Track code coverage for ZHA sensor entities (#76617)
* Track code coverage for ZHA sensor entities

* remove correct entry
2022-08-11 21:13:27 -04:00
J. Nick Koston
75ca80428d Add support for August locks to Yale Access Bluetooth (#76625) 2022-08-11 21:12:25 -04:00
J. Nick Koston
4a5a039984 Use async_timeout instead of asyncio.wait_for in switchbot (#76630) 2022-08-11 21:10:59 -04:00
J. Nick Koston
14e6c84104 Bump yalexs-ble to 1.2.0 (#76631)
Implements service caching

Speeds up lock and unlock operations

Changelog: https://github.com/bdraco/yalexs-ble/compare/v1.1.3...v1.2.0
2022-08-11 21:10:14 -04:00
J. Nick Koston
ae9ab48d05 Downgrade bluetooth_le_tracker timeout message to debug (#76639)
Fixes #76558
2022-08-11 21:09:27 -04:00
GitHub Action
7c81f790a7 [ci skip] Translation update 2022-08-12 00:23:47 +00:00
J. Nick Koston
4f064268b0 Add missing _abort_if_unique_id_configured to ble integrations (#76624) 2022-08-11 13:55:52 -10:00
Jc2k
51ca74b3d1 Fix titles for discoveries and device names in xiaomi_ble (#76618) 2022-08-11 23:24:55 +01:00
Franck Nijhof
f0827a20c3 Add schedule helper (#76566)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-08-11 16:14:01 +02:00
Zach Berger
ebbff7b60e Add Awair Local API support (#75535) 2022-08-11 09:01:35 -04:00
Martin Hjelmare
078a4974e1 Fix evohome preset modes (#76606) 2022-08-11 08:53:40 -04:00
epenet
66b742f110 Improve type hints in yeelight lights (#76018)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-11 12:41:24 +02:00
J. Nick Koston
eb0b6f3d75 Fix Govee 5181 with old firmware (#76600) 2022-08-11 11:08:03 +02:00
J. Nick Koston
b5787fe8fa Add RSSI sensors to Yale Access Bluetooth (#76590) 2022-08-11 11:05:58 +02:00
Antonino Piazza
9919dd500d Improve code quality in huawei_lte (#76583)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-11 11:03:12 +02:00
Franck Nijhof
a30dfd9f3e Add class attribute for capability attributes in entity base class (#76599) 2022-08-11 10:34:58 +02:00
Jc2k
6ad2708946 Support polling the MiFlora battery (#76342) 2022-08-11 10:10:18 +02:00
epenet
7fc2a73c88 Improve type hints in harmony (#76445) 2022-08-11 09:50:35 +02:00
J. Nick Koston
8f0ade7a68 Bump yalexs-ble to 1.1.3 (#76595) 2022-08-11 09:34:23 +02:00
J. Nick Koston
bf899101ce Update offline keys from august cloud for august branded yale locks (#76577) 2022-08-10 16:21:41 -10:00
Franck Nijhof
4c70129427 Improve state attributes of CityBikes (#76578) 2022-08-10 21:36:13 -04:00
Franck Nijhof
420084f6f1 Update sentry-sdk to 1.9.3 (#76573) 2022-08-10 21:35:13 -04:00
Jc2k
5523b6fc9f Fix homekit_controller not noticing ip and port changes that zeroconf has found (#76570) 2022-08-10 21:35:05 -04:00
J. Nick Koston
828ea99c61 Add door sensors to Yale Access Bluetooth (#76571) 2022-08-10 21:34:48 -04:00
Franck Nijhof
6e65cb4928 Fix Spotify deviding None value in current progress (#76581) 2022-08-10 21:27:52 -04:00
Franck Nijhof
dbfba3a951 Remove attribution from extra state attributes (#76580) 2022-08-10 21:24:12 -04:00
Robert Hillis
8ecbb85852 Use generators for async_add_entities in Ambient Station (#76586) 2022-08-10 19:05:09 -06:00
GitHub Action
519d478d61 [ci skip] Translation update 2022-08-11 00:26:23 +00:00
Aaron Bach
e0d8f0cc95 Add persistent repair items for deprecated Guardian services (#76312)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-11 00:18:11 +02:00
epenet
0edf82fcb4 Improve type hints in yamaha_musiccast number (#76467) 2022-08-11 00:16:38 +02:00
epenet
46d3f2e14c Improve type hints in freedompro lights (#76045) 2022-08-11 00:12:47 +02:00
epenet
c8f11d65d2 Improve type hints in demo and mqtt number entity (#76464) 2022-08-11 00:10:28 +02:00
Alastair D'Silva
f7c23fe193 Handle EmonCMS feeds that return NULL gracefully (#76074) 2022-08-11 00:09:37 +02:00
Robert Hillis
ca3033b84c Use generators for async_add_entities in Abode (#76569) 2022-08-11 00:09:05 +02:00
Robert Hillis
52fd63acbc Use generators for async_add_entities in Accuweather (#76574) 2022-08-11 00:05:32 +02:00
Keilin Bickar
d81298a2d6 Add sensor state class for SleepIQ sensors (#76372)
Co-authored-by: Inca <inca@popre.net>
2022-08-10 23:59:50 +02:00
Dave
2bab6447a9 Replaces aiohttp.hdrs CONTENT_TYPE with plain string for the Swisscom integration (#76568) 2022-08-10 23:57:58 +02:00
Brandon Rothweiler
58ac3eee3b Always round down for Mazda odometer entity (#76500) 2022-08-10 23:56:20 +02:00
epenet
9555df88c8 Improve type hints in zwave_me number entity (#76469) 2022-08-10 23:49:02 +02:00
J. Nick Koston
bb0038319d Add Yale Access Bluetooth integration (#76182) 2022-08-10 10:08:02 -10:00
puddly
2f99d6a32d Bump ZHA dependencies (#76565) 2022-08-10 15:51:31 -04:00
J. Nick Koston
b1497b0857 Simplify switchbot config flow (#76272) 2022-08-10 09:02:08 -10:00
epenet
54fc17e10d Improve type hints in xiaomi_miio vacuum entities (#76563)
Co-authored-by: Teemu R. <tpr@iki.fi>
2022-08-10 20:40:38 +02:00
Jc2k
0639681991 Add new Bluetooth coordinator helper for polling mostly passive devices (#76549) 2022-08-10 18:56:34 +01:00
epenet
982d197ff3 Add number checks to pylint plugin (#76457)
* Add number checks to pylint plugin

* Adjust ancestor checks

* Add tests

* Add comments in tests
2022-08-10 16:30:58 +02:00
epenet
eeff766078 Improve type hints in xiaomi_miio number entity (#76466) 2022-08-10 16:25:03 +02:00
Jan Bouwhuis
acaa20cabe Improve MQTT warning message on illegal discovery topic (#76545) 2022-08-10 09:38:40 -04:00
Artem Draft
19295d33ba Migrate BraviaTV to new async backend (#75727) 2022-08-10 13:11:49 +02:00
Paulus Schoutsen
0fd38ef9f8 Merge pull request #76535 from home-assistant/rc 2022-08-09 21:55:49 -04:00
GitHub Action
4a938ec33e [ci skip] Translation update 2022-08-10 00:23:36 +00:00
Paulus Schoutsen
56c80cd31a Bumped version to 2022.8.3 2022-08-09 17:18:19 -04:00
J. Nick Koston
303d8b05d1 Bump aiohomekit to 1.2.8 (#76532) 2022-08-09 17:18:12 -04:00
Oscar Calvo
972c05eac8 Fix #76283 (#76531) 2022-08-09 17:18:11 -04:00
J. Nick Koston
e5088d7e84 Fix pairing with HK accessories that do not provide format for vendor chars (#76502) 2022-08-09 17:18:10 -04:00
J. Nick Koston
6c1597ff98 Bump govee-ble to 0.14.0 to fix H5052 sensors (#76497) 2022-08-09 17:18:09 -04:00
J. Nick Koston
edac82487d Fix inkbird ibbq2s that identify with xbbq (#76492) 2022-08-09 17:18:09 -04:00
J. Nick Koston
5213148fa8 Bump aiohomekit to 1.2.6 (#76488) 2022-08-09 17:18:08 -04:00
Christopher Bailey
8e3f5ec470 Bump version of pyunifiprotect to 4.0.12 (#76465) 2022-08-09 17:14:01 -04:00
epenet
af90159e7c Fix iCloud listeners (#76437) 2022-08-09 17:14:01 -04:00
J. Nick Koston
f01b0a1a62 Fix Govee 5185 Meat Thermometers with older firmware not being discovered (#76414) 2022-08-09 17:13:02 -04:00
Aaron Bach
ee2acabcbe Fix bug where RainMachine entity states don't populate on startup (#76412) 2022-08-09 17:12:35 -04:00
Aaron Bach
79b371229d Automatically enable common RainMachine restriction entities (#76405)
Automatically enable common delay-related RainMachine entities
2022-08-09 17:09:05 -04:00
Aaron Bach
0f6b059e3e Add debug logging for unknown Notion errors (#76395)
* Add debug logging for unknown Notion errors

* Remove unused constant

* Code review
2022-08-09 17:09:04 -04:00
J. Nick Koston
b04352e745 Bump aiohomekit to 1.2.8 (#76532) 2022-08-09 17:08:38 -04:00
Oscar Calvo
596b7fed34 Fix #76283 (#76531) 2022-08-09 16:46:22 -04:00
Marc Mueller
dc47121f2c Better type hass_job method calls (#76053) 2022-08-09 16:12:33 -04:00
Marc Mueller
70aeaa3c76 Use Callback protocol for AutomationActionType (#76054) 2022-08-09 16:10:26 -04:00
J. Nick Koston
ad361b8fc2 Fix pairing with HK accessories that do not provide format for vendor chars (#76502) 2022-08-09 09:48:48 -10:00
Christopher Bailey
23fc151150 Bump version of pyunifiprotect to 4.0.13 (#76523) 2022-08-09 08:41:02 -10:00
epenet
38c57944fa Improve type hints in zha number entity (#76468) 2022-08-09 18:32:36 +02:00
epenet
7d0a4ee00a Improve type hints in rfxtrx siren entity (#76459) 2022-08-09 17:54:33 +02:00
Maciej Bieniek
6eb1dbdb74 Add NextDNS binary sensor platform (#75266)
* Add binary_sensor platform

* Add tests

* Add quality scale

* Sort coordinators

* Remove quality scale

* Fix docstring
2022-08-09 17:51:04 +02:00
Maciej Bieniek
753a3c0921 Add new sensors to NextDNS integration (#76262)
* Add DNS-over-HTTP/3 sensors

* Update tests
2022-08-09 17:45:48 +02:00
epenet
bd795be0e9 Cleanup device_class checks in pylint plugin (#76458) 2022-08-09 10:56:15 -04:00
epenet
bcdf880364 Add siren checks to pylint plugin (#76460) 2022-08-09 10:55:52 -04:00
Kevin Stillhammer
b19ace9124 Use constructor instead of factory method for sensors in here_travel_time (#76471) 2022-08-09 10:54:07 -04:00
J. Nick Koston
929eeac1e4 Add support for Govee 5184 BBQ sensors (#76490) 2022-08-09 10:53:21 -04:00
J. Nick Koston
6bae03c14b Fix inkbird ibbq2s that identify with xbbq (#76492) 2022-08-09 10:49:17 -04:00
uvjustin
891158f332 Use stream to generate fallback image for onvif (#75584) 2022-08-09 10:41:19 -04:00
Franck Nijhof
2b2ea3dd73 Update flake8-noqa to 1.2.8 (#76506) 2022-08-09 09:35:38 -04:00
Franck Nijhof
4e3db5bb5c Update sqlalchemy to 1.4.40 (#76505) 2022-08-09 09:35:22 -04:00
J. Nick Koston
a0ceb38f5f Bump govee-ble to 0.14.0 to fix H5052 sensors (#76497) 2022-08-09 09:35:08 -04:00
Álvaro Fernández Rojas
46a8f19197 Update aioqsw to v0.2.0 (#76509) 2022-08-09 15:24:53 +02:00
Rami Mosleh
f90d007e73 Add config flow to android_ip_webcam (#76222)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-09 14:08:46 +02:00
Jc2k
7d427ddbd4 Allow parsing to happen in PassiveBluetoothProcessorCoordinator (#76384) 2022-08-09 06:36:39 +01:00
GitHub Action
12721da063 [ci skip] Translation update 2022-08-09 00:28:50 +00:00
J. Nick Koston
2d43145303 Bump aiohomekit to 1.2.6 (#76488) 2022-08-08 13:06:49 -10:00
Aaron Bach
759503f863 Ensure ConfirmRepairFlow can make use of translation placeholders (#76336)
* Ensure ConfirmRepairFlow can make use of translation placeholders

* Automatically determine the issue

* Fix tests

* Update homeassistant/components/repairs/issue_handler.py

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

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-08 16:46:48 -06:00
Sarabveer Singh
01de1c6304 Update HomeKit PM2.5 mappings to US AQI (#76358) 2022-08-08 11:49:07 -10:00
Koen van Zuijlen
cefc535edb Add JustNimbus integration (#75718)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-08 23:35:05 +02:00
Aaron Bach
acbeb8c881 Bump regenmaschine to 2022.08.0 (#76483) 2022-08-08 14:53:27 -06:00
rlippmann
36d6ef6228 Add ecobee CO2, VOC, and AQI sensors (#76366)
* Add support for CO2, VOC, and AQI sensors

* Update sensor.py

* Formatting changes

* Use class thermostat member in async_update

* Remove thermostat attribute, add mixin class

* Add docstrings

* Add blank line

* Sort imports

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-08 22:34:38 +02:00
Christopher Bailey
d139d1e175 Add UniFi Protect media source (#73244) 2022-08-08 10:00:50 -10:00
Franck Nijhof
8456a25f86 Update apprise to 1.0.0 (#76441) 2022-08-08 20:03:21 +02:00
Franck Nijhof
e199b24374 Update sentry-sdk to 1.9.2 (#76444) 2022-08-08 20:00:05 +02:00
Christopher Bailey
ccf7b8fbb9 Bump version of pyunifiprotect to 4.0.12 (#76465) 2022-08-08 07:50:41 -10:00
uvjustin
6540bed59d Defer preload stream start on startup (#75801) 2022-08-08 11:15:31 -04:00
Maciej Bieniek
9f240d5bab Bump NextDNS backend library (#76300)
* Bump NextDNS backend library

* Update tests

* Update diagnostics tests

* Use fixtures
2022-08-08 07:52:36 -07:00
Franck Nijhof
f67a45f643 Update coverage to 6.4.3 (#76443) 2022-08-08 16:16:40 +02:00
epenet
3fcdad74fc Fix iCloud listeners (#76437) 2022-08-08 09:35:45 -04:00
epenet
fe9c101817 Improve select type hints (#76446) 2022-08-08 15:22:22 +02:00
epenet
3026a70f96 Improve type hints in zwave_js select entity (#76449) 2022-08-08 14:55:23 +02:00
Pieter Mulder
7cd4be1310 Add tests for the HDMI-CEC integration (#75094)
* Add basic tests to the HDMI-CEC component

* Add tests for the HDMI-CEC switch component

* Add test for watchdog code

* Start adding tests for the HDMI-CEC media player platform

Also some cleanup and code move.

* Add more tests for media_player

And cleanup some switch tests.

* Improve xfail message for features

* Align test pyCEC dependency with main dependency

* Make fixtures snake_case

* Cleanup call asserts

* Cleanup service tests

* fix issues with media player tests

* Cleanup MockHDMIDevice class

* Cleanup watchdog tests

* Add myself as code owner for the HDMI-CEC integration

* Fix async fire time changed time jump

* Fix event api sync context

* Delint tests

* Parametrize watchdog test

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-08 13:47:05 +02:00
Laz
a1d5a4bc79 Add Escea fireplace integration (#56039)
Co-authored-by: Teemu R. <tpr@iki.fi>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-08 11:48:42 +02:00
dependabot[bot]
bcc2be344a Bump actions/cache from 3.0.5 to 3.0.6 (#76432)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-08 11:27:36 +02:00
Shay Levy
42dd0cabb3 Fix Shelly H&T sensors rounding (#76426) 2022-08-08 07:52:39 +03:00
GitHub Action
f11fbf2989 [ci skip] Translation update 2022-08-08 00:22:41 +00:00
Martin Hjelmare
d1ab93fbaf Add openexchangerates config flow (#76390) 2022-08-07 23:45:32 +02:00
Aaron Bach
ceecab9559 Add update entity to RainMachine (#76100)
* Add update entity to RainMachine

* Fix tests

* Cleanup

* Test missing controller diagnostics

* Code review
2022-08-07 15:21:49 -06:00
Aaron Bach
dc30d97938 Add debug logging for unknown Notion errors (#76395)
* Add debug logging for unknown Notion errors

* Remove unused constant

* Code review
2022-08-07 14:51:00 -06:00
Aaron Bach
8ea9f975fd Fix bug potential in RainMachine switches by simplifying architecture (#76417)
* Fix bug potential in RainMachine switches by simplifying architecture

* Better typing (per code review)

* Broader error catch
2022-08-07 14:50:49 -06:00
Aaron Bach
27f1955f28 Automatically enable common RainMachine restriction entities (#76405)
Automatically enable common delay-related RainMachine entities
2022-08-07 14:27:52 -06:00
J. Nick Koston
56acb66514 Fix Govee 5185 Meat Thermometers with older firmware not being discovered (#76414) 2022-08-07 10:11:34 -10:00
J. Nick Koston
33b194e48d Switch a few recent merges to use FlowResultType (#76416) 2022-08-07 10:01:32 -10:00
Alex Yao
714d46b153 Silence Yeelight Discovery Log Errors (#76373) 2022-08-07 09:47:49 -10:00
Aaron Bach
9552250f36 Fix bug where RainMachine entity states don't populate on startup (#76412) 2022-08-07 13:44:50 -06:00
Aaron Bach
e89459453b Add more controller-related RainMachine diagnostics (#76409) 2022-08-07 13:44:27 -06:00
Álvaro Fernández Rojas
7deeea02c2 Update aioairzone to v0.4.8 (#76404) 2022-08-07 09:29:07 -10:00
Avi Miller
d14b76e7fc Enable the LIFX diagnostic buttons by default (#76389) 2022-08-07 08:45:26 -10:00
Paulus Schoutsen
89e0db3548 Remove Z-Wave JS trigger uart USB id (#76391) 2022-08-07 14:36:30 -04:00
jjlawren
ea88f229a3 Bump plexapi to 4.12.1 (#76393) 2022-08-07 13:41:12 -04:00
Paulus Schoutsen
bfb2867e8d Merge pull request #76398 from home-assistant/rc 2022-08-07 12:59:26 -04:00
rlippmann
36808a0db4 Add ecobee Smart Premium thermostat (#76365)
Update const.py

Add device model constant for ecobee Smart Premium thermostat
2022-08-07 18:27:17 +02:00
Paulus Schoutsen
c9581f6a2e Bumped version to 2022.8.2 2022-08-07 12:13:08 -04:00
Joakim Plate
e96903fddf Postpone broadlink platform switch until config entry is ready (#76371) 2022-08-07 12:13:03 -04:00
Jean-François Roy
5026bff426 Bump aiobafi6 to 0.7.2 to unblock #76328 (#76330) 2022-08-07 12:13:02 -04:00
J. Nick Koston
4b63aa7f15 Bump pySwitchbot to 0.18.4 (#76322)
* Bump pySwitchbot to 0.18.3

Fixes #76321

Changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.17.3...0.18.3

* bump
2022-08-07 12:13:01 -04:00
David F. Mulcahey
1c2dd78e4c Fix ZHA light color temp support (#76305) 2022-08-07 12:13:00 -04:00
Robert Svensson
9cf11cf6ed Bump pydeconz to v102 (#76287) 2022-08-07 12:13:00 -04:00
puddly
8971a2073e Bump ZHA dependencies (#76275) 2022-08-07 12:12:59 -04:00
Maciej Bieniek
bfa64d2e01 Fix default sensor names in NextDNS integration (#76264) 2022-08-07 12:12:58 -04:00
J. Nick Koston
9c21d56539 Ensure bluetooth recovers if Dbus gets restarted (#76249) 2022-08-07 12:12:58 -04:00
Joakim Plate
8bfc352524 Use stored philips_js system data on start (#75981)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-07 12:12:57 -04:00
Jc2k
0e7bf35e4a Update gree to use the network component to set discovery interfaces (#75812) 2022-08-07 12:12:56 -04:00
J. Nick Koston
c7838c347f Bump zeroconf to 0.39.0 (#76328) 2022-08-07 12:11:11 -04:00
mvn23
ddf3d23c27 Fix opentherm_gw startup failure handling (#76376) 2022-08-07 12:10:32 -04:00
Martin Hjelmare
a6963e6a38 Add zwave_js usb port selection (#76385) 2022-08-07 11:06:03 -04:00
J. Nick Koston
1fe44d0997 Ensure bluetooth recovers if Dbus gets restarted (#76249) 2022-08-07 11:03:56 -04:00
Joakim Plate
4aeaeeda0d Postpone broadlink platform switch until config entry is ready (#76371) 2022-08-07 09:42:47 -04:00
Maciej Bieniek
cd1227d8b9 Fix default sensor names in NextDNS integration (#76264) 2022-08-07 15:04:04 +02:00
Leonardo Figueiro
34984a8af8 Add switch to wilight (#62873)
* Created switch.py and support

* updated support.py

* test for wilight switch

* Update for Test

* Updated test_switch.py

* Trigger service with index

* Updated support.py and switch.py

* Updated support.py

* Updated switch.py as PR#63614

* Updated switch.py

* add type hints

* Updated support.py

* Updated switch.py

* Updated switch.py and services.yaml

* Updated pywilight

* Update homeassistant/components/wilight/switch.py

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

* Update homeassistant/components/wilight/switch.py

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

* Update homeassistant/components/wilight/switch.py

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

* Update homeassistant/components/wilight/switch.py

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

* Update ci.yaml

* Update ci.yaml

* Updated as pywilight

Renamed Device as PyWiLightDevice in pywilight.

* Updated as pywilight

Renamed Device as PyWiLightDevice in pywilight.

* Updated as pywilight

Renamed Device as PyWiLightDevice in pywilight.

* Updated as pywilight

Renamed Device as PyWiLightDevice in pywilight.

* Update switch.py

* Update homeassistant/components/wilight/support.py

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

* Update support.py

* Update switch.py

* Update support.py

* Update support.py

* Update switch.py

* Update switch.py

* Update services.yaml

* Update switch.py

* Update services.yaml

* Update switch.py

* Update homeassistant/components/wilight/switch.py

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

* Update homeassistant/components/wilight/switch.py

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

* Update homeassistant/components/wilight/switch.py

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

* Update switch.py

* Update switch.py

* Update switch.py

* Update test_switch.py

* Update test_switch.py

* Update test_switch.py

* Decrease exception scope

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-07 11:07:01 +02:00
Avi Miller
74cfdc6c1f Add identify and restart button entities to the LIFX integration (#75568) 2022-08-06 17:28:30 -10:00
Avi Miller
db3e21df86 Update aiolifx to version 0.8.2 (#76367) 2022-08-06 15:02:32 -10:00
GitHub Action
4b53b920cb [ci skip] Translation update 2022-08-07 00:29:25 +00:00
Martin Hjelmare
953d9eb9c8 Bump aioopenexchangerates to 0.4.0 (#76356) 2022-08-07 01:23:18 +02:00
Martin Hjelmare
e864b82c03 Improve mysensors config flow (#75122)
* Improve mysensors config flow

* Improve form input order

* Update flow tests
2022-08-07 01:22:50 +02:00
Jc2k
1aa0e64354 Update gree to use the network component to set discovery interfaces (#75812) 2022-08-06 21:45:44 +01:00
J. Nick Koston
c580bce879 Move HKC entity classes into entity.py (#76333) 2022-08-06 08:10:26 -10:00
J. Nick Koston
adce55b4db Bump pySwitchbot to 0.18.4 (#76322)
* Bump pySwitchbot to 0.18.3

Fixes #76321

Changelog: https://github.com/Danielhiversen/pySwitchbot/compare/0.17.3...0.18.3

* bump
2022-08-06 12:46:27 +02:00
J. Nick Koston
76f137eb75 Bump yalexs to 1.2.1 (#76339)
Changelog: https://github.com/bdraco/yalexs/compare/v1.1.25...v1.2.1
2022-08-06 12:39:33 +02:00
Jean-François Roy
7c6a64c348 Bump aiobafi6 to 0.7.2 to unblock #76328 (#76330) 2022-08-05 14:30:45 -10:00
GitHub Action
32a2999b85 [ci skip] Translation update 2022-08-06 00:24:46 +00:00
Robert Svensson
c2f026d0a7 Minor deCONZ clean up (#76323)
* Rename secondary_temperature with internal_temperature

* Prefix binary and sensor descriptions matching on all sensor devices with COMMON_

* Always create entities in the same order

Its been reported previously that if the integration is removed and setup again that entity IDs can change if not sorted in the numerical order

* Rename alarmsystems to alarm_systems

* Use websocket enums

* Don't use legacy pydeconz constants

* Bump pydeconz to v103

* unsub -> unsubscribe
2022-08-06 01:34:27 +02:00
Franck Nijhof
742877f79b Revert "Disable Spotify Media Player entity by default (#69372)" (#76250) 2022-08-05 16:28:52 +02:00
Joakim Plate
a0ef3ad21b Use stored philips_js system data on start (#75981)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-05 16:06:19 +02:00
David F. Mulcahey
df67a8cd4f Fix ZHA light color temp support (#76305) 2022-08-05 09:34:21 -04:00
Joakim Plate
cdde4f9925 Add bluetooth API to allow rediscovery of address (#76005)
* Add API to allow rediscovery of domains

* Switch to clearing per device

* Drop unneded change
2022-08-05 14:49:34 +02:00
Jan Bouwhuis
741efb89d5 Remove deprecated send_if_off option for MQTT climate (#76293)
* Remove `send_if_off` option for mqtt climate

* Use cv.remove()
2022-08-05 13:17:46 +02:00
Erik Montnemery
9aa8838479 Allow storing arbitrary data in repairs issues (#76288) 2022-08-05 13:16:29 +02:00
Erik Montnemery
b366090175 Allow creating fixable repairs issues without flows (#76224)
* Allow creating fixable repairs issues without flows

* Add test

* Adjust test
2022-08-05 12:07:51 +02:00
epenet
861b694cff Use attributes in litejet light (#76031) 2022-08-05 11:39:51 +02:00
Robert Svensson
44aa49dde8 Bump pydeconz to v102 (#76287) 2022-08-05 11:22:55 +02:00
puddly
34dcc74491 Bump ZHA dependencies (#76275) 2022-08-05 11:06:40 +02:00
Franck Nijhof
babb3d10a1 Deprecate the Deutsche Bahn (#76286) 2022-08-05 10:59:43 +02:00
Erik Montnemery
3b29cbcd61 Support creating persistent repairs issues (#76211) 2022-08-05 10:11:20 +02:00
GitHub Action
cb46441b74 [ci skip] Translation update 2022-08-05 00:28:51 +00:00
Franck Nijhof
ce871835b2 Update pyupgrade to v2.37.3 (#76257) 2022-08-05 01:04:10 +02:00
J. Nick Koston
ca4b7cca1a Run black on twitter to fix CI (#76254) 2022-08-04 23:45:35 +02:00
Franck Nijhof
1dd701a89a Merge pull request #76245 from home-assistant/rc 2022-08-04 23:22:00 +02:00
epenet
fa9d0b9ff7 Use attributes in tikteck light (#76022) 2022-08-04 23:11:37 +02:00
epenet
a987cad973 Use attributes in unifiled light (#76019) 2022-08-04 23:10:27 +02:00
Jc2k
d266b1ced6 Fix some homekit_controller pylint warnings and (local only) test failures (#76122) 2022-08-04 22:34:39 +02:00
Daniel Dietzler
bb58ad0f54 Add ability to specify user(s) when sending DMs using the Twitter integration (#71310) 2022-08-04 22:08:24 +02:00
Franck Nijhof
6727dab330 Bumped version to 2022.8.1 2022-08-04 21:51:02 +02:00
Jc2k
42509056bd Enable strict typing for HomeKit Controller config flow module (#76233) 2022-08-04 21:50:48 +02:00
Aaron Bach
a370e4f4b0 More explicitly call out special cases with SimpliSafe authorization code (#76232) 2022-08-04 21:50:44 +02:00
Phil Bruckner
a17e99f714 Fix Life360 recovery from server errors (#76231) 2022-08-04 21:50:41 +02:00
Franck Nijhof
db227a888d Fix spelling of OpenWrt in luci integration manifest (#76219) 2022-08-04 21:50:37 +02:00
mkmer
1808dd3d84 Bump AIOAladdin Connect to 0.1.41 (#76217) 2022-08-04 21:50:34 +02:00
Maciej Bieniek
31fed328ce Bump NextDNS library (#76207) 2022-08-04 21:50:30 +02:00
J. Nick Koston
1a030f118a BLE pairing reliablity fixes for HomeKit Controller (#76199)
- Remove the cached map from memory when unpairing so
  we do not reuse it again if they unpair/repair

- Fixes for accessories that use a config number of
  0

- General reliablity improvements to the pairing process
  under the hood of aiohomekit
2022-08-04 21:50:27 +02:00
Franck Nijhof
a4049e93d8 Mark RPI Power binary sensor as diagnostic (#76198) 2022-08-04 21:50:23 +02:00
Rami Mosleh
854ca853dc Fix nullable ip_address in mikrotik (#76197) 2022-08-04 21:50:20 +02:00
On Freund
2710e4b5ec Fix arm away in Risco (#76188) 2022-08-04 21:50:16 +02:00
Aaron Bach
450af52bac Add repair item to remove no-longer-functioning Flu Near You integration (#76177)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-04 21:50:13 +02:00
J. Nick Koston
60da54558e Fix race in bluetooth async_process_advertisements (#76176) 2022-08-04 21:50:09 +02:00
J. Nick Koston
11319defae Fix flux_led ignored entries not being respected (#76173) 2022-08-04 21:50:06 +02:00
Diogo Gomes
6340da72a5 Remove icon attribute if device class is set (#76161) 2022-08-04 21:50:02 +02:00
Jan Bouwhuis
5c9d557b10 Allow climate operation mode fan_only as custom mode in Alexa (#76148)
* Add support for FAN_ONLY mode

* Tests for fan_only as custom mode
2022-08-04 21:49:21 +02:00
J. Nick Koston
d2955a48b0 Bump bleak to 0.15.1 (#76136) 2022-08-04 21:47:15 +02:00
Martin Hjelmare
d2b98fa285 Fix zwave_js addon info (#76044)
* Add add-on store info command

* Use add-on store info command in zwave_js

* Fix init tests

* Update tests

* Fix method for addon store info

* Fix response parsing

* Fix store addon installed response parsing

* Remove addon info log that can contain network keys

* Add supervisor store addon info test

* Default to version None if add-on not installed

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2022-08-04 21:47:10 +02:00
Franck Nijhof
33bf94c4b2 Update orjson to 3.7.11 (#76171) 2022-08-04 22:37:57 +03:00
Jonathan Keslin
d76ebbbb0b Remove @decompil3d as maintainer on volvooncall (#76153)
* Remove @decompil3d as maintainer on volvooncall

* Run hassfest

Signed-off-by: Franck Nijhof <git@frenck.dev>

Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-04 22:37:20 +03:00
Phil Bruckner
343508a015 Fix Life360 recovery from server errors (#76231) 2022-08-04 21:28:59 +02:00
Aaron Bach
3d42c4ca87 Add reboot button to RainMachine (#75227) 2022-08-04 13:22:10 -06:00
Franck Nijhof
0df4642b62 Remove YAML configuration from Simplepush (#76175) 2022-08-04 21:03:26 +02:00
epenet
0ffdf9fb6e Add device_tracker checks to pylint plugin (#76228) 2022-08-04 21:03:13 +02:00
Franck Nijhof
31d9425e49 Add entity category to Wiz number entities (#76191) 2022-08-04 20:58:12 +02:00
On Freund
b2ceb2043b Fix arm away in Risco (#76188) 2022-08-04 20:57:53 +02:00
Aaron Bach
639a522caa Add repair item to remove no-longer-functioning Flu Near You integration (#76177)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-08-04 19:45:28 +02:00
y34hbuddy
b5a6ee3c56 Refactor volvooncall to (mostly) use DataUpdateCoordinator (#75885)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-04 19:44:39 +02:00
J. Nick Koston
02ad4843b8 Fix flux_led ignored entries not being respected (#76173) 2022-08-04 19:44:22 +02:00
Aaron Bach
b2dc810ea4 More explicitly call out special cases with SimpliSafe authorization code (#76232) 2022-08-04 19:43:02 +02:00
Diogo Gomes
8ca5b5d4a4 Remove icon attribute if device class is set (#76161) 2022-08-04 19:36:37 +02:00
Jc2k
91486f2d61 Enable strict typing for HomeKit Controller config flow module (#76233) 2022-08-04 17:41:47 +01:00
MosheTzvi
8810d3320c added Hanetz Hachama (#76216)
added missing variable
2022-08-04 10:08:23 -06:00
Franck Nijhof
5e75bed929 Update sentry-sdk to 1.9.0 (#76192) 2022-08-04 18:04:54 +02:00
mkmer
0ce44150fd Bump AIOAladdin Connect to 0.1.41 (#76217) 2022-08-04 10:01:58 -06:00
J. Nick Koston
5d7cef6416 Fix race in bluetooth async_process_advertisements (#76176) 2022-08-04 17:58:15 +02:00
J. Nick Koston
63b454c9ed BLE pairing reliablity fixes for HomeKit Controller (#76199)
- Remove the cached map from memory when unpairing so
  we do not reuse it again if they unpair/repair

- Fixes for accessories that use a config number of
  0

- General reliablity improvements to the pairing process
  under the hood of aiohomekit
2022-08-04 16:38:55 +01:00
Rami Mosleh
ff255fedda Fix nullable ip_address in mikrotik (#76197) 2022-08-04 16:04:12 +02:00
Franck Nijhof
8793cf4996 Fix spelling of OpenWrt in luci integration manifest (#76219) 2022-08-04 15:57:00 +02:00
epenet
9af64b1c3b Improve type hints in zha light (#75947) 2022-08-04 14:02:07 +02:00
Maciej Bieniek
88a5ab1e1e Bump NextDNS library (#76207) 2022-08-04 14:01:26 +02:00
Franck Nijhof
726eb82758 Mark RPI Power binary sensor as diagnostic (#76198) 2022-08-04 13:21:37 +02:00
Jc2k
aa3097a3be Add a Thread network status sensor to homekit_controller (#76209) 2022-08-04 11:55:29 +01:00
Jc2k
d5695a2d86 Fix some homekit_controller pylint warnings and (local only) test failures (#76122) 2022-08-04 11:30:37 +01:00
epenet
b7b965c9c9 Use attributes in yeelightsunflower light (#75995) 2022-08-04 09:41:07 +02:00
Jan Bouwhuis
e6e5b98bc7 Allow climate operation mode fan_only as custom mode in Alexa (#76148)
* Add support for FAN_ONLY mode

* Tests for fan_only as custom mode
2022-08-04 09:13:20 +02:00
Franck Nijhof
22eba6ce1b Remove attribution from extra state attributes (#76172) 2022-08-04 08:13:20 +02:00
GitHub Action
e2e277490b [ci skip] Translation update 2022-08-04 00:27:38 +00:00
epenet
1ff7686160 Use attributes in zengge light (#75994) 2022-08-04 01:15:56 +02:00
Aaron Bach
847f150a78 Modify RainMachine to store a single dataclass in hass.data (#75460)
* Modify RainMachine to store a single dataclass in `hass.data`

* Pass one object around instead of multiple
2022-08-03 16:23:42 -06:00
Artem Draft
3388248eb5 Fix prettier on HomeKit Controller (#76168) 2022-08-03 11:58:30 -10:00
Jc2k
72a0ca4871 Add homekit_controller thread node capabilties diagnostic sensor (#76120) 2022-08-03 22:03:10 +01:00
Martin Hjelmare
842cc060f8 Fix zwave_js addon info (#76044)
* Add add-on store info command

* Use add-on store info command in zwave_js

* Fix init tests

* Update tests

* Fix method for addon store info

* Fix response parsing

* Fix store addon installed response parsing

* Remove addon info log that can contain network keys

* Add supervisor store addon info test

* Default to version None if add-on not installed

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2022-08-03 22:33:05 +02:00
Paul Annekov
dd862595a3 New binary sensors for Ukraine Alarm (#76155)
new alert types for ukraine alarm
2022-08-03 23:19:10 +03:00
epenet
1806172551 Improve type hints in hive lights (#76025) 2022-08-03 22:26:34 +03:00
Aaron Bach
fbde347e64 Move RainMachine utils to the correct location (#76051)
* Move RainMachine utils to the correct location

* Imports
2022-08-03 22:24:55 +03:00
epenet
84747ada66 Use attributes in decora light (#76047) 2022-08-03 22:22:30 +03:00
J. Nick Koston
34b0e0d062 Bump bleak to 0.15.1 (#76136) 2022-08-03 07:46:54 -10:00
Franck Nijhof
fc09c6cab1 Merge branch 'master' into dev 2022-08-03 15:09:27 +02:00
Franck Nijhof
8ef3ca2daf Merge pull request #76119 from home-assistant/rc 2022-08-03 14:47:19 +02:00
Erik Flodin
7f83cba83a Bump pyTibber to 0.24.0 (#76098)
To be able to add tibber sensors for production.
2022-08-03 11:53:29 +02:00
Franck Nijhof
80a053a4cd Bumped version to 2022.8.0 2022-08-03 11:42:18 +02:00
Robert Svensson
81ee24738b Fix deconz group log warning (#76114) 2022-08-03 11:25:07 +02:00
Heine Furubotten
29f6d7818a Bump azure-servicebus to support py3.10 (#76092)
Bump azure-servicebus
2022-08-03 11:25:03 +02:00
Heine Furubotten
651928ee0c Bump azure-servicebus to support py3.10 (#76092)
Bump azure-servicebus
2022-08-03 10:31:09 +02:00
epenet
1ee4445a7b Improve type hints in azure devops config flow (#75909)
* Improve type hints in azure devops config flow

* Improve
2022-08-03 10:15:41 +02:00
epenet
1ba18f8df6 Improve type hints in vesync lights (#75998)
* Improve type hints in vesync lights

* Adjust import
2022-08-03 09:56:13 +02:00
Robert Svensson
98f0b24c42 Fix deconz group log warning (#76114) 2022-08-03 09:41:00 +02:00
Franck Nijhof
bc1e371cae Bumped version to 2022.8.0b7 2022-08-03 08:58:12 +02:00
J. Nick Koston
42a1f6ca20 Bump pySwitchbot to 0.17.3 to fix hang at startup (#76103) 2022-08-03 08:57:18 +02:00
J. Nick Koston
d85129c527 Bump aiohomekit to 1.2.3 to fix hang at startup (#76102) 2022-08-03 08:57:15 +02:00
Jc2k
ad14b5f3d7 Fix Xiaomi BLE UI string issues (#76099) 2022-08-03 08:57:12 +02:00
J. Nick Koston
51a6899a60 Only stat the .dockerenv file once (#76097) 2022-08-03 08:57:09 +02:00
J. Nick Koston
d2dc83c4c7 Handle additional bluetooth start exceptions (#76096) 2022-08-03 08:57:05 +02:00
Franck Nijhof
d7a418a219 Guard imports for type hinting in Bluetooth (#75984) 2022-08-03 08:57:01 +02:00
Jc2k
a78da6a000 Fix serialization of Xiaomi BLE reauth flow (#76095)
* Use data instead of context to fix serialisation bug

* Test change to async_start_reauth
2022-08-03 08:53:53 +02:00
J. Nick Koston
690f051a87 Bump pyatv to 0.10.3 (#76091) 2022-08-03 08:53:50 +02:00
Jc2k
c22cb13bd0 Add optional context parameter to async_start_reauth (#76077) 2022-08-03 08:53:47 +02:00
Eloston
213812f087 Add support for SwitchBot Plug Mini (#76056) 2022-08-03 08:53:43 +02:00
J. Nick Koston
6006fc7e30 Bump aiohomekit to 1.2.3 to fix hang at startup (#76102) 2022-08-03 08:35:41 +02:00
J. Nick Koston
0dbb119677 Bump pySwitchbot to 0.17.3 to fix hang at startup (#76103) 2022-08-03 08:34:46 +02:00
GitHub Action
e09bbc749c [ci skip] Translation update 2022-08-03 00:28:23 +00:00
J. Nick Koston
bf931f1225 Handle additional bluetooth start exceptions (#76096) 2022-08-02 13:46:43 -10:00
Jc2k
fbf3c1a5d4 Fix Xiaomi BLE UI string issues (#76099) 2022-08-02 22:05:36 +01:00
Jc2k
a0adfb9e62 Fix serialization of Xiaomi BLE reauth flow (#76095)
* Use data instead of context to fix serialisation bug

* Test change to async_start_reauth
2022-08-02 21:38:38 +01:00
J. Nick Koston
a628be4db8 Only stat the .dockerenv file once (#76097) 2022-08-02 10:38:01 -10:00
J. Nick Koston
cf849c59a4 Bump pyatv to 0.10.3 (#76091) 2022-08-02 21:11:50 +02:00
Franck Nijhof
19b0961084 Bumped version to 2022.8.0b6 2022-08-02 19:37:52 +02:00
Zack Barett
e073f6b439 Bump Frontend to 20220802.0 (#76087) 2022-08-02 19:36:26 +02:00
David F. Mulcahey
c4906414ea Ensure ZHA devices load before validating device triggers (#76084) 2022-08-02 19:36:22 +02:00
Erik Montnemery
cc9a130f58 Refresh homeassistant_alerts when hass has started (#76083) 2022-08-02 19:36:19 +02:00
mkmer
c90a223cb6 Bump AIOAladdinConnect to 0.1.39 (#76082) 2022-08-02 19:36:16 +02:00
Jc2k
2eddbf2381 Fix typo in new xiaomi_ble string (#76076) 2022-08-02 19:36:13 +02:00
Franck Nijhof
654e26052b Remove Somfy from Overkiz title in manifest (#76073) 2022-08-02 19:36:09 +02:00
Erik Montnemery
676664022d Handle missing attributes in meater objects (#76072) 2022-08-02 19:36:06 +02:00
Franck Nijhof
ed57951571 Small title adjustment to the Home Assistant Alerts integration (#76070) 2022-08-02 19:36:03 +02:00
lunmay
b9ee81dfc3 Fix capitalization in mitemp_bt strings (#76063)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-02 19:35:59 +02:00
lunmay
9f31be8f01 Fix capitalization in mitemp_bt strings (#76063)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-08-02 19:22:29 +02:00
Erik Montnemery
17fbee7dd3 Refresh homeassistant_alerts when hass has started (#76083) 2022-08-02 19:05:09 +02:00
Jc2k
f043203b56 Add optional context parameter to async_start_reauth (#76077) 2022-08-02 18:20:37 +02:00
Zack Barett
a1d495a25b Bump Frontend to 20220802.0 (#76087) 2022-08-02 18:08:33 +02:00
David F. Mulcahey
67cef0dc94 Ensure ZHA devices load before validating device triggers (#76084) 2022-08-02 17:29:32 +02:00
epenet
be4f9598f9 Improve type hints in blinksticklight lights (#75999) 2022-08-02 16:28:41 +02:00
mkmer
fbe22d4fe7 Bump AIOAladdinConnect to 0.1.39 (#76082) 2022-08-02 16:10:20 +02:00
Martin Hjelmare
cfe6c8939c Add Open Exchange Rates coordinator (#76017)
* Add Open Exchange Rates coordinator

* Move debug log

* Fix update interval calculation
2022-08-02 14:49:46 +02:00
Erik Montnemery
404d530b5f Handle missing attributes in meater objects (#76072) 2022-08-02 14:13:07 +02:00
Jc2k
d69d7a8761 Fix typo in new xiaomi_ble string (#76076) 2022-08-02 14:11:06 +02:00
Franck Nijhof
48a34756f0 Remove Somfy from Overkiz title in manifest (#76073) 2022-08-02 13:03:34 +02:00
Maciej Bieniek
320b264d03 Use SourceType.ROUTER in Tractive integration (#76071)
Use SourceType.ROUTER
2022-08-02 12:40:14 +02:00
J. Nick Koston
fe6d6b81e3 Add support for switchbot motion sensors (#76059) 2022-08-02 12:38:31 +02:00
epenet
786780bc8c Use attributes in limitlessled light (#76066) 2022-08-02 12:35:24 +02:00
Franck Nijhof
033e3b7e85 Small title adjustment to the Home Assistant Alerts integration (#76070) 2022-08-02 11:42:57 +02:00
Franck Nijhof
da00f5ba1e Bumped version to 2022.8.0b5 2022-08-02 09:38:21 +02:00
J. Nick Koston
30cd087f6f Fix govee H5074 data (#76057) 2022-08-02 09:38:03 +02:00
J. Nick Koston
66afd1e696 Bump bluetooth-adapters to 0.1.3 (#76052) 2022-08-02 09:37:59 +02:00
J. Nick Koston
23488f392b Lower bluetooth startup timeout to 9s to avoid warning (#76050) 2022-08-02 09:37:56 +02:00
mkmer
7140a9d025 Bump AIOAladdinConnect to 0.1.37 (#76046) 2022-08-02 09:37:52 +02:00
Erik Montnemery
4f671bccbc Support multiple trigger instances for a single webhook (#76037) 2022-08-02 09:37:48 +02:00
David F. Mulcahey
6b588d41ff Enhance logging for ZHA device trigger validation (#76036)
* Enhance logging for ZHA device trigger validation

* use IntegrationError
2022-08-02 09:37:45 +02:00
krazos
b962a6e767 Fix capitalization of Sonos "Status light" entity name (#76035)
Tweak capitalization of "Status light" entity name

Tweak capitalization of "Status light" entity name for consistency with blog post guidance, which states that entity names should start with a capital letter, with the rest of the words lower case
2022-08-02 09:37:41 +02:00
Jc2k
a332eb154c Add reauth flow to xiaomi_ble, fixes problem adding LYWSD03MMC (#76028) 2022-08-02 09:37:38 +02:00
Erik Montnemery
75747ce319 Support MWh for gas consumption sensors (#76016) 2022-08-02 09:37:35 +02:00
Allen Porter
c6038380d6 Add repair issues for nest app auth removal and yaml deprecation (#75974)
* Add repair issues for nest app auth removal and yaml deprecation

* Apply PR feedback

* Re-apply suggestion that i force pushed over

* Update criticality level
2022-08-02 09:37:32 +02:00
Joakim Plate
990975e908 Convert fjäråskupan to built in bluetooth (#75380)
* Add bluetooth discovery

* Use home assistant standard api

* Fixup manufacture data

* Adjust config flow to use standard features

* Fixup tests

* Mock bluetooth

* Simplify device check

* Fix missing typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-02 09:37:29 +02:00
rhadamantys
2a58bf06c1 Fix invalid enocean unique_id (#74508)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-02 09:37:25 +02:00
Sven Serlier
dbac8b804f Update featured integrations image (#76011) 2022-08-02 09:09:24 +02:00
mkmer
bec4b168d6 Bump AIOAladdinConnect to 0.1.37 (#76046) 2022-08-02 08:56:50 +02:00
Erik Montnemery
32b1259786 Support multiple trigger instances for a single webhook (#76037) 2022-08-02 08:54:28 +02:00
J. Nick Koston
56050e9fbe Lower bluetooth startup timeout to 9s to avoid warning (#76050) 2022-08-02 08:46:22 +02:00
J. Nick Koston
33651d14df Bump bluetooth-adapters to 0.1.3 (#76052) 2022-08-02 08:36:27 +02:00
J. Nick Koston
41d7eba1ad Fix govee H5074 data (#76057) 2022-08-02 08:34:48 +02:00
Eloston
44b6213217 Add support for SwitchBot Plug Mini (#76056) 2022-08-01 16:29:44 -10:00
Allen Porter
26e2ef8175 Add repair issues for nest app auth removal and yaml deprecation (#75974)
* Add repair issues for nest app auth removal and yaml deprecation

* Apply PR feedback

* Re-apply suggestion that i force pushed over

* Update criticality level
2022-08-02 03:20:20 +02:00
GitHub Action
81e3ef03f7 [ci skip] Translation update 2022-08-02 00:27:42 +00:00
epenet
3eafe13085 Improve UI in pylint plugin (#74157)
* Adjust FlowResult result type

* Adjust tests

* Adjust return_type

* Use StrEnum for base device_class

* Add test for device_class

* Add and use SentinelValues.DEVICE_CLASS

* Remove duplicate device_class

* Cleanup return-type

* Drop inheritance check from device_class

* Add caching for class methods

* Improve tests

* Adjust duplicate checks

* Adjust tests

* Fix rebase
2022-08-02 00:03:52 +02:00
Jc2k
652a8e9e8a Add reauth flow to xiaomi_ble, fixes problem adding LYWSD03MMC (#76028) 2022-08-01 22:04:16 +01:00
epenet
27ed3d324f Replace object with enum for pylint sentinel (#76030)
* Replace object with enum for pylint sentinel

* Use standard enum
2022-08-01 19:34:06 +02:00
epenet
deff0ad61e Implement generic in Deconz base device (#76015)
* Make DevonzBase a generic

* Adjust alarm_control_panel

* Adjust binary_sensor

* Adjust climate

* More platforms

* Adjust light

* Ignore type-var

* Add space

* Implement recommendation

* Use type: ignore[union-attr]

* Revert "Use type: ignore[union-attr]"

This reverts commit 983443062a.

* Adjust assert

* Adjust lock

* Rename type variables

* type: ignore[union-attr]

* Formatting

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2022-08-01 19:18:29 +02:00
krazos
567f181a21 Fix capitalization of Sonos "Status light" entity name (#76035)
Tweak capitalization of "Status light" entity name

Tweak capitalization of "Status light" entity name for consistency with blog post guidance, which states that entity names should start with a capital letter, with the rest of the words lower case
2022-08-01 18:45:18 +02:00
Franck Nijhof
fc399f21e9 Guard imports for type hinting in Bluetooth (#75984) 2022-08-01 17:54:06 +02:00
David F. Mulcahey
bd3de4452b Enhance logging for ZHA device trigger validation (#76036)
* Enhance logging for ZHA device trigger validation

* use IntegrationError
2022-08-01 11:43:07 -04:00
rhadamantys
7141c36f8b Fix invalid enocean unique_id (#74508)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-01 17:42:47 +02:00
Aaron Godfrey
91384e07d0 Add unique id for todoist calendar entity (#75674)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-01 17:15:51 +02:00
Ethan Madden
1eb0983fba Enable air quality sensor for Core300s (#75695) 2022-08-01 17:06:28 +02:00
Joakim Plate
2dd62b14b6 Convert fjäråskupan to built in bluetooth (#75380)
* Add bluetooth discovery

* Use home assistant standard api

* Fixup manufacture data

* Adjust config flow to use standard features

* Fixup tests

* Mock bluetooth

* Simplify device check

* Fix missing typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-08-01 16:56:08 +02:00
mkmer
f2da46d99b Remove aiohttp close from aladdin connect config_flow (#76029)
Remove aiohttp close from config_flow - throwing error found in #75933
2022-08-01 16:07:17 +02:00
Erik Montnemery
687ac91947 Support MWh for gas consumption sensors (#76016) 2022-08-01 14:22:24 +02:00
epenet
1a40d400dc Add function/property name to pylint message (#75913) 2022-08-01 14:09:47 +02:00
Martin Hjelmare
826de707e4 Add strict typing to openexchangerates (#76004) 2022-08-01 11:35:31 +02:00
Marc Mueller
81d1786a16 Remove unused logging args parameter (#75619) 2022-08-01 10:13:05 +02:00
Simone Chemelli
0738f08215 Add missing sensors for Shelly Plus H&T (#76001)
* Add missing sensors for Shelly Plus H&T

* Cleanup

* Fix

* Add voltage to battery sensor

* Apply review comments
2022-08-01 09:52:51 +02:00
GitHub Action
5bb5920697 [ci skip] Translation update 2022-08-01 00:28:32 +00:00
epenet
89729b2c49 Improve Registry typing in Alexa handlers (#75921) 2022-08-01 00:39:38 +02:00
Jc2k
0167875789 Add physical controls lock to homekit_controller (#75993) 2022-07-31 13:30:29 -07:00
Paulus Schoutsen
5ab549653b Bumped version to 2022.8.0b4 2022-07-31 13:29:52 -07:00
Franck Nijhof
ffd2813150 Fix Home Connect services not being set up (#75997) 2022-07-31 13:29:45 -07:00
J. Nick Koston
ebf91fe46b Bump pySwitchbot to 0.16.0 to fix compat with bleak 0.15 (#75991) 2022-07-31 13:29:45 -07:00
mkmer
e330147751 Bump AIOAladdinConnect to 0.1.33 (#75986)
Bump aladdin_connect 0.1.33
2022-07-31 13:29:44 -07:00
mvn23
26a3621bb3 Bump pyotgw to 2.0.2 (#75980) 2022-07-31 13:29:43 -07:00
Franck Nijhof
58265664d1 Improve authentication handling for camera view (#75979) 2022-07-31 13:29:42 -07:00
mvn23
d205fb5064 Handle failed connection attempts in opentherm_gw (#75961) 2022-07-31 13:29:42 -07:00
J. Nick Koston
38ae2f4e9e Bump govee-ble to fix H5179 sensors (#75957)
Changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.12.4...v0.12.5
2022-07-31 13:29:41 -07:00
MasonCrawford
d84bc20a58 Small fixes for LG soundbar (#75938) 2022-07-31 13:29:40 -07:00
Heine Furubotten
a3276e00b9 Bump enturclient to 0.2.4 (#75928) 2022-07-31 13:29:40 -07:00
J. Nick Koston
bdb627539e Fix switchbot failing to setup when last_run_success is not saved (#75887) 2022-07-31 13:29:39 -07:00
Aaron Bach
240890e496 Appropriately mark Guardian entities as unavailable during reboot (#75234) 2022-07-31 13:29:38 -07:00
mkmer
003ee853a3 Bump AIOAladdinConnect to 0.1.33 (#75986)
Bump aladdin_connect 0.1.33
2022-07-31 13:14:30 -07:00
Franck Nijhof
4af95ecf78 Fix Home Connect services not being set up (#75997) 2022-07-31 13:14:09 -07:00
J. Nick Koston
a95851c9c2 Bump pySwitchbot to 0.16.0 to fix compat with bleak 0.15 (#75991) 2022-07-31 13:13:05 -07:00
Aaron Bach
a3bffdf523 Appropriately mark Guardian entities as unavailable during reboot (#75234) 2022-07-31 13:10:29 -07:00
epenet
98293f2179 Use climate enums in alexa (#75911) 2022-07-31 21:29:54 +02:00
Paul Annekov
97b30bec8b Added a configuration_url for the ukraine_alarm service (#75988) 2022-07-31 21:25:16 +02:00
mvn23
84d91d2b3a Bump pyotgw to 2.0.2 (#75980) 2022-07-31 21:14:03 +02:00
epenet
20fec104e2 Improve type hints in light [a-i] (#75936)
* Improve type hints in ads light

* Improve type hints in avea light

* Improve type hints in avion light

* Improve type hints in broadlink light

* More type hints

* One more
2022-07-31 20:46:13 +02:00
Franck Nijhof
c795597511 Improve authentication handling for camera view (#75979) 2022-07-31 18:00:42 +02:00
Marc Mueller
1a8ccfeb56 Use device_tracker SourceType enum [a-g] (#75963) 2022-07-31 15:51:04 +02:00
Marc Mueller
f068fc8eb7 Use device_tracker SourceType enum [h-m] (#75964) 2022-07-31 15:49:57 +02:00
Marc Mueller
450b7cd644 Use device_tracker SourceType enum [n-r] (#75965) 2022-07-31 15:48:43 +02:00
Marc Mueller
c9ddb10024 Use device_tracker SourceType enum [s-z] (#75966) 2022-07-31 14:01:18 +02:00
epenet
7b1463e03d Improve type hints in light [i-r] (#75943) 2022-07-31 13:53:22 +02:00
epenet
11a19c2612 Improve type hints in light [s-z] (#75946) 2022-07-31 13:50:24 +02:00
epenet
90458ee200 Use attributes in zerproc light (#75951) 2022-07-31 13:46:25 +02:00
Allen Porter
9e76e8cef8 Bump grpc requirements to 1.48.0 (#75603) 2022-07-31 13:37:29 +02:00
MasonCrawford
ee273daf8d Small fixes for LG soundbar (#75938) 2022-07-31 13:32:40 +02:00
Heine Furubotten
1e115341af Bump enturclient to 0.2.4 (#75928) 2022-07-31 13:28:09 +02:00
Aidan Timson
1204b4f700 Add typings to Certificate Expiry integration (#75945) 2022-07-31 13:26:16 +02:00
mvn23
abb7495ced Handle failed connection attempts in opentherm_gw (#75961) 2022-07-31 12:21:25 +02:00
GitHub Action
377f56ff5f [ci skip] Translation update 2022-07-31 00:25:44 +00:00
J. Nick Koston
b9b916cdcd Bump govee-ble to fix H5179 sensors (#75957)
Changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.12.4...v0.12.5
2022-07-30 15:15:06 +02:00
ildar170975
faf25b2235 Add telegram disable_web_page_preview (#75898)
* Add telegram disable_web_page_preview

Adds ability to specify disable_web_page_preview to telegram.notify:
```
- service: notify.telegram
  data:
    message: >-
      <a href="https://www.home-assistant.io/">HA site</a>
    data:
      parse_mode: html
      disable_web_page_preview: true
```

* Update homeassistant/components/telegram/notify.py

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

* Update notify.py

* Update notify.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-30 14:06:55 +02:00
Alex Henry
ace359b1bd Add multi-zone support to Anthem AV receiver and distribution solution (#74779)
* Add multi-zone support to Anthem AV receiver and distribution amplifier

* Fix typo in comment

* Convert properties to attribute and add test

* Migrate entity name

* Fix after rebase add strict typing and bump version

* fix typing

* Simplify test

* Small improvement

* remove dispatcher send and use callback
2022-07-30 14:04:24 +02:00
epenet
8181da7090 Improve type hints in axis (#75910) 2022-07-30 11:04:31 +02:00
J. Nick Koston
bb3e094552 Fix switchbot failing to setup when last_run_success is not saved (#75887) 2022-07-29 21:33:29 -07:00
Paulus Schoutsen
e2a9ab1831 Bumped version to 2022.8.0b3 2022-07-29 17:55:32 -07:00
Bob van Mierlo
8f8bccd982 Increase the discovery timeout (#75948) 2022-07-29 17:55:18 -07:00
J. Nick Koston
26c475d3dc Update to bleak 0.15 (#75941) 2022-07-29 17:55:17 -07:00
Paulus Schoutsen
0f0b51bee7 Move some bleak imports to be behind TYPE_CHECKING (#75894) 2022-07-29 17:55:17 -07:00
Matthias Alphart
241ffe07b9 Update xknx to 0.22.1 (#75932) 2022-07-29 17:54:20 -07:00
Jc2k
c3c5442467 Fix xiaomi_ble discovery for devices that don't put the fe95 uuid in service_uuids (#75923) 2022-07-29 17:54:19 -07:00
Franck Nijhof
d7827d9902 Fix SimplePush repairs issue (#75922) 2022-07-29 17:54:18 -07:00
Jan Stienstra
176d44190e Fix incorrect check for media source (#75880)
* Fix incorrect check for media source

* Update homeassistant/components/jellyfin/media_source.py

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-29 17:54:17 -07:00
J. Nick Koston
80a9659524 Update to bleak 0.15 (#75941) 2022-07-29 17:53:33 -07:00
GitHub Action
c4ad6d46ae [ci skip] Translation update 2022-07-30 00:22:48 +00:00
Bob van Mierlo
69a0943205 Increase the discovery timeout (#75948) 2022-07-29 21:46:30 +01:00
Jan Stienstra
879b415415 Fix incorrect check for media source (#75880)
* Fix incorrect check for media source

* Update homeassistant/components/jellyfin/media_source.py

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

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-29 10:11:53 -07:00
Franck Nijhof
2798a77b5f Fix SimplePush repairs issue (#75922) 2022-07-29 09:56:19 -07:00
Matthias Alphart
9bbbee3d88 Update xknx to 0.22.1 (#75932) 2022-07-29 09:54:49 -07:00
Jc2k
ca6676a708 Fix xiaomi_ble discovery for devices that don't put the fe95 uuid in service_uuids (#75923) 2022-07-29 14:28:39 +02:00
Franck Nijhof
48b97a1f2d Bumped version to 2022.8.0b2 2022-07-29 13:41:22 +02:00
G Johansson
f4defb660b Fix broken Yale lock (#75918)
Yale fix lock
2022-07-29 13:40:50 +02:00
Paulus Schoutsen
dfd503cc1a Fix Roon media player being set up before hass.data set up (#75904) 2022-07-29 13:40:46 +02:00
J. Nick Koston
97c6c949e7 Fix incorrect manufacturer_id for govee 5182 model (#75899) 2022-07-29 13:40:43 +02:00
Franck Nijhof
c469bdea75 Fix AdGuard Home rules count sensor (#75879) 2022-07-29 13:40:39 +02:00
Jc2k
2b1fbbfae3 Fix Xiaomi BLE not detecting encryption for some devices (#75851) 2022-07-29 13:40:05 +02:00
J. Nick Koston
e4e36b51b6 Add startup timeout to bluetooth (#75848)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-29 13:36:42 +02:00
Marc Mueller
2b1e1365fd Add StrEnum for device_tracker SourceType (#75892)
Add StrEnum for device_tracker SourceType
2022-07-29 13:09:03 +02:00
Nephiel
ab5dfb3c42 Use climate enums in google_assistant (#75888) 2022-07-29 12:08:32 +02:00
G Johansson
08b169a7ad Fix broken Yale lock (#75918)
Yale fix lock
2022-07-29 11:57:19 +02:00
Paulus Schoutsen
aec885a467 Fix Roon media player being set up before hass.data set up (#75904) 2022-07-29 09:53:08 +02:00
Paulus Schoutsen
4b2beda473 Move some bleak imports to be behind TYPE_CHECKING (#75894) 2022-07-28 22:26:37 -07:00
J. Nick Koston
9f16c14681 Fix incorrect manufacturer_id for govee 5182 model (#75899) 2022-07-28 17:07:32 -10:00
Alex Henry
bbd7041a73 Refactor and improve anthemav (#75852) 2022-07-29 03:20:05 +02:00
GitHub Action
a1d96175a8 [ci skip] Translation update 2022-07-29 00:25:31 +00:00
Marc Mueller
003fe9220e Add protocol types for device_tracker async_see and see (#75891) 2022-07-29 00:27:47 +02:00
J. Nick Koston
702cef3fc7 Add startup timeout to bluetooth (#75848)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-28 11:14:13 -10:00
Franck Nijhof
6ba0b9cff2 Fix AdGuard Home rules count sensor (#75879) 2022-07-28 13:36:11 -07:00
Jc2k
10356b9379 Fix Xiaomi BLE not detecting encryption for some devices (#75851) 2022-07-28 19:10:37 +01:00
Franck Nijhof
53870dd0bc Bumped version to 2022.8.0b1 2022-07-28 19:09:46 +02:00
Zack Barett
38909855bf Update frontend to 20220728.0 (#75872) 2022-07-28 19:08:01 +02:00
Franck Nijhof
f98d95c76f Fix camera token to trigger authentication IP ban (#75870) 2022-07-28 19:07:59 +02:00
Franck Nijhof
2bf10799ed Fix incorrect sensor key in DSMR (#75865) 2022-07-28 19:07:56 +02:00
Franck Nijhof
4be623a492 Remove state class from daily net sensors in DSMR Reader (#75864) 2022-07-28 19:07:54 +02:00
Franck Nijhof
a000687eb5 Fix HTTP 404 being logged as a stack trace (#75861) 2022-07-28 19:07:51 +02:00
Franck Nijhof
c10ed6edba Fix unit of measurement usage in COSignal (#75856) 2022-07-28 19:07:48 +02:00
Rami Mosleh
2dc318be54 Add issue to repairs for deprecated Simplepush YAML configuration (#75850) 2022-07-28 19:07:46 +02:00
Franck Nijhof
b4d2c25f8e Raise YAML removal issue for Xbox (#75843) 2022-07-28 19:07:43 +02:00
Franck Nijhof
e7ff97bac0 Fix temperature unit in evohome (#75842) 2022-07-28 19:07:41 +02:00
Rolf Berkenbosch
add9ff5736 Fix fetching MeteoAlarm XML data (#75840) 2022-07-28 19:07:39 +02:00
Paulus Schoutsen
937fd490f2 Add issue_domain to repairs (#75839) 2022-07-28 19:07:36 +02:00
Paulus Schoutsen
96587c1227 Remove learn more URL from Home Assistant alerts (#75838) 2022-07-28 19:07:34 +02:00
Brandon West
15e6fcca41 Bump russound_rio to 0.1.8 (#75837) 2022-07-28 19:07:31 +02:00
Zack Barett
7811518d7c Add Leviton as a supported brand of ZwaveJS (#75729)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-28 19:07:29 +02:00
Tom Harris
70731c0bc7 Add Insteon lock and load controller devices (#75632) 2022-07-28 19:07:26 +02:00
Robert Svensson
3b8650d053 Make Axis utilise forward_entry_setups (#75178) 2022-07-28 19:07:23 +02:00
Brandon West
4ed0463438 Bump russound_rio to 0.1.8 (#75837) 2022-07-28 18:27:48 +02:00
Franck Nijhof
166e58eaa4 Fix camera token to trigger authentication IP ban (#75870) 2022-07-28 18:20:39 +02:00
Zack Barett
a020482c23 Update frontend to 20220728.0 (#75872) 2022-07-28 18:20:10 +02:00
Franck Nijhof
16e75f2a13 Fix incorrect sensor key in DSMR (#75865) 2022-07-28 18:15:27 +02:00
Franck Nijhof
1012064bb7 Remove state class from daily net sensors in DSMR Reader (#75864) 2022-07-28 18:13:16 +02:00
puddly
8e2f0497ce ZHA network backup and restore API (#75791)
* Implement WS API endpoints for zigpy backups

* Implement backup restoration

* Display error messages caused by invalid backup JSON

* Indicate to the frontend when a backup is incomplete

* Perform a coordinator backup before HA performs a backup

* Fix `backup.async_post_backup` docstring

* Rename `data` to `backup` in restore command

* Add unit tests for new websocket APIs

* Unit test backup platform

* Move code to overwrite EZSP EUI64 into ZHA

* Include the radio type in the network settings API response
2022-07-28 11:24:31 -04:00
Franck Nijhof
91180923ae Fix HTTP 404 being logged as a stack trace (#75861) 2022-07-28 16:43:32 +02:00
Chaim Turkel
7251445ffb Add shabat sensors to jewish_calendar (#57866)
* add shabat sensors

* add shabat sensors

* add shabat sensors

* add shabat sensors

* add shabat sensors

* Remove redundunt classes and combine sensors

* Update homeassistant/components/jewish_calendar/binary_sensor.py

Co-authored-by: Yuval Aboulafia <yuval.abou@gmail.com>

* Update homeassistant/components/jewish_calendar/binary_sensor.py

Co-authored-by: Yuval Aboulafia <yuval.abou@gmail.com>

* updated requirements

* call get_zmanim once

* add type hint to entity description

* fix errors resulted from type hints introduction

* fix mypy error

* use attr for state

* Update homeassistant/components/jewish_calendar/binary_sensor.py

Co-authored-by: Teemu R. <tpr@iki.fi>

* Fix typing

Co-authored-by: Yuval Aboulafia <yuval.abou@gmail.com>
Co-authored-by: Teemu R. <tpr@iki.fi>
2022-07-28 16:19:20 +02:00
GitHub Action
15f87ca0a1 [ci skip] Translation update 2022-07-28 07:11:22 -07:00
Franck Nijhof
4f56028491 Fix unit of measurement usage in COSignal (#75856) 2022-07-28 12:39:10 +02:00
borky
25d943d272 Add xiaomi air purifier 4 and 4 pro support (#75745)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-28 12:38:04 +02:00
Robert Svensson
c16db4c3e1 Make Axis utilise forward_entry_setups (#75178) 2022-07-28 11:41:03 +02:00
Rami Mosleh
4f25b8d58e Add issue to repairs for deprecated Simplepush YAML configuration (#75850) 2022-07-28 11:05:56 +02:00
GitHub Action
0317cbb388 [ci skip] Translation update 2022-07-28 00:25:05 +00:00
Rolf Berkenbosch
997f03d0ea Fix fetching MeteoAlarm XML data (#75840) 2022-07-27 23:50:41 +02:00
Franck Nijhof
f07d64e7db Raise YAML removal issue for Xbox (#75843) 2022-07-27 23:49:22 +02:00
Raman Gupta
4aa6300b8b Update zwave_js WS API names (#75797) 2022-07-27 23:42:17 +02:00
Raman Gupta
44f1d92890 Add new zwave_js notification parameters (#75796) 2022-07-27 23:40:44 +02:00
Zack Barett
b0c17d67df Add Leviton as a supported brand of ZwaveJS (#75729)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-27 23:39:39 +02:00
Franck Nijhof
ef9142f379 Fix temperature unit in evohome (#75842) 2022-07-27 13:58:58 -07:00
Paulus Schoutsen
b0f877eca2 Add issue_domain to repairs (#75839) 2022-07-27 22:53:51 +02:00
Tom Harris
4ffd6fc4be Add Insteon lock and load controller devices (#75632) 2022-07-27 10:06:33 -10:00
Paulus Schoutsen
04d00a9acd Remove learn more URL from Home Assistant alerts (#75838) 2022-07-27 21:59:43 +02:00
borky
2e4f13996f Set Level for MIOT purifiers as in python-miio (#75814)
* Set Level for MIOT purifiers as in python-miio

* Refactoring after review suggestion
2022-07-27 18:33:07 +02:00
Raman Gupta
3a8748bc93 Bump zwave-js-server-python to 0.40.0 (#75795) 2022-07-27 18:01:00 +02:00
IceBotYT
d99334eb07 Add LaCrosse View integration (#71896)
* Add new LaCrosse View integration

* Add new LaCrosse View integration

* Add retry logic

* Actually use the start time for the retry logic

* Get new token after 1 hour

* Replace retry logic with more reliable logic

* Improve test coverage

* Add device info and unique id to config entry

* Fix manufacturer name

* Improve token refresh and check sensor permission

* Improve test cover

* Add LaCrosse View to .strict-typing

* Remove empty fields in manifest.json

* Fix mypy

* Add retry logic for get_data

* Add missing break statement in retry decorator

* Fix requirements

* Finish suggestions by Allen Porter

* Suggestions by Allen Porter

* Fix typing issues with calls to get_locations and get_sensors
2022-07-27 07:37:22 -07:00
Franck Nijhof
7659555ce5 Bump version to 2022.9.0dev0 (#75818) 2022-07-27 15:55:52 +02:00
Franck Nijhof
8ffdbfc462 Bumped version to 2022.8.0b0 2022-07-27 15:10:29 +02:00
Franck Nijhof
9dc0544835 Raise YAML removal issue for Bose SoundTouch (#75817) 2022-07-27 14:41:00 +02:00
Tobias Sauerwein
49854b809c Netatmo entity renaming and clean up (#75337) 2022-07-27 14:17:38 +02:00
Franck Nijhof
314778cb50 Raise YAML removal issue for Anthem A/V Receivers (#75816) 2022-07-27 14:17:22 +02:00
David F. Mulcahey
6254142b8a Fix ZHA on with timed off cluster command (#75815) 2022-07-27 14:03:51 +02:00
Bram Kragten
699fff08ed Update frontend to 20220727.0 (#75813) 2022-07-27 13:21:07 +02:00
Franck Nijhof
07a433a516 Deprecate the OpenALPR Local integration (#75810)
* Deprecate the OpenALPR Local integration

* Remove tests
2022-07-27 12:52:13 +02:00
Jc2k
f8b115dd9d Add xiaomi_ble voltage, consumable and formaldehyde sensors (#75807)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-27 11:28:58 +01:00
Franck Nijhof
aaf5837759 Deprecate the Ambee integration (#75805) 2022-07-27 11:29:52 +02:00
Jevgeni Kiski
a4d4170279 Add new vallox temperature and fan sensors (#75783)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-27 10:58:43 +02:00
Erik Montnemery
51c3836ec2 Create Repairs based on Alerts (#75397)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-27 10:13:16 +02:00
jjlawren
bbdce93291 Fix error on shutdown when no Sonos devices available (#75798) 2022-07-27 10:01:44 +02:00
rikroe
5687150786 Add state to CheckControlMessages in bmw_connected_drive (#75802)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-07-27 10:01:09 +02:00
uvjustin
5e6217f20c Use executor to finish stream recording (#75776) 2022-07-27 14:13:38 +08:00
Jean-François Roy
89493f2d7f Add occupancy sensor to the BAF integration (#75793)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-26 17:36:41 -10:00
GitHub Action
33c635809c [ci skip] Translation update 2022-07-27 00:28:57 +00:00
TheJulianJES
129b42cd23 Fix ZHA light brightness jumping around during transitions (#74849)
* Moved color commands to a new ``async_handle_color_commands`` method

* Fixed tests

* Fix brightness jumping around during transitions

* Add config option to disable "Enhanced brightness slider during light transition"
2022-07-26 20:03:17 -04:00
starkillerOG
6868865e3e Add 1.5 second sleep to motion blinds update (#75494) 2022-07-27 00:01:49 +02:00
João Henriques
fb52f5098f Add en-GB locale for AlexaMotionSensor and AlexaContactSensor (#75705)
Added en-GB as supported locale for AlexaMotionSensor and AlexaContactSensor
2022-07-26 17:36:46 -04:00
uvjustin
c5912f0fae Cleanup unused camera constants (#75772)
Cleanup unused camera constants after #75452
2022-07-26 23:04:08 +02:00
Franck Nijhof
0ff34f232c Add events to repairs issue registry changes (#75784) 2022-07-26 22:42:19 +02:00
David F. Mulcahey
e2dd2c9424 Add guards to ZHA light groups when using hs color mode (#75599)
* fix polling currentSaturation

* Guard light groups against enhanced current hue

* Use XY if all group members do not support HS

* add config option to always prefer XY color mode

* use correct enum

* remove periods
2022-07-26 16:42:08 -04:00
puddly
2b1a5e5549 Bump ZHA dependencies (#75785) 2022-07-26 16:19:51 -04:00
Bouwe Westerdijk
aaaca0b2bd Add tests for the Plugwise Select platform (#75774) 2022-07-26 22:02:50 +02:00
Teemu R
184e254a43 Bump python-eq3bt requirement (#75145) 2022-07-26 21:50:41 +02:00
Franck Nijhof
bb4ee1ba32 Adjust wording in raised mitemp_bt issue (#75779) 2022-07-26 21:44:12 +02:00
J. Nick Koston
1e85ddabfd Fix startup race in BLE integrations (#75780) 2022-07-26 09:29:23 -10:00
Franck Nijhof
157f7292d7 Raise YAML removal issue for Lyric (#75756) 2022-07-26 20:02:50 +02:00
Franck Nijhof
cb17a01e48 Raise YAML removal issue for nVent RAYCHEM SENZ (#75757) 2022-07-26 20:01:15 +02:00
J. Nick Koston
fad7a6cb08 Bump sensorpush-ble to 1.5.1 (#75771) 2022-07-26 19:09:46 +02:00
Franck Nijhof
c63a838b47 Raise repair issue for Xiaomi Mijia BLE Temperature and Humidity Sensor (#75754) 2022-07-26 17:42:22 +02:00
Franck Nijhof
3ee0ca8550 Raise repair issue for Mi Flora (#75752) 2022-07-26 17:35:47 +02:00
Franck Nijhof
d39afaa264 Merge branch 'master' into dev 2022-07-26 17:25:30 +02:00
Franck Nijhof
35f4220f4e Merge pull request #75758 from home-assistant/rc 2022-07-26 17:22:42 +02:00
J. Nick Koston
e6802f4f7e Add support for switchbot contact/door sensor (#75730) 2022-07-26 05:14:02 -10:00
Jevgeni Kiski
7d895c79e8 Bump vallox-websocket-api to 2.12.0 (#75734) 2022-07-26 16:58:22 +02:00
Marc Mueller
516324ff54 Fix small type issue [fritz] (#75761) 2022-07-26 16:30:12 +02:00
Marc Mueller
af7df260a0 Fix small type issues [core] (#75760) 2022-07-26 16:28:22 +02:00
uvjustin
9ad273a59f Fix entity typo (#75767) 2022-07-26 16:27:16 +02:00
J. Nick Koston
5cb4bbd906 Fix min and max mireds with HKC (#75744) 2022-07-26 04:17:28 -10:00
Marc Mueller
0006629ca2 Fix small type issue [synology_dsm] (#75762) 2022-07-26 12:26:31 +02:00
Franck Nijhof
fc43ee772c Bumped version to 2022.7.7 2022-07-26 10:56:44 +02:00
Aaron Bach
d756936a4e Fix AssertionError in RainMachine (#75668) 2022-07-26 10:56:02 +02:00
mvn23
674a59f138 Update pyotgw to 2.0.1 (#75663) 2022-07-26 10:55:57 +02:00
Aaron Bach
9173aef1ef Revert SimpliSafe auth flow to the quasi-manual OAuth method from 2021.11.0 (#75641)
* Revert "Migrate SimpliSafe to new web-based authentication (#57212)"

This reverts commit bf7c99c1f8.

* Tests 100%

* Version bump

* Add manifest version for custom component testing

* Remove manifest version

* Code review

* Fix tests
2022-07-26 10:55:15 +02:00
uvjustin
0407fc4581 Round up for stream record lookback (#75580) 2022-07-26 10:50:36 +02:00
On Freund
ec4835ef04 Change monoprice config flow to sync (#75306) 2022-07-26 10:50:33 +02:00
Pawel
a3950937e0 Fix Epson wrong volume value (#75264) 2022-07-26 10:50:30 +02:00
Tom Schneider
58b7f9a032 Fix hvv departures authentication (#75146) 2022-07-26 10:50:25 +02:00
Tom Schneider
eaee923e4c Fix hvv departures authentication (#75146) 2022-07-26 10:47:03 +02:00
Matthias Alphart
a98f658854 Update xknx to 0.22.0 (#75749) 2022-07-26 10:32:26 +02:00
Allen Porter
47713d9686 Raise issue for Google Calendar YAML deprecations (#75743) 2022-07-26 09:52:15 +02:00
Franck Nijhof
5e45b0baf9 Automatically set up Xiaomi BLE during onboarding (#75748) 2022-07-26 08:03:31 +01:00
Pawel
b57e0d13b4 Fix Epson wrong volume value (#75264) 2022-07-26 08:50:21 +02:00
On Freund
ce4e53938c Change monoprice config flow to sync (#75306) 2022-07-25 21:24:39 -07:00
qiz-li
1f73a553c8 Bump Switchmate dependency to 0.5.1 (#75163)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-25 16:50:04 -10:00
Marc Mueller
2b617e3885 Improve mqtt MessageCallback typing (#75614)
* Improve mqtt MessageCallback typing

* Use MQTTMessage
2022-07-26 03:04:19 +02:00
GitHub Action
9c725bc106 [ci skip] Translation update 2022-07-26 00:26:43 +00:00
starkillerOG
7fd47717cf Bump goodwe to 0.2.18 (#75615) 2022-07-25 14:10:05 -10:00
Franck Nijhof
4ea532b3ea Add issue to repairs for removed Steam YAML configuration (#75737) 2022-07-25 19:11:07 -04:00
Franck Nijhof
c7ddc595ed Add issue to repairs for removed Spotify YAML configuration (#75736)
* Add issue to repairs for removed Spotify YAML configuration

* Tweak message
2022-07-25 19:09:59 -04:00
Joakim Sørensen
e87c2b9e25 Bump pytraccar to 1.0.0 (#75671) 2022-07-26 00:45:01 +02:00
Brett Adams
ea354f3d5f Remove deprecated MyZone service in Advantage Air (#75160) 2022-07-25 23:56:36 +02:00
Zack Barett
a287abe763 Update name of Z-WaveJS to Z-Wave (#75136) 2022-07-25 22:53:22 +02:00
Marc Mueller
274584f2a4 Add strict typing for litterrobot (#75540) 2022-07-25 22:52:13 +02:00
uvjustin
3aa75f3fcc Don't use executor for lutron subscription (#75726) 2022-07-25 22:32:00 +02:00
J. Nick Koston
2df20e7a42 Make lifx async_migrate_legacy_entries a callback (#75719) 2022-07-25 20:21:43 +02:00
hahn-th
f4e7436421 Add device HmIP-STE2-PCB to homematicip_cloud (#75369) 2022-07-25 18:15:02 +02:00
mkmer
e3fb4ceb09 Bump AIOAladdinConnect to 0.1.31 (#75721) 2022-07-25 17:31:05 +02:00
J. Nick Koston
a813cf987b Add bluetooth options flow to pick the adapter (#75701) 2022-07-25 16:52:35 +02:00
Franck Nijhof
3df7892454 Merge branch 'master' into dev 2022-07-25 15:51:24 +02:00
TheJulianJES
b8ae883f18 Set min transition time for Sengled lights in ZHA groups (#75644)
* Set min transition time for Sengled lights in ZHA groups

* Change test to expect correct min transition time for group with Sengled light

* Fix turn_off with transition 0 for Sengled lights
2022-07-25 08:13:01 -04:00
Franck Nijhof
de46243ce5 Raise YAML deprecation issue for Radio Therm (#75513) 2022-07-25 12:31:53 +02:00
Brett Adams
fc9a0ba46b Refactor Advantage Air classes for expansion (#75422) 2022-07-25 12:20:15 +02:00
Pedro Lamas
f31f2cca07 Use DataUpdateCoordinator in london_underground (#75304)
* Use DataUpdateCoordinator in london_underground

* Update homeassistant/components/london_underground/sensor.py

Co-authored-by: avee87 <6134677+avee87@users.noreply.github.com>

* Follow up on PR comments

* Removes unused callback import

* Update homeassistant/components/london_underground/sensor.py

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

* Update homeassistant/components/london_underground/sensor.py

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

* Adds missing PlatformNotReady import

* Linting fixes

Co-authored-by: avee87 <6134677+avee87@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-25 12:03:56 +02:00
GitHub Action
4a50010458 [ci skip] Translation update 2022-07-25 00:25:55 +00:00
J. Nick Koston
22ca28b93d Ensure bluetooth can be reloaded when hot plugging a bluetooth adapter (#75699) 2022-07-24 19:23:23 -05:00
J. Nick Koston
511af3c455 Update switchbot bluetooth matchers for sensor devices (#75690) 2022-07-24 16:55:52 -05:00
J. Nick Koston
bbb9443b00 Fix bluetooth integration matching with service_data_uuids and service_uuids (#75687)
* Fix bluetooth integration with service_data and service_uuids

We would only dispatch a new flow when the address was seen for
the first time or the manufacturer_data appeared in a followup
advertisement. Its also possible for the service_data and
service_uuids to appear in a followup advertisement so we
need to track these as well

* improve logging to avoid overly large messages

* improve logging to avoid overly large messages

* adjust

* adjsut

* split

* coverage

* coverage

* coverage

* coverage

* fix matcher

* more coverage

* more coverage

* more coverage

* revert switchbot changes and move to seperate PR
2022-07-24 16:39:53 -05:00
J. Nick Koston
d890598da7 Update PySwitchbot to improve connection reliability (#75692) 2022-07-24 16:38:07 -05:00
Franck Nijhof
c9ae409d9a Update sentry-sdk to 1.8.0 (#75691) 2022-07-24 22:38:09 +02:00
Aaron Bach
2d4bd4d7c1 Revert SimpliSafe auth flow to the quasi-manual OAuth method from 2021.11.0 (#75641)
* Revert "Migrate SimpliSafe to new web-based authentication (#57212)"

This reverts commit bf7c99c1f8.

* Tests 100%

* Version bump

* Add manifest version for custom component testing

* Remove manifest version

* Code review

* Fix tests
2022-07-24 22:09:02 +02:00
Marc Mueller
c0e6852077 Update pip version range to 22.3 (#75572) 2022-07-24 21:11:30 +02:00
Jc2k
e18819c678 Support for encrypted BLE MiBeacon devices (#75677)
* Support for encrypted devices

* Sensor should use bindkey if available

* Error message if encryption fails

* Let mypy know this is always set by now

* Towards supporting encryption in step_user

* Add tests for the 4 new happy paths

* Add test coverage for failure cases

* Add strings

* Bump to 0.5.1. Legacy MiBeacon does not use an authentication token, so harder to detect incorrect key

* Add _title() helper

* Fix test after rebase

* Update homeassistant/components/xiaomi_ble/strings.json

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

* Remove unused lines

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-24 21:00:56 +02:00
starkillerOG
f94a79b409 Bump motionblinds to 0.6.11 (#75581) 2022-07-24 20:59:25 +02:00
Glenn Waters
9fae638f65 Migrate ElkM1 to new entity naming style (#75023) 2022-07-24 20:40:42 +02:00
J. Nick Koston
0df08b6b0c Bump aiohomekit to 1.2.0 (#75686) 2022-07-24 20:12:16 +02:00
J. Nick Koston
198167a2c8 Update switchbot to be local push (#75645)
* Update switchbot to be local push

* fixes

* fixes

* fixes

* fixes

* adjust

* cover is not assumed anymore

* cleanups

* adjust

* adjust

* add missing cover

* import compat

* fixes

* uses lower

* uses lower

* bleak users upper case addresses

* fixes

* bump

* keep conf_mac and deprecated options for rollback

* reuse coordinator

* adjust

* move around

* move around

* move around

* move around

* refactor fixes

* compat with DataUpdateCoordinator

* fix available

* Update homeassistant/components/bluetooth/passive_update_processor.py

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

* Update homeassistant/components/bluetooth/passive_update_coordinator.py

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

* Update homeassistant/components/bluetooth/update_coordinator.py

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

* Split bluetooth coordinator into PassiveBluetoothDataUpdateCoordinator and PassiveBluetoothProcessorCoordinator

The PassiveBluetoothDataUpdateCoordinator is now used to replace instances
of DataUpdateCoordinator where the data is coming from bluetooth
advertisements, and the integration may also mix in active updates

The PassiveBluetoothProcessorCoordinator is used for integrations that
want to process each bluetooth advertisement with multiple processors
which can be dispatched to individual platforms or areas or the integration
as it chooes

* change connections

* reduce code churn to reduce review overhead

* reduce code churn to reduce review overhead

* Update homeassistant/components/bluetooth/passive_update_coordinator.py

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

* add basic test

* add basic test

* complete coverage

* Update homeassistant/components/switchbot/coordinator.py

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

* Update homeassistant/components/switchbot/coordinator.py

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

* Update homeassistant/components/switchbot/__init__.py

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

* Update homeassistant/components/switchbot/__init__.py

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

* lint

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-24 11:38:45 -05:00
mvn23
79be87f9ce Update pyotgw to 2.0.1 (#75663) 2022-07-24 10:48:22 +02:00
J. Nick Koston
ba71a3c24d Add Govee BLE integration (#75631)
* Add Govee BLE integration

* add missing files

* remove test file not needed yet

* fix

* add bbq sensors

* fixed lib

* bump again to fix the names

* fix discovery of the newer bbq devices

* fix the test to test the right thing

* verify no outstanding flows

* only accept entities that match the platform

* refactor

* refactor

* refactor

* Refactor PassiveBluetoothDataUpdateCoordinator to support multiple platforms

* cover

* Update for new model

* Update for new model

* Update tests/components/govee_ble/test_sensor.py

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

* purge dead code

* backmerge from integration

* Update docstring

* Update docstring

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-24 10:39:23 +02:00
Dave T
7075032bf7 Fix diagnostics export for generic camera (#75665)
Fix url redaction and add tests

Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-07-24 10:21:01 +02:00
J. Nick Koston
82c92b5634 Add Moat (BLE) integration (#75643)
* Add Moat (BLE) integration

* fix pin

* resync

* Update tests/components/moat/test_sensor.py

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

* Update homeassistant/components/moat/sensor.py

* backmerge from integration

* purge dead code

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-24 09:51:14 +02:00
Aaron Bach
a499dfb8ff Fix AssertionError in RainMachine (#75668) 2022-07-23 20:06:10 -06:00
J. Nick Koston
da131beced Split bluetooth coordinator into two classes (#75675) 2022-07-23 19:33:47 -05:00
GitHub Action
19f82e5201 [ci skip] Translation update 2022-07-24 00:28:19 +00:00
On Freund
7cf2d1759d Upgrade pyrisco to 0.5.0 (#75648)
* Upgrade to pyrisco 0.4.0

* Parametrized error tests in config flow

* Inline error parameters

* Switch to RiscoCloud
2022-07-23 23:44:48 +02:00
J. Nick Koston
c5afaa2e6a Refactor PassiveBluetoothDataUpdateCoordinator to support multiple platforms (#75642) 2022-07-23 13:03:01 -05:00
J. Nick Koston
8300d5b89e Add bluetooth connection constant to the device registry (#75666) 2022-07-23 19:59:35 +02:00
J. Nick Koston
240bbfa080 Retry later if bluetooth fails to start (#75647) 2022-07-23 12:00:34 -05:00
Joakim Sørensen
2951a941b6 Import correct scan interval in traccar (#75660) 2022-07-23 18:44:58 +02:00
J. Nick Koston
759add5184 Add state class to HKC sensors (#75662) 2022-07-23 11:14:06 -05:00
Franck Nijhof
8d6247446b Automatically set up Bluetooth during onboarding (#75658) 2022-07-23 10:47:12 -05:00
uvjustin
b71e3397fd Add error message for duplicate stream recordings (#75654) 2022-07-23 08:40:45 -07:00
James
5c234a3504 Use CO Device Class Instead of Gas in zwave_js (#75649)
Use CO Device Class Instead of Gas

Switches the carbon monoxide sensor from `Gas` to `CO`
2022-07-23 13:24:34 +02:00
Jelte Zeilstra
5e10716dd8 Do not access hass.data in unifi test (#75348)
* Do not access hass.data in test

* Process review feedback
2022-07-23 12:42:43 +02:00
Jc2k
b60a59270c Add support for rest of sensors for HHCCJCY01 (#75646) 2022-07-23 09:40:56 +01:00
J. Nick Koston
edaebcd85d Pass in the bleak scanner instance to HKC (#75636) 2022-07-23 02:47:02 -05:00
GitHub Action
8e86124470 [ci skip] Translation update 2022-07-23 00:25:17 +00:00
J. Nick Koston
326e05dcf1 Fix async_get_scanner to return the correct bluetooth scanner (#75637) 2022-07-22 18:12:08 -05:00
Maciej Bieniek
cb543a21b3 Address NextDNS late review (#75635)
* Init instance attributes

* Remove condition

* Improve typing in tests

* Suggested change
2022-07-23 00:58:48 +02:00
Jc2k
402e533fef Initial xiaomi_ble integration (#75618)
* Initial xiaomi_ble integration

* black

* Update homeassistant/components/xiaomi_ble/config_flow.py

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Update homeassistant/components/xiaomi_ble/config_flow.py

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Apply suggestions from code review

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Update tests/components/xiaomi_ble/test_config_flow.py

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Update homeassistant/components/xiaomi_ble/sensor.py

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Update tests/components/xiaomi_ble/test_config_flow.py

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* Remove debug code

* Need 'proper' MAC when running tests on linux

* Need to use proper MAC so validation passes

* Add tests for already_in_progress and already_configured

* copy test, add session fixture

* fix test

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-23 00:55:06 +02:00
J. Nick Koston
6bb51782fa Add missing config flow tests for sensorpush (#75629)
* Add missing config flow tests for sensorpush

* merge correct commits from integration
2022-07-23 00:45:22 +02:00
J. Nick Koston
88b9a51811 Fix inkbird config flow tests to correctly test discovery and user flow (#75638)
* Fix inkbird config flow tests to correctly test discovery and user flow

* Fix inkbird config flow tests to correctly test discovery and user flow
2022-07-23 00:43:13 +02:00
Maciej Bieniek
5b555066ea Add new NextDNS sensors (#74789) 2022-07-23 00:18:22 +02:00
J. Nick Koston
19db6ecf6d Add missing inkbird config flow tests (#75630) 2022-07-22 23:02:15 +02:00
J. Nick Koston
38bccadaa6 Add support for setting up and removing bluetooth in the UI (#75600)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-22 13:19:53 -05:00
J. Nick Koston
20b6c4c48e Fix recorder hanging at start (#75627) 2022-07-22 12:37:25 -05:00
Martin Hjelmare
c05905ebda Remove callback decorator from coroutine functions (#75626)
* Remove callback decorator from coroutine functions

* Remove some more callback decorators
2022-07-22 19:09:02 +02:00
Diogo F. Andrade Murteira
148f963510 Add Switchbot hygrometers (#75325)
* Switchbot add support for hygrometers

* Update CODEOWNERS

* Improve debug

* Remove redundant mention to temp unit

* Adopt FlowResultType

* Modify SwitchBot data within coordinator

* Increase logging for switchbot sensor

* Revert "Increase logging for switchbot sensor"

This reverts commit d8b377429c.

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-22 11:03:02 -05:00
Marc Mueller
e9697872c8 Fix small homekit type error (#75617) 2022-07-22 09:02:10 -05:00
Erik Montnemery
fd6ffef52f Support non-live database migration (#72433)
* Support non-live database migration

* Tweak startup order, add test

* Address review comments

* Fix typo

* Clarify comment about promoting dependencies

* Tweak

* Fix merge mistake

* Fix some tests

* Fix additional test

* Fix additional test

* Adjust tests

* Improve test coverage
2022-07-22 15:11:34 +02:00
Erik Montnemery
9d0a252ca7 Improve handling of MQTT config entry data (#72691)
* Improve handling of MQTT config entry data

* Add test

* Add warning

* Adjust tests
2022-07-22 13:36:43 +02:00
Erik Montnemery
606d544157 Use recorder get_instance function to improve typing (#75567) 2022-07-22 11:58:26 +02:00
G Johansson
06c8eb0304 Migrate SMHI to new entity naming style (#75213) 2022-07-22 11:57:36 +02:00
Aaron Bach
630c28d253 Fix incorrect battery unit on paired Guardian sensors (#75402) 2022-07-22 11:24:07 +02:00
Erik Montnemery
f0eea62c1e Address some MQTT review comments (#75482) 2022-07-22 11:12:00 +02:00
Thijs W
dddd4e24e2 Bump afsapi to 0.2.7 (#75579) 2022-07-22 11:11:31 +02:00
uvjustin
a612d7a0f3 Round up for stream record lookback (#75580) 2022-07-22 11:46:00 +08:00
J. Nick Koston
06115bcbff Add inkbird (BLE) integration (#75594) 2022-07-21 22:17:09 -05:00
Aaron Bach
b0261dd2eb Modify Guardian to store a single dataclass in hass.data (#75454)
* Modify Guardian to store a single dataclass in `hass.data`

* Clarity is better

* Allow entry unload to cancel task
2022-07-21 20:32:42 -06:00
J. Nick Koston
67e16d77e8 Add SensorPush BLE integration (#75531) 2022-07-21 20:31:23 -05:00
GitHub Action
36138afb93 [ci skip] Translation update 2022-07-22 00:29:27 +00:00
J. Nick Koston
90ca3fe350 Improve availability tracking and coordinator setup in bluetooth (#75582) 2022-07-21 19:16:45 -05:00
TheJulianJES
975378ba44 Add ZHA config option for "enhanced light transition from an off-state" (#75151)
* Add ZHA config option for "enhanced light transition from an off-state"

* Default option to disabled

* Always disable "enhanced light transition" for ZHA LightGroups

* Rename _enhanced_light_transition to _zha_config_enhanced_light_transition

* Remove LightGroup check, as config option always disables for groups

* Remove duplicated line

* Remove duplicated line

* Move ZHA config transition line below other config line

* Renamed comments of renamed variable in tests
color_provided_while_off -> new_color_provided_while_off

* Enable "enhanced light transitions" for testing
2022-07-21 19:46:16 -04:00
David F. Mulcahey
04c6b9c519 ZHA light entity cleanup (#75573)
* use base class attributes

* initial hue and saturation support

* spec is 65536 not 65535

* fixes

* enhanced current hue

* fix comparison

* clean up

* fix channel test

* oops

* report enhanced current hue
2022-07-21 17:54:50 -04:00
J. Nick Koston
6cb1794720 Bump aiohomekit to 1.1.9 (#75591) 2022-07-21 15:58:45 -05:00
Maciej Bieniek
05b463b282 Migrate AccuWeather to new entity naming style (#75127)
* Use new entity naming style

* Move AccuWeatherSensorDescription and SENSOR consts to sensor platform

* Remove duplicate code

* Suggested change

* Format url
2022-07-21 18:38:59 +02:00
J. Nick Koston
f3c4bf571b Raise on bad update data instead of log in PassiveBluetoothDataUpdateCoordinator (#75536) 2022-07-21 09:44:53 -05:00
Franck Nijhof
8523c66bb5 Deprecate U.S. Citizenship and Immigration Services (USCIS) integration (#75562) 2022-07-21 13:56:55 +02:00
Marc Mueller
b1ed1543c8 Improve http decorator typing (#75541) 2022-07-21 13:07:42 +02:00
Thibault Cohen
1d7d2875e1 Add websocket command recorder/import_statistics (#73937)
* Expose ws_add_external_statistics in websocket API

* Refactor

* Add tests

* Improve test coverage

Co-authored-by: Thibault Cohen <titilambert@users.noreply.github.com>
Co-authored-by: Erik <erik@montnemery.com>
2022-07-21 12:36:49 +02:00
Bram Kragten
41f6383957 Update icons for breaking changes in MDI 7.0.96 (#75560) 2022-07-21 12:24:29 +02:00
Franck Nijhof
baeb55e313 Add sync methods for create/deleting issues in repairs (#75557) 2022-07-21 11:11:51 +02:00
Erik Montnemery
c861259749 Hide inactive repairs issues (#75556) 2022-07-21 10:56:53 +02:00
Brandon Rothweiler
46551a50ef Bump pymazda to 0.3.7 (#75546) 2022-07-21 09:04:04 +02:00
GitHub Action
87797c8b66 [ci skip] Translation update 2022-07-21 00:26:18 +00:00
Marc Mueller
ca1f0909fb Fix spelling in recorder integration (#75539) 2022-07-20 19:13:10 -05:00
Marc Mueller
ac858cc2b5 Improve singleton helper typing (#75461)
* Improve singleton helper typing

* Fix type errors
2022-07-21 00:19:02 +02:00
J. Nick Koston
6da25c733e Add coordinator and entity for passive bluetooth devices (#75468)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-20 15:54:37 -05:00
Franck Nijhof
cd0656bab0 Merge pull request #75528 from home-assistant/rc 2022-07-20 22:52:11 +02:00
Maciej Bieniek
01c105b89c Use DeviceInfo.hw_version in DenonAVR integration (#75300) 2022-07-20 22:34:49 +02:00
Franck Nijhof
7402dc824e Bumped version to 2022.7.6 2022-07-20 21:49:42 +02:00
Shay Levy
67fc1ac40a Bump aioshelly to 2.0.1 (#75523) 2022-07-20 21:49:18 +02:00
Aaron Bach
e692d2e284 Fix incorrect Ambient PWS lightning strike sensor state classes (#75520) 2022-07-20 21:49:15 +02:00
J. Nick Koston
4ac7d68552 Fix failure to raise on bad YAML syntax from include files (#75510)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-20 21:49:11 +02:00
Klaas Schoute
e53a072e8a Fix - Forcast.solar issue on saving settings in options flow without api key (#75504) 2022-07-20 21:49:08 +02:00
starkillerOG
787f55e513 Fix Netgear update entity (#75496) 2022-07-20 21:49:04 +02:00
Pascal Winters
0a11a623a5 Bump pySwitchbot to 0.14.1 (#75487) 2022-07-20 21:49:01 +02:00
Raman Gupta
55ef33af26 Bump pytomorrowio to 0.3.4 (#75478) 2022-07-20 21:48:57 +02:00
mkmer
5c2ef50fca Bump AIOAladdinConnect to 0.1.27 (#75400) 2022-07-20 21:48:06 +02:00
J. Nick Koston
630f731020 Fix HKC device triggers (#75371) 2022-07-20 21:42:42 +02:00
Aaron Bach
219d1a8a1e Handle (and better log) more AirVisual cloud API errors (#75332) 2022-07-20 21:42:38 +02:00
uvjustin
75641b6cd4 Apply filter to libav.hls logging namespace (#75330) 2022-07-20 21:42:35 +02:00
J. Nick Koston
340da786af Use default encoder when saving storage (#75319) 2022-07-20 21:42:32 +02:00
J. Nick Koston
7f43064f36 Use the orjson equivalent default encoder when save_json is passed the default encoder (#74377) 2022-07-20 21:42:26 +02:00
Nick Whyte
97b6912856 Upgrade ness_alarm dependencies (#75298)
* Upgrade ness alarm dependencies to fix #74571

* Update requirements
2022-07-20 21:35:26 +02:00
Aaron Bach
8b270cb487 Bump simplisafe-python to 2022.07.0 (#75294) 2022-07-20 21:35:23 +02:00
rikroe
8232a780eb Bump bimmer_connected to 0.10.1 (#75287)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-07-20 21:35:19 +02:00
Khole
34c30f5ab9 Add fixes for hive light (#75286) 2022-07-20 21:35:15 +02:00
mvn23
75aea68b75 Update pyotgw to 2.0.0 (#75285)
* Update pyotgw to 2.0.0

* Include updated tests
2022-07-20 21:35:11 +02:00
Christopher Bailey
3a2beb2212 Improve UniFi Protect unauth handling (#75269) 2022-07-20 21:35:07 +02:00
clayton craft
bccdb29edc Bump venstarcolortouch to 0.18 (#75237)
venstarcolortouch: bump to 0.18
2022-07-20 21:35:03 +02:00
rikroe
8b4cf288e3 Force _attr_native_value to metric in bmw_connected_drive (#75225)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-07-20 21:35:00 +02:00
apaperclip
1b61d72eaf Fix aruba ssh host key algorithm (#75224) 2022-07-20 21:34:56 +02:00
David F. Mulcahey
fdaaed6523 Fix ZHA light turn on issues (#75220)
* rename variable

* default transition is for color commands not level

* no extra command for groups

* don't transition color change when light off -> on

* clean up

* update condition

* fix condition again...

* simplify

* simplify

* missed one

* rename

* simplify

* rename

* tests

* color_provided_while_off with no changes

* fix missing flag clear

* more tests for transition scenarios

* add to comment

* fix comment

* don't transition when force on is set

* stale comment

* dont transition when colors don't change

* remove extra line

* remove debug print :)

* fix colors

* restore color to 65535 until investigated
2022-07-20 21:34:51 +02:00
Ville Skyttä
b749622c01 Migrate Huawei LTE to new entity naming style (#75303) 2022-07-20 22:28:53 +03:00
Shay Levy
079460d2dd Bump aioshelly to 2.0.1 (#75523) 2022-07-20 21:11:05 +02:00
Aaron Bach
a91ca46342 Fix incorrect Ambient PWS lightning strike sensor state classes (#75520) 2022-07-20 19:29:23 +02:00
Klaas Schoute
7ba3227d52 Fix - Forcast.solar issue on saving settings in options flow without api key (#75504) 2022-07-20 19:27:11 +02:00
J. Nick Koston
48e82ff62f Fix failure to raise on bad YAML syntax from include files (#75510)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-20 19:25:17 +02:00
Franck Nijhof
4395b967f2 Remove Google Play Music Desktop Player (GPMDP) integration (#75508) 2022-07-20 20:15:55 +03:00
Franck Nijhof
518001f00b Remove SoChain integration (#75505) 2022-07-20 19:58:48 +03:00
Franck Nijhof
87cfe21567 Remove XBee integration (#75502) 2022-07-20 19:55:33 +03:00
Franck Nijhof
877a4030aa Add repairs as frontend dependency (#75501) 2022-07-20 16:29:07 +02:00
starkillerOG
8ad2bed363 Fix Netgear update entity (#75496) 2022-07-20 15:51:54 +02:00
Erik Montnemery
fb4aff25a2 Create issues in demo integration (#75081)
* Create issues in demo integration

* Add unfixable non-expiring issue

* Update test

* Adjust tests

* update translations

* add hassfest translation schema

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

Co-authored-by: Zack Barett <zackbarett@hey.com>

* Rename Resolution Center -> Repairs

* Update homeassistant/components/demo/strings.json

Co-authored-by: Zack Barett <zackbarett@hey.com>

* Adjust hassfest to require description or fix_flow

* Update homeassistant/components/demo/repairs.py

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

* Update tests/components/demo/test_init.py

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

* Add missing translation strings

* black

* Adjust repairs imports

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Zack Barett <zackbarett@hey.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-20 14:46:06 +02:00
Franck Nijhof
3920844dca Adjust repairs re-exports (#75492) 2022-07-20 14:00:35 +02:00
Franck Nijhof
cd3e99564f Add repairs integration to core files (#75489) 2022-07-20 13:02:13 +02:00
Pascal Winters
95e07508e5 Bump pySwitchbot to 0.14.1 (#75487) 2022-07-20 12:57:00 +02:00
Zach Berger
712492b066 Update awair SensorDeviceClass to specify icon (#75385) 2022-07-20 12:08:34 +02:00
Franck Nijhof
39dc9aa179 Rename Resolution Center -> Repairs (#75486) 2022-07-20 12:06:52 +02:00
Marc Mueller
a3b2b5c328 Add zha typing [classmethods] (#75472) 2022-07-20 12:03:30 +02:00
Jan Bouwhuis
5ef92e5e95 Fix MQTT race awaiting an ACK when disconnecting (#75117)
Co-authored-by: Erik <erik@montnemery.com>
2022-07-20 11:58:54 +02:00
Franck Nijhof
11e7ddaa71 Plugwise prefer use of Adam instead of Anna (#75161)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-20 11:58:17 +02:00
Franck Nijhof
460837e453 Allow account linking to phase out services (#75447) 2022-07-20 11:43:46 +02:00
Franck Nijhof
fe97f6791d Map % RH unit in Tuya sensors (#75483) 2022-07-20 11:40:34 +02:00
Franck Nijhof
2db8b154c9 Update orjson to 3.7.8 (#75484) 2022-07-20 11:39:07 +02:00
Franck Nijhof
93425b0e4d Migrate Plugwise to new entity naming style (#75109) 2022-07-20 11:38:00 +02:00
Franck Nijhof
05d2b955ee Migrate CPUSpeed to new entity naming style (#75080) 2022-07-20 11:31:17 +02:00
Franck Nijhof
b62ebbe974 Migrate DSMR to new entity naming style (#75077) 2022-07-20 11:30:08 +02:00
Franck Nijhof
0e59e8b925 Migrate Moon to new entity naming style (#75085) 2022-07-20 11:24:15 +02:00
Aaron Bach
3d31e62683 Modify Ridwell to store a single dataclass in hass.data (#75457) 2022-07-20 11:18:26 +02:00
Aaron Bach
2b752355d6 Modify Tile to store a single dataclass in hass.data (#75459) 2022-07-20 11:15:30 +02:00
Raman Gupta
8c7e329754 Bump pytomorrowio to 0.3.4 (#75478) 2022-07-20 09:15:36 +02:00
uvjustin
d989e4373d Remove websocket_api send_big_result (#75452) 2022-07-19 21:08:11 -07:00
Marc Mueller
51ed9ee59d Fix bluetooth service_info typing (#75477)
* Fix bluetooth service_info typing

* Remove additional type ignores

* Remove pylint disable
2022-07-20 05:46:18 +02:00
Marc Mueller
8a48d54951 Improve entity_platform helper typing (#75464)
* Improve entity_platform helper typing

* Add protocol class

* Apply suggestions from code review

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-20 05:45:57 +02:00
J. Nick Koston
0f81d1d14a Drop RSSI update workaround from bluetooth on linux (#75467)
It turns out we do not need these are we can check the discovered
device list to see if bluez is still seeing the device
2022-07-20 04:14:31 +02:00
Marc Mueller
1626c53c13 Improve dispatcher helper typing (#75455)
* Improve dispatcher helper typing

* Code review
2022-07-20 04:11:46 +02:00
Marc Mueller
1a1eeb2274 Allow for subclass typing with StatisticsBase (#75476) 2022-07-20 04:02:03 +02:00
Marc Mueller
3193ea3359 Fix type narrowing in energy integration (#75462) 2022-07-20 04:00:14 +02:00
mkmer
07b4d48e7c Disable Aladdin Connect battery_level by default (#75441)
* Disable battery_level by default

* Removed async_setup_compnent, renamed constant.
2022-07-20 03:23:14 +02:00
Marc Mueller
d09fff595c Rename existing TypeVars referencing Self type (#75473) 2022-07-20 03:03:22 +02:00
Marc Mueller
b04c3e9adc Improve deprecation helper typing (#75453) 2022-07-20 02:54:46 +02:00
Marc Mueller
672883e19d Remove old type casting in esphome (#75475) 2022-07-20 02:50:37 +02:00
GitHub Action
c29bd48373 [ci skip] Translation update 2022-07-20 00:22:51 +00:00
Marc Mueller
503e88642e Update pyupgrade to 2.37.2 (#75456) 2022-07-19 21:06:18 +02:00
Teemu R
e4f6f738e8 Bump python-miio to 0.5.12 (#75415)
* Bump python-miio to 0.5.12

* Fix imports
2022-07-19 18:56:41 +02:00
Marc Mueller
e02a24529f Update mypy to 0.971 (#75450) 2022-07-19 18:53:19 +02:00
J. Nick Koston
32311f240b Avoid converting discovery_info dataclasses to dict that will be thrown away in config flows (#75451)
* Avoid converting BluetoothServiceInfo to a dict for default discovery

Fixes
```
2022-07-19 09:46:48.303 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/Users/bdraco/home-assistant/homeassistant/helpers/discovery_flow.py", line 74, in _async_process_pending_flows
    await gather_with_concurrency(
  File "/Users/bdraco/home-assistant/homeassistant/util/async_.py", line 201, in gather_with_concurrency
    return await gather(
  File "/Users/bdraco/home-assistant/homeassistant/util/async_.py", line 199, in sem_task
    return await task
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 222, in async_init
    flow, result = await task
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 249, in _async_init
    result = await self._async_handle_step(flow, flow.init_step, data, init_done)
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 359, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 1484, in async_step_bluetooth
    return await self.async_step_discovery(dataclasses.asdict(discovery_info))
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1239, in asdict
    return _asdict_inner(obj, dict_factory)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1246, in _asdict_inner
    value = _asdict_inner(getattr(obj, f.name), dict_factory)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1280, in _asdict_inner
    return copy.deepcopy(obj)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 161, in deepcopy
    rv = reductor(4)
TypeError: Cannot pickle Objective-C objects
```

* Avoid converting BluetoothServiceInfo to a dict for default discovery

Fixes
```
2022-07-19 09:46:48.303 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/Users/bdraco/home-assistant/homeassistant/helpers/discovery_flow.py", line 74, in _async_process_pending_flows
    await gather_with_concurrency(
  File "/Users/bdraco/home-assistant/homeassistant/util/async_.py", line 201, in gather_with_concurrency
    return await gather(
  File "/Users/bdraco/home-assistant/homeassistant/util/async_.py", line 199, in sem_task
    return await task
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 222, in async_init
    flow, result = await task
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 249, in _async_init
    result = await self._async_handle_step(flow, flow.init_step, data, init_done)
  File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 359, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 1484, in async_step_bluetooth
    return await self.async_step_discovery(dataclasses.asdict(discovery_info))
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1239, in asdict
    return _asdict_inner(obj, dict_factory)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1246, in _asdict_inner
    value = _asdict_inner(getattr(obj, f.name), dict_factory)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/dataclasses.py", line 1280, in _asdict_inner
    return copy.deepcopy(obj)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/opt/homebrew/Cellar/python@3.10/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 161, in deepcopy
    rv = reductor(4)
TypeError: Cannot pickle Objective-C objects
```
2022-07-19 18:50:30 +02:00
Marc Mueller
5ae5ae5392 Improve debouncer typing (#75436) 2022-07-19 18:35:04 +02:00
Marc Mueller
4b036cbad9 Add typing to pilight Throttle decorator (#75443) 2022-07-19 18:33:53 +02:00
uvjustin
6b60fb9541 Don't use executor in send_big_result (#75427) 2022-07-19 08:40:23 -05:00
Marc Mueller
b6d235c0c2 Improve tradfri decorator typing (#75439) 2022-07-19 15:21:17 +02:00
Matrix
25b874a609 Fix yolink leak sensor battery expose (#75423) 2022-07-19 14:05:28 +02:00
Erik Montnemery
403bbda959 Rename resolution_center dismiss to ignore (#75432) 2022-07-19 13:58:39 +02:00
Erik Montnemery
c3d536b255 Store creation timestamps for resolution center issues (#75430) 2022-07-19 13:01:39 +02:00
Franck Nijhof
8e8c6e2394 Remove unused ignore file (#75416) 2022-07-18 21:15:22 -07:00
Franck Nijhof
24b3b5fc46 Remove deprecated Senz YAML configuration (#75419) 2022-07-18 21:14:55 -07:00
Franck Nijhof
e65018fb85 Clean up deprecated connection class remainders (#75421) 2022-07-18 21:14:41 -07:00
Franck Nijhof
d05160a402 Remove deprecated Lyric YAML configuration (#75418) 2022-07-18 21:13:53 -07:00
R0nd
a9e9d7b112 Pass context to shopping list events (#75377) 2022-07-18 21:13:12 -07:00
GitHub Action
ebabaeb364 [ci skip] Translation update 2022-07-19 00:29:06 +00:00
J. Nick Koston
b37f15b1d5 Update bluetooth_le_tracker to use Bleak (#75013)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-18 19:16:24 -05:00
J. Nick Koston
41e4b38c3a Add device and advertisement to BluetoothServiceInfoBleak (#75381) 2022-07-18 17:58:08 -05:00
J. Nick Koston
1354952977 Migrate LIFX to config entry per device (#74316) 2022-07-18 17:56:34 -05:00
mkmer
983bcfa935 Bump AIOAladdinConnect to 0.1.27 (#75400) 2022-07-18 23:41:06 +02:00
Franck Nijhof
e75d7dfb75 Update google-cloud-texttospeech to 2.12.0 (#75401) 2022-07-18 23:34:53 +02:00
Robert Hillis
9f33a0d6dd Migrate Tautulli to new entity naming style (#75382) 2022-07-18 23:22:38 +02:00
stegm
45d1f8bc55 Address late review of kostal plenticore (#75297)
* Changtes from review #64927

* Fix unit tests for number.

* Changes from review.
2022-07-18 23:08:18 +02:00
Brett Adams
5928a7d494 Correct devices in Advantage Air (#75395) 2022-07-18 23:02:58 +02:00
J. Nick Koston
8b912d1d91 Significantly improve BLE reliablity with linux/dbus for HKC (#75410) 2022-07-18 15:28:14 -05:00
Franck Nijhof
7adb0f0ef5 Custom component -> Custom integration (#75404) 2022-07-18 22:10:22 +02:00
Robert Svensson
3144d179e0 Make UniFi utilise forward_entry_setups (#74835) 2022-07-18 10:39:38 -05:00
Aaron Bach
b3ef6f4d04 Simplify Guardian entity inheritance hierarchy (#75274) 2022-07-18 09:18:07 -06:00
David F. Mulcahey
6f5e4ca503 Fix ZHA light turn on issues (#75220)
* rename variable

* default transition is for color commands not level

* no extra command for groups

* don't transition color change when light off -> on

* clean up

* update condition

* fix condition again...

* simplify

* simplify

* missed one

* rename

* simplify

* rename

* tests

* color_provided_while_off with no changes

* fix missing flag clear

* more tests for transition scenarios

* add to comment

* fix comment

* don't transition when force on is set

* stale comment

* dont transition when colors don't change

* remove extra line

* remove debug print :)

* fix colors

* restore color to 65535 until investigated
2022-07-18 10:20:49 -04:00
Franck Nijhof
9d0c91d648 Migrate Sensor.Community to new entity naming style (#75014) 2022-07-18 15:13:46 +02:00
Franck Nijhof
bfe34adf6e Update Home Assistant base image to 2022.07.0 (#75396) 2022-07-18 15:09:43 +02:00
Nick Whyte
11f80762ea Upgrade ness_alarm dependencies (#75298)
* Upgrade ness alarm dependencies to fix #74571

* Update requirements
2022-07-18 12:17:25 +02:00
Robert Hillis
6fdb414b58 Migrate Goalzero to new entity naming style (#75358) 2022-07-18 12:12:13 +02:00
Allen Porter
ca5065a627 Improve google calendar config flow timeout error messages (#75364) 2022-07-18 11:44:51 +02:00
Matrix
943e0b9cf7 Yolink feature garage door (#75120) 2022-07-18 11:40:18 +02:00
J. Nick Koston
e522b6e3b8 Bump aiohomekit to 1.1.7 (#75384)
BLEDevice is now passed around instead of the address
internally to avoid bleak creating a new scanner each
time a client needs to resolve the address to os details
2022-07-18 07:36:01 +01:00
GitHub Action
4d5673013b [ci skip] Translation update 2022-07-18 00:24:34 +00:00
J. Nick Koston
a8bb00f305 Fix availability in HKC for sleeping bluetooth devices (#75357) 2022-07-17 17:45:04 -05:00
J. Nick Koston
91f2550bc3 Change manufacturer_data_first_byte to manufacturer_data_start (#75379) 2022-07-17 17:25:45 -05:00
J. Nick Koston
a95c2c7850 Avoid throwing on unsupported bleak client filter (#75378)
* Avoid throwing on unsupported bleak client filter

* Avoid throwing on unsupported bleak client filter
2022-07-17 16:13:12 -05:00
Allen Porter
939c33b1dc Exclude calendar description from recorder (#75375) 2022-07-17 13:31:14 -07:00
J. Nick Koston
5beddb13c0 Fix HKC device triggers (#75371) 2022-07-17 12:56:07 -05:00
Franck Nijhof
98dae902a1 Migrate PVOutput to new entity naming style (#75016) 2022-07-17 16:45:38 +01:00
Robert Hillis
27e3ff9c69 Migrate Skybell to new entity naming style (#75341) 2022-07-17 17:16:14 +02:00
Robert Hillis
460f522d6d Migrate Deluge to new entity naming style (#75359) 2022-07-17 16:59:13 +02:00
J. Nick Koston
8d63f81821 Add bluetooth discovery to HomeKit Controller (#75333)
Co-authored-by: Jc2k <john.carr@unrouted.co.uk>
2022-07-17 08:19:05 -05:00
Maciej Bieniek
503b31fb15 Migrate Xiaomi Miio to new entity naming style - part 1 (#75350) 2022-07-17 15:15:24 +02:00
Maciej Bieniek
cd223d91bb Migrate Tractive to new entity naming style (#75184) 2022-07-17 15:01:26 +02:00
hahn-th
d8f3044ffa Bump homematicip 1.0.5 (#75334) 2022-07-17 14:30:43 +02:00
J. Nick Koston
9a27f1437d Use default encoder when saving storage (#75319) 2022-07-17 14:25:19 +02:00
Brett Adams
2eebda63fd Correct docstrings in Advantage Air (#75344) 2022-07-17 14:00:01 +02:00
J. Nick Koston
ba8a530d19 Use shared bluetooth models for BluetoothServiceInfo (#75322) 2022-07-16 21:14:23 -07:00
GitHub Action
79a0940932 [ci skip] Translation update 2022-07-17 00:25:56 +00:00
Christopher Bailey
59c99e0d60 Improve UniFi Protect unauth handling (#75269) 2022-07-16 17:28:17 -05:00
uvjustin
2f92c47fe3 Apply filter to libav.hls logging namespace (#75330) 2022-07-16 14:07:47 -07:00
mvn23
4ceda65889 Update pyotgw to 2.0.0 (#75285)
* Update pyotgw to 2.0.0

* Include updated tests
2022-07-16 22:26:22 +02:00
Aaron Bach
08d6487997 Handle (and better log) more AirVisual cloud API errors (#75332) 2022-07-16 14:04:44 -06:00
Franck Nijhof
cb12f77e33 Update sentry-sdk to 1.7.2 (#75331) 2022-07-16 22:00:58 +02:00
Robert Svensson
ae4b1967a3 Use pydeconz interface controls for lights (#75261) 2022-07-16 20:56:48 +02:00
Jelte Zeilstra
514e826fed Add install UniFi device update feature (#75302)
* Add install UniFi device update feature

* Add tests for install UniFi device update feature

* Fix type error

* Process review feedback

* Process review feedback
2022-07-16 20:39:11 +02:00
J. Nick Koston
b9c8d65940 Restore accessory state into pairing using new HKC methods (#75276) 2022-07-16 12:49:15 -05:00
J. Nick Koston
ecc219fbc1 Include the source in the bluetooth service info (#75112) 2022-07-16 11:02:08 -05:00
Maciej Bieniek
859189421b Migrate BraviaTV to new entity naming style (#75253) 2022-07-16 17:43:47 +02:00
G Johansson
20d70337d5 Migrate Trafikverket Weatherstation to new entity naming style (#75211) 2022-07-16 17:07:16 +02:00
rikroe
686449cef6 Force _attr_native_value to metric in bmw_connected_drive (#75225)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-07-16 17:00:42 +02:00
rikroe
c52d4c64bf Bump bimmer_connected to 0.10.1 (#75287)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2022-07-16 16:57:17 +02:00
Aaron Bach
952c90efcd Bump simplisafe-python to 2022.07.0 (#75294) 2022-07-16 16:45:09 +02:00
Franck Nijhof
393610c534 Migrate Season to new entity naming style (#75088) 2022-07-16 06:28:13 -07:00
Franck Nijhof
8d88562d40 Migrate Uptime to new entity naming style (#75090) 2022-07-16 06:27:20 -07:00
Maciej Bieniek
0f3cc4a4aa Migrate GIOS to new entity naming style (#75051)
Use new entity naming style
2022-07-16 06:25:07 -07:00
Franck Nijhof
13cea26e74 Migrate Tailscale to new entity naming style (#75018) 2022-07-16 06:21:19 -07:00
G Johansson
027cdbdb38 Fix Sensibo new entity naming style (#75307) 2022-07-16 14:33:18 +02:00
GitHub Action
d0c4d39ae2 [ci skip] Translation update 2022-07-16 00:26:06 +00:00
clayton craft
1ce4714722 Bump venstarcolortouch to 0.18 (#75237)
venstarcolortouch: bump to 0.18
2022-07-16 00:38:06 +02:00
Khole
dbcd98d029 Add fixes for hive light (#75286) 2022-07-16 00:03:22 +03:00
J. Nick Koston
2106c9f247 Fix delay adding entities in HKC (#75273) 2022-07-15 11:21:09 -05:00
J. Nick Koston
97fd669924 HomeKit Controller BLE Fixes (#75271) 2022-07-15 10:44:25 -05:00
Franck Nijhof
c6c063e8c5 Various cleanups in AdGuard Home (#75250)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-15 12:38:20 +02:00
G Johansson
48f4b51a1d Migrate DNSIP to new entity naming style (#75197) 2022-07-15 11:07:39 +02:00
apaperclip
06e905054e Fix aruba ssh host key algorithm (#75224) 2022-07-15 10:57:23 +02:00
Franck Nijhof
3f3ed3a2c5 Add multi-factor authentication support to Verisure (#75113)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-15 10:52:40 +02:00
G Johansson
d2e5d01aca Migrate Yale Smart Alarm to new entity naming style (#75202) 2022-07-15 10:52:07 +02:00
G Johansson
cba3c8cf65 Migrate Sensibo to new entity naming style (#75212) 2022-07-15 10:51:18 +02:00
epenet
911402e747 Remove cloud from mypy ignore list (#74449) 2022-07-15 10:47:30 +02:00
G Johansson
3e98ac180c Migrate Trafikverket Ferry to new entity naming style (#75206) 2022-07-15 10:44:29 +02:00
Paulus Schoutsen
4e29bdf715 Merge pull request #75243 from home-assistant/rc 2022-07-14 22:46:51 -07:00
Allen Porter
a23b427025 Remove nest mac prefix that matches cast devices (#75108) 2022-07-14 22:01:41 -07:00
Allen Porter
b4003713b6 Remove nest mac prefix that matches cast devices (#75108) 2022-07-14 22:01:18 -07:00
Paulus Schoutsen
c185e636ed Bumped version to 2022.7.5 2022-07-14 21:31:07 -07:00
Nathan Spencer
99d39b203f Bump pylitterbot to 2022.7.0 (#75241) 2022-07-14 21:31:03 -07:00
mkmer
e4f1fa48d3 Bump AIOAladdinConnect to 0.1.25 (#75235)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-14 21:31:02 -07:00
Zack Barett
c56caca182 Bump frontend to 20220707.1 (#75232) 2022-07-14 21:30:41 -07:00
Khole
62d77a135b Fix Hive power unit of measurement (#75210) 2022-07-14 21:29:41 -07:00
puddly
b231eea0c6 Skip iso4217 version 1.10, which includes a broken __init__.pyi file (#75200) 2022-07-14 21:29:41 -07:00
puddly
5eaa15138c Bump zigpy from 0.47.2 to 0.47.3 (#75194) 2022-07-14 21:29:40 -07:00
mkmer
d401faac7c Bumped AIOAladdin Connect to 0.1.24 (#75182) 2022-07-14 21:29:39 -07:00
Christopher Bailey
674e02914b Bump version of pyunifiprotect to 4.0.10 (#75180) 2022-07-14 21:29:38 -07:00
uvjustin
326ffdcd49 Fix playback of hls cameras in stream (#75166) 2022-07-14 21:29:37 -07:00
Michał Huryn
b5e24048db Fix Blebox light scenes (#75106)
* Bug fix for light platform, when async_turn_on recieves multiple keys.

* Changes according to @MartinHjelmare suggestion.

* Moved effect set call in BleBoxLightEntity.async_turn_on method.

* Added tests for effect in light platform. Added ValueError raise if effect not in effect list.

* Removed duplicated line from test as @MartinHjelmare suggested.
2022-07-14 21:29:36 -07:00
Thomas Hollstegge
b1c07ac17a Fix Alexa: Only trigger doorbell event on actual state change to "ON" (#74924)
* Alexa: Only trigger doorbell event on actual state change to "ON"

* Remove unnecessary check for new_state

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

* First check state is `on` before checking the old state

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2022-07-14 21:29:35 -07:00
Michał Huryn
a5693c083f Address Blebox uniapi review sidenotes (#74298)
* Changes accordingly to sidenotes given by @MartinHjelmare in pull #73834.

* Mini version bump according to notes in pull #73834.

* Error message fix, test adjustment.
2022-07-14 21:29:35 -07:00
Nathan Spencer
2dde3d02cc Bump pylitterbot to 2022.7.0 (#75241) 2022-07-14 21:29:11 -07:00
mkmer
98807f7efc Bump AIOAladdinConnect to 0.1.25 (#75235)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-14 21:28:00 -07:00
Franck Nijhof
700081e160 Add entity descriptions in AdGuard Home switches (#75229) 2022-07-14 21:09:11 -07:00
GitHub Action
08a361dab9 [ci skip] Translation update 2022-07-15 00:28:00 +00:00
Zack Barett
ea6bb370a6 Bump frontend to 20220707.1 (#75232) 2022-07-15 01:12:48 +02:00
Robert Svensson
4a3d047dff Use pydeconz interface controls for fans (#75156) 2022-07-14 23:53:09 +02:00
Jc2k
ff297cb902 Bump aiohomekit to 1.0.0 (#75198)
* Bump to 1.0.0rc1

* 1.0.0rc2

* fix one of the tests

* simplify test

* 1.0.0

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-14 16:51:48 -05:00
J. Nick Koston
03e3ebb238 Use json_loads by default for the aiohttp helper (#75214) 2022-07-14 15:37:12 -05:00
J. Nick Koston
61cc9f5288 Consolidate executor jobs when loading integration manifests (#75176) 2022-07-14 13:06:08 -07:00
Franck Nijhof
fef1b842ce Update wled to 0.14.1 (#75174) 2022-07-14 13:04:46 -07:00
Franck Nijhof
d004adf833 Add entity descriptions in AdGuard Home sensors (#75179) 2022-07-14 13:04:19 -07:00
Glenn Waters
72906bf154 Migrate UPB to new entity naming style (#75096)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-14 21:56:36 +02:00
G Johansson
09f37fc522 Migrate SQL to new entity naming style (#75203) 2022-07-14 21:46:26 +02:00
Franck Nijhof
9a4a7e2f4d Extend failed login message with the request URL (#75218) 2022-07-14 21:43:14 +02:00
Thomas Hollstegge
f0cc565f6c Fix Alexa: Only trigger doorbell event on actual state change to "ON" (#74924)
* Alexa: Only trigger doorbell event on actual state change to "ON"

* Remove unnecessary check for new_state

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

* First check state is `on` before checking the old state

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2022-07-14 12:40:53 -07:00
epenet
e7ae2fada7 Remove evohome from mypy ignore list (#75175) 2022-07-14 21:40:39 +02:00
uvjustin
75892385bb Fix playback of hls cameras in stream (#75166) 2022-07-14 12:24:24 -07:00
J. Nick Koston
6184f0557d Bump pyunifiprotect to 4.0.11 (#75215) 2022-07-14 21:18:55 +02:00
puddly
bdc63b692b Bump zigpy from 0.47.2 to 0.47.3 (#75194) 2022-07-14 12:15:51 -07:00
epenet
5287980f48 Remove template from mypy ignore list (#74426) 2022-07-14 21:15:37 +02:00
mkmer
b7cdf5412b Bumped AIOAladdin Connect to 0.1.24 (#75182) 2022-07-14 12:14:41 -07:00
Peter Galantha
3d2101cac5 Add total state_class for esphome (#75015) 2022-07-14 21:14:25 +02:00
G Johansson
54a939e223 Migrate Filesize to new entity naming style (#75199) 2022-07-14 21:04:41 +02:00
J. Nick Koston
3f6e930489 Bump nexia to 2.0.2 (#75209) 2022-07-14 21:03:12 +02:00
Robert Svensson
874043f596 Migrate Axis to new entity naming style (#74735) 2022-07-14 21:01:57 +02:00
Khole
124bfe1629 Fix Hive power unit of measurement (#75210) 2022-07-14 20:50:35 +02:00
J. Nick Koston
5f08052f40 Move lutron_caseta migration to happen after successful setup (#75204) 2022-07-14 20:48:30 +02:00
J. Nick Koston
fde3489e86 Relocate BluetoothServiceInfo to helpers.service_info (#75195) 2022-07-14 11:36:54 -07:00
puddly
5e46fa6f8b Skip iso4217 version 1.10, which includes a broken __init__.pyi file (#75200) 2022-07-14 12:38:22 -05:00
Franck Nijhof
56da7d0ad0 Allow Mjpeg camera name to be None (#75002) 2022-07-14 19:00:06 +02:00
J. Nick Koston
bb14f83b94 Bump unifi-discovery to 1.1.5 (#75189) 2022-07-14 11:30:20 -05:00
J. Nick Koston
666f715e76 Avoid importing MQTT into core for ServiceInfo dataclass (#74418)
* Avoid importing MQTT into core for discovery dataclass

Likely fixes #73863

* relo

* adjust

* rename

* rename

* rename

* adjust missed imports

* drop compat

* fix conflict correctly

* Update homeassistant/helpers/config_entry_flow.py

* fix black from trying to fix the conflict in github
2022-07-14 11:09:09 -05:00
epenet
1725948d4a Use instance attributes in minecraft_server (#75157)
* Remove minecraft_server from mypy ignore list

* Use new entity naming style
2022-07-14 18:06:33 +02:00
J. Nick Koston
89985b93fb Avoid loading platforms in HKC if we are going to raise ConfigEntryNotReady (#75177) 2022-07-14 10:17:16 -05:00
Christopher Bailey
2286dea636 Bump version of pyunifiprotect to 4.0.10 (#75180) 2022-07-14 09:55:24 -05:00
J. Nick Koston
a31dde9cb4 Await startup in homekit controller (#75021) 2022-07-14 07:44:27 -05:00
J. Nick Koston
a3c1926da5 Add mock_bluetooth fixture (#75075) 2022-07-14 07:40:17 -05:00
Chris Talkington
20432ccc76 Migrate roku to new entity naming (#74819)
* migrate roku to new entity naming

* Update binary_sensor.py

* Update sensor.py

* Update test_binary_sensor.py

* Update sensor.py

* Update entity.py

* Update media_player.py

* Update remote.py

* Update media_player.py

* Update remote.py

* Update entity.py

* Update entity.py

* Update entity.py

* Update entity.py
2022-07-14 07:02:13 -05:00
epenet
e16bd1e471 Remove evohome climate from mypy ignore list (#75169)
* Remove evohome climate from mypy ignore list

* Raise error
2022-07-14 13:46:37 +02:00
epenet
c260413e2a Remove lovelace from mypy ignore list (#75167)
* Remove lovelace from mypy ignore list

* Raise error on failed config
2022-07-14 13:08:50 +02:00
Franck Nijhof
28c082a080 Update sentry-sdk to 1.7.1 (#75154) 2022-07-14 12:42:18 +02:00
epenet
debd475a6d Remove onvif from mypy ignore list (#75162) 2022-07-14 11:55:43 +02:00
Franck Nijhof
b60f6c7cdd Bump pip_check (#75164) 2022-07-14 11:50:21 +02:00
epenet
51c17197c5 Remove nzbget from mypy ignore list (#75158) 2022-07-14 11:40:10 +02:00
Franck Nijhof
3bccac9949 Verisure config flow cleanups (#75144) 2022-07-14 11:37:59 +02:00
Michał Huryn
169264db66 Fix Blebox light scenes (#75106)
* Bug fix for light platform, when async_turn_on recieves multiple keys.

* Changes according to @MartinHjelmare suggestion.

* Moved effect set call in BleBoxLightEntity.async_turn_on method.

* Added tests for effect in light platform. Added ValueError raise if effect not in effect list.

* Removed duplicated line from test as @MartinHjelmare suggested.
2022-07-14 11:21:01 +02:00
mkmer
c9df5888c2 Add Aladdin Connect wifi_rssi and battery_level sensors (#74258) 2022-07-14 11:09:27 +02:00
J. Nick Koston
08ff1b8986 Fix flapping system log test (#75111) 2022-07-14 11:05:52 +02:00
Franck Nijhof
a720b2989a Migrate RDW to new entity naming style (#75017) 2022-07-14 10:56:14 +02:00
Franck Nijhof
2aa98da624 Migrate Whois to new entity naming style (#75019) 2022-07-14 10:56:01 +02:00
GitHub Action
1d2e64e3dc [ci skip] Translation update 2022-07-14 00:27:41 +00:00
Paulus Schoutsen
60e170c863 Merge pull request #75147 from home-assistant/rc 2022-07-13 15:25:35 -07:00
Paulus Schoutsen
533ae85a49 Bumped version to 2022.7.4 2022-07-13 14:14:13 -07:00
Paulus Schoutsen
1555f706e5 Block bad pubnub version (#75138) 2022-07-13 14:14:01 -07:00
Aaron Bach
f052c3ca74 Ensure SimpliSafe diagnostics redact the code option (#75137) 2022-07-13 14:14:00 -07:00
puddly
89e87119f2 Bump ZHA dependencies (#75133) 2022-07-13 14:13:59 -07:00
kingy444
9e99ea68fb Fix Powerview top shade open position (#75110) 2022-07-13 14:13:58 -07:00
Joakim Plate
b105b0fbcb Make sure device tuple is a list on save (#75103) 2022-07-13 14:13:58 -07:00
Artem Draft
98c3bc56b5 Fix missing ordered states in universal media player (#75099) 2022-07-13 14:13:57 -07:00
Tom Harris
06e7f71891 Fix Insteon thermostat issues (#75079) 2022-07-13 14:13:56 -07:00
mkmer
55ae0228a9 Bump AIOAladdinConnect to 0.1.23 (#75065) 2022-07-13 14:13:55 -07:00
hahn-th
5c882429d4 Bump homematicip to 1.0.4 (#75053) 2022-07-13 14:13:54 -07:00
Thijs W
51a4c98562 Bump afsapi to 0.2.6 (#75041) 2022-07-13 14:13:53 -07:00
Gabe Cook
620d2ed8fd Fix Ruckus Unleashed SSH connection failures (#75032) 2022-07-13 14:13:52 -07:00
Ville Skyttä
bdc4171e37 Upgrade huawei-lte-api to 1.6.1 (#75030) 2022-07-13 14:13:51 -07:00
Phil Bruckner
f738d39ad9 Do not spam log when Life360 member location is missing (#75029) 2022-07-13 14:13:50 -07:00
Franck Nijhof
a34e72f3a1 Fix mix of aiohttp and requests in ClickSend TTS (#74985) 2022-07-13 14:13:50 -07:00
J. Nick Koston
c45313e9de JSON serialize NamedTuple subclasses with aiohttp (#74971) 2022-07-13 14:13:49 -07:00
Markus
4d81d056da Fix Pyload request content type headers (#74957) 2022-07-13 14:13:48 -07:00
henryptung
3f53022b50 Remove pip --prefix workaround (#74922)
Remove --prefix workaround

See discussion in https://github.com/home-assistant/core/issues/74405.

This workaround is no longer needed on pip >= 21.0 and actively causes problems for pip >= 21.3.
2022-07-13 14:13:47 -07:00
Alexei Chetroi
d31a0c8dca Correctly handle device triggers for missing ZHA devices (#74894) 2022-07-13 14:13:46 -07:00
Ludovico de Nittis
cc79c3d6e1 Update pyialarm to 2.2.0 (#74874) 2022-07-13 14:13:45 -07:00
Erik Montnemery
5e7174a5f4 Migrate homematicip_cloud to native_* (#74385) 2022-07-13 14:13:45 -07:00
Erik Montnemery
8259ce9868 Migrate ecobee to native_* (#74043) 2022-07-13 14:13:44 -07:00
puddly
3166d4895f Bump ZHA dependencies (#75133) 2022-07-13 14:13:09 -07:00
Paulus Schoutsen
1768315c50 Block bad pubnub version (#75138) 2022-07-13 14:12:53 -07:00
kingy444
d1ffc7e9e3 Fix Powerview top shade open position (#75110) 2022-07-13 13:06:32 -07:00
Joakim Plate
755abbe2d0 Make sure device tuple is a list on save (#75103) 2022-07-13 13:05:43 -07:00
Aaron Bach
ffeac9714f Ensure SimpliSafe diagnostics redact the code option (#75137) 2022-07-13 20:52:13 +02:00
Everything Smart Home
4a36318d56 Add Aqara E1 curtain motor direction select entity to ZHA (#75132)
* Add direction change select option for Aqara Curtain

* Add direction change select option for Aqara Curtain
2022-07-13 13:58:36 -04:00
Aaron Bach
2169d839ce Remove service descriptions for deprecated Guardian services (#75084) 2022-07-13 11:08:23 +02:00
Bouwe Westerdijk
34f1d5e094 Add Plugwise number platform (#74655) 2022-07-13 09:21:58 +02:00
Artem Draft
b7a6f4e220 Fix missing ordered states in universal media player (#75099) 2022-07-13 09:12:50 +02:00
Tom Harris
1e5ada0f9d Fix Insteon thermostat issues (#75079) 2022-07-13 08:56:08 +02:00
mkmer
ad82352dae Bump AIOAladdinConnect to 0.1.23 (#75065) 2022-07-13 08:46:32 +02:00
dependabot[bot]
3ca04aa33b Bump actions/cache from 3.0.4 to 3.0.5 (#75104)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-13 08:40:43 +02:00
GitHub Action
a3fd5acf3f [ci skip] Translation update 2022-07-13 00:27:34 +00:00
Paulus Schoutsen
41ec8cd354 Expose supported brands via API (#75074) 2022-07-12 13:49:54 -07:00
Aaron Bach
b54fe14a10 Replace Guardian reboot and reset_valve_diagnostics services with buttons (#75028) 2022-07-12 12:53:21 -06:00
Franck Nijhof
d40978742c Update coverage to 6.4.2 (#75072) 2022-07-12 20:46:04 +02:00
Glenn Waters
96ecbe4388 Migrate Environment Canada to new entity naming style (#75024)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-12 20:45:38 +02:00
Franck Nijhof
397f94ee50 Migrate DSMR to use keys for entity unique ID (#74895) 2022-07-12 20:06:13 +02:00
Erik Montnemery
b0fde206b8 Teach resolution center about fixing issues (#74694) 2022-07-12 10:26:06 -07:00
Sebastian Lövdahl
cf612c4bec Migrate Vallox to new entity naming style (#75025) 2022-07-12 16:32:37 +02:00
Gabe Cook
5489b2111a Fix Ruckus Unleashed SSH connection failures (#75032) 2022-07-12 16:06:38 +02:00
Duco Sebel
5fdae0fc5b Migrate HomeWizard to new entity naming style (#74958) 2022-07-12 15:56:16 +02:00
Maciej Bieniek
7283d1b7fb Migrate Brother to new entity naming style (#75000) 2022-07-12 15:35:12 +02:00
hahn-th
cd25bc1901 Bump homematicip to 1.0.4 (#75053) 2022-07-12 15:31:04 +02:00
Thijs W
ff1cdb4de7 Bump afsapi to 0.2.6 (#75041) 2022-07-12 12:03:26 +02:00
Jan Bouwhuis
5930f056a8 Mqtt support config_entry unload (#70149)
* squashed commits for rebase

* Flake

* Fix reloading issue manual legacy items

* Improve ACS sync for unsubscribe at disconnect

* Processed review comments

* Update homeassistant/components/mqtt/client.py

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

* No need to await entry setup

* Remove complication is_connected

* Update homeassistant/components/mqtt/__init__.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-07-12 11:07:18 +02:00
Michał Huryn
6a37600936 Remove incorrect device class from blebox button (#75042)
* Removed redundant attr device class from button.

* Removed irrelevant test for checking buttons device_class.
2022-07-12 10:01:53 +02:00
dependabot[bot]
dfe840c045 Bump actions/setup-python from 4.0.0 to 4.1.0 (#75040)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 08:51:24 +02:00
Phil Bruckner
f4953e6e9b Do not spam log when Life360 member location is missing (#75029) 2022-07-12 08:42:33 +02:00
GitHub Action
5d8e1b8387 [ci skip] Translation update 2022-07-12 00:24:26 +00:00
Ville Skyttä
7b9a0eed22 Upgrade huawei-lte-api to 1.6.1 (#75030) 2022-07-11 15:35:45 -07:00
Erik Montnemery
2e228b2608 Tweak handling of entities with has_entity_name set (#74948)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-11 15:10:53 -07:00
J. Nick Koston
da027fa390 JSON serialize NamedTuple subclasses with aiohttp (#74971) 2022-07-11 14:46:55 -07:00
Franck Nijhof
ef025bccc0 Update tqdm to 4.64.0 (#75010) 2022-07-11 23:30:48 +02:00
0bmay
2d2fd3e48f Cache Canary camera image (#73923)
* Cache camera image

Cache camera image so a new image isn't generated each call.
Adds debug logging

* Apply suggestions from code review

code compression with walrus operator

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

* fix after walrus operator suggested tweak

fully use the live_stream_session variable in async_camera_image

* Invalidate cached image after 15 minutes

requested code change; invalidate cached image

* Removed unnecessary if statement

based on code review

* Image capture flow updates

now sets the image expiration upon getting an updated image
updates the cache image only when a new image is captured

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-07-11 21:53:33 +02:00
David F. Mulcahey
5774f2e7b9 Use forward_entry_setups in ZHA (#74834) 2022-07-11 14:29:42 -04:00
puddly
2986a2f01b Identify the active ZHA coordinator device in API responses (#74739)
* Remove deprecated zigpy properties

* Create a `ZHADevice.is_active_coordinator` property

* Add `@puddly` to the ZHA code owners

* Create a `ZHAGateway.coordinator_ieee` shortcut property
2022-07-11 14:19:30 -04:00
epenet
14baaf4b67 Remove plex from mypy ignore list (#74984) 2022-07-11 20:02:44 +02:00
epenet
28a34a1f89 Remove withings from mypy ignore list (#74966) 2022-07-11 19:14:23 +02:00
Franck Nijhof
7c2bd319f1 Migrate AdGuard Home to new entity naming style (#74999)
* Migrate AdGuard Home to new entity naming style

* sentence-casing
2022-07-11 18:59:21 +02:00
epenet
ba18e11308 Remove profiler from mypy ignore list (#74453) 2022-07-11 18:34:27 +02:00
Franck Nijhof
8d6925b3ab Migrate Tuya to new entity naming style (#74975) 2022-07-11 09:17:54 -07:00
Matthias Alphart
75abf87611 Migrate Fronius to new entity naming style (#74974) 2022-07-11 09:16:29 -07:00
Franck Nijhof
4a39087fe7 Migrate Verisure to new entity naming style (#74997) 2022-07-11 09:14:17 -07:00
Franck Nijhof
a30d7e5104 Migrate Speedtest.net to new entity naming style (#75004) 2022-07-11 09:13:09 -07:00
Franck Nijhof
964bb63da6 Migrate Spotify to new entity naming style (#74992) 2022-07-11 09:12:56 -07:00
epenet
7e0515b119 Remove conversation from mypy ignore list (#74991) 2022-07-11 17:47:33 +02:00
epenet
63706d2f67 Remove blueprint from mypy ignore list (#74990) 2022-07-11 17:46:32 +02:00
Erik Montnemery
924dce1b86 Log warning if number entities set _attr_unit_of_measurement (#74987) 2022-07-11 17:44:07 +02:00
Brett Adams
01ca7f657c Shorten Entity Name in Aussie Broadband (#74946) 2022-07-11 17:43:32 +02:00
Paulus Schoutsen
6fd47d035e Add basic Rhasspy integration (#74942)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-07-11 08:40:52 -07:00
epenet
6ac05784a6 Remove icloud from mypy ignore list (#75007) 2022-07-11 17:33:20 +02:00
Maciej Bieniek
7b5cf63a46 Migrate Airly to new entity naming style (#74995) 2022-07-11 17:30:22 +02:00
Maciej Bieniek
e1e85caf18 Migrate Nettigo Air Monitor to new entity naming style (#74993) 2022-07-11 17:26:07 +02:00
epenet
fa51a39f1d Use instance attributes in evohome (#74996) 2022-07-11 17:24:35 +02:00
J. Nick Koston
c2fefe03b2 Add support for subscribing to bluetooth callbacks by address (#74773) 2022-07-11 08:14:00 -07:00
Erik Montnemery
eb922b2a1f Add temperature number to demo integration (#74986) 2022-07-11 16:55:06 +02:00
Franck Nijhof
af2feb3d40 Update pyupgrade to v2.37.1 (#74989) 2022-07-11 16:54:01 +02:00
epenet
73a8ae35c2 Remove izone from mypy ignore list (#75005) 2022-07-11 16:53:14 +02:00
Ludovico de Nittis
fe1c23321e Update pyialarm to 2.2.0 (#74874) 2022-07-11 16:51:10 +02:00
epenet
06a4c226fd Remove konnected from mypy ignore list (#75003) 2022-07-11 16:44:44 +02:00
Joakim Plate
ee4749b207 Change more properties to attributes for rfxtrx (#74880)
* Move more properties to attributes

* Apply suggestions from code review

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

* Convert states to attributes

* Adjustments from review

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-07-11 16:21:26 +02:00
Maciej Bieniek
c1a4dc2f22 Add NextDNS switch platform (#74512)
* Add switch platform

* Use lambda to get state

* Use async with timeout

* Add tests

* Use correct type

* Use Generic for coordinator

* Use TCoordinatorData

* Cleanup generic

* Simplify coordinator data update methods

* Use new entity naming style

* Remove unnecessary code

* Only the first word should be capitalised

* Suggested change

* improve typing in tests

* Improve typing intests

* Update tests/components/nextdns/__init__.py

* black

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-07-11 16:00:13 +02:00
Maciej Bieniek
8820ce0bdd Migrate NextDNS to new entity naming style (#74951)
* Use new entity naming style

* Remove unnecessary code

* Only the first word should be capitalised
2022-07-11 15:59:46 +02:00
epenet
5f4713a200 Remove solaredge from mypy ignore list (#74983) 2022-07-11 15:07:54 +02:00
Erik Montnemery
9d2c213903 Support overriding unit of temperature number entities (#74977) 2022-07-11 14:49:36 +02:00
Franck Nijhof
66e27945ac Fix mix of aiohttp and requests in ClickSend TTS (#74985) 2022-07-11 14:38:08 +02:00
epenet
ce353460b3 Fix Withings re-authentication flow (#74961) 2022-07-11 14:27:54 +02:00
epenet
ab9950621b Remove toon from mypy ignore list (#74968) 2022-07-11 13:40:54 +02:00
Franck Nijhof
d244d06711 Update PyTurboJPEG to 1.6.7 (#74965) 2022-07-11 13:21:37 +02:00
Franck Nijhof
ba3f287c01 Update sentry-sdk to 1.7.0 (#74967) 2022-07-11 12:39:07 +02:00
Michał Huryn
ca93aacc57 Add blebox tvLiftBox support (#74395)
* Added tvLiftBox support.

* Changes after @epenet code review.

* After @epenet code review, dictionaries moved to relevant modules.

* Import path changed to full path.

* Removed redundant code in BLEBOX_TO_<platform>_DEVICE_CLASSES for switch and button platforms.

* Post isort on covers.

* Added tests, required version bump. As property was added inside dependency.
2022-07-11 12:24:37 +02:00
Franck Nijhof
c80066072c Update psutil to 5.9.1 (#74963) 2022-07-11 12:18:28 +02:00
Erik Montnemery
0d6bf08ff6 Don't allow using deprecated features of WeatherEntity (#74394) 2022-07-11 11:59:06 +02:00
henryptung
7d27dad190 Remove pip --prefix workaround (#74922)
Remove --prefix workaround

See discussion in https://github.com/home-assistant/core/issues/74405.

This workaround is no longer needed on pip >= 21.0 and actively causes problems for pip >= 21.3.
2022-07-11 11:33:28 +02:00
Erik Montnemery
f6fd7d115e Migrate homematicip_cloud to native_* (#74385) 2022-07-11 10:58:57 +02:00
Markus
ed1545fab0 Fix Pyload request content type headers (#74957) 2022-07-11 10:49:31 +02:00
Erik Montnemery
6e1cd4c48a Migrate ecobee to native_* (#74043) 2022-07-11 10:49:06 +02:00
Franck Nijhof
81f74d2053 Update pre-commit to 2.20.0 (#74955) 2022-07-11 10:42:23 +02:00
Franck Nijhof
34b8f2b283 Migrate Ambee to new entity naming style (#74877) 2022-07-11 09:51:01 +02:00
Franck Nijhof
eb92f0e16c Migrate Forecast.Solar to new entity naming style (#74898) 2022-07-11 09:44:56 +02:00
Glenn Waters
a3d0719c49 Add binary_sensor to ElkM1 integration (#74485)
* Add binary_sensor to ElkM1 integration

* Update for review comments.

* Fix black.

* Fix pylint error.

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-11 09:11:37 +02:00
Allen Porter
f4e61eff18 Add update coordinator for google calendar (#74690)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-10 21:24:52 -07:00
Franck Nijhof
5451ccd2b5 Update wakeonlan to 2.1.0 (#74856) 2022-07-10 21:05:09 -07:00
Brandon Rothweiler
53502eb662 Migrate Mazda to new entity naming style (#74939) 2022-07-10 21:04:54 -07:00
Brett Adams
d0f71d2e53 Migrate Aussie Broadband to new entity naming style (#74937) 2022-07-10 21:04:18 -07:00
Brett Adams
7a729aed54 Migrate Advantage Air to new entity naming style (#74940) 2022-07-10 21:03:48 -07:00
GitHub Action
abb11009b4 [ci skip] Translation update 2022-07-11 00:23:28 +00:00
Franck Nijhof
d697bb53c5 Update lru-dict to 1.1.8 (#74932) 2022-07-11 00:11:43 +02:00
Thomas Hollstegge
261c52e260 Alexa: Fix duplicate proactive reports (#74930) 2022-07-10 15:10:55 -07:00
Franck Nijhof
9ff77e0fa1 Update pytest-sugar is 0.9.5 (#74931) 2022-07-11 00:06:45 +02:00
Franck Nijhof
a4517a4c1d Trigger full CI on Bluetooth integration changes (#74929) 2022-07-10 23:59:08 +02:00
Franck Nijhof
792c825699 Update numpy to 1.23.1 (#74851) 2022-07-10 14:58:05 -07:00
Franck Nijhof
08887a6faa Update yamllint to 1.27.1 (#74853) 2022-07-10 14:57:46 -07:00
Franck Nijhof
f15d3fc5db Migrate WLED to new entity naming style (#74860) 2022-07-10 14:56:48 -07:00
Franck Nijhof
176e2754ec Update adb-shell to 0.4.3 (#74855) 2022-07-10 14:56:04 -07:00
Paulus Schoutsen
4418e6c4b6 Merge pull request #74926 from home-assistant/rc 2022-07-10 14:33:08 -07:00
Franck Nijhof
8054e309b3 Update flake8-noqa to 1.2.5 (#74896) 2022-07-10 14:23:40 -07:00
G Johansson
c9330841a1 Add AirQ sensors to Sensibo (#74868) 2022-07-10 23:08:33 +02:00
Michael
c2d8335cc5 Add "Home Assistant (skip pip)" to VS Code launch.json (#74887) 2022-07-10 23:06:27 +02:00
Aaron Bach
b4e5c95e03 Migrate OpenUV to new entity naming style (#74919) 2022-07-10 22:45:09 +02:00
Aaron Bach
a19ab389fc Migrate Flu Near You to new entity naming style (#74918) 2022-07-10 22:29:50 +02:00
Paulus Schoutsen
02452c7632 Bumped version to 2022.7.3 2022-07-10 13:25:47 -07:00
Thijs W
20f77ef832 Bump afsapi to 0.2.5 (#74907) 2022-07-10 13:25:43 -07:00
David Straub
adbcd8adb4 Bump pysml to 0.0.8 (fixes #74382) (#74875) 2022-07-10 13:25:42 -07:00
Hans Oischinger
bd069966f2 Fix Vicare One Time Charge (#74872) 2022-07-10 13:25:41 -07:00
Brandon Rothweiler
986a86ebed Bump pymazda to 0.3.6 (#74863) 2022-07-10 13:25:41 -07:00
Chris Talkington
01eae3687a Bump rokuecp to 0.17.0 (#74862) 2022-07-10 13:25:40 -07:00
Stephan Uhle
2f570fa715 Fixed unit of measurement. #70121 (#74838) 2022-07-10 13:25:39 -07:00
Aaron Bach
2ba285b8e5 Bump regenmaschine to 2022.07.1 (#74815) 2022-07-10 13:25:38 -07:00
Robert Svensson
07f4efcd83 Bump deCONZ dependency to fix #74791 (#74804) 2022-07-10 13:25:38 -07:00
Paul Annekov
357fe2a722 Bump python-gammu to 3.2.4 with Python 3.10 support (#74797) 2022-07-10 13:25:37 -07:00
Álvaro Fernández Rojas
2accc4c07d Update aioqsw to v0.1.1 (#74784) 2022-07-10 13:25:36 -07:00
Regev Brody
79b4f8ce0c Bump pyezviz to 0.2.0.9 (#74755)
* Bump ezviz dependency to fix #74618

* Bump ezviz dependency to fix #74618

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-10 13:25:36 -07:00
Pieter Mulder
e233024533 Update pyCEC to version 0.5.2 (#74742) 2022-07-10 13:25:35 -07:00
Ethan Madden
43527d8d19 air_quality and filter_life fixes for Pur131S (#74740) 2022-07-10 13:25:34 -07:00
Aidan Timson
59471a6fbd Update systembridgeconnector to 3.3.2 (#74701) 2022-07-10 13:25:33 -07:00
kpine
f5d18108d0 Fix KeyError from zwave_js diagnostics (#74579) 2022-07-10 13:25:33 -07:00
Franck Nijhof
5f728b955e Migrate Sonos to new entity naming style (#74909) 2022-07-10 13:19:13 -07:00
Franck Nijhof
cdab725bf4 Migrate Slimproto to new entity naming style (#74910) 2022-07-10 13:18:15 -07:00
David F. Mulcahey
6f28e4bfee Migrate ZHA to new entity naming standard (#74846) 2022-07-10 13:17:59 -07:00
Aaron Bach
8285f42d26 Migrate IQVIA to new entity naming style (#74917) 2022-07-10 22:16:16 +02:00
Hans Oischinger
267057c989 Fix Vicare One Time Charge (#74872) 2022-07-10 13:15:43 -07:00
Franck Nijhof
d6ceebbb68 Migrate Met.no to new entity naming style (#74908) 2022-07-10 13:13:22 -07:00
Franck Nijhof
c81d63e070 Migrate Cast to new entity naming style (#74901) 2022-07-10 13:13:09 -07:00
Aaron Bach
4a38be2924 Migrate WattTime to new entity naming style (#74916) 2022-07-10 22:12:56 +02:00
Aaron Bach
07444dba2a Migrate ReCollect Waste to new entity naming style (#74914) 2022-07-10 22:11:02 +02:00
Aaron Bach
4433065438 Migrate Ridwell to new entity naming style (#74915) 2022-07-10 22:09:42 +02:00
Franck Nijhof
b070bb8ef0 Migrate Supervisor integration to new entity naming style (#74906) 2022-07-10 13:05:54 -07:00
Franck Nijhof
c5253d3da0 Migrate Geocaching to new entity naming style (#74899) 2022-07-10 13:05:00 -07:00
Franck Nijhof
bb4b2014fc Migrate Wiz to new entity naming style (#74911) 2022-07-10 13:03:19 -07:00
Franck Nijhof
23f2e9014e Update feedparser to 6.0.10 (#74913) 2022-07-10 12:59:38 -07:00
Thijs W
1aeb15050e Bump afsapi to 0.2.5 (#74907) 2022-07-10 21:52:49 +02:00
Aaron Bach
98a27ed3ed Remove old RainMachine service descriptions (#74920) 2022-07-10 21:48:58 +02:00
Aaron Bach
edf304718c Migrate Notion to new entity naming style (#74746) 2022-07-10 21:41:12 +02:00
Aaron Bach
5971ab6549 Migrate Flo to new entity naming style (#74744) 2022-07-10 21:40:06 +02:00
Aaron Bach
f95c9d0f02 Migrate AirVisual to new entity naming style (#74753) 2022-07-10 21:38:00 +02:00
Aaron Bach
ae4f2a0e34 Fix incorrect new entity naming for Guardian (#74912) 2022-07-10 21:37:14 +02:00
Aaron Bach
a4d5ecb8ec Migrate RainMachine to new entity naming style (#74754) 2022-07-10 21:27:01 +02:00
Aaron Bach
c92936cc7b Migrate Ambient PWS to new entity naming style (#74743) 2022-07-10 21:21:21 +02:00
Franck Nijhof
c241e876ef Update url-normalize to 1.4.3 (#74897) 2022-07-10 21:55:54 +03:00
Jc2k
59170d3c54 Prepare homekit_controller for _hap._udp.local. (#74857)
* Prepare homekit_controller for _hap._udp.local.
2022-07-10 19:50:54 +01:00
Franck Nijhof
c9aa3c112a Migrate GitHub to new entity naming style (#74903) 2022-07-10 20:05:24 +02:00
David F. Mulcahey
edaafadde0 Remove ZHA device storage (#74837)
* Remove ZHA device storage

* remove storage file if it exists
2022-07-10 13:46:22 -04:00
Alexei Chetroi
240a83239a Correctly handle device triggers for missing ZHA devices (#74894) 2022-07-10 13:35:45 -04:00
Allen Porter
6f9fcdff99 Improve calendar error handling to match best practices (#74891) 2022-07-10 10:04:57 -07:00
Franck Nijhof
52130b227e Update flake8-comprehensions to 3.10.0 (#74882) 2022-07-10 14:55:43 +02:00
Franck Nijhof
70ceccb06a Update respx to 0.19.2 (#74878) 2022-07-10 14:21:14 +02:00
Chris Talkington
3429a75cc5 Bump rokuecp to 0.17.0 (#74862) 2022-07-10 12:51:40 +02:00
David Straub
cb4d2d1b26 Bump pysml to 0.0.8 (fixes #74382) (#74875) 2022-07-10 12:49:18 +02:00
Brandon Rothweiler
f7aea76e73 Bump pymazda to 0.3.6 (#74863) 2022-07-10 12:33:54 +02:00
Franck Nijhof
80727ff952 Update pyudev to 0.23.2 (#74859) 2022-07-09 20:30:22 -05:00
GitHub Action
d40ad96916 [ci skip] Translation update 2022-07-10 00:27:48 +00:00
Franck Nijhof
2f37500443 Update shodan to 1.28.0 (#74850) 2022-07-10 01:51:46 +02:00
epenet
40ee7bab8f Fix false-positive in pylint plugin (#74244) 2022-07-10 00:31:09 +02:00
Robert Svensson
d80d16aaa4 Use pydeconz interface controls for number platform (#74666) 2022-07-09 23:46:24 +02:00
J. Nick Koston
157d6dc83f Add missing Start Dimmer mapping for bond buttons (#74555) 2022-07-09 23:45:49 +02:00
Franck Nijhof
0f813b61c3 Migrate Elgato to new entity naming style (#74590) 2022-07-09 23:41:04 +02:00
Franck Nijhof
81e7eb623b Migrate Twente Milieu to new entity naming style (#74593) 2022-07-09 23:40:55 +02:00
Robert Svensson
63582c3f98 Bump deCONZ dependency to fix #74791 (#74804) 2022-07-09 23:40:15 +02:00
epenet
db111645c2 Use instance attributes in nsw_rural_fire_service_feed (#74398) 2022-07-09 23:38:53 +02:00
Robert Svensson
e3242d8d16 Move add/remove logic of deCONZ clip sensors to gateway class (#74481) 2022-07-09 23:35:06 +02:00
Rami Mosleh
d33779d3a0 Cleanup mikrotik device extra_attributes (#74491) 2022-07-09 23:33:10 +02:00
epenet
e529ef7b0e Use instance attributes in qld_bushfire (#74402) 2022-07-09 23:29:00 +02:00
epenet
bb974ebf7e Use instance attributes in gdacs (#74400) 2022-07-09 23:21:58 +02:00
epenet
36bb34f391 Remove kostal_plenticore from mypy ignore list (#74433) 2022-07-09 23:18:53 +02:00
epenet
d04e77ef7f Use instance attributes in geo_json_events (#74397) 2022-07-09 23:17:14 +02:00
epenet
d49c58cf87 Use instance attributes in geonetnz_quakes (#74401) 2022-07-09 23:14:07 +02:00
epenet
3922141f5c Remove omnilogic from mypy ignore list (#74452) 2022-07-09 23:11:55 +02:00
epenet
da133a7f05 Remove xbox from mypy ignore list (#74504) 2022-07-09 23:09:15 +02:00
Jc2k
f53bf1127f Hide homekit_controller implementation that doesn't apply to BLE (#74836) 2022-07-09 23:07:32 +02:00
Paul Annekov
81cdbf4f9b Bump python-gammu to 3.2.4 with Python 3.10 support (#74797) 2022-07-09 22:53:47 +02:00
epenet
16900dcef1 Make Store a generic class (#74617) 2022-07-09 22:32:57 +02:00
Michel van de Wetering
d37ad20894 Fix mediaplayer join service groupmembers definition (#74807) 2022-07-09 22:29:50 +02:00
Stephan Uhle
cdcfd1149e Fixed unit of measurement. #70121 (#74838) 2022-07-09 22:22:30 +02:00
simeon-simsoft
5b32eea3d0 Add support for bidirectional chargers to Wallbox integration (#74313)
* Add support for the Quasar bidirectional charger to the Wallbox integration, including ability to control charger while discharging, set a negative charge rate and monitor discharged amount

* Make code more generic in order to support other bidirectional models in the future

* Updates to files to comply with HA formatting rules

* Change const file to fix black check failure

* Remove unnecessay loop in number entity
2022-07-09 20:41:39 +02:00
Robert Svensson
2cc9db5468 Make deCONZ utilise forward_entry_setups (#74823) 2022-07-09 13:30:48 -05:00
epenet
7cac1ae6a3 Use instance attributes in ign_sismologia (#74399) 2022-07-09 20:03:31 +02:00
epenet
0b1f29b2b9 Remove nilu from mypy ignore list (#74412) 2022-07-09 20:01:39 +02:00
Álvaro Fernández Rojas
ac21dc929f Update aioairzone to v0.4.6 (#74810) 2022-07-09 20:00:24 +02:00
Aaron Bach
ea1fc6b5d3 Migrate SimpliSafe to new entity naming style (#74763) 2022-07-09 19:59:36 +02:00
epenet
5360e56d09 Remove xiaomi_miio from mypy ignore list (#74669) 2022-07-09 19:59:11 +02:00
Aidan Timson
e74f7d13ab Update systembridgeconnector to 3.3.2 (#74701) 2022-07-09 19:55:33 +02:00
epenet
0f33c08dca Remove telegram_bot from mypy ignore list (#74661) 2022-07-09 19:52:26 +02:00
Ethan Madden
5defe67269 air_quality and filter_life fixes for Pur131S (#74740) 2022-07-09 19:51:47 +02:00
Joakim Plate
8ce897f462 Convert fjaraskupan to entity naming (#74723) 2022-07-09 19:46:53 +02:00
Joakim Plate
4080d2b0da Convert philips_js to entity naming (#74721)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-09 19:34:51 +02:00
Franck Nijhof
cdcc73a414 Migrate Stookalert to new entity naming style (#74693) 2022-07-09 19:22:23 +02:00
Allen Porter
1c4fee65c0 Migrate nest to new entity naming style (#74724) 2022-07-09 19:21:53 +02:00
Robert Svensson
24ca656372 Migrate deCONZ Group and Scenes to new entity naming style (#74761) 2022-07-09 19:17:50 +02:00
Pieter Mulder
04bb2d1e5d Update pyCEC to version 0.5.2 (#74742) 2022-07-09 19:13:46 +02:00
epenet
d208bd461d Migrate Renault to new entity naming style (#74709) 2022-07-09 19:12:19 +02:00
Franck Nijhof
1cf8b76124 Migrate CO2 Signal to new entity naming style (#74696) 2022-07-09 19:11:14 +02:00
Franck Nijhof
3aff5fd2e6 Migrate Open-Meteo to new entity naming style (#74695) 2022-07-09 19:08:53 +02:00
Guido Schmitz
72d134be52 Migrate devolo Home Network to new entity naming (#74741) 2022-07-09 19:05:49 +02:00
Duco Sebel
124c8e8f73 Add sensors for HomeWizard Watermeter (#74756)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2022-07-09 18:39:30 +02:00
Aaron Bach
85148b343d Bump regenmaschine to 2022.07.1 (#74815) 2022-07-09 10:32:15 -06:00
J. Nick Koston
cd03c49fc2 Wait for config entry platform forwards (#73806) 2022-07-09 17:27:42 +02:00
Joakim Plate
3a5cca3ff2 Convert rfxtrx to entity naming (#74720) 2022-07-09 17:15:08 +02:00
Álvaro Fernández Rojas
8bf692d046 Update aioqsw to v0.1.1 (#74784) 2022-07-09 17:13:27 +02:00
Ville Skyttä
a9c97e5d3a Sort huawei_lte sensor meta dict, add section separators (#74782) 2022-07-09 17:08:40 +02:00
Ville Skyttä
430d3e4604 Look for huawei_lte device MACs in a few more device info attributes (#74795) 2022-07-09 17:07:46 +02:00
Robert Hillis
79b34090e8 Bump aiopyarr to 22.7.0 (#74749) 2022-07-09 16:54:15 +02:00
Robert Hillis
e17db1fd0c Remove deprecated yaml config from Steam (#74805) 2022-07-09 16:43:50 +02:00
Aaron Bach
825e696d26 Migrate Guardian to new entity naming style (#74745) 2022-07-09 16:42:32 +02:00
J. Nick Koston
f4c333626e Add coverage for lutron caseta bridges to hkc (#74765) 2022-07-09 08:29:18 -05:00
Regev Brody
36357fe45d Bump pyezviz to 0.2.0.9 (#74755)
* Bump ezviz dependency to fix #74618

* Bump ezviz dependency to fix #74618

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-09 13:22:29 +02:00
GitHub Action
cdaefc8fda [ci skip] Translation update 2022-07-09 00:20:23 +00:00
J. Nick Koston
a697672944 Add bluetooth integration (#74653)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-08 18:55:31 -05:00
kpine
c27fbce7d0 Fix KeyError from zwave_js diagnostics (#74579) 2022-07-09 00:20:44 +02:00
Benoit Anastay
766523cf8c Fix error with HDD temperature report in Freebox integration (#74718)
* Fix error whith HDD temperature report

There was a non handled error case, documented in issue https://github.com/home-assistant/core/issues/43812 back in 2020 and the fix wasn't applied

* Use get method instead of ignoring the sensor

* Update test values

Add idle state drive with unkown temp

* update Tests for system sensors api

* Fix booleans values

* Fix disk unique_id

There was a typo in the code
2022-07-08 14:22:31 -07:00
Aaron Bach
0cca086aab Bump regenmaschine to 2022.07.0 (#74680) 2022-07-08 14:18:40 -07:00
Paulus Schoutsen
010b18be34 Bump atomicwrites (#74758) 2022-07-08 14:17:56 -07:00
Antonino Piazza
4209d7733b Add huawei_lte wifi guest network switch (#71035) 2022-07-08 23:09:03 +03:00
Allen Porter
ff324ab2fb Attempt to fix flaky test by waiting for setup to complete (#74734) 2022-07-08 09:50:56 -07:00
TheJulianJES
1d69e631b5 Fix ZHA group not setting the correct color mode (#74687)
* Fix ZHA group not setting the correct color mode

* Changed to use _attr_color_mode
2022-07-08 12:47:59 -04:00
Allen Porter
08d8304a52 Migrate google calendar to new entity naming (#74727)
* Migrate google calendar to new entity naming

* Update homeassistant/components/google/calendar.py

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

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2022-07-08 07:59:50 -07:00
epenet
b2a3071658 Cleanup generic in NextDNS (#74705)
Cleanup generic in nextdns
2022-07-08 16:19:32 +02:00
Kevin Stillhammer
e55a4dcab1 Add missing strings for here_travel_time (#74641)
* Add missing strings for here_travel_time

* script.translations develop

* Correct origin_menu option
2022-07-08 06:16:13 -07:00
Franck Nijhof
540ffe116e Update debugpy to 1.6.2 (#74692) 2022-07-08 13:59:20 +02:00
Robert Svensson
3b3766fbe0 Bump deconz dependency to fix #74523 (#74710) 2022-07-08 12:54:09 +02:00
Franck Nijhof
3f8cfa3b0a Always run pip_check in CI (#74706) 2022-07-08 12:39:29 +02:00
siyuan-nz
06530ebfa1 Add ssh-rsa as acceptable an host key algorithm (#74684) 2022-07-08 09:51:10 +02:00
Maciej Bieniek
fd7330ea77 Bump NextDNS backend library (#74611) 2022-07-08 09:48:46 +02:00
Franck Nijhof
ba0b98ef32 Remove deprecated Spotify YAML configuration (#74604) 2022-07-08 08:30:01 +02:00
Franck Nijhof
97426911a3 Update lxml to 4.9.1 (#74663) 2022-07-07 20:50:31 -07:00
Allen Porter
561c9a77d8 Add google calendar service proper exception handling (#74686) 2022-07-07 20:50:19 -07:00
Erik Montnemery
0e3f7bc63a Resolution center MVP (#74243)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-07 20:49:07 -07:00
GitHub Action
405d323709 [ci skip] Translation update 2022-07-08 00:27:47 +00:00
Michał Mrozek
5dd8dfb4dc Update kaiterra-async-client to 1.0.0 (#74677) 2022-07-07 15:46:23 -07:00
J. Nick Koston
a84d92be4d Fix climacell/tomorrowio config flow test failure (#74660) 2022-07-07 22:45:40 +02:00
Franck Nijhof
3a61a0de2e Standardize EntityDescription in DSMR (#74671) 2022-07-07 22:38:10 +02:00
Franck Nijhof
6ebdf0580b Remove last occurrences of RESULT_TYPE_* from codebase (#74670)
Remove last ocurrances of RESULT_TYPE_* from codebase
2022-07-07 22:35:06 +02:00
epenet
c6bff8ae18 Remove philips_js from mypy ignore list (#74659)
* Remove philips_js from mypy ignore list

* Use class attribute
2022-07-07 22:00:19 +02:00
Franck Nijhof
a6244eea28 Search/replace RESULT_TYPE_* by FlowResultType enum (#74656) 2022-07-07 21:28:18 +02:00
Franck Nijhof
46beae9061 Bump number of test groups from 6 -> 10 (#74648) 2022-07-07 20:55:47 +02:00
Kostas Chatzikokolakis
3f53ed5d5c Add trigger/arm_custom_bypass to Template Alarm Control Panel (#74629) 2022-07-07 20:31:03 +02:00
Arne Mauer
d8030ed9e7 Ikea Starkvind support all models (#74615)
* Add Particulate Matter 2.5 of ZCL concentration clusters to ZHA component

* Fixed black and flake8 test

* New sensors and manufacturer cluster to support IKEA STARKVIND (with quirk)

* Fix multi_match for FilterLifeTime, device_run_time, filter_run_time sensors for Ikea starkvind

* Remove model match because sensors are matched with manufacturer channel

* Update manufacturerspecific.py

* Update number.py
2022-07-07 14:28:33 -04:00
TheJulianJES
b9b6ed33ee Fix smart energy polling for Tuya plugs (#74640)
* Add PolledSmartEnergySummation to poll summation_delivered for some ZHA plugs

* Remove PolledSmartEnergyMetering, add stop_on_match_group to summation sensors
2022-07-07 14:27:48 -04:00
Robert Svensson
ac85a3ce64 Use pydeconz interface controls for button platform (#74654) 2022-07-07 21:13:03 +03:00
epenet
bd43f0393c Remove influxdb from mypy ignore list (#74612) 2022-07-07 20:51:38 +03:00
epenet
dc0c41982f Remove meteo_france from mypy ignore list (#74613) 2022-07-07 20:50:08 +03:00
Franck Nijhof
f2706aa8c0 Update debugpy to 1.6.1 (#74637) 2022-07-07 20:48:39 +03:00
J. Nick Koston
ff877b8144 Fix exception in doorbird logbook during startup (#74649)
* Fix exception in doorbird logbook during startup

Fixes

```
2022-07-07 16:50:33.203 ERROR (MainThread) [homeassistant.helpers.integration_platform] Error processing platform doorbird.logbook
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/integration_platform.py", line 51, in _async_process_single_integration_platform_component
    await integration_platform.process_platform(hass, component_name, platform)
  File "/usr/src/homeassistant/homeassistant/components/logbook/__init__.py", line 159, in _process_logbook_platform
    platform.async_describe_events(hass, _async_describe_event)
  File "/usr/src/homeassistant/homeassistant/components/doorbird/logbook.py", line 43, in async_describe_events
    door_station = data[DOOR_STATION]
KeyError: door_station
```

* py39
2022-07-07 20:46:19 +03:00
Glenn Waters
d3db4da11a ElkM1 bump lib to support Python 3.10 SSL (#74569)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-07 12:07:05 -05:00
Franck Nijhof
7cd68381f1 Search/replace RESULT_TYPE_* by FlowResultType enum (#74642) 2022-07-07 19:57:36 +03:00
Franck Nijhof
68ccb96089 Refactor CI (#74014) 2022-07-07 18:53:24 +02:00
J. Nick Koston
1dd9e705f2 Switch dispatcher to use async_run_hass_job (#74514)
* Switch dispatcher to use async_run_hass_job

- Since we already wrap all the callbacks in catch_log_exception
  we can use async_run_hass_job here

- The overhead of wrapping the call in a call_soon, queuing it
  and running it later usually exceeds the overhead of running
  the job itself

* fix size change during iteration

* fix out of order send

* fix missing mocking in unifi test

* Fix Legrand Home+ Control updating entities before the coordinator update had finished

* stray debug
2022-07-07 10:39:05 -05:00
Franck Nijhof
323d4a0e1b Use FlowResultType enum in Plugwise tests (#74638) 2022-07-07 17:25:23 +02:00
Franck Nijhof
c01f7d75d5 Fix mix of aiohttp and requests in ZAMG (#74628) 2022-07-07 16:59:49 +02:00
Diogo Gomes
4e2de2479a Add SetSystemDateandTime Button (#66419)
* add SetSystemDateandTime

* fix

* address review

* follow recommendation to set date and time on start

* add set date and time button test
2022-07-07 16:25:44 +02:00
Bram Kragten
29cbd9d469 Update frontend to 20220707.0 (#74625) 2022-07-07 16:19:56 +02:00
Franck Nijhof
dfdd037878 Update aiokafka to 0.7.2 (#74601) 2022-07-07 08:02:36 -06:00
epenet
6540ba6239 Remove hassio from mypy ignore list (#74603)
* Remove hassio from mypy ignore list

* Avoid if TYPE_CHECKING
2022-07-07 15:14:36 +02:00
Erik Montnemery
996544da2d Poll cast groups when media player is added or reconnected (#74610) 2022-07-07 14:51:16 +02:00
Franck Nijhof
2169b70874 Use FlowResultType enum in WLED tests (#74594) 2022-07-07 12:31:54 +02:00
Franck Nijhof
4fcf8280f6 Use FlowResultType enum in Tuya tests (#74596) 2022-07-07 12:31:19 +02:00
Franck Nijhof
19f33d205c Fix mix of aiohttp and requests in Bloomsky (#74598) 2022-07-07 12:27:25 +02:00
jjlawren
ba7ad1029c Remove legacy Sonos grouping services (#74476) 2022-07-07 12:17:13 +02:00
epenet
f19c542d6d Remove denonavr from mypy ignore list (#74580) 2022-07-07 12:14:46 +02:00
Franck Nijhof
4604694255 Add deprecation to PR template (#74583) 2022-07-07 11:40:17 +02:00
epenet
5ae593672e Remove google_assistant from mypy ignore list (#74587) 2022-07-07 11:35:45 +02:00
Franck Nijhof
4261595078 Update orjson to 3.7.7 (#74581) 2022-07-07 11:00:34 +02:00
J. Nick Koston
0c29b68cf8 Switch linear search to a dict lookup for ip bans (#74482) 2022-07-07 10:57:44 +02:00
puddly
ae295f1bf5 Add three decimal places of sub-second resolution to root logger timestamps (#74518) 2022-07-07 10:49:32 +02:00
jjlawren
d203cb0658 Minimize Sonos media_player.unjoin timeout (#74549) 2022-07-07 09:43:10 +02:00
Robert Hillis
681735b94c Bump aioskybell to 22.7.0 (#74559) 2022-07-07 09:39:37 +02:00
ufodone
e56357b4f2 Bump pyenvisalink version to 4.6 (#74561) 2022-07-07 09:33:32 +02:00
epenet
46f2abc38c Use generics in NextDNS (#74517)
Use generics in nextdns
2022-07-07 09:22:35 +02:00
Erik Montnemery
4a4dabaaa5 Fix openweathermap hourly forecast (#74578) 2022-07-07 09:03:43 +02:00
Joakim Plate
104d236646 fjaraskupan: Make sure we stop bleak on home assistant stop (#74545)
* Make sure we stop bleak on home assistant stop

* Fix typing

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-07 08:40:10 +02:00
Franck Nijhof
c303d6e717 Merge branch 'master' into dev 2022-07-07 08:25:19 +02:00
GitHub Action
235abb0c10 [ci skip] Translation update 2022-07-07 00:27:55 +00:00
c-soft
fef78939e1 Bump satel_integra to 0.3.7 to fix compat with python 3.10 (#74543) 2022-07-06 19:02:08 -05:00
J. Nick Koston
099e7e0637 Add oui for tplink es20m (#74526) 2022-07-07 01:20:29 +02:00
Robert Svensson
b071affcb4 Use pydeconz interface controls for cover platform (#74535) 2022-07-07 00:31:47 +02:00
epenet
5e63a44e71 Remove home_plus_control from mypy ignore list (#74448) 2022-07-06 22:45:54 +03:00
J. Nick Koston
332cf3cd2d Resolve and caches paths for CachingStaticResource in the executor (#74474) 2022-07-06 13:49:48 -05:00
Franck Nijhof
113ccfe6af Update Home Assistant Frontend to 20220706.0 (#74520)
Bump Home Assistant Frontend to 20220706.0
2022-07-06 19:31:57 +02:00
Franck Nijhof
d3d2e25090 Update homematicip to 1.0.3 (#74516) 2022-07-06 18:34:51 +02:00
Erik Montnemery
d6df26465f Fix openweathermap forecast sensors (#74513) 2022-07-06 17:49:06 +02:00
Gyosa3
85dac3d47e Add new alias for valid Celcius temperature units in Tuya (#74511) 2022-07-06 17:48:12 +02:00
Maciej Bieniek
41fd1a24bb Add NextDNS button platform (#74492)
* Add button platform

* Add button tests

* Fix typo

* Use Platform enum

* Fix coordinator type
2022-07-06 16:29:53 +02:00
Erik Montnemery
47048e4df4 Migrate aemet weather to native_* (#74494) 2022-07-06 16:22:45 +02:00
Maciej Bieniek
8ccb008834 Address NextDNS late review (#74503)
* Fix coordinator type

* Remove pylint disable
2022-07-06 14:29:26 +02:00
Marcel van der Veldt
c4855909fa Bump aioslimproto to 2.1.1 (#74499) 2022-07-06 13:35:25 +02:00
Lerosen
8b97271c26 Telegram bot map user data for callback query (#74302)
fix(component/telegram-bot): map user data for callback query
2022-07-06 11:21:15 +02:00
epenet
8fb9b45e42 Remove input_datetime from mypy ignore list (#74447)
* Remove input_datetime from mypy ignore list

* Use assert

* Use cast

* Use common logic for initial parsing
2022-07-06 10:26:24 +02:00
epenet
a27d483009 Remove unifi from mypy ignore list (#74456)
* Remove unifi diagnostics from mypy ignore list

* Remove unifi init from mypy ignore list

* Remove unifi device tracker from mypy ignore list

* Adjust doc string

* Adjust doc string

* Remove unifi entity base from mypy ignore list

* Keep comprehension

* Remove unifi config flow from mypy ignore list

* Fix circular import
2022-07-06 10:25:53 +02:00
Robert Svensson
ef6fd78ede Use FlowResultType in Axis config flow tests (#74496) 2022-07-06 09:54:26 +02:00
Guido Schmitz
1b37d9cbc6 Use FlowResultType in Devolo Home Control tests (#74490)
* Use FlowResultType in devolo Home Control tests

* Add return types
2022-07-06 09:52:41 +02:00
Robert Svensson
05416f56aa Use FlowResultType in deCONZ config flow tests (#74495) 2022-07-06 09:45:30 +02:00
J. Nick Koston
148035c8ca Bump aiohomekit to 0.7.20 (#74489) 2022-07-06 00:52:41 -05:00
J. Nick Koston
ce35324e73 Cache the response from config/entity_registry/list (#74443) 2022-07-05 21:11:51 -07:00
J. Nick Koston
8dfb0cb4e7 Fix SIGN_QUERY_PARAM in check in auth_middleware (#74479) 2022-07-05 21:09:33 -07:00
J. Nick Koston
3875fc5953 Cache the response from config/device_registry/list (#74483) 2022-07-05 21:08:39 -07:00
J. Nick Koston
df6892b908 Offer HKC local push control option when there are multiple zeroconf homekit matches (#74441) 2022-07-05 21:02:18 -07:00
J. Nick Koston
3d63d4fb36 Fix apple tv not coming online if connected before entity created (#74488) 2022-07-05 23:00:40 -05:00
Maciej Bieniek
a70cb8af78 Add NextDNS diagnostics platform (#74367)
Add diagnostics platform
2022-07-05 20:14:56 -07:00
Maciej Bieniek
a2a4361d6e Address late comment for NextDNS (#74365)
* Simplify code

* Use async_config_entry_first_refresh()

* Use lambda to get value
2022-07-05 20:12:09 -07:00
Maciej Bieniek
f5e3344bfc Add NextDNS system health (#74368)
Add system_health
2022-07-05 20:10:04 -07:00
GitHub Action
2e81be7721 [ci skip] Translation update 2022-07-06 00:27:50 +00:00
Erik Montnemery
a7158fee67 Revert "Migrate aemet to native_*" (#74471) 2022-07-05 22:24:08 +02:00
epenet
cbe9eda0a8 Remove lyric from mypy ignore list (#74451) 2022-07-05 13:24:18 -05:00
G Johansson
89ab78371f Bump Sensibo dependency (#74466) 2022-07-05 13:18:14 -05:00
J. Nick Koston
e4fd5100c4 Bump aiohomekit to 0.7.19 (#74463) 2022-07-05 19:43:38 +02:00
Zack Barett
87d7c024bf Bump Frontend to 20220705.0 (#74467) 2022-07-05 19:43:10 +02:00
J. Nick Koston
e7b2d4672c Avoid loading mqtt for type checking (#74464) 2022-07-05 10:27:27 -07:00
Robert Svensson
b590e51f88 Bump deCONZ dependency to v96 (#74460) 2022-07-05 18:54:03 +02:00
J. Nick Koston
f6cb2833ca Improve fans in homekit_controller (#74440) 2022-07-05 09:25:30 -05:00
Franck Nijhof
809f101f55 Re-introduce default scan interval in Scrape sensor (#74455) 2022-07-05 13:41:33 +02:00
epenet
a1a887ddac Add GeolocationEvent checks to pylint plugin (#74286) 2022-07-05 12:27:00 +02:00
David Brückmann
b5c5531180 Fix unreachable DenonAVR reporting as available when polling fails (#74344) 2022-07-05 12:25:20 +02:00
Arne Mauer
f975d30258 Fix multi_match to match with the IKEA airpurifier channel (#74432)
Fix multi_match for FilterLifeTime, device_run_time, filter_run_time sensors for ikea starkvind
2022-07-05 10:35:05 +02:00
J. Nick Koston
6422040262 Remove asserts from lutron_caseta async_attach_trigger (#74429) 2022-07-05 09:51:53 +02:00
dependabot[bot]
2ee5ac02cf Bump home-assistant/builder from 2022.06.2 to 2022.07.0 (#74446)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 09:50:36 +02:00
Rami Mosleh
b09aaba421 Add type hints and code cleanup for mikrotik (#74296)
* Add type hints and code cleanup for mikrotik

* update test and increase coverage

* move setup_mikrotik_entry to __init__.py
2022-07-05 09:16:38 +02:00
epenet
110d9232cd Remove melcloud from mypy ignore list (#74410) 2022-07-04 23:05:53 -07:00
GitHub Action
ebc8fba5bf [ci skip] Translation update 2022-07-05 00:23:09 +00:00
Ville Skyttä
dd6725b80a Replace pylint-strict-informational with fail-on=I (#74311)
`fail-on` is available since pylint 2.9.0.

https://pylint.pycqa.org/en/latest/user_guide/configuration/all-options.html#fail-on
https://github.com/PyCQA/pylint/issues/3251#issuecomment-1170941337

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-04 23:04:56 +02:00
epenet
a7da8673bf Use instance attributes in usgs_earthquakes_feed (#74403) 2022-07-04 21:26:33 +02:00
epenet
560fbd1a0e Remove lutron_caseta from mypy ignore list (#74427) 2022-07-04 14:10:26 -05:00
epenet
02a0b8b649 Add more type hints to demo (#74408) 2022-07-04 20:59:52 +02:00
J. Nick Koston
e02574c6d9 Bump pyunifiprotect to 4.0.9 (#74424) 2022-07-04 20:53:25 +02:00
epenet
1536936177 Remove harmony from mypy ignore list (#74425) 2022-07-04 13:39:14 -05:00
avee87
b3fec4c401 Typehints and cleanup for metoffice (#74338)
* Typehints and cleanup for metoffice

* add myself as owner
2022-07-04 19:12:41 +03:00
J. Nick Koston
b082764e30 Bump rflink to 0.0.63 (#74417) 2022-07-04 10:36:56 -05:00
Erik Montnemery
fde829c4f0 Correct climacell weather migration to native_* (#74409) 2022-07-04 16:59:36 +02:00
epenet
e3bd63934b Remove gree from mypy ignore list (#74411) 2022-07-04 16:47:35 +02:00
epenet
035e96a79b Remove system_health from mypy ignore list (#74415) 2022-07-04 16:46:59 +02:00
epenet
18840c8af5 Add instance attributes to GeolocationEvent (#74389) 2022-07-04 16:43:53 +02:00
J. Nick Koston
8d0e54d776 Use the orjson equivalent default encoder when save_json is passed the default encoder (#74377) 2022-07-04 08:41:23 -05:00
Erik Montnemery
4e1359e2cc Migrate ipma weather to native_* (#74387) 2022-07-04 15:18:57 +02:00
Erik Montnemery
5f5f1343cd Migrate accuweather weather to native_* (#74407) 2022-07-04 15:12:45 +02:00
Guido Schmitz
402a40c108 Remove explicit use of mock_zeroconf in devolo Home Network (#74390) 2022-07-04 14:59:24 +02:00
J. Nick Koston
6c3baf03aa Make dispatcher setup lazy (#74374) 2022-07-04 14:58:35 +02:00
Kevin Stillhammer
dd57d7d77f Support unload for multiple adguard entries (#74360) 2022-07-04 14:24:21 +02:00
Erik Montnemery
1c0ece6ac1 Migrate met_eireann weather to native_* (#74391)
Co-authored-by: avee87 <6134677+avee87@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-07-04 14:20:47 +02:00
epenet
14e5001d0c Cleanup known_devices.yaml in device_tracker tests (#74404) 2022-07-04 14:10:25 +02:00
Erik Montnemery
0768ed453d Migrate aemet to native_* (#74037) 2022-07-04 14:06:32 +02:00
Erik Montnemery
ab37f59345 Migrate meteoclimatic weather to native_* (#74392) 2022-07-04 13:38:53 +02:00
Franck Nijhof
b5387ed769 Update Pillow to 9.2.0 (#74371) 2022-07-04 13:16:01 +02:00
Shay Levy
f851877449 Bump aioimaplib to 1.0.0 (#74393) 2022-07-04 13:14:27 +02:00
Thanasis
227d8b69a7 Allowing for TOON cost sensors to work with Energy (#74315) 2022-07-04 13:11:36 +02:00
Erik Montnemery
07f677e9e8 Migrate knx weather to native_* (#74386) 2022-07-04 10:47:59 +02:00
J. Nick Koston
810b2a2bd6 Inline building entity registry dict (#74378) 2022-07-04 00:36:42 -05:00
Paulus Schoutsen
b62c0dcb32 Guard invalid data sensor significant change (#74369) 2022-07-03 22:03:13 -07:00
GitHub Action
269e414e84 [ci skip] Translation update 2022-07-04 00:27:42 +00:00
J. Nick Koston
02c7261b74 Small naming improvements and basic tests for ecobee 501s (#74370) 2022-07-03 16:32:30 -05:00
G Johansson
d91f5b77c8 Fix unique id issue for OpenWeatherMap (#74335) 2022-07-03 13:53:44 -07:00
mbo18
5bd9c5aee8 Migrate Meteo_france to native_* (#74297) 2022-07-03 13:49:03 -07:00
J. Nick Koston
40ed44cbea Fix esphome state mapping (#74337) 2022-07-03 13:48:34 -07:00
J. Nick Koston
30a5df5895 Append name char value from the service to HomeKit Controller Entities (#74359) 2022-07-03 15:47:54 -05:00
Dave T
737a1fd9fa Dont substitute user/pass for relative stream urls on generic camera (#74201)
Co-authored-by: Dave T <davet2001@users.noreply.github.com>
2022-07-03 13:26:00 -07:00
Franck Nijhof
57114c1a55 Add tomli as nightly build dependency (#74364) 2022-07-03 22:16:29 +02:00
Franck Nijhof
936b271448 Fix typo in nightly build (#74363) 2022-07-03 22:06:50 +02:00
Maciej Bieniek
84119eefaa Add NextDNS integration (#74150)
* Initial commit

* Update manifest

* Add first test

* Simplify init

* More tests

* Update tests

* More tests

* More tests

* Add tests for sensor platform

* More tests for sensor platform

* Add tests for system_health

* Fix typo

* Improve test coverage

* Improve test coverage

* Add tests for diagnostics

* Add comment

* Run hassfest

* Fix typo

* Run gen_requirements_all

* Fix tests

* Change key name in diagnostics

* Remove diagnostics and system_health platforms

* Bump library
2022-07-03 09:51:50 -07:00
Michał Huryn
e7e940afa5 Address Blebox uniapi review sidenotes (#74298)
* Changes accordingly to sidenotes given by @MartinHjelmare in pull #73834.

* Mini version bump according to notes in pull #73834.

* Error message fix, test adjustment.
2022-07-03 17:06:38 +02:00
Allen Porter
a4c6cd2fbe Cleanup Google Calendar unused test fixtures (#74353) 2022-07-03 17:05:38 +02:00
mbo18
5919082a53 Expose temperature and humidity sensors from AC (#74328)
Expose temperature and humidity from AC
2022-07-03 07:47:06 -07:00
shbatm
820a782f94 Onvif: bump onvif-zeep-async to 1.2.1 (#74341)
* Update requirements_all.txt

* Update requirements_test_all.txt

* Update manifest.json
2022-07-02 21:38:48 -04:00
GitHub Action
8581db1da7 [ci skip] Translation update 2022-07-03 00:26:52 +00:00
avee87
98052646f2 Remove visibility from metoffice weather (#74314)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-07-02 13:42:58 -07:00
avee87
08c2bd82bd Migrate metoffice to native_* (#74312) 2022-07-02 13:27:47 -07:00
Franck Nijhof
3bebbf7970 Add configuration directory to system health (#74318) 2022-07-02 13:10:38 -07:00
David Barshow
c24c6b38b1 Support climate reproduce state fan_mode (#74317)
climate reproduce state fan_mode support
2022-07-02 13:04:38 -07:00
Álvaro Fernández Rojas
d9b326dd48 Remove duplicated QNAP QSW format_mac call in config_flow (#74333)
qnap_qsw: config_flow: remove duplicated format_mac

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-07-02 22:44:20 +03:00
Shay Levy
d56a487169 Fix CI failure due to integrations leaving dirty known_devices.yaml (#74329) 2022-07-02 11:20:40 -07:00
epenet
64bfa20f6a Improve type hints in mqtt (#74295) 2022-07-02 20:15:54 +03:00
Franck Nijhof
6f67ae1dfc Add nightly frontend to nightly builds (#74327) 2022-07-02 09:04:35 -07:00
Frank
2464322dc5 Address HomeConnect late review (#74308)
* Small changes as requested in PR 58768

* Fix ValueError message formatting

* Use f-string

* Remove None as return type of _get_appliance_by_device_id

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-02 16:06:07 +02:00
atlflyer
da11cef29a Report error code in log when command fails (#74319) 2022-07-02 09:58:08 -04:00
Khole
255c3c5b9a Hive add entity categories to entities (#74324)
add enitity categories to entities
2022-07-02 08:33:10 -04:00
GitHub Action
647a023776 [ci skip] Translation update 2022-07-02 00:25:27 +00:00
Paulus Schoutsen
810e29f1ef Guard creating areas in onboarding (#74306) 2022-07-01 11:01:07 -07:00
J. Nick Koston
1288085b31 Revert scrape changes to 2022.6.6 (#74305) 2022-07-01 10:10:40 -07:00
epenet
9211ba8371 Improve type hints in template (#74294) 2022-07-01 10:05:37 -07:00
danaues
72917f1d2c Lutron caseta ra3keypads (#74217)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-07-01 10:39:00 -05:00
Álvaro Fernández Rojas
c0ea1a38a6 Fix QNAP QSW DHCP discover bugs (#74291)
qnqp_qsw: fix DHCP discover bugs

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-07-01 11:52:46 +02:00
Álvaro Fernández Rojas
a58301a97d Improve qnap_qsw firmware coordinator failures (#74288)
qnap_qsw: update: improve firmware coordinator failures

Address late comments from @MartinHjelmare (MartinHjelmare).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-07-01 09:48:59 +02:00
Paulus Schoutsen
c78c159d72 Add scan interval to scrape sensor (#74285) 2022-07-01 09:40:05 +02:00
BrianWithAHat
7094b7e62f Bump quantum_gateway to v0.0.8. (#74284) 2022-07-01 09:17:27 +02:00
J. Nick Koston
57b63db567 Improve typing for device_automation (#74282) 2022-07-01 01:23:00 -05:00
Stefan Rado
273e9b287f Add config flow for Bose SoundTouch (#72967)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-06-30 22:20:00 -07:00
J. Nick Koston
7655b84494 Fix key collision between platforms in esphome state updates (#74273) 2022-06-30 22:19:40 -07:00
Guido Schmitz
43595f7e17 Add light tests for devolo_home_control (#74183) 2022-06-30 21:08:21 -07:00
GitHub Action
3970639c34 [ci skip] Translation update 2022-07-01 00:27:03 +00:00
rappenze
7eae3691c2 Add device info to fibaro integration (#73352) 2022-06-30 14:57:35 -07:00
Alberto Geniola
73a0197cac Elmax/sensor platform (#64090) 2022-06-30 14:55:57 -07:00
epenet
2c171e30fa Add ClimateEntity checks to pylint plugin (#74275)
* Add ClimateEntity checks to pylint plugin

* Update pylint/plugins/hass_enforce_type_hints.py
2022-06-30 14:49:23 -07:00
Joakim Plate
11cdf542ac Bump pyRFXtrx to 0.30.0 (#74146) 2022-06-30 14:48:50 -07:00
Khole
4f842014ee Add ability to forget hive device when removing integration (#74144) 2022-06-30 14:47:02 -07:00
David F. Mulcahey
269fa14721 Fix bad conditional in ZHA logbook (#74277)
* Fix bad conditional in ZHA logbook

* change syntax
2022-06-30 23:59:35 +03:00
Christopher Hoage
dc559f2439 Bump venstarcolortouch to 0.17 (#74271) 2022-06-30 22:06:22 +02:00
epenet
f80d522c6a Add Camera checks to pylint plugin (#74264) 2022-06-30 21:50:57 +02:00
mbo18
24d2d62121 Add vacation mode to Template Alarm Control Panel (#74261) 2022-06-30 12:22:03 -07:00
Guido Schmitz
7656ca8313 Add presence detection to devolo_home_network (#72030) 2022-06-30 12:12:12 -07:00
epenet
8ef87205f9 Improve type hints in mqtt (#74247) 2022-06-30 21:11:45 +02:00
Rami Mosleh
9a9fea4423 Migrate glances unique_id to new format (#74033) 2022-06-30 12:10:19 -07:00
Álvaro Fernández Rojas
768b98ae77 Add QNAP QSW Update platform (#71019)
* qnap_qsw: add Update platform

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

* qnap_qsw: update: allow init if firmware coordinator fails

QSW API can return an error if update servers aren't reachable and this
prevents the integration from loading.

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

* tests: qnap_qsw: achieve 100% coverage

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-06-30 12:09:08 -07:00
Erik J. Olson
0caeeb56c5 Add Matrix.io HTML message format support (#69951) 2022-06-30 12:00:29 -07:00
epenet
1bfd8b1a76 Add enforce_type_hints to vscode tasks (#74227) 2022-06-30 20:49:41 +02:00
R. de Veen
3899c9e6d3 Links to Esphomelib.com is changed to esphome.io (#72680) 2022-06-30 20:27:31 +02:00
Franck Nijhof
e3d250a623 Do not pin numpy in wheels (#74268) 2022-06-30 20:12:58 +02:00
Zack Barett
382b5d5073 Bump frontend to 20220630.0 (#74266) 2022-06-30 11:01:23 -07:00
G Johansson
25a5ebe0c7 Met.no use native_* (#74259) 2022-06-30 10:47:29 -07:00
Maximilian
dc22726425 Optimize optionflow tests (#74262)
* Optimize optionflow tests

* Extend mocking
2022-06-30 19:45:11 +02:00
J. Nick Koston
2723ca0b85 Filter out CONF_SCAN_INTERVAL from scrape import (#74254) 2022-06-30 10:39:36 -07:00
Erik Montnemery
f05b4a0ca0 Fire event_mqtt_reloaded only after reload is completed (#74226) 2022-06-30 10:15:25 -07:00
Phil Bruckner
1bdd93cc77 Fix Life360 unload (#74263)
* Fix life360 async_unload_entry

* Update tracked_members when unloading config entry
2022-06-30 19:10:05 +02:00
Jesse Hills
f311d53c60 ESPHome use dhcp responses to update connection host of known devices (#74206)
* ESPHome use dhcp responses to update connection host of known devices

* Add test for dhcp

* Add another test to cover when there are no changes required
2022-06-30 10:07:03 -07:00
J. Nick Koston
ce03157f16 Add debug logging to esphome state updates (#74260) 2022-06-30 10:05:29 -07:00
Franck Nijhof
105b1b9d58 Update numpy to 1.23.0 (#74250) 2022-06-30 10:04:59 -07:00
David F. Mulcahey
8bcccb17f9 Fix ZHA events for logbook (#74245) 2022-06-30 10:03:39 -07:00
MasonCrawford
5fa3b90b2c Add config flow to lg_soundbar (#71153)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-06-30 10:00:39 -07:00
epenet
781e4571b2 Add CalendarEntity checks to pylint plugin (#74228)
* Add CalendarEntity checks to pylint plugin

* adjust air_quality ignore

* Mark state property as final
2022-06-30 19:00:34 +02:00
Paulus Schoutsen
7573dc34aa Treat thermostat unknown state like unavailable in alexa (#74220) 2022-06-30 10:00:10 -07:00
Pierre Ståhl
de700e7859 Make media_player.toggle turn on a standby device (#74221) 2022-06-30 09:59:46 -07:00
Jeef
d38e8e213a Fix intellifire climate control not needing a default fireplace (#74253) 2022-06-30 10:35:06 -05:00
Alex Henry
f5c6a6be3a Add config flow to AnthemAV integration (#53268)
* Add config flow to AnthemAV integration

* Add importing of existing configuration

* Change setting to optional and add default value

* Use entity attribute

* Reduce changes by removing additional media player properties

* Remove title from translation

* Refactor config flow and fix PR comments

* Fix a failing test because of wrong renaming

* Add typing and use existing class and enum

* Bump dependency to v1.3.1

* Remove unecessary async_reload_entry

* Fix requirements_test_all after rebase

* Add const for timeout and remove async_block in test

* Reapply CodeOwner and configflow after rebase

* Remove name from configflow

* Fix manifest prettier failure

* Simplify code and avoid catching broad exception

* Removed unused strings and translations

* Avoid asserting hass.data
2022-06-30 07:13:08 -07:00
epenet
57fd84e20c Improve type hints in demo (#74236) 2022-06-30 15:34:48 +02:00
Franck Nijhof
fdb7a23171 Update black to 22.6.0 (#74209)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-30 10:08:06 +02:00
Erik Montnemery
407da8c4b8 Correct native_pressure_unit for zamg weather (#74225) 2022-06-30 09:42:15 +02:00
Franck Nijhof
3a57f4363f Revert "Patch out life360 entry setup in tests" (#74223)
Revert "Patch out life360 entry setup in tests (#74212)"

This reverts commit ab6e92f996.
2022-06-30 09:13:25 +02:00
Marc Mueller
42d7f2a3b2 Update pylint to 2.14.4 (#74192) 2022-06-30 08:56:43 +02:00
Allen Porter
0cf922cc4e Allow legacy nest integration with no configuration.yaml (#74222) 2022-06-30 08:54:51 +02:00
Marc Mueller
48c5aab5ee Fix netgear method return type annotation (#74200) 2022-06-30 08:16:05 +02:00
Kevin Stillhammer
bef512c425 Split attributes into sensors for here_travel_time (#72405) 2022-06-29 22:09:52 -07:00
Franck Nijhof
555e9c6762 Fix input_number invalid state restore handling (#74213)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-29 22:06:35 -07:00
Franck Nijhof
f721b9e3df Fix clicksend request content type headers (#74189) 2022-06-29 20:43:14 -05:00
Franck Nijhof
42533ebbb3 Update requests to 2.28.1 (#74210) 2022-06-29 20:40:58 -05:00
Franck Nijhof
ab6e92f996 Patch out life360 entry setup in tests (#74212) 2022-06-29 17:35:49 -07:00
GitHub Action
721741281e [ci skip] Translation update 2022-06-30 00:23:07 +00:00
J. Nick Koston
e2fe1a1c5d Allow tuple subclasses to be json serialized (#74207) 2022-06-29 19:14:56 -05:00
Christopher Bailey
1555f40bad Add UniFi Protect views (#74190)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-29 18:10:38 -05:00
Shay Levy
0028dc46e6 Fix Shelly Duo RGBW color mode attribute (#74193) 2022-06-30 01:10:25 +02:00
Christopher Bailey
e4bd53b395 Fix duplicate key for motion sensor for UniFi Protect (#74202) 2022-06-30 00:52:54 +02:00
Franck Nijhof
fe68c15a4a Bump version to 2022.8.0dev0 (#74184) 2022-06-29 21:20:57 +03:00
Jeef
6127a9a041 Intellifire climate Entity (#70818)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-29 13:01:38 -05:00
8521 changed files with 242675 additions and 78672 deletions

View File

@@ -52,6 +52,7 @@ components: &components
- homeassistant/components/auth/**
- homeassistant/components/automation/**
- homeassistant/components/backup/**
- homeassistant/components/bluetooth/**
- homeassistant/components/cloud/**
- homeassistant/components/config/**
- homeassistant/components/configurator/**
@@ -87,6 +88,7 @@ components: &components
- homeassistant/components/persistent_notification/**
- homeassistant/components/person/**
- homeassistant/components/recorder/**
- homeassistant/components/repairs/**
- homeassistant/components/safe_mode/**
- homeassistant/components/script/**
- homeassistant/components/shopping_list/**

View File

@@ -8,9 +8,6 @@ omit =
# omit pieces of code that rely on external devices being present
homeassistant/components/acer_projector/*
homeassistant/components/actiontec/const.py
homeassistant/components/actiontec/device_tracker.py
homeassistant/components/actiontec/model.py
homeassistant/components/acmeda/__init__.py
homeassistant/components/acmeda/base.py
homeassistant/components/acmeda/const.py
@@ -19,10 +16,14 @@ omit =
homeassistant/components/acmeda/helpers.py
homeassistant/components/acmeda/hub.py
homeassistant/components/acmeda/sensor.py
homeassistant/components/actiontec/const.py
homeassistant/components/actiontec/device_tracker.py
homeassistant/components/actiontec/model.py
homeassistant/components/adax/__init__.py
homeassistant/components/adax/climate.py
homeassistant/components/adguard/__init__.py
homeassistant/components/adguard/const.py
homeassistant/components/adguard/entity.py
homeassistant/components/adguard/sensor.py
homeassistant/components/adguard/switch.py
homeassistant/components/ads/*
@@ -55,18 +56,23 @@ omit =
homeassistant/components/ambient_station/sensor.py
homeassistant/components/amcrest/*
homeassistant/components/ampio/*
homeassistant/components/android_ip_webcam/*
homeassistant/components/android_ip_webcam/binary_sensor.py
homeassistant/components/android_ip_webcam/sensor.py
homeassistant/components/android_ip_webcam/switch.py
homeassistant/components/androidtv/diagnostics.py
homeassistant/components/anel_pwrctrl/switch.py
homeassistant/components/anthemav/media_player.py
homeassistant/components/apcupsd/*
homeassistant/components/apcupsd/__init__.py
homeassistant/components/apcupsd/binary_sensor.py
homeassistant/components/apcupsd/sensor.py
homeassistant/components/apple_tv/__init__.py
homeassistant/components/apple_tv/browse_media.py
homeassistant/components/apple_tv/media_player.py
homeassistant/components/apple_tv/remote.py
homeassistant/components/aqualogic/*
homeassistant/components/aquostv/media_player.py
homeassistant/components/arcam_fmj/media_player.py
homeassistant/components/arcam_fmj/__init__.py
homeassistant/components/arcam_fmj/media_player.py
homeassistant/components/arest/binary_sensor.py
homeassistant/components/arest/sensor.py
homeassistant/components/arest/switch.py
@@ -103,9 +109,9 @@ omit =
homeassistant/components/baf/switch.py
homeassistant/components/baidu/tts.py
homeassistant/components/balboa/__init__.py
homeassistant/components/beewi_smartclim/sensor.py
homeassistant/components/bbox/device_tracker.py
homeassistant/components/bbox/sensor.py
homeassistant/components/beewi_smartclim/sensor.py
homeassistant/components/bitcoin/sensor.py
homeassistant/components/bizkaibus/sensor.py
homeassistant/components/blink/__init__.py
@@ -135,7 +141,10 @@ omit =
homeassistant/components/bosch_shc/sensor.py
homeassistant/components/bosch_shc/switch.py
homeassistant/components/braviatv/__init__.py
homeassistant/components/braviatv/button.py
homeassistant/components/braviatv/const.py
homeassistant/components/braviatv/coordinator.py
homeassistant/components/braviatv/entity.py
homeassistant/components/braviatv/media_player.py
homeassistant/components/braviatv/remote.py
homeassistant/components/broadlink/__init__.py
@@ -147,8 +156,8 @@ omit =
homeassistant/components/brottsplatskartan/sensor.py
homeassistant/components/browser/*
homeassistant/components/brunt/__init__.py
homeassistant/components/brunt/cover.py
homeassistant/components/brunt/const.py
homeassistant/components/brunt/cover.py
homeassistant/components/bsblan/climate.py
homeassistant/components/bt_home_hub_5/device_tracker.py
homeassistant/components/bt_smarthub/device_tracker.py
@@ -175,20 +184,20 @@ omit =
homeassistant/components/concord232/alarm_control_panel.py
homeassistant/components/concord232/binary_sensor.py
homeassistant/components/control4/__init__.py
homeassistant/components/control4/light.py
homeassistant/components/control4/const.py
homeassistant/components/control4/director_utils.py
homeassistant/components/control4/light.py
homeassistant/components/coolmaster/__init__.py
homeassistant/components/coolmaster/climate.py
homeassistant/components/coolmaster/const.py
homeassistant/components/cppm_tracker/device_tracker.py
homeassistant/components/crownstone/__init__.py
homeassistant/components/crownstone/const.py
homeassistant/components/crownstone/listeners.py
homeassistant/components/crownstone/helpers.py
homeassistant/components/crownstone/devices.py
homeassistant/components/crownstone/entry_manager.py
homeassistant/components/crownstone/helpers.py
homeassistant/components/crownstone/light.py
homeassistant/components/crownstone/listeners.py
homeassistant/components/cups/sensor.py
homeassistant/components/currencylayer/sensor.py
homeassistant/components/daikin/__init__.py
@@ -210,7 +219,6 @@ omit =
homeassistant/components/denonavr/media_player.py
homeassistant/components/denonavr/receiver.py
homeassistant/components/deutsche_bahn/sensor.py
homeassistant/components/devolo_home_control/light.py
homeassistant/components/devolo_home_control/sensor.py
homeassistant/components/devolo_home_control/switch.py
homeassistant/components/digital_ocean/*
@@ -232,7 +240,9 @@ omit =
homeassistant/components/doorbird/util.py
homeassistant/components/dovado/*
homeassistant/components/downloader/*
homeassistant/components/dsmr_reader/*
homeassistant/components/dsmr_reader/__init__.py
homeassistant/components/dsmr_reader/definitions.py
homeassistant/components/dsmr_reader/sensor.py
homeassistant/components/dte_energy_bridge/sensor.py
homeassistant/components/dublin_bus_transport/sensor.py
homeassistant/components/dunehd/__init__.py
@@ -257,9 +267,14 @@ omit =
homeassistant/components/econet/sensor.py
homeassistant/components/econet/water_heater.py
homeassistant/components/ecovacs/*
homeassistant/components/edl21/*
homeassistant/components/ecowitt/__init__.py
homeassistant/components/ecowitt/binary_sensor.py
homeassistant/components/ecowitt/diagnostics.py
homeassistant/components/ecowitt/entity.py
homeassistant/components/ecowitt/sensor.py
homeassistant/components/eddystone_temperature/sensor.py
homeassistant/components/edimax/switch.py
homeassistant/components/edl21/*
homeassistant/components/egardia/*
homeassistant/components/eight_sleep/__init__.py
homeassistant/components/eight_sleep/binary_sensor.py
@@ -267,6 +282,7 @@ omit =
homeassistant/components/eliqonline/sensor.py
homeassistant/components/elkm1/__init__.py
homeassistant/components/elkm1/alarm_control_panel.py
homeassistant/components/elkm1/binary_sensor.py
homeassistant/components/elkm1/climate.py
homeassistant/components/elkm1/discovery.py
homeassistant/components/elkm1/light.py
@@ -274,6 +290,7 @@ omit =
homeassistant/components/elkm1/sensor.py
homeassistant/components/elkm1/switch.py
homeassistant/components/elmax/__init__.py
homeassistant/components/elmax/binary_sensor.py
homeassistant/components/elmax/common.py
homeassistant/components/elmax/const.py
homeassistant/components/elmax/switch.py
@@ -306,12 +323,17 @@ omit =
homeassistant/components/epson/media_player.py
homeassistant/components/epsonworkforce/sensor.py
homeassistant/components/eq3btsmart/climate.py
homeassistant/components/escea/__init__.py
homeassistant/components/escea/climate.py
homeassistant/components/escea/discovery.py
homeassistant/components/esphome/__init__.py
homeassistant/components/esphome/binary_sensor.py
homeassistant/components/esphome/bluetooth/*
homeassistant/components/esphome/button.py
homeassistant/components/esphome/camera.py
homeassistant/components/esphome/climate.py
homeassistant/components/esphome/cover.py
homeassistant/components/esphome/domain_data.py
homeassistant/components/esphome/entry_data.py
homeassistant/components/esphome/fan.py
homeassistant/components/esphome/light.py
@@ -326,16 +348,16 @@ omit =
homeassistant/components/everlights/light.py
homeassistant/components/evohome/*
homeassistant/components/ezviz/__init__.py
homeassistant/components/ezviz/camera.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/const.py
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/binary_sensor.py
homeassistant/components/ezviz/camera.py
homeassistant/components/ezviz/const.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/sensor.py
homeassistant/components/ezviz/switch.py
homeassistant/components/familyhub/camera.py
homeassistant/components/faa_delays/__init__.py
homeassistant/components/faa_delays/binary_sensor.py
homeassistant/components/familyhub/camera.py
homeassistant/components/fastdotcom/*
homeassistant/components/ffmpeg/camera.py
homeassistant/components/fibaro/__init__.py
@@ -383,9 +405,9 @@ omit =
homeassistant/components/flick_electric/sensor.py
homeassistant/components/flock/notify.py
homeassistant/components/flume/__init__.py
homeassistant/components/flume/coordinator.py
homeassistant/components/flume/entity.py
homeassistant/components/flume/sensor.py
homeassistant/components/flunearyou/__init__.py
homeassistant/components/flunearyou/sensor.py
homeassistant/components/folder/sensor.py
homeassistant/components/folder_watcher/*
homeassistant/components/foobot/sensor.py
@@ -405,8 +427,8 @@ omit =
homeassistant/components/fritz/services.py
homeassistant/components/fritz/switch.py
homeassistant/components/fritzbox_callmonitor/__init__.py
homeassistant/components/fritzbox_callmonitor/const.py
homeassistant/components/fritzbox_callmonitor/base.py
homeassistant/components/fritzbox_callmonitor/const.py
homeassistant/components/fritzbox_callmonitor/sensor.py
homeassistant/components/frontier_silicon/const.py
homeassistant/components/frontier_silicon/media_player.py
@@ -428,10 +450,10 @@ omit =
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
homeassistant/components/goodwe/button.py
homeassistant/components/goodwe/const.py
homeassistant/components/goodwe/number.py
homeassistant/components/goodwe/select.py
@@ -439,16 +461,16 @@ omit =
homeassistant/components/google_cloud/tts.py
homeassistant/components/google_maps/device_tracker.py
homeassistant/components/google_pubsub/__init__.py
homeassistant/components/gpmdp/media_player.py
homeassistant/components/gpsd/sensor.py
homeassistant/components/greenwave/light.py
homeassistant/components/group/notify.py
homeassistant/components/growatt_server/sensor.py
homeassistant/components/growatt_server/__init__.py
homeassistant/components/growatt_server/sensor.py
homeassistant/components/gstreamer/media_player.py
homeassistant/components/gtfs/sensor.py
homeassistant/components/guardian/__init__.py
homeassistant/components/guardian/binary_sensor.py
homeassistant/components/guardian/button.py
homeassistant/components/guardian/sensor.py
homeassistant/components/guardian/switch.py
homeassistant/components/guardian/util.py
@@ -466,7 +488,6 @@ omit =
homeassistant/components/harmony/remote.py
homeassistant/components/harmony/util.py
homeassistant/components/haveibeenpwned/sensor.py
homeassistant/components/hdmi_cec/*
homeassistant/components/heatmiser/climate.py
homeassistant/components/hikvision/binary_sensor.py
homeassistant/components/hikvisioncam/switch.py
@@ -490,9 +511,9 @@ omit =
homeassistant/components/home_connect/light.py
homeassistant/components/home_connect/sensor.py
homeassistant/components/home_connect/switch.py
homeassistant/components/homematic/*
homeassistant/components/home_plus_control/api.py
homeassistant/components/home_plus_control/switch.py
homeassistant/components/homematic/*
homeassistant/components/homeworks/*
homeassistant/components/honeywell/__init__.py
homeassistant/components/honeywell/climate.py
@@ -516,9 +537,9 @@ omit =
homeassistant/components/hunterdouglas_powerview/sensor.py
homeassistant/components/hunterdouglas_powerview/shade_data.py
homeassistant/components/hunterdouglas_powerview/util.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hvv_departures/binary_sensor.py
homeassistant/components/hvv_departures/sensor.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hydrawise/*
homeassistant/components/ialarm/alarm_control_panel.py
homeassistant/components/iammeter/sensor.py
@@ -531,9 +552,6 @@ omit =
homeassistant/components/icloud/account.py
homeassistant/components/icloud/device_tracker.py
homeassistant/components/icloud/sensor.py
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/izone/__init__.py
homeassistant/components/idteck_prox/*
homeassistant/components/ifttt/__init__.py
homeassistant/components/ifttt/alarm_control_panel.py
@@ -542,6 +560,7 @@ omit =
homeassistant/components/ihc/*
homeassistant/components/imap/sensor.py
homeassistant/components/imap_email_content/sensor.py
homeassistant/components/incomfort/*
homeassistant/components/insteon/binary_sensor.py
homeassistant/components/insteon/climate.py
homeassistant/components/insteon/const.py
@@ -554,12 +573,13 @@ omit =
homeassistant/components/insteon/switch.py
homeassistant/components/insteon/utils.py
homeassistant/components/intellifire/__init__.py
homeassistant/components/intellifire/coordinator.py
homeassistant/components/intellifire/binary_sensor.py
homeassistant/components/intellifire/climate.py
homeassistant/components/intellifire/coordinator.py
homeassistant/components/intellifire/entity.py
homeassistant/components/intellifire/fan.py
homeassistant/components/intellifire/sensor.py
homeassistant/components/intellifire/switch.py
homeassistant/components/intellifire/entity.py
homeassistant/components/incomfort/*
homeassistant/components/intesishome/*
homeassistant/components/ios/__init__.py
homeassistant/components/ios/notify.py
@@ -569,7 +589,7 @@ omit =
homeassistant/components/iqvia/sensor.py
homeassistant/components/irish_rail_transport/sensor.py
homeassistant/components/iss/__init__.py
homeassistant/components/iss/binary_sensor.py
homeassistant/components/iss/sensor.py
homeassistant/components/isy994/__init__.py
homeassistant/components/isy994/binary_sensor.py
homeassistant/components/isy994/climate.py
@@ -585,6 +605,9 @@ omit =
homeassistant/components/isy994/util.py
homeassistant/components/itach/remote.py
homeassistant/components/itunes/media_player.py
homeassistant/components/izone/__init__.py
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/jellyfin/__init__.py
homeassistant/components/jellyfin/media_source.py
homeassistant/components/joaoapps_join/*
@@ -595,6 +618,10 @@ omit =
homeassistant/components/juicenet/number.py
homeassistant/components/juicenet/sensor.py
homeassistant/components/juicenet/switch.py
homeassistant/components/justnimbus/const.py
homeassistant/components/justnimbus/coordinator.py
homeassistant/components/justnimbus/entity.py
homeassistant/components/justnimbus/sensor.py
homeassistant/components/kaiterra/*
homeassistant/components/kankun/switch.py
homeassistant/components/keba/*
@@ -606,6 +633,11 @@ omit =
homeassistant/components/kef/*
homeassistant/components/keyboard/*
homeassistant/components/keyboard_remote/*
homeassistant/components/keymitt_ble/__init__.py
homeassistant/components/keymitt_ble/const.py
homeassistant/components/keymitt_ble/entity.py
homeassistant/components/keymitt_ble/switch.py
homeassistant/components/keymitt_ble/coordinator.py
homeassistant/components/kira/*
homeassistant/components/kiwi/lock.py
homeassistant/components/kodi/__init__.py
@@ -625,7 +657,8 @@ omit =
homeassistant/components/kostal_plenticore/switch.py
homeassistant/components/kwb/sensor.py
homeassistant/components/lacrosse/sensor.py
homeassistant/components/lametric/*
homeassistant/components/lametric/notify.py
homeassistant/components/lametric/number.py
homeassistant/components/lannouncer/notify.py
homeassistant/components/lastfm/sensor.py
homeassistant/components/launch_library/__init__.py
@@ -636,15 +669,18 @@ omit =
homeassistant/components/lcn/helpers.py
homeassistant/components/lcn/scene.py
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/media_player.py
homeassistant/components/lidarr/__init__.py
homeassistant/components/lidarr/coordinator.py
homeassistant/components/lidarr/sensor.py
homeassistant/components/life360/__init__.py
homeassistant/components/life360/const.py
homeassistant/components/life360/coordinator.py
homeassistant/components/life360/device_tracker.py
homeassistant/components/lifx/__init__.py
homeassistant/components/lifx/const.py
homeassistant/components/lifx/light.py
homeassistant/components/lifx_cloud/scene.py
homeassistant/components/lightwave/*
homeassistant/components/limitlessled/light.py
@@ -659,13 +695,13 @@ omit =
homeassistant/components/logi_circle/sensor.py
homeassistant/components/london_underground/sensor.py
homeassistant/components/lookin/__init__.py
homeassistant/components/lookin/climate.py
homeassistant/components/lookin/coordinator.py
homeassistant/components/lookin/entity.py
homeassistant/components/lookin/light.py
homeassistant/components/lookin/media_player.py
homeassistant/components/lookin/models.py
homeassistant/components/lookin/sensor.py
homeassistant/components/lookin/climate.py
homeassistant/components/lookin/media_player.py
homeassistant/components/lookin/light.py
homeassistant/components/luci/device_tracker.py
homeassistant/components/luftdaten/sensor.py
homeassistant/components/lupusec/*
@@ -698,6 +734,9 @@ omit =
homeassistant/components/melcloud/const.py
homeassistant/components/melcloud/sensor.py
homeassistant/components/melcloud/water_heater.py
homeassistant/components/melnor/__init__.py
homeassistant/components/melnor/const.py
homeassistant/components/melnor/models.py
homeassistant/components/message_bird/notify.py
homeassistant/components/met/weather.py
homeassistant/components/met_eireann/__init__.py
@@ -716,7 +755,6 @@ omit =
homeassistant/components/microsoft/tts.py
homeassistant/components/miflora/sensor.py
homeassistant/components/mikrotik/hub.py
homeassistant/components/mikrotik/device_tracker.py
homeassistant/components/mill/climate.py
homeassistant/components/mill/const.py
homeassistant/components/mill/sensor.py
@@ -748,9 +786,11 @@ omit =
homeassistant/components/mullvad/binary_sensor.py
homeassistant/components/mutesync/__init__.py
homeassistant/components/mutesync/binary_sensor.py
homeassistant/components/nest/const.py
homeassistant/components/mvglive/sensor.py
homeassistant/components/mycroft/*
homeassistant/components/myq/__init__.py
homeassistant/components/myq/cover.py
homeassistant/components/myq/light.py
homeassistant/components/mysensors/__init__.py
homeassistant/components/mysensors/binary_sensor.py
homeassistant/components/mysensors/climate.py
@@ -766,9 +806,6 @@ omit =
homeassistant/components/mystrom/binary_sensor.py
homeassistant/components/mystrom/light.py
homeassistant/components/mystrom/switch.py
homeassistant/components/myq/__init__.py
homeassistant/components/myq/cover.py
homeassistant/components/myq/light.py
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/__init__.py
homeassistant/components/nanoleaf/button.py
@@ -784,6 +821,7 @@ omit =
homeassistant/components/neato/switch.py
homeassistant/components/neato/vacuum.py
homeassistant/components/nederlandse_spoorwegen/sensor.py
homeassistant/components/nest/const.py
homeassistant/components/nest/legacy/*
homeassistant/components/netdata/sensor.py
homeassistant/components/netgear/__init__.py
@@ -796,36 +834,44 @@ omit =
homeassistant/components/netgear_lte/*
homeassistant/components/netio/switch.py
homeassistant/components/neurio_energy/sensor.py
homeassistant/components/nexia/entity.py
homeassistant/components/nexia/climate.py
homeassistant/components/nexia/entity.py
homeassistant/components/nexia/switch.py
homeassistant/components/nextcloud/*
homeassistant/components/nfandroidtv/__init__.py
homeassistant/components/nfandroidtv/notify.py
homeassistant/components/nibe_heatpump/__init__.py
homeassistant/components/nibe_heatpump/binary_sensor.py
homeassistant/components/nibe_heatpump/number.py
homeassistant/components/nibe_heatpump/select.py
homeassistant/components/nibe_heatpump/sensor.py
homeassistant/components/nibe_heatpump/switch.py
homeassistant/components/niko_home_control/light.py
homeassistant/components/nilu/air_quality.py
homeassistant/components/nissan_leaf/*
homeassistant/components/nmap_tracker/__init__.py
homeassistant/components/nmap_tracker/device_tracker.py
homeassistant/components/nmbs/sensor.py
homeassistant/components/noaa_tides/sensor.py
homeassistant/components/nobo_hub/__init__.py
homeassistant/components/nobo_hub/climate.py
homeassistant/components/norway_air/air_quality.py
homeassistant/components/notify_events/notify.py
homeassistant/components/notion/__init__.py
homeassistant/components/notion/binary_sensor.py
homeassistant/components/notion/sensor.py
homeassistant/components/noaa_tides/sensor.py
homeassistant/components/norway_air/air_quality.py
homeassistant/components/notify_events/notify.py
homeassistant/components/nsw_fuel_station/sensor.py
homeassistant/components/nuki/__init__.py
homeassistant/components/nuki/const.py
homeassistant/components/nuki/binary_sensor.py
homeassistant/components/nuki/const.py
homeassistant/components/nuki/lock.py
homeassistant/components/nut/diagnostics.py
homeassistant/components/nx584/alarm_control_panel.py
homeassistant/components/nzbget/coordinator.py
homeassistant/components/oasa_telematics/sensor.py
homeassistant/components/obihai/*
homeassistant/components/octoprint/__init__.py
homeassistant/components/oem/climate.py
homeassistant/components/oasa_telematics/sensor.py
homeassistant/components/ohmconnect/sensor.py
homeassistant/components/ombi/*
homeassistant/components/omnilogic/__init__.py
@@ -850,6 +896,8 @@ omit =
homeassistant/components/open_meteo/weather.py
homeassistant/components/opencv/*
homeassistant/components/openevse/sensor.py
homeassistant/components/openexchangerates/__init__.py
homeassistant/components/openexchangerates/coordinator.py
homeassistant/components/openexchangerates/sensor.py
homeassistant/components/opengarage/__init__.py
homeassistant/components/opengarage/binary_sensor.py
@@ -857,8 +905,8 @@ omit =
homeassistant/components/opengarage/entity.py
homeassistant/components/opengarage/sensor.py
homeassistant/components/openhome/__init__.py
homeassistant/components/openhome/media_player.py
homeassistant/components/openhome/const.py
homeassistant/components/openhome/media_player.py
homeassistant/components/opensensemap/air_quality.py
homeassistant/components/opensky/sensor.py
homeassistant/components/opentherm_gw/__init__.py
@@ -883,9 +931,9 @@ omit =
homeassistant/components/overkiz/button.py
homeassistant/components/overkiz/climate.py
homeassistant/components/overkiz/climate_entities/*
homeassistant/components/overkiz/coordinator.py
homeassistant/components/overkiz/cover.py
homeassistant/components/overkiz/cover_entities/*
homeassistant/components/overkiz/coordinator.py
homeassistant/components/overkiz/diagnostics.py
homeassistant/components/overkiz/entity.py
homeassistant/components/overkiz/executor.py
@@ -914,8 +962,8 @@ omit =
homeassistant/components/picotts/tts.py
homeassistant/components/pilight/*
homeassistant/components/ping/__init__.py
homeassistant/components/ping/const.py
homeassistant/components/ping/binary_sensor.py
homeassistant/components/ping/const.py
homeassistant/components/ping/device_tracker.py
homeassistant/components/pioneer/media_player.py
homeassistant/components/pjlink/media_player.py
@@ -927,7 +975,6 @@ omit =
homeassistant/components/plex/cast.py
homeassistant/components/plex/media_player.py
homeassistant/components/plex/view.py
homeassistant/components/plugwise/select.py
homeassistant/components/plum_lightpad/light.py
homeassistant/components/pocketcasts/sensor.py
homeassistant/components/point/__init__.py
@@ -935,13 +982,13 @@ omit =
homeassistant/components/point/binary_sensor.py
homeassistant/components/point/sensor.py
homeassistant/components/poolsense/__init__.py
homeassistant/components/poolsense/sensor.py
homeassistant/components/poolsense/binary_sensor.py
homeassistant/components/poolsense/sensor.py
homeassistant/components/powerwall/__init__.py
homeassistant/components/proliphix/climate.py
homeassistant/components/progettihwsw/__init__.py
homeassistant/components/progettihwsw/binary_sensor.py
homeassistant/components/progettihwsw/switch.py
homeassistant/components/proliphix/climate.py
homeassistant/components/prowl/notify.py
homeassistant/components/proxmoxve/*
homeassistant/components/proxy/camera.py
@@ -962,23 +1009,25 @@ omit =
homeassistant/components/rachio/entity.py
homeassistant/components/rachio/switch.py
homeassistant/components/rachio/webhooks.py
homeassistant/components/radarr/sensor.py
homeassistant/components/radio_browser/__init__.py
homeassistant/components/radio_browser/media_source.py
homeassistant/components/radiotherm/__init__.py
homeassistant/components/radiotherm/entity.py
homeassistant/components/radiotherm/climate.py
homeassistant/components/radiotherm/coordinator.py
homeassistant/components/radiotherm/data.py
homeassistant/components/radiotherm/entity.py
homeassistant/components/radiotherm/switch.py
homeassistant/components/radiotherm/util.py
homeassistant/components/rainbird/*
homeassistant/components/raincloud/*
homeassistant/components/rainmachine/__init__.py
homeassistant/components/rainmachine/binary_sensor.py
homeassistant/components/rainmachine/button.py
homeassistant/components/rainmachine/model.py
homeassistant/components/rainmachine/select.py
homeassistant/components/rainmachine/sensor.py
homeassistant/components/rainmachine/switch.py
homeassistant/components/rainmachine/update.py
homeassistant/components/rainmachine/util.py
homeassistant/components/raspyrfm/*
homeassistant/components/recollect_waste/__init__.py
@@ -988,9 +1037,9 @@ omit =
homeassistant/components/reddit/*
homeassistant/components/rejseplanen/sensor.py
homeassistant/components/remember_the_milk/__init__.py
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/repetier/__init__.py
homeassistant/components/repetier/sensor.py
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/rest/notify.py
homeassistant/components/rest/switch.py
homeassistant/components/rfxtrx/diagnostics.py
@@ -1052,8 +1101,6 @@ omit =
homeassistant/components/sesame/lock.py
homeassistant/components/seven_segments/image_processing.py
homeassistant/components/seventeentrack/sensor.py
homeassistant/components/shiftr/*
homeassistant/components/shodan/sensor.py
homeassistant/components/shelly/__init__.py
homeassistant/components/shelly/binary_sensor.py
homeassistant/components/shelly/climate.py
@@ -1062,15 +1109,26 @@ omit =
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
homeassistant/components/sia/alarm_control_panel.py
homeassistant/components/sia/binary_sensor.py
homeassistant/components/sia/const.py
homeassistant/components/sia/hub.py
homeassistant/components/sia/sia_entity_base.py
homeassistant/components/sia/utils.py
homeassistant/components/sigfox/sensor.py
homeassistant/components/simplepush/__init__.py
homeassistant/components/simplepush/notify.py
homeassistant/components/simplisafe/__init__.py
homeassistant/components/simplisafe/alarm_control_panel.py
homeassistant/components/simplisafe/binary_sensor.py
homeassistant/components/simplisafe/button.py
homeassistant/components/simplisafe/lock.py
homeassistant/components/simplisafe/sensor.py
homeassistant/components/simulated/sensor.py
homeassistant/components/sinch/*
homeassistant/components/sisyphus/*
homeassistant/components/sky_hub/*
homeassistant/components/skybeacon/sensor.py
@@ -1084,15 +1142,9 @@ omit =
homeassistant/components/skybell/switch.py
homeassistant/components/slack/__init__.py
homeassistant/components/slack/notify.py
homeassistant/components/sia/__init__.py
homeassistant/components/sia/alarm_control_panel.py
homeassistant/components/sia/binary_sensor.py
homeassistant/components/sia/const.py
homeassistant/components/sia/hub.py
homeassistant/components/sia/utils.py
homeassistant/components/sia/sia_entity_base.py
homeassistant/components/sinch/*
homeassistant/components/slide/*
homeassistant/components/slimproto/__init__.py
homeassistant/components/slimproto/media_player.py
homeassistant/components/sma/__init__.py
homeassistant/components/sma/sensor.py
homeassistant/components/smappee/__init__.py
@@ -1109,7 +1161,6 @@ omit =
homeassistant/components/smtp/notify.py
homeassistant/components/snapcast/*
homeassistant/components/snmp/*
homeassistant/components/sochain/sensor.py
homeassistant/components/solaredge/__init__.py
homeassistant/components/solaredge/coordinator.py
homeassistant/components/solaredge/sensor.py
@@ -1148,8 +1199,6 @@ omit =
homeassistant/components/spotify/media_player.py
homeassistant/components/spotify/system_health.py
homeassistant/components/spotify/util.py
homeassistant/components/slimproto/__init__.py
homeassistant/components/slimproto/media_player.py
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
@@ -1171,21 +1220,29 @@ omit =
homeassistant/components/streamlabswater/*
homeassistant/components/suez_water/*
homeassistant/components/supervisord/sensor.py
homeassistant/components/supla/*
homeassistant/components/surepetcare/__init__.py
homeassistant/components/surepetcare/entity.py
homeassistant/components/surepetcare/binary_sensor.py
homeassistant/components/surepetcare/entity.py
homeassistant/components/surepetcare/sensor.py
homeassistant/components/swiss_hydrological_data/sensor.py
homeassistant/components/swiss_public_transport/sensor.py
homeassistant/components/swisscom/device_tracker.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switchbot/binary_sensor.py
homeassistant/components/switchbee/__init__.py
homeassistant/components/switchbee/button.py
homeassistant/components/switchbee/coordinator.py
homeassistant/components/switchbee/entity.py
homeassistant/components/switchbee/light.py
homeassistant/components/switchbee/switch.py
homeassistant/components/switchbot/__init__.py
homeassistant/components/switchbot/binary_sensor.py
homeassistant/components/switchbot/const.py
homeassistant/components/switchbot/entity.py
homeassistant/components/switchbot/cover.py
homeassistant/components/switchbot/sensor.py
homeassistant/components/switchbot/coordinator.py
homeassistant/components/switchbot/cover.py
homeassistant/components/switchbot/entity.py
homeassistant/components/switchbot/light.py
homeassistant/components/switchbot/sensor.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switchmate/switch.py
homeassistant/components/syncthing/__init__.py
homeassistant/components/syncthing/sensor.py
@@ -1197,9 +1254,9 @@ omit =
homeassistant/components/synology_dsm/binary_sensor.py
homeassistant/components/synology_dsm/button.py
homeassistant/components/synology_dsm/camera.py
homeassistant/components/synology_dsm/common.py
homeassistant/components/synology_dsm/coordinator.py
homeassistant/components/synology_dsm/diagnostics.py
homeassistant/components/synology_dsm/common.py
homeassistant/components/synology_dsm/entity.py
homeassistant/components/synology_dsm/sensor.py
homeassistant/components/synology_dsm/service.py
@@ -1211,6 +1268,7 @@ omit =
homeassistant/components/system_bridge/binary_sensor.py
homeassistant/components/system_bridge/const.py
homeassistant/components/system_bridge/coordinator.py
homeassistant/components/system_bridge/media_source.py
homeassistant/components/system_bridge/sensor.py
homeassistant/components/systemmonitor/sensor.py
homeassistant/components/tado/__init__.py
@@ -1284,8 +1342,8 @@ omit =
homeassistant/components/totalconnect/const.py
homeassistant/components/touchline/climate.py
homeassistant/components/tplink_lte/*
homeassistant/components/traccar/device_tracker.py
homeassistant/components/traccar/const.py
homeassistant/components/traccar/device_tracker.py
homeassistant/components/tractive/__init__.py
homeassistant/components/tractive/binary_sensor.py
homeassistant/components/tractive/device_tracker.py
@@ -1306,10 +1364,10 @@ omit =
homeassistant/components/trafikverket_weatherstation/__init__.py
homeassistant/components/trafikverket_weatherstation/coordinator.py
homeassistant/components/trafikverket_weatherstation/sensor.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
homeassistant/components/transmission/const.py
homeassistant/components/transmission/errors.py
homeassistant/components/transmission/sensor.py
homeassistant/components/transmission/switch.py
homeassistant/components/travisci/sensor.py
homeassistant/components/tuya/__init__.py
homeassistant/components/tuya/alarm_control_panel.py
@@ -1338,21 +1396,20 @@ omit =
homeassistant/components/ubus/device_tracker.py
homeassistant/components/ue_smart_radio/media_player.py
homeassistant/components/ukraine_alarm/__init__.py
homeassistant/components/ukraine_alarm/const.py
homeassistant/components/ukraine_alarm/binary_sensor.py
homeassistant/components/ukraine_alarm/const.py
homeassistant/components/unifiled/*
homeassistant/components/upb/__init__.py
homeassistant/components/upb/const.py
homeassistant/components/upb/light.py
homeassistant/components/upb/scene.py
homeassistant/components/upc_connect/*
homeassistant/components/upcloud/__init__.py
homeassistant/components/upcloud/binary_sensor.py
homeassistant/components/upcloud/switch.py
homeassistant/components/upnp/__init__.py
homeassistant/components/upnp/device.py
homeassistant/components/upnp/sensor.py
homeassistant/components/upc_connect/*
homeassistant/components/uscis/sensor.py
homeassistant/components/vallox/__init__.py
homeassistant/components/vallox/fan.py
homeassistant/components/vallox/sensor.py
@@ -1390,17 +1447,17 @@ omit =
homeassistant/components/vesync/sensor.py
homeassistant/components/vesync/switch.py
homeassistant/components/viaggiatreno/sensor.py
homeassistant/components/vicare/__init__.py
homeassistant/components/vicare/binary_sensor.py
homeassistant/components/vicare/button.py
homeassistant/components/vicare/climate.py
homeassistant/components/vicare/const.py
homeassistant/components/vicare/diagnostics.py
homeassistant/components/vicare/__init__.py
homeassistant/components/vicare/sensor.py
homeassistant/components/vicare/water_heater.py
homeassistant/components/vilfo/__init__.py
homeassistant/components/vilfo/sensor.py
homeassistant/components/vilfo/const.py
homeassistant/components/vilfo/sensor.py
homeassistant/components/vivotek/camera.py
homeassistant/components/vlc/media_player.py
homeassistant/components/vlc_telnet/__init__.py
@@ -1409,7 +1466,14 @@ omit =
homeassistant/components/volumio/__init__.py
homeassistant/components/volumio/browse_media.py
homeassistant/components/volumio/media_player.py
homeassistant/components/volvooncall/*
homeassistant/components/volvooncall/__init__.py
homeassistant/components/volvooncall/binary_sensor.py
homeassistant/components/volvooncall/const.py
homeassistant/components/volvooncall/device_tracker.py
homeassistant/components/volvooncall/errors.py
homeassistant/components/volvooncall/lock.py
homeassistant/components/volvooncall/sensor.py
homeassistant/components/volvooncall/switch.py
homeassistant/components/vulcan/__init__.py
homeassistant/components/vulcan/calendar.py
homeassistant/components/vulcan/fetch_data.py
@@ -1426,8 +1490,8 @@ omit =
homeassistant/components/wiffi/wiffi_strings.py
homeassistant/components/wirelesstag/*
homeassistant/components/wolflink/__init__.py
homeassistant/components/wolflink/sensor.py
homeassistant/components/wolflink/const.py
homeassistant/components/wolflink/sensor.py
homeassistant/components/worldtidesinfo/sensor.py
homeassistant/components/worxlandroid/sensor.py
homeassistant/components/x10/light.py
@@ -1465,7 +1529,6 @@ omit =
homeassistant/components/xiaomi_miio/light.py
homeassistant/components/xiaomi_miio/number.py
homeassistant/components/xiaomi_miio/remote.py
homeassistant/components/xiaomi_miio/select.py
homeassistant/components/xiaomi_miio/sensor.py
homeassistant/components/xiaomi_miio/switch.py
homeassistant/components/xiaomi_tv/media_player.py
@@ -1480,6 +1543,12 @@ omit =
homeassistant/components/yale_smart_alarm/diagnostics.py
homeassistant/components/yale_smart_alarm/entity.py
homeassistant/components/yale_smart_alarm/lock.py
homeassistant/components/yalexs_ble/__init__.py
homeassistant/components/yalexs_ble/binary_sensor.py
homeassistant/components/yalexs_ble/entity.py
homeassistant/components/yalexs_ble/lock.py
homeassistant/components/yalexs_ble/sensor.py
homeassistant/components/yalexs_ble/util.py
homeassistant/components/yamaha_musiccast/__init__.py
homeassistant/components/yamaha_musiccast/media_player.py
homeassistant/components/yamaha_musiccast/number.py
@@ -1494,6 +1563,7 @@ omit =
homeassistant/components/yolink/climate.py
homeassistant/components/yolink/const.py
homeassistant/components/yolink/coordinator.py
homeassistant/components/yolink/cover.py
homeassistant/components/yolink/entity.py
homeassistant/components/yolink/lock.py
homeassistant/components/yolink/sensor.py
@@ -1519,19 +1589,14 @@ omit =
homeassistant/components/zha/core/registries.py
homeassistant/components/zha/entity.py
homeassistant/components/zha/light.py
homeassistant/components/zha/sensor.py
homeassistant/components/zhong_hong/climate.py
homeassistant/components/xbee/*
homeassistant/components/ziggo_mediabox_xl/media_player.py
homeassistant/components/zoneminder/*
homeassistant/components/supla/*
homeassistant/components/zwave_js/discovery.py
homeassistant/components/zwave_js/sensor.py
homeassistant/components/zwave_me/__init__.py
homeassistant/components/zwave_me/binary_sensor.py
homeassistant/components/zwave_me/button.py
homeassistant/components/zwave_me/cover.py
homeassistant/components/zwave_me/climate.py
homeassistant/components/zwave_me/cover.py
homeassistant/components/zwave_me/fan.py
homeassistant/components/zwave_me/helpers.py
homeassistant/components/zwave_me/light.py

View File

@@ -33,6 +33,7 @@
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New integration (thank you!)
- [ ] New feature (which adds functionality to an existing integration)
- [ ] Deprecation (breaking change to happen in the future)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests

View File

@@ -29,7 +29,7 @@ jobs:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -70,7 +70,7 @@ jobs:
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -102,9 +102,20 @@ jobs:
- name: Checkout the repository
uses: actions/checkout@v3.0.2
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v2
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/frontend
branch: dev
workflow: nightly.yaml
workflow_conclusion: success
name: wheels
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -112,10 +123,23 @@ jobs:
if: needs.init.outputs.channel == 'dev'
shell: bash
run: |
python3 -m pip install packaging
python3 -m pip install packaging tomli
python3 -m pip install --use-deprecated=legacy-resolver .
version="$(python3 script/version_bump.py nightly)"
if [[ "$(ls home_assistant_frontend*.whl)" =~ ^home_assistant_frontend-(.*)-py3-none-any.whl$ ]]; then
echo "Found frontend wheel, setting version to: ${BASH_REMATCH[1]}"
frontend_version="${BASH_REMATCH[1]}" yq \
--inplace e -o json \
'.requirements = ["home-assistant-frontend=="+env(frontend_version)]' \
homeassistant/components/frontend/manifest.json
sed -i "s|home-assistant-frontend==.*|home-assistant-frontend==${BASH_REMATCH[1]}|" \
homeassistant/package_constraints.txt
python -m script.gen_requirements_all
fi
- name: Write meta info file
shell: bash
run: |
@@ -135,7 +159,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.06.2
uses: home-assistant/builder@2022.09.0
with:
args: |
$BUILD_ARGS \
@@ -201,7 +225,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2022.06.2
uses: home-assistant/builder@2022.09.0
with:
args: |
$BUILD_ARGS \

View File

@@ -20,10 +20,13 @@ on:
type: boolean
env:
CACHE_VERSION: 10
PIP_CACHE_VERSION: 4
HA_SHORT_VERSION: 2022.7
DEFAULT_PYTHON: 3.9
CACHE_VERSION: 1
PIP_CACHE_VERSION: 1
HA_SHORT_VERSION: 2022.10
# Pin latest Python patch versions to avoid issues
# with runners using different versions.
DEFAULT_PYTHON: 3.9.14
ALL_PYTHON_VERSIONS: "['3.9.14', '3.10.7']"
PRE_COMMIT_CACHE: ~/.cache/pre-commit
PIP_CACHE: /tmp/pip-cache
SQLALCHEMY_WARN_20: 1
@@ -35,24 +38,39 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
name: Determine what has changed
info:
name: Collect information & changes data
outputs:
# In case of issues with the partial run, use the following line instead:
# test_full_suite: 'true'
test_full_suite: ${{ steps.info.outputs.test_full_suite }}
core: ${{ steps.core.outputs.changes }}
integrations: ${{ steps.integrations.outputs.changes }}
integrations_glob: ${{ steps.info.outputs.integrations_glob }}
tests: ${{ steps.info.outputs.tests }}
tests_glob: ${{ steps.info.outputs.tests_glob }}
test_groups: ${{ steps.info.outputs.test_groups }}
test_group_count: ${{ steps.info.outputs.test_group_count }}
integrations: ${{ steps.integrations.outputs.changes }}
pre-commit_cache_key: ${{ steps.generate_pre-commit_cache_key.outputs.key }}
python_cache_key: ${{ steps.generate_python_cache_key.outputs.key }}
requirements: ${{ steps.core.outputs.requirements }}
runs-on: ubuntu-latest
python_versions: ${{ steps.info.outputs.python_versions }}
test_full_suite: ${{ steps.info.outputs.test_full_suite }}
test_group_count: ${{ steps.info.outputs.test_group_count }}
test_groups: ${{ steps.info.outputs.test_groups }}
tests_glob: ${{ steps.info.outputs.tests_glob }}
tests: ${{ steps.info.outputs.tests }}
runs-on: ubuntu-20.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
echo "::set-output name=key::venv-${{ env.CACHE_VERSION }}-${{
hashFiles('requirements_test.txt') }}-${{
hashFiles('requirements_all.txt') }}-${{
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Generate partial pre-commit restore key
id: generate_pre-commit_cache_key
run: >-
echo "::set-output name=key::${{ env.CACHE_VERSION }}-${{ env.DEFAULT_PYTHON }}-${{
hashFiles('.pre-commit-config.yaml') }}"
- name: Filter for core changes
uses: dorny/paths-filter@v2.10.2
id: core
@@ -79,8 +97,8 @@ jobs:
# Defaults
integrations_glob=""
test_full_suite="true"
test_groups="[1, 2, 3, 4, 5, 6]"
test_group_count=6
test_groups="[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
test_group_count=10
tests="[]"
tests_glob=""
@@ -123,12 +141,14 @@ jobs:
|| [[ "${{ github.event.inputs.full }}" == "true" ]] \
|| [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci-full-run') }}" == "true" ]];
then
test_groups="[1, 2, 3, 4, 5, 6]"
test_group_count=6
test_groups="[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
test_group_count=10
test_full_suite="true"
fi
# Output & sent to GitHub Actions
echo "python_versions: ${ALL_PYTHON_VERSIONS}"
echo "::set-output name=python_versions::${ALL_PYTHON_VERSIONS}"
echo "test_full_suite: ${test_full_suite}"
echo "::set-output name=test_full_suite::${test_full_suite}"
echo "integrations_glob: ${integrations_glob}"
@@ -142,84 +162,38 @@ jobs:
echo "tests_glob: ${tests_glob}"
echo "::set-output name=tests_glob::${tests_glob}"
# Separate job to pre-populate the base dependency cache
# This prevent upcoming jobs to do the same individually
prepare-base:
name: Prepare base dependencies
runs-on: ubuntu-latest
timeout-minutes: 20
outputs:
python-key: ${{ steps.generate-python-key.outputs.key }}
pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }}
pre-commit:
name: Prepare pre-commit base
runs-on: ubuntu-20.04
needs:
- info
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
echo "::set-output name=key::base-venv-${{ env.CACHE_VERSION }}-${{
hashFiles('requirements.txt') }}-${{
hashFiles('requirements_test.txt') }}-${{
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Generate partial pip restore key
id: generate-pip-key
run: >-
echo "::set-output name=key::base-pip-${{ env.PIP_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-python-key.outputs.key }}
# Temporary disabling the restore of environments when bumping
# a dependency. It seems that we are experiencing issues with
# restoring environments in GitHub Actions, although unclear why.
# First attempt: https://github.com/home-assistant/core/pull/62383
#
# restore-keys: |
# ${{ runner.os }}-${{ steps.python.outputs.python-version }}-base-venv-${{ env.CACHE_VERSION }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements_test.txt') }}-
# ${{ runner.os }}-${{ steps.python.outputs.python-version }}-base-venv-${{ env.CACHE_VERSION }}-${{ hashFiles('requirements.txt') }}-
# ${{ runner.os }}-${{ steps.python.outputs.python-version }}-base-venv-${{ env.CACHE_VERSION }}-
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.4
with:
path: ${{ env.PIP_CACHE }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-pip-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-base-pip-${{ env.PIP_CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Create Python virtual environment
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
python -m venv venv
. venv/bin/activate
python --version
pip install --cache-dir=$PIP_CACHE -U "pip>=21.0,<22.2" setuptools wheel
pip install --cache-dir=$PIP_CACHE -r requirements.txt -r requirements_test.txt --use-deprecated=legacy-resolver
- name: Generate partial pre-commit restore key
id: generate-pre-commit-key
run: >-
echo "::set-output name=key::pre-commit-${{ env.CACHE_VERSION }}-${{
hashFiles('.pre-commit-config.yaml') }}"
pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >-
${{ runner.os }}-${{ steps.generate-pre-commit-key.outputs.key }}
restore-keys: |
${{ runner.os }}-pre-commit-${{ env.CACHE_VERSION }}-
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Install pre-commit dependencies
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -228,25 +202,24 @@ jobs:
lint-black:
name: Check black
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs:
- changes
- prepare-base
- info
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -254,49 +227,48 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
echo "Failed to restore pre-commit environment from cache"
exit 1
- name: Run black (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual black --all-files --show-diff-on-failure
- name: Run black (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
shopt -s globstar
pre-commit run --hook-stage manual black --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual black --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
lint-flake8:
name: Check flake8
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs:
- changes
- prepare-base
- info
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -304,10 +276,10 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -317,37 +289,38 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/flake8.json"
- name: Run flake8 (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual flake8 --all-files
- name: Run flake8 (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
shopt -s globstar
pre-commit run --hook-stage manual flake8 --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/*
pre-commit run --hook-stage manual flake8 --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/*
lint-isort:
name: Check isort
runs-on: ubuntu-latest
needs: prepare-base
runs-on: ubuntu-20.04
needs:
- info
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -355,10 +328,10 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -371,25 +344,24 @@ jobs:
lint-other:
name: Check other linters
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs:
- changes
- prepare-base
- info
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
key: ${{ runner.os }}-venv-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -397,10 +369,10 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: ${{ runner.os }}-${{ needs.prepare-base.outputs.pre-commit-key }}
key: ${{ runner.os }}-pre-commit-${{ needs.info.outputs.pre-commit_cache_key }}
- name: Fail job if pre-commit cache restore failed
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
@@ -408,17 +380,17 @@ jobs:
exit 1
- name: Run pyupgrade (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual pyupgrade --all-files --show-diff-on-failure
- name: Run pyupgrade (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
shopt -s globstar
pre-commit run --hook-stage manual pyupgrade --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual pyupgrade --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
- name: Register yamllint problem matcher
run: |
@@ -437,17 +409,17 @@ jobs:
pre-commit run --hook-stage manual check-json --all-files
- name: Run prettier (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual prettier --all-files
- name: Run prettier (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
pre-commit run --hook-stage manual prettier --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/*
pre-commit run --hook-stage manual prettier --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/*
- name: Register check executables problem matcher
run: |
@@ -478,36 +450,105 @@ jobs:
args: hadolint Dockerfile.dev
- name: Run bandit (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
pre-commit run --hook-stage manual bandit --all-files --show-diff-on-failure
- name: Run bandit (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
shopt -s globstar
pre-commit run --hook-stage manual bandit --files {homeassistant,tests}/components/${{ needs.changes.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual bandit --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
hassfest:
name: Check hassfest
runs-on: ubuntu-latest
needs: prepare-tests
base:
name: Prepare dependencies
runs-on: ubuntu-20.04
needs: info
timeout-minutes: 60
strategy:
matrix:
python-version: [3.9]
container: homeassistant/ci-azure:${{ matrix.python-version }}
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ matrix.python-version }}
- name: Generate partial pip restore key
id: generate-pip-key
run: >-
echo "::set-output name=key::pip-${{ env.PIP_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.8
with:
path: ${{ env.PIP_CACHE }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-pip-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-pip-${{ env.PIP_CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-
- name: Install additional OS dependencies
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
libavcodec-dev \
libavdevice-dev \
libavfilter-dev \
libavformat-dev \
libavutil-dev \
libswresample-dev \
libswscale-dev \
libudev-dev
- name: Create Python virtual environment
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
python -m venv venv
. venv/bin/activate
python --version
pip install --cache-dir=$PIP_CACHE -U "pip>=21.0,<22.3" setuptools wheel
pip install --cache-dir=$PIP_CACHE -r requirements_all.txt --use-deprecated=legacy-resolver
pip install --cache-dir=$PIP_CACHE -r requirements_test.txt --use-deprecated=legacy-resolver
pip install -e .
hassfest:
name: Check hassfest
runs-on: ubuntu-20.04
needs:
- info
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.8
with:
path: venv
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -520,23 +561,26 @@ jobs:
gen-requirements-all:
name: Check all requirements
runs-on: ubuntu-latest
needs: prepare-base
runs-on: ubuntu-20.04
needs:
- info
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.prepare-base.outputs.python-key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -547,94 +591,29 @@ jobs:
. venv/bin/activate
python -m script.gen_requirements_all validate
prepare-tests:
name: Prepare tests for Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.9", "3.10"]
outputs:
python-key: ${{ steps.generate-python-key.outputs.key }}
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Generate partial Python venv restore key
id: generate-python-key
run: >-
echo "::set-output name=key::venv-${{ env.CACHE_VERSION }}-${{
hashFiles('requirements_test.txt') }}-${{
hashFiles('requirements_all.txt') }}-${{
hashFiles('homeassistant/package_constraints.txt') }}"
- name: Generate partial pip restore key
id: generate-pip-key
run: >-
echo "::set-output name=key::pip-${{ env.PIP_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')"
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
with:
path: venv
key: >-
${{ runner.os }}-${{ matrix.python-version }}-${{
steps.generate-python-key.outputs.key }}
# Temporary disabling the restore of environments when bumping
# a dependency. It seems that we are experiencing issues with
# restoring environments in GitHub Actions, although unclear why.
# First attempt: https://github.com/home-assistant/core/pull/62383
#
# restore-keys: |
# ${{ runner.os }}-${{ matrix.python-version }}-venv-${{ env.CACHE_VERSION }}-${{ hashFiles('requirements_test.txt') }}-${{ hashFiles('requirements_all.txt') }}-
# ${{ runner.os }}-${{ matrix.python-version }}-venv-${{ env.CACHE_VERSION }}-${{ hashFiles('requirements_test.txt') }}-
# ${{ runner.os }}-${{ matrix.python-version }}-venv-${{ env.CACHE_VERSION }}-
- name: Restore pip wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v3.0.4
with:
path: ${{ env.PIP_CACHE }}
key: >-
${{ runner.os }}-${{ matrix.python-version }}-${{
steps.generate-pip-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ matrix.python-version }}-pip-${{ env.PIP_CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-
- name: Create full Python ${{ matrix.python-version }} virtual environment
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
# Temporary addition of cmake, needed to build some Python 3.9 packages
apt-get update
apt-get -y install cmake
python -m venv venv
. venv/bin/activate
python --version
pip install --cache-dir=$PIP_CACHE -U "pip>=21.0,<22.2" setuptools wheel
pip install --cache-dir=$PIP_CACHE -r requirements_all.txt --use-deprecated=legacy-resolver
pip install --cache-dir=$PIP_CACHE -r requirements_test.txt --use-deprecated=legacy-resolver
pip install -e .
pylint:
name: Check pylint
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
timeout-minutes: 20
needs:
- changes
- prepare-tests
strategy:
matrix:
python-version: [3.9]
container: homeassistant/ci-azure:${{ matrix.python-version }}
- info
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -644,39 +623,41 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/pylint.json"
- name: Run pylint (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
python --version
pylint homeassistant
pylint --ignore-missing-annotations=y homeassistant
- name: Run pylint (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
python --version
pylint homeassistant/components/${{ needs.changes.outputs.integrations_glob }}
pylint --ignore-missing-annotations=y homeassistant/components/${{ needs.info.outputs.integrations_glob }}
mypy:
name: Check mypy
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs:
- changes
- prepare-tests
strategy:
matrix:
python-version: [3.9]
container: homeassistant/ci-azure:${{ matrix.python-version }}
- info
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Restore full Python ${{ matrix.python-version }} virtual environment
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -686,41 +667,45 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/mypy.json"
- name: Run mypy (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
run: |
. venv/bin/activate
python --version
mypy homeassistant pylint
- name: Run mypy (partially)
if: needs.changes.outputs.test_full_suite == 'false'
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
python --version
mypy homeassistant/components/${{ needs.changes.outputs.integrations_glob }}
mypy homeassistant/components/${{ needs.info.outputs.integrations_glob }}
pip-check:
runs-on: ubuntu-latest
if: needs.changes.outputs.requirements == 'true' || github.event.inputs.full == 'true'
runs-on: ubuntu-20.04
needs:
- changes
- prepare-tests
- info
- base
strategy:
fail-fast: false
matrix:
python-version: [3.9]
python-version: ${{ fromJson(needs.info.outputs.python_versions) }}
name: Run pip check ${{ matrix.python-version }}
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ matrix.python-version }}
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -732,38 +717,48 @@ jobs:
./script/pip_check $PIP_CACHE
pytest:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& (needs.changes.outputs.test_full_suite == 'true' || needs.changes.outputs.tests_glob)
&& (needs.info.outputs.test_full_suite == 'true' || needs.info.outputs.tests_glob)
needs:
- changes
- info
- base
- gen-requirements-all
- hassfest
- lint-black
- lint-other
- lint-isort
- mypy
- prepare-tests
strategy:
fail-fast: false
matrix:
group: ${{ fromJson(needs.changes.outputs.test_groups) }}
python-version: ["3.9", "3.10"]
group: ${{ fromJson(needs.info.outputs.test_groups) }}
python-version: ${{ fromJson(needs.info.outputs.python_versions) }}
name: >-
Run tests Python ${{ matrix.python-version }} (${{ matrix.group }})
container: homeassistant/ci-azure:${{ matrix.python-version }}
steps:
- name: Install additional OS dependencies
run: |
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ matrix.python-version }}
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache@v3.0.4
uses: actions/cache@v3.0.8
with:
path: venv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{
needs.prepare-tests.outputs.python-key }}
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Fail job if Python cache restore failed
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -783,7 +778,7 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Run pytest (fully)
if: needs.changes.outputs.test_full_suite == 'true'
if: needs.info.outputs.test_full_suite == 'true'
timeout-minutes: 60
run: |
. venv/bin/activate
@@ -794,7 +789,7 @@ jobs:
--durations=10 \
-n auto \
--dist=loadfile \
--test-group-count ${{ needs.changes.outputs.test_group_count }} \
--test-group-count ${{ needs.info.outputs.test_group_count }} \
--test-group=${{ matrix.group }} \
--cov="homeassistant" \
--cov-report=xml \
@@ -802,8 +797,8 @@ jobs:
-p no:sugar \
tests
- name: Run pytest (partially)
if: needs.changes.outputs.test_full_suite == 'false'
timeout-minutes: 20
if: needs.info.outputs.test_full_suite == 'false'
timeout-minutes: 10
shell: bash
run: |
. venv/bin/activate
@@ -838,9 +833,9 @@ jobs:
coverage:
name: Upload test coverage to Codecov
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs:
- changes
- info
- pytest
steps:
- name: Check out code from GitHub
@@ -848,10 +843,10 @@ jobs:
- name: Download all coverage artifacts
uses: actions/download-artifact@v3
- name: Upload coverage to Codecov (full coverage)
if: needs.changes.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v3.1.0
if: needs.info.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v3.1.1
with:
flags: full-suite
- name: Upload coverage to Codecov (partial coverage)
if: needs.changes.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v3.1.0
if: needs.info.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v3.1.1

View File

@@ -17,7 +17,7 @@ jobs:
# - No PRs marked as no-stale
# - No issues marked as no-stale or help-wanted
- name: 90 days stale issues & PRs policy
uses: actions/stale@v5
uses: actions/stale@v6.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
@@ -54,7 +54,7 @@ jobs:
# - No PRs marked as no-stale or new-integrations
# - No issues (-1)
- name: 30 days stale PRs policy
uses: actions/stale@v5
uses: actions/stale@v6.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
@@ -79,7 +79,7 @@ jobs:
# - No Issues marked as no-stale or help-wanted
# - No PRs (-1)
- name: Needs more information stale issues policy
uses: actions/stale@v5
uses: actions/stale@v6.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
only-labels: "needs-more-information"

View File

@@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -43,7 +43,7 @@ jobs:
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.0.0
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}

View File

@@ -157,6 +157,9 @@ jobs:
echo "cmake==3.22.2"
) >> homeassistant/package_constraints.txt
# Do not pin numpy in wheels building
sed -i "/numpy/d" homeassistant/package_constraints.txt
- name: Build wheels
uses: home-assistant/wheels@2022.06.7
with:

View File

@@ -1,6 +0,0 @@
# Patterns matched in this file will be ignored by supported search utilities
# Ignore generated html and javascript files
/homeassistant/components/frontend/www_static/*.html
/homeassistant/components/frontend/www_static/*.js
/homeassistant/components/frontend/www_static/panels/*.html

View File

@@ -1,17 +1,17 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.34.0
rev: v2.38.0
hooks:
- id: pyupgrade
args: [--py39-plus]
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 22.8.0
hooks:
- id: black
args:
- --safe
- --quiet
files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
- repo: https://github.com/codespell-project/codespell
rev: v2.1.0
hooks:
@@ -21,7 +21,7 @@ repos:
- --skip="./.*,*.csv,*.json"
- --quiet-level=2
exclude_types: [csv, json]
exclude: ^tests/fixtures/
exclude: ^tests/fixtures/|homeassistant/generated/
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
@@ -31,8 +31,8 @@ repos:
- pyflakes==2.4.0
- flake8-docstrings==1.6.0
- pydocstyle==6.1.1
- flake8-comprehensions==3.8.0
- flake8-noqa==1.2.1
- flake8-comprehensions==3.10.0
- flake8-noqa==1.2.8
- mccabe==0.6.1
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
@@ -61,7 +61,7 @@ repos:
- --branch=master
- --branch=rc
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.26.3
rev: v1.27.1
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
@@ -96,7 +96,7 @@ repos:
files: ^(homeassistant|pylint)/.+\.py$
- id: pylint
name: pylint
entry: script/run-in-env.sh pylint -j 0
entry: script/run-in-env.sh pylint -j 0 --ignore-missing-annotations=y
language: script
types: [python]
files: ^homeassistant/.+\.py$
@@ -106,7 +106,7 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/manifest\.json|pyproject\.toml|\.pre-commit-config\.yaml|script/gen_requirements_all\.py)$
files: ^(homeassistant/.+/manifest\.json|homeassistant/brands/.+\.json|pyproject\.toml|\.pre-commit-config\.yaml|script/gen_requirements_all\.py)$
- id: hassfest
name: hassfest
entry: script/run-in-env.sh python3 -m script.hassfest

View File

@@ -1,4 +1,6 @@
*.md
.strict-typing
azure-*.yml
docs/source/_templates/*
homeassistant/components/*/translations/*.json
homeassistant/generated/*

View File

@@ -15,12 +15,18 @@ homeassistant.auth.auth_store
homeassistant.auth.providers.*
homeassistant.helpers.area_registry
homeassistant.helpers.condition
homeassistant.helpers.debounce
homeassistant.helpers.deprecation
homeassistant.helpers.device_registry
homeassistant.helpers.discovery
homeassistant.helpers.dispatcher
homeassistant.helpers.entity
homeassistant.helpers.entity_platform
homeassistant.helpers.entity_values
homeassistant.helpers.event
homeassistant.helpers.reload
homeassistant.helpers.script_variables
homeassistant.helpers.singleton
homeassistant.helpers.sun
homeassistant.helpers.translation
homeassistant.util.async_
@@ -33,10 +39,9 @@ homeassistant.util.unit_system
# --- Add components below this line ---
homeassistant.components
homeassistant.components.alert.*
homeassistant.components.abode.*
homeassistant.components.acer_projector.*
homeassistant.components.accuweather.*
homeassistant.components.acer_projector.*
homeassistant.components.actiontec.*
homeassistant.components.adguard.*
homeassistant.components.aftership.*
@@ -46,17 +51,21 @@ homeassistant.components.airvisual.*
homeassistant.components.airzone.*
homeassistant.components.aladdin_connect.*
homeassistant.components.alarm_control_panel.*
homeassistant.components.alert.*
homeassistant.components.amazon_polly.*
homeassistant.components.ambee.*
homeassistant.components.ambient_station.*
homeassistant.components.amcrest.*
homeassistant.components.ampio.*
homeassistant.components.anthemav.*
homeassistant.components.aseko_pool_live.*
homeassistant.components.asuswrt.*
homeassistant.components.auth.*
homeassistant.components.automation.*
homeassistant.components.awair.*
homeassistant.components.backup.*
homeassistant.components.baf.*
homeassistant.components.binary_sensor.*
homeassistant.components.bluetooth.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
homeassistant.components.bond.*
@@ -68,9 +77,10 @@ homeassistant.components.calendar.*
homeassistant.components.camera.*
homeassistant.components.canary.*
homeassistant.components.cover.*
homeassistant.components.crownstone.*
homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*
homeassistant.components.deconz.*
homeassistant.components.demo.*
homeassistant.components.device_automation.*
homeassistant.components.device_tracker.*
homeassistant.components.devolo_home_control.*
@@ -84,21 +94,23 @@ homeassistant.components.efergy.*
homeassistant.components.elgato.*
homeassistant.components.elkm1.*
homeassistant.components.emulated_hue.*
homeassistant.components.esphome.*
homeassistant.components.energy.*
homeassistant.components.esphome.*
homeassistant.components.evil_genius_labs.*
homeassistant.components.fan.*
homeassistant.components.fastdotcom.*
homeassistant.components.feedreader.*
homeassistant.components.file_upload.*
homeassistant.components.filesize.*
homeassistant.components.fitbit.*
homeassistant.components.flunearyou.*
homeassistant.components.flux_led.*
homeassistant.components.forecast_solar.*
homeassistant.components.fritz.*
homeassistant.components.fritzbox.*
homeassistant.components.fritzbox_callmonitor.*
homeassistant.components.fronius.*
homeassistant.components.frontend.*
homeassistant.components.fritz.*
homeassistant.components.fully_kiosk.*
homeassistant.components.geo_location.*
homeassistant.components.geocaching.*
homeassistant.components.gios.*
@@ -109,6 +121,7 @@ homeassistant.components.group.*
homeassistant.components.guardian.*
homeassistant.components.history.*
homeassistant.components.homeassistant.triggers.event
homeassistant.components.homeassistant_alerts.*
homeassistant.components.homekit
homeassistant.components.homekit.accessories
homeassistant.components.homekit.aidmanager
@@ -121,6 +134,7 @@ homeassistant.components.homekit.util
homeassistant.components.homekit_controller
homeassistant.components.homekit_controller.alarm_control_panel
homeassistant.components.homekit_controller.button
homeassistant.components.homekit_controller.config_flow
homeassistant.components.homekit_controller.const
homeassistant.components.homekit_controller.lock
homeassistant.components.homekit_controller.select
@@ -130,21 +144,25 @@ homeassistant.components.homewizard.*
homeassistant.components.http.*
homeassistant.components.huawei_lte.*
homeassistant.components.hyperion.*
homeassistant.components.ibeacon.*
homeassistant.components.image_processing.*
homeassistant.components.input_button.*
homeassistant.components.input_select.*
homeassistant.components.integration.*
homeassistant.components.isy994.*
homeassistant.components.iqvia.*
homeassistant.components.isy994.*
homeassistant.components.jellyfin.*
homeassistant.components.jewish_calendar.*
homeassistant.components.kaleidescape.*
homeassistant.components.knx.*
homeassistant.components.kraken.*
homeassistant.components.lacrosse_view.*
homeassistant.components.lametric.*
homeassistant.components.laundrify.*
homeassistant.components.lcn.*
homeassistant.components.lifx.*
homeassistant.components.light.*
homeassistant.components.litterrobot.*
homeassistant.components.local_ip.*
homeassistant.components.lock.*
homeassistant.components.logbook.*
@@ -153,6 +171,8 @@ homeassistant.components.luftdaten.*
homeassistant.components.mailbox.*
homeassistant.components.media_player.*
homeassistant.components.media_source.*
homeassistant.components.metoffice.*
homeassistant.components.mikrotik.*
homeassistant.components.mjpeg.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
@@ -174,15 +194,17 @@ homeassistant.components.nut.*
homeassistant.components.oncue.*
homeassistant.components.onewire.*
homeassistant.components.open_meteo.*
homeassistant.components.openexchangerates.*
homeassistant.components.openuv.*
homeassistant.components.peco.*
homeassistant.components.overkiz.*
homeassistant.components.peco.*
homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.powerwall.*
homeassistant.components.proximity.*
homeassistant.components.pvoutput.*
homeassistant.components.prusalink.*
homeassistant.components.pure_energie.*
homeassistant.components.pvoutput.*
homeassistant.components.qnap_qsw.*
homeassistant.components.rainmachine.*
homeassistant.components.rdw.*
@@ -190,6 +212,9 @@ homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.repairs.*
homeassistant.components.rfxtrx.*
homeassistant.components.rhasspy.*
homeassistant.components.ridwell.*
homeassistant.components.rituals_perfume_genie.*
homeassistant.components.roku.*
@@ -197,10 +222,11 @@ homeassistant.components.rpi_power.*
homeassistant.components.rtsp_to_webrtc.*
homeassistant.components.samsungtv.*
homeassistant.components.scene.*
homeassistant.components.schedule.*
homeassistant.components.select.*
homeassistant.components.senseme.*
homeassistant.components.sensibo.*
homeassistant.components.sensor.*
homeassistant.components.senseme.*
homeassistant.components.senz.*
homeassistant.components.shelly.*
homeassistant.components.simplisafe.*
@@ -208,13 +234,14 @@ homeassistant.components.slack.*
homeassistant.components.sleepiq.*
homeassistant.components.smhi.*
homeassistant.components.ssdp.*
homeassistant.components.stookalert.*
homeassistant.components.statistics.*
homeassistant.components.steamist.*
homeassistant.components.stookalert.*
homeassistant.components.stream.*
homeassistant.components.sun.*
homeassistant.components.surepetcare.*
homeassistant.components.switch.*
homeassistant.components.switchbee.*
homeassistant.components.switcher_kis.*
homeassistant.components.synology_dsm.*
homeassistant.components.systemmonitor.*
@@ -223,8 +250,9 @@ homeassistant.components.tailscale.*
homeassistant.components.tautulli.*
homeassistant.components.tcp.*
homeassistant.components.tile.*
homeassistant.components.tplink.*
homeassistant.components.tilt_ble.*
homeassistant.components.tolo.*
homeassistant.components.tplink.*
homeassistant.components.tractive.*
homeassistant.components.tradfri.*
homeassistant.components.trafikverket_ferry.*
@@ -253,7 +281,7 @@ homeassistant.components.whois.*
homeassistant.components.wiz.*
homeassistant.components.worldclock.*
homeassistant.components.yale_smart_alarm.*
homeassistant.components.zodiac.*
homeassistant.components.zeroconf.*
homeassistant.components.zodiac.*
homeassistant.components.zone.*
homeassistant.components.zwave_js.*

8
.vscode/launch.json vendored
View File

@@ -12,6 +12,14 @@
"justMyCode": false,
"args": ["--debug", "-c", "config"]
},
{
"name": "Home Assistant (skip pip)",
"type": "python",
"request": "launch",
"module": "homeassistant",
"justMyCode": false,
"args": ["--debug", "-c", "config", "--skip-pip"]
},
{
// Debug by attaching to local Home Asistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/

View File

@@ -61,8 +61,6 @@ build.json @home-assistant/supervisor
/tests/components/alexa/ @home-assistant/cloud @ochlocracy
/homeassistant/components/almond/ @gcampax @balloob
/tests/components/almond/ @gcampax @balloob
/homeassistant/components/ambee/ @frenck
/tests/components/ambee/ @frenck
/homeassistant/components/amberelectric/ @madpilot
/tests/components/amberelectric/ @madpilot
/homeassistant/components/ambiclimate/ @danielhiversen
@@ -72,10 +70,16 @@ build.json @home-assistant/supervisor
/homeassistant/components/amcrest/ @flacjacket
/homeassistant/components/analytics/ @home-assistant/core @ludeeus
/tests/components/analytics/ @home-assistant/core @ludeeus
/homeassistant/components/android_ip_webcam/ @engrbm87
/tests/components/android_ip_webcam/ @engrbm87
/homeassistant/components/androidtv/ @JeffLIrion @ollo69
/tests/components/androidtv/ @JeffLIrion @ollo69
/homeassistant/components/anthemav/ @hyralex
/tests/components/anthemav/ @hyralex
/homeassistant/components/apache_kafka/ @bachya
/tests/components/apache_kafka/ @bachya
/homeassistant/components/apcupsd/ @yuxincs
/tests/components/apcupsd/ @yuxincs
/homeassistant/components/api/ @home-assistant/core
/tests/components/api/ @home-assistant/core
/homeassistant/components/apple_tv/ @postlund
@@ -125,17 +129,23 @@ build.json @home-assistant/supervisor
/tests/components/baf/ @bdraco @jfroy
/homeassistant/components/balboa/ @garbled1
/tests/components/balboa/ @garbled1
/homeassistant/components/bayesian/ @HarvsG
/tests/components/bayesian/ @HarvsG
/homeassistant/components/beewi_smartclim/ @alemuro
/homeassistant/components/binary_sensor/ @home-assistant/core
/tests/components/binary_sensor/ @home-assistant/core
/homeassistant/components/bizkaibus/ @UgaitzEtxebarria
/homeassistant/components/blebox/ @bbx-a @bbx-jp @riokuu
/tests/components/blebox/ @bbx-a @bbx-jp @riokuu
/homeassistant/components/blebox/ @bbx-a @riokuu
/tests/components/blebox/ @bbx-a @riokuu
/homeassistant/components/blink/ @fronzbot
/tests/components/blink/ @fronzbot
/homeassistant/components/bluemaestro/ @bdraco
/tests/components/bluemaestro/ @bdraco
/homeassistant/components/blueprint/ @home-assistant/core
/tests/components/blueprint/ @home-assistant/core
/homeassistant/components/bluesound/ @thrawnarn
/homeassistant/components/bluetooth/ @bdraco
/tests/components/bluetooth/ @bdraco
/homeassistant/components/bmw_connected_drive/ @gerard33 @rikroe
/tests/components/bmw_connected_drive/ @gerard33 @rikroe
/homeassistant/components/bond/ @bdraco @prystupa @joshs85 @marciogranzotto
@@ -153,6 +163,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/bsblan/ @liudger
/tests/components/bsblan/ @liudger
/homeassistant/components/bt_smarthub/ @jxwolstenholme
/homeassistant/components/bthome/ @Ernst79
/tests/components/bthome/ @Ernst79
/homeassistant/components/buienradar/ @mjj4791 @ties @Robbie1221
/tests/components/buienradar/ @mjj4791 @ties @Robbie1221
/homeassistant/components/button/ @home-assistant/core
@@ -169,8 +181,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/cisco_ios/ @fbradyirl
/homeassistant/components/cisco_mobility_express/ @fbradyirl
/homeassistant/components/cisco_webex_teams/ @fbradyirl
/homeassistant/components/climacell/ @raman325
/tests/components/climacell/ @raman325
/homeassistant/components/climate/ @home-assistant/core
/tests/components/climate/ @home-assistant/core
/homeassistant/components/cloud/ @home-assistant/cloud
@@ -255,7 +265,8 @@ build.json @home-assistant/supervisor
/tests/components/doorbird/ @oblogic7 @bdraco @flacjacket
/homeassistant/components/dsmr/ @Robbie1221 @frenck
/tests/components/dsmr/ @Robbie1221 @frenck
/homeassistant/components/dsmr_reader/ @depl0y
/homeassistant/components/dsmr_reader/ @depl0y @glodenox
/tests/components/dsmr_reader/ @depl0y @glodenox
/homeassistant/components/dunehd/ @bieniu
/tests/components/dunehd/ @bieniu
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @Hummel95
@@ -267,7 +278,9 @@ build.json @home-assistant/supervisor
/tests/components/ecobee/ @marthoc
/homeassistant/components/econet/ @vangorra @w1ll1am23
/tests/components/econet/ @vangorra @w1ll1am23
/homeassistant/components/ecovacs/ @OverloadUT
/homeassistant/components/ecovacs/ @OverloadUT @mib1185
/homeassistant/components/ecowitt/ @pvizeli
/tests/components/ecowitt/ @pvizeli
/homeassistant/components/edl21/ @mtdcr
/homeassistant/components/efergy/ @tkdrob
/tests/components/efergy/ @tkdrob
@@ -305,6 +318,8 @@ build.json @home-assistant/supervisor
/tests/components/epson/ @pszafer
/homeassistant/components/epsonworkforce/ @ThaStealth
/homeassistant/components/eq3btsmart/ @rytilahti
/homeassistant/components/escea/ @lazdavila
/tests/components/escea/ @lazdavila
/homeassistant/components/esphome/ @OttoWinter @jesserockz
/tests/components/esphome/ @OttoWinter @jesserockz
/homeassistant/components/evil_genius_labs/ @balloob
@@ -321,6 +336,8 @@ build.json @home-assistant/supervisor
/tests/components/fibaro/ @rappenze
/homeassistant/components/file/ @fabaff
/tests/components/file/ @fabaff
/homeassistant/components/file_upload/ @home-assistant/core
/tests/components/file_upload/ @home-assistant/core
/homeassistant/components/filesize/ @gjohansson-ST
/tests/components/filesize/ @gjohansson-ST
/homeassistant/components/filter/ @dgomes
@@ -339,10 +356,8 @@ build.json @home-assistant/supervisor
/tests/components/flipr/ @cnico
/homeassistant/components/flo/ @dmulcahey
/tests/components/flo/ @dmulcahey
/homeassistant/components/flume/ @ChrisMandich @bdraco
/tests/components/flume/ @ChrisMandich @bdraco
/homeassistant/components/flunearyou/ @bachya
/tests/components/flunearyou/ @bachya
/homeassistant/components/flume/ @ChrisMandich @bdraco @jeeftor
/tests/components/flume/ @ChrisMandich @bdraco @jeeftor
/homeassistant/components/flux_led/ @icemanch @bdraco
/tests/components/flux_led/ @icemanch @bdraco
/homeassistant/components/forecast_solar/ @klaasnicolaas @frenck
@@ -367,6 +382,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/frontend/ @home-assistant/frontend
/tests/components/frontend/ @home-assistant/frontend
/homeassistant/components/frontier_silicon/ @wlcrs
/homeassistant/components/fully_kiosk/ @cgarwood
/tests/components/fully_kiosk/ @cgarwood
/homeassistant/components/garages_amsterdam/ @klaasnicolaas
/tests/components/garages_amsterdam/ @klaasnicolaas
/homeassistant/components/gdacs/ @exxamalte
@@ -405,8 +422,12 @@ build.json @home-assistant/supervisor
/homeassistant/components/google_assistant/ @home-assistant/cloud
/tests/components/google_assistant/ @home-assistant/cloud
/homeassistant/components/google_cloud/ @lufton
/homeassistant/components/google_sheets/ @tkdrob
/tests/components/google_sheets/ @tkdrob
/homeassistant/components/google_travel_time/ @eifinger
/tests/components/google_travel_time/ @eifinger
/homeassistant/components/govee_ble/ @bdraco
/tests/components/govee_ble/ @bdraco
/homeassistant/components/gpsd/ @fabaff
/homeassistant/components/gree/ @cmroche
/tests/components/gree/ @cmroche
@@ -428,6 +449,8 @@ build.json @home-assistant/supervisor
/tests/components/harmony/ @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan
/homeassistant/components/hassio/ @home-assistant/supervisor
/tests/components/hassio/ @home-assistant/supervisor
/homeassistant/components/hdmi_cec/ @inytar
/tests/components/hdmi_cec/ @inytar
/homeassistant/components/heatmiser/ @andylockran
/homeassistant/components/heos/ @andrewsayre
/tests/components/heos/ @andrewsayre
@@ -449,6 +472,10 @@ build.json @home-assistant/supervisor
/tests/components/home_plus_control/ @chemaaa
/homeassistant/components/homeassistant/ @home-assistant/core
/tests/components/homeassistant/ @home-assistant/core
/homeassistant/components/homeassistant_alerts/ @home-assistant/core
/tests/components/homeassistant_alerts/ @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
/tests/components/homeassistant_yellow/ @home-assistant/core
/homeassistant/components/homekit/ @bdraco
@@ -483,6 +510,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/iammeter/ @lewei50
/homeassistant/components/iaqualink/ @flz
/tests/components/iaqualink/ @flz
/homeassistant/components/ibeacon/ @bdraco
/tests/components/ibeacon/ @bdraco
/homeassistant/components/icloud/ @Quentame @nzapponi
/tests/components/icloud/ @Quentame @nzapponi
/homeassistant/components/ign_sismologia/ @exxamalte
@@ -494,6 +523,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/incomfort/ @zxdavb
/homeassistant/components/influxdb/ @mdegat01
/tests/components/influxdb/ @mdegat01
/homeassistant/components/inkbird/ @bdraco
/tests/components/inkbird/ @bdraco
/homeassistant/components/input_boolean/ @home-assistant/core
/tests/components/input_boolean/ @home-assistant/core
/homeassistant/components/input_button/ @home-assistant/core
@@ -541,6 +572,8 @@ build.json @home-assistant/supervisor
/tests/components/jewish_calendar/ @tsvi
/homeassistant/components/juicenet/ @jesserockz
/tests/components/juicenet/ @jesserockz
/homeassistant/components/justnimbus/ @kvanzuijlen
/tests/components/justnimbus/ @kvanzuijlen
/homeassistant/components/kaiterra/ @Michsior14
/homeassistant/components/kaleidescape/ @SteveEasley
/tests/components/kaleidescape/ @SteveEasley
@@ -548,7 +581,11 @@ build.json @home-assistant/supervisor
/homeassistant/components/keenetic_ndms2/ @foxel
/tests/components/keenetic_ndms2/ @foxel
/homeassistant/components/kef/ @basnijholt
/homeassistant/components/kegtron/ @Ernst79
/tests/components/kegtron/ @Ernst79
/homeassistant/components/keyboard_remote/ @bendavid @lanrat
/homeassistant/components/keymitt_ble/ @spycle
/tests/components/keymitt_ble/ @spycle
/homeassistant/components/kmtronic/ @dgomes
/tests/components/kmtronic/ @dgomes
/homeassistant/components/knx/ @Julius2342 @farmio @marvin-w
@@ -563,24 +600,34 @@ build.json @home-assistant/supervisor
/tests/components/kraken/ @eifinger
/homeassistant/components/kulersky/ @emlove
/tests/components/kulersky/ @emlove
/homeassistant/components/lacrosse_view/ @IceBotYT
/tests/components/lacrosse_view/ @IceBotYT
/homeassistant/components/lametric/ @robbiet480 @frenck
/tests/components/lametric/ @robbiet480 @frenck
/homeassistant/components/landisgyr_heat_meter/ @vpathuis
/tests/components/landisgyr_heat_meter/ @vpathuis
/homeassistant/components/launch_library/ @ludeeus @DurgNomis-drol
/tests/components/launch_library/ @ludeeus @DurgNomis-drol
/homeassistant/components/laundrify/ @xLarry
/tests/components/laundrify/ @xLarry
/homeassistant/components/lcn/ @alengwenus
/tests/components/lcn/ @alengwenus
/homeassistant/components/led_ble/ @bdraco
/tests/components/led_ble/ @bdraco
/homeassistant/components/lg_netcast/ @Drafteed
/homeassistant/components/lidarr/ @tkdrob
/tests/components/lidarr/ @tkdrob
/homeassistant/components/life360/ @pnbruckner
/tests/components/life360/ @pnbruckner
/homeassistant/components/lifx/ @Djelibeybi
/homeassistant/components/lifx/ @bdraco @Djelibeybi
/tests/components/lifx/ @bdraco @Djelibeybi
/homeassistant/components/light/ @home-assistant/core
/tests/components/light/ @home-assistant/core
/homeassistant/components/linux_battery/ @fabaff
/homeassistant/components/litejet/ @joncar
/tests/components/litejet/ @joncar
/homeassistant/components/litterrobot/ @natekspencer
/tests/components/litterrobot/ @natekspencer
/homeassistant/components/litterrobot/ @natekspencer @tkdrob
/tests/components/litterrobot/ @natekspencer @tkdrob
/homeassistant/components/local_ip/ @issacg
/tests/components/local_ip/ @issacg
/homeassistant/components/lock/ @home-assistant/core
@@ -600,8 +647,8 @@ build.json @home-assistant/supervisor
/tests/components/luftdaten/ @fabaff @frenck
/homeassistant/components/lupusec/ @majuss
/homeassistant/components/lutron/ @JonGilmore
/homeassistant/components/lutron_caseta/ @swails @bdraco
/tests/components/lutron_caseta/ @swails @bdraco
/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
@@ -619,6 +666,8 @@ build.json @home-assistant/supervisor
/tests/components/melcloud/ @vilppuvuorinen
/homeassistant/components/melissa/ @kennedyshead
/tests/components/melissa/ @kennedyshead
/homeassistant/components/melnor/ @vanstinator
/tests/components/melnor/ @vanstinator
/homeassistant/components/met/ @danielhiversen @thimic
/tests/components/met/ @danielhiversen @thimic
/homeassistant/components/met_eireann/ @DylanGore
@@ -628,8 +677,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/meteoalarm/ @rolfberkenbosch
/homeassistant/components/meteoclimatic/ @adrianmo
/tests/components/meteoclimatic/ @adrianmo
/homeassistant/components/metoffice/ @MrHarcombe
/tests/components/metoffice/ @MrHarcombe
/homeassistant/components/metoffice/ @MrHarcombe @avee87
/tests/components/metoffice/ @MrHarcombe @avee87
/homeassistant/components/miflora/ @danielhiversen @basnijholt
/homeassistant/components/mikrotik/ @engrbm87
/tests/components/mikrotik/ @engrbm87
@@ -641,6 +690,8 @@ build.json @home-assistant/supervisor
/tests/components/minecraft_server/ @elmurato
/homeassistant/components/minio/ @tkislan
/tests/components/minio/ @tkislan
/homeassistant/components/moat/ @bdraco
/tests/components/moat/ @bdraco
/homeassistant/components/mobile_app/ @home-assistant/core
/tests/components/mobile_app/ @home-assistant/core
/homeassistant/components/modbus/ @adamchengtkc @janiversen @vzahradnik
@@ -696,8 +747,12 @@ build.json @home-assistant/supervisor
/homeassistant/components/nextbus/ @vividboarder
/tests/components/nextbus/ @vividboarder
/homeassistant/components/nextcloud/ @meichthys
/homeassistant/components/nextdns/ @bieniu
/tests/components/nextdns/ @bieniu
/homeassistant/components/nfandroidtv/ @tkdrob
/tests/components/nfandroidtv/ @tkdrob
/homeassistant/components/nibe_heatpump/ @elupus
/tests/components/nibe_heatpump/ @elupus
/homeassistant/components/nightscout/ @marciogranzotto
/tests/components/nightscout/ @marciogranzotto
/homeassistant/components/nilu/ @hfurubotten
@@ -706,6 +761,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/nissan_leaf/ @filcole
/homeassistant/components/nmbs/ @thibmaek
/homeassistant/components/noaa_tides/ @jdelaney72
/homeassistant/components/nobo_hub/ @echoromeo @oyvindwe
/tests/components/nobo_hub/ @echoromeo @oyvindwe
/homeassistant/components/notify/ @home-assistant/core
/tests/components/notify/ @home-assistant/core
/homeassistant/components/notify_events/ @matrozov @papajojo
@@ -749,6 +806,8 @@ build.json @home-assistant/supervisor
/tests/components/open_meteo/ @frenck
/homeassistant/components/openerz/ @misialq
/tests/components/openerz/ @misialq
/homeassistant/components/openexchangerates/ @MartinHjelmare
/tests/components/openexchangerates/ @MartinHjelmare
/homeassistant/components/opengarage/ @danielhiversen
/tests/components/opengarage/ @danielhiversen
/homeassistant/components/openhome/ @bazwilliams
@@ -806,17 +865,23 @@ build.json @home-assistant/supervisor
/homeassistant/components/prosegur/ @dgomes
/tests/components/prosegur/ @dgomes
/homeassistant/components/proxmoxve/ @jhollowe @Corbeno
/homeassistant/components/prusalink/ @balloob
/tests/components/prusalink/ @balloob
/homeassistant/components/ps4/ @ktnrg45
/tests/components/ps4/ @ktnrg45
/homeassistant/components/pure_energie/ @klaasnicolaas
/tests/components/pure_energie/ @klaasnicolaas
/homeassistant/components/push/ @dgomes
/tests/components/push/ @dgomes
/homeassistant/components/pushover/ @engrbm87
/tests/components/pushover/ @engrbm87
/homeassistant/components/pvoutput/ @frenck
/tests/components/pvoutput/ @frenck
/homeassistant/components/pvpc_hourly_pricing/ @azogue
/tests/components/pvpc_hourly_pricing/ @azogue
/homeassistant/components/qbittorrent/ @geoffreylagaisse
/homeassistant/components/qingping/ @bdraco @skgsergio
/tests/components/qingping/ @bdraco @skgsergio
/homeassistant/components/qld_bushfire/ @exxamalte
/tests/components/qld_bushfire/ @exxamalte
/homeassistant/components/qnap_qsw/ @Noltari
@@ -827,6 +892,8 @@ build.json @home-assistant/supervisor
/tests/components/qwikswitch/ @kellerza
/homeassistant/components/rachio/ @bdraco
/tests/components/rachio/ @bdraco
/homeassistant/components/radarr/ @tkdrob
/tests/components/radarr/ @tkdrob
/homeassistant/components/radio_browser/ @frenck
/tests/components/radio_browser/ @frenck
/homeassistant/components/radiotherm/ @bdraco @vinnyfuria
@@ -852,11 +919,15 @@ build.json @home-assistant/supervisor
/tests/components/remote/ @home-assistant/core
/homeassistant/components/renault/ @epenet
/tests/components/renault/ @epenet
/homeassistant/components/repairs/ @home-assistant/core
/tests/components/repairs/ @home-assistant/core
/homeassistant/components/repetier/ @MTrab @ShadowBr0ther
/homeassistant/components/rflink/ @javicalle
/tests/components/rflink/ @javicalle
/homeassistant/components/rfxtrx/ @danielhiversen @elupus @RobBie1221
/tests/components/rfxtrx/ @danielhiversen @elupus @RobBie1221
/homeassistant/components/rhasspy/ @balloob @synesthesiam
/tests/components/rhasspy/ @balloob @synesthesiam
/homeassistant/components/ridwell/ @bachya
/tests/components/ridwell/ @bachya
/homeassistant/components/ring/ @balloob
@@ -890,6 +961,8 @@ build.json @home-assistant/supervisor
/tests/components/samsungtv/ @chemelli74 @epenet
/homeassistant/components/scene/ @home-assistant/core
/tests/components/scene/ @home-assistant/core
/homeassistant/components/schedule/ @home-assistant/core
/tests/components/schedule/ @home-assistant/core
/homeassistant/components/schluter/ @prairieapps
/homeassistant/components/scrape/ @fabaff
/tests/components/scrape/ @fabaff
@@ -911,6 +984,10 @@ build.json @home-assistant/supervisor
/tests/components/sensibo/ @andrey-git @gjohansson-ST
/homeassistant/components/sensor/ @home-assistant/core
/tests/components/sensor/ @home-assistant/core
/homeassistant/components/sensorpro/ @bdraco
/tests/components/sensorpro/ @bdraco
/homeassistant/components/sensorpush/ @bdraco
/tests/components/sensorpush/ @bdraco
/homeassistant/components/sentry/ @dcramer @frenck
/tests/components/sentry/ @dcramer @frenck
/homeassistant/components/senz/ @milanmeu
@@ -977,6 +1054,8 @@ build.json @home-assistant/supervisor
/tests/components/songpal/ @rytilahti @shenxn
/homeassistant/components/sonos/ @cgtobi @jjlawren
/tests/components/sonos/ @cgtobi @jjlawren
/homeassistant/components/soundtouch/ @kroimon
/tests/components/soundtouch/ @kroimon
/homeassistant/components/spaceapi/ @fabaff
/tests/components/spaceapi/ @fabaff
/homeassistant/components/speedtestdotnet/ @rohankapoorcom @engrbm87
@@ -1021,11 +1100,13 @@ build.json @home-assistant/supervisor
/tests/components/switch/ @home-assistant/core
/homeassistant/components/switch_as_x/ @home-assistant/core
/tests/components/switch_as_x/ @home-assistant/core
/homeassistant/components/switchbot/ @danielhiversen @RenierM26
/tests/components/switchbot/ @danielhiversen @RenierM26
/homeassistant/components/switchbee/ @jafar-atili
/tests/components/switchbee/ @jafar-atili
/homeassistant/components/switchbot/ @bdraco @danielhiversen @RenierM26 @murtas @Eloston
/tests/components/switchbot/ @bdraco @danielhiversen @RenierM26 @murtas @Eloston
/homeassistant/components/switcher_kis/ @tomerfi @thecode
/tests/components/switcher_kis/ @tomerfi @thecode
/homeassistant/components/switchmate/ @danielhiversen
/homeassistant/components/switchmate/ @danielhiversen @qiz-li
/homeassistant/components/syncthing/ @zhulik
/tests/components/syncthing/ @zhulik
/homeassistant/components/syncthru/ @nielstron
@@ -1055,6 +1136,10 @@ build.json @home-assistant/supervisor
/homeassistant/components/tesla_wall_connector/ @einarhauks
/tests/components/tesla_wall_connector/ @einarhauks
/homeassistant/components/tfiac/ @fredrike @mellado
/homeassistant/components/thermobeacon/ @bdraco
/tests/components/thermobeacon/ @bdraco
/homeassistant/components/thermopro/ @bdraco
/tests/components/thermopro/ @bdraco
/homeassistant/components/thethingsnetwork/ @fabaff
/homeassistant/components/threshold/ @fabaff
/tests/components/threshold/ @fabaff
@@ -1062,6 +1147,8 @@ build.json @home-assistant/supervisor
/tests/components/tibber/ @danielhiversen
/homeassistant/components/tile/ @bachya
/tests/components/tile/ @bachya
/homeassistant/components/tilt_ble/ @apt-itude
/tests/components/tilt_ble/ @apt-itude
/homeassistant/components/time_date/ @fabaff
/tests/components/time_date/ @fabaff
/homeassistant/components/tmb/ @alemuro
@@ -1150,7 +1237,8 @@ build.json @home-assistant/supervisor
/tests/components/vlc_telnet/ @rodripf @MartinHjelmare
/homeassistant/components/volumio/ @OnFreund
/tests/components/volumio/ @OnFreund
/homeassistant/components/volvooncall/ @molobrakos @decompil3d
/homeassistant/components/volvooncall/ @molobrakos
/tests/components/volvooncall/ @molobrakos
/homeassistant/components/vulcan/ @Antoni-Czaplicki
/tests/components/vulcan/ @Antoni-Czaplicki
/homeassistant/components/wake_on_lan/ @ntilley905
@@ -1203,12 +1291,16 @@ build.json @home-assistant/supervisor
/homeassistant/components/xbox_live/ @MartinHjelmare
/homeassistant/components/xiaomi_aqara/ @danielhiversen @syssi
/tests/components/xiaomi_aqara/ @danielhiversen @syssi
/homeassistant/components/xiaomi_ble/ @Jc2k @Ernst79
/tests/components/xiaomi_ble/ @Jc2k @Ernst79
/homeassistant/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG @bieniu
/tests/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG @bieniu
/homeassistant/components/xiaomi_tv/ @simse
/homeassistant/components/xmpp/ @fabaff @flowolf
/homeassistant/components/yale_smart_alarm/ @gjohansson-ST
/tests/components/yale_smart_alarm/ @gjohansson-ST
/homeassistant/components/yalexs_ble/ @bdraco
/tests/components/yalexs_ble/ @bdraco
/homeassistant/components/yamaha_musiccast/ @vigonotion @micha91
/tests/components/yamaha_musiccast/ @vigonotion @micha91
/homeassistant/components/yandex_transport/ @rishatik92 @devbis
@@ -1226,8 +1318,8 @@ build.json @home-assistant/supervisor
/tests/components/zeroconf/ @bdraco
/homeassistant/components/zerproc/ @emlove
/tests/components/zerproc/ @emlove
/homeassistant/components/zha/ @dmulcahey @adminiuga
/tests/components/zha/ @dmulcahey @adminiuga
/homeassistant/components/zha/ @dmulcahey @adminiuga @puddly
/tests/components/zha/ @dmulcahey @adminiuga @puddly
/homeassistant/components/zodiac/ @JulienTant
/tests/components/zodiac/ @JulienTant
/homeassistant/components/zone/ @home-assistant/core

View File

@@ -13,9 +13,12 @@ COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
RUN \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements.txt --use-deprecated=legacy-resolver
COPY requirements_all.txt homeassistant/
COPY requirements_all.txt home_assistant_frontend-* homeassistant/
RUN \
pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
if ls homeassistant/home_assistant_frontend*.whl 1> /dev/null 2>&1; then \
pip3 install --no-cache-dir --no-index homeassistant/home_assistant_frontend-*.whl; \
fi \
&& pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-r homeassistant/requirements_all.txt --use-deprecated=legacy-resolver
## Setup Home Assistant Core

View File

@@ -12,7 +12,7 @@ demo <https://home-assistant.io/demo/>`__, `installation instructions <https://h
Featured integrations
---------------------
|screenshot-components|
|screenshot-integrations|
The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/architecture_index/>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/creating_component_index/>`__.
@@ -24,5 +24,5 @@ of a component, check the `Home Assistant help section <https://home-assistant.i
:target: https://discord.gg/c5DvZ4e
.. |screenshot-states| image:: https://raw.githubusercontent.com/home-assistant/core/master/docs/screenshots.png
:target: https://home-assistant.io/demo/
.. |screenshot-components| image:: https://raw.githubusercontent.com/home-assistant/core/dev/docs/screenshot-components.png
.. |screenshot-integrations| image:: https://raw.githubusercontent.com/home-assistant/core/dev/docs/screenshot-integrations.png
:target: https://home-assistant.io/integrations/

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.06.2
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2022.06.2
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2022.06.2
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2022.06.2
i386: ghcr.io/home-assistant/i386-homeassistant-base:2022.06.2
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2022.07.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2022.07.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2022.07.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2022.07.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2022.07.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -46,7 +46,7 @@ class AuthStore:
self._users: dict[str, models.User] | None = None
self._groups: dict[str, models.Group] | None = None
self._perm_lookup: PermissionLookup | None = None
self._store = Store(
self._store = Store[dict[str, list[dict[str, Any]]]](
hass, STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._lock = asyncio.Lock()
@@ -483,9 +483,10 @@ class AuthStore:
jwt_key=rt_dict["jwt_key"],
last_used_at=last_used_at,
last_used_ip=rt_dict.get("last_used_ip"),
credential=credentials.get(rt_dict.get("credential_id")),
version=rt_dict.get("version"),
)
if "credential_id" in rt_dict:
token.credential = credentials.get(rt_dict["credential_id"])
users[rt_dict["user_id"]].refresh_tokens[token.id] = token
self._groups = groups

View File

@@ -7,7 +7,7 @@ from __future__ import annotations
import asyncio
from collections import OrderedDict
import logging
from typing import Any
from typing import Any, cast
import attr
import voluptuous as vol
@@ -26,7 +26,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.6.0"]
REQUIREMENTS = ["pyotp==2.7.0"]
CONF_MESSAGE = "message"
@@ -100,7 +100,7 @@ class NotifyAuthModule(MultiFactorAuthModule):
"""Initialize the user data store."""
super().__init__(hass, config)
self._user_settings: _UsersDict | None = None
self._user_store = Store(
self._user_store = Store[dict[str, dict[str, Any]]](
hass, STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._include = config.get(CONF_INCLUDE, [])
@@ -119,10 +119,8 @@ class NotifyAuthModule(MultiFactorAuthModule):
if self._user_settings is not None:
return
if (data := await self._user_store.async_load()) is None or not isinstance(
data, dict
):
data = {STORAGE_USERS: {}}
if (data := await self._user_store.async_load()) is None:
data = cast(dict[str, dict[str, Any]], {STORAGE_USERS: {}})
self._user_settings = {
user_id: NotifySetting(**setting)
@@ -322,6 +320,7 @@ class NotifySetupFlow(SetupFlow):
errors: dict[str, str] = {}
hass = self._auth_module.hass
assert self._secret and self._count
if user_input:
verified = await hass.async_add_executor_job(
_verify_otp, self._secret, user_input["code"], self._count
@@ -336,7 +335,6 @@ class NotifySetupFlow(SetupFlow):
errors["base"] = "invalid_code"
# generate code every time, no retry logic
assert self._secret and self._count
code = await hass.async_add_executor_job(
_generate_otp, self._secret, self._count
)

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
import asyncio
from io import BytesIO
from typing import Any
from typing import Any, cast
import voluptuous as vol
@@ -19,7 +19,7 @@ from . import (
SetupFlow,
)
REQUIREMENTS = ["pyotp==2.6.0", "PyQRCode==1.2.1"]
REQUIREMENTS = ["pyotp==2.7.0", "PyQRCode==1.2.1"]
CONFIG_SCHEMA = MULTI_FACTOR_AUTH_MODULE_SCHEMA.extend({}, extra=vol.PREVENT_EXTRA)
@@ -77,7 +77,7 @@ class TotpAuthModule(MultiFactorAuthModule):
"""Initialize the user data store."""
super().__init__(hass, config)
self._users: dict[str, str] | None = None
self._user_store = Store(
self._user_store = Store[dict[str, dict[str, str]]](
hass, STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._init_lock = asyncio.Lock()
@@ -93,16 +93,14 @@ class TotpAuthModule(MultiFactorAuthModule):
if self._users is not None:
return
if (data := await self._user_store.async_load()) is None or not isinstance(
data, dict
):
data = {STORAGE_USERS: {}}
if (data := await self._user_store.async_load()) is None:
data = cast(dict[str, dict[str, str]], {STORAGE_USERS: {}})
self._users = data.get(STORAGE_USERS, {})
async def _async_save(self) -> None:
"""Save data."""
await self._user_store.async_save({STORAGE_USERS: self._users})
await self._user_store.async_save({STORAGE_USERS: self._users or {}})
def _add_ota_secret(self, user_id: str, secret: str | None = None) -> str:
"""Create a ota_secret for user."""

View File

@@ -61,10 +61,10 @@ class Data:
def __init__(self, hass: HomeAssistant) -> None:
"""Initialize the user data store."""
self.hass = hass
self._store = Store(
self._store = Store[dict[str, list[dict[str, str]]]](
hass, STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._data: dict[str, Any] | None = None
self._data: dict[str, list[dict[str, str]]] | None = None
# Legacy mode will allow usernames to start/end with whitespace
# and will compare usernames case-insensitive.
# Remove in 2020 or when we launch 1.0.
@@ -80,10 +80,8 @@ class Data:
async def async_load(self) -> None:
"""Load stored data."""
if (data := await self._store.async_load()) is None or not isinstance(
data, dict
):
data = {"users": []}
if (data := await self._store.async_load()) is None:
data = cast(dict[str, list[dict[str, str]]], {"users": []})
seen: set[str] = set()
@@ -123,7 +121,8 @@ class Data:
@property
def users(self) -> list[dict[str, str]]:
"""Return users."""
return self._data["users"] # type: ignore[index,no-any-return]
assert self._data is not None
return self._data["users"]
def validate_login(self, username: str, password: str) -> None:
"""Validate a username and password.

View File

@@ -4,15 +4,15 @@ from __future__ import annotations
from enum import Enum
from typing import Any, TypeVar
_StrEnumT = TypeVar("_StrEnumT", bound="StrEnum")
_StrEnumSelfT = TypeVar("_StrEnumSelfT", bound="StrEnum")
class StrEnum(str, Enum):
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
def __new__(
cls: type[_StrEnumT], value: str, *args: Any, **kwargs: Any
) -> _StrEnumT:
cls: type[_StrEnumSelfT], value: str, *args: Any, **kwargs: Any
) -> _StrEnumSelfT:
"""Create a new StrEnum instance."""
if not isinstance(value, str):
raise TypeError(f"{value!r} is not a string")

View File

@@ -24,7 +24,13 @@ from .const import (
SIGNAL_BOOTSTRAP_INTEGRATONS,
)
from .exceptions import HomeAssistantError
from .helpers import area_registry, device_registry, entity_registry
from .helpers import (
area_registry,
device_registry,
entity_registry,
issue_registry,
recorder,
)
from .helpers.dispatcher import async_dispatcher_send
from .helpers.typing import ConfigType
from .setup import (
@@ -35,7 +41,6 @@ from .setup import (
async_setup_component,
)
from .util import dt as dt_util
from .util.async_ import gather_with_concurrency
from .util.logging import async_activate_log_queue_handler
from .util.package import async_get_user_site, is_virtual_env
@@ -67,10 +72,19 @@ LOGGING_INTEGRATIONS = {
# Error logging
"system_log",
"sentry",
}
FRONTEND_INTEGRATIONS = {
# Get the frontend up and running as soon as possible so problem
# integrations can be removed and database migration status is
# visible in frontend
"frontend",
}
RECORDER_INTEGRATIONS = {
# Setup after frontend
# To record data
"recorder",
}
DISCOVERY_INTEGRATIONS = ("dhcp", "ssdp", "usb", "zeroconf")
DISCOVERY_INTEGRATIONS = ("bluetooth", "dhcp", "ssdp", "usb", "zeroconf")
STAGE_1_INTEGRATIONS = {
# We need to make sure discovery integrations
# update their deps before stage 2 integrations
@@ -84,10 +98,6 @@ STAGE_1_INTEGRATIONS = {
"cloud",
# Ensure supervisor is available
"hassio",
# Get the frontend up and running as soon
# as possible so problem integrations can
# be removed
"frontend",
}
@@ -285,7 +295,9 @@ def async_enable_logging(
This method must be run in the event loop.
"""
fmt = "%(asctime)s %(levelname)s (%(threadName)s) [%(name)s] %(message)s"
fmt = (
"%(asctime)s.%(msecs)03d %(levelname)s (%(threadName)s) [%(name)s] %(message)s"
)
datefmt = "%Y-%m-%d %H:%M:%S"
if not log_no_color:
@@ -477,14 +489,9 @@ async def _async_set_up_integrations(
integrations_to_process = [
int_or_exc
for int_or_exc in await gather_with_concurrency(
loader.MAX_LOAD_CONCURRENTLY,
*(
loader.async_get_integration(hass, domain)
for domain in old_to_resolve
),
return_exceptions=True,
)
for int_or_exc in (
await loader.async_get_integrations(hass, old_to_resolve)
).values()
if isinstance(int_or_exc, loader.Integration)
]
resolve_dependencies_tasks = [
@@ -508,11 +515,44 @@ 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)
# Load logging as soon as possible
if logging_domains := domains_to_setup & LOGGING_INTEGRATIONS:
_LOGGER.info("Setting up logging: %s", logging_domains)
await async_setup_multi_components(hass, logging_domains, config)
# Setup frontend
if frontend_domains := domains_to_setup & FRONTEND_INTEGRATIONS:
_LOGGER.info("Setting up frontend: %s", frontend_domains)
await async_setup_multi_components(hass, frontend_domains, config)
# Setup recorder
if recorder_domains := domains_to_setup & RECORDER_INTEGRATIONS:
_LOGGER.info("Setting up recorder: %s", recorder_domains)
await async_setup_multi_components(hass, recorder_domains, config)
# Start up debuggers. Start these first in case they want to wait.
if debuggers := domains_to_setup & DEBUGGER_INTEGRATIONS:
_LOGGER.debug("Setting up debuggers: %s", debuggers)
@@ -522,7 +562,8 @@ async def _async_set_up_integrations(
stage_1_domains: set[str] = set()
# Find all dependencies of any dependency of any stage 1 integration that
# we plan on loading and promote them to stage 1
# we plan on loading and promote them to stage 1. This is done only to not
# get misleading log messages
deps_promotion: set[str] = STAGE_1_INTEGRATIONS
while deps_promotion:
old_deps_promotion = deps_promotion
@@ -539,24 +580,13 @@ async def _async_set_up_integrations(
deps_promotion.update(dep_itg.all_dependencies)
stage_2_domains = domains_to_setup - logging_domains - debuggers - stage_1_domains
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
await asyncio.gather(
device_registry.async_load(hass),
entity_registry.async_load(hass),
area_registry.async_load(hass),
hass.async_add_executor_job(_cache_uname_processor),
stage_2_domains = (
domains_to_setup
- logging_domains
- frontend_domains
- recorder_domains
- debuggers
- stage_1_domains
)
# Start setup

View File

@@ -0,0 +1,11 @@
{
"domain": "apple",
"name": "Apple",
"integrations": [
"icloud",
"ibeacon",
"apple_tv",
"homekit",
"homekit_controller"
]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "denon",
"name": "Denon",
"integrations": ["denon", "denonavr", "heos"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "fritzbox",
"name": "FRITZ!Box",
"integrations": ["fritz", "fritzbox", "fritzbox_callmonitor"]
}

View File

@@ -0,0 +1,20 @@
{
"domain": "google",
"name": "Google",
"integrations": [
"google_assistant",
"google_cloud",
"google_domains",
"google_maps",
"google_pubsub",
"google_sheets",
"google_translate",
"google_travel_time",
"google_wifi",
"google",
"nest",
"cast",
"hangouts",
"dialogflow"
]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "leviton",
"name": "Leviton",
"iot_standards": ["zwave"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "third_reality",
"name": "Third Reality",
"iot_standards": ["zigbee"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "ubiquiti",
"name": "Ubiquiti",
"integrations": ["unifi", "unifi_direct", "unifiled", "unifiprotect"]
}

View File

@@ -103,7 +103,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data[DOMAIN] = AbodeSystem(abode, polling)
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
await setup_hass_events(hass)
await hass.async_add_executor_job(setup_hass_services, hass)
@@ -248,6 +248,7 @@ class AbodeEntity(entity.Entity):
"""Representation of an Abode entity."""
_attr_attribution = ATTRIBUTION
_attr_has_entity_name = True
def __init__(self, data: AbodeSystem) -> None:
"""Initialize Abode entity."""
@@ -283,7 +284,6 @@ class AbodeDevice(AbodeEntity):
"""Initialize Abode device."""
super().__init__(data)
self._device = device
self._attr_name = device.name
self._attr_unique_id = device.device_uuid
async def async_added_to_hass(self) -> None:

View File

@@ -30,12 +30,10 @@ async def async_setup_entry(
CONST.TYPE_OPENING,
]
entities = []
for device in data.abode.get_devices(generic_type=device_types):
entities.append(AbodeBinarySensor(data, device))
async_add_entities(entities)
async_add_entities(
AbodeBinarySensor(data, device)
for device in data.abode.get_devices(generic_type=device_types)
)
class AbodeBinarySensor(AbodeDevice, BinarySensorEntity):

View File

@@ -28,12 +28,11 @@ async def async_setup_entry(
) -> None:
"""Set up Abode camera devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA):
entities.append(AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE))
async_add_entities(entities)
async_add_entities(
AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE)
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA)
)
class AbodeCamera(AbodeDevice, Camera):
@@ -75,7 +74,9 @@ class AbodeCamera(AbodeDevice, Camera):
"""Attempt to download the most recent capture."""
if self._device.image_url:
try:
self._response = requests.get(self._device.image_url, stream=True)
self._response = requests.get(
self._device.image_url, stream=True, timeout=10
)
self._response.raise_for_status()
except requests.HTTPError as err:

View File

@@ -19,12 +19,10 @@ async def async_setup_entry(
"""Set up Abode cover devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_COVER):
entities.append(AbodeCover(data, device))
async_add_entities(entities)
async_add_entities(
AbodeCover(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_COVER)
)
class AbodeCover(AbodeDevice, CoverEntity):

View File

@@ -32,12 +32,10 @@ async def async_setup_entry(
"""Set up Abode light devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_LIGHT):
entities.append(AbodeLight(data, device))
async_add_entities(entities)
async_add_entities(
AbodeLight(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_LIGHT)
)
class AbodeLight(AbodeDevice, LightEntity):

View File

@@ -19,12 +19,10 @@ async def async_setup_entry(
"""Set up Abode lock devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_LOCK):
entities.append(AbodeLock(data, device))
async_add_entities(entities)
async_add_entities(
AbodeLock(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_LOCK)
)
class AbodeLock(AbodeDevice, LockEntity):

View File

@@ -42,19 +42,12 @@ async def async_setup_entry(
"""Set up Abode sensor devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities = []
for device in data.abode.get_devices(generic_type=CONST.TYPE_SENSOR):
conditions = device.get_value(CONST.STATUSES_KEY)
entities.extend(
[
AbodeSensor(data, device, description)
for description in SENSOR_TYPES
if description.key in conditions
]
)
async_add_entities(entities)
async_add_entities(
AbodeSensor(data, device, description)
for description in SENSOR_TYPES
for device in data.abode.get_devices(generic_type=CONST.TYPE_SENSOR)
if description.key in device.get_value(CONST.STATUSES_KEY)
)
class AbodeSensor(AbodeDevice, SensorEntity):
@@ -71,7 +64,6 @@ class AbodeSensor(AbodeDevice, SensorEntity):
"""Initialize a sensor for an Abode device."""
super().__init__(data, device)
self.entity_description = description
self._attr_name = f"{device.name} {description.name}"
self._attr_unique_id = f"{device.device_uuid}-{description.key}"
if description.key == CONST.TEMP_STATUS_KEY:
self._attr_native_unit_of_measurement = device.temp_unit

View File

@@ -25,14 +25,16 @@ async def async_setup_entry(
"""Set up Abode switch devices."""
data: AbodeSystem = hass.data[DOMAIN]
entities: list[SwitchEntity] = []
entities: list[SwitchEntity] = [
AbodeSwitch(data, device)
for device_type in DEVICE_TYPES
for device in data.abode.get_devices(generic_type=device_type)
]
for device_type in DEVICE_TYPES:
for device in data.abode.get_devices(generic_type=device_type):
entities.append(AbodeSwitch(data, device))
for automation in data.abode.get_automations():
entities.append(AbodeAutomationSwitch(data, automation))
entities.extend(
AbodeAutomationSwitch(data, automation)
for automation in data.abode.get_automations()
)
async_add_entities(entities)

View File

@@ -1,13 +1,13 @@
{
"config": {
"abort": {
"reauth_successful": "La reautenticaci\u00f3n se realiz\u00f3 correctamente",
"reauth_successful": "La autenticaci\u00f3n se volvi\u00f3 a realizar correctamente",
"single_instance_allowed": "Ya est\u00e1 configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"error": {
"cannot_connect": "No se pudo conectar",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
"invalid_mfa_code": "C\u00f3digo MFA inv\u00e1lido"
"invalid_mfa_code": "C\u00f3digo MFA no v\u00e1lido"
},
"step": {
"mfa": {
@@ -21,14 +21,14 @@
"password": "Contrase\u00f1a",
"username": "Correo electr\u00f3nico"
},
"title": "Rellene su informaci\u00f3n de inicio de sesi\u00f3n de Abode"
"title": "Completa tu informaci\u00f3n de inicio de sesi\u00f3n de Abode"
},
"user": {
"data": {
"password": "Contrase\u00f1a",
"username": "Correo electr\u00f3nico"
},
"title": "Rellene la informaci\u00f3n de acceso Abode"
"title": "Completa tu informaci\u00f3n de inicio de sesi\u00f3n de Abode"
}
}
}

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"reauth_successful": "\u518d\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u307e\u3057\u305f",
"single_instance_allowed": "\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5358\u4e00\u306e\u8a2d\u5b9a\u3057\u304b\u3067\u304d\u307e\u305b\u3093\u3002"
"single_instance_allowed": "\u3059\u3067\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u8a2d\u5b9a\u3067\u304d\u308b\u306e\u306f1\u3064\u3060\u3051\u3067\u3059\u3002"
},
"error": {
"cannot_connect": "\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",

View File

@@ -6,20 +6,29 @@
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o",
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida"
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida",
"invalid_mfa_code": "C\u00f3digo MFA inv\u00e1lido"
},
"step": {
"mfa": {
"data": {
"mfa_code": "C\u00f3digo MFA (6 d\u00edgitos)"
},
"title": "Introduza seu c\u00f3digo MFA para Abode"
},
"reauth_confirm": {
"data": {
"password": "Palavra-passe",
"username": "Email"
}
},
"title": "Preencha as informa\u00e7\u00f5es de login de Abode"
},
"user": {
"data": {
"password": "Palavra-passe",
"username": "Endere\u00e7o de e-mail"
}
"username": "Email"
},
"title": "Preencha as informa\u00e7\u00f5es de login de Abode"
}
}
}

View File

@@ -1,13 +1,27 @@
{
"config": {
"abort": {
"reauth_successful": "\u00c5terautentisering lyckades",
"single_instance_allowed": "Endast en enda konfiguration av Abode \u00e4r till\u00e5ten."
},
"error": {
"cannot_connect": "Det gick inte att ansluta.",
"invalid_auth": "Ogiltig autentisering",
"invalid_mfa_code": "Ogiltig MFA-kod"
},
"step": {
"mfa": {
"data": {
"mfa_code": "MFA-kod (6 siffror)"
},
"title": "Ange din MFA-kod f\u00f6r Abode"
},
"reauth_confirm": {
"data": {
"password": "L\u00f6senord",
"username": "E-postadress"
}
},
"title": "Fyll i din Abode-inloggningsinformation"
},
"user": {
"data": {

View File

@@ -11,12 +11,14 @@ from aiohttp.client_exceptions import ClientConnectorError
from async_timeout import timeout
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, Platform
from homeassistant.const import CONF_API_KEY, CONF_NAME, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN, MANUFACTURER
_LOGGER = logging.getLogger(__name__)
@@ -26,6 +28,7 @@ PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up AccuWeather as config entry."""
api_key: str = entry.data[CONF_API_KEY]
name: str = entry.data[CONF_NAME]
assert entry.unique_id is not None
location_key = entry.unique_id
forecast: bool = entry.options.get(CONF_FORECAST, False)
@@ -35,7 +38,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
websession = async_get_clientsession(hass)
coordinator = AccuWeatherDataUpdateCoordinator(
hass, websession, api_key, location_key, forecast
hass, websession, api_key, location_key, forecast, name
)
await coordinator.async_config_entry_first_refresh()
@@ -43,7 +46,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
@@ -73,12 +76,26 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
api_key: str,
location_key: str,
forecast: bool,
name: str,
) -> None:
"""Initialize."""
self.location_key = location_key
self.forecast = forecast
self.is_metric = hass.config.units.is_metric
self.accuweather = AccuWeather(api_key, session, location_key=self.location_key)
self.accuweather = AccuWeather(api_key, session, location_key=location_key)
self.device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, location_key)},
manufacturer=MANUFACTURER,
name=name,
# You don't need to provide specific details for the URL,
# so passing in _ characters is fine if the location key
# is correct
configuration_url=(
"http://accuweather.com/en/"
f"_/_/{location_key}/"
f"weather-forecast/{location_key}/"
),
)
# Enabling the forecast download increases the number of requests per data
# update, we use 40 minutes for current condition only and 80 minutes for
@@ -98,7 +115,9 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
async with timeout(10):
current = await self.accuweather.async_get_current_conditions()
forecast = (
await self.accuweather.async_get_forecast(metric=self.is_metric)
await self.accuweather.async_get_forecast(
metric=self.hass.config.units.is_metric
)
if self.forecast
else {}
)

View File

@@ -3,7 +3,6 @@ from __future__ import annotations
from typing import Final
from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
@@ -20,32 +19,21 @@ from homeassistant.components.weather import (
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
)
from homeassistant.const import (
CONCENTRATION_PARTS_PER_CUBIC_METER,
LENGTH_FEET,
LENGTH_INCHES,
LENGTH_METERS,
LENGTH_MILLIMETERS,
PERCENTAGE,
SPEED_KILOMETERS_PER_HOUR,
SPEED_MILES_PER_HOUR,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
TIME_HOURS,
UV_INDEX,
)
from .model import AccuWeatherSensorDescription
API_IMPERIAL: Final = "Imperial"
API_METRIC: Final = "Metric"
ATTRIBUTION: Final = "Data provided by AccuWeather"
ATTR_CATEGORY: Final = "Category"
ATTR_DIRECTION: Final = "Direction"
ATTR_ENGLISH: Final = "English"
ATTR_LEVEL: Final = "level"
ATTR_FORECAST: Final = "forecast"
ATTR_SPEED: Final = "Speed"
ATTR_VALUE: Final = "Value"
CONF_FORECAST: Final = "forecast"
DOMAIN: Final = "accuweather"
MANUFACTURER: Final = "AccuWeather, Inc."
MAX_FORECAST_DAYS: Final = 4
NAME: Final = "AccuWeather"
CONDITION_CLASSES: Final[dict[str, list[int]]] = {
ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
@@ -63,264 +51,3 @@ CONDITION_CLASSES: Final[dict[str, list[int]]] = {
ATTR_CONDITION_SUNNY: [1, 2, 5],
ATTR_CONDITION_WINDY: [32],
}
FORECAST_SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
AccuWeatherSensorDescription(
key="CloudCoverDay",
icon="mdi:weather-cloudy",
name="Cloud Cover Day",
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="CloudCoverNight",
icon="mdi:weather-cloudy",
name="Cloud Cover Night",
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="Grass",
icon="mdi:grass",
name="Grass Pollen",
unit_metric=CONCENTRATION_PARTS_PER_CUBIC_METER,
unit_imperial=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="HoursOfSun",
icon="mdi:weather-partly-cloudy",
name="Hours Of Sun",
unit_metric=TIME_HOURS,
unit_imperial=TIME_HOURS,
),
AccuWeatherSensorDescription(
key="Mold",
icon="mdi:blur",
name="Mold Pollen",
unit_metric=CONCENTRATION_PARTS_PER_CUBIC_METER,
unit_imperial=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="Ozone",
icon="mdi:vector-triangle",
name="Ozone",
unit_metric=None,
unit_imperial=None,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="Ragweed",
icon="mdi:sprout",
name="Ragweed Pollen",
unit_metric=CONCENTRATION_PARTS_PER_CUBIC_METER,
unit_imperial=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature Max",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature Min",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature Shade Max",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature Shade Min",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
icon="mdi:weather-lightning",
name="Thunderstorm Probability Day",
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
icon="mdi:weather-lightning",
name="Thunderstorm Probability Night",
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
),
AccuWeatherSensorDescription(
key="Tree",
icon="mdi:tree-outline",
name="Tree Pollen",
unit_metric=CONCENTRATION_PARTS_PER_CUBIC_METER,
unit_imperial=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV Index",
unit_metric=UV_INDEX,
unit_imperial=UV_INDEX,
),
AccuWeatherSensorDescription(
key="WindGustDay",
icon="mdi:weather-windy",
name="Wind Gust Day",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="WindGustNight",
icon="mdi:weather-windy",
name="Wind Gust Night",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
entity_registry_enabled_default=False,
),
AccuWeatherSensorDescription(
key="WindDay",
icon="mdi:weather-windy",
name="Wind Day",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
),
AccuWeatherSensorDescription(
key="WindNight",
icon="mdi:weather-windy",
name="Wind Night",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
),
)
SENSOR_TYPES: Final[tuple[AccuWeatherSensorDescription, ...]] = (
AccuWeatherSensorDescription(
key="ApparentTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Apparent Temperature",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Ceiling",
icon="mdi:weather-fog",
name="Cloud Ceiling",
unit_metric=LENGTH_METERS,
unit_imperial=LENGTH_FEET,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="CloudCover",
icon="mdi:weather-cloudy",
name="Cloud Cover",
unit_metric=PERCENTAGE,
unit_imperial=PERCENTAGE,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="DewPoint",
device_class=SensorDeviceClass.TEMPERATURE,
name="Dew Point",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShade",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel Temperature Shade",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Precipitation",
icon="mdi:weather-rainy",
name="Precipitation",
unit_metric=LENGTH_MILLIMETERS,
unit_imperial=LENGTH_INCHES,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="PressureTendency",
device_class="accuweather__pressure_tendency",
icon="mdi:gauge",
name="Pressure Tendency",
unit_metric=None,
unit_imperial=None,
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV Index",
unit_metric=UV_INDEX,
unit_imperial=UV_INDEX,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WetBulbTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wet Bulb Temperature",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WindChillTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wind Chill Temperature",
unit_metric=TEMP_CELSIUS,
unit_imperial=TEMP_FAHRENHEIT,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="Wind",
icon="mdi:weather-windy",
name="Wind",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
state_class=SensorStateClass.MEASUREMENT,
),
AccuWeatherSensorDescription(
key="WindGust",
icon="mdi:weather-windy",
name="Wind Gust",
unit_metric=SPEED_KILOMETERS_PER_HOUR,
unit_imperial=SPEED_MILES_PER_HOUR,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
),
)

View File

@@ -2,7 +2,7 @@
"domain": "accuweather",
"name": "AccuWeather",
"documentation": "https://www.home-assistant.io/integrations/accuweather/",
"requirements": ["accuweather==0.3.0"],
"requirements": ["accuweather==0.4.0"],
"codeowners": ["@bieniu"],
"config_flow": true,
"quality_scale": "platinum",

View File

@@ -1,14 +0,0 @@
"""Type definitions for AccuWeather integration."""
from __future__ import annotations
from dataclasses import dataclass
from homeassistant.components.sensor import SensorEntityDescription
@dataclass
class AccuWeatherSensorDescription(SensorEntityDescription):
"""Class describing AccuWeather sensor entities."""
unit_metric: str | None = None
unit_imperial: str | None = None

View File

@@ -1,14 +1,32 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import Any, cast
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_NAME
from homeassistant.const import (
CONCENTRATION_PARTS_PER_CUBIC_METER,
LENGTH_FEET,
LENGTH_INCHES,
LENGTH_METERS,
LENGTH_MILLIMETERS,
PERCENTAGE,
SPEED_KILOMETERS_PER_HOUR,
SPEED_MILES_PER_HOUR,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
TIME_HOURS,
UV_INDEX,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -17,43 +35,342 @@ from . import AccuWeatherDataUpdateCoordinator
from .const import (
API_IMPERIAL,
API_METRIC,
ATTR_CATEGORY,
ATTR_DIRECTION,
ATTR_ENGLISH,
ATTR_FORECAST,
ATTR_LEVEL,
ATTR_SPEED,
ATTR_VALUE,
ATTRIBUTION,
DOMAIN,
FORECAST_SENSOR_TYPES,
MANUFACTURER,
MAX_FORECAST_DAYS,
NAME,
SENSOR_TYPES,
)
from .model import AccuWeatherSensorDescription
PARALLEL_UPDATES = 1
@dataclass
class AccuWeatherSensorDescriptionMixin:
"""Mixin for AccuWeather sensor."""
value_fn: Callable[[dict[str, Any], str], StateType]
@dataclass
class AccuWeatherSensorDescription(
SensorEntityDescription, AccuWeatherSensorDescriptionMixin
):
"""Class describing AccuWeather sensor entities."""
attr_fn: Callable[[dict[str, Any]], dict[str, StateType]] = lambda _: {}
unit_fn: Callable[[bool], str | None] = lambda _: None
FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="CloudCoverDay",
icon="mdi:weather-cloudy",
name="Cloud cover day",
entity_registry_enabled_default=False,
unit_fn=lambda _: PERCENTAGE,
value_fn=lambda data, _: cast(int, data),
),
AccuWeatherSensorDescription(
key="CloudCoverNight",
icon="mdi:weather-cloudy",
name="Cloud cover night",
entity_registry_enabled_default=False,
unit_fn=lambda _: PERCENTAGE,
value_fn=lambda data, _: cast(int, data),
),
AccuWeatherSensorDescription(
key="Grass",
icon="mdi:grass",
name="Grass pollen",
entity_registry_enabled_default=False,
unit_fn=lambda _: CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="HoursOfSun",
icon="mdi:weather-partly-cloudy",
name="Hours of sun",
unit_fn=lambda _: TIME_HOURS,
value_fn=lambda data, _: cast(float, data),
),
AccuWeatherSensorDescription(
key="Mold",
icon="mdi:blur",
name="Mold pollen",
entity_registry_enabled_default=False,
unit_fn=lambda _: CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="Ozone",
icon="mdi:vector-triangle",
name="Ozone",
entity_registry_enabled_default=False,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="Ragweed",
icon="mdi:sprout",
name="Ragweed pollen",
unit_fn=lambda _: CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature max",
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, _: cast(float, data[ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature min",
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, _: cast(float, data[ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade max",
entity_registry_enabled_default=False,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, _: cast(float, data[ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade min",
entity_registry_enabled_default=False,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, _: cast(float, data[ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
icon="mdi:weather-lightning",
name="Thunderstorm probability day",
unit_fn=lambda _: PERCENTAGE,
value_fn=lambda data, _: cast(int, data),
),
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
icon="mdi:weather-lightning",
name="Thunderstorm probability night",
unit_fn=lambda _: PERCENTAGE,
value_fn=lambda data, _: cast(int, data),
),
AccuWeatherSensorDescription(
key="Tree",
icon="mdi:tree-outline",
name="Tree pollen",
unit_fn=lambda _: CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV index",
unit_fn=lambda _: UV_INDEX,
value_fn=lambda data, _: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
),
AccuWeatherSensorDescription(
key="WindGustDay",
icon="mdi:weather-windy",
name="Wind gust day",
entity_registry_enabled_default=False,
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, _: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
),
AccuWeatherSensorDescription(
key="WindGustNight",
icon="mdi:weather-windy",
name="Wind gust night",
entity_registry_enabled_default=False,
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, _: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
),
AccuWeatherSensorDescription(
key="WindDay",
icon="mdi:weather-windy",
name="Wind day",
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, _: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
),
AccuWeatherSensorDescription(
key="WindNight",
icon="mdi:weather-windy",
name="Wind night",
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, _: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
),
)
SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="ApparentTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Apparent temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="Ceiling",
icon="mdi:weather-fog",
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]),
),
AccuWeatherSensorDescription(
key="CloudCover",
icon="mdi:weather-cloudy",
name="Cloud cover",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda _: PERCENTAGE,
value_fn=lambda data, _: cast(int, data),
),
AccuWeatherSensorDescription(
key="DewPoint",
device_class=SensorDeviceClass.TEMPERATURE,
name="Dew point",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="RealFeelTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature",
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="RealFeelTemperatureShade",
device_class=SensorDeviceClass.TEMPERATURE,
name="RealFeel temperature shade",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="Precipitation",
icon="mdi:weather-rainy",
name="Precipitation",
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: LENGTH_MILLIMETERS if metric else LENGTH_INCHES,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
attr_fn=lambda data: {"type": data["PrecipitationType"]},
),
AccuWeatherSensorDescription(
key="PressureTendency",
device_class="accuweather__pressure_tendency",
icon="mdi:gauge",
name="Pressure tendency",
value_fn=lambda data, _: cast(str, data["LocalizedText"]).lower(),
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
name="UV index",
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda _: UV_INDEX,
value_fn=lambda data, _: cast(int, data),
attr_fn=lambda data: {ATTR_LEVEL: data["UVIndexText"]},
),
AccuWeatherSensorDescription(
key="WetBulbTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wet bulb temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="WindChillTemperature",
device_class=SensorDeviceClass.TEMPERATURE,
name="Wind chill temperature",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: TEMP_CELSIUS if metric else TEMP_FAHRENHEIT,
value_fn=lambda data, unit: cast(float, data[unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="Wind",
icon="mdi:weather-windy",
name="Wind",
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, unit: cast(float, data[ATTR_SPEED][unit][ATTR_VALUE]),
),
AccuWeatherSensorDescription(
key="WindGust",
icon="mdi:weather-windy",
name="Wind gust",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda metric: SPEED_KILOMETERS_PER_HOUR
if metric
else SPEED_MILES_PER_HOUR,
value_fn=lambda data, unit: cast(float, data[ATTR_SPEED][unit][ATTR_VALUE]),
),
)
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add AccuWeather entities from a config_entry."""
name: str = entry.data[CONF_NAME]
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
sensors: list[AccuWeatherSensor] = []
for description in SENSOR_TYPES:
sensors.append(AccuWeatherSensor(name, coordinator, description))
sensors = [
AccuWeatherSensor(coordinator, description) for description in SENSOR_TYPES
]
if coordinator.forecast:
for description in FORECAST_SENSOR_TYPES:
for day in range(MAX_FORECAST_DAYS + 1):
# Some air quality/allergy sensors are only available for certain
# locations.
if description.key in coordinator.data[ATTR_FORECAST][0]:
sensors.append(
AccuWeatherSensor(
name, coordinator, description, forecast_day=day
)
)
# Some air quality/allergy sensors are only available for certain
# locations.
sensors.extend(
AccuWeatherForecastSensor(coordinator, description, forecast_day=day)
for day in range(MAX_FORECAST_DAYS + 1)
for description in FORECAST_SENSOR_TYPES
if description.key in coordinator.data[ATTR_FORECAST][0]
)
async_add_entities(sensors)
@@ -64,11 +381,11 @@ class AccuWeatherSensor(
"""Define an AccuWeather entity."""
_attr_attribution = ATTRIBUTION
_attr_has_entity_name = True
entity_description: AccuWeatherSensorDescription
def __init__(
self,
name: str,
coordinator: AccuWeatherDataUpdateCoordinator,
description: AccuWeatherSensorDescription,
forecast_day: int | None = None,
@@ -77,100 +394,51 @@ class AccuWeatherSensor(
super().__init__(coordinator)
self.entity_description = description
self._sensor_data = _get_sensor_data(
coordinator.data, forecast_day, description.key
coordinator.data, description.key, forecast_day
)
self._attrs: dict[str, Any] = {}
if forecast_day is not None:
self._attr_name = f"{name} {description.name} {forecast_day}d"
self._attr_name = f"{description.name} {forecast_day}d"
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}-{forecast_day}".lower()
)
else:
self._attr_name = f"{name} {description.name}"
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}".lower()
)
if coordinator.is_metric:
if self.coordinator.hass.config.units.is_metric:
self._unit_system = API_METRIC
self._attr_native_unit_of_measurement = description.unit_metric
else:
self._unit_system = API_IMPERIAL
self._attr_native_unit_of_measurement = description.unit_imperial
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
self._attr_native_unit_of_measurement = self.entity_description.unit_fn(
self.coordinator.hass.config.units.is_metric
)
self.forecast_day = forecast_day
self._attr_device_info = coordinator.device_info
if forecast_day is not None:
self.forecast_day = forecast_day
@property
def native_value(self) -> StateType:
"""Return the state."""
if self.forecast_day is not None:
if self.entity_description.device_class == SensorDeviceClass.TEMPERATURE:
return cast(float, self._sensor_data["Value"])
if self.entity_description.key == "UVIndex":
return cast(int, self._sensor_data["Value"])
if self.entity_description.key in ("Grass", "Mold", "Ragweed", "Tree", "Ozone"):
return cast(int, self._sensor_data["Value"])
if self.entity_description.key == "Ceiling":
return round(self._sensor_data[self._unit_system]["Value"])
if self.entity_description.key == "PressureTendency":
return cast(str, self._sensor_data["LocalizedText"].lower())
if self.entity_description.device_class == SensorDeviceClass.TEMPERATURE:
return cast(float, self._sensor_data[self._unit_system]["Value"])
if self.entity_description.key == "Precipitation":
return cast(float, self._sensor_data[self._unit_system]["Value"])
if self.entity_description.key in ("Wind", "WindGust"):
return cast(float, self._sensor_data["Speed"][self._unit_system]["Value"])
if self.entity_description.key in (
"WindDay",
"WindNight",
"WindGustDay",
"WindGustNight",
):
return cast(StateType, self._sensor_data["Speed"]["Value"])
return cast(StateType, self._sensor_data)
return self.entity_description.value_fn(self._sensor_data, self._unit_system)
@property
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the state attributes."""
if self.forecast_day is not None:
if self.entity_description.key in (
"WindDay",
"WindNight",
"WindGustDay",
"WindGustNight",
):
self._attrs["direction"] = self._sensor_data["Direction"]["English"]
elif self.entity_description.key in (
"Grass",
"Mold",
"Ozone",
"Ragweed",
"Tree",
"UVIndex",
):
self._attrs["level"] = self._sensor_data["Category"]
return self._attrs
if self.entity_description.key == "UVIndex":
self._attrs["level"] = self.coordinator.data["UVIndexText"]
elif self.entity_description.key == "Precipitation":
self._attrs["type"] = self.coordinator.data["PrecipitationType"]
return self._attrs
return self.entity_description.attr_fn(self.coordinator.data)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle data update."""
self._sensor_data = _get_sensor_data(
self.coordinator.data, self.forecast_day, self.entity_description.key
self.coordinator.data, self.entity_description.key
)
self.async_write_ha_state()
def _get_sensor_data(
sensors: dict[str, Any], forecast_day: int | None, kind: str
sensors: dict[str, Any],
kind: str,
forecast_day: int | None = None,
) -> Any:
"""Get sensor data."""
if forecast_day is not None:
@@ -180,3 +448,20 @@ def _get_sensor_data(
return sensors["PrecipitationSummary"][kind]
return sensors[kind]
class AccuWeatherForecastSensor(AccuWeatherSensor):
"""Define an AccuWeather forecast entity."""
@property
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the state attributes."""
return self.entity_description.attr_fn(self._sensor_data)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle data update."""
self._sensor_data = _get_sensor_data(
self.coordinator.data, self.entity_description.key, self.forecast_day
)
self.async_write_ha_state()

View File

@@ -17,5 +17,14 @@
}
}
}
},
"options": {
"step": {
"user": {
"data": {
"forecast": "\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e"
}
}
}
}
}

View File

@@ -3,6 +3,9 @@
"abort": {
"single_instance_allowed": "Ya configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"create_entry": {
"default": "Algunos sensores no est\u00e1n habilitados de forma predeterminada. Puede 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."
},
"error": {
"cannot_connect": "No se pudo conectar",
"invalid_api_key": "Clave de API no v\u00e1lida",
@@ -21,6 +24,7 @@
},
"system_health": {
"info": {
"can_reach_server": "Llegar al servidor de AccuWeather",
"remaining_requests": "Solicitudes permitidas restantes"
}
}

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. Puede habilitarlos en el registro de la entidad despu\u00e9s de la configuraci\u00f3n de la integraci\u00f3n.\n El 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.\nEl pron\u00f3stico del tiempo no est\u00e1 habilitado de forma predeterminada. Puedes habilitarlo en las opciones de integraci\u00f3n."
},
"error": {
"cannot_connect": "No se pudo conectar",
@@ -28,13 +28,13 @@
"data": {
"forecast": "Pron\u00f3stico del tiempo"
},
"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 64 minutos en lugar de cada 32 minutos."
"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."
}
}
},
"system_health": {
"info": {
"can_reach_server": "Alcanzar el servidor AccuWeather",
"can_reach_server": "Se puede llegar al servidor AccuWeather",
"remaining_requests": "Solicitudes permitidas restantes"
}
}

View File

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

View File

@@ -34,7 +34,7 @@
},
"system_health": {
"info": {
"can_reach_server": "Dost\u0119p do serwera AccuWeather",
"can_reach_server": "Dost\u0119p do serwera",
"remaining_requests": "Pozosta\u0142o dozwolonych \u017c\u0105da\u0144"
}
}

View File

@@ -3,9 +3,13 @@
"abort": {
"single_instance_allowed": "J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"create_entry": {
"default": "Alguns sensores n\u00e3o s\u00e3o ativados por defeito. Podem ser ativados no registo da entidade ap\u00f3s a configura\u00e7\u00e3o da integra\u00e7\u00e3o.\nA previs\u00e3o do tempo n\u00e3o est\u00e1 ativada por defeito. Pode ativ\u00e1-la nas op\u00e7\u00f5es de integra\u00e7\u00e3o."
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o",
"invalid_api_key": "Chave de API inv\u00e1lida"
"invalid_api_key": "Chave de API inv\u00e1lida",
"requests_exceeded": "O n\u00famero permitido de pedidos \u00e0 API do Accuweather foi excedido. \u00c9 necess\u00e1rio aguardar ou alterar a chave API."
},
"step": {
"user": {
@@ -23,8 +27,15 @@
"user": {
"data": {
"forecast": "Previs\u00e3o meteorol\u00f3gica"
}
},
"description": "Devido \u00e0s limita\u00e7\u00f5es da vers\u00e3o gratuita da chave AccuWeather API, quando se activa a previs\u00e3o do tempo, as actualiza\u00e7\u00f5es de dados ser\u00e3o realizadas a cada 80 minutos em vez de a cada 40 minutos."
}
}
},
"system_health": {
"info": {
"can_reach_server": "Alcance o servidor AccuWeather",
"remaining_requests": "Pedidos permitidos restantes"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"state": {
"accuweather__pressure_tendency": {
"falling": "A decrescer",
"rising": "A aumentar",
"steady": "Est\u00e1vel"
}
}
}

View File

@@ -2,7 +2,8 @@
"state": {
"accuweather__pressure_tendency": {
"falling": "Fallande",
"rising": "Stigande"
"rising": "Stigande",
"steady": "Stadig"
}
}
}

View File

@@ -1,11 +1,41 @@
{
"config": {
"abort": {
"single_instance_allowed": "Redan konfigurerad. Endast en konfiguration m\u00f6jlig."
},
"create_entry": {
"default": "Vissa sensorer \u00e4r inte aktiverade som standard. Du kan aktivera dem i entitetsregistret efter integrationskonfigurationen.\n V\u00e4derprognos \u00e4r inte aktiverat som standard. Du kan aktivera det i integrationsalternativen."
},
"error": {
"cannot_connect": "Det gick inte att ansluta.",
"invalid_api_key": "Ogiltig API-nyckel",
"requests_exceeded": "Det till\u00e5tna antalet f\u00f6rfr\u00e5gningar till Accuweather API har \u00f6verskridits. Du m\u00e5ste v\u00e4nta eller \u00e4ndra API-nyckel."
},
"step": {
"user": {
"data": {
"api_key": "API-nyckel"
"api_key": "API-nyckel",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Namn"
}
}
}
},
"options": {
"step": {
"user": {
"data": {
"forecast": "V\u00e4derprognos"
},
"description": "P\u00e5 grund av begr\u00e4nsningarna f\u00f6r den kostnadsfria versionen av AccuWeather API-nyckeln, n\u00e4r du aktiverar v\u00e4derprognos, kommer datauppdateringar att utf\u00f6ras var 80:e minut ist\u00e4llet f\u00f6r var 40:e minut."
}
}
},
"system_health": {
"info": {
"can_reach_server": "N\u00e5 AccuWeather-servern",
"remaining_requests": "\u00c5terst\u00e5ende till\u00e5tna f\u00f6rfr\u00e5gningar"
}
}
}

View File

@@ -18,7 +18,6 @@ from homeassistant.components.weather import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_NAME,
LENGTH_INCHES,
LENGTH_KILOMETERS,
LENGTH_MILES,
@@ -31,8 +30,6 @@ from homeassistant.const import (
TEMP_FAHRENHEIT,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util.dt import utc_from_timestamp
@@ -45,8 +42,6 @@ from .const import (
ATTRIBUTION,
CONDITION_CLASSES,
DOMAIN,
MANUFACTURER,
NAME,
)
PARALLEL_UPDATES = 1
@@ -56,11 +51,10 @@ async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Add a AccuWeather weather entity from a config_entry."""
name: str = entry.data[CONF_NAME]
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
async_add_entities([AccuWeatherEntity(name, coordinator)])
async_add_entities([AccuWeatherEntity(coordinator)])
class AccuWeatherEntity(
@@ -68,15 +62,15 @@ class AccuWeatherEntity(
):
"""Define an AccuWeather entity."""
def __init__(
self, name: str, coordinator: AccuWeatherDataUpdateCoordinator
) -> None:
_attr_has_entity_name = True
def __init__(self, coordinator: AccuWeatherDataUpdateCoordinator) -> None:
"""Initialize."""
super().__init__(coordinator)
# Coordinator data is used also for sensors which don't have units automatically
# converted, hence the weather entity's native units follow the configured unit
# system
if coordinator.is_metric:
if coordinator.hass.config.units.is_metric:
self._attr_native_precipitation_unit = LENGTH_MILLIMETERS
self._attr_native_pressure_unit = PRESSURE_HPA
self._attr_native_temperature_unit = TEMP_CELSIUS
@@ -90,21 +84,9 @@ class AccuWeatherEntity(
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_name = name
self._attr_unique_id = coordinator.location_key
self._attr_attribution = ATTRIBUTION
self._attr_device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, coordinator.location_key)},
manufacturer=MANUFACTURER,
name=NAME,
# You don't need to provide specific details for the URL,
# so passing in _ characters is fine if the location key
# is correct
configuration_url="http://accuweather.com/en/"
f"_/_/{coordinator.location_key}/"
f"weather-forecast/{coordinator.location_key}/",
)
self._attr_device_info = coordinator.device_info
@property
def condition(self) -> str | None:

View File

@@ -19,7 +19,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
return False
hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = hub
hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
return True

View File

@@ -1,4 +1,6 @@
"""Base class for Acmeda Roller Blinds."""
from __future__ import annotations
import aiopulse
from homeassistant.core import callback
@@ -11,11 +13,13 @@ from .const import ACMEDA_ENTITY_REMOVE, DOMAIN, LOGGER
class AcmedaBase(entity.Entity):
"""Base representation of an Acmeda roller."""
_attr_should_poll = False
def __init__(self, roller: aiopulse.Roller) -> None:
"""Initialize the roller."""
self.roller = roller
async def async_remove_and_unregister(self):
async def async_remove_and_unregister(self) -> None:
"""Unregister from entity and device registry and call entity remove function."""
LOGGER.error("Removing %s %s", self.__class__.__name__, self.unique_id)
@@ -25,14 +29,18 @@ class AcmedaBase(entity.Entity):
dev_registry = dr.async_get(self.hass)
device = dev_registry.async_get_device(identifiers={(DOMAIN, self.unique_id)})
if device is not None:
if (
device is not None
and self.registry_entry is not None
and self.registry_entry.config_entry_id is not None
):
dev_registry.async_update_device(
device.id, remove_config_entry_id=self.registry_entry.config_entry_id
)
await self.async_remove(force_remove=True)
async def async_added_to_hass(self):
async def async_added_to_hass(self) -> None:
"""Entity has been added to hass."""
self.roller.callback_subscribe(self.notify_update)
@@ -44,33 +52,28 @@ class AcmedaBase(entity.Entity):
)
)
async def async_will_remove_from_hass(self):
async def async_will_remove_from_hass(self) -> None:
"""Entity being removed from hass."""
self.roller.callback_unsubscribe(self.notify_update)
@callback
def notify_update(self):
def notify_update(self) -> None:
"""Write updated device state information."""
LOGGER.debug("Device update notification received: %s", self.name)
self.async_write_ha_state()
@property
def should_poll(self):
"""Report that Acmeda entities do not need polling."""
return False
@property
def unique_id(self):
def unique_id(self) -> str:
"""Return the unique ID of this roller."""
return self.roller.id
@property
def device_id(self):
def device_id(self) -> str:
"""Return the ID of this roller."""
return self.roller.id
@property
def name(self):
def name(self) -> str | None:
"""Return the name of roller."""
return self.roller.name

View File

@@ -16,6 +16,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE, DOMAIN
from .helpers import async_add_acmeda_entities
from .hub import PulseHub
async def async_setup_entry(
@@ -24,7 +25,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub = hass.data[DOMAIN][config_entry.entry_id]
hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id]
current: set[int] = set()
@@ -122,6 +123,6 @@ class AcmedaCover(AcmedaBase, CoverEntity):
"""Stop the roller."""
await self.roller.move_stop()
async def async_set_cover_tilt(self, **kwargs):
async def async_set_cover_tilt_position(self, **kwargs: Any) -> None:
"""Tilt the roller shutter to a specific position."""
await self.roller.move_to(100 - kwargs[ATTR_POSITION])

View File

@@ -11,6 +11,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE, DOMAIN
from .helpers import async_add_acmeda_entities
from .hub import PulseHub
async def async_setup_entry(
@@ -19,7 +20,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub = hass.data[DOMAIN][config_entry.entry_id]
hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id]
current: set[int] = set()
@@ -41,15 +42,15 @@ async def async_setup_entry(
class AcmedaBattery(AcmedaBase, SensorEntity):
"""Representation of a Acmeda cover device."""
device_class = SensorDeviceClass.BATTERY
_attr_device_class = SensorDeviceClass.BATTERY
_attr_native_unit_of_measurement = PERCENTAGE
@property
def name(self):
def name(self) -> str:
"""Return the name of roller."""
return f"{super().name} Battery"
@property
def native_value(self):
def native_value(self) -> float | int | None:
"""Return the state of the device."""
return self.roller.battery

View File

@@ -8,7 +8,7 @@
"data": {
"id": "ID de host"
},
"title": "Elige un hub para a\u00f1adir"
"title": "Elige un concentrador para a\u00f1adir"
}
}
}

View File

@@ -2,6 +2,13 @@
"config": {
"abort": {
"no_devices_found": "Nenhum dispositivo encontrado na rede"
},
"step": {
"user": {
"data": {
"id": "ID do anfitri\u00e3o"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
{
"config": {
"abort": {
"no_devices_found": "Inga enheter hittades i n\u00e4tverket"
},
"step": {
"user": {
"data": {
"id": "V\u00e4rd-ID"
},
"title": "V\u00e4lj en hubb att l\u00e4gga till"
}
}
}
}

View File

@@ -31,7 +31,9 @@ PLATFORM_SCHEMA: Final = BASE_PLATFORM_SCHEMA.extend(
)
def get_scanner(hass: HomeAssistant, config: ConfigType) -> DeviceScanner | None:
def get_scanner(
hass: HomeAssistant, config: ConfigType
) -> ActiontecDeviceScanner | None:
"""Validate the configuration and return an Actiontec scanner."""
scanner = ActiontecDeviceScanner(config[DOMAIN])
return scanner if scanner.success_init else None

View File

@@ -10,7 +10,7 @@ PLATFORMS = [Platform.CLIMATE]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Adax from a config entry."""
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True

View File

@@ -6,8 +6,11 @@ from typing import Any
from adax import Adax
from adax_local import Adax as AdaxLocal
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import ClimateEntityFeature, HVACMode
from homeassistant.components.climate import (
ClimateEntity,
ClimateEntityFeature,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_TEMPERATURE,
@@ -80,7 +83,7 @@ class AdaxDevice(ClimateEntity):
manufacturer="Adax",
)
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set hvac mode."""
if hvac_mode == HVACMode.HEAT:
temperature = max(self.min_temp, self.target_temperature or self.min_temp)
@@ -140,7 +143,7 @@ class LocalAdaxDevice(ClimateEntity):
manufacturer="Adax",
)
async def async_set_temperature(self, **kwargs):
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set new target temperature."""
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
return

View File

@@ -2,8 +2,8 @@
"config": {
"abort": {
"already_configured": "El dispositivo ya est\u00e1 configurado",
"heater_not_available": "Calentador no disponible. Intente restablecer el calentador pulsando + y OK durante algunos segundos.",
"heater_not_found": "No se encuentra el calefactor. Intente acercar el calefactor al ordenador del Asistente de Hogar.",
"heater_not_available": "Calefactor no disponible. Intenta reiniciar el calentador presionando + y OK durante unos segundos.",
"heater_not_found": "No se encontr\u00f3 el calentador. Intenta acercar el calentador al ordenador con Home Assistant.",
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida"
},
"error": {
@@ -21,13 +21,13 @@
"wifi_pswd": "Contrase\u00f1a Wi-Fi",
"wifi_ssid": "SSID Wi-Fi"
},
"description": "Reinicie el calentador presionando + y OK hasta que la pantalla muestre 'Reiniciar'. Luego presione y mantenga presionado el bot\u00f3n OK en el calentador hasta que el LED azul comience a parpadear antes de presionar Enviar. La configuraci\u00f3n del calentador puede llevar algunos minutos."
"description": "Reinicia el calentador pulsando + y OK hasta que la pantalla muestre 'Restablecer'. Luego mant\u00e9n pulsado el bot\u00f3n OK en el calentador hasta que el led azul comience a parpadear antes de pulsar Enviar. La configuraci\u00f3n del calentador puede tardar algunos minutos."
},
"user": {
"data": {
"connection_type": "Seleccione el tipo de conexi\u00f3n"
"connection_type": "Selecciona el tipo de conexi\u00f3n"
},
"description": "Seleccione el tipo de conexi\u00f3n. Local requiere calentadores con bluetooth"
"description": "Selecciona el tipo de conexi\u00f3n. Local requiere calefactores con bluetooth"
}
}
}

View File

@@ -0,0 +1,34 @@
{
"config": {
"abort": {
"already_configured": "DIspositivo j\u00e1 est\u00e1 configurado",
"heater_not_available": "Aquecedor n\u00e3o dispon\u00edvel. Tente reiniciar o aquecedor premindo + e OK durante alguns segundos.",
"heater_not_found": "Aquecedor n\u00e3o encontrado. Tente mover o aquecedor para mais perto do computador com Home Assistant.",
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida"
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"cloud": {
"data": {
"account_id": "ID da conta",
"password": "Palavra-passe"
}
},
"local": {
"data": {
"wifi_pswd": "Senha Wi-Fi",
"wifi_ssid": "Wi-Fi SSID"
},
"description": "Reiniciar o aquecedor premindo + e OK at\u00e9 a visualiza\u00e7\u00e3o mostrar 'Reiniciar'. Depois premir e manter premido o bot\u00e3o OK no aquecedor at\u00e9 que o led azul comece a piscar antes de premir Submeter. A configura\u00e7\u00e3o do aquecedor pode demorar alguns minutos."
},
"user": {
"data": {
"connection_type": "Selecione o tipo de liga\u00e7\u00e3o"
},
"description": "Selecione o tipo de liga\u00e7\u00e3o. 'Local' requer aquecedores com bluetooth"
}
}
}
}

View File

@@ -0,0 +1,34 @@
{
"config": {
"abort": {
"already_configured": "Enheten \u00e4r redan konfigurerad",
"heater_not_available": "V\u00e4rmare inte tillg\u00e4nglig. F\u00f6rs\u00f6k att \u00e5terst\u00e4lla v\u00e4rmaren genom att trycka p\u00e5 + och OK i n\u00e5gra sekunder.",
"heater_not_found": "V\u00e4rmare hittades inte. F\u00f6rs\u00f6k att flytta v\u00e4rmaren n\u00e4rmare Home Assistant-datorn.",
"invalid_auth": "Ogiltig autentisering"
},
"error": {
"cannot_connect": "Det gick inte att ansluta."
},
"step": {
"cloud": {
"data": {
"account_id": "Konto-ID",
"password": "L\u00f6senord"
}
},
"local": {
"data": {
"wifi_pswd": "Wi-Fi l\u00f6senord",
"wifi_ssid": "Wi-Fi SSID"
},
"description": "\u00c5terst\u00e4ll v\u00e4rmaren genom att trycka p\u00e5 + och OK tills displayen visar 'Reset'. Tryck sedan och h\u00e5ll ner OK-knappen p\u00e5 v\u00e4rmaren tills den bl\u00e5 lysdioden b\u00f6rjar blinka innan du trycker p\u00e5 Skicka. Det kan ta n\u00e5gra minuter att konfigurera v\u00e4rmaren."
},
"user": {
"data": {
"connection_type": "V\u00e4lj anslutningstyp"
},
"description": "V\u00e4lj anslutningstyp. Lokalt kr\u00e4ver v\u00e4rmare med bluetooth"
}
}
}
}

View File

@@ -27,7 +27,7 @@
"data": {
"connection_type": "\u9078\u64c7\u9023\u7dda\u985e\u5225"
},
"description": "\u9078\u64c7\u9023\u7dda\u985e\u5225\u3002\u672c\u5730\u7aef\u5c07\u9700\u8981\u5177\u5099\u85cd\u82bd\u52a0\u71b1\u5668"
"description": "\u9078\u64c7\u9023\u7dda\u985e\u5225\u3002\u672c\u5730\u7aef\u5c07\u9700\u8981\u5177\u5099\u85cd\u7259\u52a0\u71b1\u5668"
}
}
}

View File

@@ -1,12 +1,10 @@
"""Support for AdGuard Home."""
from __future__ import annotations
import logging
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant.config_entries import SOURCE_HASSIO, ConfigEntry
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
@@ -22,13 +20,10 @@ from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo, Entity
from .const import (
CONF_FORCE,
DATA_ADGUARD_CLIENT,
DATA_ADGUARD_VERSION,
DOMAIN,
SERVICE_ADD_URL,
SERVICE_DISABLE_URL,
@@ -37,8 +32,6 @@ from .const import (
SERVICE_REMOVE_URL,
)
_LOGGER = logging.getLogger(__name__)
SERVICE_URL_SCHEMA = vol.Schema({vol.Required(CONF_URL): cv.url})
SERVICE_ADD_URL_SCHEMA = vol.Schema(
{vol.Required(CONF_NAME): cv.string, vol.Required(CONF_URL): cv.url}
@@ -70,7 +63,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
except AdGuardHomeConnectionError as exception:
raise ConfigEntryNotReady from exception
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
async def add_url(call: ServiceCall) -> None:
"""Service call to add a new filter subscription to AdGuard Home."""
@@ -127,91 +120,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
del hass.data[DOMAIN]
return unload_ok
class AdGuardHomeEntity(Entity):
"""Defines a base AdGuard Home entity."""
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
enabled_default: bool = True,
) -> None:
"""Initialize the AdGuard Home entity."""
self._available = True
self._enabled_default = enabled_default
self._icon = icon
self._name = name
self._entry = entry
self.adguard = adguard
@property
def name(self) -> str:
"""Return the name of the entity."""
return self._name
@property
def icon(self) -> str:
"""Return the mdi icon of the entity."""
return self._icon
@property
def entity_registry_enabled_default(self) -> bool:
"""Return if the entity should be enabled when first added to the entity registry."""
return self._enabled_default
@property
def available(self) -> bool:
"""Return True if entity is available."""
return self._available
async def async_update(self) -> None:
"""Update AdGuard Home entity."""
if not self.enabled:
return
try:
await self._adguard_update()
self._available = True
except AdGuardHomeError:
if self._available:
_LOGGER.debug(
"An error occurred while updating AdGuard Home sensor",
exc_info=True,
)
self._available = False
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
raise NotImplementedError()
class AdGuardHomeDeviceEntity(AdGuardHomeEntity):
"""Defines a AdGuard Home device entity."""
@property
def device_info(self) -> DeviceInfo:
"""Return device information about this AdGuard Home instance."""
if self._entry.source == SOURCE_HASSIO:
config_url = "homeassistant://hassio/ingress/a0d7b954_adguard"
else:
if self.adguard.tls:
config_url = f"https://{self.adguard.host}:{self.adguard.port}"
else:
config_url = f"http://{self.adguard.host}:{self.adguard.port}"
return DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={
(DOMAIN, self.adguard.host, self.adguard.port, self.adguard.base_path) # type: ignore[arg-type]
},
manufacturer="AdGuard Team",
name="AdGuard Home",
sw_version=self.hass.data[DOMAIN][self._entry.entry_id].get(
DATA_ADGUARD_VERSION
),
configuration_url=config_url,
)

View File

@@ -1,7 +1,10 @@
"""Constants for the AdGuard Home integration."""
import logging
DOMAIN = "adguard"
LOGGER = logging.getLogger(__package__)
DATA_ADGUARD_CLIENT = "adguard_client"
DATA_ADGUARD_VERSION = "adguard_version"

View File

@@ -0,0 +1,69 @@
"""AdGuard Home base entity."""
from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeError
from homeassistant.config_entries import SOURCE_HASSIO, ConfigEntry
from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import DeviceInfo, Entity
from .const import DATA_ADGUARD_VERSION, DOMAIN, LOGGER
class AdGuardHomeEntity(Entity):
"""Defines a base AdGuard Home entity."""
_attr_has_entity_name = True
_attr_available = True
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
) -> None:
"""Initialize the AdGuard Home entity."""
self._entry = entry
self.adguard = adguard
async def async_update(self) -> None:
"""Update AdGuard Home entity."""
if not self.enabled:
return
try:
await self._adguard_update()
self._attr_available = True
except AdGuardHomeError:
if self._attr_available:
LOGGER.debug(
"An error occurred while updating AdGuard Home sensor",
exc_info=True,
)
self._attr_available = False
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
raise NotImplementedError()
@property
def device_info(self) -> DeviceInfo:
"""Return device information about this AdGuard Home instance."""
if self._entry.source == SOURCE_HASSIO:
config_url = "homeassistant://hassio/ingress/a0d7b954_adguard"
elif self.adguard.tls:
config_url = f"https://{self.adguard.host}:{self.adguard.port}"
else:
config_url = f"http://{self.adguard.host}:{self.adguard.port}"
return DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={
(DOMAIN, self.adguard.host, self.adguard.port, self.adguard.base_path) # type: ignore[arg-type]
},
manufacturer="AdGuard Team",
name="AdGuard Home",
sw_version=self.hass.data[DOMAIN][self._entry.entry_id].get(
DATA_ADGUARD_VERSION
),
configuration_url=config_url,
)

View File

@@ -1,24 +1,102 @@
"""Support for AdGuard Home sensors."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from datetime import timedelta
from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
from homeassistant.components.sensor import SensorEntity
from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE, TIME_MILLISECONDS
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AdGuardHomeDeviceEntity
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERSION, DOMAIN
from .entity import AdGuardHomeEntity
SCAN_INTERVAL = timedelta(seconds=300)
PARALLEL_UPDATES = 4
@dataclass
class AdGuardHomeEntityDescriptionMixin:
"""Mixin for required keys."""
value_fn: Callable[[AdGuardHome], Coroutine[Any, Any, int | float]]
@dataclass
class AdGuardHomeEntityDescription(
SensorEntityDescription, AdGuardHomeEntityDescriptionMixin
):
"""Describes AdGuard Home sensor entity."""
SENSORS: tuple[AdGuardHomeEntityDescription, ...] = (
AdGuardHomeEntityDescription(
key="dns_queries",
name="DNS queries",
icon="mdi:magnify",
native_unit_of_measurement="queries",
value_fn=lambda adguard: adguard.stats.dns_queries(),
),
AdGuardHomeEntityDescription(
key="blocked_filtering",
name="DNS queries blocked",
icon="mdi:magnify-close",
native_unit_of_measurement="queries",
value_fn=lambda adguard: adguard.stats.blocked_filtering(),
),
AdGuardHomeEntityDescription(
key="blocked_percentage",
name="DNS queries blocked ratio",
icon="mdi:magnify-close",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda adguard: adguard.stats.blocked_percentage(),
),
AdGuardHomeEntityDescription(
key="blocked_parental",
name="Parental control blocked",
icon="mdi:human-male-girl",
native_unit_of_measurement="requests",
value_fn=lambda adguard: adguard.stats.replaced_parental(),
),
AdGuardHomeEntityDescription(
key="blocked_safebrowsing",
name="Safe browsing blocked",
icon="mdi:shield-half-full",
native_unit_of_measurement="requests",
value_fn=lambda adguard: adguard.stats.replaced_safebrowsing(),
),
AdGuardHomeEntityDescription(
key="enforced_safesearch",
name="Safe searches enforced",
icon="mdi:shield-search",
native_unit_of_measurement="requests",
value_fn=lambda adguard: adguard.stats.replaced_safesearch(),
),
AdGuardHomeEntityDescription(
key="average_speed",
name="Average processing speed",
icon="mdi:speedometer",
native_unit_of_measurement=TIME_MILLISECONDS,
value_fn=lambda adguard: adguard.stats.avg_processing_time(),
),
AdGuardHomeEntityDescription(
key="rules_count",
name="Rules count",
icon="mdi:counter",
native_unit_of_measurement="rules",
value_fn=lambda adguard: adguard.filtering.rules_count(allowlist=False),
entity_registry_enabled_default=False,
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
@@ -34,215 +112,39 @@ async def async_setup_entry(
hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_VERSION] = version
sensors = [
AdGuardHomeDNSQueriesSensor(adguard, entry),
AdGuardHomeBlockedFilteringSensor(adguard, entry),
AdGuardHomePercentageBlockedSensor(adguard, entry),
AdGuardHomeReplacedParentalSensor(adguard, entry),
AdGuardHomeReplacedSafeBrowsingSensor(adguard, entry),
AdGuardHomeReplacedSafeSearchSensor(adguard, entry),
AdGuardHomeAverageProcessingTimeSensor(adguard, entry),
AdGuardHomeRulesCountSensor(adguard, entry),
]
async_add_entities(sensors, True)
async_add_entities(
[AdGuardHomeSensor(adguard, entry, description) for description in SENSORS],
True,
)
class AdGuardHomeSensor(AdGuardHomeDeviceEntity, SensorEntity):
class AdGuardHomeSensor(AdGuardHomeEntity, SensorEntity):
"""Defines a AdGuard Home sensor."""
entity_description: AdGuardHomeEntityDescription
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
measurement: str,
unit_of_measurement: str,
enabled_default: bool = True,
description: AdGuardHomeEntityDescription,
) -> None:
"""Initialize AdGuard Home sensor."""
self._state: int | str | None = None
self._unit_of_measurement = unit_of_measurement
self.measurement = measurement
super().__init__(adguard, entry, name, icon, enabled_default)
@property
def unique_id(self) -> str:
"""Return the unique ID for this sensor."""
return "_".join(
super().__init__(adguard, entry)
self.entity_description = description
self._attr_unique_id = "_".join(
[
DOMAIN,
self.adguard.host,
str(self.adguard.port),
adguard.host,
str(adguard.port),
"sensor",
self.measurement,
description.key,
]
)
@property
def native_value(self) -> int | str | None:
"""Return the state of the sensor."""
return self._state
@property
def native_unit_of_measurement(self) -> str | None:
"""Return the unit this state is expressed in."""
return self._unit_of_measurement
class AdGuardHomeDNSQueriesSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home DNS Queries sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard DNS Queries",
"mdi:magnify",
"dns_queries",
"queries",
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.stats.dns_queries()
class AdGuardHomeBlockedFilteringSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home blocked by filtering sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard DNS Queries Blocked",
"mdi:magnify-close",
"blocked_filtering",
"queries",
enabled_default=False,
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.stats.blocked_filtering()
class AdGuardHomePercentageBlockedSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home blocked percentage sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard DNS Queries Blocked Ratio",
"mdi:magnify-close",
"blocked_percentage",
PERCENTAGE,
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
percentage = await self.adguard.stats.blocked_percentage()
self._state = f"{percentage:.2f}"
class AdGuardHomeReplacedParentalSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by parental control sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Parental Control Blocked",
"mdi:human-male-girl",
"blocked_parental",
"requests",
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.stats.replaced_parental()
class AdGuardHomeReplacedSafeBrowsingSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by safe browsing sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Safe Browsing Blocked",
"mdi:shield-half-full",
"blocked_safebrowsing",
"requests",
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.stats.replaced_safebrowsing()
class AdGuardHomeReplacedSafeSearchSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home replaced by safe search sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Safe Searches Enforced",
"mdi:shield-search",
"enforced_safesearch",
"requests",
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.stats.replaced_safesearch()
class AdGuardHomeAverageProcessingTimeSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home average processing time sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Average Processing Speed",
"mdi:speedometer",
"average_speed",
TIME_MILLISECONDS,
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
average = await self.adguard.stats.avg_processing_time()
self._state = f"{average:.2f}"
class AdGuardHomeRulesCountSensor(AdGuardHomeSensor):
"""Defines a AdGuard Home rules count sensor."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home sensor."""
super().__init__(
adguard,
entry,
"AdGuard Rules Count",
"mdi:counter",
"rules_count",
"rules",
enabled_default=False,
)
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.filtering.rules_count(allowlist=False)
value = await self.entity_description.value_fn(self.adguard)
self._attr_native_value = value
if isinstance(value, float):
self._attr_native_value = f"{value:.2f}"

View File

@@ -1,27 +1,94 @@
"""Support for AdGuard Home switches."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from datetime import timedelta
import logging
from typing import Any
from adguardhome import AdGuardHome, AdGuardHomeConnectionError, AdGuardHomeError
from homeassistant.components.switch import SwitchEntity
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AdGuardHomeDeviceEntity
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERSION, DOMAIN
_LOGGER = logging.getLogger(__name__)
from .const import DATA_ADGUARD_CLIENT, DATA_ADGUARD_VERSION, DOMAIN, LOGGER
from .entity import AdGuardHomeEntity
SCAN_INTERVAL = timedelta(seconds=10)
PARALLEL_UPDATES = 1
@dataclass
class AdGuardHomeSwitchEntityDescriptionMixin:
"""Mixin for required keys."""
is_on_fn: Callable[[AdGuardHome], Callable[[], Coroutine[Any, Any, bool]]]
turn_on_fn: Callable[[AdGuardHome], Callable[[], Coroutine[Any, Any, None]]]
turn_off_fn: Callable[[AdGuardHome], Callable[[], Coroutine[Any, Any, None]]]
@dataclass
class AdGuardHomeSwitchEntityDescription(
SwitchEntityDescription, AdGuardHomeSwitchEntityDescriptionMixin
):
"""Describes AdGuard Home switch entity."""
SWITCHES: tuple[AdGuardHomeSwitchEntityDescription, ...] = (
AdGuardHomeSwitchEntityDescription(
key="protection",
name="Protection",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.protection_enabled,
turn_on_fn=lambda adguard: adguard.enable_protection,
turn_off_fn=lambda adguard: adguard.disable_protection,
),
AdGuardHomeSwitchEntityDescription(
key="parental",
name="Parental control",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.parental.enabled,
turn_on_fn=lambda adguard: adguard.parental.enable,
turn_off_fn=lambda adguard: adguard.parental.disable,
),
AdGuardHomeSwitchEntityDescription(
key="safesearch",
name="Safe search",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.safesearch.enabled,
turn_on_fn=lambda adguard: adguard.safesearch.enable,
turn_off_fn=lambda adguard: adguard.safesearch.disable,
),
AdGuardHomeSwitchEntityDescription(
key="safebrowsing",
name="Safe browsing",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.safebrowsing.enabled,
turn_on_fn=lambda adguard: adguard.safebrowsing.enable,
turn_off_fn=lambda adguard: adguard.safebrowsing.disable,
),
AdGuardHomeSwitchEntityDescription(
key="filtering",
name="Filtering",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.filtering.enabled,
turn_on_fn=lambda adguard: adguard.filtering.enable,
turn_off_fn=lambda adguard: adguard.filtering.disable,
),
AdGuardHomeSwitchEntityDescription(
key="querylog",
name="Query log",
icon="mdi:shield-check",
is_on_fn=lambda adguard: adguard.querylog.enabled,
turn_on_fn=lambda adguard: adguard.querylog.enable,
turn_off_fn=lambda adguard: adguard.querylog.disable,
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
@@ -37,203 +104,46 @@ async def async_setup_entry(
hass.data[DOMAIN][entry.entry_id][DATA_ADGUARD_VERSION] = version
switches = [
AdGuardHomeProtectionSwitch(adguard, entry),
AdGuardHomeFilteringSwitch(adguard, entry),
AdGuardHomeParentalSwitch(adguard, entry),
AdGuardHomeSafeBrowsingSwitch(adguard, entry),
AdGuardHomeSafeSearchSwitch(adguard, entry),
AdGuardHomeQueryLogSwitch(adguard, entry),
]
async_add_entities(switches, True)
async_add_entities(
[AdGuardHomeSwitch(adguard, entry, description) for description in SWITCHES],
True,
)
class AdGuardHomeSwitch(AdGuardHomeDeviceEntity, SwitchEntity):
class AdGuardHomeSwitch(AdGuardHomeEntity, SwitchEntity):
"""Defines a AdGuard Home switch."""
entity_description: AdGuardHomeSwitchEntityDescription
def __init__(
self,
adguard: AdGuardHome,
entry: ConfigEntry,
name: str,
icon: str,
key: str,
enabled_default: bool = True,
description: AdGuardHomeSwitchEntityDescription,
) -> None:
"""Initialize AdGuard Home switch."""
self._state = False
self._key = key
super().__init__(adguard, entry, name, icon, enabled_default)
@property
def unique_id(self) -> str:
"""Return the unique ID for this sensor."""
return "_".join(
[DOMAIN, self.adguard.host, str(self.adguard.port), "switch", self._key]
super().__init__(adguard, entry)
self.entity_description = description
self._attr_unique_id = "_".join(
[DOMAIN, adguard.host, str(adguard.port), "switch", description.key]
)
@property
def is_on(self) -> bool:
"""Return the state of the switch."""
return self._state
async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn off the switch."""
try:
await self._adguard_turn_off()
await self.entity_description.turn_off_fn(self.adguard)()
except AdGuardHomeError:
_LOGGER.error("An error occurred while turning off AdGuard Home switch")
self._available = False
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
raise NotImplementedError()
LOGGER.error("An error occurred while turning off AdGuard Home switch")
self._attr_available = False
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn on the switch."""
try:
await self._adguard_turn_on()
await self.entity_description.turn_on_fn(self.adguard)()
except AdGuardHomeError:
_LOGGER.error("An error occurred while turning on AdGuard Home switch")
self._available = False
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
raise NotImplementedError()
class AdGuardHomeProtectionSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home protection switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, entry, "AdGuard Protection", "mdi:shield-check", "protection"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.disable_protection()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.enable_protection()
LOGGER.error("An error occurred while turning on AdGuard Home switch")
self._attr_available = False
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.protection_enabled()
class AdGuardHomeParentalSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home parental control switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, entry, "AdGuard Parental Control", "mdi:shield-check", "parental"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.parental.disable()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.parental.enable()
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.parental.enabled()
class AdGuardHomeSafeSearchSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home safe search switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, entry, "AdGuard Safe Search", "mdi:shield-check", "safesearch"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.safesearch.disable()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.safesearch.enable()
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.safesearch.enabled()
class AdGuardHomeSafeBrowsingSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home safe search switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, entry, "AdGuard Safe Browsing", "mdi:shield-check", "safebrowsing"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.safebrowsing.disable()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.safebrowsing.enable()
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.safebrowsing.enabled()
class AdGuardHomeFilteringSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home filtering switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard, entry, "AdGuard Filtering", "mdi:shield-check", "filtering"
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.filtering.disable()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.filtering.enable()
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.filtering.enabled()
class AdGuardHomeQueryLogSwitch(AdGuardHomeSwitch):
"""Defines a AdGuard Home query log switch."""
def __init__(self, adguard: AdGuardHome, entry: ConfigEntry) -> None:
"""Initialize AdGuard Home switch."""
super().__init__(
adguard,
entry,
"AdGuard Query Log",
"mdi:shield-check",
"querylog",
enabled_default=False,
)
async def _adguard_turn_off(self) -> None:
"""Turn off the switch."""
await self.adguard.querylog.disable()
async def _adguard_turn_on(self) -> None:
"""Turn on the switch."""
await self.adguard.querylog.enable()
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
self._state = await self.adguard.querylog.enabled()
self._attr_is_on = await self.entity_description.is_on_fn(self.adguard)()

View File

@@ -9,8 +9,8 @@
},
"step": {
"hassio_confirm": {
"description": "\u00bfDesea configurar Home Assistant para conectarse al AdGuard Home proporcionado por el complemento Supervisor: {addon} ?",
"title": "AdGuard Home v\u00eda complemento de Home Assistant"
"description": "\u00bfQuieres configurar Home Assistant para conectarse al AdGuard Home proporcionado por el complemento: {addon}?",
"title": "AdGuard Home a trav\u00e9s del complemento Home Assistant"
},
"user": {
"data": {
@@ -18,10 +18,10 @@
"password": "Contrase\u00f1a",
"port": "Puerto",
"ssl": "Utiliza un certificado SSL",
"username": "Usuario",
"verify_ssl": "Verificar certificado SSL"
"username": "Nombre de usuario",
"verify_ssl": "Verificar el certificado SSL"
},
"description": "Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control."
"description": "Configura tu instancia AdGuard Home para permitir la supervisi\u00f3n y el control."
}
}
}

View File

@@ -2,7 +2,7 @@
"config": {
"abort": {
"already_configured": "A szolg\u00e1ltat\u00e1s m\u00e1r konfigur\u00e1lva van",
"existing_instance_updated": "Friss\u00edtette a megl\u00e9v\u0151 konfigur\u00e1ci\u00f3t."
"existing_instance_updated": "A megl\u00e9v\u0151 konfigur\u00e1ci\u00f3 friss\u00edtve."
},
"error": {
"cannot_connect": "Sikertelen csatlakoz\u00e1s"

View File

@@ -1,11 +1,15 @@
{
"config": {
"abort": {
"already_configured": "O servi\u00e7o j\u00e1 est\u00e1 configurado"
},
"error": {
"cannot_connect": "Falha na liga\u00e7\u00e3o"
},
"step": {
"hassio_confirm": {
"title": "AdGuard Home via Supervisor add-on"
"description": "Deseja configurar o Home Assistant para se ligar ao AdGuard Home fornecido pelo add-on: {addon}?",
"title": "AdGuard Home via add-on Supervisor"
},
"user": {
"data": {
@@ -14,7 +18,7 @@
"port": "Porta",
"ssl": "Utiliza um certificado SSL",
"username": "Nome de Utilizador",
"verify_ssl": "Verificar certificado SSL"
"verify_ssl": "Verificar o certificado SSL"
}
}
}

View File

@@ -1,8 +1,12 @@
{
"config": {
"abort": {
"already_configured": "Tj\u00e4nsten \u00e4r redan konfigurerad",
"existing_instance_updated": "Uppdaterade existerande konfiguration."
},
"error": {
"cannot_connect": "Det gick inte att ansluta."
},
"step": {
"hassio_confirm": {
"description": "Vill du konfigurera Home Assistant f\u00f6r att ansluta till AdGuard Home som tillhandah\u00e5lls av Supervisor Add-on: {addon}?",
@@ -10,7 +14,9 @@
},
"user": {
"data": {
"host": "V\u00e4rd",
"password": "L\u00f6senord",
"port": "Port",
"ssl": "AdGuard Home anv\u00e4nder ett SSL-certifikat",
"username": "Anv\u00e4ndarnamn",
"verify_ssl": "AdGuard Home anv\u00e4nder ett korrekt certifikat"

View File

@@ -53,7 +53,7 @@ class AdsBinarySensor(AdsEntity, BinarySensorEntity):
super().__init__(ads_hub, name, ads_var)
self._attr_device_class = device_class or BinarySensorDeviceClass.MOVING
async def async_added_to_hass(self):
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(self._ads_var, pyads.PLCTYPE_BOOL)

View File

@@ -1,6 +1,8 @@
"""Support for ADS light sources."""
from __future__ import annotations
from typing import Any
import pyads
import voluptuous as vol
@@ -66,7 +68,7 @@ class AdsLight(AdsEntity, LightEntity):
self._attr_color_mode = ColorMode.ONOFF
self._attr_supported_color_modes = {ColorMode.ONOFF}
async def async_added_to_hass(self):
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(self._ads_var, pyads.PLCTYPE_BOOL)
@@ -87,7 +89,7 @@ class AdsLight(AdsEntity, LightEntity):
"""Return True if the entity is on."""
return self._state_dict[STATE_KEY_STATE]
def turn_on(self, **kwargs):
def turn_on(self, **kwargs: Any) -> None:
"""Turn the light on or set a specific dimmer value."""
brightness = kwargs.get(ATTR_BRIGHTNESS)
self._ads_hub.write_by_name(self._ads_var, True, pyads.PLCTYPE_BOOL)
@@ -97,6 +99,6 @@ class AdsLight(AdsEntity, LightEntity):
self._ads_var_brightness, brightness, pyads.PLCTYPE_UINT
)
def turn_off(self, **kwargs):
def turn_off(self, **kwargs: Any) -> None:
"""Turn the light off."""
self._ads_hub.write_by_name(self._ads_var, False, pyads.PLCTYPE_BOOL)

View File

@@ -3,7 +3,6 @@ from __future__ import annotations
import voluptuous as vol
from homeassistant.components import ads
from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT
from homeassistant.core import HomeAssistant
@@ -19,6 +18,7 @@ from . import (
STATE_KEY_STATE,
AdsEntity,
)
from .. import ads
DEFAULT_NAME = "ADS sensor"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
@@ -70,7 +70,7 @@ class AdsSensor(AdsEntity, SensorEntity):
self._ads_type = ads_type
self._factor = factor
async def async_added_to_hass(self):
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(
self._ads_var,

View File

@@ -1,6 +1,8 @@
"""Support for ADS switch platform."""
from __future__ import annotations
from typing import Any
import pyads
import voluptuous as vol
@@ -41,7 +43,7 @@ def setup_platform(
class AdsSwitch(AdsEntity, SwitchEntity):
"""Representation of an ADS switch device."""
async def async_added_to_hass(self):
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(self._ads_var, pyads.PLCTYPE_BOOL)
@@ -50,10 +52,10 @@ class AdsSwitch(AdsEntity, SwitchEntity):
"""Return True if the entity is on."""
return self._state_dict[STATE_KEY_STATE]
def turn_on(self, **kwargs):
def turn_on(self, **kwargs: Any) -> None:
"""Turn the switch on."""
self._ads_hub.write_by_name(self._ads_var, True, pyads.PLCTYPE_BOOL)
def turn_off(self, **kwargs):
def turn_off(self, **kwargs: Any) -> None:
"""Turn the switch off."""
self._ads_hub.write_by_name(self._ads_var, False, pyads.PLCTYPE_BOOL)

View File

@@ -7,6 +7,7 @@ from advantage_air import ApiError, advantage_air
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -20,6 +21,8 @@ PLATFORMS = [
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
Platform.UPDATE,
Platform.LIGHT,
]
_LOGGER = logging.getLogger(__name__)
@@ -50,22 +53,28 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
update_interval=timedelta(seconds=ADVANTAGE_AIR_SYNC_INTERVAL),
)
async def async_change(change):
try:
if await api.async_change(change):
await coordinator.async_refresh()
except ApiError as err:
_LOGGER.warning(err)
def error_handle_factory(func):
"""Return the provided API function wrapped in an error handler and coordinator refresh."""
async def error_handle(param):
try:
if await func(param):
await coordinator.async_refresh()
except ApiError as err:
raise HomeAssistantError(err) from err
return error_handle
await coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = {
"coordinator": coordinator,
"async_change": async_change,
"aircon": error_handle_factory(api.aircon.async_set),
"lights": error_handle_factory(api.lights.async_set),
}
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True

View File

@@ -1,6 +1,8 @@
"""Binary Sensor platform for Advantage Air integration."""
from __future__ import annotations
from typing import Any
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
BinarySensorEntity,
@@ -11,7 +13,7 @@ from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity
PARALLEL_UPDATES = 0
@@ -21,77 +23,72 @@ async def async_setup_entry(
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdvantageAir motion platform."""
"""Set up AdvantageAir Binary Sensor platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities: list[BinarySensorEntity] = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirZoneFilter(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add motion sensor when motion is enabled
if zone["motionConfig"] >= 2:
entities.append(AdvantageAirZoneMotion(instance, ac_key, zone_key))
# Only add MyZone if it is available
if zone["type"] != 0:
entities.append(AdvantageAirZoneMyZone(instance, ac_key, zone_key))
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key, ac_device in aircons.items():
entities.append(AdvantageAirFilter(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add motion sensor when motion is enabled
if zone["motionConfig"] >= 2:
entities.append(AdvantageAirZoneMotion(instance, ac_key, zone_key))
# Only add MyZone if it is available
if zone["type"] != 0:
entities.append(AdvantageAirZoneMyZone(instance, ac_key, zone_key))
async_add_entities(entities)
class AdvantageAirZoneFilter(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Filter."""
class AdvantageAirFilter(AdvantageAirAcEntity, BinarySensorEntity):
"""Advantage Air Filter sensor."""
_attr_device_class = BinarySensorDeviceClass.PROBLEM
_attr_entity_category = EntityCategory.DIAGNOSTIC
_attr_name = "Filter"
def __init__(self, instance, ac_key):
"""Initialize an Advantage Air Filter."""
def __init__(self, instance: dict[str, Any], ac_key: str) -> None:
"""Initialize an Advantage Air Filter sensor."""
super().__init__(instance, ac_key)
self._attr_name = f'{self._ac["name"]} Filter'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-filter'
)
self._attr_unique_id += "-filter"
@property
def is_on(self):
def is_on(self) -> bool:
"""Return if filter needs cleaning."""
return self._ac["filterCleanStatus"]
class AdvantageAirZoneMotion(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Zone Motion."""
class AdvantageAirZoneMotion(AdvantageAirZoneEntity, BinarySensorEntity):
"""Advantage Air Zone Motion sensor."""
_attr_device_class = BinarySensorDeviceClass.MOTION
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone Motion."""
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone Motion sensor."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = f'{self._zone["name"]} Motion'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}-motion'
)
self._attr_name = f'{self._zone["name"]} motion'
self._attr_unique_id += "-motion"
@property
def is_on(self):
def is_on(self) -> bool:
"""Return if motion is detect."""
return self._zone["motion"] == 20
class AdvantageAirZoneMyZone(AdvantageAirEntity, BinarySensorEntity):
"""Advantage Air Zone MyZone."""
class AdvantageAirZoneMyZone(AdvantageAirZoneEntity, BinarySensorEntity):
"""Advantage Air Zone MyZone sensor."""
_attr_entity_registry_enabled_default = False
_attr_entity_category = EntityCategory.DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Zone MyZone."""
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone MyZone sensor."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = f'{self._zone["name"]} MyZone'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}-myzone'
)
self._attr_name = f'{self._zone["name"]} myZone'
self._attr_unique_id += "-myzone"
@property
def is_on(self):
def is_on(self) -> bool:
"""Return if this zone is the myZone."""
return self._zone["number"] == self._ac["myZone"]

View File

@@ -2,20 +2,20 @@
from __future__ import annotations
import logging
from typing import Any
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
from homeassistant.components.climate import (
FAN_AUTO,
FAN_HIGH,
FAN_LOW,
FAN_MEDIUM,
ClimateEntity,
ClimateEntityFeature,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, TEMP_CELSIUS
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_platform
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import (
@@ -25,7 +25,7 @@ from .const import (
ADVANTAGE_AIR_STATE_OPEN,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity
ADVANTAGE_AIR_HVAC_MODES = {
"heat": HVACMode.HEAT,
@@ -45,7 +45,7 @@ AC_HVAC_MODES = [
]
ADVANTAGE_AIR_FAN_MODES = {
"auto": FAN_AUTO,
"autoAA": FAN_AUTO,
"low": FAN_LOW,
"medium": FAN_MEDIUM,
"high": FAN_HIGH,
@@ -53,7 +53,6 @@ ADVANTAGE_AIR_FAN_MODES = {
HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()}
FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100}
ADVANTAGE_AIR_SERVICE_SET_MYZONE = "set_myzone"
ZONE_HVAC_MODES = [HVACMode.OFF, HVACMode.HEAT_COOL]
PARALLEL_UPDATES = 0
@@ -71,73 +70,60 @@ async def async_setup_entry(
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities: list[ClimateEntity] = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirAC(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add zone climate control when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZone(instance, ac_key, zone_key))
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key, ac_device in aircons.items():
entities.append(AdvantageAirAC(instance, ac_key))
for zone_key, zone in ac_device["zones"].items():
# Only add zone climate control when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZone(instance, ac_key, zone_key))
async_add_entities(entities)
platform = entity_platform.async_get_current_platform()
platform.async_register_entity_service(
ADVANTAGE_AIR_SERVICE_SET_MYZONE,
{},
"set_myzone",
)
class AdvantageAirClimateEntity(AdvantageAirEntity, ClimateEntity):
"""AdvantageAir Climate class."""
class AdvantageAirAC(AdvantageAirAcEntity, ClimateEntity):
"""AdvantageAir AC unit."""
_attr_temperature_unit = TEMP_CELSIUS
_attr_target_temperature_step = PRECISION_WHOLE
_attr_max_temp = 32
_attr_min_temp = 16
class AdvantageAirAC(AdvantageAirClimateEntity):
"""AdvantageAir AC unit."""
_attr_fan_modes = [FAN_AUTO, FAN_LOW, FAN_MEDIUM, FAN_HIGH]
_attr_hvac_modes = AC_HVAC_MODES
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.FAN_MODE
)
def __init__(self, instance, ac_key):
def __init__(self, instance: dict[str, Any], ac_key: str) -> None:
"""Initialize an AdvantageAir AC unit."""
super().__init__(instance, ac_key)
self._attr_name = self._ac["name"]
self._attr_unique_id = f'{self.coordinator.data["system"]["rid"]}-{ac_key}'
if self._ac.get("myAutoModeEnabled"):
self._attr_hvac_modes = AC_HVAC_MODES + [HVACMode.AUTO]
@property
def target_temperature(self):
def target_temperature(self) -> float:
"""Return the current target temperature."""
return self._ac["setTemp"]
@property
def hvac_mode(self):
def hvac_mode(self) -> HVACMode | None:
"""Return the current HVAC modes."""
if self._ac["state"] == ADVANTAGE_AIR_STATE_ON:
return ADVANTAGE_AIR_HVAC_MODES.get(self._ac["mode"])
return HVACMode.OFF
@property
def fan_mode(self):
def fan_mode(self) -> str | None:
"""Return the current fan modes."""
return ADVANTAGE_AIR_FAN_MODES.get(self._ac["fan"])
async def async_set_hvac_mode(self, hvac_mode):
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set the HVAC Mode and State."""
if hvac_mode == HVACMode.OFF:
await self.async_change(
await self.aircon(
{self.ac_key: {"info": {"state": ADVANTAGE_AIR_STATE_OFF}}}
)
else:
await self.async_change(
await self.aircon(
{
self.ac_key: {
"info": {
@@ -148,25 +134,29 @@ class AdvantageAirAC(AdvantageAirClimateEntity):
}
)
async def async_set_fan_mode(self, fan_mode):
async def async_set_fan_mode(self, fan_mode: str) -> None:
"""Set the Fan Mode."""
await self.async_change(
await self.aircon(
{self.ac_key: {"info": {"fan": HASS_FAN_MODES.get(fan_mode)}}}
)
async def async_set_temperature(self, **kwargs):
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set the Temperature."""
temp = kwargs.get(ATTR_TEMPERATURE)
await self.async_change({self.ac_key: {"info": {"setTemp": temp}}})
await self.aircon({self.ac_key: {"info": {"setTemp": temp}}})
class AdvantageAirZone(AdvantageAirClimateEntity):
class AdvantageAirZone(AdvantageAirZoneEntity, ClimateEntity):
"""AdvantageAir Zone control."""
_attr_temperature_unit = TEMP_CELSIUS
_attr_target_temperature_step = PRECISION_WHOLE
_attr_max_temp = 32
_attr_min_temp = 16
_attr_hvac_modes = ZONE_HVAC_MODES
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
def __init__(self, instance, ac_key, zone_key):
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an AdvantageAir Zone control."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = self._zone["name"]
@@ -175,26 +165,26 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
)
@property
def hvac_mode(self):
def hvac_mode(self) -> HVACMode:
"""Return the current state as HVAC mode."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return HVACMode.HEAT_COOL
return HVACMode.OFF
@property
def current_temperature(self):
def current_temperature(self) -> float:
"""Return the current temperature."""
return self._zone["measuredTemp"]
@property
def target_temperature(self):
def target_temperature(self) -> float:
"""Return the target temperature."""
return self._zone["setTemp"]
async def async_set_hvac_mode(self, hvac_mode):
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set the HVAC Mode and State."""
if hvac_mode == HVACMode.OFF:
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
@@ -202,7 +192,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
}
)
else:
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_OPEN}}
@@ -210,18 +200,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity):
}
)
async def async_set_temperature(self, **kwargs):
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set the Temperature."""
temp = kwargs.get(ATTR_TEMPERATURE)
await self.async_change(
{self.ac_key: {"zones": {self.zone_key: {"setTemp": temp}}}}
)
async def set_myzone(self, **kwargs):
"""Set this zone as the 'MyZone'."""
_LOGGER.warning(
"The advantage_air.set_myzone service has been deprecated and will be removed in a future version, please use the select.select_option service on the MyZone entity"
)
await self.async_change(
{self.ac_key: {"info": {"myZone": self._zone["number"]}}}
)
await self.aircon({self.ac_key: {"zones": {self.zone_key: {"setTemp": temp}}}})

View File

@@ -1,9 +1,14 @@
"""Config Flow for Advantage Air integration."""
from __future__ import annotations
from typing import Any
from advantage_air import ApiError, advantage_air
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
@@ -25,7 +30,9 @@ class AdvantageAirConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
DOMAIN = DOMAIN
async def async_step_user(self, user_input=None):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Get configuration from the user."""
errors = {}
if user_input:

View File

@@ -16,7 +16,7 @@ from .const import (
ADVANTAGE_AIR_STATE_OPEN,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
from .entity import AdvantageAirZoneEntity
PARALLEL_UPDATES = 0
@@ -30,17 +30,18 @@ async def async_setup_entry(
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
for zone_key, zone in ac_device["zones"].items():
# Only add zone vent controls when zone in vent control mode.
if zone["type"] == 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
entities: list[CoverEntity] = []
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key, ac_device in aircons.items():
for zone_key, zone in ac_device["zones"].items():
# Only add zone vent controls when zone in vent control mode.
if zone["type"] == 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
async_add_entities(entities)
class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
"""Advantage Air Cover Class."""
class AdvantageAirZoneVent(AdvantageAirZoneEntity, CoverEntity):
"""Advantage Air Zone Vent."""
_attr_device_class = CoverDeviceClass.DAMPER
_attr_supported_features = (
@@ -49,13 +50,10 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
| CoverEntityFeature.SET_POSITION
)
def __init__(self, instance, ac_key, zone_key):
"""Initialize an Advantage Air Cover Class."""
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone Vent."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = f'{self._zone["name"]}'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}'
)
self._attr_name = self._zone["name"]
@property
def is_closed(self) -> bool:
@@ -71,7 +69,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
async def async_open_cover(self, **kwargs: Any) -> None:
"""Fully open zone vent."""
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {
@@ -83,7 +81,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
async def async_close_cover(self, **kwargs: Any) -> None:
"""Fully close zone vent."""
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
@@ -95,7 +93,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
"""Change vent position."""
position = round(kwargs[ATTR_POSITION] / 5) * 5
if position == 0:
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {self.zone_key: {"state": ADVANTAGE_AIR_STATE_CLOSE}}
@@ -103,7 +101,7 @@ class AdvantageAirZoneVent(AdvantageAirEntity, CoverEntity):
}
)
else:
await self.async_change(
await self.aircon(
{
self.ac_key: {
"zones": {

View File

@@ -1,5 +1,7 @@
"""Advantage Air parent entity class."""
from typing import Any
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -9,24 +11,46 @@ from .const import DOMAIN
class AdvantageAirEntity(CoordinatorEntity):
"""Parent class for Advantage Air Entities."""
def __init__(self, instance, ac_key, zone_key=None):
"""Initialize common aspects of an Advantage Air sensor."""
_attr_has_entity_name = True
def __init__(self, instance: dict[str, Any]) -> None:
"""Initialize common aspects of an Advantage Air entity."""
super().__init__(instance["coordinator"])
self.async_change = instance["async_change"]
self.ac_key = ac_key
self.zone_key = zone_key
self._attr_unique_id: str = self.coordinator.data["system"]["rid"]
class AdvantageAirAcEntity(AdvantageAirEntity):
"""Parent class for Advantage Air AC Entities."""
def __init__(self, instance: dict[str, Any], ac_key: str) -> None:
"""Initialize common aspects of an Advantage Air ac entity."""
super().__init__(instance)
self.aircon = instance["aircon"]
self.ac_key: str = ac_key
self._attr_unique_id += f"-{ac_key}"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, self.coordinator.data["system"]["rid"])},
via_device=(DOMAIN, self.coordinator.data["system"]["rid"]),
identifiers={(DOMAIN, self._attr_unique_id)},
manufacturer="Advantage Air",
model=self.coordinator.data["system"]["sysType"],
name=self.coordinator.data["system"]["name"],
sw_version=self.coordinator.data["system"]["myAppRev"],
name=self.coordinator.data["aircons"][self.ac_key]["info"]["name"],
)
@property
def _ac(self):
def _ac(self) -> dict[str, Any]:
return self.coordinator.data["aircons"][self.ac_key]["info"]
class AdvantageAirZoneEntity(AdvantageAirAcEntity):
"""Parent class for Advantage Air Zone Entities."""
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize common aspects of an Advantage Air zone entity."""
super().__init__(instance, ac_key)
self.zone_key: str = zone_key
self._attr_unique_id += f"-{zone_key}"
@property
def _zone(self):
def _zone(self) -> dict[str, Any]:
return self.coordinator.data["aircons"][self.ac_key]["zones"][self.zone_key]

View File

@@ -0,0 +1,90 @@
"""Light platform for Advantage Air integration."""
from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import (
ADVANTAGE_AIR_STATE_OFF,
ADVANTAGE_AIR_STATE_ON,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdvantageAir light platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities: list[LightEntity] = []
if my_lights := instance["coordinator"].data.get("myLights"):
for light in my_lights["lights"].values():
if light.get("relay"):
entities.append(AdvantageAirLight(instance, light))
else:
entities.append(AdvantageAirLightDimmable(instance, light))
async_add_entities(entities)
class AdvantageAirLight(AdvantageAirEntity, LightEntity):
"""Representation of Advantage Air Light."""
_attr_supported_color_modes = {ColorMode.ONOFF}
def __init__(self, instance: dict[str, Any], light: dict[str, Any]) -> None:
"""Initialize an Advantage Air Light."""
super().__init__(instance)
self.lights = instance["lights"]
self._id: str = light["id"]
self._attr_unique_id += f"-{self._id}"
self._attr_device_info = DeviceInfo(
identifiers={(ADVANTAGE_AIR_DOMAIN, self._attr_unique_id)},
via_device=(ADVANTAGE_AIR_DOMAIN, self.coordinator.data["system"]["rid"]),
manufacturer="Advantage Air",
model=light.get("moduleType"),
name=light["name"],
)
@property
def _light(self) -> dict[str, Any]:
"""Return the light object."""
return self.coordinator.data["myLights"]["lights"][self._id]
@property
def is_on(self) -> bool:
"""Return if the light is on."""
return self._light["state"] == ADVANTAGE_AIR_STATE_ON
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the light on."""
await self.lights({"id": self._id, "state": ADVANTAGE_AIR_STATE_ON})
async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the light off."""
await self.lights({"id": self._id, "state": ADVANTAGE_AIR_STATE_OFF})
class AdvantageAirLightDimmable(AdvantageAirLight):
"""Representation of Advantage Air Dimmable Light."""
_attr_supported_color_modes = {ColorMode.ONOFF, ColorMode.BRIGHTNESS}
@property
def brightness(self) -> int:
"""Return the brightness of this light between 0..255."""
return round(self._light["value"] * 255 / 100)
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the light on and optionally set the brightness."""
data: dict[str, Any] = {"id": self._id, "state": ADVANTAGE_AIR_STATE_ON}
if ATTR_BRIGHTNESS in kwargs:
data["value"] = round(kwargs[ATTR_BRIGHTNESS] * 100 / 255)
await self.lights(data)

View File

@@ -4,7 +4,7 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/advantage_air",
"codeowners": ["@Bre77"],
"requirements": ["advantage_air==0.3.1"],
"requirements": ["advantage_air==0.4.1"],
"quality_scale": "platinum",
"iot_class": "local_polling",
"loggers": ["advantage_air"]

View File

@@ -1,11 +1,13 @@
"""Select platform for Advantage Air integration."""
from typing import Any
from homeassistant.components.select import SelectEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
from .entity import AdvantageAirAcEntity
ADVANTAGE_AIR_INACTIVE = "Inactive"
@@ -15,31 +17,30 @@ async def async_setup_entry(
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdvantageAir toggle platform."""
"""Set up AdvantageAir select platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key in instance["coordinator"].data["aircons"]:
entities.append(AdvantageAirMyZone(instance, ac_key))
entities: list[SelectEntity] = []
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key in aircons:
entities.append(AdvantageAirMyZone(instance, ac_key))
async_add_entities(entities)
class AdvantageAirMyZone(AdvantageAirEntity, SelectEntity):
class AdvantageAirMyZone(AdvantageAirAcEntity, SelectEntity):
"""Representation of Advantage Air MyZone control."""
_attr_icon = "mdi:home-thermometer"
_attr_options = [ADVANTAGE_AIR_INACTIVE]
_number_to_name = {0: ADVANTAGE_AIR_INACTIVE}
_name_to_number = {ADVANTAGE_AIR_INACTIVE: 0}
_attr_name = "MyZone"
def __init__(self, instance, ac_key):
def __init__(self, instance: dict[str, Any], ac_key: str) -> None:
"""Initialize an Advantage Air MyZone control."""
super().__init__(instance, ac_key)
self._attr_name = f'{self._ac["name"]} MyZone'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-myzone'
)
self._attr_unique_id += "-myzone"
self._attr_options = [ADVANTAGE_AIR_INACTIVE]
self._number_to_name = {0: ADVANTAGE_AIR_INACTIVE}
self._name_to_number = {ADVANTAGE_AIR_INACTIVE: 0}
for zone in instance["coordinator"].data["aircons"][ac_key]["zones"].values():
if zone["type"] > 0:
@@ -48,12 +49,12 @@ class AdvantageAirMyZone(AdvantageAirEntity, SelectEntity):
self._attr_options.append(zone["name"])
@property
def current_option(self):
"""Return the fresh air status."""
def current_option(self) -> str:
"""Return the current MyZone."""
return self._number_to_name[self._ac["myZone"]]
async def async_select_option(self, option):
async def async_select_option(self, option: str) -> None:
"""Set the MyZone."""
await self.async_change(
await self.aircon(
{self.ac_key: {"info": {"myZone": self._name_to_number[option]}}}
)

View File

@@ -1,6 +1,9 @@
"""Sensor platform for Advantage Air integration."""
from __future__ import annotations
from decimal import Decimal
from typing import Any
import voluptuous as vol
from homeassistant.components.sensor import (
@@ -16,7 +19,7 @@ from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import ADVANTAGE_AIR_STATE_OPEN, DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity
ADVANTAGE_AIR_SET_COUNTDOWN_VALUE = "minutes"
ADVANTAGE_AIR_SET_COUNTDOWN_UNIT = "min"
@@ -35,17 +38,18 @@ async def async_setup_entry(
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities: list[SensorEntity] = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
entities.append(AdvantageAirTimeTo(instance, ac_key, "On"))
entities.append(AdvantageAirTimeTo(instance, ac_key, "Off"))
for zone_key, zone in ac_device["zones"].items():
# Only show damper and temp sensors when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
entities.append(AdvantageAirZoneTemp(instance, ac_key, zone_key))
# Only show wireless signal strength sensors when using wireless sensors
if zone["rssi"] > 0:
entities.append(AdvantageAirZoneSignal(instance, ac_key, zone_key))
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key, ac_device in aircons.items():
entities.append(AdvantageAirTimeTo(instance, ac_key, "On"))
entities.append(AdvantageAirTimeTo(instance, ac_key, "Off"))
for zone_key, zone in ac_device["zones"].items():
# Only show damper and temp sensors when zone is in temperature control
if zone["type"] != 0:
entities.append(AdvantageAirZoneVent(instance, ac_key, zone_key))
entities.append(AdvantageAirZoneTemp(instance, ac_key, zone_key))
# Only show wireless signal strength sensors when using wireless sensors
if zone["rssi"] > 0:
entities.append(AdvantageAirZoneSignal(instance, ac_key, zone_key))
async_add_entities(entities)
platform = entity_platform.async_get_current_platform()
@@ -56,92 +60,86 @@ async def async_setup_entry(
)
class AdvantageAirTimeTo(AdvantageAirEntity, SensorEntity):
class AdvantageAirTimeTo(AdvantageAirAcEntity, SensorEntity):
"""Representation of Advantage Air timer control."""
_attr_native_unit_of_measurement = ADVANTAGE_AIR_SET_COUNTDOWN_UNIT
_attr_entity_category = EntityCategory.DIAGNOSTIC
def __init__(self, instance, ac_key, action):
def __init__(self, instance: dict[str, Any], ac_key: str, action: str) -> None:
"""Initialize the Advantage Air timer control."""
super().__init__(instance, ac_key)
self.action = action
self._time_key = f"countDownTo{action}"
self._attr_name = f'{self._ac["name"]} Time To {action}'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{self.ac_key}-timeto{action}'
)
self._attr_name = f"Time to {action}"
self._attr_unique_id += f"-timeto{action}"
@property
def native_value(self):
def native_value(self) -> Decimal:
"""Return the current value."""
return self._ac[self._time_key]
@property
def icon(self):
def icon(self) -> str:
"""Return a representative icon of the timer."""
if self._ac[self._time_key] > 0:
return "mdi:timer-outline"
return "mdi:timer-off-outline"
async def set_time_to(self, **kwargs):
async def set_time_to(self, **kwargs: Any) -> None:
"""Set the timer value."""
value = min(720, max(0, int(kwargs[ADVANTAGE_AIR_SET_COUNTDOWN_VALUE])))
await self.async_change({self.ac_key: {"info": {self._time_key: value}}})
await self.aircon({self.ac_key: {"info": {self._time_key: value}}})
class AdvantageAirZoneVent(AdvantageAirEntity, SensorEntity):
class AdvantageAirZoneVent(AdvantageAirZoneEntity, SensorEntity):
"""Representation of Advantage Air Zone Vent Sensor."""
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_entity_category = EntityCategory.DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone Vent Sensor."""
super().__init__(instance, ac_key, zone_key=zone_key)
self._attr_name = f'{self._zone["name"]} Vent'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}-vent'
)
self._attr_name = f'{self._zone["name"]} vent'
self._attr_unique_id += "-vent"
@property
def native_value(self):
def native_value(self) -> Decimal:
"""Return the current value of the air vent."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return self._zone["value"]
return 0
return Decimal(0)
@property
def icon(self):
def icon(self) -> str:
"""Return a representative icon."""
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
return "mdi:fan"
return "mdi:fan-off"
class AdvantageAirZoneSignal(AdvantageAirEntity, SensorEntity):
class AdvantageAirZoneSignal(AdvantageAirZoneEntity, SensorEntity):
"""Representation of Advantage Air Zone wireless signal sensor."""
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_entity_category = EntityCategory.DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone wireless signal sensor."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = f'{self._zone["name"]} Signal'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}-signal'
)
self._attr_name = f'{self._zone["name"]} signal'
self._attr_unique_id += "-signal"
@property
def native_value(self):
def native_value(self) -> Decimal:
"""Return the current value of the wireless signal."""
return self._zone["rssi"]
@property
def icon(self):
def icon(self) -> str:
"""Return a representative icon."""
if self._zone["rssi"] >= 80:
return "mdi:wifi-strength-4"
@@ -154,7 +152,7 @@ class AdvantageAirZoneSignal(AdvantageAirEntity, SensorEntity):
return "mdi:wifi-strength-outline"
class AdvantageAirZoneTemp(AdvantageAirEntity, SensorEntity):
class AdvantageAirZoneTemp(AdvantageAirZoneEntity, SensorEntity):
"""Representation of Advantage Air Zone temperature sensor."""
_attr_native_unit_of_measurement = TEMP_CELSIUS
@@ -163,15 +161,13 @@ class AdvantageAirZoneTemp(AdvantageAirEntity, SensorEntity):
_attr_entity_registry_enabled_default = False
_attr_entity_category = EntityCategory.DIAGNOSTIC
def __init__(self, instance, ac_key, zone_key):
def __init__(self, instance: dict[str, Any], ac_key: str, zone_key: str) -> None:
"""Initialize an Advantage Air Zone Temp Sensor."""
super().__init__(instance, ac_key, zone_key)
self._attr_name = f'{self._zone["name"]} Temperature'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-{zone_key}-temp'
)
self._attr_name = f'{self._zone["name"]} temperature'
self._attr_unique_id += "-temp"
@property
def native_value(self):
def native_value(self) -> Decimal:
"""Return the current value of the measured temperature."""
return self._zone["measuredTemp"]

View File

@@ -15,11 +15,3 @@ set_time_to:
min: 0
max: 1440
unit_of_measurement: minutes
set_myzone:
name: Set MyZone
description: Change which zone is set as the reference for temperature control (deprecated)
target:
entity:
integration: advantage_air
domain: climate

View File

@@ -1,4 +1,6 @@
"""Switch platform for Advantage Air integration."""
from typing import Any
from homeassistant.components.switch import SwitchEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
@@ -9,7 +11,7 @@ from .const import (
ADVANTAGE_AIR_STATE_ON,
DOMAIN as ADVANTAGE_AIR_DOMAIN,
)
from .entity import AdvantageAirEntity
from .entity import AdvantageAirAcEntity
async def async_setup_entry(
@@ -17,43 +19,42 @@ async def async_setup_entry(
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdvantageAir toggle platform."""
"""Set up AdvantageAir switch platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
entities = []
for ac_key, ac_device in instance["coordinator"].data["aircons"].items():
if ac_device["info"]["freshAirStatus"] != "none":
entities.append(AdvantageAirFreshAir(instance, ac_key))
entities: list[SwitchEntity] = []
if aircons := instance["coordinator"].data.get("aircons"):
for ac_key, ac_device in aircons.items():
if ac_device["info"]["freshAirStatus"] != "none":
entities.append(AdvantageAirFreshAir(instance, ac_key))
async_add_entities(entities)
class AdvantageAirFreshAir(AdvantageAirEntity, SwitchEntity):
class AdvantageAirFreshAir(AdvantageAirAcEntity, SwitchEntity):
"""Representation of Advantage Air fresh air control."""
_attr_icon = "mdi:air-filter"
_attr_name = "Fresh air"
def __init__(self, instance, ac_key):
def __init__(self, instance: dict[str, Any], ac_key: str) -> None:
"""Initialize an Advantage Air fresh air control."""
super().__init__(instance, ac_key)
self._attr_name = f'{self._ac["name"]} Fresh Air'
self._attr_unique_id = (
f'{self.coordinator.data["system"]["rid"]}-{ac_key}-freshair'
)
self._attr_unique_id += "-freshair"
@property
def is_on(self):
def is_on(self) -> bool:
"""Return the fresh air status."""
return self._ac["freshAirStatus"] == ADVANTAGE_AIR_STATE_ON
async def async_turn_on(self, **kwargs):
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn fresh air on."""
await self.async_change(
await self.aircon(
{self.ac_key: {"info": {"freshAirStatus": ADVANTAGE_AIR_STATE_ON}}}
)
async def async_turn_off(self, **kwargs):
async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn fresh air off."""
await self.async_change(
await self.aircon(
{self.ac_key: {"info": {"freshAirStatus": ADVANTAGE_AIR_STATE_OFF}}}
)

View File

@@ -0,0 +1,20 @@
{
"config": {
"abort": {
"already_configured": "Enheten \u00e4r redan konfigurerad"
},
"error": {
"cannot_connect": "Det gick inte att ansluta."
},
"step": {
"user": {
"data": {
"ip_address": "IP-adress",
"port": "Port"
},
"description": "Anslut till API:et f\u00f6r din Advantage Air v\u00e4ggmonterade surfplatta.",
"title": "Anslut"
}
}
}
}

View File

@@ -0,0 +1,54 @@
"""Advantage Air Update platform."""
from typing import Any
from homeassistant.components.update import UpdateEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
from .entity import AdvantageAirEntity
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AdvantageAir update platform."""
instance = hass.data[ADVANTAGE_AIR_DOMAIN][config_entry.entry_id]
async_add_entities([AdvantageAirApp(instance)])
class AdvantageAirApp(AdvantageAirEntity, UpdateEntity):
"""Representation of Advantage Air App."""
_attr_name = "App"
def __init__(self, instance: dict[str, Any]) -> None:
"""Initialize the Advantage Air App."""
super().__init__(instance)
self._attr_device_info = DeviceInfo(
identifiers={
(ADVANTAGE_AIR_DOMAIN, self.coordinator.data["system"]["rid"])
},
manufacturer="Advantage Air",
model=self.coordinator.data["system"]["sysType"],
name=self.coordinator.data["system"]["name"],
sw_version=self.coordinator.data["system"]["myAppRev"],
)
@property
def installed_version(self) -> str:
"""Return the current app version."""
return self.coordinator.data["system"]["myAppRev"]
@property
def latest_version(self) -> str:
"""Return if there is an update."""
if self.coordinator.data["system"]["needsUpdate"]:
return "Needs Update"
return self.installed_version

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