Короткий ответ
- Прямого «универсального» RESTful API в Wiren Board для управления всем устройством из коробки нет.
- Стандартный и рекомендованный способ интеграции/удалённого управления — через MQTT (протокол WB‑MQTT‑JSON) и через Modbus для промышленных устройств.
- Если нужен REST (HTTP) — его обычно делают поверх MQTT (или Modbus) — например через Node‑RED, HTTP→MQTT бридж или собственный HTTP‑сервис.
Где читать (официальные ресурсы)
- Главная документация/Wiki Wiren Board: https://wirenboard.com/wiki/
- Описание протокола WB‑MQTT‑JSON (как и какие данные/управления публикуются через MQTT): https://wirenboard.com/wiki/WB-MQTT-JSON_protocol
- Статья про интеграцию с Node‑RED (варианты экспорта/создания HTTP API через flows): https://wirenboard.com/wiki/Node-RED
Как это обычно делается — пошагово (вариант с Node‑RED, самый распространённый)
1. Убедитесь, что у вас настроен локальный MQTT‑брокер (обычно Mosquitto) и что Wiren Board публикует данные в соответствии с WB‑MQTT‑JSON (это стандартная конфигурация прошивки).
2. Установите Node‑RED на сам WB (если не установлен):
- apt install nodered (или через Docker).
3. В Node‑RED создайте поток: HTTP In (например POST /api/set) → JSON → преобразование/валидация → MQTT Out (на нужную тему). Для чтения состояния: MQTT In → JSON → HTTP Response.
4. В качестве тем и формата сообщений используйте описание в WB‑MQTT‑JSON (в Wiki): именно там показано, какие топики и payload ожидаются для изменения управляющих точек.
5. Защитите HTTP‑эндпойнты: используйте HTTPS (reverse proxy с certbot/nginx), Basic auth или, лучше, VPN/SSH‑туннель при доступе из интернета.
Пример (схема, не конкретные топики — уточню по вашей системе)
- Создаём HTTP POST /api/relay/1 с телом {"value":1}
- Node‑RED публикует в MQTT topic, соответствующий выходу реле (согласно вашей конфигурации WB) payload 1
- WB получает сообщение и переключает реле
Альтернативы
- Начиная с некоторых прошивок/сборок, веб‑интерфейс WB сам использует внутренние HTTP/JSON‑вызовы (JSON‑RPC/REST‑подобные) — можно проанализировать запросы веб‑GUI и повторять их, но это не документированный стабильный API.
- Можно писать маленький Python/Node сервис на самом контроллере, который будет предоставлять REST и общаться с WB через MQTT/Modbus.
- Использовать внешние продукты/облака, которые умеют превращать REST ↔ MQTT (EMQX, HiveMQ, mqtt-http-bridge и т.п.).
Что мне нужно от вас, чтобы дать точную инструкцию
- Модель Wiren Board (WB‑M, WB6, WB5 и т.п.) и версия прошивки.
- Что конкретно хотите управлять/читать (реле, термостат, датчики, конкретный datapoint).
- Нужен ли доступ из интернета и какие требования по безопасности.
Если скажете модель и пример точки управления — пришлю конкретный пример Node‑RED flow и точные MQTT‑топики/payload или покажу, как вызвать встроенные HTTP‑вызовы веб‑GUI (если у вас та версия прошивки, где это работает).