Устройство ERMAN ER-G-220-03 проблема работы через шаблон

В продолжении темы Шаблон для устройства ERMAN ER-G-220-03 - Поддерживаемые устройства - Wiren Board Support

Проблема в записи регистра отвечающего за старт\стоп.

Из командной строки всё работает четко:

Старт: “modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-5 -t0x06 -a63 -r4097 0x0001”
Стоп: “modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-5 -t0x06 -a63 -r4097 0x0004”

А через интерфейс - при остановленном устройстве любая запись в 4097 (старт\стоп\сброс) приводит к включению, а при запущенном устройстве - никакой реакции.

Вот кусок шаблона описания кнопок (старт\стоп\сброс) со следами попыток писать по разному. Результат во всех случаях как написано выше.

 {
    "name": "cmd_start",
    "type": "pushbutton",
    "reg_type": "holding",
    "write_address": 4097,
    "format": "u16",
    "value": "0x0001",
    "write_only": true,
    "group": "commands"
  },
  {
    "name": "cmd_stop",
    "type": "pushbutton",
    "reg_type": "holding",
    "write_address": 4097,
    "format": "u16",
    "value": "04",
    "write_only": true,
    "group": "commands"
  },
  {
    "name": "cmd_reset_alarm",
    "type": "pushbutton",
    "reg_type": "holding",
    "address": 4097,
    "format": "u16",
    "value": 17,
    "write_only": true,
    "group": "commands"
  },

Пробовал “reg_type”: “holding_single” - не помогает.

Вопрос: что делаю не так?

Добрый день!

Рекомендую шаблон сверить с рекомендациями из инструкции. Как писать шаблоны для сторонних Modbus-устройств — Wiren Board

В каналах wb-mqtt-serial для кнопки следует использовать on_value. В документации для write-only регистра пример pushbutton именно такой: write_address, type: “pushbutton” и on_value, где on_value определяет, что записывать в регистр при нажатии.

Спасибо за ответ!

Документацию конечно же читал, но не предполагал, что есть такие тонкости в сочетании параметров.

После приведения шаблона к виду

"channels": [
  {
    "name": "cmd_start",
    "type": "pushbutton",
    "reg_type": "holding",
    "write_address": "4097",
    "format": "u16",
    "on_value": 1,
    "group": "commands"
  },
  {
    "name": "cmd_stop",
    "type": "pushbutton",
    "reg_type": "holding",
    "write_address": "4097",
    "format": "u16",
    "on_value": 4,
    "group": "commands"
  },
  {
    "name": "cmd_reset_alarm",
    "type": "pushbutton",
    "reg_type": "holding",
    "address": "4097",
    "format": "u16",
    "on_value": 17,
    "group": "commands"
  },

всё заработало как надо!