Skip to content

消息订阅(设备)

消息订阅流程

  1. 在开放平台web端【控制台-行业视频集成应用-应用配置-消息推送地址】配置消息回调地址。
  2. 在开放平台web端【控制台-行业视频集成应用-应用配置-消息类型配置】配置需要推送的基本消息。
  3. 使用消息订阅接口订阅其他类型消息(设备告警、人脸事件消息、AI事件消息)。
  4. 开放平台把消息以发送HTTP POST请求的方式发送到回调地址。
  5. 开放平台推送服务出口网段为:183.230.40.0/24,若订阅服务侧有网络限制,请务必添加白名单。

消息订阅

接口功能

设备告警、AI事件订阅

请求地址

TEXT
  https://open.andmu.cn/v3/open/api/app/alarm/subscribe

请求方式

POST,需要鉴权

请求参数

参数名称参数类型是否必需参数含义说明
subscribeInfosList<subscribeInfo>Y订阅信息集合最大30条

subscribeInfo:

参数名称参数类型是否必需参数含义说明
deviceIdStringY设备id
eventStringN订阅事件集合为空或者不传,则为取消订阅;需订阅新事件,请带上历史订阅的事件,若仅传新事件名,代表仅订阅该事件

event可选类型如下:

  • motion(运动告警)
  • sound(声音告警)
  • regional_invasion(区域入侵)
  • border_intrusion(边界入侵)
  • cross_border_detection(越界侦测)
  • face_snap(人脸抓拍)
  • face_recognition(人脸识别结果)
  • ai (AI事件消息)
  • car_snap(车辆抓拍)
  • car_recognition(车辆识别)
  • human(人形告警)

event格式: 一个json字符串数组。例如: ["motion","sound"],然后将json格式化成字符串,填入参数。

请求内容

json
{
  "subscribeInfos": [{"deviceId":"xxxxS_12341234adf","event":"[\"motion\",\"sound\"]"}]
}

响应参数

参数名称参数类型参数含义说明
resultCodeString响应码参考响应码定义
resultMsgString响应描述

返回数据示例

json
{
    "resultCode": "000000",
    "resultMsg": "成功"
}

设备告警取消订阅

接口功能

设备告警取消订阅接口

请求地址

TEXT
  https://open.andmu.cn/v3/open/api/app/alarm/unsubscribe

请求方式

POST,需要鉴权

请求参数

参数名称参数类型是否必需参数含义说明
unsubscribeInfosList<unsubscribeInfo>Y取消订阅信息集合设备数量不能超过30个

unsubscribeInfo:

参数名称参数类型是否必需参数含义说明
deviceIdStringY设备id
eventStringY取消订阅事件集合例:["motion","sound"]

event可选类型如下:

  • motion(运动告警)
  • sound(声音告警)
  • regional_invasion(区域入侵)
  • border_intrusion(边界入侵)
  • cross_border_detection(越界侦测)
  • face_snap(人脸抓拍)
  • face_recognition(人脸识别结果)
  • ai (AI事件消息)
  • car_snap(车辆抓拍)
  • car_recognition(车辆识别)
  • human(人形告警)

event格式: 一个json字符串数组。例如: ["motion","sound"],然后将json格式化成字符串,填入参数。

请求内容

json
{
  "unsubscribeInfos": [{"deviceId":"xxxxS_12341234adf","event":"[\"motion\",\"sound\"]"}]
}

响应参数

参数名称参数类型参数含义说明
resultCodeString响应码参考响应码定义
resultMsgString响应描述

返回数据示例

json
{
    "resultCode": "000000",
    "resultMsg": "成功"
}

订阅查询

接口功能

查询已经订阅消息的设备以及订阅的事件

请求地址

TEXT
  https://open.andmu.cn/v3/open/api/app/alarm/subscribe/query

请求方式

POST,需要鉴权

请求参数

参数名称参数类型是否必需参数含义说明
deviceIdStringN设备id
pageintY页数
pageSizeintY页大小最大10000

请求内容

json
{
    "deviceId": "xxxxS_12341234adf",
    "page": 1,
    "pageSize": 100
}

响应参数

参数名称参数类型参数含义说明
resultCodeString响应码参考响应码定义
resultMsgString响应描述
totalInteger记录数分页查询时使用
pageInteger当前页分页查询时使用
pageSizeInteger页大小分页查询时使用
dataList响应数据响应数据,支持普通业务数据以及列表两种方式

