本帖最后由 louis_lee 于 2022-10-17 10:12 编辑
由于配置目录不随版本更新,你可以把要替换的文件放在/config,替换前的命名成XX-original.py,替换后的是XX.py,然后在新建一个文件LAST_ROLL_BACK_HA_VERSION,用于记录更新时的版本。在/config下写一个shell脚本。参考如下:
cp /original_path/original_file.py /config/XX-new.py
diff_version=$(diff /config/.HA_VERSION config/LAST_ROLL_BACK_HA_VERSION|wc -l)
if [ $diff_version -eq 0 ]
then
message="no_version_changed"
else
diff_length=$(diff base-new.py base-original.py|wc -l)
echo $diff_length
if [ $diff_length -eq 0 ]
then
cp XX.py /original_path/original_file.py
cp /config/.HA_VERSION /config/LAST_ROLL_BACK_HA_VERSION
message="roll_back_success"
else
message="new_version_for_XXXX"
fi
fi
curl -X POST -H "Content-Type: application/json" -d '{"message": "'$message'"}' http://homeassistant:8123/api/webhook/XXX_web_hook
exit 0
修改configuration.yaml,增加配置,用于执行shell脚本,再添加一个webhook用于接受回传信息。
shell_command:
roll_back_XXX: /config/XXX.sh
template:
- trigger:
- platform: webhook
webhook_id: XXX_web_hook
sensor:
- name: "XXXX_roll_back_message"
state: "{{ trigger.json.message }}"
最后利用HA自动化,每次HA启动后,执行shell_command service; 在加一个webhook自动化,用于提醒是否替换成功
|