From 48a690b2677f3762d87bedea7cd4ed6670477789 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 5 Jun 2026 08:12:22 +0200 Subject: [PATCH 1/4] Derive zone entity state from person `in_zones` state attribute (#172942) --- homeassistant/components/zone/__init__.py | 21 +++++++------------ tests/components/zone/test_init.py | 7 +++++-- .../helpers/template/extensions/test_state.py | 2 ++ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/homeassistant/components/zone/__init__.py b/homeassistant/components/zone/__init__.py index 92cbfe54b8bb54..f827b4aaf8eb35 100644 --- a/homeassistant/components/zone/__init__.py +++ b/homeassistant/components/zone/__init__.py @@ -22,10 +22,7 @@ CONF_RADIUS, EVENT_CORE_CONFIG_UPDATE, SERVICE_RELOAD, - STATE_HOME, - STATE_NOT_HOME, STATE_UNAVAILABLE, - STATE_UNKNOWN, ) from homeassistant.core import ( Event, @@ -432,7 +429,6 @@ def _set_attrs_from_config(self) -> None: config = self._config name: str = config[CONF_NAME] self._attr_name = name - self._case_folded_name = name.casefold() self._attr_unique_id = config.get(CONF_ID) self._attr_icon = config.get(CONF_ICON) @@ -514,16 +510,13 @@ def _generate_attrs(self) -> None: @callback def _state_is_in_zone(self, state: State | None) -> bool: """Return if given state is in zone.""" + + from homeassistant.components.device_tracker import ( # noqa: PLC0415 + ATTR_IN_ZONES, + ) + return ( state is not None - and state.state - not in ( - STATE_NOT_HOME, - STATE_UNKNOWN, - STATE_UNAVAILABLE, - ) - and ( - state.state.casefold() == self._case_folded_name - or (state.state == STATE_HOME and self.entity_id == ENTITY_ID_HOME) - ) + and ATTR_IN_ZONES in state.attributes + and self.entity_id in state.attributes[ATTR_IN_ZONES] ) diff --git a/tests/components/zone/test_init.py b/tests/components/zone/test_init.py index c3f34a891cb324..9e63bae70d0fe3 100644 --- a/tests/components/zone/test_init.py +++ b/tests/components/zone/test_init.py @@ -883,8 +883,11 @@ async def test_state(hass: HomeAssistant) -> None: state = hass.states.get("zone.test_zone") assert state - assert state.state == "1" - assert state.attributes[ATTR_PERSONS] == ["person.person2"] + assert state.state == "2" + assert sorted(state.attributes[ATTR_PERSONS]) == [ + "person.person1", + "person.person2", + ] state = hass.states.get("zone.home") assert state diff --git a/tests/helpers/template/extensions/test_state.py b/tests/helpers/template/extensions/test_state.py index 3648baed063568..7ca099dff527e5 100644 --- a/tests/helpers/template/extensions/test_state.py +++ b/tests/helpers/template/extensions/test_state.py @@ -880,6 +880,7 @@ async def test_expand(hass: HomeAssistant) -> None: hass.states.async_set( "person.person1", "test", + {"in_zones": ["zone.test"]}, ) await hass.async_block_till_done() @@ -900,6 +901,7 @@ async def test_expand(hass: HomeAssistant) -> None: hass.states.async_set( "person.person2", "test", + {"in_zones": ["zone.test"]}, ) await hass.async_block_till_done() From eea3d9d4c4a61f0dd50438c210f961f64c71c0c8 Mon Sep 17 00:00:00 2001 From: BrettLynch123 <34538435+BrettLynch123@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:29:13 +1000 Subject: [PATCH 2/4] Bump tesla-powerwall to 0.5.3 (#173058) --- homeassistant/components/powerwall/manifest.json | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/powerwall/manifest.json b/homeassistant/components/powerwall/manifest.json index 928e9797ec3822..097fb7b411fa79 100644 --- a/homeassistant/components/powerwall/manifest.json +++ b/homeassistant/components/powerwall/manifest.json @@ -15,5 +15,5 @@ "integration_type": "device", "iot_class": "local_polling", "loggers": ["tesla_powerwall"], - "requirements": ["tesla-powerwall==0.5.2"] + "requirements": ["tesla-powerwall==0.5.3"] } diff --git a/requirements_all.txt b/requirements_all.txt index 18b9f40543f69f..e8dd53a4b56ae3 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -3153,7 +3153,7 @@ temperusb==1.6.1 tesla-fleet-api==1.4.7 # homeassistant.components.powerwall -tesla-powerwall==0.5.2 +tesla-powerwall==0.5.3 # homeassistant.components.tesla_wall_connector tesla-wall-connector==1.1.0 From d0d85d884496f83459013d1a0d7a2ee2226b1d4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 09:48:36 +0200 Subject: [PATCH 3/4] Update ruff (#173059) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- pyproject.toml | 2 +- requirements_test_pre_commit.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 09f9b860682195..2ad9491c4d634c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.14 + rev: v0.15.15 hooks: - id: ruff-check args: diff --git a/pyproject.toml b/pyproject.toml index d42943fa311258..cb18f8e270cdbb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -648,7 +648,7 @@ exclude_lines = [ ] [tool.ruff] -required-version = ">=0.15.14" +required-version = ">=0.15.15" [tool.ruff.lint] select = [ diff --git a/requirements_test_pre_commit.txt b/requirements_test_pre_commit.txt index b225f21b4dcc2f..10cd0b7063ef08 100644 --- a/requirements_test_pre_commit.txt +++ b/requirements_test_pre_commit.txt @@ -1,6 +1,6 @@ # Automatically generated from .pre-commit-config.yaml by gen_requirements_all.py, do not edit codespell==2.4.2 -ruff==0.15.14 +ruff==0.15.15 yamllint==1.38.0 zizmor==1.24.1 From 2b0d14d71ef81e4dda581ade9230069196bb65be Mon Sep 17 00:00:00 2001 From: "A. Gideonse" Date: Fri, 5 Jun 2026 10:57:08 +0200 Subject: [PATCH 4/4] Bump api-indevolt to 1.8.5 (#173078) --- homeassistant/components/indevolt/manifest.json | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/indevolt/manifest.json b/homeassistant/components/indevolt/manifest.json index c0e12f4d4c65dd..f53cef6d414a25 100644 --- a/homeassistant/components/indevolt/manifest.json +++ b/homeassistant/components/indevolt/manifest.json @@ -8,6 +8,6 @@ "integration_type": "device", "iot_class": "local_polling", "quality_scale": "platinum", - "requirements": ["indevolt-api==1.8.3"], + "requirements": ["indevolt-api==1.8.5"], "zeroconf": [{ "name": "igen_fw*", "type": "_http._tcp.local." }] } diff --git a/requirements_all.txt b/requirements_all.txt index e8dd53a4b56ae3..18bebd84990a1e 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1353,7 +1353,7 @@ imgw_pib==2.2.2 incomfort-client==0.7.0 # homeassistant.components.indevolt -indevolt-api==1.8.3 +indevolt-api==1.8.5 # homeassistant.components.influxdb influxdb-client==1.50.0