Fix targets key

This commit is contained in:
abmantis
2025-08-07 17:00:52 +01:00
parent 29fd422b18
commit 789e5daf6b
2 changed files with 11 additions and 8 deletions

View File

@@ -8,6 +8,7 @@ from homeassistant.const import (
ATTR_ENTITY_ID,
CONF_PLATFORM,
CONF_STATE,
CONF_TARGET,
STATE_OFF,
STATE_ON,
)
@@ -42,10 +43,9 @@ STATE_TRIGGER_SCHEMA = vol.All(
vol.Required(ATTR_BEHAVIOR, default=BEHAVIOR_ANY): vol.In(
[BEHAVIOR_FIRST, BEHAVIOR_LAST, BEHAVIOR_ANY]
),
**cv.ENTITY_SERVICE_FIELDS,
vol.Required(CONF_TARGET): cv.ENTITY_SERVICE_FIELDS,
},
),
cv.has_at_least_one_key(*cv.ENTITY_SERVICE_FIELDS),
)
)
@@ -73,7 +73,6 @@ class StateTrigger(Trigger):
job = HassJob(action, f"light state trigger {trigger_info}")
trigger_data = trigger_info["trigger_data"]
behavior = self.config.get(ATTR_BEHAVIOR)
match_config_state = process_state_match(self.config.get(CONF_STATE))
def check_all_match(entity_ids: set[str]) -> bool:
@@ -95,6 +94,8 @@ class StateTrigger(Trigger):
== 1
)
behavior = self.config.get(ATTR_BEHAVIOR)
@callback
def state_change_listener(
target_state_change_data: TargetStateChangedData,
@@ -144,8 +145,9 @@ class StateTrigger(Trigger):
if split_entity_id(entity_id)[0] == DOMAIN
}
target_config = self.config.get(CONF_TARGET, {})
return async_track_target_selector_state_change_event(
self.hass, self.config, state_change_listener, entity_filter
self.hass, target_config, state_change_listener, entity_filter
)

View File

@@ -11,6 +11,7 @@ from homeassistant.const import (
CONF_ENTITY_ID,
CONF_PLATFORM,
CONF_STATE,
CONF_TARGET,
STATE_OFF,
STATE_ON,
)
@@ -125,7 +126,7 @@ async def test_light_state_trigger_behavior_any(
"trigger": {
CONF_PLATFORM: "light.state",
CONF_STATE: state,
**trigger_target_config,
CONF_TARGET: {**trigger_target_config},
},
"action": {
"service": "test.automation",
@@ -185,7 +186,7 @@ async def test_light_state_trigger_behavior_first(
CONF_PLATFORM: "light.state",
CONF_STATE: state,
"behavior": "first",
**trigger_target_config,
CONF_TARGET: {**trigger_target_config},
},
"action": {
"service": "test.automation",
@@ -254,7 +255,7 @@ async def test_light_state_trigger_behavior_last(
CONF_PLATFORM: "light.state",
CONF_STATE: state,
"behavior": "last",
**trigger_target_config,
CONF_TARGET: {**trigger_target_config},
},
"action": {
"service": "test.automation",