
# 设备智能告警消息结构体
#### 功能介绍
设备智能告警消息：设备安装智能告警算法后，当算法检测出相应场景后推送的相应消息。
设备智能告警消息体的message_type值为device_alarm。
设备有多种算法类型，且每种算法类型包含不同告警类型，可参照[告警算法与告警类型关系表]。
表1message_type为device_alarm时，data结构体如下： 
| 字段名             | 类型                                                                | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| device_id       | String                                                            | 设备ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| device_name     | String                                                            | 设备名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| channel_type    | String                                                            | 通道类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| channel_id      | String                                                            | 通道ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| channel_name    | String                                                            | 通道名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| alarm_type      | String                                                            | 告警类型：枚举值参考[告警算法与告警类型关系表]                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| alarm_type_name | String                                                            | 告警类型名称：设备触发告警时传入或者第三方算法自定义传入。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| alarm_status    | String                                                            | 告警状态 枚举值： - pulse （突发无持续时间，部分设备告警没有持续时间只有一个脉冲）  - start （开始告警，与结束告警stop搭配）  - stop（结束告警，目前不会推送该状态）   |
| alarm_time      | String                                                            | 告警时间：格式：yyyy-MM-ddTHH:mm:ss+08:00                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| alarm_uuid      | String                                                            | 告警UUID：告警唯一标识，根据时间和设备ID等字段生成，可根据该UUID查询告警图片，参考[告警图片下载](https://support.huaweicloud.com/api-ivm/ivm_03_0082.html)                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| classification  | String                                                            | 告警算法类型：枚举值参考[告警算法与告警类型关系表]                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| target          | [Target] object | 目标告警数据：当设备具备目标识别的能力，且在设备上开启了目标告警的开关时，就会上报目标告警信息。此时classification为TARGET（目标告警）。非必填                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| alarm_attr      | String                                                            | 扩展字段，后续用于消警，暂时取值为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| enter_count     | int                                                               | 进入人数：alarm_type为customer_flow_statistics_alarm时，才有这个字段                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| leave_count     | int                                                               | 离开人数：alarm_type为customer_flow_statistics_alarm时，才有这个字段                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| repeat_count    | int                                                               | 徘徊人数：alarm_type为customer_flow_statistics_alarm时，才有这个字段                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表2Target 
| 字段名               | 类型     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| alarm_uuid        | String | 告警UUID：告警唯一标识，根据时间和设备ID等字段生成，可根据该UUID查询告警图片，参考[告警图片下载](https://support.huaweicloud.com/api-ivm/ivm_03_0082.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| target_id         | String | 目标告警ID，值为 -1 时表示抓拍图片对应的目标还未保存在设备库                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| name              | String | 姓名                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| gender            | String | 性别                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| organization      | String | 组织                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| age               | Int    | 年龄（大于等于0，0为未知年龄）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| age_group         | String | 年龄区间，枚举值： - UNKNOWN 未知，年龄为0  - CHILDREN 儿童，年龄大于等于1,小于12  - JUVENILE 少年，年龄大于等于12，小于18  - YOUTHS 青年，年龄大于等于18，小于36  - MIDDLE_AGE 中年，年龄大于等于36，小于60  - OLD_AGE 老年，年龄大于60   |
| similarity        | Int    | 相似度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| target_alarm_type | String | 告警类型。设备上传的目标分组名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| group_id          | Int    | 目标库ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| appear_cnt        | Int    | 频率次数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| frequency_id      | String | 频次ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| targetgroup_name  | String | 目标库名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表3告警算法与告警类型关系表 
| 算法类型（classification）                                                                                                                                             | 算法类型说明                                                                                                                                                         | 告警类型（alarm_type）            | 告警类型说明              |
|:---|:---|:---|:---|
| ALARM                                                                       | 智能告警                                                                                                                                                           | motion_detection            | 移动侦测告警事件            |
| ALARM                                                                       | 智能告警                                                                                                                                                           | human_detection             | 人形移动侦测告警事件          |
| ALARM                                                                       | 智能告警                                                                                                                                                           | abandon_alarm               | 物品遗留告警              |
| ALARM                                                                       | 智能告警                                                                                                                                                           | removed_alarm               | 物品移走告警              |
| ALARM                                                                       | 智能告警                                                                                                                                                           | lift_electric_alarm         | 电梯电瓶车告警（只有在电梯中才会触发） |
| ALARM                                                                       | 智能告警                                                                                                                                                           | electric_bicycle_alarm      | 电瓶车告警               |
| ALARM                                                                       | 智能告警                                                                                                                                                           | illegal_parking_alarm       | 违法停车告警              |
| ALARM                                                                       | 智能告警                                                                                                                                                           | fire_detect_alarm           | 热成像告警               |
| ALARM                                                                       | 智能告警                                                                                                                                                           | io_event                    | 外部IO输入事件            |
| DEVICE                                                                                                      | 设备异常                                                                                                       | disk_failure                | 设备磁盘故障事件            |
| DEVICE                                                                                                      | 设备异常                                                                                                       | device_offline              | 设备离线告警              |
| TARGET                                                                                                     | 目标告警                                                                                                     | target_alarm                | 目标侦测告警              |
| TARGET                                                                                                     | 目标告警                                                                                                     | target_high_frequency_alarm | 目标高频率出现告警           |
| TARGET_DET                                                                                                                                                       | 目标检测告警                                                                                                                                                         | mask_alarm                  | 口罩告警                |
| CROWD                                                                                      | 人群检测告警                                                                                   | people_queue_alarm          | 排队长度告警              |
| CROWD                                                                                      | 人群检测告警                                                                                   | people_count_region_alarm   | 人群密度告警              |
| CROWD                                                                                      | 人群检测告警                                                                                   | people_count_line_alarm     | 过线人数统计告警            |
| CROWD                                                                                      | 人群检测告警                                                                                   | people_leave_station_alarm  | 人员离岗告警              |
| PERIMETER                | 周边检测告警                | over_line_alarm             | 越线检测告警              |
| PERIMETER                | 周边检测告警                | region_invasion_alarm       | 入侵检测告警              |
| PERIMETER                | 周边检测告警                | region_in_alarm             | 区域进入告警              |
| PERIMETER                | 周边检测告警                | region_out_alarm            | 区域离开告警              |
| PERIMETER                | 周边检测告警                | occlusion_alarm             | 遗留检测告警              |
| PERIMETER                | 周边检测告警                | fast_move_alarm             | 快速移动告警              |
| PERIMETER                | 周边检测告警                | linger_alarm                | 徘徊检测告警              |
| PERIMETER                | 周边检测告警                | beh_parking_detection       | 停车检测告警              |
| THIRDPARTY_INTELLIGENT                                                                                                                                           | 第三方检测告警                                                                                                                                                        | thirdparty_intelligent      | 第三方算法告警             |
   
示例一、目标告警，设备正常告警上报时的Json：
```
{
    "message_id": 1676021851965927899,
    "message_type": "device_alarm",
    "data": {
        "device_id": "219123456CYP***",
        "device_name": "test-NVR B16",
        "channel_type": "video_input",
        "channel_id": "0",
        "channel_name": "107 IO告警灯设备",
        "classification": "TARGET_DET",
        "alarm_type": "mask_alarm",
        "alarm_status": "pulse",
        "alarm_time": "2023-02-10T17:37:30+08:00",
        "alarm_uuid": "219123456CYP***_0_mask_alarm_20230210173730_148",
        "target": {
            "target_id": "-1",
            "name": "",
            "gender": "male",
            "organization": "陌生人",
            "age": 50,
            "age_group": "MIDDLE_AGE",
            "similarity": 0,
            "target_alarm_type": "陌生人",
            "group_id": 4,
            "appear_cnt": 21,
            "frequency_id": "666",
            "targetgroup_name":""
        }
    },
    "test": false
}
```
示例二、非目标告警，设备正常告警示例
```
{
    "message_id": 1676010011579800635,
    "message_type": "device_alarm",
    "data": {
        "device_id": "219123456CYP***",
        "device_name": "test-NVR B16",
        "channel_type": "video_input",
        "channel_id": "0",
        "channel_name": "107 IO告警灯设备",
        "classification": "ALARM",
        "alarm_type": "abandon_alarm",
        "alarm_status": "start",
        "alarm_time": "2023-02-10T14:20:11+08:00",
        "alarm_uuid": "219123456CYP***_0_abandon_alarm_20230210142011_162"
    },
    "test": false
}
```
示例三、非目标告警、带alarm_type_name
```
{
    "message_id": 1676280114005072883,
    "message_type": "device_alarm",
    "data": {
        "device_id": "TEST123***",
        "device_name": "NVR800",
        "channel_type": "video_input",
        "channel_id": "2",
        "channel_name": "qqqq",
        "classification": "ALARM",
        "alarm_type": "io_event",
        "alarm_status": "start",
        "alarm_time": "2023-02-13T17:21:52+08:00",
        "alarm_uuid": "TEST123456_2_io_event_20230213172152_201",
        "alarm_type_name": "Local<-3"
    },
    "test": false
}
```
