# 智能红外控制器-4G版 (型号：GSCU1B-4G) - 开发者指令 
## 产品基本描述 
一款支持学习的红外遥控器，采用MQTT协议控制，上行使用4G网络连接，开发者使用任意开发语言，实现对遥控器的控制，5V USB-C供电，发射有效距离6米。
常用于空调遥控、电视遥控、电扇遥控，接入开发者私有物联网平台，实现远程控制以及智能联动。 
## 产品主要特点 
4G网络，远程控制
支持学习248种红外信号
5V 1A供电 
## 产品图 
<https://smart-bird-oss.smart-bird.cn/images/2024/12/04/1412534120392690.png> 
<https://smart-bird-oss.smart-bird.cn/images/2024/12/04/1414101159439786.png> 
<https://smart-bird-oss.smart-bird.cn/images/2024/12/04/141428700218059.png> 
<https://smart-bird-oss.smart-bird.cn/images/2026/09/18/1503463679293704.png> 
<https://smart-bird-oss.smart-bird.cn/images/2026/09/18/1503407785931691.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/infrared-controller-4G.html> 
### 淘宝购买网址 
<https://item.taobao.com/item.htm?ft=t&id=857847970762&skuId=5835211170399> 
### 京东购买网址 
<https://item.jd.com/10212686370823.html> 
### 开发者文档 
<https://www.smart-bird.cn/doc/product/GSCU/device/GSCU1B-4G/command> 
## 产品电气参数 
--- 
| 参数名 | 参数值 | 
|------|------| 
| 品牌 | GemeOpen | 
| 上市日期 | 2025年 | 
| 产品类型 | 智能红外控制器-4G版 | 
| 产品型号 | GSCU1B-4G | 
| 外观尺寸 | 65mm*65mm*29mm | 
| 输入电压 | 5V | 
| 工作电流 | 1A | 
| 遥控信号 | 38KHz 红外 | 
| 待机功率 | ＜1W | 
| 通信方式 | 4G全网通 | 
| 通讯模块 | 合宙780 | 
| 电源插口 | USB Type-C | 
| 载波频率 | 38KHz 红外 | 
| 遥控距离 | 6米（此为控制器正对设备无遮挡时，直线有效距离，因不同设备而异。注意： 本控制器遥控距离无法达到原装遥控器水平。） | 
| 红外学习 | 支持学习248种红外信号 | 
--- 
 
## 红外控制 
 
### 发送红外码 
*controller-infrared-emit* 
 
发送学习过的红外码指令。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "action" : "emit",
 "data" : 
 {
 "no" : 110
 },
 "messageId" : "20260520",
 "type" : "infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 此处固定为"emit" | emit | 
| data | Object | 数据 | | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| no | int | 红外码编号，编号范围1~248 | 110 | 
| type | String | 红外相关指令默认填"infrared" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "success": true,
 "imei": "866597072523945",
 "source": "command",
 "commandName": "controller-infrared-emit",
 "messageId": "20260520"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-infrared-emit | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 擦除红外指令 
*controller-infrared-erase* 
 
将全部学习过的擦除。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "action" : "erase",
 "messageId" : "20260520",
 "type" : "infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 此处固定为"erase" | erase | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| type | String | 红外相关指令默认填"infrared" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "success": true,
 "imei": "866597072523945",
 "source": "command",
 "commandName": "controller-infrared-erase",
 "messageId": "20260520"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-infrared-erase | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 学习红外码 
*controller-infrared-learn* 
 
通过该指令可以学习遥控器发射出来的红外信号<br/> 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "action" : "learn",
 "data" : 
 {
 "no" : 110
 },
 "messageId" : "20260520",
 "type" : "infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 学习红外码指令默认填"learn" | learn | 
