NEWS
js-controller 3.3 jetzt im Beta
-
3.3.2 versucht ja Massen an Warnmeldungen. Besonders stark bei mir betroffen sind netatmo und stiebel-isg
@th-g
Issues mit den Meldungen öffnen, danach vielleicht das log level auf error setzen. -
@sigi234
Gerade mein produktiv System umgestellt und sehr langweilig, außer dass sehr viele Adapter nun Objekte und Strings anmeckern, wie oben schon geschrieben wurde, und die nun alle Loglevel "error" bekommen haben, nichts was ich weiter tun könnte und das bei dem sau Wetter ;) -
@jan1 Gib mal deine UUID von der Installation ... ich bau extra für dich in die nächste Version ein paar schöne Fehler ein, ok? ;-)
@apollon77
Nein, bitte keine extra Mühen, nur weil das hier fast zu rund läuft :) -
Hallo,
habe das update gemacht und es kommen jetzt diese Meldungen.
Die verstehe ich zwar, nur kommen die von verschiedenen Adaptern und diese habe ich ja nicht selber angelegt.
Könnte es was damit zu tun haben ?
@knallix
Für jeden betroffenen Adapter auf github ein entsprechendes Issue eröffnen, falls es noch keines gibt.Exemplarisch für den info-Adapter z. B.:
https://github.com/iobroker-community-adapters/ioBroker.info/issues/269
-
ich war ganz mutig und habe es über npm installiert.
leider bekomme ich den iobroker nicht gestoppt, daher nimmt er diese Version nicht anhabe
iobroker stopundsudo systemctl stop iobrokerausprobiert.in der Konsole kommt bei
iobroker -vbereits die 3.3.2, aber in der GUI leider nicht@homoran sagte in js-controller 3.3 jetzt im Latest:
leider bekomme ich den iobroker nicht gestoppt,
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung... habe dann den admin gestoppt und wieder gestartet, dann ging es.
@apollon77 ein issue wert? -
@homoran sagte in js-controller 3.3 jetzt im Latest:
leider bekomme ich den iobroker nicht gestoppt,
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung... habe dann den admin gestoppt und wieder gestartet, dann ging es.
@apollon77 ein issue wert? -
@homoran sagte in js-controller 3.3 jetzt im Latest:
leider bekomme ich den iobroker nicht gestoppt,
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung... habe dann den admin gestoppt und wieder gestartet, dann ging es.
@apollon77 ein issue wert?@fredf sagte in js-controller 3.3 jetzt im Latest:
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung
ich hatte bei mir dann einfach den NUC rebooted, danach ging es.
später hatte ich einige code7 (already running) im log vor dem reboot gesehen.
wahrscheinlich hatte das den stop vereitelt -
@knallix
Für jeden betroffenen Adapter auf github ein entsprechendes Issue eröffnen, falls es noch keines gibt.Exemplarisch für den info-Adapter z. B.:
https://github.com/iobroker-community-adapters/ioBroker.info/issues/269
@thomas-braun said in js-controller 3.3 jetzt im Latest:
@knallix
Für jeden betroffenen Adapter auf github ein entsprechendes Issue eröffnen, falls es noch keines gibt.Exemplarisch für den info-Adapter z. B.:
https://github.com/iobroker-community-adapters/ioBroker.info/issues/269
Okay mache ich. Danke
Hatte erst gedacht das es vielleicht am Update liegt.. Da so viele betroffen sind :-) -
@thomas-braun said in js-controller 3.3 jetzt im Latest:
@knallix
Für jeden betroffenen Adapter auf github ein entsprechendes Issue eröffnen, falls es noch keines gibt.Exemplarisch für den info-Adapter z. B.:
https://github.com/iobroker-community-adapters/ioBroker.info/issues/269
Okay mache ich. Danke
Hatte erst gedacht das es vielleicht am Update liegt.. Da so viele betroffen sind :-)@knallix sagte in js-controller 3.3 jetzt im Latest:
Hatte erst gedacht das es vielleicht am Update liegt
Klar liegt das 'am Update'. Der js-controller ist jetzt etwas strenger was die types angeht. Da sind jetzt ganz viele Adapter von betroffen. Deswegen ja auch die Issues bei den einzelnen Adaptern, das muss dann dort im Code angepasst werden.
-
@knallix sagte in js-controller 3.3 jetzt im Latest:
Hatte erst gedacht das es vielleicht am Update liegt
Klar liegt das 'am Update'. Der js-controller ist jetzt etwas strenger was die types angeht. Da sind jetzt ganz viele Adapter von betroffen. Deswegen ja auch die Issues bei den einzelnen Adaptern, das muss dann dort im Code angepasst werden.
Eine notlösung ist ein Downgrade auf js-controller@3.2.16 ist halt ein aspirin.
-
Eine notlösung ist ein Downgrade auf js-controller@3.2.16 ist halt ein aspirin.
@stratos-gkrekidis
Naja, ist keine Notlösung oder Aspirin sondern die vorgesehene stable-Version, wenn man kein Beta-Testing betreiben kann und/oder will.
Und auch die entsprechenden Informationen zu den Beta-Versionen nicht lesen will. -
Hallo ioBroker-Community,
diesmal etwas früher als ursprünglich geplant, kommt heute der neue js-controller 3.3 (Releasename "Hannah") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Der Grund ist, dass wir für Admin5 ein paar Optimierungen und Verbesserungen benötigen.
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 16.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Entwickler 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/topic/44566/how-to-node-js-für-iobroker-richtig-updaten-2021-editionInformationen zur Version
Auch wenn die Zeit seit dem letzten js-controller Update recht kurz war sind ein paar Optimierungen und Verbesserungen und neue Features zusammengekommen.
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 diesmal, dass Adapter-Abhängigkeiten bei Updates besser berücksichtigt werden und das die Startreihenfolge von Adaptern nach Typ optimiert wird und auch mitbestimmen kann (mit Admin5). 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 120 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.3 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2/3.x ist problemlos möglich. Nur die Node.js Version muss weiterhin 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.Für die User die deie experimentelle JSONL-Datenbank ausprobieren bitte unter https://forum.iobroker.net/post/622194 nachsehen.
Nötige Adapter-Aktualisierungen
Aktuell sind keine Inkompatibilitäten bekannt. Admin sollte mit 4.x und auch 5.x funktionieren, mit Admin 5.x sollten die potentiell fehlenden Adapternamen wieder angezeigt werden.
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, 3.1 oder 3.2 läuft, ist es beim Update auf Version 3.3 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.3 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Update muss 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.3 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 update- ioBroker muss gestoppt sein.
- Vor dem Update bitte prüfen das keine Prozesse mehr laufen
iobroker upgrade self- ioBroker starten
Linux
iobroker update- 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 - Wie üblich wird das Update dann per
iobroker upgrade selfausgeführt. - ioBroker starten (
iobroker start)
Wichtig: Falls es mit js.controller 3.2.x bei update oder upgrade einen Fehler gibt "No connection to database" dann bitte nochmals versuchen, wenn wieder passiert folgende Schritte ausführen:
- Editiere /opt/iobroker/iobroker-data/iobroker.json
- Unter objects und states gibt es ein ' "connectTimeout": 2000,`
- Zahl ändern in 5000 draus.
- Neu versuchen
- Nach dem Upgrade am besten den Wert wieder zurücketzen weil der js-controller 3.3 hier optimiert und länger wartet
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 sollte der ioBroker automatisch wiederder gestartet werden. Falls doch nicht bitte mittels
iobroker startstarten.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!
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
- Adapter-Instanzen starten nach den definierten Tiers
iobroker upgradebeachtet nun Adpater-Abhängigkeiten- backitup wird automatisch installiert bei neuen Installationen
- Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden, da nun auch Datentypen und min/max-Werte geprüft werden. Bitte bei den Adapter-Repos melden
Speziell die Entwickler sollten bitte die genannten Deprecations und neuen Features 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 sagte: if it's a number we perform additional checks for min and max
Dies hatte ich schon vor langer Zeit angeregt, wurde von @Bluefox aber nur im Javascript-Adapter umgesetzt. Wenn jetzt der js-controller die Prüfungen macht, kann man sie aus dem Javascript-Adapter wieder entfernen. Unterschied: Javascript gibt keine Warnung aus, sondern begrenzt den Wert zwischen min und max.
adapter.js, ab Zeile 1756:
if (!(obj.common.type === 'mixed' || obj.common.type === typeof state.val || obj.common.type === 'array' && typeof state.val === 'string' || obj.common.type === 'json' && typeof state.val === 'string' || obj.common.type === 'file' && typeof state.val === 'string' || obj.common.type === 'object' && typeof state.val === 'string')ist nicht korrekt.
obj.common.type === 'array' && typeof state.val === 'object' || // typeof Array ist objecttypeof state.val sollte bei "object" kein "string" sein.
-
Eine notlösung ist ein Downgrade auf js-controller@3.2.16 ist halt ein aspirin.
@stratos-gkrekidis leider geht bei mir auch der Downgrade nicht =(, habs installiert, zeigt mir via Shell auch an das 3.2.16 ist,aber im Interface immernoch 3.3.2, hab leider kein bock auf die Fehlermeldungen im log..
gibts ne andere lösung? Im log steht als resultat wenn ich " npm install iobroker.js-controller@3.2.16
> iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 18.746s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details -
@homoran sagte in js-controller 3.3 jetzt im Latest:
leider bekomme ich den iobroker nicht gestoppt,
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung... habe dann den admin gestoppt und wieder gestartet, dann ging es.
@apollon77 ein issue wert? -
@apollon77 sagte: if it's a number we perform additional checks for min and max
Dies hatte ich schon vor langer Zeit angeregt, wurde von @Bluefox aber nur im Javascript-Adapter umgesetzt. Wenn jetzt der js-controller die Prüfungen macht, kann man sie aus dem Javascript-Adapter wieder entfernen. Unterschied: Javascript gibt keine Warnung aus, sondern begrenzt den Wert zwischen min und max.
adapter.js, ab Zeile 1756:
if (!(obj.common.type === 'mixed' || obj.common.type === typeof state.val || obj.common.type === 'array' && typeof state.val === 'string' || obj.common.type === 'json' && typeof state.val === 'string' || obj.common.type === 'file' && typeof state.val === 'string' || obj.common.type === 'object' && typeof state.val === 'string')ist nicht korrekt.
obj.common.type === 'array' && typeof state.val === 'object' || // typeof Array ist objecttypeof state.val sollte bei "object" kein "string" sein.
@paul53 Der Controller wird jetzt warnen, in einer Späteren version das "set" ablehnen. Die Entwickler müssen sauber arbeiten. Der Javascript Adapter ist eher auf die "End-Nutzer" ausgerichtet, daher wird dort der Wert angepasst ... ist netter und weniger frustrierend für die Entwickler.
Das andere ist korrekt! Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
-
@stratos-gkrekidis leider geht bei mir auch der Downgrade nicht =(, habs installiert, zeigt mir via Shell auch an das 3.2.16 ist,aber im Interface immernoch 3.3.2, hab leider kein bock auf die Fehlermeldungen im log..
gibts ne andere lösung? Im log steht als resultat wenn ich " npm install iobroker.js-controller@3.2.16
> iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 18.746s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details -
@stratos-gkrekidis leider geht bei mir auch der Downgrade nicht =(, habs installiert, zeigt mir via Shell auch an das 3.2.16 ist,aber im Interface immernoch 3.3.2, hab leider kein bock auf die Fehlermeldungen im log..
gibts ne andere lösung? Im log steht als resultat wenn ich " npm install iobroker.js-controller@3.2.16
> iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 18.746s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details@canim probiere mal hier mit
iobroker stop
npm i iobroker.js-controller@3.2.16 --production
iobroker start -
@paul53 Der Controller wird jetzt warnen, in einer Späteren version das "set" ablehnen. Die Entwickler müssen sauber arbeiten. Der Javascript Adapter ist eher auf die "End-Nutzer" ausgerichtet, daher wird dort der Wert angepasst ... ist netter und weniger frustrierend für die Entwickler.
Das andere ist korrekt! Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
@apollon77 sagte: Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
Wirklich? Ich habe bisher den Typ "array" für echte Arrays und den Typ "object" für echte Objekte (außer Arrays) in Javascript verwendet, was funktioniert.