NEWS
Beta Test js-controller 3.0.x auf GitHub
-
Aktuelle Test Version 3.0.6 Veröffentlichungsdatum 08.04.2020 Github Link npm install ioBroker/ioBroker.js-controller
Hallo in die Tester-Runde,
wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 3.0 (Releasename "Elena"). Wie auch bei den letzten beiden Versionen starten wir die erste Teststufe direkt von GitHub. Also bitte nur mitmachen wenn Ihr wisst was das heisst Aber auch der Weg zurück ist unten beschrieben.
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 Ende April kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.
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.1 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Details sehen wir dann.Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. 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 Crashed 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/ioBroker.js-controller/blob/master/README.md#error-reporting-via-iobroker-sentry
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 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
Installation
VOR der Installation
Wie bei jedem Test dieser Art: Bitte macht ein Backup!iobroker backup
bzw kopieren desiobroker-data
Verzeichnisses 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@version
installiert werden und sollte alles wieder herstellen.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.
Linux
Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell UNBEDINGT in das ioBroker Verzeichnis wechseln. Dann mittels
npm install ioBroker/ioBroker.js-controller
den Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.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 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 aktualisiert wurde!
Nötige Adapter-Aktualisierungen
- Pushover funktioniert in Version 1.1.x. Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.3.0 vom GitHub versuchen ob die Probleme damit behoben werden.
- tr-064 in Version 4.0.0 ist nötig
- 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. Hier ist beispielsweise radar2 schon bekannt. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.
Fehler
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 viacurl -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/ioBroker.js-controller
versuchen. Bitte berichtet solche Fälle hier im Thread.Nach der Installation
Nach der Installation den ioBroker wieder starten (z.B. mittelsiobroker start
).Wenn alles klappt merkt Ihr außer 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.
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/testen?
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"
- 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 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:
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!
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.
-
@apollon77 super, kommt morgen auf die testumgebung
-
@apollon77
Ich finde in den Features keine Angabe zur Erweiterung des Alias um getrennte Zuordnung von Kommando- und Status-Datenpunkt (PR #736). Ist diese Funktion vorhanden ? -
(foxriver76) Add ability to define separate read and write id for aliases (see Documentation)
-
@foxriver76
Danke. Habe ich übersehen. -
@apollon77 sagte in Beta Test js-controller 3.0.x auf GitHub:
npm install ioBroker/ioBroker.js-controller
Erste Tests auf meiner Testumgebung unter debian10 liefen mit node 10 sehr gut.
Keine Fehler bei der Installation und auch bei Start kamen lediglich die angekündigten Warnungen einiger Adapter.@apollon77 @foxriver76 @Bluefox @AlCalzone
Danke für die klasse Arbeit und die so rasante Entwicklung von iobroker.
Es ist Wahnsinn, was hier in den letzten Jahren entstanden ist und ich probiere weiterhin einen kleinen Anteil zu leisten -
KURZ-Bericht folgt:
Folgende Adapter bleiben Rot:
-
firetv.0
-
wifilight.0
Warnmeldungen:
1coronavirus-statistics.0 2020-04-08 21:00:05.549 warn (21724) This object will not be created in future versions. Please report this to the developer. coronavirus-statistics.0 2020-04-08 21:00:05.549 warn (21724) Object countryTranslator is invalid: obj.type has to exist
2
admin.0 2020-04-08 21:04:03.839 warn (13820) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
3
web.0 2020-04-08 21:15:27.595 warn (19708) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
Hinweis:
Die warn kommen im 10 Minuten Takt auch für andere Adapter. Stelle diese jetzt nicht alle rein. -
-
@sigi234 Was steht denn im Log, bei denen, die rot bleiben?
-
@foxriver76 sagte in Beta Test js-controller 3.0.x auf GitHub:
@sigi234 Was steht denn im Log, bei denen, die rot bleiben?
wifilight.0 2020-04-08 21:05:58.853 error at process._tickCallback (internal/process/next_tick.js:68:7) wifilight.0 2020-04-08 21:05:58.853 error at Promise.all.then (C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\adapter.js:7926:76) wifilight.0 2020-04-08 21:05:58.853 error at Object.options.ready (C:\Program Files\iobroker\Test\node_modules\iobroker.wifilight\node_modules\soef\soef.js:1131:13) wifilight.0 2020-04-08 21:05:58.853 error at checkIfUpdated (C:\Program Files\iobroker\Test\node_modules\iobroker.wifilight\node_modules\soef\soef.js:1006:20) wifilight.0 2020-04-08 21:05:58.853 error (19316) TypeError: Cannot read property 'getState' of undefined wifilight.0 2020-04-08 21:05:58.851 error (19316) uncaught exception: Cannot read property 'getState' of undefined
-
@sigi234 Ich nehme an firetv dasselbe? Ist ja auch soef..
-
@foxriver76 sagte in Beta Test js-controller 3.0.x auf GitHub:
@sigi234 Ich nehme an firetv dasselbe? Ist ja auch soef..
Ja
-
Was hat es denn mit soef auf sich? Liest man immer wieder mal hier im Forum. Ehemaliger Entwickler der eine lib bereitgestellt die aktuell nicht mehr gepflegt wird?
-
@darkiop Ja + kein Kontakt zu dem Entwickler. Einige Adapter haben wir mittlerweile erfolgreich zu uns umziehen können, wie tr-064. Allerdings selbst nach Umzug, muss alles was in seiner eigenen Lib gebaut wurde umgeschrieben werden. Leider nutzt die Lib nun Methoden die wir nicht mehr bereitstellen wollten, da Sie dem von uns gedachten Konzept widersprechen.
-
Super gute Arbeit von euch und Danke das ihr so ein geiles System erfunden habt bzw immer auf den neuesten Stand haltet.
Ich werde es auch mal auf meinen Test System ausprobieren und berichten.
Ich würde auch mich auch mal mit den Thema Adapter Programmierung auseinander setzen aber leider weiß ich noch nicht richtig wie es funktioniert.
Ich wünsche euch noch einen schönen Abend und bleibt gesund. -
Hi All,
GitHub hat nach erstem Feedback jetzt die 3.0.4:
- (Apollon77) Add "lc" property to list of allowed properties to set (prevent false positive errors with hm-rpc adapter)
- (Apollon77) Add mock for adapter.states.getState to prevent crashed with Soef Adapters
- (Apollon77) Make sure extendObject is checking object parts differently, prevent false positive loggings
Ebenso ist bekannt das Pushover in Version 1.1.x noch tut, Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.2.4 vom GitHub versuchen ob die Probleme damit behoben werden.
-
Hab gerade den neuen JS-Controller getestet (saubere Iobroker Installation, Update auf Admin-4.0.5 und JS-3.0.4 und danach Restore meiner bestehenden Installation).
Hat alles problemlos funktioniert und läuft alles wie vorher. Auch das löschen von Adaptern geht ohne Probleme aus der Admin-Oberfläche!
Das einzige das anders ist als vorher: Beim Restore wird nachdem ein Adapter/eine Instanz wiederhergestellt wurde, die Konfigurationsseite der Instanz geöffnet die geschlossen werden muss.
Sonst läuft alles bisher problemlos!!
-
@Einstein67 sagte in Beta Test js-controller 3.0.x auf GitHub:
Das einzige das anders ist als vorher: Beim Restore wird nachdem ein Adapter/eine Instanz wiederhergestellt wurde, die Konfigurationsseite der Instanz geöffnet die geschlossen werden muss.
Du meinst wenn Admin dabei geöffnet ist? Ja das kann sein. Admin reagiert auf ein bestimmtes Objekt update und macht dann dinge. Da fehlte bisher ein Objekt Update ... Wenn es stört dann bitte mal Admin issue anlegen. Wenn ok dann lassen
-
@apollon77
Irgendwie hat mich das in der Art schon immer genervt. Habe meistens im Browser 4 tabs vom Admin offen(Objekte, Instanzen, logs, Javascript).
Wenn ich dann ein Adapter neu installiere, dann springen alle tabs in die Einstellungen der Instanz.Wäre schön wenn entweder nur das aktive tab dahin springt oder keins davon. Mir ist ja bewußt das man da was einstellen muss.
-
@e-s Admin Issue bitte
-
So Update ist durch und läuft.
Alles was mit Warnungen im Log steht, hat @sigi234 ja schon auf Github ein Issues angelegt, zumindest mal bei allen Adaptern bei denen ich auch die Warnung hatte