适用于ESP C系列PDU软件版本v1.3.28及以上的PDU设备
http://设备IP/接口路径.json(如192.168.1.86/login.json)http://设备IP:端口/接口路径.json(如192.168.1.86:8081/login.json){"error": "please login!"}接口路径:/login.json
功能:登录PDU设备,获取操作权限
请求Body:
{
"login": 255,
"userName": "YWRtaW4=", // 用户名base64编码,默认admin编码后为YWRtaW4=
"password": "YWRtaW4=" // 密码base64编码,默认admin编码后为YWRtaW4=
}
返回数据:
{
"login_verif": 3, // 3=登录成功,其他值=登录失败
"login_cnt": 2 // 登录计数
}
接口路径:/body_head.json
功能:登出PDU设备,释放操作权限
请求Body:
{
"logout": 1
}
返回数据:
{
"logout": "success!"
}
接口路径:/home-page.json
请求Body:
{"get" : 255}
返回数据:
{
"sock_nums": 8, // 插座输出口个数(1-8)
"dev_type": 1, // PDU类型:2=总监总控,1=分监分控
"vol": "218.4", // 电压(V)
"tolCur": "0.0", // 总电流(A)
"tolPow": "0.0", // 总功率(W)
"tolEne": "0.1", // 总电量(Kwh)
"fre": "50.0", // 电压频率(Hz)
"tolCos": "0.0", // 总功率因数(%)
"tempCent": "28.8", // 温度(℃),--.-表示无传感器
"tempFahr": "83.84", // 温度(℉),--.-表示无传感器
"hum": "61.9", // 湿度(%RH),--.-表示无传感器
"sock_name": ["S1", "S2", ..., "S8"], // 插口名称
"socket": [1, 1, ..., 1], // 插口状态:1=打开,0=关闭
"sockctl_sta": [0, 0, ..., 0], // 忽略
"curx": ["0.1", "0.0", ..., "0.0"], // 各插口电流(A)
"powx": ["4.8", "2.0", ..., "0.0"], // 各插口功率(W)
"cosx": ["43.7", "43.6", ..., "0.0"] // 各插口功率因数(%)
}
| 控制类型 | 请求Body | 说明 |
|---|---|---|
| 全部开关 | {"ctlbtn" : 255, "sta" : 0} |
sta=0全关,sta=1全开 |
| 时序开关 | {"ctlbtn" : 254, "sta" : 0} |
sta=0时序关闭,sta=1时序打开 |
| 单独控制 | {"ctlbtn" : 0, "sta" : 0} |
ctlbtn=0-7对应1-8口,sta=0关,sta=1开 |
返回数据:
{
"sock_nums": 8,
"socket": [1, 1, ..., 1], // 控制后的插座状态
"sockctl_sta": [0, 0, ..., 5] // 忽略
}
接口路径:/data-display.json
功能:获取扩展设备数据
请求Body:
{"get" : 255}
返回数据:
{
"sock_nums": 8,
"dev_type": 1,
"sw_1_name": "开关传感器 1", // 开关传感器1名称
"sw_2_name": "开关传感器 2", // 开关传感器2名称
"sw_ser_1": 0, // 开关传感器1状态:1=触发,0=正常
"sw_ser_2": 0, // 开关传感器2状态:1=触发,0=正常
"vol": "216.1", // 电压(V)
"tolCur": "0.1", // 总电流(A)
"tolPow": "6.7", // 总功率(W)
"tolEne": "3.6", // 总电量(Kwh)
"fre": "50.0", // 电压频率(Hz)
"tolCos": "43.9", // 总功率因数(%)
"tempCent": "29.4", // 温度(℃)
"tempFahr": "84.92", // 温度(℉)
"hum": "36.1", // 湿度(%RH)
"sock_name": ["A1", "A2", ..., "A8"],
"curx": ["0.1", "0.0", ..., "0.0"],
"powx": ["4.8", "2.0", ..., "0.0"],
"cosx": ["43.7", "43.6", ..., "0.0"]
}
接口路径:/socket_setup.json
请求Body:
{"get": 255}
返回数据:
{
"sock_nums": 8,
"startup": 0, // 时序打开顺序:0=1->8,1=8->1
"shutdown": 0, // 时序关闭顺序:0=1->8,1=8->1
"sock_name": ["A1", "A2", ..., "A8"],
"boot_up_sta": [0, 0, ..., 2], // 开机状态:0=开,1=关,2=上一次
"startup_delay": [0, 0, ..., 0], // 开机延时间隔(秒)
"delay_on": [5, 5, ..., 5], // 延时打开(秒)
"delay_off": [5, 5, ..., 5], // 延时关闭(秒)
"restart_time": [5, 5, ..., 5], // 重启时间(秒)
"delayed_restart": [5, 5, ..., 5] // 延时重启(秒)
}
请求Body:
{"get_id" : 0} // 0-7对应1-8口
返回数据:
{
"name": "A1",
"bootUpSta": 0,
"startupDelay": 0,
"delayOn": 5,
"delayOff": 5,
"restartTime": 5,
"delayedRestart": 5
}
请求Body:
{
"set_id":0,
"name":"ups",
"bootUpSta":1,
"startupDelay":1,
"delayOn":10,
"delayOff":10,
"restartTime":10,
"delayedRestart":10
}
返回数据:返回设置后的参数(与请求参数一致)
请求Body:
{
"on_off_set": 0,
"startup": 1, // 打开时序:0=1->8,1=8->1
"shutdown": 0 // 关闭时序:0=1->8,1=8->1
}
返回数据:
{
"startup": 1,
"shutdown": 0
}
接口路径:/device_setup.json
请求Body:
{"get" : 255}
返回数据:
{
"dev_name": "Desktop-Feng", // PDU名称
"duration": 600, // 忽略
"oled_enable": 0, // 忽略
"dev_scan": 1 // 忽略
}
请求Body:
{
"updateDevName":0,
"devName":"MY PDU"
}
返回数据:
{
"dev_name": "MY PDU"
}
接口路径:/about.json
功能:获取设备基础信息
请求Body:
{"get" : 255}
返回数据:
{
"dev_name": "MY PDU",
"pro_model": "ESP-CG-128", // 产品型号
"dev_model": "ES-TVAPWR", // 设备型号
"dev_id": "4e831cd8fc77400301526214", // 设备ID
"dev_mac": "E8:31:CD:8F:C7:77", // 设备MAC
"dev_ver": "v1.3.28", // 软件版本
"uptime": 249, // 启动时长(秒)
"year": 2022, // 生产日期-年
"mon": 5, // 生产日期-月
"day": 7 // 生产日期-日
}
接口路径:/ip_setup.json
请求Body:
{"get" : 255}
返回数据:
{
"ip4_type": 1, // 0=DHCP,1=静态
"ip4_ip": "192.168.1.230", // IP地址
"ip4_mask": "255.255.255.0", // 子网掩码
"ip4_gw": "192.168.1.2", // 网关
"ip4_dns1": "114.114.114.114", // 主DNS
"ip4_dns2": "0.0.0.0" // 备用DNS
}
请求Body:
{
"set":255,
"ip4_type":1,
"ip4_ip":"192.168.1.234",
"ip4_mask":"255.255.255.0",
"ip4_gw":"192.168.1.2",
"ip4_dns1":"114.114.114.114",
"ip4_dns2":"8.8.8.8"
}
返回数据:
{"msg": "success!"}接口路径:/web_setup.json
请求Body:
{"get" : 255}
返回数据:
{
"type": 1, // 1=HTTP,2=HTTPS
"http_port": 80, // HTTP端口
"https_port": 443 // HTTPS端口
}
请求Body:
{
"set": 255,
"type": 1,
"httpPort": 8080,
"httpsPort": 443
}
返回数据:返回修改后的配置
接口路径:/sntp_time.json
请求Body:
{"get" : 255}
返回数据:
{
"hour": 11, // 时
"min": 20, // 分
"sec": 58, // 秒
"wday": 3, // 星期(0=周日)
"mon": 6, // 月(需+1)
"mday": 19, // 日
"year": 2023 // 年
}
请求Body:
{
"brotime": [2023, 6, 19, 11, 50, 0] // [年,月-1,日,时,分,秒]
}
返回数据:返回设置后的时间
接口路径:/timed_task.json
请求Body:
{"get" : 255}
返回数据:包含20个定时任务的完整配置
请求Body:
{"get_id" : 0} // 0-19对应20个定时任务
返回数据:
{
"name": "定时任务1", // 任务名称
"flag": 2, // 0=一次,1=每天,2=每周,4=每月,8=每年,16=每小时
"year": 122, // 年(+1900)
"mon": 11, // 月(+1)
"day": 27, // 日
"hour": 11, // 时
"min": 33, // 分
"action": 1, // 0=关闭插座,1=打开插座
"state": 0, // 0=禁用,1=启用
"week": [1,1,1,1,1,1,1], // 星期选择(1=选中)
"socket": [1,1,...1] // 插口选择(1=选中)
}
请求Body:
{
"set_id":0,
"name":"一次定时",
"flag":0,
"year":123,
"mon":6,
"day":18,
"hour":12,
"min":0,
"action":0,
"state":1,
"week":127, // 二进制表示星期选择
"socket":255 // 二进制表示插口选择
}
返回数据:返回设置后的任务配置
接口路径:/air_cond_ctl.json
请求Body:
{"get" : 255}
返回数据:
{
"mode": 2, // 0=自动,1=制冷,2=除湿,3=送风,4=制暖
"temp": 26, // 温度(16~31)
"wind_speed": 0, // 0=自动,1=1档,2=2档,3=3档
"wind_dire": 0, // 0=自动摆风,1=手动摆风
"ac_num": 33, // 空调型号
"update": 255 // 标志位
}
请求Body:
{
"save": 1,
"acNum": 34
}
返回数据:返回修改后的空调参数
| 控制类型 | 请求Body | 说明 |
|---|---|---|
| 模式切换 | {"mode": 1} |
模式循环切换(0->4->0) |
| 温度+ | {"TempU":1} |
温度+1(最大31) |
| 温度- | {"TempD":1} |
温度-1(最小16) |
| 风速切换 | {"WSpeed":1} |
风速循环切换(0->3->0) |
| 风向切换 | {"WDire":1} |
风向循环切换(0->1->0) |
| 空调开机 | {"acSwitch":255} |
打开空调 |
| 空调关机 | {"acSwitch":0} |
关闭空调 |
返回数据:
{
"mode": 2,
"temp": 26,
"wind_speed": 0,
"wind_dire": 0,
"ac_num": 34,
"update": 0 // 0=失败,1=成功
}
接口路径:/trigger_base.json
{"tri_base_get_id": 1}{
"tri_base_set_id": 1,
"sw_name": "烟雾传感器",
"tri_action": 1, // 0=无,1=关闭,2=打开
"tri_port": 3, // 二进制选择端口
"rec_action": 2, // 0=无,1=关闭,2=打开
"rec_port": 3, // 二进制选择端口
"priority": 8 // 255=关闭,1-8=优先级
}
{"tri_base_get_id": 3}{
"tri_base_set_id": 3,
"gt_value": 31, // 超温阈值(℃)
"gt_port": 3, // 超温端口选择
"gt_tri_act": 2, // 超温触发动作
"gt_rec_act": 1, // 超温恢复动作
"lt_value": 10, // 低温阈值(℃)
"lt_port": 12, // 低温端口选择
"lt_tri_act": 2, // 低温触发动作
"lt_rec_act": 1, // 低温恢复动作
"hui_cha": 2, // 回差(/10)
"priority": 6 // 优先级
}
与温度触发器类似,回差值直接使用(不/10)
{"tri_base_get_id": 6}{
"tri_base_set_id": 6,
"gt_cur": 32, // 超流阈值(A)
"gt_port": 32, // 超流端口选择
"gt_act": 1, // 超流触发动作
"priority": 4 // 优先级
}
{"tri_base_get_id": 7}{
"tri_base_set_id": 7,
"gt_pow": 3200, // 超功率(W)
"gt_cos": 99, // 超功率因数(%)
"gt_port": 224, // 端口选择
"gt_act": 1, // 触发动作
"rec_time": 120, // 恢复时间(秒)
"priority": 5 // 优先级
}
接口路径:/trigger_each_cur.json
{"tri_curx_get_id": 255}{"tri_curx_get_id": 0}{
"tri_curx_set_id": 0,
"gt_cur": 18, // 超流阈值(A)
"gt_act": 1, // 触发动作
"priority": 4 // 优先级
}
接口路径:/trigger_each_pc.json
{"tri_pcx_get_id": 255}{"tri_pcx_get_id": 0}{
"tri_pcx_set_id": 0,
"gt_pow": 5000, // 超功率(W)
"gt_cos": 98, // 超功率因数(%)
"gt_act": 1, // 触发动作
"rec_time": 120, // 恢复时间(秒)
"priority": 3 // 优先级
}
接口路径:/data_reset.json
| 复位类型 | 请求Body | 返回数据 |
|---|---|---|
| 总电量清零 | {"reset": 1, "claerEnergy": 1} |
{"update": 1} |
| 定时任务复位 | {"reset": 1, "timedTask": 1} |
{"update": 1} |
| 插座设置复位 | {"reset": 1, "paraSetSock": 1} |
{"update": 1} |
| 触发器基础复位 | {"reset": 1, "triTaskBase": 1} |
{"update": 1} |
| 分电流触发器复位 | {"reset": 1, "triTaskCur": 1} |
{"update": 1} |
| 分阻性负载复位 | {"reset": 1, "triTaskPowCos": 1} |
{"update": 1} |
| 返回内容 | 说明 |
|---|---|
{"error": "please login!"} |
未登录或登录超时 |
{"update": 0} |
操作失败 |
| 无响应 | IP/Web端口修改后连接断开 |