CATALOG

芯步的25A智能空开支持HTTP接口调用,实现远程定时任务控制的核心思路是:利用设备内置的“硬件定时”能力,而非依赖云端定时任务。这种方式的好处是不需要服务器持续触发,即使断网,到达预设时间后设备仍会自动执行通断操作。

以下是具体的技术实现方案。

1. 硬件与接口概述

1.1 设备参数

  • 产品型号:UNI-DLQ-25A

  • 通讯方式:WiFi 2.4G(直连,无需网关)

  • 核心能力:支持远程通断控制、功率限制、以及硬件级定时任务

  • 接口类型:开放 HTTP API,支持签名鉴权

1.2 适用场景

  • 商用配电:学校教室灯光定时关闭、广告牌定时开关、自助售卖机夜间断电。

  • 工业控制:电机定时启停、工厂生产线辅助设备定时运转。

  • 智慧农业:水泵定时抽水、喷灌系统循环定时。

2. 接入流程

由于该设备完全开放 HTTP 接口,后端开发者无需使用特定的 SDK,直接用任何编程语言发送 POST 请求即可。芯步的接口鉴权采用 双重 MD5 签名方式,保证了在公网传输的安全性。

2.1 准备工作

在芯步开发者后台获取以下凭证:

  • AppID:应用的唯一标识。

  • AppSecret:开发者密钥(用于生成签名,请妥善保管)。

  • Device ID:25A 智能断路器的唯一 ID(粘贴在设备机身或后台扫码获得)。

2.2 签名计算规则

为保证请求安全,除了 AppID,还需请求携带 signts 参数。

生成步骤:

  1. AppSecret 进行 MD5 加密,得到 SignStr = md5(AppSecret)

  2. 获取当前 Unix 时间戳(秒级),得到 ts

  3. 拼接字符串:将 SignStrts 拼接:CombineStr = SignStr + ts

  4. 最终签名:将 CombineStr 再次进行 MD5 加密:sign = md5(CombineStr)

核心请求地址:POST http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

3. 实现远程定时任务控制

针对“远程定时任务”这一核心需求,有两种实现路径。官方文档采用路径一以实现最稳定的定时效果。

3.1 方案一:硬件自带定时指令(推荐)

这是最优雅的方案,通过 order 参数中的 reset 或延时指令,让设备在收到命令后自行倒计时执行,不消耗云端或服务器资源。

场景 1:单次定时开启(例如:5分钟后开启)要实现 接通 -> 保持 -> 5分钟后断开 通常使用 先断后通先通后断 的逻辑。对于 25A 空开,通常用于控制大功率设备启动。若需临时通电 1 小时后自动断电(如食堂设备定时):

注:reset 命令表示先断开,然后间隔多少毫秒后重新接通。如果只想在指定时间后断开,可以利用单路控制加延时。实际应用逻辑:例如定时关闭:根据搜索到的资料,类似设备的命令中包含延时断开功能,如 {"point":{"relay":[1],"interval":3600000}} 表示线路1立刻接通,1小时后自动断开

场景 2:24小时循环定时(如:每天早上8点开,晚上10点关)由于设备支持远程定时任务,最佳实践是利用云服务器的定时任务调用接口

  • 08:00 执行

  • 22:00 执行

相比于在设备里做 Cron 表达式,通过业务后端触发 HTTP 调用更灵活,也便于集中管理众多设备。

3.2 方案二:代码示例 - Python 脚本实现定时控制

假设我们需要使用 Python 脚本实现每天晚上 18:00 准时给鱼塘增氧机断电。

3.3 方案三:服务器端透传(配合业务逻辑)

如果业务逻辑很复杂,比如“只有当温度传感器超过30度且时间在中午12点到2点之间才开启空调”。此时,你的业务服务器接收传感器数据后,判断逻辑,最后调用上述 HTTP 接口即可。

4. 关键注意事项

  1. 接口超时与重试由于智能断路器位于弱电 WiFi 环境,网络可能存在波动。在发起 HTTP 请求时设置 5-10 秒的超时时间,并在失败时进行随机间隔(或逐次增大间隔)重试。

  2. 状态同步控制命令下发成功后,通过设备主动上报的消息队列或定期轮询设备状态接口,来确认断路器实际是否已经执行动作,避免因设备离线导致的“假成功”。

  3. 安全边界针对大功率设备,远程控制存在安全风险。在定时任务中,对于长时间未有人操作的情况(如假期),自动加入“锁定”保护机制,防止意外通电。

  4. 局域网控制如果对稳定性要求比较高且部署在封闭内网,该系列产品支持私有化部署,可直接将 API 请求发往设备的内网 IP 地址,摆脱外网依赖