Skip to content

OpenIPC Dashboard v0.2.4

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Jun 13:06

OpenIPC Dashboard v0.2.4

OpenIPC Dashboard 0.2.4 is a major OpenIPC-focused release. It turns the app from a viewer-oriented dashboard into a much more complete camera control center: stronger discovery, Majestic API integration, firmware operations, better stream health handling, and a more modular UI foundation.

Highlights

  • Added a native OpenIPC / Majestic Control Center inspired by the camera WebUI.
  • Added real OpenIPC firmware read/write operations for status, network, time, logs, backup, reboot, update info, and firmware archive upload.
  • Reworked Majestic settings into schema-driven sections with localized labels, hints, safe diff review, and reload/restart indicators.
  • Improved OpenIPC camera discovery with mDNS, ONVIF WS-Discovery, Majestic HTTP detection, RTSP probing, progress reporting, cancellation, and cross-protocol deduplication.
  • Refactored large Dashboard QML areas into reusable components for grid, sidebar, top bar, status bar, dialogs, buttons, badges, and empty states.
  • Improved camera status consistency between the video grid, sidebar, and health UI.
  • Added stream health, reconnect, quality, and session policy layers with unit tests.
  • Fixed SD/HD stream switching for preview/fullscreen OpenIPC streams.
  • Added GitHub Actions CI coverage and expanded the test suite.

OpenIPC / Majestic Control Center

  • Reads Majestic configuration from /api/v1/config.json.
  • Builds settings UI from /api/v1/config.schema.json.
  • Preserves unknown camera-specific fields instead of rewriting the whole config blindly.
  • Applies only a minimal validated patch through /api/v1/config.
  • Fixes the previous null patch issue when saving changed Majestic settings.
  • Adds live ISP controls for image tuning.
  • Adds raw JSON inspection.
  • Adds Prometheus metrics viewing.
  • Adds endpoint/capability overview.
  • Adds JPEG snapshot and backup helpers.
  • Adds clear confirmation flow before applying changes.
  • Redacts sensitive values in review flows where possible.

Firmware operations

The app now talks to real OpenIPC WebUI/CGI endpoints for firmware-level control:

  • Status / pulse data.
  • Network read/write.
  • DHCP/static network configuration.
  • Wi-Fi scan.
  • Network reset.
  • Timezone and NTP server configuration.
  • NTP sync and setting camera time from the PC.
  • Syslog, Majestic log, and dmesg snapshots.
  • Firmware backup download.
  • Reboot with explicit confirmation.
  • Firmware update information.
  • Firmware archive upload to the camera.

Final GitHub firmware upgrade through /ws/upgrade is intentionally guarded for now because the bundled Qt tree does not include Qt WebSockets yet. The UI keeps a safe fallback to the camera WebUI for that final flashing step.

Camera discovery

  • Added OpenIPC mDNS discovery.
  • Added Majestic HTTP fingerprinting.
  • Added RTSP reachability probing.
  • Improved ONVIF WS-Discovery probing.
  • Added fast and deep scan modes.
  • Added progress percentage during network scan.
  • Automatically hides the progress bar after scan completion.
  • Merges duplicate evidence by IP address.
  • Shows detected ports, protocol hints, and confidence.

Dashboard and UI

  • Split large Dashboard pieces into reusable QML components.
  • Added modular sidebar, top bar, status bar, grid panel, layout toolbar, toast, and empty state components.
  • Added reusable Majestic controls.
  • Improved layout grid behavior.
  • Improved camera cell overlays and stream badges.
  • Standardized stream overlay format: codec, resolution, bitrate, FPS.
  • Improved context actions for OpenIPC/Majestic cameras.
  • Expanded Russian and English localization for new controls.

Stream health and camera status

  • Added CameraStatusPolicy.
  • Added ReconnectPolicy.
  • Added StreamHealthPolicy.
  • Added StreamQualityPolicy.
  • Added StreamSessionPolicy.
  • Offline and stream failure states now take priority over stale optimistic online states.
  • Fixed sidebar/grid status mismatch.
  • Improved reconnect behavior and stream diagnostics.

Tests and quality

Added or expanded unit tests for:

  • camera onboarding parsing;
  • camera status policy;
  • Majestic API client;
  • OpenIPC firmware client;
  • network discovery;
  • stream health;
  • stream quality;
  • stream session logic;
  • reconnect policy;
  • state store;
  • model artifact verification.

Local validation before release:

  • Release app build: passed.
  • ctest: 13/13 passed.
  • Firmware client tests: passed.
  • Diff whitespace check: passed.

Known limitations

  • Full firmware flashing through /ws/upgrade requires Qt WebSockets and is not enabled in this build.
  • Live firmware logs over WebSocket are not implemented yet; log snapshots are available.
  • Some deeper firmware administration features will continue to expand in future releases.

