Для получения событий от видеокамер через WebSocket необходимо:

  1. Подключиться к ws://[имя_пользователя]:[пароль]@[IP-адрес]:[порт]/[префикс]/events.

  2. Отправить команду на подписку об оповещении о событиях с указанных видеокамер (см. Получение списка устройств телеметрии для источника видео) в формате JSON. Данная подписка позволяет получать все события, приведенные ниже в таблице.

    {
     "include":
      ["hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "hosts/Server1/DeviceIpint.6/SourceEndpoint.video:0:0"],
     "exclude":[]
    }

    include – оформить подписку;

    exclude – исключить из оповещения.

В ответе будет JSON следующего вида:

 {
  objecs: [
   {type: "devicestatechanged", name: "hosts/Server1/DeviceIpint.1", state: "signal restored"}
  ]
 }

Список типов событий и состояний видеокамеры:

Тип событияОписаниеСостояния
devicestatechangedСостояние видеокамеры

signal restored – подключен, сигнал восстановлен

signal lost – сигнал потерян

alertТревогаНет состояний
alert_stateСостояние тревоги

processing – тревога взята в обработку
closed – тревога обработана
reaction – тревога инициирована

detector_eventСработка детектораНет состояний
camera_record_stateСостояние записи в архивon – по видеокамере идет запись в архив
off – видеокамера не привязана к архиву
gray – видеокамера привязана к архиву, но запись не ведется

Примечание

Если видеокамера отключена в ПК Интеллект X, то события через WebSocket от нее не поступают, в том числе событие signal lost.

Пример сообщения:

objects: [{name: "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", state: "signal restored",…},…]
0: {name: "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", state: "signal restored",…}
name: "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0"
state: "signal restored"
type: "devicestatechanged"

Пример запроса получения событий через Web-Socket:

ws://root:root@localhost/events?schema=proto

ПараметрОписание
schemaschema=proto получение развернутого ответа

Пример полного ответа:

{
    "objects": [
        {
            "body": {
                "@type": "type.googleapis.com/axxonsoft.bl.events.DetectorEvent",
                "details": [
                    {
                        "autoRecognitionResultEx": {
                            "direction": {
                                "value": "Outgoing"
                            },
                            "headlightsStatus": {
                                "value": "Disabled"
                            },
                            "hypotheses": [
                                {
                                    "country": "Denmark",
                                    "ocrQuality": 99,
                                    "plateFull": "CJ97139",
                                    "plateRectangle": {
                                        "h": 0.03703703703703709,
                                        "w": 0.067708333333333315,
                                        "x": 0.31302083333333336,
                                        "y": 0.96296296296296291
                                    },
                                    "plateState": "NA",
                                    "timeBest": "20230623T124816.295000"
                                }
                            ],
                            "plateType": {
                                "value": "EUnitedNations"
                            },
                            "timeBegin": "2023-06-23T12:48:16.295Z",
                            "timeEnd": "2023-06-23T12:48:16.295Z",
                            "vehicleBrand": {
                                "value": "Mercedes Benz"
                            },
                            "vehicleClass": {
                                "value": "Car"
                            },
                            "vehicleColor": {
                                "value": "Gray"
                            },
                            "vehicleModel": {
                                "value": "GLS Klasse"
                            }
                        }
                    },
                    {
                        "autoRecognitionResult": {
                            "direction": "Outgoing",
                            "headlightsStatus": "Disabled",
                            "hypotheses": [
                                {
                                    "country": "Denmark",
                                    "ocrQuality": 99,
                                    "plateFull": "CJ97139",
                                    "plateRectangle": {
                                        "h": 0.03703703703703709,
                                        "w": 0.067708333333333315,
                                        "x": 0.31302083333333336,
                                        "y": 0.96296296296296291
                                    },
                                    "plateState": "NA",
                                    "timeBest": "20230623T124816.295000"
                                }
                            ],
                            "plateType": "EUnitedNations",
                            "timeBegin": "20230623T124816.295000",
                            "timeEnd": "20230623T124816.295000",
                            "vehicleBrand": "Mercedes Benz",
                            "vehicleClass": "Car",
                            "vehicleColor": "Gray",
                            "vehicleModel": "GLS Klasse"
                        }
                    }
                ],
                "detectorDeprecated": "hosts/TEST/AVDetector.1/EventSupplier",
                "detectorExt": {
                    "accessPoint": "hosts/TEST/AVDetector.1/EventSupplier",
                    "friendlyName": "1.\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439 (RR)"
                },
                "detectorsGroup": [
                    "DG_LPR_DETECTOR"
                ],
                "eventType": "plateRecognized",
                "guid": "d6650759-e89b-43dd-a610-459a6e421ccc",
                "nodeInfo": {
                    "friendlyName": "TEST",
                    "name": "TEST"
                },
                "originDeprecated": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0",
                "originExt": {
                    "accessPoint": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0",
                    "friendlyName": "1.\u041a\u0430\u043c\u0435\u0440\u0430"
                },
                "timestamp": "20230623T124816.295000"
            },
            "eventName": "axxonsoft.bl.events.DetectorEvent",
            "eventType": "ET_DetectorEvent",
            "localization": {
                "text": "\u041a\u0430\u043c\u0435\u0440\u0430 \"1.\u041a\u0430\u043c\u0435\u0440\u0430\". \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \"1.\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439 (RR)\", \u041d\u043e\u043c\u0435\u0440 \"CJ97139\", \u0441\u0442\u0440\u0430\u043d\u0430 \"Denmark\", \u043a\u043b\u0430\u0441\u0441 \"\u0410\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\", \u0446\u0432\u0435\u0442 \"Gray\", \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \"Mercedes Benz\", \u043c\u043e\u0434\u0435\u043b\u044c \"GLS Klasse\", \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0444\u0430\u0440 \"\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u044b\" \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: \u0422\u0438\u043f \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 = \"\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\""
            },
            "requiredPermissions": {
                "requiredObjectPermissions": [
                    {
                        "accessPoint": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0",
                        "cameraAccess": "CAMERA_ACCESS_ONLY_ARCHIVE"
                    }
                ]
            },
            "subjects": [
                "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0",
                "hosts/TEST/AVDetector.1/EventSupplier"
            ]
        }
    ]
}
ПараметрОписание
vehicleBrandПроизводитель транспортного средства
vehicleClassКласс транспортного средства
vehicleColorЦвет транспортного средства
vehicleModelМодель транспортного средства

Управление подпиской на получение событий об изменении конфигурации видеокамер

Через WebSocket можно подписываться и отписываться на события об изменении конфигурации видеокамер с помощью команд track и untrack.

  1. Пример подписки на получение событий об изменении конфигурации камеры:
    {
    "track": ["hosts/Server/DeviceIpint.1"]
    }
    Пример сообщения после подписки:
    {
       "objects" : [
          {
             "name" : "hosts/Server/DeviceIpint.1",
             "type" : "itemstatuschanged"
          }
       ]
    }
    {
       "objects" : [
          {
             "source" : "hosts/Server/DeviceIpint.1/SourceEndpoint.video:0:0",
             "state" : "off",
             "type" : "camera_record_state"
          }
       ]
    }
    {
       "objects" : [
          {
             "name" : "hosts/Server/DeviceIpint.1",
             "type" : "itemstatuschanged"
          }
       ]
    }
    {
       "objects" : [
          {
             "source" : "hosts/Server/DeviceIpint.1/SourceEndpoint.video:0:0",
             "state" : "off",
             "type" : "camera_record_state"
          }
       ]
    }
    где в параметре type при изменении конфигурации будет отображаться значение itemstatuschanged.
  2. Пример отписки от получения событий об изменении конфигурации камеры:
    {
    "untrack": ["hosts/Server/DeviceIpint.1"]
    }
    Пример ответного сообщения:
    {
       "objects" : [
          {
             "source" : "hosts/Server/DeviceIpint.1/SourceEndpoint.video:0:0",
             "state" : "off",
             "type" : "camera_record_state"
          }
       ]
    }
    {
       "objects" : [
          {
             "source" : "hosts/Server/DeviceIpint.1/SourceEndpoint.video:0:0",
             "state" : "off",
             "type" : "camera_record_state"
          }
       ]
    }
  • No labels