芯步的智能墙壁开关开放了标准的HTTP API接口,通过签名认证即可对两路电路进行独立控制。以下方案涵盖接口对接、签名计算、单路/双路控制命令,以及基于定时任务的自动启停实现方式。
1. 项目概述与目标
本方案的目标是指导开发者如何利用芯步提供的开放 HTTP 接口,对接智能触摸墙壁开关2路设备。通过编程方式实现对该设备两路独立电源输出的定时自动启停控制(例如:定时开启/关闭灯光、风扇等电器),从而构建智能照明或节能管理系统。
2. 准备工作
在开始编码开发之前,需要完成以下硬件准备与平台配置:
2.1 硬件准备
智能触摸墙壁开关2路:确保设备已正确安装(接好零火线)并通电。
网络连接:确保设备已通过Wi-Fi配网成功,并能在芯步控制台看到设备在线状态。
2.2 平台侧配置
注册与登录:访问芯步官网注册开发者账号。
获取凭证:进入工作台的“物联网控制台” -> “开发设置”,获取以下关键参数:
AppID:应用的唯一标识。
AppSecret:用于计算接口签名的密钥(请妥善保管)。
获取设备ID:在控制台设备列表中找到已配网的“智能触摸墙壁开关2路”,记录其Device ID(例如文档中的
1878)。
3. 接口鉴权机制
芯步的API采用动态签名进行安全校验,所有控制请求都必须包含正确的签名。签名算法为:Sign = md5( md5(AppSecret) + ts )。
ts:当前时间的Unix时间戳(秒)。
步骤
将 AppSecret 进行MD5加密得到字符串
S1。将
S1与时间戳ts拼接成字符串S1ts。将
S1ts再次进行MD5加密得到最终的Sign。
4. 核心API对接:设备控制
所有针对开关的“开/关”操作都通过向指定API地址发送POST请求完成。
4.1 请求地址
POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Content-Type
application/json。
4.2 请求参数详解
请求体为JSON格式,包含两个字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| device | String | 目标设备的唯一ID(支持多设备,逗号分隔)。 |
| order | Object | 控制指令(JSON对象),针对2路开关的具体命令见下文。 |
4.3 关键控制命令
针对“2路”墙壁开关,order对象支持独立控制每一路,具体的命令映射如下
| 功能描述 | 命令格式 (order) | 适用场景 |
|---|---|---|
| 开启第1路 | {"power1": 1} | 打开第一路所接电器。 |
| 关闭第1路 | {"power1": 0} | 关闭第一路所接电器。 |
| 开启第2路 | {"power2": 1} | 打开第二路所接电器。 |
| 关闭第2路 | {"power2": 0} | 关闭第二路所接电器。 |
| 脉冲模式(点动) | {"point1": 1000} | 第1路先通后断,延时1秒(单位毫秒)。 |
| 复位模式 | {"reset1": 2000} | 第1路先断后通,延时2秒(单位毫秒)。 |
5. 定时自动启停实现方案
要实现“定时自动启停”,需要结合定时任务触发器(如Linux Crontab、Windows计划任务、代码中的Timer/Scheduler)与上述API接口。由于芯步开放接口目前主要提供实时控制功能,定时逻辑通常在您的业务服务器端实现。
方案一:服务端定时脚本(以Linux Crontab + Curl为例)
您可以编写一个Shell脚本,利用Crontab设定执行时间,脚本内部调用Curl发送控制命令。
步骤:
编写脚本
control_light.sh,内容包含计算签名并控制开关。配置Crontab:
0 8 * * * /path/control_light.sh on(每天8点开灯),0 18 * * * /path/control_light.sh off(每天18点关灯)。
代码示例(Curl命令):
方案二:高级调度与联动(结合传感器)
如果您需要更复杂的逻辑(例如:环境光线变暗时开灯,或离家模式自动断电),采用以下架构:
数据上行:通过芯步的消息推送机制,接收传感器(人体传感器、光照传感器)上报的数据。
逻辑处理:您的服务器接收传感器数据后,判断当前环境状态。
指令下行:如果条件满足(如光线 < 50 lux 且 有人移动),则调用上述4.3节中的接口控制开关闭合。
6. 涉及两路控制的场景案例
场景:办公区节能定时控制
需求
工作日上午9:00,开启第1路(主照明)。
中午12:00-13:00,关闭第1路(午休熄灯)。
下午13:00,重新开启第1路。
下午18:00,关闭第1路(下班),同时开启第2路(下班清洁模式/备用插座)。
晚上22:00,关闭第2路。
实现:在服务器设置5个定时任务,分别在9:00、12:00、13:00、18:00、22:00向设备发送对应的
power1或power2指令。
7. 局域网与私有化部署(进阶)
如果您的应用对网络延迟极其敏感或处于内网环境(无公网IP),芯步支持局域网控制和私有化部署。
局域网模式:如果服务器与智能开关在同一个局域网内,SDK或API可自动切换至局域网IP进行通信,绕过云端,降低延迟并提高稳定性。
私有化部署:对于大型项目,可将整个物联网平台部署在企业内部服务器上,所有数据不外流。
8. 常见问题与排查
签名错误(401 Unauthorized)
检查时间戳是否为Unix秒级。
严格按照
md5(md5(AppSecret)+ts)顺序计算,注意是拼接字符串后再做MD5,而非十六进制相加。
命令无效(Device Offline)
确认设备供电正常且Wi-Fi信号良好。2.4G频段信号穿透性较好,避免连接5G Wi-Fi。
两路控制互斥
该硬件支持两路同时开启(只要总负载不超过额定功率),无硬件互斥逻辑。可以连续发送两个命令分别控制,或等待设备固件支持复合命令。
通过以上步骤,您可以快速利用芯步的开放接口,将普通的墙壁开关升级为可编程、可远程控制的智能节点。