NEWS
js-controller 3.2 jetzt im Latest!
-
@apollon77
OK, verstanden. Dann ist es auch egal, wenn ich es so mache, wie es beschrieben ist.Ich gucke nochmal nach, ob ich beides (States und Objects) verbunden habe. Die Redis-Einrichtung ist schon 'ne ganze Zeit her...
EDIT:
Der Befehliobroker multihost statusgibt beim Master folgendes zurück
Multihost discovery server: disabled Discovery authentication: enabled Persistent activation: disabled Objects: file on 0.0.0.0 States: redis on 127.0.0.1und beim Slave
Multihost discovery server: disabled Discovery authentication: enabled Persistent activation: disabled Objects: file on 192.168.178.115 States: redis on 192.168.178.115Ist das die von DIr beschriebene redis/redis config?
-
@apollon77
Update von 3.1.6 auf 3.2.8 liefert folgende Logeinträge:2021-01-22 09:59:39.552 - error: web.0 (593419) [LE] {"code":"E_FAIL_DRY_CHALLENGE","context":"cert_renewal","subject":"***.myfritz.net","altnames":["***.myfritz.net"]} 2021-01-22 10:04:06.915 - error: dwd.0 (593900) 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(). 2021-01-22 10:04:06.920 - error: dwd.0 (593900) unhandled promise rejection: DB closed 2021-01-22 10:04:06.957 - error: dwd.0 (593900) Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:179:25) at Socket. (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:146:20) at Object.onceWrapper (events.js:421:26) at Socket.emit (events.js:314:20) at Socket.EventEmitter.emit (domain.js:483:12) at TCP. (net.js:675:12) 2021-01-22 10:04:06.958 - error: dwd.0 (593900) DB closedPort 80 ist bei mir nur für iob auf wenn ich das letsencrypt cert verlängern muss. Sonst ist der anderweitig belegt.
Kommt die Meldung daher?Die DWD Meldungen sind nur FYI oder relevant?
Und das MaterialUI Frontend kann mit lokaler IP gar nicht mehr aufgerufen werden.
nodejs: 12.20.1
JS-Controller: 3.2.8
dwd: 2.7.2
web: 3.2.3@diginix Der Fehler von web sollte daher kommen das er certs updaten will aber nicht kann ... Wenn du "auto renewal" aktiviert hast dann solltest du auch "immer" den Port verfügbar haben ... sonst musst du das automatisch update deaktivieren.
dwd: haste mal ganzes log von dem "lauf"?`
-
@apollon77
Update von 3.1.6 auf 3.2.8 liefert folgende Logeinträge:2021-01-22 09:59:39.552 - error: web.0 (593419) [LE] {"code":"E_FAIL_DRY_CHALLENGE","context":"cert_renewal","subject":"***.myfritz.net","altnames":["***.myfritz.net"]} 2021-01-22 10:04:06.915 - error: dwd.0 (593900) 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(). 2021-01-22 10:04:06.920 - error: dwd.0 (593900) unhandled promise rejection: DB closed 2021-01-22 10:04:06.957 - error: dwd.0 (593900) Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:179:25) at Socket. (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:146:20) at Object.onceWrapper (events.js:421:26) at Socket.emit (events.js:314:20) at Socket.EventEmitter.emit (domain.js:483:12) at TCP. (net.js:675:12) 2021-01-22 10:04:06.958 - error: dwd.0 (593900) DB closedPort 80 ist bei mir nur für iob auf wenn ich das letsencrypt cert verlängern muss. Sonst ist der anderweitig belegt.
Kommt die Meldung daher?Die DWD Meldungen sind nur FYI oder relevant?
Und das MaterialUI Frontend kann mit lokaler IP gar nicht mehr aufgerufen werden.
nodejs: 12.20.1
JS-Controller: 3.2.8
dwd: 2.7.2
web: 3.2.3@diginix sagte in js-controller 3.2 jetzt im Latest!:
Und das MaterialUI Frontend kann mit lokaler IP gar nicht mehr aufgerufen werden.
das liegt leider daran das das neue letsencrypt ohne "einmal zertifikate" so reagiert und keine hat. Da ist schon ein Bug offen ... also: lass ihn einmal updaten, dann sollte das wieder gehen
-
@diginix Der Fehler von web sollte daher kommen das er certs updaten will aber nicht kann ... Wenn du "auto renewal" aktiviert hast dann solltest du auch "immer" den Port verfügbar haben ... sonst musst du das automatisch update deaktivieren.
dwd: haste mal ganzes log von dem "lauf"?`
@apollon77
Nun verhält sich DWD unauffällig. Vllt war es nur der erste Start mit neuem JS-C.?2021-01-22 11:14:27.226 - info: dwd.0 (614954) starting. Version 2.7.2 in /opt/iobroker/node_modules/iobroker.dwd, node: v12.20.1, js-controller: 3.2.8 2021-01-22 11:14:29.664 - info: dwd.0 (614954) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2021-01-22 11:15:03.610 - info: dwd.0 (615085) starting. Version 2.7.2 in /opt/iobroker/node_modules/iobroker.dwd, node: v12.20.1, js-controller: 3.2.8 2021-01-22 11:15:23.530 - info: dwd.0 (615085) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reasonLetsencypt ist in der web Instanz so konfiguriert. Kein auto renewal.

Wo trigger ich die Ernerung in iob?
Bisher habe ich es immer in der Kommandozeile nach 2,9 Monaten gemacht. -
@apollon77
Nun verhält sich DWD unauffällig. Vllt war es nur der erste Start mit neuem JS-C.?2021-01-22 11:14:27.226 - info: dwd.0 (614954) starting. Version 2.7.2 in /opt/iobroker/node_modules/iobroker.dwd, node: v12.20.1, js-controller: 3.2.8 2021-01-22 11:14:29.664 - info: dwd.0 (614954) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2021-01-22 11:15:03.610 - info: dwd.0 (615085) starting. Version 2.7.2 in /opt/iobroker/node_modules/iobroker.dwd, node: v12.20.1, js-controller: 3.2.8 2021-01-22 11:15:23.530 - info: dwd.0 (615085) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reasonLetsencypt ist in der web Instanz so konfiguriert. Kein auto renewal.

Wo trigger ich die Ernerung in iob?
Bisher habe ich es immer in der Kommandozeile nach 2,9 Monaten gemacht.@diginix Ich denke das pOrblem ist jetzt das folgende: Neue Lib, neue Speicherorte ... er hat also kein Zertifikat, damit nicht erreichbar. Musst es quasi einmal machen lassen damit er eins hat ... dann geht vllt wieder so? (Ja ich rate weilich LE nicht nutze)
-
@diginix Ich denke das pOrblem ist jetzt das folgende: Neue Lib, neue Speicherorte ... er hat also kein Zertifikat, damit nicht erreichbar. Musst es quasi einmal machen lassen damit er eins hat ... dann geht vllt wieder so? (Ja ich rate weilich LE nicht nutze)
@apollon77 Per Domain und SSL komme ich aber mit validem Zertifikat auf MaterialUI.
Also gar kein Cert stimmt auch nicht. Das unter /opt/iobroker/iobroker-data/letsencrypt/ wird also weiterhin vom web Adapter korrekt ausgeliefert.Wo ist denn der neue Speicherort?
In der Admin Instanz, wo auch die Domain und LE Konto festgelegt wird, hat sich der Pfad auch nicht geändert:

Der grün markierte Link hilft leider auch nicht wirklich.
Welcher Entwickler hat denn LE selbst in Verwendung und könnte sachdienliche Hinweise geben bzw. beim Abgleich meines Dateisystems helfen?
-
@apollon77 Per Domain und SSL komme ich aber mit validem Zertifikat auf MaterialUI.
Also gar kein Cert stimmt auch nicht. Das unter /opt/iobroker/iobroker-data/letsencrypt/ wird also weiterhin vom web Adapter korrekt ausgeliefert.Wo ist denn der neue Speicherort?
In der Admin Instanz, wo auch die Domain und LE Konto festgelegt wird, hat sich der Pfad auch nicht geändert:

