Не отрабатывают скрипты после обновы

Здравствуйте. Не отрабатывает скрипт :

function light_control(name, device_in, control_in, device_out, control_out) {

defineRule(name + "_switch_control", { 
  whenChanged: device_in + "/" + control_in, 
  then: function (newValue, devName, cellName) { 
    if ( newValue > 0) { 
      if ( dev[device_out][control_out] == 0) {
        dev[device_out][control_out] = 1;
      } else {
        dev[device_out][control_out] = 0;
      }
    }
  }
});

defineRule(name + "_switch_control_iridium", { 
  whenChanged: name + "/TOGGLE_switch", 
  then: function (newValue, devName, cellName) { 
      if ( dev[device_out][control_out] == 0) {
        dev[device_out][control_out] = 1;
      } else {
        dev[device_out][control_out] = 0;
      }
      dev[devName][cellName] = 0;
  }
});

}

setTimeout(function() { light_control("room11_light_gr1_1_v1_1", "wb-gpio", "EXT1_DR1", "wb-mr6с_43", "K2"); }, 10000);function light_control(name, device_in, control_in, device_out, control_out) {

defineRule(name + "_switch_control", { 
  whenChanged: device_in + "/" + control_in, 
  then: function (newValue, devName, cellName) { 
    if ( newValue > 0) { 
      if ( dev[device_out][control_out] == 0) {
        dev[device_out][control_out] = 1;
      } else {
        dev[device_out][control_out] = 0;
      }
    }
  }
});

defineRule(name + "_switch_control_iridium", { 
  whenChanged: name + "/TOGGLE_switch", 
  then: function (newValue, devName, cellName) { 
      if ( dev[device_out][control_out] == 0) {
        dev[device_out][control_out] = 1;
      } else {
        dev[device_out][control_out] = 0;
      }
      dev[devName][cellName] = 0;
  }
});

}

setTimeout(function() { light_control("room11_light_gr1_1_v1_1", "wb-gpio", "EXT1_DR1", "wb-mr6с_43", "K2"); }, 10000);

Версия wb-rules- 2.6.0
image

Добрый день.

исправить на

dev[device_out][control_out] = true;

и, соответственно

dev[device_out][control_out] = false;

