我总是把各种软件升级到最新版,前天把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,打开关闭热水器电源就没问题了。