Home » Allgemein » ioBroker » Auf der Kommandozeile einen ioBroker Adapter debuggen

Auf der Kommandozeile einen ioBroker Adapter debuggen

Veröffentlicht in: ioBroker 0

Es kommt vor dass ein Adapter Probleme bereitet. Meistens findet man Hinweise auf die Ursache im Logfile der ioBroker Admin Oberfläche. Manchmal ist das aber nicht ausreichend bzw. man findet keinen Anhaltspunkt für einen Fehler. Dann hilft es den Adapter unter Instanzen in den Debug Modus zu versetzen und nochmals ins Logfile zu schauen. Hilft das auch nicht weiter, ist es ratsam den Adapter in einem Terminalfenster im Debug Modus zu starten. Hier erhält man noch weitreichendere Informationen die bei der Fehlerfindung helfen.

Hierfür ist die Instanz des fehlerhaften Adapters in ioBroker zu deaktivieren. Anschließend öffnet man ein Terminalfenster und wechselt in das Verzeichnis des Adapters. Suche in dem Adapterverzeichnis nach der Datei index.js . Falls es diese nicht gibt, wird es eine Datei mit Namen des Adapter mit der Endung .js geben. Zum Beispiel ist der Dateiname für den Shelly Adapter shelly.js

cd /opt/iobroker/node_modules/iobroker.<adataper_name>
node index.js|<adapter_name>.js <instanz> --debug

Ein Beispiel für den Shelly Adapter der unter der Instanz 0 läuft. Denke daran die Shelly Instanz 0 in ioBroker vorher zu deaktivieren.

cd /opt/iobroker/node_modules/iobroker.shelly
node shelly.js 0 --debug

Die Ausgabe sieht dann folgendermaßen aus:

macbook:iobroker.shelly thorsten.stueben$ node shelly.js 0 --debug
2020-06-29 07:56:07.521  - debug: shelly.0 (22068) Redis Objects: Use Redis connection: 127.0.0.1:9001
2020-06-29 07:56:07.535  - debug: shelly.0 (22068) Objects client ready ... initialize now
2020-06-29 07:56:07.538  - debug: shelly.0 (22068) Objects create System PubSub Client
2020-06-29 07:56:07.538  - debug: shelly.0 (22068) Objects create User PubSub Client
2020-06-29 07:56:07.539  - debug: shelly.0 (22068) Objects client initialize lua scripts
2020-06-29 07:56:07.544  - debug: shelly.0 (22068) Objects connected to redis: 127.0.0.1:9001
2020-06-29 07:56:07.547  - debug: shelly.0 (22068) objectDB connected
2020-06-29 07:56:07.548  - debug: shelly.0 (22068) Redis States: Use Redis connection: 127.0.0.1:9000
2020-06-29 07:56:07.556  - debug: shelly.0 (22068) States create User PubSub Client
2020-06-29 07:56:07.557  - debug: shelly.0 (22068) States create System PubSub Client
2020-06-29 07:56:07.564  - debug: shelly.0 (22068) States connected to redis: 127.0.0.1:9000
2020-06-29 07:56:07.567  - debug: shelly.0 (22068) statesDB connected
2020-06-29 07:56:07.692  - debug: shelly.0 (22068) Plugin sentry Initialize Plugin (enabled=true)
2020-06-29 07:56:07.779  - error: shelly.0 (22068) adapter disabled
2020-06-29 07:56:07.834  - info: shelly.0 (22068) starting. Version 3.3.4 in /usr/local/iobroker/node_modules/iobroker.shelly, node: v12.16.3, js-controller: 3.1.6
2020-06-29 07:56:07.849  - error: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
2020-06-29 07:56:07.850  - error: shelly.0 (22068) unhandled promise rejection: adapter.log.ianfo is not a function
2020-06-29 07:56:07.855  - error: shelly.0 (22068) TypeError: adapter.log.ianfo is not a function
    at Adapter.<anonymous> (/usr/local/iobroker/iobroker.shelly/shelly.js:89:17)
    at Adapter.emit (events.js:310:20)
    at Adapter.EventEmitter.emit (domain.js:482:12)
    at /usr/local/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:8148:34
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
2020-06-29 07:56:07.856  - info: shelly.0 (22068) Closing Adapter
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
TypeError: adapter.log.ianfo is not a function
    at Adapter.<anonymous> (/usr/local/iobroker/iobroker.shelly/shelly.js:89:17)
    at Adapter.emit (events.js:310:20)
    at Adapter.EventEmitter.emit (domain.js:482:12)
    at /usr/local/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:8148:34
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
2020-06-29 07:56:07.940  - info: shelly.0 (22068) terminating
2020-06-29 07:56:07.941  - debug: shelly.0 (22068) Plugin sentry destroyed
2020-06-29 07:56:07.941  - info: shelly.0 (22068) Terminated (NO_ERROR): Without reason

Kommentar verfassen