条件
可以在脚本或自动化中使用条件,以防止进一步执行。当条件不返回true时,脚本或自动化停止执行。当时的条件会查看系统。例如,条件可以测试当前打开还是关闭开关。
与触发器不同,这总是或者
,条件是和
默认情况下 - 所有条件都必须正确。
所有条件都支持可选的别名
。
逻辑条件
和条件
在一个条件语句中测试多个条件。如果所有嵌入式条件都是有效的,则通过。
(健康)状况:别名:“保卢斯家和温度以下20”(健康)状况:和条件:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
如果您不想组合和 /或条件,则可以连续列出它们。
以下配置与上面列出的配置相同:
(健康)状况:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
目前,您需要将其格式化这样的条件,以便能够使用<一个href="//www.jameselles.com/docs/automation/editor/">自动化编辑器。
和条件还具有速记形式。以下配置与上面列出的配置相同:
(健康)状况:别名:“保卢斯家和温度以下20”和:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
或条件
在一个条件语句中测试多个条件。通过任何嵌入式条件有效。
(健康)状况:别名:“保卢斯家或者温度以下20”(健康)状况:或者条件:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
或条件还具有速记形式。以下配置与上面列出的配置相同:
(健康)状况:别名:“保卢斯家或者温度以下20”或者:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
混合和 /或条件
在一个条件语句中测试多个和 /或条件。通过任何嵌入式条件有效。这使您可以将几种和 /或条件混合在一起。
(健康)状况:(健康)状况:和条件:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-(健康)状况:或者条件:-(健康)状况:状态ENTITY_ID:传感器。Weather_Precip状态:“雨”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
或以速记形式:
(健康)状况:和:-(健康)状况:状态ENTITY_ID:“device_tracker.paulus”状态:“家”-或者:-(健康)状况:状态ENTITY_ID:传感器。Weather_Precip状态:“雨”-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
不条件
在一个条件语句中测试多个条件。如果所有嵌入条件都是不是有效的。
(健康)状况:别名:“保卢斯不是家和警报不是解除武装”(健康)状况:不是条件:-(健康)状况:状态ENTITY_ID:device_tracker.paulus状态:“家”-(健康)状况:状态ENTITY_ID:alarm_control_panel.home_alarm状态:解除武装
不条件还具有速记形式。以下配置与上面列出的配置相同:
(健康)状况:别名:“保卢斯不是家和警报不是解除武装”不是:-(健康)状况:状态ENTITY_ID:device_tracker.paulus状态:“家”-(健康)状况:状态ENTITY_ID:alarm_control_panel.home_alarm状态:解除武装
数字状态条件
这种类型的条件试图解析指定实体的状态或实体的属性作为数字,如果值匹配阈值,则触发。
如果两者以下
和以上
指定,两个测试必须通过。
(健康)状况:别名:“温度之间17和25学位”(健康)状况:numeric_stateENTITY_ID:传感器以上:17以下:25
您可以选择使用value_template
在测试状态之前处理状态的价值。
(健康)状况:(健康)状况:numeric_stateENTITY_ID:传感器以上:17以下:25#如果您需要调整传感器值value_template:“{{{float(state.state)+2}}””
也可以一次针对多个实体测试条件。如果情况将过去全部实体符合阈值。
(健康)状况:(健康)状况:numeric_stateENTITY_ID:-传感器。Kitchen_Temperature-传感器。living_room_temperature以下:18
或者,条件可以针对状态属性进行测试。如果实体的属性值与阈值匹配,则条件将通过。
(健康)状况:(健康)状况:numeric_stateENTITY_ID:气候.living_room_thermostat属性:温度以上:17以下:25
编号助手(input_number
实体),数字
和传感器
包含数字值的实体可以在以上
和以下
使状况更具动态性的选项。
(健康)状况:(健康)状况:numeric_stateENTITY_ID:气候.living_room_thermostat属性:温度以上:input_number.temperature_threshold_low以下:input_number.temperature_threshold_high
状态状况
测试实体是指定状态。
(健康)状况:别名:“保卢斯不是家为了一个小时和一个少量”(健康)状况:状态ENTITY_ID:device_tracker.paulus状态:“不在家”#可选:仅当状态在上次x时间时才触发。为了:小时:1分钟:10秒:5
也可以一次针对多个实体测试条件。如果情况将过去全部实体与国家匹配。
(健康)状况:(健康)状况:状态ENTITY_ID:-Light.Kitchen-light.living_room状态:“上”
如果其中一个实体匹配,则与其匹配,而是可能。在下面的示例中,情况将通过任何实体与国家匹配。
(健康)状况:(健康)状况:状态ENTITY_ID:-binary_sensor.motion_sensor_left-binary_sensor.motion_sensor_right匹配:任何状态:“上”
测试实体是否与一组可能的条件匹配;如果实体与给出的一个状态匹配,则条件将通过。
(健康)状况:(健康)状况:状态ENTITY_ID:alarm_control_panel.home状态:-“Armed_away”-“Armed_home”
或者,将多个实体与多个状态相结合。在下面的示例中,两个媒体玩家都需要暂停或玩耍才能通过。
(健康)状况:(健康)状况:状态ENTITY_ID:-Media_player.living_room-Media_player.kitchen状态:-“播放”-“暂停”
或者,条件可以针对状态属性进行测试。如果属性与给定状态匹配,则条件将通过。
(健康)状况:(健康)状况:状态ENTITY_ID:气候.living_room_thermostat属性:HVAC_MODES状态:“热”
最后,状态
选项接受助手实体(也称为输入_*
实体)。如果实体的状态与给定辅助实体的状态匹配,则条件将通过。
(健康)状况:(健康)状况:状态ENTITY_ID:alarm_control_panel.home状态:input_select.guest_mode
太阳状况
太阳状态状况
太阳状态可用于测试太阳是否落山还是升起。
(健康)状况:别名:“太阳向上”(健康)状况:状态#“天”条件:从日出到日落ENTITY_ID:太阳状态:“上面_horizon”
(健康)状况:别名:“太阳下”(健康)状况:状态#从日落到日出ENTITY_ID:太阳状态:“下面_horizon”
太阳高程条件
太阳高程可用于测试太阳是否已经落下或升起,是黄昏,是夜晚等。发生扳机时。有关太阳高程的深入解释,请参阅<一个href="//www.jameselles.com/docs/automation/trigger/">太阳高程扳机。
(健康)状况:(健康)状况:和#“暮光”条件:黄昏和黎明,在典型的位置条件:-(健康)状况:模板value_template:“{{{state_attr('sun.sun','海拔')<0}}””-(健康)状况:模板value_template:“{{{state_attr('sun.sun','海拔')>-6}}””
(健康)状况:(健康)状况:模板#“夜晚”条件:从黄昏到黎明,在典型的位置value_template:“{{{state_attr('sun.sun','海拔')<-6}}””
日落/日出条件
当发生扳机时,太阳状况还可以测试太阳是否已经落下或升起。这前
和后
键只能设置为日落
或者日出
。它们具有相应的可选偏移值(forter_offset
,,,,after_offset
)可以添加的,类似于<一个href="//www.jameselles.com/docs/automation/trigger/">太阳扳机。当使用两个键时,结果是逻辑和
单独的条件。
请注意,如果仅前
使用钥匙,条件将是真的
从午夜开始直到日出/日落。要是后
使用钥匙,条件将是真的
从日落/日出至午夜。因此,要涵盖日落和日出之间的时间之后:日落
和日出前
作为2个单独的条件,并使用或者
。
在这种情况下,建议使用评估太阳高程的条件,而不是日落/日出条件。
这是日落之前1小时偏移的一个例子:
(健康)状况:(健康)状况:太阳后:日落after_offset:“-01:00:00“
这是“黑暗的” - 等同于状态条件太阳
的下面_horizon
:
(健康)状况:-(健康)状况:太阳后:日落前:日出
这是“光线” - 等同于状态条件太阳
的上方_horizon
:
(健康)状况:-(健康)状况:太阳后:日出前:日落
在这种情况下,我们不能使用两个键,因为它永远是错误的
。
(健康)状况:(健康)状况:或者条件:-(健康)状况:太阳后:日落-(健康)状况:太阳前:日出
下面提供了视觉时间表,显示了这些条件何时真实的示例。在此图表中,日出时间为6:00,日落在18:00(下午6:00)。图表的绿色区域表示指定条件何时为真。
模板条件
模板条件测试是否<一个href="//www.jameselles.com/topics/templating/">给定的模板使一个等于true的值。这是通过使模板导致真实布尔表达或通过使模板渲染“ true”来实现的。
(健康)状况:别名:“IPhone电池以上50%”(健康)状况:模板value_template:“{{{(state_attr('device_tracker.iphone','Battuct_level')| int)>50}}””
在自动化中,模板条件也可以访问扳机
变量为<一个href="//www.jameselles.com/getting-started/automation-templating/">在这里描述。
模板条件速记符号
模板条件具有可用于使您的脚本和自动化较短的速记符号。
例如:
条件:“{{{(state_attr('device_tracker.iphone','Battuct_level')| int)>50}}””
或在条件列表中,允许使用本章中所述的现有条件和一个或多个速记模板条件
条件:-“{{{(state_attr('device_tracker.iphone','Battuct_level')| int)>50}}””-(健康)状况:状态ENTITY_ID:alarm_control_panel.home状态:Armed_away-“{{{is_state('device_tracker.iphone','离开')}}””
该速记符号可以在接受条件的家庭助理中到处使用。必威是什么例如,在<一个href="#and-condition">和
,,,,<一个href="#or-condition">或者
和<一个href="#not-condition">不是
条件:
(健康)状况:(健康)状况:或者条件:-“{{{is_state('device_tracker.iphone','离开')}}””-(健康)状况:numeric_stateENTITY_ID:“传感器。以下:20
它也得到了支持重复
动作尽管
或者直到
选项,或选择
动作条件
选项:
-尽管:“{{{is_state('sensor.mode','家')和重复。索引<10}}””序列:-...
-选择:-条件:“{{{is_state('sensor.mode','家')和重复。索引<10}}””序列:-...
它也得到了脚本或自动化的支持(健康)状况
行动:
-(健康)状况:“{{{is_state('device_tracker.iphone','离开')}}””
时间条件
时间条件可以测试是否在指定的时间之后,指定时间或一周中的某个一天。
(健康)状况:别名:“时间15〜02“(健康)状况:时间#至少需要以下一项。后:“15:00:00”前:“02:00:00”工作日:-周一-星期三-星期五
有效值工作日
是周一
,,,,星期二
,,,,星期三
,,,,星期四
,,,,星期五
,,,,坐着
,,,,太阳
。请注意,如果仅前
使用钥匙,条件将是真的
从午夜开始直到指定的时间。要是后
使用钥匙,条件将是真的
从指定的时间至午夜。如果时间条件窗口可以跨越午夜阈值两个都后
和前
使用键。在上面的示例中,条件窗口为下午3点至凌晨2点。
通过使用<一个href="//www.jameselles.com/integrations/workday/">工作日二进制传感器。
为了后
和前
选项时间帮手(input_dateTime
实体)或另一个传感器
可以使用包含带有“时间戳”设备类的时间戳的实体。
(健康)状况:-别名:“例子引用一个时间帮手”(健康)状况:时间后:input_datetime.house_silent_hours_start前:input_datetime.house_silent_hours_end-别名:“例子引用其他传感器”后:传感器
请注意,时间条件仅需考虑时间。如果引用的传感器或助手实体包含带日期的时间戳,则日期零件被完全忽略。
触发条件
触发条件可以测试是否是由触发器确定的某个触发器触发的自动化ID
。
(健康)状况:(健康)状况:扳机ID:event_trigger
对于由其索引标识的触发器,允许字符串和整数:
(健康)状况:(健康)状况:扳机ID:“0”
(健康)状况:(健康)状况:扳机ID:0
可以给出触发器的列表:
(健康)状况:(健康)状况:扳机ID:-Event_1_trigger-Event_2_trigger
区域条件
区域条件测试如果实体在特定区域中。为了使区域自动化工作,您需要设置一个支持报告GPS坐标的设备跟踪器平台。
(健康)状况:别名:“保卢斯在家”(健康)状况:区ENTITY_ID:device_tracker.paulus区:区域
也可以一次针对多个实体测试条件。如果所有实体都在指定区域中,则条件将通过。
(健康)状况:(健康)状况:区ENTITY_ID:-device_tracker.frenck-device_tracker.daphne区:区域
测试实体是否与一组可能的区域匹配;如果实体位于其中一个区域中,则条件将通过。
(健康)状况:(健康)状况:区ENTITY_ID:device_tracker.paulus状态:-区域-区域
或者,将多个实体与多个区域相结合。在下面的示例中,两个实体都必须在家庭或工作区中以通过。
(健康)状况:(健康)状况:区ENTITY_ID:-device_tracker.frenck-device_tracker.daphne状态:-区域-区域
例子
(健康)状况:-(健康)状况:numeric_stateENTITY_ID:太阳value_template:“{{{州}}””以下:1-(健康)状况:状态ENTITY_ID:light.living_room状态:“离开”-(健康)状况:时间前:“23:00:00”后:“14:00:00”-(健康)状况:状态ENTITY_ID:script.light_turned_off_5min状态:“离开”
禁用条件
每个单独的条件都可以禁用,而无需删除。为此,添加启用:false
到条件配置。
如果您想暂时禁用条件,例如进行测试,这可能很有用。残疾条件将始终通过。
例如:
#由于禁用,这种情况将始终通过。(健康)状况:已启用:错误的(健康)状况:状态ENTITY_ID:太阳状态:“上面_horizon”