Реле RS-485

Можно ли управлять одним реле с помощью другого реле через RS-485?
Допустим, мы с одного реле присылаем информацию о состоянии входов и с контроллера через RS-485 управляем выходами реле.
Можно ли так сделать?

Добрый день!

Да. Можно, если оба реле управляются контроллером. Например с помощью Правил.

А не подскажите есть ли пример такого правила, где можно с помощью входов WB-MR6Cv.3 через RS-485 управлять выходами WB-MRWL3?
Также будет задействован контроллер WB7.
Буду благодарен, ибо пока что в программировании не до конца разбираюсь…

Да, есть статья Примеры правил
Там, например, слежение за контролом

Также есть полная документация на Правила на github
Другие источники примеров

Написал такую программу, сначала чтобы проверить на виртуальной кнопке, но что-то видимо не так, ибо не работает…

defineVirtualDevice("simple_test", {
    title: "Simple switch",
    cells: {
	enabled: {
	    type: "switch",
	    value: false
	},
    }
});

defineRule("simple_switch", {
  whenChanged: "simple_test/enabled",
  then: function (newValue, devName, cellName) {
	dev["wb-mrwl3/K1"] = true;
	dev["wb-mrwl3/K2"] = true;

  }
});

Подскажете что не так?

Подскажите, а как предполагаете должно работать? И как работает на самом деле?
Насколько вижу, сейчас при любом изменении переключателя (неважно вкл или выкл) - реле включаются (true).

Можете проверить: в интерфейсе вручную выключить реле K1, K2, потом переключить переключатель enabled, повторить.

defineRule({
  whenChanged: "wb-mr6cv3_35/Input 1",
  then: function (newValue, devName, cellName) {
	dev["wb-mr3_155/K1"] = newValue;
  }
});

defineRule({
  whenChanged: "wb-mr6cv3_35/Input 2",
  then: function (newValue, devName, cellName) {
	dev["wb-mr3_155/K1"] = newValue;
  }
});

defineRule({
  whenChanged: "wb-mr6cv3_35/Input 3",
  then: function (newValue, devName, cellName) {
    dev["wb-mr3_155/K2"] = newValue;
  }
});

defineRule({
  whenChanged: "wb-mr6cv3_35/Input 4",
  then: function (newValue, devName, cellName) {
    dev["wb-mr3_155/K2"] = newValue;
  }
});

Похоже, вы сами справились :slight_smile: Вижу алгоритм для выключателя с фиксацией.
Подскажите, есть ли ещё вопросы?

По итогу вот что у меня получилось, но есть одно но…
Мне нужно, чтобы один переключатель не просто включал и выключал, а зависел и от второго переключателя.
То есть нажимая на первый переключатель я включаю свет, а вторым я могу его сразу же при этом выключить. А потом возвращаясь к первому переключателю (он остался в положении вкл.) и нажимая на него я обратно включаю свет.
В интерфейсе WB у реле в mapping-матрице эта свойство называется переключить/переключить.
Как я могу сделать это через правила?

Можно присваивать каналу состояние, противоположное текущему

dev["wb-mr3_155/K2"] = !dev["wb-mr3_155/K2"];

то есть выключатели оставить независимыми друг от друга, но при переключении одного из них - переключать выходной канал

Да, помогло, спасибо большое!
Про противоположное значение и не подумал…

Рада была помочь :slight_smile:

1 Like