From ed9503324d9d255e6fb077f1614fb6d55800f389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Tue, 17 Jun 2025 17:18:48 +0100 Subject: [PATCH 1/9] Fix flaky Reolink webhook test (#147036) --- tests/components/reolink/test_host.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/components/reolink/test_host.py b/tests/components/reolink/test_host.py index c777e4064f0ed..3c2f434ccc77a 100644 --- a/tests/components/reolink/test_host.py +++ b/tests/components/reolink/test_host.py @@ -118,6 +118,7 @@ async def test_webhook_callback( reolink_connect.motion_detected.return_value = True reolink_connect.ONVIF_event_callback.return_value = None await client.post(f"/api/webhook/{webhook_id}") + await hass.async_block_till_done() signal_all.assert_called_once() assert hass.states.get(entity_id).state == STATE_ON @@ -129,6 +130,7 @@ async def test_webhook_callback( signal_all.reset_mock() reolink_connect.get_motion_state_all_ch.return_value = False await client.post(f"/api/webhook/{webhook_id}") + await hass.async_block_till_done() signal_all.assert_not_called() assert hass.states.get(entity_id).state == STATE_ON @@ -137,6 +139,7 @@ async def test_webhook_callback( reolink_connect.motion_detected.return_value = False reolink_connect.ONVIF_event_callback.return_value = [0] await client.post(f"/api/webhook/{webhook_id}", data="test_data") + await hass.async_block_till_done() signal_ch.assert_called_once() assert hass.states.get(entity_id).state == STATE_OFF @@ -144,6 +147,7 @@ async def test_webhook_callback( signal_ch.reset_mock() reolink_connect.ONVIF_event_callback.side_effect = Exception("Test error") await client.post(f"/api/webhook/{webhook_id}", data="test_data") + await hass.async_block_till_done() signal_ch.assert_not_called() # test failure to read date from webhook post From e69b38ab2cd14378a434574dda7a52394d45adf7 Mon Sep 17 00:00:00 2001 From: Josef Zweck Date: Tue, 17 Jun 2025 19:57:52 +0200 Subject: [PATCH 2/9] Fix log in onedrive (#147029) --- homeassistant/components/onedrive/coordinator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/onedrive/coordinator.py b/homeassistant/components/onedrive/coordinator.py index ff05b19f84d27..07a8dbd203bfa 100644 --- a/homeassistant/components/onedrive/coordinator.py +++ b/homeassistant/components/onedrive/coordinator.py @@ -66,7 +66,7 @@ async def _async_update_data(self) -> Drive: translation_domain=DOMAIN, translation_key="authentication_failed" ) from err except OneDriveException as err: - _LOGGER.debug("Failed to fetch drive data: %s") + _LOGGER.debug("Failed to fetch drive data: %s", err, exc_info=True) raise UpdateFailed( translation_domain=DOMAIN, translation_key="update_failed" ) from err From 3bc68941e679a3fe60c18a77f7614355c27aadef Mon Sep 17 00:00:00 2001 From: G Johansson Date: Tue, 17 Jun 2025 20:43:16 +0200 Subject: [PATCH 3/9] Remove not used constant in climate (#147041) --- homeassistant/components/climate/__init__.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py index 59749cd58ee82..790579d6a73ae 100644 --- a/homeassistant/components/climate/__init__.py +++ b/homeassistant/components/climate/__init__.py @@ -105,11 +105,6 @@ CONVERTIBLE_ATTRIBUTE = [ATTR_TEMPERATURE, ATTR_TARGET_TEMP_LOW, ATTR_TARGET_TEMP_HIGH] -# Can be removed in 2025.1 after deprecation period of the new feature flags -CHECK_TURN_ON_OFF_FEATURE_FLAG = ( - ClimateEntityFeature.TURN_ON | ClimateEntityFeature.TURN_OFF -) - SET_TEMPERATURE_SCHEMA = vol.All( cv.has_at_least_one_key( ATTR_TEMPERATURE, ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW From 8e82e3aa3a6198d506b3d4455936a7e875242f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Diego=20Rodr=C3=ADguez=20Royo?= Date: Tue, 17 Jun 2025 20:48:09 +0200 Subject: [PATCH 4/9] Bump aiohomeconnect to 0.18.0 (#147044) --- homeassistant/components/home_connect/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/home_connect/manifest.json b/homeassistant/components/home_connect/manifest.json index d4b37552fb7b5..34a3b7561198c 100644 --- a/homeassistant/components/home_connect/manifest.json +++ b/homeassistant/components/home_connect/manifest.json @@ -21,6 +21,6 @@ "documentation": "https://www.home-assistant.io/integrations/home_connect", "iot_class": "cloud_push", "loggers": ["aiohomeconnect"], - "requirements": ["aiohomeconnect==0.17.1"], + "requirements": ["aiohomeconnect==0.18.0"], "zeroconf": ["_homeconnect._tcp.local."] } diff --git a/requirements_all.txt b/requirements_all.txt index 7eddc5762a290..fa2ead403ff9f 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -265,7 +265,7 @@ aioharmony==0.5.2 aiohasupervisor==0.3.1 # homeassistant.components.home_connect -aiohomeconnect==0.17.1 +aiohomeconnect==0.18.0 # homeassistant.components.homekit_controller aiohomekit==3.2.15 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 4e9155baeec87..e3dc57d3d60e6 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -250,7 +250,7 @@ aioharmony==0.5.2 aiohasupervisor==0.3.1 # homeassistant.components.home_connect -aiohomeconnect==0.17.1 +aiohomeconnect==0.18.0 # homeassistant.components.homekit_controller aiohomekit==3.2.15 From fc6844b3c90e6adca44057a787893625fc725381 Mon Sep 17 00:00:00 2001 From: Guido Schmitz Date: Tue, 17 Jun 2025 20:49:52 +0200 Subject: [PATCH 5/9] Add _attr_has_entity_name to devolo Home Network device tracker platform (#146978) * Add _attr_has_entity_name to devolo Home Network device tracker platform * Set name * Fix tests --- .../devolo_home_network/device_tracker.py | 2 ++ .../snapshots/test_device_tracker.ambr | 3 ++- .../devolo_home_network/test_device_tracker.py | 13 ++++--------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/devolo_home_network/device_tracker.py b/homeassistant/components/devolo_home_network/device_tracker.py index 15ff0e5ac2a88..ad3d3e1cffa3c 100644 --- a/homeassistant/components/devolo_home_network/device_tracker.py +++ b/homeassistant/components/devolo_home_network/device_tracker.py @@ -87,6 +87,7 @@ class DevoloScannerEntity( # pylint: disable=hass-enforce-class-module ): """Representation of a devolo device tracker.""" + _attr_has_entity_name = True _attr_translation_key = "device_tracker" def __init__( @@ -99,6 +100,7 @@ def __init__( super().__init__(coordinator) self._device = device self._attr_mac_address = mac + self._attr_name = mac @property def extra_state_attributes(self) -> dict[str, str]: diff --git a/tests/components/devolo_home_network/snapshots/test_device_tracker.ambr b/tests/components/devolo_home_network/snapshots/test_device_tracker.ambr index 950aff8775246..9011439c42b26 100644 --- a/tests/components/devolo_home_network/snapshots/test_device_tracker.ambr +++ b/tests/components/devolo_home_network/snapshots/test_device_tracker.ambr @@ -3,12 +3,13 @@ StateSnapshot({ 'attributes': ReadOnlyDict({ 'band': '5 GHz', + 'friendly_name': 'AA:BB:CC:DD:EE:FF', 'mac': 'AA:BB:CC:DD:EE:FF', 'source_type': , 'wifi': 'Main', }), 'context': , - 'entity_id': 'device_tracker.devolo_home_network_1234567890_aa_bb_cc_dd_ee_ff', + 'entity_id': 'device_tracker.aa_bb_cc_dd_ee_ff', 'last_changed': , 'last_reported': , 'last_updated': , diff --git a/tests/components/devolo_home_network/test_device_tracker.py b/tests/components/devolo_home_network/test_device_tracker.py index 2af6a1e3759b9..cb92b8bc3d90b 100644 --- a/tests/components/devolo_home_network/test_device_tracker.py +++ b/tests/components/devolo_home_network/test_device_tracker.py @@ -17,13 +17,12 @@ from homeassistant.helpers import entity_registry as er from . import configure_integration -from .const import CONNECTED_STATIONS, DISCOVERY_INFO, NO_CONNECTED_STATIONS +from .const import CONNECTED_STATIONS, NO_CONNECTED_STATIONS from .mock import MockDevice from tests.common import async_fire_time_changed STATION = CONNECTED_STATIONS[0] -SERIAL = DISCOVERY_INFO.properties["SN"] @pytest.mark.usefixtures("entity_registry_enabled_by_default") @@ -35,9 +34,7 @@ async def test_device_tracker( snapshot: SnapshotAssertion, ) -> None: """Test device tracker states.""" - state_key = ( - f"{PLATFORM}.{DOMAIN}_{SERIAL}_{STATION.mac_address.lower().replace(':', '_')}" - ) + state_key = f"{PLATFORM}.{STATION.mac_address.lower().replace(':', '_')}" entry = configure_integration(hass) await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() @@ -77,14 +74,12 @@ async def test_restoring_clients( entity_registry: er.EntityRegistry, ) -> None: """Test restoring existing device_tracker entities.""" - state_key = ( - f"{PLATFORM}.{DOMAIN}_{SERIAL}_{STATION.mac_address.lower().replace(':', '_')}" - ) + state_key = f"{PLATFORM}.{STATION.mac_address.lower().replace(':', '_')}" entry = configure_integration(hass) entity_registry.async_get_or_create( PLATFORM, DOMAIN, - f"{SERIAL}_{STATION.mac_address}", + f"{STATION.mac_address}", config_entry=entry, ) From ce1678719a102f0a16f6f5240064b8c764525d92 Mon Sep 17 00:00:00 2001 From: Josef Zweck Date: Tue, 17 Jun 2025 20:59:41 +0200 Subject: [PATCH 6/9] Bump pylamarzocco to 2.0.9 (#147046) --- homeassistant/components/lamarzocco/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/lamarzocco/manifest.json b/homeassistant/components/lamarzocco/manifest.json index 46a2942726478..7fdafc4dda17f 100644 --- a/homeassistant/components/lamarzocco/manifest.json +++ b/homeassistant/components/lamarzocco/manifest.json @@ -37,5 +37,5 @@ "iot_class": "cloud_push", "loggers": ["pylamarzocco"], "quality_scale": "platinum", - "requirements": ["pylamarzocco==2.0.8"] + "requirements": ["pylamarzocco==2.0.9"] } diff --git a/requirements_all.txt b/requirements_all.txt index fa2ead403ff9f..bb498ac523a2b 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2096,7 +2096,7 @@ pykwb==0.0.8 pylacrosse==0.4 # homeassistant.components.lamarzocco -pylamarzocco==2.0.8 +pylamarzocco==2.0.9 # homeassistant.components.lastfm pylast==5.1.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index e3dc57d3d60e6..06b9e35e8d4e6 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1738,7 +1738,7 @@ pykrakenapi==0.1.8 pykulersky==0.5.8 # homeassistant.components.lamarzocco -pylamarzocco==2.0.8 +pylamarzocco==2.0.9 # homeassistant.components.lastfm pylast==5.1.0 From 81257f9d579ba3c1ef86b09e2ad435e93f8b346e Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Tue, 17 Jun 2025 15:06:53 -0400 Subject: [PATCH 7/9] Bump ZHA to 0.0.60 (#147045) --- homeassistant/components/zha/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/zha/manifest.json b/homeassistant/components/zha/manifest.json index 4a5ec7be1dc75..4908298847b11 100644 --- a/homeassistant/components/zha/manifest.json +++ b/homeassistant/components/zha/manifest.json @@ -21,7 +21,7 @@ "zha", "universal_silabs_flasher" ], - "requirements": ["zha==0.0.59"], + "requirements": ["zha==0.0.60"], "usb": [ { "vid": "10C4", diff --git a/requirements_all.txt b/requirements_all.txt index bb498ac523a2b..5a5547d58606f 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -3180,7 +3180,7 @@ zeroconf==0.147.0 zeversolar==0.3.2 # homeassistant.components.zha -zha==0.0.59 +zha==0.0.60 # homeassistant.components.zhong_hong zhong-hong-hvac==1.0.13 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 06b9e35e8d4e6..46974b17ba0d3 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -2621,7 +2621,7 @@ zeroconf==0.147.0 zeversolar==0.3.2 # homeassistant.components.zha -zha==0.0.59 +zha==0.0.60 # homeassistant.components.zwave_js zwave-js-server-python==0.63.0 From 5e31b5ac4f852798ffabdc2ec8fe320ea75ba71a Mon Sep 17 00:00:00 2001 From: Josef Zweck Date: Tue, 17 Jun 2025 21:25:27 +0200 Subject: [PATCH 8/9] Handle missing widget in lamarzocco (#147047) --- homeassistant/components/lamarzocco/number.py | 6 +++++- homeassistant/components/lamarzocco/sensor.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/lamarzocco/number.py b/homeassistant/components/lamarzocco/number.py index 980a08c09ae64..f8cb8b1d6feb1 100644 --- a/homeassistant/components/lamarzocco/number.py +++ b/homeassistant/components/lamarzocco/number.py @@ -58,6 +58,10 @@ class LaMarzoccoNumberEntityDescription( CoffeeBoiler, machine.dashboard.config[WidgetType.CM_COFFEE_BOILER] ).target_temperature ), + available_fn=( + lambda coordinator: WidgetType.CM_COFFEE_BOILER + in coordinator.device.dashboard.config + ), ), LaMarzoccoNumberEntityDescription( key="smart_standby_time", @@ -221,7 +225,7 @@ class LaMarzoccoNumberEntity(LaMarzoccoEntity, NumberEntity): entity_description: LaMarzoccoNumberEntityDescription @property - def native_value(self) -> float: + def native_value(self) -> float | int: """Return the current value.""" return self.entity_description.native_value_fn(self.coordinator.device) diff --git a/homeassistant/components/lamarzocco/sensor.py b/homeassistant/components/lamarzocco/sensor.py index 29f1c6209ecdf..c76f51c348838 100644 --- a/homeassistant/components/lamarzocco/sensor.py +++ b/homeassistant/components/lamarzocco/sensor.py @@ -57,6 +57,10 @@ class LaMarzoccoSensorEntityDescription( ).ready_start_time ), entity_category=EntityCategory.DIAGNOSTIC, + available_fn=( + lambda coordinator: WidgetType.CM_COFFEE_BOILER + in coordinator.device.dashboard.config + ), ), LaMarzoccoSensorEntityDescription( key="steam_boiler_ready_time", From ffd940e07c5fd43ba9e3a82070bc11f6a483ef0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Diego=20Rodr=C3=ADguez=20Royo?= Date: Tue, 17 Jun 2025 22:42:40 +0200 Subject: [PATCH 9/9] Set quality scale at Home Connect manifest (#147050) --- homeassistant/components/home_connect/manifest.json | 1 + script/hassfest/quality_scale.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/home_connect/manifest.json b/homeassistant/components/home_connect/manifest.json index 34a3b7561198c..5e296ba18ac74 100644 --- a/homeassistant/components/home_connect/manifest.json +++ b/homeassistant/components/home_connect/manifest.json @@ -21,6 +21,7 @@ "documentation": "https://www.home-assistant.io/integrations/home_connect", "iot_class": "cloud_push", "loggers": ["aiohomeconnect"], + "quality_scale": "platinum", "requirements": ["aiohomeconnect==0.18.0"], "zeroconf": ["_homeconnect._tcp.local."] } diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index f4283f14ec340..52e5f9351176c 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -1527,7 +1527,6 @@ class Rule: "hko", "hlk_sw16", "holiday", - "home_connect", "homekit", "homekit_controller", "homematic",