Задержка обработки событий zigbee2mqtt

Добрый день!
Проблема аналогичная Большая задержка при обработке событий от zigbee2mqtt, симптомы абсолютно аналогичные.

Использую датчики движения Aqara, логика сделана в Nodered (движение-включение реле, движение-проверка освещенности-включение реле, информацию от датчиков получаю непосредственно через zigbee2mqtt
Для диагностики написано правило отслеживающее конкретный временной интервал задержки с выводом в лог
ZigbeeDelayDetector.js (4,1 КБ)

Со временем возникают совсем большие задержки, вот вырезка из общего лога как пример:
12-10-2023 09:27:27.237 [wb-rules] INFO: [rule info] delay detected: CheckMS5 zigbee2mqtt/Aqara_M&I_sensor_5 MR6C_5/K3 4.9

12-10-2023 09:27:25.893 [nodered] 12 Oct 09:27:25 - [info] [wirenboard-out:31618d45c93e9c0f] Published to mqtt topic: /devices/MR6C_5/controls/K3/on : 1
12-10-2023 09:27:22.789 [zigbee2mqtt] Zigbee2MQTT:info 2023-10-12 06:27:22: MQTT publish: topic ‘zigbee2mqtt/Aqara_M&I_sensor_3’, payload ‘{“battery”:100,“illuminance”:41,“last_seen”:1697092041749,“linkquality”:40,“occupancy”:true}’

Batch No
6.9.1U 521
DTS Version
690
HW Revision
6.9.1
Manufacturing Date
2022-09-14 10:47:31

Release name
wb-2307
Release suite
stable
Short SN
AHUMZKW7

Что с этим делать и как с эти бороться)?

Добрый день.
Выложите приведенный скрипт просто в теле сообщения, движок не позволяет качать js файлы.

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

Если используете NodeRed - нет ли утечек памяти?

function DelayDetector1(itemName, motionFbTopic, relayFbTopic, timeout) {
/Logic/
var timerID = -1;

function showError() {
log(“delay detected:”, itemName, motionFbTopic, relayFbTopic);
}

function startTimer() {
timerID = setTimeout(showError, timeout);
}

defineRule(“rule” + itemName, {
whenChanged: relayFbTopic,
then: function(value, device, param) {
if (value) {
clearTimeout(timerID);
}
}
});

trackMqtt(motionFbTopic, function(message){
var fb = JSON.parse(message.value);
if (fb.occupancy) {
startTimer();
}
});
}

function DelayDetector2(itemName, motionFbTopic, relayFbTopic, timeout, maxTimeout) {
/Logic/
var timerID = -1;
var startMeasureDate;
var stopMeasureDate;
var isMeasuring = false;

function showError(delayInMs) {
log(“delay detected:”, itemName, motionFbTopic, relayFbTopic, delayInMs / 1000);
}

function startMeasure() {
if (!isMeasuring) {
isMeasuring = true;
startMeasureDate = new Date();
timerID = setTimeout(stopMeasureMaxTimeout, maxTimeout);
}
}

function stopMeasure() {
if (isMeasuring) {
clearTimeout(timerID);
stopMeasureDate = new Date();
var delayInMs = stopMeasureDate.getTime() - startMeasureDate.getTime();
if (delayInMs >= timeout && delayInMs <= maxTimeout) {
showError(delayInMs);
}
isMeasuring = false;
}
}

function stopMeasureMaxTimeout() {
if (isMeasuring) {
isMeasuring = false;
}
}

defineRule(“rule” + itemName, {
whenChanged: relayFbTopic,
then: function(value, device, param) {
if (value) {
stopMeasure();
}
}
});

trackMqtt(motionFbTopic, function(message) {
var fb = JSON.parse(message.value);
if (fb.occupancy) {
startMeasure();
}
});
}

