/about
, /status
, /action
.setup
— устройство ожидает настройки (доступны /setup
, /about
, /set_token
без авторизации).normal
— устройство работает в штатном режиме (требуется токен).error
, updating
— для расширения./about
, /setup
в режиме setup
, /set_token
в режиме setup
) требуют передачи токена авторизации.GET /about
, GET/POST /setup
(в режиме setup
) и POST /set_token
(в режиме setup
), в запросах должен присутствовать заголовок:
Authorization: Bearer <token>
{ "status": "error", "error": "Unauthorized", "message": "Missing or invalid token" }
GET /about
Отдаёт базовую информацию об устройстве.
{ "device_name": "Relay 1", "device_type": "relay", "firmware_version": "1.0.3", "device_id": "ecf0a1b5c9d74f9a8e294c1f67b0a8b9", "server": "http://192.168.1.10", "status": "normal", // normal | setup | error | updating "ip_address": "192.168.1.42", "mac_address": "A4:CF:12:9B:3F:D2", "uptime": 123456 // в секундах }
GET /status
Отдаёт текущее состояние устройства.
В режиме normal
требует заголовок Authorization с валидным токеном!
В режиме setup
может быть недоступен или возвращать ограниченную информацию.
{ "state": "on" }
{ "temperature_c": 21.8, "humidity_percent": 45.3, "battery_level": 93 }
POST /action
Позволяет управлять устройством.
В режиме normal
требует заголовок Authorization с валидным токеном!
В режиме setup
эндпоинт недоступен.
{ "action": "set_state", "params": { "state": "off" } }
{ "status": "ok", "message": "State changed" }
{ "status": "error", "error": "IllegalActionOrParams", "message": "Device does not support this action or params" }
POST /set_token
Используется для первичной инициализации устройства (в режиме setup
) и для смены токена по инициативе сервера (в режиме normal
).
setup
: доступен без токена — сервер устанавливает токен впервые, переводит устройство в режим normal
.normal
: требует заголовок Authorization с валидным токеном! — смена токена доступна только авторизованному серверу.{ "token": "QmFzZVRva2VuU2FtcGxlMTIz" }
{ "status": "ok", "message": "Token set. Device mode: normal" }
{ "status": "error", "error": "Unauthorized", "message": "Missing or invalid token" }
{ "status": "error", "error": "AlreadyProvisioned", "message": "Device already provisioned" }
GET /setup
и POST /setup
Доступно только в режиме setup
.
Позволяет настроить подключение к Wi-Fi через веб-интерфейс.
/setup
доступен только, пока устройство находится в статусе setup
(до получения токена)./setup
открывается веб-панель для ввода параметров Wi-Fi (SSID, пароль) и, при необходимости, адреса сервера./set_token
).normal
эндпоинт /setup
становится недоступен (возвращает ошибку или заглушку).{ "ssid": "Home_WiFi", "password": "MySecretPass", "server": "http://192.168.1.10" }
{ "status": "ok", "message": "Wi-Fi configured. Connecting..." }
/setup
вне режима setup
:{ "status": "error", "error": "NotAvailable", "message": "Setup mode is not active" }
POST /reboot
Физическая перезагрузка устройства.
Доступно только в режиме normal
. Требует заголовок Authorization с валидным токеном!
{ "status": "ok", "message": "Device will reboot now" }
POST /reset
Сброс всех настроек к заводским, переход в режим setup
.
Доступно только в режиме normal
. Требует заголовок Authorization с валидным токеном!
{}
{ "status": "ok", "message": "Device reset to factory settings. Entering setup mode." }
/about
, /status
, /action
.device_type
помогает серверу различать логику работы с устройством.