红外设备管理接口

目前支持红外功能的设备有:空调伴侣升级版、空调伴侣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
    }
}
  • 返回参数
名称 类型 描述
brandId int 品牌id
enName String 设备类型英文名
pinyin String 拼音
name String 设备类型中文名
  • 返回示例
{
    "code": 0,
    "message": "Success",
    "msgDetails": "",
    "requestId": "",
    "result": [
        {
            "pinyin": "aihua",
            "brandId": 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 是否必须匹配

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"
    }
}
Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-09-27 21:51:47

results matching ""

    No results matching ""