Предысотрия следующая
wb6 был куплен для автоматизации системы отопления в цехе.
Имеется 20 инфракрасных излучателей, которые включаются и отключаются при соответствующих показаниях 3 датчиков температуры.
Первой проблемой был через раз работающий модуль аналоговых входов, который был спешно заменен на MB110 от Овена, который был в наличии. Оборудование подключилось и работало достаточно долго без сбоев.
Второй проблемой стал wb-rules, который стал себя совершенно неадекватно вести после экспериментов с PersistentStorage. Файлы не отображались, скрипты не работали, после удаления строк с PersistentStorage и перезапуска движка все входило в норму, но после перезапуска контроллера движок wb-rules на запускался. В связи с утратой доверия wb-rules был заменен на чистый nodejs. После долгого написания программы все вроде заработало, но выяснилось, что поджидает третья проблема
Третья проблема заключается в том, что передаваемые значения по mqtt не всегда доходят от модулей и не всегда приходят к ним. Вот это ну очень страшно, когда видишь одно, а по факту совсем другое.
Как разгрузить сам контроллер, убрав все лишнее, чтоб оставить только мои скрипты и mqtt, убрав поэтапно наследие wb так, чтобы осталась только работа с модулями ввода-вывода, в том числе модбасовскими?
Поможет ли освобождение памяти на диске?
Какой объем оперативки моих скриптов потянет wb6 в дополнении к уже запущенному хозяйству wb6 (сейчас 150-200 MB, но хочется еще свой webUI и viberBot)?
free - m позже скину, я postgresql поставил, у меня диск забился и больше не принимает, на флешку надо перевести. Мои скрипты по пока не работают
Основной вопрос да - в том что до модулей не доходит. Как уже писал, вся логика на чистом nodejs, пока использую ваш вэб-интерфейс. Ситуация очень не понятная, на вэб-интерфейсе пишет, что реле включено, а по факту нет. Я грешил на то, что не до всех подписчиков доходит сообщение. И еще один раз странное поведение наблюдалось, когда резко поднялось показание на датчике температуры с 11 до 16 градусов, т.е.наоборот выходит, что с модбасовского модуля не дошло. И логику не могу винить, т.к.обычно все ок. Идея одна - подчистить все лишнее, оставив чистый брокер и обработку модулей ввода-вывода и сделать keepalive скрипт, который будет значения в модули переписывать раз в минуту, сейчас я, чтобы брокер не нагружать, повторяющиеся значения не пишу
Желательно, чтобы это был один модуль, и можно было это вызывать, например, по нажатию мышкой в нашем веб-интерфейсе. Потом надо смотреть, как это нажатие преобразовалось в MQTT-сообщение, и потом ошибки драйвера модуля.
1.2) Что можно отключить из родного у WB (wb-rules, web-интерфейс, может что-то еще) и как ? По факту использую брокер, модули, модбас-устройство
С вэб-интерфейса при нажатии ни разу сбоев не было. Ситуацию тяжело поймать, иногда срабатывает, иногда нет, кидаю новое значение в топик, Ваш вэб-интерфейс подхватывает, а модуль нет.
Может у меня архитектура неправильная - микросервисы взаимодействующие друг с другом через mqtt, но вроде в этом и задумка Ваша была. Библиотека для nodejs предполагает, что message - это всегда строка при подписке и публикации. Но строки - это очень медленно, брокер только со строками работает или я чего-то не понимаю.
Давайте ещё раз: что и где вы нажимали, и какой именно выход какого именно модуля не реагировал?
Если проблема не воспроизводится, то непонятно, чем я могу вам помочь.
Вручную не воспроизводится.
К Вам вопросы консультационные:
Что можно отключить и как, чтобы остался только брокер и поддержка модулей ввода-вывода, в том числе модбас, и стоит ли это делать ?
Из Вашего опыта, если много небольших скриптов запущены и взаимодействуют через mqtt, возможно ли такое, что кому-то из подписчиков сообщение не дойдет?
Когда публикую сам, ставлю {“retain”:true, “qos”:2}. Какой должен быть qos? Какие еще параметры можно выставить, чтобы увеличить надежность доставки?
При использовании сторонних скриптов добалвяю {qos:1, retain:true}. Нужно ли это делать? Спрашиваю потому, что в топики 4 уровня, а ‘on’ - это пятый, может какой-то препроцессор есть и он их не поймет.
Сам с собой веду беседу. Ура! Я дурак, техника работает, спасибо за обратную связь от мдолей. Но про qos и retain вопрос в силе