CATALOG

10A智能开关AC2这款产品的核心优势在于它的HTTP接口非常开放,不用折腾复杂的协议,只要能发网络请求就能控制。下面我用口语化的方式,一步步拆解如何实现延时控制。

解决方案:用芯步AC2智能开关实现“延时通断”控制

一、 准备工作:先认亲(拿到钥匙和门牌号)

在写代码之前,你首先得去芯步的后台拿到两样东西,不然门都摸不着:

  1. AppID 和 AppSecret:这相当于你在芯步平台的“用户名”和“密码”。登录芯步控制台,在“开发设置”里就能看到

  2. 设备ID:就是你那个10A智能开关AC2的身份证号。把设备配网添加到后台后,在设备列表里就能找到那一串数字

小提示:AC2支持HTTP接口WebSocket两种方式,为了简单起见,咱们直接用HTTP POST请求,哪怕是Excel的VBA都能调

二、 核心算法:签名(别怕,就是算个数学题)

芯步的接口为了安全,每次发命令都要带个签名。虽然看着像那么回事,但其实逻辑极其简单,任何后端语言(PHP, Java, Python, Go, Node.js)照着抄就行

  • 公式sign = md5( md5(AppSecret) + ts )

  • 步骤

    1. 把你拿到的AppSecret做一次MD5加密。

    2. 获取当前的时间戳ts(就是自从1970年1月1日到现在的秒数,比如1734567890)。

    3. 把第1步的结果和ts拼在一起,再做一次MD5加密,结果就是sign

举个例子(伪代码思维):假设 AppSecret = “abc123”,ts = “1734567890”。第一步:hidden_key = md5("abc123") 得到 “xyz...” 。第二步:sign = md5("xyz..." + "1734567890")。搞定!

三、 重头戏:如何实现“延时通断”

重点来了!AC2这个设备比较人性化,它原生支持两种“延时”模式,不需要你自己在代码里写sleep阻塞线程

场景假设:我想让插座先通电3秒钟,然后自动断开。这叫什么?这叫 “先通后断”

请求地址https://api.thingboot.com/{你的AppID}/device/control/?sign={你算的sign}&ts={当前时间戳}

请求方式:POST请求头Content-Type: application/json请求体

命令解释“point”:3000 就是“先通后断”的指令,3000是毫秒数(即3秒)。设备收到后,会立刻吸合继电器(通电),3秒后自动断开

反向操作如果你想实现 “先断开,过一会再接通” (比如控制水阀冲一下水就关),那就把 point 换成 reset

*注:有些文档里对于单路设备也用 point1reset1,你可以对着产品手册看,AC2-10A通常直接用 point 就行*

四、 实战代码演示(PHP版 & 命令行版)

光说不练假把式,这里用最常见的PHP写个例子,大家一看就懂

如果你想用命令行测试(最快速的方法)打开终端(Linux/Mac)或Git Bash,直接复制下面这串(记得改参数)

五、 进阶技巧:捕获设备状态(消息推送)

如果你想知道“那3秒钟到底有没有执行成功”,或者用户按了开关你需要在系统里记录下来,AC2支持状态上报

你得在自己的服务器上写一个接收地址(URL),然后去芯步控制台设置消息推送。设备状态一变(比如从通变成断),平台就会把数据POST到你服务器上。这样,不管是用手机App控制、按开关物理按钮,还是用代码控制,你都能知道插座现在是开着还是关着

总结

接入AC2实现延时控制,其实就是调用一个HTTP链接的事。

  • 想让他亮一下就灭:发 {"order":{"point": 毫秒数}}

  • 想让他灭一下就亮:发 {"order":{"reset": 毫秒数}}

不需要复杂的硬件PWM波,也不用在代码里写死循环等待,几行代码就搞定了。