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

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

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

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 (выключить реле)
            			}
 }
 });

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

Поправили шаблон, как описано в этой теме, но все равно отображается RGB с выбором цвета.
Подскажите, как убрать RGB, чтобы остались только ползунки?

2019-06-21_183214

Добрый день!
А вы старый канал (который с "type": "rgb") удалили? Если да, то service wb-mqtt-serial restart и mqtt-delete-retained с правильными параметрами должны помочь. И страницу перезагрузить по Ctrl+R

1 лайк

Изначально делали, и это не сработало:
mqtt-delete-retained '/devices/wb-mrgb_11/controls/RGB

Помогло:
mqtt-delete-retained '/devices/wb-mrgb_11/controls/#

Спасибо!

1 лайк

Чуть выше лежит исправленный шаблон. Надо по аналогии у вас поправить. Ну и при применении нового шаблона, надо замереть старое устройство. Вроде так.

A post was split to a new topic: Странное поведение ленты при включении

Вот пример диммирования одного канала кнопкой, подключенной к A1_IN контроллера.

var DEVICE = "wb-mrgbw-d_63";
var CONTROL = "White 1-B";
var STEP_VALUE = 6;
var MIN_VALUE = 12;
var MAX_VALUE = 255;

var levelUp = true;
var holdTimer = null;
var changeInterval = null;
var valueBeenChanged = false; // яркость была изменена в промежутке между нажатием и отпусканием кнопки
var lastLevel = MAX_VALUE;

defineRule("my_test_rule", {
  whenChanged: "wb-gpio/A1_IN",
  then: function(newValue, devName, cellName) {
    if (newValue) {
      // кнопка нажата
      if (dev[DEVICE][CONTROL] == 0) {
        // если лампа выключена
        // установить ей предыдущее значение (до выключения)
        dev[DEVICE][CONTROL] = lastLevel
        valueBeenChanged = true
        if (lastLevel < MAX_VALUE) {
          levelUp = true;  
  		  log.info('level up', dev[DEVICE][CONTROL]);
        } else {
          levelUp = false;
          log.info('level down');
        }
      }
      
	  holdTimer = setTimeout(function() {
        // если кнопка все еще нажата
        var up = levelUp;	// запомним направление изменения яркости
        levelUp = !levelUp; // при следующем нажатии направление изменения яркости будет другим
        changeInterval = setInterval(function() {
          if (up) {
            newValue = dev[DEVICE][CONTROL] + STEP_VALUE;
          	newValue = newValue > MAX_VALUE ? MAX_VALUE : newValue;
          } else {
           	newValue = dev[DEVICE][CONTROL] - STEP_VALUE;
            newValue = newValue < MIN_VALUE ? MIN_VALUE : newValue;
          }
          
          if (dev[DEVICE][CONTROL] != newValue) {
            dev[DEVICE][CONTROL] = newValue;
          }
          
          valueBeenChanged = true;
        }, 150);
      }, 500);
    } else {
      // кнопка отпущена
	  clearTimeout(holdTimer);
      if (changeInterval) {
	    clearInterval(changeInterval);
      }

      if (!valueBeenChanged && dev[DEVICE][CONTROL] > 0) {
        lastLevel = dev[DEVICE][CONTROL];
        dev[DEVICE][CONTROL] = 0;
      }
      
      valueBeenChanged = false;
    }
  }
});

Т.е. можно использовать внешние кнопки для диммирования каналов R,G,B по такуму же принципу, как кнопка 3 диммирует белый канал.

2 лайка

Что в итоге? Удалось реализовать управление 4 разными лентами с 4-х разных кнопок через один этот модуль?

А в чем проблема? Вроде весь процесс описан.

ретроспектива ) не вылезло ли каких косяков и т.д.
за шаблон спасибо

1 лайк

Пока все в процессе, но собирал тестовый стенд и работало

А ведь можно получить автономный диммер взяв только 2 канала: белый и один из RGB, например Red (Green и Blue - оставляем не подключенными). В таком случае кнопка b1 - управляет яркостью Red, а кнопка b3 - яркостью White. Подключил и проверил. b1 никак не влияет на канал W. b3 - не влияет на каналы RGB. Все правильно?
И остался вопрос: скорость диммирования будет в этом случае разная у двух указанных каналов?(еще не получилось подключить ленту для проверки этого).
Так мы получим двухканальный диммер с прямым управлением кнопками.

Итак, отвечу на свой вопрос: проверил скорость изменения яркости по каналу Blue и White (т.е. время, за которое яркость от максимальной изменяется до минимальной и наоборот при удержании кнопок 1 и 3). Получилось, что по каналу Blue врем составило около 2 сек, а по каналу White около 4 сек. Как сделать одинаковую скорость? Она прописана во внутреннем ПО диммера и не меняется?

1 лайк

Добрый день, скорость можно регулировать с помощью регистра 13, однак растройка одна и она не позволит изменить соотношение скоростей междй каналом blue и white.
В данный момент ведется работа над новой прошивкой, в которой каждый канал может быть действительно отдельным каналом никак не связаным друг с другом и с RGB, более того 3мя из них можно будет управлять с кнопок.

2 лайка

Хорошая новость! Можете обозначить примерные сроки выхода этой прошивки?

В данное время программист занят задачей постоянно и не отвлекается. В ближайшее время будет релиз. Однако очень часто по разным причинам по этой задаче сроки сдвигались, так что к сожалению не могу ничего конкретного сказать.

2 лайка

Добрый день! Обратите внимание на эту тему: Тест диммера MRGBW 2.0

Приглашаем всех желающих протестировать новую прошивку для диммера (она же прошивка мечты) - смотрите сообщение выше.

ВАЖНО: это альфа-версия! И на данный момент поддерживается только режим четырех независимых (одноцветных) каналов.

1 лайк

При управлении каналами освещения при помощи кнопок, “лишний” четвертый канал пригодился бы для управления контактором блока питания светодиодных лент по логике ИЛИ(любой канал включен).

2 лайка