12路分体智能设备控制箱的核心价值在于“分路独立可控”+“开放接口”,二次开发的关键是理解HTTP API的签名规则和命令格式,然后基于传感器事件或业务逻辑来触发对应的继电器动作。以下方案涵盖设计、接口调用、签名计算及典型场景。
1. 解决概述
1.1 核心对象
硬件设备:芯步 12路分体智能设备控制箱(也可能兼容同系列的16路或24路版本)。该设备支持12路独立继电器输出,每路可控制灯光、插座、电机等设备的通断。
开放接口:基于 HTTP API 或 MQTT 协议。设备直连WiFi(2.4G),无需网关,支持局域网/公网控制。
1.2 实现目标
通过编程调用接口,打破App手动控制的限制,实现例如“人来灯亮(结合传感器)”、“定时灌溉”、“安防联动(远程闭店一键全关)”等自定义场景逻辑。
2. 技术架构与准备
2.1 开发流程
二次开发的核心逻辑是:您的业务系统(Server/App)-> 计算签名 -> 调用API -> 控制箱执行 -> 反馈结果。
注册与创建应用:在芯步工作台创建项目,获取唯一的 AppID 和 AppSecret(开发者密码)。
设备配网:通过App或厂商提供的配网流程将控制箱连接至WiFi,确认设备在线。
获取设备ID:在控制台获取控制箱的 Device ID(设备唯一标识)。
2.2 接口鉴权机制
所有API请求都需要携带签名(sign)和时间戳(ts),防止接口被恶意攻击。签名算法如下(极其重要)
公式sign = md5( md5(AppSecret) + ts )
参数说明
AppSecret:您的开发者密码。ts:当前Unix时间戳(秒级,如 1715678900)。md5():标准的32位小写MD5加密函数。
代码示例(计算签名)
3. 核心接口调用与命令下发
3.1 请求地址与格式
URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Method:POST(推荐,参数较长)
Content-Type:application/json
3.2 单个/多路独立控制命令
这是最常用的场景,针对12路中的某一特定线路进行“开”或“关”。
命令结构
{"powerX": 1}或{"powerX": 0}(X代表1-12路)开启第3路
{"power3": 1}关闭第5路
{"power5": 0}
JSON请求体示例
3.3 批量控制(场景联动核心)
当需要一键触发“回家模式”或“离开模式”时,批量命令能减少网络请求次数,实现同步控制。
全开
{"power": 1}全关
{"power": 0}指定多路开启
{"batch": {"relay": [1,3,5,7,9,11], "power": 1}}(开启奇数线路)指定多路关闭
{"batch": {"relay": [2,4,6,8,10,12], "power": 0}}(关闭偶数线路)
“一键布防”场景代码示例
3.4 高级功能:点动/互锁
若需实现“按一下洗衣机启动”、“电机正反转”等工业或家居场景,可使用“先通后断(点动)”功能。
点动:让第4路接通1000毫秒后自动断开。
命令:
{"point": {"relay": [4], "interval": 1000}}
4. 实现自定义场景联动逻辑
“二次开发”的灵魂在于 “逻辑编程” 。您可以结合传感器数据或时间条件,编写业务代码来调用上述命令。
4.1 第一种场景:人来灯亮(结合人体传感器)
需求:当传感器检测到有人进入储藏室(第12路),自动打开照明灯(第1路),人走后2分钟自动关闭。
实现逻辑
接收数据:编写服务端接口接收传感器上报的MQTT/HTTP消息。
触发判断:解析消息,若检测到“有人”且是“储藏室区域”。
执行动作:调用API发送
{"power1": 1}。超时关闭:在代码中启动定时器(120秒),到期后发送
{"power1": 0}。
4.2 第二种场景:温湿度联动控制(农业/机房)
需求:当温度传感器超过30度,自动打开风扇(连接在第6路);低于25度关闭。
实现逻辑
轮询或接收温度数据。
if temp > 30: call_api(device, '{"power6": 1}')elif temp < 25: call_api(device, '{"power6": 0}')
4.3 第三种场景:自定义定时任务
虽然官方App可能自带定时,但二次开发可以实现更复杂的“节假日/倒计时”逻辑。
实现逻辑(伪代码)
4.4 代码封装示例
为了简化开发,您可以用任意语言(Python, Java, Node.js, PHP)封装一个底层控制函数:
5. 注意事项与排错
响应码判断
接口返回
code: 200仅代表指令已送达云平台,不代表设备执行成功。如需确认设备是否真的“开了/关了”,使用 消息推送 功能,接收设备上报的当前状态。
网络环境
设备仅支持 2.4G WiFi,确保信号强度。
支持 私有化部署(局域网控制),如果您的服务器和设备在同一局域网,可绑定本地IP进行直连,降低延迟。
频率限制
接口有单设备 1次/秒 的调用限制,高频操作(如PWM调光)不可直接用此方式,需在设备端逻辑处理。
通过以上方案,您可以基于芯步12路控制箱的开放API,快速构建符合特定行业需求的自动化控制系统。