CATALOG

芯步的8路智能照明控制器支持HTTP接口调用和设备状态主动推送,这两点正好可以用来做故障告警。下面这套方案的核心思路是:让设备状态变化主动“告诉”你的服务器,而不是你的服务器不停地去“问”设备

一、 核心思路

要搞定“故障告警”,主要分三步走:

  1. 设备配网故障:8路控制器检测到某路灯灭了(可能是自己坏了,也可能是跳闸了)。

  2. 平台推送消息:设备把“我灭了”这个状态上报给芯步云平台,云平台立即把这个消息推送到你自己的服务器地址。

  3. 通知到人:你的服务器收到消息,判断是哪路灯出了问题,然后通过微信、短信、邮件或者像钉钉、飞书那样的机器人,把这个消息推送到管理员手机上。

二、 准备工作

在动手之前,需要先把这几样东西准备好:

  • 8路智能照明控制器:确保它已经连上了WiFi,并且在芯步的控制台里显示在线。

  • 开发者账号:在芯步开放平台注册账号,拿到你的 AppIDAppSecret,这两个相当于你进入系统的钥匙,签名计算时会用到

  • 公网服务器:你必须有一个自己的服务器,并且有一个能被外网访问的API接口地址(例如 http://你的域名/api/receive),用来接收平台推送的消息。

  • 通知渠道:准备好企业微信机器人、钉钉机器人,或者阿里云/腾讯云的短信接口。

三、 详细实施步骤

第一步:配置消息推送

这是最关键的一步,决定了你的服务器能不能第一时间知道设备出了问题。

登录芯步控制台,在消息推送设置里,把你服务器的接收地址填进去,同时把消息推送打开

从这一步开始,你的服务器就能实时收到设备状态变更的消息了。

第二步:编写接收消息的服务端脚本

你需要在自己的服务器上写一段代码,用来接收平台发来的数据。芯步推送的消息格式大概是这个样子的

这段代码的逻辑是:收到推送 -> 判断哪一路关了 -> 如果某一路状态变成了0且不该关,就判定为故障。如果确认是故障,就调用第三步的通知接口,把告警信息发出去。

第三步:配置“主动问询”作为补充

用消息推送的方式最及时,但如果你担心网络波动导致消息没发到,也可以加一层“主动问询”作为补充。

定时任务每隔几分钟调用API查询一次所有设备的状态。调用示例如下

  • 请求地址https://api.thingboot.com/{AppId}/device/control/?sign={YourSign}&ts={ts}

  • 请求体

这种方式虽然不如推送及时,但可以作为双保险,确保故障不会因为推送丢失而漏掉。

四、 告警逻辑与场景举例

为了让告警更准确,需要在代码里加一些判断逻辑,避免一些正常的操作也触发告警

例1:灯具损坏/断路

  • 现象:软件显示开关是开的(期望状态=1),但采集到的电流或功率是0。

  • 判定:灯具故障或接触不良。

  • 告警:“呼叫张三,3楼会议室灯管估计憋了,虽然开关开着,但电流是0,赶紧去瞅一眼。”

例2:跳闸/漏电

  • 现象:软件发出指令要开灯,但设备返回的状态是关的,而且过了几秒又自动断了。

  • 判定:线路短路或过载跳闸了。

  • 告警:“李四,仓库总闸跳了!排查一下是不是有机器短路了。”

例3:设备离线

  • 现象:连续几分钟收不到设备的心跳数据。

  • 判定:要么设备断电了,要么WiFi断了。

  • 告警:“王工,机房8路控制器失联了,赶紧去重启一下路由器!”

五、 落地效果图

这套系统搭好之后,整个工作流程就变成了全自动的:

  1. 凌晨2点,自习室的灯自己灭了(设备上报 状态变更)。

  2. 2秒内,你的服务器就收到了消息(平台 推送数据)。

  3. 你的程序发现这路灯的状态异常,而且这个时段没人手动关过。

  4. 你的企业微信群里蹦出一条消息:【故障告警】2号包厢照明无电流,疑似灯具故障。

  5. 值班人员看到消息,拿着备用灯管直接过去更换,全程不用大半夜去巡更。

六、 几个实用的优化

  1. 防抖动:有的传感器刚通电