| data | Object | 数据 | | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| no | int | 红外码编号，编号范围1~248 | 110 | 
| type | String | 红外相关指令默认填"infrared" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "type": "infrared",
 "action": "learn",
 "commandName": "controller-infrared-learn",
 "source": "command",
 "imei": "864269069911747",
 "success": true,
 "messageId": "202201241610366046",
 "no": 100
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 学习红外码指令默认填"learn" | learn | 
| commandName | String | 指令名称 | controller-infrared-learn | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| no | int | 红外码编号，编号范围1~248 | 110 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
| type | String | 固定值"xxx" | infrared | 
---  
 
### 取消学习 
*controller-infrared-learnCancel* 
 
对处于学习状态的设备，取消学习状态 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"action":"learnCancel",
"messageId":"20260520",
"type":"infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 学习红外码指令默认填"learn" | learnCancel | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| type | String | 固定值"xxx" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"commandName":"controller-infrared-learn-cancel",
"imei":"866597072523945",
"message":"ok",
"messageId":"20260520",
"source":"command",
"success":true
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-infrared-learn-cancel | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 读取红外码 
*controller-infrared-read* 
 
1.0.5 固件版本支持该接口 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"action" : "ir_read",
"data" : 
{
"no" : 100
},
"messageId" : "API-xxx",
"type" : "infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 学习红外码指令默认填"learn" | ir_read | 
| data | Object | 数据 | {"no":100} | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | API-xxx | 
| no | int | 红外码编号，编号范围1~248 | 100 | 
| type | String | 固定值"xxx" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"commandName":"controller-infrared-read",
"ir_data":"00495D2D0606060506060606060506060606060605110611051106110511061006110610060606060606060506060606061006060610061106100611061006110606061006FFFFFFFF",
"imei":"866597072523945",
"message":"ok",
"messageId":"API-xxx",
"no":100,
"source":"command",
"success":true
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-infrared-read | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | API-xxx | 
| no | int | 红外码编号，编号范围1~248 | 100 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 写入红外码 
*controller-infrared-write* 
 
1.0.5 固件版本支持该接口 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"action" : "ir_write",
"messageId" : "API-xxx",
"no" : 110,
"type" : "infrared"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| action | String | 默认填"ir_write" | ir_write | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | API-xxx | 
| no | int | 红外码编号，编号范围1~248 | 110 | 
| type | String | 固定值"infrared" | infrared | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"commandName" : "controller-infrared-write",
"imei" : "866597072523945",
"message" : "ok",
"messageId" : "API-xxx",
"no" : 110,
"source" : "command",
"success" : true
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-infrared-write | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | API-xxx | 
| no | int | 红外码编号，编号范围1~248 | 110 | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---   
 
## 设备维护 
 
### 重置/恢复出厂设置 
*controller-reset* 
 
恢复出厂设置后配网信息和自定义信息都会清空，请谨慎操作！ 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "20260520",
 "system" : "reset",
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| system | String | 重置/恢复出厂设置默认填"reset" | reset | 
| type | String | 固定值"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "message": "ok",
 "success": true,
 "imei": "866597072523945",
 "source": "command",
 "commandName": "controller-reset",
 "messageId": "20260520"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-reset | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| 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 
{
 "message": "ok",
 "success": true,
 "imei": "866597072523945",
 "source": "command",
 "commandName": "controller-restart",
 "messageId": ""
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| commandName | String | 指令名称 | controller-restart | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| message | String | 执行结果描述：对命令执行结果的文本说明。执行完成且无异常：ok ；如果出现异常，返回异常结果描述。 | ok | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | | 
| source | String | 指令回复“command" | command | 
| success | boolean | 执行结果，执行成功：true；执行失败：false | true | 
---  
 
### 获取设备基础信息 
*info-all* 
 
查询当前设备的基础信息，如设备MAC地址/imei、设备型号、固件版本号、信号强度及相关配置信息。 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"messageId" : "$messageId",
"type" : "info"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | $messageId | 
| type | String | 固定值"xxx" | info | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"code" : "Infrared-Controller-4G",
"commandName" : "info-all",
"iccid" : "898608361924D2182843",
"imei" : "866597072523945",
"messageId" : "$messageId",
"resetLock" : 0,
"signal" : 15,
"source" : "command",
"type" : "info",
"version" : "1.0.6"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号代码 | Infrared-Controller-4G | 
| commandName | String | 指令名称 | info-all | 
| iccid | String | SIM-卡ICCID值 | 898608361924D2182843 | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | $messageId | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，取值范围 0-31，数值越大信号越强 | 15 | 
| source | String | 指令回复“command" | command | 
| type | String | 固定值"xxx" | info | 
| version | String | 当前固件版本号 | 1.0.6 | 
---  
 
### 自定义MQTT 
*setting-mqtt* 
 
设置设备自定义mqtt 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
"clientId":"admin",
"password":"password",
"port":"1883",
"publish":"/topic/qos0",
"server":"192.168.0.66",
"subcribe":"/topic/qos1",
"type":"custom",
"username":"username"
}
 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| clientId | String | 自定义MQTT客户端ID注意：不可重复 | admin | 
