NEWS
[How-to] Node.js für ioBroker richtig updaten
-
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian/2
OK Danke probiere ich mal.
Das hier spuckt er aus wenn ich oben das mache was du geschrieben hattest.iobroker@iobroker:~$ sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null iobroker@iobroker:~$ uname -m && type -P nodejs node npm npx && nodejs -v && node -v && npm -v && npx -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs x86_64 /usr/bin/nodejs /usr/local/bin/node /usr/local/bin/npm /usr/local/bin/npx v18.16.0 v16.19.0 8.19.3 8.19.3 4.0.24 iobroker iobroker tty dialout audio video tty /home/iobroker Hit:1 http://ftp.debian.org/debian bullseye InRelease Hit:2 http://security.debian.org bullseye-security InRelease Hit:3 http://ftp.debian.org/debian bullseye-updates InRelease Hit:4 https://deb.nodesource.com/node_18.x bullseye InRelease Hit:5 https://dl.yarnpkg.com/debian stable InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. nodejs: Installed: 18.16.0-deb-1nodesource1 Candidate: 18.16.0-deb-1nodesource1 Version table: *** 18.16.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main amd64 Packages 100 /var/lib/dpkg/status 12.22.12~dfsg-1~deb11u3 500 500 http://security.debian.org bullseye-security/main amd64 Packages 12.22.5~dfsg-2~11u1 500 500 http://ftp.debian.org/debian bullseye/main amd64 Packages iobroker@iobroker:~$Wie vorhergesagt: Falsche Pfade.
v16.19.0 hast du also irgendwie am Paketmanager vorbei in das System geschraubt. -
Wie vorhergesagt: Falsche Pfade.
v16.19.0 hast du also irgendwie am Paketmanager vorbei in das System geschraubt.Hi Danke für Eure Hilfe. Habe es nach der Anleitung hinbekommen, habe die Ordner wie in Anleitung gelöscht und danach gings

Aber keine Ahnung wieso da was falsch war.
Ich mache eig. immer nach der Anleitung die Updates.
Aber egal, funktioniert wieder, Danke
-
Hi Danke für Eure Hilfe. Habe es nach der Anleitung hinbekommen, habe die Ordner wie in Anleitung gelöscht und danach gings

Aber keine Ahnung wieso da was falsch war.
Ich mache eig. immer nach der Anleitung die Updates.
Aber egal, funktioniert wieder, Danke
@atifan sagte in [How-to] Node.js für ioBroker richtig updaten:
Aber keine Ahnung wieso da was falsch war.
Weil die v16.19.0 von dir irgendwie anders draufgeklatscht worden ist.
Eine ordentliche Installation über deinen Paketmanager landet nicht in /usr/local/bin -
Hi Danke für Eure Hilfe. Habe es nach der Anleitung hinbekommen, habe die Ordner wie in Anleitung gelöscht und danach gings