data数据模型

参数名称参数类型参数含义说明
deviceIdString设备id
eventString订阅事件集合例:["motion","sound"]

返回数据示例

json
{
    "resultCode": "000000",
    "resultMsg": "成功",
    "total": 1,
    "page": 1,
    "pageSize": 100,
    "data": [
          {
               "deviceId":"xxxxS_12341234adf",
               "event":"[\"motion\",\"sound\"]"
           }
     ]
}

消息格式

消息统一数据结构:

参数名称参数类型参数含义说明
appIdString应用id
sigString签名MD5(appId+secret),计算值为32位小写
msgListlist消息列表

msgList数据格式:

参数名称参数类型参数含义说明
msgTypeString消息类型参考消息类型
timeStampString消息时间戳13位毫秒
dataString消息内容不同的消息类型,data的格式不同,请根据消息类型分别解析
json
{
    "appId": "xxx",
    "sig": "xxx",
    "msgList": [{
        "msgType": "xxx",
        "timeStamp": "xxx",
        "data": {
            "xxx": "xxx"
        }
    }, {
        "msgType": "xxx",
        "timeStamp": "xxx",
        "data": {
            "xxx": "xxx"
        }
    }]
}

消息类型

消息类型说明
MESSAGE_DEVICE_BIND设备绑定消息
MESSAGE_DEVICE_UNBIND设备解绑消息
MESSAGE_DEVICE_ONLINE设备上线消息
MESSAGE_DEVICE_OFFLINE设备下线消息
MESSAGE_DEVICE_MOTION设备运动告警消息
MESSAGE_DEVICE_SOUND设备声音告警消息
MESSAGE_REGIONAL_INVASION区域入侵消息
MESSAGE_BORDER_INTRUSION边界入侵消息
MESSAGE_CROSS_BORDER_DETECTION越界侦测消息
MESSAGE_DEVICE_HUMAN人形告警
MESSAGE_FACE_SNAP人脸抓拍消息
MESSAGE_FACE_RECOGNITION人脸识别结果
MESSAGE_AIAI事件消息
MESSAGE_CAR_SNAP车辆抓拍消息
MESSAGE_CAR_RECOGNITION车辆识别结果

设备绑定解绑消息

从开放平台获取设备绑定消息。

消息类型:

设备绑定消息:MESSAGE_DEVICE_BIND

设备解绑消息:MESSAGE_DEVICE_UNBIND

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
tokenNumStringtoken号

示例

设备绑定消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_BIND",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "tokenNum": "11654109845187"
        }
    }]
}

设备解绑消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_UNBIND",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "tokenNum": "11654109845187"
        }
    }]
}

设备上下线消息

从开放平台获取已绑定设备的上下线消息。

消息类型:

设备上线:MESSAGE_DEVICE_ONLINE

设备下线:MESSAGE_DEVICE_OFFLINE

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
onlineTimeString上线时间上线消息存在
offlineTimeString离线时间离线消息存在

示例

设备上线消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_ONLINE",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "onlineTime": "1579141371720"
        }
    }]
}

设备下线消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_OFFLINE",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "offlineTime": "1579141371720"
        }
    }]
}

设备告警消息

从开放平台获取设备告警消息。该消息是由设备触发后通知平台。

消息类型:

运动告警消息:MESSAGE_DEVICE_MOTION

声音告警消息:MESSAGE_DEVICE_SOUND

区域入侵消息:MESSAGE_REGIONAL_INVASION

边界入侵消息: MESSAGE_BORDER_INTRUSION

越界侦测消息:MESSAGE_CROSS_BORDER_DETECTION

人形告警:MESSAGE_DEVICE_HUMAN

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
detectTimeString告警时间毫秒

示例

运动告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_MOTION",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

声音告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_SOUND",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

区域入侵告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_REGIONAL_INVASION",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

边界入侵告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_BORDER_INTRUSION",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

越界侦测告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_CROSS_BORDER_DETECTION",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

人形告警消息:

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_DEVICE_HUMAN",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

人脸事件消息

从开放平台获取设备人脸事件消息。人脸抓拍事件消息由前端设备触发。

消息类型:

人脸抓拍消息:MESSAGE_FACE_SNAP

人脸识别结果:MESSAGE_FACE_RECOGNITION

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
detectTimeString事件触发时间毫秒
alarmContextString事件的内容不同的消息类型,告警的内容不同,请根据消息类型分别解析

