条件


可以在脚本或自动化中使用条件,以防止进一步执行。当条件不返回true时,脚本或自动化停止执行。当时的条件会查看系统。例如,条件可以测试当前打开还是关闭开关。

与触发器不同,这总是或者,条件是默认情况下 - 所有条件都必须正确。

所有条件都支持可选的别名

逻辑条件

和条件

在一个条件语句中测试多个条件。如果所有嵌入式条件都是有效的,则通过。

(健康)状况别名保卢斯温度以下20”(健康)状况条件-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况numeric_stateENTITY_ID传感器。以下20

如果您不想组合和 /或条件,则可以连续列出它们。

以下配置与上面列出的配置相同:

(健康)状况-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况numeric_stateENTITY_ID传感器。以下20

目前,您需要将其格式化这样的条件,以便能够使用<一个href="//www.jameselles.com/docs/automation/editor/">自动化编辑器。

和条件还具有速记形式。以下配置与上面列出的配置相同:

(健康)状况别名保卢斯温度以下20”-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况numeric_stateENTITY_ID传感器。以下20

或条件

在一个条件语句中测试多个条件。通过任何嵌入式条件有效。

(健康)状况别名保卢斯或者温度以下20”(健康)状况或者条件-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况numeric_stateENTITY_ID传感器。以下20

或条件还具有速记形式。以下配置与上面列出的配置相同:

(健康)状况别名保卢斯或者温度以下20”或者-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况numeric_stateENTITY_ID传感器。以下20

混合和 /或条件

在一个条件语句中测试多个和 /或条件。通过任何嵌入式条件有效。这使您可以将几种和 /或条件混合在一起。

(健康)状况(健康)状况条件-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-(健康)状况或者条件-(健康)状况状态ENTITY_ID传感器。Weather_Precip状态雨”-(健康)状况numeric_stateENTITY_ID传感器。以下20

或以速记形式:

(健康)状况-(健康)状况状态ENTITY_IDdevice_tracker.paulus”状态家”-或者-(健康)状况状态ENTITY_ID传感器。Weather_Precip状态雨”-(健康)状况numeric_stateENTITY_ID传感器。以下20

不条件

在一个条件语句中测试多个条件。如果所有嵌入条件都是不是有效的。

(健康)状况别名保卢斯不是警报不是解除武装”(健康)状况不是条件-(健康)状况状态ENTITY_IDdevice_tracker.paulus状态家”-(健康)状况状态ENTITY_IDalarm_control_panel.home_alarm状态解除武装

不条件还具有速记形式。以下配置与上面列出的配置相同:

(健康)状况别名保卢斯不是警报不是解除武装”不是-(健康)状况状态ENTITY_IDdevice_tracker.paulus状态家”-(健康)状况状态ENTITY_IDalarm_control_panel.home_alarm状态解除武装

数字状态条件

这种类型的条件试图解析指定实体的状态或实体的属性作为数字,如果值匹配阈值,则触发。

如果两者以下以上指定,两个测试必须通过。

(健康)状况别名温度之间1725学位”(健康)状况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_IDdevice_tracker.paulus状态不在家”#可选:仅当状态在上次x时间时才触发。为了小时1分钟105

也可以一次针对多个实体测试条件。如果情况将过去全部实体与国家匹配。

(健康)状况(健康)状况状态ENTITY_ID-Light.Kitchen-light.living_room状态上”

如果其中一个实体匹配,则与其匹配,而是可能。在下面的示例中,情况将通过任何实体与国家匹配。

(健康)状况(健康)状况状态ENTITY_ID-binary_sensor.motion_sensor_left-binary_sensor.motion_sensor_right匹配任何状态上”

测试实体是否与一组可能的条件匹配;如果实体与给出的一个状态匹配,则条件将通过。

(健康)状况(健康)状况状态ENTITY_IDalarm_control_panel.home状态-Armed_away”-Armed_home”

或者,将多个实体与多个状态相结合。在下面的示例中,两个媒体玩家都需要暂停或玩耍才能通过。

(健康)状况(健康)状况状态ENTITY_ID-Media_player.living_room-Media_player.kitchen状态-播放”-暂停”

