CATALOG

芯步的10A智能插座通过开放HTTP接口,可以比较方便地集成到你的系统里实现定时控制。下面这份方案会按步骤拆解接入流程,从拿到设备ID、算签名,到写代码、设定时任务,一步步来。

解决方案:利用芯步开放接口,接入10A智能插座实现定时开关

你好!如果你手头有一个芯步的10A智能插座,想要通过编程或者写个脚本,实现每天早上自动开灯、晚上自动关风扇之类的操作,那你来对地方了。

其实这事儿一点都不复杂。芯步的这套设备接口非常 “开放” ,说白了就是它给你提供了一个远程控制的“网址”,你只需要用代码向这个“网址”发送一条指令,插座就会听话地打开或者关闭。

下面咱们直接进入正题,看看怎么一步步实现。

第一步:准备工作

在开始敲代码之前,你需要先拿到两样东西,就像你登录邮箱需要账号密码一样。

  1. 拿到设备的“身份证”和设备ID:

    • 首先,你需要在芯步的开发者后台注册一个账号

    • 注册登录后,把你手里的10A智能插座(型号通常以 UNI-CZ-10A 开头)添加到你的账号下

    • 添加成功后,在设备列表里就能看到一个叫做 设备ID 的字符串。这串字符就是你的插座的唯一编号,发指令的时候必须带上它,告诉云端你要控制哪个设备

  2. 拿到你的“私人密钥”:

    • 还是在开发者后台,找到“开发设置”之类的选项,你会看到两个关键的东西:AppIDAppSecret

    • AppID 就像是你的“用户名”,标识你的应用是谁;AppSecret 就像是你的“密码”,用来生成签名,防止别人随意控制你的设备

第二步:搞懂签名是怎么算的

这是整个流程里唯一有点烧脑的地方。为了防止接口被别人随便调用,芯步用了签名机制。不过别怕,其实就是一个固定的公式,套用就行。

签名(sign)的计算公式(官方标准):

sign = md5( md5(AppSecret) + ts )

这里的 ts时间戳(Unix时间戳,单位是秒),比如 1678886400。之所以要加时间戳,是为了保证每次请求的签名都不一样,防止有人把拦截到的请求反复拿去用。

举个例子你就明白了:假设你的 AppSecret 是 abc123,当前时间戳 ts 是 1678886400

  1. 先算 md5(abc123),假设结果是 xxx

  2. 然后把 xxx1678886400 拼在一起,变成 xxx1678886400

  3. 最后再对这个新字符串计算一次 MD5,得到的结果就是 sign

简单来说: 不管用什么编程语言,只要按照这个公式算出签名,放到请求链接里就行

第三步:下发命令(核心代码)

现在武器弹药都备齐了,我们来实操一下。芯步的接口地址是统一的,只需要通过 POST 方式调用就行。

  • 接口地址:http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={你算出的签名}&ts={当前时间戳}

  • 需要提交的数据(Body):这是一个 JSON 格式的数据,有两个字段:

    • device:填写你第一步拿到的设备ID。

    • order:这里填写控制指令。

重点看 order 这一部分:针对智能插座10A,支持三种命令格式

  1. 直接开关(最常用):

    • 开:{"power":"1"}

    • 关:{"power":"0"}

    • 场景: 收到指令立刻执行。

  2. 先通后断(类似于按一下开,过几秒自动关):

    • 示例 {"point":"3000"} 代表:立刻打开插座,保持3000毫秒(3秒)后自动关闭。

    • 场景: 用于控制电脑重启(断电后恢复供电),或者给一些设备做复位。

  3. 先断后通:

    • 示例 {"reset":"5000"} 代表:立刻关闭插座,保持5000毫秒(5秒)后自动打开。

    • 场景: 用于路由器死机了,自动断电重启。

代码示例:

这里用最通用的 curl 命令(Linux/macOS 终端)演示一下,其他语言也是类似的逻辑。

第四步:实现定时任务

上面的代码已经能实现控制了,剩下的就是“定时”问题。这取决于你用什么来运行这段代码。

  • 方案一(适合程序员):服务器