# 微瓴数字空间实时消息订阅指南
# 1. 微瓴实时消息简介
# 1.1 背景介绍:
物联网平台的数据具有时延低, 数据更新快等一系类的特点, 所以通过传统的api接口调用定时获取数据的方式并不适合展示, 分析等场景, 所以微瓴数字空间基于 websocket 自研了 SWMP 服务, 对接入微瓴的所有应用以长连接的方式提供实时, 高效的数据推送。实时推送数据如人脸门禁的进出, 停车场车辆的驶入驶出, 电梯实时状态, 各系统及设备的告警, 通知等。
实时推送的数据分为三类: 告警数据, 消警数据, 通知数据, 不同的数据格式具有各自的标准, 通过实时消息体中的message_type区分数据所属类型。
# 1.2 服务介绍:
SWMP(Space web message protocol)应用于数字空间实时消息分流、分权限 向数据下游子系统提供, 该服务结合STOMP设计。全部使用UTF-8格式, 头名统一大写, 非body部分统一英文
# 1.3 微瓴实时消息来源:
微瓴数字空间的所有数据处理,分发,挖掘功能均基于微瓴对象模型。按照对象模型上报的数据均可通过自动化或者非自动化的方式以实时消息推送给下游应用层。事件对象默认推送,属性,文件等对象可按需配置推送。
自动化数据推送: 只要在对象模型中的 事件(events) 结构体中以正确的格式上报了标准的事件,微瓴数据空间即可将对象模型数据转化为标准的微瓴实时消息,根据对象模型事件结构体中的eventType字段,分别流转到告警,通知或者消警三个通路中,进行后续的逻辑。
定制化状态数据推送: 但是对于某些实时性状态要求较高的设备,如电梯,业务方或下游子系统希望每次底层设备端上报了新的状态,都可以通过微瓴数字空间的实时数据服务及时的获取。所以微瓴项目管理平台提供了可配置的实时状态转通知的功能,详细操作步骤可参照文档5.1章节
定制化规则匹配推送: 对于某些属性触发告警,如空气质量超标,温度超标等。通用可以通过微瓴项目管理平台的规则配置界面,设置告警或者通知触发条件。详细操作步骤可参照文档5.2章节
# 2. 订阅准备工作
接入微瓴物联平台的应用, 无论此应用用于数据上报还是用于数据接收, 均需要在微瓴开放平台 (opens new window)进行应用接入申请, 并获取appid等一系列与平台通讯所必须票据。通过申请到的登入鉴权套件(appid及其票据等), 可以获得订阅数字空间实时数据接口所需的token, 微瓴对于每个appid所能订阅的消息类型会进行分配和管控。
- 登入鉴权套件接入及权限申请:
通过 https://open.welink.qq.com (opens new window) 的指引,完成在对应的项目下完成项目应用的入驻, 然后获取appid, app_key及app_ticket等参数
APP ID: 应用唯一标识符, 每创建一个新应用, 后台会为其配置一个新的应用ID, 且后续不可更改 创建过的应用即使在删除后, 其应用ID仍然不能被新创建的应用所占有, 在所属环境中具有特定性,唯一性,不可更改性及永久性
APP Ticket: 应用票据, 在进行鉴权获取定时token时使用, 所获取票据用于登录微瓴openAPI, 票据具有有效期限的, 在沙箱阶段, 默认有效期限是一年(一年按365天计算) 注:在距离到期时间前15天内, 您可以根据自身需要对App Ticket进行重置, 重置后会生成新的App Ticket, 有效期限重置
# 3. 订阅实时消息及获取
# 3.1 接入步骤
实时数据推送服务接入主要分为以下六个步骤:
- step1:确认调用地址域名
- step2:获取相应token
- step3:确认appid相应权限
- step4:接入websocket并与datahub建立长连接
- step5:订阅所需topic
- step6:维持连接
- step7:取消订阅
# 3.2 接入详细介绍
- step1 确认调用地址域名 文档中所有示例域名均为正式环境的域名, 用户需根据自身项目所在环境进行选择, 不同环境之间相互独立, 所申请所有资源不互通。如对项目所属环境有疑问, 请于项目的交付架构师进行联系和咨询。
接入地域 | 环境类别 | 域名 |
---|---|---|
华南地区(广州) | 开放平台新沙箱环境 | sandbox2api.welink.qq.com |
华南地区(广州) | 公有云环境 | api-gz.welink.qq.com |
step2 获取相应token 通过登陆鉴权 (opens new window)的指引, 获取对应的token, 文档中提供了多种登入鉴权以及token的获取方式, token有效期为20分钟
step3 确认appid相应权限 请于项目的交付架构师进行联系和咨询, 开通所需订阅系统的相应数据权限
step4 接入websocket并与datahub建立长连接 从上述登入鉴权接口中通过appid及app_ticket获取token,与websocket连接的请求地址为为:
- 公有云项目地址:
wss://Domain/space/websocket/datahub/swmp/messageHub?token=xxxxxxx
- 私有化项目地址
ws://Domain/space/websocket/datahub/swmp/messageHub?token=xxxxxxx
注意:单个appid最多建立20个长链接
- 公有云项目地址:
step5 订阅所需topic 通过 告警(4.1节) (opens new window), 消警(4.2节) (opens new window) 及 通知(4.3节) (opens new window) 可获取数字空间通用topic。 部分项目存在定制化topic,数字空间会在项目交付文档中列举所有topic。请相关开发联系项目交付架构师获取所属项目完整可订阅topic。 微瓴权限服务可控制及分配应用订阅数据权限, 订阅前请先确定是否有权限订阅所需topic,然后发出订阅请求
- 请求示例
websocket.send("SUBSCRIBE 0.1\r\nFRAME-ID:151215125\r\nTOPIC:/space/datahub/***订阅type***/***订阅subtype***\r\n\0")
1注:FRAME-ID建议使用当前毫秒级时间戳 如若订阅成功, 返回以下数据
- 返回示例
RESPONSE 0.1 FRAME-ID: ************** STATUS: 200 REQUEST-FRAME-ID: ******** CONTENT-LENGTH:2 SUBSCRIBE SUCCESS
1
2
3
4
5
6
7step6 维持连接 如果应用所订阅topic 60秒 内没有数据推送, websocket将断开连接, 若要保持连接, 则需发送定时发送维持连接请求
- 请求示例
websocket.send("REQUEST 0.1\r\nFRAME-ID:fdsafsaf\r\nCONTENT-TYPE:text/plain;charset=utf-8\r\nCONTENT-LENGTH:4\r\nDESTINATION:/swmp/heartbeat\r\n\r\nkeep\r\n\0")
1如若维持连接成功, 返回以下数据
- 返回示例
RESPONSE 0.1 FRAME-ID: ************** STATUS: 200 REQUEST-FRAME-ID: ******** CONTENT-LENGTH:2 OK
1
2
3
4
5
6
7step7 取消订阅
将需要取消订阅的topic 发送websocket server端
请求示例
websocket.send("UNSUBSCRIBE 0.1\r\nFRAME-ID:151215125\r\nTOPIC:/space/datahub/face_access/inout\r\n\0")
1
如若断开连接成功, 返回以下数据
返回示例
RESPONSE 0.1 FRAME-ID: ************** STATUS: 200 REQUEST-FRAME-ID: ******** CONTENT-LENGTH:2 UNSUBSCRIBE SUCCESS
1
2
3
4
5
6
7
# 3.3 注意事项
- 请求参数token仅在一段时间内有效(20分钟)。推荐每5分钟获取一次新token,以确保断线重连时使用新的token创建连接,并能够有效鉴权。否则可能发生400/401请求错误;
- 拼接URI过程中,注意请求的URI编码格式,如果token中含有特殊字符,需要注意进行编码(encodeUri)。尽可能避免直接使用 “+”等拼接字符串形式追加参数。否则可能导致 400/401参数鉴权问题;
- 建立成功后,请保持websocket心跳(仅1分钟有效,推荐每20秒发送一次心跳),确保网络环境正常。否则可能造成频繁断链;
- 若建立失败,请及时释放连接(进行close等相关操作)。重试过程中,推荐间隔1秒重试。过于频繁的重试可能导致IP、或appId被禁;
- 订阅指定的topic。请确保该appId已在管理平台中,被授予对应的数据订阅权限;
- 注意同一个appId的订阅限制,连接个数和订阅topic个数(尽可能避免使用同一组appId+token进行数据订阅),如有必要可申请新的appId。
# 3.4 接入代码范例
- javaScript
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SWMP Example</title>
</head>
<body>
<input id="text" type="text"></input>
<button onclick="send()">sent message</button>
<hr/>
<button onclick="closeWebSocket()">Close WebScoket Connection</button>
<hr/>
<div id="message"></div>
<script>
var websocket = null;
//Determine whether the current browser supports WebSocket.
if ('WebSocket' in window) {
websocket = new WebSocket("wss://#domain/space/websocket/datahub/swmp/messageHub?token=#token");
} else {
alert('Current do not support websocket.');
}
//Callback method for Connection Error
websocket.onerror = function () {
setMessageInnerHTML("WebSocket Connection Error");
}
//Callback method for Connection Successful
websocket.onopen = function () {
setMessageInnerHTML("WebSocket Connection Successful");
}
//Callback method for Receiving Message
websocket.onmessage = function (event) {
console.log(event.data);
setMessageInnerHTML(event.data);
}
//Callback method for Closing Connection.
websocket.onclose = function () {
setMessageInnerHTML("Websocket Connection Closed");
websocket.close(1000);
}
//Listen the event that window is closed.When close the window,
//we close the websocket connection on our own.
//To avoid the connection is keep aliving but the window has been closed.
//or the server-side will throw exception.
window.onbeforeunload = function () {
closeWebSocket();
}
//Display message on HTML
function setMessageInnerHTML(innerHTML) {
document.getElementById('message').innerHTML += innerHTML + '<br/>';
}
//Close websocket connection
function closeWebSocket() {
websocket.close(1000);
}
//Send message
function send() {
var message = document.getElementById('text').value;
websocket.send(message);
}
</script>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# 4. 订阅数据格式说明
- 订阅topic统一为:
/space/datahub/$订阅type/$订阅subtype
使用英文字段订阅,字段名称遵守小驼峰命名方式,不会出现中划线等特殊字符。除缩写字符串外,不出现大写字母,一律使用小写字母表示。
# 4.1 告警数据(message_type:1000300)
# 4.1.1 通用可订阅topic
订阅type | type中文 | 订阅sub_type | sub_type中文 | 备注 |
security_monitoring | 安防监控 | invade | 入侵检测 | |
retention | 非法滞留 | |||
fire | 火灾监控 | |||
crowd | 异常聚集 | |||
safety_helmet | 安全帽检测 | |||
without_mask | 口罩检测 | |||
tumble_arm | 视觉摔倒检测 | |||
tumble | tof跌倒检测 | |||
shibian_radar_tumble | 雷达跌倒检测 | |||
crossing_line | 跨线检测 | |||
parking_violation | 违停占道 | |||
violent_motion | 剧烈运动告警 | |||
getup | 起身告警 | |||
key_person_getup | 重点人员起身告警 | |||
standup | 人员站立告警 | |||
audio_abnormal | 声强突变告警 | |||
reach_height | 攀高告警 | |||
toilet_tarry | 如厕超时 | |||
yard_tarry | 放风超时 | |||
people_num_change | 人数突破告警 | |||
sit_quietly | 静坐告警 | |||
line_detection | 越线告警 | |||
trace_start | 任务开始 | |||
trace_end | 任务结束 | |||
trace_result | 任务返回结果 | |||
video_loss | 视频丢失 | |||
shelter | 视频遮挡 | |||
moving | 移动侦测 | |||
scene_change | 场景变更 | |||
overstep | 越界侦测 | |||
entering | 进入区域 | |||
leaving | 离开区域 | |||
repid_moving | 快速移动 | |||
parking | 停车侦测 | |||
object_left | 物品遗留 | |||
object_take | 物品拿取 | |||
energy | 能耗 | excessive | 能耗用度异常 | |
parking | 停车场 | inout | 车辆进出 | |
pay | 离场支付 | |||
reserved | 车辆预约 | |||
canceled | 车辆预约取消 | |||
conference | 会议室 | start | 会议开始 | |
end | 会议结束 | |||
reserve | 会议室预定 | |||
cancel | 会议室取消 | |||
device_offline | 子设备离线 | |||
face_access | 人脸门禁 | inout | 人员进出 | |
device | 设备 | online | 上线 | |
offline | 离线 | |||
fault | 故障 | |||
elevator | 电梯 | block | 滞留 | |
delayed | 延误 | |||
illumination | 照明 | light_on | 开灯 | |
light_off | 关灯 | |||
people_flow | 人流 | excessive | 人流数量异常 | |
fire_protecting | 消防 | start_over | 开启 | |
monitoring | 监控 | |||
ack | 联动回答 | |||
dismiss | 联动回答消除 | |||
access_control | 进出控制 | visual_check | 安检人工检查 | |
bomb_suspect | 安检炸弹告警 | |||
liquid_suspect | 安检液体告警 | |||
ticketbarrier_fault | 闸机故障 | |||
escalator | 扶梯 | sub_device_fault | 子设备故障 | |
sub_device_subpar | 子设备欠佳 | |||
sub_device_offline | 自设备离线 | |||
component_fault | 组件错误 | |||
platform_gate | 站台门 | radar_device_fault | 防夹设备故障 | |
radar_detected | 防夹异物探知 | |||
broadcasting | 广播系统 | broadcast_fault | 广播设备故障 | |
lcd_controller_fault | lcd控制器故障 | |||
lcd_fault | lcd故障 | |||
environment | 环境系统 | toxic_gas_detected | 毒气监测告警 | |
robot | 机器人 | server_robot | 机器人服务 | |
work_order | 工单 | order_report | 工单上报 | |
order_cancel | 工单取消 | |||
order_response | 工单回复 |
# 4.1.2 格式详情
- 数据格式说明
字段名称 | 字段类型 | 级别 | 字段描述 | 必须 | 备注 |
---|---|---|---|---|---|
message_type | integer | 1 | 用于判断该消息的分类, 告警级别消息固定为1000300 | 是 | |
content | object | 1 | 告警内容字段 | 是 | |
id | string | 2 | 告警的唯一标识, 以uuid形式存储, 小写 | 是 | 隶属于一级字段content |
time | string | 2 | 时间, 毫秒时间戳 | 是 | 隶属于一级字段content |
type | string | 2 | 告警类型 | 是 | 隶属于一级字段content |
sub_type | string | 2 | 告警子类型 | 是 | 隶属于一级字段content |
level | integer | 2 | 告警级别: 1-通知类警告, 2-轻警告:48小时内处理, 3-中级警告:12小时内处理, 4-严重警告:2小时内处理, 5-致命警告:需要立即处理 | 是 | 隶属于一级字段content |
position | object | 2 | 位置信息, 若无, 则保留{} | 是 | 隶属于一级字段content |
din | string | 3 | 设备 din,若非设备告警,可为空字符串 | 否 | 隶属于二级字段position |
wId | string | 3 | 设备或位置 wId,若无该信息,可为空字符串 | 否 | 隶属于二级字段position |
text | string | 3 | 位置文字描述 | 否 | 隶属于二级字段position |
description | string | 2 | 告警补充描述信息,若无,则返回"" | 是 | 隶属于一级字段content |
advice | string | 2 | 处理建议,若无,则为"" | 是 | 隶属于一级字段content |
handler | object | 2 | 处理工具, 若无, 则保留{} | 是 | 隶属于一级字段content |
type | integer | 3 | 处理方式:"url" (打开链接处理) , "other"(其他处理方式) | 否 | 隶属于二级字段handler |
data | string | 3 | 对应的url或者其他的处理方式 | 否 | 隶属于二级字段handler |
status | string | 2 | 固定为"unprocessed",未被处理 | 是 | 隶属于一级字段content |
processor | array | 2 | 处理人员的所有信息, 若无, 则返回[],数组中每个元素为由id和name组成的object,{"id": "someid","name": "someone" } | 是 | 隶属于一级字段content |
id | string | 3 | 处理人的id | 否 | 隶属于二级字段processor |
name | string | 3 | 处理人的名字 | 否 | 隶属于二级字段processor |
image | object | 2 | 告警图像, 若无, 则保留{} | 是 | 隶属于一级字段content |
type | string | 3 | 图像类型, 1: base64编码, 2: url, 3:image_id, 4:temporary_image_id | 否 | 隶属于二级字段image |
data | base on type | 3 | 图片数据, type1:base64, type2:String, type3:String, type4:String | 是 | 隶属于二级字段image |
extend | object | 2 | 告警扩展信息, 具体字段根据业务作区分, 若无,则返回{} | 是 | 隶属于一级字段content |
- 格式样例
{
"message_type": 1000300,
"content": {
"id": "xxxx",
"time": "123454678000",
"type": "security_monitoring",
"sub_type": "invade",
"level": 1,
"position": {
"din": "",
"wId": "",
"text": ""
},
"description": "xxx",
"advice": "xxx",
"handler": {
"type": "",
"data": ""
},
"status": "xxxxxx",
"processor": [
{
"id": "someid",
"name": "someone"
}
],
"image": {
"type": 1,
"data": "base64 data"
},
"extend": {}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 4.2 消警数据(message_type:1000302)
# 4.2.1 通用可订阅topic
同一个事件的告警和消警共用同一个订阅topic,订阅了告警后无需重复订阅消警。
订阅type | type中文 | 订阅sub_type | sub_type中文 | 备注 |
security_monitoring | 安防监控 | invade | 入侵检测 | |
retention | 非法滞留 | |||
fire | 火灾监控 | |||
crowd | 异常聚集 | |||
tumble | 摔倒检测 | |||
violent_motion | 剧烈运动告警 | |||
getup | 起身告警 | |||
key_person_getup | 重点人员起身告警 | |||
standup | 人员站立告警 | |||
audio_abnormal | 声强突变告警 | |||
reach_height | 攀高告警 | |||
toilet_tarry | 如厕超时 | |||
yard_tarry | 放风超时 | |||
people_num_change | 人数突破告警 | |||
sit_quietly | 静坐告警 | |||
line_detection | 越线告警 | |||
trace_start | 任务开始 | |||
trace_end | 任务结束 | |||
trace_result | 任务返回结果 | |||
video_loss | 视频丢失 | |||
shelter | 视频遮挡 | |||
moving | 移动侦测 | |||
scene_change | 场景变更 | |||
overstep | 越界侦测 | |||
entering | 进入区域 | |||
leaving | 离开区域 | |||
repid_moving | 快速移动 | |||
parking | 停车侦测 | |||
object_left | 物品遗留 | |||
object_take | 物品拿取 | |||
energy | 能耗 | excessive | 能耗用度异常 | |
parking | 停车场 | inout | 车辆进出 | |
pay | 离场支付 | |||
reserved | 车辆预约 | |||
canceled | 车辆预约取消 | |||
conference | 会议室 | start | 会议开始 | |
end | 会议结束 | |||
reserve | 会议室预定 | |||
cancel | 会议室取消 | |||
device_offline | 子设备离线 | |||
face_access | 人脸门禁 | inout | 人员进出 | |
device | 设备 | online | 上线 | |
offline | 离线 | |||
fault | 故障 | |||
elevator | 电梯 | block | 滞留 | |
delayed | 延误 | |||
illumination | 照明 | light_on | 开灯 | |
light_off | 关灯 | |||
people_flow | 人流 | excessive | 人流数量异常 | |
fire_protecting | 消防 | start_over | 开启 | |
monitoring | 监控 | |||
ack | 联动回答 | |||
dismiss | 联动回答消除 | |||
access_control | 进出控制 | visual_check | 安检人工检查 | |
bomb_suspect | 安检炸弹告警 | |||
liquid_suspect | 安检液体告警 | |||
ticketbarrier_fault | 闸机故障 | |||
escalator | 扶梯 | sub_device_fault | 子设备故障 | |
sub_device_subpar | 子设备欠佳 | |||
sub_device_offline | 自设备离线 | |||
component_fault | 组件错误 | |||
platform_gate | 站台门 | radar_device_fault | 防夹设备故障 | |
radar_detected | 防夹异物探知 | |||
broadcasting | 广播系统 | broadcast_fault | 广播设备故障 | |
lcd_controller_fault | lcd控制器故障 | |||
lcd_fault | lcd故障 | |||
environment | 环境系统 | toxic_gas_detected | 毒气监测告警 | |
robot | 机器人 | server_robot | 机器人服务 | |
work_order | 工单 | order_report | 工单上报 | |
order_cancel | 工单取消 | |||
order_response | 工单回复 |
# 4.2.2 格式详情
- 数据格式说明
字段名称 | 字段类型 | 字段级别 | 字段描述 | 是否必须 | 备注 |
---|---|---|---|---|---|
message_type | integer | 1 | 用于判断该消息的分类, 消警级别消息固定为1000302 | 是 | |
content | object | 1 | 告警内容字段 | 是 | |
id | string | 2 | 告警的唯一标识, 与之前告警的id信息对应 | 是 | 隶属于一级字段content |
time | integer | 2 | 时间, 毫秒时间戳 | 是 | 隶属于一级字段content |
status | string | 2 | 若处理完成则为processed状态 | 是 | 隶属于一级字段content |
processor | array | 2 | 处理人员的所有信息, 若无, 则返回[],数组中每个元素为由id和name组成的object,{"id": "someid","name": "someone" } | 是 | 隶属于一级字段content |
id | string | 3 | 处理人的id | 否 | 隶属于二级字段processor |
name | string | 3 | 处理人的名字 | 否 | 隶属于二级字段processor |
process_description | string | 2 | 告警补充描述信息,若无,则返回"" | 是 | 隶属于一级字段content |
process_extend | object | 2 | 告警扩展信息, 具体字段根据业务作区分,详见 告警类型,若无,则返回{} | 是 | 隶属于一级字段content |
- 格式样例
{
"message_type": 1000302,
"content": {
"id": "xxxx",
"time": "123454678000",
"status": "processed",
"processor": [
{
"id": "someid",
"name": "someone"
}
],
"process_description":"",
"process_extend": {}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 4.3 通知类数据(message_type:1000400)
# 4.3.1 通用可订阅topic
订阅type | type中文 | 订阅sub_type | sub_type中文 | 备注 |
security_monitoring | 安防监控 | trace_start | 任务开始 | |
trace_end | 任务结束 | |||
trace_result | 任务返回结果 | |||
energy | 能耗 | energy | 能耗 | |
energy_efficiency | 能效 | energy_efficiency | 能效 | |
parking | 停车场 | inout | 车辆进出 | |
pay | 离场支付 | |||
reserved | 车辆预约 | |||
canceles | 车辆取消预约 | |||
conference | 会议室 | start | 会议开始 | |
end | 会议结束 | |||
reserve | 会议室预定 | |||
cancel | 会议室取消 | |||
face_access | 人脸门禁 | inout | 人员进出 | |
device | 设备 | |||
elevator | 电梯 | operational_parameter | 运行参数 | |
illumination | 照明 | light_on | 开灯 | |
light_off | 关灯 | |||
people_flow | 人流 | people_flow | 人流 | |
fire_protecting | 消防 | fire_protecting | 消防 | |
access_control | 进出控制 | access_control | 进出控制 | |
robot | 机器人 | server_robot | 机器人服务 | |
device_operation | 设备操作 | device_delete | 删除设备 | |
device_update | 更新设备 | |||
device_bind | 设备绑定 | |||
device_unbind | 设备解绑 | |||
device_upgrade_ota | 设备固件升级 | |||
device_change | 设备更换 |
# 4.3.2 格式详情
- 格式说明
字段名称 | 字段类型 | 级别 | 字段描述 | 必须 | 备注 |
---|---|---|---|---|---|
message_type | integer | 1 | 用于判断该消息的分类, 通知级别消息固定为1000400 | 是 | |
content | object | 1 | 通知内容字段 | 是 | |
id | string | 2 | 通知的唯一标识, 以uuid形式存储, 小写 | 是 | 隶属于一级字段content |
time | string | 2 | 时间, 毫秒时间戳 | 是 | 隶属于一级字段content |
type | string | 2 | 通知类型 | 是 | 隶属于一级字段content |
sub_type | string | 2 | 通知子类型 | 是 | 隶属于一级字段content |
position | object | 2 | 位置信息, 若无, 则保留{} | 是 | 隶属于一级字段content |
din | string | 3 | 设备 din,若非设备通知,可为空字符串 | 否 | 隶属于二级字段position |
wId | string | 3 | 设备或位置 wId,若无该信息,可为空字符串 | 否 | 隶属于二级字段position |
text | string | 3 | 位置文字描述 | 否 | 隶属于二级字段position |
description | string | 2 | 通知补充描述信息, 若无则放回 "" | 是 | 隶属于一级字段content |
image | object | 2 | 通知图像, 若无, 则保留{} | 是 | 隶属于一级字段content |
type | integer | 3 | 图像类型, 1: base64编码, 2: url, 3:image_id | 否 | 隶属于二级字段image |
data | base on type | 3 | 图片数据, type1:base64, type2:String, type3:String | 否 | 隶属于二级字段image |
extend | object | 2 | 扩展信息, 具体字段根据业务作区分; 若无,则保留{} | 是 | 隶属于一级字段content |
- 格式样例
{
"message_type": 1000400,
"content": {
"id": "xxxx",
"time": "123454678000",
"type": "security-monitoring",
"sub_type": "invade",
"position": {
"din": "",
"wId": "",
"text": ""
},
"description": "xxx",
"image": {
"type": 1,
"data": "base64 data"
},
"extend": {}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 4.4 通用类数据(message_type:1000500)
# 4.4.1 通用可订阅topic
订阅type | type中文 | 订阅sub_type | sub_type中文 | 备注 |
security_monitoring | 安防监控 | invade | 入侵检测 | |
retention | 非法滞留 | |||
fire | 火灾监控 | |||
crowd | 异常聚集 | |||
tumble | 摔倒检测 | |||
violent_motion | 剧烈运动告警 | |||
getup | 起身告警 | |||
key_person_getup | 重点人员起身告警 | |||
standup | 人员站立告警 | |||
audio_abnormal | 声强突变告警 | |||
reach_height | 攀高告警 | |||
toilet_tarry | 如厕超时 | |||
yard_tarry | 放风超时 | |||
people_num_change | 人数突破告警 | |||
sit_quietly | 静坐告警 | |||
line_detection | 越线告警 | |||
trace_start | 任务开始 | |||
trace_end | 任务结束 | |||
trace_result | 任务返回结果 | |||
video_loss | 视频丢失 | |||
shelter | 视频遮挡 | |||
moving | 移动侦测 | |||
scene_change | 场景变更 | |||
overstep | 越界侦测 | |||
entering | 进入区域 | |||
leaving | 离开区域 | |||
repid_moving | 快速移动 | |||
parking | 停车侦测 | |||
object_left | 物品遗留 | |||
object_take | 物品拿取 | |||
energy | 能耗 | excessive | 能耗用度异常 | |
parking | 停车场 | inout | 车辆进出 | |
pay | 离场支付 | |||
reserved | 车辆预约 | |||
canceled | 车辆预约取消 | |||
conference | 会议室 | start | 会议开始 | |
end | 会议结束 | |||
reserve | 会议室预定 | |||
cancel | 会议室取消 | |||
device_offline | 子设备离线 | |||
face_access | 人脸门禁 | inout | 人员进出 | |
device | 设备 | online | 上线 | |
offline | 离线 | |||
fault | 故障 | |||
elevator | 电梯 | block | 滞留 | |
delayed | 延误 | |||
illumination | 照明 | light_on | 开灯 | |
light_off | 关灯 | |||
people_flow | 人流 | excessive | 人流数量异常 | |
fire_protecting | 消防 | start_over | 开启 | |
monitoring | 监控 | |||
ack | 联动回答 | |||
dismiss | 联动回答消除 | |||
access_control | 进出控制 | visual_check | 安检人工检查 | |
bomb_suspect | 安检炸弹告警 | |||
liquid_suspect | 安检液体告警 | |||
ticketbarrier_fault | 闸机故障 | |||
escalator | 扶梯 | sub_device_fault | 子设备故障 | |
sub_device_subpar | 子设备欠佳 | |||
sub_device_offline | 自设备离线 | |||
component_fault | 组件错误 | |||
platform_gate | 站台门 | radar_device_fault | 防夹设备故障 | |
radar_detected | 防夹异物探知 | |||
broadcasting | 广播系统 | broadcast_fault | 广播设备故障 | |
lcd_controller_fault | lcd控制器故障 | |||
lcd_fault | lcd故障 | |||
environment | 环境系统 | toxic_gas_detected | 毒气监测告警 | |
robot | 机器人 | server_robot | 机器人服务 | |
work_order | 工单 | order_report | 工单上报 | |
order_cancel | 工单取消 | |||
order_response | 工单回复 |
# 4.4.2 格式详情
字段名称 | 字段类型 | 字段描述 | 层级隶属 |
---|---|---|---|
reportTs | string | 数据上报时间 | 一级字段 |
profile | struct | 对象档案对象 | 一级字段 |
appType | string | 对象所属数字空间标准系统 | profile |
poiCode | string | 设备或应用系统分类编号 | profile |
modelId | int | 数字空间对象模型编号,由数字空间进行分配 | profile |
properties | struct | 设备或应用模块属性对象,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。 | 一级字段 |
events | struct | 设备或应用模块事件对象,设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。 | 一级字段 |
eventName | struct | 事件子业务类型,事件名称。 | events |
eventTs | Long | 事件发生时间 | eventName |
eventType | int | 事件类型,0-告警,1-通知,2-消警 | eventName |
describe | string | 事件描述 | eventName |
level | int | 告警等级,eventType为0时携带,告警级别: 1-通知类警告, 2-轻警告:48小时内处理, 3-中级警告:12小时内处理, 4-严重警告:2小时内处理, 5-致命警告:需要立即处理,默认等级为3。 | eventName |
services | struct | 设备或应用模块 服务对象,设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。 | 一级字段 |
- 格式样例
{
"reportTs": 1572702827618,
"profile": {
"modelId": 1000, //微瓴数字空间负责分配
"appType":"test application", //微瓴数字空间负责分配,
"poiCode": "t0000000" //微瓴数字空间负责分配
},
"properties": {
},
"events": {
"$eventName":{
"eventTs":1572702827618,
"eventType":1, //0告警事件,1通知事件,2消警事件
"describe":"事件描述",
"level": 3
}
},
"services": {
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 5. 定制化实时推送
# 5.1 对象状态数据推送
# 5.1.1 设备对象(IOT上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 设备上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 栏中填入 profile.poiCode = $所配置设备的相应poiCode
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 有效周期选择 永久有效
- 点击 确认
# 5.1.2 应用对象(report接口上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 应用上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 栏中填入 profile.poiCode = $所配置设备的相应poiCode
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 选择之前配置好的 触发事件和 执行动作
- 有效周期选择 永久有效
- 点击 确认
# 5.2 规则匹配推送
# 5.2.1 设备对象触发通知(IOT上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 设备上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 栏中填入 相应规则,中间用点连接结构体的层级
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 有效周期选择 永久有效
- 点击 确认
# 5.2.2 应用对象触发通知(report接口上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 应用上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 相应规则,中间用点连接结构体的层级
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 选择之前配置好的 触发事件和 执行动作
- 有效周期选择 永久有效
- 点击 确认
# 5.2.3 设备对象触发告警(IOT上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 设备上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 相应规则,中间用点连接结构体的层级
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 有效周期选择 永久有效
- 点击 确认
# 5.2.4 应用对象触发告警(report接口上报)
- 点击 联动配置 菜单栏选择 事件管理
- 点击右上角 新增事件
- 输入自定义 事件名称 及 事件说明
- 选择 应用上报触发
- 自定义选择按照设备类型触发或者按照具体设备触发,然后选择相应的设备类型或者具体设备
- 在 触发消息 相应规则,中间用点连接结构体的层级
- 点击 确认
- 点击 联动配置 菜单栏选择 动作管理
- 点击右上角 新增动作
- 输入自定义 动作名称 及 动作说明
- 选择 转换为通知
- 自定义选择 通知类型 及 通知子类型,如下拉框中不包含所需类型,可自定义,自定义类型及子类型采用小驼峰命名法(下划线连接),不可使用中文
- 自定义选择 通知位置
- 点击 确认
- 点击 联动配置 菜单栏选择 联动管理
- 点击右上角 新增联动
- 输入自定义 联动名称 及 联动说明
- 选择之前配置好的 触发事件和 执行动作
- 有效周期选择 永久有效
- 点击 确认
# 6.告警及消警数据子类型
针对于不同的告警子分类, 告警消息的 extend 字段中, 包含有不同的字段
# 6.1. security_monitoring(安防告警)
# 6.1.1 invade(入侵检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.2 retention(非法滞留)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.3 fire(火灾监控)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.4 crowd(异常聚集)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.5 tumble(tof摔倒)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.6 tumble_arm(视觉跌倒检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.7 shibian_radar_tumble(雷达跌倒检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.8 safety_helmet(安全帽检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.9 without_mask(口罩检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.10 parking_violation(违停占道)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.1.11 crossing_line(跨线检测)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.2. energy(能耗告警)
# 6.2.1 excessive(能耗用度异常)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
current_value | integer | 电量用度 | "current_value" : 520.1314 |
# 6.3. energy_efficiency(能效告警)
# 6.4. parking(停车场告警)
# 6.5. conference(会议室告警)
# 6.6 face_access(人脸门禁告警)
# 6.7 elevator(电梯告警)
# 6.7.1 block(滞留)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.7.2 delayed(延误)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.8 illumination(照明告警)
# 6.8.1 double_switch(灯光控制)(双键入墙开关)
# 6.8.2 single_switch(灯光控制)(单键入墙开关)
# 6.9 people_flow(人流告警)
# 6.9.1 excessive(人流数量异常)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
current_value | integer | 当前人流 | "current_value" : 1024 |
# 6.10 fire_protecting(消防告警)
# 6.10.1 fire_alarm(火警)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
- | - | - | - |
- 数据示例
{
"message_type": 1000300,
"content": {
"id": "xxxx",
"time": "123454678000",
"type": "fire_protecting",
"sub_type": "fire_alarm",
"level": 5,
"position": {
"din": "",
"wId": "",
"text": ""
},
"description": "xxx",
"advice": "xxx",
"handler": {
"type": "",
"data": ""
},
"status": "processed",
"processor": [],
"image": {
},
"extend": {}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 6.11 access_control(门禁告警)
# 6.12 HAVC(暖通空调系统告警)
# 6.13 robot(机器人告警)
# 6.14 environment(环境告警)
# 6.14.1 door_and_win_sensor(门窗传感器)
# 6.14.2 human_body_sensor(人体传感器)
# 6.14.3 tem_and_hum_sensor(温湿度传感器)
# 6.14.4 smoke_detector(烟雾报警器)
# 6.14.5 gas_leak(燃气报警器)
# 6.14.6 flood_sensor(水浸传感器)
# 6.14.7 illuminance_sensor(照度感应器)
# 6.15 work_order(工单系统)
# 6.15.1 order_response(工单回复)
- extend对象中所含字段详情
字段名称 | 字段类型 | 字段描述 | 示例 | 备注 | 层级隶属 |
---|---|---|---|---|---|
guid | string | 唯一编号 | "guid":"xxxxxxxxxxxxx" | ||
visitTime | struct | 回访时间 | "visitTime":"" | ||
recorder | int | 回访人 | "recorder":"" | ||
reviewContext | string | 回访记录 | "reviewContext":"" | ||
customerSatify | string | 客户满意度 | "customerSatify":"" | 0:满意 1:不满意 | |
finishTime | string | 报修人电子邮件 | "email":"" | ||
remark | string | 故障工作记录 | "remark":"" | ||
satisfaction | enum | 工程维修满意度 | "satisfaction":"" | 0:满意 1:不满意 | |
reason | enum | 不满意原因 | "reason":"" | ||
owner | string | 维修人 | "owner":"" | ||
state | string | 表单状态 | "state":"" | 0:待分派 1:故障处理中 2:已完成 3:已回访 4:待物料 5:待承包商 | |
stateChangeTime | enum | 状态更新时间 | "stateChangeTime":1 | ||
receivedTime | string | 表单接收时间 | "receivedTime": | ||
stateCode | enum | 状态码 | "stateCode":0 | 0 可用 1 不可用 |
# 6.15.2 order_report(工单上报)
- extend对象中所含字段详情
字段名称 | 字段类型 | 字段描述 | 示例 | 备注 | 层级隶属 |
---|---|---|---|---|---|
guid | string | 唯一编号 | "guid":"xxxxxxxxxxxxx" | events.order_report | |
reportedPersonInfo | struct | 上报人信息 | "reportedPersonInfo":{} | events.order_report | |
requestorType | int | 报修人类型 | "requestorType":"" | reportedPersonInfo | |
requestorName | string | 报修人姓名 | "requestorName":"" | reportedPersonInfo | |
phoneNumber | string | 报修人手机号码 | "phoneNumber":"" | reportedPersonInfo | |
string | 报修人电子邮件 | "email":"" | reportedPersonInfo | ||
fax | string | 报修人传真 | "fax":"" | reportedPersonInfo | |
repairType | enum | 报修方式 | "repairType":2 | 0: 电话 1:Email 2:微信 3:上门 4:保安巡逻 | events.order_report |
level | enum | 紧急级别 | "level":3 | 1:常规 3:重要 5:紧急 | events.order_report |
describe | string | 故障说明 | "describe":"" | events.order_report | |
remark | string | 备注 | "remark":"" | events.order_report | |
formType | enum | 表单类型 | "formType":1 | 0:正常 1:补单 | events.order_report |
address | struct | 地址对象 | "address":{} | events.order_report | |
roomName | string | 房间号 | "roomName":"" | address | |
floor | string | 楼层 | "floor":"" | address | |
buildingName | string | 楼栋名称 | "buildingName":"" | address | |
stateCode | enum | 状态码 | "stateCode":0 | 0 可用 1 不可用 | address |
# 6.15.3 order_cancel(工单取消)
- extend对象中所含字段详情
字段名称 | 字段类型 | 字段描述 | 示例 | 备注 | 层级隶属 |
---|---|---|---|---|---|
guid | string | 唯一编号 | "guid":"xxxxxxxxxxxxx" | ||
reportedPersonInfo | struct | 上报人信息 | "reportedPersonInfo":{} | ||
requestorType | int | 报修人类型 | "requestorType":"" | reportedPersonInfo | |
requestorName | string | 报修人姓名 | "requestorName":"" | reportedPersonInfo | |
phoneNumber | string | 报修人手机号码 | "phoneNumber":"" | reportedPersonInfo | |
string | 报修人电子邮件 | "email":"" | reportedPersonInfo | ||
fax | string | 报修人传真 | "fax":"" | reportedPersonInfo | |
repairType | enum | 报修方式 | "repairType":2 | 0: 电话 1:Email 2:微信 3:上门 4:保安巡逻 | |
level | enum | 紧急级别 | "level":3 | 1:常规 3:重要 5:紧急 | |
describe | string | 故障说明 | "describe":"" | ||
remark | string | 备注 | "remark":"" | ||
formType | enum | 表单类型 | "formType":1 | 0:正常 1:补单 | |
address | struct | 地址对象 | "address":{} | ||
roomName | string | 房间号 | "roomName":"" | address | |
floor | string | 楼层 | "floor":"" | address | |
buildingName | string | 楼栋名称 | "buildingName":"" | address | |
stateCode | enum | 状态码 | "stateCode":0 | 0 可用 1 不可用 | address |
# 6.16 device(设备告警)
# 6.16.1 online(上线)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.16.2 offline(离线)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.16.3 fault(报错)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 6.17 curtain_wall(幕墙)
# 6.17.1 component_fault(元件故障)
# 7. 通知数据子类型
针对于不同的告警子分类, 告警消息的 extend 字段中, 所必须包含的子字段及其类型属性
# 7.1 security_monitoring(安防通知)
# 7.1.1 trace_start(任务开始)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
success | Boolean | 轨迹追踪任务是否成功开启 | "success":True |
error_msg | string | 错误信息, 若无报错, 则返回"OK" | "error_msg":"OK" |
task_id | string | 任务id | "task_id":"03189df8-4b00-4041-9b2a-81ce1a2a94fc" |
# 7.1.2 trace_end(任务结束)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
success | Boolean | 轨迹追踪任务是否成功结束 | "success":True |
error_msg | string | 错误信息, 若无报错, 则返回"OK" | "error_msg":"OK" |
task_id | string | 任务id | "task_id":"03189df8-4b00-4041-9b2a-81ce1a2a94fc" |
# 7.1.3 trace_result(任务返回结果)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
success | Boolean | 轨迹追踪任务是否查询成功 | "success":True |
error_msg | string | 错误信息, 若无报错, 则返回"OK" | "error_msg":"OK" |
task_id | string | 任务id | "task_id":"03189df8-4b00-4041-9b2a-81ce1a2a94fc" |
is_finished | Boolean | 结果返回为异步,查询可能返回多次result,该字段返回true时说明此次结果返回结束 | "is_finished":True |
trace_list | array | 轨迹追踪的记录,为对象的数组,对象内部包括设备din,设备经纬度,高度,时间戳,image_id,person_id,相似度等 | [{'timestamp': '1556071040858', 'din': '144115194532172045', 'image_id': '9c6d1104-0bc3-424c-aa2e-2eac8920dc44', 'person_id': 'B0CD2705-5C4E-4CD3-8D3A-41B901BED094', 'similarity': 4}, {'timestamp': '1556071042609', 'din': '144115194549121985', 'image_id': '955a4bc1-e1f5-4638-8e2c-489eba62c0e4', 'person_id': '3240A4BB-93D6-4B3B-A679-6DD1B281906E', 'similarity': 3}] |
# 7.2 energy(能耗通知)
# 7.3 energy_efficiency(能效通知)
# 7.4 parking(停车场通知)
# 7.4.1 inout(车辆进出)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 备注 |
---|---|---|---|
inout_status | String | 0:进场车辆, 1:出场车辆 | "inout_status":0 |
plate_num | String | 当前事件车牌号 | "plate_num":"粤B88888" |
car_type | integer | 车辆类型:0:未知 1:临时⻋车辆; 2:⽉月卡⻋车辆; 3:固定⻋车位; 4:VIP; 5:预约⻋车辆; 6:⿊黑名单⻋车辆; | "car_type":1 |
vehicle_type | integer | 车辆类型:0:未知 1:大型车 2:中型车 3:小型车 | "vehicle_type":1 |
lane_type | integer | 车辆类型:0:未知 1:人工 2:自动(ETC, 无感) 9:其他 | "lane_type":1 |
parking_lot_id | string | 停⻋车场id | "parking_lot_id":"xxxxxxxxx" |
parking_lot_name | string | 停⻋车场名称 | "parking_lot_name": "腾大停车场" |
free_berth | integer | 停车场空余车位数 | "free_berth":12 |
occupy_berth | integer | 停车场当前车位数 | "occupy_berth":435 |
# 7.4.2 pay(车辆支付数据)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | |
---|---|---|---|
plate_num | String | 当前事件车牌号 | "plate_num":"粤B88888" |
car_type | integer | 车辆类型:0:未知 1:临时⻋车辆; 2:⽉月卡⻋车辆; 3:固定⻋车位; 4:VIP; 5:预约⻋车辆; 6:⿊黑名单⻋车辆; | "car_type":1 |
pay_type | integer | 0:免费; 1:现⾦金金; 2:账户余额; 3:购物码; 4:月卡; 5:微信⽀支付; 6:微信免密; 7:支付宝; 8:支付宝免密 9:混合⽀支付; 99:其他(未知) | "pay_type":99 |
in_time | integer | "in_time":148813512323 | |
park_duration | integer | 停车时长, 以毫秒为单位 | "park_duration":1000 |
charge_duration | integer | 收费时长, 以毫秒为单位 | "charge_duration":11111 |
amount | double | 收费金额, 以元为单位 | "amount":20.00 |
parking_lot_id | string | 停⻋车场id | "parking_lot_id":"xxxxxxxxx" |
parking_lot_name | string | 停⻋车场名称 | "parking_lot_name": "腾大停车场" |
# 7.4.3 reserved(车辆预约)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 备注 |
---|---|---|---|
reservationId | String | 预约事件唯一标识 | "reservationId":“xxxxxxxxxx” |
visitorId | String | 访客唯一标示 | "visitorId":"66666" |
contact_number | string | 车辆类型:0:未知 1:临时⻋车辆; 2:⽉月卡⻋车辆; 3:固定⻋车位; 4:VIP; 5:预约⻋车辆; 6:⿊黑名单⻋车辆; | "car_type":1 |
car_description | string | 车辆描述 | "car_description":"迈巴赫S680" |
plate_number | string | 车牌号码 | "plate_number":"粤B66666" |
start_ts | timestamp | 允许通过起始时间 | "start_ts":148813512323 |
expire_ts | timestamp | 允许通过截止时间 | "expire_ts"148813912323 |
parking_lot_id | string | 停⻋车场id | "parking_lot_id":"xxxxxxxxx" |
parking_lot_name | string | 停⻋车场名称 | "parking_lot_name": "腾大停车场" |
# 7.4.4 canceled(车辆取消预约)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.4.5 parking_place_information(停车位信息)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.5 conference(会议室通知)
# 7.5.1 start(会议开始)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.5.2 end(会议结束)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.5.3 reserved(已被预定)
- extend对象中所含字段详情****
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.5.4 canceled(已取消)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.6 face_access(人脸门禁通知)
# 7.6.1 inout(人流进出)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
inout_status | String | 人员进出, in代表进入, out代表离开 | "inout_status":"in" |
recognition_id | String | 当前通过的人员的id | "recognition_id":"weilinktest" |
# 7.7 device(设备通知)
# 7.8 elevator(电梯通知)
# 7.8.1 operational_parameter(运行参数)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
weight_load | integer | 电梯轿厢内负载情况, 单位为KG | "weight_load":120 |
subdoor_status | integer | 电梯副门状态,0代表关,1代表开 | "subdoor_status": 1 |
maindoor_status | integer | 电梯主门状态,0代表关,1代表开 | "maindoor_status": 1 |
current_floor | integer | 电梯当前所在楼层 | "current_floor": 15 |
# 7.9 illumination(照明通知)
# 7.9.1 light_on(开灯)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.9.2 light_off(关灯)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.9.3 brightness_switch(亮度调节)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
light_brightness | integer | 灯光亮度 | "light_brightness":100 |
# 7.10 people_flow(人流通知)
# 7.11 fire_protecting(消防通知)
# 7.12 access_control(门禁通知)
# 7.12.1 inout(通过闸机)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 | 字段级别 |
---|---|---|---|---|
personInfo | struct | 人员信息 | 1 | |
recognitionId | string | 人员系统唯一标号 | 2 | |
personName | string | 人员姓名 | 2 | |
personType | integer | 人员类型 0:临时可通过 1:定时可通过 2:管理员 3:未授权通过 4:黑名单 9:未知 | 2 | |
accessType | integer | 通过闸机类型 0:人脸验证 1:RFID卡验证 2:二维码验证 3:手掌验证 9:未知类型 | 1 | |
event | integer | 进出事件 0:进入, 1:离开 | 1 |
# 7.13 robot(机器人通知)
# 7.13.1 running_status(运行状态参数)
- extend对象中所含字段详情 除经纬度外所有number, integer型数据值为-1时代表底层未上报此数据
扩展字段名 | 扩展字段描述 | 扩展字段数据类型 | 示例 |
---|---|---|---|
RobotType | 机器人类型 1:服务机器人 2:安防机器人 | integer |
# 7.13.1 server_robot(机器人通知)
- extend对象中所含字段详情 除经纬度外所有number, integer型数据值为-1时代表底层未上报此数据
扩展字段名 | 扩展字段描述 | 扩展字段数据类型 | 示例 | 字段级别 |
---|---|---|---|---|
RobotType | 机器人类型 1:服务机器人 2:安防机器人 | integer | 1 | |
Status | 机器人状态Object | object | 1 | |
机器人坐标系统 | string | 2 | ||
x | 机器人所在坐标X | number | 2 | |
y | 机器人所在坐标Y | number | 2 | |
azimuth | 机器人朝向(坐标方位角) | number | 2 | |
velocity | 机器人速度 | number | 2 | |
powerPer | 机器人电量百分比 | number | 2 | |
runTemperature | 机器人温度 | number | 2 | |
estop | 机器人急停状态 | Boolean | 2 | |
bumper | 机器人碰撞信息 | Boolean | 2 | |
curFloor | 当前楼层 | string | 2 | |
taskStatus | 任务状态 | Boolean | 2 | |
environmentSensor | 环境传感器object | object | 1 | |
temperature | 环境温度 | numbern | 2 | |
humidity | 环境湿度 | number | 2 | |
noiseDecibel | 环境噪音 | number | 2 | |
smokeDetector | 环境烟雾 | number | 2 | |
AQI | 空气质量指数 | number | 2 | |
PM1_0 | 环境PM1.0 | number | 2 | |
PM2_5 | 环境PM2.5 | number | 2 | |
PM10 | 环境PM10 | number | 2 | |
CO | 一氧化碳 | number | 2 | |
CO2 | 二氧化碳 | number | 2 | |
H2 | 氢气 | number | 2 | |
SO2 | 二氧化硫 | number | 2 | |
H2S | 硫化氢 | number | 2 | |
Nox | 氮氧化物 | number | 2 | |
CL | 氯气 | number | 2 | |
HCHO | 甲醛 | number | 2 | |
TVOC | 挥发性有机物 | number | 2 | |
IR | 红外强度 | number | 2 | |
UV | 紫外强度 | number | 2 | |
radiation | 放射强度 | number | 2 | |
Task | 任务Object | object | 1 | |
taskStatus | 用户id 1:执行中, 2:成功, 3:失败, 4:被取消 | string | 2 | |
taskID | 任务编号 | integer | 2 | |
destinationName | 目的地名称 | string | 2 | |
destinationX | 目的地坐标X | number | 2 | |
destinationY | 目的地坐标Y | number | 2 | |
destinationFloor | 目标楼层 | string | 2 | |
startTime | 任务开始时间 | long | 2 | |
endTime | 任务结束时间 | long | 2 |
# 7.14 visitor(访客)
# 7.14.1 appointment(访客预约)
- extend对象中所含字段详情
扩展字段名 | 扩展字段数据类型 | 扩展字段描述 | 示例 |
---|---|---|---|
Null | - | - | - |
# 7.15 device_operation(设备操作)
# 7.15.1 device_delete(删除设备)
{"content":{"type":"device_operation","subType":"device_delete","msg":"设备【300000000000200034】被删除"},"message_type",1000400}
# 7.15.2 device_update(更新设备)
{"content":{"type":"device_operation","subType":"device_update","msg":"设备【300000000000200034】名称更新为【滨海大厦7F走道】"},"message_type",1000400}
# 7.15.3 device_bind(设备绑定)
{"content":{"type":"device_operation","subType":"device_bind","msg":"设备【300000000000200034】绑定了应用【20548】"},"message_type",1000400}
# 7.15.4 device_unbind(设备解绑)
{"content":{"type":"device_operation","subType":"device_unbind","msg":"设备【300000000000200034】解绑定了应用【20548】"},"message_type",1000400}
# 7.15.5 device_upgrade_ota(设备固件升级)
{"content":{"type":"device_operation","subType":"device_upgrade_ota","msg":"设备【300000000000200034】更换固件升级为【v1.0.1】"},"message_type",1000400}
# 7.15.6 device_change(设备更换)
{"content":{"type":"device_operation","subType":"device_change","msg":"设备【300000000000200034】更换为【300000000000200035】"},"message_type",1000400}
# 7.15.7 device_new_otaversion(新固件版本)
{"content":{"type":"device_operation","subType":"device_new_otaversion", "msg":"产品【1700006185】创建新固件版本【1.1.1】","productId":"1700006185","ota_version":"1.1.1","description": "版本简介", "name": "test","ota_time": 1658225003613},"message_type":1000400}
← 对象模型规范及数据标准定义 空间数据 →