исправил, не помогло(

function light_control(name, device_in, control_in, device_out, control_out) {
defineVirtualDevice(name, {
		title: name,

		cells: {
          	TOGGLE_switch : {
				type : "pushbutton",
				value : false
			},
          	switch_fb : {
            	type : "switch",
				value : false
            },
		}
	});



	defineRule(name + "_switch_control", {
		whenChanged: device_in + "/" + control_in,
		then: function (newValue, devName, cellName) {
			if (dev[device_out][control_out] == false) {
				dev[device_out][control_out] = true;
               	dev[name]["switch_fb"] = true;
			} else {
				dev[device_out][control_out] = false;
               	dev[name]["switch_fb"] = false;
			}
		}
	});

	defineRule(name + "_switch_control_iridium", {
		whenChanged: name + "/TOGGLE_switch",
		then: function (newValue, devName, cellName) {
          		if (dev[device_out][control_out] == false) {
					dev[device_out][control_out] = true;
                  	dev[name]["switch_fb"] = true;
				} else {
					dev[device_out][control_out] = false;
					dev[name]["switch_fb"] = false;
				}
            }
	});

  	defineRule(device_out + "/" + control_out + "_fb", {
		whenChanged: device_out + "/" + control_out,
		then: function (newValue, devName, cellName) {
			if (dev[device_out][control_out] == true) {
              	dev[name]["switch_fb"] = true;
			} else {
            	dev[name]["switch_fb"] = false;
            }
		}
	});
}

setTimeout(function() { light_control("room11_light_gr1_1_v1_1", "wb-gpio", "EXT1_DR1", "wb-mr6с_43", "K2"); }, 10000);
setTimeout(function() { light_control("room12_light_gr1_2_1_v2_1", "wb-gpio", "EXT1_DR2", "ddm84r_20", "channel1_on_off"); }, 11000);
setTimeout(function() { light_control("room12_light_gr1_2_2_v2_2", "wb-gpio", "EXT1_DR3", "wb-mr6с_43", "K1"); }, 12000);
setTimeout(function() { light_control("room13_light_gr1_3_v4_1", "wb-gpio", "EXT1_DR6", "wb-mr6с_43", "K3"); }, 15000);
setTimeout(function() { light_control("room14_light_gr1_4_v5_1", "wb-gpio", "EXT1_DR7", "wb-mr6с_43", "K4"); }, 16000);
setTimeout(function() { light_control("room15_light_gr1_5_2_v13_1", "wb-gpio", "EXT2_DR3", "wb-mr6с_43", "K6"); }, 17000);
setTimeout(function() { light_control("room16_light_gr1_6_v16_1", "wb-gpio", "EXT2_DR7", "wb-mr6с_42", "K2"); }, 22000);
setTimeout(function() { light_control("room111_light_gr1_11_2_v8", "wb-gpio", "EXT1_DR10", "wb-mr6с_42", "K6"); }, 30000);
setTimeout(function() { light_control("room12_light_gr1_12_v6", "wb-gpio", "EXT1_DR8", "wb-mr6с_30", "K1"); }, 31000);
setTimeout(function() { light_control("room22_light_gr2_2_v23_1", "wb-gpio", "EXT2_DR13", "ddm84r_21", "channel1_on_off"); }, 34000);
setTimeout(function() { light_control("room22_light_gr2_2_v28_1", "wb-gpio", "EXT3_DR3", "ddm84r_21", "channel1_on_off"); }, 35000);
setTimeout(function() { light_control("room25_light_gr2_3_v25_1", "wb-gpio", "EXT2_DR16", "wb-mr6с_30", "K3"); }, 36000);
setTimeout(function() { light_control("room24_light_gr2_4_2_v27", "wb-gpio", "EXT3_DR2", "wb-mr6с_30", "K5"); }, 37000);
setTimeout(function() { light_control("room26_light_gr2_6_2v31_1", "wb-gpio", "EXT3_DR7", "wb-mr6с_64", "K3"); }, 40000);

/* setTimeout(function() { light_control("at_home_scene_caller_control_v3_1", "wb-gpio", "EXT1_DR4", "at_home_scene_controller", "scene1_call"); }, 13000);
setTimeout(function() { light_control("master_off_scene_caller_control_v3_2", "wb-gpio", "EXT1_DR5", "master_off_control", "master_off_ON_switch"); }, 14000);
setTimeout(function() { light_control("room15_scene_caller_control_v11_1", "wb-gpio", "EXT1_DR15", "room15_scene_controller", "scene1_call"); }, 18000);
setTimeout(function() { light_control("room15_scene_caller_control_v11_2", "wb-gpio", "EXT1_DR16", "room15_scene_controller", "scene2_call"); }, 19000);
setTimeout(function() { light_control("room15_scene_caller_control_v12_1", "wb-gpio", "EXT2_DR1", "room15_scene_controller", "scene3_call"); }, 20000);
setTimeout(function() { light_control("room15_scene_caller_control_v12_2",  "wb-gpio", "EXT2_DR2", "room15_scene_controller", "scene4_call"); }, 21000);
setTimeout(function() { light_control("room17_scene_caller_control_v9_1", "wb-gpio", "EXT1_DR11", "room17_scene_controller", "scene1_call"); }, 23000);
setTimeout(function() { light_control("room17_scene_caller_control_v9_2", "wb-gpio", "EXT1_DR12", "room17_scene_controller", "scene2_call"); }, 24000);
setTimeout(function() { light_control("room17_scene_caller_control_v10_1", "wb-gpio", "EXT1_DR13", "room17_scene_controller", "scene3_call"); }, 25000);
setTimeout(function() { light_control("room17_scene_caller_control_v10_2", "wb-gpio", "EXT1_DR14", "room17_scene_controller", "scene4_call"); }, 26000);
setTimeout(function() { light_control("room17_scene_caller_control_v14_1", "wb-gpio", "EXT2_DR4", "room17_scene_controller", "scene1_call"); }, 27000);
setTimeout(function() { light_control("room17_scene_caller_control_v14_2", "wb-gpio", "EXT2_DR5", "room17_scene_controller", "scene2_call"); }, 28000);
setTimeout(function() { light_control("room17_scene_caller_control_v15_1", "wb-gpio", "EXT2_DR6", "room17_scene_controller", "scene3_call"); }, 29000); 
setTimeout(function() { light_control("room19_scene_caller_control_v19_1", "wb-gpio", "EXT2_DR10", "room19_scene_controller", "scene4_call"); }, 32000);
setTimeout(function() { light_control("room19_scene_caller_control_v21_1", "wb-gpio", "EXT2_DR11", "room19_scene_controller", "scene4_call"); }, 33000);
setTimeout(function() { light_control("room27_scene_caller_control_v33_1", "wb-gpio", "EXT3_DR8", "room27_scene_controller", "scene4_call"); }, 38000);
setTimeout(function() { light_control("room27_scene_caller_control_v35_1", "wb-gpio", "EXT3_DR9", "room27_scene_controller", "scene4_call"); }, 39000); */

А что именно не работает? Без подробного описания, логов - я не вижу ошибок.

Добрый день !
По идеи должно вкл/выкл реле . На данный момент тестирую с wb-mr6c и не выходит с клавиши и с виртуального устройства по нажатию вебкнопки.
В логах сыпется ошибки, если я правильно понял какие логи вам нужны:

Лог
2021-02-02 11:28:24ECMAScript error: Error: Device with given ID already exists
/home/jenkins/wbdev/go/pkg/mod/github.com/contactless/go-duktape@v0.0.0-20170126162226-e07bb742a6e3/api.go:124
anon native strict preventsyield
light_control /etc/wb-rules/TestoficeSK.js:14
anon /etc/wb-rules/TestoficeSK.js:71 preventsyield

2021-02-02 11:28:25ECMAScript error: Error: Device with given ID already exists
/home/jenkins/wbdev/go/pkg/mod/github.com/contactless/go-duktape@v0.0.0-20170126162226-e07bb742a6e3/api.go:124
anon native strict preventsyield
light_control /etc/wb-rules/TestoficeSK.js:14
anon /etc/wb-rules/TestoficeSK.js:72 preventsyield

2021-02-02 11:28:26ECMAScript error: Error: Device with given ID already exists
/home/jenkins/wbdev/go/pkg/mod/github.com/contactless/go-duktape@v0.0.0-20170126162226-e07bb742a6e3/api.go:124
anon native strict preventsyield
light_control /etc/wb-rules/TestoficeSK.js:14
anon /etc/wb-rules/TestoficeSK.js:73 preventsyield
Скрипт
function light_control(name, device_in, control_in, device_out, control_out) {//device_in, control_in - выключатель; device_out, control_out - свет; 
defineVirtualDevice(name, {
		title: name,
		cells: {
          	TOGGLE_switch : {
				type : "pushbutton",
				value : false
			},
          	switch_fb : {
            	type : "switch",
				value : false
            }
		}
	});

	defineRule(name + "_switch_control", {//правило на включение с клавиш
		whenChanged: device_in + "/" + control_in,
		then: function (newValue, devName, cellName) {
			if (dev[device_out][control_out] == false){
				dev[device_out][control_out] = true;
               	dev[name]["switch_fb"] = true;
				log("Реле включена с выключателя");
			} else {
				dev[device_out][control_out] = false;
               	dev[name]["switch_fb"] = false;
				log("Реле отключена с выключателя");
			}
		}
	});

	defineRule(name + "_switch_control_iridium", {//правило на включение с вебкнопки
		whenChanged: name + "/TOGGLE_switch",
		then: function (newValue, devName, cellName) {
          	if (dev[device_out][control_out] == false) {
				dev[device_out][control_out] = true;
               	dev[name]["switch_fb"] = true;
				log("Реле включена с вебкнопки");
			} else {
				dev[device_out][control_out] = false;
				dev[name]["switch_fb"] = false;
				log("Реле отключена с вебкнопки");
			}
        }
	});

  	defineRule(device_out + "/" + control_out + "_fb", {//правило на фидбек с выходов реле
		whenChanged: device_out + "/" + control_out,
		then: function (newValue, devName, cellName) {
			if (dev[device_out][control_out] == true) {
              	dev[name]["switch_fb"] = true;
				log("канал включен напрямую");
			} else {
            	dev[name]["switch_fb"] = false;
				log("канал отключен напрямую");
            }
		}
	});
}

setTimeout(function() { light_control("room11_light_gr1_1_v1_1", "wb-gpio", "EXT1_IN3", "wb-mr6с_43", "K2"); }, 1000);
setTimeout(function() { light_control("room12_light_gr1_2_1_v2_1", "wb-gpio", "EXT1_IN5", "ddm84r_20", "channel1_on_off"); }, 2000);
setTimeout(function() { light_control("room12_light_gr1_2_2_v2_2", "wb-gpio", "EXT1_IN3", "wb-mr6с_43", "K1"); }, 3000);
setTimeout(function() { light_control("room13_light_gr1_3_v4_1", "wb-gpio", "EXT1_IN4", "wb-mr6с_43", "K3"); }, 4000);
/*setTimeout(function() { light_control("room14_light_gr1_4_v5_1", "wb-gpio", "EXT1_DR7", "wb-mr6с_43", "K4"); }, 5000);
setTimeout(function() { light_control("room15_light_gr1_5_2_v13_1", "wb-gpio", "EXT2_DR3", "wb-mr6с_43", "K6"); }, 6000);
setTimeout(function() { light_control("room16_light_gr1_6_v16_1", "wb-gpio", "EXT2_DR7", "wb-mr6с_42", "K2"); }, 7000);
setTimeout(function() { light_control("room111_light_gr1_11_2_v8", "wb-gpio", "EXT1_DR10", "wb-mr6с_42", "K6"); }, 8000);
setTimeout(function() { light_control("room12_light_gr1_12_v6", "wb-gpio", "EXT1_DR8", "wb-mr6с_30", "K1"); }, 9000);
setTimeout(function() { light_control("room22_light_gr2_2_v23_1", "wb-gpio", "EXT2_DR13", "ddm84r_21", "channel1_on_off"); }, 10000);
setTimeout(function() { light_control("room22_light_gr2_2_v28_1", "wb-gpio", "EXT3_DR3", "ddm84r_21", "channel1_on_off"); }, 11000);
setTimeout(function() { light_control("room25_light_gr2_3_v25_1", "wb-gpio", "EXT2_DR16", "wb-mr6с_30", "K3"); }, 12000);
setTimeout(function() { light_control("room24_light_gr2_4_2_v27", "wb-gpio", "EXT3_DR2", "wb-mr6с_30", "K5"); }, 13000);
setTimeout(function() { light_control("room26_light_gr2_6_2v31_1", "wb-gpio", "EXT3_DR7", "wb-mr6с_64", "K3"); }, 14000);*/
//Сцены:
/* setTimeout(function() { light_control("at_home_scene_caller_control_v3_1", "wb-gpio", "EXT1_DR4", "at_home_scene_controller", "scene1_call"); }, 13000);
setTimeout(function() { light_control("master_off_scene_caller_control_v3_2", "wb-gpio", "EXT1_DR5", "master_off_control", "master_off_ON_switch"); }, 14000);
setTimeout(function() { light_control("room15_scene_caller_control_v11_1", "wb-gpio", "EXT1_DR15", "room15_scene_controller", "scene1_call"); }, 18000);
setTimeout(function() { light_control("room15_scene_caller_control_v11_2", "wb-gpio", "EXT1_DR16", "room15_scene_controller", "scene2_call"); }, 19000);
setTimeout(function() { light_control("room15_scene_caller_control_v12_1", "wb-gpio", "EXT2_DR1", "room15_scene_controller", "scene3_call"); }, 20000);
setTimeout(function() { light_control("room15_scene_caller_control_v12_2",  "wb-gpio", "EXT2_DR2", "room15_scene_controller", "scene4_call"); }, 21000);
setTimeout(function() { light_control("room17_scene_caller_control_v9_1", "wb-gpio", "EXT1_DR11", "room17_scene_controller", "scene1_call"); }, 23000);
setTimeout(function() { light_control("room17_scene_caller_control_v9_2", "wb-gpio", "EXT1_DR12", "room17_scene_controller", "scene2_call"); }, 24000);
setTimeout(function() { light_control("room17_scene_caller_control_v10_1", "wb-gpio", "EXT1_DR13", "room17_scene_controller", "scene3_call"); }, 25000);
setTimeout(function() { light_control("room17_scene_caller_control_v10_2", "wb-gpio", "EXT1_DR14", "room17_scene_controller", "scene4_call"); }, 26000);
setTimeout(function() { light_control("room17_scene_caller_control_v14_1", "wb-gpio", "EXT2_DR4", "room17_scene_controller", "scene1_call"); }, 27000);
setTimeout(function() { light_control("room17_scene_caller_control_v14_2", "wb-gpio", "EXT2_DR5", "room17_scene_controller", "scene2_call"); }, 28000);
setTimeout(function() { light_control("room17_scene_caller_control_v15_1", "wb-gpio", "EXT2_DR6", "room17_scene_controller", "scene3_call"); }, 29000); 
setTimeout(function() { light_control("room19_scene_caller_control_v19_1", "wb-gpio", "EXT2_DR10", "room19_scene_controller", "scene4_call"); }, 32000);
setTimeout(function() { light_control("room19_scene_caller_control_v21_1", "wb-gpio", "EXT2_DR11", "room19_scene_controller", "scene4_call"); }, 33000);
setTimeout(function() { light_control("room27_scene_caller_control_v33_1", "wb-gpio", "EXT3_DR8", "room27_scene_controller", "scene4_call"); }, 38000);
setTimeout(function() { light_control("room27_scene_caller_control_v35_1", "wb-gpio", "EXT3_DR9", "room27_scene_controller", "scene4_call"); }, 39000); */ 

Судя по логу - пытаетесь создать два одинаковых (одно имя) устройства.
Добавьте вывод в лог всех параметров при в самом начале функции - будет понятнее.
например

log.info("enter func", name, device_in, control_in, device_out, control_out)

Навскидку - ddm84r_21/channel1_on_off_fb повторяется дважды
и при создании правила с именем device_out + “/” + control_out + “_fb”,уникалность не обеспечивается.

1)Удалил как вы сказали дубляж “ddm84r_21/channel1_on_off_fb” оставил пару вызовов функции, и ошибки перестали идти …а как теперь это реализовать ?! я раньше с этого скрипта еще вызывал глобальные сцены с другого файла . пример :