人脸抓拍消息

alarmContext结构

参数名称参数类型参数含义说明
urlString人脸抓拍的图片下载地址有效期1个小时
faceUrlString人脸图片下载地址
snapUrlString抓拍图片下载地址
topint人脸事件框左上角顶点的 Y 坐标
leftint人脸事件框左上角顶点的 X 坐标
widthint人脸事件框宽度
heightint人脸事件框高度
snapImageIdString抓拍图片ID
genderint性别,-1:未知,0:女性 ,1:男性
ageint年龄

示例

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_FACE_SNAP",
        "timeStamp": "1583317657000",
        "data": {
            "alarmContext": "{\"url\": \"http://oss-open.andmu.cn/andmu/open/xxxx\",\"faceUrl\": \"http://oss-open.andmu.cn/andmu/open/xxxx\",\"snapUrl\": \"http://oss-open.andmu.cn/andmu/open/xxxx\",\"snapImageId\": \"27897508881328\",\"top\": 362,\"left\": 897,\"width\": 39,\"height\": 36,\"gender\": 0,\"age\": 20}",
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

人脸识别结果:

alarmContext结构
参数名称参数类型参数含义说明
faceUrlString抓拍图片中的人脸小图有效期1个小时
faceIdString人脸ID同一个人的人脸ID相同,人员新增接口返回的监控人员id
genderString性别AI识别出的性别:男、女、未知
ageint年龄AI识别的年龄
snapTimeint抓拍时间戳13位时间戳
snapUrlString抓拍图片有效期1个小时
similarityString相似度最大100,返回100以内数值,string传输
monitorTaskNameString布控任务名称该设备对应的布控任务名称
realNameString人员姓名人员姓名
faceObjectIdString人脸图片id人员新增时关联的人脸图片ID
snapObjectIdString抓拍图片在老视图库中的图片id抓拍图片的图片ID,新/老视图库ID只返回一个
snapImageIdString抓拍图片在视联网视图库中的图片id抓拍图片的图片ID,视联网/老视图库ID只返回一个
deviceNameString设备名称设备名称

示例

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_FACE_RECOGNITION",
        "timeStamp": "1583317657000",
        "data": {
            "alarmContext": "{\"faceUrl\": \"http:/xxxx\",\"faceId\": \"11\",\"gender\": \"\",\"age\": 1,\"snapTime\": 1654657463521,\"snapUrl\": \"http://xxxx\"}",
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

车辆事件消息

从开放平台获取设备车辆事件消息。车辆抓拍事件消息由前端设备触发。

消息类型:

车辆抓拍消息:MESSAGE_CAR_SNAP

车辆识别结果:MESSAGE_CAR_RECOGNITION

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
detectTimeString事件触发时间毫秒
alarmContextString事件的内容不同的消息类型,告警的内容不同,请根据消息类型分别解析

车辆抓拍消息

alarmContext结构

参数名称参数类型参数含义说明
vehicleLicenceIdString人车牌号车牌号
snapUrlString车辆抓拍图片有效期1小时
typeString车辆类型参考GAT-1400协议类型
licenceColorString车牌颜色参考GAT-1400协议类型
vehicleColorString车身颜色参考GAT-1400协议类型
brandString汽车品牌参考GAT-1400协议类型
snapObjectIdString任务ID内部任务ID

示例

json
{
    "...": "...",
    "msgList":
    [{
        "msgType": "MESSAGE_CAR_SNAP",
        "data":
        {
            "alarmContext":
            { "vehicleLicenceId": "京A88888",
            "snapUrl": "http://picture-url",
            "type": "大众高尔夫",
            "licenceColor": "blue",
            "vehicleColor": "white",
            "brand": "大众",
            "snapObjectId": ""
             },
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303"
        }
    }]
}

车辆识别结果:

alarmContext结构
参数名称参数类型参数含义说明
vehicleLicenceIdString人车牌号车牌号
snapUrlString车辆抓拍图片有效期1小时
typeString车辆类型参考GAT-1400协议类型
licenceColorString车牌颜色参考GAT-1400协议类型
vehicleColorString车身颜色参考GAT-1400协议类型
brandString汽车品牌参考GAT-1400协议类型
monitorTaskNameString布控任务名称布控任务名称
snapObjectIdString任务ID内部任务ID

示例

json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_FACE_RECOGNITION",
        "deviceId": "155dfs2525",
        "detectTime": "1584599831303",
        "data": {
            "alarmContext": {
                "vehicleLicenceId": "京A88888",
                "snapUrl": "http://picture-url",
                "type": "大众高尔夫",
                "licenceColor": "blue",
                "vehicleColor": "white",
                "brand": "大众",
                "monitorTaskName": "布控任务1",
                "snapObjectId": ""
            }
        }
    }]
}

