NEWS
Cannot start <adapter>.0 in compact mode
-
Ich möchte meinen neuen e3dc-rscp Adapter wie empfohlen im Compact Mode testen, habe diesen also eingeschaltet mit
iobroker compact enable iobroker compact e3dc-rscp.0 enable iobroker compact e3dc-rscp.0 status Adapter supports compact mode : true Compact mode enabled for instance: --> true Compact group: 1 Instance settings for "e3dc-rscp.0" are changed.
So weit sieht alles gut aus, auch im Admin-GUI erscheint die compactgroup, aber im Protokoll
HOST.xxx.compactgroup1
sehe ichCannot start e3dc-rscp.0 in compact mode. Fallback to normal start! : ENOENT: no such file or directory, open './admin/words.js'
Die Datei
./admin/words.js
ist im Adapterverzeichnis vorhanden, die I18N funktioniert auch.Ich teste in einem lokalen ioBroker unter Windows, habe es aber auch auf einem Linux-Host versucht, mit dem selben Ergebnis. Deshalb vermute ich, dass es an meinem Adapter liegt, hier ist der Code.
Hat jemand einen Tipp, wie ich dem Fehler auf die Spur kommen kann? Danke!
-
@ujok sagte in Cannot start <adapter>.0 in compact mode:
'./admin/words.js'
Das Problem ist das du hier relativ eine Datei lädst. Das hängt damit vom "Arbeitsverzeichnis" des Skripts ab was gestartet wird und kann daher anders sein. Das geht bei "require" weil alle requires immer relativ zum "aktuellen File" ausgeführt werden ...
Also nutze __dirname um das Verzeichnis des aktuellen Files zu kriegen und damit sollte es dann gehen
-
@apollon77: ja genau, perfekt, danke!
Ich habe also
readFileSync("./admin/words.js")
ersetzt durch
readFileSync(`${__dirname}/admin/words.js`)
Jetzt ist alles i.O.
-
@ujok Wie gessgt formal lkorrekt wäre "path.join(...)" aber ja das obige ist funktional
-
@apollon77 said in Cannot start <adapter>.0 in compact mode:
@ujok Wie gessgt formal lkorrekt wäre "path.join(...)" aber ja das obige ist funktional
OK, habe noch auf path.join() geändert - wenn man schon mal dabei ist...