Зависают процессы. Или рушатся. WB6

Доброго дня

Рушатся какие-то сервисы связанные с mqtt на wb6
Периодичность - около суток
wb-rules - живое


Перезагрузка помогает.
Сам факт - огорчает…

Дополнение.
wb-mqtt - все живые
Зато wb-init нет


и wb-prepare

В веб-интерфейсе не открываются закладки
scripts
(скриншот был выше)
и configs

При этом wb-rules отрабатывают вроде как штатно.

sibmax, добрый день! В текущем движке есть проблема с таймерами, пока неустраненная. Возможно, вы столкнулись с ней. Остальные ршибки похожи на проявление этого.
wb-init и wb-prepare не должны быть running и на нормально функционирующем контроллере. Вы можете оценить частоту создания/разрушения таймерных объектов в ваших скриптах?
Можете отключить скрипт, активно использующий таймеры?

Таймеры используются для управления вентиляторами циркуляции воздуха.
Какой конструкцией это заменить лучше?

Чем заменить эти конструкции можно?

Самый безотказный вариант на сегодняшний день — использование системного cron, который будет публиковать в MQTT топики по расписанию. В некоторых случаях без сбоев работает cron движка правил.

У меня контроллер 6.1, wb-rules 1.7
Такая конструкция работает безотказно уже несколько месяцев.
Период срабатывания тикера 150сек.
Внутри этого периода срабатывают таймеры - 2Х6 шт. чтобы имитировать ШИМ для 6-ти каналов.

Если делать период тикера менее 5 сек. возможны зависания.

Конкретные зависания возникали при использовании setTimout и setTimer.
Здесь уже бороться было трудно.

тут 30 и 600 секунд соответственно переменные выставлены…
уже два дня работает стабильно. что с чем связано - хз

ну и как работать без таймеров? Вроде поработало теперь опять зависать стало!!!

это как-то поможет?
Apr 24 22:28:09 wirenboard-AFDB3MCD daemon.info wb-rules[6005]: INFO: [rule info] WatchDogV.stop:Таймер мигания выходом остановлен wb-gpio/V_OUT
Apr 24 22:28:09 wirenboard-AFDB3MCD daemon.info wb-rules[6005]: INFO: [rule info] WatchDogV.initialisation: Инициализация устройства WatchDogV
Apr 24 22:28:09 wirenboard-AFDB3MCD daemon.info wb-rules[6005]: INFO: [rule info] WatchDogV.initialisation: Инициализация окончена, ожидание запускаWatchDogV
Apr 24 22:28:19 wirenboard-AFDB3MCD daemon.info wb-rules[6005]: INFO: [rule info] WatchDogV.initimer_rule:Ватчдог запущен
Apr 24 22:28:41 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: INFO: [rule info] add your rules to /etc/wb-rules/
Apr 24 22:28:41 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: INFO: MQTT connection established
Apr 24 22:28:41 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: ERROR: command ‘/bin/sh -c echo 0 > /sys/class/pwm/pwmchip0/export’ failed with exit status 1
Apr 24 22:28:42 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: INFO: [rule info] WatchDogV.initialisation: Инициализация устройства WatchDogV
Apr 24 22:28:42 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: INFO: [rule info] WatchDogV.initialisation: Инициализация окончена, ожидание запускаWatchDogV
Apr 24 22:28:52 wirenboard-AFDB3MCD daemon.info wb-rules[6289]: INFO: [rule info] WatchDogV.initimer_rule:Ватчдог запущен
Apr 24 22:28:52 wirenboard-AFDB3MCD user.notice wb-mqtt-db[654]: 2019-04-24 22:28:52.513 NOTICE: Bulk processing took 141ms
Apr 24 22:29:01 wirenboard-AFDB3MCD authpriv.info CRON[6369]: pam_unix(cron:session): session opened for user root by (uid=0)

скрипт работает только после ребута, если перезапускаются правила - все останавливается.

Покажите, пожалуйста, пример конструкции, которая работает.
таймер и интервал. Сколько уже можно мыкаться? Вы нашли такой рабочий вариант в вашей системе?

Да, прошу прощения, получается все очень неудобно.
cron-правила работают, но нет четкого понимания, когда они ломаются. То же с интервалами.

Готового примера нет, но я бы использовал команду at (https://en.wikipedia.org/wiki/At_(command))
(apt-get install at), сделал бы для нее функции обертки для интервалов и cron-задач и по расписанию отправлял бы значения в нужные mqtt-топики, на изменения в которых срабатывают правила в движке.

Так же можно поступить с системным кроном: если время выполнения точно известно, отправку сообщения в очередь mqtt можно прописать в crontab.

А вообще какие то прогнозы-планы по решению этой проблемы с таймерами имеются?
Ибо, например, в настоящее время у меня пять производственных проектов,
ядром КИПиА которых планируется WB6. И использовать штатные rules
я категорически запретил. Сейчас колхозим свой софт.
Ибо с существующими проблемами на продакшен
я wb-rules не выпущу по определению…

Нет, прогнозов, к сожалению, нет. Точно не месяц и не два.

очень грустно. проблема реально крайне неприятная.

Скажите, пожалуйста, если не использовать wb-rules, WB можно хотя бы как шлюз в mqtt использовать? И как у него работаете модбас, надежно? Я устал уже искать варианты, как заставить эту железку работать, теперь нужно хоть что есть использовать, а логику я вынесу на другой контроллер. Да, каша, получится, но столько времени потрать сил и нервов… нет слов. А у меня сдача объекта и следом новый подпирает, не могу разбираться больше с их фокусами…

Получается мне надо, чтобы WB имел карту модбас подключенных модулей, чтобы можно было создать вирт девайсы и им присвоить адреса (для математической обработки показаний датчиков - с этой задачей, надеюсь, wb-rules справится?)

Или и с serial начнутся пляски танцы и геморрой?

Wb-rules работает только с MQTT. Драйвер для serial устройств тоже пишет все в mqtt.

Вы можете все правила описать на том же питоне, запустив его на контроллере.

с питоном мало работал, только прикладные программы делал, где питон был вшит в оболочку. Давно это было.
Но я правильно понял, что если я не питоне буду в контроллере писать алгоритмы, то косяков с таймерами не будет? Эту тему сложно поднять, много там чего в ноля если разбираться? А то из одной каши в другую не хотелось бы перелазить…

можете мне объяснить по скайпу, например, как это делается? Условия обговорим, я бы оплатил ваше время. polygon13@yandex.ru

Я питон как пример привёл. Пишите на чем угодно, что запускается под линуксом и умеет в mqtt.

я не программист и с линуксом не работал( Но программирую в средах контроллеров, если есть нормальная документация. Тут, с например, питоном, мне надо будет много чего учесть в работе линукса, или можно будет создать какой-то шаблон операций, которые я произведу, а потом смогу уже писать скрипты и они на этом созданном окружении будут работать?