From acd9f1fdce047785ac0a73e6f16253e6815e265a Mon Sep 17 00:00:00 2001 From: c0ffeeca7 Date: Tue, 2 Jun 2026 07:58:28 +0200 Subject: [PATCH 1/5] Triggers (Labs feature): update behavior naming --- source/_includes/triggers/behavior.md | 4 ++-- .../air_quality.co2_crossed_threshold.markdown | 8 ++++---- source/_triggers/air_quality.co_cleared.markdown | 6 +++--- .../air_quality.co_crossed_threshold.markdown | 8 ++++---- .../_triggers/air_quality.co_detected.markdown | 8 ++++---- .../_triggers/air_quality.gas_cleared.markdown | 6 +++--- .../_triggers/air_quality.gas_detected.markdown | 8 ++++---- .../air_quality.n2o_crossed_threshold.markdown | 8 ++++---- .../air_quality.no2_crossed_threshold.markdown | 8 ++++---- .../air_quality.no_crossed_threshold.markdown | 8 ++++---- .../air_quality.ozone_crossed_threshold.markdown | 8 ++++---- .../air_quality.pm10_crossed_threshold.markdown | 8 ++++---- .../air_quality.pm1_crossed_threshold.markdown | 8 ++++---- .../air_quality.pm25_crossed_threshold.markdown | 8 ++++---- .../air_quality.pm4_crossed_threshold.markdown | 8 ++++---- .../_triggers/air_quality.smoke_cleared.markdown | 6 +++--- .../air_quality.smoke_detected.markdown | 8 ++++---- .../air_quality.so2_crossed_threshold.markdown | 8 ++++---- .../air_quality.voc_crossed_threshold.markdown | 8 ++++---- ..._quality.voc_ratio_crossed_threshold.markdown | 8 ++++---- .../_triggers/alarm_control_panel.armed.markdown | 8 ++++---- .../alarm_control_panel.armed_away.markdown | 8 ++++---- .../alarm_control_panel.armed_home.markdown | 8 ++++---- .../alarm_control_panel.armed_night.markdown | 8 ++++---- .../alarm_control_panel.armed_vacation.markdown | 8 ++++---- .../alarm_control_panel.disarmed.markdown | 8 ++++---- .../alarm_control_panel.triggered.markdown | 8 ++++---- source/_triggers/battery.level_crossed.markdown | 8 ++++---- source/_triggers/battery.low.markdown | 8 ++++---- source/_triggers/battery.not_low.markdown | 6 +++--- .../_triggers/battery.started_charging.markdown | 6 +++--- .../_triggers/battery.stopped_charging.markdown | 6 +++--- .../_triggers/climate.hvac_mode_changed.markdown | 10 +++++----- .../_triggers/climate.started_cooling.markdown | 12 ++++++------ source/_triggers/climate.started_drying.markdown | 12 ++++++------ .../_triggers/climate.started_heating.markdown | 12 ++++++------ ...te.target_humidity_crossed_threshold.markdown | 12 ++++++------ ...target_temperature_crossed_threshold.markdown | 12 ++++++------ source/_triggers/climate.turned_off.markdown | 12 ++++++------ source/_triggers/climate.turned_on.markdown | 10 +++++----- .../_triggers/counter.maximum_reached.markdown | 4 ++-- .../_triggers/counter.minimum_reached.markdown | 4 ++-- source/_triggers/counter.reset.markdown | 4 ++-- source/_triggers/door.closed.markdown | 4 ++-- source/_triggers/door.opened.markdown | 4 ++-- source/_triggers/fan.turned_off.markdown | 10 +++++----- source/_triggers/fan.turned_on.markdown | 10 +++++----- source/_triggers/garage_door.closed.markdown | 4 ++-- source/_triggers/garage_door.opened.markdown | 4 ++-- source/_triggers/gate.closed.markdown | 4 ++-- source/_triggers/gate.opened.markdown | 4 ++-- .../_triggers/humidifier.mode_changed.markdown | 14 +++++++------- .../_triggers/humidifier.started_drying.markdown | 14 +++++++------- .../humidifier.started_humidifying.markdown | 14 +++++++------- source/_triggers/humidifier.turned_off.markdown | 16 ++++++++-------- source/_triggers/humidifier.turned_on.markdown | 14 +++++++------- .../humidity.crossed_threshold.markdown | 10 +++++----- source/_triggers/illuminance.cleared.markdown | 6 +++--- .../illuminance.crossed_threshold.markdown | 6 +++--- source/_triggers/illuminance.detected.markdown | 6 +++--- source/_triggers/lawn_mower.docked.markdown | 4 ++-- source/_triggers/lawn_mower.errored.markdown | 4 ++-- .../_triggers/lawn_mower.paused_mowing.markdown | 4 ++-- .../_triggers/lawn_mower.started_mowing.markdown | 4 ++-- .../lawn_mower.started_returning.markdown | 4 ++-- .../light.brightness_crossed_threshold.markdown | 10 +++++----- source/_triggers/light.turned_off.markdown | 10 +++++----- source/_triggers/light.turned_on.markdown | 6 +++--- source/_triggers/lock.jammed.markdown | 8 ++++---- source/_triggers/lock.locked.markdown | 8 ++++---- source/_triggers/lock.opened.markdown | 8 ++++---- source/_triggers/lock.unlocked.markdown | 8 ++++---- source/_triggers/moisture.cleared.markdown | 6 +++--- .../moisture.crossed_threshold.markdown | 8 ++++---- source/_triggers/moisture.detected.markdown | 6 +++--- source/_triggers/motion.cleared.markdown | 6 +++--- source/_triggers/motion.detected.markdown | 6 +++--- source/_triggers/siren.turned_off.markdown | 4 ++-- source/_triggers/siren.turned_on.markdown | 4 ++-- .../temperature.crossed_threshold.markdown | 6 +++--- source/_triggers/timer.cancelled.markdown | 4 ++-- source/_triggers/timer.finished.markdown | 4 ++-- source/_triggers/timer.paused.markdown | 4 ++-- source/_triggers/timer.restarted.markdown | 4 ++-- source/_triggers/timer.started.markdown | 4 ++-- .../update.update_became_available.markdown | 4 ++-- source/_triggers/vacuum.docked.markdown | 6 +++--- source/_triggers/vacuum.errored.markdown | 4 ++-- source/_triggers/vacuum.paused_cleaning.markdown | 4 ++-- .../_triggers/vacuum.started_cleaning.markdown | 4 ++-- .../_triggers/vacuum.started_returning.markdown | 4 ++-- source/_triggers/valve.closed.markdown | 6 +++--- source/_triggers/valve.opened.markdown | 6 +++--- source/_triggers/window.closed.markdown | 8 ++++---- source/_triggers/window.opened.markdown | 8 ++++---- 95 files changed, 343 insertions(+), 343 deletions(-) diff --git a/source/_includes/triggers/behavior.md b/source/_includes/triggers/behavior.md index 91d8a680f765..20c96994caaa 100644 --- a/source/_includes/triggers/behavior.md +++ b/source/_includes/triggers/behavior.md @@ -2,6 +2,6 @@ When you target more than one entity (or select an area, floor, or label that contains several), the **Trigger when** option controls how the trigger responds: -- **Each** (`any` in YAML, default): the trigger fires every time any one of the targeted entities transitions. For example, if you monitor three motion sensors in the living room and someone walks past sensor 1, the automation fires. When they walk past sensor 2 a moment later, it fires again. Every individual event counts. +- **Each** (`each` in YAML, default): the trigger fires every time any one of the targeted entities transitions. For example, if you monitor three motion sensors in the living room and someone walks past sensor 1, the automation fires. When they walk past sensor 2 a moment later, it fires again. Every individual event counts. - **First** (`first` in YAML): the trigger fires only on the first transition in the targeted group, then waits until all targeted entities have reset before it fires again. For example, if you monitor the same three motion sensors, the automation fires when the first one picks up movement (someone entered the room). The other two firing afterward are ignored, so you get one notification per "someone walked in" event instead of three. -- **All** (`last` in YAML): the trigger fires only after the last targeted entity in the group has fired, meaning all of them are now in the expected state. For example, if you monitor the lights in the living room, bedroom, and hallway, the automation fires only once all three have turned off. This is useful for scenarios like "start the robot vacuum only after every light on the floor is off," so you know the room is truly empty. +- **All** (`all` in YAML): the trigger fires only after the last targeted entity in the group has fired, meaning all of them are now in the expected state. For example, if you monitor the lights in the living room, bedroom, and hallway, the automation fires only once all three have turned off. This is useful for scenarios like "start the robot vacuum only after every light on the floor is off," so you know the room is truly empty. diff --git a/source/_triggers/air_quality.co2_crossed_threshold.markdown b/source/_triggers/air_quality.co2_crossed_threshold.markdown index 869b949038d9..15a8700e4d92 100644 --- a/source/_triggers/air_quality.co2_crossed_threshold.markdown +++ b/source/_triggers/air_quality.co2_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.bedroom_co2 options: threshold: 1000 - behavior: any + behavior: each {% endexample %} This fires whenever the bedroom CO2 sensor crosses 1,000 ppm in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.bedroom_co2 options: threshold: 1000 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_triggers/air_quality.co_cleared.markdown b/source/_triggers/air_quality.co_cleared.markdown index 13bd0a104b74..f1dd64e04efc 100644 --- a/source/_triggers/air_quality.co_cleared.markdown +++ b/source/_triggers/air_quality.co_cleared.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: label_id: co_sensors options: - behavior: last + behavior: all for: "00:15:00" actions: - action: siren.turn_off diff --git a/source/_triggers/air_quality.co_crossed_threshold.markdown b/source/_triggers/air_quality.co_crossed_threshold.markdown index 8bb0e8e1b94a..51e3434650fb 100644 --- a/source/_triggers/air_quality.co_crossed_threshold.markdown +++ b/source/_triggers/air_quality.co_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.living_room_co options: threshold: 35 - behavior: any + behavior: each {% endexample %} This fires whenever the living room CO sensor crosses 35 ppm in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -114,7 +114,7 @@ automation: | entity_id: sensor.garage_co options: threshold: 35 - behavior: any + behavior: each actions: - action: notify.send_message target: diff --git a/source/_triggers/air_quality.co_detected.markdown b/source/_triggers/air_quality.co_detected.markdown index 8cc57de59b10..4dd58595f062 100644 --- a/source/_triggers/air_quality.co_detected.markdown +++ b/source/_triggers/air_quality.co_detected.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: label_id: co_sensors options: - behavior: any + behavior: each for: "00:00:00" actions: - action: siren.turn_on @@ -137,7 +137,7 @@ automation: | target: entity_id: binary_sensor.garage_co options: - behavior: any + behavior: each for: "00:01:00" actions: - action: fan.turn_on diff --git a/source/_triggers/air_quality.gas_cleared.markdown b/source/_triggers/air_quality.gas_cleared.markdown index ff3bf263c0cc..e3b63db4a253 100644 --- a/source/_triggers/air_quality.gas_cleared.markdown +++ b/source/_triggers/air_quality.gas_cleared.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -100,7 +100,7 @@ automation: | target: label_id: gas_sensors options: - behavior: last + behavior: all for: "00:10:00" actions: - action: notify.send_message diff --git a/source/_triggers/air_quality.gas_detected.markdown b/source/_triggers/air_quality.gas_detected.markdown index 9322905f2668..f18376d73c39 100644 --- a/source/_triggers/air_quality.gas_detected.markdown +++ b/source/_triggers/air_quality.gas_detected.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -100,7 +100,7 @@ automation: | target: entity_id: binary_sensor.kitchen_gas options: - behavior: any + behavior: each for: "00:00:00" actions: - action: notify.send_message @@ -133,7 +133,7 @@ automation: | target: label_id: gas_sensors options: - behavior: any + behavior: each for: "00:00:30" actions: - action: valve.close_valve diff --git a/source/_triggers/air_quality.n2o_crossed_threshold.markdown b/source/_triggers/air_quality.n2o_crossed_threshold.markdown index 64802a300389..b11947d0419c 100644 --- a/source/_triggers/air_quality.n2o_crossed_threshold.markdown +++ b/source/_triggers/air_quality.n2o_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.greenhouse_n2o options: threshold: 350 - behavior: any + behavior: each {% endexample %} This fires whenever the greenhouse N2O sensor crosses 350 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -114,7 +114,7 @@ automation: | entity_id: sensor.greenhouse_n2o options: threshold: 350 - behavior: any + behavior: each actions: - action: notify.send_message target: diff --git a/source/_triggers/air_quality.no2_crossed_threshold.markdown b/source/_triggers/air_quality.no2_crossed_threshold.markdown index d41351dd863a..9a0b90fe6436 100644 --- a/source/_triggers/air_quality.no2_crossed_threshold.markdown +++ b/source/_triggers/air_quality.no2_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.street_side_no2 options: threshold: 40 - behavior: any + behavior: each {% endexample %} This fires whenever the street-side NO2 sensor crosses 40 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -114,7 +114,7 @@ automation: | entity_id: sensor.street_side_no2 options: threshold: 40 - behavior: any + behavior: each conditions: - condition: numeric_state entity_id: sensor.street_side_no2 diff --git a/source/_triggers/air_quality.no_crossed_threshold.markdown b/source/_triggers/air_quality.no_crossed_threshold.markdown index 6ef30a989308..d6a3bd6cb3b7 100644 --- a/source/_triggers/air_quality.no_crossed_threshold.markdown +++ b/source/_triggers/air_quality.no_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.garage_no options: threshold: 50 - behavior: any + behavior: each {% endexample %} This fires whenever the garage NO sensor crosses 50 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.garage_no options: threshold: 50 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_triggers/air_quality.ozone_crossed_threshold.markdown b/source/_triggers/air_quality.ozone_crossed_threshold.markdown index 25063dee3170..377cd5c05d92 100644 --- a/source/_triggers/air_quality.ozone_crossed_threshold.markdown +++ b/source/_triggers/air_quality.ozone_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.backyard_ozone options: threshold: 100 - behavior: any + behavior: each {% endexample %} This fires whenever the backyard ozone sensor crosses 100 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -115,7 +115,7 @@ automation: | entity_id: sensor.backyard_ozone options: threshold: 100 - behavior: any + behavior: each conditions: - condition: numeric_state entity_id: sensor.backyard_ozone diff --git a/source/_triggers/air_quality.pm10_crossed_threshold.markdown b/source/_triggers/air_quality.pm10_crossed_threshold.markdown index abba693e2b69..df8218c31afd 100644 --- a/source/_triggers/air_quality.pm10_crossed_threshold.markdown +++ b/source/_triggers/air_quality.pm10_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.patio_pm10 options: threshold: 50 - behavior: any + behavior: each {% endexample %} This fires whenever the patio PM10 sensor crosses 50 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -115,7 +115,7 @@ automation: | entity_id: sensor.patio_pm10 options: threshold: 50 - behavior: any + behavior: each conditions: - condition: numeric_state entity_id: sensor.patio_pm10 diff --git a/source/_triggers/air_quality.pm1_crossed_threshold.markdown b/source/_triggers/air_quality.pm1_crossed_threshold.markdown index b97d10474d10..646e42fee300 100644 --- a/source/_triggers/air_quality.pm1_crossed_threshold.markdown +++ b/source/_triggers/air_quality.pm1_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.living_room_pm1 options: threshold: 25 - behavior: any + behavior: each {% endexample %} This fires whenever the living room PM1 sensor crosses 25 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.living_room_pm1 options: threshold: 25 - behavior: any + behavior: each actions: - action: switch.turn_on target: diff --git a/source/_triggers/air_quality.pm25_crossed_threshold.markdown b/source/_triggers/air_quality.pm25_crossed_threshold.markdown index 68d89a5536c9..735093fabc1a 100644 --- a/source/_triggers/air_quality.pm25_crossed_threshold.markdown +++ b/source/_triggers/air_quality.pm25_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.outdoor_pm25 options: threshold: 35 - behavior: any + behavior: each {% endexample %} This fires whenever the outdoor PM2.5 sensor crosses 35 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -114,7 +114,7 @@ automation: | entity_id: sensor.outdoor_pm25 options: threshold: 35 - behavior: any + behavior: each conditions: - condition: numeric_state entity_id: sensor.outdoor_pm25 diff --git a/source/_triggers/air_quality.pm4_crossed_threshold.markdown b/source/_triggers/air_quality.pm4_crossed_threshold.markdown index 03d11d40a2f8..d611c1457591 100644 --- a/source/_triggers/air_quality.pm4_crossed_threshold.markdown +++ b/source/_triggers/air_quality.pm4_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.nursery_pm4 options: threshold: 30 - behavior: any + behavior: each {% endexample %} This fires whenever the nursery PM4 sensor crosses 30 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.nursery_pm4 options: threshold: 30 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_triggers/air_quality.smoke_cleared.markdown b/source/_triggers/air_quality.smoke_cleared.markdown index 339f9b04c728..bab5bfb18bf5 100644 --- a/source/_triggers/air_quality.smoke_cleared.markdown +++ b/source/_triggers/air_quality.smoke_cleared.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: label_id: smoke_sensors options: - behavior: last + behavior: all for: "00:15:00" actions: - action: lock.lock diff --git a/source/_triggers/air_quality.smoke_detected.markdown b/source/_triggers/air_quality.smoke_detected.markdown index 74b5971c589c..416f253ab7df 100644 --- a/source/_triggers/air_quality.smoke_detected.markdown +++ b/source/_triggers/air_quality.smoke_detected.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: label_id: smoke_sensors options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on @@ -139,7 +139,7 @@ automation: | target: label_id: smoke_sensors options: - behavior: any + behavior: each for: "00:00:30" actions: - action: lock.unlock diff --git a/source/_triggers/air_quality.so2_crossed_threshold.markdown b/source/_triggers/air_quality.so2_crossed_threshold.markdown index 453877ed41a0..c53692bf2583 100644 --- a/source/_triggers/air_quality.so2_crossed_threshold.markdown +++ b/source/_triggers/air_quality.so2_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.outdoor_so2 options: threshold: 40 - behavior: any + behavior: each {% endexample %} This fires whenever the outdoor SO2 sensor crosses 40 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -114,7 +114,7 @@ automation: | entity_id: sensor.outdoor_so2 options: threshold: 40 - behavior: any + behavior: each conditions: - condition: numeric_state entity_id: sensor.outdoor_so2 diff --git a/source/_triggers/air_quality.voc_crossed_threshold.markdown b/source/_triggers/air_quality.voc_crossed_threshold.markdown index 1ae8e760c67e..e788f83d3ec8 100644 --- a/source/_triggers/air_quality.voc_crossed_threshold.markdown +++ b/source/_triggers/air_quality.voc_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.office_voc options: threshold: 300 - behavior: any + behavior: each {% endexample %} This fires whenever the office VOC sensor crosses 300 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.office_voc options: threshold: 300 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_triggers/air_quality.voc_ratio_crossed_threshold.markdown b/source/_triggers/air_quality.voc_ratio_crossed_threshold.markdown index d8d830da1fee..b67943f0592a 100644 --- a/source/_triggers/air_quality.voc_ratio_crossed_threshold.markdown +++ b/source/_triggers/air_quality.voc_ratio_crossed_threshold.markdown @@ -49,7 +49,7 @@ trigger: | entity_id: sensor.kitchen_voc_ratio options: threshold: 50 - behavior: any + behavior: each {% endexample %} This fires whenever the kitchen VOC ratio sensor crosses 50 in either direction. @@ -66,10 +66,10 @@ threshold: type: any behavior: description: > - When multiple sensors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple sensors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. @@ -113,7 +113,7 @@ automation: | entity_id: sensor.kitchen_voc_ratio options: threshold: 50 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_triggers/alarm_control_panel.armed.markdown b/source/_triggers/alarm_control_panel.armed.markdown index d53ca0f84559..c9272f88e0ef 100644 --- a/source/_triggers/alarm_control_panel.armed.markdown +++ b/source/_triggers/alarm_control_panel.armed.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -103,7 +103,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: lock.lock @@ -137,7 +137,7 @@ automation: | target: label_id: alarm_panels options: - behavior: any + behavior: each for: "00:00:00" actions: - action: notify.send_message diff --git a/source/_triggers/alarm_control_panel.armed_away.markdown b/source/_triggers/alarm_control_panel.armed_away.markdown index 7c0b835220cf..5af34ab7376b 100644 --- a/source/_triggers/alarm_control_panel.armed_away.markdown +++ b/source/_triggers/alarm_control_panel.armed_away.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: climate.turn_off @@ -134,7 +134,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: switch.turn_on diff --git a/source/_triggers/alarm_control_panel.armed_home.markdown b/source/_triggers/alarm_control_panel.armed_home.markdown index 6883737f19fd..154f141da2ea 100644 --- a/source/_triggers/alarm_control_panel.armed_home.markdown +++ b/source/_triggers/alarm_control_panel.armed_home.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -100,7 +100,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: lock.lock @@ -130,7 +130,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on diff --git a/source/_triggers/alarm_control_panel.armed_night.markdown b/source/_triggers/alarm_control_panel.armed_night.markdown index 84820fc7db4f..02ed7f787d79 100644 --- a/source/_triggers/alarm_control_panel.armed_night.markdown +++ b/source/_triggers/alarm_control_panel.armed_night.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_off @@ -136,7 +136,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on diff --git a/source/_triggers/alarm_control_panel.armed_vacation.markdown b/source/_triggers/alarm_control_panel.armed_vacation.markdown index 7905c8fd2c99..e8a164fdf0ac 100644 --- a/source/_triggers/alarm_control_panel.armed_vacation.markdown +++ b/source/_triggers/alarm_control_panel.armed_vacation.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -100,7 +100,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: input_boolean.turn_on @@ -131,7 +131,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: climate.set_temperature diff --git a/source/_triggers/alarm_control_panel.disarmed.markdown b/source/_triggers/alarm_control_panel.disarmed.markdown index 4ca5fade7b22..c6fdbaf40ae6 100644 --- a/source/_triggers/alarm_control_panel.disarmed.markdown +++ b/source/_triggers/alarm_control_panel.disarmed.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on @@ -136,7 +136,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: input_boolean.turn_off diff --git a/source/_triggers/alarm_control_panel.triggered.markdown b/source/_triggers/alarm_control_panel.triggered.markdown index 343e4d931b47..791e8e233efd 100644 --- a/source/_triggers/alarm_control_panel.triggered.markdown +++ b/source/_triggers/alarm_control_panel.triggered.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple alarm panels are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple alarm panels are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > Duration the state must hold before firing. Accepts a duration string like `00:05:00` for five minutes. @@ -102,7 +102,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on @@ -144,7 +144,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each for: "00:00:00" actions: - action: siren.turn_on diff --git a/source/_triggers/battery.level_crossed.markdown b/source/_triggers/battery.level_crossed.markdown index b00a3f63f4c6..96f8db17c17a 100644 --- a/source/_triggers/battery.level_crossed.markdown +++ b/source/_triggers/battery.level_crossed.markdown @@ -92,7 +92,7 @@ trigger: | number: 20 value_max: number: 101 - behavior: last + behavior: all {% endexample %} This fires once both sensors have charged back into the effective 21%–100% range. The `value_max` is set to `number: 101` deliberately so that 100% is included, because `between` is exclusive on both bounds. @@ -140,12 +140,12 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires. Accepts: - - `any`: fires every time any targeted entity crosses the threshold. + - `each`: fires every time any targeted entity crosses the threshold. - `first`: fires only on the first crossing. - - `last`: fires only after every targeted entity crosses the threshold. + - `all`: fires only after every targeted entity crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:30:00` fires only after the reading has stayed past the threshold for 30 minutes. diff --git a/source/_triggers/battery.low.markdown b/source/_triggers/battery.low.markdown index 174d6fd22104..cc675bd889cb 100644 --- a/source/_triggers/battery.low.markdown +++ b/source/_triggers/battery.low.markdown @@ -65,7 +65,7 @@ trigger: | target: area_id: living_room options: - behavior: last + behavior: all {% endexample %} ### Options in YAML @@ -75,12 +75,12 @@ behavior: description: | When multiple battery sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor reports a low battery. + - `each`: fires every time any targeted sensor reports a low battery. - `first`: fires only when the first targeted sensor reports a low battery. - - `last`: fires only after every targeted sensor reports a low battery. + - `all`: fires only after every targeted sensor reports a low battery. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must remain reporting low battery before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/battery.not_low.markdown b/source/_triggers/battery.not_low.markdown index bbdad6c0060e..e0b10cb6e015 100644 --- a/source/_triggers/battery.not_low.markdown +++ b/source/_triggers/battery.not_low.markdown @@ -73,12 +73,12 @@ behavior: description: | When multiple battery sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor stops reporting a low battery. + - `each`: fires every time any targeted sensor stops reporting a low battery. - `first`: fires only when the first targeted sensor stops reporting a low battery. - - `last`: fires only after every targeted sensor stops reporting a low battery. + - `all`: fires only after every targeted sensor stops reporting a low battery. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must remain reporting a normal battery level before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/battery.started_charging.markdown b/source/_triggers/battery.started_charging.markdown index 21bd94f88a8c..8a828825a57b 100644 --- a/source/_triggers/battery.started_charging.markdown +++ b/source/_triggers/battery.started_charging.markdown @@ -62,12 +62,12 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted device starts charging. + - `each` (**Each** in the UI, default): fires every time any targeted device starts charging. - `first` (**First** in the UI): fires only on the first device that starts charging. - - `last` (**All** in the UI): fires only after every targeted device starts charging. + - `all` (**All** in the UI): fires only after every targeted device starts charging. required: false type: string - default: any + default: each for: description: | How long the device must be actively charging before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:01:00` fires only after the device has been charging for 1 minute. diff --git a/source/_triggers/battery.stopped_charging.markdown b/source/_triggers/battery.stopped_charging.markdown index b5712681d80c..a0c0897c9961 100644 --- a/source/_triggers/battery.stopped_charging.markdown +++ b/source/_triggers/battery.stopped_charging.markdown @@ -62,12 +62,12 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted device stops charging. + - `each` (**Each** in the UI, default): fires every time any targeted device stops charging. - `first` (**First** in the UI): fires only on the first device that stops charging. - - `last` (**All** in the UI): fires only after every targeted device stops charging. + - `all` (**All** in the UI): fires only after every targeted device stops charging. required: false type: string - default: any + default: each for: description: | How long the device must remain not charging before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:01:00` fires only after the device has not been charging for 1 minute. This helps avoid false positives from brief interruptions. diff --git a/source/_triggers/climate.hvac_mode_changed.markdown b/source/_triggers/climate.hvac_mode_changed.markdown index 107a12e59da1..82ec1477ff11 100644 --- a/source/_triggers/climate.hvac_mode_changed.markdown +++ b/source/_triggers/climate.hvac_mode_changed.markdown @@ -40,9 +40,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat changes mode. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat changes mode. - **First** (`first` in YAML): fires only on the first mode change. - - **All** (`last` in YAML): fires only after every targeted thermostat changes mode. + - **All** (`all` in YAML): fires only after every targeted thermostat changes mode. For at least: description: How long the thermostat must remain in the new mode before the trigger fires. Useful to ignore brief mode changes. Default is `0` (fires immediately). {% endoptions_ui %} @@ -86,12 +86,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat changes mode. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat changes mode. - `first` (**First** in the UI): fires only on the first mode change. - - `last` (**All** in the UI): fires only after every targeted thermostat changes mode. + - `all` (**All** in the UI): fires only after every targeted thermostat changes mode. required: false type: string - default: any + default: each for: description: | How long the thermostat must remain in the new mode before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has stayed in the new mode for 10 seconds, which is useful to ignore brief mode changes. diff --git a/source/_triggers/climate.started_cooling.markdown b/source/_triggers/climate.started_cooling.markdown index 05e07f7daba7..e63cacc28e4c 100644 --- a/source/_triggers/climate.started_cooling.markdown +++ b/source/_triggers/climate.started_cooling.markdown @@ -37,9 +37,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat starts cooling. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts cooling. - **First** (`first` in YAML): fires only when the first of a group starts cooling. - - **All** (`last` in YAML): fires only after every targeted thermostat is cooling. + - **All** (`all` in YAML): fires only after every targeted thermostat is cooling. For at least: description: How long the thermostat must stay in the cooling state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -66,12 +66,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat starts cooling. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts cooling. - `first` (**First** in the UI): fires only when the first thermostat starts cooling. - - `last` (**All** in the UI): fires only after every targeted thermostat is cooling. + - `all` (**All** in the UI): fires only after every targeted thermostat is cooling. required: false type: string - default: any + default: each for: description: | How long the thermostat must stay in the cooling state before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has been cooling for 10 seconds, which helps avoid false triggers from brief cooling cycles. @@ -143,7 +143,7 @@ automation: | target: label_id: main_thermostats options: - behavior: last + behavior: all actions: - action: fan.turn_on target: diff --git a/source/_triggers/climate.started_drying.markdown b/source/_triggers/climate.started_drying.markdown index 8d9ca94469d2..79a0f1b45dca 100644 --- a/source/_triggers/climate.started_drying.markdown +++ b/source/_triggers/climate.started_drying.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat starts drying. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts drying. - **First** (`first` in YAML): fires only when the first of a group starts drying. - - **All** (`last` in YAML): fires only after every targeted thermostat is drying. + - **All** (`all` in YAML): fires only after every targeted thermostat is drying. For at least: description: How long the thermostat must stay in the drying state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -64,12 +64,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat starts drying. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts drying. - `first` (**First** in the UI): fires only when the first thermostat starts drying. - - `last` (**All** in the UI): fires only after every targeted thermostat is drying. + - `all` (**All** in the UI): fires only after every targeted thermostat is drying. required: false type: string - default: any + default: each for: description: | How long the thermostat must stay in the drying state before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has been drying for 10 seconds, which helps avoid false triggers from brief drying cycles. @@ -142,7 +142,7 @@ automation: | target: label_id: drying_thermostats options: - behavior: last + behavior: all actions: - action: fan.turn_on target: diff --git a/source/_triggers/climate.started_heating.markdown b/source/_triggers/climate.started_heating.markdown index 124e82fcd3fe..86b78c6be91e 100644 --- a/source/_triggers/climate.started_heating.markdown +++ b/source/_triggers/climate.started_heating.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat starts heating. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts heating. - **First** (`first` in YAML): fires only when the first of a group starts heating. - - **All** (`last` in YAML): fires only after every targeted thermostat is heating. + - **All** (`all` in YAML): fires only after every targeted thermostat is heating. For at least: description: How long the thermostat must stay in the heating state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -64,12 +64,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat starts heating. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts heating. - `first` (**First** in the UI): fires only when the first thermostat starts heating. - - `last` (**All** in the UI): fires only after every targeted thermostat is heating. + - `all` (**All** in the UI): fires only after every targeted thermostat is heating. required: false type: string - default: any + default: each for: description: | How long the thermostat must stay in the heating state before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has been heating for 10 seconds, which helps avoid false triggers from brief heating cycles. @@ -141,7 +141,7 @@ automation: | target: area_id: bedroom options: - behavior: last + behavior: all actions: - action: fan.turn_on target: diff --git a/source/_triggers/climate.target_humidity_crossed_threshold.markdown b/source/_triggers/climate.target_humidity_crossed_threshold.markdown index 0b9cc613b3d8..7e012d5801aa 100644 --- a/source/_triggers/climate.target_humidity_crossed_threshold.markdown +++ b/source/_triggers/climate.target_humidity_crossed_threshold.markdown @@ -51,9 +51,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat crosses the threshold. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat crosses the threshold. - **First** (`first` in YAML): fires only on the first threshold crossing. - - **All** (`last` in YAML): fires only after every targeted thermostat crosses the threshold. + - **All** (`all` in YAML): fires only after every targeted thermostat crosses the threshold. For at least: description: How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Useful to avoid false triggers from brief adjustments. Default is `0` (fires immediately). {% endoptions_ui %} @@ -124,12 +124,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the setpoint has been beyond the threshold for 10 seconds, which helps ignore accidental or brief adjustments. @@ -179,7 +179,7 @@ automation: | type: below value: number: 40 - behavior: last + behavior: all actions: - action: humidifier.set_humidity target: diff --git a/source/_triggers/climate.target_temperature_crossed_threshold.markdown b/source/_triggers/climate.target_temperature_crossed_threshold.markdown index f5db1d65f091..aaa29a16dde6 100644 --- a/source/_triggers/climate.target_temperature_crossed_threshold.markdown +++ b/source/_triggers/climate.target_temperature_crossed_threshold.markdown @@ -54,9 +54,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted thermostat crosses the threshold. + - **Each** (`each` in YAML, default): fire every time any targeted thermostat crosses the threshold. - **First** (`first` in YAML): fire only on the first threshold crossing. - - **All** (`last` in YAML): fire only after every targeted thermostat crosses the threshold. + - **All** (`all` in YAML): fire only after every targeted thermostat crosses the threshold. For at least: description: How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Useful to avoid false triggers from brief adjustments. Default is `0` (fires immediately). {% endoptions_ui %} @@ -133,12 +133,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the setpoint has been beyond the threshold for 10 seconds, which helps ignore accidental or brief adjustments. @@ -189,7 +189,7 @@ automation: | value: number: 20 unit_of_measurement: "°C" - behavior: last + behavior: all actions: - action: climate.set_preset_mode target: diff --git a/source/_triggers/climate.turned_off.markdown b/source/_triggers/climate.turned_off.markdown index c2bbd817a710..a95df3693542 100644 --- a/source/_triggers/climate.turned_off.markdown +++ b/source/_triggers/climate.turned_off.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat turns off. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat turns off. - **First** (`first` in YAML): fires only when the first of a group turns off. - - **All** (`last` in YAML): fires only after every targeted thermostat is off. + - **All** (`all` in YAML): fires only after every targeted thermostat is off. For at least: description: How long the thermostat must stay off before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,12 +63,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted thermostat turns off. + - `each` (**Each** in the UI, default): fires every time any targeted thermostat turns off. - `first` (**First** in the UI): fires only when the first thermostat turns off. - - `last` (**All** in the UI): fires only after every targeted thermostat is off. + - `all` (**All** in the UI): fires only after every targeted thermostat is off. required: false type: string - default: any + default: each for: description: | How long the thermostat must stay off before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has stayed off for 10 seconds, which helps ignore accidental toggles or brief power losses. @@ -111,7 +111,7 @@ automation: | target: area_id: living_room options: - behavior: last + behavior: all for: "00:05:00" actions: - action: fan.turn_off diff --git a/source/_triggers/climate.turned_on.markdown b/source/_triggers/climate.turned_on.markdown index 71fa7e966a93..d45ddc56eabe 100644 --- a/source/_triggers/climate.turned_on.markdown +++ b/source/_triggers/climate.turned_on.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fires every time any targeted thermostat turns on. + - **Each** (`each` in YAML, default): fires every time any targeted thermostat turns on. - **First** (`first` in YAML): fires only when the first of a group turns on. - - **All** (`last` in YAML): fires only after every targeted thermostat is on. + - **All** (`all` in YAML): fires only after every targeted thermostat is on. For at least: description: How long the thermostat must stay on before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,12 +63,12 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted thermostat turns on. + - `each` (**Each** in the UI, default): fire every time any targeted thermostat turns on. - `first` (**First** in the UI): fire only when the first thermostat turns on. - - `last` (**All** in the UI): fire only after every targeted thermostat is on. + - `all` (**All** in the UI): fire only after every targeted thermostat is on. required: false type: string - default: any + default: each for: description: | How long the thermostat must stay on before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the thermostat has stayed on for 10 seconds. diff --git a/source/_triggers/counter.maximum_reached.markdown b/source/_triggers/counter.maximum_reached.markdown index 0f3e1d890e08..36d2d172bc49 100644 --- a/source/_triggers/counter.maximum_reached.markdown +++ b/source/_triggers/counter.maximum_reached.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple counters are targeted, controls whether the trigger fires for `any`, `first`, or `last`. + description: When multiple counters are targeted, controls whether the trigger fires for `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the counter must stay at its maximum before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. required: false diff --git a/source/_triggers/counter.minimum_reached.markdown b/source/_triggers/counter.minimum_reached.markdown index 34dae2155d46..df82b30fe063 100644 --- a/source/_triggers/counter.minimum_reached.markdown +++ b/source/_triggers/counter.minimum_reached.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple counters are targeted, controls whether the trigger fires for `any`, `first`, or `last`. + description: When multiple counters are targeted, controls whether the trigger fires for `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the counter must stay at its minimum before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. required: false diff --git a/source/_triggers/counter.reset.markdown b/source/_triggers/counter.reset.markdown index 1c1be6c6976e..258801691a6f 100644 --- a/source/_triggers/counter.reset.markdown +++ b/source/_triggers/counter.reset.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple counters are targeted, controls whether the trigger fires for `any`, `first`, or `last`. + description: When multiple counters are targeted, controls whether the trigger fires for `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the counter must stay at its reset value before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. required: false diff --git a/source/_triggers/door.closed.markdown b/source/_triggers/door.closed.markdown index bccc9e04bb27..71e5d8fce846 100644 --- a/source/_triggers/door.closed.markdown +++ b/source/_triggers/door.closed.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple doors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple doors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the door must stay closed before the trigger fires. diff --git a/source/_triggers/door.opened.markdown b/source/_triggers/door.opened.markdown index 79e74870da1e..04c1bdc78ef9 100644 --- a/source/_triggers/door.opened.markdown +++ b/source/_triggers/door.opened.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple doors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple doors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the door must stay open before the trigger fires. diff --git a/source/_triggers/fan.turned_off.markdown b/source/_triggers/fan.turned_off.markdown index 449ab164f1d1..a35b08754e14 100644 --- a/source/_triggers/fan.turned_off.markdown +++ b/source/_triggers/fan.turned_off.markdown @@ -45,7 +45,7 @@ trigger: | target: entity_id: fan.kitchen options: - behavior: any + behavior: each for: "00:10:00" {% endexample %} @@ -55,10 +55,10 @@ This fires when `fan.kitchen` has been off for 10 minutes. {% options_yaml %} behavior: - description: When multiple fans are targeted, controls whether the trigger fires for `any`, `first`, or `last`. + description: When multiple fans are targeted, controls whether the trigger fires for `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the fan must stay off before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. required: false @@ -100,7 +100,7 @@ automation: | target: entity_id: fan.bathroom options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on @@ -133,7 +133,7 @@ automation: | target: entity_id: fan.nursery options: - behavior: any + behavior: each for: "00:05:00" actions: - action: notify.send_message diff --git a/source/_triggers/fan.turned_on.markdown b/source/_triggers/fan.turned_on.markdown index 966dbbb95d6c..1497576eb449 100644 --- a/source/_triggers/fan.turned_on.markdown +++ b/source/_triggers/fan.turned_on.markdown @@ -45,7 +45,7 @@ trigger: | target: entity_id: fan.bedroom options: - behavior: any + behavior: each for: "00:05:00" {% endexample %} @@ -55,10 +55,10 @@ This fires when `fan.bedroom` has been on for 5 minutes. {% options_yaml %} behavior: - description: When multiple fans are targeted, controls whether the trigger fires for `any`, `first`, or `last`. + description: When multiple fans are targeted, controls whether the trigger fires for `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the fan must stay on before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. required: false @@ -101,7 +101,7 @@ automation: | target: entity_id: fan.bathroom options: - behavior: any + behavior: each for: "00:20:00" actions: - action: notify.send_message @@ -133,7 +133,7 @@ automation: | target: entity_id: fan.bedroom options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on diff --git a/source/_triggers/garage_door.closed.markdown b/source/_triggers/garage_door.closed.markdown index 9d2dc4daf7cb..2c9b0e70dbf9 100644 --- a/source/_triggers/garage_door.closed.markdown +++ b/source/_triggers/garage_door.closed.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple garage doors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple garage doors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the garage door must stay closed before the trigger fires. diff --git a/source/_triggers/garage_door.opened.markdown b/source/_triggers/garage_door.opened.markdown index d3ae28cc83c7..d1cc680bc0b8 100644 --- a/source/_triggers/garage_door.opened.markdown +++ b/source/_triggers/garage_door.opened.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple garage doors are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple garage doors are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the garage door must stay open before the trigger fires. diff --git a/source/_triggers/gate.closed.markdown b/source/_triggers/gate.closed.markdown index 2a68840bfa03..c290dc8523d9 100644 --- a/source/_triggers/gate.closed.markdown +++ b/source/_triggers/gate.closed.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple gates are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple gates are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the gate must stay closed before the trigger fires. diff --git a/source/_triggers/gate.opened.markdown b/source/_triggers/gate.opened.markdown index 243f29c0cc81..44efd2a19bec 100644 --- a/source/_triggers/gate.opened.markdown +++ b/source/_triggers/gate.opened.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple gates are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple gates are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the gate must stay open before the trigger fires. diff --git a/source/_triggers/humidifier.mode_changed.markdown b/source/_triggers/humidifier.mode_changed.markdown index 80ed227d5dd7..fecff884db56 100644 --- a/source/_triggers/humidifier.mode_changed.markdown +++ b/source/_triggers/humidifier.mode_changed.markdown @@ -37,9 +37,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted humidifier changes mode. + - **Each** (`each` in YAML, default): fire every time any targeted humidifier changes mode. - **First** (`first` in YAML): fire only on the first mode change. - - **All** (`last` in YAML): fire only after every targeted humidifier changes mode + - **All** (`all` in YAML): fire only after every targeted humidifier changes mode For at least: description: How long the humidifier must remain in the new mode before the trigger fires. Useful to ignore brief transitional modes some devices cycle through during startup. If you set a short delay of a few seconds, it prevents your automation from firing on that momentary blip. Default is `0` (fires immediately). {% endoptions_ui %} @@ -83,12 +83,12 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted humidifier changes mode. + - `each` (**Each** in the UI, default): fire every time any targeted humidifier changes mode. - `first` (**First** in the UI): fire only on the first mode change. - - `last` (**All** in the UI): fire only after every targeted humidifier changes mode. + - `all` (**All** in the UI): fire only after every targeted humidifier changes mode. required: false type: string - default: any + default: each for: description: | How long the humidifier must remain in the new mode before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the humidifier has stayed in the new mode for 10 seconds, which is useful to ignore brief transitional modes some devices cycle through during startup. @@ -132,7 +132,7 @@ automation: | entity_id: humidifier.bedroom options: mode: "sleep" - behavior: any + behavior: each actions: - action: scene.turn_on target: @@ -163,7 +163,7 @@ automation: | label_id: all_humidifiers options: mode: "eco" - behavior: any + behavior: each actions: - action: notify.send_message target: diff --git a/source/_triggers/humidifier.started_drying.markdown b/source/_triggers/humidifier.started_drying.markdown index 07e5e8dc69b9..6cf93e277559 100644 --- a/source/_triggers/humidifier.started_drying.markdown +++ b/source/_triggers/humidifier.started_drying.markdown @@ -36,9 +36,9 @@ Trigger when: description: | When multiple devices are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted device starts drying. + - **Each** (`each` in YAML, default): fire every time any targeted device starts drying. - **First** (`first` in YAML): fire only on the first device that starts drying. - - **All** (`last` in YAML): fire only after every targeted device starts drying. + - **All** (`all` in YAML): fire only after every targeted device starts drying. For at least: description: How long the device must be actively drying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -65,12 +65,12 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted device starts drying. + - `each` (**Each** in the UI, default): fire every time any targeted device starts drying. - `first` (**First** in the UI): fire only on the first device that starts drying. - - `last` (**All** in the UI): fire only after every targeted device starts drying. + - `all` (**All** in the UI): fire only after every targeted device starts drying. required: false type: string - default: any + default: each for: description: | How long the device must be actively drying before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the device has been actively drying for 5 minutes. @@ -113,7 +113,7 @@ automation: | target: entity_id: humidifier.basement_dehumidifier options: - behavior: any + behavior: each for: "00:05:00" actions: - action: notify.send_message @@ -145,7 +145,7 @@ automation: | target: entity_id: humidifier.basement_dehumidifier options: - behavior: any + behavior: each for: "00:00:00" actions: - action: cover.close_cover diff --git a/source/_triggers/humidifier.started_humidifying.markdown b/source/_triggers/humidifier.started_humidifying.markdown index f10cfca3aecc..989697b16fe4 100644 --- a/source/_triggers/humidifier.started_humidifying.markdown +++ b/source/_triggers/humidifier.started_humidifying.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted humidifier starts humidifying. + - **Each** (`each` in YAML, default): fire every time any targeted humidifier starts humidifying. - **First** (`first` in YAML): fire only on the first humidifier that starts humidifying. - - **All** (`last` in YAML): fire only after every targeted humidifier starts humidifying. + - **All** (`all` in YAML): fire only after every targeted humidifier starts humidifying. For at least: description: How long the humidifier must be actively humidifying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,12 +63,12 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted humidifier starts humidifying. + - `each` (**Each** in the UI, default): fire every time any targeted humidifier starts humidifying. - `first` (**First** in the UI): fire only on the first humidifier that starts humidifying. - - `last` (**All** in the UI): fire only after every targeted humidifier starts humidifying. + - `all` (**All** in the UI): fire only after every targeted humidifier starts humidifying. required: false type: string - default: any + default: each for: description: | How long the humidifier must be actively humidifying before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the humidifier has been actively humidifying for 5 minutes. @@ -112,7 +112,7 @@ automation: | target: entity_id: humidifier.nursery options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: time @@ -148,7 +148,7 @@ automation: | target: entity_id: humidifier.bedroom options: - behavior: any + behavior: each for: "00:00:00" actions: - action: fan.turn_on diff --git a/source/_triggers/humidifier.turned_off.markdown b/source/_triggers/humidifier.turned_off.markdown index 7cc8bde034c4..352bb655c379 100644 --- a/source/_triggers/humidifier.turned_off.markdown +++ b/source/_triggers/humidifier.turned_off.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted humidifier turns off. + - **Each** (`each` in YAML, default): fire every time any targeted humidifier turns off. - **First** (`first` in YAML): fire only when the first of a group turns off. - - **All** (`last` in YAML): fire only after every targeted humidifier is off. + - **All** (`all` in YAML): fire only after every targeted humidifier is off. For at least: description: How long the humidifier must stay off before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,12 +64,12 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted humidifier turns off. + - `each` (**Each** in the UI, default): fire every time any targeted humidifier turns off. - `first` (**First** in the UI): fire only when the first of a group turns off. - - `last` (**All** in the UI): fire only after every targeted humidifier is off. + - `all` (**All** in the UI): fire only after every targeted humidifier is off. required: false type: string - default: any + default: each for: description: | How long the humidifier must stay off before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the humidifier has stayed off for 5 minutes. @@ -86,7 +86,7 @@ for: - The trigger only fires when a humidifier transitions from a known, valid state. Transitions from the **Unavailable** or **Unknown** state to off do not count. - To react to the opposite transition, use [Humidifier turned on](/triggers/humidifier.turned_on/). -- Pair **Humidifier turned off** with the `last` behavior to do something only after every humidifier in an area has stopped. For example, send a single notification when all humidifiers in the house are off. +- Pair **Humidifier turned off** with the `all` behavior to do something only after every humidifier in an area has stopped. For example, send a single notification when all humidifiers in the house are off. {% include triggers/try_it.md %} @@ -114,7 +114,7 @@ automation: | target: entity_id: humidifier.bedroom options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: time @@ -150,7 +150,7 @@ automation: | target: label_id: all_humidifiers options: - behavior: last + behavior: all for: "00:00:00" actions: - action: fan.turn_off diff --git a/source/_triggers/humidifier.turned_on.markdown b/source/_triggers/humidifier.turned_on.markdown index 8157dec2a706..d526031435b9 100644 --- a/source/_triggers/humidifier.turned_on.markdown +++ b/source/_triggers/humidifier.turned_on.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`any` in YAML, default): fire every time any targeted humidifier turns on. + - **Each** (`each` in YAML, default): fire every time any targeted humidifier turns on. - **First** (`first` in YAML): fire only when the first of a group turns on. - - **All** (`last` in YAML): fire only after every targeted humidifier is on. + - **All** (`all` in YAML): fire only after every targeted humidifier is on. For at least: description: How long the humidifier must stay on before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,12 +64,12 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fire every time any targeted humidifier turns on. + - `each` (**Each** in the UI, default): fire every time any targeted humidifier turns on. - `first` (**First** in the UI): fire only when the first of a group turns on. - - `last` (**All** in the UI): fire only after every targeted humidifier is on. + - `all` (**All** in the UI): fire only after every targeted humidifier is on. required: false type: string - default: any + default: each for: description: | How long the humidifier must stay on before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the humidifier has stayed on for 5 minutes. @@ -112,7 +112,7 @@ automation: | target: entity_id: humidifier.bedroom options: - behavior: any + behavior: each for: "00:00:00" actions: - action: fan.turn_on @@ -145,7 +145,7 @@ automation: | target: entity_id: humidifier.nursery options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: time diff --git a/source/_triggers/humidity.crossed_threshold.markdown b/source/_triggers/humidity.crossed_threshold.markdown index b3147a5fa7d1..c0b202b6b929 100644 --- a/source/_triggers/humidity.crossed_threshold.markdown +++ b/source/_triggers/humidity.crossed_threshold.markdown @@ -95,7 +95,7 @@ trigger: | number: 40 value_max: number: 60 - behavior: any + behavior: each {% endexample %} This fires whenever any of the humidity sensors crosses outside the comfort range. @@ -145,12 +145,12 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the reading has stayed past the threshold for 5 minutes. @@ -235,7 +235,7 @@ automation: | type: above value: number: 60 - behavior: any + behavior: each for: "00:10:00" actions: - action: notify.send_message diff --git a/source/_triggers/illuminance.cleared.markdown b/source/_triggers/illuminance.cleared.markdown index ba9bf74ea4f3..cb0a4b241a26 100644 --- a/source/_triggers/illuminance.cleared.markdown +++ b/source/_triggers/illuminance.cleared.markdown @@ -69,12 +69,12 @@ behavior: description: | When multiple light sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor stops detecting light. + - `each`: fires every time any targeted sensor stops detecting light. - `first`: fires only when the first sensor stops detecting light. - - `last`: fires only after every targeted sensor stops detecting light. + - `all`: fires only after every targeted sensor stops detecting light. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must remain dark before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/illuminance.crossed_threshold.markdown b/source/_triggers/illuminance.crossed_threshold.markdown index 428bad3a80ef..28d1654fd33c 100644 --- a/source/_triggers/illuminance.crossed_threshold.markdown +++ b/source/_triggers/illuminance.crossed_threshold.markdown @@ -144,12 +144,12 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the reading has stayed past the threshold for 5 minutes. diff --git a/source/_triggers/illuminance.detected.markdown b/source/_triggers/illuminance.detected.markdown index 43954bdbe90e..ed4b71a2c185 100644 --- a/source/_triggers/illuminance.detected.markdown +++ b/source/_triggers/illuminance.detected.markdown @@ -69,12 +69,12 @@ behavior: description: | When multiple light sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor starts detecting light. + - `each`: fires every time any targeted sensor starts detecting light. - `first`: fires only when the first sensor starts detecting light. - - `last`: fires only after every targeted sensor starts detecting light. + - `all`: fires only after every targeted sensor starts detecting light. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must keep detecting light before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/lawn_mower.docked.markdown b/source/_triggers/lawn_mower.docked.markdown index 27d2447a3492..0b51cd1af868 100644 --- a/source/_triggers/lawn_mower.docked.markdown +++ b/source/_triggers/lawn_mower.docked.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple lawn mowers are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the mower must stay docked before the trigger fires. Accepts a diff --git a/source/_triggers/lawn_mower.errored.markdown b/source/_triggers/lawn_mower.errored.markdown index 620527d4933f..4a6e41036203 100644 --- a/source/_triggers/lawn_mower.errored.markdown +++ b/source/_triggers/lawn_mower.errored.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple lawn mowers are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the mower must stay in the error state before the trigger fires. diff --git a/source/_triggers/lawn_mower.paused_mowing.markdown b/source/_triggers/lawn_mower.paused_mowing.markdown index f6e280705d38..a8cbbff8afe5 100644 --- a/source/_triggers/lawn_mower.paused_mowing.markdown +++ b/source/_triggers/lawn_mower.paused_mowing.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple lawn mowers are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the mower must stay paused before the trigger fires. Accepts a diff --git a/source/_triggers/lawn_mower.started_mowing.markdown b/source/_triggers/lawn_mower.started_mowing.markdown index 680fd4e0bc2b..44bd8049abd8 100644 --- a/source/_triggers/lawn_mower.started_mowing.markdown +++ b/source/_triggers/lawn_mower.started_mowing.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple lawn mowers are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the mower must stay in the mowing state before the trigger fires. diff --git a/source/_triggers/lawn_mower.started_returning.markdown b/source/_triggers/lawn_mower.started_returning.markdown index 884fc1ef3bf0..e8aa3e70f9f6 100644 --- a/source/_triggers/lawn_mower.started_returning.markdown +++ b/source/_triggers/lawn_mower.started_returning.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple lawn mowers are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the mower must stay in the returning state before the trigger diff --git a/source/_triggers/light.brightness_crossed_threshold.markdown b/source/_triggers/light.brightness_crossed_threshold.markdown index 1524f96591d6..ffca92ee4fc6 100644 --- a/source/_triggers/light.brightness_crossed_threshold.markdown +++ b/source/_triggers/light.brightness_crossed_threshold.markdown @@ -47,7 +47,7 @@ trigger: | entity_id: light.living_room options: threshold: 50 - behavior: any + behavior: each {% endexample %} This fires whenever the living room light crosses 50% brightness in either direction. @@ -64,10 +64,10 @@ threshold: type: any behavior: description: > - When multiple lights are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple lights are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each {% endoptions_yaml %} {% include triggers/targets.md %} @@ -105,7 +105,7 @@ automation: | entity_id: light.living_room_ceiling options: threshold: 40 - behavior: any + behavior: each conditions: - condition: sun after: sunset @@ -114,7 +114,7 @@ automation: | entity_id: light.living_room_ceiling options: threshold: 40 - behavior: any + behavior: each actions: - action: light.turn_on target: diff --git a/source/_triggers/light.turned_off.markdown b/source/_triggers/light.turned_off.markdown index 0a1e7b4dff2a..f151a93c3151 100644 --- a/source/_triggers/light.turned_off.markdown +++ b/source/_triggers/light.turned_off.markdown @@ -57,10 +57,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple lights are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple lights are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each {% endoptions_yaml %} {% include triggers/targets.md %} @@ -69,7 +69,7 @@ behavior: - The trigger only fires when a light transitions from a known, valid state. Transitions from being unavailable (`unavailable`) or having an unknown state (`unknown`) to off do not count. - To react to the opposite transition, use [Light turned on](/triggers/light.turned_on/). -- Pair this trigger with the `last` behavior to run something once every light in an area is off, like turning off the TV when every light in the living room has been switched off. +- Pair this trigger with the `all` behavior to run something once every light in an area is off, like turning off the TV when every light in the living room has been switched off. {% include triggers/try_it.md %} @@ -95,7 +95,7 @@ automation: | target: label_id: all_lights options: - behavior: last + behavior: all conditions: - condition: time after: "22:30:00" @@ -126,7 +126,7 @@ automation: | target: area_id: living_room options: - behavior: last + behavior: all actions: - action: media_player.turn_off target: diff --git a/source/_triggers/light.turned_on.markdown b/source/_triggers/light.turned_on.markdown index 1809901d383b..187789df2ea2 100644 --- a/source/_triggers/light.turned_on.markdown +++ b/source/_triggers/light.turned_on.markdown @@ -57,10 +57,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple lights are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple lights are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each {% endoptions_yaml %} {% include triggers/targets.md %} @@ -96,7 +96,7 @@ automation: | target: entity_id: light.hallway options: - behavior: any + behavior: each conditions: - condition: sun after: sunset diff --git a/source/_triggers/lock.jammed.markdown b/source/_triggers/lock.jammed.markdown index f378ee7e8397..856aaf939448 100644 --- a/source/_triggers/lock.jammed.markdown +++ b/source/_triggers/lock.jammed.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple locks are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the lock must stay jammed before the trigger fires. Accepts a @@ -104,7 +104,7 @@ automation: | target: entity_id: lock.front_door options: - behavior: any + behavior: each for: "00:00:00" actions: - action: notify.send_message @@ -138,7 +138,7 @@ automation: | target: label_id: outside_locks options: - behavior: any + behavior: each for: "00:00:10" conditions: - condition: sun diff --git a/source/_triggers/lock.locked.markdown b/source/_triggers/lock.locked.markdown index b52333bdc513..1c9993fa9e82 100644 --- a/source/_triggers/lock.locked.markdown +++ b/source/_triggers/lock.locked.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple locks are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the lock must stay locked before the trigger fires. Accepts a @@ -103,7 +103,7 @@ automation: | target: entity_id: lock.front_door options: - behavior: any + behavior: each for: "00:00:30" actions: - action: light.turn_off @@ -133,7 +133,7 @@ automation: | target: label_id: outside_locks options: - behavior: last + behavior: all for: "00:00:00" actions: - action: alarm_control_panel.alarm_arm_away diff --git a/source/_triggers/lock.opened.markdown b/source/_triggers/lock.opened.markdown index a3c8e97d16e4..24910a643ca4 100644 --- a/source/_triggers/lock.opened.markdown +++ b/source/_triggers/lock.opened.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple locks are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the lock must stay open before the trigger fires. Accepts a @@ -104,7 +104,7 @@ automation: | target: entity_id: lock.front_door options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: sun @@ -137,7 +137,7 @@ automation: | target: entity_id: lock.patio_door options: - behavior: any + behavior: each for: "00:00:00" actions: - action: script.patio_entry_sequence diff --git a/source/_triggers/lock.unlocked.markdown b/source/_triggers/lock.unlocked.markdown index 3859959bab7d..361ed85818a2 100644 --- a/source/_triggers/lock.unlocked.markdown +++ b/source/_triggers/lock.unlocked.markdown @@ -56,10 +56,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple locks are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the lock must stay unlocked before the trigger fires. Accepts a @@ -103,7 +103,7 @@ automation: | target: entity_id: lock.front_door options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on @@ -134,7 +134,7 @@ automation: | target: label_id: storage_locks options: - behavior: any + behavior: each for: "00:00:00" actions: - action: notify.send_message diff --git a/source/_triggers/moisture.cleared.markdown b/source/_triggers/moisture.cleared.markdown index da1daf0b6d5d..2b36460c5acc 100644 --- a/source/_triggers/moisture.cleared.markdown +++ b/source/_triggers/moisture.cleared.markdown @@ -64,12 +64,12 @@ behavior: description: | When multiple moisture sensors are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted sensor stops detecting moisture. + - `each` (**Each** in the UI, default): fires every time any targeted sensor stops detecting moisture. - `first` (**First** in the UI): fires only when the first sensor stops detecting moisture. - - `last` (**All** in the UI): fires only after every targeted sensor stops detecting moisture. + - `all` (**All** in the UI): fires only after every targeted sensor stops detecting moisture. required: false type: string - default: any + default: each for: description: How long the sensor or sensors must stay dry before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. required: false diff --git a/source/_triggers/moisture.crossed_threshold.markdown b/source/_triggers/moisture.crossed_threshold.markdown index 45668ea2b928..20dff6ac0e6f 100644 --- a/source/_triggers/moisture.crossed_threshold.markdown +++ b/source/_triggers/moisture.crossed_threshold.markdown @@ -94,7 +94,7 @@ trigger: | number: 40 value_max: number: 70 - behavior: any + behavior: each {% endexample %} To use a number helper as a dynamic threshold that you can adjust without editing the automation: @@ -131,12 +131,12 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the reading has stayed past the threshold for 5 minutes. diff --git a/source/_triggers/moisture.detected.markdown b/source/_triggers/moisture.detected.markdown index 7b638c5064d3..b3e40e92681e 100644 --- a/source/_triggers/moisture.detected.markdown +++ b/source/_triggers/moisture.detected.markdown @@ -62,12 +62,12 @@ behavior: description: | When multiple moisture sensors are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted sensor starts detecting moisture. + - `each` (**Each** in the UI, default): fires every time any targeted sensor starts detecting moisture. - `first` (**First** in the UI): fires only when the first sensor starts detecting moisture. - - `last` (**All** in the UI): fires only after every targeted sensor starts detecting moisture. + - `all` (**All** in the UI): fires only after every targeted sensor starts detecting moisture. required: false type: string - default: any + default: each for: description: How long the sensor or sensors must keep detecting moisture before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. required: false diff --git a/source/_triggers/motion.cleared.markdown b/source/_triggers/motion.cleared.markdown index 98a3d101aced..b56e2d17325c 100644 --- a/source/_triggers/motion.cleared.markdown +++ b/source/_triggers/motion.cleared.markdown @@ -69,12 +69,12 @@ behavior: description: | When multiple motion sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor stops detecting motion. + - `each`: fires every time any targeted sensor stops detecting motion. - `first`: fires only when the first sensor stops detecting motion. - - `last`: fires only after every targeted sensor stops detecting motion. + - `all`: fires only after every targeted sensor stops detecting motion. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must remain without detecting motion before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/motion.detected.markdown b/source/_triggers/motion.detected.markdown index 2cf6fba150a8..d35126f52501 100644 --- a/source/_triggers/motion.detected.markdown +++ b/source/_triggers/motion.detected.markdown @@ -69,12 +69,12 @@ behavior: description: | When multiple motion sensors are targeted, controls when the trigger fires: - - `any`: fires every time any targeted sensor starts detecting motion. + - `each`: fires every time any targeted sensor starts detecting motion. - `first`: fires only when the first sensor starts detecting motion. - - `last`: fires only after every targeted sensor starts detecting motion. + - `all`: fires only after every targeted sensor starts detecting motion. required: false type: string - default: any + default: each for: description: | How long the sensor or sensors must remain detecting motion before the trigger fires. Accepts a duration string in `HH:MM:SS` format or a time period mapping in hours, minutes and seconds. diff --git a/source/_triggers/siren.turned_off.markdown b/source/_triggers/siren.turned_off.markdown index 47e76cb93b20..d6225be06dbd 100644 --- a/source/_triggers/siren.turned_off.markdown +++ b/source/_triggers/siren.turned_off.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple sirens are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the siren must stay off before the trigger fires. diff --git a/source/_triggers/siren.turned_on.markdown b/source/_triggers/siren.turned_on.markdown index eede74e47e14..fd0c9ec660b3 100644 --- a/source/_triggers/siren.turned_on.markdown +++ b/source/_triggers/siren.turned_on.markdown @@ -54,10 +54,10 @@ YAML sometimes provides additional options for more complex use cases that are n behavior: description: > When multiple sirens are targeted, controls when the trigger fires. - Accepts `any`, `first`, or `last`. + Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the siren must stay on before the trigger fires. diff --git a/source/_triggers/temperature.crossed_threshold.markdown b/source/_triggers/temperature.crossed_threshold.markdown index 333c822065d6..813a2981916f 100644 --- a/source/_triggers/temperature.crossed_threshold.markdown +++ b/source/_triggers/temperature.crossed_threshold.markdown @@ -138,12 +138,12 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `any` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. + - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - `first` (**First** in the UI): fires only on the first threshold crossing. - - `last` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. required: false type: string - default: any + default: each for: description: | How long the reading must remain past the threshold before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:05:00` fires only after the reading has stayed past the threshold for 5 minutes. diff --git a/source/_triggers/timer.cancelled.markdown b/source/_triggers/timer.cancelled.markdown index 8daa26d66faa..cb38cca48592 100644 --- a/source/_triggers/timer.cancelled.markdown +++ b/source/_triggers/timer.cancelled.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple timers are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + description: When multiple timers are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long ago the timer must have been cancelled before the trigger fires. Accepts a duration string in `HH:MM:SS` format. required: false diff --git a/source/_triggers/timer.finished.markdown b/source/_triggers/timer.finished.markdown index 0beb0b11c939..6b24068ff37b 100644 --- a/source/_triggers/timer.finished.markdown +++ b/source/_triggers/timer.finished.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple timers are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + description: When multiple timers are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long ago the timer must have finished before the trigger fires. Accepts a duration string in `HH:MM:SS` format. required: false diff --git a/source/_triggers/timer.paused.markdown b/source/_triggers/timer.paused.markdown index 4b7a91a553e6..d7dbab8247ad 100644 --- a/source/_triggers/timer.paused.markdown +++ b/source/_triggers/timer.paused.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple timers are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + description: When multiple timers are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the timer must remain paused before the trigger fires. Accepts a duration string in `HH:MM:SS` format. required: false diff --git a/source/_triggers/timer.restarted.markdown b/source/_triggers/timer.restarted.markdown index 3e95c00df441..40d7daed6310 100644 --- a/source/_triggers/timer.restarted.markdown +++ b/source/_triggers/timer.restarted.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple timers are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + description: When multiple timers are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the timer must remain restarted before the trigger fires. Accepts a duration string in `HH:MM:SS` format. required: false diff --git a/source/_triggers/timer.started.markdown b/source/_triggers/timer.started.markdown index f0a77c5e66cc..58f9a4fd6374 100644 --- a/source/_triggers/timer.started.markdown +++ b/source/_triggers/timer.started.markdown @@ -53,10 +53,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: - description: When multiple timers are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + description: When multiple timers are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: How long the timer must remain started before the trigger fires. Accepts a duration string in `HH:MM:SS` format. required: false diff --git a/source/_triggers/update.update_became_available.markdown b/source/_triggers/update.update_became_available.markdown index 98e117ccf218..361eb855f29e 100644 --- a/source/_triggers/update.update_became_available.markdown +++ b/source/_triggers/update.update_became_available.markdown @@ -64,10 +64,10 @@ not available through the UI. behavior: description: > When multiple update entities are targeted, controls when the trigger - fires. Accepts `any`, `first`, or `last`. + fires. Accepts `each`, `first`, or `all`. required: false type: string - default: any + default: each for: description: > How long the update must stay available before the trigger fires. Use the diff --git a/source/_triggers/vacuum.docked.markdown b/source/_triggers/vacuum.docked.markdown index 1a800947bd05..821962ede62e 100644 --- a/source/_triggers/vacuum.docked.markdown +++ b/source/_triggers/vacuum.docked.markdown @@ -51,7 +51,7 @@ trigger: | - vacuum.upstairs - vacuum.downstairs options: - behavior: last + behavior: all {% endexample %} This example fires after both vacuums have docked. @@ -63,10 +63,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple vacuums are targeted, controls when the trigger fires. Options: `any` (every time any targeted vacuum docks), `first` (only when the first returns), or `last` (only after all have docked). + When multiple vacuums are targeted, controls when the trigger fires. Options: `each` (every time any targeted vacuum docks), `first` (only when the first returns), or `all` (only after all have docked). required: true type: string - default: any + default: each for: description: > The time the vacuum must remain docked before the trigger fires. diff --git a/source/_triggers/vacuum.errored.markdown b/source/_triggers/vacuum.errored.markdown index 0ca3ba8679d3..c6cb1324f6f1 100644 --- a/source/_triggers/vacuum.errored.markdown +++ b/source/_triggers/vacuum.errored.markdown @@ -63,10 +63,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple vacuums are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple vacuums are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > The time the vacuum must remain in the error state before the trigger fires. diff --git a/source/_triggers/vacuum.paused_cleaning.markdown b/source/_triggers/vacuum.paused_cleaning.markdown index 029760fabcd9..2715d09671b4 100644 --- a/source/_triggers/vacuum.paused_cleaning.markdown +++ b/source/_triggers/vacuum.paused_cleaning.markdown @@ -61,10 +61,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple vacuums are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple vacuums are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > The time the vacuum must remain paused before the trigger fires. diff --git a/source/_triggers/vacuum.started_cleaning.markdown b/source/_triggers/vacuum.started_cleaning.markdown index e5f62f631944..bf21c38f8ba8 100644 --- a/source/_triggers/vacuum.started_cleaning.markdown +++ b/source/_triggers/vacuum.started_cleaning.markdown @@ -60,10 +60,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple vacuums are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple vacuums are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > The time the vacuum must keep cleaning before the trigger fires. diff --git a/source/_triggers/vacuum.started_returning.markdown b/source/_triggers/vacuum.started_returning.markdown index 8cf862fbbc4a..d4341d4e09d9 100644 --- a/source/_triggers/vacuum.started_returning.markdown +++ b/source/_triggers/vacuum.started_returning.markdown @@ -60,10 +60,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple vacuums are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple vacuums are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > The time the vacuum must keep returning before the trigger fires. diff --git a/source/_triggers/valve.closed.markdown b/source/_triggers/valve.closed.markdown index a9a5892c644f..c308edcde737 100644 --- a/source/_triggers/valve.closed.markdown +++ b/source/_triggers/valve.closed.markdown @@ -62,12 +62,12 @@ behavior: description: | When multiple valves are targeted, controls when the trigger fires: - - `any`: fires every time any targeted valve closes. + - `each`: fires every time any targeted valve closes. - `first`: fires only when the first valve in the group closes. - - `last`: fires only after every targeted valve is closed. + - `all`: fires only after every targeted valve is closed. required: false type: string - default: any + default: each for: description: > How long the valve must stay closed before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:10` fires only after the valve has stayed closed for 10 seconds, which helps ignore brief or accidental closures. diff --git a/source/_triggers/valve.opened.markdown b/source/_triggers/valve.opened.markdown index 8cbea3cee9bb..ded792a67c77 100644 --- a/source/_triggers/valve.opened.markdown +++ b/source/_triggers/valve.opened.markdown @@ -62,12 +62,12 @@ behavior: description: | When multiple valves are targeted, controls when the trigger fires: - - `any`: fires every time any targeted valve opens. + - `each`: fires every time any targeted valve opens. - `first`: fires only when the first valve in the group opens. - - `last`: fires only after every targeted valve is open. + - `all`: fires only after every targeted valve is open. required: false type: string - default: any + default: each for: description: > How long the valve must stay open before the trigger fires. Accepts a duration string in `HH:MM:SS` format. For example, `00:00:30` fires only after the valve has stayed open for 30 seconds, which helps ignore brief or accidental openings. diff --git a/source/_triggers/window.closed.markdown b/source/_triggers/window.closed.markdown index 108c92b52407..9033528981c6 100644 --- a/source/_triggers/window.closed.markdown +++ b/source/_triggers/window.closed.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple windows are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple windows are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the window must stay closed before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. @@ -101,7 +101,7 @@ automation: | target: entity_id: binary_sensor.bedroom_window options: - behavior: any + behavior: each for: "00:02:00" actions: - action: climate.set_hvac_mode @@ -133,7 +133,7 @@ automation: | target: label_id: ground_floor_windows options: - behavior: last + behavior: all for: "00:01:00" actions: - action: lock.lock diff --git a/source/_triggers/window.opened.markdown b/source/_triggers/window.opened.markdown index 5bc00b9b460d..bd5d195b2006 100644 --- a/source/_triggers/window.opened.markdown +++ b/source/_triggers/window.opened.markdown @@ -55,10 +55,10 @@ YAML sometimes provides additional options for more complex use cases that are n {% options_yaml %} behavior: description: > - When multiple windows are targeted, controls when the trigger fires. Accepts `any`, `first`, or `last`. + When multiple windows are targeted, controls when the trigger fires. Accepts `each`, `first`, or `all`. required: true type: string - default: any + default: each for: description: > Duration the window must stay open before the trigger fires. Accepts a duration string like `00:05:00` for five minutes. @@ -103,7 +103,7 @@ automation: | target: entity_id: binary_sensor.kitchen_window options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: sun @@ -139,7 +139,7 @@ automation: | target: entity_id: cover.hallway_skylight options: - behavior: any + behavior: each for: "00:02:00" actions: - action: climate.turn_off From e93522031af939970ba55ca3bd5ed61380c193ea Mon Sep 17 00:00:00 2001 From: c0ffeeca7 Date: Tue, 2 Jun 2026 08:01:32 +0200 Subject: [PATCH 2/5] Remove redundant comment --- source/_includes/triggers/behavior.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_includes/triggers/behavior.md b/source/_includes/triggers/behavior.md index 20c96994caaa..ad54ff1069c1 100644 --- a/source/_includes/triggers/behavior.md +++ b/source/_includes/triggers/behavior.md @@ -2,6 +2,6 @@ When you target more than one entity (or select an area, floor, or label that contains several), the **Trigger when** option controls how the trigger responds: -- **Each** (`each` in YAML, default): the trigger fires every time any one of the targeted entities transitions. For example, if you monitor three motion sensors in the living room and someone walks past sensor 1, the automation fires. When they walk past sensor 2 a moment later, it fires again. Every individual event counts. -- **First** (`first` in YAML): the trigger fires only on the first transition in the targeted group, then waits until all targeted entities have reset before it fires again. For example, if you monitor the same three motion sensors, the automation fires when the first one picks up movement (someone entered the room). The other two firing afterward are ignored, so you get one notification per "someone walked in" event instead of three. -- **All** (`all` in YAML): the trigger fires only after the last targeted entity in the group has fired, meaning all of them are now in the expected state. For example, if you monitor the lights in the living room, bedroom, and hallway, the automation fires only once all three have turned off. This is useful for scenarios like "start the robot vacuum only after every light on the floor is off," so you know the room is truly empty. +- **Each** (default): the trigger fires every time any one of the targeted entities transitions. For example, if you monitor three motion sensors in the living room and someone walks past sensor 1, the automation fires. When they walk past sensor 2 a moment later, it fires again. Every individual event counts. +- **First**: the trigger fires only on the first transition in the targeted group, then waits until all targeted entities have reset before it fires again. For example, if you monitor the same three motion sensors, the automation fires when the first one picks up movement (someone entered the room). The other two firing afterward are ignored, so you get one notification per "someone walked in" event instead of three. +- **All**: the trigger fires only after the last targeted entity in the group has fired, meaning all of them are now in the expected state. For example, if you monitor the lights in the living room, bedroom, and hallway, the automation fires only once all three have turned off. This is useful for scenarios like "start the robot vacuum only after every light on the floor is off," so you know the room is truly empty. From ba68c92f3c52fa61b4b79c1726d7c3f0cf0a5c0e Mon Sep 17 00:00:00 2001 From: c0ffeeca7 Date: Tue, 2 Jun 2026 08:05:25 +0200 Subject: [PATCH 3/5] Remove redundant comment --- source/_triggers/battery.started_charging.markdown | 6 +++--- source/_triggers/battery.stopped_charging.markdown | 6 +++--- source/_triggers/climate.hvac_mode_changed.markdown | 12 ++++++------ source/_triggers/climate.started_cooling.markdown | 12 ++++++------ source/_triggers/climate.started_drying.markdown | 12 ++++++------ source/_triggers/climate.started_heating.markdown | 12 ++++++------ ...limate.target_humidity_crossed_threshold.markdown | 12 ++++++------ ...ate.target_temperature_crossed_threshold.markdown | 12 ++++++------ source/_triggers/climate.turned_off.markdown | 12 ++++++------ source/_triggers/climate.turned_on.markdown | 12 ++++++------ source/_triggers/humidifier.mode_changed.markdown | 12 ++++++------ source/_triggers/humidifier.started_drying.markdown | 12 ++++++------ .../humidifier.started_humidifying.markdown | 12 ++++++------ source/_triggers/humidifier.turned_off.markdown | 12 ++++++------ source/_triggers/humidifier.turned_on.markdown | 12 ++++++------ source/_triggers/humidity.crossed_threshold.markdown | 6 +++--- .../_triggers/illuminance.crossed_threshold.markdown | 6 +++--- source/_triggers/moisture.cleared.markdown | 6 +++--- source/_triggers/moisture.crossed_threshold.markdown | 6 +++--- source/_triggers/moisture.detected.markdown | 6 +++--- .../_triggers/temperature.crossed_threshold.markdown | 6 +++--- 21 files changed, 102 insertions(+), 102 deletions(-) diff --git a/source/_triggers/battery.started_charging.markdown b/source/_triggers/battery.started_charging.markdown index 8a828825a57b..c30e74d6c2cf 100644 --- a/source/_triggers/battery.started_charging.markdown +++ b/source/_triggers/battery.started_charging.markdown @@ -62,9 +62,9 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted device starts charging. - - `first` (**First** in the UI): fires only on the first device that starts charging. - - `all` (**All** in the UI): fires only after every targeted device starts charging. + - `each` (default): fires every time any targeted device starts charging. + - `first`: fires only on the first device that starts charging. + - `all`: fires only after every targeted device starts charging. required: false type: string default: each diff --git a/source/_triggers/battery.stopped_charging.markdown b/source/_triggers/battery.stopped_charging.markdown index a0c0897c9961..fb7c196f51fe 100644 --- a/source/_triggers/battery.stopped_charging.markdown +++ b/source/_triggers/battery.stopped_charging.markdown @@ -62,9 +62,9 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted device stops charging. - - `first` (**First** in the UI): fires only on the first device that stops charging. - - `all` (**All** in the UI): fires only after every targeted device stops charging. + - `each` (default): fires every time any targeted device stops charging. + - `first`: fires only on the first device that stops charging. + - `all`: fires only after every targeted device stops charging. required: false type: string default: each diff --git a/source/_triggers/climate.hvac_mode_changed.markdown b/source/_triggers/climate.hvac_mode_changed.markdown index 82ec1477ff11..fc54a18ac768 100644 --- a/source/_triggers/climate.hvac_mode_changed.markdown +++ b/source/_triggers/climate.hvac_mode_changed.markdown @@ -40,9 +40,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat changes mode. - - **First** (`first` in YAML): fires only on the first mode change. - - **All** (`all` in YAML): fires only after every targeted thermostat changes mode. + - **Each** (default): fires every time any targeted thermostat changes mode. + - **First**: fires only on the first mode change. + - **All**: fires only after every targeted thermostat changes mode. For at least: description: How long the thermostat must remain in the new mode before the trigger fires. Useful to ignore brief mode changes. Default is `0` (fires immediately). {% endoptions_ui %} @@ -86,9 +86,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat changes mode. - - `first` (**First** in the UI): fires only on the first mode change. - - `all` (**All** in the UI): fires only after every targeted thermostat changes mode. + - `each` (default): fires every time any targeted thermostat changes mode. + - `first`: fires only on the first mode change. + - `all`: fires only after every targeted thermostat changes mode. required: false type: string default: each diff --git a/source/_triggers/climate.started_cooling.markdown b/source/_triggers/climate.started_cooling.markdown index e63cacc28e4c..5922f2bfa257 100644 --- a/source/_triggers/climate.started_cooling.markdown +++ b/source/_triggers/climate.started_cooling.markdown @@ -37,9 +37,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts cooling. - - **First** (`first` in YAML): fires only when the first of a group starts cooling. - - **All** (`all` in YAML): fires only after every targeted thermostat is cooling. + - **Each** (default): fires every time any targeted thermostat starts cooling. + - **First**: fires only when the first of a group starts cooling. + - **All**: fires only after every targeted thermostat is cooling. For at least: description: How long the thermostat must stay in the cooling state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -66,9 +66,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts cooling. - - `first` (**First** in the UI): fires only when the first thermostat starts cooling. - - `all` (**All** in the UI): fires only after every targeted thermostat is cooling. + - `each` (default): fires every time any targeted thermostat starts cooling. + - `first`: fires only when the first thermostat starts cooling. + - `all`: fires only after every targeted thermostat is cooling. required: false type: string default: each diff --git a/source/_triggers/climate.started_drying.markdown b/source/_triggers/climate.started_drying.markdown index 79a0f1b45dca..bd662b70fa11 100644 --- a/source/_triggers/climate.started_drying.markdown +++ b/source/_triggers/climate.started_drying.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts drying. - - **First** (`first` in YAML): fires only when the first of a group starts drying. - - **All** (`all` in YAML): fires only after every targeted thermostat is drying. + - **Each** (default): fires every time any targeted thermostat starts drying. + - **First**: fires only when the first of a group starts drying. + - **All**: fires only after every targeted thermostat is drying. For at least: description: How long the thermostat must stay in the drying state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts drying. - - `first` (**First** in the UI): fires only when the first thermostat starts drying. - - `all` (**All** in the UI): fires only after every targeted thermostat is drying. + - `each` (default): fires every time any targeted thermostat starts drying. + - `first`: fires only when the first thermostat starts drying. + - `all`: fires only after every targeted thermostat is drying. required: false type: string default: each diff --git a/source/_triggers/climate.started_heating.markdown b/source/_triggers/climate.started_heating.markdown index 86b78c6be91e..840e84d84fb4 100644 --- a/source/_triggers/climate.started_heating.markdown +++ b/source/_triggers/climate.started_heating.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat starts heating. - - **First** (`first` in YAML): fires only when the first of a group starts heating. - - **All** (`all` in YAML): fires only after every targeted thermostat is heating. + - **Each** (default): fires every time any targeted thermostat starts heating. + - **First**: fires only when the first of a group starts heating. + - **All**: fires only after every targeted thermostat is heating. For at least: description: How long the thermostat must stay in the heating state before the trigger fires. Default is zero (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat starts heating. - - `first` (**First** in the UI): fires only when the first thermostat starts heating. - - `all` (**All** in the UI): fires only after every targeted thermostat is heating. + - `each` (default): fires every time any targeted thermostat starts heating. + - `first`: fires only when the first thermostat starts heating. + - `all`: fires only after every targeted thermostat is heating. required: false type: string default: each diff --git a/source/_triggers/climate.target_humidity_crossed_threshold.markdown b/source/_triggers/climate.target_humidity_crossed_threshold.markdown index 7e012d5801aa..aaae65ea5429 100644 --- a/source/_triggers/climate.target_humidity_crossed_threshold.markdown +++ b/source/_triggers/climate.target_humidity_crossed_threshold.markdown @@ -51,9 +51,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat crosses the threshold. - - **First** (`first` in YAML): fires only on the first threshold crossing. - - **All** (`all` in YAML): fires only after every targeted thermostat crosses the threshold. + - **Each** (default): fires every time any targeted thermostat crosses the threshold. + - **First**: fires only on the first threshold crossing. + - **All**: fires only after every targeted thermostat crosses the threshold. For at least: description: How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Useful to avoid false triggers from brief adjustments. Default is `0` (fires immediately). {% endoptions_ui %} @@ -124,9 +124,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. + - `each` (default): fires every time any targeted thermostat crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted thermostat crosses the threshold. required: false type: string default: each diff --git a/source/_triggers/climate.target_temperature_crossed_threshold.markdown b/source/_triggers/climate.target_temperature_crossed_threshold.markdown index aaa29a16dde6..b009d34884a6 100644 --- a/source/_triggers/climate.target_temperature_crossed_threshold.markdown +++ b/source/_triggers/climate.target_temperature_crossed_threshold.markdown @@ -54,9 +54,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted thermostat crosses the threshold. - - **First** (`first` in YAML): fire only on the first threshold crossing. - - **All** (`all` in YAML): fire only after every targeted thermostat crosses the threshold. + - **Each** (default): fire every time any targeted thermostat crosses the threshold. + - **First**: fire only on the first threshold crossing. + - **All**: fire only after every targeted thermostat crosses the threshold. For at least: description: How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Useful to avoid false triggers from brief adjustments. Default is `0` (fires immediately). {% endoptions_ui %} @@ -133,9 +133,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted thermostat crosses the threshold. + - `each` (default): fires every time any targeted thermostat crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted thermostat crosses the threshold. required: false type: string default: each diff --git a/source/_triggers/climate.turned_off.markdown b/source/_triggers/climate.turned_off.markdown index a95df3693542..a990c65cd957 100644 --- a/source/_triggers/climate.turned_off.markdown +++ b/source/_triggers/climate.turned_off.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat turns off. - - **First** (`first` in YAML): fires only when the first of a group turns off. - - **All** (`all` in YAML): fires only after every targeted thermostat is off. + - **Each** (default): fires every time any targeted thermostat turns off. + - **First**: fires only when the first of a group turns off. + - **All**: fires only after every targeted thermostat is off. For at least: description: How long the thermostat must stay off before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,9 +63,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted thermostat turns off. - - `first` (**First** in the UI): fires only when the first thermostat turns off. - - `all` (**All** in the UI): fires only after every targeted thermostat is off. + - `each` (default): fires every time any targeted thermostat turns off. + - `first`: fires only when the first thermostat turns off. + - `all`: fires only after every targeted thermostat is off. required: false type: string default: each diff --git a/source/_triggers/climate.turned_on.markdown b/source/_triggers/climate.turned_on.markdown index d45ddc56eabe..febbdad28607 100644 --- a/source/_triggers/climate.turned_on.markdown +++ b/source/_triggers/climate.turned_on.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fires every time any targeted thermostat turns on. - - **First** (`first` in YAML): fires only when the first of a group turns on. - - **All** (`all` in YAML): fires only after every targeted thermostat is on. + - **Each** (default): fires every time any targeted thermostat turns on. + - **First**: fires only when the first of a group turns on. + - **All**: fires only after every targeted thermostat is on. For at least: description: How long the thermostat must stay on before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,9 +63,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted thermostat turns on. - - `first` (**First** in the UI): fire only when the first thermostat turns on. - - `all` (**All** in the UI): fire only after every targeted thermostat is on. + - `each` (default): fire every time any targeted thermostat turns on. + - `first`: fire only when the first thermostat turns on. + - `all`: fire only after every targeted thermostat is on. required: false type: string default: each diff --git a/source/_triggers/humidifier.mode_changed.markdown b/source/_triggers/humidifier.mode_changed.markdown index fecff884db56..32436daac123 100644 --- a/source/_triggers/humidifier.mode_changed.markdown +++ b/source/_triggers/humidifier.mode_changed.markdown @@ -37,9 +37,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted humidifier changes mode. - - **First** (`first` in YAML): fire only on the first mode change. - - **All** (`all` in YAML): fire only after every targeted humidifier changes mode + - **Each** (default): fire every time any targeted humidifier changes mode. + - **First**: fire only on the first mode change. + - **All**: fire only after every targeted humidifier changes mode For at least: description: How long the humidifier must remain in the new mode before the trigger fires. Useful to ignore brief transitional modes some devices cycle through during startup. If you set a short delay of a few seconds, it prevents your automation from firing on that momentary blip. Default is `0` (fires immediately). {% endoptions_ui %} @@ -83,9 +83,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted humidifier changes mode. - - `first` (**First** in the UI): fire only on the first mode change. - - `all` (**All** in the UI): fire only after every targeted humidifier changes mode. + - `each` (default): fire every time any targeted humidifier changes mode. + - `first`: fire only on the first mode change. + - `all`: fire only after every targeted humidifier changes mode. required: false type: string default: each diff --git a/source/_triggers/humidifier.started_drying.markdown b/source/_triggers/humidifier.started_drying.markdown index 6cf93e277559..5b36a0834c02 100644 --- a/source/_triggers/humidifier.started_drying.markdown +++ b/source/_triggers/humidifier.started_drying.markdown @@ -36,9 +36,9 @@ Trigger when: description: | When multiple devices are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted device starts drying. - - **First** (`first` in YAML): fire only on the first device that starts drying. - - **All** (`all` in YAML): fire only after every targeted device starts drying. + - **Each** (default): fire every time any targeted device starts drying. + - **First**: fire only on the first device that starts drying. + - **All**: fire only after every targeted device starts drying. For at least: description: How long the device must be actively drying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -65,9 +65,9 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted device starts drying. - - `first` (**First** in the UI): fire only on the first device that starts drying. - - `all` (**All** in the UI): fire only after every targeted device starts drying. + - `each` (default): fire every time any targeted device starts drying. + - `first`: fire only on the first device that starts drying. + - `all`: fire only after every targeted device starts drying. required: false type: string default: each diff --git a/source/_triggers/humidifier.started_humidifying.markdown b/source/_triggers/humidifier.started_humidifying.markdown index 989697b16fe4..21209ae67c7b 100644 --- a/source/_triggers/humidifier.started_humidifying.markdown +++ b/source/_triggers/humidifier.started_humidifying.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted humidifier starts humidifying. - - **First** (`first` in YAML): fire only on the first humidifier that starts humidifying. - - **All** (`all` in YAML): fire only after every targeted humidifier starts humidifying. + - **Each** (default): fire every time any targeted humidifier starts humidifying. + - **First**: fire only on the first humidifier that starts humidifying. + - **All**: fire only after every targeted humidifier starts humidifying. For at least: description: How long the humidifier must be actively humidifying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,9 +63,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted humidifier starts humidifying. - - `first` (**First** in the UI): fire only on the first humidifier that starts humidifying. - - `all` (**All** in the UI): fire only after every targeted humidifier starts humidifying. + - `each` (default): fire every time any targeted humidifier starts humidifying. + - `first`: fire only on the first humidifier that starts humidifying. + - `all`: fire only after every targeted humidifier starts humidifying. required: false type: string default: each diff --git a/source/_triggers/humidifier.turned_off.markdown b/source/_triggers/humidifier.turned_off.markdown index 352bb655c379..68bc66cdf515 100644 --- a/source/_triggers/humidifier.turned_off.markdown +++ b/source/_triggers/humidifier.turned_off.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted humidifier turns off. - - **First** (`first` in YAML): fire only when the first of a group turns off. - - **All** (`all` in YAML): fire only after every targeted humidifier is off. + - **Each** (default): fire every time any targeted humidifier turns off. + - **First**: fire only when the first of a group turns off. + - **All**: fire only after every targeted humidifier is off. For at least: description: How long the humidifier must stay off before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted humidifier turns off. - - `first` (**First** in the UI): fire only when the first of a group turns off. - - `all` (**All** in the UI): fire only after every targeted humidifier is off. + - `each` (default): fire every time any targeted humidifier turns off. + - `first`: fire only when the first of a group turns off. + - `all`: fire only after every targeted humidifier is off. required: false type: string default: each diff --git a/source/_triggers/humidifier.turned_on.markdown b/source/_triggers/humidifier.turned_on.markdown index d526031435b9..1a74da7dfa71 100644 --- a/source/_triggers/humidifier.turned_on.markdown +++ b/source/_triggers/humidifier.turned_on.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (`each` in YAML, default): fire every time any targeted humidifier turns on. - - **First** (`first` in YAML): fire only when the first of a group turns on. - - **All** (`all` in YAML): fire only after every targeted humidifier is on. + - **Each** (default): fire every time any targeted humidifier turns on. + - **First**: fire only when the first of a group turns on. + - **All**: fire only after every targeted humidifier is on. For at least: description: How long the humidifier must stay on before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fire every time any targeted humidifier turns on. - - `first` (**First** in the UI): fire only when the first of a group turns on. - - `all` (**All** in the UI): fire only after every targeted humidifier is on. + - `each` (default): fire every time any targeted humidifier turns on. + - `first`: fire only when the first of a group turns on. + - `all`: fire only after every targeted humidifier is on. required: false type: string default: each diff --git a/source/_triggers/humidity.crossed_threshold.markdown b/source/_triggers/humidity.crossed_threshold.markdown index c0b202b6b929..b4ca9e6a87a2 100644 --- a/source/_triggers/humidity.crossed_threshold.markdown +++ b/source/_triggers/humidity.crossed_threshold.markdown @@ -145,9 +145,9 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `each` (default): fires every time any targeted entity crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted entity crosses the threshold. required: false type: string default: each diff --git a/source/_triggers/illuminance.crossed_threshold.markdown b/source/_triggers/illuminance.crossed_threshold.markdown index 28d1654fd33c..49968606c9dc 100644 --- a/source/_triggers/illuminance.crossed_threshold.markdown +++ b/source/_triggers/illuminance.crossed_threshold.markdown @@ -144,9 +144,9 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `each` (default): fires every time any targeted entity crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted entity crosses the threshold. required: false type: string default: each diff --git a/source/_triggers/moisture.cleared.markdown b/source/_triggers/moisture.cleared.markdown index 2b36460c5acc..2dfeecae572a 100644 --- a/source/_triggers/moisture.cleared.markdown +++ b/source/_triggers/moisture.cleared.markdown @@ -64,9 +64,9 @@ behavior: description: | When multiple moisture sensors are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted sensor stops detecting moisture. - - `first` (**First** in the UI): fires only when the first sensor stops detecting moisture. - - `all` (**All** in the UI): fires only after every targeted sensor stops detecting moisture. + - `each` (default): fires every time any targeted sensor stops detecting moisture. + - `first`: fires only when the first sensor stops detecting moisture. + - `all`: fires only after every targeted sensor stops detecting moisture. required: false type: string default: each diff --git a/source/_triggers/moisture.crossed_threshold.markdown b/source/_triggers/moisture.crossed_threshold.markdown index 20dff6ac0e6f..05aca12a8945 100644 --- a/source/_triggers/moisture.crossed_threshold.markdown +++ b/source/_triggers/moisture.crossed_threshold.markdown @@ -131,9 +131,9 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `each` (default): fires every time any targeted entity crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted entity crosses the threshold. required: false type: string default: each diff --git a/source/_triggers/moisture.detected.markdown b/source/_triggers/moisture.detected.markdown index b3e40e92681e..5214d98664a7 100644 --- a/source/_triggers/moisture.detected.markdown +++ b/source/_triggers/moisture.detected.markdown @@ -62,9 +62,9 @@ behavior: description: | When multiple moisture sensors are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted sensor starts detecting moisture. - - `first` (**First** in the UI): fires only when the first sensor starts detecting moisture. - - `all` (**All** in the UI): fires only after every targeted sensor starts detecting moisture. + - `each` (default): fires every time any targeted sensor starts detecting moisture. + - `first`: fires only when the first sensor starts detecting moisture. + - `all`: fires only after every targeted sensor starts detecting moisture. required: false type: string default: each diff --git a/source/_triggers/temperature.crossed_threshold.markdown b/source/_triggers/temperature.crossed_threshold.markdown index 813a2981916f..21e75e7a0107 100644 --- a/source/_triggers/temperature.crossed_threshold.markdown +++ b/source/_triggers/temperature.crossed_threshold.markdown @@ -138,9 +138,9 @@ behavior: description: | When multiple entities are targeted, controls when the trigger fires: - - `each` (**Each** in the UI, default): fires every time any targeted entity crosses the threshold. - - `first` (**First** in the UI): fires only on the first threshold crossing. - - `all` (**All** in the UI): fires only after every targeted entity crosses the threshold. + - `each` (default): fires every time any targeted entity crosses the threshold. + - `first`: fires only on the first threshold crossing. + - `all`: fires only after every targeted entity crosses the threshold. required: false type: string default: each From 702cd2552f92fa3ca65250812ddc7b7b88d95fdd Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 2 Jun 2026 08:20:07 +0200 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- ...ate.target_temperature_crossed_threshold.markdown | 6 +++--- source/_triggers/climate.turned_on.markdown | 6 +++--- source/_triggers/humidifier.mode_changed.markdown | 12 ++++++------ source/_triggers/humidifier.started_drying.markdown | 12 ++++++------ .../humidifier.started_humidifying.markdown | 12 ++++++------ source/_triggers/humidifier.turned_off.markdown | 12 ++++++------ source/_triggers/humidifier.turned_on.markdown | 12 ++++++------ 7 files changed, 36 insertions(+), 36 deletions(-) diff --git a/source/_triggers/climate.target_temperature_crossed_threshold.markdown b/source/_triggers/climate.target_temperature_crossed_threshold.markdown index b009d34884a6..805470f41667 100644 --- a/source/_triggers/climate.target_temperature_crossed_threshold.markdown +++ b/source/_triggers/climate.target_temperature_crossed_threshold.markdown @@ -54,9 +54,9 @@ Trigger when: description: | When multiple thermostats are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted thermostat crosses the threshold. - - **First**: fire only on the first threshold crossing. - - **All**: fire only after every targeted thermostat crosses the threshold. + - **Each** (default): fires every time any targeted thermostat crosses the threshold. + - **First**: fires only on the first threshold crossing. + - **All**: fires only after every targeted thermostat crosses the threshold. For at least: description: How long the thermostat setpoint must stay beyond the threshold before the trigger fires. Useful to avoid false triggers from brief adjustments. Default is `0` (fires immediately). {% endoptions_ui %} diff --git a/source/_triggers/climate.turned_on.markdown b/source/_triggers/climate.turned_on.markdown index febbdad28607..c987d6e0d463 100644 --- a/source/_triggers/climate.turned_on.markdown +++ b/source/_triggers/climate.turned_on.markdown @@ -63,9 +63,9 @@ behavior: description: | When multiple thermostats are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted thermostat turns on. - - `first`: fire only when the first thermostat turns on. - - `all`: fire only after every targeted thermostat is on. + - `each` (default): fires every time any targeted thermostat turns on. + - `first`: fires only when the first thermostat turns on. + - `all`: fires only after every targeted thermostat is on. required: false type: string default: each diff --git a/source/_triggers/humidifier.mode_changed.markdown b/source/_triggers/humidifier.mode_changed.markdown index 32436daac123..69af5bae0472 100644 --- a/source/_triggers/humidifier.mode_changed.markdown +++ b/source/_triggers/humidifier.mode_changed.markdown @@ -37,9 +37,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted humidifier changes mode. - - **First**: fire only on the first mode change. - - **All**: fire only after every targeted humidifier changes mode + - **Each** (default): fires every time any targeted humidifier changes mode. + - **First**: fires only on the first mode change. + - **All**: fires only after every targeted humidifier changes mode. For at least: description: How long the humidifier must remain in the new mode before the trigger fires. Useful to ignore brief transitional modes some devices cycle through during startup. If you set a short delay of a few seconds, it prevents your automation from firing on that momentary blip. Default is `0` (fires immediately). {% endoptions_ui %} @@ -83,9 +83,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted humidifier changes mode. - - `first`: fire only on the first mode change. - - `all`: fire only after every targeted humidifier changes mode. + - `each` (default): fires every time any targeted humidifier changes mode. + - `first`: fires only on the first mode change. + - `all`: fires only after every targeted humidifier changes mode. required: false type: string default: each diff --git a/source/_triggers/humidifier.started_drying.markdown b/source/_triggers/humidifier.started_drying.markdown index 5b36a0834c02..7756b7d5f132 100644 --- a/source/_triggers/humidifier.started_drying.markdown +++ b/source/_triggers/humidifier.started_drying.markdown @@ -36,9 +36,9 @@ Trigger when: description: | When multiple devices are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted device starts drying. - - **First**: fire only on the first device that starts drying. - - **All**: fire only after every targeted device starts drying. + - **Each** (default): fires every time any targeted device starts drying. + - **First**: fires only on the first device that starts drying. + - **All**: fires only after every targeted device starts drying. For at least: description: How long the device must be actively drying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -65,9 +65,9 @@ behavior: description: | When multiple devices are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted device starts drying. - - `first`: fire only on the first device that starts drying. - - `all`: fire only after every targeted device starts drying. + - `each` (default): fires every time any targeted device starts drying. + - `first`: fires only on the first device that starts drying. + - `all`: fires only after every targeted device starts drying. required: false type: string default: each diff --git a/source/_triggers/humidifier.started_humidifying.markdown b/source/_triggers/humidifier.started_humidifying.markdown index 21209ae67c7b..497716e9b54a 100644 --- a/source/_triggers/humidifier.started_humidifying.markdown +++ b/source/_triggers/humidifier.started_humidifying.markdown @@ -34,9 +34,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted humidifier starts humidifying. - - **First**: fire only on the first humidifier that starts humidifying. - - **All**: fire only after every targeted humidifier starts humidifying. + - **Each** (default): fires every time any targeted humidifier starts humidifying. + - **First**: fires only on the first humidifier that starts humidifying. + - **All**: fires only after every targeted humidifier starts humidifying. For at least: description: How long the humidifier must be actively humidifying before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -63,9 +63,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted humidifier starts humidifying. - - `first`: fire only on the first humidifier that starts humidifying. - - `all`: fire only after every targeted humidifier starts humidifying. + - `each` (default): fires every time any targeted humidifier starts humidifying. + - `first`: fires only on the first humidifier that starts humidifying. + - `all`: fires only after every targeted humidifier starts humidifying. required: false type: string default: each diff --git a/source/_triggers/humidifier.turned_off.markdown b/source/_triggers/humidifier.turned_off.markdown index 68bc66cdf515..b25f9795e6ea 100644 --- a/source/_triggers/humidifier.turned_off.markdown +++ b/source/_triggers/humidifier.turned_off.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted humidifier turns off. - - **First**: fire only when the first of a group turns off. - - **All**: fire only after every targeted humidifier is off. + - **Each** (default): fires every time any targeted humidifier turns off. + - **First**: fires only when the first of a group turns off. + - **All**: fires only after every targeted humidifier is off. For at least: description: How long the humidifier must stay off before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted humidifier turns off. - - `first`: fire only when the first of a group turns off. - - `all`: fire only after every targeted humidifier is off. + - `each` (default): fires every time any targeted humidifier turns off. + - `first`: fires only when the first of a group turns off. + - `all`: fires only after every targeted humidifier is off. required: false type: string default: each diff --git a/source/_triggers/humidifier.turned_on.markdown b/source/_triggers/humidifier.turned_on.markdown index 1a74da7dfa71..05cfc8985573 100644 --- a/source/_triggers/humidifier.turned_on.markdown +++ b/source/_triggers/humidifier.turned_on.markdown @@ -35,9 +35,9 @@ Trigger when: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - **Each** (default): fire every time any targeted humidifier turns on. - - **First**: fire only when the first of a group turns on. - - **All**: fire only after every targeted humidifier is on. + - **Each** (default): fires every time any targeted humidifier turns on. + - **First**: fires only when the first of a group turns on. + - **All**: fires only after every targeted humidifier is on. For at least: description: How long the humidifier must stay on before the trigger fires. Default is `0` (fires immediately). {% endoptions_ui %} @@ -64,9 +64,9 @@ behavior: description: | When multiple humidifiers are targeted, controls when the trigger fires: - - `each` (default): fire every time any targeted humidifier turns on. - - `first`: fire only when the first of a group turns on. - - `all`: fire only after every targeted humidifier is on. + - `each` (default): fires every time any targeted humidifier turns on. + - `first`: fires only when the first of a group turns on. + - `all`: fires only after every targeted humidifier is on. required: false type: string default: each From d178ee65a4febf9d5331990fbe3a655acb5e8b61 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 Date: Tue, 2 Jun 2026 08:29:04 +0200 Subject: [PATCH 5/5] Tweaks --- source/_actions/lock.lock.markdown | 2 +- source/_conditions/moisture.is_detected.markdown | 4 ++-- source/_conditions/moisture.is_not_detected.markdown | 4 ++-- source/_conditions/moisture.is_value.markdown | 4 ++-- source/_integrations/air_quality.markdown | 6 +++--- source/_integrations/alarm_control_panel.markdown | 4 ++-- source/_integrations/fan.markdown | 2 +- source/_integrations/lock.markdown | 2 +- source/_integrations/window.markdown | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/source/_actions/lock.lock.markdown b/source/_actions/lock.lock.markdown index 75de4d8f3826..4547503b2c3a 100644 --- a/source/_actions/lock.lock.markdown +++ b/source/_actions/lock.lock.markdown @@ -120,7 +120,7 @@ automation: | target: entity_id: lock.back_door options: - behavior: any + behavior: each for: "00:10:00" actions: - action: lock.lock diff --git a/source/_conditions/moisture.is_detected.markdown b/source/_conditions/moisture.is_detected.markdown index 9c71675442db..fca553daaa16 100644 --- a/source/_conditions/moisture.is_detected.markdown +++ b/source/_conditions/moisture.is_detected.markdown @@ -54,8 +54,8 @@ behavior: description: | When multiple moisture sensors are targeted, controls how results combine: - - `any` (**Any** in the UI, default): passes if at least one targeted sensor is detecting moisture. - - `all` (**All** in the UI): passes only when every targeted sensor is detecting moisture. + - `any` (default): passes if at least one targeted sensor is detecting moisture. + - `all`: passes only when every targeted sensor is detecting moisture. required: false type: string default: any diff --git a/source/_conditions/moisture.is_not_detected.markdown b/source/_conditions/moisture.is_not_detected.markdown index 8835f8414a56..2c544c19b8d6 100644 --- a/source/_conditions/moisture.is_not_detected.markdown +++ b/source/_conditions/moisture.is_not_detected.markdown @@ -54,8 +54,8 @@ behavior: description: | When multiple moisture sensors are targeted, controls how results combine: - - `any` (**Any** in the UI, default): passes if at least one targeted sensor is dry. - - `all` (**All** in the UI): passes only when every targeted sensor is dry. + - `any` (default): passes if at least one targeted sensor is dry. + - `all`: passes only when every targeted sensor is dry. required: false type: string default: any diff --git a/source/_conditions/moisture.is_value.markdown b/source/_conditions/moisture.is_value.markdown index 4a55af745af9..1d5775d09327 100644 --- a/source/_conditions/moisture.is_value.markdown +++ b/source/_conditions/moisture.is_value.markdown @@ -119,8 +119,8 @@ behavior: description: | When multiple entities are targeted, controls how results combine: - - `any` (**Any** in the UI, default): passes if at least one targeted entity meets the threshold. - - `all` (**All** in the UI): passes only when every targeted entity meets the threshold. + - `any` (default): passes if at least one targeted entity meets the threshold. + - `all`: passes only when every targeted entity meets the threshold. required: false type: string default: any diff --git a/source/_integrations/air_quality.markdown b/source/_integrations/air_quality.markdown index 4e72cdcb08f2..5b6cf7019475 100644 --- a/source/_integrations/air_quality.markdown +++ b/source/_integrations/air_quality.markdown @@ -42,7 +42,7 @@ automation: | entity_id: sensor.bedroom_co2 options: threshold: 1000 - behavior: any + behavior: each actions: - action: fan.turn_on target: @@ -69,7 +69,7 @@ automation: | target: label_id: co_sensors options: - behavior: any + behavior: each actions: - action: notify.notify data: @@ -100,7 +100,7 @@ automation: | entity_id: sensor.outdoor_pm25 options: threshold: 25 - behavior: any + behavior: each actions: - action: fan.turn_on target: diff --git a/source/_integrations/alarm_control_panel.markdown b/source/_integrations/alarm_control_panel.markdown index ee242e2ed11e..d889fd8bc439 100644 --- a/source/_integrations/alarm_control_panel.markdown +++ b/source/_integrations/alarm_control_panel.markdown @@ -146,7 +146,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each actions: - action: notify.send_message target: @@ -200,7 +200,7 @@ automation: | target: entity_id: alarm_control_panel.home_alarm options: - behavior: any + behavior: each actions: - action: notify.notify data: diff --git a/source/_integrations/fan.markdown b/source/_integrations/fan.markdown index 158e0db744cb..1e3cde0781ee 100644 --- a/source/_integrations/fan.markdown +++ b/source/_integrations/fan.markdown @@ -69,7 +69,7 @@ automation: target: entity_id: fan.bathroom options: - behavior: any + behavior: each for: "00:20:00" actions: - action: notify.send_message diff --git a/source/_integrations/lock.markdown b/source/_integrations/lock.markdown index 824e068e15b0..8dee6b48a6f6 100644 --- a/source/_integrations/lock.markdown +++ b/source/_integrations/lock.markdown @@ -61,7 +61,7 @@ automation: | target: entity_id: lock.front_door options: - behavior: any + behavior: each for: "00:00:00" actions: - action: light.turn_on diff --git a/source/_integrations/window.markdown b/source/_integrations/window.markdown index d169d366ddd0..db69528739dc 100644 --- a/source/_integrations/window.markdown +++ b/source/_integrations/window.markdown @@ -42,7 +42,7 @@ automation: | target: entity_id: binary_sensor.kitchen_window options: - behavior: any + behavior: each for: "00:00:00" conditions: - condition: sun @@ -76,7 +76,7 @@ automation: | target: entity_id: binary_sensor.bedroom_window options: - behavior: any + behavior: each for: "00:02:00" actions: - action: climate.set_hvac_mode