http api - PandoCloud/pando-protocol GitHub Wiki

device api 设备接口

说明:设备相关api由设备代理(网关)向服务器发起 设备在第一次成功联网后第一时间向服务器注册自己的信息 设备通过设备登陆接口获取设备token

设备注册

请求方式

POST

请求URL

/v1/devices/registration

参数

请求头

请求内容

{
  // 产品id及key,平台分配给厂商
  "product_key": "3d6few3ac31w7a6d3f",
  // 设备序列号,设备唯一硬件标识
  "device_code": "4d3e2a5d3fff",
  // 设备类型,如wifi, id见说明
  "device_type": 1,
  // 设备硬件型号,如“esp8266”, "MI3"
  "device_module": "", 
  // 可选,ios设备token,ios设备必填,其余类型设备不需要填写
  "ios_device_token": "45deeeee", 
  // 网关版本
  "version": "0.1.0"
}

返回内容

{
  // 返回码
  "code": 0,
  // 正确或错误信息
  "message": "", 
  // 如果成功,将返回设备id及设备密码
  "data": { 
    // 设备id
    "device_id": 12324, 
    // 设备密码
    "device_secret": "3d6few3ac31w7a6d3f", 
    // 设备激活码,用来绑定设备
    "device_key": "34ffffffff",
    // 设备标识符
    "device_identifier": "64-64-fe4efe"
  }
}

说明

设备类型id

id 设备类型
1 wifi设备
2 ios手机
3 android手机

设备登录

请求方式

POST

请求URL

/v1/devices/authentication

参数

请求头

请求内容

{
  // 设备id
  "device_id": 123,
  // 设备密码
  "device_secret": "fsfwefewf23r2r32r23rfs",
  // 协议类型,不填写表示默认二进制协议
  "protocol": "mqtt"
}

返回内容

{
  //返回码
  "code": 0, 
  //正确或错误信息
  "message": "", 
  "data": { 
    // 设备token
    "access_token": "3sffefefefefsf", 
    // 接入服务器地址+端口
    "access_addr": "202.114.0.242:8080", 
    // 当前数据序列号
    "data_sequence": 1111,
    // 当前事件序列号
    "event_sequence": 111
  }
}

获取局域网设备访问授权

请求方式

GET

请求URL

/v1/lan/devices/{identifier}/authority

参数

请求头

Access-Token:3eeeeeee...   

//自己的token

请求内容

返回内容

{
  //返回码
  "code": 0, 
  //正确或错误信息
  "message": "", 
  "data": { 
    // 目标设备的token
    "access_token": "3sffefefefefsf...", 
    "device_config": {
      "objects": [
        {
            "id": 3, // 对象id
            "no": 1, // 对象编号
            "label": "atmosphere",  // 对象别名
            "part": 1,  // 所述部件(子设备id)
            "status": [  // 对象所含状态列表
                {
                    "value_type": 7, // 状态值类型,见说明
                    "name": "temperature" // 状态名称
                },
                {
                    "value_type": 7,
                    "name": "humidity"
                },
                {
                    "value_type": 7,
                    "name": "air-quality"
                }
            ]
        }
      ],
      "commands": [
        {
          "no": 1,
          "name": "switch",  // 命令名
          "part": 1,
          "priority": 0, // 优先级
          "params": [{  // 命令参数列表
            {
              "value_type": 7,
              "name": "temperature"
            },
            {
              "value_type": 7,
              "name": "humidity"
            },
            {
              "value_type": 7,
              "name": "air-quality"
            }
          }]
        }
      ],
      "events": [
        {
          "no": 1,
          "name": "alert", // 事件名
          "part": 1,
          "priority": 0, // 优先级
          "params": [{  // 事件参数列表
            {
              "value_type": 7,
              "name": "temperature"
            },
            {
              "value_type": 7,
              "name": "humidity"
            },
            {
              "value_type": 7,
              "name": "air-quality"
            }
          }]
        }
      ]
    }
  }
}

说明

value_type id表

id 值类型
1 FLOAT64
2 FLOAT32
3 INT8
4 INT16
5 INT32
6 INT64
7 UINT8
8 UINT16
9 UINT32
10 UINT64
11 BYTES
12 URI
13 BOOL