Настройки¶
http://<ip-платы>/settings.html — admin-only. Шесть секций.
WiFi¶
Список Wi-Fi сетей с приоритетом — плата перебирает их по порядку. Если первая сеть недоступна — пробует вторую, и так далее. Если не подключилась ни к одной — поднимает свой AP.
Список сетей¶
Кнопки в строке: ↑ / ↓ (приоритет), ✏️ (редактировать), 🗑️ (удалить). Кнопка + Добавить.
Поля одной сети:
| Поле | Назначение |
|---|---|
| SSID | Имя сети. Если поле пустое и self_ap.enabled=true — это AP-mode-only «сеть» (нужна только для loop'а). |
| Пароль | Пароль WPA2. Пустой — открытая сеть. В UI скрыт за ***. |
| Retries | Сколько раз пробовать WiFi.begin() (по умолчанию 3, после Refactor-8266 — 5). |
| Timeout (сек) | Сколько ждать каждой попытке. Дефолт 8 сек. |
| Static IP | Чекбокс. Если включён — раскрываются 4 поля: |
| ├ IP | IP платы в сети (192.168.1.50) |
| ├ Gateway | IP роутера (192.168.1.1) |
| ├ Netmask | Обычно 255.255.255.0 |
| └ DNS | Например 8.8.8.8 или 192.168.1.1 |
Маркер «оставить старый пароль»
При редактировании сети в поле пароля стоит ***. Если его не трогать — пароль не изменится. Чтобы сменить — введите новое значение. Чтобы превратить в открытую сеть — очистить поле.
Self-AP fallback¶
Если все настроенные сети недоступны — плата поднимет собственную AP.
| Поле | Назначение |
|---|---|
enabled |
Включить fallback (рекомендуется) |
ssid |
Имя AP. По умолчанию CtrlBoard-Setup |
password |
Пароль AP (пустой = открытая) |
channel |
Канал 1..13, дефолт 6 |
Параметры пробинга¶
После старта плата периодически проверяет, не появилась ли «лучшая» сеть (с большим приоритетом).
| Поле | Назначение |
|---|---|
rescan_interval_sec |
Период проверки. Дефолт 300 сек. |
probe_duration_sec |
Сколько времени даётся для попытки переключения. |
probe_checks |
Сколько успешных проверок подряд нужно, чтобы остаться. |
Submit перезагружает плату, если только в API-запросе не указано "reboot": false (через UI всегда reboot).
Устройство¶
Параметры самой платы.
| Поле | Назначение |
|---|---|
| UUID | Read-only. Генерируется на первом запуске из MAC + random tail. Это идентификатор платы для облака и mesh. |
| Имя | Человекочитаемое имя (для UI и облака). |
| Broadcast IP | auto (вычислить из текущего IP + netmask) или явный 192.168.1.255. Используется для UDP broadcast в mesh-режиме broadcast. |
| Static IP | Тот же блок что в Wi-Fi, но один на устройство (применяется для приоритетной сети). |
| Latitude | Широта, дробное число. Для расчёта восхода/заката. |
| Longitude | Долгота. |
Координаты — это широта/долгота, не IP-геолокация
Например для Москвы: latitude=55.7558, longitude=37.6173. Можно подсмотреть в Google Maps (правая кнопка → координаты копируются в буфер).
Время¶
| Поле | Назначение |
|---|---|
| Текущая эпоха | Read-only — сколько сейчас часов на плате. |
| Источник | ntp (синхронизировано) / manual (поставлено вручную) / persisted (восстановлено из файла на старте). |
| Установить вручную | Поле datetime-local для ввода даты-времени. |
| Кнопка «Из браузера» | Подставит текущее время браузера в поле. |
| Кнопка «Применить» | Сохранить введённое. |
Время сохраняется в /config/time.json каждые ~60 секунд — после reboot восстанавливается с точностью до минуты. Если есть Wi-Fi и интернет — NTP подтянет точное.
NTP-серверы захардкожены: pool.ntp.org, time.google.com. Если они недоступны — time.synced=false, cron-триггеры не работают (UI рисует warning).
Глубокий сон¶
Для батарейных нод. Плата спит большую часть времени, периодически просыпается на короткое окно.
| Поле | Назначение |
|---|---|
enabled |
Включить deep-sleep |
wake_interval_sec |
Период сна в секундах |
awake_window_sec |
Сколько секунд держаться бодрой после просыпания (для обработки heartbeat'а, выполнения задач) |
three_reset_window_sec |
Если три ребута подряд за это окно — deep-sleep отключается до следующего uploadfs/factory-reset (escape) |
ESP8266: нужна перемычка D0 ↔ RST
Без неё плата уснёт и не проснётся. Wake-сигнал идёт с GPIO 16 на RST. Это аппаратное требование, не баг прошивки.
Кнопка 😴 Уснуть сейчас — мгновенный сон до следующего wake-interval (для тестирования).
Авторизация¶
| Поле | Назначение |
|---|---|
| Требовать вход | Toggle. Если выключен — UI работает без логина, любой запрос ходит от имени default_user_id (admin по умолчанию). |
Только для домашней LAN
Выключайте только если плата сидит за защищённым Wi-Fi и недоступна снаружи (нет port-forwarding, нет VPN с широким доступом). В диалоге подтверждения будет ещё одно напоминание.
Опасная зона¶
Кнопка «Полный сброс к заводским настройкам» — POST /api/v1/factory-reset. После подтверждения:
- Удаляет все
/config/*.json(включая Wi-Fi, устройства, задачи, пользователей). - НЕ трогает
/public/*(HTML/JS/CSS на FS останутся). - Восстанавливает bootstrap-
users.json→ admin/1234 на следующем загруге. - Перезагружает плату → она появится в AP-режиме.
Когда применять: перепродаёте плату, переезжаете в новую конфигурацию с нуля, тестируете onboarding-flow. Резервные копии не сохраняются — экспортируйте конфиг сами через API если хотите вернуть.