• Home Assistant-自动化设备


    触发器(trigger)

    时间(time)触发器
    时间触发器在指定的时间触发规则,可以是某个时刻,也可以是某个指定的分钟(小时、秒),或者每隔多少时间。

    automation 1:
      trigger:
        platform: time
        # 在每个小时的05分钟触发,比如……9:05,10:05,11:05……
        minutes: 5
        seconds: 00
     
    automation 2:
      trigger:
        platform: time
        # 在每天的15:32:00触发
        at: '15:32:00'
     
    automation 3:
      trigger:
        platform: time
        # 当分钟数能被5整除时(也就是每隔5分钟)触发
        minutes: '/5'
    
    seconds: 00

    事件(event)触发器
    事件是HomeAssistant运行的核心机制。事件触发器根据事件类型和事件附加信息进行触发;当配置中未设置事件附加信息时,此类事件发生时,不管事件附加信息是什么,此规则都会被触发。

    homeassistant触发器
    homeassistant触发器由HomeAssistant的启动或关闭事件触发。

    automation:
      trigger:
        platform: homeassistant
        # event的另一个可选值是'shutdown'
        event: start

    状态(state)触发器
    状态触发器在对应实体的状态发生改变时进行触发。如果仅有实体ID,没有“from”、“to”时,这个实体的任何状态变化,或者仅仅是某一属性变化,都会触发规则。

    automation:
      trigger:
        platform: state
        entity_id: device_tracker.paulus, device_tracker.anne_therese
        # 可选,代表状态变化前的值
        from: 'not_home'
        # 可选,代表状态变化后的值
        to: 'home'

    数字状态(numeric_state)触发器
    监测实体的状态或者某一属性(数字类型),当相应值从高变低(或者从低变高)越过某个阈值,触发规则。

    automation:
      trigger:
        platform: numeric_state
        entity_id: sensor.temperature
        # 可选,当没有此配置时,判断的是实体的状态值。
        # 此处使用了模板,对这个实体的battery属性进行判断。模板的使用,参见相关章节的介绍。
        value_template: '{{ state.attributes.battery }}'
        # 如果从低到高越过17,或者从高到低越过25。换句话说,就是从[17,25]之外的范围进入这个范围。
        above: 17
        below: 25

    太阳(sun)触发器
    根据太阳的升起或降落进行触发。触发时间是升起(降落)的当时,也可以是升起(降落)前或者后多少时间。

    automation:
      trigger:
        platform: sun
        # event的可选值是“sunset”和“sunrise”
        event: sunset
        # 可选,此处代表太阳下山前45分钟触发
        offset: '-00:45:00'

    MQTT触发器
    在MQTT的broker上,当某一主题上发布了新的消息时触发。当不指定消息内容时,收到这个主题上的任何新的消息都会引起触发。

    automation:
      trigger:
        platform: mqtt
        topic: living_room/switch/ac
        # 可选。表示当在“living_room/switch/ac”上收到“on”时触发;如果不设置这行,那么在这个主题上收到任何消息都触发。
        payload: 'on'

    模板(template)触发器
    模板依据实体的状态或属性输出对应值,当输出值为“true”时触发规则。
    模板样例一:判断实体device_tracker.paulus的状态是否为home
    {{ is_state('device_tracker.paulus', 'home') }}
    模板样例二:上个样例的另一种表达方式
    {% if is_state('device_tracker.paulus', 'home') %}true{% endif %}
    模板样例三:判断实体climate.living_room的属性away_mode是否是off
    {{ is_state_attr('climate.living_room', 'away_mode', 'off') }}

    automation:
      trigger:
        platform: template
        value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}"

    区域(zone)触发器
    当device_tracker域中的实体进入或者离开某一个区域时,触发规则。

    automation:
      trigger:
        platform: zone
        entity_id: device_tracker.paulus
        zone: zone.home
        # event的可选值是enter和leave,代表进入和离开
        event: enter

    当并列多个触发器时,任何一个触发,规则触发。

    automation:
      trigger:
          # 第一个触发器
        - platform: time
          minutes: 5
          seconds: 00
          # 第二个触发器
        - platform: sun
          event: sunset
  • 相关阅读:
    【vijos】1768 顺序对的值(特殊的技巧)
    【vijos】1789 String(组合计数+奇怪的题)
    【vijos】1790 拓扑编号(拓扑+贪心)
    【vijos】1629 八(容斥原理+dfs)
    【vijos】1543 极值问题(数论+fib数)
    【vijos】1447 开关灯泡(高精度+特殊的技巧)
    【vijos】1164 曹冲养猪(中国剩余定理)
    【vijos】1882 石阶上的砖(中位数+特殊的技巧)
    【vijos】1881 闪烁的繁星(线段树+特殊的技巧)
    【vijos】1286 座位安排(状压dp)
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/9476939.html
Copyright © 2020-2023  润新知