| password | String | 密码 | password | 
| port | String | 端口号 | 1883 | 
| publish | String | 自定义发布主题 注意:不可重复 | /topic/qos0 | 
| server | String | 自定义服务器地址 | 192.168.0.66 | 
| subcribe | String | 自定义订阅主题，注意：不可重复 | /topic/qos1 | 
| type | String | 自定义MQTT配置默认填"custom" | custom | 
| username | String | 自定义服务器用户名 | username | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
"commandName":"setting-mqtt",
"source":"command",
"clientId":"custom",
"password":"password",
"port":"1883",
"protocol":"mqtt",
"publish":"/topic/qos0",
"server":"192.168.0.66",
"subcribe":"/topic/qos1",
"username":"username"
}
 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| clientId | String | 自定义MQTT客户端ID注意：不可重复 | admin | 
| commandName | String | 指令名称 | setting-mqtt | 
| password | String | 密码 | 123456 | 
| port | String | 端口号 | 1883 | 
| protocol | String | 协议类型 | mqtt | 
| publish | String | 自定义发布主题 注意:不可重复 | /topic/qos0 | 
| server | String | 自定义服务器地址 | 192.168.0.66 | 
| source | String | 指令回复“command" | command | 
| subcribe | String | 自定义订阅主题，注意：不可重复 | /topic/qos1 | 
| username | String | 自定义服务器用户名 | username | 
---  
 
### 设置重置锁 
*setting-reset-lock* 
 
设置设备重置锁 
 
**向设备发送指令（服务端向设备订阅topic发送消息）** 
```json 
{
 "messageId" : "20260520",
 "resetLock" : 0,
 "type" : "setting"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| type | String | 固定值"setting" | setting | 
--- 
**设备返回信息（设备向服务端订阅topic上报消息）** 
```json 
{
 "code" : "Infrared-Controller-4G",
 "commandName" : "setting-reset-lock",
 "iccid" : "898608361924D2182843",
 "imei" : "866597072523945",
 "messageId" : "20260520",
 "resetLock" : 0,
 "signal" : 14,
 "source" : "command",
 "version" : "1.0.6"
} 
``` 
#### 字段属性 
--- 
| 字段名称 | 字段类型 | 字段说明 | 示例值 | 
|------|------|------|------| 
| code | String | 设备型号代码 | Infrared-Controller-4G | 
| commandName | String | 指令名称 | setting-reset-lock | 
| iccid | String | SIM-卡ICCID值 | 898608361924D2182843 | 
| imei | String | 设备唯一标识 | 866597072523945 | 
| messageId | String | 业务流水号。由请求方生成的唯一标识，响应方原样回显，用于请求与响应的关联匹配。 | 20260520 | 
| resetLock | int | 重置锁，0：关闭，1：开启 | 0 | 
| signal | int | 信号强度，显示规则为：signal int 信号强度，取值范围(0~31),值越大越好 | 14 | 
| source | String | 指令回复“command" | command | 
| version | String | 当前固件版本号 | 1.0.6 | 
---