芯步16A86型插座支持HTTP接口调用,二次开发的核心是利用{"point":"延时毫秒数"}这类命令实现延时通断。下面从接口准备到代码实现一步步说清楚。
一、准备工作
在开始写代码之前,需要先拿到三样东西,就像开门需要钥匙一样:
AppID 和 AppSecret:登录芯步的控制台,在“开发设置”里就能找到。这俩相当于你的账号密码,调用接口时要用。
设备ID:在控制台的设备列表里,找到你那台16A86型插座,复制下它的ID。如果有多台,用逗号隔开就能同时控制。
网络环境:确保你的开发设备和插座都连上了网,最好是在同一个局域网下测试,但理论上只要能上网,在哪都能控制。
二、接口鉴权(重点!)
芯步的接口为了安全,所有请求都要带一个签名(sign)。说白了,就是把你的 AppSecret 和当前时间戳搅和在一起,加密一下,防止别人伪造请求。
签名算法长这样:sign = md5( md5(AppSecret) + ts )
看着有点懵?别怕,逻辑很简单:
第一步:把你拿到的 AppSecret 做一次 MD5 加密。
第二步:把第一步的结果拼上当前的时间戳 ts(10位数字,秒为单位)。
第三步:把拼接后的字符串再做一次 MD5。
举个栗子:假设你的 AppSecret 是
abc123,当前时间戳是1715678900。
md5(
abc123) =xxxxxx拼接后得到
xxxxxx1715678900再次 MD5 得到最终的 sign。
这玩意儿每次请求都得重新算,因为时间戳一直在变,所以千万别写死。
三、实现延时通断的核心逻辑
官方文档里其实藏着彩蛋。对于插座类产品,控制通断通常用 {"power":1}(开)或 {"power":0}(关)。但要做延时控制,玩法就多了。
根据需求,这有三种实现方案:
方案一:利用设备自带的“先通后断”功能(最简单)
不需要你在服务器上跑定时器,直接告诉插座:“给我通电,3秒后自己关掉”。这时候,命令要这样写:
解释:
point代表“先通后断”,单位是毫秒。3000就是3秒。插座收到指令后会立刻打开继电器通电,然后内部计时3秒,时间一到自动断电。
方案二:利用设备自带的“先断后通”功能
如果你想让插座先断电,过一会儿再自动恢复供电(类似重启路由器),可以用 reset
解释: 插座会立刻断开,10秒(10000毫秒)后自动重新接通。
方案三:外部脚本逻辑控制(最灵活)
如果插座固件不支持上述命令,或者你需要的逻辑很复杂(比如循环通断、检测到温度过高再断电),那就在你的代码里做文章。
思路如下:
调用接口发送
{"power":1}开启插座。你的代码等待(sleep)5秒。
调用接口发送
{"power":0}关闭插座。
四、动手写代码(Python 示例)
虽然官方文档给了很多种语言,但我觉得 Python 最顺手,拿来写脚本最快。
五、一点小提示
频率限制:官方接口有频率限制,单个设备1秒只能控制1次。如果你写了个死循环疯狂开关,会被系统拒绝。
计量版福利:如果你买的是带“功率计量”版本的16A插座,你还能读取电压、电流。这样你可以实现更高级的功能,比如:“如果功率低于10W持续5分钟,就自动断电”的逻辑。
返回值:接口返回
code:200只代表指令平台收到了,不代表插座真的执行了。如果插座掉线了(WiFi断了),命令是发不过去的。这时候你可以通过平台的“消息推送”功能来获取设备真实状态。
就这么简单。按照这个思路,不管是做一个工装测试设备,还是给鱼缸水泵做定时喂食联动,都能轻松搞定。