设备端API

通用设备数据上下行接口

设备具备发布权限,用于设备上报数据

  • iot/{projectCode}/{productCode}/{deviceCode}/event

设备具备订阅权限,用于设备获取应用下发的数据

  • iot/{projectCode}/{productCode}/{deviceCode}/control

设备拓扑关系

获取设备的拓扑关系

网关设备

  • 请求Topic:iot/{projectCode}/{productCode}/{deviceCode}/thing/topo/get
{
    "id": "123",
    "version": "1.0",
    "params": "",
    "method": ""
}
  • 响应Topic:iot/{projectCode}/{productCode}/{deviceCode}/thing/topo/get_reply
{
    "id":"123",
    "code":"200",
    "data":[
        {
            " IotDeviceCode ":"deviceName1234",
            " IotModelCode ":"1234556554"
        }
    ]
}

子设备上下线

子设备上线

  • 请求Topic:iot/{projectCode}/{productCode}/{deviceCode}/online

因为子设备通过网关通道与物联网平台通信,以上Topic为网关设备的Topic。Topic中变量 {projectCode}/{productCode}/{deviceCode}需替换为网关设备的对应信息。

{
    "id":"123",
    "params":{
        "IotModelCode":"123",
        "IotDeviceCode":"test",
        "clientId":"123",
        "timestamp":"123",
        "signMethod": "xxx",
        "sign": "xxx",
        "cleanSession": true
    }
}
  • 响应Topic:

iot/{projectCode}/{productCode}/{deviceCode}/online_reply

{
    "id":"123",
    "code":"200",
    "message":"success",
    "data":"",
    "ts": 1560304780854
}

子设备下线

  • 请求Topic:iot/{projectCode}/{productCode}/{deviceCode}/offline

因为子设备通过网关通道与物联网平台通信,以上Topic为网关设备的Topic。Topic中变量 {projectCode}/{productCode}/{deviceCode}需替换为网关设备的对应信息。

{
    "id": 123,
    "params": {
        "IotModelCode": "123",
        "IotDeviceCode": "test",
        "clientId":"123",
        "timestamp":"123"

    }
}
  • 响应Topic:iot/{projectCode}/{productCode}/{deviceCode}/offline_reply
{
    "id": "123",
    "code": "200",
    "message": "success",
    "data": "",
    "ts": 1559734298019
}

设备生命周期变更

设备上下线状态

通过该Topic获取设备的上下线状态。

  • 数据流转Topic:iot/{projectCode}/{productCode}/{deviceCode}/mqtt/status
  {

   "status":"online"(或offline),//设备状态

  " IotModelCode ":"xxxxxxxxxxx",

   " IotDeviceCode ":"xxxxxxxxxx",

   "time":"2018-08-31 15:32:28.205",//发送通知时间点

   "utcTime":"2018-08-31T07:32:28.205Z",//发送通知UTC时间点

   "lastTime":"2018-08-31 15:32:28.195",//状态变更时最后一次通信时间

   "utcLastTime":"2018-08-31T07:32:28.195Z",//状态变更时最后一次通信UTC时间

   "clientIp":"xxx.xxx.xxx.xxx"//设备端公网出口IP

   }

TSL物模型模板

设备可以通过上行请求获取设备的TSL模板。

  • TOPIC:iot/{projectCode}/{productCode}/{deviceCode}/thing/dsltemplate/get
{
   "id": "123",
   "version": "1.0",
   "params": "",
   "method": "thing.dsltemplate.get"
   }
  • REPLY TOPIC:iot/{projectCode}/{productCode}/{deviceCode}/thing/dsltemplate/get_reply

只包含属性的物模型示例(暂不支持事件和服务):

{
    "schema": "https://iop.inspur.com/schema.json",
    "profile": {
        "modelCode": "4rdep3ll"
    },
    "link": "",
    "properties": [{
        "identifier": "1",
        "dataType": {
            "specs": {
                "unit": "平方米 / ㎡",
                "min": "1",
                "max": "1",
                "step": "1"
            },
            "type": "float"
        },
        "name": "1",
        "accessMode": "rw",
        "required": false
    }, {
        "identifier": "temperature",
        "dataType": {
            "specs": {
                "unit": "摄氏度 / °C",
                "min": "1",
                "max": "100",
                "step": "0.1"
            },
            "type": "float"
        },
        "name": "温度",
        "accessMode": "rw",
        "required": false
    }]
}

设备动态注册接口(子设备不支持)

url

POST /iot/v1/devices/action/dynamic-register

请求参数

属性 参数类型 属性说明
productCode String 产品Code
secertKey String 产品秘钥
deviceCode String 设备Code

响应参数

属性 参数类型 属性说明
message String 提示信息
success String 调取接口后是否成功
cert Cert 证书

Cert

名称 位置 类型 是否必须 描述
id body UUID 设备标签的uuid
code body String 证书CODE
name body String 证书名称
projectId body String 项目ID
clientKey body String 证书Key
clientCrt body String 证书Crt
status body Boolean 激活状态
createdTime body Date 创建时间
updatedTime body Date 更新时间

注意事项

1、使用该接口前,确定设备已提前创建完毕; 2、设备对应产品的动态注册开发已打开; 3、创建的设备并未激活 4、请求url中填写正确的产品Code、产品秘钥、设备Code