Pushing Device Information Change Notifications
Typical Scenario
After an NA subscribes to device information change notifications (the notification type is deviceInfoChanged) on the IoT platform, the IoT platform sends a notification message to the NA when the device configuration or status (such as manufacturer, location, version and online status) changes.
API Function
This API is used by the IoT platform to push notification messages to an NA that has subscribed to device information change notifications.
Note
1. When subscribing to platform service data, an NA must subscribe to the specified callback address in the API description. The server and port in the callback address are the public IP address and specified port of the NA.
2. An NA receives the content of a push message by inheriting the PushMessageReceiver class and rewriting the callback API.
3. If the callback address is not the address of the NA, the NA must implement the original callback API. For details on the API content, see Message Push in the Huawei IoT Platform Northbound API Reference.
API Description
Callback URL |
https://server:port/v1.0.0/messageReceiver |
---|---|
Callback API |
void handleDeviceInfoChanged(NotifyDeviceInfoChangedDTO body) |
Class |
PushMessageReceiver |
Parameter Description
NotifyDeviceInfoChangedDTO structure
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
notifyType |
Mandatory |
String |
body |
Indicates the notification type. The value is deviceInfoChanged. |
deviceId |
Mandatory |
String |
body |
Identifies a device. |
gatewayId |
Mandatory |
String |
body |
Identifies a gateway. The gateway ID is the same as the device ID if the device is a directly connected device. If the device is a non-directly connected device, the gateway ID is the device ID of the directly connected device (that is, the gateway) with which it associates. |
deviceInfo |
Mandatory |
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. Generally, the MAC address, serial number, or IMEI is used as the node ID.
NOTE:
When the IMEI is used as the node ID, the node ID varies depending on the chip provided by the manufacturer.
|
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 type used by the device. The value options are CoAP, huaweiM2M, Z-Wave, ONVIF, WPS, Hue, WiFi, J808, Gateway, ZigBee, and LWM2M. |
bridgeId |
Optional |
String(256) |
body |
Identifies the bridge through which the device accesses the IoT 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 IoT 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 IoT 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 ":"deviceInfoChanged", "deviceId":"********************************", "gatewayId":"*************", "deviceInfo":{ "name":"Sensor_12", "manufacturer":"wulian", "type":90, "model":"90", "mac":"****************", "swVersion": "...", "fwVersion": "...", "hwVersion": "...", "protocolType":"zigbee", "description":"smock detector" } }
Response Example
Response: Status Code: 200 OK
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot