CATALOG

芯步的智能墙壁开关开放了标准的HTTP API接口,通过签名认证即可对两路电路进行独立控制。以下方案涵盖接口对接、签名计算、单路/双路控制命令,以及基于定时任务的自动启停实现方式。

1. 项目概述与目标

本方案的目标是指导开发者如何利用芯步提供的开放 HTTP 接口,对接智能触摸墙壁开关2路设备。通过编程方式实现对该设备两路独立电源输出的定时自动启停控制(例如:定时开启/关闭灯光、风扇等电器),从而构建智能照明或节能管理系统。

2. 准备工作

在开始编码开发之前,需要完成以下硬件准备与平台配置:

2.1 硬件准备

  • 智能触摸墙壁开关2路:确保设备已正确安装(接好零火线)并通电

  • 网络连接:确保设备已通过Wi-Fi配网成功,并能在芯步控制台看到设备在线状态。

2.2 平台侧配置

  1. 注册与登录:访问芯步官网注册开发者账号

  2. 获取凭证:进入工作台的“物联网控制台” -> “开发设置”,获取以下关键参数:

    • AppID:应用的唯一标识。

    • AppSecret:用于计算接口签名的密钥(请妥善保管)

  3. 获取设备ID:在控制台设备列表中找到已配网的“智能触摸墙壁开关2路”,记录其Device ID(例如文档中的1878

3. 接口鉴权机制

芯步的API采用动态签名进行安全校验,所有控制请求都必须包含正确的签名。签名算法为:Sign = md5( md5(AppSecret) + ts )

  • ts:当前时间的Unix时间戳(秒)。

  • 步骤

    1. 将 AppSecret 进行MD5加密得到字符串 S1

    2. S1 与时间戳 ts 拼接成字符串 S1ts

    3. S1ts 再次进行MD5加密得到最终的 Sign

4. 核心API对接:设备控制

所有针对开关的“开/关”操作都通过向指定API地址发送POST请求完成。

4.1 请求地址

POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
  • Content-Typeapplication/json

4.2 请求参数详解

请求体为JSON格式,包含两个字段:

字段类型描述
deviceString目标设备的唯一ID(支持多设备,逗号分隔)。
orderObject控制指令(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发送控制命令。

步骤:

  1. 编写脚本 control_light.sh,内容包含计算签名并控制开关。

  2. 配置Crontab:0 8 * * * /path/control_light.sh on (每天8点开灯),0 18 * * * /path/control_light.sh off (每天18点关灯)。

代码示例(Curl命令):

方案二:高级调度与联动(结合传感器)

如果您需要更复杂的逻辑(例如:环境光线变暗时开灯,或离家模式自动断电),采用以下架构:

  1. 数据上行:通过芯步的消息推送机制,接收传感器(人体传感器、光照传感器)上报的数据

  2. 逻辑处理:您的服务器接收传感器数据后,判断当前环境状态。

  3. 指令下行:如果条件满足(如光线 < 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向设备发送对应的 power1power2 指令。

7. 局域网与私有化部署(进阶)

如果您的应用对网络延迟极其敏感或处于内网环境(无公网IP),芯步支持局域网控制私有化部署

  • 局域网模式:如果服务器与智能开关在同一个局域网内,SDK或API可自动切换至局域网IP进行通信,绕过云端,降低延迟并提高稳定性。

  • 私有化部署:对于大型项目,可将整个物联网平台部署在企业内部服务器上,所有数据不外流。

8. 常见问题与排查

  1. 签名错误(401 Unauthorized)

    • 检查时间戳是否为Unix秒级。

    • 严格按照 md5(md5(AppSecret)+ts) 顺序计算,注意是拼接字符串后再做MD5,而非十六进制相加。

  2. 命令无效(Device Offline)

    • 确认设备供电正常且Wi-Fi信号良好。2.4G频段信号穿透性较好,避免连接5G Wi-Fi。

  3. 两路控制互斥

    • 该硬件支持两路同时开启(只要总负载不超过额定功率),无硬件互斥逻辑。可以连续发送两个命令分别控制,或等待设备固件支持复合命令。

通过以上步骤,您可以快速利用芯步的开放接口,将普通的墙壁开关升级为可编程、可远程控制的智能节点。