CATALOG

芯步的2路墙壁智能开关通过HTTP接口实现远程控制,核心是签名验证和设备指令下发。以下从环境准备、签名算法、接口调用到场景扩展,梳理完整的对接方案。

1. 产品核心能力与适用场景

芯步的2路智能墙壁开关(型号:智能触摸墙壁开关2路)是一款支持标准86型底盒安装的入墙式设备。其核心功能如下:

  • 双路独立控制:物理上拥有两路继电器,可独立控制两路照明电路或小型电器(如卫生间灯+排风扇、客厅主灯+射灯)。

  • 开放HTTP接口:基于HTTP协议,无SDK语言限制,无论是网页、手机App、微信小程序还是后端服务均可调用。

  • 混合控制:支持物理触摸按键控制和远程API控制并行,且支持 “状态保持” 模式(例如:锁定为开启状态,用户物理关闭后数秒自动恢复开启,适用于公共卫生间等场景)

  • 网络要求:仅支持 2.4GHz WiFi,对接前请确保现场Wi-Fi信号覆盖且为2.4G频段

2. 对接准备:环境与凭证配置

在编写代码之前,需要完成硬件配网和开发者凭证的获取。

第一步:设备配网由于设备本身无屏幕,需要使用“热点配网”模式将其加入本地Wi-Fi:

  1. 注册芯步账号并登录控制台。

  2. 在控制台的“网络配置”中添加现场的2.4G Wi-Fi名称和密码。

  3. 长按墙壁开关(配网模式),手机连接设备发出的热点,此时设备会自动获取保存的Wi-Fi配置并联网

  4. 在控制台验证设备是否显示为“在线”。

第二步:获取开发凭证配网成功后,在开发者后台获取以下三个关键参数,这些参数将用于签名计算

  • AppID :应用的唯一标识。

  • AppSecret:开发者密码,严禁直接暴露在客户端代码中,在后端服务中存储。

  • DeviceID:设备的唯一ID,通常在控制台设备列表中可以查看。

参数描述示例值
AppID应用ID,由平台分配20xxx_9xxx
AppSecret开发者密钥,用于生成签名d5c8d...
DeviceID目标设备标识878210

3. API 签名机制详解

为了防止接口被篡改或非法调用,接口采用了 动态签名验证 。每次请求都需要在URL中携带signts(时间戳)参数。

签名生成算法核心逻辑由于芯步的算法为 MD5(MD5(AppSecret) + ts),具体步骤如下

  1. AppSecret使用MD5加密一次,得到encoded_secret

  2. encoded_secret与当前的Unix时间戳(秒,即ts)进行字符串拼接。

  3. 将拼接后的字符串再次进行MD5加密,得到最终的sign

安全提示ts(时间戳)用于防止重放攻击,服务器通常只接受短时间内(如5分钟内)的请求。请确保服务器时间与标准时间同步。

4. 核心接口调用实战:远程开关灯

对接的核心是调用 设备控制接口。该接口通过POST请求发送JSON格式的命令。

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • URL参数sign={计算出的签名}&ts={当前时间戳}

  • HeaderContent-Type: application/json

  • Body参数

    • device:设备ID(字符串)。

    • order:命令内容(JSON对象)。

第一种场景:基础开关控制最常见的需求是远程开启或关闭某一路照明。

  • 开启第一路:order字段为 {"power1": 1}

  • 关闭第二路:order字段为 {"power2": 0}

以下是一段伪代码示例,展示了如何构造请求:

第二种场景:脉冲与暂态控制如果想要实现“点动”功能(例如控制门禁或按下后只亮一段时间),可以使用先通后断或先断后通命令

  • 先通后断(点动){"point1": "2000"} (第一路先闭合,2秒后自动断开)。

  • 先断后通{"reset1": "3000"} (第一路先断开,3秒后自动闭合)。

第三种场景:状态锁定在一些公共场所,为了防止用户手动关闭,需要锁定状态。

  • 锁定开启{"power1": {"keep": "1", "revert": "3"}} (即使手动关闭,3秒后会自动强制打开)

5. 操作时序与状态同步机制

在实际系统中,除了控制设备,获取设备当前状态也很重要,这涉及到 “状态同步” 机制。根据接口文档,采用以下两种方式配合:

  1. 主动查询:通过调用设备信息查询接口,获取当前两路的开关状态(power1power2的值为0或1),通过定时轮询(Polling,如每10秒查询一次)更新UI。

  2. 被动接收:在控制台配置“上游消息接收地址”(Webhook URL)。当设备状态发生变化(无论是通过API控制还是物理触摸),平台会主动将状态推送到你的服务器。这种是最佳方案,可以实现真正的实时同步,无需轮询

6. 适用场景扩展

该方案不仅适用于基础照明,也适用于以下场景:

  • OA办公与楼宇自控:对接内部OA系统,实现下班时间自动关灯、根据会议室预订状态自动通电。

  • 智慧公寓与酒店:配合门锁系统,客人退房后自动断电节能,保洁打扫时远程开启指定回路照明。

  • 机柜与弱电间监控:远程重启挂墙的网络设备(通过控制供电通断实现冷重启),避免人员进出机房的麻烦。

7. 常见问题排查

  1. 签名错误(Sign Error)

    • 检查ts是否为Unix时间戳(秒级),不是毫秒级。

    • 确认MD5加密结果为32位小写十六进制字符串。

    • 验证拼接顺序:MD5(AppSecret)的结果 + ts(字符串拼接),不是加法运算

  2. 设备离线(Device Offline)

    • 设备只支持2.4G WiFi,请确认路由器没有开启“双频合一”功能,分开设置。

    • 检查家中网络是否有防火墙拦截了 api.thingboot.com 域名的访问。

  3. 物理按键无效但API可控

    • 检查是否设置了keep(锁定)指令。如果是,需要发送关闭锁定的指令(keep置0)或重启设备解除锁定。