CATALOG

芯步智能通断器计量版支持HTTP接口调用和断电状态上报,实现“异常断电记忆恢复”的核心思路是:将设备状态持久化到云端,上电后由业务层主动拉取并恢复。以下是具体实施方案。

解决方案:基于芯步开放接口实现异常断电记忆与自动恢复

1. 概述

芯步智能通断器计量版支持 HTTP 接口控制断电主动上报 机制。本方案利用云端/服务器作为“记忆存储”介质,通过在业务层(您的SaaS/APP/小程序)建立状态机,当设备因异常断电离线再重连后,由业务层根据记录的“前状态”自动下发指令恢复设备状态。

适用场景

  • 养殖场、温室大棚的加温/通风设备(断电后需自动恢复运行,防止动植物冻伤或窒息)。

  • 机房/服务器机柜散热风扇或监控设备供电(恢复供电后无需人工干预)。

  • 家庭鱼缸水泵、电暖器(旅游归来发现断电过,设备能自动回到开启状态)。

2. 核心流程设计

整个解决方案分为 状态记忆状态恢复 两个环节。

2.1 “记忆”阶段:状态实时持久化

该阶段解决“记住断电前是什么状态”的问题。由于设备断电瞬间无法向云端发送“我要断电了”的消息(除非设备内置超级电容,但从通用接口层面不做假设),我们在正常运行时就记录状态。

  1. 主动记录

    • 当您(或用户)通过芯步开放的 HTTP 接口成功下发 power (通断) 指令后,您的业务服务器应立即将该设备的 desired_state (期望状态) 写入数据库。

    • 接口示例POST /api/device/control 携带 device_idpower: true。成功后,在 Redis/MySQL 中标记该设备状态为 ON

  2. 状态自检

    • 芯步设备支持定时上报计量数据。如果您的业务服务器在超过 心跳间隔 + 容忍时间 (如 5分钟) 未收到设备上行数据,即可判定设备离线(可能断电),此时无需删除数据库中的状态记录,仅标记设备离线。

2.2 “恢复”阶段:设备重连后的自动同步

该阶段解决“来电后怎么回到断电前的状态”的问题。芯步智能通断器支持Wi-Fi重连机制,当电网恢复供电,设备启动并重新连接网络后,执行以下逻辑:

  1. 设备上线通知

    • 设备重连成功并连接至芯步云后,会通过HTTP回调(Callback)向您的服务器推送 connectedonline 事件。

    • 您的服务器接收到该事件,判定这是“异常断电后的首次上线”。

  2. 查询前状态

    • 服务器查询数据库中该设备记录的 desired_state(期望最后状态)。

  3. 下发恢复指令

    • 如果数据库记录该设备断电前为 “开启” 状态:

      • 您的服务器通过芯步开放接口向该设备下发 {"power": true}

      • 注意:虽然设备理论上电全断会物理断开,但下发“开启”指令是为了确保继电器吸合。

    • 如果数据库记录断电前为 “关闭” 状态:

      • 保持关闭,不做操作。

3. 技术细节和需要注意的点

为了确保“恢复”动作的稳定性和安全性,请在对接芯步接口时注意以下细节:

3.1 避免“重复恢复”或“无限循环”
  • 问题:设备刚恢复通电,服务器下发指令重启设备,设备重启过程可能短暂断开连接再次重连,导致再次触发恢复逻辑(死循环)。

  • 解决:引入 “去抖标记”

    • 服务器在收到 online 事件并执行恢复下发指令时,设置一个短时间窗口(例如 10秒)。在这10秒内,无论收到多少次 online 事件都忽略,或设置一个 is_restored 标志位,恢复成功后不再重复恢复。

3.2 计量数据的“断电瞬间”捕获
  • 芯步计量版支持采集电压、电流、功率。虽然异常断电时刻数据无法上传,但您可以通过逻辑推断:如果突然收到电流降为 0 且设备离线,可判定为异常断电

  • 应用:此数据可用于生成告警记录,告知用户“在 14:23:05 发生断电,14:25:10 已自动恢复供电”。

3.3 安全策略:阈值保护优先于记忆
  • 原则:安全永远高于便利。

  • 实现:如果设备是因为“超过额定功率或安全功率阈值”导致内置保护机制跳闸断电(而非外部电网断电),您的恢复程序应拒绝自动恢复

    • 逻辑判断:记录最近一次状态变更原因。如果是 over_current_protect 触发断电,即使数据库中是 ON,来电后也不下发开启指令,而是发送告警通知人工介入。

3.4 接口调用调用机制
  • 调用芯步 HTTP 接口时,网络可能抖动。确保您的服务器具备重试机制(如随机间隔(或逐次增大间隔)),且芯步接口本身具备去重机制(通常依赖设备ID),防止在恢复瞬间因重试导致设备反复开关。

4. 异常场景容错表

场景描述策略处理技术实现
数据库未记录状态保守策略,保持关闭不自动恢复,仅推送“设备上线”通知给管理员。
设备恢复网络慢持续重试监听设备上线事件,而非简单轮询。若设备离线超过阈值,待再次上线时触发。
手动本地按键操作状态反转同步如果用户断电期间手动按了设备按钮改变了状态,设备重连上报状态后,服务器需用上报的新状态覆盖数据库旧状态
电源频繁波动避免继电器损坏利用设备支持的“本地记忆”特性(若硬件支持)结合云端逻辑。若10分钟内发生3次以上断电恢复,暂停自动恢复并告警。

5. 推荐架构时序图简述

  1. User -> Server: 发送关闭指令。

  2. Server -> YoYo Cloud (HTTP API): 转发关闭指令。

  3. YoYo Cloud -> Device: 控制继电器断开。

  4. Server: 写入 DB status=OFF

  5. *--- 市电中断 ---*

  6. *--- 市电恢复 ---*

  7. Device -> YoYo Cloud: 重新连接并上线。

  8. YoYo Cloud -> Server (Callback): 推送 online 事件。

  9. Server: Query DB (查询到 status=OFF) -> 判定为无需动作;或 status=ON -> 判定为需要恢复。

  10. Server -> YoYo Cloud (HTTP API): 下发 power ON

  11. YoYo Cloud -> Device: 继电器吸合,设备启动工作。

6. 总结

利用芯步智能通断器的开放接口实现该功能,核心并不在硬件本身是否具有非易失性存储(虽然这是基础),而在于云端业务逻辑的闭环。通过“运行期记录 -> 离线标记 -> 重连触发 -> 条件恢复”这一链路,您可以低成本、高可控地实现完整的异常断电记忆恢复功能,同时结合计量数据精确识别故障原因(断网/断电/过载),避免安全隐患。