Syberia 5

Ваш Wirenboard ни в чем не виноват, он работает как нужно. Прошивка ничего не изменит. Эта проблема известна. Она исходит из поведения Holding регистра 0x03 (03) поскольку нулевой бит этого регистра не сохраняет своего значения после его установки. (сохраняет только на 3-4 секунды) Я неоднократно об этом писал выше в этой теме.

Explain: Когда вы выполняете эту команду вручную посредством modbus_client то вы не считываете текущего состояния этого регистра - вы указываете ему каким он должен быть!. по этому все работает.
Через MQTT посылка в топик происходит только в том случае если новое значение ОТЛИЧАЕТСЯ от текущего. Соответственно происходит следующее:
Установка выключена. в регистре включения - 0. Вы отсылаете в топик единицу. Установка включается. Контроллер меняет значение регистра включения сразу же в 0. и все.
При попытке отправить команду на выключение через MQTT - изменение топика не происходит поскольку там УЖЕ 0. В итоге установку выключить невозможно. Я вновь отправил запрос разработчикам прошивки запрос на устранение этой ошибки ради совместимости с MQTT. Ждемс…

пока пользуйтесь двойной отправкой команды.

  1. Для включения (если установка выключена):
    отсылаем единицу в топик. Установка включится.
  2. Для выключения (если установка включена):
    отсылаем единицу в топик И СРАЗУ ЖЕ отсылаем ноль в топик. Установка выключится.

P/S Прошу прощения за неоперативный ответ. Дела.с.

2 лайка