NEWS
js-controller 3.0/3.1 jetzt im Latest!
-
Hallo ioBroker-Community,
wie im neuen Release-Cycle für den js-controller geplant, kommt heute der neuen js-controller 3.0 (Releasename "Elena") bzw. inzwischen 3.1 (Releasename "Francesca") ins Latest Repository (sollte im laufe des Tages 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
Nach dem frühzeitigen aus für Node.js 8 bereits letzten November setzt diese neue Version nun Node.js 10.x voraus und funktioniert ebenso mit Node.js 12.x und, nach aktuellem Stand, auch mit der in den nächsten Tagen kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.
Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625Error/Crash-Reporting mittels Sentry
Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. Der js-controller weisst bei der Erstinstallation einer Version >3.1 beim Upgrade gesondert darauf hin! Wenn also der js-controller mit einer Fehlermeldung abstürzt (und nur dann!) werden die Fehlerdetails anonymisiert an einen von uns selbst in Deutschland betriebenen Sentry-Server gemeldet. IPs o.ä. personalisierte Daten werden nicht gespeichert. Dieses Fehler-Reporting hilft uns bei Crashes schneller und genauer zu sehen was los ist und solche Fehler noch schneller beheben zu können. Bitte legt für Crashes die Ihr seht bitte trotzdem weiterhin GitHub-Issues an und unterstützt uns indem Ihr das Fehler-Reporting aktiviert lasst. Weitere Details und wie es deaktivierbar ist findet Ihr unter https://github.com/ioBroker/plugin-sentry#what-is-sentrysentryio .
Auch immer mehr Adapter nutzen diese Form des Fehler-Reportings.Informationen zur Version
Diese Version bringt einige Features mit, ist aber ebenso der Beginn um "unter der Haube" einiges zu vereinheitlichen und Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen. Es gibt allerdings auch neue Features mit die die Adapter-Entwicklung vereinfachen und Hürden abbauen. Aus diesem Grund ist auch die Liste der Themen welche vor allem für Entwickler relevant sind diesmal recht lang.
Allerdings werden Aktionen von Adaptern die eigentlich den Regeln widersprechen jetzt über Logging sichtbar gemacht. Bitte unterstützt hier und legt bei den relevanten Adaptern Issues an das diese Dinge gefixt werden können. Für den js-controller 3.2 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Dazu dann zu gegebener Zeit mehr.Darüber hinaus gibt es natürlich viele Optimierungen und Fixes. Mehr dazu 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 der 2.2!
Ich bedenke mich diesmal besonders bei @foxriver76, @AlCalzone und natürlich @Bluefox für die aktive Mitarbeit an dieser Version!
Der js-controller 3.0/3.1 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 diesmal zwei Adapter die Aktualisiert werden müssen und einige weitere die aktualisiert werden sollten um die oben genannten Warnungen zu vermeiden! 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 3.0/3.1 funktionieren. Diese Updates am besten vorher ausführen, weil alle genannten Versionen auch mit den alten js-controller Versionen funktionieren.
- pushover 1.1.x funktioniert, falls 1.2.x im Einsatz ist bitte auf 1.3.x aktualisieren
- tr-064 4.0.0
- tr-064-community wird nun offiziell nicht mehr funktionieren.
- Die soef Adapter firetv und wifilight funktionieren nicht mehr und haben Updates bekommen: Bitte wifilight 1.1.0 bzw firetv 1.0.0 nutzen. Falls jemand "wifilight-community" oder "firetv-community" nutzt bitte wieder zurück auf die anderen wechseln.
- Der soef Adapter lightify funktioniert ebenso nicht mehr. Da Lightify als Platform allerdings in ein paar Monaten nicht mehr weiter betrieben wird haben wir entscheiden hier keinen Aufwand mehr reinzustecken. Am besten die Geräte über zigbee direkt anbinden.
Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Die wichtigsten Adapter sind mit neuen Versionen im Latest Repository allerdings schon gefixt. Falls ein Adapter "nervt" dann bitte dem Entwickler melden und den Loglevel auf "Error" setzen.
Achtung: Slave-Systeme zuerst!
Bei einem Multi-Host-System, welches auf js-controller 2.2 läuft ist es beim Update auf Version 3.0/3.1 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 3.0 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 3.0/3.1 aktualisiert wurde!
Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mit 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 Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix
wer schon einen js-controller 2.x 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-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 gibt es folgende Änderungen und Fixes zu erwähnen:
- Der neue js-controller kann erkennen wenn es ein Node.js Update gab durch welches ggf, Adapter nicht mehr funktionieren und sollte diese automatisch reparieren (rebuilden). Wer also überlegt in dem Zuge des Tests seine Node.js Version anzuheben bitte mal explizit NICHT die übliche Anleitung nach dem Node-js update mit dem Rebuild befolgen sondern ioBroker einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt"
- Einige Adapter fangen Probleme mit Modulen ab und loggen dann einen Fehler, der nicht als automatischer Rebuild erkannt wird. Diese können manuell mittels
iobroker rebuild adaptername
oder falls das nicht funktioniert hatiobroker rebuild adaptername --install
neu gebaut werden. Diese Befehle lösen faktisch reinstall.js u.a. ab. - Der js-controller prüft jetzt vor jedem Start eines Adapters wieviel RAM noch frei ist und warnt im Log falls dies zu wenig ist. Die Standard-Limits sind 100MB (Warnung) bzw. 50MB (Fehler) und dies soll verhindern das mehr Adapter-Prozesse genutzt werden als RAM verfügbar ist. Hier sind wir gespannt auf Eure Berichte.
- Logfiles sollten jetzt wirklich nach dem täglichen rotieren auf Linux-Systemen als .gz Dateien abgelegt werden.
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.
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.
Ingo
-
FAQ
FAQ1: Ich sehe Einträge wie "will not read this file (socketio.png) in future versions: socketio.admin is not an object of type "meta"" im Logfile Was soll ich tun?
Wenn der Name mit ".admin" lautet (wie hier "socketio.admin") dann bitte einfach ein "iobroker upload socketio" (in dem Fall) machen. Es kan sein das früher mal Admin Files nocht korrekt angelegt wurden oder auch Dinge nocht ganz vollständig gelöscht wurden. Das Upload geht auch wenn Ihr den Adapter gar nicht mehr installiert habt. Danach sollte aber die Meldung weg sein.
-
DANKE für die unermüdliche Arbeit und die ganz tollen Ergebnisse! Chapeau!
-
@harrym sagte in js-controller 3.0 jetzt im Latest!:
DANKE für die unermüdliche Arbeit und die ganz tollen Ergebnisse! Chapeau!
Dito
-
hi wie kann man die Version überprüfen:
root@ioBroker-OPiplus2e:/opt/iobroker# iobroker stop root@ioBroker-OPiplus2e:/opt/iobroker# iobroker upgrade self Host "ioBroker-OPiplus2e" is up to date. root@ioBroker-OPiplus2e:/opt/iobroker# iobroker start
Wenn ich versuche das upgrade zu machen sagt er ist auf den den neusten Stand.
Platform: linux os: linux Architecture: arm CPUs: 4 Speed: 1296 MHz Model: ARMv7 Processor rev 5 (v7l) RAM: 1.9 GB System uptime: 1 T. 01:07:24 Node.js: v12.16.2 Disk size: 14.1 GiB Disk free: 7.7 GiB adapters count: 345 NPM: v6.14.4 Uptime: 00:02:38 Active instances: 16
yp: js-controller Titel: JS controller OS: linux Verfügbar: 2.2.9 Installiert: 2.2.9 Ereignisse: ↦18 / ↦13
hmm
-
@SolarGuido Da ist aber jemand ungeduldig
Liess mal gaaanz oben de allerersten Satz ...
sollte im laufe des Tages bei allen auftauchen
Du kannst ein "iobroker update" versuchen ob das Repo-File schon bei Dir aktualisiert ist ... ansonsten kommt das in den nächsten Stunden. Das ist in einem CDN und kann daher bissl dauern bis es alle haben
-
@apollon77 sagte in js-controller 3.0 jetzt im Latest!:
CDN und kann daher bissl dauern bis es alle haben
ich bin einfach immer zu ungeduldig... Sorry
iobroker update funzt !
ioBroker-OPiplus2e Typ: js-controller Titel: JS controller OS: linux Verfügbar: 3.0.14 Installiert: 3.0.14 Ereignisse: ↦19 /
immer noch dieser Sharp Fehler ... das kriegt man nicht nachträglich installiert ? (hab euer Image damals genommen...)
-
@apollon77
eine kleine Schönheitskorrektur wäre erwünscht
Sofern node.js 12.x als Empfehlung kommt, wäre es schön wenn im Info-Adapter der Warnhinweis für die v12 nicht mehr kommen würde
-
@BBTown g das ist nur ein "warning" und kein "error" gg
-
@BBTown Korrekt. Die Empfehlung wird mit Einführung in Stable geändert. Da steht das schon auf der Liste
-
...einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt"
Meinst du das:
2020-04-21 01:14:56.184 - info: host.tims-pi1 Rebuild for adapter system.adapter.ham.0 not successful in 3 tries. Adapter will not be restarted again. Please execute "npm install --production" in adapter directory manually.
-
@ticaki exakt. Hier wäre da vollständige log interessant. Und dann auch das log wenn du „iobroker rebuild ham --install„ manuell aufrufst.
-
V3? Und ich hab's bisher nichtmal auf V2 geschafft.
-
Funktioniert jetzt der Yeelight Adapter? Hatte gelesen das der mit der 3 nicht funktioniert.
-
@padrino na dann aber hopp hopp
-
@root_ Ich denke das bisher niemand etwas da gemacht hat, aber der Fehler den ich kenne war eher ein genereller Adapterfehler und nichts was mit dem controller zu tun hat.
Am besten mal noch das Log was im Issue schon existiert um ein Debug Log erweitern. Vom reinen Code her sollte der einzige Fall der im anderen Thread gemeldet wurde (https://github.com/iobroker-community-adapters/ioBroker.yeelight-2/issues/57) eigentlich abgefangen sein
-
Den Fehler meinte ich. Dann werd ich mal loslegen. Danke für die schnelle Antwort.
-
Läuft scheinbar alles rund.
Lediglich eine Warnmeldung kam beim ersten start nach dem Update:host.ioBroker 2020-04-21 08:00:08.340 warn instance system.adapter.tvspielfilm.0 already running with pid 3141
scheinbar hat er da versucht den doppelt zu starten.
-
Bekomme nach den Update den Radar2 nicht zum laufen
radar2.0 2020-04-21 08:25:03.044 error (64792) Adapter Error, stop: TypeError: Cannot read property 'bind' of undefined at Function.initAdapter (/opt/iobroker/node_modules/@frankjoke/myadapter/myAdapter.js:252:65) at resolve.then (/opt/io radar2.0 2020-04-21 08:25:02.995 info (64792) starting. Version 1.2.1 in /opt/iobroker/node_modules/iobroker.radar2, node: v10.20.1, js-controller: 3.0.14
Neuinstallation mit upload hat auch nichts gebracht.
Edit:
Hab das mal gemacht, jetzt gehts.cd /opt/iobroker/node_modules/@frankjoke/myadapter/
sudo mv myAdapter.js myAdapter.bakup
wget -O myAdapter.js https://forum.iobroker.net/assets/uploads/files/1570619515405-myadapter.jsradar2.0 2020-04-21 09:02:06.343 warn (130806) adapter.objects.getObjectList is deprecated, and will be removed in the future. Please use adapter.getObjectList/Async. Report this to Developer!
Bekomme jetzt nur noch diese Warnung.
-
@root_ dann gebe mal diese Befehle in die Konsole ein.
sudo apt-get install libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp-scan`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which node`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hcitool`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hciconfig`) sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which l2ping`)