function DelayDetector2Illuminance(itemName, motionFbTopic, illuminanceFbTopic, illuminanceBorder, relayFbTopic, timeout, maxTimeout) {
/Logic/
var timerID = -1;
var illuminance;
var startMeasureDate;
var stopMeasureDate;
var isMeasuring = false;

function showError(delayInMs) {
log(“delay detected:”, itemName, motionFbTopic, relayFbTopic, delayInMs / 1000);
}

function startMeasure() {
if (!isMeasuring) {
isMeasuring = true;
startMeasureDate = new Date();
timerID = setTimeout(stopMeasureMaxTimeout, maxTimeout);
}
}

function stopMeasure() {
if (isMeasuring) {
clearTimeout(timerID);
stopMeasureDate = new Date();
var delayInMs = stopMeasureDate.getTime() - startMeasureDate.getTime();
if (illuminance < illuminanceBorder && delayInMs >= timeout && delayInMs <= maxTimeout) {
showError(delayInMs);
}
isMeasuring = false;
}
}

function stopMeasureMaxTimeout() {
if (isMeasuring) {
isMeasuring = false;
}
}

defineRule(“rule” + itemName, {
whenChanged: relayFbTopic,
then: function(value, device, param) {
if (value) {
stopMeasure();
}
}
});

trackMqtt(motionFbTopic, function(message) {
var fb = JSON.parse(message.value);
if (fb.occupancy) {
startMeasure();
}
});

trackMqtt(illuminanceFbTopic, function(message) {
var fb = JSON.parse(message.value);
illuminance = fb.illuminance;
});
}

new DelayDetector2(“CheckMS6.2”, “zigbee2mqtt/Aqara_M&I_sensor_6.2”, “MR6C_7/K2”, 1000, 30000);
new DelayDetector2(“CheckMS9”, “zigbee2mqtt/Aqara_M&I_sensor_9”, “MR6C_3/K4”, 1000, 30000);
new DelayDetector2(“CheckMS10”, “zigbee2mqtt/Aqara_M&I_sensor_10”, “MR6C_3/K2”, 1000, 30000);
new DelayDetector2(“CheckMS11”, “zigbee2mqtt/Aqara_M&I_sensor_11”, “MR6C_8/K2”, 1000, 30000);
new DelayDetector2(“CheckMS12”, “zigbee2mqtt/Aqara_M&I_sensor_12”, “MR6C_8/K5”, 1000, 30000);

new DelayDetector2Illuminance(“CheckMS3”, “zigbee2mqtt/Aqara_M&I_sensor_3”, “zigbee2mqtt/Aqara_M&I_sensor_3”, 20, “MR6C_2/K5”, 1000, 30000);
new DelayDetector2Illuminance(“CheckMS5”, “zigbee2mqtt/Aqara_M&I_sensor_5”, “zigbee2mqtt/Aqara_M&I_sensor_5”, 20, “MR6C_5/K3”, 1000, 30000);
new DelayDetector2Illuminance(“CheckMS6.1”, “zigbee2mqtt/Aqara_M&I_sensor_6.1”, “zigbee2mqtt/Aqara_M&I_sensor_6.1”, 20, “MR6C_7/K5”, 1000, 30000);

Да, как и предполагал - скрипт просто фиксирует времена.
Так что именно внутри вашего кода в NR выполняется несколько секунд?
Добавьте отладку с выводом, например - чтобы оценить. Ну и проверьте, не течет ли сам сервис.
NodeRed - он кратно сложнее типовых скриптов.

Ок. Проверяем дальше.

Ок. Проверяем дальше.
Кстати, я в начале темы показал лог из системного журнала
12-10-2023 09:27:25.893 [nodered] 12 Oct 09:27:25 - [info] [wirenboard-out:31618d45c93e9c0f] Published to mqtt topic: /devices/MR6C_5/controls/K3/on : 1
12-10-2023 09:27:22.789 [zigbee2mqtt] Zigbee2MQTT:info 2023-10-12 06:27:22: MQTT publish: topic ‘zigbee2mqtt/Aqara_M&I_sensor_3’, payload ‘{“battery”:100,“illuminance”:41,“last_seen”:1697092041749,“linkquality”:40,“occupancy”:true}’

