Форматы шаблонов и JSON

Как устроены устройства, каналы, команды и шаблоны

Эта глава объясняет структуру конфигурации на пользовательском уровне: что такое устройство, как описывается канал, как задается команда и когда нужен шаблон или JSON.

Устройство

Устройство объединяет адрес, имя, список каналов и список команд. Именно оно становится основной единицей, которую оператор потом видит в Конфигурация, ModBus и других разделах.

Редактор устройства

Редактор устройства на русском языке.
Здесь видно, как в одной карточке собираются основные свойства устройства.
  • Название Главный человеко-понятный идентификатор устройства в интерфейсе.
  • Адрес Modbus-адрес конкретного узла на линии.
  • Линия Определяет, по какому каналу связи устройство будет опрашиваться.
  • Описание Помогает понять назначение устройства без обращения к внешней документации.
  • Шаблон Упрощает создание, если структура уже встречалась раньше.

Канал

Канал связывает адрес регистра и способ его интерпретации с тем, как значение будет показано оператору. От настроек канала зависит, какие данные появятся на ModBus и как они будут читаться человеком.

Редактор канала

Редактор канала на русском языке.
Канал задает адрес, тип данных и правила интерпретации значения.

Канал в ModBus

Значения канала на странице ModBus на русском языке.
Так настройка канала превращается в реальное видимое значение на рабочей странице.
  • Название канала То, как оператор увидит значение в ModBus.
  • Тип регистра Определяет, откуда именно читается значение.
  • Адрес регистра Указывает точное место в карте регистров устройства.
  • Тип данных Определяет способ интерпретации числа.
  • Масштабирование Нужно для перевода сырых значений в инженерный вид.
  • Единицы измерения Делают показания понятными без дополнительных пояснений.

Команда

Команда связывает действие оператора с записью в устройство. Она должна быть понятной по названию и давать предсказуемый результат после выполнения.

Редактор команды

Редактор команды на русском языке.
Команда сначала описывается в Конфигурация, а затем становится доступной для выполнения в ModBus.

Результат команды

Результат выполнения команды на русском языке.
Оператор должен видеть ожидаемое изменение состояния после выполнения команды.
  • Название команды Должно сразу объяснять смысл действия.
  • Целевой регистр Указывает, куда именно будет отправлена запись.
  • Значение записи Определяет, что реально уйдет в устройство.
  • Ожидаемый эффект Должен быть виден оператору после выполнения команды.

Шаблон

Шаблон нужен, когда несколько устройств имеют одинаковую структуру и не хочется настраивать каждое вручную. Он ускоряет работу и снижает риск случайных расхождений между похожими устройствами.

JSON

JSON полезен для точного импорта, экспорта и разбора структуры, но это уже более чувствительный уровень работы. Если задачу можно решить обычными формами Конфигурация, лучше начинать именно с них.

Для UMEC Space используйте экспорт model JSON из карточки устройства шлюза. Этот файл загружается в UMEC Space Dashboard в разделе Models и появляется на платформе как Custom Model. После этого платформа связывает передаваемые шлюзом сенсоры и команды управления с понятной моделью устройства.

Симметричный импорт и экспорт устройств

Для нескольких fieldbus-протоколов формат импорта и экспорта устройств является симметричным: файл, выгруженный из шлюза, должен приниматься обратно импортом без ручного преобразования. Это важно для переноса конфигураций между объектами, резервного копирования и подготовки шаблонов счетчиков.

Часть файла Назначение Правило совместимости
Identity Имя устройства, описание, модель, серийный или локальный идентификатор. Импорт не должен требовать полей, которых нет в штатном экспорте.
Transport Линия, RS-485/TCP путь и выбранный протокол: modbus_rtu или dlms_cosem_spodes. На одну RS-485 линию указывается один протокол; смешанный список устройств на одной линии отклоняется.
Read model Каналы чтения: регистры Modbus или read-only DLMS/COSEM/СПОДЭС объекты/атрибуты. DLMS import не должен активировать operator write/action без отдельного security/audit contract.
Commands Управляющие действия для протоколов, где запись поддержана и разрешена. Для DLMS/COSEM/СПОДЭС на этапе read-only раздел отсутствует или импортируется как отключенный.

