说明:
本协议适用于esp c系列分监分控pdu设备。
本协议是根据home assistant 的 mqtt 协议继承而来。
1.订阅设备上下线信息
主题: homeassistant/check_online/设备id/status
订阅主题:
homeassistant/check_online/470b8f6dc9c7c00767425359/status
接收:
online / offline
2.订阅设备基础信息
主题: homeassistant/about_device/设备id/status
订阅主题:
homeassistant/about_device/470b8f6dc9c7c00767425359/status
接收:
{
"dev_id": "470b8f6dc9c7c00767425359", // 设备id
"dev_mac": "70:B8:F6:DC:9C:7F", // 设备mac
"dev_name": "我的PDU", // 设备名称
"pro_model": "ESP-AG-128", // 产品型号
"dev_model": "ICGW08", // 设备型号
"dev_ver": "v1.3.23", // 设备软件版本
"sock_nums": 8, // 插口数目
"date_of_production": "2022/9/7" // 设备生产日期 年/月/日
}
--以上是不属于home assistant 的 mqtt 协议,属于自定义的部分协议。
--以下是根据home assistant 的 mqtt 协议而来。
3.获取pdu电压电流等参数
订阅主题: homeassistant/sensor/设备id/state
订阅:
homeassistant/sensor/470b8f6dc9c7c00767425359/state
接收:
{
"voltage": "218.4", // 电压 V
"current": "0.0", // 电流 A
"power": "2.3", // 功率 W
"energy": "0.1", // 电量 Kwh
"frequency": "50.0", // 市电频率 Hz
"power_factor": "0.0", // 总功率因数 %
"temperature": "28.8", // 温度 ℃ 没有接温湿度传感器则没有此项
"humidity": "63.7", // 湿度 %RH 没有接温湿度传感器则没有此项
}
4.修改电压电流等参数等推送的频率参数
获取当前推送的频率值:
主题: homeassistant/number/设备id/设备id_info_upload/state
订阅主题
homeassistant/number/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_info_upload/state
接收:
10 // 单位秒 10s推送一次
修改信息推送的频率:
主题: homeassistant/number/设备id/设备id_info_upload/set
发布主题:
homeassistant/number/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_info_upload/set
payload:
15 // 单位秒 如果设置为0则会停止参数的推送
接收:
Topic: homeassistant/number/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_info_upload/state
15 // 更新的值
5.获取pdu两个开关传感器值
订阅单个主题: homeassistant/binary_sensor/设备id/设备id_binary_sensor_x/state // 设备id_binary_sensor_x (x = 1 ~ 2 对应 1 2开关传感器)
订阅:
homeassistant/binary_sensor/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_binary_sensor_1/state
接收:
OFF // OFF正常状态 ON触发状态
订阅全部主题: homeassistant/binary_sensor/设备id/+/state
订阅:
homeassistant/binary_sensor/470b8f6dc9c7c00767425359/+/state
接收:
Topic: homeassistant/binary_sensor/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_binary_sensor_1/state
Topic: homeassistant/binary_sensor/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_binary_sensor_2/state
ON / OFF // OFF正常状态 ON触发状态
6.获取插口状态
订阅单个插口主题: homeassistant/switch/设备id/设备id_switchx/state // 设备id_switchx (x = 1 ~ 8 8根据所买插口所不同 这里是8口)
订阅:
homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
接收:
ON / OFF // 插口当前状态
订阅全部插口主题: homeassistant/switch/设备id/+/state
订阅:
homeassistant/switch/470b8f6dc9c7c00767425359/+/state
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8/state
ON / OFF // 插口当前状态
7.控制插口开关
控制单个插口: homeassistant/switch/设备id/设备id_switchx/set // 设备id_switchx (x = 1 ~ 8 8根据所买插口所不同 这里是8口)
发布主题:
homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/set
payload:
ON / OFF
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
ON / OFF
控制全关: homeassistant/button/设备id/设备id_all_off/set
发布全关主题:
homeassistant/button/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_all_off/set
payload:
ALL_OFF
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8/state
OFF // 插口当前状态
控制全开: homeassistant/button/设备id/设备id_all_on/set
发布全开主题:
homeassistant/button/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_all_on/set
payload:
ALL_ON
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8/state
ON // 插口当前状态
控制时序关闭: homeassistant/button/设备id/设备id_close_one_by_one/set
发布时序关闭主题:
homeassistant/button/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_close_one_by_one/set
payload:
Close_one_by_one
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8/state
OFF // 插口当前状态
控制时序打开: homeassistant/button/设备id/设备id_open_one_by_one/set
发布时序关闭主题:
homeassistant/button/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_open_one_by_one/set
payload:
Open_one_by_one
接收:
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7/state
Topic: homeassistant/switch/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8/state
ON // 插口当前状态
8.获取PDU和各插口名称
获取单个插口名称: homeassistant/text/设备id/设备id_switchx_name/state // 设备id_switchx_name (x = 1 ~ 8 8根据所买插口所不同 这里是8口)
订阅单个插口名称主题:
homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1_name/state
接收:
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1_name/state
S1 // 插口名称
获取PDU名称: homeassistant/text/设备id/设备id_device_name/state
订阅主题:
homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_device_name/state
接收:
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_device_name/state
MY PDU
获取全部名称: homeassistant/text/设备id/+/state
订阅主题:
homeassistant/text/470b8f6dc9c7c00767425359/+/state
接收:
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_device_name/state
MY PDU // PDU插座名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1_name/state
S1 // 插口1名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch2_name/state
S2 // 插口2名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch3_name/state
S3 // 插口3名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch4_name/state
S4 // 插口4名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch5_name/state
S5 // 插口5名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch6_name/state
S6 // 插口6名称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch7_name/state
S7 // 插口7称
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch8_name/state
S8 // 插口8名称
9.修改插口名称
主题: homeassistant/text/设备id/设备id_switchx_name/set // 设备id_switchx_name (x = 1 ~ 8 8根据所买插口所不同 这里是8口)
发布主题:
homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1_name/set
payload:
Socket1 // 要修改的名称
接收:
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_switch1_name/state
Socket1 // 修改后的名称
10.修改PDU名称
主题: homeassistant/text/设备id/设备id_device_name/set
发布主题:
homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_device_name/set
payload:
MY PDU1234 // 要修改的名称
接收:
Topic: homeassistant/text/470b8f6dc9c7c00767425359/470b8f6dc9c7c00767425359_device_name/state
MY PDU1234// 修改后的名称