Да, но какие (судя по времени - там сотни тысяч итераций) вычисления проводятся внутри программы в NodeRed? Расставьте в своей программе вывод в лог тоже.

Хорошо, сделаю. добавлю указанные выше логи из системного журнала (получение информации из топика MQTT и команду на включение реле) в вывод.

Да, у меня в Nodered довольно большой объем всего, но такими большими задержки становятся далеко не сразу …
У товарища аналогичная проблема … правило написано в wb-rules

Добрый день. Возвращаюсь к проблеме …
В конечном итоге стало все совсем плохо, вплоть до зависания сервиса wb-rules.
Для чистоты эксперимента была сделана чистая установка системы (factory reset) 2310. Написано новое правило для отслеживания задержек. Очень хочется разобраться в проблеме …

function ZigbeeTester(itemName, wbMotionTopic, z2mMotionTopic, wbRelayTopic) {
  var startTime;
  
  function timestamp(eventName, time) {
    log(eventName + " " + time);
  }

  defineRule(itemName + "ruleM", {
    whenChanged: wbMotionTopic,
    then: function(value, device, param) {
      timestamp("Пришло значение из топика " + wbMotionTopic + " - " + value, new Date().getTime());
    }
  });

  defineRule(itemName + "ruleR", {
    whenChanged: wbRelayTopic,
    then: function(value, device, param) {
      var endTime = new Date().getTime()
      timestamp("Пришло значение из топика " + wbRelayTopic + " - " + value, endTime);
      var delayInMs = endTime - startTime;
      log("Задержка составила " + delayInMs + "мс")
    }
  });

  trackMqtt(z2mMotionTopic, function(message) {
    startTime = new Date().getTime();
    timestamp("Пришло значение из топика " + z2mMotionTopic + " - " + message.value, startTime);
    var obj = JSON.parse(message.value);
    if (obj.occupancy) {
      timestamp("Включаем реле " + wbRelayTopic, new Date().getTime());
      dev[wbRelayTopic] = true;
    } else {
      timestamp("Выключаем реле " + wbRelayTopic, new Date().getTime());
      dev[wbRelayTopic] = false;
    }
  });
}

