WB-MRGBW-D управление отдельно 4я каналами


#1

доброго времени, при подключение диммера штатно

На сайте указано что можно отдельно (не зависимо) управлять каждым каналом, то есть можно подключить отдельно четыре белых ленты. как переделать окно, что бы на каждый канал был свой ползунок. Спасибо. Возможно стоить добавить это возможность в штатную сборку?


#2

Добрый день, SAA!
Создайте свой шаблон для диммера, где один RGB-канал (показан красным),
замените тремя, по образу белого (показан зеленым).
Измените тип устройства и имя файла, чтобы при обновлении он не затерся, а вы имели бы возможность выбирать разные шаблоны для диммера: с RGB и с отдельными каналами:

Статья вам в помощь:
https://wirenboard.com/wiki/index.php/Драйвер_wb-mqtt-serial:Примеры_написания_шаблонов


#3

Доброго времени. Поправил шаблон, получилось config-wb-mwwww-d.json (2.4 КБ)

Ползунок управляет каждый своим каналом. Но Button 1 и 2 по прежнему управляют сразу тремя каналами RBG Возможно ли переназначить их и сделать что бы каждая кнопка управляла своим каналом, как это реализовано на Button 3 и канал W. Спасибо.


#4

SAA, добрый день!
Замечательно. Логика работы кнопок настроена в микропрограмме модуля, так что поменять ее не получится. Вы можете отвязать входы (через соответствующие регистры) и делать свое управление на движке правил. Единственно, скорость управления будет не очень большая, поскольку состояние кнопок считывается по Modbus не мгновенно. Можно ориентироваться на увеличение счетчика нажатий.


#5

Хорошо, тогда прошу подсказать следующее.
В статье https://wirenboard.com/wiki/index.php/Relay_Module_Modbus_Management говориться, что у цифровых выходов есть 3 режима. А в карте димера https://wirenboard.com/wiki/index.php/WB_Dimmers_Modbus_Registers_Map описано только два режима. Для данного димера значение 1 это выключено или работа с клавишами фиксации?
А в статье https://wirenboard.com/wiki/index.php/WB-MRGBW-D говориться, что в HOLDING_REGISTER по адресу 5 необходимо записать число 255 (0xFF) для отключения управления кнопками.

И из этих статей, для меня не совсем понятно. Если я выставляю значение 1, то это правило действует на все цифровые выходы? или возможно задавать параметры для каждого выхода? Или вообще надо указать 255?

Спасибо.


#6

SAA, коротко: регистр 5: 0 – кнопки работают как клавиши без фиксации, 1 – все кнопки не работают. Отдельно управлять входами нельзя.

Первая ваша ссылка относится к релейным модулям, не к диммерам. В статье про диммер осталась старая информация: спасибо большое, поправил.


#7

Доброго времени, удачно получилось отвязать цифровые выходы. При написании правил за пример был взят шаблон правил

     defineRule("switch", { //название правила
         whenChanged: "WB-MRGBW-D-1/Button 1", //при изменении состояния кнопки выключателя
            then: function (newValue, devName, cellName) { //выполняй следующие действия
            dev["WB-MRGBW-D-1"]["White 1-B"] = newValue ; //установи Реле 1 контроллера
     }
     }); 

Пример взят из работы реле. Если устройство в штатном режиме управлялось клавишами без фиксации, то данное правило работает как правило для клавиши с фиксация. То есть пока мы держим нажатой физическую кнопку, устройство срабатывает, после отпускания клавиши, значение Button 1 меняется и происходит переключение. :cold_sweat::cold_sweat:
Второй момент, так как это правило из реле, реле как я понимаю может быть в двух положения включено и выключено, у димера скорей всего есть целый диапазон значений от 0-225.

Прошу помочь, подсказать, где прочитать…

  1. как сделать работу клавиши без фиксации
  2. как дать нагрузку на канал 1 после нажатия клавиши без фиксации
  3. и самый наверное сложный, при данной схеме работы вообще возможно димировать лету?

Спасибо.


#8

Ну сам пока начну отвечать на свои вопросы )))

Правило работает если у нас выключатель с фиксацией

defineRule("switch", {                                                          //название правила
     whenChanged: "WB-MRGBW-D-1/Button 1",                //при изменении состояния кнопки выключателя
        then: function (newValue, devName, cellName) {       //выполняй следующие действия
        dev["WB-MRGBW-D-1"]["White 1-B"] = 200 ;             //включить Реле 1 контроллера на 200 (включить реле)
 }
 }); 

Возможно тут не надо и/или не используется значение newValue?

Если выключатель без фиксации то работает правило.

 defineRule("switch", { 											//название правила
     whenChanged: "WB-MRGBW-D-1/Button 1 counter", 					//при изменении состояния кнопки выключателя
        then: function (newValue, devName, cellName) {     			//выполняй следующие действия
			if (dev["WB-MRGBW-D-1"]["White 1-B"] == 0) { 			//если значение White 1-B = 0 (реле выключено)
        		dev["WB-MRGBW-D-1"]["White 1-B"] = 200 ;			//включить Реле 1 контроллера на 200 (включить реле)
            	} else {											//если значение White 1-B > 0 (реле включено)
              		dev["WB-MRGBW-D-1"]["White 1-B"] = 0 ; 			//включить Реле 1 контроллера на 0 (выключить реле)
            			}
 }
 });

Надо подумать как димер реализовать?