OpenIPC Dashboard 0.2.4 — крупный релиз, сфокусированный на OpenIPC-камерах, Majestic API, firmware-операциях, поиске камер, стабильности видеопотоков и приведении интерфейса к более цельной архитектуре.

Главное

OpenIPC / Majestic Control Center

Добавлено полноценное окно управления OpenIPC-камерой в стиле WebUI камеры:

  • чтение статуса камеры;
  • управление Majestic-настройками через schema-driven UI;
  • поддержка Live ISP-настроек;
  • просмотр raw JSON конфигурации;
  • просмотр Prometheus metrics;
  • страница endpoint/capabilities;
  • безопасное применение изменений через diff-patch;
  • отдельное отображение настроек, требующих reload/restart;
  • исправлено применение настроек без null-значений в patch;
  • добавлены русская и английская локализации для новых пунктов UI.

Firmware/OpenIPC операции

Начата настоящая интеграция firmware WebUI операций прямо из приложения:

  • Status / pulse данные;
  • Network: чтение, сохранение, reset, DHCP/static, Wi‑Fi scan;
  • Time: timezone, NTP-серверы, sync, установка времени с ПК;
  • Logs: syslog, majestic log, dmesg;
  • Backup: сохранение firmware backup;
  • Reboot камеры;
  • Update info;
  • Upload firmware archive на камеру.

Примечание: финальный GitHub upgrade через /ws/upgrade пока требует Qt WebSockets, поэтому этот шаг защищён и не выполняется “вслепую”. Для него оставлен безопасный переход в WebUI камеры.

Поиск камер

Сильно улучшен поиск устройств в сети:

  • добавлено обнаружение OpenIPC через mDNS;
  • добавлен Majestic HTTP fingerprint;
  • добавлен RTSP probe;
  • расширен ONVIF / WS-Discovery;
  • результаты разных протоколов объединяются по IP;
  • добавлены confidence/protocol/ports признаки;
  • улучшен deep scan;
  • прогресс поиска теперь заполняется постепенно и показывает проценты;
  • после завершения поиска progress bar скрывается;
  • улучшено отображение найденных OpenIPC-камер.

Dashboard и интерфейс

Продолжена большая чистка Dashboard:

  • DashboardView.qml частично разобран на отдельные компоненты;
  • добавлены переиспользуемые Dashboard UI-компоненты;
  • вынесены sidebar, topbar, statusbar, grid panel, toolbar, toast, empty state;
  • добавлен редактор раскладок;
  • исправлена сетка раскладки;
  • улучшено отображение свободных ячеек;
  • унифицированы кнопки, бейджи, карточки и статусы;
  • добавлены отдельные компоненты для Majestic UI;
  • улучшены контекстные действия камеры.

Статусы камер и stream health

Статусы камеры теперь считаются более строго и единообразно:

  • статус в grid и sidebar теперь синхронизирован;
  • offline/ошибка потока имеет приоритет над устаревшим optimistic online;
  • добавлен единый слой CameraStatusPolicy;
  • добавлены stream health/session/quality/reconnect policy;
  • улучшено переподключение потоков;
  • исправлена работа SD/HD preview/fullscreen потоков;
  • подпись видеопотока приведена к единому виду: codec, resolution, bitrate, FPS.

Health / диагностика

Добавлены основы Health Center:

  • единые статусные бейджи;
  • health dialog;
  • отображение причин offline/attention;
  • подготовлена архитектура для дальнейшей диагностики камер.

Analytics и модели

  • добавлена проверка model artifacts;
  • улучшены проверки backend-логики аналитики;
  • расширены unit-тесты для новых backend policy-слоёв.

Безопасность и надёжность

  • добавлены подтверждения для опасных операций;
  • backup сохраняется атомарно;
  • firmware archive проверяется перед upload;
  • сетевые операции имеют bounded timeout;
  • sensitive-поля редактируются аккуратно;
  • улучшена обработка HTTP/auth ошибок.

Тесты и CI

Добавлены новые unit-тесты:

  • CameraOnboardingParserTests;
  • CameraStatusPolicyTests;
  • MajesticClientTests;
  • NetworkDiscoveryServiceTests;
  • OpenIpcFirmwareClientTests;
  • ReconnectPolicyTests;
  • StateStoreTests;
  • StreamHealthPolicyTests;
  • StreamQualityPolicyTests;
  • StreamSessionPolicyTests;
  • ModelArtifactVerifierTests.

Также добавлен GitHub Actions CI workflow.

Проверено локально:

  • Release-сборка приложения проходит успешно;
  • ctest проходит полностью;
  • 13/13 unit-тестов зелёные.

Известные ограничения

  • Полный GitHub firmware upgrade через WebSocket /ws/upgrade пока не включён, так как текущая сборка Qt не содержит Qt WebSockets.
  • Live firmware logs через WebSocket пока не реализованы; доступны snapshot-логи через syslog/majestic/dmesg.
  • Некоторые глубокие административные операции OpenIPC firmware будут расширяться в следующих релизах.