Практическая проверка формата простая: экспортировать устройство, импортировать этот же файл на тестовом шлюзе и убедиться, что имя, линия, протокол, каналы чтения и ограничения read-only сохранились без правки JSON. Для DLMS действие Validate Import JSON только проверяет файл, Stage JSON сохраняет подготовительную копию без запуска polling, а Import Catalog JSON создаёт активную запись каталога. Запуск выполняется отдельно.

DLMS device file: Validate, Stage и Import

Для DLMS/COSEM/СПОДЭС canonical device file используется и для проверки, и для активного импорта. Отдельное действие Stage сохраняет подготовительную копию, но не применяет конфигурацию линии и не запускает опрос. Canonical JSON содержит верхние поля schema_version, file_kind, protocol_id, line_id, device, transport, poll_settings, points, channels и пустой parameters.

Раздел Что фиксирует Проверка Stage JSON
association AARQ/security profile, client/server address и secret_ref без значения секрета. Для public_ln secret_ref отсутствует. Plaintext password/key/token отклоняются; low_auth_ln требует provisioned secret file.
transport RS-485 параметры: baudrate, parity, databits, stopbits, timeout и retries. Допускается только bounded rs485; эти поля не меняют runtime line config.
poll_settings Намерение будущего опроса: enabled, interval, request timeout, retries, max points per cycle. runtime_polling_changed=false; включение polling выполняется через отдельный line polling control.
points Protocol-native OBIS descriptors: OBIS, COSEM class, attribute, type, scaler, unit. Каждая точка read-only, OBIS валиден, line/protocol совпадают с верхним файлом.
channels Operator-facing каналы для UI, dashboards, automation, MQTT Generic и UMEC Space. point_ref.point_id должен ссылаться на points[].id.

Успешная проверка возвращает normalized_device_file: в нем есть общий source_id, а каждая точка и каждый канал получают стабильный point_uid. Эти идентификаторы нужны live polling, чтобы публиковать значения без повторного разбора исходного import JSON. Ответ также содержит import_export_symmetry: проверку наличия canonical points[], channels[], parameters[] и правило same_payload_for_export_and_import.

Шаблоны Wiren Board wb-mqtt-serial

Шлюз не хранит внутри каталог сторонних шаблонов и не скачивает его автоматически. Оператор загружает разрешённый ему JSON-файл, а шлюз конвертирует поддерживаемую DLMS-модель в canonical schema v3. Конвертация является preview: она не пишет каталог, не меняет владельца линии и не запускает polling.

  1. Выберите шаблон счётчика и задайте deployment context: line ID, meter address и локальную identity.
  2. Выполните Convert и проверьте valid, ready_for_import, warnings и число выбранных каналов.
  3. Сохраните normalized_device_file; проверьте OBIS, unit, scale и MQTT threshold/force interval.
  4. Выполните Validate, затем Import Catalog JSON и обратный Export.
  5. Только после симметричного export переключайте владельца линии и включайте polling.
Пароль из стороннего шаблона не переносится. Секрет задаётся отдельно через secret_ref; plaintext password/key/token отклоняются и не должны попадать в export или журнал.

Справочный JSON

Справочный JSON устройства на русском языке.
Встроенная справка помогает понять структуру данных без ручного угадывания.

Когда использовать что

  • Формы Конфигурация: когда нужна обычная безопасная настройка.
  • Шаблоны: когда несколько устройств похожи по структуре.
  • JSON: когда нужен точный перенос или разбор структуры на более низком уровне.
  • Model JSON: когда нужно передать модель Modbus-устройства в UMEC Space Models как Custom Model.

Краткая последовательность создания устройства

  1. Настроить линию связи.
  2. Создать устройство и задать его адрес и имя.
  3. Добавить каналы для измеряемых значений.
  4. Добавить команды для управляющих действий.
  5. Проверить результат на странице ModBus.

Связанные разделы