Skip to content

Плата (ctrl-board)

Прошивка для ESP8266/ESP32 — то, что бежит на самой плате. Один кодовый набор, два таргета, web-интерфейс + REST API + локальное хранилище состояний.

Что внутри прошивки

Подсистема За что отвечает
wifi Подключение к 5 сетям с приоритетом, AP-fallback, static-IP
device_config UUID платы, имя, geo, broadcast_ip, static_ip
users / auth Локальные пользователи, bearer-токены, role-based доступ
auth_settings Глобальный toggle «требовать вход»
secrets Авто-генерируемые token_secret и password_salt
time NTP-синхронизация + ручная установка времени
devices Реле и датчики (CRUD + runtime-state)
tasks Триггеры, условия, действия, окна валидности
sensors / triggers / conditions / actions Плагины 4 категорий — см. Плагины
mesh UDP multicast/broadcast между платами с HMAC-подписью
cloud HTTP-клиент к облаку, heartbeat, command-queue, OTA
fs_ota Сохранение /config/*.json при обновлении файловой системы
sleep Глубокий сон с 3-reset escape
sun NOAA-расчёт восхода/заката по координатам
web HTTP-сервер + REST API

Интерфейс платы

После прошивки и Wi-Fi настройки UI доступен по локальному IP (http://<ip-платы>/).

Технологии

  • PlatformIO + Arduino framework — единая среда сборки для двух таргетов.
  • C++ 17, без RTOS, кооперативная single-threaded модель.
  • LittleFS для персистентного хранилища (HTML/JS/CSS + /config/*.json).
  • HTTP сервер — встроенный ESP8266WebServer / WebServer (ESP32).
  • Web UI — vanilla HTML + Bootstrap 5.3.3 (локально, без CDN) + plain JS.

Никаких bundler'ов, фреймворков и npm — всё кладётся на плату как есть.