Диковатый глюк в wb-rules

О, еще один… Та же проблема, только задом наперед.

Нет, тут - просто мост всего со всем и в обе стороны.

Это не отменяет, а всего лишь оттеняет туманность алгоритма взаимодействия рулей с мостом.

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

Нет туманности. Как видно из результатов подписки - при двунаправленном мосте два раза пишется в /on
И это объясняется так,для брокеров 1 и 2
1 ага, топик поменялся, теперь true. Этот топик у меня в мосту! Отправляю его на брокер 2
2 Пришло true, ставлю
1 ага, кто-то (rules) установил топик в false. А тут на брокере 2 по подписке (мост-то двунаправленный) пришло true. Ставлю опять true
В общем типичная картина коллизий с петлей ОС.

Эт понятно. После как вляпался, помогли, распутался. Где доки? :slight_smile:

И где хоть одно объяснение первого вопроса в топике? Думаю, если бы оно было, оно бы уже было. Смоделить удалось? Или недосуг пока.

Вот думаю как это подоходчивей расписать.

Удалось, воспроизводится. Думаю на днях поймем все ж почему так.

1 лайк

Я еще смешное нашел, отлаживая удаленные узлы.
Как говорил выше, делаю publish с флагом retained для того, чтобы они команду вдуплили. При этом посредством ползунков на вебальнике сделать выкл-вкл тоже можно, ими я при отладке и пользовался.
Но!!!
Если релейко было включено посредством publish, а затем выключено ползунком, минут через ДЕСЯТЬ оно (и ползунок тоже) возвращается во “включено”. Это - странно. Я бы понял, если сразу же, или по истечении цикла опроса устройств (2…20с), но - десять минут??!
Попроверял 100 раз везде - нигде больше в эту переменную и топик никто не пишет.

Ага.
Ну получается, что вебальник постит без флага retained? Ибо за 10 минут (на разных экземплярах время разное) полностью проворачивается очередь брокера и не-retained телеграмма улетает, соотв. брокер заново ловит сохраненную телеграмму и двигает ползунок обратно.
Так, что ли?

Нет, не лепится.
Еще экземпляр [того же?] глюка.
Три контроллера, все релиза 2110, два из них, слейва, коннектятся к мастеру с полным отображением его виртуального устройства, qos=2. На обоих слейвах изменения канала виртустройства на вебальнике отображаются корректно.
Но!!!
На одном из слейвов в переменной dev[] видно реальное значение канала, а на другом - стабильно 0 (или «0»), при этом typeof() отдает правильный тип.
Подписка с trackMqtt() дает также правильное значение.

Я бы таки ОЧЕНЬ попросил уважаемых авторов понять наконец, как идет взаимодействие wb-rules и mqtt, и рассказать нам. Помнится, речь шла о какой-то фиче, но позже всё опять затихло.

Я слабо себе представляю, как это можно реально осуществить.

Пожалуйста подготовьте снова полный и подробный набор данных, чтобы воспроизвести проблему. В теме 49 сообщений за 2 месяца, это очень сложно осознать.

Я более-менее представляю, как это пофиксить (сразу под node.js) - выдалась свободная ночь, качнул, поставил, кое-что из скриптов уже работает. :slight_smile:
Но придется переделать логику общения с устройствами - источник багов как раз в ней.
Сделаю - покажу.

Нда. Ослепительной примитивности откровение посетило меня в процессе примерки шкуры программиста: мое хроническое недоумение на тему глюков и многочисленные гневные посты можно разбить о единственный немудрящий довод: оно и не должно работать, юзай недокументированные фичи на свой страх и риск. Жаль, что уважаемые авторы, с присущим им тактом, не отважились сразу сунуть меня носом в эту очевидность. Я приношу авторам искренние извинения за войну с ветряными мельницами. Не со зла, честно.

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

Посидел пару суток, сделал свой эрзац wb-rulez, пока на голом node, зверюшка получилась нешустрая, однако работает. Ее потихоньку и доведу до ума.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.