智能家居与物联网:消息重发会重复开灯?用去重窗口先挡住旧指令
智能家居与物联网:消息重发会重复开灯?用去重窗口先挡住旧指令网络断连、网关重启和客户端重试都可能让同一控制消息出现两次。对开灯这类幂等动作影响可能不大,但对计费、计数、门锁或场景切换,重复执行就可能造成错误。处理动作之前先判断消息是否新鲜,是一个低成本的保护层。触发不等于持续状态Home Assistant 官方触发器文档说明触发在特定时刻启动自动化,条件和动作随后执行。本文并不把它说成通用消息队列;去重窗口是独立的设备接入设计,需与你的协议、时钟和风险等级一起验证。建立窗口的步骤让每条上行或下行消息带稳定 ID 和创建时间,不能只用载荷文本作 ID。在本地保存最近一段窗口内已处理 ID;先拒绝重复、过期和明显未来时间。对被拒绝的消息记录原因,不执行真实设备动作;对被接受的消息再交给规则引擎。defaccept(message,now,seen)