本帖最后由 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自动化,用于提醒是否替换成功 
 
 |