设备信息与控制 device

本文介绍自定义设备面板SDK中设备信息与控制的API调用。

背景信息

SDK的安装与API调用方法,请参考快速开始

获取设备物模型

getDeviceTSL

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

tsl

object

events

array

事件

properties

array

属性

services

array

服务

......

......

......

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getDeviceTSL({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
    "schema": "http://aliyun/iot/thing/desc/schema",
    "profile": {
        "productKey": "xxxxxxx",
        "deviceName": "xxxxxxxxxxxxxxxx"
    },
    "link": "/sys/a1xxxxpck/YzqEnxxxx2pjjo/thing/",
    "services": [
        {
            "outputData": [],
            "identifier": "ToggleLightSwitch",
            "inputData": [],
            "method": "thing.service.ToggleLightSwitch",
            "name": "翻转主灯开关",
            "required": false,
            "callType": "async"
        }
    ],
    "properties": [
        {
            "identifier": "LightSwitch",
            "dataType": {
                "specs": {
                    "0": "关闭",
                    "1": "开启"
                },
                "type": "bool"
            },
            "name": "主灯开关",
            "accessMode": "rw",
            "required": true
        }
    ],
    "events": [
        {
            "outputData": [
                {
                    "identifier": "ErrorCode",
                    "dataType": {
                        "specs": {
                            "0": "正常"
                        },
                        "type": "enum"
                    },
                    "name": "故障代码"
                }
            ],
            "identifier": "Error",
            "method": "thing.event.Error.post",
            "name": "故障上报",
            "type": "info",
            "required": true
        }
    ]
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取产品信息

getProductInfo

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

info

object

categoryKey

string

品类标识

categoryName

string

品类名称

categoryId

int

品类id

gmtCreate

int

设备记录创建时间,对于生活物联网平台而言,是量产时生成设备证书的时间。

gmtModified

int

设备记录数据修改时间(此为系统内部使用字段,可不关注)。

image

string

品类图片

netType

string

设备入网类型

nodeType

string

设备的类型,根据在生活物联网平台创建设备的方式决定,一般正式量产的设备为DEVICE类型, 可取值: VIRTUAL(表示虚拟设备);VIRTUAL_SHADOW(表示虚拟影子设备);DEVICE(表示真实设备)。

name

string

设备名称

......

......

......

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getProductInfo({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取设备信息

getDeviceInfo

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

info

object

identityId

string

用户的身份ID。

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

deviceName

string

设备的名称,设备证书信息之一。在注册设备时,自定义的或系统生成的设备名称,具备产品维度内的唯一性。

productName

string

设备的产品名称。

productImage

string

设备的产品图片。

productModel

string

设备的产品型号。

nickName

string

用户对设备的昵称。

netType

string

设备入网类型。

thingType

string

设备的类型,根据在生活物联网平台创建设备的方式决定,一般正式量产的设备为DEVICE类型, 可取值: VIRTUAL(表示虚拟设备);VIRTUAL_SHADOW(表示虚拟影子设备);DEVICE(表示普通设备)。

nodeType

String

设备的节点类型:DEVICE;GATEWAY。

status

Int

设备状态。0(表示未激活);1(表示在线);3(表示离线);8(表示禁用)。

owned

Int

0(表示分享者);1(表示拥有者)。

identityAlias

String

用户的显示名:mobile,loginName或email。

gmtModified

Long

修改绑定的时间。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getDeviceInfo({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取设备组详情

getDeviceGroupInfo

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

homeId

string

家的ID,生活物联网平台赋予家的唯一标识符。

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

出参

info

object

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

name

string

设备组的名称。

createMillis

Long

设备组的创建时间。格式为UNIX时间戳。单位:毫秒。

productKey

String

设备组所属产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

productImage

String

设备组所属产品的图标地址。如https://***/***.png。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getDeviceGroupInfo({
  homeId:'xxx',
  controlGroupId:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

订阅设备(组)事件

subscribeAll

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

result

array

code

string

返回结果,数组第0位是当前设备,或设备组的主设备订阅结果,第1位是设备组的订阅结果。

message

string

返回信息。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.subscribeAll({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

[
  //  (主)设备订阅结果
  {
    code: '200',
    message: 'success
  },
   //  设备组订阅结果
  {
    code: '200',
    message: 'success
  }
]

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

取消订阅设备(组)事件

unsubscribeAll

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

result

array

code

string

返回结果,数组第0位是当前设备,或设备组的主设备订阅结果,第1位是设备组的订阅结果。

message

string

返回信息

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.unsubscribeAll({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

[
  //  取消(主)设备订阅结果
  {
    code: '200',
    message: 'success
  },
   //  取消设备组订阅结果
  {
    code: '200',
    message: 'success
  }
]

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取设备属性

getProps

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

props

object

[identifier]

number | string | boolean

设备属性,比如:开关。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getProps({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  powerstate: 0,
  mode: 33,
  brightness: 5
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

监听设备属性变化事件

onPropsChange

请求参数

参数

参数类型

描述

是否必填

callback

Function

设备属性变化事件回调函数。

出参

参数

参数类型

子参数

子参数类型

描述

props

object

[identifier]

number | string | boolean

设备属性,比如:开关。

调用示例

import { device } from 'aliyun-livinglink-sdk';

device.onPropsChange((props)=>{
  console.log(props)
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取设备云端在离线状态

getStatus

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

描述

status

int

设备状态。0(表示未激活);1(表示在线);3(表示离线);8(表示禁用)。

调用示例

device.getStatus({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

3

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

监听设备云端在离线状态事件

onStatusChange

请求参数

参数

参数类型

描述

是否必填

callback

Function

设备在离线事件回调函数

出参

参数

参数类型

描述

status

int

设备状态。0(表示未激活);1(表示在线);3(表示离线);8(表示禁用)。

调用示例

import { device } from 'aliyun-livinglink-sdk';

device.onStatusChange((status)=>{
  console.log(props)
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

获取设备事件

getEvents

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

出参

参数

参数类型

描述

events

array

设备事件

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getEvents({
  iotId:'xxx',
  productKey:'xxx'
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

[
  {
    "identifier": "Error",
    "time": 1517420842314,
    "type": "info",
    "value": {
      "Shrink5": 12,
      "Shrink20": {
        "testKey2": "val2",
        "testKey": "val"
      }
    }
  }
]

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

设置设备属性

setProps

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

skillId

int

技能ID

天猫精灵App必填

props

object

[identifier]

number | string | boolean

设备属性值,比如:powerstate:0。

extends

object

-

-

扩展字段,非必填

出参

参数

参数类型

子参数

子参数类型

描述

result

object

code

string

返回值

message

string

返回信息

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.setProps({
  iotId:'xxx',
  productKey:'xxx'
},{
  powerstate:0,
  mode:2
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  code:'200',
  message:'success'
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

设置设备服务

callService

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

skillId

int

技能ID

天猫精灵App必填

serviceName

string

-

-

服务名称

params

object

[key]

number | string | boolean

服务参数

extends

object

[key]

number | string | boolean

扩展参数

出参

参数

参数类型

子参数

子参数类型

描述

result

object

code

string

返回值

message

string

返回信息

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.callService({
  iotId:'xxx',
  productKey:'xxx'
}, 'CommonService',{
  method: 0,
  flag: 0,
}).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  code:'200',
  message:'success'
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

开启本地连接

startLocalConnect

说明

WiFi设备调用后App会通过局域网和设备连接,BLE和Mesh设备开启后,App会通过蓝牙和设备连接。

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

result

object

result

string

返回值

调用示例

device.startLocalConnect({
  iotId:'xxx',
  productKey:'xxx'
},).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  result:'success',
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

断开本地连接

stopLocalConnect

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

result

object

result

string

返回值

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.stopLocalConnect({
  iotId:'xxx',
  productKey:'xxx'
},).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  result:'success',
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✔︎

查询本地连接状态

getLocalConnectionState

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

出参

参数

参数类型

子参数

子参数类型

描述

connectionState

object

localConnectionState

int

连接状态,1:已连接;2:未连接;3:连接中。

type

int

连接类型,0:未知;1:WiFi局域网;2:蓝牙。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getLocalConnectionState({
  iotId:'xxx',
  productKey:'xxx'
},).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  localConnectionState: 1,
  type: 2
}

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

查询设备组本地连接状态

getGroupLocalConnectionState

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

controlGroupId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

出参

参数

参数类型

子参数

子参数类型

描述

groupConnectionState

object

groupLocalStatus

int

组设备连接状态,0:全部在线;1:部分在线;2:全部离线。

devicesLocalStatus

array

组设备在线状态详情。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getGroupLocalConnectionState({
  iotId:'xxx',
  productKey:'xxx'
},).then((res)=>{
  // success
}).catch((err)=>{
  // fail
})

返回示例

{
  groupLocalStatus: 1,
  devicesLocalStatus: [
    {
      "iotId":"xxx1"
      "productKey":"X5eCzh6fEH7",
      "deviceName":"5gJtxDVeGAkaEztpisjX",
      "time":1510292697471,
      "status":3
    },
    {
      "iotId":"xxx2"
      "productKey":"X5eCzh6fEH7",
      "deviceName":"5gJtxDVeGAkaEztpisjX",
      "time":1510292697471,
      "status":1
    },
  ]
}
// 说明:status表示设备生命周期,目前有以下几个状态,1:本地在线;3:本地离线;time表示当前状态的开始时间

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

监听设备本地连接状态事件

onLocalConnectChange

请求参数

参数

参数类型

描述

是否必填

callback

Function

设备本地连接事件回调函数。

出参

参数

参数类型

子参数

子参数类型

描述

connectionState

object

localConnectionState

int

连接状态,1:已连接;2:未连接;3:连接中。

type

int

连接类型,0:未知;1:WiFi局域网;2:蓝牙。

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.onLocalConnectChange((msg)=>{
  console.log(msg)
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

监听设备解绑事件

deviceUnbindEvent

请求参数

参数

参数类型

描述

是否必填

callback

Function

设备解绑事件回调函数

出参

参数

参数类型

子参数

子参数类型

描述

res

-

-

-

-

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.deviceUnbindEvent((msg)=>{
 console.log(msg)
})

API支持度

云智能

自有品牌

天猫精灵

✔︎

✔︎

✖︎

获取语料

getFunctionCorpus

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

isInfrared

boolean

-

-

是否是红外设备

出参

参数

参数类型

描述

functionCorpus

array

语料列表

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getFunctionCorpus({
 iotId:'xxx',
 productKey:'xxx'
},).then((res)=>{
 // success
}).catch((err)=>{
 // fail
})

返回示例

[
 { functionName: "开关", corpusList: ["打开灯", "关上灯"] },
 { functionName: "开关", corpusList: ["打开灯", "关上灯"] }
]

API支持度

云智能

自有品牌

天猫精灵

✖︎

✖︎

✔︎

查询父子设备信息

getSubDevice

请求参数

参数

参数类型

子参数

子参数类型

描述

是否必填

deviceIdentify

object

iotId

string

设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。

productKey

string

产品的Key,设备证书信息之一。创建产品时,生活物联网平台为该产品颁发的全局唯一标识。

skillId

int

技能ID

天猫精灵App必填

出参

参数

参数类型

子参数

子参数类型

描述

subDeviceInfo

object

childrenDevices

array

子设备列表

hasSubDevice

boolean

-

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.getSubDevice({
 iotId:'xxx',
 productKey:'xxx',
 skillId: 3404
}).then((res)=>{
 // success
}).catch((err)=>{
 // fail
})

返回示例

{
 hasSubDevice: true,
 childrenDevices:[
 {
 alias: "开关"
 childrenDevices: null
 devId: "a80171c72e190156567f2a5d3c04931ae1"
 devType: "开关"
 devTypeEn: "switch"
 elementCode: "e1"
 gmtCreate: "2023-06-20T06:16:34.000Z"
 icon: "https://ai-genie-center.oss-cn-hangzhou.aliyuncs.com/app-data/iot-center/1f9e27pdq_切片.png"
 linkType: 1
 parentDeviceId: "a80171c72e190156567f2a5d3c04931a"
 productKey: "18427591",
 skillId: 3404
 status: "{\"sceneNumber\":\"10312\",\"sceneOn\":\"10331\",\"sceneOff\":\"10332\",\"onlinestate\":\"offline\",\"sdkVersion\":\"14\",\"vendorModelVersion\":\"10\",\"powerstate\":\"0\",\"versionNumber\":\"66306\",\"subscribeGroupAddr\":\"61952\",\"tid\":\"182\"}"
 typeGroup: "开关"
 userId: "1368863065974110870"
 zone: "",
 shareInfo:{
 isShareDevice: false
 ownerNickName: null
 shareId: 0
 status: 0
 supportShare: false
 supportShareControl: false
 }
 }
 ]
}

API支持度

云智能

自有品牌

天猫精灵

✖︎

✖︎

✔︎

监听Mesh设备连接状态事件

onMeshStatusChange

说明

该事件是结合了云端(网关)连接状态和本地连接状态的,如果云端和本地两个有一个在线则认为设备在线,全部离线则认为离线;使用此事件无需再去单独使用onStatusChange监听云端在离线状态。

请求参数

参数

参数类型

描述

是否必填

callback

Function

mesh设备连接状态事件回调函数

出参

参数

参数类型

子参数

子参数类型

描述

status

object

deviceId

string

设备组ID,生活物联网平台赋予设备组的唯一标识符。

onlineState

string

ignore 不支持在离线检测

online 在线

offline 离线

skillId

string

设备技能ID

调用示例

import { device } from 'aliyun-livinglink-sdk';
device.onMeshStatusChange((msg)=>{
 console.log(msg)
})

API支持度

云智能

自有品牌

天猫精灵

✖︎

✖︎

✔︎