CATALOG

芯步8路控制箱支持HTTP接口调用和设备状态实时推送,这为二次开发告警通知提供了基础。以下是基于其开放接口实现故障告警的完整方案。

一、 背景与需求

在很多工业自动化和远程运维场景中,8路智能分体远程设备集中控制箱被用于控制水泵、风机、电机、照明等现场设备。传统的运维方式往往依赖人工巡检,无法第一时间发现设备(如电机过载、水泵空转、照明失效)故障。

本次二次开发的目标是利用芯步开放API接口,结合自定义的告警逻辑,实现当被控制的设备发生异常(如电流异常、该通不通、该断不断)时,系统能自动通过钉钉、微信、短信或邮件通知相关责任人。

二、 核心设计

基于芯步“设备开放HTTP接口”和“消息推送机制”,本方案的架构分为三层:

  1. 感知层(硬件):8路智能控制箱。负责执行继电器通断,并实时上报每一路的状态(Power ON/OFF)。

  2. 平台层(芯步云/私有化服务器):负责设备连接、状态转发及命令下发。

  3. 应用层(自建告警中心):开发者搭建的HTTP服务端。负责接收设备上报的状态,运行故障判定逻辑,并执行通知发送。

工作流程图解:

控制指令下发:自建系统 -> HTTP API -> 芯步云 -> 8路控制箱 -> 通断电状态/故障上报:8路控制箱 -> 芯步云 -> HTTP推送 (自建系统接收) -> 逻辑判断 -> 触发告警

三、 技术准备

在开始二次开发前,需要准备以下三个要素:

  1. 获取凭证:在芯步控制台获取 AppIDAppSecret,用于接口鉴权

  2. 设备ID:获取控制箱的设备ID(Device ID)。

  3. 回调接口:准备一台具有公网IP或域名的服务器(支持私有化部署),用于接收芯步推送的设备消息

四、 告警逻辑的二次开发实现

实现告警的核心在于监控设备状态判定业务异常。控制箱本身只负责执行和上报通断,具体的“故障”定义需要在自建服务器中实现。

1. 建立“消息接收端”

这是告警系统的“耳朵”。你需要在你的服务器上开发一个Web API接口(例如:http(s)://你的域名/api/yoyo/callback),用于接收芯步推送的实时数据。

  • 开发依据:芯步在设备状态变化时会向该地址推送JSON数据。

  • 数据解析:接收到的数据中,message.data 字段会包含当前的路数状态,如 {"power1": "1"} 表示第1路开启,{"power2": "0"} 表示第2路关闭

  • 关键动作:接收端收到数据后,应立即返回 HTTP 200 OK 表示收到,防止平台重试。随后异步处理数据。

2. 定义告警规则

这是告警系统的“大脑”。针对8路控制箱连接的不同设备,定义不同的阈值逻辑。例如:

  • 异常告警(不该通却通了):控制箱应关闭设备(下发power=0),但电流检测依然存在或状态反馈依然为1。判定:设备已损坏或触点粘连。

  • 超时未反馈:控制箱下发启动命令,但设定时间内(如5秒)未收到该路的状态变更推送。判定:网络故障或设备死机。

  • 执行失败:系统尝试下发命令,但API接口返回错误

3. 核心逻辑开发(以“电机过载/停机故障”为例)

假设8路控制箱的第1路连接了一台排风机。正常工作时,命令下发后状态应为“开启”。如果风机因自身故障停机(即使电路通着,实际设备停了),此时控制箱上报的依然是“通”的状态。如何检测?通常需要结合传感器或电流检测。

方案A:基于时间逻辑的假性告警如果现场没有传感器,利用控制箱的“状态上报”配合时间逻辑:

  • 场景:系统命令第1路开启。

  • 逻辑:如果在开启状态下,连续收到了某一路的“通断抖动”(如在1秒内收到了power1:1power1:0的交替推送),判定为线路接触故障。

  • 代码实现

方案B:结合传感器数据针对真正的设备故障(如电机空转),在负载端增加芯步生态的传感器(如电流检测模块或震动传感器)

  • 逻辑:控制箱状态为 power1:1,但传感器上报的电流值低于阈值。

  • 触发:系统判定为“空转”或“皮带断裂”,发出告警。

4. 告警通知的组装与分发

一旦逻辑判定器发出“故障信号”,系统需要通知运维人员。

  • 接入渠道

    • 钉钉/飞书/企业微信:调用群机器人Webhook,发送Markdown格式消息,包含“设备名称、故障路数、发生时间”。

    • 短信/电话:对于严重故障,调用阿里云/腾讯云短信接口或语音告警接口。

    • 邮件:使用SMTP发送详细故障日志。

  • 消息模板示例

    [严重告警] 8路控制箱 - 0001发生时间:2023-10-27 14:00:00故障路数:第3路(连接:一号水泵)故障原因:执行开启命令成功,但设备返回状态为关闭(State mismatch)。请立即处理!

五、 扩展交互:远程复位

告警发生后,运维人员通常需要远程尝试复位,若能恢复则无需跑腿现场。

实现的方式是:在你的告警系统中提供一个“远程复位”按钮,调用芯步的device/control接口

  • 接口地址https://api.thingboot.com/{AppId}/device/control/

  • 请求Body

六、 私有化部署

针对对数据安全或网络延迟要求比较高的工厂环境,芯步支持局域网私有化部署

  • 操作方式:将8路控制箱与控制服务器部署在同一局域网段。

  • 接口变更:无需调用公网API,直接通过HTTP请求控制箱的内网IP地址(如 http://192.168.1.100/control)进行控制和状态查询,实现物理隔离下的毫秒级响应

七、 总结

通过芯步8路智能控制箱实现设备故障告警,不仅仅是使用硬件,更是业务逻辑与API能力的深度结合

  • 核心价值:将硬件执行层通过API无缝对接到企业内部IT运维系统(如监控平台、OA系统)。

  • 操作流程:开发者利用芯步提供的 “实时消息推送” 接收数据,在自建服务器中编写 “业务故障判断逻辑” ,最终调用 “第三方通知接口” 完成闭环。

此方案无需关心底层无线通信协议,专注于业务逻辑开发,即可在短时间内构建一套高响应、可追溯的远程设备集中监控与告警系统。