红外设备管理接口

目前支持红外功能的设备有:空调伴侣升级版、空调伴侣P3、M2网关。

获取红外设备类型列表

  • 接口intent:query.ir.categories
  • 接口描述:本接口用于查询当前已支持的红外设备类型,如电视、空调等。
  • 请求参数:无
  • 请求示例
{
    "intent": "query.ir.categories",
    "data": {}
}
  • 返回参数
名称 类型 描述
categoryId Integer 红外设备类型id
enName String 设备类型英文名
iconId String 图标id
name String 设备类型中文名
model String 物模型
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": [
        {
            "iconId": "device_ir_stb",
            "enName": "STB",
            "name": "Set-top Box",
            "model": "virtual.ir.stb",
            "categoryId": 1
        },
        {
            "iconId": "device_ir_tv",
            "enName": "TV",
            "name": "TV",
            "model": "virtual.ir.tv",
            "categoryId": 2
        },
        {
            "iconId": "device_ir_box",
            "enName": "BOX",
            "name": "TV box",
            "model": "virtual.ir.box",
            "categoryId": 3
        }
    ]
}

通过设备类型获取品牌列表

  • 接口intent:query.ir.brands
  • 接口描述:本接口可根据红外设备类型查询支持的品牌列表。
  • 请求参数:
名称 类型 是否必须 描述
categoryId Integer 是 红外设备类型id,“query.ir.categories”接口返回
  • 请求示例
{
    "intent": "query.ir.brands",
    "data": {
        "categoryId": 1
    }
}
  • 返回参数
名称 类型 描述
iconId int 品牌id
enName String 设备类型英文名
pinyin String 拼音
name String 设备类型中文名
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": [
        {
            "pinyin": "aihua",
            "iconId": 307,
            "enName": "Aiwa",
            "name": "Aiwa"
        },
        {
            "pinyin": "aoguangkeji",
            "brandId": 151,
            "enName": "Aoguang",
            "name": "Aoguang"
        },
        {
            "pinyin": "bubugao",
            "brandId": 452,
            "enName": "BBK",
            "name": "BBK"
        }
    ]
}

查询匹配树信息

  • 接口intent:query.ir.match
  • 接口描述:本接口可根据红外设备类型和品牌查询红外的匹配树信息,包含按键功能,如开关、风速等。
  • 请求参数:
名称 类型 是否必须 描述
type Integer 是 1 类别品牌查询
categoryId Integer 是 红外设备类型id,“query.ir.categories”接口返回
brandId String 是 品牌id,“query.ir.brands”接口返回
  • 请求示例
{
    "intent": "query.ir.match",
    "data": {
        "type": 1,
        "categoryId": 8,
        "brandId": 1077
    }
}
  • 返回参数
名称 类型 描述
category Object 此匹配树适用的类别
brand Object 此匹配树适用的品牌
keys Array(Object) 匹配树中可能用到的按键
nodes Array(Object) 匹配树中可能用到的方案
version String 版本

category 说明:

名称 类型 描述
id Integer 类别id
name String 类别名称

brand 说明:

名称 类型 描述
id Integer 品牌id
name String 品牌名称
enName String 品牌英文名称

keys 说明:

名称 类型 描述
id Integer 品牌id
name String 品牌名称
enName String 品牌英文名称
mustMatch Boolean 是否必须匹配
acKey String 空调状态

nodes 说明:

