Главная (Dashboard)¶
http://<ip-платы>/dashboard.html — главная после логина. Сюда плата отправляет с /, если Wi-Fi сконфигурирован.
Что на странице¶
Карточки устройств¶
Сетка col-12 col-sm-6 col-md-4 (1 / 2 / 3 колонки в зависимости от ширины экрана). Каждая карточка показывает:
- Имя устройства
- Тип (relay, ds18b20, dht22_temp и т.д.)
- Состояние или значение:
- реле: ON / OFF цветной индикатор
- датчик: текущее значение + единица (°C, %, см, и т.д.)
- возраст последнего полла (карточка тускнеет если данные устарели)
- Действие — для реле кликабельная сама карточка (toggle), для датчиков — read-only
Цветовая индикация¶
| Класс | Когда | Цвет |
|---|---|---|
state-on |
Реле включено | бирюзовый |
state-off |
Реле выключено | серый |
state-active |
Sensor свежий (свежее poll_interval × 3) |
зелёный |
state-stale |
Sensor устарел (давно нет полла) | тусклый серый |
Поллинг¶
Дашборд опрашивает плату каждые 5 секунд через GET /api/v1/devices. RAM-лог (внизу страницы) — каждые 3 секунды через GET /api/v1/logs.
RAM-лог¶
Внизу страницы — кольцевой буфер логов с цветовой подсветкой по уровню (INFO / WARN / ERROR). Полезен для отладки: видно, как срабатывают триггеры, что отвечает облако, ошибки I²C/OneWire.
Размер кольца: 32 строки (ESP8266) / 64 строки (ESP32). При переполнении старые строки уезжают наверх.
Полезные приёмы¶
- Toggle реле прямо с дашборда — клик по карточке (не по имени) посылает
POST /api/v1/devices/{id}/stateс"toggle". - Скрыть устройство с дашборда — пока нет UI-флага, можно временно убрать его через Устройства → удалить, потом добавить обратно когда потребуется. В roadmap — флаг
hiddenбез удаления. - Если карточек нет — значит, в Устройствах ничего не создано. Создайте первое.
API за этой страницей¶
| Метод | Эндпоинт | Что отдаёт |
|---|---|---|
| GET | /api/v1/devices |
Все устройства с runtime-полями state/value/last_read_ms |
| GET | /api/v1/logs |
Кольцевой буфер: {lines: [...], dropped: 0} |
| POST | /api/v1/devices/{id}/state |
{state: "on"\|"off"\|"toggle"} для реле |
Полный справочник — в API.