CATALOG

芯步16A86型插座支持HTTP接口调用,二次开发的核心是利用{"point":"延时毫秒数"}这类命令实现延时通断。下面从接口准备到代码实现一步步说清楚。

一、准备工作

在开始写代码之前,需要先拿到三样东西,就像开门需要钥匙一样:

  1. AppID 和 AppSecret:登录芯步的控制台,在“开发设置”里就能找到。这俩相当于你的账号密码,调用接口时要用。

  2. 设备ID:在控制台的设备列表里,找到你那台16A86型插座,复制下它的ID。如果有多台,用逗号隔开就能同时控制。

  3. 网络环境:确保你的开发设备和插座都连上了网,最好是在同一个局域网下测试,但理论上只要能上网,在哪都能控制

二、接口鉴权(重点!)

芯步的接口为了安全,所有请求都要带一个签名(sign)。说白了,就是把你的 AppSecret 和当前时间戳搅和在一起,加密一下,防止别人伪造请求。

签名算法长这样:sign = md5( md5(AppSecret) + ts )

看着有点懵?别怕,逻辑很简单:

  • 第一步:把你拿到的 AppSecret 做一次 MD5 加密。

  • 第二步:把第一步的结果拼上当前的时间戳 ts(10位数字,秒为单位)。

  • 第三步:把拼接后的字符串再做一次 MD5。

举个栗子:假设你的 AppSecret 是 abc123,当前时间戳是 1715678900

  1. md5(abc123) = xxxxxx

  2. 拼接后得到 xxxxxx1715678900

  3. 再次 MD5 得到最终的 sign。

这玩意儿每次请求都得重新算,因为时间戳一直在变,所以千万别写死

三、实现延时通断的核心逻辑

官方文档里其实藏着彩蛋。对于插座类产品,控制通断通常用 {"power":1}(开)或 {"power":0}(关)。但要做延时控制,玩法就多了。

根据需求,这有三种实现方案:

方案一:利用设备自带的“先通后断”功能(最简单)

不需要你在服务器上跑定时器,直接告诉插座:“给我通电,3秒后自己关掉”。这时候,命令要这样写:

解释:point 代表“先通后断”,单位是毫秒。3000 就是3秒。插座收到指令后会立刻打开继电器通电,然后内部计时3秒,时间一到自动断电

方案二:利用设备自带的“先断后通”功能

如果你想让插座先断电,过一会儿再自动恢复供电(类似重启路由器),可以用 reset

解释: 插座会立刻断开,10秒(10000毫秒)后自动重新接通

方案三:外部脚本逻辑控制(最灵活)

如果插座固件不支持上述命令,或者你需要的逻辑很复杂(比如循环通断、检测到温度过高再断电),那就在你的代码里做文章。

思路如下:

  1. 调用接口发送 {"power":1} 开启插座。

  2. 你的代码等待(sleep)5秒。

  3. 调用接口发送 {"power":0} 关闭插座。

四、动手写代码(Python 示例)

虽然官方文档给了很多种语言,但我觉得 Python 最顺手,拿来写脚本最快。

五、一点小提示

  1. 频率限制:官方接口有频率限制,单个设备1秒只能控制1次。如果你写了个死循环疯狂开关,会被系统拒绝

  2. 计量版福利:如果你买的是带“功率计量”版本的16A插座,你还能读取电压、电流。这样你可以实现更高级的功能,比如:“如果功率低于10W持续5分钟,就自动断电”的逻辑。

  3. 返回值:接口返回 code:200 只代表指令平台收到了,不代表插座真的执行了。如果插座掉线了(WiFi断了),命令是发不过去的。这时候你可以通过平台的“消息推送”功能来获取设备真实状态

就这么简单。按照这个思路,不管是做一个工装测试设备,还是给鱼缸水泵做定时喂食联动,都能轻松搞定。