new ZigbeeTester("tester", "Aqara_M&I_sensor_3/occupancy", "zigbee2mqtt/Aqara_M&I_sensor_3", "MR6C_2/K5");
17-11-2023 11:10:41.828 INFO: [rule info] Задержка составила 1845мс
17-11-2023 11:08:15.148 INFO: [rule info] Задержка составила 5375мс
17-11-2023 09:20:19.178 INFO: [rule info] Задержка составила 1322мс
17-11-2023 09:18:49.952 INFO: [rule info] Задержка составила 2288мс
17-11-2023 09:15:54.121 INFO: [rule info] Задержка составила 4603мс
17-11-2023 09:14:18.990 INFO: [rule info] Задержка составила 1028мс
17-11-2023 09:14:18.990 INFO: [rule info] Задержка составила 1028мс
17-11-2023 09:13:27.918 INFO: [rule info] Задержка составила 1409мс
17-11-2023 09:09:36.430 INFO: [rule info] Задержка составила 967мс
17-11-2023 09:09:29.970 INFO: [rule info] Задержка составила 2118мс
17-11-2023 09:07:58.377 INFO: [rule info] Задержка составила 1847мс
17-11-2023 09:07:14.619 INFO: [rule info] Задержка составила 1270мс
17-11-2023 09:05:55.882 INFO: [rule info] Задержка составила 11015мс
17-11-2023 09:04:31.305 INFO: [rule info] Задержка составила 1475мс
17-11-2023 09:01:58.933 INFO: [rule info] Задержка составила 2158мс
17-11-2023 08:59:29.709 INFO: [rule info] Задержка составила 860мс
17-11-2023 08:59:29.709 INFO: [rule info] Задержка составила 860мс
17-11-2023 08:56:50.698 INFO: [rule info] Задержка составила 9053мс
17-11-2023 08:52:15.032 INFO: [rule info] Задержка составила 1574мс
17-11-2023 08:50:45.557 INFO: [rule info] Задержка составила 1499мс
17-11-2023 08:49:37.537 INFO: [rule info] Задержка составила 1267мс
17-11-2023 08:48:09.592 INFO: [rule info] Задержка составила 2341мс
17-11-2023 08:44:57.542 INFO: [rule info] Задержка составила 1018мс
17-11-2023 08:42:27.173 INFO: [rule info] Задержка составила 1640мс
17-11-2023 08:39:26.404 INFO: [rule info] Задержка составила 593мс
17-11-2023 08:37:56.339 INFO: [rule info] Задержка составила 736мс
17-11-2023 08:37:56.339 INFO: [rule info] Задержка составила 736мс
17-11-2023 08:37:56.339 INFO: [rule info] Задержка составила 736мс
17-11-2023 08:32:11.113 INFO: [rule info] Задержка составила 970мс
17-11-2023 08:30:40.889 INFO: [rule info] Задержка составила 1925мс
17-11-2023 08:21:49.288 INFO: [rule info] Задержка составила 5501мс
17-11-2023 08:20:16.017 INFO: [rule info] Задержка составила 1852мс
17-11-2023 08:20:05.496 INFO: [rule info] Задержка составила 1771мс
17-11-2023 08:18:35.107 INFO: [rule info] Задержка составила 1450мс
17-11-2023 07:28:56.318 INFO: [rule info] Задержка составила 1048мс
17-11-2023 07:24:52.866 INFO: [rule info] Задержка составила 2192мс
17-11-2023 02:33:23.418 INFO: [rule info] Задержка составила 2857мс
17-11-2023 02:33:23.418 INFO: [rule info] Задержка составила 2857мс
17-11-2023 02:31:51.715 INFO: [rule info] Задержка составила 1119мс
17-11-2023 02:30:44.925 INFO: [rule info] Задержка составила 602мс
17-11-2023 02:29:14.432 INFO: [rule info] Задержка составила 522мс
17-11-2023 02:26:16.578 INFO: [rule info] Задержка составила 942мс
17-11-2023 02:24:46.337 INFO: [rule info] Задержка составила 505мс
17-11-2023 02:18:14.215 INFO: [rule info] Задержка составила 311мс
17-11-2023 02:16:45.623 INFO: [rule info] Задержка составила 1029мс

Видно что идет увеличение времени задержки …

17-11-2023 09:15:54.121 [wb-rules] INFO: [rule info] Задержка составила 4603мс
17-11-2023 09:15:54.112 [wb-rules] INFO: [rule info] Пришло значение из топика MR6C_2/K5 - false 1700201754111
17-11-2023 09:15:49.563 [wb-rules] INFO: [rule info] Выключаем реле MR6C_2/K5 1700201749558
17-11-2023 09:15:49.515 [wb-rules] INFO: [rule info] Пришло значение из топика zigbee2mqtt/Aqara_M&I_sensor_3 - {illuminance:17,last_seen:1700201655968,linkquality:0,occupancy:false} 1700201749508

Вот что видим, как пример

И через определенное время имеем:

17-11-2023 15:14:01.125 WARNING: [wbgo_mqtt] Cleaning up token queue
17-11-2023 15:14:00.057 WARNING: [wbgo_mqtt] Cleaning up token queue
17-11-2023 15:13:59.000 WARNING: [wbgo_mqtt] Cleaning up token queue
17-11-2023 15:13:58.158 WARNING: [wbgo_mqtt] Cleaning up token queue
17-11-2023 15:13:57.930 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.929 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.907 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.906 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.905 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.904 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.904 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.901 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.875 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.874 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.874 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.873 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.866 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.854 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.849 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.846 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.846 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.756 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.755 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.754 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.753 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.752 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.737 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.736 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.680 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.679 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.679 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.678 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.677 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.676 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.675 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.670 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.630 WARNING: [wbgo_mqtt] Cleaning up token queue
17-11-2023 15:13:57.629 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.628 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.627 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.627 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.626 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.612 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.602 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed
17-11-2023 15:13:57.601 ERROR: [wbgo_mqtt] MQTT error: connection lost before Subscribe completed

