## 控制采集
### 远程控制设备通断电
*controller-event*
通断器、空开、10A-86插座、16A-86插座、10A转换器插座、16A转换器插座等单路设备的通电或断电操作
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"key" : 0,
"type" : "event"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| type | String | 固定值"event" | event |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"iccid" : "898608911026D0257696",
"imei" : "868926080844258",
"key" : 0,
"keyLock" : 0,
"mcu" : "Air780EPM",
"onState" : 1,
"resetLock" : 0,
"signal" : 16,
"timerEnable" : 1,
"timerInterval" : 15,
"type" : "GSMM1P1-4G",
"version" : "1.0.1"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| iccid | String | SIM-卡ICCID值 | 898608911026D0257696 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| keyLock | int | 按键锁,0:关闭,1:开启 | 0 |
| mcu | String | 芯片型号 | Air780EPM |
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| resetLock | int | 重置锁,0:关闭,1:开启 | 0 |
| signal | int | 信号强度,显示规则为:signal int 信号强度,取值范围(0~31),值越大越好 | 16 |
| timerEnable | int | 设备统计信息定时上报状态,0:关闭;1:开启 | 1 |
| timerInterval | int | 设备统计信息上报时间间隔(单位秒),取值范围5-86400 | 15 |
| type | String | 设备型号 | GSMM1P1-4G |
| version | String | 当前固件版本号 | 1.0.1 |
---
### 设置用电数据上报频率
*device-timer-interval*
配置设备数据的定时上报参数,包括是否上报与上报频率。启用后,设备按设定频率周期上报电量、开关状态等数据至服务器。
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"messageId" : "202201241610366046",
"timerEnable" : 1,
"timerInterval" : 15,
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| messageId | String | 业务流水号。由请求方生成的唯一标识,响应方原样回显,用于请求与响应的关联匹配。
| 202201241610366046 |
| timerEnable | int | 设备电量信息定时上报状态,0:关闭;1:开启 | 1 |
| timerInterval | int | 电量信息上报时间间隔(单位秒),取值范围5-86400 | 15 |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
---
### 用电数据自动上报
*device-timer-task*
查看设备定时上报数据的 JSON 格式,供服务器端对接解析设备上报的数据。是否上报与上报频率由"设置数据定时上报频率"指令配置,配置后设备按周期将数据发布至约定主题(topic),设备端无订阅行为(仅发布),服务端订阅该发布主题后即可接收上报数据。
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"key": 0,
"voltage": "239.265",
"power": "0.000",
"imei": "868926080844258",
"energy": "0.000",
"current": "0.000",
"messageId": "auto"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| current | float | 当前电流,单位A,保留三位小数 | 0.000 |
| energy | float | 累计用电量,单位KW*H,保留三位小数,断电后不会归零,重置后会归零 | 0.000 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| messageId | String | 业务流水号。由请求方生成的唯一标识,响应方原样回显,用于请求与响应的关联匹配。
| auto |
| power | float | 当前功率,单位W,保留三位小数 | 0.000 |
| voltage | float | 当前电压,单位V,保留三位小数 | 239.265 |
---
### 获取设备基础信息
*info-all*
获取设备信息一般会包含:设备通断电状态、IMEI、固件版本等信息,不同的产品返回的信息有所差异
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"type" : "info"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| type | String | 获取设备基本信息固定传"info" | info |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"iccid" : "898608911026D0257696",
"imei" : "868926080844258",
"key" : 0,
"keyLock" : 0,
"mcu" : "Air780EPM",
"onState" : 1,
"resetLock" : 0,
"signal" : 17,
"timerEnable" : 1,
"timerInterval" : 15,
"type" : "GSMM1P1-4G",
"version" : "1.0.1"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| iccid | String | SIM-卡ICCID值 | 898608911026D0257696 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| keyLock | int | 按键锁,0:关闭,1:开启 | 0 |
| mcu | String | 芯片型号 | Air780EPM |
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| resetLock | int | 重置锁,0:关闭,1:开启 | 0 |
| signal | int | 信号强度,显示规则为:signal int 信号强度,取值范围(0~31),值越大越好 | 17 |
| timerEnable | int | 设备统计信息定时上报状态,0:关闭;1:开启 | 1 |
| timerInterval | int | 设备统计信息上报时间间隔(单位秒),取值范围5-86400 | 15 |
| type | String | 设备型号 | GSMM1P1-4G |
| version | String | 当前固件版本号 | 1.0.1 |
---
### 获取设备用电信息
*info-statistic*
获取设备采集的累积电量、实时电压、实时电流、实时功率信息,注意不同的设备数值单位有区别,取决于设备设计的精度
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"type" : "statistic"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| type | String | 获取设备电量信息固定传"statistic" | statistic |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"key": 0,
"voltage": "238.064",
"power": "0.000",
"imei": "868926080844258",
"energy": "0.000",
"current": "0.000"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| current | float | 当前电流,单位A,保留三位小数 | 0.000 |
| energy | float | 累计用电量,单位KW*H,保留三位小数,断电后不会归零,重置后会归零 | 0.000 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| power | float | 当前功率,单位W,保留三位小数 | 0.000 |
| voltage | float | 当前电压,单位V,保留三位小数 | 238.064 |
---
## 设备维护
### 设备重置/恢复出厂设置
*controller-reset*
恢复出厂设置后配网信息和自定义信息都会清空,请谨慎操作!
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"system" : "reset",
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| system | String | 重置/恢复出厂设置默认填"reset" | reset |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"system" : "reset",
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| system | String | 重置/恢复出厂设置默认填"reset" | reset |
| type | String | 固定值"setting" | setting |
---
### 设备软重启
*controller-restart*
软重启后,通过指令设置的参数将生效,同时设备将重新连接Wifi/4G网络,注意设备IP地址可能发生变化
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"system" : "restart",
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| system | String | 设备软重启固定传"restart" | restart |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"system" : "restart",
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| system | String | 重置/恢复出厂设置默认填"reset" | restart |
| type | String | 固定值"setting" | setting |
---
### 累计用电量清零
*energy-clear*
将设备累计用电量清零,清零后从零开始重新累计统计,仅清除累计用电量,不影响其他数据。清零为不可逆操作,清除后累计数据无法恢复!
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"messageId" : "202201241610366046",
"system" : "energy-clear",
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| messageId | String | 业务流水号。由请求方生成的唯一标识,响应方原样回显,用于请求与响应的关联匹配。
| 202201241610366046 |
| system | String | 重置/恢复出厂设置默认填"reset" | energy-clear |
| type | String | 固定值"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"commandName" : "energy-clear",
"mac" : "868926080844258",
"message" : "ok",
"messageId" : "202201241610366046",
"source" : "command",
"success" : true
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| commandName | String | 指令名称 | energy-clear |
| mac | String | wifi设备MAC地址或4G设备的IMEI号,唯一标识 | 868926080844258 |
| message | String | 执行结果描述:对命令执行结果的文本说明。执行完成且无异常:ok ;如果出现异常,返回异常结果描述。 | ok |
| messageId | String | 业务流水号。由请求方生成的唯一标识,响应方原样回显,用于请求与响应的关联匹配。
| 202201241610366046 |
| source | String | 指令回复“command" | command |
| success | boolean | 执行结果,执行成功:true;执行失败:false | true |
---
### 获取设备通信协议
*info-protocol*
获取当前设备与服务端交互的通信协议及协议配置参数,目前支持MQTT,设备出厂时默认接入GemeOpen厂家MQTT测试服务器,免费提供客户调试使用,如需接入自己的服务器或使用其他协议,请自行搭建服务器。
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"type" : "protocol"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| type | String | 获取设备通讯协议固定传"protocol" | protocol |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"subcribe": "/INIT/xpNsEyosAtDZ/868926080844258/subscribe",
"port": "1883",
"publish": "/INIT/xpNsEyosAtDZ/868926080844258/publish",
"server": "mqtt.smart-bird.cn",
"protocol": "mqtt",
"username": "xpNsEyosAtDZ",
"clientId": "868926080844258"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| clientId | String | 自定义MQTT客户端ID注意:不可重复
| 868926080844258 |
| port | String | 端口号 | 1883 |
| protocol | String | 协议类型 | mqtt |
| publish | String | 自定义发布主题 注意:不可重复 | /INIT/xpNsEyosAtDZ/868926080844258/publish |
| server | String | 自定义服务器地址 | mqtt.smart-bird.cn |
| subcribe | String | 自定义订阅主题,注意:不可重复 | /INIT/xpNsEyosAtDZ/868926080844258/subscribe |
| username | String | 自定义服务器用户名 | xpNsEyosAtDZ |
---
### 设置按键控制锁
*setting-key-lock*
功能按键锁定后,设备仅能通过MQTT/TCP协议操作,例如控制开关的通断、插座的通断电,都只能通过指令操作
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"keyLock" : 1,
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| keyLock | int | 按键锁,0:关闭,1:开启 | 1 |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"iccid" : "898608911026D0257696",
"imei" : "868926080844258",
"key" : 0,
"keyLock" : 1,
"mcu" : "Air780EPM",
"onState" : 1,
"resetLock" : 0,
"signal" : 16,
"timerEnable" : 1,
"timerInterval" : 15,
"type" : "GSMM1P1-4G",
"version" : "1.0.1"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| iccid | String | SIM-卡ICCID值 | 898608911026D0257696 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| keyLock | int | 按键锁,0:关闭,1:开启 | 1 |
| mcu | String | 芯片型号 | Air780EPM |
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| resetLock | int | 重置锁,0:关闭,1:开启 | 0 |
| signal | int | 信号强度,显示规则为:signal int 信号强度,取值范围(0~31),值越大越好 | 16 |
| timerEnable | int | 设备统计信息定时上报状态,0:关闭;1:开启 | 1 |
| timerInterval | int | 设备统计信息上报时间间隔(单位秒),取值范围5-86400 | 15 |
| type | String | 设备型号 | GSMM1P1-4G |
| version | String | 当前固件版本号 | 1.0.1 |
---
### 自定义MQTT参数
*setting-mqtt*
设备支持自定义MQTT,注意:在通过MQTT自定义MQTT信息后,需要将设备断电重启或者向设备发送重启命令才可生效。
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| clientId | String | 自定义MQTT客户端ID注意:不可重复
| admin |
| password | String | 密码 | 123456 |
| port | String | 端口号 | 1883 |
| protocol | String | 协议类型 | mqtt |
| publish | String | 自定义发布主题 注意:不可重复 | /topic/qos0 |
| server | String | 自定义服务器地址 | 192.168.0.66 |
| subcribe | String | 自定义订阅主题,注意:不可重复 | /topic/qos1 |
| type | String | 设备自定义固定传"custom" | custom |
| username | String | 自定义服务器用户名 | username |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| clientId | String | 自定义MQTT客户端ID注意:不可重复
| admin |
| imei | String | 设备唯一标识 | 862323080739884 |
| password | String | 密码 | 123456 |
| port | String | 端口号 | 1883 |
| protocol | String | 协议类型 | mqtt |
| publish | String | 自定义发布主题 注意:不可重复 | /topic/qos0 |
| server | String | 自定义服务器地址 | 192.168.0.66 |
| subcribe | String | 自定义订阅主题,注意:不可重复 | /topic/qos1 |
| type | String | 设备自定义固定传"custom" | custom |
| username | String | 自定义服务器用户名 | username |
---
### 设置上电默认状态
*setting-on-state*
配置设备断电恢复后输出的默认状态,即断电恢复瞬间设备是通电还是断电。
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| imei | String | 设备唯一标识 | 861556071286636 |
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| type | String | 设备设置固定传"setting" | setting |
---
### 设置按键重置锁
*setting-reset-lock*
开启后设备只能通过mqtt,tcp方式重置.
**向设备发送指令(服务端向设备订阅topic发送消息)**
```json
{
"resetLock" : 1,
"type" : "setting"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| resetLock | int | 重置锁,0:关闭,1:开启 | 1 |
| type | String | 设备设置固定传"setting" | setting |
---
**设备返回信息(设备向服务端订阅topic上报消息)**
```json
{
"iccid" : "898608911026D0257696",
"imei" : "868926080844258",
"key" : 0,
"keyLock" : 0,
"mcu" : "Air780EPM",
"onState" : 1,
"resetLock" : 1,
"signal" : 17,
"timerEnable" : 1,
"timerInterval" : 15,
"type" : "GSMM1P1-4G",
"version" : "1.0.1"
}
```
#### 字段属性
---
| 字段名称 | 字段类型 | 字段说明 | 示例值 |
|------|------|------|------|
| iccid | String | SIM-卡ICCID值 | 898608911026D0257696 |
| imei | String | 设备唯一标识 | 868926080844258 |
| key | int | 设备通断电状态,0:断电,1:通电 | 0 |
| keyLock | int | 按键锁,0:关闭,1:开启 | 0 |
| mcu | String | 芯片型号 | Air780EPM |
| onState | int | 设备上电的默认状态:
0:记忆;是指记忆最后一次设备断电前的状态,如断电前设备是通电状态(指示灯是蓝的),设备下次上电默认是通电状态(指示灯是蓝的)。
1:关闭,即断电状态(指示灯是灭的),如断电前,设备是通电状态(指示灯是蓝的),设备下次上电默认是依旧是断电状态(指示灯是灭的)。需要手动/远程开启通电状态。
2:开启,即通电状态(指示灯是蓝色的),是指设备上电之后,默认是通电状态,此刻需要注意,插在设备上的负载会通电运行,会有安全风险,所以建议是默认上电状态为关闭。 | 1 |
| resetLock | int | 重置锁,0:关闭,1:开启 | 1 |
| signal | int | 信号强度,显示规则为:signal int 信号强度,取值范围(0~31),值越大越好 | 17 |
| timerEnable | int | 设备统计信息定时上报状态,0:关闭;1:开启 | 1 |
| timerInterval | int | 设备统计信息上报时间间隔(单位秒),取值范围5-86400 | 15 |
| type | String | 设备型号 | GSMM1P1-4G |
| version | String | 当前固件版本号 | 1.0.1 |
---