或者,条件可以针对状态属性进行测试。如果属性与给定状态匹配,则条件将通过。

(健康)状况(健康)状况状态ENTITY_ID气候.living_room_thermostat属性HVAC_MODES状态热”

最后,状态选项接受助手实体(也称为输入_*实体)。如果实体的状态与给定辅助实体的状态匹配,则条件将通过。

(健康)状况(健康)状况状态ENTITY_IDalarm_control_panel.home状态input_select.guest_mode

太阳状况

太阳状态状况

太阳状态可用于测试太阳是否落山还是升起。

(健康)状况别名太阳向上”(健康)状况状态#“天”条件:从日出到日落ENTITY_ID太阳状态上面_horizo​​n”
(健康)状况别名太阳下”(健康)状况状态#从日落到日出ENTITY_ID太阳状态下面_horizo​​n”

太阳高程条件

太阳高程可用于测试太阳是否已经落下或升起,是黄昏,是夜晚等。发生扳机时。有关太阳高程的深入解释,请参阅<一个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“

这是“黑暗的” - 等同于状态条件太阳下面_horizo​​n

(健康)状况-(健康)状况太阳日落日出

这是“光线” - 等同于状态条件太阳上方_horizo​​n

(健康)状况-(健康)状况太阳日出日落

在这种情况下,我们不能使用两个键,因为它永远是错误的

(健康)状况(健康)状况或者条件-(健康)状况太阳日落-(健康)状况太阳日出

下面提供了视觉时间表,显示了这些条件何时真实的示例。在此图表中,日出时间为6:00,日落在18:00(下午6:00)。图表的绿色区域表示指定条件何时为真。

图形显示太阳条件的示例“></p>
       <h2><a class=模板条件

模板条件测试是否<一个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_IDalarm_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_startinput_datetime.house_silent_hours_end-别名例子引用其他传感器”传感器

请注意,时间条件仅需考虑时间。如果引用的传感器或助手实体包含带日期的时间戳,则日期零件被完全忽略。

触发条件

触发条件可以测试是否是由触发器确定的某个触发器触发的自动化ID

(健康)状况(健康)状况扳机IDevent_trigger

对于由其索引标识的触发器,允许字符串和整数:

(健康)状况(健康)状况扳机ID0”
(健康)状况(健康)状况扳机ID0

可以给出触发器的列表:

(健康)状况(健康)状况扳机ID-Event_1_trigger-Event_2_trigger

区域条件

区域条件测试如果实体在特定区域中。为了使区域自动化工作,您需要设置一个支持报告GPS坐标的设备跟踪器平台。

(健康)状况别名保卢斯家”(健康)状况ENTITY_IDdevice_tracker.paulus区域

也可以一次针对多个实体测试条件。如果所有实体都在指定区域中,则条件将通过。

(健康)状况(健康)状况ENTITY_ID-device_tracker.frenck-device_tracker.daphne区域

测试实体是否与一组可能的区域匹配;如果实体位于其中一个区域中,则条件将通过。

(健康)状况(健康)状况ENTITY_IDdevice_tracker.paulus状态-区域-区域

或者,将多个实体与多个区域相结合。在下面的示例中,两个实体都必须在家庭或工作区中以通过。

(健康)状况(健康)状况ENTITY_ID-device_tracker.frenck-device_tracker.daphne状态-区域-区域

例子

(健康)状况-(健康)状况numeric_stateENTITY_ID太阳value_template{{{}}””以下1-(健康)状况状态ENTITY_IDlight.living_room状态离开”-(健康)状况时间23:00:00”14:00:00”-(健康)状况状态ENTITY_IDscript.light_turned_off_5min状态离开”

禁用条件

每个单独的条件都可以禁用,而无需删除。为此,添加启用:false到条件配置。

如果您想暂时禁用条件,例如进行测试,这可能很有用。残疾条件将始终通过。

例如:

#由于禁用,这种情况将始终通过。(健康)状况已启用错误的(健康)状况状态ENTITY_ID太阳状态上面_horizo​​n”