名称 类型 描述
cursor Integer 当前方案游标
mismatched Integer 若不匹配,下一个待匹配的 node id,若为 null,则表示匹配失败
total Integer 方案总数
controller_id Integer 遥控器 id
count Integer 剩余方案个数
matched Integer 若匹配上,下一个待匹配的 node id。若此字段为 null,表示匹配成功,目标遥控器 id 即为 controller_id
id Integer 方案id
key Object 方案的按键信息,详情可看 keys 说明
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "nodes": [
            {
                "cursor": 1,
                "mismatched": 3,
                "total": 3,
                "controllerId": 4676,
                "count": 2,
                "matched": 2,
                "id": 1,
                "key": {
                    "name": "POWER",
                    "enName": "POWER",
                    "id": 1
                }
            },
            {
                "cursor": 1,
                "mismatched": 3,
                "total": 3,
                "controllerId": 4676,
                "count": 2,
                "id": 2,
                "key": {
                    "name": "TIMER",
                    "enName": "TIMER",
                    "id": 23
                }
            }
        ],
        "keys": [
            {
                "name": "电源",
                "enName": "POWER",
                "mustMatch": true,
                "id": 1
            },
            {
                "name": "风速",
                "enName": "FAN_SPEED",
                "mustMatch": false,
                "id": 9367
            },
            {
                "name": "摆风",
                "enName": "SWING",
                "mustMatch": false,
                "id": 9362
            }
        ],
        "category": {
            "name": "FAN",
            "id": 8
        },
        "brand": {
            "name": "天敏",
            "enName": "10moons",
            "id": 1077
        },
        "version": "20200820"
    }
}

增加遥控器

  • 接口intent:config.ir.create
  • 接口描述:本接口用于创建红外遥控器。
  • 请求参数:
名称 类型 是否必须 描述
parentDId String 是 网关id
positionId String 否 设备位置ID
categoryId Integer 是 红外设备类型id,“query.ir.categories”接口返回
brandId Integer 是 品牌id,“query.ir.brands”接口返回
controllerId Integer 是 遥控器ID
name String 是 遥控器名称
  • 请求示例
{
    "intent": "config.ir.create",
    "data": {
        "brandId": 1077,
        "categoryId": 8,
        "name": "name",
        "parentDid": "virtual2.32056709824364",
        "controllerId": 4676
    }
}
  • 返回参数
名称 类型 描述
did String 遥控器的设备ID
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "did": "ir.837355405973868544"
    }
}

删除遥控器

  • 接口intent:config.ir.delete
  • 接口描述:本接口用于删除红外遥控器。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 遥控器的设备ID
  • 请求示例
{
    "intent": "config.ir.delete",
    "data": {
        "did": "ir.837355405973868544"
    }
}
  • 返回参数:无
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": ""
}

更新遥控器

  • 接口intent:config.ir.update
  • 接口描述:本接口用于修改红外遥控器的名称。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 要更新的遥控器的设备ID
name String 是 要更新的遥控器的设备名称
  • 请求示例
{
    "intent": "config.ir.update",
    "data": {
        "did": "ir.837371837843460096",
        "name": "new name"
    }
}
  • 返回参数:无
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": ""
}

查询遥控器信息

  • 接口intent:query.ir.info
  • 接口描述:本接口用于查询红外遥控器的详细信息,包含品牌、类型、创建时间等。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 遥控器的设备ID
  • 请求参数:
{
    "intent": "query.ir.info",
    "data": {
        "did": "ir.837371837843460096"
    }
}
  • 返回参数
名称 类型 描述
did String 遥控器的设备ID
controllerId int 遥控器id
categoryId int 遥控器类型
brandId int 遥控器品牌id
brandName String 品牌名称
type int 空调才有(0和1表示无状态空调,2表示有状态空调)
createTime long 遥控器创建时间,时间戳
updateTime long 遥控器更新时间,时间戳
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "brandName": "10moons",
        "lineupId": "",
        "controllerId": 4676,
        "createTime": 1619686475286,
        "brandId": 1077,
        "updateTime": 1619686475286,
        "type": 1,
        "did": "ir.837371837843460096",
        "categoryId": 8
    }
}

查询网关下遥控器列表

  • 接口intent:query.ir.list
  • 接口描述:本接口用于查询指定网关设备下的红外遥控器列表。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 网关ID
  • 请求参数:
{
    "intent": "query.ir.list",
    "data": {
        "parentDid": "virtual2.32056709824364"
    }
}
  • 返回参数
名称 类型 描述
did String 设备id
state Integer 设备状态(1在线,0离线)
positionId String 位置id
parentDid String 父设备id
deviceName String 设备名称
model String 设备model
type int 0和1表示无状态空调,2表示有状态空调
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": [
        {
            "parentDid": "virtual2.32056709824364",
            "positionId": "real1.829743976676106240",
            "model": "virtual.ir.fan",
            "state": 1,
            "type": 1,
            "deviceName": "new name",
            "did": "ir.837371837843460096"
        }
    ]
}