Это тоже не будет работать больше так?

setTimeout(function() { light_control("at_home_scene_caller_control_v3_1", "wb-gpio", "EXT1_DR4", "at_home_scene_controller", "scene1_call"); }, 13000); setTimeout(function() { light_control("master_off_scene_caller_control_v3_2", "wb-gpio", "EXT1_DR5", "master_off_control", "master_off_ON_switch"); }, 14000); setTimeout(function() { light_control("room15_scene_caller_control_v11_1", "wb-gpio", "EXT1_DR15", "room15_scene_controller", "scene1_call"); }, 18000); setTimeout(function() { light_control("room15_scene_caller_control_v11_2", "wb-gpio", "EXT1_DR16", "room15_scene_controller", "scene2_call"); }, 19000); setTimeout(function() { light_control("room15_scene_caller_control_v12_1", "wb-gpio", "EXT2_DR1", "room15_scene_controller", "scene3_call"); }, 20000); setTimeout(function() { light_control("room15_scene_caller_control_v12_2", "wb-gpio", "EXT2_DR2", "room15_scene_controller", "scene4_call"); }, 21000); setTimeout(function() { light_control("room17_scene_caller_control_v9_1", "wb-gpio", "EXT1_DR11", "room17_scene_controller", "scene1_call"); }, 23000); setTimeout(function() { light_control("room17_scene_caller_control_v9_2", "wb-gpio", "EXT1_DR12", "room17_scene_controller", "scene2_call"); }, 24000);

