芯步的智能触摸开关提供了完整的HTTP API接口,支持在公网和局域网环境下进行二次开发。以下是基于其开放接口实现自定义联动逻辑的完整方案。
1. 概述
1.1 产品简介
芯步智能触摸墙壁开关1路是一款基于WiFi无线通信的单路继电器控制设备。该产品采用标准86型墙壁开关设计,可直接替换传统开关,支持手动触摸控制和远程API控制两种模式。
1.2 技术特性
| 特性 | 说明 |
|---|---|
| 网络连接 | WiFi 2.4GHz,支持5组WiFi网络自动切换 |
| 控制方式 | HTTP API / MQTT |
| 部署模式 | 公网SaaS / 纯局域网私有化 |
| 接口协议 | HTTP POST + JSON |
| 签名机制 | MD5双层加密 |
1.3 适用场景
通过开放接口,开发者可将开关接入自有系统,实现传感器联动、定时任务、场景自动化、远程运维等自定义逻辑控制。
2. 系统架构
2.1 整体架构图
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 传感器设备 │ ──▶ │ 芯步云平台 │ ──▶ │ 触摸开关设备 │
│ (人体/温湿度等) │ │ api.thingboot.com │ │ (执行动作) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
▲
│ HTTP API
│ 签名验证
┌───────┴───────┐
│ 业务服务器 │
│ (自定义联动逻辑) │
└───────────────┘2.2 数据流向
下行控制:业务系统 → 芯步云API → 触摸开关(执行开/关/延时动作)
上行事件:传感器 → 芯步云 → 业务系统(触发联动判断)
私有化模式:全部流量可运行于局域网环境,不经过公网
3. 接入准备
3.1 账号与设备准备
注册账号:访问芯步官网注册开发者账号()
创建工作台:登录后创建个人或企业工作台
获取AppID/AppSecret:进入物联网控制台的“开发设置”模块,记录开发者ID和开发者密码
设备配网:按产品手册引导,将触摸开关接入2.4GHz WiFi网络
3.2 开发模式选择
芯步提供两种开发模式:
| 模式 | 特点 | 适用场景 |
|---|---|---|
| 调试模式 | 不校验sign和ts,无需签名计算 | 开发测试阶段 |
| 生产模式 | 需计算MD5签名,可配置IP白名单 | 正式上线环境 |
4. API接口详解
4.1 接口基本信息
| 项目 | 内容 |
|---|---|
| 请求地址 | http(s)://api.thingboot.com/{AppID}/device/control/ |
| 请求方式 | POST |
| Content-Type | application/json |
| 参数传递 | URL Query(sign/ts)+ JSON Body(device/order) |
4.2 签名计算规则
签名生成采用双层MD5加密,具体算法如下:
Step1: 对 AppSecret 进行一次 MD5 加密,得到 secret_md5 Step2: 将 secret_md5 与当前时间戳 ts 拼接 Step3: 对拼接后的字符串再次进行 MD5 加密,得到最终签名 sign = MD5( MD5(AppSecret) + ts )
示例代码(Node.js):
示例代码(Python):
示例代码(Shell + curl):
4.3 请求参数说明
| 参数名 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
| AppID | URL路径 | 是 | string | 开发者ID |
| sign | Query | 是 | string | 签名值(32位小写MD5) |
| ts | Query | 是 | int | Unix时间戳(秒) |
| device | Body | 是 | string | 设备唯一ID,多个用逗号分隔 |
| order | Body | 是 | object | 命令对象(JSON格式) |
4.4 完整请求示例
HTTP Request:
cURL命令:
4.5 响应码说明
| Code | 说明 |
|---|---|
| 200 | 命令下发成功(仅表示平台接收,不代表设备执行成功) |
| 501 | 未指定设备ID |
| 502 | 设备不存在或无权限 |
| 503 | 设备数量超限(最多100台) |
| 50xx | 其他错误,参考全局错误码 |
⚠️ 重要提示:返回200仅表示平台收到指令,设备可能离线或命令参数有误。如需确认设备实际执行状态,请通过消息推送机制获取异步反馈。
5. 开关控制命令详解
5.1 基础开关控制
触摸开关1路的核心控制命令为 power1,参数值为 1(开)或 0(关)
5.2 高级控制命令
产品还支持多种智能化控制模式:
| 功能 | 命令格式 | 说明 | 示例 |
|---|---|---|---|
| 状态保持 | {"power1":{"keep":"0/1","revert":"n"}} | 用户手动操作n秒后自动恢复 | {"power1":{"keep":"1","revert":"3"}} 用户关灯3秒后自动开 |
| 先通后断 | {"point1":"ms"} | 先接通,延时后断开 | {"point1":"3000"} 通3秒后断 |
| 先断后通 | {"reset1":"ms"} | 先断开,延时后接通 | {"reset1":"5000"} 断5秒后通 |
5.3 批量设备控制
支持单次请求控制多个设备:
注:多个设备ID用逗号分隔,所有设备必须支持相同的命令。
6. 自定义联动逻辑实现
6.1 第一种场景:人体感应联动开灯
业务需求:当人体传感器检测到有人时,自动打开触摸开关;无人时自动关闭。
实现方案
6.2 第二种场景:定时/延时控制
业务需求:每天22:00自动关灯,或在特定条件下延时关灯。
实现方案
6.3 第三种场景:传感器阈值联动
业务需求:温湿度传感器上报温度过高时,自动开启排风扇(触摸开关控制)。
实现方案
6.4 场景四:多设备联动(分组控制)
业务需求:离家时一键关闭所有灯和电器。
实现方案
7. 私有化部署方案
7.1 局域网模式
芯步产品支持纯局域网环境运行,无需访问公网即可实现设备控制。
配置要点
设备与业务服务器处于同一局域网
API请求地址指向局域网内的私有化网关
签名机制和接口协议完全一致
7.2 自建消息服务器
支持配置自定义MQTT服务器,设备状态变化实时推送到业务系统。
8. 最佳实践
8.1 性能优化
批量控制:单次请求最多控制100台设备,减少网络开销
连接复用:使用HTTP Keep-Alive或连接池
异步处理:使用MQTT订阅方式接收状态反馈,降低轮询频率
8.2 安全
IP白名单:生产环境配置API调用IP白名单
签名验证:禁用调试模式,确保每次请求携带正确签名
设备权限:确保AppID仅授权必要的设备
8.3 调试技巧
在物联网控制台的“设备详情-控制”页面测试命令,可查看实际发送的JSON格式
开发阶段开启调试模式,简化对接流程
使用Postman等工具进行接口调试
8.4 注意事项
| 要点 | 说明 |
|---|---|
| 网络要求 | 仅支持2.4GHz WiFi,不支持5GHz |
| 命令反馈 | 200不代表设备执行成功,需异步确认 |
| 延时精度 | 先通后断/先断后通的延时单位毫秒,支持1000/3000/5000 |
| 设备ID | 可在控制台查看,也可通过设备列表接口拉取 |
9. 总结
芯步智能触摸墙壁开关1路通过标准HTTP API接口,为开发者提供了完整的设备控制能力。结合本文的签名算法、命令格式和联动逻辑示例,开发者可以快速将其接入各类业务系统,实现:
自定义联动规则:基于传感器数据、时间计划、业务事件触发开关动作
批量设备管理:单次请求控制多台设备
高级控制模式:延时通断、状态保持等场景化功能
灵活部署方式:公网SaaS或纯局域网私有化
通过上述方案,开发者可根据实际业务需求,灵活构建从简单的远程控制到复杂的自动化场景联动。