MMDALI
← MMDALI / Главная

ДЛЯ ИНТЕГРАТОРОВ

От команды
до света.

Открытое REST API поверх HTTP и команды MODBUS RTU. Готовые примеры, понятные шкалы значений и управление сразу группой.

Попробовать интерфейс ↗К примерам ↓

Выберите действие.
Скопируйте команду.

Выберите группу G00–G15 и формат примера. Генератор ничего не отправляет на оборудование. Подставьте локальный IP своего модуля.

ПРИМЕР · НЕ ВЫПОЛНЯЕТСЯ

REST и HTTP — один интерфейс.

REST — способ организации API, HTTP — протокол, по которому идут запросы. В MMDALI чтение доступно через GET, а управление — через POST с JSON. Отдельный «простой GET для включения света» в текущей прошивке не предусмотрен.

Чтение из адресной строки

Откройте в браузере телефона или компьютера, подключённого к локальной сети модуля:

http://<IP-модуля>/api/info
http://<IP-модуля>/api/dali/status
http://<IP-модуля>/api/dali/state?target=group&id=1

Это обычные HTTP GET-запросы. Браузер покажет JSON-ответ.

Управление через JSON

Задайте метод POST, путь команды и Content-Type. Это можно сделать из cURL, Node.js или вашей системы автоматики.

POST /api/dali/brightness HTTP/1.1
Host: <IP-модуля>
Content-Type: application/json

{"target":"group","id":1,"value":125}

125 соответствует 50% на линейной шкале ползунка интерфейса; это не измеренная световая отдача.

Адресация

КомуJSON-поляДиапазон id
Вся линия"target":"broadcast"id не нужен
Группа"target":"group","id":10..15
Светильник"target":"device","id":00..63

Основные команды

HTTP-метод и путьТело / назначение
GET /api/infoСведения о модуле
GET /api/dali/state?target=group&id=1Состояние группы G01
POST /api/dali/brightness{"target":"group","id":1,"value":125}
POST /api/dali/rgb{"target":"group","id":3,"hex":"#32a4ff"}
POST /api/dali/cct{"target":"group","id":1,"value":4000}
POST /api/dali/hsv{"target":"group","id":3,"value":180,"contrast":250,"hue":140}
POST /api/dali/cct{"target":"group","id":1,"step":1} — холоднее; step 2 — теплее

Шкалы, которые важно учитывать

Ответы и ошибки

Проверяйте HTTP-код и поле ok. Ошибка параметров возвращает HTTP 400; сбой обмена с контроллером — HTTP 502. Подробность ошибки находится в поле error.

// Форма сообщения об ошибке; текст зависит от операции
{"ok":false,"error":"описание ошибки"}

Многострочные cURL-примеры используют синтаксис Bash/sh. В PowerShell используйте curl.exe и соберите команду в одну строку либо выберите формат HTTP или JavaScript.

Пример JavaScript в генераторе рассчитан на Node.js 18+ или выполнение внутри интерфейса самого модуля. Запрос со сторонней веб-страницы может потребовать согласования CORS, HTTPS и правил доступа к локальной сети в браузере. Серверная интеграция не зависит от CORS.

MODBUS.
Группа — одна команда.

Текущий проект поддерживает внешний MODBUS RTU по RS-485. Параметры из текущей прошивки: 115200, 8N1, Slave ID 1. Перед подключением серийного устройства сверяйте паспорт и актуальную карту регистров.

Все приведённые адреса — 0-based. Если ваш клиент показывает регистры с единицы, задайте соответствующее смещение в клиенте. Не добавляйте 40001 к адресу без проверки принятого им формата.

ОперацияГруппа g = 0..15Устройство a = 0..63
Яркость2000 + 5×g3000 + 5×a
Цветовая температура2620 + 5×g3320 + 5×a
RGB — три регистра2700 + 3×g3640 + 3×a
HSV — три регистра2800 + 3×g4800 + 3×a

Записать яркость группы G01

FC06 / 0x06, регистр 2005, значение 125. Выберите MODBUS RTU в генераторе выше, чтобы получить полный кадр с CRC. Запись 255 в тот же регистр выключает группу.

Установить RGB группы G03

FC16 / 0x10, начиная с регистра 2709, запишите три значения [49,163,254] для цвета #32a4ff. Полную RGB-тройку передавайте одной записью нескольких регистров. Для HSV так же передавайте полную тройку value/contrast/hue.

Управлять несколькими группами одним кадром

В компактном диапазоне 4200 + g расположена яркость групп. Пример: FC16, старт 4200, значения [50,125,250] — G00 получает 20%, G01 — 50%, G02 — 100% по шкале интерфейса.

Один кадр MODBUS может породить несколько последовательных действий DALI. Это не обещание одновременной смены света с точностью до миллисекунды.

Работать с регистрами через HTTP-мост

Если в вашей системе есть HTTP, но нет собственного MODBUS-клиента, текущий API предоставляет чтение и запись holding-регистров:

GET /api/modbus/read?addr=2&count=1

POST /api/modbus/write
{"addr":2005,"value":125}

POST /api/modbus/write-multiple
{"addr":2709,"values":[49,163,254]}

На внешнюю RS-485 линию подключайте один активный MODBUS-мастер. В текущей аппаратной архитектуре веб-мост ESP взаимодействует с контроллером по отдельному внутреннему интерфейсу.

Формат RTU: спецификации Modbus Organization. Среда JavaScript: документация Node.js fetch. Карта регистров MMDALI взята из текущего проекта прошивки.

Настройка с телефона.
Код — только для интеграции.

  1. Откройте локальный веб-интерфейсПодключите телефон к Wi-Fi модуля или к общей локальной сети.
  2. Распределите светильникиНайдите устройства, проверьте их включением, назначьте адреса и состав групп в браузере.
  3. Дайте группам понятные именаНапример, G00 — «Кухня», G01 — «Гостиная». Для API используйте номер группы.
  4. Подключите автоматикуВыберите HTTP/JSON или MODBUS RTU. Проверьте режимы на ваших моделях драйверов.

Интерактивное демо показывает только управление. Скриншоты конфигуратора доступны на главной странице. Полную карту регистров под ваш проект можно запросить у нас.

Примеры сверены с текущим проектом ESP / STM TTL. Спецификация серийной версии уточняется к выпуску в I квартале 2027 года. RGB и CCT требуют соответствующих возможностей драйвера.

Открыть демо ↗Обсудить интеграцию