芯步的智能照明设备通过标准HTTP接口对外开放控制能力,支持单路/批量控制、延时通断、状态保持等多种指令模式。以下方案从接口调用、签名鉴权到定时任务引擎的设计,给出完整的技术实现路径。
解决方案:基于芯步开放接口的智能照明远程定时控制系统
1. 概述
本方案的目标是利用芯步智能照明设备(如智能墙壁开关、多路照明控制器等)开放的 HTTP 接口,构建一套高效的远程定时任务控制系统。该系统不仅支持单次定时、每日重复等常规周期任务,还支持“先通后断”、“临时锁定”等高级时序逻辑。
核心价值:无需购买专用网关,直接利用现有WiFi网络,通过标准API实现商业空间(如自习室、办公室、展厅)的照明自动化管理。
2. 核心技术架构与对接流程
整个系统架构分为三层:设备层、接口层和业务应用层。
设备层:芯步的智能照明控制器(如 UNI-KZQ-ZM-12-16A、智能墙壁开关等)。设备通过 WiFi 2.4G 直接联网,无需网关。
接口层:芯步开放的 HTTP API
api.thingboot.com。作为桥梁,负责接收业务层指令并下发至设备。业务应用层:用户自建的服务器或云函数。负责存储定时任务配置,通过 cron 表达式触发,并调用 API 执行控制逻辑。
对接流程图:
设备激活:设备通电联网后,在芯步控制台获取唯一的
device标识。应用注册:用户在芯步云平台注册应用,获取
AppID和Secret(开发密码)。签名生成:业务服务器在调用 API 时,根据规则生成动态
sign和ts(时间戳)进行鉴权。指令下发:业务服务器向
https://api.thingboot.com/{AppID}/device/control/发起 POST 请求,携带目标device和order指令。
3. 关键接口对接与命令详解
芯步的接口设计采用 JSON 格式,命令字段 order 支持多种复杂场景。
3.1 基础鉴权与请求示例
所有请求均需携带签名以防止非法调用。签名算法为:sign = md5( md5({Secret}) + "." + {ts})
请求示例 (Shell/Curl):
以上命令控制 ID 为 820720 的设备开启第一路,关闭第二路。
3.2 针对远程定时的核心命令支持
为实现丰富的定时任务,重点关注以下 order 参数:
单路/多路独立控制
{"power1":"1", "power2":"0"}—— 适用于定时开启灯光或定时关闭。批量控制
{"batch":{"relay":[1,3,5],"power":"0"}}—— 一次性关闭第1、3、5路。适用于下班后一键全关定时任务。“先通后断” (Point)
{"point1":"5000"}或{"point":{"relay":[1,2],"interval":60000}}—— 打开线路并在指定毫秒后自动关闭。应用场景:走廊灯定时开启1分钟后自动熄灭,无需额外发送关闭指令。“先断后通” (Reset)
{"reset1":"10000"}—— 关闭线路并在10秒后重新开启。应用场景:某些特殊设备的断电重启或复位。状态保持/临时锁定 (Keep)
{"power1":{"keep":"1","revert":"30"}}—— 强制保持开启状态,用户手动关闭后,30秒内会自动恢复为开。应用场景:公共场所(如商场)规定时间内锁定灯光为“常开”模式,防止顾客误关。
4. 远程定时任务系统的实现方案
在用户自有的业务服务器上,采用以下逻辑实现“远程定时控制”:
第一步:任务存储在业务数据库设计定时任务表,包含:
device_idcron_expression(如0 30 19 * * ?表示每晚7:30执行)order_payload(如{"power1":"0", "power2":"0"})is_active
第二步:调度引擎利用 Quartz 或 Linux Cron 驱动。当时间匹配时,调度器触发执行逻辑。
第三步:指令封装与下发调度器组装 HTTP 请求,核心是动态生成 order 内容:
场景 A:强制关灯模式需求: 共享自习室每晚 22:00 强制关闭所有灯光,防止资源浪费。实现: 调用批量控制接口,
order内容为{"batch":{"power":"0"}}。场景 B:迎宾/下班模式需求: 工作日早晨 8:00 将大堂灯全亮,晚上 20:00 转为“安保微光模式”(仅留第4路亮)。实现:
早晨任务:
order={"batch":{"relay":[1,2,3],"power":"1"}}夜晚任务:
order={"batch":{"relay":[1,2,3],"power":"0"},"power4":"1"}}
场景 C:无人值守的临时照明 (高级)需求: 清洁工每晚 23:00 需要 30 分钟照明打扫卫生,然后自动全关。实现: 不设置复杂的“开灯”和“关灯”两个任务。只需在 23:00 发送一个包含
point命令的请求。示例order解析: 设备收到命令后立即全开,并内部计时 30 分钟(180万毫秒)后自动全关。这种方案即使业务服务器断网,设备本地计时的关灯动作依然会执行。
5. 异常处理与优化
网络重试机制:由于 HTTP 是基于短连接的,定时任务触发时若网络抖动可能导致下发失败。业务系统应建立“任务执行日志”表,对失败的任务进行随机间隔(或逐次增大间隔)重试(如间隔 5秒、10秒、30秒重试 3次)。
设备状态同步:设备支持“远程定时任务”,但如果在定时触发前,有人按了墙壁物理开关改变了状态,业务系统需维护本地状态缓存,或在下发前查询一次设备当前状态,以免覆盖用户意图。
私有化部署:对于对延迟或数据安全要求比较高的场景(如大型工厂),芯步支持私有化部署方案。可将 API 接口部署在局域网内,实现纯内网控制,彻底消除公网延迟。
6. 总结
通过对接芯步标准化的 HTTP 开放接口,开发者仅需关注上层业务逻辑与定时规则的制定。利用 point、reset、keep 等进阶指令,可极大简化远程定时任务开发的复杂度(省去多次回调),实现对 1-24 路照明设备的精准、自动化控制。