Aber keine Ahnung wieso da was falsch war.
Ich mache eig. immer nach der Anleitung die Updates.
Aber egal, funktioniert wieder, Danke
-
======================= SUMMARY ======================= v.2023-04-16 Operatingsystem: Debian GNU/Linux 11 (bullseye) Kernel: 5.15.104-1-pve Installation: lxc Timezone: Europe/Berlin (CEST, +0200) User-ID: 1000 X-Server: false Boot Target: graphical.target Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.16.0 /usr/bin/node v18.16.0 /usr/bin/npm 9.5.1 /usr/bin/npx 9.5.1 Recommended versions are nodejs 18.x.y and npm 9.x.y Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 4.1G 2.4G 1.2G 0.0K 549M 1.7G Swap: 0B 0B 0B Total: 4.1G 2.4G 1.2G Active iob-Instances: 36 Active repo(s): beta ioBroker Core: js-controller 4.0.24 admin 6.4.3 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 14041 States: 18902 Size of iob-Database: 19M /opt/iobroker/iobroker-data/objects.jsonl 11M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ==================== -
MOD-EDIT: Dieser Thread und insbesondere diese Anleitung ist von 2019 und somit veraltet
aktuell ist
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian
Update März 2023: Die aktuelle Anleitung findet ihr hier : https://forum.iobroker.net/topic/64032/update-nodejs-best-practise-supported-14-16-und-18
1. Einleitung
Node.js ist die Laufzeitumgebung der Programmiersprache JavaScript, in der ioBroker geschrieben ist. Ohne Node.js funktioniert ioBroker nicht.
Wie bei vielen Open-Source-Technologien üblich, entwickelt sich Node.js schnell weiter. Kleinere Updates, die die Stabilität und Sicherheit steigern oder gar neue Funktionen hinzufügen, erscheinen fast wöchentlich.
Node.js-Versionen mit gerader Hauptversionsnummer werden als LTS-Versionen (Long Term Support) bezeichnet und einige Jahre gepflegt (z.B. 8.x). In 2017 war das Node.js 8, 2018 kam Node.js 10, dann 12.x hinzu und im Oktober 2021 wird Node.js 14 den LTS-Status erhalten.
Im gleichem Zug erreichen frühere LTS-Versionen ihr Lebensende (EOL, End of Life). So hat Node.js 6 im April 2019 den EOL-Status erhalten und bekommt damit keine Updates mehr, Nodejs 8.x ist seit November 2019 raus.
Alle Node.js-Versionen mit ungeraden Versionsnummern sind Entwicklungsversionen und sollten nicht produktiv genutzt werden.
Auch ioBroker wird stetig weiterentwickelt und nutzt die neuen Funktionen aktueller Node.js-Versionen. Obwohl der ioBroker js-controller mit Versionen 1.4.x bzw. 1.5.x noch Node.js 4 unterstützt, fordern neue Adapter immer häufiger mindestens Node.js 8 als Grundvoraussetzung.
Ab der Version 2.0 des js-controllers (das Freigabedatum ist noch nicht bekannt) sind die Anpassungen so tiefgreifend, dass die Node.js-Versionen 4 und 6 nicht mehr unterstützt werden können.
Ab Version 3.0/3.1 vom Controller, der gerade (Stand 24.4.2020) im Latest Repository ist, wird Nodejs 10.x Minimum sein.
Alle paar Jahre steht also für eine ioBroker-Installation ein Update von Node.js an. Dieser Artikel soll zusammenfassen wir man dazu am besten vorgeht.
2. Wer sollte updaten?
Aktuell empfehlen wir, bei ioBroker-Neuinstallationen mindestens Node.js 10, besser noch 12.x. zu verwenden. Es sind wenige Adapter bekannt, die nicht mit Node 10/12 funktionieren: Details dazu in https://forum.iobroker.net/topic/30561/status-iobroker-und-node-js-12-x
Windows-Anwendern empfehlen wir, auf jeden Fall am Test des neuen Windows-Installers teilzunehmen: https://forum.iobroker.net/post/266623
Der zukünftige Windows-Installer für ioBroker wird eine Funktion erhalten, bestehende Installationen automatisch auf aktuelle js-controller- und Node.js-Versionen zu migrieren, ohne dass man die Kommandozeile bemühen muss.Bevor man beginnt, sollte man in der Befehlszeile mit dem Befehl
node -vüberprüfen, welche Version von Node.js gerade installiert ist. Eine gute Idee ist es, diese Versionsangabe auch mit der Node.js-Version im Übersichts-Fenster des ioBroker-Admins für diesen Host zu vergleichen. Sollten sich die Versionen unterscheiden, sind mehrere Node.js-Varianten installiert, was zu Problemen führen kann.
Grundsätzlich gilt: Sollte das ioBroker-System stabil laufen, muss Node.js auch nicht auf Gedeih und Verderb upgedated werden. Wenn aber die Installation bestimmter Adapter fehlschlägt (wohlmöglich sogar mit entsprechender Fehlermeldung) oder eine Node-Version < 4 für einen js-controller > Version 1.4.x eingesetzt wird, sollte über ein Node.js-Update nachgedacht werden. Es sind auch Probleme für die Node.js-Versionen 8.0 - 8.12 mit volllaufendem RAM bekannt, so dass wir auch hier ein Update empfehlen.
Wie bereits gesagt: Sollte das ioBroker-System stabil laufen und ist die Installation technisch nicht gefordert, muss Node.js auch nicht auf Gedeih und Verderb upgedated werden.
3. Was sollte ich vor dem Update tun?
Hinweis: Falls die Version des js-controllers <= 1.5.12 ist, muss VOR dem Update in den Einstellungen der Admin-Instanz
"Verschlüsselung (https) benutzen"ausgeschaltet werden. Das in ioBroker bis dahin integrierte Zertifikat kann zu Problemen beim Starten des Admin bei Node.js-Versionen >= 10 führen.Damit es nach dem Update zu keinen Inkompatibilitäten oder Probleme kommt sollte man alle Adapter prüfen und aktualisieren. Vor allem Adapter mit nativen Bestandteilen, wie alles mit Serialport oder Bluetooth können Probleme bereiten. Hier am besten die Adapter-Readme's per Admin oder im GitHub prüfen, ob neue Versionen zur Verfügung stehen die die geplante Node.js Version explizit erst unterstützen. Auch wenn diese Versionen ggf. noch im "Latest" Repository sind muss man diese vorher aktualisieren. Alternativ wartet man mit der ganzen Update-Aktion bis die neuen Versionen im "Stable" Repository sind, schreibt den Entwickler dazu an oder fragt im Forum nach.
Wenn man diesen Schritt nicht durchführt kann es zu unnötigen Problemen beim update der Adapter kommen!
4. Step-by-step-Anleitung für Unix-Systeme
-
Zuerst muss natürlich unbedingt ein Backup erstellt werden. Dazu kann z.B. der BackItUp-Adapter genutzt oder der Kommandozeilenbefehl
cd /opt/iobroker iobroker backupausgeführt werden. Das Backup sollte aktuell sein, damit möglichst keine Daten verloren gehen.
-
Anschließend ioBroker stoppen, damit Updates keine Nebeneffekte oder Abstürze verursachen.
iobroker stopBitte anschließend im Webbrowser prüfen, dass der ioBroker-Admin danach wirklich nicht mehr startet. Sollte er weiterhin aufrufbar sein, dann den Rechner neu starten und nochmals „iobroker stop“ ausführen und erneut testen. Für die Techniker unter uns: Man kann auch mit einem Tool wie "top" prüfen, ob noch Prozesse existieren, die mit "io." beginnen. Die dann mit einem beherzten "sudo kill -9 <ProzessID>" zwangsbeenden.
-
Jetzt aktualisiert man Node.js auf die gewünschte neue Version.
Unter Linux reicht es, dazu den Nodesource-Installationsbefehl für das jeweilige Betriebssystem auszuführen. Verschiedene Varianten sind unter https://github.com/nodesource/distributions#debinstall gelistet.
Zum Beispiel lauten die Befehle für einen Raspberry Pi der ein Debian bzw. Raspbian-Image verwendet wie folgt, wenn man nicht als root-User (z.B. richtig mit dem User "pi") angemeldet ist:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs
Für nodejs 12 einfach in der URL oben anstelle der 10 eine 12 reinpacken.
Für macOS gibt einen Installer auf https://nodejs.org/en/download/ , den man einfach ausführt.
Ob die Aktualisierung geklappt hat, kann man wieder mit dem Befehl
node -vüberprüfen.
-
Da die Installation von Node.js einige Einstellungen am System verändert haben kann, ist es jetzt ratsam, den ioBroker-Installationsfixer aufzurufen. Das geschieht mit dem Befehl
curl -sL https://iobroker.net/fix.sh | bash -Er stellt unter anderem die für den Betrieb von ioBroker notwendigen Sicherheitseinstellungen wieder her.
-
Bei einer Aktualisierung von Node.js müssen bereits installierte JavaScript- Module im ioBroker-Ordner aktualisiert werden, da sonst Fehler bei deren Ausführung auftreten.
Um diese zu aktualisieren gibt es mehrere Möglichkeiten:
a) ab js-controller 3.0: Automatischer Rebuild
ioBroker versucht seit dem js-controller 3.0 automatisch Adapter zu erkennen die nicht starten weil Sie aktualisiert werden müssen. Dies funktioniert so das die typischen Fehlermeldungen erkannt werden und ioBroker dann die Aktualisierung versucht. Zuerst wird ein "rebuild" des betroffenen Adapters ausgeführt, falls das nicht hilft werden die Adapter-Abhängigkeiten aktualisiert. Daher kann es sein das der Adapter mehrfach ersucht wird neu zu starten. Hier bitte Geduld haben!
Bei einigen Adaptern (zB iot die optionale native Abhängigkeiten haben) funktioniert die automatische Erkennung nicht und das rebuild muss manuell angestoßen werden. Hier zu gibt esiobroker rebuild adapternameund falls das nicht reichtiobroker rebuild adaptername --install. Das einfach manuell ausführen. Damit sollte alles idealerweise automatisiert erledigt sein. Falls hie rirgendetwas gar nicht geht dann helfen die weiteren Optionen.b) npm rebuild
Der erste Versuch sollte immer mit dem Befehl "npm rebuild" im ioBroker Verzeichnis stattfinden, weil dies am saubersten funktioniert und direkt von der Paketverwaltung ausgeführt wird. Im Idealfall dauert das ein paar Minuten und es könnten ein paar Warnungen gelistet werden.
Falls es aber Fehler gibt, werden wir zusammen versuchen im nächsten Post alle bekannten Fälle mit Ihren Lösungsansätzen zu sammeln. Wenn das funktioniert ist dies der schnellste und sauberste Weg.c) reinstall-Skript
Sollte das nicht klappen, beinhaltet der js-Controller ein reinstall-Skript ("reinstall.sh" bzw. ab js-controller 1.5.x "reinstall.js"). Dieses Skript erkennt alle installierten ioBroker-Adapter, löscht diese dann aus dem node_modules-Verzeichnis und installiert sie neu. Dieser Ansatz ist etwas aufwändiger als "npm rebuild", erfüllt aber den gleichen Zweck. Das funktioniert generell gut, man sollte den Prozess aber nicht abbrechen. Falls es doch passiert oder es Probleme beim Starten nach dieser Prozedur gibt, dann am besten den Weg im nächsten Punkt wählen.
Das reinstall.sh-Skript welches im js-controller 1.4 mitgeliefert wurde hat ein Formatierungsproblem und muss vorher noch für Linux mit den Befehlencd /opt/iobroker sudo mv reinstall.sh reinstall.dos sudo tr -d '\r' < reinstall.dos > reinstall.sh sudo chmod +x reinstall.shkorrigiert werden, damit es funktioniert.
d) Reset aller Module in node_modules
Eine weitere Variante, die gründlich ist, aber etwas Zeit kostet, ist der Ansatz einfach alles Alte unter Beibehaltung der Daten und Einstellungen neu zu installieren. Wichtig ist, das iobroker-data Verzeichnis nicht zu verändern. Häufig können mit dieser Vorgehensweise auch andere (verborgene) Installationsfehler repariert werden.Dazu löscht man zuerst das gesamte node_modules Verzeichnis im ioBroker-Verzeichnis.
cd /opt/iobroker sudo rm -r node_modules/Nachdem der Befehl abgesetzt wurde, fragt das Programm, ob in den Ordner "hinabgestiegen" werden soll (sofern es ein tieferer Unterordner ist) und ob der (schreibgeschützte) Ordner wirklich gelöscht werden soll - beides bestätigt man mit "Ja" (j) oder "Yes" (y).
Danach installiert man den Controller in der relevanten Version (hier z.B. 2.2.8 der zum Zeitpunkt des Schreibens die aktuelle "Stable"-Version ist):
npm install iobroker.js-controller@2.2.8 --productionAnschließend startet man ioBroker.
iobroker startioBroker wird korrekterweise feststellen, dass die Adapter, die er starten will, nicht installiert sind - und diese einfach automatisch nachinstallieren. Je nach System kann dies einige Zeit dauern - gern auch ein paar Stunden (oder bei langsamen SD-Karten die ganze Nacht). Aber danach ist alles aktualisiert. Der Installationsfortschritt ist im Admin im Log-Fenster zu sehen.
Zu beachten ist, dass Adapter, die man manuell von GitHub installiert hat, den Fehler
Can not parse null/io-package.json:Error: ENOENT: no suche file or directory ...im ioBroker-Log erzeugen.
Diese Adapter nach Abschluss der automatischen Installationssequenz wie gehabt über das Adapterfenster manuell von GitHub nachinstallieren und nach der Installation die bestehende diesbezügliche Instanz von Hand starten.Ratsam ist es auch, im Log nach der Installation nach dem Wort
yourselfzu suchen. Hier werden ggf. npm-Module angezeigt, die nicht automatisch installiert wurden. Sie können/sollten manuell über die Kommandozeile mitnpm i <Packetname>@<version>, ausgeführt im iobroker-Ordner, nachinstalliert werden. Dazu zuerst den ioBroker stoppen, npm ausführen und dann den ioBroker wieder starten.Wenn man dabei npm als root-User per Hand in der Kommandozeile ausgeführt hat, schlage ich zur Korrektur eventueller Berechtigungsfehler vor, vor dem Start von ioBroker das Fixerscript laufen zu lassen.
cd /opt/iobroker iobroker stop npm i <Packetname>@<version> curl -sL https://iobroker.net/fix.sh | bash - iobroker starte) Neuinstallation mit Restore
Eine kleine Abwandlung der letzten Variante ist eine Neuinstallation. Hierbei sichert man das "iobroker-data" Verzeichnis (oder nutzt das Backup von oben). Dann löscht man das gesamte ioBroker-Verzeichnis und nutzt den Installer.cp -r /opt/iobroker/iobroker-data <Pfad_zum_sicheren_Ort> sudo rm -r /opt/iobroker/ sudo mkdir /opt/iobroker cd /opt/iobroker curl -sL https://iobroker.net/install.sh | bash -Direkt danach stoppt man ioBroker wieder (der ja nach der Installation automatisch gestartet wird).
iobroker stopDann löscht man den neu erstellen „iobroker-data“- Ordner und kopiert anschließend das gesicherte alte „iobroker-data“-Verzeichnis mit den darin enthaltenen Datenbanken und Dateien dorthin zurück.
rm -r /opt/iobroker/iobroker-data cp -r <Pfad_zum_sicheren_Ort> /opt/iobroker/iobroker-dataAnschließend wieder ioBroker starten. Der Rest läuft dann wie bei c) und dauert seine Zeit.
5. Zu guter Letzt
Bitte gebt euer Feedback, was bei euch wie gut funktioniert, was ihr immer nutzt und was die Probleme und eure Lösungen sind.
Viele Grüße,
apollon77
stabilostickIch habe nach der Ausführung der Anleitung leider mein iobroker zerlegt und erreiche diesen nicht mehr.
Bedauerlicherweise bin ich nicht so der Liebhaber Putty und Co.
Ich habe folgende Meldung:
pi@raspberrypi:/opt/iobroker $ iob fix library: loaded Library version=2022-12-09 ioBroker is not installed in /opt/iobroker! Cannot fix anything... pi@raspberrypi:/opt/iobroker $ iob install node:internal/modules/cjs/loader:1080 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) at Module._load (node:internal/modules/cjs/loader:922:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v18.17.1 pi@raspberrypi:/opt/iobroker $Ein Backup habe ich zuvor von IO Broker gemacht, bevor ich mit der Anleitung angefangen habe.
Also wie auch in der Anleitung hier beschrieben habe ich dafür:
iobroker backupverwendet.
Ich würde mich freuen, wenn mir jemand von euch ein wenig unter die Arme greifen kann, um meine IO Broker Installation wieder herzustellen, sodass alles wieder läuft.
Ich bin über Google auf den Beitrag hier gekommen, da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
Das ging ungünstigerweise schief und ich habe leider zu wenig Ahnung, um das allein wieder hinzubekommen. -
-
Ich habe nach der Ausführung der Anleitung leider mein iobroker zerlegt und erreiche diesen nicht mehr.
Bedauerlicherweise bin ich nicht so der Liebhaber Putty und Co.
Ich habe folgende Meldung:
pi@raspberrypi:/opt/iobroker $ iob fix library: loaded Library version=2022-12-09 ioBroker is not installed in /opt/iobroker! Cannot fix anything... pi@raspberrypi:/opt/iobroker $ iob install node:internal/modules/cjs/loader:1080 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) at Module._load (node:internal/modules/cjs/loader:922:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v18.17.1 pi@raspberrypi:/opt/iobroker $Ein Backup habe ich zuvor von IO Broker gemacht, bevor ich mit der Anleitung angefangen habe.
Also wie auch in der Anleitung hier beschrieben habe ich dafür:
iobroker backupverwendet.
Ich würde mich freuen, wenn mir jemand von euch ein wenig unter die Arme greifen kann, um meine IO Broker Installation wieder herzustellen, sodass alles wieder läuft.
Ich bin über Google auf den Beitrag hier gekommen, da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
Das ging ungünstigerweise schief und ich habe leider zu wenig Ahnung, um das allein wieder hinzubekommen.@romano-drews kurz um, wenn du wirklich ein funktionierendes backup hast, installiere dein OS 64bit ohne Desktop neu, mit dem Einzeiler iobroker und anschließend dein Backup einspielen.
schau da mal nach, da findest du alles
https://forum.iobroker.net/user/thomas-braun
bzw direkt hier
https://forum.iobroker.net/topic/51869/installation-auf-raspi-einfacher-geht-s-nicht?_=1692846419216 -
@romano-drews kurz um, wenn du wirklich ein funktionierendes backup hast, installiere dein OS 64bit ohne Desktop neu, mit dem Einzeiler iobroker und anschließend dein Backup einspielen.
schau da mal nach, da findest du alles
https://forum.iobroker.net/user/thomas-braun
bzw direkt hier
https://forum.iobroker.net/topic/51869/installation-auf-raspi-einfacher-geht-s-nicht?_=1692846419216Danke für die Rückmeldung
@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
wenn du wirklich ein funktionierendes backup hast, installiere dein OS 64bit ohne Desktop neu
Das Backup habe ich ja vorher mit dem Befehl erstellt.
In welchem Verzeichnis finde ich das jetzt?Ist auch nicht das erste Mal, dass ich mit dem Befehl ein IO Broker Backup gemacht habe.
Da wo die Backups also hingehen sollte, auch eins liegen ^^ weiß nur nicht wo. -
Ich habe nach der Ausführung der Anleitung leider mein iobroker zerlegt und erreiche diesen nicht mehr.
Bedauerlicherweise bin ich nicht so der Liebhaber Putty und Co.
Ich habe folgende Meldung:
pi@raspberrypi:/opt/iobroker $ iob fix library: loaded Library version=2022-12-09 ioBroker is not installed in /opt/iobroker! Cannot fix anything... pi@raspberrypi:/opt/iobroker $ iob install node:internal/modules/cjs/loader:1080 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) at Module._load (node:internal/modules/cjs/loader:922:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v18.17.1 pi@raspberrypi:/opt/iobroker $Ein Backup habe ich zuvor von IO Broker gemacht, bevor ich mit der Anleitung angefangen habe.
Also wie auch in der Anleitung hier beschrieben habe ich dafür:
iobroker backupverwendet.
Ich würde mich freuen, wenn mir jemand von euch ein wenig unter die Arme greifen kann, um meine IO Broker Installation wieder herzustellen, sodass alles wieder läuft.
Ich bin über Google auf den Beitrag hier gekommen, da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
Das ging ungünstigerweise schief und ich habe leider zu wenig Ahnung, um das allein wieder hinzubekommen.@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
@stabilostick
Ich habe nach der Ausführung der Anleitungdass diese Anleitung von 2019 ist und nicht mehr unbedingt auf heitige Systeme passen muss hast du schon erkannt?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
mein iobroker zerlegt
bedeutet was?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
in welcher Form zwingt iobroker dich an node "herumzuspielen"?
was genau bedeutet das? -
Danke für die Rückmeldung
@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
wenn du wirklich ein funktionierendes backup hast, installiere dein OS 64bit ohne Desktop neu
Das Backup habe ich ja vorher mit dem Befehl erstellt.
In welchem Verzeichnis finde ich das jetzt?Ist auch nicht das erste Mal, dass ich mit dem Befehl ein IO Broker Backup gemacht habe.
Da wo die Backups also hingehen sollte, auch eins liegen ^^ weiß nur nicht wo.@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
In welchem Verzeichnis finde ich das jetzt?
da wo es hingehört
/opt/iobroker/backups/ -
Ich habe nach der Ausführung der Anleitung leider mein iobroker zerlegt und erreiche diesen nicht mehr.
Bedauerlicherweise bin ich nicht so der Liebhaber Putty und Co.
Ich habe folgende Meldung:
pi@raspberrypi:/opt/iobroker $ iob fix library: loaded Library version=2022-12-09 ioBroker is not installed in /opt/iobroker! Cannot fix anything... pi@raspberrypi:/opt/iobroker $ iob install node:internal/modules/cjs/loader:1080 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) at Module._load (node:internal/modules/cjs/loader:922:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v18.17.1 pi@raspberrypi:/opt/iobroker $Ein Backup habe ich zuvor von IO Broker gemacht, bevor ich mit der Anleitung angefangen habe.
Also wie auch in der Anleitung hier beschrieben habe ich dafür:
iobroker backupverwendet.
Ich würde mich freuen, wenn mir jemand von euch ein wenig unter die Arme greifen kann, um meine IO Broker Installation wieder herzustellen, sodass alles wieder läuft.
Ich bin über Google auf den Beitrag hier gekommen, da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
Das ging ungünstigerweise schief und ich habe leider zu wenig Ahnung, um das allein wieder hinzubekommen.@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Ich bin über Google auf den Beitrag hier gekommen
vllt öfter mal im Forum mitlesen
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
dass diese Anleitung von 2019 ist
selbst das hier sollte eigentlich jeder finden

wenn man nodejs updaten muss@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
um meine IO Broker Installation wieder herzustellen
kannst du auch mal mit folgendem Befehl versuchen
cd /opt/iobroker sudo -H -u iobroker npm install iobroker.js-controllerfalls das klappt, danach
iob diag -
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
@stabilostick
Ich habe nach der Ausführung der Anleitungdass diese Anleitung von 2019 ist und nicht mehr unbedingt auf heitige Systeme passen muss hast du schon erkannt?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
mein iobroker zerlegt
bedeutet was?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
da ich durch IO Broker gezwungen wurde an Node herumzuspielen.
in welcher Form zwingt iobroker dich an node "herumzuspielen"?
was genau bedeutet das?@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
in welcher Form zwingt iobroker dich an node "herumzuspielen"?
was genau bedeutet das?Hallöchen.
Der Admin Adapter stand, dass ich nicht updaten kann, wenn ich nicht auf 16 bei node glaube ich update.
Bei dem Dlink Adapter stand das auch.
Da lief das Update auf die neuste Version deshalb nicht durch.
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
dass diese Anleitung von 2019 ist und nicht mehr unbedingt auf heitige Systeme passen muss hast du schon erkannt?
Da hab ich wie eingangs beschrieben leider gar keine Ahnung ein.
Ich spiele an der Eingabezeile nur dann herum, wenns nicht anders geht.
Also wie ein Update, das erforderlich ist.
Update fürs Betriebssystem und was halt so Standard befohlen sind wie Update und Upgrade und danach den Ordner leeren.Wenn eine Anleitung funktioniert, passiert ja eigentlich auch nichts.
Beim letzten Mal scheint wohl was in die Hose gegangen zu sein.
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
da wo es hingehört /opt/iobroker/backups/
Genau dieser Ordner ist bei mir bedauerlicherweise leer.

mit ```
iobroker backupKann das noch irgendwo anders hin gespeichert sein? -
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
in welcher Form zwingt iobroker dich an node "herumzuspielen"?
was genau bedeutet das?Hallöchen.
Der Admin Adapter stand, dass ich nicht updaten kann, wenn ich nicht auf 16 bei node glaube ich update.
Bei dem Dlink Adapter stand das auch.
Da lief das Update auf die neuste Version deshalb nicht durch.
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
dass diese Anleitung von 2019 ist und nicht mehr unbedingt auf heitige Systeme passen muss hast du schon erkannt?
Da hab ich wie eingangs beschrieben leider gar keine Ahnung ein.
Ich spiele an der Eingabezeile nur dann herum, wenns nicht anders geht.
Also wie ein Update, das erforderlich ist.
Update fürs Betriebssystem und was halt so Standard befohlen sind wie Update und Upgrade und danach den Ordner leeren.Wenn eine Anleitung funktioniert, passiert ja eigentlich auch nichts.
Beim letzten Mal scheint wohl was in die Hose gegangen zu sein.
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
da wo es hingehört /opt/iobroker/backups/
Genau dieser Ordner ist bei mir bedauerlicherweise leer.

mit ```
iobroker backupKann das noch irgendwo anders hin gespeichert sein?@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Kann das noch irgendwo anders hin gespeichert sein?
Nein.
Ein
iob backupin der Konsole liefert was?
Bevorzugt aber den backitup-Adapter verwenden. -
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Ich bin über Google auf den Beitrag hier gekommen
vllt öfter mal im Forum mitlesen
@homoran sagte in [How-to] Node.js für ioBroker richtig updaten:
dass diese Anleitung von 2019 ist
selbst das hier sollte eigentlich jeder finden

wenn man nodejs updaten muss@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
um meine IO Broker Installation wieder herzustellen
kannst du auch mal mit folgendem Befehl versuchen
cd /opt/iobroker sudo -H -u iobroker npm install iobroker.js-controllerfalls das klappt, danach
iob diag@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
vllt öfter mal im Forum mitlesen
Sagt sich immer so einfach ^^
Würde sehr gerne viel mehr Zeit mit io Broker verbringen.
Genau genommen habe ich aber so wenig Zeit, dass mein eigentliches Smarthome traurigerweise noch heute bei der Telekom rum schimmelt und auch nicht richtig funktioniert.Auf IO Broker habe ich nur paar dinge, die ich öfters mal vom Telefon aus überwachen möchte bzw. informiert werden möchte.
Ich versuche es auf jeden fall

@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
kannst du auch mal mit folgendem Befehl versuchen
cd /opt/iobroker
sudo -H -u iobroker npm install iobroker.js-controllerErgebnis:
pi@raspberrypi:/opt/iobroker $ sudo -H -u iobroker npm install iobroker.js-controller up to date in 4s 46 packages are looking for funding run `npm fund` for details*** Log File - Last 25 Lines *** 2023-08-24 01:23:11.983 - info: host.raspberrypi All instances are stopped. 2023-08-24 01:23:12.096 - info: host.raspberrypi terminated 2023-08-24 13:59:46.528 - info: host.raspberrypi iobroker.js-controller version 4.0.24 js-controller starting 2023-08-24 13:59:46.536 - info: host.raspberrypi Copyright (c) 2014-2022 bluefox, 2014 hobbyquaker 2023-08-24 13:59:46.537 - info: host.raspberrypi hostname: raspberrypi, node: v18.17.1 2023-08-24 13:59:46.538 - info: host.raspberrypi ip addresses: 192.168.20.53 fe80::1655:b3c0:7054:fa10 2023-08-24 13:59:47.194 - info: host.raspberrypi connected to Objects and States 2023-08-24 13:59:47.227 - info: host.raspberrypi Node.js version has changed from unknown to 18.17.1 2023-08-24 13:59:47.283 - info: host.raspberrypi Successfully updated capabilities "cap_net_admin, cap_net_bind_service, cap_net_raw" for /usr/bin/node 2023-08-24 13:59:47.303 - info: host.raspberrypi added notifications configuration of host 2023-08-24 13:59:47.791 - info: host.raspberrypi 3 instances found 2023-08-24 13:59:47.801 - info: host.raspberrypi starting 3 instances 2023-08-24 13:59:47.870 - info: host.raspberrypi instance system.adapter.admin.0 started with pid 2489894 2023-08-24 13:59:50.428 - info: admin.0 (2489894) starting. Version 6.3.5 in /opt/iobroker/node_modules/iobroker.admin, node: v18.17.1, js-controller: 4.0.24 2023-08-24 13:59:50.488 - info: admin.0 (2489894) requesting all states 2023-08-24 13:59:50.489 - info: admin.0 (2489894) requesting all objects 2023-08-24 13:59:51.104 - info: admin.0 (2489894) received all objects 2023-08-24 13:59:51.446 - info: admin.0 (2489894) http server listening on port 8081 2023-08-24 13:59:51.447 - info: admin.0 (2489894) Use link "http://localhost:8081" to configure. 2023-08-24 13:59:51.460 - info: admin.0 (2489894) socket.io server listening on port 8081 2023-08-24 13:59:51.841 - info: host.raspberrypi instance system.adapter.discovery.0 started with pid 2489921 2023-08-24 13:59:54.029 - info: discovery.0 (2489921) starting. Version 3.1.0 in /opt/iobroker/node_modules/iobroker.discovery, node: v18.17.1, js-controller: 4.0.24 2023-08-24 13:59:55.835 - info: host.raspberrypi instance system.adapter.backitup.0 started with pid 2489936 2023-08-24 13:59:58.132 - info: backitup.0 (2489936) starting. Version 2.6.23 in /opt/iobroker/node_modules/iobroker.backitup, node: v18.17.1, js-controller: 4.0.24 2023-08-24 13:59:58.255 - info: backitup.0 (2489936) [iobroker] backup will be activated at 02:40 every 1 day(s)============ Mark until here for C&P =============
iob diag has finished.
Copy text starting here: ======================= SUMMARY ======================= v.2023-04-16 Operatingsystem: Debian GNU/Linux 11 (bullseye) Kernel: 5.15.84-v8+ Installation: Native Timezone: Europe/Berlin (CEST, +0200) User-ID: 1000 X-Server: true Boot Target: graphical.target Pending OS-Updates: 0io Broker startet aber noch nicht.
-
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Kann das noch irgendwo anders hin gespeichert sein?
Nein.
Ein
iob backupin der Konsole liefert was?
Bevorzugt aber den backitup-Adapter verwenden.Lieben Dank für die schnelle Rückmeldung.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Bevorzugt aber den backitup-Adapter verwenden.
Den Adapter hab ich vorher auch öfter verwendet und lokal speichern lassen.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Ein
iob backupin der Konsole liefert was?
pi@raspberrypi:/opt/iobroker $ iob backup host.raspberrypi 103 states saved host.raspberrypi 142 objects saved Backup created: /opt/iobroker/backups/2023_08_24-14_04_59_backupiobroker.tar.gz pi@raspberrypi:/opt/iobroker $Jetzt befindet sich auch eine Datei im Ordner Backups.
Vorher habe ich den Befehl aber in der Vergangenheit auch schon öfters ausgeführt.
Die Dateien davon sind jedoch scheinbar weg.Vermutlich wurden sie bei der Neuinstallation gestern gelöscht?
Nun hab ich ja scheine bar wieder ein Backup.
Wie kann ich aus diesem Backup denn io Broker neu installieren, sodass es meine alte Struktur wieder hat?
Ps. Bin gleich bis heute Abend leider nicht am PC, melde mich aber wieder.
-
Lieben Dank für die schnelle Rückmeldung.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Bevorzugt aber den backitup-Adapter verwenden.
Den Adapter hab ich vorher auch öfter verwendet und lokal speichern lassen.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Ein
iob backupin der Konsole liefert was?
pi@raspberrypi:/opt/iobroker $ iob backup host.raspberrypi 103 states saved host.raspberrypi 142 objects saved Backup created: /opt/iobroker/backups/2023_08_24-14_04_59_backupiobroker.tar.gz pi@raspberrypi:/opt/iobroker $Jetzt befindet sich auch eine Datei im Ordner Backups.
Vorher habe ich den Befehl aber in der Vergangenheit auch schon öfters ausgeführt.
Die Dateien davon sind jedoch scheinbar weg.Vermutlich wurden sie bei der Neuinstallation gestern gelöscht?
Nun hab ich ja scheine bar wieder ein Backup.
Wie kann ich aus diesem Backup denn io Broker neu installieren, sodass es meine alte Struktur wieder hat?
Ps. Bin gleich bis heute Abend leider nicht am PC, melde mich aber wieder.
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Ps. Bin gleich bis heute Abend leider nicht am PC, melde mich aber wieder.
Dann mach mit dem Problem einen neuen Thread auf, das Ganze passt ja nicht zu einem 'HowTo Nodejs für iobroker richtig updaten' von 2019...
Da dann bitte die vollständigen Ausgaben von
iob diagrein, das was du da oben kopiert hast ist nur das Ende bzw. der Anfang. Man kann durch das Terminal locker scrollen... -
Lieben Dank für die schnelle Rückmeldung.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Bevorzugt aber den backitup-Adapter verwenden.
Den Adapter hab ich vorher auch öfter verwendet und lokal speichern lassen.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Ein
iob backupin der Konsole liefert was?
pi@raspberrypi:/opt/iobroker $ iob backup host.raspberrypi 103 states saved host.raspberrypi 142 objects saved Backup created: /opt/iobroker/backups/2023_08_24-14_04_59_backupiobroker.tar.gz pi@raspberrypi:/opt/iobroker $Jetzt befindet sich auch eine Datei im Ordner Backups.
Vorher habe ich den Befehl aber in der Vergangenheit auch schon öfters ausgeführt.
Die Dateien davon sind jedoch scheinbar weg.Vermutlich wurden sie bei der Neuinstallation gestern gelöscht?
Nun hab ich ja scheine bar wieder ein Backup.
Wie kann ich aus diesem Backup denn io Broker neu installieren, sodass es meine alte Struktur wieder hat?
Ps. Bin gleich bis heute Abend leider nicht am PC, melde mich aber wieder.
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Vermutlich wurden sie bei der Neuinstallation gestern gelöscht?
Logisch, dann lässt sich auch nichts mehr herstellen, sofern du kein backup dir irgendwo anders hingesichert hast.
-
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Ps. Bin gleich bis heute Abend leider nicht am PC, melde mich aber wieder.
Dann mach mit dem Problem einen neuen Thread auf, das Ganze passt ja nicht zu einem 'HowTo Nodejs für iobroker richtig updaten' von 2019...
Da dann bitte die vollständigen Ausgaben von
iob diagrein, das was du da oben kopiert hast ist nur das Ende bzw. der Anfang. Man kann durch das Terminal locker scrollen...@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Dann mach mit dem Problem einen neuen Thread auf
Okay, ich danke dir, das mache ich dann nachher, wenn ich wieder zu Hause bin in Ruhe.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
das was du da oben kopiert hast ist nur das Ende bzw. der Anfang. Man kann durch das Terminal locker scrollen...
Da hast du recht, hatte nicht alles kopiert, da ich nicht so Monster Beiträge posten wollte.
Werde das im neuen Beitrag dann aber machen.@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
Logisch, dann lässt sich auch nichts mehr herstellen, sofern du kein backup dir irgendwo anders hingesichert hast.
Ich habe immer beim Backup Adapter in IO Broker auf Backup gedrückt, bevor ich was gemacht habe.
Außerdem immer den Eingabebefehl benutzt, wenn ich dort gerade war, um ein Backup zu sichern.
Das muss dann gestern durch die ganzen Befehle aus den Beiträgen zum Update irgendwie abhandengekommen sein.
Ne andere Idee hab ich sonst auch nicht wohin das sein kann.
Gibts noch weitere Ordner, wo man suchen könnte?
-
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Dann mach mit dem Problem einen neuen Thread auf
Okay, ich danke dir, das mache ich dann nachher, wenn ich wieder zu Hause bin in Ruhe.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
das was du da oben kopiert hast ist nur das Ende bzw. der Anfang. Man kann durch das Terminal locker scrollen...
Da hast du recht, hatte nicht alles kopiert, da ich nicht so Monster Beiträge posten wollte.
Werde das im neuen Beitrag dann aber machen.@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
Logisch, dann lässt sich auch nichts mehr herstellen, sofern du kein backup dir irgendwo anders hingesichert hast.
Ich habe immer beim Backup Adapter in IO Broker auf Backup gedrückt, bevor ich was gemacht habe.
Außerdem immer den Eingabebefehl benutzt, wenn ich dort gerade war, um ein Backup zu sichern.
Das muss dann gestern durch die ganzen Befehle aus den Beiträgen zum Update irgendwie abhandengekommen sein.
Ne andere Idee hab ich sonst auch nicht wohin das sein kann.
Gibts noch weitere Ordner, wo man suchen könnte?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
da ich nicht so Monster Beiträge posten wollte.
wurde aber ja extra angefordert. nicht ohne Grund.
zum Leyen im Forum noch ein Link
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1 -
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Dann mach mit dem Problem einen neuen Thread auf
Okay, ich danke dir, das mache ich dann nachher, wenn ich wieder zu Hause bin in Ruhe.
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
das was du da oben kopiert hast ist nur das Ende bzw. der Anfang. Man kann durch das Terminal locker scrollen...
Da hast du recht, hatte nicht alles kopiert, da ich nicht so Monster Beiträge posten wollte.
Werde das im neuen Beitrag dann aber machen.@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
Logisch, dann lässt sich auch nichts mehr herstellen, sofern du kein backup dir irgendwo anders hingesichert hast.
Ich habe immer beim Backup Adapter in IO Broker auf Backup gedrückt, bevor ich was gemacht habe.
Außerdem immer den Eingabebefehl benutzt, wenn ich dort gerade war, um ein Backup zu sichern.
Das muss dann gestern durch die ganzen Befehle aus den Beiträgen zum Update irgendwie abhandengekommen sein.
Ne andere Idee hab ich sonst auch nicht wohin das sein kann.
Gibts noch weitere Ordner, wo man suchen könnte?
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Gibts noch weitere Ordner, wo man suchen könnte?
dort wo du dir die Backups nach extern (z.b. auf deinen PC) gesichert hast.
@crunchip sagte in [How-to] Node.js für ioBroker richtig updaten:
@romano-drews sagte in [How-to] Node.js für ioBroker richtig updaten:
Vermutlich wurden sie bei der Neuinstallation gestern gelöscht?
Logisch, dann lässt sich auch nichts mehr herstellen, sofern du kein backup dir irgendwo anders hingesichert hast.