[功能] fam-edge 运动心跳支持 - /api/ss/motion 空 events 心跳刷新, has_motion_in_range_local 按 max_heartbeat_age_sec(900s) fail-open

This commit is contained in:
ericwyuan
2026-08-22 12:08:00 +08:00
parent 7adc32486a
commit 2d9d96de56
2 changed files with 13 additions and 8 deletions

View File

@@ -47,17 +47,18 @@ video_processing:
# 降级顺序:先 gemini 整视频,失败再 nvidia 整视频;两者都失败 -> 标记 failed
vision_order: ["gemini", "nvidia"]
# 运动侦测预过滤2026-08-22 重构):
# 运动侦测预过滤2026-08-22 重构2026-08-22 补心跳
# - 甲骨文【不再反向访问 NAS】。原 dsm_motion_client甲骨文主动查 SS API已停用
# 改由 NAS 端 fam-core 的 MotionNotifier 轮询/接收 SS 事件后,主动 POST 推送到
# 甲骨文 /api/ss/motion落库 ss_motion_events
# 改由 NAS 端 fam-core 的 MotionNotifier 接收 SS Webhook 后,主动 POST 推送到
# 甲骨文 /api/ss/motion落库 ss_motion_eventsNAS 侧还会定期用空 events 单纯
# 调一次这个接口当心跳(不要求真的有事件),证明推送链路还活着。
# - video_processor 分析前调用 db.has_motion_in_range_local()(本地运动事件表)做
# 预过滤窗口内无运动事件则跳过云端分析compute_provider=skipped_no_motion
# - 本地运动事件表为空(冷启动/尚未收到推送)一律 fail-open照常分析不漏检。
# 此 block 仅保留 min_motion_seconds 语义参考host/account 等反向访问字段已弃用。
# - 安全阀门: 距上次心跳超过 max_heartbeat_age_sec 没更新NAS 服务挂了/网络断了/
# DSM Webhook 规则被误关,历史数据表非空但推送链路已经死了),一律 fail-open
# (照常分析),不能仅凭"表里曾经有数据"就信任"这段时间确认无运动"的结论。
dsm_motion_prefilter:
enabled: false # 已停用:甲骨文不再主动访问 NAS SS
min_motion_seconds: 0 # 窗口内运动事件总时长需 ≥ 此值才算"有运动"0=有事件就算)
max_heartbeat_age_sec: 900 # 心跳超过 15 分钟没更新 -> 判定推送链路可能已死fail-open
# 智能问答降级链与视频分析独立Gemini -> NVIDIA -> 本地 Ollama
models: