Zeta
20.Октябрь.2020 09:59:38
1
Добрый день!
В чем может быть проблема?
Со второго раза запустилось.
Oct 20 09:50:18 IQ930000 daemon.info wb-rules[1755]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1445500 false <nil>} [] map[]})
Oct 20 09:50:28 IQ930000 daemon.info wb-rules[1755]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1445540 false <nil>} [] map[]})
Oct 20 09:50:38 IQ930000 daemon.info wb-rules[1755]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1445580 false <nil>} [] map[]})
Oct 20 09:50:48 IQ930000 daemon.info wb-rules[1755]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1445740 false <nil>} [/devices/+/meta/driver] map[]})
Судя по логу - ошибка обращения к брокеру. Надо посмотреть сколько mosquitto ест памяти, CPU. Недавно было похожее - когда он со стороннего сервера через мост “набрал” в свою базу больше 150МБ топиков и симптомы были похожие.
Zeta
20.Октябрь.2020 12:01:40
3
Я перед самим запуском чистил топики, может потер что лишнее… Но пока больше не возникало проблем. Понаблюдаю.
Zeta
14.Апрель.2021 16:35:39
4
Apr 14 16:11:29 IQ930001 daemon.info wb-rules[1454]: INFO: [wbgo_mqtt] rules-IQ930001-1454: MQTT connection established
Apr 14 16:11:29 IQ930001 daemon.info wb-rules[1454]: WARNING: [wbgo_mqtt] MQTT connection lost
Apr 14 16:11:29 IQ930001 daemon.info wb-rules[1454]: INFO: [wbgo_mqtt] rules-IQ930001-1454: MQTT connection established
Apr 14 16:11:39 IQ930001 daemon.info wb-rules[1454]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0xc45500 false <nil>} [] map[]})
Apr 14 16:11:49 IQ930001 daemon.info wb-rules[1454]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0xc45540 false <nil>} [] map[]})
Apr 14 16:11:59 IQ930001 daemon.info wb-rules[1454]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0xc45580 false <nil>} [] map[]})
Apr 14 16:12:09 IQ930001 daemon.info wb-rules[1454]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0xc455c0 false <nil>} [/devices/+/meta/driver] map[]})
Опять такая же ошибка после перезагрузки контроллера. Состояние mosquitto в БД не сохраняем.
Zeta
14.Апрель.2021 16:39:24
5
Вы тестировали работу wb-rules 2.6.3 с отключенным persistence?
Поидее не должно влиять, но как только мы выставили persistence false, wb-rules стал нестабильно запускаться при загрузке контроллера.
Добрый день. Вообще - да, проверяли конечно. Сейчас на тестовом контроллере прогоняю.
Zeta
16.Апрель.2021 11:04:33
7
После перезапуска mosquitto:
Apr 16 10:52:14 IQ170000 daemon.info wb-rules[1813]: INFO: [wbgo_mqtt] rules-IQ170000-1813: MQTT connection established
Apr 16 10:52:14 IQ170000 daemon.info wb-rules[1813]: WARNING: [wbgo_mqtt] MQTT connection lost
Apr 16 10:52:14 IQ170000 daemon.info wb-rules[1813]: INFO: [wbgo_mqtt] rules-IQ170000-1813: MQTT connection established
Apr 16 10:52:24 IQ170000 daemon.info wb-rules[1813]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1845500 false <nil>} [] map[]})
Apr 16 10:52:34 IQ170000 daemon.info wb-rules[1813]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1845540 false <nil>} [] map[]})
Apr 16 10:52:44 IQ170000 daemon.info wb-rules[1813]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x1845580 false <nil>} [] map[]})
Apr 16 10:52:54 IQ170000 daemon.info wb-rules[1813]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.SubscribeToken (&{{{{0 0} 0 0 0 0} 0x18455c0 false <nil>} [/devices/+/meta/driver] map[]})
Apr 16 11:00:02 IQ170000 user.notice wb-daemon-watchdogs: wb-rules check failed, reload wb-rules
Apr 16 11:00:34 IQ170000 daemon.info wb-rules[11817]: INFO: driver is created
Apr 16 11:00:34 IQ170000 daemon.info wb-rules[11817]: INFO: [wbgo_mqtt] rules-IQ170000-11817: MQTT connection established
Apr 16 11:00:34 IQ170000 daemon.info wb-rules[11817]: INFO: driver loop is started
Apr 16 11:00:34 IQ170000 daemon.info wb-rules[11817]: INFO: wait for driver to become ready
Apr 16 11:00:36 IQ170000 daemon.info wb-rules[11817]: INFO: driver is ready
Apr 16 11:00:36 IQ170000 daemon.info wb-rules[11817]: INFO: [rule info] using file /var/lib/wirenboard/wbrules-persistent.db for persistent DB
Apr 16 11:00:36 IQ170000 daemon.info wb-rules[11817]: INFO: [wbgo_mqtt] wb-rules-engine-IQ170000-11817: MQTT connection established
Apr 16 11:00:36 IQ170000 daemon.info wb-rules[11817]: INFO: [engine] Starting main loop
Apr 16 11:00:36 IQ170000 daemon.info wb-rules[11817]: INFO: the engine is ready
В конечном счете wb-rules запустился сам, но 7 минут старта как-то очень долго. И аналогично wb-rules иногда запускается при загрузке контроллера.
Starck
12.Сентябрь.2021 10:47:34
8
у меня тоже возникли вопросы почему после рестарта сервиса правил они запустились, но по факту вскоре перестали работать. Я правила не трогал при этом, а занимался настройкой GPIO.
Перед этим еще выполнил:
service wb-mqtt-serial restart // status ok
service wb-homa-gpio restart // status ok
service wb-rules restart // status ok
Фрагмент лог-файла:
messages.txt (27.9 КБ)
Здравствуйте! При остановке mosquitto сервис wb-rules тоже завершил работу. Затем по watchdog сервис был перезапущен. Ожидание срабатывания watchdog и заняло столько времени. Сейчас у wb-rules прописана зависимость от сервиса mosquitto, поэтому так происходит. После остановки mosquitto нужно запускать wb-rules вручную. Разработчики обещали это поправить.
Пока проблема не совсем понятна. Скажите, как воспроизвести?
Starck
13.Сентябрь.2021 13:51:32
11
Правила после рестарта не хотят работать ни в каком виде, в отладочном окне ничего не отображается, да и сценарии не работают, хотя кроны в логе были замечены. force-reload помог запустить правила. Вообщем все трудности я ловлю в новом релизе.
Starck
13.Сентябрь.2021 22:29:41
12
Еще через WEB UI не могу посмотреть правила. Ошибка: Error listing the scripts: MQTT RPC request timed out MqttTimeoutError
Все началось с того, что я обновил через ftp файлы сценариев и увидел, что setTimeout не сработал.
Перезагрузил контроллер - js-файлы видны, но если зайти и сохранить, то та же ошибка по таймауту.
force-reload тока спасает после перезагрузки. Что-то здесь не то
Понятно. А какие сейчас у файлов атрибуты?
Starck
14.Сентябрь.2021 07:30:43
14
-rw-r--r-- 1 root root 184 авг 27 01:04 alarms.conf
-rw-r--r-- 1 root root 516 сен 14 01:11 common.js
-rw-r--r-- 1 root root 1598 сен 14 00:11 custom-home-config.conf
-rw-r--r-- 1 root root 24561 сен 14 01:11 heating.js
-rw-r--r-- 1 root root 31166 сен 14 03:27 light.js
-rw-r--r-- 1 root root 0 сен 11 01:24 test.js
-rw-r--r-- 1 root root 32338 сен 14 01:11 vent.js
-rw-r--r-- 1 root root 3903 сен 14 00:32 water.js
А что wb-rules в свой лог пишет при запуске в процессе загрузки контроллера?
journalctl -u wb-rules --since "10 min ago"
Ну и в журналах по времени запуска.
Starck
14.Сентябрь.2021 20:38:08
18
Обновил файл и запустил команду:
journalctl -u wb-rules --since "10 min ago"
root@wirenboard-ATNO6FBW:~# journalctl -u wb-rules --since "10 min ago"
-- Logs begin at Sun 2021-08-29 16:13:12 +03, end at Tue 2021-09-14 23:20:30 +03. --
сен 14 23:19:30 wirenboard-ATNO6FBW wb-rules[7888]: INFO: reloading file: /etc/wb-rules/light.js
сен 14 23:19:31 wirenboard-ATNO6FBW wb-rules[7888]: INFO: [rule info] Загрузка сценариев освещения wb-rules/light.js
Starck
14.Сентябрь.2021 20:39:52
19
Кусок лога ранее сутками:
wb-rules.log (100.5 КБ)
Starck
14.Сентябрь.2021 22:12:08
20
Через UI после сохранения правил опять зависание и ошибка в браузере Error saving the file: MQTT RPC request timed out MqttTimeoutError
Может это происходить из-за повторного переопределения defineRule с тем же дескриптором?
Когда я сохраняю изменения, то дескриптор cron-правила schedule_valve_control
уже существует.
// создадим новое/переопределим cron-правило
var schedule_valve_control = createScheduleRule(hours);
runRule(schedule_valve_control);
// Создание правила управления приточными клапанами по времени
function createScheduleRule( hours ) {
return defineRule('valve_schedule_rule', {
when: cron("0 0 "+ hours.toString() + " * * *"),
then: function () {
var hour = data.time_now();
checkValves(hour);
}
});
}