芯步AC1-10A智能通断器的开放接口是标准的HTTP API,签名机制清晰,任何能发HTTP请求的语言都能接入。下面从接线准备、接口调用逻辑,到具体代码示例和项目落地要点,一步步说清楚。
一、 这东西到底能干啥?先看懂硬件
在写代码之前,咱们得先清楚手头这个“家伙”能做什么。芯步的 AC1-10A 智能控制器,本质上就是一个可以通过网络控制的继电器开关。
核心功能:它串联在你的电器和电源之间。你可以通过发送指令,让它“闭合”(通电)或“断开”(断电)。
承载能力:10A的额定电流,这意味着直接控制常见的电脑、显示器、饮水机、投影仪甚至空调(2200W以内)都没问题,不需要外接交流接触器 。
控制对象:它通常控制一路线路,你也可以选择4路或8路的版本,独立控制多个插座 。
“智能办公交流电控制”的逻辑就是:你的代码 -> 云端 -> WiFi -> 这个控制器 -> 控制电器开关。
二、 动手前的准备
在写代码之前,有几样东西是必须搞到手的:
硬件接线:把控制器的“IN”(输入)接市电,“OUT”(输出)接你的设备。切记,操作前一定要断电!
配网:下载芯步提供的配网小程序,把设备连上你办公室的2.4G WiFi 。
关键凭证:登录芯步的控制台,找到“开发设置”。你会看到两个核心字符串:AppID 和 AppSecret(可以看作是你的专属API钥匙和密码)。
设备ID:在控制台设备列表里,找到你刚才配网的那个设备,复制它的 Device ID(设备ID) 。
三、 核心难点攻克:签名计算
这是接入过程中最容易踩坑的地方,但只要理解了,其实就是两步加密。为了防止别人随意控制你的设备,芯步接口要求每次请求都带一个动态的 Sign(签名)。
签名的生成规则是Sign = md5( md5(AppSecret) + ts )
通俗点解释这个过程:
把你的 AppSecret 进行第一次 MD5 加密,得到一串乱码(记作
secret_md5)。拼接时间戳:把当前的秒级时间戳(ts)直接拼在这串乱码的后面,得到一个
secret_md5 + ts的新字符串。再来一次 MD5:把上面拼接好的字符串再做一次 MD5 加密。结果就是最后的
Sign。
为什么要这样做?这样即使别人抓到了你的数据包,由于时间戳每一秒都在变,他无法拿着旧的链接去反复开关你的设备。
四、 接口实战:如何优雅地控制开关
一旦签名搞定,剩下的就是发个简单的 POST 请求了。
1. 请求地址
2. 请求体参数
格式是 JSON,里面只需要包含两个字段:
device:那一长串设备ID。order:告诉设备做什么。对于AC1-10A,{“power1”: 1}代表开启第一路,{“power1”: 0}代表关闭 。
3. 代码示例
这里用Node.js写个例子,因为它异步非阻塞的特性很适合在服务端处理设备控制:
五、 进阶玩法:让设备“活”起来(状态同步)
如果你只是发指令,那就只能是“单向控制”。但办公室里经常需要知道“投影仪到底关了没”?
AC1-10A 支持状态反馈机制。这类似于微信公众号的被动回复:你需要搭建一个公网可访问的 URL(回调地址),在芯步控制台配置好。
原理当有人在物理按键上按了开关,或者设备过载跳闸了,芯步的服务器会主动给你配置的 URL 发一条 POST 请求,告诉你:“设备ID 123 现在的状态是 0(关闭)”。
怎么用写一个简单的 Web 接口(例如 https://你的域名.com/yoyo/callback),接收 JSON 数据,然后更新你自己数据库里的设备状态。这样,你的 OA 系统界面上就能实时显示设备的真实开关状态了。
六、 落地注意事项
不要高频轮询:虽然接口是 HTTP 的,但如果你的程序每隔 0.5 秒就去查一次状态,容易被限流。正常开关操作就发指令,状态同步靠上面的“回调机制”。
处理离线情况:接口返回
code 200只代表云端收到指令,并不代表设备执行了。如果设备断网,指令是下不去的。所以在项目设计里,如果控制没反应,需要提示用户检查设备网络 。多设备管理:如果要一次性控制全办公室的灯,你可以在
device参数里用英文逗号隔开多个设备 ID,例如device=123456,789012,这样就可以一条指令关掉一层楼的灯 。
把签名逻辑封装好,剩下的对接工作就跟调用一个普通的快递下单 API 一样简单了。