mirror of
https://github.com/home-assistant/core.git
synced 2025-09-04 20:31:36 +02:00
Fix targets key
This commit is contained in:
@@ -8,6 +8,7 @@ from homeassistant.const import (
|
|||||||
ATTR_ENTITY_ID,
|
ATTR_ENTITY_ID,
|
||||||
CONF_PLATFORM,
|
CONF_PLATFORM,
|
||||||
CONF_STATE,
|
CONF_STATE,
|
||||||
|
CONF_TARGET,
|
||||||
STATE_OFF,
|
STATE_OFF,
|
||||||
STATE_ON,
|
STATE_ON,
|
||||||
)
|
)
|
||||||
@@ -42,10 +43,9 @@ STATE_TRIGGER_SCHEMA = vol.All(
|
|||||||
vol.Required(ATTR_BEHAVIOR, default=BEHAVIOR_ANY): vol.In(
|
vol.Required(ATTR_BEHAVIOR, default=BEHAVIOR_ANY): vol.In(
|
||||||
[BEHAVIOR_FIRST, BEHAVIOR_LAST, BEHAVIOR_ANY]
|
[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}")
|
job = HassJob(action, f"light state trigger {trigger_info}")
|
||||||
trigger_data = trigger_info["trigger_data"]
|
trigger_data = trigger_info["trigger_data"]
|
||||||
|
|
||||||
behavior = self.config.get(ATTR_BEHAVIOR)
|
|
||||||
match_config_state = process_state_match(self.config.get(CONF_STATE))
|
match_config_state = process_state_match(self.config.get(CONF_STATE))
|
||||||
|
|
||||||
def check_all_match(entity_ids: set[str]) -> bool:
|
def check_all_match(entity_ids: set[str]) -> bool:
|
||||||
@@ -95,6 +94,8 @@ class StateTrigger(Trigger):
|
|||||||
== 1
|
== 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
behavior = self.config.get(ATTR_BEHAVIOR)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def state_change_listener(
|
def state_change_listener(
|
||||||
target_state_change_data: TargetStateChangedData,
|
target_state_change_data: TargetStateChangedData,
|
||||||
@@ -144,8 +145,9 @@ class StateTrigger(Trigger):
|
|||||||
if split_entity_id(entity_id)[0] == DOMAIN
|
if split_entity_id(entity_id)[0] == DOMAIN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
target_config = self.config.get(CONF_TARGET, {})
|
||||||
return async_track_target_selector_state_change_event(
|
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_ENTITY_ID,
|
||||||
CONF_PLATFORM,
|
CONF_PLATFORM,
|
||||||
CONF_STATE,
|
CONF_STATE,
|
||||||
|
CONF_TARGET,
|
||||||
STATE_OFF,
|
STATE_OFF,
|
||||||
STATE_ON,
|
STATE_ON,
|
||||||
)
|
)
|
||||||
@@ -125,7 +126,7 @@ async def test_light_state_trigger_behavior_any(
|
|||||||
"trigger": {
|
"trigger": {
|
||||||
CONF_PLATFORM: "light.state",
|
CONF_PLATFORM: "light.state",
|
||||||
CONF_STATE: state,
|
CONF_STATE: state,
|
||||||
**trigger_target_config,
|
CONF_TARGET: {**trigger_target_config},
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"service": "test.automation",
|
"service": "test.automation",
|
||||||
@@ -185,7 +186,7 @@ async def test_light_state_trigger_behavior_first(
|
|||||||
CONF_PLATFORM: "light.state",
|
CONF_PLATFORM: "light.state",
|
||||||
CONF_STATE: state,
|
CONF_STATE: state,
|
||||||
"behavior": "first",
|
"behavior": "first",
|
||||||
**trigger_target_config,
|
CONF_TARGET: {**trigger_target_config},
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"service": "test.automation",
|
"service": "test.automation",
|
||||||
@@ -254,7 +255,7 @@ async def test_light_state_trigger_behavior_last(
|
|||||||
CONF_PLATFORM: "light.state",
|
CONF_PLATFORM: "light.state",
|
||||||
CONF_STATE: state,
|
CONF_STATE: state,
|
||||||
"behavior": "last",
|
"behavior": "last",
|
||||||
**trigger_target_config,
|
CONF_TARGET: {**trigger_target_config},
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"service": "test.automation",
|
"service": "test.automation",
|
||||||
|
Reference in New Issue
Block a user