CATALOG

芯步的1路独立控制墙壁开关(无论是触摸版还是标准版)均开放了标准的HTTP API接口,支持二次开发。通过调用power1命令即可实现独立控制,结合传感器设备的实时数据上报,可以轻松搭建“检测-判断-控制”的自动化联动闭环

以下方案以“智能人体传感器触发墙壁开关打开排气扇”为具体场景,展示完整的设备联动控制实现。

一、 准备工作与环境搭建

在编写任何代码之前,你需要准备好以下三个核心凭证和网络环境:

  1. 获取凭证(AppID 和 AppSecret)

    • 注册并登录

    • 进入“工作台” -> “物联网控制台” -> “开发设置”。

    • 在这里你可以找到 AppID(应用ID)和 AppSecret(开发者密码),后者用于计算接口签名

  2. 获取设备ID

    • 在控制台的设备列表中找到你即将控制的“墙壁开关”和“传感器”的 Device ID(设备唯一标识)

  3. 配置消息接收地址(Webhook)

    • 这是实现联动控制的关键。你需要拥有一台具备公网IP或域名的服务器。

    • 在“开发设置”中配置“消息推送URL”。当传感器状态变化时,芯步平台会将数据主动POST到这个地址,你的后端逻辑通过这个地址触发

二、 核心技术实现

二次开发主要涉及两个技术动作:接收数据(上行)下发指令(下行)

1. 接收传感器触发(上行数据)

当人体传感器检测到有人/无人时,平台会向你的服务器发送如下格式的JSON数据

  • 请求示例 (POST to your server):

2. 核心认证机制(Sign签名计算)

你的服务器在接收到“有人”信号后,需要调用接口去开灯。芯步的接口使用动态签名鉴权,请一定要在后端服务中计算签名,不要在前端暴露AppSecret

签名生成规则(伪代码示意,实际需根据具体代码环境实现):

Step 1: md5_1 = md5(AppSecret)            // 将AppSecret进行一次MD5加密
Step 2: str = md5_1 + ts                  // 拼接时间戳(秒级)
Step 3: sign = md5(str)                   // 再次MD5得到最终签名

注意:ts需与请求发起时间相近(通常允许5分钟内误差)。

3. 下发控制指令(下行数据)

这是控制墙壁开关的核心接口。根据order字段的值决定开关状态

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

  • 请求方法:POST

  • Query参数signts

  • HeaderContent-Type: application/json

  • Body参数示例

    场景Device IDOrder命令 (JSON字符串)解释
    打开开关"1878"{"power1":1}开启第1路继电器
    关闭开关"1878"{"power1":0}关闭第1路继电器
    点动模式"1878"{"point1":"2000"}先通后断,模拟按下2秒后自动松开
    锁存模式"1878"{"power1":{"keep":"1","revert":"10"}}状态保持:开保持10秒后自动归位

三、 场景实战:人来灯亮,人走灯灭

假设我们将“1路墙壁开关”连接了排风扇或照明灯,通过“人体存在传感器”检测人员活动。你的后端开发逻辑(Python/Node.js/Java等)如下所示:

1. 第一步:编写接收回调的服务(Node.js示意)

你需要一个Web服务器来处理传感器发来的消息。

  • 业务逻辑:当data.statesomeone时,调用control_device函数打开开关;如果超过设定时间未收到触发信号(连续无人),则关闭开关。

  • 技术点:需要引入crypto库(用于签名计算)和httpaxios库(用于发送控制请求)。

2. 第二步:封装控制函数

你需要向 https://api.thingboot.com/{AppID}/device/control/ 发起POST请求。

  • 请求体:构造{"device": "这里填开关的ID", "order": {"power1":1}}

  • 关键点:签名(sign)按照“两次MD5加密”的规则动态生成,时间戳(ts)需精确到秒。

四、 高级功能和需要注意的点

1. 局域网与私有化场景

  • 局域网控制:芯步设备支持局域网直接控制。如果你的服务器和设备在同一网段,可以尝试通过设备本地IP进行控制,不经过云平台,延迟更低且断外网也能用

  • 私有化部署:若对数据安全要求比较高,支持将整个平台私有化部署

2. 拓展联动逻辑

除了“传感器触发”,“1路墙壁开关”本身也可作为触发器:

  • 双击/长按场景:墙壁开关的物理按键通常支持多种触发模式,你可以配置“双击开关” -> 调用API -> 关闭全屋其他设备

  • 定时任务:云端支持定时任务,用于无人值守时的定时断电操作。

3. 测试与调试

  • 控制台测试:在二次开发前,先在芯步官方的“物联网控制台”手动点击“开/关”,确认设备接线和网络正常

  • 日志监控:在接收消息的API中加入详细日志,记录每次sign计算的结果和ts数值,方便排查签名错误问题。

总结

通过对芯步开放接口的二次开发,开发者可以轻易地将物理世界的设备数字化。整个过程概括为:传感器采集数据 -> 事件触发后端逻辑 -> 后端计算安全签名 -> 调用API控制1路开关(power1)。这种架构不仅适用于简单的“人来灯亮”,也适用于复杂的商业中控系统集成