Огромная работа, восхищен. А как меняется потребление памяти процессом wb-rules?
Посмотрте, используя

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem

И, как понимаю скрипт на контроллере толко один, не считая системного?
nodered остановлен?

Огромное спасибо что ответили!
root@wirenboard-AHUMZKW7:~# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
PID PPID CMD %MEM %CPU
16065 1 node-red 19.8 8.6
20597 20596 node index.js 14.7 3.9
3144 1 /usr/bin/wb-mqtt-confed -sy 7.9 0.5
20460 1 npm start 7.7 0.6
3306 1 /usr/sbin/tailscaled --stat 5.6 2.8
22268 1 /usr/bin/wb-rules -syslog - 4.2 18.4
3209 1 python3 /usr/bin/wb-mqtt-nm 3.4 1.3
3124 1 /usr/bin/python3 /usr/bin/w 2.8 0.7
3139 1 /usr/bin/python3 /usr/bin/w 2.2 0.0
2893 1 python3 /usr/lib/wb-connect 2.1 1.6
3192 1 /usr/bin/python3 /usr/bin/w 2.1 0.9
122 1 /lib/systemd/systemd-journa 1.8 0.1
2867 1 /usr/sbin/NetworkManager – 1.8 2.2
2902 1 /usr/bin/wb-mqtt-serial 1.7 13.0
3652 3651 nginx: worker process 1.3 0.0
3029 1 /usr/sbin/mosquitto -c /etc 1.2 8.1
1 0 /sbin/init 1.1 0.1
324 1 /usr/sbin/ModemManager 1.1 0.0
9415 2991 sshd: root@notty 1.1 0.0
3155 1 /usr/bin/wb-mqtt-db 1.0 5.7
3651 1 nginx: master process /usr/ 0.9 0.0
6076 2991 sshd: root@pts/0 0.9 0.1
5632 2991 sshd: root@notty 0.9 0.0
3176 1 /usr/bin/wb-mqtt-logs 0.9 0.1
276 1 /usr/libexec/polkitd --no-d 0.8 0.0
5677 1 /lib/systemd/systemd --user 0.8 0.0
278 1 /lib/systemd/systemd-logind 0.7 0.0
297 1 /sbin/wpa_supplicant -u -s 0.7 0.0
2991 1 sshd: /usr/sbin/sshd -D [li 0.7 0.0
3485 1 /usr/bin/wb-mqtt-opcua 0.7 0.2
3164 1 /usr/bin/wb-mqtt-knx 0.7 0.1
5197 1 /usr/bin/wb-mqtt-gpio 0.6 0.2
5686 5677 (sd-pam) 0.6 0.0
5065 1 /usr/bin/wb-mqtt-adc 0.6 0.6
139 1 /lib/systemd/systemd-udevd 0.6 0.0
272 1 /usr/libexec/bluetooth/blue 0.6 0.0
274 1 /usr/bin/dbus-daemon --syst 0.6 1.9
3714 1 /usr/bin/wb-mqtt-w1 0.6 0.0
5246 2867 /usr/sbin/dnsmasq --conf-fi 0.5 0.0
9568 9415 /usr/lib/openssh/sftp-serve 0.5 0.0
2894 1 /usr/sbin/ntpd -p /var/run/ 0.5 0.0
5128 1 /usr/bin/wb-mqtt-mbgate -c 0.5 0.0
294 1 avahi-daemon: running [wire 0.4 0.0
5129 1 /usr/bin/knxd -e 0.0.1 -E 0 0.4 0.0
5872 5632 /usr/lib/openssh/sftp-serve 0.4 0.0
6282 6076 -bash 0.4 0.0
273 1 /usr/sbin/cron -f 0.3 0.0
22858 6282 ps -eo pid,ppid,cmd,%mem,%c 0.3 0.0
3052 1 /sbin/agetty -o -p – \u – 0.3 0.0
286 280 /bin/bash /usr/bin/wb-watch 0.3 0.0
3245 1 /bin/bash /usr/bin/wb-watch 0.3 0.0
5206 1 /usr/sbin/watchdog 0.2 0.0
3037 1 /sbin/agetty -o -p – \u – 0.2 0.0
308 294 avahi-daemon: chroot helper 0.2 0.0
3301 3245 inotifywait -m -r --exclude 0.2 0.0
5154 1 /sbin/netplugd -p /var/run/ 0.2 0.0
3302 3245 /bin/bash /usr/bin/wb-watch 0.2 0.0
20596 20460 sh -c – node index.js 0.2 0.0
314 286 /bin/bash /usr/bin/wb-watch 0.2 0.0
280 1 /bin/sh -c /usr/bin/wb-watc 0.1 0.0
313 286 inotifywait -m --event clos 0.1 0.0
2 0 [kthreadd] 0.0 0.0
6 2 [mm_percpu_wq] 0.0 0.0
7 2 [rcu_tasks_trace] 0.0 0.0
8 2 [ksoftirqd/0] 0.0 0.2
9 2 [kdevtmpfs] 0.0 0.0
10 2 [netns] 0.0 0.0
12 2 [oom_reaper] 0.0 0.0
13 2 [writeback] 0.0 0.0
14 2 [kcompactd0] 0.0 0.0
42 2 [kblockd] 0.0 0.0
43 2 [blkcg_punt_bio] 0.0 0.0
44 2 [watchdogd] 0.0 0.2
45 2 [rpciod] 0.0 0.0
46 2 [kworker/u3:0-hci0] 0.0 0.0
47 2 [xprtiod] 0.0 0.0
48 2 [kswapd0] 0.0 0.0
49 2 [nfsiod] 0.0 0.0
51 2 [hwrng] 0.0 0.0
53 2 [spi2] 0.0 0.0
88 2 [sdhci] 0.0 0.0
89 2 [irq/54-mmc0] 0.0 0.0
91 2 [ipv6_addrconf] 0.0 0.0
92 2 [kstrp] 0.0 0.0
94 2 [irq/37-imx_ther] 0.0 0.0
95 2 [mmc_complete] 0.0 0.0
97 2 [jbd2/mmcblk0p2-] 0.0 0.0
98 2 [ext4-rsv-conver] 0.0 0.0
151 2 [w1_bus_master1] 0.0 0.0
152 2 [w1_bus_master2] 0.0 0.0
179 2 [cfg80211] 0.0 0.0
181 2 [kworker/u3:2-hci0] 0.0 0.0
196 2 [jbd2/mmcblk0p6-] 0.0 0.0
197 2 [ext4-rsv-conver] 0.0 0.0
4442 2 [RTW_CMD_THREAD] 0.0 0.2
5295 2 [irq/142-wb-mqtt] 0.0 0.0
5296 2 [irq/141-wb-mqtt] 0.0 0.0
5297 2 [irq/156-wb-mqtt] 0.0 0.0
5298 2 [irq/155-wb-mqtt] 0.0 0.0
7740 2 [kworker/u2:2-events_unboun 0.0 0.4
17425 2 [kworker/0:2-events_power_e 0.0 0.3
21076 2 [kworker/u2:3-events_unboun 0.0 0.4
21269 2 [kworker/0:3-events_power_e 0.0 0.2
21294 2 [kworker/0:1H-mmc_complete] 0.0 0.0
21591 2 [kworker/u2:0-events_unboun 0.0 0.3
21647 2 [kworker/0:2H-kblockd] 0.0 0.0
21665 2 [kworker/0:0-events_power_e 0.0 0.3
21997 2 [kworker/0:0H-mmc_complete] 0.0 0.0
22147 2 [kworker/u2:1-events_unboun 0.0 0.6
22163 2 [kworker/0:1-events] 0.0 0.6

nodered запущен, но у него потребление ресурсов как вы видите небольшое

скриптов не сколько, но не очень сложных

wb-rules_20231117T163856.log (5,0 КБ)

nodered остановил …

mosquitto_20231117T164146.log (6,4 КБ)
здесь тоже ошибки

Сейчас - 20% RAM занято NR. Это какой uptime?
сравнил также процесс z2m с аптаймом ~2 суток потребляет так же, не растет.

21016 21015 node index.js               14.5  1.8

А выложите архив диагностический.

uptime где-то 5 часов был. Я смотрел в top, там тоже не растет …

архив через web интерфейс не выгружается

root@wirenboard-AHUMZKW7:~# systemctl status wb-diag-collect
● wb-diag-collect.service - one-click diagnostic data collector for Wiren Board, generating archive with data
Loaded: loaded (/lib/systemd/system/wb-diag-collect.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-11-17 09:10:39 UTC; 5h 10min ago
Main PID: 3139 (wb-diag-collect)
Tasks: 2 (limit: 1146)
Memory: 47.1M
CPU: 38.252s
CGroup: /system.slice/wb-diag-collect.service
└─3139 /usr/bin/python3 /usr/bin/wb-diag-collect -s diag_archive

Nov 17 14:13:52 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:13:52,947 [WARNING] Command mqtt-get->
Nov 17 14:17:40 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:40,454 [WARNING] No files for wild>
Nov 17 14:17:40 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:40,547 [WARNING] No files for wild>
Nov 17 14:17:40 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:40,822 [WARNING] No files for wild>
Nov 17 14:17:40 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:40,907 [WARNING] No files for wild>
Nov 17 14:17:51 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:51,191 [WARNING] Command fdtget /m>
Nov 17 14:17:57 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:17:57,182 [WARNING] Command systemctl>
Nov 17 14:18:10 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:18:10,380 [WARNING] Command emmcparm >
Nov 17 14:18:15 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:18:15,932 [WARNING] Command wb-gen-se>
Nov 17 14:18:20 wirenboard-AHUMZKW7 wb-diag-collect[3139]: 2023-11-17 14:18:20,970 [WARNING] Command mqtt-get->

может доступ по tailscale вам предоставить?

root@wirenboard-AHUMZKW7:~# wb-diag-collect diag
Start data collecting
2023-11-17 14:36:01,825 [WARNING] No files for wildcard /var/log/z-way-server.log
2023-11-17 14:36:02,015 [WARNING] No files for wildcard /var/log/mosquitto/mosquitto.log
2023-11-17 14:36:02,748 [WARNING] No files for wildcard /var/log/nginx/.log.1
2023-11-17 14:36:02,930 [WARNING] No files for wildcard /mnt/data/.wb-restore/wb-console.log
2023-11-17 14:36:10,182 [WARNING] Command fdtget /mnt/data/.wb-restore/factoryreset.fit / timestamp / description / compatible / firmware-version / firmware-compatible / release-name / release-suite / release-target / release-repo-prefix didn’t finish in 5s
2023-11-17 14:36:15,859 [WARNING] Command systemctl list-unit-files --all --output=json didn’t finish in 5s
2023-11-17 14:36:27,933 [WARNING] Command emmcparm -I /dev/mmcblk0 didn’t finish in 5s
2023-11-17 14:36:33,728 [WARNING] Command wb-gen-serial -s didn’t finish in 5s
2023-11-17 14:36:38,780 [WARNING] Command mqtt-get-dump “$SYS/#” didn’t finish in 5s
Data was collected successfully

приложен диагностический архив, доступен только сотрудникам поддержки
(156,0 КБ)

У меня не работает.

Советую выключить “persistence” в конфиге брокера и перезапустить его.