package iot // 安全规则表所用的字面量集中在此,避免规则命中里出现魔法字符串。 const ( deviceTypeLock = "lock" actionUnlock = "unlock" ) // safetySeverity 报告一次 (设备类型, 动作) 跃迁是否命中已登记的显式安全规则, // 命中时返回该规则声明的严重度。 // // 这是 IoT 侧严重度升级的**唯一**起点,规则逐条可审且保守:只有语义上明确属于 // 安全域的动作才升级,未命中的动作一律落在 SeverityRoutine——因此常规设备变化 // 不会因为本机制获得穿透安静时段的资格。 // // 目前登记的规则(一条): // - lock/unlock —— 门锁开启。不论开启者是谁,门锁从锁闭变为开启都是一次安全域 // 事件(入侵 / 异常开启),标 critical。 // // 烟雾、漏水、门窗磁等安全来源的规则属**设备来源**(Provider)自身的语义,待真实 // Provider(MQTT / Home Assistant)接入时在同一张表登记;本机制不预置猜测性的 // 阈值或设备语义。 func safetySeverity(deviceType, action string) (AlertSeverity, bool) { if deviceType != deviceTypeLock { return SeverityRoutine, false } switch action { case actionUnlock: return SeverityCritical, true default: return SeverityRoutine, false } }