芯步8路智能照明控制器通过开放HTTP API接口,支持单路独立控制、批量全控/全关、按组批量控制等多种远程控制方式。以下方案涵盖接口鉴权、核心命令示例和落地场景。
1. 解决概述
该方案的核心是利用芯步提供的标准HTTP API,对接8路智能照明控制器(如型号:UNI-KZQ-ZM-8-10A 或 UNI-KZQ-AC-8)。通过调用接口,开发者可以在任何支持HTTP协议的编程环境(如Web后端、微信小程序、手机APP等)中,向指定的设备ID发送控制指令。
API请求核心要素如下
请求地址
http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方式:POST(推荐,特别是传递复杂JSON时)
数据格式:JSON
核心参数
device(设备ID)、order(控制指令)
2. 对接准备与鉴权机制
在开始编码前,需在芯步开放平台完成准备工作。
实施者需获取以下三个关键凭证:
AppId(应用ID):用于标识调用者的身份,在控制台生成。
AppSecret(开发者密码):用于加密签名的密钥。
Device ID(设备ID):标识具体的8路控制器,通常贴在设备外壳上或在控制台可见。
API鉴权计算规则如下为防止接口被恶意调用,所有请求需携带动态签名(sign)。计算规则如下:Sign = md5( md5(AppSecret) + "." + ts )
步骤拆解
对
AppSecret进行MD5加密,得到字符串S1。获取当前Unix时间戳(精确到秒)作为
ts。拼接字符串
S1 + "." + ts(注意中间有英文句点)。对拼接后的字符串再次进行MD5加密,得到最终的
Sign。
完成签名后,即可构造请求URL。例如:https://api.thingboot.com/YourAppId/device/control/?sign=计算的签名&ts=当前时间戳
3. 批量远程开关核心逻辑与指令
针对“远程批量开关控制”的需求,该控制器提供了比循环单控更高效的“批量控制”(batch)指令。
3.1 单独控制(效率较低,但灵活性高)
若需单独修改某一路灯状态,直接指定属性名。例如,只关闭第3路:
3.2 全开 / 全关(效率最高)
适用于第一种场景键开启所有灯光或清空所有灯光。
3.3 指定组别批量控制(最实用)
在实际场景中,可能需要同时开启灯组1、3、5、7,而不影响2、4、6、8的状态。可使用relay数组进行精准批控:
这一指令替代了原先需要调用4次API才能实现的效果,大幅减少网络开销,提升系统响应速度 。
3.4 流水式控制(特殊场景)
若需要模拟“流水灯”或防止瞬间电流冲击过大,可使用point(先通后断)或reset(先断后通)指令,并指定间隔时间(毫秒)。
4. 方案落地场景示例
为更清晰呈现对接效果,通常需结合具体业务场景来构建API调用链。
场景:会议室的一键模式切换假设一间大型会议室被划分为8个照明区域。
演讲模式:关闭前排射灯(路1,2),调暗中间灯带(路3,4,5),打开后排洗墙灯(路6,7,8)。
保洁模式:全开8路照明10分钟后自动关闭。
实现流程
触发:用户点击微信小程序中的“演讲模式”按钮。
逻辑:后端接收到请求,构造
order参数。注:如果是分多次发送,需注意命令覆盖问题;更稳妥的方式是使用全状态下发。推荐做法:先获取当前状态,或直接下发完整状态指令。由于该设备支持直接传入
power1至power8的完整JSON,因此最稳定的批量控制是直接构造包含所有路数的完整对象:反馈:设备在接收到指令后的80-120毫秒内执行通断动作 。
5. 私有化部署与局域网控制
对于数据安全性要求比较高或网络环境受限(无外网)的工业场景,芯步的该系列控制器支持私有化部署 。实施者可搭建本地MQTT Broker或HTTP服务器,设备在局域网WiFi环境下直接与本地服务器通信,实现脱离外网的远程批量控制,从而解决网络延迟抖动问题,降低云端计算依赖。