Сеть и mesh¶
http://<ip-платы>/network.html — admin-only. Параметры UDP-стека для общения с соседними платами.
Блок «Self»¶
Read-only информация о текущей плате.
| Поле | Назначение |
|---|---|
| UUID | Идентификатор платы (тот же что в Настройках → Устройство). |
| Имя | Из тех же настроек. |
| Mode | Текущий режим Wi-Fi: STA (подключена) или AP (поднимает свой AP). В AP-режиме mesh между другими платами не работает (нет broadcast'а в локалку). |
| IP | Текущий IP в STA-режиме. |
Блок «Соседи»¶
Таблица плат, от которых пришёл валидный mesh-пакет за последние ~60 секунд:
| Колонка | Что |
|---|---|
| UUID | Кто прислал |
| Имя | Имя платы (поле name из его device_config) |
| IP | С какого IP пришёл |
| Last seen | Секунд назад был последний валидный пакет |
Невалидные пакеты (с неверной подписью) отбрасываются молча — UI их не показывает. Это значит ваш network_secret не совпадает с тем, что у соседа.
Параметры UDP¶
| Поле | Назначение |
|---|---|
| Mode | multicast (по умолчанию) или broadcast |
| Multicast group | IP мультикаст-группы. Дефолт 224.0.13.31. Менять только если совпадает с другим продуктом в вашей сети. |
| Port | UDP-порт. Дефолт 13031. Должен совпадать на всех платах в одной mesh-группе. |
Multicast vs broadcast:
multicast(224.x.x.x) — современный способ. Большинство роутеров его пропускают, в Wi-Fi сегменте работает из коробки.broadcast(255.255.255.255 илиbroadcast_ipиз device_config) — fallback. Иногда лучше работает в гостевых сетях / сегментированных VLAN.
Если соседи не видят друг друга при multicast — попробуйте broadcast.
Network secret¶
Главный секрет mesh-группы. Без правильного network_secret плата отбросит чужой пакет.
| Поле | Назначение |
|---|---|
| Текущий ключ | Read-only, можно скопировать кнопкой 📋 |
| Новый ключ | Поле ввода + кнопка «Применить» |
Формат: 64-символьная hex-строка (32 байта).
Генерация нового¶
Если ничего не задано — на первом запуске плата генерирует случайные 32 байта. Чтобы объединить несколько плат в одну mesh-группу: возьмите ключ одной (📋), вставьте в другую.
Можно сгенерировать с компьютера:
Что меняется при смене ключа¶
После применения нового network_secret:
- Плата начнёт подписывать свои пакеты новым ключом.
- Старые соседи перестанут понимать её, она перестанет понимать их (пока они не получат новый ключ).
- Применение мгновенное (не нужен ребут).
Зачем мне это меняить¶
| Сценарий | Что делать |
|---|---|
| Развернул первую плату | Ничего — она сама сгенерировала ключ. |
| Добавил вторую плату | Скопировать ключ с первой во вторую — обе войдут в одну группу. |
| Сосед/гость должен подключиться к моей mesh-группе | Скопировать ваш ключ ему. |
| Хочу разделить сеть на две группы | На одной части плат сгенерировать новый ключ, не делиться им с другой частью. |
| Подозреваю утечку ключа | Сгенерировать новый и обновить везде. |
Что передаётся по mesh¶
Точно: события задач (udp_send action и udp_event trigger). Каждое — JSON-пакет вида:
Подписывается HMAC-SHA256(payload, network_secret) и шлётся по UDP. Без правильной подписи — отброс.
Размер пакета — ограничен MTU UDP (обычно 1472 байт). На практике события короткие, лимит не упирается.
Диагностика¶
- Сосед не видится. Проверьте: одна Wi-Fi сеть (один сегмент)? одинаковый
port,multicast_group,network_secret? Не отрезает ли роутер multicast (некоторые гостевые/firewall-режимы делают это)? - Видится, но триггер не срабатывает. Проверьте имя события (
event) — оно должно совпадать вudp_send(отправитель) иudp_event(получатель). - Самотест. На отправителе — нажмите «▶ Запустить сейчас» в задаче с
udp_send. На получателе — смотрите RAM-лог; там будет видно прилёт пакета.
API за этой страницей¶
См. API → Mesh / Network.