AC3-10A计量版是一款支持HTTP接口直接控制的智能开关,无需网关即可接入。二次开发的核心流程是:通过API下发指令获取实时电量数据,同时利用消息推送接收设备主动上报的状态变化,最终将控制与统计集成到你的业务系统中。以下是具体方案:
1. 核心开发资源概览
在开始之前,你需要确认获取以下关键信息,这些信息通常在芯步控制台的后台获取:
AppId / AppSecret:用于生成接口签名(Sign),鉴权使用。
设备ID (Device ID):即设备的唯一标识(如
820720)。设备型号:确认是
UNI-TDQ-AC3-10A-P(计量版),因为计量版才支持电参数读取。API 端点:官方API地址(一般为
http(s)://api.thingboot.com)。
2. 接口鉴权与通信机制
芯步的接口设计非常标准,采用的是 HTTP 的形式,且支持私有化部署和局域网直连(只要设备与服务器在同一局域网,甚至可以走内网IP控制,延迟更低)。
签名规则(Sign)为了防止接口被恶意调用,每次请求需要在URL参数中带上签名。通常算法为:sign = md5(AppId + AppSecret + ts)其中 ts 为Unix时间戳。你需要将所有请求发送至:http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
3. 二次开发核心功能实现
针对“能耗数据统计与控制”,二次开发主要包含三个动作:控制开关、读取实时电量、接收设备上报。
3.1 核心控制:继电器开关
这是最基础的二次开发,用于远程切断或接通电器电源。
命令代码
应用场景:当你统计到用电量超标或完成预设任务后,通过此接口自动断电。
3.2 数据采集:读取计量数据
这是计量版的核心功能。你需要向设备请求当前的电压、电流、功率等信息。
命令代码
返回数据解析设备返回的JSON中通常包含:
voltage:电压(V)current:电流(A)power:实时功率(W)ele:累计用电量(kWh)
3.3 数据流处理:设置消息推送
这是实现“统计”最关键的环节。 如果你不停地轮询读取电量,不仅浪费资源,还可能触发API限流。正确的做法是利用芯步的设备主动上报机制。
配置回调URL:在你的业务服务器(Backend)提供一个公网可访问的API接口(例如
http://yourdomain.com/yoyo/callback),并在芯步控制台将此URL配置为消息接收地址。接收数据:当AC3-10A监测到电量变化(通常每几秒或每分钟)或开关状态变化时,它会主动将数据POST到你的服务器。
代码示例(接收数据)你的后端只需要接收并解析设备发来的POST Body:
入库分析:收到数据后,直接存入数据库(如MySQL或InfluxDB),前端即可展示实时曲线图。
4. 实战开发场景示例
场景:智能咖啡机节能系统需求:早上9点自动开启咖啡机,当咖啡机制作完成后(功率降至待机状态)持续10分钟自动断电,并记录每次制作的能耗。
开发步骤:
定时唤醒:你的云端服务器在 09:00 触发逻辑,调用控制接口
power:1开启咖啡机。状态监听
开启一个后台线程或定时器。
调用
metering接口轮询(或等待设备通过消息推送发来的数据)。
逻辑判断
初始状态:咖啡机冷机状态,功率低(如 2W)。
工作中:检测到实时功率从 10W 跃升至 1200W,判定咖啡机开始运行。
空闲检测:持续检测功率,当功率从 1200W 降回 10W,判定制作完成。
延时动作:等待 10 分钟,再次检测功率,若无明显上升(无人使用),则执行断电
power:0。
数据统计
记录本次“开启”到“断电”期间的总耗电量(
end_ele - start_ele)。生成报表:“咖啡机单次制作成本:0.05元”。
5. 高级功能和需要注意的点
过载保护二次开发AC3-10A 计量版本身支持“超功率断电”阈值设置。你可以利用
set_max_power命令动态调整阈值。例如,当识别到接入的是空调时,设置阈值为2000W;接入电脑时,设置阈值为500W,实现智能调控。局域网直连(低延迟)如果你的系统部署在同一局域网内,官方支持直接通过设备的本地IP地址发送HTTP请求(无需经过云平台)。这在需要毫秒级响应的工业控制场景中非常有用,具体IP可通过MDNS发现或在配网时绑定固定IP。
数据平滑处理传感器上报的电量数据可能存在瞬间尖峰(如电机启动瞬间)。在进行能耗统计时,在数据库存储前做去抖动处理,或者以累计电量(
ele)的差值作为统计依据,而不是累加瞬时功率,后者更准确。
通过以上方案,你可以快速将 AC3-10A 计量版集成到自有物联网平台中,实现“采集-分析-控制”的业务闭环。