GTC Syberia 5: различия между версиями

(Особенность управления включением ПВУ)
 
Строка 5: Строка 5:
}}
}}
== Особенность управления включением ПВУ ==
== Особенность управления включением ПВУ ==
Управление питанием установки и её состояние (включено/выключено) хранится в разных регистрах. При этом, регистр управления не хранит текущее состояние, в нём всегда записано 0. Для управления установкой необходимо записывать в этот самый регистр 0 и 1. В связи с этим возникает проблема управления ПВУ, которая описана пользователем форума [https://support.wirenboard.com/t/syberia-5/5547/76 Colocat]:
Управление питанием установки и её состояние (включено/выключено) хранится в разных регистрах.  
<blockquote>
Ваш Wirenboard ни в чем не виноват, он работает как нужно. Прошивка ничего не изменит. Эта проблема известна. Она исходит из поведения Holding регистра 0x03 (03) поскольку нулевой бит этого регистра не сохраняет своего значения после его установки. (сохраняет только на 3-4 секунды) Я неоднократно об этом писал выше в этой теме.


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


пока пользуйтесь двойной отправкой команды.
Подробнее о проблеме на портале в [https://support.wirenboard.com/t/syberia-5/5547/76 сообщении от Colocat].


Для включения (если установка выключена):
На портале предлагается два решения:
отсылаем единицу в топик. Установка включится.
# Если установка выключена, то для включения отправляем в mqtt-топик 1. Если установку включена и надо выключить, то сперва надо отправить 1, а затем сразу 0 — установка выключится.
Для выключения (если установка включена):
# Добавить виртуальный выключатель в правилах. Предложено igest в [https://support.wirenboard.com/t/syberia-5/5547/81 сообщении ]:
отсылаем единицу в топик И СРАЗУ ЖЕ отсылаем ноль в топик. Установка выключится.
#:<syntaxhighlight lang="ecmascript">
</blockquote>
 
Второе решение проблемы (преимущественное): добавить виртуальный выключатель в правилах. Автор [https://support.wirenboard.com/t/syberia-5/5547/81 igest]:
 
<syntaxhighlight lang="ecmascript">
//Пример скрипта wb-rules
//Пример скрипта wb-rules
defineVirtualDevice("ventmachine", {
defineVirtualDevice("ventmachine", {