单击遥控器按键

  • 接口intent:write.ir.click
  • 接口描述:本接口用于控制遥控器按键。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 设备ID(当还没有遥控器的设备id时传入网关did,有则传遥控器的设备id)
brandId Integer 否 品牌id(空调匹配时必填)
controllerId String 否 遥控器id(当没有遥控器的设备id时该字段必传)
keyId String 否 红外Key(非空调和无状态空调使用该字段)
isAcMatch String 否 空调伴侣必填,0-已匹配;1-匹配中
acKey String 否 空调类key(有状态空调时必填,无状态空调使用keyId字段),有状态空调传入规则:开空调:P0 ; 关空调:P1。空调状态:Mm_Ty_Ss 。m表示模式(0:制冷,1:制热,2:自动,3:送风,4:除湿);y表示温度(温度范围一般为16~30);*s表示风速(0:自动,1:小风量,2:中风量,3:大风量)
  • 请求示例
{
    "intent": "write.ir.click",
    "data": {
        "did": "ir.837371837843460096",
        "brandId": 1077,
        "controllerId": 4676,
        "keyId": "1"
    }
}
  • 返回参数:无
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {}
}

查询有状态空调状态(仅用于空调伴侣P3和M2网关)

  • 接口intent:query.ir.acState
  • 接口描述:本接口用于查询有状态空调的详细信息,如温度、模式、风速等。
  • 请求参数:
名称 类型 是否必须 描述
did String 是 设备ID
  • 请求示例
{
    "intent": "query.ir.acState",
    "data": {
        "did": "ir.837392177046114304"
    }
}
  • 返回参数:
名称 类型 描述
acState String 空调状态 Px_Mm_Ty_Ss_Dd x 表示开关 (AC_POWER_ON = 0, AC_POWER_OFF = 1) m 表示模式(0:制冷,1:制热,2:自动,3:送风,4:除湿) y 表示温度(温度范围一般为16~30) s 表示风速( 0:自动,1:小风量,2:中风量,3:大风量) * d 表示风向(0 表示扫风,其他值表示固定风向)(例如:P0_M0_T26_S0_D0)
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "acState": "P1_M0_T26_S0"
    }
}

查询遥控器功能

  • 接口intent:query.ir.functions
  • 接口描述:本接口用于查询遥控器支持的功能列表。
  • 请求参数:
名称 类型 是否必须 描述
did String 否 设备ID
controllerId Integer 否 遥控器ID

注:did 与 controllerId参数至少必填一个

  • 请求示例:
{
    "intent": "query.ir.functions",
    "data": {
        "did": "ir.837392177046114304"
    }
}
  • 返回参数:
名称 类型 描述
modes Array(Objects) 模式数组,详情见 modes 说明
type Int 1:无状态空调;2:有状态空调

models 说明:

名称 类型 描述
mode Int 空调模式(0制冷,1制热,2自动,3送风,4除湿)
temps Array(int) 温度范围一般为16~30
speeds Array(int) 0:自动,1:小风量,2:中风量,3:大风量
directs Array(int) 固定风向方向,控制时循环切换(当支持固定风向时才会有值)
type (models内参数) Int 0 无风向功能 1 仅支持固定风向 2支持固定风向和扫风
light Array(int) 灯光控制:0关灯光,1开灯光
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "modes": [
            {
                "mode": 2,
                "speeds": [],
                "directs": [
                    1
                ],
                "type": 2,
                "temps": [
                    17,
                    18,
                    19
                ]
            },
            {
                "mode": 3,
                "speeds": [
                    0,
                    1,
                    2,
                    3
                ],
                "directs": [
                    1
                ],
                "type": 2,
                "temps": []
            }
        ],
        "type": 2
    }
}

查询遥控器按键(仅查询无状态遥控器)

  • 接口intent:query.ir.keys
  • 接口描述:本接口用于查询无状态遥控器的按键信息,如温度、模式、风速等。
  • 请求参数:
名称 类型 是否必须 描述
did String 否 设备id
  • 请求示例
{
    "intent": "query.ir.keys",
    "data": {
        "did": "ir.837371837843460096"
    }
}
  • 返回参数:
名称 类型 描述
keys string 遥控器键数组。详情见keys说明
type Integer 遥控器类型

keys 说明

名称 类型 描述
keyName string 遥控器键值名称
controllerId Integer 遥控器id
irKeyId string 定位唯一红外码的id
keyId string 遥控器按键id
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "keys": [
            {
                "controllerId": 4676,
                "irKeyId": "ir.837371837843460096,1",
                "keyName": "POWER",
                "keyId": "1"
            },
            {
                "controllerId": 4676,
                "irKeyId": "ir.837371837843460096,23",
                "keyName": "TIMER",
                "keyId": "23"
            },
            {
                "controllerId": 4676,
                "irKeyId": "ir.837371837843460096,9362",
                "keyName": "SWING",
                "keyId": "9362"
            },
            {
                "controllerId": 4676,
                "irKeyId": "ir.837371837843460096,9367",
                "keyName": "FAN_SPEED",
                "keyId": "9367"
            },
            {
                "controllerId": 4676,
                "irKeyId": "ir.837371837843460096,9372",
                "keyName": "SWING_MODE",
                "keyId": "9372"
            }
        ],
        "type": 1
    }
}

开启红外学习

  • 接口intent:write.ir.startLearn
  • 接口描述:本接口用于开启网关设备的红外学习功能。
  • 请求参数
名称 类型 是否必须 描述
did String 是 网关设备ID
timeLength Int 否 保持学习状态的时间,默认30秒,最大30秒
  • 请求示例
{
    "intent": "write.ir.startLearn",
    "data": {
        "did": "ir.837371837843460096",
        "timeLength": 20
    }
}
  • 返回参数
名称 类型 描述
keyId string 学习的红外按键id
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "keyId": "key01837419477205471232"
    }
}

取消红外学习

  • 接口intent:write.ir.cancelLearn
  • 接口描述:本接口用于关闭网关设备的红外学习功能。
  • 请求参数
名称 类型 是否必须 描述
did String 是 网关设备ID
keyId String 否 学习的红外id
  • 请求示例
{
    "intent": "write.ir.cancelLearn",
    "data": {
        "did": "ir.837371837843460096",
        "keyId": "key01837419477205471232"
    }
}
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": ""
}

查询红外学习结果

  • 接口intent:query.ir.learnResult
  • 接口描述:本接口用于查询网关设备的红外学习结果。
  • 请求参数
名称 类型 是否必须 描述
did String 是 网关设备ID
keyId String 否 学习的红外id
  • 请求示例
{
    "intent": "query.ir.learnResult",
    "data": {
        "did": "ir.837371837843460096",
        "keyId": "key01837419477205471232"
    }
}
  • 返回参数
名称 类型 描述
did string 网关设备ID
keyId String 学习的红外id
ircode String 红外码
freq String 频率
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {}
}

添加自定义遥控器

  • 接口intent:config.ir.custom
  • 接口描述:当红外设备类型不满足需求时,可通过本接口添加自定义遥控器。
  • 请求参数
名称 类型 是否必须 描述
parentDId String 是 网关id
name String 是 遥控器名字
positionId String 否 设备位置ID,为空取默认位置
irCodeInfos List 是 红外码按键key信息

irCodeInfos信息(详细结构示例)

名称 类型 是否必须 描述
keyName String 是 按键名称
keyId String 是 按键key
ircode String 是 红外码值(云端推送给第三方,第三方传过来)
freq String 否 频率(云端推送给第三方,第三方传过来)
  • 请求示例
{
    "intent": "config.ir.custom",
    "data": {
        "parentDid": "virtual2.32056709824364",
        "name": "客厅电视遥控器",
        "irCodeInfos": [
            {
                "keyId": "1",
                "keyName": "电源开关",
                "ircode": "1"
            }
        ]
    }
}
  • 返回参数
名称 类型 描述
did string 遥控器设备ID
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": {
        "did": "ir.837426350893780992"
    }
}
lumi LogoCopyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2026-08-26 16:55:47

results matching ""

    No results matching ""