CATALOG

芯步的16路控制器支持HTTP接口调用,定时任务的集中管理可以通过自建定时服务+批量指令下发来实现。以下方案涵盖接口对接、指令设计和任务调度三个核心环节。

解决方案:基于芯步开放接口对接16路分体物联网控制箱实现集中定时任务管理

一、 背景与概述

在许多园区、农业大棚、楼宇照明或工厂设备管理中,常需要对分布在各个区域的16路分体物联网控制箱(型号:UNI-KZQ-TY-16)进行统一管理。核心需求是“定时任务”“集中启停”

芯步的智能通用控制器(16路)提供了开放、标准的HTTP API接口,支持云端或本地服务器直接调用 。本方案的目标是指导开发者如何利用该接口,搭建一套稳定的定时任务系统,实现对单台或多台控制箱的批量、自动化控制。

二、 核心技术架构

本方案采用 “业务服务器 + 定时任务引擎 + 芯步HTTP接口” 的架构。

  1. 设备层:部署UNI-KZQ-TY-16控制箱。该设备支持WiFi 2.4G连接,拥有16路继电器输出,每路均可独立控制

  2. 接口层:利用芯步开放的API,通过HTTP请求(POST)下发指令(如 power1batch)。

  3. 业务层:您自建的服务器或云函数。这里不依赖芯步的云端策略,而是由您自己的系统生成定时任务(Cron Job 或 Scheduler),确保逻辑自主可控。

三、 对接准备与鉴权

在编写代码前,需在芯步开发者后台完成以下准备:

  1. 获取凭证:在控制台获取 AppIdAppSecret,用于生成签名。

  2. 设备注册:将所有“16路分体物联网控制箱”添加到您的设备列表,获取每个设备的唯一 deviceId

  3. 网络要求:由于设备支持私有化部署局域网直接控制,为了确保定时任务的极低延迟和高稳定性,强烈业务服务器与设备部署在同一局域网内

接口鉴权机制所有API请求需携带签名,格式通常为:http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={timestamp}

  • AppId:应用ID

  • ts:当前Unix时间戳

  • sign:根据参数与Secret加密生成的字符串(防止接口被恶意调用)。

四、 定时任务“集中启停”实现逻辑

针对“定时任务”这一核心需求,我们不依赖人工手动点击,而是采用后端调度中心自动化触发。

1. 核心指令设计:单路与批量控制

根据官方接口文档,重点利用两个关键参数

  • 单路控制 (精准控制):如果需要单独关某一路灯或设备,使用 powerX 参数。

    • 示例负载{"device": 设备ID, "order": {"power1": 1}} (表示开启第1路)

  • 批量控制 (集中控制):针对分体式控制箱,如果是上下班统一启停,请一定要使用 batch 参数,一次请求控制16路,减少网络开销。

    • 示例负载{"device": 设备ID, "order": {"batch": "1111111111111111"}} (1为开,0为关,共16位)

    • 场景:上班时,批量发送 "batch": "1111111111111111" 全开;下班时发送全关。

2. 定时任务调度策略

在您的业务服务器上(如使用Python APScheduler、Java Quartz或Linux Crontab),建立任务表,维护以下逻辑:

  • 本地缓存设备列表:将所有控制箱的设备ID存入数组。

  • 遍历下发:当定时时间到达(例如 08:00 AM),调度器触发执行函数。

  • 并发控制:针对多台控制箱(例如10台),为避免网络拥塞,使用协程或线程池发起HTTP请求,而非串行。

伪代码逻辑示例:

3. 分体设备的“独立定时”需求

“16路分体物联网控制箱”常被用于控制不同区域的独立设备(如水泵、照明、风机)。如果需要对同一控制箱内的不同回路设置不同的定时时间(例如:回路1 8:00开,回路2 9:00开),解决方案如下:

  1. 精细化指令:使用 power1power2 等参数。

  2. 多任务设定:在您的业务系统中创建两个定时任务。

    • Task A (8:00) -> 针对 设备ID:100,下发 {"power1": 1}

    • Task B (9:00) -> 针对 设备ID:100,下发 {"power2": 1}

4. 执行状态确认(闭环控制)

为了确保定时任务执行成功,不能仅“发完即走”。需结合设备状态查询或状态上报机制:

  • 主动查询:调用设备状态查询接口,获取当前各路通断状态,与发送意图做对比。

  • 被动接收:配置消息推送。芯步支持设备状态变化时主动推送消息到您的服务器。当您下发指令后,设备执行成功会回调告知,此时可记录日志

五、 特殊情况与优化

1. 网络中断下的定时任务

芯步设备本地支持RTC定时时钟吗?

  • 根据公开资料,该设备依赖WiFi连接。为了定时任务不依赖云端,请一定要开启设备内部的“定时任务”功能(如果固件支持)或确保局域网服务器 24小时在线。

  • :对于关键任务(如8:00开灯),除了网络下发,在设备端也配置一份本地定时预案(查看设备后台是否支持),形成“本地定时+云端下发”的双重保障。

2. 大功率负载处理

您提到的“分体物联网控制箱”虽然单路功率最大可达2200W,但总功率有限制。在定时任务逻辑中,如果有大功率电机,不设置在同一时间点集中启动(Batch全开)

  • 优化方案:编写定时任务脚本时,利用 point(先通后断)或手动添加延时。

    • 逻辑:定时任务触发 -> 先开第1路 -> 延时 500ms -> 再开第2路,以此类推,避免瞬间浪涌电流过大

六、 总结

利用芯步16路控制器的开放接口实现定时任务集中管理,关键在于构建一个独立的调度中心

  1. 对接接口:处理好签名鉴权,熟悉 batch(批处理)和 powerX(单路)指令。

  2. 策略执行:通过代码定时遍历设备列表,实现“集中启停”。

  3. 区分场景:对全厂统一作息用 Batch 指令;对分体独立逻辑用 powerX 配合多定时器。

这套方案不依赖第三方SaaS平台绑定,完全由您的自有服务器控制,既保证了数据隐私,也实现了工业级自动化的可靠性。