CATALOG

芯步的8路智能控制器提供标准的HTTP API接口,可通过定时任务或外部调度服务实现精准的定时启停控制。以下方案涵盖硬件准备、接口调用流程及关键代码实现。

解决方案:基于芯步开放接口实现8路控制箱定时自动启停

1. 概述与硬件准备

本方案的目标是利用芯步智能通用控制器(8路) 的开放API接口,结合您的业务服务器或云端调度系统,实现对8路独立通道的定时自动控制(如路灯定时开关、工厂设备间歇运行、农业灌溉周期控制等)。

硬件: 芯步 8路智能分体远程多通道控制箱 / 智能通用控制器 (UNI-KZQ-TY-8) 核心机制: 设备直连WiFi/以太网,通过HTTP请求接收指令。实现定时任务有两种模式可选:

  • 模式一(设备侧定时): 利用设备固件支持的“定时任务”API,一次性将时间表写入设备,设备本地执行(断网后仍可执行)。

  • 模式二(云端/服务器侧调度): 由您的服务器根据Cron表达式计算时间点,届时通过HTTP接口实时下发指令(逻辑更灵活,便于日志记录和联动)。

2. 接口对接准备

在开始编码前,请确保完成以下准备工作

  1. 注册开发者账号: 登录芯步开放平台,获取 AppIDAppSecret(开发者密码)。

  2. 设备激活: 将8路控制箱配网并绑定至平台账户,获取唯一的 Device ID(例如:1878)。

  3. 理解签名机制: 每次API调用都需要动态生成签名,防止接口被篡改。

    • 签名算法:sign = md5( md5(AppSecret) + ts )

    • 注意:ts 为Unix时间戳(秒),需与请求时间保持一致。

3. 核心接口调用示例

该控制箱通过标准的HTTP POST请求进行控制,数据格式为JSON

请求地址:https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

关键命令字典(8路控制):根据产品手册,该设备支持以下核心命令

  • 单路控制:{"power1": 1} (开启第1路),{"power2": 0} (关闭第2路)。

  • 全控/批量控制:{"batch": 255} (二进制方式控制,255代表全部开启)。

  • 先通后断(点动):{"point": "3,1000"} (第3路接通1秒后自动断开)。

PHP 示例代码(实现单路控制):

4. 定时任务实现策略

针对“定时自动启停”需求,我们采用 模式二(服务器侧调度),因为8路设备通常需要结合复杂的业务逻辑(如根据天气调整时间),且便于后续扩展看板功能

系统架构图:

数据库 <--(读取定时计划)--> 定时调度器 (如Linux Cron/Jenkins/自建Scheduler) --> (触发HTTP请求) --> 芯步云平台API --> (下发指令) --> 8路控制箱 --> (执行启停)

实现步骤:

  1. 定义任务计划: 在数据库中建立 timing_tasks 表,字段包含:device_id, channel (1-8), cron_exp (如 0 8 * * * 表示每天8点), action (1开/0关), is_enabled

  2. 编写调度脚本: 编写一个 Worker 进程每分钟扫描数据库,计算当前时间点需要执行的任务。

  3. 执行控制: 一旦匹配成功,调用上述 controlDevice 函数,下发 {"powerN": value} 指令。

  4. 日志与重试: 记录每次下发的结果。如果因网络原因失败(未收到200 OK),采用随机间隔(或逐次增大间隔)重试机制(如1秒、2秒、4秒后重试),确保控制箱的最终状态与设定一致。

5. 高级场景配置

  • 全开全关(场景联动): 如果要实现“一键上班模式”,可以组合命令:{"power1":1,"power2":1,"power3":0}。通过HTTP请求一次性发送即可

  • 互锁控制: 如果控制电机正反转(如卷帘门),需确保两个通道不能同时开启。服务器逻辑层需增加校验:下发开启通道A前,必须先下发关闭通道B的命令。

  • 局域网直连(私有化部署): 如果对响应速度和数据安全要求比较高(如工厂内网),可利用芯步支持的局域网功能。将API请求地址指向设备的内网IP(如 http://192.168.1.100/control/...),无需经过外网云平台,实现毫秒级响应

6. 故障排查和需要注意的点

  1. 感性负载限制: 该控制器单路最大负载为 2200W(阻性),但针对电机类感性负载,降额使用(如 700W)或外接交流接触器,以防止继电器触点粘连

  2. 签名失效: API请求要求 ts 与服务器时间误差在合理范围内。请确保您的服务器时间已同步NTP,否则会返回签名错误。

  3. 状态同步: 除了主动控制,您可以订阅平台的消息推送。当有人手动按下了控制箱的物理按键,平台会主动推送状态变化到您的服务器,保持数据库状态实时同步。

通过以上方案,您无需关心底层硬件通信细节,仅需通过标准的HTTP协议即可将芯步的8路控制箱深度集成到您的业务系统中,实现高可靠的定时自动化管理。