AC1-10A是芯步推出的一款支持HTTP接口的智能通断器,可通过二次开发将其集成到各类软件系统中。以下从接口原理、签名算法、代码实现到高级功能配置,给出完整的解决方案。
一、 产品特性与二次开发基础
在开始开发之前,需要明确AC1-10A的硬件与通信特性,这对于设计至关重要。
核心参数
型号:UNI-TDQ-AC1-10A。
负载:额定电流10A,峰值16A,支持2200W阻性负载,适用于灯具、插座、电机等。
网络:仅支持WiFi 2.4GHz,无需网关,设备直连云平台。
接口开放能力
HTTP API:平台提供标准的RESTful API,开发者可通过任何编程语言(Python, Java, Go, PHP等)发送POST请求进行控制。
状态推送(Webhook):设备状态变化时(如本地按键触发或自动断电),平台会主动推送消息到开发者配置的服务器地址,用于同步数据库状态。
WebSocket:适用于需要低延迟、高频率实时控制(如快速点动、连续调节)的场景。
二、 二次开发核心流程:实现远程通断控制
要实现“HTTP接口远程通断控制”,核心在于解决身份验证(签名计算)和指令下发。
1. 准备工作:获取凭证与设备ID
在芯步开发者控制台中:
AppID / AppSecret:应用的唯一标识和密钥。
设备ID (Device ID):设备的唯一标识,通常贴在设备标签上或通过配网后在控制台获取。
2. 签名算法解析(关键步骤)
为防止API接口被恶意攻击,芯步使用动态签名机制。根据官方文档,签名计算公式如下
步骤一
String A = md5(AppSecret)步骤二
String B = String A + ts(ts为Unix时间戳,单位为秒)步骤三
YourSign = md5(String B)
注意:请一定要先将AppSecret进行一次MD5,再拼接时间戳,最后整体MD5。
3. 接口调试与代码实现
API 端点POST https://api.thingboot.com/{AppID}/device/control/?sign={YourSign}&ts={ts}
请求头 (Headers)Content-Type: application/json
请求体 (Body)
代码示例(Python):
三、 高级功能开发:不仅仅是开关
除了简单的开关,AC1-10A的接口还支持更复杂的工业级控制逻辑,这些在自动化场景中非常实用。
1. 脉冲/点动控制
如果需要控制电机或电锁,通常需要“按下1秒后自动弹起”。Order命令
释义:先将继电器吸合,等待1000毫秒(1秒)后断开。relay 支持数组,如 [1,2] 表示同时控制两路做脉冲动作。
2. 互锁控制(先断后通)
在控制卷帘门或窗帘时,需要确保“停”或“反转”命令的安全性。Order命令
释义:先将指定的所有继电器断开,等待500毫秒后,再接通。这种机制可以避免短路风险。
3. 批量控制
如果需要在一个HTTP请求中关闭所有开关:
四、 状态同步设计
二次开发不仅仅是发指令,如何获取设备当前的真实状态也是关键一环。推荐采用混合模式
主动查询(同步)在用户打开控制面板时,调用
/device/status/接口查询设备最新状态,保证UI初始化正确。被动接收(异步/Webhook)这是保证多终端(App + 小程序 + Web后台)状态一致性的最佳实践。
配置:在开发控制台配置“消息推送URL”(如
https://yourdomain.com/api/device/callback)。机制:当有人在本地按下AC1-10A的物理按钮,或设备因过载保护断电时,芯步服务器会立即将设备ID和最新状态(
{"power1":0})POST到你配置的URL上。处理:你的后端收到消息后,更新数据库中的设备状态,并通过WebSocket通知前端页面刷新。
五、 常见问题与排查
签名错误(401 Unauthorized)
检查时间戳:确保服务器时间与标准时间误差不超过几分钟(使用NTP同步)。
检查MD5顺序:很多开发者容易忽略“先对内层MD5”这一步,直接拼接
AppSecret+ts进行MD5,这是错误的。
设备离线(1003错误)
AC1-10A只支持2.4G WiFi。如果企业网络是纯5G频段或需要Portal认证(如酒店WiFi),设备无法连接。
设备支持配置5组备用WiFi,配网时可多配置一个手机热点作为备用,防止主路由重启后连不上网。
跨网访问
设备通过云平台中转,因此你可以实现在办公室4G网络控制工厂里的设备,无需公网IP或内网穿透。
六、 总结
对芯步AC1-10A的二次开发主要集中在签名鉴权和指令封装两个技术点。对于开发者而言,利用其提供的HTTP接口,可以在不考虑底层硬件通信协议(如 Modbus、MQTT 长连接维护)的情况下,快速构建出业务逻辑。无论你是将其集成到 Node-RED 这类低代码平台,还是写入企业级 ERP 系统做自动化运维调度,上述接口逻辑均适用。