Wb-mwac управление через MQTT-событие

Добрый день!
Хочу при срабатывании внешнего датчика запустить с помощью правила механизм аналогичный замыканию F1.

Просто отправка сообщения dev[“wb-mwac_12/S3”] = false; не запускает Alarm и не отключает краны. Какую команду нужно послать через MQTT-очередь?

Добрый день!

Надо сначала понять, дело в правиле или в самом принципе работы WB-MWAC.
Попробуйте вручную записать соответствующий регистр через modbus_client
и проверьте, происходит ли то, что вы хотите.

Нужно было писать в K1. Как я понял, регистры Sx и Fx доступны только на чтение.
dev[“wb-mwac_12/K1”] = false;

Краны закрываются, но сценарий не отрабатывается, как при срабатывании Fx. Не включается сирена.

Не нашел номер нужного регистра

modbus_client --debug -mrtu /dev/ttyRS485-1 -b9600 -pnone -a12 -t1 -s2 -r3

А что именно вы сейчас хотите сделать?
Регистры вот: https://wirenboard.com/wiki/index.php/WB-MWAC#.D0.9A.D0.B0.D1.80.D1.82.D0.B0_.D1.80.D0.B5.D0.B3.D0.B8.D1.81.D1.82.D1.80.D0.BE.D0.B2

Хотел самым простым образом эмулировать замыкание датчика протечки: закрытие кранов и сигнал тревоги. В результате написал это “в ручную”:

defineRule("Aqara_zb1_waterleak_is_true", {
  whenChanged: "myWaterLeakSensor1_zb/water_leak",
  then: function (newValue, devName, cellName) 
  {
    if(newValue)
    {
    	log("Датчик "+ devName + " = " + newValue);
      	if(newValue == "true")
        {
          log("Протечка!");
	    	dev["wb-mwac_12/K1"] = false; // Отключаем кран
	    	dev["wb-mwac_12/K2"] = false; // Отключаем кран
	    	dev["wb-mwac_12/Alarm"] = true; // подаем сигнал тревоги
	    	dev["wb-mr6c_111/K5"] = true; // Отключаем радиатор
          
        }
    } 
  }
});

все верно. это единственный возможный способ. матрица реакций работае только при срабатывании датчика ( регистры входов доступные только для чтения ), она перекрывает краны устанавливая coil 0 и 1 в flase и включает сирену coil 2 в true. со стороны модбаса это возможно только устанавливая данные coil регистры по отдельности.