Pushing a Device Binding Notification
Typical Scenario
After an application subscribes to device binding notifications (the notification type is bindDevice) on the platform, the platform sends a notification to the application when a directly connected device is connected to the platform and bound to the application.
API Function
This API is used by the platform to push notifications to an application that has subscribed to device binding notifications.
Note
1. When subscribing to platform service data, an application must subscribe to the specified callback URL in the API description. The server and port in the callback URL are the public IP address and specified port of the application.
2. An application receives the content of a push message by inheriting the PushMessageReceiver class and overriding the callback API.
3. If the callback URL is not the address of the application, the application must implement the original callback API. For details on the API content, see Message Push in the Northbound API Reference.
API Description
| Callback URL | https://server:port/v1.0.0/messageReceiver |
|---|---|
| Callback API | void handleBindDevice(NotifyBindDeviceDTO body) |
| Class | PushMessageReceiver |
Parameter Description
NotifyBindDeviceDTO structure
| Parameter | Mandatory or Optional | Type | Location | Description |
|---|---|---|---|---|
| notifyType | Mandatory | String | body | Indicates the notification type. The value is bindDevice. |
| deviceId | Mandatory | String | body | Identifies a device. |
| resultCode | Mandatory | String | body | Indicates the binding result. The value options are expired and succeeded. |
| deviceInfo | Optional | DeviceInfo | body | Indicates information about the device. For details, see DeviceInfo structure. |
| Parameter | Mandatory or Optional | Type | Location | Description |
|---|---|---|---|---|
| nodeId | Mandatory | String(256) | body | Identifies a device. |
| name | Optional | String(256) | body | Indicates the device name. |
| description | Optional | String(2048) | body | Indicates the device description. |
| manufacturerId | Optional | String(256) | body | Uniquely identifies a manufacturer. |
| manufacturerName | Optional | String(256) | body | Indicates the manufacturer name. |
| mac | Optional | String(256) | body | Indicates the MAC address of the device. |
| location | Optional | String(2048) | body | Indicates the device location. |
| deviceType | Optional | String(256) | body | Indicates the device type. The upper camel case is used, for example, MultiSensor, ContactSensor, and CameraGateway. |
| model | Optional | String(256) | body | Indicates the device model. In Z-Wave, the format is productType + productId. The value is a hexadecimal value in the format of XXXX-XXXX. Zeros are added if required, for example, 001A-0A12. The format in other protocols is still to be determined. |
| swVersion | Optional | String(256) | body | Indicates the software version of the device. In Z-Wave, the format is major version.minor version, for example, 1.1. |
| fwVersion | Optional | String(256) | body | Indicates the firmware version of the device. |
| hwVersion | Optional | String(256) | body | Indicates the hardware version of the device. |
| protocolType | Optional | String(256) | body | Indicates the protocol used by the device. The value options are Z-Wave, ZigBee, and WPS. |
| bridgeId | Optional | String(256) | body | Identifies the bridge through which the device accesses the platform. |
| status | Optional | String | body | Indicates whether the device is online. The value options are ONLINE, OFFLINE, and ABNORMAL. |
| statusDetail | Optional | String(256) | body | Indicates the device status details. The value of this parameter varies with the value of status. For details, see status and statusDetail structure. |
| mute | Optional | String | body | Indicates whether the device is in the frozen state. Based on the value of this parameter, the platform determines whether to manage and store data reported by the device.
|
| supportedSecurity | Optional | String | body | Indicates whether the security mode is supported.
|
| isSecurity | Optional | String | body | Indicates whether the security mode is enabled.
|
| signalStrength | Optional | String(256) | body | Indicates the signal strength of the device. |
| sigVersion | Optional | String(256) | body | Indicates the SIG version of the device. |
| serialNumber | Optional | String(256) | body | Indicates the serial number of the device. |
| batteryLevel | Optional | String(256) | body | Indicates the battery level of the device. |
| status | statusDetail |
|---|---|
| OFFLINE | NONE CONFIGURATION_PENDING |
| ONLINE | NONE COMMUNICATION_ERROR CONFIGURATION_ERROR BRIDGE_OFFLINE FIRMWARE_UPDATING DUTY_CYCLE NOT_ACTIVE |
When the device status information is reported to the platform, status and statusDetail must be included. It is recommended that statusDetail be used only for display but not for logical judgment.
Response Parameters
Status Code: 200 OK
Request Example
Method: POST
Request: {callbackUrl}
Header:
Content-Type:application/json
Body:
{
"notifyType":"bindDevice",
"deviceId":"*****",
"resultCode":"succeeded",
"deviceInfo":{
"name":"Sensor_12",
"manufacturer":"wulian",
"deviceType":90,
"model":"90",
"mac":"****************",
"swVersion": "...",
"fwVersion": "...",
"hwVersion": "...",
"protocolType":"zigbee",
"description":"smockdetector",
"nodeType":"GATEWAY"
}
} Normal Response Example
Response: Status Code: 200 OK
Last Article: Pushing a Device Registration Notification
Next Article: Pushing a Device Information Change Notification
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.