CATALOG

芯步的25A智能断路器开放了标准HTTP接口,二次开发不需要啃复杂的嵌入式代码。下面直接讲怎么对接,以及如何实现“运行状态监控”这个核心需求。

一、 搞清楚原理:你的软件如何跟硬件“对话”?

这套方案的核心逻辑是 “你的服务器 <——> 芯步云平台 <——> 25A断路器”

  1. 控制端(你发的指令):你想合闸或分闸,不用去现场按按钮。你的软件给芯步云平台发一条特定的HTTP请求就行。

  2. 执行端(设备动作):云平台把命令转发给那个装了SIM卡或连了WiFi的25A断路器,它就“咔哒”一声执行了。

  3. 反馈端(设备喊你):设备执行完,或者设备自己检测到异常(比如过载跳闸了),它会主动给云平台发消息,云平台再推送到你的服务器地址。

因为设备是主动上报状态的,所以你要想实现“监控”,最关键的一步不是发命令,而是搭好接收消息的服务器接口

二、 准备工作:去后台拿钥匙

在写代码之前,你需要登录芯步的控制台拿到两样东西:

  • AppID / AppSecret(应用ID/密钥):就像你软件的账号密码,证明是你本人在调接口。

  • 设备ID:你买的那个25A断路器背后的唯一序列号,告诉系统你要控制哪个开关。

三、 核心操作:怎么实现下发命令(控制开关)

如果你想在自己的系统里做个按钮,点击“开启”,就按下面的来。

1. 签名生成(这一步最容易卡住)

为了防止接口被别人乱刷,发请求前需要生成一个签名 sign。按照官方文档的格式,算法逻辑如下:

Python代码示例(后端用):

2. 发送开/关指令

拿着计算好的signts,拼接到URL里,发送POST请求。

  • 请求地址http(s)://api.thingboot.com/{你的AppId}/device/control/?sign={签名}&ts={时间戳}

  • 请求Body (JSON格式)

    • 开启:{"device": "这里填设备ID", "order": {"power": 1}} (1代表开)

    • 关闭:{"device": "这里填设备ID", "order": {"power": 0}} (0代表关)

就这么简单。只要返回code:200,25A断路器那边瞬间就动作了。

四、 重点落地:怎么实现运行状态监控(接收推送)

这是实现“监控”的灵魂。你不能老是去问设备“你跳闸没?”,你得让设备跳闸了主动告诉你。

芯步用的是消息推送机制——当25A断路器发生状态变化时(比如被人按了、自动跳闸了),云平台会把这个变化实时发给你设置的URL

1. 配置接收地址

去芯步的“物联网控制台” -> “消息推送”设置里,把你的服务器地址填进去。比如:http://www.yourdomain.com/api/callback

注意:这个地址必须是可以公网访问的(或者内网穿透也行),且支持POST接收JSON数据。

2. 解析设备发来的状态

当设备状态变了,你的/api/callback接口会收到云平台发来的POST数据包。

你收到的数据结构大概是这样的:

你在代码里要做的:在你的后端代码中接收这个请求,解析JSON。

五、 搞定一个问题:如果网络断了怎么监控?

会有这么一种情况:设备没电或者WiFi断了,它没法给你发“我关机了”这个消息,你也就收不到任何推送。

解决办法:心跳机制(定时巡检)

你不能完全被动等推送,得主动去“查岗”。写一个定时任务(比如每隔5分钟):

  1. 调用之前的控制接口(注意,不是真的控制,是查询)。

  2. 发送指令:{"system":"network"}。这个命令是让设备上报它的网络信息和状态,而不是去开关闸。

  3. 如果接口返回超时或者报错,说明设备离线了,你就在自己系统里标记该设备为【离线/失联】。

六、 总结一下整体交互流程

如果你想做一个简单的“设备监控大屏”,代码逻辑大概是这样的:

  1. 初始化:调用芯步API,拿到设备当前的最新状态。

  2. 被动监听:启动一个Web服务,等着收芯步云平台发来的POST消息。一旦收到,立刻刷新数据库里的状态。

  3. 主动干预:用户在网页上点了“关闭”,你的后台用第三节的方法算签名,发指令,几秒钟后,第四节的推送就会发回来,网页上就能看到那个开关图标变成了“灰色(断开)”。

这套方案不需要你懂单片机,甚至不需要懂硬件协议。只要你会调用HTTP接口,哪怕是用Excel的VBA或者Python脚本,都能轻松搞定。