начал отчаянно тормозить Node-red который до обновления работал более чем стабильно
отвалились 1w датчики 8 штук на одной шине были. осталось 2
по ощущениям загрузка стала больше
Нехватки ресурсов контроллера не наблюдаю. В логах вижу следующие ошибки:
Apr 01 10:34:47 wb-INK Node-RED[7488]: [red] Uncaught Exception:
Apr 01 10:34:47 wb-INK Node-RED[7488]: 1 Apr 10:34:47 - [error] UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "No temp. reading registered".
Apr 01 10:34:47 wb-INK Node-RED[7488]: at throwUnhandledRejectionsMode (node:internal/process/promises:392:7)
Apr 01 10:34:47 wb-INK Node-RED[7488]: at processPromiseRejections (node:internal/process/promises:475:17)
Apr 01 10:34:47 wb-INK Node-RED[7488]: at process.processTicksAndRejections (node:internal/process/task_queues:106:32)
Apr 01 10:34:47 wb-INK mosquitto[1873]: 1775021687: Client nodered715628d63a1bc0c3 closed its connection.
Apr 01 10:34:47 wb-INK systemd[1]: nodered.service: Main process exited, code=exited, status=1/FAILURE
Apr 01 10:34:47 wb-INK mosquitto[1873]: 1775021687: Client NodeRed-6863ff4ca07e61f7-8qqk8 closed its connection.
Apr 01 10:34:47 wb-INK systemd[1]: nodered.service: Failed with result 'exit-code'.
Верно понимаю, что у вас используется несколько 1-Wire-датчиков? По логам похоже, что часть датчиков периодически теряется.
Что рекомендую сделать.
Сначала остановите Node-RED и проверьте, стабилизируется ли контроллер:
systemctl stop nodered
Если после этого нагрузка и работа MQTT нормализуются, значит проблема связана с падением Node-RED из-за отсутствующих температурных данных.
Далее проверьте шину 1-Wire отдельно от логики Node-RED:
железо в том виде и конфигурации, что сейчас - работало стабильно месяца 2
с этим самым нодредом, с этими самыми 8-ю датчиками
сегодня уже 5 датчиков нашлось из 8…
все проблемы возникли только тогда и сразу
когда накатилось обновление последнее
нодред останавливал - не он причина
теряются вообще данные
от MAI6 например, который в 30 см от контроллера стоит
от m1w2 или как оно там, что тоже в 30 см на той же шине
причина однозначно не в физике, а в ПО
когда все это обновлялось - контроллер и все что с ним рядом
стояли в закрытом боксе и никто ничего там не дергал не шевелил…
любопытно
нет бд москиты в /var/lib/mosquitto/
просто пустая директория
конечно
это стендовое оборудование, с ним что угодно делать можно
сейчас заменю контроллер на другой, а этот подключу отдельно куда
чтобы дальше продолжить его насиловать в особо извращенной форме
отладку конструкции никто не отменял и такое вот приключение
чутка не в тему оказалось сейчас… ;(
ps
когда перецеплю его в другое место
попробую понаблюдать за утилизацией процессора
может там чего увидится.
таймеры в нодреде используются,
но их там немного и они корректно
удаляются-перезапускаются
ну и опять же - все более чем стабильно жило себе
до накатывания обновления последнего. маловероятно,
что проблема именно там приключилась.
Похоже нашел, где была проблема
После обновления видимо поменялось что-то в формате данных
которые получают стандартные ноды mqtt в Node-red.
Поэтому стали пролетать некорректные данные до инфлюкса
и не везде корректно шла обработка внутри алгоритма Node-Red
Поставил жесткий фильтр на входе, основную проблему купировал
Более глубоко пока не разбирался, не было пока возможности для этого.
Никаких физических перекоммутаций, подтягивания клемм,
дерганья проводов и датчиков не было
Просто переподключение разъемов
на контроллере было сделано.
1w шина на wb 7 после обновления 2602 перестала видеть все датчики на шине
проблема не в датчиках и проводке - на wb 8 с той же версией все ожило сразу
node-red неадекватно себя вел по неясной причине, причина не понятна до сих пор
перенесенные с него все flow без изменений на другом контроллере работают
штатно адекватно и без каких либо проблем
выпадали данные из топиков mai6, m1w2
причина - какие то изменения (не разбирался) в том,
что итогом получал mqtt in от москиты
времени разбираться не было
просто поставил фильтры везде
В отъезде в командировке
Нет в настоящее время возможности продолжать
разбор ситуации. Видимо тикет проще закрыть.
На будущее еще раз подтвердили обязательную практику
не проводить никаких обновлений на продакшен решениях
без полноценного предварительного тестирования на стенде