# 网关代理子设备

Topic:

  • 发布 Topic:iotlink/gateway/operation/${proudctId}/${deviceName}
  • 订阅 Topic:iotlink/gateway/operation/result/${proudctId}/${deviceName}

# 发布数据格式定义

参数 类型 说明
type String 1. bind:绑定子设备 2. unbind:解绑子设备 3. get:查询子设备 4. change:拓扑关系变化 5. login:子设备上线 6. logout:子设备离线
messageId String 消息ID
payload Object 消息体
payload.devices Array 子设备
payload.devices.productId String 子设备产品Id
payload.devices.deviceName String 子设备产品名称

# 订阅数据格式定义

参数 类型 说明
type String 1. bind:绑定子设备 2. unbind:解绑子设备 3. get:查询子设备 4. login:子设备上线 5. logout:子设备离线 6. change:拓扑关系变化
messageId String 消息ID
payload Object 消息体
payload.devices Array 子设备
payload.devices.productId String 子设备产品Id
payload.devices.deviceName String 子设备产品名称

# 子设备拓扑关系管理

# 查询拓扑关系

网关类型的设备, 可以通过该Topic上行请求查询子设备的拓扑关系。

网关查询子设备拓扑关系请求数据格式:

{
  "type": "get"
}

注:需要查询子设备列表支持分页查询,参数添加中添加payload即可:

{
  "type": "get",
  "payload": {
    "offset": "偏移数",
    "size": "下发数"
  }
}

网关查询子设备拓扑关系响应数据格式:

{
  "type": "get",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe"
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "5gcEHg3Yuvm****2p8"
      },
      ...
    ]
  }
}

注:在使用分页查询时返回结果会返回当前偏移量,和总子设备数:

{
  "type": "get",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe"
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "5gcEHg3Yuvm****2p8"
      },
      ...
    ],
    "total": 888,
    "offset": 310
  }
}

# 拓扑关系变化

网关类型的设备,可以通过该 Topic 订阅平台对子设备的拓扑关系变化。将拓扑关系变化通知网关。

当子设备被绑定或解绑,数据格式如下:

(若子设备被禁用了之后网关还是可以把子设备的数据报上来,但是平台不要这些数据。)

{
  "type": "change",
  "payload": {
    "status": 0,
    //0-添加  1-删除 
    "devices": [
      {
        "productId": "CFCS****G7",
        "deviceName": "****ev"
      }
    ]
  }
}

# 绑定拓扑关系

网关类型的设备, 可以通过该Topic上行请求绑定子设备的拓扑关系。

网关绑定拓扑关系请求数据格式:

{
  "type": "bind",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe"
      }
    ]
  }
}

网关绑定拓扑关系响应数据格式:

{
  "type": "bind",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "5gcEHg3Yuvm****2p8",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "hmIjq0gEFcf****F5X",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "x9pVpmdRmET****mkM",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "zmHv6o6n4G3****Bgh",
        "result": 1
      }
    ]
  }
}

# 解绑拓扑关系

网关类型的设备, 可以通过该Topic上行请求解绑子设备的拓扑关系。

网关解绑拓扑关系请求数据格式:

{
  "type": "unbind",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe"
      }
    ]
  }
}

网关解绑拓扑关系响应数据格式:

{
  "type": "unbind",
  "payload": {
    "devices": [
      {
        "productId": "XKFA****LX",
        "deviceName": "2OGDy7Ws8mG****YUe",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "5gcEHg3Yuvm****2p8",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "hmIjq0gEFcf****F5X",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "x9pVpmdRmET****mkM",
        "result": 0
      },
      {
        "productId": "XKFA****LX",
        "deviceName": "zmHv6o6n4G3****Bgh",
        "result": 1
      }
    ]
  }
}

# 代理子设备上下线

网关类型的设备,可通过与云端的数据通信,代理其下的子设备进行上线与下线操作。此类功能所用到的 Topic 与网关子设备拓扑管理的 Topic 一致:

# 代理子设备上线

网关代理子设备上线请求数据格式:

{
  "type": "login",
  "payload": {
    "devices": [
      {
        "productId": "CFC******AG7",
        "deviceName": "subdeviceaaaa"
      }
    ]
  }
}

代理子设备上线响应数据格式:

{
  "type": "login",
  "payload": {
    "devices": [
      {
        "productId": "CFC******AG7",
        "deviceName": "subdeviceaaaa",
        "result": 0
      }
    ]
  }
}

# 代理子设备下线

网关类型的设备, 可以通过数据上行 Topic 代理子设备下线。请求成功之后,云端通过数据下行 Topic 返回成功子设备的下线信息。

网关代理子设备下线请求数据格式:

{
  "type": "logout",
  "payload": {
    "devices": [
      {
        "productId": "CFC******AG7",
        "deviceName": "subdeviceaaaa"
      }
    ]
  }
}

网关代理子设备下线响应数据格式:

{
  "type": "logout",
  "payload": {
    "devices": [
      {
        "productId": "CFC******AG7",
        "deviceName": "subdeviceaaaa",
        "result": -1
      }
    ]
  }
}