Der grün markierte Link hilft leider auch nicht wirklich.
Welcher Entwickler hat denn LE selbst in Verwendung und könnte sachdienliche Hinweise geben bzw. beim Abgleich meines Dateisystems helfen?
-
@diginix Ich glaube das neue legt in node_modules/iobroker.js-controller ein .greenlockrc Verzeichnis an ... (Achtung absolutes Halbwissen)
@apollon77
.greenlockrc ist eine Datei an der von dir genannten Stelle und enthält den alten von mir korrekt mit Cert bedienten Pfad:{"configDir":"/opt/iobroker/iobroker-data/letsencrypt"}Ich kann später gern mal den letsencrypt Ordner wegnehmen und versuchen ihn über iob Boardmittel neu erzeugen zu lassen.
Das Problem betrifft auch nicht nur MaterialUI sondern wahrs. alles was mit dem web Adapter ausgeliefert wird. Bei mir auch habpanel und jarvis. Alle Frontend URLs mit lokaler IP liefern:ERR_SSL_VERSION_OR_CIPHER_MISMATCHMit https://FQDN läuft es. Das ist schon mal gut und wichtig. Aber im Heimnetz natürlich langsamer als der direkte Zugriff. Welcher mit JS-C 3.1 funktionierte. Bei mir gab es auch bisher keine letsencrypt Probleme mit der alten Ver.
-
@apollon77
.greenlockrc ist eine Datei an der von dir genannten Stelle und enthält den alten von mir korrekt mit Cert bedienten Pfad:{"configDir":"/opt/iobroker/iobroker-data/letsencrypt"}Ich kann später gern mal den letsencrypt Ordner wegnehmen und versuchen ihn über iob Boardmittel neu erzeugen zu lassen.
Das Problem betrifft auch nicht nur MaterialUI sondern wahrs. alles was mit dem web Adapter ausgeliefert wird. Bei mir auch habpanel und jarvis. Alle Frontend URLs mit lokaler IP liefern:ERR_SSL_VERSION_OR_CIPHER_MISMATCHMit https://FQDN läuft es. Das ist schon mal gut und wichtig. Aber im Heimnetz natürlich langsamer als der direkte Zugriff. Welcher mit JS-C 3.1 funktionierte. Bei mir gab es auch bisher keine letsencrypt Probleme mit der alten Ver.
-
Sehe ich das richtig, dass das Warning
... has no existing object, this might lead to an error in future versionswelches von mehreren Adapter (Proxmox, Tankerkönig, ...) ausgeworfen wird, nur durch den Entwickler zu beheben sind?
@josh
Ja. Issue beim entsprechenden Adapter eröffnen. -
@apollon77
Ich stoppe/starte Adapterinstanzen zyklisch per Skript um z.B. meine Bluetooth Hardware temporär frei zu haben um damit kurzzeitig andere Dinge machen zu können.Seit JS-C 3.2.8 erhalte ich dadurch Zombie Prozesse. Vorhin hatte ich diese "3 restart radar2" Prozessen 4 mal, also 12 Prozesse. Habe es erst durch die eskalierende CPU Last bemerkt.
Mit JS-C 3.1.x gab es das nie.iobroker 718539 0.0 0.0 10156 3764 ? S 23:15 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 718540 0.0 0.1 12644 4984 ? S 23:15 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 718541 99.6 3.2 743904 126812 ? Rl 23:15 27:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 721986 4.9 1.4 635896 58900 ? Sl 23:41 0:04 io.radar2.0Wie man sieht läuft die radar2 Instanz längst wieder mit höhere PID, die restart Prozesse werden aber nie mehr beendet.
Im Skript rufe ich auch nur "exec iobroker restart radar2.0" auf. Die "js-controller/iobroker.js restart radar2.0" Prozesse scheinen daraufhin vom System erzeugt zu werden. -
@apollon77
Ich stoppe/starte Adapterinstanzen zyklisch per Skript um z.B. meine Bluetooth Hardware temporär frei zu haben um damit kurzzeitig andere Dinge machen zu können.Seit JS-C 3.2.8 erhalte ich dadurch Zombie Prozesse. Vorhin hatte ich diese "3 restart radar2" Prozessen 4 mal, also 12 Prozesse. Habe es erst durch die eskalierende CPU Last bemerkt.
Mit JS-C 3.1.x gab es das nie.iobroker 718539 0.0 0.0 10156 3764 ? S 23:15 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 718540 0.0 0.1 12644 4984 ? S 23:15 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 718541 99.6 3.2 743904 126812 ? Rl 23:15 27:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 721986 4.9 1.4 635896 58900 ? Sl 23:41 0:04 io.radar2.0Wie man sieht läuft die radar2 Instanz längst wieder mit höhere PID, die restart Prozesse werden aber nie mehr beendet.
Im Skript rufe ich auch nur "exec iobroker restart radar2.0" auf. Die "js-controller/iobroker.js restart radar2.0" Prozesse scheinen daraufhin vom System erzeugt zu werden. -
@apollon77
Ich stoppe/starte Adapterinstanzen zyklisch per Skript um z.B. meine Bluetooth Hardware temporär frei zu haben um damit kurzzeitig andere Dinge machen zu können.Seit JS-C 3.2.8 erhalte ich dadurch Zombie Prozesse. Vorhin hatte ich diese "3 restart radar2" Prozessen 4 mal, also 12 Prozesse. Habe es erst durch die eskalierende CPU Last bemerkt.
Mit JS-C 3.1.x gab es das nie.iobroker 718539 0.0 0.0 10156 3764 ? S 23:15 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 718540 0.0 0.1 12644 4984 ? S 23:15 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 718541 99.6 3.2 743904 126812 ? Rl 23:15 27:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 721986 4.9 1.4 635896 58900 ? Sl 23:41 0:04 io.radar2.0Wie man sieht läuft die radar2 Instanz längst wieder mit höhere PID, die restart Prozesse werden aber nie mehr beendet.
Im Skript rufe ich auch nur "exec iobroker restart radar2.0" auf. Die "js-controller/iobroker.js restart radar2.0" Prozesse scheinen daraufhin vom System erzeugt zu werden. -
@apollon77
Ich stoppe/starte Adapterinstanzen zyklisch per Skript um z.B. meine Bluetooth Hardware temporär frei zu haben um damit kurzzeitig andere Dinge machen zu können.Seit JS-C 3.2.8 erhalte ich dadurch Zombie Prozesse. Vorhin hatte ich diese "3 restart radar2" Prozessen 4 mal, also 12 Prozesse. Habe es erst durch die eskalierende CPU Last bemerkt.
Mit JS-C 3.1.x gab es das nie.iobroker 718539 0.0 0.0 10156 3764 ? S 23:15 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 718540 0.0 0.1 12644 4984 ? S 23:15 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 718541 99.6 3.2 743904 126812 ? Rl 23:15 27:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 721986 4.9 1.4 635896 58900 ? Sl 23:41 0:04 io.radar2.0Wie man sieht läuft die radar2 Instanz längst wieder mit höhere PID, die restart Prozesse werden aber nie mehr beendet.
Im Skript rufe ich auch nur "exec iobroker restart radar2.0" auf. Die "js-controller/iobroker.js restart radar2.0" Prozesse scheinen daraufhin vom System erzeugt zu werden. -
@apollon77 3.2.7 hatte ich übersprungen.
Der Adapterinstanz (re)start funktioniert sowohl in der Kommandozeile, als auch mit dem exec im Skript, aber nicht immer sofort. Manchmal bleibt die Instanz einfach aus. Daher hatte ich das als Schleife. Wenn radar2.0.connected nicht nach 20 sec auf true ist, dann wird erneut ein "iobroker restart radar2.0" ausgeführt. Bis JS-C 3.1.x gab es da nicht ein einziges mal ein Problem. Eigentlich sollte ja ein zweiter restart maximal eine bereits laufende Instanz erst beenden und wieder starten. Aber selbst wenn die zu schnell hintereinander kämen, dann dürften keine Prozesse unbeendet liegen bleiben.
Wie ich an weitere Details dazu komme (CLI Ausgabe), habe ich keine Ahnung. Da bräuchte ich Zuarbeit.Ich habe nun eben mal im Skript das Kommando von "restart" auf "iobroker start radar2.0" geändert, weil die Instanz ja vorher gestoppt wurde und somit eh nicht läuft.
Die Instanz wurde mit "start" auch gestartet, aber als Antwort kam dannCannot load "custom": Error: Connection is closed.Und das aber 61660 mal. Das Log ist dadurch explodiert.
Aber auch bei "start" statt "restart" blieben eben wieder die Prozesse liegen:
iobroker 19476 0.0 0.0 10156 3692 ? S 10:00 0:00 /bin/bash /usr/bin/iobroker start radar2.0 root 19477 0.0 0.1 12640 4960 ? S 10:00 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start radar2.0 iobroker 19478 99.5 3.2 754936 128628 ? Rl 10:00 19:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start radar2.0Neben dem letsencrypt Problem gerade das für mich störendste an JS-C 3.2
Ich will noch nicht aufgeben, aber wenn ich es nicht stabil bekomme, muss vorerst leider ein rollback her. -
@apollon77 3.2.7 hatte ich übersprungen.
Der Adapterinstanz (re)start funktioniert sowohl in der Kommandozeile, als auch mit dem exec im Skript, aber nicht immer sofort. Manchmal bleibt die Instanz einfach aus. Daher hatte ich das als Schleife. Wenn radar2.0.connected nicht nach 20 sec auf true ist, dann wird erneut ein "iobroker restart radar2.0" ausgeführt. Bis JS-C 3.1.x gab es da nicht ein einziges mal ein Problem. Eigentlich sollte ja ein zweiter restart maximal eine bereits laufende Instanz erst beenden und wieder starten. Aber selbst wenn die zu schnell hintereinander kämen, dann dürften keine Prozesse unbeendet liegen bleiben.
Wie ich an weitere Details dazu komme (CLI Ausgabe), habe ich keine Ahnung. Da bräuchte ich Zuarbeit.Ich habe nun eben mal im Skript das Kommando von "restart" auf "iobroker start radar2.0" geändert, weil die Instanz ja vorher gestoppt wurde und somit eh nicht läuft.
Die Instanz wurde mit "start" auch gestartet, aber als Antwort kam dannCannot load "custom": Error: Connection is closed.Und das aber 61660 mal. Das Log ist dadurch explodiert.
Aber auch bei "start" statt "restart" blieben eben wieder die Prozesse liegen:
iobroker 19476 0.0 0.0 10156 3692 ? S 10:00 0:00 /bin/bash /usr/bin/iobroker start radar2.0 root 19477 0.0 0.1 12640 4960 ? S 10:00 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start radar2.0 iobroker 19478 99.5 3.2 754936 128628 ? Rl 10:00 19:21 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start radar2.0Neben dem letsencrypt Problem gerade das für mich störendste an JS-C 3.2
Ich will noch nicht aufgeben, aber wenn ich es nicht stabil bekomme, muss vorerst leider ein rollback her.@diginix Hasz Du bitte mal mehr vom log ... am besten log BEVOR dieser Connection closed Fehler das erste mal kommt. Und wieterhin, wie oben gefragt, würde mich echt mal mehr log interessieren, auch was der Controller bei deinen manuellen restart dingen da ausgibt ... alsio quasi die Info wann hat edein skript was getan und das zeitlich zu dem log dann zuzuordnen.
Ohne da jetzt in dein spezielles Problem tiefer rein zu gehen wiss ich nicht wie der fix ist. bzw kannst Du das skript mal posten was Du nutzt?
EDIT: Ok ich habe einen Code-Fall gefunden wo es passieren kann das er in eine endlos Schleife läuft ... Wir verstehen nur nicht wie er da hin kommen kann ...
-
@apollon77 hab ne Verständnisfrage, bzw ein Problem. Habe gerade
- Js-C upgrade von 3.2.7 auf 3.2.8
- danach iobroker fix durchlaufen lassen

