SER8端部署(共6步)
第一步:删除旧的fstab挂载方式,改用systemd挂载单元
bash
sed -i '\|//192.168.0.9/config|d' /etc/fstab
umount /mnt/haos-config 2>/dev/null第二步:创建systemd挂载单元(注意文件名里的\x2d不能改,这是systemd规定的转义格式,对应路径/mnt/haos-config)
bash
cat > "/etc/systemd/system/mnt-haos\x2dconfig.mount" << 'EOF'
[Unit]
Description=HAOS Samba共享挂载 - 家庭备忘录数据
After=network-online.target
Wants=network-online.target
[Mount]
What=//192.168.0.9/config
Where=/mnt/haos-config
Type=cifs
Options=username=dragon,password=778899,vers=3.0,_netdev,x-systemd.automount,x-systemd.mount-timeout=10,noauto
[Install]
WantedBy=multi-user.target
EOF第三步:启用并启动这个挂载单元
bash
systemctl daemon-reload
systemctl enable "mnt-haos\x2dconfig.mount"
systemctl start "mnt-haos\x2dconfig.mount"
systemctl status "mnt-haos\x2dconfig.mount"确认看到active (mounted)状态。
第四步:更新触发服务脚本(覆盖原有的sync_trigger_server.py,这次加了挂载健康检查和自动重连逻辑)
把上面sync_trigger_server.py文件下载下来的完整内容,覆盖到:
bash
nano /root/sync_trigger_server.py(或者直接用cat > /root/sync_trigger_server.py << 'PYEOF' ... PYEOF这种方式重新写入,把文件内容整段粘贴进去)
第五步:重启服务让新代码生效
bash
systemctl restart oikb-sync-server
systemctl status oikb-sync-server第六步:测试健康检查接口
bash
curl http://localhost:9100/health应该返回:
json
{"service":"ok","mount_healthy":true}HA端部署
打开configuration.yaml,把intent_script:这整块替换成configuration_intent_script_snippet.yaml文件里的内容(保留你原有的shell_command和rest_command两块不变,只替换intent_script这部分)。
重启HA。
模拟断电场景测试(重要,建议真的测一次)
bash
# 故意把挂载弄坏,模拟"假死"状态
umount -f /mnt/haos-config
# 触发一次同步,看自动重连是否生效
curl -X POST http://localhost:9100/trigger-sync返回结果里应该能看到remount_log字段,说明系统检测到了异常并自动尝试修复。
这一步务必实测——尤其是"完全连不上SER8"这种更极端的情况(比如直接拔网线测试HA这边的播报反应),因为这部分我没能找到100%确定的官方处理范例,需要你实际验证一下断网时听到的播报是不是符合预期,如果不是,把实际听到的内容告诉我,我们再针对性调整。
三个文件files.zip
评论区