芯步的智能墙壁开关3路设备通过HTTP API接口开放了完整的控制能力,支持对三路照明进行独立管理。以下方案涵盖从接入准备、命令协议到具体代码实现和场景扩展的完整流程。
一、 接入准备
在开始开发之前,你需要在芯步平台完成以下前置步骤,获取必要的密钥信息。
注册与登录:访问芯步官网注册开发者账号并登录。
获取密钥:进入控制台的“开发设置”页面。这里是核心安全凭证的发放地,你需要记录两个字符串:
AppID:应用的唯一标识符。
AppSecret:开发者密码,用于签名计算,请勿直接暴露在客户端代码中。
获取设备ID:在控制台设备列表或设备外壳标签上找到 Device ID。这是控制指定物理开关的唯一标识。
设备联网:确保智能触摸墙壁开关3路已上电并连接至2.4GHz Wi-Fi网络,且在控制台显示为“在线”状态。
二、 API接口与鉴权机制
芯步的接口采用标准的HTTP POST请求方式,通过签名进行身份验证。
请求地址
https://api.thingboot.com/{AppID}/device/control/鉴权参数:通过URL携带
sign和ts。核心请求头
Content-Type: application/json
签名生成规则:签名算法是双向MD5的嵌套。这一机制通过时间戳防止请求重放攻击,同时确保AppSecret不在网络中明文传输。
计算公式Sign = MD5( MD5(AppSecret) + ts )
步骤如下
将
AppSecret进行 MD5 加密,得到字符串S1。将
S1与当前的时间戳ts(秒为单位)进行拼接,得到S2。将
S2再次进行 MD5 加密,得到最终的Sign。
三、 核心命令协议
针对智能触摸墙壁开关3路产品,API中的 order 参数是核心控制指令。该设备支持独立控制三个物理继电器,对应三条不同的照明线路。
基础开关控制命令
| 功能描述 | JSON命令格式 | 说明 |
|---|---|---|
| 打开第1路照明 | {"power1": 1} | 控制L1接线柱闭合,灯亮 |
| 关闭第1路照明 | {"power1": 0} | 控制L1接线柱断开,灯灭 |
| 打开第2路照明 | {"power2": 1} | 控制L2接线柱闭合 |
| 关闭第2路照明 | {"power2": 0} | 控制L2接线柱断开 |
| 打开第3路照明 | {"power3": 1} | 控制L3接线柱闭合 |
| 关闭第3路照明 | {"power3": 0} | 控制L3接线柱断开 |
高级场景命令除了简单的开关,该硬件还支持情景模式控制,非常适合走廊、卫生间等需要延时关闭的场景:
| 功能描述 | JSON命令格式 | 说明 |
|---|---|---|
| 第1路“点动” | {"point1": 2000} | 立即接通,延时2秒(2000ms)后自动关闭 |
| 第2路“点动” | {"point2": 3000} | 立即接通,延时3秒后自动关闭 |
| 状态保持 | {"power1": {"keep": 1, "revert": 10}} | 强制锁定为开启状态,10秒内用户手动关闭也会自动切回 |
四、 对接开发实战
以下以最常见的独立开关控制为例,演示如何发送请求。假设你的参数配置如下:
AppID:
abc123AppSecret:
secret123DeviceID:
100001目标动作:打开第一路照明,关闭第二路照明。
1. 动态生成签名
如前所述,你需要生成 ts 和 sign。这里以 Shell 命令行为例(后端开发时同理):
2. 组合请求并发送
得到签名和时间戳后,即可构建完整的API请求。注意 device 参数类型为字符串(多设备用逗号隔开),order 参数为JSON对象。
代码实现提示:芯步的HTTP API接口兼容性强,开发者也可以使用
PHP构建关联数组进行请求,或在微信小程序中通过wx.request调用,实现移动端控制面板。
五、 常见故障排查
签名错误
现象:返回
sign error。解决:请核对
secret是否正确,特别注意 MD5 加密的是AppSecret的原始字符串还是二次处理后的字符串。
设备离线
现象:返回
device offline。解决:请检查设备供电是否正常,Wi-Fi密码是否变更,确保设备连接的是 2.4G Wi-Fi 频段。
控制延迟高
解决:芯步API同时支持局域网HTTP通信。如果你的服务器与设备处于同一网段,可获取设备局域网IP进行直控,响应速度可达毫秒级。