Лог
2021-02-02 12:56:14Реле отключена с вебкнопки

2021-02-02 12:56:25Реле отключена с вебкнопки

2021-02-02 12:57:02Реле включена с вебкнопки

2021-02-02 12:57:19Реле включена с вебкнопки

2021-02-02 12:58:02Реле включена с вебкнопки

2021-02-02 12:58:08Реле отключена с выключателя

2021-02-02 12:58:09Реле отключена с выключателя

2021-02-02 12:58:11Реле отключена с выключателя

2021-02-02 12:58:11Реле включена с выключателя

2021-02-02 12:58:12Реле отключена с выключателя

2021-02-02 12:58:20Реле включена с выключателя

2021-02-02 12:58:24Реле отключена с выключателя

2021-02-02 12:58:28Реле включена с выключателя

2021-02-02 12:58:29Реле отключена с выключателя

2021-02-02 12:58:30Реле отключена с выключателя

2021-02-02 12:58:30Реле отключена с выключателя

2021-02-02 12:58:31Реле отключена с выключателя

2021-02-02 12:59:48enter func light wb-gpio EXT1_IN3 wb-mr6с_43 K1

2021-02-02 12:59:48defineRule: light_switch_control

2021-02-02 12:59:48defineRule: light_switch_control_iridium

