diff --git a/homeassistant/components/lawn_mower/icons.json b/homeassistant/components/lawn_mower/icons.json index 2a3ab0383b1..1602bff56d6 100644 --- a/homeassistant/components/lawn_mower/icons.json +++ b/homeassistant/components/lawn_mower/icons.json @@ -44,6 +44,9 @@ }, "started_mowing": { "trigger": "mdi:play" + }, + "started_returning": { + "trigger": "mdi:home-import-outline" } } } diff --git a/homeassistant/components/lawn_mower/strings.json b/homeassistant/components/lawn_mower/strings.json index 35cf8f5d161..0ca9ace458e 100644 --- a/homeassistant/components/lawn_mower/strings.json +++ b/homeassistant/components/lawn_mower/strings.json @@ -139,6 +139,16 @@ } }, "name": "Lawn mower started mowing" + }, + "started_returning": { + "description": "Triggers after one or more lawn mowers start returning to dock.", + "fields": { + "behavior": { + "description": "[%key:component::lawn_mower::common::trigger_behavior_description%]", + "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + } + }, + "name": "Lawn mower started returning to dock" } } } diff --git a/homeassistant/components/lawn_mower/trigger.py b/homeassistant/components/lawn_mower/trigger.py index 7bfcf0ea31e..35e09f7175e 100644 --- a/homeassistant/components/lawn_mower/trigger.py +++ b/homeassistant/components/lawn_mower/trigger.py @@ -12,6 +12,9 @@ TRIGGERS: dict[str, type[Trigger]] = { "started_mowing": make_entity_target_state_trigger( DOMAIN, LawnMowerActivity.MOWING ), + "started_returning": make_entity_target_state_trigger( + DOMAIN, LawnMowerActivity.RETURNING + ), } diff --git a/homeassistant/components/lawn_mower/triggers.yaml b/homeassistant/components/lawn_mower/triggers.yaml index dc076f361ce..bc3cb321cf8 100644 --- a/homeassistant/components/lawn_mower/triggers.yaml +++ b/homeassistant/components/lawn_mower/triggers.yaml @@ -18,3 +18,4 @@ docked: *trigger_common errored: *trigger_common paused_mowing: *trigger_common started_mowing: *trigger_common +started_returning: *trigger_common diff --git a/tests/components/lawn_mower/test_trigger.py b/tests/components/lawn_mower/test_trigger.py index cb51c8529e4..1d59e789919 100644 --- a/tests/components/lawn_mower/test_trigger.py +++ b/tests/components/lawn_mower/test_trigger.py @@ -32,6 +32,7 @@ async def target_lawn_mowers(hass: HomeAssistant) -> list[str]: "lawn_mower.errored", "lawn_mower.paused_mowing", "lawn_mower.started_mowing", + "lawn_mower.started_returning", ], ) async def test_lawn_mower_triggers_gated_by_labs_flag( @@ -75,6 +76,11 @@ async def test_lawn_mower_triggers_gated_by_labs_flag( target_states=[LawnMowerActivity.MOWING], other_states=other_states(LawnMowerActivity.MOWING), ), + *parametrize_trigger_states( + trigger="lawn_mower.started_returning", + target_states=[LawnMowerActivity.RETURNING], + other_states=other_states(LawnMowerActivity.RETURNING), + ), ], ) async def test_lawn_mower_state_trigger_behavior_any( @@ -143,6 +149,11 @@ async def test_lawn_mower_state_trigger_behavior_any( target_states=[LawnMowerActivity.MOWING], other_states=other_states(LawnMowerActivity.MOWING), ), + *parametrize_trigger_states( + trigger="lawn_mower.started_returning", + target_states=[LawnMowerActivity.RETURNING], + other_states=other_states(LawnMowerActivity.RETURNING), + ), ], ) async def test_lawn_mower_state_trigger_behavior_first( @@ -210,6 +221,11 @@ async def test_lawn_mower_state_trigger_behavior_first( target_states=[LawnMowerActivity.MOWING], other_states=other_states(LawnMowerActivity.MOWING), ), + *parametrize_trigger_states( + trigger="lawn_mower.started_returning", + target_states=[LawnMowerActivity.RETURNING], + other_states=other_states(LawnMowerActivity.RETURNING), + ), ], ) async def test_lawn_mower_state_trigger_behavior_last(