mirror of
https://github.com/home-assistant/core.git
synced 2025-09-03 03:41:40 +02:00
Fix targets key
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
|
||||
|
@@ -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",
|
||||
|
Reference in New Issue
Block a user