Протокол 4DUK — Revision 1.3

UDP broadcast 9009 — типы пакетов, lifecycle, диагностика

Основы

Транспорт — UDP broadcast на порт 9009. Формат — plain text, разделитель «:», пробелы запрещены (кроме payload). Все устройства в одном L2-сегменте.

Степаныч, давай охолаживай: чем проще протокол, тем меньше причин для поломки.

Типы пакетов

ПрефиксНазначениеПример
device:Команда устройствуdevice:corridor_light:action:set:value:1
devstate:Статус/событие от устройстваdevstate:esp01_01:event:button:value:pressed
devping:Keep-alive (каждые 180 сек)devping:esp01_01:sys_uptime:12345
sys_Транзитная системная диагностикаsys_log:gateway_01:msg:boot_ok
err_Транзитная ошибкаerr_timeout:esp01_01:action:relay_set
debug_Отладочный транзитdebug_rx:gateway_01:raw:device:...:

Lifecycle устройства

  1. Cold start: устройство включается, подключается к Wi-Fi, отправляет devstate с текущим состоянием.
  2. Пассивная авто-регистрация: сервер перехватывает devstate и регистрирует устройство в JSONB-дереве.
  3. Keep-alive: устройство отправляет devping каждые 180 секунд.
  4. Команда: сервер отправляет device: — устройство выполняет и отвечает devstate:.
  5. Потеря связи: если devping не приходит 3 цикла (9 мин), сервер помечает устройство как неактивное.

Транзитные пакеты (диагностика без смены ПО)

Шлюз может отправлять пакеты с префиксами sys_, err_, debug_ прямо в облако, не меняя прошивку. Это позволяет диагностировать проблемы на лету.

sys_log:gateway_01:msg:boot_ok
err_timeout:esp01_01:action:relay_set
debug_rx:gateway_01:raw:device:corridor_light:action:set:value:1

Важные нюансы