AI事件消息

从开放平台获取设备ai事件消息。

消息类型:

AI事件消息:MESSAGE_AI

data结构

参数名称参数类型参数含义说明
deviceIdString设备id
detectTimeString事件触发时间毫秒
alarmContextString事件的内容不同的AI事件,告警的内容不同,请根据AI事件编码分别解析
json
{
    "...": "...",
    "msgList": [{
        "msgType": "MESSAGE_AI",
        "timeStamp": "1583317657000",
        "data": {
            "deviceId": "xxxxS_abcde",
            "detectTime": "1584599831303",
            "alarmContext":"参考下面alarmContext字符串格式"
        }
    }]
}

事件编码

事件编码事件说明(更改)
001001人脸检测(人脸结构化)
001002人脸识别
001003人脸美颜
001004人脸识别截取视频
002001人体检测(人体结构化)
003001车辆检测(车辆结构化)
003002非机动车检测 (非机动车结构化)
003003车牌识别
000001明厨亮灶三白检测
000002抽烟检测
000003打电话检测
000004玩手机检测
000005未戴手套检测
000007垃圾桶
000008老鼠检测
000000其他事件
005001人员倒地
005002人员聚集
005003绊线入侵
005004区域入侵
005005滞留徘徊检测
005006在岗离岗检测
005007快速奔跑
005008逆行检测
005009游泳检测
005010钓鱼检测
005011出店经营
005012流动摊贩
005013门前脏乱
005014乱堆物料
005015违规撑伞
005016违规户外广告
005017暴露垃圾
005018沿街晾晒
005019橱窗张贴
005020非机动车违停
005021机动车违停
005023电瓶车进电梯
005024消防占道
005025物品遗留
005026道路积水检测
005027水位尺水位检测
005028漂浮物堆积检测
005029排污口排污识别
005030横幅检测
005031烟雾检测
005032火焰检测
005033工程车密闭不严
005034工程车抛洒滴漏
005035异常停车
005036拥堵检测
005037交通流量
005038违章变道
005039车辆逆行
005040施工检测
005041路障检测
005042交通事故
005043压线检测
005044抛锚检测
005045超速检测
005046倒车检测
005047单人作业
005048无人作业
005049传送带跑偏
005050传送带大块异物
005051传送带阻塞
005052传送带空载
005053客流统计
005054人员密度超限
005055挖沙船检测
005056河岸垃圾倾倒
005057工程车检测
005058高空抛物
005059打架斗殴
005060区域人数统计
005061垃圾桶垃圾溢出检测
005062垃圾桶未盖盖检测
005063未穿厨师服检测
005064未戴厨师帽检测
005065未戴口罩检测
005066安全帽检测
005067围栏翻越
005069占道经营
005071未穿防护服检测
005072未戴安全帽检测
005073垃圾识别
005075渣土车识别
005076攀高检测
005077未穿反光衣检测
005078危险犬类识别
005081遗撒物检测
005083行人检测
005084非机动车检测
005085垃圾桶检测
005090灭火器检测
005091卸油管检测
005092静电线检测
005093油枪拉断
005094油机侧盖打开
005095液体泄漏
005096堆积渣土
005097消防设施检测
005098夜间人员逗留
005099睡岗检测
005100火星作业识别
005101高危区域人员徘徊检测
005102人员靠近检测
005103跳跃检测
005104冷链货柜号识别
005105空调识别
005107人员靠近轨道识别
005108站场巡检识别
005109轨迹跟踪
005110漏水检测
005111疲劳检测
005112未戴安全带检测
005113分心检测
005114电瓶车未戴头盔检测
005116雾炮车识别
005117动火离人检测
005118离开事件检测
005119超员检测
005120少员检测
005121人员持械检测
005122物品看守
005123大卡车检测
005124人员超载
005125穿反光衣检测
005126穿防护服检测
005127佩戴口罩检测
005128未穿工服检测
005129燃放烟花检测
005130反光衣工作人员离岗
005131图像质量诊断
005134垃圾混投
005135垃圾未破袋
005136店招变更
005137垃圾分时投放
005138垃圾桶撤离
005139人员拎袋

