Client wb-adc disconnected due to out of memory

Можно поднять лимиты: Mosquitto - Out of memory, отчего падает и не поднимается z2m - #30 от пользователя fedd
Ну и да, комбинировать с презапуском по крону - тоже.
Для полноты диагностики - примените пожалуйста

log.info("ramLog: запуск");

function makeNewVirtualControl(vdName, nameControl, typeControl) {
  // Создаём только если его ещё нет — иначе defineVirtualDevice даст исключение
  // "Device with given ID already exists".
  if (getDevice(vdName) === undefined) {
    log.info("Создаём виртуальное устройство {}", vdName);
    defineVirtualDevice(vdName, {
      title: vdName,
      cells: {}
    });
  } else {
    log.debug("Устройство {} уже существует, пропускаем создание", vdName);
  }

  var vdev = getDevice(vdName);
  if (vdev && !vdev.isControlExists(nameControl)) {
    log.debug("Контрола {} нет, создаем.", nameControl);
    vdev.addControl(nameControl, typeControl);
  }
}

var RAM_VDEV_NAME = "ramLog";
var RAM_CONTROL_NAME = "occupedMosquittoRAM";

makeNewVirtualControl(RAM_VDEV_NAME, RAM_CONTROL_NAME, {
  type: "value",
  value: 0,
  units: "kB",
  readonly: true,
  forceDefault: false
});

function updateWbMosquittoRamUsage() {
  // Суммируем RSS (kB) для всех процессов.
  runShellCommand("ps -C mosquitto -o rss= | awk '{sum+=$1} END {print (sum ? sum : 0)}'", {
    captureOutput: true,
    exitCallback: function (exitCode, capturedOutput) {
      if (exitCode !== 0) {
        log.warning("ramLog: команда завершилась с кодом {}", exitCode);
        return;
      }

      var value = parseInt(String(capturedOutput).trim(), 10);
      if (isNaN(value)) {
        log.warning("ramLog: не удалось разобрать значение RAM из '{}'", capturedOutput);
        return;
      }

      dev[RAM_VDEV_NAME + "/" + RAM_CONTROL_NAME] = value;
      log.debug("ramLog: RSS = {} kB", value);
    }
  });
}

// Первичное обновление при старте скрипта.
updateWbMosquittoRamUsage();

// Обновление каждую минуту.
setInterval(function () {
  updateWbMosquittoRamUsage();
}, 60 * 1000);