50A智能空开在充电桩、储能等场景中需要可靠的定时控制能力。以下方案基于芯步开放接口,说明如何通过HTTP API实现远程定时通断的二次开发。
1. 概述与场景
1.1 背景
随着工业自动化和智能用电的发展,50A及以上规格的带计量远程智能空开(智能断路器)在充电桩、基站、工厂设备、大功率电器等场景中得到了广泛应用。此类设备不仅支持大电流负载的通断控制,还能实时监测电流、电压、功率等电能参数。
1.2 需求
本方案的目标是解决用户如何基于芯步的开放API接口,对50A带计量智能空开进行二次开发,实现远程定时通断控制。典型的应用场景包括:
充电桩定时充电:在电价低谷期(如夜间)自动接通充电。
工厂设备自动化:根据排班自动开关大型机器。
基站节能:在夜间流量低谷时切断部分设备电源。
租赁/共享场景:远程控制租户的电力供应。
1.3 核心依据
本方案参考芯步智能通断器类产品(AC4-20A/30A/50A系列)的通用HTTP API接口规范。带计量功能的设备通常与普通通断器的控制逻辑兼容,但需额外增加读取电参数的接口调用。
2. 技术架构与准备工作
2.1 系统架构图(逻辑描述)
二次开发系统通常包含三层结构:
设备层:芯步50A智能空开(支持Wi-Fi/4G联网)。
平台层:芯步开放API(
api.thingboot.com)及设备影子。应用层:用户自建的服务器、APP、小程序或PC端调度系统。
2.2 准备工作
在开始二次开发前,请完成以下准备:
硬件准备:确保50A智能空开已正确安装(接线)并上电。
账号准备
登录[芯步官网]注册开发者账号。
创建工作台(Workbench),获取AppID和AppSecret(开发者密钥)。
设备配置
使用“物联网控制台”或“芯步小程序”将设备配置到2.4GHz Wi-Fi网络(若为4G版本则插卡自动注册)。
记录下设备的唯一标识ID(Device ID)。
开发环境:任意支持HTTP协议的语言(Python, Java, PHP, Go, Node.js, C#等)或工具(Postman)。
3. 核心认证机制:签名计算
所有API请求均需携带签名(sign)和时间戳(ts)进行身份验证。
签名算法
Sign = MD5( MD5(AppSecret) + ts )
参数说明
AppSecret:开发者密码。ts:Unix时间戳(秒),用于防重放攻击。+:字符串拼接。
代码示例
4. 二次开发关键接口实现
针对50A带计量智能空开,主要需实现“通断控制”、“定时任务”和“数据读取”三个核心功能。
4.1 远程通断控制(基础功能)
API地址POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
请求头Content-Type: application/json
请求体参数
Python调用示例
4.2 实现“定时通断”(核心二次开发逻辑)
由于服务器端定时任务容易因时区、系统时间不准等问题产生偏差,采用“云端调度 + 设备一次性定时”的策略。
方案A:云端主动调度(适用于少量设备)
在用户服务器中部署定时任务(如Linux Crontab, Windows Task Scheduler, Quartz等)。
到达预设时间点,服务器主动调用上述
control_device接口。
方案B:设备原生硬件定时(推荐,高可靠性)芯步设备支持通过参数实现“延时动作”,免去服务器维护定时器的负担。
下发一次性定时任务:例如,现在让其闭合(通电),并设置1小时后自动断开。
请求体示例
参考命令格式。
方案C:复杂循环定时(如每天8点开,18点关)这种情况必须在开发者服务器维护一个定时任务数据库。
数据库设计:存储设备ID、开时间(Cron表达式)、关时间。
调度逻辑:使用APScheduler或类似组件,在指定时间点调用接口。
防抖处理:调用前检查设备当前状态,避免重复下发命令导致空开机械寿命损耗。
4.3 读取计量数据(实现“带计量”功能)
对于“带计量”型号,二次开发时通常需要拉取电流、电压、功率及电量数据。由于搜索结果未直接提供计量接口的具体URL,通常在芯步控制台或API文档中会有/device/data/或/device/metrics/相关的端点。
常见请求逻辑
5. 完整业务流示例:充电桩定时充电
假设需实现:每天晚上23:00通电,次日早上06:00断电,并在充电过程中监控电流,若超过50A则触发过载保护预警。
5.1 业务逻辑流程图(文字描述)
用户配置:用户在管理后台设置定时策略并保存。
调度注册:服务器解析策略,注册两个定时任务(Task A: 23:00执行Open;Task B: 06:00执行Close)。
执行开启
23:00到达,服务器调用API控制空开闭合。
记录开始时间,启动计量数据采集协程。
数据监控
服务器每隔5秒调用“读取计量”接口。
判断
Current > 50A若超过,立即调用
control_device断开电路,并发送报警通知。
执行关闭
06:00到达,服务器调用API断开空开。
5.2 关键代码片段(Python + 定时调度)
6. 二次开发注意事项
6.1 大电流控制安全
50A属于工业大电流,虽然芯步的空开内置了过流保护,但在二次开发逻辑中,请一定要加入软件层面的过载锁定机制:一旦检测到电流超过阈值(如55A),立即断开并锁定远程合闸,必须人工现场排查复位。
6.2 接口调用频率
控制接口:避免在1秒内频繁调用(例如快速开关),以免损坏继电器或触发平台限流。
计量查询:不轮询间隔小于2秒。对于电费结算场景,每5-10分钟读取一次电量累加即可。
6.3 网络异常处理
在远程控制(HTTP请求)时,可能遇到网络抖动:
实现重试机制:随机间隔(或逐次增大间隔)重试(如失败后间隔1s, 2s, 4s重试)。
状态确认:下发控制命令后,等待2秒,再调用一次设备状态查询接口,确认命令执行成功。若未执行,需告警。
6.4 设备ID管理
如果管理成百上千个50A空开,在自建系统中维护一个设备映射表
| 自建ID | 设备名称 | 位置 | 芯步Device ID | 额定电流 |
|---|---|---|---|---|
| 001 | 充电桩A | 1号车位 | 820720 | 50A |
7. 总结
通过芯步开放的HTTP API接口,开发者可以非常灵活地对50A带计量远程智能空开进行二次开发。实现路径总结如下
基础控制:通过签名认证调用
/device/control接口,传递{"power":1/0}即可实现远程开关机。定时任务:既可以采用服务器端定时任务(适用于复杂周期),也可以利用设备自带的
reset参数实现“延时关”功能(更稳定)。数据应用:集成计量读取接口,实现能耗监测、过载预警、电费结算等高级功能。
只需熟悉标准的HTTP POST请求和MD5加密算法,即使是小团队或个人开发者也能在一周内完成稳定的远程控制系统开发。