监控设备接口
初始化基础数据(北向)
URL地址:http://<ip>:<port>/api/initbasedata
HTTP POST方式,请求参数为一个JSON字符串,示例如下:
json
{
"stations": [
{
"station_id": "S001",
"station_name": "测试监控站点1"
}
],
"types": [
{
"type_id": "T001",
"type_name": "温湿度"
}
],
"levels": [
{
"level_name": "紧急报警",
"priority": 5,
"alarm_color": "#FF0000",
},
{
"level_name": "严重报警",
"priority": 4
},
{
"level_name": "一般报警",
"priority": 3
},
{
"level_name": "预警",
"priority": 2
}
]
}
JSON字符串由3部分组成,stations(监控站点)、types(设备类型)、levels(告警等级)。ID、名称命名没有强制要求,可以参考自身监控系统的命名规范。
监控站点属性描述
属性名称 | 说明 |
---|---|
station_id | 监控站点ID |
station_name | 监控站点名称 |
设备类型属性描述
属性名称 | 说明 |
---|---|
type_id | 设备类型ID |
type_name | 设备类型名称 |
注意
①3D大屏中的检视面板与设备类型相关联,在初始化基础数据后,需要在DCVM后台配置检视面板图标,再次初始化不影响已经配置的图标;
②温湿度设备的设备类型名称必须包含“温湿度”字样;
③门禁设备的设备类型名称必须为“门禁”字样。
告警等级属性描述
属性名称 | 说明 |
---|---|
level_name | 告警等级名称 |
priority | 优先级,优先级越大,表示告警越严重,值为5、4、3、2、1之一,约定:紧急报警=5,严重报警=4,一般报警=3,预警=2,正常=1 |
alarm_color | 告警闪烁颜色,可以为空,为空将使用默认颜色值 |
HTTP返回结果为一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "初始化基础数据成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
初始化监控设备数据(北向)
URL地址:http://<ip>:<port>/api/initdevicedata
HTTP POST方式,参数为JSON字符串,请求JSON示例:
json
[
{
"station_id": "S001",
"device_id": "WSD002",
"type_id": "T001",
"device_name": "温湿度2",
"properties": [
{
"property_id": "P001",
"property_type": "参数",
"property_name": "温度",
"property_value": "23.97",
"remark": "℃"
},
{
"property_id": "P002",
"property_type": "参数",
"property_name": "湿度",
"property_value": "68.43",
"remark": "%",
"flag": "1",
"time": "2022-08-23 21:16:32"
}
]
}
]
JSON字符串包含监控设备字段和监控设备属性字段。
监控设备字段描述
属性名称 | 说明 |
---|---|
device_id | 设备ID |
type_id | 设备类型ID |
device_name | 设备名称 |
监控设备属性字段描述
属性名称 | 说明 |
---|---|
property_type | 属性类型,值为“参数”、“状态”、“告警”之一 |
property_id | 属性ID |
property_name | 属性名称 |
property_value | 实时属性值,property_type为“告警”时,属性值为“正常”或“告警” |
remark | 备注。property_type为“参数”时表示单位;property_type为“告警”时表示告警等级,告警等级为名称而不是优先级;property_type为“状态”时表示原始枚举值数字。 |
flag | 标记,非必须。当property_type为“参数”或“状态”时生效,用来表示当前参数值是否处于告警状态,告警状态的值将标红显示。值为字符串形式的“0”、“1”,其中“1”表示告警状态。 |
time | 更新时间,非必须,格式必须为yyyy-MM-dd HH:mm:ss |
注意
property_type为“状态”时,property_value表示可阅读的状态值,remark表示原始枚举值数字(仅在需要显示原始枚举数字时才设置值)。举例说明,假设“0”表示断开,“1”表示闭合,则property_value设置为“断开”或“闭合”;如果需要显示原始枚举数字,则remark设置为“0”或“1”,否则无需设置remark。
HTTP返回结果为一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "初始化监控设备数据成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
注意
①此接口可以同时设置多个设备的数据,不要一次性传输大量数据,也不要一次性只传输一个设备,可以把设备打组,一次传输一个组,一个组的数据量不要超过1M,推荐10个设备为1组;
②对于某些设备,如温湿度、漏水、烟感等,在监控系统中经常会放在1个模块中,这时候应该把模块拆分成多个独立设备;
③DCVM在展示设备参数时,不会对参数值进行任何转换,因此需要注意参数值的可读性;特别的,门禁设备必须包含“状态”二字的参数,其值为“门开”或“门闭”,否则无法正确显示门的开闭;温湿度设备必须包含参数“温度”、“湿度”,否则3D温湿度小面板无法正确显示数值;
④此接口的数据存在较多不经常更新的部分,更适合用作初始化,推送实时数据请使用接口 推送监控设备实时数据(北向)。
推送监控设备实时数据(北向)
URL地址:http://<ip>:<port>/api/pushdevicedata
HTTP POST方式,参数为JSON字符串。仅需更新值的JSON示例如下所示:
json
{
"S001": {
"WSD002": {
"P001": "18.88",
"P002": "66.66"
}
}
}
其中,最外层的键值为监控站点ID,中间层的键值为监控设备ID,最里层的键值为监控设备属性ID。此接口只包含必要的主键和有变化的属性值,最大程度减小了数据传输量。
如果需要更新值、值的告警状态标记、状态原始枚举值、更新时间,JSON示例如下所示:
json
{
"S001": {
"WSD002": {
"P001": {//参数
"value": "18.88",
"flag": "0"
},
"P002": {
"value": "66.66",
"flag": "1"
},
"P003": {//状态
"value": "运行正常",
"flag": "0",
"remark": "0"
},
"P004": {//告警
"value": "正常",
"time": "2022-08-23 21:17:46"
}
}
}
}
最里层的value表示值,flag表示值的告警状态标记,remark表示状态原始枚举值,time表示更新时间(格式必须为yyyy-MM-dd HH:mm:ss
)。其中value是必须的,flag、remark、time按需传,如果都传,需注意其表示的具体含义。
返回一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "推送监控设备实时数据成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
删除所有监控设备告警(北向)
URL地址:http://<ip>:<port>/api/_clearalarms_
HTTP GET方式,无参数。此为隐藏接口,一般情形无需调用。
HTTP返回结果为一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "删除所有告警成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
重置所有监控设备告警(北向)
URL地址:http://<ip>:<port>/api/_resetalarms_
HTTP GET方式,无参数。此为隐藏接口,一般情形无需调用。
HTTP返回结果为一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "重置所有告警成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
设备控制(南向)
此接口由监控厂家根据自身监控系统量身定制,以供DCVM调用,达到控制监控设备的目的。接口必须为HTTP GET方式,编码方式为UTF-8,参数自定义,返回值必须为JSON字符串,格式如下:
json
{
"code": "1",
"message": "控制命令执行成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
查询巡检日志列表(北向)
URL地址:http://<ip>:<port>/api/queryroaminglog?start_date=2022-04-22&end_date=2022-04-23
HTTP GET请求方式,参数描述如下。
start_date:开始日期,格式为“yyyy-MM-dd”,非必须。
end_date:结束日期,格式为“yyyy-MM-dd”,非必须。
返回一个JSON字符串,示例如下:
json
{
"data": [
{
"date": "2022-04-22",
"time": "12:00"
},
{
"date": "2022-04-22",
"time": "21:25"
},
{
"date": "2022-04-22",
"time": "21:36"
}
],
"code": "1",
"message": "查询巡检日志列表成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。当code为“1”时,将包含data属性,data属性为对象列表,表示巡检日志列表,其中的“date”表示巡检日志的日志,“time”表示巡检计划的时间点。
删除巡检日志(北向)
URL地址:http://<ip>:<port>/api/deleteroaminglog?date=2022-04-22&time=12:00
HTTP GET请求方式,参数描述如下。
date:日期,格式为“yyyy-MM-dd”,必须。
time:巡检计划时间点,格式为“HH:mm”,必须。
返回一个JSON字符串,示例如下:
json
{
"code": "1",
"message": "删除巡检日志成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。
获取巡检日志(北向)
URL地址:http://<ip>:<port>/api/getroaminglog?date=2022-04-22&time=21:30
HTTP GET请求方式,参数描述如下。
date:日期,格式为“yyyy-MM-dd”,必须。
time:巡检计划时间点,格式为“HH:mm”,必须。
返回一个JSON字符串,示例如下:
json
{
"data": [
{
"time": "21:37:17",
"station_name": "监控站点1",
"device_name": "列头柜3",
"device_status": "告警",
"alarm_content": "通讯失败;B主路停电或单相掉电"
},
{
"time": "21:37:29",
"station_name": "监控站点1",
"device_name": "空调3",
"device_status": "正常",
"alarm_content": ""
}
],
"code": "1",
"message": "获取巡检日志成功!"
}
其中,code表示接口执行状态,值为“0”(失败)或“1”(成功);message表示消息。当code为“1”时,将包含data属性,data属性为对象列表,表示巡检日志内容列表。巡检日志内容对象属性描述如下:
属性名称 | 说明 |
---|---|
time | 巡检时间 |
station_name | 监控基站 |
device_name | 设备名称 |
device_status | 设备状态,值为“告警”或“正常” |
alarm_content | 告警内容,设备状态为“正常”时值为空 |