Appearance
数据推送格式
数据推送默认开始推送,包括数据变化推送和定时推送。
系统会向主题 /openapi/data/scheduled/{appKey} 发布消息,第三方平台需要订阅这个主题。
实时数据、告警、在线状态都是向同一个主题推送,但是 pushType 不同,接收方注意区分 pushType 来区分实时数据、告警、在线状态。
dataType 是推送类型:change 是数据发生变化时的上报,scheduled 是定时上报。
5.1 实时数据推送格式
- 订阅推送主题:
/openapi/data/scheduled/{appKey} - Content-Type: application/json
- pushType:
realdata
数据样例:
json
{
"pushType": "realdata",
"dataType": "change",
"timestamp": 1732694400000,
"data": {
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"productId": 1,
"productName": "温湿度",
"regionName": "一级区域",
"onlineStatus": 1,
"metrics": [
{
"meteId": "1555",
"meteName": "温度",
"value": "25.5",
"sValue": "25.5",
"unit": "℃",
"time": "2024-11-27 16:00:00"
},
{
"meteId": "12125",
"meteName": "湿度",
"value": "60",
"sValue": "60",
"unit": "%",
"time": "2024-11-27 16:00:00"
}
]
}
}参数说明:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| pushType | String | realdata | 推送类型标识 |
| dataType | String | change | 推送类型:change-变化上报,scheduled-定时上报 |
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| productId | Long | 719943688798271 | 产品 ID |
| productName | String | 温湿度 | 产品名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| onlineStatus | Integer | 0 | 在线状态,0-在线,1-离线 |
| metrics | List | 属性量列表 | |
| ├─ meteId | String | 1855521 | 量 ID |
| ├─ meteName | String | 温度 | 量名称 |
| ├─ value | String | 26.5 | 实时值 |
| ├─ unit | String | ℃ | 单位 |
| ├─ time | String | 2025-01-01 14:00:00 | 时间 |
| └─ sValue | String | 26.5 | 翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值 |
5.2 告警数据推送格式
- 订阅推送主题:
/openapi/data/scheduled/{appKey} - Content-Type: application/json
- pushType:
alarm
数据样例:
json
{
"pushType": "alarm",
"dataType": "change",
"timestamp": 1732694400000,
"data": {
"alarmId": 456,
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"regionId": 1,
"regionName": "一级区域",
"meteId": "80015551",
"meteName": "压力过低",
"level": 1,
"value": "155",
"sValue": "155",
"alarmTime": "2025-11-27 16:00:00",
"state": "END",
"closeTime": "2025-11-27 18:00:00"
}
}参数说明:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| alarmId | Long | 15454521 | 告警 ID,告警恢复时以此 ID 为主键 |
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| regionId | Long | 719943688795245 | 区域 ID |
| regionName | String | 一级区域 | 区域名称 |
| meteId | String | 1545451 | 告警量 ID |
| meteName | String | 温度过低 | 告警量名称 |
| level | Integer | 1 | 告警等级 1 2 3 4 |
| value | String | 22.5 | 实时值 |
| sValue | String | 22.5 | 翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值 |
| alarmTime | String | 2025-11-27 16:00:00 | 告警时间 |
| state | String | BEGIN | BEGIN 是告警中,END 是已关闭 |
| closeTime | String | 2025-11-27 18:00:00 | 恢复时间,如果是 END 才会有 closeTime |
5.3 在线状态推送格式
- 订阅推送主题:
/openapi/data/scheduled/{appKey} - Content-Type: application/json
- pushType:
onlinestatus
数据样例:
json
{
"pushType": "onlinestatus",
"dataType": "change",
"timestamp": 1732694400000,
"data": {
"deviceId": 123,
"deviceName": "设备 001",
"businessId": "IMEI123456",
"status": 0
}
}参数说明:
| 参数 | 数据类型 | 示例 | 描述 |
|---|---|---|---|
| deviceId | Long | 719943688798277 | 设备 ID |
| businessId | String | IMEI123456 | 行业 ID |
| deviceName | String | 设备 001 | 设备名称 |
| status | Integer | 0 | 0-在线,1-离线 |