На контроллере-приемнике сделан конфиг бриджа:
connection wb_70
address 10.0.0.70
notifications true
notification_topic /devices/wb_70/bridge_status
#keepalive_interval 2
#restart_timeout 5
topic /mydev/# in 2 /devices /devices
На контроллере источнике соответствующее виртуальное устройство:
//02_22_test_01.js
defineVirtualDevice("mydev", {
title: "mydev", //
cells: {
test0 : {
type : "switch",
value : false,
readonly: false,
},
}
})
Топик устройства на источнике (в момент переключения):
mosquitto_sub -v -t /devices/mydev/#
/devices/mydev/meta/name mydev
/devices/mydev/meta/driver wb-rules
/devices/mydev/controls/test0 0
/devices/mydev/controls/test0/meta/type switch
/devices/mydev/controls/test0/meta/order 1
/devices/mydev/controls/test0/meta/readonly 0
/devices/mydev/controls/test0/on 1
/devices/mydev/controls/test0 1
/devices/mydev/controls/test0/on 0
/devices/mydev/controls/test0 0
На приемнике:
mosquitto_sub -v -t /devices/mydev/#
/devices/mydev/meta/name mydev
/devices/mydev/meta/driver wb-rules
/devices/mydev/controls/test0 0
/devices/mydev/controls/test0/meta/type switch
/devices/mydev/controls/test0/meta/order 1
/devices/mydev/controls/test0/meta/readonly 0
/devices/mydev/controls/test0/on 1
/devices/mydev/controls/test0 1
/devices/mydev/controls/test0/on 0
/devices/mydev/controls/test0 0
На приемнике также правило:
//02_22_test_01.js
defineRule("testRule", {
whenChanged: "mydev/test0",
then: function(newValue, devName, cellName) {
log.info("rule executed newValue=", newValue);
}
});
При переключении виртуального устройства на источнике - правило срабатывает.
При публикации на “источнике”:
mosquitto_pub -t /devices/mydev/controls/test0 -m 1
На “приемник” приходит
/devices/mydev/controls/test0 1
Ну и правило срабатывает
Если само значение = 0, важно, то есть НЕ совпадает с текущим опубликованным.
и опубликовать на источнике в .on “1” - тоже срабатывает.