README, комментарии в коде и HTML

This commit is contained in:
2026-07-22 10:25:52 +04:00
parent bc6f43d561
commit 1bc5bffc38
3 changed files with 443 additions and 61 deletions
+56
View File
@@ -0,0 +1,56 @@
# 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)