Commit Graph

16986 Commits (99634e22bdac60e4c9cae5da14df0695f0433a76)

Author SHA1 Message Date
Marc Mueller 2618bfc073
Use EventType for state changed [core] (#97115) 2023-07-23 18:10:03 -05:00
Franck Nijhof 30058297cf
Migrate backported StrEnum to built-in StrEnum (#97101) 2023-07-23 23:19:24 +02:00
Franck Nijhof 86708b5590
Update ruff to v0.0.280 (#97102) 2023-07-23 22:00:26 +02:00
Joost Lekkerkerker bfbdebd0f7
Add entity translations to uPnP (#96763) 2023-07-23 20:21:57 +02:00
Jan Bouwhuis 3183ce7608
Add doorbell event support to alexa (#97092) 2023-07-23 20:16:46 +02:00
Joost Lekkerkerker dd6cd0096a
Improve code coverage for LastFM (#97012)
* Improve code coverage for LastFM

* Revert introduced bug
2023-07-23 20:09:16 +02:00
Luke 5158461dec
Add Number platform to Roborock (#94209) 2023-07-23 19:02:16 +02:00
Miguel Camba 38111141f9
Add new device class: PH (potential hydrogen) (#95928) 2023-07-23 18:49:10 +02:00
Robert Svensson 1552319e94
Add Axis camera sources to diagnostics (#97063) 2023-07-23 17:56:58 +02:00
Jan Bouwhuis 1b8e03bb66
Add MQTT event entity platform (#96876)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-07-23 14:42:14 +02:00
Joost Lekkerkerker 26152adb23
Add entity translations to Tado (#96226) 2023-07-23 14:32:25 +02:00
Ernst Klamer 672313c8ab
Add support for MiScale V1 (#97081) 2023-07-23 13:11:05 +02:00
Dave T 35f21dcf9c
Add repair hint to deprecate generic camera yaml config (#96923) 2023-07-23 11:10:18 +02:00
J. Nick Koston d4cdb0453f
Guard expensive debug formatting with calls with isEnabledFor (#97073) 2023-07-23 10:54:25 +02:00
J. Nick Koston 095146b163
Fix has_entity_name not always being set in ESPHome (#97055) 2023-07-23 10:45:48 +02:00
Marc Mueller fe0fe19be9
Use datetime.UTC alias [3.11] (#97067) 2023-07-22 17:05:11 -05:00
Marc Mueller 45ec314232
Replace typing.Optional with new typing syntax (#97068) 2023-07-22 17:03:53 -05:00
Marc Mueller 77f38e33e5
Import names from typing instead of typing_extensions [3.11] (#97065) 2023-07-22 17:03:44 -05:00
Jan Bouwhuis 9424d11408
Allow homeassistant in MQTT configuration_url schema (#96107) 2023-07-22 22:50:58 +02:00
J. Nick Koston f36930f165
Fix zeroconf tests with cython 3 (#97054) 2023-07-22 12:33:37 -05:00
Jan Bouwhuis 9a5774a95d
Apply common entity schema for MQTT Scene (#96949) 2023-07-22 18:00:27 +02:00
Erik Montnemery a8d77cc5ad
Teach zwave_js device trigger about entity registry ids (#96303) 2023-07-22 17:29:24 +02:00
Maciej Bieniek 5249660a6a
Add `uv_index` to AccuWeather weather entity (#97015) 2023-07-22 17:11:39 +02:00
Joost Lekkerkerker 44803e1177
Migrate Uptimerobot to has entity name (#96770) 2023-07-22 16:55:05 +02:00
Joost Lekkerkerker 11fd43b1fc
Add entity translations to Wiz (#96826) 2023-07-22 16:28:48 +02:00
Joost Lekkerkerker 9b717cb84f
Use snapshot testing in LastFM (#97009) 2023-07-22 12:47:26 +02:00
Joost Lekkerkerker fb460d343e
Add upload date to Youtube state attributes (#96976) 2023-07-22 12:45:55 +02:00
Michael facd6ef765
Display current version in common format in AVM Fritz!Tools (#96424) 2023-07-21 21:58:18 +02:00
G Johansson 4e30056830
Add new Forecasting to Weather (#75219)
* Add new Forecasting to Weather

* Add is_daytime for forecast_twice_daily

* Fix test

* Fix demo test

* Adjust tests

* Fix typing

* Add demo

* Mod demo more realistic

* Fix test

* Remove one weather

* Fix weather example

* kitchen_sink

* Reverse demo partially

* mod kitchen sink

* Fix twice_daily

* kitchen_sink

* Add test weathers

* Add twice daily to demo

* dt_util

* Fix names

* Expose forecast via WS instead of as state attributes

* Regularly update demo + kitchen_sink weather forecasts

* Run linters

* Fix rebase mistake

* Improve demo test coverage

* Improve weather test coverage

* Exclude kitchen_sink weather from test coverage

* Rename async_update_forecast to async_update_listeners

* Add async_has_listeners helper

* Revert "Add async_has_listeners helper"

This reverts commit 52af3664bb06d9feac2c5ff963ee0022077c23ba.

* Fix rebase mistake

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-07-21 17:30:48 +02:00
Maciej Bieniek 2e156e56bf
Create an issue if Shelly TRV is not calibrated (#96952)
* Create issue if Shelly Valve is not calibrated

* Add test

* Improve test

* Improve issue description

* Restart -> reboot
2023-07-21 14:20:03 +02:00
G Johansson 58ce357870
Add uv_index to Weather Entity (#96951)
* Add uv_index to Weather Entity

* translation

* Update homeassistant/components/weather/__init__.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-07-21 14:07:10 +02:00
Jan Bouwhuis 447fbf58c9
Change naming of MQTT entities to correspond with HA guidelines (#95159)
* Set has_entity_name if device_name is set

* revert unneeded formatting change

* Add image platform

* Follow up comment

* Don't set `has_entity_name` without device name

* Only set has_entity_name if a valid name is set

* Follow device_class name and add tests

* Follow up comments add extra tests

* Move to helper - Log a warning

* fix test

* Allow to assign None as name explictly

* Refactor

* Log info messages when device name is not set

* Revert scene schema change - no device link

* Always set has_entity_name with device mapping

* Always set `_attr_has_entity_name`

* Cleanup
2023-07-21 12:52:10 +02:00
Franck Nijhof 747f4d4a73
Add event entity (#96797) 2023-07-21 12:16:35 +02:00
Joost Lekkerkerker 33c2fc008a
Add diagnostics to YouTube (#96975) 2023-07-21 11:58:49 +02:00
Joost Lekkerkerker b39f7d6a71
Add snapshot testing to YouTube (#96974) 2023-07-21 09:54:06 +02:00
Marc Mueller 32d63ae890
Fix sentry test assert (#96983) 2023-07-21 08:55:44 +02:00
Jan Bouwhuis b504665b56
Do not override extra_state_attributes property for MqttEntity (#96890) 2023-07-21 06:35:58 +02:00
J. Nick Koston e9620c62b8
Fix assertions in zeroconf tests (#96957) 2023-07-20 20:36:46 +02:00
Joost Lekkerkerker fff254e0dc
Avoid using name in Subaru migrations (#96221)
* Avoid using name in Subaru migrations

* Add feedback

* Update tests/components/subaru/test_sensor.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Update tests/components/subaru/test_sensor.py

Co-authored-by: G-Two <7310260+G-Two@users.noreply.github.com>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: G-Two <7310260+G-Two@users.noreply.github.com>
2023-07-20 14:45:07 +02:00
Erik Montnemery df46179d26
Fix broken service test (#96943) 2023-07-20 13:11:55 +02:00
Maciej Bieniek db83dc9acc
Create an issue if push updates fail for Shelly gen1 devices (#96910)
* Create an issue if push updates fail

* Improve strings

* Delete the issue when reloading configuration entry

* Change MAX_PUSH_UPDATE_FAILURES to 5

* Improve issue strings

* Add test

* Use for

* Update homeassistant/components/shelly/strings.json

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>

* Simplify deleting the issue

---------

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
2023-07-20 13:11:05 +02:00
RoboMagus c433b251fa
Shell command response (#96695)
* Add service response to shell_commands

* Add shell_command response tests

* Fix mypy

* Return empty dict instead of None on error

* Improved response type hint

* Cleanup after removing type cast

* Raise exceptions i.s.o. returning

* Fix ruff
2023-07-20 11:53:57 +02:00
Joost Lekkerkerker 0ba2531ca4
Fix bug in check_config when an integration is removed by its own validator (#96068)
* Raise if present is False

* Fix feedback

* Update homeassistant/helpers/check_config.py

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

* Update homeassistant/helpers/check_config.py

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

* Fix tests

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-07-20 11:45:44 +02:00
G Johansson 4e2b00a443
Refactor SQL with ManualTriggerEntity (#95116)
* First go

* Finalize sensor

* Add tests

* Remove not need _attr_name

* device_class

* _process_manual_data allow Any as value
2023-07-20 11:35:08 +02:00
Erik Montnemery fa0d68b1d7
Add NumberDeviceClass.DURATION (#96932) 2023-07-20 11:10:03 +02:00
Eric Severance 5ffffd8dbc
Fully unload wemo config entry (#96620)
* Fully unload wemo config entity

* Test reloading the config entry

* Encapsulate data with dataclasses

* Fix missing test coverage

* Replace if with assert for options that are always set

* Move WemoData/WemoConfigEntryData to models.py

* Use _ to indicate unused argument

* Test that the entry and entity work after reloading

* Nit: Slight test reordering

* Reset the correct mock (get_state)

* from .const import DOMAIN

* Nit: _async_wemo_data -> async_wemo_data; not module private
2023-07-20 10:06:16 +02:00
Ernst Klamer 0349e47372
Add support for MiScale V2 (#96807)
* Add support for MiScale V2

* Add icon to impedance

* Reduce mass sensors
2023-07-20 10:01:19 +02:00
Joakim Plate 1c19c54e38
Avoid accessing coordinator in gardena_bluetooth tests (#96921)
Avoid accessing coordinator in tests
2023-07-20 08:47:26 +02:00
Tim 9da155955a
Transport NSW: Set DeviceClass and StateClass (#96928)
* 2023.7.16
- Fix bug with values defaulting to "n/a" in stead of None

* 2023.7.16
- Set device class and state classes on entities

* 2023.7.16
- Set StateClass and DeviceClass directly on the entitiy

* 2023.7.16
- Fix black and ruff issues

* 2023.7.17
- Update logic catering for the 'n/a' response on an API failure
- Add testcase

* - Fix bug in formatting

* 2023.7.17
- Refacotr to consider the "n/a" response returned from the Python lib
on an error or faliure
- Remove setting of StateClass and DeviceClass as requested
- Add "n/a" test case

* 2023.7.17
- Remove unused imports

* 2023.7.18
- Apply review requested changes

* - Additional review change resolved

* Add State and Device class attributes
2023-07-20 08:35:26 +02:00
Marc Mueller 23810752ed
Fix mock assert_called_with (#96929)
* Fix mock assert_called_with

* Fix sonos test

* Revert zeroconf test changes
2023-07-20 08:31:37 +02:00
Guy Martin deafdc3005
Allow match quirk_class of custom quirks to ZHA (#93268)
* Allow matching custom quirks when self.quirk_classes might not contain the full class path but only the module and the class.

* Add test for matching custom quirk classes.
2023-07-19 16:11:05 -04:00
J. Nick Koston 29aa89bea0
Add lightweight API to get core state (#96860) 2023-07-19 20:31:48 +02:00
J. Nick Koston dae264f79e
Fix websocket_api _state_diff_event using json_encoder_default (#96905) 2023-07-19 18:22:43 +02:00
mkmer 3b501fd2d7
Add username to Reauth flow in Honeywell (#96850)
* pre-populate username/password on reauth

* Update homeassistant/components/honeywell/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Use add_suggested_value_to_schema

* Optimize code

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-07-19 15:25:10 +02:00
Erik Montnemery b53eae2846
Add WS command for changing thread channels (#94525) 2023-07-19 10:48:32 +02:00
Joakim Plate 80a7447030
Add support for buttons in gardena bluetooth (#96871)
* Add button to gardena

* Add tests for button

* Bump gardena bluetooth to 1.0.2

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-07-19 10:17:40 +02:00
J. Nick Koston 01e66d6fb2
Improve handling of unrecoverable storage corruption (#96712)
* Improve handling of unrecoverable storage corruption

fixes #96574

If something in storage gets corrupted core can boot loop
or if its integration specific, the integration will fail to
start.

We now complainly loudly in the log, move away the corrupt data
and start fresh to allow startup to proceed so the user can
get to the UI and restore from backup without having to attach
a console (or otherwise login to the OS and manually modify files).

* test for corruption

* ensure OSError is still fatal

* one more case

* create an issue for corrupt storage

* fix key

* persist

* feedback

* feedback

* better to give the full path

* tweaks

* grammar

* add time

* feedback

* adjust

* try to get issue_domain from storage key

* coverage

* tweak wording some more
2023-07-19 09:23:12 +02:00
uvjustin 3e58e1987c
Avoid infinite loop on corrupt stream recording (#96881)
* Avoid infinite loop on corrupt stream recording

* Update tests
2023-07-19 09:06:04 +02:00
Franck Nijhof f2bd122fde
Clean up conversation agent attribution (#96883)
* Clean up conversation agent attribution

* Clean up google_generative_ai_conversation as well
2023-07-19 09:03:53 +02:00
Franck Nijhof 22d0f4ff0a
Remove legacy discovery integration (#96856) 2023-07-19 07:10:07 +02:00
Joakim Plate 22fbd22943
Add more complete test coverage to gardena bluetooth (#96874)
* Add tests for switch

* Add tests for number

* Add tests for 0 sensor

* Enable coverage for gardena bluetooth
2023-07-19 00:31:01 +02:00
Joost Lekkerkerker c853010f80
Add entity translations to islamic prayer times (#95469) 2023-07-18 22:28:04 +02:00
Joost Lekkerkerker 8675bc6554
Migrate Tradfri to has entity name (#96248) 2023-07-18 20:56:50 +02:00
c0ffeeca7 ac06905b1c
Rename life to lifetime in vesync (#96844) 2023-07-18 20:36:47 +02:00
Joost Lekkerkerker 0ca4da5592
Use device class for DLink (#96567) 2023-07-18 18:51:02 +02:00
c0ffeeca7 da5455c454
Rename 'life' to 'lifetime' in Brother (#96815) 2023-07-18 17:52:40 +02:00
Paul Bottein d8c989f732
Make default theme selectable for set theme service (#96849) 2023-07-18 17:36:35 +02:00
Tim 9a8fe04907
Resolve bugs with Transport NSW (#96692)
* 2023.7.16
- Fix bug with values defaulting to "n/a" in stead of None

* 2023.7.16
- Set device class and state classes on entities

* 2023.7.16
- Set StateClass and DeviceClass directly on the entitiy

* 2023.7.16
- Fix black and ruff issues

* 2023.7.17
- Update logic catering for the 'n/a' response on an API failure
- Add testcase

* - Fix bug in formatting

* 2023.7.17
- Refacotr to consider the "n/a" response returned from the Python lib
on an error or faliure
- Remove setting of StateClass and DeviceClass as requested
- Add "n/a" test case

* 2023.7.17
- Remove unused imports

* 2023.7.18
- Apply review requested changes

* - Additional review change resolved
2023-07-18 15:12:43 +02:00
c0ffeeca7 67eeed6703
Rename homekit "Filter Life" sensor to "Filter lifetime" (#96821)
* String review: rename 'life' to 'lifetime'

- The term life, such as in 'filter life' can be ambiguous.
- Renamed to 'lifetime', as quite a few integrations use the term 'lifetime' to express this concept
- Improves consistency and should be easier to understand.

* HomeKit: adapt test case to reflect string change

* Fix test case failure caused by string rename: first step
2023-07-18 15:11:14 +02:00
Joost Lekkerkerker 0bdfb95d1d
Add entity translations to Whois (#96824)
* Add entity translations to Whois

* Fix tests
2023-07-18 15:05:55 +02:00
Jan Bouwhuis 7c22225cd1
Allow ADR 0007 compliant schema for mqtt (#94305)
* Enforce listed entities in MQTT yaml config

* Add tests for setup with listed items

* Fix test

* Remove validator add comment

* Update homeassistant/components/mqtt/__init__.py

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-07-18 14:29:45 +02:00
Andrew Sayre 4ae69787a2
Fix SmartThings Cover Set Position (for window shades) (#96612)
* Update smartthings dependencies

* Update cover to support window_shade_level
2023-07-18 14:13:31 +02:00
Erik Montnemery 5c54fa1ce1
Fix shell_command timeout test (#96834)
* Fix shell_command timeout test

* Improve test
2023-07-18 13:37:27 +02:00
Franck Nijhof b9f92b526b
Add prefix support to text selector (#96830) 2023-07-18 12:17:31 +02:00
Erik Montnemery 4ceba01ab7
Prevent creating scripts which override script services (#96828) 2023-07-18 12:10:40 +02:00
Franck Nijhof 1a9e27cdaf
Allow integrations to register custom config panels (#96245) 2023-07-18 11:35:44 +02:00
J. Nick Koston bc6a41fb94
Remove deprecated state.get_changed_since (#96579) 2023-07-18 09:42:48 +02:00
Erik Montnemery 57352578ff
Use entity registry id in zwave_js device actions (#96407) 2023-07-18 09:36:40 +02:00
Joakim Plate 878429fdec
Add binary sensor for valve connectivity for gardena bluetooth (#96810)
* Add binary_sensor to gardena

* Add tests for binary_sensor
2023-07-18 09:00:25 +02:00
Joakim Plate a9f7522857
Correct tests for gardena (#96806) 2023-07-17 19:22:48 -10:00
Mike Keesey 44aa531a51
Alexa temperature adjustment handle multiple setpoint (#95821)
* Alexa temperature adjustment handle multiple setpoint

In "auto" mode with many thermostats, the thermostats expose both an
upper and lower setpoint representing a range of temperatures. When a
temperature delta is sent from Alexa (e.g. "lower by 2 degrees), we need
to handle the case where the temperature property is not set, but
instead the upper and lower setpoint properties are set. In this case,
we adjust those properties via service call instead of the singular
value.

* Updating tests to fix coverage
2023-07-18 01:12:15 +02:00
Erik Montnemery c79fa87a7f
Fix check for HA Yellow radio in otbr config flow (#96789) 2023-07-17 22:21:52 +02:00
Erik Montnemery 49a27bb9a7
Fix otbr test (#96788) 2023-07-17 22:12:59 +02:00
Erik Montnemery 863b36c0c3
Include addon name in otbr config entry title (#96786) 2023-07-17 21:26:15 +02:00
Erik Montnemery 8559af8232
Remove extra otbr config entries (#96785) 2023-07-17 21:23:20 +02:00
Erik Montnemery 1e3fdcc4d1
Prevent otbr creating multiple config entries (#96783) 2023-07-17 21:22:50 +02:00
Joakim Plate d02bf837a6
Add some basic tests for gardena (#96777) 2023-07-17 21:13:13 +02:00
Maciej Bieniek 31dfa5561a
Add external power sensor for Shelly Plus HT (#96768)
* Add external power sensor for Plus HT

* Tests
2023-07-17 22:07:24 +03:00
Joost Lekkerkerker e99b6b2a03
Migrate VeSync to has entity name (#96772)
* Migrate VeSync to has entity name

* Fix tests
2023-07-17 17:52:53 +02:00
Joost Lekkerkerker 7ccb06ed22
Add entity translations to Twentemilieu (#96762) 2023-07-17 17:26:13 +02:00
Björn e29b6408f6
Periodically re-scan for Fronius inverters that were offline while setup (#96538) 2023-07-17 10:16:28 +02:00
Jan Bouwhuis 65ebb6a74f
Improve imap error handling for config entry (#96724)
* Improve error handling config entry

* Removed CancelledError

* Add cleanup

* Do not call protected async_set_state()
2023-07-17 09:44:47 +02:00
J. Nick Koston 3a06659120
Speed up single entity/response service calls (#96729)
* Significantly speed up single entity/response service calls

Since the majority of service calls are single entity, we can
avoid creating tasks in this case. Since the multi-entity
service calls always check the result and raise, we can switch
the asyncio.wait to asyncio.gather

* Significantly speed up single entity/response service calls

Since the majority of service calls are single entity, we can
avoid creating tasks in this case. Since the multi-entity
service calls always check the result and raise, we can switch
the asyncio.wait to asyncio.gather

* revert

* cannot be inside pytest.raises

* one more

* Update homeassistant/helpers/service.py
2023-07-17 09:33:13 +02:00
Maximilian c76fac0633
Bump pynina to 0.3.1 (#96693) 2023-07-17 09:27:01 +02:00
Robert Hafner 33d2dd3797
Airvisual Pro Outside Station Support (#96618)
* Airvisual Pro Outside Station Support

* pr feedback

* formatting, language

* Update homeassistant/components/airvisual_pro/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* fix assertion on airvisual test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-07-17 00:44:03 +02:00
Joost Lekkerkerker 28540b0cb2
Migrate google assistant to has entity name (#96593)
* Migrate google assistant to has entity name

* Fix tests

* Add device name

* Update homeassistant/components/google_assistant/button.py

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

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2023-07-16 17:39:27 +02:00
J. Nick Koston 7ec506907c
Ensure async_get_system_info does not fail if supervisor is unavailable (#96492)
* Ensure async_get_system_info does not fail if supervisor is unavailable

fixes #96470

* fix i/o in the event loop

* fix tests

* handle some more failure cases

* more I/O here

* coverage

* coverage

* Update homeassistant/helpers/system_info.py

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

* remove supervisor detection fallback

* Update tests/helpers/test_system_info.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-07-16 11:10:07 -04:00
J. Nick Koston 4d3e24465c
Bump bthome-ble to 3.0.0 (#96616) 2023-07-15 21:47:09 -10:00
Dennis edcae75812
Add UV Index and UV Health Concern sensors to tomorrow.io (#96534) 2023-07-15 14:58:40 -04:00
J. Nick Koston 62c5194bc8
Avoid compressing binary images on ingress (#96581) 2023-07-15 00:09:25 -10:00