WB-MR - последовательно перебрать все выходы

Добрый день!
Как на реле WB-MR (в частности, WB-MR3LV/S и WB-MR6LV/S) рализовать следующее:

  1. Одна кнопка последовательно перебирает все выходы (1 нажатие - включить первый канал, 2-ое нажатие - выключить 1-ый канал, 3-е нажатие - включить 2-ой канал, 4-е выключить 2-ой и т.д.)

  2. 0-й вход: если хоть что-то включено, отключить все. Если ничего не включено - включить только 1-ый канал. Экспериментировал с mapping-матрицей, но этот сценарий так и не получилось сделать. Запись в регистры значений -r440 12 4 4 делает что-то похожее, но корректно работает только если все включено, либо все выключено.

  3. Управление выходами по двойному нажатию или удержанию.

Добрый день!

Мне кажется, на самом реле это не сделать.

– эти вещи реле само точно не детектирует.

mapping-матрица умеет делать только одно и то же действие при одинаковом действии на входах. То есть она никак не может знать, в какой части “цикла” мы находимся.

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

Добрый день!

Сами WB-MR так не умеют, но можно реализовать скриптами. При этом если в скрипте завязываться на событие входа именно WB-MR - именно то что вы хотите нормально работать не будет. Это связано с тем, что с момента события в WB-MR до момента, когда о нём узнает контроллер могут пройти секунды, а не трудно догадаться, что за это время событие вновь может произойти и сменить состояние.
Ситуация решается, если использовать WBIO-DI-WD-14 на одной шине с контроллером. - у этого девайся сигнал изменяется практически мгновенно, и вот на изменение этого события - можно спокойно писать скрипты, которые вам будут отрабатывать практически любую логику.
Лично я делаю именно таким образом, и пока что - нареканий не возникало.

Спасибо, вариант интересный, но на сайте указано срок отгрузки 20 раб. дней. Т.е. их на складе нет, а в нынешних реалиях это означает, что купить его невозможно и неизвестно когда появится возможность. Я вот так уже с реле WB-MR6LV/S попал - нет их, производство остановлено и перспективы непонятны… :frowning:

Здравствуйте! Как раз ищу подобное решение для WBIO-DI-WD-14. Не могу разобраться как написать скрипт, что бы кнопка при нажатии давала последовательно разные команды. Помогите пожалуйста с примером скрипта.

var Timer_kn_Podves_Balkon = null; // Таймер обнуления
var Count_kn_Podves_Balkon = 0;

defineRule(“Zal_Svet_Podves_Balkon”, { // Данное правило попеременно включает свет подвеса и балкона
whenChanged: “wb-gpio/EXT1_DR6”,
then: function (newValue, devName, cellName) {

	if (newValue) {
		Count_kn_Podves_Balkon++;

		//Если таймер обнулен, а происходит включение - то выключим свет
		if ((Count_kn_Podves_Balkon > 1) && (Timer_kn_Podves_Balkon == null)) {
			dev["wb-gpio/EXT2_R3A2"]	= 0;	//Точечный свет балкон
			dev["wb-mr6c_10/K1"]		= 0;	//Подвес кухня
			Count_kn_Podves_Balkon		= 0;
		}

		if (Count_kn_Podves_Balkon == 1) { //Включим подвес кухни
			dev["wb-gpio/EXT2_R3A2"]	= 0;	//Точечный свет балкон
			dev["wb-mr6c_10/K1"]		= 1;	//Подвес кухня

			if (Timer_kn_Podves_Balkon) { //Если таймер был взведен - остановим
				clearTimeout(Timer_kn_Podves_Balkon)
			}

			//Установим таймер
			Timer_kn_Podves_Balkon =  setTimeout(function () {
				Timer_kn_Podves_Balkon = null;
				//Count_kn_Podves_Balkon = 0;
			}, 5000);
		}
		else if (Count_kn_Podves_Balkon == 2) { //Включим подвес балкона
			dev["wb-gpio/EXT2_R3A2"]	= 1;	//Точечный свет балкон
			dev["wb-mr6c_10/K1"]		= 0;	//Подвес кухня
		}
		else if (Count_kn_Podves_Balkon == 3) { //Включим оба светильника
			dev["wb-gpio/EXT2_R3A2"]	= 1;	//Точечный свет балкон
			dev["wb-mr6c_10/K1"]		= 1;	//Подвес кухня
		}
		else if (Count_kn_Podves_Balkon == 4) { //Выключим оба светильника
			dev["wb-gpio/EXT2_R3A2"]	= 0;	//Точечный свет балкон
			dev["wb-mr6c_10/K1"]		= 0;	//Подвес кухня

			if (Timer_kn_Podves_Balkon) { //Если таймер был взведен - остановим
				clearTimeout(Timer_kn_Podves_Balkon)
			}

			Timer_kn_Podves_Balkon = null;
			Count_kn_Podves_Balkon = 0;
		}
	}
}

});