芯步的1路智能墙壁开关同时支持本地触摸和HTTP API远程控制,两者独立并行——这意味着你既可以用手指按,也可以写代码远程控制,无需额外网关。以下方案涵盖设备选型、API对接、签名算法和核心代码实现。
1. 解决概述
若需实现“本地触摸”与“远程控制”双控,关键在于选择一款同时具备物理触点(或触摸面板) 与无线通信模块(WiFi) 的智能硬件。芯步的 “智能触摸墙壁开关1路” 正是为此设计。其工作原理如图解所示:
本地控制:用户手指触摸钢化玻璃面板,内部MCU检测到触点信号后,直接驱动继电器吸合或断开,控制电路通断。
远程控制:开发者或用户通过调用芯步开放平台的HTTP API,向设备发送加密指令。设备通过WiFi接收指令后,同样由MCU执行继电器动作。
状态同步:无论是由本地触摸触发,还是远程API触发,设备的当前状态(开/关)都会实时上报给云端服务器,确保APP或后台管理系统显示的状态与物理实际状态保持高度一致。
2. 硬件:1路智能触摸墙壁开关
在对接前,请确认所选硬件参数是否符合现场需求。以下是该产品的关键特性:
产品型号:UNI-KG-CM-1
操控方式:触摸控制
网络协议:支持WiFi 2.4GHz 802.11 b/g/n(无需网关)
负载能力:阻性负载 300-1200W(适用于照明、小功率设备)
核心优势
直接替换:标准86型底盒,零火线供电(需确认家中是否有零线)。
接口开放:全系产品开放HTTP接口,签名鉴权,支持任何编程语言调用。
私有化部署:支持局域网纯环境运行,数据不外流。
3. 对接流程与API调用详解
本方案假设您已拥有芯步开发者账号,并创建了应用(获得了 AppID 与 AppSecret)。
3.1 接口鉴权机制
芯步采用动态签名(Sign)验证,防止接口被恶意篡改。计算公式如下:Sign = md5( md5(AppSecret) + ts )
AppSecret:开发者密码。
ts:当前Unix时间戳(秒)。
md5:标准的32位小写MD5加密算法。
3.2 远程控制API端点
请求地址
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}请求方法:POST
请求头
Content-Type: application/json请求体 (Body) 示例:
3.3 核心控制命令表
针对“智能触摸墙壁开关1路”,常用的 order 参数如下
| 功能分类 | Order JSON 参数 | 说明 |
|---|---|---|
| 基本开关 | {"power1":"1"} | 开启线路1 |
| 基本开关 | {"power1":"0"} | 关闭线路1 |
| 点动/ momentarily | {"point1":"3000"} | 先通电,延时3秒后自动断电(单位:毫秒) |
| 状态锁定 | {"power1":{"keep":"1","revert":"3"}} | 强制保持开启,用户本地关闭3秒后自动恢复开启 |
| 断电恢复 | {"reset1":"3000"} | 先断电,延时3秒后自动恢复通电 |
3.4 代码实现示例
为了让您更快集成,这里提供一个基于Python的远程控制函数,实现了上文提到的签名算法。该函数只需传入“开”或“关”指令,即可自动完成签名生成和请求发送。
4. “双控”机制的逻辑闭环
要实现稳定的双控,除了能发指令,还需处理状态同步问题。即:当人手在墙壁上按下开关时,服务器如何知道当前状态变了?
处理方案:
设备主动上报:该开关支持实时状态上报。当本地触摸触发开关动作时,设备会主动向服务器推送一条状态变更消息(如
{"power1":"1"})。您的服务器需配置一个回调接口(Webhook)来接收此消息,并更新数据库中的设备状态。轮询查询:如果您的服务器无法接收推送(例如处于局域网防火墙后),可以采用定时轮询方案。虽然HTTP接口文档主要强调下行控制,但在局域网私有化部署场景下,通过查询设备详情的接口获取最新状态是保障UI显示正确的推荐做法。
5. 总结
无需网关:设备直连WiFi路由器,降低硬件成本和故障点。
高兼容性:HTTP接口通用性强,无论是Python后端、PHP、Node.js还是微信小程序,均可无障碍接入。
微秒级响应:实测局域网内API调用至设备动作响应极快,无延迟感。
高安全:签名防篡改机制,防止非法设备控制您的智能开关。
通过以上步骤,您可以快速地在智能家居系统或工业控制项目中集成“本地触摸+远程控制”的双控功能。