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

Особенность управления включением ПВУ
м
(Особенность управления включением ПВУ)
Строка 4: Строка 4:
| link = https://support.wirenboard.com/t/syberia-5/5547
| link = https://support.wirenboard.com/t/syberia-5/5547
}}
}}
== Особенность управления включением ПВУ ==
Управление питанием установки и её состояние (включено/выключено) хранится в разных регистрах. При этом, регистр управления не хранит текущее состояние, в нём всегда записано 0. Для управления установкой необходимо записывать в этот самый регистр 0 и 1. В связи с этим возникает проблема управления ПВУ, которая описана пользователем форума [https://support.wirenboard.com/t/syberia-5/5547/76 Colocat]:
<blockquote>
Ваш Wirenboard ни в чем не виноват, он работает как нужно. Прошивка ничего не изменит. Эта проблема известна. Она исходит из поведения Holding регистра 0x03 (03) поскольку нулевой бит этого регистра не сохраняет своего значения после его установки. (сохраняет только на 3-4 секунды) Я неоднократно об этом писал выше в этой теме.
Explain: Когда вы выполняете эту команду вручную посредством modbus_client то вы не считываете текущего состояния этого регистра - вы указываете ему каким он должен быть!. по этому все работает.
Через MQTT посылка в топик происходит только в том случае если новое значение ОТЛИЧАЕТСЯ от текущего. Соответственно происходит следующее:
Установка выключена. в регистре включения - 0. Вы отсылаете в топик единицу. Установка включается. Контроллер меняет значение регистра включения сразу же в 0. и все.
При попытке отправить команду на выключение через MQTT - изменение топика не происходит поскольку там УЖЕ 0. В итоге установку выключить невозможно.
пока пользуйтесь двойной отправкой команды.
Для включения (если установка выключена):
отсылаем единицу в топик. Установка включится.
Для выключения (если установка включена):
отсылаем единицу в топик И СРАЗУ ЖЕ отсылаем ноль в топик. Установка выключится.
</blockquote>
Второе решение проблемы (преимущественное): добавить виртуальный выключатель в правилах. Автор [https://support.wirenboard.com/t/syberia-5/5547/81 igest]:
<syntaxhighlight lang="ecmascript">
//Пример скрипта wb-rules
defineVirtualDevice("ventmachine", {
    title: "Power Ventmachine",
    cells: {
enabled: {
    type: "switch",
    value: false
},
    }
});
defineRule("poweron_ventmachine", {
    whenChanged: "ventmachine/enabled", //при изменении состояния кнопки выключателя
    then: function(newValue, devName, cellName) { //выполняем следующие действия
        if (newValue == true) {
          log.info("ventmachine power on", newValue); //для записи в лог
          dev["syberia5_1"]["Power_ON_OFF"] = true;
        } else {
          log.info("ventmachine power off", newValue); //для записи в лог
          dev["syberia5_1"]["Power_ON_OFF"] = false;
        }
    }
});
defineRule("status_ventmachine", {
    whenChanged: "syberia5_1/Status", //при изменении статуса вентмашины
    then: function(newValue, devName, cellName) { //выполняем следующие действия
        if (newValue == true) {
          log.info("ventmachine power on", newValue); //для записи в лог
          dev["ventmachine"]["enabled"] = true;
        } else {
          log.info("ventmachine power off", newValue); //для записи в лог
          dev["ventmachine"]["enabled"] = false;
        }
    }
});
</syntaxhighlight>
== Полезные ссылки ==
== Полезные ссылки ==
* [https://gtcontrollers.com/catalog/automatika-gtc/automatika-dley-ventilation/controller-syberia-5-0/ Универсальный одноплатный контроллер Syberia (версия 5.0)]
* [https://gtcontrollers.com/catalog/automatika-gtc/automatika-dley-ventilation/controller-syberia-5-0/ Универсальный одноплатный контроллер Syberia (версия 5.0)]
{{Wbincludes:Device Page Footer}}
{{Wbincludes:Device Page Footer}}
2

правки