CATALOG

一、概述

本方案的目标是指导用户如何通过芯步提供的开放API接口,对接智能8路分体远程开关控制箱(以下简称“8路控制器”),实现对其8路输出的定时自动启停控制。该方案适用于农业灌溉、工厂设备定时启停、广告牌灯光控制、机房设备轮巡等场景。

芯步8路控制器支持通过HTTP API进行远程独立控制,具备开放性好、集成便捷、支持局域网及私有化部署等特点

二、系统架构

本方案的系统架构由以下四层组成:

  1. 设备层:芯步智能8路分体远程开关控制箱(型号:UNI-KZQ-TY-8或其他8路型号),连接被控负载(电机、灯具、电磁阀等)。

  2. 网络层:设备通过WiFi 2.4GHz连接至互联网或局域网,接收云端/本地指令。

  3. 平台层:芯步云平台,提供设备管理、API鉴权、消息转发等功能。

  4. 应用层:用户的业务服务器(或云函数/脚本),运行定时任务逻辑,调用API下发控制指令。

三、准备工作

3.1 硬件准备与接线

  • 供电:为8路控制器接入DC 12V 1.5A电源

  • 负载接线注意

    • 若直接控制小功率负载(≤4400W总额定功率,单路≤2200W阻性负载),请将负载火线/正极接入对应路数的输出端。

    • 若控制大功率电机或工业设备,需通过控制箱内部的继电器外接交流接触器进行扩容

  • 网络配置:通过芯步控制台或小程序,将设备配网至现场2.4GHz WiFi网络

3.2 软件平台准备

  1. 注册账号:在芯步官网注册开发者账号。

  2. 获取密钥:登录控制台,在“开发设置”中获取 AppIDAppSecret,此二者为API调用的身份凭证

  3. 获取设备ID:在控制台“设备列表”中查看已配网成功的8路控制器的 Device ID(如示例中的“1878”)

四、核心接口详解

芯步开放平台采用标准的HTTP POST请求进行设备控制,接口具有通用性,仅需注意签名生成规则和JSON命令格式。

4.1 接口地址与签名机制

  • 请求URLhttps://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • 请求方法: POST

  • Content-Typeapplication/json

签名算法(防止接口被篡改)为确保安全性,每次请求需携带动态签名 sign,算法如下

  1. 将 AppSecret 进行一次 MD5 加密: secret_md5 = md5(AppSecret)

  2. 将上述结果拼接当前Unix时间戳(秒): temp = secret_md5 + ts

  3. 对拼接后的字符串再进行一次 MD5 加密: sign = md5(temp)

参数说明

  • AppID:路径参数,直接替换URL中的占位符。

  • ts:当前Unix时间戳(秒),需与签名计算时使用的ts一致。

  • sign:计算出的签名值。

4.2 控制指令(Order)格式

请求的Body为JSON格式,包含 deviceorder 两个字段

针对8路控制器,order 支持以下指令类型:

1. 单路独立控制

控制第1路至第8路的独立开关。

  • 开启第1路{"power1": 1}{"power1": "1"}

  • 关闭第3路{"power3": 0}{"power3": "0"}

  • 开启第8路{"power8": 1}

2. 批量控制(Batch Control)

同时控制多路状态,提高效率。

  • 全开{"batch": {"power": 1}}

  • 全关{"batch": {"power": 0}}

  • 指定奇数路开启{"batch": {"relay": [1,3,5,7], "power": 1}}

  • 指定偶数路关闭{"batch": {"relay": [2,4,6,8], "power": 0}}

3. 时序控制

适用于需要短暂通电(如自动门禁、脉冲电磁阀)的场景。

  • 先通后断(Point):线路接通特定时间后自动断开。

    • {"point": {"relay": [1], "interval": 1000}} (第1路接通1秒后断开)

  • 先断后通(Reset):线路断开特定时间后自动接通。

    • {"reset": {"relay": [2,4], "interval": 2000}} (第2、4路断开2秒后恢复)

五、定时自动启停实现步骤

实现定时控制主要有两种技术路径:方案一(推荐) 利用芯步云平台内置的“定时任务”功能;方案二 利用用户业务侧的定时器(如Cron Job)调用API。以下分别详述。

方案一:利用云平台内置定时任务(低代码方案)

此方案最为稳定,无需维护服务器,设备在线即可生效。芯步设备原生支持远程定时任务配置

操作步骤

  1. 登录芯步控制台。

  2. 进入“设备管理” -> 选择目标8路控制器。

  3. 点击“定时任务”或“自动化场景”设置。

  4. 新建任务

    • 任务名称:如“定时灌溉开启”。

    • 执行时间:选择“每天 08:00”。

    • 执行动作:在下拉指令中选择“控制设备”,输入指令 JSON:{"power1": 1}{"batch": {"relay": [1,2,3,4], "power": 1}}

  5. 同理创建“关闭任务”:时间设为“每天 20:00”,指令为 {"power1": 0} 或批量关闭。

方案二:业务系统定时调用API(高灵活性方案)

适用于需要将控制逻辑与业务系统(如ERP、MES或自研APP)深度集成的场景。

5.1 编写调用核心函数(伪代码/逻辑示例)

在您的后端服务中(Python、Java、Go、PHP等均可),封装一个控制函数。以下以Python为例:

5.2 配置定时调度(Cron Job)

在Linux服务器或任何支持Cron的系统中,配置定时任务来触发上述脚本。

场景示例:控制8路广告灯箱,周一至周五 18:00 开,周六周日 08:00 开,22:00 统一关。

Crontab 配置

light_on.py 中调用 control_8ch_relay("1878", {"batch": {"power": 1}})

六、高级应用与配置

6.1 私有化部署(局域网控制)

对于工业内网或不允许连接外网的场景,芯步8路控制器支持局域网控制。设备通过WiFi连接路由器和用户服务器

操作方式

  1. 将设备与服务器置于同一局域网网段。

  2. 在控制台查看设备获取的内网IP地址。

  3. 直接向该IP地址发起HTTP请求(具体端口和鉴权方式请参阅设备对应的高级产品手册),摆脱对公网API的依赖。

6.2 状态反馈与联动

除了下发命令,您还可以通过订阅芯步平台的消息推送,获取设备的当前状态(如继电器实际通断状态、是否在线),从而实现闭环控制

  • 配置回调URL:在控制台设置API回调地址。

  • 接收消息:当设备状态变化时,平台会推送JSON数据到您的服务器,您可以根据此数据触发其他业务逻辑(如断电报警)。

七、常见问题和需要注意的点

  1. 签名失败(401错误)

    • 检查时间戳 ts 是否为秒级(10位),不要使用毫秒级(13位)。

    • 检查AppSecret是否被正确进行MD5处理,注意MD5结果为32位小写十六进制字符串。

    • 服务器时间是否与标准时间同步(误差过大会导致签名失效)。

  2. 指令未生效

    • 确认设备ID正确,且设备状态在控制台显示为“在线”。

    • 确认WiFi信号强度。2.4GHz频段穿透性强但干扰多,检查现场信号质量。

    • 确认负载功率是否符合规格(感性负载功率需降额使用),有时继电器吸合但大负载启动瞬间电压跌落会导致设备重启

  3. 安全性

    • AppSecret应保存在后端环境变量中,严禁硬编码在前端或APP代码中。

    • 批量控制时,对关键设备设置“互斥锁”逻辑(例如不允许同时开启总功率超限的两路负载)。

通过以上步骤,您可以快速、稳定地利用芯步8路控制器的开放接口,构建符合业务需求的定时自动启停系统。