二次开发芯步智能断路器其实比想象的要简单,他们的设备都开放了HTTP接口,说白了就是会发网络请求就能搞定。35A这款支持远程开关和状态查询,下面说说具体怎么对接。
如何二次开发芯步智能断路器|35A实现远程开关状态查询
一、搞清楚你要折腾的对象
咱们这次要搞的是芯步的 智能断路器35A 系列,就是那种能装在配电箱里的大家伙,最大支持35A电流,家用商用都够用。
这玩意儿有好几个版本:纯WiFi版的、WiFi+433遥控版的,还有4G版的。不管哪个版本,核心的玩法都一样——通过HTTP接口控制。对咱们做二次开发的人来说,这就是个能联网的开关,你给它发HTTP请求,它就听话地通断电路,顺便还能告诉你现在是开是关。
官方说从发命令到执行也就80-120毫秒,反应贼快,这点很不错。
二、控制前得先拿到“钥匙”
在真正动手写代码之前,你得先去芯步的后台搞到几样东西:
AppID:你的应用ID,相当于你家大门的编号
AppSecret:你的应用密钥,这个可别泄露了,就当你家的钥匙
Device ID:你要控制的那台断路器的设备ID,一台一个号
这些在芯步的控制台里都能找到,注册登录进去,到“开发设置”里面瞅瞅。
三、签名怎么算?别怕,有公式
芯步的接口需要签名验证,听着挺唬人,其实就是个简单的MD5套娃。我把公式给你翻译成人话:
签名 = MD5( MD5(你的AppSecret) + 当前时间戳 )
来,一步步拆解:
先把你的AppSecret做一次MD5加密
把上一步的结果拼上当前的时间戳(注意是秒级时间戳,不是毫秒)
把拼好的字符串再做一次MD5
用Linux命令演示就是下面这样,一目了然:
当然你写代码的时候肯定不用这么折腾,直接用程序算就行,后面我会给示例。
四、发送控制命令——让你的断路器“听话”
控制断路器开合闸,其实就是往这个地址POST一个JSON:
请求体长这样:
order里写啥? 简单说:
{"power": 1}→ 合闸(通电){"power": 0}→ 分闸(断电)
就这么简单,一个命令下去,断路器就动作了。
五、查询开关状态——想知道现在是开是关?
重点来了啊!查询状态和控制用的是同一个接口、同一套签名方法,只是order里的命令不一样。
要查询当前开关状态,直接把order里的命令改成 status 就行:
设备收到这个命令后,会返回当前的状态信息,里面就包含了power字段(1表示合闸接通,0表示分闸断开)。换句话说,你发一个status查询请求,返回的响应里就能看到现在断路器是开还是关。
六、用Bash演示一把,看完就会
废话不多说,直接上一个完整的Bash脚本,你可以复制下来改改就能跑:
你把AppId、AppSecret、DeviceId换成自己的,然后终端里一跑,就能看到返回的JSON里告诉你当前开关是开着还是关着了。
七、其他语言的对接参考
Python版(主打一个短小精悍)
几个注意事项:
时间戳是秒级的,别拿毫秒的去算签名,否则不通过
签名计算时拼接的是字符串,别弄成数字相加
如果返回签名错误,先检查AppSecret对不对,再看时间戳是不是差太多(一般允许几分钟误差)
一个请求里可以控制多个设备,device字段用逗号分隔就行,比如
"device": "123,456"
八、友情提示
关于负载:35A的断路器,阻性负载(比如电热器)能带7000W,但如果是感性负载(比如电机、LED灯),就只能带1100W了。这点要留意,别把设备烧了。
联网方式:35A系列有WiFi版和4G版。WiFi版便宜,但得保证现场有WiFi信号;4G版贵点,但插卡就能用,适合没网络的偏远地方。
关于状态同步:我上面讲的是主动查询的方式。如果你需要实时知道状态变化(比如有人按了断路器上的物理按钮),那可能需要用他们的MQTT推送或者回调机制,这就是另一个话题了。
私有化部署:如果你不想走芯步的公有云,他们的设备也支持私有化部署,接口用法一样,只是把
api.thingboot.com换成你自己的服务器地址就行。
总的来说,芯步这套接口确实挺友好的,不用折腾复杂的SDK,纯HTTP就能玩转。希望这篇能帮到你,祝二次开发顺利!