AC4-20A 是一款支持 HTTP 接口控制的智能通断器,可以通过 API 实现远程开关、延时通断等操作。以下方案展示了如何基于其开放接口,用 Python/Java/Shell 等语言快速构建设备控制逻辑,并结合传感器数据实现自定义联动。
1. 引言
在物联网(IoT)应用场景中,单纯的远程开关控制往往无法满足复杂的自动化需求。例如,根据环境温湿度自动调节通风设备、结合光照传感器控制灯光,或实现设备间的逻辑互锁。
芯步的 智能通断器 AC4-20A 不仅是一款支持 4400W 大功率的继电器模块,更因其开放的 HTTP API 接口 和 私有化部署 能力,为开发者提供了比较高的灵活性。本文将详细阐述如何基于该产品的开放接口,进行二次开发,以实现脱离厂商 App 的自定义联动逻辑控制。
2. 产品与技术背景
2.1 硬件参数
型号:AC4-20A
额定功率:4400W(支持大功率电器控制)
网络协议:WiFi 2.4GHz(直连,无需网关)
核心能力:支持 HTTP 接口控制、支持局域网通信、支持私有化部署 。
2.2 开放接口能力
AC4-20A 开放了标准的 HTTP API,这意味着任何支持 HTTP 协议的编程语言(Python, Java, Go, JavaScript)或工具(Postman, curl)都可以直接控制设备 。
支持的三种核心指令:
瞬时通断:直接控制继电器吸合或断开。
先通后断:设备先执行闭合,延时一段时间后自动断开。
先断后通:设备先执行断开,延时一段时间后自动闭合。
3. 自定义联动逻辑设计
为了实现“自定义联动”,我们不能依赖云端预设的“如果那么”规则,而是需要建立一个 “传感器采集 -> 逻辑判断 -> API 控制” 的自闭环系统。
3.1 系统架构图
[用户/传感器数据源] --> [业务逻辑服务器/本地中枢] --(HTTP API)--> [芯步云/局域网] --> [AC4-20A设备]
3.2 核心交互流程
数据采集端:各类传感器(温湿度、漏水、PM2.5)或第三方系统通过 MQTT/Modbus 等协议将数据上报至用户的业务服务器。
逻辑判断层:业务服务器运行自定义算法(如:
if 温度 > 30度 then 启动风扇)。执行控制层:逻辑触发后,服务器构造 HTTP 请求,调用 AC4-20A 的 API。
设备响应层:设备收到指令后执行断电或通电,并将执行结果通过 API 返回给服务器。
4. 二次开发技术实现
二次开发的核心在于签名计算和指令下发。
4.1 准备开发参数
在芯步控制台获取以下凭证
AppID:应用唯一标识。
AppSecret:应用密钥(用于签名计算)。
Device ID:设备的唯一ID。
4.2 签名机制
为了防止接口被恶意调用,API 请求需要携带动态签名。签名算法规则如下
获取当前 Unix 时间戳(秒),记为
ts。计算
md5(AppSecret),得到sign_part1。拼接字符串
temp = sign_part1 + ts。计算
sign = md5(temp)。
4.3 关键代码示例:实现复杂联动逻辑
以下以 Python 为例,演示如何实现一个 “温度过高自动启动风扇,温度回落延时关闭” 的自定义逻辑。
4.4 高级联动:多语言实现
无论使用何种语言,只需遵循 HTTP 协议即可。
Java (OkHttp):设置
RequestBody包含device和order参数,并将order构造为{"power":0}格式 。Shell (cURL):可通过 Linux 定时任务配合脚本实现简单的定时联动逻辑 。
微信小程序:可开发自定义面板,绕过官方 App 直接控制设备,适用于场馆或展厅定制 。
5. 高级联动场景应用
5.1 实现设备互锁
在某些场景下,不允许两个设备同时开启(例如:加热和制冷)。
方案:创建控制中心服务。当服务器下发指令打开 AC4-20A(加热器)前,先通过 API 查询另一个通断器状态(或由服务本地记录状态),如果另一个设备开启,则先发送关闭指令
{"power":0},延时 500ms 后再发送开启指令。
5.2 复杂时序控制
利用 point(先通后断)和 reset(先断后通)参数实现无需服务器持续介入的精准控制 。
场景:控制一个脉冲阀门,只需要通电 3 秒自动关闭。
指令
5.3 局域网/私有化部署
对于高延迟敏感或网络安全要求比较高的场景(如工业现场),可利用设备的局域网能力。
策略:获取设备的内网 IP(通过 DHCP 绑定),服务器直接通过内网 IP 调用设备接口,完全绕开外网云服务器,实现毫秒级响应 。
6. 开发注意事项
签名时间戳
ts为秒级时间戳。请确保服务器时间与标准时间同步,误差过大会导致签名验证失败 。指令格式:请一定要注意
order参数是一个 被字符串化的 JSON 对象。例如'{"power":1}',而不是直接的 JSON 对象。设备配网:二次开发前,需要先通过官方小程序或网页控制台对设备进行配网,使其连接到 WiFi 或热点 。
状态同步:HTTP 控制通常为异步指令。如果需要精确获取设备断电前的状态(如开关是否真的跳了),结合查询设备状态的 API(需查阅完整 API 列表)或在业务逻辑层维护一个状态缓存。
7. 总结
通过对芯步 AC4-20A 开放接口的二次开发,开发者可以完全解耦设备逻辑与厂商 App,构建从 “传感器数据采集” 到 “大功率负载控制” 的全自动闭环系统。无论是简单的定时任务,还是复杂的工业自动化场景,利用其 HTTP API 的通用性 和 本地化部署能力,AC4-20A 都能成为一个灵活可控的执行单元。