Скрипт для управления реле (самый примитивный) WBIO-DI-DR-14 + WB-MRPS6

Друзья! Собрал комплект WBIO-DI-DR-14 + WB-MRPS6. Полез в изучение правил. НО везде всё очень сложно. Для новичка, которому нужно реализовать всего одну функцию невероятно много информации.
Мне необходим скрипт, который при установке в “1” входа WBIO-DI-DR-14 замыкал бы 1 реле в WB-MRPS6. Если ещё раз вход ставится в “1”, то разомкнуть реле. Если я правильно понимаю, то реализовать импульсное реле через скрипт.
Можете для примера написать образец скрипта, чтобы я смог на примере разобраться как считывать значения с контактов WBIO-DI-DR-14 и как отправлять команды на реле WB-MRPS6?
Я так понимаю, что проект существует давно, но библиотеки скриптов под модули готовой не существует((( или я просто не умею искать((
как было бы удобно пользователям взять готовый скрипт для нужного модуля и адаптировать его под свои задачи. Ну это просто пожелание))

Прочитайте пожалуйста полностью статью https://contactless.ru/wiki/index.php/Движок_правил_wb-rules , там есть нужное вам правило в примерах.

Евгений, если бы я нашёл там, то не писал бы сюда((( У меня WBIO-DI-DR-14. Там нет ни WBIO-DI-DR-14, ни WBIO-DI-DR, ни DI-DR. Как прочтение поможет мне написать правило, если я не знаю как называется это модуль?

Очевидно, для движка правил без разницы что за устройство у вас, он оперирует отдельными каналами.
Попробуйте вот это тоже целиком прочитать: https://contactless.ru/wiki/index.php/MQTT

Спасибо! Стало немного понятнее))) хотел уточнить касаемо дребезга контактов. Возможно, что из-за него реле последовательно будет занимать положение вкл-выкл по очереди? надо ли от этого защищаться программно?

я не очень понял вопрос. Дребезга каких именно контактов и где? Как это связано с реле?

Я говорю о сухих контактах. По факту там кнопка, которая включает и выключает свет. Без фиксации. Вот я и спросил про дребезг контактов. Т.е. нажимая на кнопку и получаю кучу изменённых состояний датчика (1,0,1,0…) или я неправильно представляю схему работы сухих контактов. Там стоит кнопка, которая при нажатии замыкает контакт с землёй.

Не стоит переживать на сей счёт. Состояние с 0 на 1 и наоборот настолько быстро не переключается, если Вы допускаете вероятность слабого нажатия на кнопку. У меня контролы не успевают переключаться даже тогда, когда я переключаю туда-обратно кнопку с фиксацией. Тогда мне приходится ждать секунду минимум, чтобы событие сработало, а в Вашем случае это мгновение, где модуль не успеет зафиксировать смену положения несколько раз.

Вы всё же наверное про входы на устройствах с Modbus, а у топикстартера - модули расширения для контроллера. Они мгновенно работают.

Дребезга, впрочем, действительно не будет - наш софт умеет с этим бороться.

Евгений, написал правило:
defineRule(“buton_1”, {
whenChanged: “wb-gpio/EXT1_DR1”,
then: function (newValue, devName, cellName) {
dev[“wb-mrps6_83”][“K1”] = dev[“wb-mrps6_83”][“K1”] ^ newValue;
}
});
Хотел, чтобы реле было замкнуто до момента пока не появится на EXT1_DR1 “1”, т.е. использовал XOR (^), но реле замыкается как только на EXT1_DR1 появляется “0” и размыкается пока на EXT1_DR1 “1”
видимо так делать нельзя, а как же тогда реализовать “импульсное реле”? пример, который я нашёл на приведённой Вами ссылке работает линейно: замкнут контакт - горит лампочка))

Перепроверил, завёл контакты wb-gpio/EXT1_DR1 на реле wb-mrps6_83/K3 чтобы быть уверенным, что контакты правильно замыкают, т.к. я сейчас не рядом с устройством (попросил чтобы соединили) И правило заработало))) если замыкаю контакт DR1 на землю, то K1 включается. Ещё раз замыкаю - выключается. Так что можно обойтись простым XOR для организации импульсного реле))