AC4-10A这款智能通断器支持HTTP API控制,签名算法是MD5嵌套加时间戳。下面从前置准备、签名计算、指令下发到能耗统计思路,把整个接入流程串起来讲清楚。
怎样接入芯步AC4-10A智能通断器来实现能耗数据统计与控制
大家好,今天我们来聊一聊怎么把芯步的 AC4-10A 智能通断器 接到你们自己的系统里。这玩意儿特别适合做远程控制,比如定时开关灯、重启路由器,甚至是统计某个设备的用电量。
官方的文档虽然全,但看着有点散。我帮大家把“怎么通过 HTTP 接口接入”这事儿揉碎了、讲清楚,不仅教你怎么控制通断,还会聊聊怎么拿到能耗数据来做统计。
一、 准备工作:把“家伙什”备齐
在写代码之前,有几个东西得先准备好,就像做菜得先备料一样:
硬件本身:确保你的 AC4-10A 已经通电,并且连上了 2.4G WiFi(注意,5G WiFi 它不认识,得用 2.4G)。这设备不需要网关,直接连路由器,这点挺方便的。
注册账号:去芯步官网注册一个账号,登录控制台。
创建应用:在控制台里找到“开发设置”,你会看到两个非常重要的字符串:AppID 和 AppSecret。这俩相当于你的“用户名”和“密码”,调接口的时候用来证明“你是你”。
获取设备 ID:把 AC4-10A 添加到你的账号下(一般用官方 App 扫码添加)。添加成功后,在控制台的设备列表里能看到一串数字,那就是 Device ID(设备 ID)。
二、 核心难点:签名是怎么算的?
芯步的接口为了保护数据安全,每次请求都要带一个签名(Sign)。很多新手朋友在这一步卡住了,其实没那么玄乎,官方给的规则很直接
核心公式(按这个顺序操作):Sign = md5( md5(AppSecret) + ts )
拆解一下这个公式,总共分三步:
第一步:把你拿到的
AppSecret做一次 MD5 加密,得到Secret_MD5。第二步:准备当前的时间戳(秒为单位),比如
1715234567。把Secret_MD5和ts拼成一个长字符串。第三步:把这个拼好的字符串再做一次 MD5 加密,结果就是
Sign。
举个栗子 假设你的 AppSecret 是 abc123,当前时间是 1715234567
第一次 MD5:
md5("abc123")=e99a18c428cb38d5f22e03...(随便举个例子)拼接:
e99a18c428cb38d5f22e03...+1715234567第二次 MD5:
md5("拼接后的字符串")= 最终的 Sign
别怕,这种逻辑用代码写就是几行的事。官方提供了 Shell 脚本的示例,逻辑非常清晰
三、 动手实战:控制设备通断
料备齐了,签名也会算了,咱们就来发个真实的命令——把灯打开。
请求地址是这样的(注意替换大括号里的内容):https://api.thingboot.com/{你的AppID}/device/control/?sign={你的Sign}&ts={时间戳}
这是一个 POST 请求,Body 里要放 JSON 格式的数据。
请求 Body 示例:
device:就是刚才在控制台抄下来的设备 ID。order:这里面是具体指令。{"power": 1}代表“打开” (0代表“关闭”)。
如果你想让它 “先通电,保持几秒,再断电” (也就是点动模式),可以发这个指令
(上面的意思是:立刻通电,5秒后自动断电,5000的单位是毫秒)
四、 进阶需求:怎么统计能耗?
到了大家最关心的环节——电量统计。
这里需要先同步一个信息:AC4-10A 这款产品分 “普通版” 和 “计量版”。只有“计量版”才能读取电压、电流和功率数据。
如果你想做能耗统计,采购的时候得认准 “计量版”。
有了计量版硬件,怎么拿数据呢?通常有两种方式:
方法一:主动查询(主动拉数据)芯步的接口体系里通常会有 device/status 或类似的查询接口。你可以定时(比如每分钟)去调接口,问一下这个设备现在的状态,返回的 JSON 里一般会包含类似 power(当前功率)、voltage(电压)、electricity(累计电量)的字段。拿到后存到你的数据库里,想怎么统计图表就怎么画。
方法二:被动接收(设备主动推)如果不想一直轮询,可以配置 回调(Webhook) 。在控制台设置一个你自己的服务器地址,每当设备状态变化(比如功率波动超过阈值)或者定时上报数据时,芯步的服务器会主动往你这个地址发 JSON 数据。你只要写一个接口接收就行了,这样实时性最好,资源占用也少。
五、 避坑与经验(TIPS)
在实际开发中,有几个小地方提醒一下大家:
时间戳的时效性:官方为了防止恶意请求,
ts(时间戳)一般要求在 5 分钟内。所以如果你发现签名没错但请求失败,检查一下服务器时间是不是和北京时间同步,差了太多会被拒绝。设备在线状态:AC4-10A 是 WiFi 设备,如果 WiFi 断了当然控制不了。在调用接口前,逻辑里加一个判断:如果设备离线,给个提示“设备不在线,请检查网络”。
本地局域网控制:如果你对稳定性要求比较高,或者是内网环境,官方手册提到支持 “私有化部署” 和 “局域网” 控制。这意味着如果你们公司内部网络发达,可以不经过云平台,直接在局域网里发指令,速度更快。不过配置稍微复杂一点,需要参考高级手册。
总结一下流程:注册拿 Key -> 搞懂 MD5 签名 -> 拿着设备 ID 发 HTTP 请求 -> (如果是计量版)接收/查询功率数据 -> 展示在你们的后台大屏上。
这套方案非常灵活,不管是做智慧工厂的设备监控,还是做共享洗衣机的计费系统,甚至就是自家搞个智能家居中控,AC4-10A 配合这套 HTTP API 都是够用的。有问题多翻翻官方的产品手册,里面有详细的命令字典。