# 设备发现

# 发现设备请求

# 消息样式

{
  "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发送的DiscoveryDevicesRequest时,你需要返回该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或者不返回该字段