📦 Импорт приборов — формат JSON
Один прибор — это объект. Для массового импорта — массив таких объектов. Новым приборам сервер сам присвоит id и sort_order.
{
"manufacturer": "EK-Lighting",
"model": "MC-15 Profile IP65",
"powerKw": 1.9,
"weightKg": 23.5,
"powerConnectorIn": "powerCON TRUE1",
"powerConnectorOut": "powerCON TRUE1",
"signalConnectorIn": "5-pin XLR",
"signalConnectorOut": "5-pin XLR",
"ethernetConnectorIn": "etherCON",
"ethernetConnectorOut": "etherCON",
"clampType": "Half Coupler Clamp",
"dmx": true,
"rdm": false,
"sACN": true,
"artNet": false,
"dmxChannels": { "Standard": 12, "Extended": 3 },
"dmxDescriptions": { "Standard": "12-канальный базовый режим" },
"dmxChannelDetails": {
"Extended": {
"1": { "name": "Dimmer", "role": "coarse" },
"2": { "name": "Pan", "role": "coarse" },
"3": { "name": "Pan", "role": "fine" }
}
}
}
manufacturer, model, powerKw, weightKg — обязательные базовые поля.
- Разъёмы
powerConnectorIn/Out, signalConnectorIn/Out, ethernetConnectorIn/Out и clampType — текстовые; желательно брать из актуальных значений ниже.
- Флаги
dmx, rdm, sACN, artNet — true/false.
dmxChannels — объект { "Название режима": число каналов }.
dmxDescriptions — объект { "Название режима": "описание" } (необязательно).
dmxChannelDetails — объект { "Название режима": { "1": { "name": "…", "role": "…" } } } (необязательно).
- Динамические поля добавляются по ключам из раздела «Актуальная схема» (ниже), значения — по типу поля.
🎚️ Импорт DMX
Режимы (массив)
[
{ "name": "Standard", "channels": 12, "description": "" },
{ "name": "Extended", "channels": 3, "description": "" }
]
- Данные должны быть массивом объектов.
name — обязательное название режима.
channels — целое число каналов, строго больше 0.
description — необязательное описание.
Каналы одного режима (объект)
{
"1": "Dimmer",
"2": "Pan",
"3": "Pan fine",
"4": { "name": "Tilt", "role": "coarse" }
}
- Данные должны быть объектом (НЕ массивом).
- Ключ — номер канала строкой:
"1" … "N".
- Значение — строка (имя атрибута) ИЛИ объект
{ "name": "…", "role": "…" }.
role может быть: coarse (8-bit), fine (16-bit fine), ultra (32-bit ultra).
- Параметр = атрибут: 16-bit = 2 канала (coarse + fine), но это 1 параметр; 32-bit = 3 канала, тоже 1 параметр.
Автоматический подбор атрибутов (fuzzy)
- Точное совпадение имени атрибута → затем псевдоним → затем подстрока (выбирается самый длинный совпавший атрибут).
- Суффиксы
fine, 16 bit, hi res, high res → role = fine.
- Суффиксы
ultra, 32 bit → role = ultra.
- Окончание
coarse в имени отбрасывается перед подбором.
- Если атрибут не найден — имя берётся как есть,
role = coarse.
⚙️ Импорт полей — формат JSON
Поля приборов задаются массивом. order добавлять не нужно — он проставляется автоматически по порядку элементов.
[
{ "key": "zoom", "label": "Zoom", "type": "number", "icon": "🔍", "required": false, "unit": "°" },
{ "key": "gobo", "label": "Gobo", "type": "selectone", "icon": "🌐", "values": ["📌|Metal", "🌐|Glass"], "defaultValue": "Metal" },
{ "key": "modes", "label": "Режимы", "type": "selectmulti", "icon": "🎛️", "values": ["Standard", "Extended", "Auto"] },
{ "key": "indoor", "label": "Indoor", "type": "checkbox", "defaultValue": true },
{ "key": "notes", "label": "Notes", "type": "text", "placeholder": "Примечание" }
]
key — уникальный строковый ключ (латиница, без пробелов).
label — название поля.
type — один из: text, number, selectone, selectmulti, checkbox, dmx.
number → дополнительно unit (единица измерения).
text → дополнительно placeholder.
selectone → values (массив строк формата "иконка|текст") и defaultValue (текст).
selectmulti → values (массив строк). Значение у прибора хранится как массив выбранных текстов.
checkbox → defaultValue (true/false).
dmx — специальный тип, включает редактор DMX-каналов; доп. полей не требует.
🗂️ Актуальная схема и значения
Эти значения уже существуют в системе. ИИ должен использовать их, чтобы не выдумывать новые форматы.
🤖 Готовый промпт для ИИ
Скопируйте текст ниже и вставьте в задачу ИИ вместе с данными приборов. Промпт содержит все форматы и актуальные значения.