CATALOG

AC2-10A是芯步一款支持单路通断控制的智能开关设备,广泛适用于照明、排风扇、水泵等场景的远程控制。其核心能力是通过HTTP接口接收开/关指令,同时支持设备状态实时上报。

本文将从准备工作、接口调用方法、批量控制方案三个层面,详细介绍如何对接该设备实现远程批量控制。

一、 解决概述与准备

在开始对接前,请确保您已完成以下准备工作,这是实现远程控制的基础。

  1. 平台账号与密钥:登录芯步开放平台,获取 AppIDAppSecret(开发者密码)。这些是调用API的身份凭证

  2. 设备就绪

    • 配网激活:参考芯步官方文档或小程序,为AC2-10A设备配置网络,确保设备在线

    • 获取设备ID:在芯步控制台的“设备列表”中,查看并记录下AC2-10A的设备ID(Device ID)。这是控制指令的目标地址

  3. 接口调试工具:准备如 Postman 或代码编辑器,用于发送HTTP请求。如果处于开发测试阶段,可以在后台开启“调试模式”暂时忽略签名校验,简化测试流程

二、 核心接口:单设备控制原理

在对批量控制进行编程前,首先需要理解控制单个AC2-10A设备的核心逻辑。芯步提供标准的HTTP API接口。

  • 请求地址http(s)://api.thingboot.com/{AppID}/device/control/

  • 请求方法:POST (推荐)

  • 核心参数

    • device:AC2-10A的设备ID

    • order:指令内容。对于AC2-10A这类通断器,通常使用 power 字段。{"power":1} 代表闭合(开),{"power":0} 代表断开(关)

    • signts:签名和时间戳,用于身份验证(若调试模式关闭则需要严格计算)

单控指令示例假设我们要关闭设备ID为 123456 的开关:

系统返回 {"code":200} 仅代表指令下发成功,设备的最终执行结果需通过消息推送来确认

三、 批量控制方案实现(重点)

针对“远程批量控制”的需求,芯步的API支持在单次请求中传入多个设备ID。结合系统的任务调度机制,可以实现高效的批量管理。以下是三种典型的实现路径:

方案一:单次请求多设备控制(最高效)

这是实现批量控制的最直接方式。AC2-10A支持在同一请求中通过逗号或竖线分隔多个设备ID。

  • 实现逻辑:在 device 参数中传入多个设备的ID,order 参数保持不变(因为是同类设备)。

  • 场景举例:办公楼的巡更人员在下班后,需要一键关闭所有楼层的照明。

  • 接口调用示例

    • 请求参数

    • device123456,123457,123458 (同时控制三台设备)

    • order{"power":0} (全部关闭)

  • 优势HTTP请求次数少,执行速度快,且单次请求最多支持100台设备

方案二:服务端分批与并发控制(适合企业级海量设备)

如果您管理的设备数量超过单次限额,或者需要更精细的控制逻辑(如不同区域的设备执行不同指令),在后端服务器进行逻辑处理。

  • 实现逻辑

    1. 从数据库获取需要控制的目标设备列表。

    2. 利用线程池或异步任务,将设备列表切片。

    3. 并发调用API接口。

  • 注意:需要考虑对API调用频率的限制,避免瞬间流量过大被平台限流。

方案三:利用网关分组控制(架构优化)

如果AC2-10A设备挂载在特定的网关下,可以利用网关参数进行分组控制。

  • 实现逻辑:在请求中不仅传入 device,同时传入 gateway 参数。系统会通过网关精准转发指令,这在复杂的网络环境(如工厂车间)中能提高指令送达的稳定性

  • 场景举例:针对某条生产线上的所有AC2-10A设备进行重启。

四、 关键特性与命令扩展

除了简单的“开/关”,AC2-10A及其同系列产品(如4路控制器)通常支持更丰富的时序控制命令,这在批量控制中非常有用,特别是需要避免电流浪涌的场景。

在批量控制中引入以下高级命令:

  1. 批量选择性控制如果你只想批量关闭一组设备中的奇数编号设备,可以使用 batch 参数。

    • 示例{"batch":{"relay":[1,3],"power":0}} (关闭第1和第3路)

  2. 先通后断 / 先断后通在需要重启设备或切换电路时,通过 interval 参数设置间隔时间(毫秒)。

    • 示例{"point":{"relay":[1,2],"interval":1000}} (线路1和2闭合,1秒后再断开,模拟按下复位按钮的效果)

五、 状态确认与异常处理

在批量控制场景下,由于设备数量多,网络环境各异,仅仅依赖HTTP 200响应是不够的。为了保证控制的可靠性,必须建立反馈机制。

  1. 异步消息推送(推荐)配置消息推送URL。当AC2-10A成功执行指令后,平台会主动推送执行结果到你的服务器。你需要维护一个任务表,将下发的指令与回传的结果进行匹配,标记“已执行成功”的设备,从而剔除故障设备

  2. 主动状态查询如果未配置消息推送,可以定时调用 设备状态查询 接口,拉取设备的最新在线状态和开关状态,用于同步界面显示。

六、 架构流程示意图

为了让方案更清晰,具体的技术实现流程如下:

  1. 触发动作:用户在SaaS后台点击“全部关闭”。

  2. 业务逻辑:后端根据区域ID查询数据库,获取该区域下所有AC2-10A的设备ID列表。

  3. 构造请求:后端将设备ID拼接成字符串,构造 {"device": "id1,id2,id3", "order": {"power":0}}

  4. 发起调用:后端携带签名调用芯步 device/control 接口。

  5. 平台处理:芯步平台解析请求,将指令下发给对应的设备。

  6. 结果反馈:设备执行指令,平台通过消息推送告知业务后端“id1已关闭”、“id2已关闭”等。

  7. 数据同步:业务系统更新设备状态,记录操作日志。

通过上述方案,用户可以快速将AC2-10A集成到现有的管理系统中,实现从单台到数万台设备的远程集中控制。该接口方案也适用于该平台下其他开关类设备,具有良好的横向扩展能力。