2021-02-02 12:59:49defineRule: wb-mr6с_43/K1_fb

2021-02-02 12:59:49enter func dim1 wb-gpio EXT1_IN4 ddm84r_21 channel1_on_off

2021-02-02 12:59:50defineRule: dim1_switch_control

2021-02-02 12:59:50defineRule: dim1_switch_control_iridium

2021-02-02 12:59:50defineRule: ddm84r_21/channel1_on_off_fb

2021-02-02 12:59:50enter func testdim2 wb-gpio EXT1_IN5 ddm84r_21 channel1_on_off

2021-02-02 12:59:50defineRule: testdim2_switch_control

2021-02-02 12:59:50defineRule: testdim2_switch_control_iridium

2021-02-02 12:59:50defineRule: ddm84r_21/channel1_on_off_fb

2021-02-02 12:59:50defineRule error: named rule redefinition: ddm84r_21/channel1_on_off_fb

2021-02-02 12:59:50ECMAScript error: Error: error error (rc -100)
anon native strict preventsyield
anon /usr/share/wb-rules-system/scripts/lib.js:245
light_control /etc/wb-rules/TestoficeSK.js:58
anon /etc/wb-rules/TestoficeSK.js:63 preventsyield

2021-02-02 12:59:50enter func room12_light_gr1_2_2_v2_2 wb-gpio EXT1_IN5 wb-mr6с_43 K2

