адаптер agent-dvr для ioBroker
Подключает ioBroker к AgentDVR : автоматически обнаруживает все камеры, отображает свойства каждого устройства в виде точек данных, предоставляет кнопки для всех распространенных команд (запись, постановка на охрану, PTZ и т. д.), обеспечивает обновление галереи при появлении новых записей, генерирует адаптивный HTML-виджет галереи для каждой камеры и включает встроенную панель мониторинга в реальном времени с выбором потока для каждой камеры (MJPEG, MP4/FLV со звуком или go2rtc WebRTC).
Требования
- ioBroker с
iobroker.webадаптер - AgentDVR ≥ 7.8.0.0 — в более ранних версиях наблюдается регрессия в
streamFile.cgiКонечная точка (неправильно сформированная кодировка фрагментов, неверный MIME-тип), которая препятствует записи и воспроизведению во встроенной панели управления. Разработчик подтвердил, что исправление включено в версию 7.8.0.0.
Функции
- Автоматическое обнаружение всех камер AgentDVR при запуске (за исключением микрофонов).
- Все свойства устройства отображаются в виде точек данных (полученных из API в плоском виде).
- Кнопки управления для каждого устройства: запись, снимок, обнаружение, оповещения о постановке/снятии с охраны, включение/выключение, обнаружение объектов, включение/выключение по расписанию, включение/выключение детектора, чувствительность (мин/макс/усиление), сброс, …
- Кнопки системного уровня: постановка на охрану, снятие с охраны, включение/выключение всех устройств, перезагрузка, управление хранилищем, перезапуск, …
- Селектор профиля — выпадающий список, отображающий текущий профиль AgentDVR (Дома / Вне дома / Ночь / пользовательский).
- Снимок в формате Base64 —
snapshot_b64Состояние каждой камеры, заменяемое кнопкой или автоматически обновляемое при каждом цикле опроса. - Управление поворотно-наклонной платформой с помощью кнопок, позволяющих удерживать кнопку для перемещения.
- URL-адреса потоковой передачи для каждой камеры (снимок, фото, MJPEG, MP4)
- Конечная точка веб-перехватчика для обновлений в реальном времени — вызовите ее из действия AgentDVR, чтобы немедленно запустить полный опрос.
- HTML-виджет галереи записей для каждой камеры (
widget_recordings) и живой тайл с одной камеры (widget_live— чистый HTML/CSS или полнофункциональный JS-режим с поиском и фильтром по тегам. - Виджет обзора, объединяющий все камеры в одном HTML-состоянии.
- Встроенная панель мониторинга в режиме реального времени по адресу
http://<iobroker>:<webport>/agent-dvr.0/— Дополнительное приложение не требуется:- Выбор формата потока для каждой камеры: MJPEG, MP4/FLV со звуком или go2rtc WebRTC/MSE.
- Кнопка фильтра камер в заголовке (значок воронки) — открывает всплывающее окно с флажками для каждой камеры; значок показывает, сколько камер скрыто; состояние сохраняется в localStorage.
- Индикаторы движения и оповещения в реальном времени (желтая/оранжевая рамка плиток) через Socket.io
- Полноэкранный режим с наложением PTZ-эффекта, записью, отключением звука и встроенной кнопкой полноэкранного режима браузера; заголовок автоматически скрывается.
- Вкладка «Записи» с отображением в виде сетки, временной шкалы и журнала событий, поиском, сворачиваемым фильтром по тегам и видеоплеером с навигацией «Предыдущее/Следующее».
- Удаление записи непосредственно из всплывающего окна видеоплеера (требуется AgentDVR версии 7.7.8.0 и выше).
- Настройки отображения записей — значок шестеренки ⚙ на панели выбора/удаления регулирует ширину столбцов сетки, максимальное количество отображаемых записей и видимость значка (сохраняется в localStorage).
- Цвета с камер считываются из AgentDVR и применяются к полосам временной шкалы и точкам записи.
- Предустановки PTZ — перейдите к сохраненным предустановкам из окна PTZ (требуется AgentDVR версии 7.7.8.0 и выше)
- В строке состояния отображается количество камер в режиме реального времени и количество записей/событий в режиме записи.
- Автоматическое переподключение для всех типов потоков после прерывания сети или переключения вкладок.
- Полностью настраиваемая цветовая гамма через конфигурацию адаптера.
Конфигурация
Вкладка: Подключение
| Параметр | Описание | По умолчанию |
|---|---|---|
| AgentDVR IP | IP-адрес сервера AgentDVR | — |
| Порт | Порт HTTP AgentDVR | 8090 |
| Имя пользователя | Необязательное имя пользователя для базовой HTTP-аутентификации | — |
| Пароль | Необязательный пароль для базовой HTTP-аутентификации | — |
| Интервал опроса (с) | Как часто следует получать данные из AgentDVR (5–3600) | 30 |
| Таймаут HTTP (мс) | Таймаут на каждый API-запрос (1000–30000) | 8000 |
Вкладка: Функции
Элементы управления
| Параметр | Описание | По умолчанию |
|---|---|---|
| Кнопки управления системой | Создайте кнопки постановки/снятия с охраны/перезапуска/… и селектор профилей. | true |
| Кнопки управления PTZ | Создайте переключатели удержания PTZ-управления для каждой камеры (влево, вправо, вверх, вниз, по диагонали, масштабирование, остановка, центрирование). | true |
| Сгенерировать URL-адреса потоков | Создание состояний URL (снимок, MJPEG, MP4) для каждой камеры | true |
| Снимок в формате Base64 | Автоматическая загрузка и сохранение текущего кадра в формате Base64 при каждом опросе. | false |
События
| Параметр | Описание | По умолчанию |
|---|---|---|
| Точки данных события | Метаданные зеркальной записи (последнее событие, количество, теги и т. д.) для каждой камеры. | true |
Отображать
| Параметр | Описание | По умолчанию |
|---|---|---|
| Виджет обзора | Единое HTML-состояние, объединяющее все плитки с изображением с камеры в режиме реального времени. | true |
Прокси
| Параметр | Описание | По умолчанию |
|---|---|---|
| Медиа-прокси | Передавайте потоки MJPEG, снимки экрана, миниатюры записей и видео через ioBroker. | false |
Отлаживать
| Параметр | Описание | По умолчанию |
|---|---|---|
| Хранить необработанные JSON-данные API | Напишите полный ответ от функции getObjects в system.raw_getObjects | false |
Вкладка: Панель управления
Вид по умолчанию
| Параметр | Описание | По умолчанию |
|---|---|---|
| Вид по умолчанию | Какая вкладка открывается при загрузке панели управления: «В прямом эфире» или «Записи»? | Live |
| Показать офлайн-камеры | Отображение изображений с камеры даже в автономном режиме. | true |
| Максимальное общее количество записей | Максимальное количество записей, отображаемых на панели управления для всех камер (сначала самые новые). Не зависит от ограничения виджета. | 200 |
Сетка камер
| Параметр | Описание | По умолчанию |
|---|---|---|
| Колонки | Количество столбцов сетки (0 = автоматическая подгонка по ширине плитки) | 0 |
| Кнопки всегда на виду | Отображать кнопки записи/PTZ постоянно, а не только при наведении курсора. | false |
| положение бейджа | Угол, где на каждом блоке отображается табличка с названием камеры. | bottom-right |
Транслировать
| Параметр | Описание | По умолчанию |
|---|---|---|
| Интервал обновления (с) | Как часто панель управления повторно запрашивает данные с камеры (10–600) | 60 |
| Автоматическое переподключение потоков | Автоматическое переподключение потоков MJPEG, MP4/FLV и go2rtc после ошибки или переключения вкладки. | true |
Цветовая гамма — 7 вариантов выбора цвета для вашего пользовательского интерфейса:
| Параметр | Описание |
|---|---|
| Фон | Цвет фона страницы/сетки |
| Поверхность | Фоновое изображение с камеры |
| Акцент | Цвет выделения/активного элемента |
| Текст | Основной цвет текста |
| Граница | Цвет границы плитки |
| Онлайн-индикатор | Цвет точки онлайн-статуса |
| Индикатор офлайн | Цвет точки, указывающей на офлайн-статус |
Распределение по потокам
Здесь вы назначаете источник потока каждой камере по отдельности. В выпадающем списке отображаются все камеры, обнаруженные AgentDVR (микрофоны исключены).
| Вариант | Описание |
|---|---|
| MJPEG (AgentDVR) | Классический MJPEG-поток, предоставляемый AgentDVR — минимальная задержка, без звука. |
| MP4 / FLV со звуком (AgentDVR) | Поток FLV, передаваемый через ioBroker с использованием flv.js — включает звук, правильное соотношение сторон. |
| Название потока (go2rtc) | Потоковая передача WebRTC/MSE от go2rtc — плавная, с низкой задержкой, поддержка звука. |
Названия потоков go2rtc автоматически загружаются с сервера go2rtc при открытии административного интерфейса. Если браузер не может напрямую связаться с go2rtc (например, при передаче смешанного контента по HTTPS), адаптер загружает их на стороне сервера в качестве резервного варианта.
URL-адрес go2rtc (виден только в том случае, если хотя бы одна камера использует поток go2rtc)
| Параметр | Описание | Пример |
|---|---|---|
| URL go2rtc | Базовый URL вашего экземпляра go2rtc | http://192.168.1.10:1984 |
Примечание: go2rtc должен быть предварительно настроен для потоков. Адаптер только считывает список потоков и выступает в качестве прокси для WebSocket — он не настраивает go2rtc.
Вкладка: Виджет (виджет галереи для каждой камеры)
Общий
| Параметр | Описание | По умолчанию |
|---|---|---|
| Включить виджет | Создайте HTML-виджет галереи для каждой камеры. | true |
| режим виджета | No JS — Чистый HTML/CSS, можно встраивать куда угодно;JS — Полная интерактивность с поиском и фильтрацией по тегам. | No JS |
Макет
| Параметр | Описание | По умолчанию |
|---|---|---|
| Максимальное количество записей | Максимальное количество записей, отображаемых в виджете. | 20 |
| Минимальная ширина колонки (в пикселях) | Минимальная ширина каждого столбца с миниатюрами | 150 |
| Максимальная ширина модального окна (в пикселях) | Максимальная ширина модального окна воспроизведения видео. | 900 |
Теги
| Параметр | Описание | По умолчанию |
|---|---|---|
| Показать теги | Отображайте метки записи на каждом миниатюрном изображении. | true |
| положение бейджа | Угол, где на миниатюре отображаются теги. | bottom-left |
Фильтр
| Параметр | Описание | По умолчанию |
|---|---|---|
| Новейшие первыми | Сортировка записей: самые новые — вверху. | true |
| Показать поиск | Отображение поля поиска текста в режиме JavaScript | false |
| Компактный режим | Более плотная компоновка с уменьшенными миниатюрами. | false |
| Тег по умолчанию | Выберите этот фильтр по тегам при загрузке виджета. | — |
| Размер миниатюры | Small /Medium / Large | Medium |
Игрок
| Параметр | Описание | По умолчанию |
|---|---|---|
| Соотношение сторон в реальном времени | Соотношение сторон для предварительного просмотра прямой трансляции, например16/9 | — |
| URL-адрес проигрывателя | Пользовательский URL-адрес для видеоплеера, используемого в виджете. | — |
Цветовая схема — 5 палитр цветов + радиус скругления углов:
| Параметр | Описание |
|---|---|
| Фон открытки | Фоновое изображение карточки виджета |
| Фон тега | Фоновый чип с тегом |
| Текст тега | Цвет текста метки чипа |
| Акцент | Выделить цвет |
| Модальный фон | Фоновое изображение видеомодуля |
| Радиус скругления (пикселей) | Закругленные углы для карт |
Вкладка: Дополнительные параметры
| Параметр | Описание | По умолчанию |
|---|---|---|
| Максимальная глубина рекурсии | На сколько уровней вложенности JSON-данные API преобразуются в точки данных (1–10) | 6 |
| Максимальное количество элементов массива | Максимальное количество элементов массива, дублируемых на одно свойство (1–500). | 30 |
| Динамические теги | Автоматическое создание точки данных тега для каждого уникального тега записи. | false |
| Игнорировать теги (разделенные запятыми) | Метки записей, которые следует исключить из точек данных события. | — |
| Фильтр по тегам (разделённые запятыми) | Создавайте точки данных событий только для записей, соответствующих этим тегам. | — |
Интерактивная панель мониторинга
В комплект адаптера входит встроенная панель мониторинга в режиме реального времени.http://<iobroker>:<webport>/agent-dvr.0/ Второй экземпляр доступен по адресу:/agent-dvr.1/ третий в/agent-dvr.2/ , и так далее.
Функции:
- Выбор формата потока для каждой камеры: MJPEG, MP4/FLV со звуком (через flv.js) или go2rtc WebRTC/MSE.
- Кнопка фильтра камер (значок воронки, заголовок в правом верхнем углу) — открывает всплывающее окно с флажками для каждой камеры и переключателем «Все»; значок показывает количество скрытых камер; состояние сохраняется в localStorage.
- Полноэкранный режим с наложением PTZ-эффекта, кнопкой записи, кнопкой отключения звука и полноэкранным режимом браузера (заголовок автоматически скрывается через 3 секунды бездействия; появляется снова при нажатии мыши или касании).
- Индикаторы движения в реальном времени (желтая рамка) и оповещения (оранжевая рамка) через Socket.io
- Автоматическое переподключение: MJPEG и FLV переподключаются после ошибки; go2rtc переподключается после неожиданного закрытия WebSocket или задержки в 10 секунд.
- Вкладка «Записи» с отображением в виде сетки, временной шкалы и журнала событий, поиском, сворачиваемым фильтром по тегам и видеоплеером с навигацией «Предыдущее/Следующее».
- Фильтр тегов разделяет разделенные запятыми теги AgentDVR на отдельные чипы для фильтрации по каждому тегу.
- Удалить запись из всплывающего окна видеоплеера или выбрать несколько записей, удерживая кнопку мыши и удаляя их одновременно (требуется AgentDVR версии 7.7.8.0 и выше).
- Настройки отображения записи — кнопка ⚙ в виде шестеренки на панели выбора/удаления; ползунок для ширины столбцов сетки, ограничения максимального количества записей и переключения значка — все сохраняется в localStorage.
- Значок «Новые записи» на вкладке «Записи» показывает, сколько записей появилось с момента вашего последнего посещения этой вкладки; базовое значение хранится в локальном хранилище браузера и является общим для каждого браузера/устройства (не используется разными браузерами или устройствами).
- Цвета с камер считываются из AgentDVR и применяются к полосам временной шкалы и точкам записи.
- Предустановки PTZ — переход к сохраненным предустановкам из окна PTZ; одна точка выбора данных для каждой камеры (требуется AgentDVR v7.7.8.0+)
- В строке состояния отображается количество камер, загрузка процессора/оперативной памяти и свободное место на диске.
- Цветовое оформление через конфигурацию адаптера
go2rtc WebRTC Streams
go2rtc обеспечивает плавную передачу аудиопотоков WebRTC/MSE с низкой задержкой.
Настраивать:
- Установите и запустите go2rtc, настройте потоки с камер в конфигурационном файле go2rtc.
- В разделе «Конфигурация адаптера» → вкладка «Панель управления» выберите из выпадающего списка желаемое имя потока go2rtc для каждой камеры.
- Введите URL-адрес go2rtc , который отображается под таблицей (например,
http://192.168.1.10:1984). - Сохраните изменения и перезапустите. Адаптер перенаправляет трафик WebSocket через ioBroker, чтобы обойти ограничения на междоменные соединения браузеров.
Медиа-прокси
Адаптер может направлять все медиафайлы через ioBroker, поэтому браузеру никогда не потребуется прямое подключение к AgentDVR. Включите медиа-прокси на вкладке «Функции».
| Что используется в качестве прокси? | Прокси отключен | Прокси включен |
|---|---|---|
| Прямая трансляция в формате MJPEG | прямой URL AgentDVR | /agent-dvr.0/api/mjpeg?oid=… |
| Снимок | прямой URL AgentDVR | /agent-dvr.0/api/snap?oid=… |
| Миниатюры записей | прямой URL AgentDVR | /agent-dvr.0/api/thumb?oid=… |
| Запись видео | прямой URL AgentDVR | /agent-dvr.0/api/media?oid=… |
| Прямая трансляция FLV | всегда через ioBroker | всегда через ioBroker |
| go2rtc WebSocket | всегда через ioBroker | всегда через ioBroker |
FLV и go2rtc всегда работают через ioBroker независимо от настроек — браузер не может напрямую отправлять запросы к этим конечным точкам из других источников.
Когда включать
- Доступ к панели управления возможен извне вашей домашней сети, где AgentDVR недоступен напрямую из браузера.
- Извне доступен только ioBroker (например, через обратный прокси или VPN).
Когда следует его выключить
- Browser и AgentDVR находятся в одной сети (локальный доступ).
- Прямое соединение быстрее — нет лишнего перехода, меньшая задержка.
- Меньшая нагрузка на сервер ioBroker — потоки не проходят через Node.js.
Настройки вступают в силу немедленно после сохранения — перезапуск не требуется.
Точки данных
<cam> означаетcam_<oid>_<name> напримерcam_8_Reolink .
Система
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
system.online | логический | Р | Установлено соединение с AgentDVR |
system.lastUpdate | нить | Р | ISO-метка времени последнего успешного опроса |
system.lastPoll | число | Р | Unix-метка времени последнего опроса |
system.cameraCount | число | Р | Количество обнаруженных камер |
system.disk_free_gb | число | Р | Свободное место на диске в ГБ |
system.settings.* | различный | Р | Сглаженные настройки сервера AgentDVR |
system.stats.* | различный | Р | Статистика ЦП/ОЗУ/диска |
system.status.* | различный | Р | Состояние системы (охрана, устройства, версия и т. д.) |
system.raw_getObjects | нить | Р | Исходный JSON-объект getObjects (если включено) |
Управление системой (требуются кнопки управления системой)
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
system.control.arm | кнопка | В | Поставить систему на охрану |
system.control.disarm | кнопка | В | Обезвредить систему |
system.control.allOn | кнопка | В | Включите все устройства |
system.control.allOff | кнопка | В | Выключите все устройства |
system.control.reloadConfig | кнопка | В | Перезагрузите конфигурацию AgentDVR |
system.control.reloadObjects | кнопка | В | Перезагрузить объекты |
system.control.runStorageMgmt | кнопка | В | Запустите управление хранилищем. |
system.control.blockExternal | кнопка | В | Блокировка внешнего доступа |
system.control.unblockExternal | кнопка | В | Разблокировать внешний доступ |
system.control.restart | кнопка | В | Перезапустите AgentDVR |
system.control.refresh | кнопка | В | Принудительное проведение опроса |
system.profile.selector | число | Р/В | Индекс активных профилей — выпадающий список (0 = Дома, 1 = Вне дома, …) |
system.profile.list | нить | Р | Доступные профили представлены в виде массива JSON. |
По камерам
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
<cam>.name | нить | Р | Название камеры |
<cam>.data.online | логический | Р | Камера подключена. |
<cam>.data.connected | логический | Р | Поток подключен |
<cam>.data.recording | логический | Р | Сейчас ведётся запись. |
<cam>.data.detected | логический | Р | Обнаружено движение/объект |
<cam>.data.detectorActive | логический | Р | Датчик движения включен |
<cam>.data.alertsActive | логический | Р | Включены оповещения |
<cam>.data.alerted | логический | Р | Оповещение в данный момент активно. |
<cam>.data.scheduleActive | логический | Р | Расписание включено |
<cam>.data.width /height | число | Р | Разрешение потока |
<cam>.data.* | различный | Р | Все дополнительные свойства устройства из AgentDVR |
<cam>.snapshot_b64 | нить | Р | Текущий кадр какdata:image/jpeg;base64,… (рольmedia.picture ) |
<cam>.control.record | кнопка | В | Начать запись |
<cam>.control.recordStop | кнопка | В | Остановить запись |
<cam>.control.recordRestart | кнопка | В | Перезапустить запись |
<cam>.control.triggerRecord | кнопка | В | Запуск записи (продолжается до истечения таймаута) |
<cam>.control.snapshot | кнопка | В | Дайте команду AgentDVR сохранить снимок на диск. |
<cam>.control.refreshSnapshotB64 | кнопка | В | Получить текущий кадр и записать в него данные. snapshot_b64 |
<cam>.control.detect | кнопка | В | Запуск обнаружения движения |
<cam>.control.alertOn | кнопка | В | Сигнализация тревоги |
<cam>.control.alertOff | кнопка | В | Отключить оповещения |
<cam>.control.switchOn | кнопка | В | Включите камеру |
<cam>.control.switchOff | кнопка | В | Выключите камеру |
<cam>.control.objectDetectOn | кнопка | В | Включить обнаружение объектов (только для камер) |
<cam>.control.objectDetectOff | кнопка | В | Отключить обнаружение объектов (только для камер) |
<cam>.control.scheduleOn | кнопка | В | Включить расписание работы устройства |
<cam>.control.scheduleOff | кнопка | В | Отключить расписание работы устройства |
<cam>.control.detectorOn | кнопка | В | Включите датчик движения |
<cam>.control.detectorOff | кнопка | В | Отключите датчик движения. |
<cam>.control.sensitivityMin | число 0–100 | Р/В | Чувствительность детектора — минимальный порог (только для камер) |
<cam>.control.sensitivityMax | число 0–100 | Р/В | Чувствительность детектора — максимальный порог (только для камер) |
<cam>.control.sensitivityGain | число 0–100 | Р/В | Чувствительность детектора — усиление (только для камер) |
<cam>.control.recOnAlert | кнопка | В | Включите функцию "запись при получении оповещения" |
<cam>.control.recOnDetect | кнопка | В | Включить функцию "запись при обнаружении" |
<cam>.control.purge | кнопка | В | Удалить все записи с этой камеры |
PTZ (требуются кнопки управления PTZ)
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
<cam>.control.ptz.left | выключатель | Р/В | Перемещайте изображение влево (удерживайте, чтобы продолжить движение). |
<cam>.control.ptz.right | выключатель | Р/В | Повернуть вправо |
<cam>.control.ptz.up | выключатель | Р/В | Наклон вверх |
<cam>.control.ptz.down | выключатель | Р/В | Наклонитесь вниз |
<cam>.control.ptz.upLeft | выключатель | Р/В | Диагональ вверх слева |
<cam>.control.ptz.upRight | выключатель | Р/В | Диагональ вверх |
<cam>.control.ptz.downLeft | выключатель | Р/В | Диагональ вниз-влево |
<cam>.control.ptz.downRight | выключатель | Р/В | Диагональ вниз прямо |
<cam>.control.ptz.zoomIn | выключатель | Р/В | Увеличить масштаб |
<cam>.control.ptz.zoomOut | выключатель | Р/В | Отдалиться |
<cam>.control.ptz.stop | кнопка | В | Остановить движение PTZ |
<cam>.control.ptz.center | кнопка | В | Переместиться на позицию центрального игрока/хозяина |
<cam>.control.ptz.preset | число | Р/В | Селектор предустановок — индекс записи для перехода к этой предустановке; перечисление states содержит списки названий предустановок (требуется AgentDVR версии 7.7.8.0 и выше). |
URL-адреса потоков (требуется "Сгенерировать URL-адреса потоков")
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
<cam>.urls.snapshot | нить | Р | URL-адрес текущего JPEG-снимка (только для камер) |
<cam>.urls.photo | нить | Р | URL-адрес конечной точки для фотографий (только для камер) |
<cam>.urls.mjpeg | нить | Р | URL-адрес для прямой трансляции в формате MJPEG (только с камер) |
<cam>.urls.mp4 | нить | Р | Прямая трансляция в формате MP4 по URL (только с камер) |
<mic>.urls.audio_mp3 | нить | Р | URL-адрес для преобразования аудиопотока в MP3 (только для микрофонов) |
<mic>.urls.audio_ogg | нить | Р | URL-адрес аудиопотока OGG (только для микрофонов) |
Мероприятия / Галерея (только для фотоаппаратов)
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
<cam>.events.* | различный | Р | Последние метаданные записи — требуются "точки данных события". |
<cam>.widget_recordings | нить | Р | Галерея HTML-записей — требуется виджет «Галерея» |
<cam>.widget_live | нить | Р | HTML-плитка с одной камерой в режиме реального времени — требует «виджета галереи»; снимок обновляется при каждом опросе адаптера. |
Вебхук
Адаптер предоставляет конечную точку веб-перехватчика, которая запускает немедленный полный опрос AgentDVR:
GET http://<iobroker>:<webport>/agent-dvr.0/webhook
Заменятьagent-dvr.0 с фактическим номером экземпляра (agent-dvr.1 (и т. д.), если вы запускаете несколько экземпляров.
Настройте этот URL-адрес в качестве действия в AgentDVR (Камера → Редактировать → Оповещения → Действия → URL), чтобы получать обновления в режиме реального времени всякий раз, когда запись заканчивается или срабатывает оповещение. Адаптер немедленно повторно получит все данные с камер, записи и системную статистику — не нужно ждать следующего цикла опроса.
Возвраты{"ok":true} об успехе.
Обзор (требуется виджет «Обзор»)
| Точка данных | Тип | Р/В | Описание |
|---|---|---|---|
widget_live_overview | нить | Р | HTML-сетка всех камер — обновление снимков при каждом опросе адаптера. |
Changelog
0.5.2 (2026-08-05)
- (ipod86) feat: rename
overviewDP towidget_live_overviewfor consistent naming
0.5.1 (2026-08-05)
- (ipod86) feat: per-instance URL routing — each adapter instance uses its own URL namespace (
agent-dvr.0/,agent-dvr.1/, …) - (ipod86) feat: rename per-camera recording widget DP from
widgettowidget_recordings; add newwidget_liveDP with a single-camera live tile
0.5.0 (2026-08-03)
- (ipod86) feat: replace live-view camera chip-bar with compact header filter button — funnel icon opens a popover with per-camera checkboxes and drag-to-reorder; order persisted in localStorage
- (ipod86) feat: new-recordings badge on the Recordings tab — shows count of recordings since last visit; persisted per browser/device in localStorage
- (ipod86) feat: recording display settings panel — ⚙ gear button in the select/delete bar; grid column width slider, max-recordings override, badge toggle (all persisted in localStorage)
- (ipod86) feat: first-visit onboarding modals for live view (camera filter & sort) and recordings tab (gestures, gear panel, badge)
- (ipod86) feat: webhook endpoint
/agent-dvr.0/webhooktriggers immediate full poll — configure as AgentDVR action for real-time updates - (ipod86) feat: PTZ presets — navigate to saved presets from PTZ overlay; single selector DP
<cam>.control.ptz.presetper camera (requires AgentDVR v7.7.8.0+) - (ipod86) feat: add event log view to recordings panel (clock icon toggle) alongside grid and timeline
- (ipod86) feat: delete recording from video modal (trash icon, two-click confirm, requires AgentDVR v7.7.8.0+)
- (ipod86) feat: bulk-delete recordings — long-press a tile to enter select mode, checkbox each recording, delete all at once
- (ipod86) feat: new
dashMaxRecconfig setting — limits total recordings shown across all cameras in the dashboard (independent of widget limit, default 200) - (ipod86) feat: tag filter splits AgentDVR's comma-separated tags into individual chips for per-tag filtering
- (ipod86) feat: read camera color from AgentDVR and use it for timeline bars and recording dots
- (ipod86) feat: status bar shows CPU usage, RAM % and free, disk usage % and free alongside camera/recording counts
- (ipod86) feat: reset colors to defaults button in Live Dashboard settings tab
- (ipod86) refactor: remove per-camera pushTrigger data points in favour of the global webhook
- (ipod86) fix: new-recordings badge now correctly visible (display:none CSS fallback fixed)
- (ipod86) fix: record button moved to rightmost position in grid tiles and fullscreen panel
- (ipod86) fix: camera filter button no longer changes appearance when cameras are hidden
- (ipod86) fix: header z-index lifted so the camera filter popover renders above the main content area
- (ipod86) fix: drive object pruning regex corrected; stale drive entries are now properly removed
- (ipod86) fix: deleted recordings no longer reappear after the next adapter poll
- (ipod86) fix: extend video format error message with AgentDVR auto-convert hint in all 11 languages
- (ipod86) fix: FLV stream and grid tile layout scaling corrections
- (ipod86) fix: Italian i18n string with apostrophe broke page JS (changed to escaped variant)
- (ipod86) fix: detect AgentDVR "Command not found" response on delete and show proper error message
0.4.3 (2026-07-19)
- (ipod86) fix: switch polling loop from setInterval to setTimeout to prevent concurrent poll runs
- (ipod86) fix: httpTimeoutMs=0 now correctly clamps to 1000ms instead of falling back to default
- (ipod86) fix: go2rtcEnabled config flag is now honored in fetchGo2rtcStreams
- (ipod86) fix: remove unused isSupportedLang export from widget-i18n
0.4.2 (2026-07-12)
- (ipod86) fix: FLV stream proxy now sends Authorization header (HTTP 401 with AgentDVR auth)
- (ipod86) fix: dashboard camera online status was read from wrong state path (data.online → status.online)
- (ipod86) fix: MP4/FLV stream label was hardcoded German — now translated in all 11 languages
- (ipod86) fix: admin UI default values now match io-package.json (dashTagPosition, widgetAnzahl, widgetBorderRadius)
- (ipod86) fix: go2rtcEnabled flag now respected when loading streams in admin UI
- (ipod86) fix: enableStreamProxy missing from native defaults in io-package.json
0.4.1 (2026-07-12)
- (ipod86) fix: overview tile links to ioBroker host; go2rtc URL shown only when enabled
0.4.0 (2026-07-12)
- (ipod86) feat: optional MJPEG and snapshot stream proxy through ioBroker (browser needs only one connection to ioBroker, not directly to AgentDVR)
0.3.0 (2026-07-06)
- (ipod86) feat: add scheduleOn/Off and detectorOn/Off control buttons for cameras and microphones
- (ipod86) feat: add sensitivityMin, sensitivityMax, sensitivityGain level states for cameras (0–100)
- (ipod86) feat: add audio_mp3 and audio_ogg URL states for microphones
- (ipod86) fix: restrict objectDetectOn/Off and snapshot buttons to cameras (ot=2) only
- (ipod86) feat: inline flv.js into dashboard HTML — no external file required
- (ipod86) fix: preserve FLV stream aspect ratio after tab visibility change (all three player call sites)
- (ipod86) feat: collapsible tag filter row on recordings and timeline pages
- (ipod86) feat: native browser fullscreen button in live view modal with correct aspect ratio
- (ipod86) feat: live view modal header auto-hides after 3 s of inactivity; reappears on mouse/touch
- (ipod86) fix: add fsEnter, fsExit, filterByLabel, timelineView, closePanel i18n keys in all 10 languages
License
MIT License
Copyright (c) 2026 ipod86 david@graef.email
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.