# 86型零火智能开关-单开-4G版 (型号：GSCW1B-4G) - 开发者指令 
## 产品基本描述 
本设备是支持二次开发的零火智能单键开关，采用标准的86mm×86mm面板尺寸，能直接原位替换传统86型开关，无需重新开槽，需要零线、火线输入，支持远程控制开关和用电数据采集。
4G通信方式，信号稳定，覆盖范围广，可灵活部署，不依赖无线网络环境。支持自定义MQTT协议接入用户自建服务器平台，可通过API接口来进行自定义应用程序和系统集成。 
## 产品主要特点 
4G网络，单路控制，电量采集
AC110v-250V宽电压输入
单路阻性负载最大800W 
## 产品图 
<https://smart-bird-oss.smart-bird.cn/images/2025/11/21/134533139196011.png> 
<https://smart-bird-oss.smart-bird.cn/images/2025/11/21/1345371780089037.png> 
<https://smart-bird-oss.smart-bird.cn/images/2025/11/21/1345409095172823.png> 
<https://smart-bird-oss.smart-bird.cn/images/2025/11/21/1345438165196595.png> 
<https://smart-bird-oss.smart-bird.cn/images/2025/11/21/1345462711693537.png> 
## 官网产品资料 
### 品牌信息说明 
品牌LOGO <https://smart-bird-oss.smart-bird.cn/images/2026/02/18/1722133698642421.png> 
智鸟科技GemeOpen专注为软件开发者提供商用智能设备，软件工程师通过简单的测试即可完成项目设备选型，使用标准的MQTT/TCP协议，发送JSON指令控制设备通断电、查询设备用电信息。能够极大节省项目实施时间与自研设备风险，与厂商云解耦，搭建私有化MQTT服务，完全掌控设备且无任何捆绑与隐性成本！ 
### 产品详细信息 
<https://www.smart-bird.cn/smart-switch-4G.html> 
### 淘宝购买网址 
<https://item.taobao.com/item.htm?ft=t&id=776323830451&skuId=5306838772968> 
### 京东购买网址 
<https://item.jd.com/10211123276401.html> 
### 开发者文档 
<https://www.smart-bird.cn/doc/product/GSCWB-4G/device/GSCW1B-4G/command> 
## 产品电气参数 
--- 
| 参数名 | 参数值 | 
|------|------| 
| 品牌 | GemeOpen | 
| 上市日期 | 2025年 | 
| 产品类型 | 86型零火智能开关-单开-4G版 | 
| 产品型号 | GSCW1B-4G | 
| 键数 | 单键 | 
| 供电方式 | 零火 | 
| 产品尺寸 | 86mm*86mm*40mm | 
| 输入电压 | 85Vac-265Vac | 
| 工作电流 | 10A | 
| 最大负载 | 阻性负载 MAX 800W/路 | 
| 待机功率 | ＜5W | 
| 通讯方式 | 4G全网通 | 
| 通讯模块 | 合宙780 | 
| 控制协议 | MQTT、蓝牙 | 
| 工作温度 | -5℃ ~ +40℃ | 
| 外壳材质 | PC阻燃 | 
| 3C证书编号 | - | 
--- 
 
## 控制采集 
 
### 远程控制设备通断电 
*controller-event* 
 
通断器、空开、10A-86插座、16A-86插座、10A转换器插座、16A转换器插座等单路设备的通电或断电操作 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
　　"key2" : 1,
　　"type" : "event"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 1 | 
| type | String | 控制设备开关固定传"event" | event | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
　　"code" : "GSCW1B-4G",
　　"commandName" : "controller-event",
　　"iccid" : "89861125208093419602",
　　"imei" : "866965087693583",
　　"key2" : 1,
　　"keyLock" : 0,
　　"messageId" : "",
　　"resetLock" : 0,
　　"signal" : 16,
　　"source" : "command",
　　"timerEnable" : 1,
　　"timerInterval" : 300,
　　"version" : "1.1.0"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号 | GSCW1B-4G | 
| commandName | String | 指令名称 | controller-event | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 1 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 16 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围1-86400 | 300 | 
| version | String | 当前固件版本号 | 1.1.0 | 
---  
 
### 设置数据自动上报频率 
*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 
{
 "code" : "GSCW1B-4G",
 "commandName" : "device-timer-interval",
 "iccid" : "89861125208093419602",
 "imei" : "866965087693583",
 "key2" : 0,
 "keyLock" : 0,
 "messageId" : "202201241610366046",
 "onState" : 1,
 "resetLock" : 0,
 "signal" : 16,
 "source" : "command",
 "timerEnable" : 1,
 "timerInterval" : 15,
 "version" : "1.1.0"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号 | GSCW1B-4G | 
| commandName | String | 指令名称 | device-timer-interval | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| onState | int | 设备上电的默认状态： 0：记忆；是指记忆最后一次设备断电前的状态，如断电前设备是通电状态（指示灯是蓝的），设备下次上电默认是通电状态（指示灯是蓝的）。 1：关闭，即断电状态（指示灯是灭的），如断电前，设备是通电状态（指示灯是蓝的），设备下次上电默认是依旧是断电状态（指示灯是灭的）。需要手动/远程开启通电状态。 2：开启，即通电状态（指示灯是蓝色的），是指设备上电之后，默认是通电状态，此刻需要注意，插在设备上的负载会通电运行，会有安全风险，所以建议是默认上电状态为关闭。 | 1 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 16 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围5-86400 | 15 | 
| version | String | 当前固件版本号 | 1.1.0 | 
---  
 
### 用电数据自动上报 
*device-timer-task* 
 
此项非主动下发的指令，只展示用户开启定时上报任务后，定时返回的消息样式 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "voltage": 236.988,
 "imei": "866965087693583",
 "commandName": "device-timer-interval",
 "messageId": "",
 "source": "auto",
 "key2": 0,
 "energy": 0,
 "power": 0.068,
 "current": 0.003
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | device-timer-interval | 
| current | float | 当前电流，单位A，保留三位小数 | 0.003 | 
| energy | float | 累计用电量，单位KW*H，保留三位小数，断电后不会归零，重置后会归零 | 0 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| power | float | 当前功率，单位W，保留三位小数 | 0.068 | 
| source | String | 指令回复“command" | auto | 
| voltage | float | 当前电压，单位V，保留三位小数 | 236.988 | 
---  
 
### 获取设备基础信息 
*info-all* 
 
获取设备信息一般会包含：设备通断电状态、IMEI、固件版本等信息，不同的产品返回的信息有所差异 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"type" : "info"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| type | String | 获取设备基本信息固定传"info" | info | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"code" : "GSCW1B-4G",
"commandName" : "info-all",
"iccid" : "89861125208093419602",
"imei" : "866965087693583",
"key2" : 0,
"keyLock" : 0,
"messageId" : "",
"resetLock" : 0,
"signal" : 17,
"source" : "command",
"timerEnable" : 1,
"timerInterval" : 300,
"version" : "1.1.0"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号 | GSCW1B-4G | 
| commandName | String | 指令名称 | info-all | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 17 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围1-86400 | 300 | 
| version | String | 当前固件版本号 | 1.1.0 | 
---  
 
### 获取设备统计信息 
*info-statistic* 
 
获取设备采集的累积电量、实时电压、实时电流、实时功率信息，注意不同的设备数值单位有区别，取决于设备设计的精度 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "type" : "statistic"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| type | String | 获取设备电量信息固定传"statistic" | statistic | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "voltage": 236.807,
 "imei": "866965087693583",
 "commandName": "info-statistic",
 "messageId": "",
 "source": "command",
 "key2": 0,
 "energy": 0,
 "power": 0.088,
 "current": 0.003
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | info-statistic | 
| current | float | 当前电流，单位A，保留三位小数 | 0.003 | 
| energy | float | 累计用电量，单位KW*H，保留三位小数，断电后不会归零，重置后会归零 | 0 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| power | float | 当前功率，单位W，保留三位小数 | 0.088 | 
| source | String | 指令回复“command" | command | 
| voltage | float | 当前电压，单位V，保留三位小数 | 236.807 | 
---   
 
## 定时任务 
 
### 查询定时通断任务 
*info-timer-task-query* 
 
查询设备已设置的定时通断电任务列表及详情。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "action" : "timerTaskQuery",
 "messageId" : "202201241610366046",
 "type" : "event"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 固定值timerTaskQuery | timerTaskQuery | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| type | String | 设备设置固定传"event" | event | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "action" : "timerTaskQuery",
 "commandName" : "info-timer-task-query",
 "imei" : "866965087693583",
 "list" : {},
 "messageId" : "202201241610366046",
 "source" : "command",
 "type" : "event"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 设备定时任务查询默认填"timerTaskQuery" | timerTaskQuery | 
| command | Object | 指令 | { "key":1, "type":"event" } | 
| commandName | String | 指令名称 | info-timer-task-query | 
| hour | int | 小时0~23 | 0 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| list | List | list为列表，参数带number、week、hour、minute、repeat是定时按星期时分执行一次，参数不带week则是每天按时分循环执行,key1、key2、key3含义同event指令 | {} | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| minute | int | 分钟0~60 | 0 | 
| number | int | 任务编号 | 1 | 
| repeat | String | 重复week：按周重复,day：按天重复,oneof:一次任务 | week | 
| source | String | 指令回复“command" | command | 
| type | String | 固定值"event" | event | 
---  
 
### 设置倒计时通断任务 
*setting-timer-countdown* 
 
设置倒计时任务——指定时长与到点动作（关闭/开启）。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "countdownSecond" : 10
,
 "finishCommand" : 
 {
 "key2" : 0,
 "type" : "event"
 },
 "messageId" : "20260520",
 "task" : "countdown",
 "timerInterval" : 0,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| countdownSecond | int | 倒计时总时间 | 10 | 
| finishCommand | Object | 完成任务 | | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| task | String | 固定值“countdown" | countdown | 
| timerInterval | int | 进度上报间隔（秒）。0表示仅上报开始和结束，>0时必须小于 countdownSecond | 0 | 
| type | String | 控制设备开关固定传"event" | event | 
| type | String | 设备设置固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "commandName" : "setting-timer-countdown",
 "countdownSecond" : 10,
 "finishCommand" : 
 {
 "key2" : 0,
 "type" : "event"
 },
 "imei" : "866965087693583",
 "messageId" : "202201241610366046",
 "source" : "command",
 "task" : "countdown",
 "timerInterval" : 0
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | setting-timer-countdown | 
| countdownSecond | int | 倒计时总时间 | 10 | 
| finishCommand | Object | 完成任务 | {"key2":0,"type":"event"} | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| source | String | 指令回复“command" | command | 
| task | String | 固定值“countdown" | countdown | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围5-86400 | 0 | 
| type | String | 控制设备开关固定传"event" | event | 
| type | String | 固定值"xxx" | event | 
---  
 
### 倒计时任务自动上报 
*setting-timer-countdown-active* 
 
设备按照约定的JSON 格式上报倒计时状态 。上报频率由"设置倒计时任务"指令配置，配置后设备按周期将数据发布至约定主题（topic），设备端无订阅行为（仅发布），服务端订阅该发布主题后即可接收上报数据。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| key | int | 设备通断电状态，0：断电，1：通电 | 0 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| type | String | 固定值"xxx" | event | 
| type | String | 固定值"xxx" | event | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "state": 0,
 "countdownSecond": 10,
 "imei": "866965087693583",
 "source": "auto",
 "remaining": 10,
 "commandName": "setting-timer-countdown-active"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | setting-timer-countdown-active | 
| countdownSecond | int | 倒计时总时间 | 10 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| remaining | float | null | 10 | 
| source | String | 指令回复“command" | auto | 
| state | int | 任务状态：0：待启动，1：正在进行，2：结束 | 0 | 
| type | String | 固定值"xxx" | event | 
---  
 
### 清除倒计时任务 
*setting-timer-countdown-clear* 
 
删除设备中已设置的所有倒计时通断电任务，删除为不可逆操作，删除后需重新设置。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "202201241610366046",
 "task" : "countdown-clear",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| task | String | 固定值“countdown" | countdown-clear | 
| type | String | 固定值"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "commandName" : "setting-timer-countdown-clear",
 "imei" : "866965087693583",
 "message" : "ok",
 "messageId" : "202201241610366046",
 "source" : "command",
 "success" : true
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | setting-timer-countdown-clear | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 清除定时通断任务 
*setting-timer-delete* 
 
删除设备中已设置的单条定时通断电任务，删除为不可逆操作，删除后需重新设置。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "action" : "delete",
 "messageId" : "202201241610366046",
 "number" : 1,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 删除定时器动作 | delete | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| number | int | 任务编号 | 1 | 
| type | String | 固定值"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "commandName" : "setting-timer-delete",
 "imei" : "866965087693583",
 "message" : "ok",
 "messageId" : "202201241610366046",
 "source" : "command",
 "success" : true
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | setting-timer-delete | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 设置定时通断任务 
*setting-timer-task* 
 
新增或编辑定时通断电任务，设置后到点执行开启/关闭操作。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "command" : 
 {
 "key2" : 0,
 "type" : "event"
 },
 "hour" : 16,
 "minute" : 40,
 "number" : 1,
 "repeat" : "oneof",
 "task" : "timer",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| command | Object | 指令 | {"key2":0,"type":"event"} | 
| hour | int | 小时0~23 | 16 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| minute | int | 分钟0~60 | 40 | 
| number | int | 任务编号 | 1 | 
| repeat | String | 重复weekdays：按周重复,day：按天重复,oneof:一次任务 | oneof | 
| task | String | 固定值“countdown" | timer | 
| type | String | 固定值"setting" | setting | 
| type | String | 固定值"xxx" | event | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "command" : 
 {
 "key2" : 0,
 "type" : "event"
 },
 "commandName" : "setting-timer-task",
 "hour" : 16,
 "imei" : "866965087693583",
 "minute" : 40,
 "number" : 1,
 "repeat" : "oneof",
 "source" : "command"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| command | Object | 指令 | {"key2":0,"type":"event"} | 
| commandName | String | 指令名称 | setting-timer-task | 
| hour | int | 小时0~23 | 16 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| minute | int | 分钟0~60 | 40 | 
| number | int | 任务编号 | 1 | 
| repeat | String | 重复weekdays：按周重复,day：按天重复,oneof:一次任务 | oneof | 
| source | String | 指令回复“command" | command | 
| type | String | 固定值"xxx" | event | 
---   
 
## 设备维护 
 
### 重置/恢复出厂设置 
*controller-reset* 
 
将设备恢复至出厂状态，清除全部用户数据与配置，并自动重启。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "202201241610366046",
 "system" : "reset",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| system | String | 重置/恢复出厂设置默认填"reset" | reset | 
| type | String | 设备设置固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "success": true,
 "message": "ok",
 "imei": "866965087693583",
 "source": "command",
 "commandName": "controller-reset",
 "messageId": "202201241610366046"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-reset | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 设备软重启 
*controller-restart* 
 
软重启后，通过指令设置的参数将生效，同时设备将重新连接Wifi/4G网络，注意设备IP地址可能发生变化 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "system" : "restart",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| system | String | 重置/恢复出厂设置默认填"restart" | restart | 
| type | String | 设备设置固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "success": true,
 "message": "ok",
 "imei": "866965087693583",
 "source": "command",
 "commandName": "controller-restart",
 "messageId": ""
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-restart | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 累计用电量清零 
*energy-clear* 
 
将设备累计用电量清零，清零后从零开始重新累计统计，仅清除累计用电量，不影响其他数据。清零为不可逆操作，清除后累计数据无法恢复！ 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "202201241610366046",
 "system" : "energy-clear",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| system | String | energy-clear 电量清零 | energy-clear | 
| type | String | 设置设备固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "success": true,
 "message": "ok",
 "imei": "866965087693583",
 "source": "command",
 "commandName": "energy-clear",
 "messageId": "202201241610366046"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | energy-clear | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 获取设备通讯协议 
*info-protocol* 
 
获取当前设备与服务端交互的通信协议及协议配置参数，目前支持MQTT，设备出厂时默认接入GemeOpen厂家MQTT测试服务器，免费提供客户调试使用，如需接入自己的服务器或使用其他协议，请自行搭建服务器。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "202201241610366046",
 "type" : "protocol"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| type | String | 固定值"protocol" | protocol | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "clientId" : "866965087693583",
 "commandName" : "info-protocol",
 "messageId" : "202201241610366046",
 "password" : "SUXOihwWNLMTRFKCFL",
 "port" : "1883",
 "protocol" : "mqtt",
 "publish" : "/GpTDLq/YfERChieZGFP/866965087693583/subscribe",
 "server" : "mqtt.smart-bird.cn",
 "source" : "command",
 "subcribe" : "/GpTDLq/YfERChieZGFP/866965087693583/publish",
 "username" : "YfERChieZGFP"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| clientId | String | 自定义MQTT客户端ID注意：不可重复 | 866965087693583 | 
| commandName | String | 指令名称 | info-protocol | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 202201241610366046 | 
| password | String | 密码 | SUXOihwWNLMTRFKCFL | 
| port | String | 端口号 | 1883 | 
| protocol | String | 协议类型 | mqtt | 
| publish | String | 自定义发布主题 注意:不可重复 | /GpTDLq/YfERChieZGFP/866965087693583/subscribe | 
| server | String | 自定义服务器地址 | mqtt.smart-bird.cn | 
| source | String | 指令回复“command" | command | 
| subcribe | String | 自定义订阅主题，注意：不可重复 | /GpTDLq/YfERChieZGFP/866965087693583/publish | 
| username | String | 自定义服务器用户名 | YfERChieZGFP | 
---  
 
### 设置按键控制锁 
*setting-key-lock* 
 
功能按键锁定后，设备仅能通过MQTT/TCP协议操作，例如控制开关的通断、插座的通断电，都只能通过指令操作 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "keyLock" : 1,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| keyLock | int | 按键锁，0：关闭，1：开启 | 1 | 
| type | String | 设备设置固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "code" : "GSCW1B-4G",
 "commandName" : "setting-keyLock",
 "iccid" : "89861125208093419602",
 "imei" : "866965087693583",
 "key2" : 0,
 "keyLock" : 1,
 "messageId" : "",
 "onState" : 1,
 "resetLock" : 0,
 "signal" : 15,
 "source" : "command",
 "timerEnable" : 1,
 "timerInterval" : 20,
 "version" : "1.1.0"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号 | GSCW1B-4G | 
| commandName | String | 指令名称 | setting-keyLock | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 1 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| onState | int | 设备上电的默认状态： 0：记忆；是指记忆最后一次设备断电前的状态，如断电前设备是通电状态（指示灯是蓝的），设备下次上电默认是通电状态（指示灯是蓝的）。 1：关闭，即断电状态（指示灯是灭的），如断电前，设备是通电状态（指示灯是蓝的），设备下次上电默认是依旧是断电状态（指示灯是灭的）。需要手动/远程开启通电状态。 2：开启，即通电状态（指示灯是蓝色的），是指设备上电之后，默认是通电状态，此刻需要注意，插在设备上的负载会通电运行，会有安全风险，所以建议是默认上电状态为关闭。 | 1 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 15 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围5-86400 | 20 | 
| version | String | 当前固件版本号 | 1.1.0 | 
---  
 
### 自定义MQTT参数 
*setting-mqtt* 
 
设备支持自定义MQTT，注意：在通过MQTT自定义MQTT信息后，需要将设备断电重启或者向设备发送重启命令才可生效。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| clientId | String | 自定义MQTT客户端ID注意：不可重复 | custom | 
| password | String | 密码 | password | 
| 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 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| password | String | 密码 | 123456 | 
| port | String | 端口号 | 1883 | 
| protocol | String | 协议类型 | mqtt | 
| publish | String | 自定义发布主题 注意:不可重复 | /topic/qos0 | 
| server | String | 自定义服务器地址 | 192.168.0.66 | 
| subcribe | String | 自定义订阅主题，注意：不可重复 | /topic/qos1 | 
| username | String | 自定义服务器用户名 | username | 
---  
 
### 设置上电默认状态 
*setting-on-state* 
 
配置设备断电恢复后输出的默认状态，即断电恢复瞬间设备是通电还是断电。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "20260520",
 "onState" : 1,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| onState | int | 设备上电的默认状态： 0：记忆；是指记忆最后一次设备断电前的状态，如断电前设备是通电状态（指示灯是蓝的），设备下次上电默认是通电状态（指示灯是蓝的）。 1：关闭，即断电状态（指示灯是灭的），如断电前，设备是通电状态（指示灯是蓝的），设备下次上电默认是依旧是断电状态（指示灯是灭的）。需要手动/远程开启通电状态。 2：开启，即通电状态（指示灯是蓝色的），是指设备上电之后，默认是通电状态，此刻需要注意，插在设备上的负载会通电运行，会有安全风险，所以建议是默认上电状态为关闭。 | 1 | 
| type | String | 设备设置固定传"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "code" : "GSCW1B-4G",
 "commandName" : "setting-onState",
 "iccid" : "89861125208093419602",
 "imei" : "866965087693583",
 "key2" : 0,
 "keyLock" : 0,
 "messageId" : "20260520",
 "onState" : 1,
 "resetLock" : 0,
 "signal" : 17,
 "source" : "command",
 "timerEnable" : 1,
 "timerInterval" : 20,
 "version" : "1.1.0"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号 | GSCW1B-4G | 
| commandName | String | 指令名称 | setting-onState | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 0 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| onState | int | 设备上电的默认状态： 0：记忆；是指记忆最后一次设备断电前的状态，如断电前设备是通电状态（指示灯是蓝的），设备下次上电默认是通电状态（指示灯是蓝的）。 1：关闭，即断电状态（指示灯是灭的），如断电前，设备是通电状态（指示灯是蓝的），设备下次上电默认是依旧是断电状态（指示灯是灭的）。需要手动/远程开启通电状态。 2：开启，即通电状态（指示灯是蓝色的），是指设备上电之后，默认是通电状态，此刻需要注意，插在设备上的负载会通电运行，会有安全风险，所以建议是默认上电状态为关闭。 | 1 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 17 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围5-86400 | 20 | 
| version | String | 当前固件版本号 | 1.1.0 | 
---  
 
### 设置按键重置锁 
*setting-reset-lock* 
 
开启后设备只能通过mqtt,tcp方式重置. 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "resetLock" : 1,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| resetLock | int | 重置锁，0：关闭，1：开启 | 1 | 
| type | String | 固定值"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "code" : "GSCW1B-4G",
 "commandName" : "setting-resetLock",
 "iccid" : "89861125208093419602",
 "imei" : "866965087693583",
 "key2" : 0,
 "keyLock" : 0,
 "resetLock" : 1,
 "signal" : 15,
 "source" : "command",
 "timerEnable" : 1,
 "timerInterval" : 15,
 "version" : "1.1.2"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号代码 | GSCW1B-4G | 
| commandName | String | 指令名称 | setting-resetLock | 
| iccid | String | SIM-卡ICCID值 | 89861125208093419602 | 
| imei | String | 设备唯一标识 | 866965087693583 | 
| key2 | int | 控制设备二路通断 0：关灯，1：开灯 | 0 | 
| keyLock | int | 按键锁，0：关闭，1：开启 | 0 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 1 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 15 | 
| source | String | 指令回复“command" | command | 
| timerEnable | int | 设备统计信息定时上报状态，0：关闭；1：开启 | 1 | 
| timerInterval | int | 设备统计信息上报时间间隔（单位秒），取值范围5-86400 | 15 | 
| version | String | 当前固件版本号 | 1.1.2 | 
---