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/266625

    Error/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 des iobroker-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 auch ps 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 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 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 hat iobroker 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!


  • Forum Testing Most Active

    @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 🙂
    2454908a-2781-4bf3-8a91-d210df5a7a03-image.png



  • @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



  • @apollon77

    ...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.js

    radar2.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`)
    

Log in to reply
 

Suggested Topics

1.7k
Online

29.8k
Users

36.9k
Topics

494.1k
Posts