Ребренд Мониторинг Орбита -> Железный Егорин; accent green->amber #F59E0B; LoginScreen правая половина = Lightning (WebGL, hue 35 тёплый) под стеклянной формой; левая панель — тёплый градиент. Доступ агентам: репо публичный, push german-токеном. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
3.1 KiB
Markdown
47 lines
3.1 KiB
Markdown
# Servaki Monitor — Смартпанель
|
|
|
|
Единая панель мониторинга с **опциональными модулями**:
|
|
|
|
- ⚡ **Энергомониторинг** — Sunways STH → Wiren Board → MQTT/InfluxDB; щитовые шкафы Navtelecom (FLEX/NTCB).
|
|
- 🧩 **Смартпанель (realty)** — Wiren Board: реле WB-MR, диммеры WB-MDM3, сцены (MQTT).
|
|
- 🧭 **GPS-мониторинг** — Navtelecom FLEX/NTCB → Traccar (REST/WebSocket); автопарк + стационарные объекты.
|
|
|
|
Продукт «продолжает» наработки `Мониторинг ПО/NAvtelecom` (FLEX-сервер, Wiren Board, Silero-«Рация») и
|
|
эталоны UI (`orbit-gps-panel.html`, `sunways-dashboard.html`), собирая их в один React-фронт.
|
|
|
|
## Стек
|
|
React 18 + Vite + TypeScript + Tailwind. Графики — Recharts, иконки — lucide-react.
|
|
Дизайн-система (навык **ui-ux-pro-max**): тема **Dark-OLED**, акцент `#22C55E`, фон `#0F172A`, шрифты Fira Sans / Fira Code.
|
|
|
|
## Архитектура (модульность)
|
|
```
|
|
src/
|
|
core/types.ts — типонезависимое ядро: MonitoredEntity, MonitorEvent (EventBus-контракт)
|
|
config/modules.ts — реестр модулей + флаги enabled (опциональность / мультиарендность)
|
|
components/ — AppShell (сайдбар+топбар), ui-примитивы (Card/KPI/Badge/StatusDot)
|
|
modules/
|
|
energy/ smart/ gps/ — три модуля, каждый самодостаточен
|
|
data/mock.ts — демо-данные (заменяются адаптерами)
|
|
```
|
|
Источники нормализуются адаптерами в `MonitoredEntity` (energy→InfluxDB, realty→WB-MQTT, transport→Traccar).
|
|
Модуль включается/выключается флагом `enabled` — далее флаги придут с бэкенда по `clientId`.
|
|
|
|
## Запуск
|
|
```bash
|
|
npm install
|
|
npm run dev # http://localhost:5180
|
|
npm run build # dist/
|
|
```
|
|
|
|
## Деплой
|
|
- **vm-mts1** (публично, за Caddy — как Heritage): `docker compose up -d --build` → `:8096`, Caddy `reverse_proxy`, поддомен через Beget API + LE-TLS.
|
|
- **Дубль на офис-Proxmox** (внутренний/дев, рядом с реальным Wiren Board): тот же образ.
|
|
- Тяжёлый слой данных (InfluxDB/Grafana/MQTT/FLEX-сервер) — отдельным compose на Proxmox.
|
|
|
|
## Дорожная карта
|
|
1. ✅ Каркас + 3 модуля на моках, дизайн-система.
|
|
2. Бэкенд-шлюз (Node/Express + PG + Redis): мультиарендность `clientId`, нормализация, кэш, WS.
|
|
3. Адаптеры: Traccar (REST/WS), Wiren Board (MQTT deviceBridge), InfluxDB (энерго).
|
|
4. EventBus → лента + звук + голос (Silero «Рация»).
|
|
5. Карта MapLibre в GPS-модуле; вход (OAuth/OTP).
|