Ошибки адаптера: проблемы с установкой, запуском и производительностью.

В этой главе рассматриваются исключительно проблемы, специфичные для адаптера . Общие системные проблемы (ioBroker не запускается, блокировки базы данных, обновления Node.js) см. в разделе: ioBroker больше не работает.


1. Проблемы с установкой адаптера

Типичные сообщения об ошибках

  • npm ERR! code ENOTFOUND /ENOTEMPTY /EINTEGRITY
  • Установка прерывается или адаптер не отображается в списке.
  • Cannot install adapter несмотря на, казалось бы, правильную конфигурацию

Диагностика с помощью iob diag

Первый шаг — диагностика системы:

iob diag

Онiob diag Команда уже показывает:

  • ✅ Настройка и доступность репозитория
  • ✅ Версия ОС и ожидающие обновления
  • ✅ Версии и совместимость Node.js/NPM
  • ✅ Последние записи в журнале
  • ✅ Проблемы с правами доступа

Проверьте вывод на наличие:

  • ❌ Отсутствует список репозиториев
  • ❌ Неправильная конфигурация репозитория (последняя версия вместо стабильной)
  • ❌ Устаревшая версия Node.js
  • ❌ Ошибка NPM
  • ❌ Ошибка доступа

Решения, основанные на диагностике IOB.

В случае проблем с репозиторием:

а) Список репозиториев полностью отсутствует:

iob repo add stable http://download.iobroker.net/sources-dist.json
iob update

b) Проблемы с последними/бета-версиями адаптеров — вернитесь к стабильной версии:

# Aktuelle Repository-Konfiguration anzeigen:
iob repo list

# Latest/Beta deaktivieren, stable aktivieren:
iob repo unset beta
iob repo unset latest
iob repo set stable
iob update

Важно: После перехода с последней версии на стабильную, установленные бета-версии не будут автоматически понижены до предыдущей. Вам необходимо дождаться обновления до стабильной версии или понизить версию вручную.

iobroker upgrade <adaptername>@<stable-version>

Понимание различий между репозиториями: → См. Что такое репозиторий

Что касается проблем с версиями Node.js:
→ См. инструкции по обновлению Node.js

Что касается проблем с кэшированием npm:

# Cache-Integrität prüfen:
npm cache verify

Что это такое?npm cache verify ?

  • Проверяет целостность всех кэшированных пакетов.
  • Автоматически удаляет поврежденные или несогласованные данные кэша (сборка мусора).
  • Проверяет индекс кэша
  • Начиная с npm@5, кэш самовосстанавливается и автоматически обновляется.

Очищайте кэш полностью только в случае появления ошибок:

npm cache clean --force

⚠️ Примечание: Эта команда очистит весь кэш и должна использоваться только в случае возникновения реальных проблем с кэшем.

Установите адаптер на место без повреждений:

iobroker stop <adaptername>
iobroker del <adaptername>
rm -rf /opt/iobroker/node_modules/iobroker.<adaptername>

# Neuinstallation über Admin-Oberfläche (empfohlen)
# ODER per Konsole:
iobroker install <adaptername>

2. Проблемы с запуском адаптера

Типичные симптомы

  • В списке экземпляров адаптер остается красным/желтым.
  • Error: Cannot find module <...>
  • Адаптер кратковременно включается, а затем немедленно выключается.
  • SyntaxError: Unexpected token в файлах адаптера

Специальная диагностика адаптера

Целенаправленный анализ журналов адаптера:

# Live-Logs für spezifischen Adapter:
iobroker logs <adaptername> --watch

# Letzte 100 Zeilen:
iobroker logs <adaptername> | tail -100

Запустите адаптер в режиме отладки:

# Adapter-Instanz deaktivieren
# Dann manuell im Debug-Modus starten:
cd /opt/iobroker/node_modules/iobroker.<adaptername>
node main.js 0 --debug

Это позволяет получить значительно больше информации, чем стандартный журнал.

Возможные решения

1. Восстановите установку ioBroker:

iobroker fix

⚠️ Важно:iobroker fix Восстанавливает всю установку ioBroker, включая:

  • Права доступа к файлам для всех каталогов
  • Системные пользователи и группы
  • Зависимости и связи
  • Это всегда возможно и должно быть первым шагом при возникновении проблем.

2. Сброс настроек адаптера:

# Adapter stoppen:
iobroker stop <adaptername>

# Konfiguration in Admin-Interface überprüfen
# Oft helfen Werkseinstellungen

3. Переустановите зависимости:

cd /opt/iobroker/node_modules/iobroker.<adaptername>
npm install --production

4. Переустановка (крайняя мера):

iobroker stop <adaptername>
iobroker del <adaptername>
rm -rf /opt/iobroker/node_modules/iobroker.<adaptername>
iobroker install <adaptername>

5. Для нативных модулей после крупного обновления Node.js:

# Nur bei Major-Versionswechsel (20→22):
iobroker rebuild <adaptername>

Проблемы при запуске, связанные с оборудованием.

При использовании функции "Неожиданный токен" в сочетании с Raspberry Pi:
→ Возможно, неисправна SD-карта! См. диагностику оборудования.


3. Проблемы с производительностью адаптера

Симптомы

  • Адаптер реагирует с задержкой.
  • Высокая нагрузка на процессор из-за одного адаптера.
  • Адаптер вызывает утечки памяти.
  • Информация о состоянии дел в штатах обновляется лишь периодически.

