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


#1

Доброго дня

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


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


#2

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


и wb-prepare

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

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


#3

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


#4

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


#5

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


#6

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


#7

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

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

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


#8

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


#9

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

это как-то поможет?
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)

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


#10

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


#11

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

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

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


#12

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


#13

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


#14

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


#15

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

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

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


#16

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

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


#17

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


#18

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


#19

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


#20

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