Простое правило - переключатель?

Добрый день!
не могу для простого правила переключатель правильно написать “указатели на устройство”
взял за основу пример:
defineRule(“motion_detector”, {
whenChanged: “wb-gpio/D1_IN”,
then: function (newValue, devName, cellName) {
dev[“wb-gpio”][“Relay_2”] = newValue;
dev[“wb-mrm2_6”][“Relay 1”] = newValue;

}
});

имею для::

сух контакта имею
/devices/wb-mio-gpio_31:1/controls/DR3
для реле
/devices/wb-gpio/controls/EXT2_R3A3

делаю свое правило

defineRule(“motion_detector”, {
whenChanged: “devices/wb-mio-gpio_31:1/controls/DR3”,
then: function (newValue, devName, cellName) {
dev[“devices/wb-mio-gpio_31:1/controls/DR”] = newValue;

}
});

задача такая, реализовать изменение канала по изменению сухого контакта
так же как у Вас по умолчанию реализовано на модуле в котором и реле и сух. контакт - работают

спасибо

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

defineRule(“motion_detector”, {
whenChanged: “wb-mio-gpio_31:1/DR3”,
then: function (newValue, devName, cellName) {
dev[“wb-gpio/EXT2_R3A3”] = newValue;

}
});

1 лайк

спасибо
заработало

но я только так и не осознал, куда “controls” из пути устройства делось

А Вам это принципиально надо понимать? Controls на практике нужен для обращения к виртуальным устройствам, например, когда в строке Окна терминала через SSH будете писать команды. В других случаях написания сценариев я про это напрочь забыл. ))

1 лайк