Wb-rules: whenchanged и mqtt bridge

Привет.
А что, правила реагируют только на топики, изданные внутри своего брокера?

// place your rules here or add more .js files in this directory
var myRule = defineRule({
    whenChanged: "/well5/devices/wb-gpio/controls/A1_IN",
    then: function() {
        log("gpio changed");
    }
});
log("bz");

bz…

fixed.

Надо мимикрировать топик под встроенный, начав его с /devices/… Забавно.

Можно TrackMqtt и и отслеживать любой топик. То же правило.

Если их около 200шт в одном флаконе, начнутся танцы с regexpами, чую третьим глазом. Пускай штатно разбирает.

Кстати, одна непонятность имеет место быть. Именно странность.
Пройдя через бридж, виртуальный (или реальный) дивайс теряет подтопики meta, уж не знаю на кого грешить.
Чуть не спятил искать ведомые устройства на вебальнике ведущего, пока ручками не запостил в локальную базу meta/type каждого топика - после чего всё заработало как часы.
С отображением понятно: надо знать, чтО отображать (meta/type). А вот с утратой сабтопиков через бридж - прошу разъяснить, как сделать правильно.
Спасибо.

Сейчас проверяю. Настроил мост.
Итак, логика такая:
Драйвер (у меня wb-mqtt-adc_ при запуске (перезапуске) проверяет наличие retained топиков. и если они есть - не пересоздает. Ну и в бридж соответственно отправляются изменения.
Сделал:

systemctl stop wb-mqtt-adc && mqtt-delete-retained /devices/power_status/# &&systemctl start wb-mqtt-adc

Получил через мост:

/controller/power_status/controls/working on battery/meta/order (null)
/controller/power_status/controls/working on battery/meta/readonly (null)
/controller/power_status/controls/Vin/meta/type (null)
/controller/power_status/meta/driver (null)
/controller/power_status/meta/name (null)
/controller/power_status/controls/Vin/meta/order (null)
/controller/power_status/controls/working on battery/meta/type (null)
/controller/power_status/controls/Vin/meta/readonly (null)
/controller/power_status/controls/working on battery (null)
/controller/power_status/controls/Vin (null)
/controller/power_status/controls/Vin 0
/controller/power_status/controls/Vin 24
/controller/power_status/controls/Vin 24.03
/controller/power_status/controls/Vin 24

Но вообще да, подумаем что можно сделать.

По логике, бриджу надо отдавать всё, ибо прописать топики в свою базу удаленный подписчик не сможет, пока не узнал об их существовании.

Но откуда драйверу узнать что топики устройства - используются в бридже? Сам брокер-то понятия не имеет…

Вот я и задал вопрос, как это решить по уму. Как прикостылить, я уже знаю (создать копию вирт. устройства на подписчике), а вот стройно и изъящно…

Пока сам думаю.

Можете показать настройки брижда? В частности интересует, какой у вас стоит qos?
Мы столкнулись с такой-же проблемой вот здесь.

Добрый день. QOS = 0 пока, в остальном примерно так же, только с подстановкой имени узла вместо /devices/{$devname}/ для интеграции в список устройств мастера: я строю сетку из мастера и нескольких слейвов так, чтоб мастер считал периферию последних своей, иначе серьезная городьба выходит.
Стенд из двух Wb 6.7 из коробки, сразу update && upgrade, экспериментальные репо не подтаскивал, версии чуть позднее сообщу.

mosquitto:
Installed: 1.4.15-1+wb7-3
wb-mqtt-serial:
Installed: 2.7.1

cat /etc/mosquitto/conf.d/bridge.conf

connection master
address 1.1.1.1
notifications true
cleansession false
topic # out 0 /devices/wb-gpio/ /devices/well5_gpio/
topic # in 0 /devices/wb-gpio/ /devices/well5_gpio/
topic # out 0 /devices/NODE_STATUS/ /devices/well5_status/