alarmContext结构

消息字段类型(长度)M/O描述
taskIdStringM任务id,与创建任务时id对应
sourceIdstringM视频源唯一标识,建议与设备ID对应,保证唯一性
sourceName stringO资源名称,资源的描述信息
taskStatusStringM任务状态(1-调度中,2-执行中,3-暂停,4-已完成,5-异常)
eventsobject[]M事件信息
parseTimeStringM事件分析时间,格式yyyy-MM-dd HH:mm:ss
bkgUrlStringM处理背景图片url地址,三方平台需要自己存储,一天后地址失效。
eventCodestringMAI事件编码
eventAttrobjectO发生事件的全局属性,object具体值根据需要返回属性值的事件定义。部分事件返回属性详见附录E
infoobject[]M事件信息
rectobjectO事件框
heightlongO长度,以px为单位
widthlongO宽度,以px为单位
leftlongOX轴坐标,左上角顶点的 X 坐标,以px为单位
toplongOY轴坐标,左上角顶点的 Y 坐标,以px为单位

以上字段所有AI事件消息都有,以下字段是各自算法独有字段,字段位于事件信息(info)下面,参考最后的样例。

000001:明厨亮灶三白检测:

消息字段类型(长度)M/O描述
maskstringO是否戴口罩:no-否,yes-是,unknown-未知
chefclothstringO是否规范穿厨师服:no-否,yes-是, unknown-未知
upperColorstringO上身颜色:"unknown"(未知),"red"(红), "orange"(橙), "yellow"(黄), "green"(绿), "blue"(蓝), "violet"(紫), "pink"(粉), "black"(黑), "white"(白), "grey"(灰), "brown"(棕)
hatstringO是否戴帽子:no-否,yes-是,unknown-未知

000002:抽烟检测:

消息字段类型(长度)M/O描述
smokestringO是否抽烟:no-否,yes-是,unknown-未知

000003:打手机检测:

消息字段类型(长度)M/O描述
usePhonestringO是否打手机:no-否,yes-是,unknown-未知

000004:看手机检测

消息字段类型(长度)M/O描述
watchPhonestringO是否看手机:no-否,yes-是,unknown-未知

000005:手套检测

消息字段类型(长度)M/O描述
glovestringO是否规范佩戴手套:no-否,yes-是,unknown-未知

000006:烟火检测

消息字段类型(长度)M/O描述
firestringO是否存在烟火:no-否,yes-是,unknown-未知

000007:垃圾桶检测

消息字段类型(长度)M/O描述
trashboxstringO"垃圾桶状态:0 - 正常,1 - 垃圾桶满溢,2 - 垃圾桶倾倒,3 - 垃圾桶未盖,4 - 状态未知

000008:老鼠检测

消息字段类型(长度)M/O描述
mousestringO是否有老鼠:no-否,yes-是,unknown-未知

其他事件:其他事件定义

消息字段类型(长度)M/O描述
objectAttrobjectOobject具体值根据需要返回属性值的事件定义。部分事件返回属性详见附录E

附录E

005053:客流统计

消息字段类型(长度)M/O描述
numEnterlongO进入客流
numLeavelongO离开客流

示例

json
{
    "taskId": "dcef3af8-fa1a-4401-bda9-a08364fe17f2",
    "sourceId": "dcef3af8-fa1a-4401-bda9-a08364fe17f1",
    "sourceName": "大厦23楼分析点位",
    "taskStatus": 3,
    "events": [{
            "parseTime": "2022-12-23 00:00:00",
            "bkgUrl": "http://10.12.30.72:10000/oss-file/456.jpg",
            "eventCode": "000005",
            "info": [{
                "rect": {
                    "height": "37",
                    "left": "253",
                    "top": "154",
                    "width": "38"
                },
                "mouse": "yes"
            }]
        },
        {
            "parseTime": "2022-12-23 00:00:00",
            "bkgUrl": "http://10.12.30.72:10000/oss-file/456.jpg",
            "eventCode": "0000xx",
            "eventAttr": "{\"xxxx\": \"xxxx\", \"xxxx\": \"xxxx\"}",
            "info": [{
                "rect": {
                    "height": "137",
                    "left": "223",
                    "top": "14",
                    "width": "381"
                },
                "objectAttr": "{\"xxxx\": \"xxxx\", \"xxxx\": \"xxxx\"}"
            }]
        }
    ]
}