Для получения событий от камер через WebSocket необходимо:
Подключиться к ws://[имя_пользователя]:[пароль]@[IP-адрес]:[порт]/[префикс]/events.
Отправить команду на подписку об оповещении о событиях с указанных камер (см. Получение списка устройств телеметрии для источника видео) в формате 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 | Состояние камеры |
|
| alert | Тревога | Нет состояний |
| alert_state | Состояние тревоги |
|
| detector_event | Событие от детектора | Нет состояний |
| camera_record_state | Состояние записи в архив |
|
Если камера отключена в ПК Интеллект 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
| Параметр | Описание |
|---|---|
| schema | schema=proto – получение развернутого ответа |
Пример полного ответа:
|
| Параметр | Описание |
|---|---|
| vehicleBrand | Производитель транспортного средства |
| vehicleClass | Класс транспортного средства |
| vehicleColor | Цвет транспортного средства |
| vehicleModel | Модель транспортного средства |
Через WebSocket можно подписываться и отписываться на события об изменении конфигурации камер с помощью команд track и untrack.
{
"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"
}
]
} |
{
"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"
}
]
} |