# 设备发现
# 发现设备请求
# 消息样式
{
"header":{
"namespace":"iFLYOS.IoT.Device.Discovery",
"name":"DiscoveryDevices",
"messageId":"1bd5d003-31b9-476f-ad03-71d471922820",
"payloadVersion":1
},
"payload":{
"accessToken":"access token"
}
}
Header参数说明
参数 | 说明 | 类型 |
---|---|---|
messageId | 代表一条message的唯一ID | String |
payloadVersion | payload版本,目前取值为1 | Integer |
payload参数说明
参数 | 说明 | 类型 | 必须出现 | 是否必填 |
---|---|---|---|---|
accessToken | 授权时获取的access token | String | 是 | 是 |
# 发现设备响应
当你收到IVS发送的DiscoveryDevices
的Request
时,你需要返回该accessToken
对应的用户的设备列表。
# 消息样式
{
"header": {
"namespace": "iFLYOS.IoT.Device.Discovery",
"name": "DiscoveryDevicesResponse",
"messageId": "1bd5d003-31b9-476f-ad03-71d471922820",
"payloadVersion": 1
},
"payload": {
"devices": [
{
"deviceId": "9081EACF3F92A...",
"deviceName": "台灯",
"deviceType": "light",
"brand": "iflytek",
"model": "PAE13...",
"district":"我家",
"zone": "客厅",
"icon": "https//www.iflyos.cn/example...",
"version": "1.1.1",
"friendlyBrand": "科大讯飞",
"friendlyName": "小台灯",
"friendlyDescription": "房间里的小房间",
"online": true,
"attributes": [
{
"name": "",
"value": ""
},
{
...
}
],
"actions": [
"TurnOn",
"TurnOff"
],
"extensions": {
"extension1": "",
"extension2": ""
}
"primaryDeviceId":"2341DD4DF3F11A..."
},
{
...
}
"scenes": [
{
"sceneId": "21234",
"name": "回家模式",
"description": "一回家就把所有电器打开",
"version": "1.1.1",
"extensions": {
"extension1": "",
"extension2": ""
}
},
{
...
}
]
]
}
}
# payload说明
payload 协议参数说明:
参数名 | 参数类型 | 参数说明 |
---|---|---|
devices | List | 用户设备列表。当设备类型为插座时: 若插座未负载,设备列表返回插座; 若单孔插座负载,设备列表返回插座和负载设备; 若多孔插座负载,设备列表返回插座和负载设备,未负载的孔返回为「单孔插座」 |
scenes | List | 用户设置的场景列表 |
devices 对象说明
参数名 | 参数类型 | 参数说明 | 返回值是否必填 |
---|---|---|---|
deviceId | String | 设备唯一标识符。标识符在多个发现请求之间保持一致,可包含任何字母或数字和以下特殊字符:_-=#;:?@&。不超过255个字符。 | 是 |
deviceType | String | 设备类型,具体取值查看词表 | 是 |
deviceName | String | 名称 | 是 |
brand | String | 品牌 | 是 |
model | String | 型号名称 | 是 |
district | String | 区域 | 否 |
zone | String | 位置 | 否 |
icon | String | 产品icon(https协议的url链接),像素最好160*160 以免在app显示模糊 | 是 |
version | String | 设备版本 | 否 |
friendlyName | String/中文 | 给用户看的设备名称,仅支持中文,长度不超过128字符。该字段会影响到用户语音输入的语料,请填写友好的名称 | 是 |
friendlyDescription | String/中文 | 给用户看的设备描述,仅支持中文,长度不超过128字符。该字段会影响到用户语音输入的语料,请填写友好的名称 | 是 |
online | Boolean | 是否在线。true代表可用,false代表不可用 | 是 |
attributes | List | 返回当前设备支持的属性状态列表 | 是 |
actions | List | 产品支持的操作(注:包括支持的查询操作),详情见操作类型 | 是(万能遥控器除外) |
functions | List | 设备支持的功能,在OpenFunction和CloseFunction是使用,暂未支持 | 否 |
extensions | Object | 产品扩展属性,存放设备相关附加信息,是键值对。iFLYOS不了解或使用这些数据。为空返回null或者不返回该字段 | 否 |
primaryDeviceId | String | 主设备唯一标识符,代表上述设备是该主设备的一部分。该参数返回时,不能为空。标识符在多个发现请求之间保持一致,可包含任何字母或数字和以下特殊字符:_-=#;:?@&。不超过255个字符。 | 否 |
attributes 对象说明
参数名称 | 描述 | 类型 |
---|---|---|
name | 属性名称,支持数字、字母和下划线,长度不能超过128个字符。查看属性值 | String |
value | 属性值,支持多种数据类型 | Boolean Number String Object |
timestampOfSample | 属性值取样的时间戳,单位是秒。 | Integer |
uncertaintyInMilliseconds | 属性值取样的时间误差,单位是ms。 如打开厨房灯时,属性turnOnState变为ON,时间是time1,设备上报事件给技能,通知技能记录属性turnOnState变为ON,技能完成响应的操作的时间为time2(time2即属性值的取样时间),time2和time1之间的误差就是属性值取样的时间误差。 如果设备使用的是轮询时间间隔的取样方式,那么uncertaintyInMilliseconds就等于时间间隔。如温度传感器每1秒取样1次,那么uncertaintyInMilliseconds的值就是1000。 | Integer |
scenes 对象说明
参数名 | 参数类型 | 参数说明 | 返回值是否必须 |
---|---|---|---|
sceneId | String | 场景唯一标识符。标识符在多个发现请求之间保持一致,可包含任何字母或数字和以下特殊字符:_-=#;:?@&。不超过255个字符。 | 是 |
name | String | 场景名称 | 是 |
description | String | 场景作用描述 | 否 |
version | String | 场景版本 | 否 |
extensions | Object | 场景扩展属性,存放设备相关附加信息,是键值对。iFLYOS不了解或使用这些数据。为空返回null或者不返回该字段 | 否 |