不经意的错误导致热水器无法开启

我总是把各种软件升级到最新版,前天把HA升级到0.84.6后,昨天回去发现热水器没有按照预设的时间开启关闭,很是奇怪,除了升级之外,我没有做任何的其他调整。

以为input_boolean有什么变化,就一直想在这个方面找原因,搞来搞去,一点效果都没有。

由于纯属业余爱好,当初是怎么把这个开关接入到HA里的,由于没有记录,一下子也想不起来,翻看了配置里的几个文件,才理清了这个热水器开关自动化的思路,发现了问题所在。

由于是用了米家AQARA空调伴侣当作开关,HA并无原生的组件来控制这个开关,因此,第一步我使用了shell_command来打开关闭这个开关。

shell_command:
heater_on: /usr/local/bin/miiocli device --ip 192.168.2.35 --token 203dca9dfd709524ab7d6fd22f026257 raw_command toggle_plug '["on"]'
heater_off: /usr/local/bin/miiocli device --ip 192.168.2.35 --token 203dca9dfd709524ab7d6fd22f026257 raw_command toggle_plug '["off"]'

再来建立一个input_boolean。

heaternew:
name: heaternew
# initial: on
icon: mdi:ceiling-light

之后建立一个automation,在input_boolean划到on时,执行shell_command的heater_on;划到off时,执行heat_off。

#################
#热水器
#################
- alias: Turn on Heater
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.heaternew
to: 'on'
action:
- service: shell_command.heater_on

- alias: Turn off Heater
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.heaternew
to: 'off'
action:
- service: shell_command.heater_off

以上就实现了将米家空调伴侣作为电源开关使用的意图,最后按照实际需要设定开启关闭就简单了。

既然执行input_boolean无法开关电源,那就从检查shell_command开始,在service里调用这个开关的命令,一点问题也没有。那就检查第二步,好了,问题就在这个步骤里,这个automation的初始化状态居然是关闭的,怪不得我怎么操作input_boolean都没有效果,也不知道为什么之前都好好的,这次所有的automation在重新启动后,初始状态全部变为off。

既然如此,那就在automation里添加initial状态为on。

initial_state: true

重新启动ha,打开关闭热水器电源就没问题了。