диагноз

1. Определите потребление ресурсов отдельными адаптерами:

# Alle ioBroker-Prozesse mit Ressourcen:
top -u iobroker

# Oder detaillierter mit htop:
htop -u iobroker

2. Журналы производительности, специфичные для адаптера:

# Adapter auf "debug" Log-Level setzen
# Dann Logs beobachten:
iobroker logs <adaptername> | grep -i "slow\|timeout\|warning"

Решения

1. Оптимизируйте интервалы опроса.

В конфигурации адаптера:

  • Стандартное время: 5-10 секунд → лучшее: 30-60 секунд
  • Только короткие интервалы для действительно необходимых данных.
  • Полностью отключить ненужные объекты/состояния.

2. Снизьте уровень логарифмирования.

# In Admin → Instanzen → Adapter-Konfiguration:
# Log-Level von "debug" auf "info" oder "warn"

Журналы отладки могут создавать значительную нагрузку на производительность!

3. Настройте параметры кэширования адаптера.

Рекомендации по оптимизации производительности для конкретных адаптеров

Адаптер JavaScript/Blockly:

  • Запускайте скрипты по отдельности и отслеживайте их производительность.
  • setInterval() избегайте коротких интервалов
  • Не храните большие массивы/объекты в оперативной памяти.
  • schedule() вместо постоянного опроса общественного мнения

История/InfluxDB/SQL:

  • Регистрируйте только релевантные данные.
  • Используйте политики хранения данных (автоматическое удаление старых данных).
  • Включить агрегирование для высокочастотных данных

MQTT/Modbus/KNX:

  • Используйте фильтры подписки (не по всем темам)
  • Увеличьте интервалы переподключения.
  • По возможности снизьте уровень качества обслуживания (QoS).

Zigbee/Z-Wave:

  • Выполните оптимизацию сети.
  • Удалите ненужные устройства
  • Стратегически размещайте маршрутизаторы.

4. Распространенные проблемы, специфичные для адаптеров.

HomeMatic (hm-rpc, hm-rega)

Проблема: Соединение с блоком управления постоянно обрывается.
Решение:

  • Используйте IP-адрес вместо имени хоста.
  • Проверьте настройки брандмауэра CCU.
  • Обновить версию адаптера

JavaScript/TypeScript

Проблема: скрипты не запускаются после перезапуска.
Решение:

  • Проверьте DNS и прокси.
iobroker stop javascript
iobroker upload javascript
iobroker fix
iobroker start javascript

Зигби

Проблема:Error: Cannot open serial port /dev/ttyUSB0
Решение:

  • Проверьте права доступа к /dev/ttyUSB*
  • Тестирование USB-кабелей и флешек
  • Правильно настройте адаптер и порт.
# User zur dialout-Gruppe hinzufügen:
sudo usermod -aG dialout iobroker
sudo reboot

Backitup (Docker)

Проблема:EACCES: permission denied
Решение: См. Проблемы с резервным копированием в Docker.

MQTT

Проблема: Журналы переполнены сообщениями.
Решение:

  • В настройках: Подписаться только на релевантные темы.
  • Установите уровень логирования на «предупреждение».
  • Отключить функцию "Рекламировать собственные штаты"

ioBroker.vis

Проблема: не загружаются представления; ошибка 404 для /vis-views/. Решение:

  • Проверьте права доступа к каталогу (chown -R iobroker:iobroker /opt/iobroker/www/vis-views)
  • Очистить кэш

Передовые методы предотвращения ошибок

Перед установкой

  1. iob diag выполнить и проверить
  2. Установите для репозитория стабильную версию (а не последнюю!).
  3. Ознакомьтесь с файлом readme адаптера и известными проблемами.
  4. Поищите на форуме актуальные проблемы.
  5. Создайте резервную копию:iob backup

После установки

  1. Журналы монитора адаптера:iobroker logs <adapter> --watch
  2. Проверить потребление ресурсов:top -u iobroker
  3. Настройте параметры шаг за шагом.
  4. Дополнительные адаптеры следует устанавливать только после стабилизации системы.

Во время обновлений

  1. Ознакомьтесь с журналом изменений адаптера.
  2. Для важных обновлений сначала протестируйте их в тестовой системе.
  3. Перед обновлением создайте резервную копию.
  4. Проверьте журналы обновлений.

Важные инструкции

Всегда делайте:

  • Установите адаптер через административный интерфейс.
  • В случае возникновения проблем сначалаiob diag выполнять
  • Установите для производственных систем стабильный репозиторий.
  • iobroker fix выполнить в случае возникновения проблем
  • Вместо того чтобы экспериментировать вслепую, лучше изучите логи адаптера.
  • Найдите решения в разделе "Проблемы" на GitHub.

Никогда этого не делайте:

  • Установите адаптер навсегда из GitHub.
  • Сsudo работа до выполнения команд ioBroker
  • Решайте сразу несколько проблем
  • Тестовые адаптеры в рабочей системе находятся в ветке Beta/Latest.
  • Создание нескольких экземпляров для повышения производительности (только увеличивает потребление оперативной памяти)

При возникновении дальнейших проблем: создайте тему на форуме с полной информацией.iob diag -Выходные и адаптерные журналы.