CATALOG

芯步的智能开关支持HTTP API和本地按键双向控制,核心思路是:本地按键直接控制继电器,云端API通过签名认证远程下发指令,两者并行工作、状态实时同步。以下方案涵盖硬件选型、接口接入、状态同步及典型应用场景。

1. 解决概述

在许多智能化改造场景中(如智能家居、工业控制、办公室照明),要求即使互联网断开,现场人员依然能通过物理按键控制设备;同时,管理员或自动化系统也需要通过网络进行远程操控。

依托芯步开放的 HTTP API接口 和硬件的 本地物理按键,我们可以实现这一逻辑。硬件本身具备状态上报能力,无论是本地按键触发还是远程指令触发,设备状态都会实时同步到云端,确保控制的一致性和实时性。

2. 硬件选型:2路智能开关

要实现2路独立控制,应选择芯步旗下支持2路独立输出的智能开关产品。根据其官网信息,推荐使用 智能墙壁开关2路 系列

该硬件具备以下关键特性:

  • 双路控制:可独立控制两路电路(如灯光或电器),对应本地两个物理按键。

  • 本地直连:物理按键直接连接GPIO或继电器控制引脚,即使无网络也可使用。

  • WiFi连接:设备通过2.4GHz WiFi联网,保持与控制云端的持久连接。

  • 状态反馈:开关状态发生变化(无论是按键还是远程触发),设备会主动上报当前状态。

3. 接口对接流程(远程控制部分)

要通过HTTP接口实现远程控制,需要利用芯步提供的Open API。以下为核心对接流程与签名算法

3.1 前期准备

在开始开发前,需要在芯步控制台完成以下配置:

  1. 注册/登录

  2. 获取凭证:在“开发设置”中获取 AppIDAppSecret(开发者密码)。

  3. 获取设备ID:将2路智能开关配网添加到工作台后,获取其唯一标识 device ID(通常为一串数字,如 820720

3.2 接口签名规则

为了安全,所有API请求都需要携带动态签名。签名算法规则如下

  • 公式Sign = md5( md5(AppSecret) + ts )

  • 参数说明

    • AppSecret:控制台获取的密钥。

    • ts:当前Unix时间戳(秒)。

  • 计算步骤

    1. AppSecret 进行第一次MD5加密得到 str1

    2. str1 与时间戳 ts 拼接成字符串 str2

    3. str2 进行第二次MD5加密得到最终的 Sign

3.3 API 调用示例

利用生成的签名向指定设备下发命令。

  • 请求URLhttps://api.thingboot.com/{AppId}/device/control/?sign={Sign}&ts={ts}

  • 请求方式POST

  • HeaderContent-Type: application/json

  • 请求Body

在这个示例中,设备将会执行“第一路打开,第二路关闭”的动作。由于硬件响应极快(官方数据约80-120ms),远程操作的体验会非常流畅

4. 双控制逻辑实现方案

本方案的核心在于如何协调“本地按键”与“远程HTTP指令”,避免逻辑冲突。

4.1 本地控制逻辑(硬件层)

芯步的智能开关在硬件设计上,物理按键直接连接MCU的中断引脚。

  • 执行流程:用户按下按键 -> 电平变化触发中断 -> MCU切换对应继电器状态 -> 继电器“吸合/断开”改变电路通断。

  • 优势:物理按键控制完全不需要经过网络协议栈,即使在断网、WiFi信号差或云端故障的情况下,本地按键依然可以正常开关灯,保证了作为开关的基础可靠性。

4.2 远程控制逻辑(云端API层)

  • 执行流程:第三方系统调用HTTP API -> 芯步云端鉴权 -> 云端下发指令给设备(MQTT/CoAP协议) -> 设备解析指令并控制继电器。

  • 注意点:由于使用的是HTTP请求,API调用是短连接,设备通过长连接维持与云端的通信,因此HTTP接口下发命令时,需要确保设备在线。

4.3 状态同步机制

要实现真正的“双控”,必须解决状态同步问题。当用户使用本地按键开灯时,APP上必须显示“开”,否则会出现状态不一致。

  • 机制:芯步设备端固件支持 “状态主动上报”。当本地按键触发继电器变化后,MCU会立即通过WiFi向云端发送一条“当前状态”的数据包。

  • 应用层处理:通过 “订阅设备上下行消息”“设置HTTP消息推送” 的方式,让服务器在收到设备上报的状态后,实时推送到你的业务服务器或前端WebSocket,从而实现UI界面的即时更新。

5. 方案优势和需要注意的点

5.1 方案优势

  • 高可用性:网络中断不影响本地基本使用。

  • 开发效率高:芯步的HTTP接口结构清晰,签名逻辑固定,兼容性强

  • 扩展性强:除了基础开关,还可利用指令提供更丰富的功能:

    • 互锁/保持:用于电机正反转控制或安防场景

    • 定时任务:可下发 resetpoint 命令实现“ momentarily on/off”等点动控制

5.2 注意事项

  • 网络延迟:虽然远程控制响应快,但依赖于WiFi信号质量。在信号差的角落,HTTP指令下发可能会有延迟或超时。

  • IP白名单:若服务器环境固定,在芯步控制台配置API调用的IP白名单,虽然HTTP请求依赖动态签名,但仍配置IP白名单以提升安全性

  • 设备唯一性:一个设备ID是唯一的,如果多套系统同时调用API控制同一个设备,注意做好逻辑锁,避免命令冲突。

6. 总结

通过芯步的2路智能开关及其开放接口,我们只需要编写少量代码即可实现低延迟、高可靠的双控制方案。开发者只需要关注应用的业务逻辑(何时调用API),而无需关心底层通信细节和设备本地响应速度。该方案不仅适用于简单的灯光控制,还可用于门禁、电机、水泵等工业设备的场景化改造。