diff --git a/homeassistant/components/air_quality/strings.json b/homeassistant/components/air_quality/strings.json index 996bf2600570..4f232c70e8d7 100644 --- a/homeassistant/components/air_quality/strings.json +++ b/homeassistant/components/air_quality/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -249,6 +250,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -269,6 +273,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Carbon monoxide cleared" @@ -279,6 +286,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -290,6 +300,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Carbon monoxide detected" @@ -299,6 +312,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Gas cleared" @@ -308,6 +324,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Gas detected" @@ -327,6 +346,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -348,6 +370,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -369,6 +394,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -390,6 +418,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -411,6 +442,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -432,6 +466,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -453,6 +490,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -474,6 +514,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -485,6 +528,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Smoke cleared" @@ -494,6 +540,9 @@ "fields": { "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" } }, "name": "Smoke detected" @@ -513,6 +562,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -534,6 +586,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } @@ -555,6 +610,9 @@ "behavior": { "name": "[%key:component::air_quality::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::air_quality::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::air_quality::common::trigger_threshold_name%]" } diff --git a/homeassistant/components/air_quality/triggers.yaml b/homeassistant/components/air_quality/triggers.yaml index e453aeeb8756..0d38f184f075 100644 --- a/homeassistant/components/air_quality/triggers.yaml +++ b/homeassistant/components/air_quality/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: # --- Unit lists for multi-unit pollutants --- @@ -163,6 +168,7 @@ # Binary sensor detected/cleared trigger fields .trigger_binary_fields: &trigger_binary_fields behavior: *trigger_behavior + for: *trigger_for # --- Binary sensor targets --- @@ -294,6 +300,7 @@ co_crossed_threshold: target: *target_co_sensor fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -320,6 +327,7 @@ co2_crossed_threshold: target: *target_co2 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -344,6 +352,7 @@ pm1_crossed_threshold: target: *target_pm1 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -368,6 +377,7 @@ pm25_crossed_threshold: target: *target_pm25 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -392,6 +402,7 @@ pm4_crossed_threshold: target: *target_pm4 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -416,6 +427,7 @@ pm10_crossed_threshold: target: *target_pm10 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -442,6 +454,7 @@ ozone_crossed_threshold: target: *target_ozone fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -470,6 +483,7 @@ voc_crossed_threshold: target: *target_voc fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -498,6 +512,7 @@ voc_ratio_crossed_threshold: target: *target_voc_ratio fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -526,6 +541,7 @@ no_crossed_threshold: target: *target_no fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -554,6 +570,7 @@ no2_crossed_threshold: target: *target_no2 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -580,6 +597,7 @@ n2o_crossed_threshold: target: *target_n2o fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -606,6 +624,7 @@ so2_crossed_threshold: target: *target_so2 fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/alarm_control_panel/strings.json b/homeassistant/components/alarm_control_panel/strings.json index c49e3d9df337..af73810ed805 100644 --- a/homeassistant/components/alarm_control_panel/strings.json +++ b/homeassistant/components/alarm_control_panel/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_armed": { @@ -234,6 +235,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm armed" @@ -243,6 +247,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm armed away" @@ -252,6 +259,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm armed home" @@ -261,6 +271,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm armed night" @@ -270,6 +283,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm armed vacation" @@ -279,6 +295,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm disarmed" @@ -288,6 +307,9 @@ "fields": { "behavior": { "name": "[%key:component::alarm_control_panel::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::alarm_control_panel::common::trigger_for_name%]" } }, "name": "Alarm triggered" diff --git a/homeassistant/components/alarm_control_panel/triggers.yaml b/homeassistant/components/alarm_control_panel/triggers.yaml index 49723026f870..456455bb1e7a 100644 --- a/homeassistant/components/alarm_control_panel/triggers.yaml +++ b/homeassistant/components/alarm_control_panel/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: armed: *trigger_common diff --git a/homeassistant/components/assist_satellite/strings.json b/homeassistant/components/assist_satellite/strings.json index f2d32336ef68..edc3ea68a245 100644 --- a/homeassistant/components/assist_satellite/strings.json +++ b/homeassistant/components/assist_satellite/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_idle": { @@ -160,6 +161,9 @@ "fields": { "behavior": { "name": "[%key:component::assist_satellite::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::assist_satellite::common::trigger_for_name%]" } }, "name": "Satellite became idle" @@ -169,6 +173,9 @@ "fields": { "behavior": { "name": "[%key:component::assist_satellite::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::assist_satellite::common::trigger_for_name%]" } }, "name": "Satellite started listening" @@ -178,6 +185,9 @@ "fields": { "behavior": { "name": "[%key:component::assist_satellite::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::assist_satellite::common::trigger_for_name%]" } }, "name": "Satellite started processing" @@ -187,6 +197,9 @@ "fields": { "behavior": { "name": "[%key:component::assist_satellite::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::assist_satellite::common::trigger_for_name%]" } }, "name": "Satellite started responding" diff --git a/homeassistant/components/assist_satellite/triggers.yaml b/homeassistant/components/assist_satellite/triggers.yaml index 0adc9e587a6e..273a21afdb3a 100644 --- a/homeassistant/components/assist_satellite/triggers.yaml +++ b/homeassistant/components/assist_satellite/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: idle: *trigger_common listening: *trigger_common diff --git a/homeassistant/components/battery/strings.json b/homeassistant/components/battery/strings.json index 61f1698bea4e..0bd162fbd5e6 100644 --- a/homeassistant/components/battery/strings.json +++ b/homeassistant/components/battery/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -87,6 +88,9 @@ "behavior": { "name": "[%key:component::battery::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::battery::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::battery::common::trigger_threshold_name%]" } @@ -98,6 +102,9 @@ "fields": { "behavior": { "name": "[%key:component::battery::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::battery::common::trigger_for_name%]" } }, "name": "Battery low" @@ -107,6 +114,9 @@ "fields": { "behavior": { "name": "[%key:component::battery::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::battery::common::trigger_for_name%]" } }, "name": "Battery not low" @@ -116,6 +126,9 @@ "fields": { "behavior": { "name": "[%key:component::battery::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::battery::common::trigger_for_name%]" } }, "name": "Battery started charging" @@ -125,6 +138,9 @@ "fields": { "behavior": { "name": "[%key:component::battery::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::battery::common::trigger_for_name%]" } }, "name": "Battery stopped charging" diff --git a/homeassistant/components/battery/triggers.yaml b/homeassistant/components/battery/triggers.yaml index 2ca59cf423f3..055ba84068ae 100644 --- a/homeassistant/components/battery/triggers.yaml +++ b/homeassistant/components/battery/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .battery_threshold_entity: &battery_threshold_entity - domain: input_number @@ -42,21 +47,25 @@ low: fields: behavior: *trigger_behavior + for: *trigger_for target: *trigger_target_battery not_low: fields: behavior: *trigger_behavior + for: *trigger_for target: *trigger_target_battery started_charging: fields: behavior: *trigger_behavior + for: *trigger_for target: *trigger_target_charging stopped_charging: fields: behavior: *trigger_behavior + for: *trigger_for target: *trigger_target_charging level_changed: @@ -74,6 +83,7 @@ level_crossed_threshold: target: *trigger_target_percentage fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/climate/strings.json b/homeassistant/components/climate/strings.json index 52e02b111930..b589912ac46e 100644 --- a/homeassistant/components/climate/strings.json +++ b/homeassistant/components/climate/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -385,6 +386,9 @@ "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" + }, "hvac_mode": { "description": "The HVAC modes to trigger on.", "name": "Modes" @@ -397,6 +401,9 @@ "fields": { "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" } }, "name": "Climate-control device started cooling" @@ -406,6 +413,9 @@ "fields": { "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" } }, "name": "Climate-control device started drying" @@ -415,6 +425,9 @@ "fields": { "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" } }, "name": "Climate-control device started heating" @@ -434,6 +447,9 @@ "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::climate::common::trigger_threshold_name%]" } @@ -455,6 +471,9 @@ "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::climate::common::trigger_threshold_name%]" } @@ -466,6 +485,9 @@ "fields": { "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" } }, "name": "Climate-control device turned off" @@ -475,6 +497,9 @@ "fields": { "behavior": { "name": "[%key:component::climate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::climate::common::trigger_for_name%]" } }, "name": "Climate-control device turned on" diff --git a/homeassistant/components/climate/triggers.yaml b/homeassistant/components/climate/triggers.yaml index a112be840957..078e59a0489a 100644 --- a/homeassistant/components/climate/triggers.yaml +++ b/homeassistant/components/climate/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .humidity_threshold_entity: &humidity_threshold_entity - domain: input_number @@ -50,6 +55,7 @@ hvac_mode_changed: target: *trigger_climate_target fields: behavior: *trigger_behavior + for: *trigger_for hvac_mode: context: filter_target: target @@ -76,6 +82,7 @@ target_humidity_crossed_threshold: target: *trigger_climate_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: @@ -101,6 +108,7 @@ target_temperature_crossed_threshold: target: *trigger_climate_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/counter/strings.json b/homeassistant/components/counter/strings.json index 4e728b0bc44e..d164e1dddb19 100644 --- a/homeassistant/components/counter/strings.json +++ b/homeassistant/components/counter/strings.json @@ -1,6 +1,7 @@ { "common": { - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_value": { @@ -96,6 +97,9 @@ "fields": { "behavior": { "name": "[%key:component::counter::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::counter::common::trigger_for_name%]" } }, "name": "Counter reached maximum" @@ -105,6 +109,9 @@ "fields": { "behavior": { "name": "[%key:component::counter::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::counter::common::trigger_for_name%]" } }, "name": "Counter reached minimum" @@ -114,6 +121,9 @@ "fields": { "behavior": { "name": "[%key:component::counter::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::counter::common::trigger_for_name%]" } }, "name": "Counter reset" diff --git a/homeassistant/components/counter/triggers.yaml b/homeassistant/components/counter/triggers.yaml index b424d1769d71..35d5b83c0dde 100644 --- a/homeassistant/components/counter/triggers.yaml +++ b/homeassistant/components/counter/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: incremented: target: diff --git a/homeassistant/components/cover/strings.json b/homeassistant/components/cover/strings.json index 3be0ed28d79f..184a94fa67b7 100644 --- a/homeassistant/components/cover/strings.json +++ b/homeassistant/components/cover/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "awning_is_closed": { @@ -254,6 +255,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Awning closed" @@ -263,6 +267,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Awning opened" @@ -272,6 +279,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Blind closed" @@ -281,6 +291,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Blind opened" @@ -290,6 +303,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Curtain closed" @@ -299,6 +315,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Curtain opened" @@ -308,6 +327,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Shade closed" @@ -317,6 +339,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Shade opened" @@ -326,6 +351,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Shutter closed" @@ -335,6 +363,9 @@ "fields": { "behavior": { "name": "[%key:component::cover::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::cover::common::trigger_for_name%]" } }, "name": "Shutter opened" diff --git a/homeassistant/components/cover/triggers.yaml b/homeassistant/components/cover/triggers.yaml index 4b9d0a054dc9..c5f82e3ae9cd 100644 --- a/homeassistant/components/cover/triggers.yaml +++ b/homeassistant/components/cover/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: awning_closed: fields: *trigger_common_fields diff --git a/homeassistant/components/device_tracker/strings.json b/homeassistant/components/device_tracker/strings.json index ff71fb30c65c..fc2e203d2cc2 100644 --- a/homeassistant/components/device_tracker/strings.json +++ b/homeassistant/components/device_tracker/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_home": { @@ -126,6 +127,9 @@ "fields": { "behavior": { "name": "[%key:component::device_tracker::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::device_tracker::common::trigger_for_name%]" } }, "name": "Entered home" @@ -135,6 +139,9 @@ "fields": { "behavior": { "name": "[%key:component::device_tracker::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::device_tracker::common::trigger_for_name%]" } }, "name": "Left home" diff --git a/homeassistant/components/device_tracker/triggers.yaml b/homeassistant/components/device_tracker/triggers.yaml index e75f072ba8cc..1c05de139723 100644 --- a/homeassistant/components/device_tracker/triggers.yaml +++ b/homeassistant/components/device_tracker/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: entered_home: *trigger_common left_home: *trigger_common diff --git a/homeassistant/components/door/strings.json b/homeassistant/components/door/strings.json index c6e5961ceff7..47b23ee4f20d 100644 --- a/homeassistant/components/door/strings.json +++ b/homeassistant/components/door/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_closed": { @@ -45,6 +46,9 @@ "fields": { "behavior": { "name": "[%key:component::door::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::door::common::trigger_for_name%]" } }, "name": "Door closed" @@ -54,6 +58,9 @@ "fields": { "behavior": { "name": "[%key:component::door::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::door::common::trigger_for_name%]" } }, "name": "Door opened" diff --git a/homeassistant/components/door/triggers.yaml b/homeassistant/components/door/triggers.yaml index 770a79f22215..103e813a7660 100644 --- a/homeassistant/components/door/triggers.yaml +++ b/homeassistant/components/door/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: closed: fields: *trigger_common_fields diff --git a/homeassistant/components/fan/strings.json b/homeassistant/components/fan/strings.json index 51a05b6bf4cc..8b2d5f726dc9 100644 --- a/homeassistant/components/fan/strings.json +++ b/homeassistant/components/fan/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_off": { @@ -196,6 +197,9 @@ "fields": { "behavior": { "name": "[%key:component::fan::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::fan::common::trigger_for_name%]" } }, "name": "Fan turned off" @@ -205,6 +209,9 @@ "fields": { "behavior": { "name": "[%key:component::fan::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::fan::common::trigger_for_name%]" } }, "name": "Fan turned on" diff --git a/homeassistant/components/fan/triggers.yaml b/homeassistant/components/fan/triggers.yaml index 1f7d9442c420..7dee69890244 100644 --- a/homeassistant/components/fan/triggers.yaml +++ b/homeassistant/components/fan/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: turned_on: *trigger_common turned_off: *trigger_common diff --git a/homeassistant/components/garage_door/strings.json b/homeassistant/components/garage_door/strings.json index 574a117f5179..b046d7f0a676 100644 --- a/homeassistant/components/garage_door/strings.json +++ b/homeassistant/components/garage_door/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_closed": { @@ -45,6 +46,9 @@ "fields": { "behavior": { "name": "[%key:component::garage_door::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::garage_door::common::trigger_for_name%]" } }, "name": "Garage door closed" @@ -54,6 +58,9 @@ "fields": { "behavior": { "name": "[%key:component::garage_door::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::garage_door::common::trigger_for_name%]" } }, "name": "Garage door opened" diff --git a/homeassistant/components/garage_door/triggers.yaml b/homeassistant/components/garage_door/triggers.yaml index 5a36582d0dee..28460d5eefcf 100644 --- a/homeassistant/components/garage_door/triggers.yaml +++ b/homeassistant/components/garage_door/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: closed: fields: *trigger_common_fields diff --git a/homeassistant/components/gate/strings.json b/homeassistant/components/gate/strings.json index ed1f04b0fc6d..5eb93fcaebd1 100644 --- a/homeassistant/components/gate/strings.json +++ b/homeassistant/components/gate/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_closed": { @@ -45,6 +46,9 @@ "fields": { "behavior": { "name": "[%key:component::gate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::gate::common::trigger_for_name%]" } }, "name": "Gate closed" @@ -54,6 +58,9 @@ "fields": { "behavior": { "name": "[%key:component::gate::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::gate::common::trigger_for_name%]" } }, "name": "Gate opened" diff --git a/homeassistant/components/gate/triggers.yaml b/homeassistant/components/gate/triggers.yaml index b50ae440c369..4301208ab511 100644 --- a/homeassistant/components/gate/triggers.yaml +++ b/homeassistant/components/gate/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: closed: fields: *trigger_common_fields diff --git a/homeassistant/components/humidifier/strings.json b/homeassistant/components/humidifier/strings.json index ff7f28a2e5fc..351ad6008660 100644 --- a/homeassistant/components/humidifier/strings.json +++ b/homeassistant/components/humidifier/strings.json @@ -2,7 +2,8 @@ "common": { "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_drying": { @@ -211,6 +212,9 @@ "behavior": { "name": "[%key:component::humidifier::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::humidifier::common::trigger_for_name%]" + }, "mode": { "description": "The operation modes to trigger on.", "name": "Mode" @@ -223,6 +227,9 @@ "fields": { "behavior": { "name": "[%key:component::humidifier::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::humidifier::common::trigger_for_name%]" } }, "name": "Humidifier started drying" @@ -232,6 +239,9 @@ "fields": { "behavior": { "name": "[%key:component::humidifier::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::humidifier::common::trigger_for_name%]" } }, "name": "Humidifier started humidifying" @@ -241,6 +251,9 @@ "fields": { "behavior": { "name": "[%key:component::humidifier::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::humidifier::common::trigger_for_name%]" } }, "name": "Humidifier turned off" @@ -250,6 +263,9 @@ "fields": { "behavior": { "name": "[%key:component::humidifier::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::humidifier::common::trigger_for_name%]" } }, "name": "Humidifier turned on" diff --git a/homeassistant/components/humidifier/triggers.yaml b/homeassistant/components/humidifier/triggers.yaml index 12072ab71eb1..e57bf9ae92de 100644 --- a/homeassistant/components/humidifier/triggers.yaml +++ b/homeassistant/components/humidifier/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: started_drying: *trigger_common started_humidifying: *trigger_common @@ -23,6 +28,7 @@ mode_changed: target: *trigger_humidifier_target fields: behavior: *trigger_behavior + for: *trigger_for mode: context: filter_target: target diff --git a/homeassistant/components/humidity/strings.json b/homeassistant/components/humidity/strings.json index 20df0ca139a5..ed12c229b944 100644 --- a/homeassistant/components/humidity/strings.json +++ b/homeassistant/components/humidity/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -51,6 +52,9 @@ "behavior": { "name": "[%key:component::humidity::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::humidity::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::humidity::common::trigger_threshold_name%]" } diff --git a/homeassistant/components/humidity/triggers.yaml b/homeassistant/components/humidity/triggers.yaml index 0b29fcf871f1..b633507d2343 100644 --- a/homeassistant/components/humidity/triggers.yaml +++ b/homeassistant/components/humidity/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .humidity_threshold_entity: &humidity_threshold_entity - domain: input_number @@ -47,6 +52,7 @@ crossed_threshold: target: *trigger_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/illuminance/strings.json b/homeassistant/components/illuminance/strings.json index e1c478fff9f2..c78cb7f23724 100644 --- a/homeassistant/components/illuminance/strings.json +++ b/homeassistant/components/illuminance/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -68,6 +69,9 @@ "fields": { "behavior": { "name": "[%key:component::illuminance::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::illuminance::common::trigger_for_name%]" } }, "name": "Light cleared" @@ -78,6 +82,9 @@ "behavior": { "name": "[%key:component::illuminance::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::illuminance::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::illuminance::common::trigger_threshold_name%]" } @@ -89,6 +96,9 @@ "fields": { "behavior": { "name": "[%key:component::illuminance::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::illuminance::common::trigger_for_name%]" } }, "name": "Light detected" diff --git a/homeassistant/components/illuminance/triggers.yaml b/homeassistant/components/illuminance/triggers.yaml index c2f77fd42920..7f5541001c02 100644 --- a/homeassistant/components/illuminance/triggers.yaml +++ b/homeassistant/components/illuminance/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .illuminance_threshold_entity: &illuminance_threshold_entity - domain: input_number @@ -55,6 +60,7 @@ crossed_threshold: target: *trigger_numerical_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/lawn_mower/strings.json b/homeassistant/components/lawn_mower/strings.json index 973d046979af..8688562b60d6 100644 --- a/homeassistant/components/lawn_mower/strings.json +++ b/homeassistant/components/lawn_mower/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_docked": { @@ -98,6 +99,9 @@ "fields": { "behavior": { "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lawn_mower::common::trigger_for_name%]" } }, "name": "Lawn mower returned to dock" @@ -107,6 +111,9 @@ "fields": { "behavior": { "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lawn_mower::common::trigger_for_name%]" } }, "name": "Lawn mower encountered an error" @@ -116,6 +123,9 @@ "fields": { "behavior": { "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lawn_mower::common::trigger_for_name%]" } }, "name": "Lawn mower paused mowing" @@ -125,6 +135,9 @@ "fields": { "behavior": { "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lawn_mower::common::trigger_for_name%]" } }, "name": "Lawn mower started mowing" @@ -134,6 +147,9 @@ "fields": { "behavior": { "name": "[%key:component::lawn_mower::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lawn_mower::common::trigger_for_name%]" } }, "name": "Lawn mower started returning to dock" diff --git a/homeassistant/components/lawn_mower/triggers.yaml b/homeassistant/components/lawn_mower/triggers.yaml index bc3cb321cf8e..2ad04097fe1a 100644 --- a/homeassistant/components/lawn_mower/triggers.yaml +++ b/homeassistant/components/lawn_mower/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: docked: *trigger_common errored: *trigger_common diff --git a/homeassistant/components/light/strings.json b/homeassistant/components/light/strings.json index 69356bb4ad82..0f51f38465cf 100644 --- a/homeassistant/components/light/strings.json +++ b/homeassistant/components/light/strings.json @@ -36,6 +36,7 @@ "field_xy_color_name": "XY-color", "section_advanced_fields_name": "Advanced options", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -515,6 +516,9 @@ "behavior": { "name": "[%key:component::light::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::light::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::light::common::trigger_threshold_name%]" } @@ -526,6 +530,9 @@ "fields": { "behavior": { "name": "[%key:component::light::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::light::common::trigger_for_name%]" } }, "name": "Light turned off" @@ -535,6 +542,9 @@ "fields": { "behavior": { "name": "[%key:component::light::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::light::common::trigger_for_name%]" } }, "name": "Light turned on" diff --git a/homeassistant/components/light/triggers.yaml b/homeassistant/components/light/triggers.yaml index eed93d0d5361..511e32e57da6 100644 --- a/homeassistant/components/light/triggers.yaml +++ b/homeassistant/components/light/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .brightness_threshold_entity: &brightness_threshold_entity - domain: input_number @@ -46,6 +51,7 @@ brightness_crossed_threshold: target: *trigger_light_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/lock/strings.json b/homeassistant/components/lock/strings.json index b53a2f92cf3f..2a2f17401b08 100644 --- a/homeassistant/components/lock/strings.json +++ b/homeassistant/components/lock/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_jammed": { @@ -146,6 +147,9 @@ "fields": { "behavior": { "name": "[%key:component::lock::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lock::common::trigger_for_name%]" } }, "name": "Lock jammed" @@ -155,6 +159,9 @@ "fields": { "behavior": { "name": "[%key:component::lock::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lock::common::trigger_for_name%]" } }, "name": "Lock locked" @@ -164,6 +171,9 @@ "fields": { "behavior": { "name": "[%key:component::lock::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lock::common::trigger_for_name%]" } }, "name": "Lock opened" @@ -173,6 +183,9 @@ "fields": { "behavior": { "name": "[%key:component::lock::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::lock::common::trigger_for_name%]" } }, "name": "Lock unlocked" diff --git a/homeassistant/components/lock/triggers.yaml b/homeassistant/components/lock/triggers.yaml index 72b0fc5f476c..0028d0d7dc1b 100644 --- a/homeassistant/components/lock/triggers.yaml +++ b/homeassistant/components/lock/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: jammed: *trigger_common locked: *trigger_common diff --git a/homeassistant/components/media_player/strings.json b/homeassistant/components/media_player/strings.json index dea17c3ca7f5..a025a5a4f541 100644 --- a/homeassistant/components/media_player/strings.json +++ b/homeassistant/components/media_player/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_not_playing": { @@ -438,6 +439,9 @@ "fields": { "behavior": { "name": "[%key:component::media_player::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::media_player::common::trigger_for_name%]" } }, "name": "Media player paused playing" @@ -447,6 +451,9 @@ "fields": { "behavior": { "name": "[%key:component::media_player::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::media_player::common::trigger_for_name%]" } }, "name": "Media player started playing" @@ -456,6 +463,9 @@ "fields": { "behavior": { "name": "[%key:component::media_player::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::media_player::common::trigger_for_name%]" } }, "name": "Media player stopped playing" @@ -465,6 +475,9 @@ "fields": { "behavior": { "name": "[%key:component::media_player::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::media_player::common::trigger_for_name%]" } }, "name": "Media player turned off" @@ -474,6 +487,9 @@ "fields": { "behavior": { "name": "[%key:component::media_player::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::media_player::common::trigger_for_name%]" } }, "name": "Media player turned on" diff --git a/homeassistant/components/media_player/triggers.yaml b/homeassistant/components/media_player/triggers.yaml index bb88552a8c1f..2d7ac72b01d6 100644 --- a/homeassistant/components/media_player/triggers.yaml +++ b/homeassistant/components/media_player/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: paused_playing: *trigger_common started_playing: *trigger_common diff --git a/homeassistant/components/moisture/strings.json b/homeassistant/components/moisture/strings.json index d125ccf9a5bd..2e60772c5524 100644 --- a/homeassistant/components/moisture/strings.json +++ b/homeassistant/components/moisture/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -68,6 +69,9 @@ "fields": { "behavior": { "name": "[%key:component::moisture::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::moisture::common::trigger_for_name%]" } }, "name": "Moisture cleared" @@ -78,6 +82,9 @@ "behavior": { "name": "[%key:component::moisture::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::moisture::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::moisture::common::trigger_threshold_name%]" } @@ -89,6 +96,9 @@ "fields": { "behavior": { "name": "[%key:component::moisture::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::moisture::common::trigger_for_name%]" } }, "name": "Moisture detected" diff --git a/homeassistant/components/moisture/triggers.yaml b/homeassistant/components/moisture/triggers.yaml index a8225e53b7ec..deabf5ffacdf 100644 --- a/homeassistant/components/moisture/triggers.yaml +++ b/homeassistant/components/moisture/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .moisture_threshold_entity: &moisture_threshold_entity - domain: input_number @@ -57,6 +62,7 @@ crossed_threshold: target: *trigger_numerical_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/occupancy/strings.json b/homeassistant/components/occupancy/strings.json index 062dfa8e3369..e4b1a449ee7e 100644 --- a/homeassistant/components/occupancy/strings.json +++ b/homeassistant/components/occupancy/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_detected": { @@ -45,6 +46,9 @@ "fields": { "behavior": { "name": "[%key:component::occupancy::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::occupancy::common::trigger_for_name%]" } }, "name": "Occupancy cleared" @@ -54,6 +58,9 @@ "fields": { "behavior": { "name": "[%key:component::occupancy::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::occupancy::common::trigger_for_name%]" } }, "name": "Occupancy detected" diff --git a/homeassistant/components/occupancy/triggers.yaml b/homeassistant/components/occupancy/triggers.yaml index 9613e28c4ce0..6bd9071b1abd 100644 --- a/homeassistant/components/occupancy/triggers.yaml +++ b/homeassistant/components/occupancy/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: detected: fields: *trigger_common_fields diff --git a/homeassistant/components/person/strings.json b/homeassistant/components/person/strings.json index af211e373a7e..2fc97649a444 100644 --- a/homeassistant/components/person/strings.json +++ b/homeassistant/components/person/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_home": { @@ -77,6 +78,9 @@ "fields": { "behavior": { "name": "[%key:component::person::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::person::common::trigger_for_name%]" } }, "name": "Entered home" @@ -86,6 +90,9 @@ "fields": { "behavior": { "name": "[%key:component::person::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::person::common::trigger_for_name%]" } }, "name": "Left home" diff --git a/homeassistant/components/person/triggers.yaml b/homeassistant/components/person/triggers.yaml index 31208321b54d..2995ea6aa113 100644 --- a/homeassistant/components/person/triggers.yaml +++ b/homeassistant/components/person/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: entered_home: *trigger_common left_home: *trigger_common diff --git a/homeassistant/components/power/strings.json b/homeassistant/components/power/strings.json index 9be4af702e59..d0ba3f150b57 100644 --- a/homeassistant/components/power/strings.json +++ b/homeassistant/components/power/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -51,6 +52,9 @@ "behavior": { "name": "[%key:component::power::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::power::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::power::common::trigger_threshold_name%]" } diff --git a/homeassistant/components/power/triggers.yaml b/homeassistant/components/power/triggers.yaml index 22dac96db363..0a9713c7b04b 100644 --- a/homeassistant/components/power/triggers.yaml +++ b/homeassistant/components/power/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .power_units: &power_units - "mW" @@ -49,6 +54,7 @@ crossed_threshold: target: *trigger_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/remote/strings.json b/homeassistant/components/remote/strings.json index ecd01e20611f..e85f1bd025fc 100644 --- a/homeassistant/components/remote/strings.json +++ b/homeassistant/components/remote/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_off": { @@ -159,6 +160,9 @@ "fields": { "behavior": { "name": "[%key:component::remote::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::remote::common::trigger_for_name%]" } }, "name": "Remote turned off" @@ -168,6 +172,9 @@ "fields": { "behavior": { "name": "[%key:component::remote::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::remote::common::trigger_for_name%]" } }, "name": "Remote turned on" diff --git a/homeassistant/components/remote/triggers.yaml b/homeassistant/components/remote/triggers.yaml index 6dadeba1fd2a..d183f09a01f5 100644 --- a/homeassistant/components/remote/triggers.yaml +++ b/homeassistant/components/remote/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: turned_off: *trigger_common turned_on: *trigger_common diff --git a/homeassistant/components/schedule/strings.json b/homeassistant/components/schedule/strings.json index b8d3581a696d..e805fa90cc64 100644 --- a/homeassistant/components/schedule/strings.json +++ b/homeassistant/components/schedule/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_off": { @@ -76,6 +77,9 @@ "fields": { "behavior": { "name": "[%key:component::schedule::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::schedule::common::trigger_for_name%]" } }, "name": "Schedule block ended" @@ -85,6 +89,9 @@ "fields": { "behavior": { "name": "[%key:component::schedule::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::schedule::common::trigger_for_name%]" } }, "name": "Schedule block started" diff --git a/homeassistant/components/schedule/triggers.yaml b/homeassistant/components/schedule/triggers.yaml index e05c515b4013..b95b811e275c 100644 --- a/homeassistant/components/schedule/triggers.yaml +++ b/homeassistant/components/schedule/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: turned_off: *trigger_common turned_on: *trigger_common diff --git a/homeassistant/components/siren/strings.json b/homeassistant/components/siren/strings.json index e20c34217364..607dbeb54318 100644 --- a/homeassistant/components/siren/strings.json +++ b/homeassistant/components/siren/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_off": { @@ -87,6 +88,9 @@ "fields": { "behavior": { "name": "[%key:component::siren::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::siren::common::trigger_for_name%]" } }, "name": "Siren turned off" @@ -96,6 +100,9 @@ "fields": { "behavior": { "name": "[%key:component::siren::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::siren::common::trigger_for_name%]" } }, "name": "Siren turned on" diff --git a/homeassistant/components/siren/triggers.yaml b/homeassistant/components/siren/triggers.yaml index 798b9dcd8977..570f1da88197 100644 --- a/homeassistant/components/siren/triggers.yaml +++ b/homeassistant/components/siren/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: turned_off: *trigger_common turned_on: *trigger_common diff --git a/homeassistant/components/switch/strings.json b/homeassistant/components/switch/strings.json index 40f629b9e641..77561566fc18 100644 --- a/homeassistant/components/switch/strings.json +++ b/homeassistant/components/switch/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_off": { @@ -101,6 +102,9 @@ "fields": { "behavior": { "name": "[%key:component::switch::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::switch::common::trigger_for_name%]" } }, "name": "Switch turned off" @@ -110,6 +114,9 @@ "fields": { "behavior": { "name": "[%key:component::switch::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::switch::common::trigger_for_name%]" } }, "name": "Switch turned on" diff --git a/homeassistant/components/switch/triggers.yaml b/homeassistant/components/switch/triggers.yaml index 98cc334d8f56..e5ff762f4aec 100644 --- a/homeassistant/components/switch/triggers.yaml +++ b/homeassistant/components/switch/triggers.yaml @@ -14,6 +14,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: turned_off: *trigger_common turned_on: *trigger_common diff --git a/homeassistant/components/temperature/strings.json b/homeassistant/components/temperature/strings.json index c970474b78e0..a1215d2256e3 100644 --- a/homeassistant/components/temperature/strings.json +++ b/homeassistant/components/temperature/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -51,6 +52,9 @@ "behavior": { "name": "[%key:component::temperature::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::temperature::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::temperature::common::trigger_threshold_name%]" } diff --git a/homeassistant/components/temperature/triggers.yaml b/homeassistant/components/temperature/triggers.yaml index 1db551aedf82..61e8e532d953 100644 --- a/homeassistant/components/temperature/triggers.yaml +++ b/homeassistant/components/temperature/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .temperature_units: &temperature_units - "°C" @@ -47,6 +52,7 @@ crossed_threshold: target: *trigger_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/update/strings.json b/homeassistant/components/update/strings.json index a067324eb8f6..031a665d3764 100644 --- a/homeassistant/components/update/strings.json +++ b/homeassistant/components/update/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_available": { @@ -125,6 +126,9 @@ "fields": { "behavior": { "name": "[%key:component::update::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::update::common::trigger_for_name%]" } }, "name": "Update became available" diff --git a/homeassistant/components/update/triggers.yaml b/homeassistant/components/update/triggers.yaml index e4a276dd38ec..0dfd37b37895 100644 --- a/homeassistant/components/update/triggers.yaml +++ b/homeassistant/components/update/triggers.yaml @@ -13,5 +13,10 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: update_became_available: *trigger_common diff --git a/homeassistant/components/vacuum/strings.json b/homeassistant/components/vacuum/strings.json index 02a8605c369c..509676031356 100644 --- a/homeassistant/components/vacuum/strings.json +++ b/homeassistant/components/vacuum/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_cleaning": { @@ -190,6 +191,9 @@ "fields": { "behavior": { "name": "[%key:component::vacuum::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::vacuum::common::trigger_for_name%]" } }, "name": "Vacuum returned to dock" @@ -199,6 +203,9 @@ "fields": { "behavior": { "name": "[%key:component::vacuum::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::vacuum::common::trigger_for_name%]" } }, "name": "Vacuum encountered an error" @@ -208,6 +215,9 @@ "fields": { "behavior": { "name": "[%key:component::vacuum::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::vacuum::common::trigger_for_name%]" } }, "name": "Vacuum cleaner paused cleaning" @@ -217,6 +227,9 @@ "fields": { "behavior": { "name": "[%key:component::vacuum::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::vacuum::common::trigger_for_name%]" } }, "name": "Vacuum cleaner started cleaning" @@ -226,6 +239,9 @@ "fields": { "behavior": { "name": "[%key:component::vacuum::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::vacuum::common::trigger_for_name%]" } }, "name": "Vacuum cleaner started returning to dock" diff --git a/homeassistant/components/vacuum/triggers.yaml b/homeassistant/components/vacuum/triggers.yaml index e0266db92bcb..51871c51ef41 100644 --- a/homeassistant/components/vacuum/triggers.yaml +++ b/homeassistant/components/vacuum/triggers.yaml @@ -13,6 +13,11 @@ - last - any translation_key: trigger_behavior + for: + required: true + default: 00:00:00 + selector: + duration: docked: *trigger_common errored: *trigger_common diff --git a/homeassistant/components/valve/strings.json b/homeassistant/components/valve/strings.json index 3775f38fb185..e742ba5db836 100644 --- a/homeassistant/components/valve/strings.json +++ b/homeassistant/components/valve/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_closed": { @@ -96,6 +97,9 @@ "fields": { "behavior": { "name": "[%key:component::valve::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::valve::common::trigger_for_name%]" } }, "name": "Valve closed" @@ -105,6 +109,9 @@ "fields": { "behavior": { "name": "[%key:component::valve::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::valve::common::trigger_for_name%]" } }, "name": "Valve opened" diff --git a/homeassistant/components/valve/triggers.yaml b/homeassistant/components/valve/triggers.yaml index aaf09598d65a..6d60690c48f4 100644 --- a/homeassistant/components/valve/triggers.yaml +++ b/homeassistant/components/valve/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: closed: *trigger_common opened: *trigger_common diff --git a/homeassistant/components/water_heater/strings.json b/homeassistant/components/water_heater/strings.json index 1e7da70662aa..1d239c6e0e4c 100644 --- a/homeassistant/components/water_heater/strings.json +++ b/homeassistant/components/water_heater/strings.json @@ -3,6 +3,7 @@ "condition_behavior_name": "Condition passes if", "condition_threshold_name": "Threshold type", "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least", "trigger_threshold_name": "Threshold type" }, "conditions": { @@ -184,6 +185,9 @@ "behavior": { "name": "[%key:component::water_heater::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::water_heater::common::trigger_for_name%]" + }, "operation_mode": { "description": "The operation modes to trigger on.", "name": "Operation mode" @@ -206,6 +210,9 @@ "behavior": { "name": "[%key:component::water_heater::common::trigger_behavior_name%]" }, + "for": { + "name": "[%key:component::water_heater::common::trigger_for_name%]" + }, "threshold": { "name": "[%key:component::water_heater::common::trigger_threshold_name%]" } @@ -217,6 +224,9 @@ "fields": { "behavior": { "name": "[%key:component::water_heater::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::water_heater::common::trigger_for_name%]" } }, "name": "Water heater turned off" @@ -226,6 +236,9 @@ "fields": { "behavior": { "name": "[%key:component::water_heater::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::water_heater::common::trigger_for_name%]" } }, "name": "Water heater turned on" diff --git a/homeassistant/components/water_heater/triggers.yaml b/homeassistant/components/water_heater/triggers.yaml index 581b7dbb58c3..1202e11324b8 100644 --- a/homeassistant/components/water_heater/triggers.yaml +++ b/homeassistant/components/water_heater/triggers.yaml @@ -13,6 +13,11 @@ - first - last - any + for: &trigger_for + required: true + default: 00:00:00 + selector: + duration: .temperature_units: &temperature_units - "°C" @@ -30,6 +35,7 @@ operation_mode_changed: target: *trigger_water_heater_target fields: behavior: *trigger_behavior + for: *trigger_for operation_mode: context: filter_target: target @@ -62,6 +68,7 @@ target_temperature_crossed_threshold: target: *trigger_water_heater_target fields: behavior: *trigger_behavior + for: *trigger_for threshold: required: true selector: diff --git a/homeassistant/components/window/strings.json b/homeassistant/components/window/strings.json index 5f8de98998f7..8e0c38399f09 100644 --- a/homeassistant/components/window/strings.json +++ b/homeassistant/components/window/strings.json @@ -1,7 +1,8 @@ { "common": { "condition_behavior_name": "Condition passes if", - "trigger_behavior_name": "Trigger when" + "trigger_behavior_name": "Trigger when", + "trigger_for_name": "For at least" }, "conditions": { "is_closed": { @@ -45,6 +46,9 @@ "fields": { "behavior": { "name": "[%key:component::window::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::window::common::trigger_for_name%]" } }, "name": "Window closed" @@ -54,6 +58,9 @@ "fields": { "behavior": { "name": "[%key:component::window::common::trigger_behavior_name%]" + }, + "for": { + "name": "[%key:component::window::common::trigger_for_name%]" } }, "name": "Window opened" diff --git a/homeassistant/components/window/triggers.yaml b/homeassistant/components/window/triggers.yaml index 4d770a85d2ca..8a435c21bab1 100644 --- a/homeassistant/components/window/triggers.yaml +++ b/homeassistant/components/window/triggers.yaml @@ -9,6 +9,11 @@ - first - last - any + for: + required: true + default: 00:00:00 + selector: + duration: closed: fields: *trigger_common_fields