更新时间:2022-02-24 GMT+08:00

注册设备通知

典型场景

第三方应用在物联网平台订阅了注册设备通知后(订阅的通知类型为deviceAdded),当第三方应用通过“注册直连设备”接口在平台注册设备时,平台会向第三方应用推送通知消息。

接口功能

支持物联网平台向订阅了注册设备通知的第三方应用推送通知消息。

注意事项

  1. 应用在订阅平台业务数据时需要订阅接口描述中的指定回调地址,回调地址中的server与port为应用服务器公网地址与服务器配置中指定的端口。
  2. 应用通过PushMessageReceiver类并重写回调接口接收推送消息的内容。
  3. 如果回调地址不是应用服务器本身的地址,则第三方应用需要自己实现原始回调接口,接口内容请参考IoT平台北向API参考中的消息推送章节。

接口描述

回调地址

https://server:port/v1.0.0/messageReceiver

回调接口

def handleDeviceAdded(self):

接口所属类

PushMessageReceiver

参数说明

入参是request.json

参数

必选/可选

类型

位置

描述

request.json

必选

NotifyDeviceAddedDTO

body

见下表NotifyDeviceAddedDTO的描述。

NotifyDeviceAddedDTO

参数

必选/可选

类型

位置

描述

notifyType

必选

String

body

通知类型,取值:“deviceAdded”

deviceId

必选

String

body

设备ID,用于唯一标识一个设备。

gatewayId

可选

String

body

网关ID,用于唯一标识一个网关设备。

nodeType

必选

String

body

设备类型。

  • “ENDPOINT”
  • “GATEWAY”
  • “UNKNOWN”

deviceInfo

必选

DeviceInfo

body

设备信息,具体参见DeviceInfo结构体。

DeviceInfo结构体说明:

参数

必选/可选

类型

位置

描述

nodeId

必选

String(256)

body

设备的唯一标识,通常使用MAC,MAC地址,Serial No或IMEI作为nodeId。

说明:

若使用IMEI作为nodeId,根据不同厂家的芯片有不同填写要求。

  • 高通芯片设备的唯一标识为urn:imei:xxxx,xxxx为IMEI号
  • 海思芯片设备的唯一标识为IMEI号
  • 其他厂家芯片的设备唯一标识请联系模组厂家确认。

name

可选

String(256)

body

设备名称。

description

可选

String(2048)

body

设备的描述信息。

manufacturerId

可选

String(256)

body

厂商ID,唯一标识一个厂商。

manufacturerName

可选

String(256)

body

厂商名称。

mac

可选

String(256)

body

设备的MAC地址。

location

可选

String(2048)

body

设备的位置信息。

deviceType

可选

String(256)

body

设备类型,大驼峰命名方式,如MultiSensor、ContactSensor、CameraGateway。

model

可选

String(256)

body

设备的型号。

swVersion

可选

String(256)

body

设备的软件版本。

Z-Wave:主版本号.次版本号,如:1.1。

fwVersion

可选

String(256)

body

设备的固件版本。

hwVersion

可选

String(256)

body

设备的硬件版本。

protocolType

可选

String(256)

body

设备使用的协议类型,当前支持的协议类型:CoAP,huaweiM2M,Z-Wave,ONVIF,WPS,Hue,WiFi,J808,Gateway,ZigBee,LWM2M。

bridgeId

可选

String(256)

body

Bridge标识,表示设备通过哪个Bridge接入物联网平台。

status

可选

String

body

设备的状态,表示设备是否在线,取值范围:“ONLINE”“OFFLINE”“INBOX”“ABNORMAL”

statusDetail

可选

String(256)

body

设备的状态详情,status条件取值,取值查看status和statusDetail

mute

可选

String

body

表示设备是否处于冻结状态,即设备上报数据时,平台是否会管理和保存。

  • “TRUE”:冻结状态
  • “FALSE”:非冻结状态

supportedSecurity

可选

String

body

表示设备是否支持安全模式。

  • “TRUE”:支持安全模式
  • “FALSE”:不支持安全模式

isSecurity

可选

String

body

表示设备当前是否启用安全模式。

  • “TRUE”:启用
  • “FALSE”:未启用

signalStrength

可选

String(256)

body

设备的信号强度。

sigVersion

可选

String(256)

body

设备的sig版本。

serialNumber

可选

String(256)

body

设备的序列号。

batteryLevel

可选

String(256)

body

设备的电池电量。

status和statusDetail:

status

statusDetail

OFFLINE

NONE CONFIGURATION_PENDING

ONLINE

NONE COMMUNICATION_ERROR CONFIGURATION_ERROR BRIDGE_OFFLINE FIRMWARE_UPDATING DUTY_CYCLE NOT_ACTIVE

说明:

设备向物联网平台上报设备状态时需要status、statusDetail成对上报。statusDetail建议仅用作显示,不建议用于逻辑判断。

响应参数

Status Code: 200 OK

请求示例

Method: POST
request: {callbackUrl}
Header:
Content-Type:application/json
Body:
{
    "notifyType":"deviceAdded",
    "deviceId":"*****",
    "gatewayId":"*****",
    "nodeType":"GATEWAY",
    "deviceInfo":{
        "nodeId":"******",
        "name":null,
        "description":null,
        "manufacturerId":null,
        "manufacturerName":null,
        "mac":null,
        "location":null,
        "deviceType":null,
        "model":null,
        "swVersion":null,
        "fwVersion":null,
        "hwVersion":null,
        "protocolType":null,
        "bridgeId":null,
        "status":"OFFLINE",
        "statusDetail":"NOT_ACTIVE",
        "mute":null,
        "supportedSecurity":null,
        "isSecurity":null,
        "signalStrength":null,
        "sigVersion":null,
        "serialNumber":null,
        "batteryLevel":null
    }
}

响应示例

response:
Status Code: 200 OK