2021-02-02 12:59:51ECMAScript error: Error: Device with given ID already exists
/home/jenkins/wbdev/go/pkg/mod/github.com/contactless/go-duktape@v0.0.0-20170126162226-e07bb742a6e3/api.go:124
anon native strict preventsyield
light_control /etc/wb-rules/TestoficeSK.js:15
anon /etc/wb-rules/TestoficeSK.js:65 preventsyield

Еще такой вопрос на счет диммира от разум дома.
У него частенько плохой отклик и часть регистров плохо читается , много раз наблюдал такую картину:
2021-02-02_13-59-35

помогите пожалуйста с этим тоже разобраться

config-ddm84r_addr_new.json (1.4 КБ)

И подскажите пожалуйста , может быть есть возможность поставить такую прошивку с версией правил к 1.7?
Такая ситуация, что на объекте свыше 100 коттеджей на вб 5ом на этих скриптах. А при отсутствии в запасе старого контроллера , получается так , что я не могу быстро восстановить работоспособность дома

Не в вызовах надо удалять, гораздо лучше привести имена првил к уникальному виду.

Добавить в

defineRule(device_out + "/" + control_out + "_fb", {

‘name’, например. Оно-то уникальное
например так:

defineRule(name + "_" + device_out + "/" + control_out + "_fb", {

Или, что в *данном * случае лучше использовать анонимные правила, ведь с ними не происходит кабота после создания:
https://wirenboard.com/wiki/Движок_правил_wb-rules_2.0#.D0.90.D0.BD.D0.BE.D0.BD.D0.B8.D0.BC.D0.BD.D1.8B.D0.B5_.D0.BF.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0

С второй версии применяется изоляция:
https://wirenboard.com/wiki/Движок_правил_wb-rules_2.0#.D0.98.D0.B7.D0.BE.D0.BB.D1.8F.D1.86.D0.B8.D1.8F_.D1.81.D1.86.D0.B5.D0.BD.D0.B0.D1.80.D0.B8.D0.B5.D0.B2
по ссылке есть варианты модификации.

Прошивки, в принципе, можно использовать старые, заблокировав пакет wb-rules и обновляя остальные. Но путь - тупиковый, как по мне гораздо лучше переписать сейчас скрипты на свежий wb-rules, один раз и отладить их. Чтобы при необходимости - спокойно обновить.

Или, что в *данном * случае лучше использовать анонимные правила, ведь с ними не происходит кабота после создания:

Здравствуйте, Андрей! Столкнулся с проблей реле wb-mr6c.
Сделал включение с кнопок под анонимные правила работа пошла но через раз каналы реле не обрабатывает, почему то считывает дефолтное состояние за null(можно увидеть в логе).
На прямую каналы переключаются , и состояние каналов булевое.


Скрипт
function light_control(name, device_in, control_in, device_out, control_out) {//device_in, control_in - выключатель; device_out, control_out - свет; 
log.info("enter func", name, device_in, control_in, device_out, control_out)
  
	defineRule({
		whenChanged: device_in + "/" + control_in,
		then: function (newValue, devName, cellName) {
			log("1:" + dev[device_out][control_out]);
			if (dev[device_out][control_out] === false){
				dev[device_out][control_out] = true;
				log("Реле включена с выключателя");
			} else {
				dev[device_out][control_out] = false;
				log("Реле отключена с выключателя");
			}
		}
	});	
}


setTimeout(function() { light_control("room11_light_gr1_1_v1_1", "wb-gpio", "EXT1_IN3", "wb-mr6с_43", "K2"); }, 1000);
setTimeout(function() { light_control("room12_light_gr1_2_1_v2_1", "wb-gpio", "EXT1_DR2", "ddm84r_20", "channel1_on_off"); }, 2000);
setTimeout(function() { light_control("room12_light_gr1_2_2_v2_2", "wb-gpio", "EXT1_DR3", "wb-mr6с_43", "K1"); }, 3000);
setTimeout(function() { light_control("room13_light_gr1_3_v4_1", "wb-gpio", "EXT1_DR6", "wb-mr6с_43", "K3"); }, 4000);
setTimeout(function() { light_control("room14_light_gr1_4_v5_1", "wb-gpio", "EXT1_DR7", "wb-mr6с_43", "K4"); }, 5000);
setTimeout(function() { light_control("room15_light_gr1_5_2_v13_1", "wb-gpio", "EXT2_DR3", "wb-mr6с_43", "K6"); }, 6000);
setTimeout(function() { light_control("room16_light_gr1_6_v16_1", "wb-gpio", "EXT2_DR7", "wb-mr6с_42", "K2"); }, 7000);
setTimeout(function() { light_control("room111_light_gr1_11_2_v8", "wb-gpio", "EXT1_DR10", "wb-mr6с_42", "K6"); }, 8000);
setTimeout(function() { light_control("room12_light_gr1_12_v6", "wb-gpio", "EXT1_DR8", "wb-mr6с_30", "K1"); }, 9000);
setTimeout(function() { light_control("room22_light_gr2_2_v23_1", "wb-gpio", "EXT1_IN4", "ddm84r_21", "channel1_on_off"); }, 10000);
setTimeout(function() { light_control("room22_light_gr2_2_v28_1", "wb-gpio", "EXT3_DR3", "ddm84r_21", "channel1_on_off"); }, 11000);
setTimeout(function() { light_control("room25_light_gr2_3_v25_1", "wb-gpio", "EXT2_DR16", "wb-mr6с_30", "K3"); }, 12000);
setTimeout(function() { light_control("room24_light_gr2_4_2_v27", "wb-gpio", "EXT3_DR2", "wb-mr6с_30", "K5"); }, 13000);
setTimeout(function() { light_control("room26_light_gr2_6_2v31_1", "wb-gpio", "EXT3_DR7", "wb-mr6с_64", "K3"); }, 14000);
Лог
2021-02-03 13:24:11add your rules to /etc/wb-rules/

2021-02-03 13:24:12enter func room11_light_gr1_1_v1_1 wb-gpio EXT1_IN3 wb-mr6с_43 K2

2021-02-03 13:24:13enter func room12_light_gr1_2_1_v2_1 wb-gpio EXT1_DR2 ddm84r_20 channel1_on_off

2021-02-03 13:24:14enter func room12_light_gr1_2_2_v2_2 wb-gpio EXT1_DR3 wb-mr6с_43 K1

2021-02-03 13:24:15enter func room13_light_gr1_3_v4_1 wb-gpio EXT1_DR6 wb-mr6с_43 K3

2021-02-03 13:24:16enter func room14_light_gr1_4_v5_1 wb-gpio EXT1_DR7 wb-mr6с_43 K4

2021-02-03 13:24:17enter func room15_light_gr1_5_2_v13_1 wb-gpio EXT2_DR3 wb-mr6с_43 K6

2021-02-03 13:24:18enter func room16_light_gr1_6_v16_1 wb-gpio EXT2_DR7 wb-mr6с_42 K2

2021-02-03 13:24:19enter func room111_light_gr1_11_2_v8 wb-gpio EXT1_DR10 wb-mr6с_42 K6

2021-02-03 13:24:20enter func room12_light_gr1_12_v6 wb-gpio EXT1_DR8 wb-mr6с_30 K1

2021-02-03 13:24:21enter func room22_light_gr2_2_v23_1 wb-gpio EXT1_IN4 ddm84r_21 channel1_on_off

2021-02-03 13:24:22enter func room22_light_gr2_2_v28_1 wb-gpio EXT3_DR3 ddm84r_21 channel1_on_off

2021-02-03 13:24:23enter func room25_light_gr2_3_v25_1 wb-gpio EXT2_DR16 wb-mr6с_30 K3

2021-02-03 13:24:24enter func room24_light_gr2_4_2_v27 wb-gpio EXT3_DR2 wb-mr6с_30 K5

2021-02-03 13:24:25enter func room26_light_gr2_6_2v31_1 wb-gpio EXT3_DR7 wb-mr6с_64 K3

2021-02-03 13:26:011:null

2021-02-03 13:26:01Реле отключена с выключателя

2021-02-03 13:26:041:null

2021-02-03 13:26:04Реле отключена с выключателя

2021-02-03 13:26:081:null

2021-02-03 13:26:08Реле отключена с выключателя

2021-02-03 13:26:081:null

2021-02-03 13:26:08Реле отключена с выключателя

p.s не корректно считывались выходы либо при загрузке с кодировкой что-то . Переписал название и заработало

Да я абсолютно с вами солидарен. Просто продумываю запасной вариант если не успею из за кратких сроков .
Если возможно, не могли бы вы мне указать как именно это правильно сделать и какие дистрибутивы/пакеты ставить

Завтра с утра распишу.

Добрый день, Андрей. С прошивкой не нужно уже , подскажите по диммеру .Как наладить обмен с ним

Про диммер - советую ему поднять в шаблоне таймауты. Скорей всего не успевает ответить. А в логах, если debug для wb-mqttt-serial включить - что? Ошибки при чтении какие?

не понял как это сделать =)

Описание:
Драйвер wb-mqtt-serial — Wiren Board вообще статью надо сначала прочитать.