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
nullpatch 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/upgraderequires 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 будут расширяться в следующих релизах.