NEWS
js-controller 2.2 jetzt im Latest
-
Hallo ioBroker-Community,
wie im neuen Release-Cycle für den js-controller geplant, kommt heute der neuen js-controller 2.2 (Releasename "Dina") ins Latest Repository. 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!
Das Release ist im grossen und ganzen ein weiterer Bugfix-Release zur 2.1.1 und behebt noch ein paar kleinere Probleme. Darüber hinaus gab es aber auch die nächsten Umbauarbeiten unter der Haube, die am Ende keine Auswirkungen auf die Funktionalität haben sollten. Mehr dazu weiter unten und im Changelog.
Der js-controller 2.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1 ist problemlos. Auch die minimale Node.js Version bleibt wie vom letzten Release bekannt bei 8.x, besser noch auf 10.x.
Es gibt diesmal zwei Adapter die Aktualisiert werden müssen! Mehr dazu im nächsten Abschnitt!
Installation
VOR der Installation
Wie bei jedem Update dieser Art: Bitte macht ein Backup!
iobroker backup
, bzw. kopieren desiobroker-data
Verzeichnisses reichen an sich im Zweifel auch aus (ioBroker vorher stoppen natürlich). Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt.Nötige Adapter-Aktualisierungen
Die folgenden Adapter müssen auf die genannten Minimalversionsnummern aktualisiert werden, da diese sonst nicht mit dem js-controller 2.2 funktionieren. Diese Updates am besten vorher ausführen, weil alle genannten Versionen auch mit den alten js-controller Versionen funktionieren.
- admin 3.7.7 oder höher! (Sonst können Custom-Objektdaten -das unter dem Schraubenschlüssel - nicht mehr deaktiviert werden
- iqontrol TBD (die Version ist primär nötig wenn man Admin 3.7.7 mit einem js-controller < 2.2 nutzt! siehe https://github.com/sbormann/ioBroker.iqontrol/issues/104)
Für js-controller 2.4 (vorauss Ende März) ist geplant eine Funktion für Adapter zu entfernen. Alle Adapter welche diese nutzen schreiben bei der Nutzung einen Fehler ins Log. Bitte helft mit und meldet dies bei den Entwicklern bzw nutzt "Thumbs up" um zu zeigen das Ihr es auch nutzt.
Achtung: Slave-Systeme zuerst!
Bei einem Multi-Host-System, welches auf js-controller 2.1 läuft ist es beim Update auf Version 2.2 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!
Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 2.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 2.2 aktualisiert wurde!
Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mir npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.
Für alle "alten manuellen" Installationen gilt
- ioBroker muss gestoppt sein.
- Vor dem Update bitte prüfen das keine Prozesse mehr laufen
iobroker upgrade self
- ioBroker starten
Linux
- ioBroker stoppen (
iobroker stop
) - prüfen das keine Prozesse (Adapter, Backups) mehr laufen (
ps auxww|grep io
und auchps auxww|grep backup
). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben - Wie üblich wird das Update dann per
iobroker upgrade self
ausgeführt. - ioBroker starten (
iobroker start
)
Bei Fehlern:
Wenn bei der Linux-Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer nutzen und die Installation wiederholen.curl -sL https://iobroker.net/fix.sh | bash -
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels
sudo -H -u iobroker npm install iobroker.js-controller
versuchen. 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. Die großen Änderungen sind alle "Unter der Haube" versteckt.
Dazu, was Euch jetzt die ganzen Neuerungen bringen, findet Ihr weiter unten in diesem Text Informationen. Neue Funktionen als Basis für Weiterentwicklungen wurden behutsam integriert und einige bestehende Probleme gezielt behoben.
Mit
iobroker help
wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist.
Was hat sich geändert, was besonders ansehen/beachten?
Neben einiger weiterer Bugfixes, die fast in eine 2.1.2 eingeflossen wären, gibt es folgende Änderungen und fixes zu erwähnen:
- Logfiles sollten wieder sauber nach dem rotieren gelöscht werden. Logfiles werden jetzt beim Rotieren gepackt und ältere Files liegen daher als .gz Files im Verzeichnis (letztes nicht unter Windows)
- Restart von Instanzen funktioniert wieder zuverässig
- State und Object-Subscriptions des Systems und der eigentlichen Adapter-Logik werden nun getrennt ausgeführt. In der Vergangenheit konnte es in Ausnahmefällen hier zu Überschneidungen kommen, die dann Auswirkungen hatten. Diese Änderung sollte keinerlei Auswirkung auf Funktionen von Adaptern haben.
- Der Socket.io Kompatibilitätsschicht die in der 2.0/2.1 noch drin war um die Kommunikation von "neuen" Slaves mit einem "alten" Master zu erlauben wurde wie geplant entfernt.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
Weitere Details zu den Änderungen und Bugfixes ist im Changelog einzusehen.
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.
Ingo -
@apollon77 soll das so sein?
Bei einem Multi-Host-System, welches auf js-controller 2.1 läuft ist es beim Update auf Version 2.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!
-
@Lenny-CB Dnake, nein FIxe ich natürlich auf 2.2
-
@apollon77 sagte in js-controller 2.2 jetzt im Latest:
@Lenny-CB Dnake, nein FIxe ich natürlich auf 2.2
Huuu... ich dachte ganz kurz dran, was es wohl aufsich hat wenn man beim Update auf 2.2 erst auf 2.0 zurück muss.
Aber nun ist ja alles klar. -
Nach dem Update auf 2.2.7 hatte ich heute im Log diese Fehlermeldungen:
host.cloud 2020-01-06 11:47:48.764 info Restart adapter system.adapter.yeelight-2.0 because enabled host.cloud 2020-01-06 11:47:48.763 info instance system.adapter.yeelight-2.0 terminated with code 0 (NO_ERROR) host.cloud 2020-01-06 11:47:48.763 error Caught by controller[1]: operator: '==' } host.cloud 2020-01-06 11:47:48.762 error Caught by controller[1]: expected: true, host.cloud 2020-01-06 11:47:48.762 error Caught by controller[1]: actual: false, host.cloud 2020-01-06 11:47:48.762 error Caught by controller[1]: code: 'ERR_ASSERTION', host.cloud 2020-01-06 11:47:48.761 error Caught by controller[1]: name: 'AssertionError [ERR_ASSERTION]', host.cloud 2020-01-06 11:47:48.761 error Caught by controller[1]: generatedMessage: true, host.cloud 2020-01-06 11:47:48.760 error Caught by controller[1]: at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1083:3) host.cloud 2020-01-06 11:47:48.759 error Caught by controller[1]: { AssertionError [ERR_ASSERTION]: false == true yeelight-2.0 2020-01-06 11:47:48.221 info (11921) Terminated (NO_ERROR): Without reason yeelight-2.0 2020-01-06 11:47:48.219 info (11921) terminating yeelight-2.0 2020-01-06 11:47:48.188 info (11921) cleaned everything up... yeelight-2.0 2020-01-06 11:47:48.186 error at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1083:3) yeelight-2.0 2020-01-06 11:47:48.186 error (11921) AssertionError [ERR_ASSERTION]: false == true yeelight-2.0 2020-01-06 11:47:48.183 error (11921) uncaught exception: false == true
Platform: linux
Node.js: v10.18.0
NPM: 6.13.4 -
mal blöd gefragt, wie seh ich mir auf die schnelle nun eine log Datei an, z.b. von gestern 2020-01-05.gz??
-
@crunchip zless
-
@Brainbug sagte in js-controller 2.2 jetzt im Latest:
AssertionError [ERR_ASSERTION]: false == true
Hast Du ggf auch nodejs aktualisiert?
Das ist tief im socket Teil von nodejs und der controller hat damit nix zutun ... Google führt zu sowas
https://github.com/nodejs/node/issues/26351Reboote mal und schau mal obs dann immer noch passiert. SOnst Issue beim Adapter, da muss ggf ein Fehler abgefangen werden
-
ich habe soeben den js-controller auf 2.2 hochgezogen..
Jetzt läuft mein TR-064 Adapter nicht...
host.raspberrypi 2020-01-06 15:14:36.271 error instance system.adapter.tr-064.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.raspberrypi 2020-01-06 15:14:36.271 error Caught by controller[0]: at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3) host.raspberrypi 2020-01-06 15:14:36.271 error Caught by controller[0]: at startup (internal/bootstrap/node.js:283:19) host.raspberrypi 2020-01-06 15:14:36.271 error Caught by controller[0]: at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:585:3) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at tryModuleLoad (internal/modules/cjs/loader.js:593:12) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:653:32) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:778:30) host.raspberrypi 2020-01-06 15:14:36.270 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.tr-064/tr-064.js:16:20) host.raspberrypi 2020-01-06 15:14:36.269 error Caught by controller[0]: at Object.exports.Adapter (/opt/iobroker/node_modules/soef/soef.js:1383:23) host.raspberrypi 2020-01-06 15:14:36.269 error Caught by controller[0]: TypeError: fns.adapter is not a function host.raspberrypi 2020-01-06 15:14:36.269 error Caught by controller[0]: ^ host.raspberrypi 2020-01-06 15:14:36.269 error Caught by controller[0]: fns.adapter = fns.adapter(options); host.raspberrypi 2020-01-06 15:14:36.269 error Caught by controller[0]: /opt/iobroker/node_modules/soef/soef.js:1383
okay, geht wieder mit:
cd /opt/iobroker/ iobroker stop tr-064 cd /opt/iobroker/node_modules/iobroker.tr-064 npm install soef
-
@knopers1 An sich hätte ich jetzt gesagt "Stell mal auf Community Version um" ... aber warte mal damit wenns so tut ...
-
@apollon77 sagte in js-controller 2.2 jetzt im Latest:
Nötige Adapter-Aktualisierungen
iqontrol TBD (die Version ist primär nötig wenn man Admin 3.7.7 mit einem js-controller < 2.2 nutzt! siehe https://github.com/sbormann/ioBroker.iqontrol/issues/104)
Bin nun auch auf 2.2.7 mit admin 3.7.7 und nodejs 10.18.0 und alles läuft soweit.
iqontrol hab ich in Ver. 0.2.14 installiert aber noch nichts damit gemacht. Adapter ist grün und Frontend funktioniert. K.a. was mit TBD gemeint ist.Der Bug dass bei Änderung von zB History Einstellungen die materialUI Einstellungen verloren gehen existiert aber weiterhin.
https://github.com/ioBroker/ioBroker.js-controller/issues/544 -
Bei mir läuft nach Update auf 2.2.7 alles, wie es soll. Danke
-
@apollon77 sagte in js-controller 2.2 jetzt im Latest:
iqontrol TBD (die Version ist primär nötig wenn man Admin 3.7.7 mit einem js-controller < 2.2 nutzt! siehe
was ist TBD ? Welche Version ist das und ist die über github zu installieren ? Hat diese Version eine Versionsnummer ?
-
@dslraser Ich tipp auf to be done/decided. Wie schon erwähnt läuft 0.2.14 bei mir unauffällig weiter. Habe aber noch keine eigenen Views usw. erstellt.
-
@dslraser da ist auch ein Link zu einem GitHub issue. TBD (to be done) heißt: issue für den dev ist offen und er ist dran eine neue version zu machen. Ich kenne sie aber noch nicht weil es sie noch nicht gibt. Also : abwarten
-
@apollon77 sagte in js-controller 2.2 jetzt im Latest:
Also : abwarten
Danke für die Info.
wenn man Admin 3.7.7 mit einem js-controller < 2.2 nutzt!
also dann hier auch noch abwarten ?
-
Habe wieder beim Upgrade eine Fehlermeldung:
Ist aber sauber installiert. -
@dslraser mit nem 2.2.7er Controller ist wieder alles gut mit iqontrol. Geht nur um ältere Controller bei dem problem
-
@CKMartens die üblichen compile Warnungen von Unix-dgram beibringen nodejs Versionen. Kann man nix machen.
-
@apollon77
Ob das jetzt mit dem Controler zu tun hat oder mit Admin kann ich nicht so genau eingrenzen.
Aber bei mir ist im Vis Editor der horizontale Scrollbalken weg.
Normalerweise benötige ich den nie, aber da ich heute ein größeres Projekt importiert habe ist mir das so aufgefallen.
Fehler taucht bei Chrome und FF auf, liegt also vermutlich nicht am Browser.