nun erhalte ich im Adapter linux-control folgendes
linux-control.0 2021-01-23 11:37:26.716 error at LinuxControl.onReady (/opt/iobroker/node_modules/iobroker.linux-control/main.js:54:5) linux-control.0 2021-01-23 11:37:26.716 error at LinuxControl.refreshHost (/opt/iobroker/node_modules/iobroker.linux-control/main.js:87:5) linux-control.0 2021-01-23 11:37:26.716 error at LinuxControl.userCommand (/opt/iobroker/node_modules/iobroker.linux-control/main.js:196:9) linux-control.0 2021-01-23 11:37:26.716 error at LinuxControl.userCommandExecute (/opt/iobroker/node_modules/iobroker.linux-control/main.js:251:21) linux-control.0 2021-01-23 11:37:26.716 error at processTicksAndRejections (internal/process/task_queues.js:97:5) linux-control.0 2021-01-23 11:37:26.716 error at runMicrotasks (<anonymous>) linux-control.0 2021-01-23 11:37:26.716 error at LinuxControl.sendCommand (/opt/iobroker/node_modules/iobroker.linux-control/main.js:874:26) linux-control.0 2021-01-23 11:37:26.716 error (22907) [userCommandExecute] iobroker (10.1.1.10:22, id: root-verzeichnis, description: ): response error: /root/.bashrc: Zeile 24: /root/.iobroker/iobroker_completions: Datei oder Verzeichnis nicht linux-control.0 2021-01-23 11:37:26.680 error at LinuxControl.onReady (/opt/iobroker/node_modules/iobroker.linux-control/main.js:54:5) linux-control.0 2021-01-23 11:37:26.680 error at LinuxControl.refreshHost (/opt/iobroker/node_modules/iobroker.linux-control/main.js:82:5) linux-control.0 2021-01-23 11:37:26.680 error at LinuxControl.servicesInfo (/opt/iobroker/node_modules/iobroker.linux-control/main.js:485:21) linux-control.0 2021-01-23 11:37:26.680 error at processTicksAndRejections (internal/process/task_queues.js:97:5) linux-control.0 2021-01-23 11:37:26.680 error at runMicrotasks (<anonymous>) -
Hallo ioBroker-Community,
mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!
Node.js Versions-Anforderungen
Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625Informationen zur Version
Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
Auch daran den Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen wurde weiter gearbeitet, was ggf. zu neuen Log-meldungen für bestimmte Fälle führt. Bitte unterstützt hier wieder und legt bei den relevanten Adaptern im GitHub Issues an, damit diese Dinge gefixt werden können.Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
Detailliertere Informationen zu allen Änderungen und Features findet Ihr weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei den letzten Versionen.In Summe sind in diese Version über 650 commits eingeflossen. Dafür bedenke mich diesmal besonders bei foxriver76, AlCalzone und natürlich Bluefox und auch ein paar weiteren Entwicklern für die aktive Mitarbeit an dieser Version!
Der js-controller 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen

