---
name: wb-mqtt-tmpl
description: "Создавать JSON-описание MQTT-шаблона wb-mqtt-serial по документации Modbus-регистров (datasheet/register map/manual): извлекать все регистры, нормализовать адреса и типы, классифицировать channels/parameters, задавать enum/conditions/translations и возвращать структуру device_info+registers для small/medium/full шаблонов. Использовать, когда нужно сгенерировать или проверить шаблон устройства Wiren Board по карте Modbus-регистров."
---

# WB MQTT From Modbus Registers

## Overview

Преобразовать таблицы Modbus-регистров в единый JSON-контракт для генерации wb-mqtt-serial шаблонов.
Использовать правила и ограничения из этого скилла как источник истины.

## Workflow

1. Определить вход и целевой объем:
- Принять datasheet/register map/manual или список регистров.
- Согласовать `template_type`: `small`, `medium`, `full`.
- Определить языки переводов (`ru` по умолчанию, `en` не дублировать в translations).

2. Извлечь регистры:
- Взять все таблицы Modbus (holding/input/coil/discrete).
- Игнорировать маркетинг, механику, монтаж и прочие нерегистровые разделы.
- Если есть битовые поля в одном регистре, разложить на отдельные записи `register:bit:width`.

3. Нормализовать свойства:
- Привести адреса, формат, scale/offset, units, access, min/max, word_order, error_value.
- Привести имена/идентификаторы групп к snake_case.
- Проставить `is_parameter`, `channel_type`, `enum`/`enum_titles` или `enum_entries`.

4. Собрать финальный JSON:
- Строго вернуть объект вида `{ "device_info": ..., "registers": [...] }`.
- Вернуть только JSON без markdown и пояснений.
- Для неизвестных опциональных полей ставить `null`.

5. Проверить целостность:
- Убедиться, что не пропущены регистры из документа.
- Проверить обязательные ограничения (особенно coil/discrete, enum, wo-switch).
- Проверить, что `group`/условия/переводы оформлены корректно.

## References

- Основные правила извлечения и нормализации: `references/register-mapping-rules.md`
- Контракт выходного JSON и чеклист валидации: `references/output-json-contract.md`

## Notes

- При спорных местах (адресация, bit fields, enum, channel_type) приоритет у правил из `references/register-mapping-rules.md` и `references/output-json-contract.md`.
- Если нужен деплой/проверка шаблона на контроллере, после генерации JSON перейти к skill `wb-mqtt`.
