Test: различия между версиями

Материал из Wiren Board
(Полностью удалено содержимое страницы)
Метка: очистка
 
(не показано 47 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Draft}}
Рассказать драйверу wb-mqtt-serial, который в контроллере работает с Modbus-устройствами можно двумя способами:
# Добавить регистры устройства прямо в веб-интерфейсе контроллера по [[RS-485:Configuration_via_Web_Interface#without-template|инструкции]]. Этот способ удобен для быстрой проверки работы.
# Создать шаблон, который описывает регистры устройства, их тип и другие параметры. Этот способ удобен для масштабирования: просто копируете шаблон на другой контроллер и в нём появляется поддержка вашего устройства.


Здесь мы рассмотрим создание простого шаблона. Упрощённо шаблон устройства выглядит так:
<syntaxhighlight lang="json">
{
    "device_type": "my-relay",  // тип устройства — уникальный идентификатор
    "title": "My Relay",        // отображаемое название
    "group": "g-relay",        // группа, в которой будет отображаться шаблон. Список групп в документации
    "device": {                   
        "name": "MY-RELAY",    // имя устройства, используется в MQTT
        "id": "my-relay",
        "groups": [ ],          // группы параметров и каналов       
        "channels": [ ],        // каналы, доступно в скриптах и на вкладке Устройства
        "parameters": [ ],      // параметры, можно менять в настройках устройства
        "translations": { }    // переводы
    }
}
</syntaxhighlight>
Полное описание смотрите в [https://github.com/wirenboard/wb-mqtt-serial документации драйвера wb-mqtt-serial].
Допустим, у нас есть одноканальное Modbus-реле, у которого таблица регистров, показанная ниже.
{|  border="1" class="wikitable"
! Адрес || Тип || Название || Назначение
|-
| 0 || Discrete Input || Input 1 ||  Состояние входа устройства
|-
| 1 || Input Register || Input 1 Counter ||  Значение счётчика входов
|-
| 3 || Coil || Relay 1 ||  Состояние выхода и управление им
|-
| 10 || Holding || Input Mode ||  Выбор режима взаимодействия входов с выходами
|-
|}
В таком случае шаблон будет выглядеть так:
<syntaxhighlight lang="json">
{
    "device_type": "my-relay",
    "title": "My Relay",
    "group": "g-relay",
    "device": {
        "name": "MY-RELAY",
        "id": "my-relay",
        "groups": [
            {
                "title": "Channels",
                "id": "channels",
                "order": 0
            },
            {
                "title": "Settings",
                "id": "settings",
                "order": 1
            }
        ],
        "channels": [
            {
                "name": "Input 1",
                "reg_type": "discrete",
                "address": 1,
                "type": "switch",
                "group": "channels"
            },
            {
                "name": "Input 1 Counter",
                "reg_type": "input",
                "address": 2,
                "type": "value",
                "group": "channels"
            },
            {
                "name": "Relay 1",
                "reg_type": "coil",
                "address": 3,
                "type": "switch",
                "group": "channels"
            }
        ],
        "parameters": [
            {
                "name": "Input Mode",
                "reg_type": "input",
                "address": 10,
                "format": "s8",
                "enum": [
                    1,
                    2
                ],
                "enum_titles": [
                    "Switch Relay",
                    "Not used"
                ],
                "default": 1
            }
        ],
        "translations": {
            "ru": {
                "Channels": "Каналы",
                "Settings": "Настройки",
                "Input 1": "Вход 1",
                "Input 1 Counter": "Вход 1 счетчик",
                "Relay 1": "Реле 1",
                "Input Mode": "Режим входа"
            }
        }
    }
}
</syntaxhighlight>
Теперь, сохраните шаблон в файл, например, <code>my-relay.json</code> и загрузите его на контроллер в папку <code>/etc/wb-mqtt-serial.conf.d/template</code> по [[View_controller_files_from_your_computer|инструкции]].
Далее идёте в настройки драйвера и выбираете шаблон. Все это хорошо описано в инструкции [[RS-485:Configuration_via_Web_Interface||Начальное конфигурирование устройств через веб-интерфейс]].

Текущая версия на 17:24, 20 декабря 2023