Plugin ONVIF

Проект Smart Home предоставляет плагин ONVIF, который обеспечивает возможность взаимодействия с камерами наблюдения по протоколу ONVIF. Данный плагин реализует несколько методов JavaScript, предназначенных для управления камерами и получения снимков.

Методы JavaScript

  1. Camera.continuousMove(X, Y): Этот метод позволяет осуществлять плавное движение камеры по координатам X и Y.

  2. Camera.stopContinuousMove(): Данный метод останавливает непрерывное движение камеры.

  3. OnvifGetSnapshotUri(entityId): Метод для получения URI снимка для указанного идентификатора устройства.

  4. DownloadSnapshot(entityId): Метод для загрузки снимка с устройства по его идентификатору.

Статус устройства

  • motion (тип: Boolean): Статус, отображающий наличие движения, определенного камерой наблюдения.

Настройки устройства

  • address (тип: String): IP-адрес камеры наблюдения.

  • onvifPort (тип: Int): Порт для соединения с камерой по протоколу ONVIF.

  • rtspPort (тип: Int): Порт для передачи видео по протоколу RTSP.

  • userName (тип: String): Имя пользователя для аутентификации при доступе к камере.

  • password (тип: Encrypted): Зашифрованный пароль для аутентификации.

  • requireAuthorization (тип: Bool): Флаг, указывающий, требуется ли авторизация для взаимодействия с камерой.

Команды управления

  • continuousMove: Команда для запуска непрерывного движения камеры.

  • stopContinuousMove: Команда для остановки непрерывного движения камеры.

Статусы устройства

  • connected: Устройство успешно подключено и готово к работе.

  • offline: Устройство недоступно или отключено от системы.

Эти функции позволяют интегрировать камеры наблюдения в систему Smart Home и эффективно управлять ими через плагин ONVIF.

Пример использования плагина “onvif” для реализации управления камерой:

continuousMove = function (args) {
    var X, Y;
    X = args['X'] || 0;
    Y = args['Y'] || 0;
    if (Math.abs(X) > Math.abs(Y)) {
        Y = 0;
    } else {
        X = 0;
    }
    return Camera.continuousMove(X, Y);
};

stopStop = function (args) {
    return Camera.stopContinuousMove();
};