NEWS
Alpha Test js-controller 5.0
-
Aktuelle Test Version 5.0.1-alpha.0-20230330-e0b409fe Veröffentlichungsdatum 30.03.2023 Hallo ioBroker-Community,
Heute möchte ich Euch den js-controller 5.0 für einen ersten Alpha-test zur Verfügung stellen. Dieser Post enthält alle wichtigen Infos.
Node.js Versions-Anforderungen
In diesem Release entfällt Node.js 12.x welches seit April letztem Jahr nicht mehr gepflegt wird. Node.js 18.x ist dazugekommen. Die unterstützten Node.js Versionen sind: 14.18.0+, 16.4.0+ und 18.x. Die empfohlene Node.js Version für ioBroker haben wir vor kurzem auf 18.x angehoben.
Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/topic/64032/update-nodejs-best-practise-supported-14-16-und-18 !Informationen zur Version
In dieser Version wurde die Umstellung des Quellcodes auf TypeScript sehr stark vorangetrieben (inzwischen bei 76%), wodurch am Ende die Stabilität weiter steigt weil viele Code-Fehler nicht mehr auftreten können. Natürlich sind neben Optimierungen und Fehlerbehebungen auch ein paar neue Features hinzugekommen. Auch wenn mit dieser Version keine neuen Prüfungen hinzukommen, die zu Log-Ausgaben bei Adaptern führen, meldet aktuelle Logausgaben bitte weiterhin bei den Adaptern.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.
Für die aktive Mitarbeit an dieser Version des js-controller bedanke mich diesmal wieder besonders bei foxriver76, AlCalzone und natürlich Bluefox und auch ein paar weiteren Entwicklern!
ACHTUNG backups inkompatibel bei Downgrades!!
Neben der Node.js Version gibt es eine wichtige Inkompatibilität: Backups die mit der 5.0 des js-controller erstellt wurden lassen sich nicht mit einem js-controller 4 oder kleiner wieder restoren!
Darüber hinaus ist der js-controller 5.0 generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2/3.x ist problemlos möglich. Wir empfehlen allerings vor dem Update auf die 5.0 idealerweise ein Update auf die 4.0 und vorher auf 3.3.x durchzuführen, da ein Downgrade nach einem erfolgten Update nur auf eine 3.3.x möglich ist (siehe FAQ)! Nur die Node.js Version muss weiterhin mindestens 16.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen
Aufgrund einiger internen Umstellungen brauchen wieder einige Adapter Updates. Diese sollten am besten VOR dem Update installiert werden!
Bitte dazu die Informationen weiter unten beachten!
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. Eine alte 4.0.x-Version des js-controller kann im Notfall einfach wieder pernpm install iobroker.js-controller@version
("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen (Letzter Stable Stand ist die 4.0.24)Nötige Adapter-Aktualisierungen
Am besten dennoch VOR dem js-controller Update alle verfügbaren Adapter-Updates prüfen und alle Updates installieren, die im Changelog auf Optimierungen oder Anpassungen für den js-controller 4.0 oder höher hinweisen.
Diesmal sind doch einige Adapter auf der Liste die man updaten muss! Siehe Spoiler!
Achtung: MASTER-Systeme Reihenfolgen beachten!
Bei einem Multi-Host-System, welches auf js-controller 2.2, 3.x oder 4.0.x läuft, ist es beim Update auf Version 5.0 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 Bitte die jeweiligen Update Threads der empfohlenen Zwischenversionen prüfen.
Windows
Generell muss das Update manuell via npm installiert werden.Hierzu im ioBroker-Verzeichnis nach stoppen des ioBroker den Befehl
npm i iobroker.js-controller@next
ausführen.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 cd /opt/iobroker
- Das Update erfolgt via
npm i iobroker.js-controller@next
- 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 oder höher 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 mittelssudo -H -u iobroker npm install iobroker.js-controller
versuchen. Bitte berichtet solche Fälle hier im Thread.NACH der Installation
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 die Features
- generell bitte im CLI und auch sonst überall drüber schauen. Die Typescript Umstellungen haben sehr viel Code angefasst.
- Falls jemand sporadisch Alias Fehler im Log hatte bitte versuchen diese mit der neuen version wieder zu provoziere und rückmelden
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.
Bitte checkt auch die "Known issues Liste" (zweiter Post) mit den Dingen die aktuell während der Alpha bekannt sind und bis zum Releasen noch angepasst werden.
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.
Bitte postet auch die Ausgabe von
iob diag
mit rein.Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!
Ingo
- ioBroker stoppen (
-
Alpha Changelog
5.0.1-alpha.0-20230330-e0b409fe
- Initial version
5.0.1-alpha.0-20230403-fd495c2e
- Fixes missing logging object when logTransporter is used (e.g. Admin)
- Fixes other issue with logTransporter (e.g. Admin) - events should now stream again in Admin
- Fixed Compact group initialization
- Fixes Binary/Text detection in writeFile
- Fixes sendToHost (all) command
5.0.1-alpha.0-20230406-4552d569
- Fixes compact mode
- Hide warning about "www folder not found" for widgets adapters
5.0.1-alpha.0-20230418-efa3e809
- Fixed issue with certificate validity on leap years
- Backup fixed (Fixed wrong return type on db level for readFile promisified)
- Remove windows bat files completely, installer will create them when needed
- Respect dns resolution (ipv4/ipv6 first) from config internally and provide relevant methods via adapter-core - I theory a ipv6 only iobroker in a ipv6 only network is possible with this!
Changelog 5.0.1-alpha.0-20230525-c580eb7e
- drop support for nodejs 14 with controller 5 as it is EOL
- Enable upgrade of js-controller via Admin UI (Linux only) - will be testable when we start with Beta
- fix wrong hostname after backup restore
- new
io-package
flagcommon.supportedMessages
to replacemessagebox
and other messagebox-related properties adapter.sendTo
now accepts an optionaltimeout
argument
Known issues
- Doorbord Adapter broken: GitHub versionn tut
-
-
vergiss es... läuft.. der Fehler ist aus meiner DEV Umgebeung
-
Läuft hier auch ohne großen Schluckauf.
-
-
Wollte Kodi installieren:
2023-03-30 19:55:00.820 - error: host.SmartHome iobroker npm ERR! code ENOENTnpm ERR! syscall spawn gitnpm ERR! path gitnpm ERR! errno -4058npm ERR! enoent An unknown git error occurrednpm ERR! enoent This is related to npm not being able to find a file.npm ERR! enoent npm ERR! A complete log of this run can be found in:npm ERR! C:\WINDOWS\system32\config\systemprofile\AppData\Local\npm-cache\_logs\2023-03-30T17_54_54_879Z-debug-0.log 2023-03-30 19:55:00.821 - error: host.SmartHome iobroker host.SmartHome Cannot install iobroker-community-adapters/ioBroker.kodi#1ca9561e416237455374853f0415f1b95753cf50: 4294963238 2023-03-30 19:55:01.847 - info: host.SmartHome iobroker exit 25
-
Ich meine mich erinnern zu können das kodi auch ohne js-controller5 problematisch zu installieren sein kann.
Hier funktioniert es allerdings:
echad@chet:~ $ iob add kodi NPM version: 9.5.1 Installing iobroker.kodi@2.0.9... (System call) added 13 packages in 13s 101 packages are looking for funding run `npm fund` for details host.chet install adapter kodi upload [18] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/_data.json _data.json application/json upload [17] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/admin.d.ts admin.d.ts video/mp2t upload [16] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/background.jpg background.jpg image/jpeg upload [15] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/de/translations.json i18n/de/translations.json application/json upload [14] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [13] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [12] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [11] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [10] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [9] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [8] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [7] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [6] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/uk/translations.json i18n/uk/translations.json application/json upload [5] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [4] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/index_m.html index_m.html text/html upload [3] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/kodi.png kodi.png image/png upload [2] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/remote.png remote.png image/png upload [1] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/tsconfig.json tsconfig.json application/json upload [0] kodi.admin /opt/iobroker/node_modules/iobroker.kodi/admin/words.js words.js application/javascript host.chet object system.adapter.kodi created/updated host.chet create instance kodi host.chet object system.adapter.kodi.0.alive created host.chet object system.adapter.kodi.0.connected created host.chet object system.adapter.kodi.0.compactMode created host.chet object system.adapter.kodi.0.cpu created host.chet object system.adapter.kodi.0.cputime created host.chet object system.adapter.kodi.0.memHeapUsed created host.chet object system.adapter.kodi.0.memHeapTotal created host.chet object system.adapter.kodi.0.memRss created host.chet object system.adapter.kodi.0.uptime created host.chet object system.adapter.kodi.0.inputCount created host.chet object system.adapter.kodi.0.outputCount created host.chet object system.adapter.kodi.0.eventLoopLag created host.chet object system.adapter.kodi.0.sigKill created host.chet object system.adapter.kodi.0.logLevel created host.chet object kodi.0.info.connection created host.chet Set default value of kodi.0.info.connection: false host.chet object system.adapter.kodi.0 created
Wohl eher kein js-controller5-Thema.
-
@arteck admin issues bitte anlegen. Nix controller Thema.
-
@sigi234 Kodi braucht ein installiertes git weil es eine git dependency hat. Hast du das? Bei Windows bestimmt im Pfad wo es sein muss. Ist im Standard nicht installiert.
-
Master Slave System wurde erfolgreich auf die neue js-controller Version aktualisiert. Bisher erstmal keine wirklichen Probleme.
Wenn ich im Admin das log Fenster offen habe, dann aktualisieren sich die Log Einträge nicht automatisch, sondern ich muss per Reload Button die Aktualisierung vom Log triggern. Ist das bei euch auch so?
Edit: https://github.com/ioBroker/ioBroker.js-controller/issues/2191
-
@feuersturm sagte in Alpha Test js-controller 5.0:
dann aktualisieren sich die Log Einträge nicht automatisch,
Stimmt, ist bei mir auch. Ist mir nicht aufgefallen, weil ich immer ein Terminal damit beschäftigt habe, lese nämlich gerne von oben nach unten und nicht falsch herum.
-
@apollon77 Ist das Log update Problem ein js-controller oder admin issue?
Das Problem tritt erst mit der Kombination Admin 6.4.2 und js-controller 5 auf. Admin 6.4.2 und js-controller 4 ist i.O. -
@apollon77 sagte in Alpha Test js-controller 5.0:
@sigi234 Kofi braucht ein installiertes git weil es eine git dependency hat. Hast du das? Bei Windows bestimmt im Pfad wo es sein muss. Ist im Standard nicht installiert.
Wie installiere ich das unter Windows?
-
Der hm-rega Adpater wirft nach dem js-controller Update Fehler vom Typ
"runScriptFile Error: Parameter "options" needs to be a real object but type "string" has been passed". Hab dazu mal ein issue angelegt: https://github.com/ioBroker/ioBroker.hm-rega/issues/368 -
Da scheinen ein paar Adapter drunter zu fallen:
https://github.com/simatec/ioBroker.backitup/issues/915
https://github.com/DrozmotiX/ioBroker.tado/issues/618 -
@feuersturm Bitte controller issue auf machen
-
-
@feuersturm is: admin and admin user oder limitierter User? Bitte mit ins issue?
-
@apollon77
Ich hab jetzt auf 3 Systemen testweise den Controller 5 installiert (Windows). Alle drei liefen vorher mit dem aktuellen Controller stabil.Ein System läuft bisher stabil, auf den beiden anderen habe ich Probleme mit dem Web Adapter:
2023-03-31 09:45:05.687 - info: host.SmartHome2 iobroker npm-rebuild: exit 2147483651 2023-03-31 09:45:05.713 - info: host.SmartHome2 instance system.adapter.web.0 started with pid 24788 2023-03-31 09:45:07.047 - error: host.SmartHome2 Caught by controller[0]: node:internal/modules/cjs/loader:1078 2023-03-31 09:45:07.047 - error: host.SmartHome2 Caught by controller[0]: throw err; 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: ^ 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: Error: Cannot find module 'C:\ioBroker\_iob_SmartHome2\node_modules\iobroker.js-controller/lib/letsencrypt.js' 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: Require stack: 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: - C:\ioBroker\_iob_SmartHome2\node_modules\iobroker.web\main.js 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15) 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:920:27) 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1141:19) 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at require (node:internal/modules/cjs/helpers:110:18) 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at Object. (C:\ioBroker\_iob_SmartHome2\node_modules\iobroker.web\main.js:10:21) 2023-03-31 09:45:07.048 - error: host.SmartHome2 Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1254:14) 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1117:32) 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:958:12) 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) { 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: code: 'MODULE_NOT_FOUND', 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: requireStack: [ 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: 'C:\\ioBroker\\_iob_SmartHome2\\node_modules\\iobroker.web\\main.js' 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: ] 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: } 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: 2023-03-31 09:45:07.049 - error: host.SmartHome2 Caught by controller[0]: Node.js v18.15.0 2023-03-31 09:45:07.049 - error: host.SmartHome2 instance system.adapter.web.0 terminated with code 1 (JS_CONTROLLER_STOPPED) 2023-03-31 09:45:07.050 - info: host.SmartHome2 Adapter system.adapter.web.0 needs rebuild and will be restarted afterwards. 2023-03-31 09:45:07.050 - info: host.SmartHome2 system.adapter.web.0 will be rebuilt 2023-03-31 09:45:07.050 - warn: host.SmartHome2 adapter "web" seems to be installed for a different version of Node.js. Trying to rebuild it... 3 attempt 2023-03-31 09:45:07.050 - info: host.SmartHome2 iobroker rebuild
Das wiederholt sich drei mal, dann gibt er auf.
Encryption verwende ich nicht.Auf dem System, das läuft, lässt sich Kodi übrigens nicht installieren, obwohl git installiert ist (gleiche Fehlermeldung wie bei @sigi234 ). Auf einem anderen System mit Controller 4 geht das auf dem gleichen Rechner.
Edit: Ach ja, Nodes.js wurde nicht verändert