芯步的1路独立控制墙壁开关(无论是触摸版还是标准版)均开放了标准的HTTP API接口,支持二次开发。通过调用power1命令即可实现独立控制,结合传感器设备的实时数据上报,可以轻松搭建“检测-判断-控制”的自动化联动闭环。
以下方案以“智能人体传感器触发墙壁开关打开排气扇”为具体场景,展示完整的设备联动控制实现。
一、 准备工作与环境搭建
在编写任何代码之前,你需要准备好以下三个核心凭证和网络环境:
获取凭证(AppID 和 AppSecret) :
注册并登录。
进入“工作台” -> “物联网控制台” -> “开发设置”。
在这里你可以找到
AppID(应用ID)和AppSecret(开发者密码),后者用于计算接口签名。
获取设备ID
在控制台的设备列表中找到你即将控制的“墙壁开关”和“传感器”的
Device ID(设备唯一标识)。
配置消息接收地址(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参数
sign和ts。Header
Content-Type: application/jsonBody参数示例
场景 Device ID Order命令 (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.state为someone时,调用control_device函数打开开关;如果超过设定时间未收到触发信号(连续无人),则关闭开关。技术点:需要引入
crypto库(用于签名计算)和http或axios库(用于发送控制请求)。
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)。这种架构不仅适用于简单的“人来灯亮”,也适用于复杂的商业中控系统集成。