# IoT Dashboard — веб-интерфейс «Умного дома» Читает данные из Redis (только чтение) и отображает графики через Chart.js в браузере. ## Пайплайн ``` Producer → RabbitMQ → Consumer → Redis + MongoDB → Dashboard (этот сервис) ``` Dashboard **не пишет** в Redis — только читает. Данные туда кладёт Consumer. ## API | Путь | Ответ | Данные из Redis | |---|---|---| | `GET /api/latest` | `[{sensor_id, value, unit, location, timestamp}]` | `iot:latest` (hash) | | `GET /api/counters` | `{temperature: "N", humidity: "N", power_meter: "N"}` | `iot:counters` (hash) | | `GET /api/recent` | `[{...50 последних событий}]` | `iot:recent` (zset) | | `GET /` | HTML-дашборд | — | ## Интерфейс - **Bar Chart** — последние значения датчиков (цвет зависит от типа) - **Doughnut Chart** — распределение событий по типам устройств - **Таблица** — последние 15 событий с временем, датчиком и значением - **Автообновление** — каждые 3 секунды ## Переменные окружения | Переменная | По умолчанию | Описание | |---|---|---| | `REDIS_HOST` | `127.0.0.1` | Хост Redis | | `REDIS_PORT` | `6379` | Порт Redis | | `REDIS_PASS` | — | Пароль Redis (необязательно) | | `PORT` | `3000` | Порт HTTP | ## Локальный запуск ```bash npm install REDIS_HOST=localhost node server.js # Открыть http://localhost:3000 ``` ## Деплой на Nubes Cloud 1. Запушьте этот репо в свой Gitea 2. В Terraform-конфиге укажите `git_path` на ваш репо и `git_revision` 3. Nubes автоматически запустит `npm start` ## Примечания - **Chart.js загружается из CDN** (jsDelivr) — под должен иметь доступ в интернет - **Тёмная тема** — slate-палитра, адаптивная сетка - При недоступности Redis дашборд показывает ошибку в JSON (не 500)