NEWS
[gelöst] Adapter „JavaScript“ zerschießt ioBroker
-
Hallo Zusammen,
kurz zu meinem aktuellen Softwarestand:
js-Controller: 3.2.16
NodeJS-Version: 12.21.0
Betriebssystem/Hardware: Windows 10 ProIch habe folgendes Problem: Ich würde gerne den Adapter „JavaScript“ auf meinem ioBroker installieren. Mein ioBroker läuft soweit ganz gut. Nun suche ich mir in der Adapter-Liste den Adapter „JavaScript“ und wähle das Hinzufügen/Installieren-Smybol. Es dauert nun ca. 2-3 Minuten und dann erscheint folgende Meldung:
Während der Installation konnte ich erkennen, dass der Ordner iobroker.js-controller aus dem Ordner node_moduls gelöscht wird.
Könnt ihr mir sagen, was hier das Problem ist?
Vielen Dank vorab?
-
Wer glaubst du kann auf dem verwackelten Handybildchen irgendwas erkennen?
Texte als Text in CodeTags hier ins Forum.
-
Sorry, hier die Ausgabe:
$ ./iobroker add javascript --host ioBroker(Tillig) NPM version: 6.14.11 npm install iobroker.javascript@5.0.14 --loglevel error (System call) host.ioBroker(Tillig) install adapter javascript ERROR: Uncaught Rejection: Error: Cannot find module 'mime'Require stack:- D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupUpload.js- D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupInstall.js- D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup.js- D:\iobroker\Tillig\node_modules\iobroker.js-controller\iobroker.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Upload.uploadAdapter (D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:525:24) at Install.installAdapter (D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupInstall.js:782:20) at D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup.js:718:33 at D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupInstall.js:223:55 at ChildProcess.<anonymous> (D:\iobroker\Tillig\node_modules\iobroker.js-controller\lib\setup\setupInstall.js:481:47) at ChildProcess.emit (events.js:314:20) ERROR: process exited with code 6
MOD-Edit: Code in code-tags gesetzt!
-
Wenn ich nach der fehlgeschlagenen Installation des Adapters "JavaScript" in den Ordner "node_modules" gehe, gibt es dort den Ordner "iobroker.js-controller" nicht mehr. Vor der Installation gab es ihn noch. Die Web-Oberfläche des ioBrokers lässt sich jetzt noch halbwegs bedienen (im aktiven Browserfenster, schließe ich das Browserfenster und öffne es erneut, erscheint: "Cannot GET /"). Sobald ich den ioBroker aber neustarte, ist es vorbei. Wenn ich bspw. den Status mit "iobroker status" abfrage, erscheint folgende Meldung in der CMD:
internal/modules/cjs/loader.js:818
throw err;
^Error: Cannot find module 'D:\iobroker\Tillig\node_modules\iobroker.js-controller\iobroker.js' [90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)[39m [90m at Function.Module._load (internal/modules/cjs/loader.js:667:27)[39m [90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)[39m [90m at internal/main/run_main_module.js:17:47[39m { code: [32m'MODULE_NOT_FOUND'[39m, requireStack: [] }
MOD-Edit: Code in code-tags gesetzt!
Vermutlich weil der Ordner "iobroker.js-controller" fehlt. Jetzt hilft bei mir leider nur noch die Neuinstallation. Leider habe ich das Ganze schon fünf Mal probiert. Also fünf Mal schon sauber installiert und dann versucht den "JavaScript"-Adapter hinzuzufügen, jedes Mal kam aber die gleiche Fehlermeldung. Bevor ich den JavaScript-Adapter installieren wollte, habe ich das System upgedatet. Also folgende Versionen laufen bei mir, bevor ich den JavaScript-Adapter installieren möchte:
Node.js v12.21.0
NPM 6.14.11
js-controller 3.2.16
Installierte Adapter:
admin 4.2.1
discovery 2.5.0
info 1.7.14Der JavaScript-Adapter den ich installieren möchten, hat die Version 5.0.14
-
Habe auch eine Win10 basierte Installation.
Habe jetzt gerade den JS-Adapter auf die neue 5er Version upgedatet.
Das scheint bei mir noch immer zu funktionieren. Und das obwohl ich noch eine alte Node.js v10.17.0 habe.Wie bist Du zu Deiner Installation gekommen?
Manuell oder mit dem Installer?
Für den Installer braucht es einen fix, wenn man updated. Ich hab mir dazu notiert:
Für ein Backup: Pausieren aller Instanzen außer Admin. Da es gerade Probs mit dem ioBroker Installer von @Stabilostick gibt, wird das Backup des iobroker-data Adapters gemacht und vorgehen nach AlCalzone https://forum.iobroker.net/post/446928
Update würde ich folgendes Vorgehen vorschlagen, könnt ihr das bitte testen?
· data-Ordner sichern
· Frische Installation mit dem alten Installer aufsetzen
· Nichts weiter tun!
· ioBroker-Konsole der neuen Installation auf:
o iobroker stop
o npm i iobroker.js-controller@stable --ignore-scripts
o data-Ordner wieder rein kopieren
o iobroker start
Edit: @Stabilostick empfiehlt --ignore-scripts -
ioBroker selbst habe ich über das offizielle Windows-Setup installiert (https://www.iobroker.net/#de/download).
Nachdem die Installation fertig war, habe ich begonnen die vorinstallierten drei Adapter auf die aktuelle Version upzudaten (über die Web-Oberfläche von ioBroker).
Nachdem die Updates alle durch waren (drei Stück), habe ich den js-Controller upgedatet:
iobroker stop
iobroker status
iobroker update
iobroker upgrade selfBisher hat alles gut geklappt. Nun stand noch das Update von Node.js an. Das habe ich nach folgender Anleitung gemacht: https://forum.iobroker.net/topic/27828/node-js-update-unter-windows/6
Nach dem Start stand auf der ioBroker-Seite auch die richtige neue Node.js-Version. Und nun wollte ich den JavaScript-Adapter installieren.
Den Fix benötige ich ja nicht, oder?
-
Nach unzähligen Versuchen habe ich nun folgendes herausgefunden:
Das Problem liegt vermutlich am neuen js-Controller. Ich habe mir den ioBroker auf einer Windows-VM installiert und nach jedem Schritt einen Snapshot gemacht. Nach der Installation von ioBroker sind weitere Adapter installierbar.
Die drei Updates der vorinstallierten Updates machten auch keine Probleme. Als ich dann jedoch den js-Controller auf 3.2.16 upgedatet habe, habe ich keinen neuen Adapter mehr installieren können (sowohl JavaScript wie auch andere Adapter nicht). Ich habe dann den vorherigen Snapshot wiederhergestellt und dort die Installation von JavaScript-Adapter probiert. Hat leider nicht geklappt, da js-Controller 2.2.x Vorraussetzung ist. Ich habe dann den js-Controller auf die aktuellste 2.x.x-Version (2.2.10) upgedatet. Danach ließ sich der JavaScript-Adapter und auch weitere Adapter problemlos installieren.@klassisch Welche Version des js-Controllers läuft bei dir?
-
Hast du LogFiles zur Hand?
-
@magnus-0 sagte in Adapter „JavaScript“ zerschießt ioBroker:
ioBroker selbst habe ich über das offizielle Windows-Setup installiert (https://www.iobroker.net/#de/download).
Wenn Du den Installer benutzt hast, dann das update von nodejs durchführen wie in meinem Link von oben durch AlCalzone beschrieben, https://forum.iobroker.net/post/446928 .
Danach läßt sich der js-controller updaten wie dort https://forum.iobroker.net/topic/42385/js-controller-3-2-jetzt-im-stable im Eingangspost beschrieben
So habe ich es bei meinem Windows ioBroker gemacht und der läuft gut.
Bei mir läuft der aktuelle stable
Typ: js-controller 3.2.16Also;
- Installation durch Installer
- node update mit dem woraround von AlCalzone
- Update controller wie obern beschrieben
Wenn man mit dem Installer installiert hat, dann Windows Symbol drücken und in der Zeile unten iobroker eingeben
dann die angebotene Kommandozeile öffnen.
darin die beschriebenen Kommandos ausführen -
Kurzes Update zu diesem Thema:
Ich glaube der Fehler war ein Fehler von mir. Ich habe mittlerweile mehrere ioBroker-Systeme am Laufen und der Fehler ist kein einziges Mal mehr aufgetreten.
Sollte jemand anders doch dieses Problem auch mal noch haben, kann er ja hier antworten.