Es gibt aktuell keine inkompatiblem Adapter, aber einige Empfehlungen weiter unten.
Installation
VOR der Installation
Wie bei jedem Test dieser Art: Bitte macht ein Backup!
iobroker backupbzw kopieren desiobroker-dataVerzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder pernpm install iobroker.js-controller@versioninstalliert werden und sollte alles wieder herstellen.Nötige Adapter-Aktualisierungen
Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:
- ioBroker.lovelace 1.4.1 oder höher
- ioBroker.simple-api 2.5.2 oder höher
- ioBroker.socketio 3.1.3 oder höher
- ioBroker.telegram 1.7.0 oder höher
- ioBroker.web 3.2.2 oder höher
- ioBroker.admin 4.2.1 oder höher
Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.
Achtung: MASTER-Systeme Reihenfolgen beachten!
Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 empfohlen, zuerst das Master-System zu aktualisieren. Der Master muss dann wieder gestartet werden. Die Slaves werden danach aktualisiert!
Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss der alte master aber noch laufen. Die Slaves bleiben nach dem Update offline und können sich nicht zum Master verbinden und werden erst wieder funktionieren wenn auch der Master auf die 3.2 aktualisiert wurde!
Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.
Für alle "alten manuellen" Installationen gilt
- ioBroker muss gestoppt sein.
- Vor dem Update bitte prüfen das keine Prozesse mehr laufen
iobroker updateiobroker upgrade self- ioBroker starten
Linux
- ioBroker stoppen (
iobroker stop) - prüfen das keine Prozesse (Adapter, Backups) mehr laufen (
ps auxww|grep iound auchps auxww|grep backup). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben iobroker update- Wie üblich wird das Update dann per
iobroker upgrade selfausgeführt. - ioBroker starten (
iobroker start)
Bei Fehlern:
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fixwer schon einen js-controller 2.x oder höher hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittelssudo -H -u iobroker npm install iobroker.js-controllerversuchen. Bitte berichtet solche Fälle hier im Thread.NACH der Installation
Nach der Installation den ioBroker wieder starten (z.B. mittels
iobroker start).Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.
Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!
Mit
iobroker helpwird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)
Was hat sich geändert, was besonders ansehen/beachten?
Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:
- generell siehe Changelog, speziell auch für Features
- Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
- Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden
Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!
Wie Fehler melden?
Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.
Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.
Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!
Ingo
@apollon77
Mit dem Update auf einem RPi4 habe ich schon beim Start folgende Fehler:

wenn ich iobroker fix mache kommt ähnliches :
Karl
-
@apollon77 mein Host lief bisher mit loglevel warn. Ob es daran liegt, dass man nicht mehr sieht weiß ich nicht.
Hier mal von 11:00 Uhr und 11:30 wieder so ein Fall wo die Instanz nicht gestartet wurde und jeweils zweimal die 3 Prozesse zum Restart der Instanz nicht beendert wurden. 11:45 Uhr hat es dann funktioniert. Aber die Zombies von den 2 Läufen davor blieben. Die CPU Last steigt mit jedem mal wo die 3 Prozesse bleiben um ca. 1-2.iobroker 28628 0.0 0.0 10156 2888 ? S 11:00 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 28629 0.0 0.1 12640 4944 ? S 11:00 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 28630 98.2 3.4 743112 134900 ? Rl 11:00 45:34 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 32996 0.0 0.0 10156 2900 ? S 11:30 0:00 /bin/bash /usr/bin/iobroker restart radar2.0 root 32997 0.0 0.1 12636 4932 ? S 11:30 0:00 sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 32998 95.8 2.9 743352 118528 ? Rl 11:30 15:42 node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js restart radar2.0 iobroker 35355 16.2 1.9 638660 77188 ? Sl 11:46 0:03 io.radar2.0Und hier das Log:
Die Konsolenausgaben bei "iobroker restart radar2.0" sind entweder: "The adapter "radar2.0" was started." oder gar keine.
Im Fall von "...was started" läuft nicht zwingend die Instanz wieder. Deswegen prüfe ich den .connected state.
Wenn gar keine Ausgabe kommt, ist es der zur Zeit der Fall mit "Cannot load "custom": Error: Connection is closed."Das Skript ist eigentlich ein Blockly, aber hier mal der Teil zum Stoppen und Starten der Instanz als Javascript: