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

Локальный запуск

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)
S
Description
IoT demo — Node.js dashboard reading Redis
Readme
48 KiB
Languages
HTML 69.1%
JavaScript 30.9%