HA文档 目录

  1. 主页
  2. HA文档
  3. HA文档
  4. 核心机制
  5. 自动化组件

自动化组件

这篇文章是系列文章的第8/8篇:

在HomeAssistant中,自动化是通过自动化组件来实现的(组件名automation)。
这个组件读取配置文件中自动化规则的配置,根据配置信息,监听相关事件,当事件发生时判断规则中的条件是否满足,如果满足,就执行规则中配置的动作。
自动化的详细配置,请参见自动化章节

Home Assistant中自动化规则由三个部分组成:trigger(触发器)、condition(条件)、action(动作)。
我们先看一个简单的例子:

  • trigger:当Alice回到家时
  • condition:如果太阳已经下山了
  • action:打开客厅的灯

trigger触发一个自动化规则开始运行。trigger是对要监听的事件的描述。在这个例子中,trigger是Alice回家这件事,在HomeAssistant中可以通过监听state_changed事件,发现Alice的状态由“not_home”转变为“home”启动。
condition在一条规则中不是必须的。condition判断当前的状态值,当condition中条件满足时,规则继续执行后续的动作,否则就不执行。
当一条规则中的trigger被触发,同时所有condition的条件都满足时,action就会被执行。可能是打开一盏灯,可能是设置空调的温度,也可能激活一种场景(scene)。

trigger和condition经常会被混淆。我们可以这样认为:trigger判断的是一种变化,而condition判断的是变化的结果,例如,trigger可以是灯的状态由关闭变为打开,condition判断当前灯的状态是打开状态。
在比较常见的自动化规则中,trigger是某个实体的状态变化(state_changed)事件,condition判断某个实体当前的状态,action是对服务的调用。在调用某些服务时会输入参数,比如调用一个light域下的turn_on服务,参数告诉系统具体打开哪盏灯、调节到哪个颜色等等。

看一个自动化组件在配置文件中具体的样例:

注:
上例中trigger中的platform,包括sun、state、zone、time,可以认为是触发器的类型,其它还包括mqtt、numeric_state等;
上例中condition中的condition,包括time、state,可以认为是条件的类型,其它还包括numeric_state、sun、zone、template等。
详见自动化章节

遇到问题了?快来学习免费在线课程吧,博学老司机在线答疑,找到更多志同道合的HA玩家一起进步

此文不允许转载,如需转载请与BD@hachina.io联系。

这篇文章对您有用吗? 5 0