CATALOG

芯步的开放接口基于HTTP协议,签名机制为md5(md5(AppSecret) + ts),设备控制通过POST请求发送JSON命令。针对24路模块,虽然官方示例主要覆盖1/4路设备,但命令结构可类推——核心是在order字段中指定线路和动作参数

一、 背景与需求

在工业自动化和智能家居场景中,远程控制开关模块常用于控制灯光、电机、阀门等设备。用户通常面临两种控制需求:

  1. 自锁模式:发送一次“开”指令,继电器保持吸合状态;发送一次“关”指令,继电器断开。类似标准照明的机械开关。

  2. 点动模式:发送指令后,继电器仅在设定时间内吸合,时间到后自动断开。常用于控制卷帘门、电锁、电磁阀等瞬时动作设备。

针对芯步生态中的 24路远程开关控制模块,本文将详细阐述利用其开放接口进行二次开发,实现上述两种模式的灵活切换与精准控制。

二、 核心技术架构

本方案基于 HTTP协议芯步开放平台 进行对接,不依赖特定的硬件网关,支持任何具备网络编程能力的语言。

  • 接口地址http(s)://api.thingboot.com/{AppId}/device/control/

  • 请求方式POST

  • 数据格式JSON

  • 签名机制sign = md5(md5(AppSecret) + ts),用于验证开发者身份,防止接口被恶意调用

三、 业务逻辑设计

要实现模式的切换,我们不能仅靠硬件物理层面的“记忆”,而是要在业务软件层定义状态机。

  1. 状态定义

    • 自锁模式 (Latching):软件侧将设备的控制逻辑标记为“保持型”。

    • 点动模式 (Momentary):软件侧标记为“脉冲型”,并设定脉冲宽度 T(如 500ms, 1s)。

  2. 流程控制

    • 当软件处于自锁模式时,调用“开启”接口,继电器的状态变更会持续保持,直到调用“关闭”接口。

    • 当软件处于点动模式时,程序调用“开启”接口后,自动启动一个定时器,待 T 时间后,自动调用“关闭”接口。

四、 接口调用与二次开发实现

由于芯步的开放接口对单路、4路、24路设备的底层控制逻辑一致,通常是通过 powerpowerX 字段进行控制 。针对 24 路模块,order 字段的结构查阅具体设备的寄存器映射表,若无特殊复合结构,通常遵循单路独立控制或多路批量控制的原则。

以下是基于 Python 实现的核心控制类伪代码解决方案:

五、 关键实现细节

1. 点动脉冲宽度的精准控制

  • 网络延迟补偿:在点动模式中,若网络环境较差,从云端下发“开”指令到执行“关”指令可能因网络波动导致误差。如果要求毫秒级精度,在设备固件原生支持点动模式(即通过 order 字段携带 point 参数)。根据类似设备文档,部分智能墙壁开关或控制器支持通过 {"point1": "2000"} 这样的原生指令实现硬件级点动,这比软件定时更精准

  • 方案优化:查阅 24 路模块技术手册,若支持 point 参数(如 {"point1": 500} 表示第1路点动0.5秒),应优先使用硬件指令模式。

2. 24 路并发控制

对于 24 路的复杂场景,使用批量控制接口以减少网络请求次数。例如:

  • 批量控制多路通断:{"batch":{"relay":[1,3,5],"power":0}}

  • 并发点动:如果需要在同一秒内控制多路同时点动,需注意线程调度或使用异步 IO。

3. 状态同步与回调

  • 状态获取:自锁模式下,请一定要通过接口查询设备的实际状态(device/status),以保持 UI 与物理设备的同步。

  • 回调机制:如果用户在网页上点击“点动”,结果是瞬间完成(开-关),为了避免前端界面状态闪烁,需要在前端设计上做特殊处理(例如不改变开关的最终状态显示)。

六、 总结

通过芯步开放的 HTTP API,开发者能够利用简单的 Python/Java/PHP 脚本,将普通的 24 路控制器升级为具备工业逻辑控制的智能设备。

  • 自锁模式:利用 API 的标准 powerX 指令实现。

  • 点动模式:通过 软件定时逻辑硬件原生指令 实现自动复位。

该方案适用于智能仓储、农业大棚及自动化产线改造,极大地降低了逻辑控制的硬件成本。