Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Alpha Test js-controller 4.0

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Alpha Test js-controller 4.0

Geplant Angeheftet Gesperrt Verschoben Tester
196 Beiträge 20 Kommentatoren 26.9k Aufrufe 22 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • apollon77A Offline
    apollon77A Offline
    apollon77
    schrieb am zuletzt editiert von apollon77
    #1
    Aktuelle Test Version 4.0.0.alpha.69 (01.02.2022)
    Veröffentlichungsdatum 31.01.2022

    Hallo ioBroker-Community,

    nach längerer Entwicklungszeit steht heute der js-controller 4.0 für einen ersten Alpha-test zur Verfügung. Dieser Artikel enthält alle wichtigen Infos.

    Node.js Versions-Anforderungen
    In diesem Release entfällt Node.js 10.x welches seit April letztem Jahr nicht mehr gepflegt wird. Node.js 16.x ist dazugekommen. Die unterstützten Node.js Versionen sind damit: 12.x, 14.x und 16.x. Die empfohlene Node.js Version für ioBroker heben wir mit diesem Release auf 14.x an. Node.js 16.x wird mit js-controller 4.0 nun auch mit npm 7 bzw. 8 unterstützt.
    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-edition , welche NOCH NICHT für js-controller 4.0 aktualisiert wurde. Infos in der FAQ hier im Thread.

    Informationen zur Version
    Neben einigen Optimierungen und Verbesserungen stand der Haupt-Fokus dieser Version auf Performance-Verbesserungen. Ein paar neue Features sind aber ebenfalls hinzugekommen. 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.

    Mit dem js-controller 4.0 wird intern die Datenbank von "file" auf "jsonl" umgestellt. Dies geschieht bei der Installation automatisch ohne weitere Aktionen, wenn file genutzt wird. Weitere Details dazu sieht in der FAQ (Post #2)! Nach erfolgter Migration erscheint beim nächsten Öffnen des Admin auch eine Information dazu:

    jsonl-warnung.png

    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 wieder über 100 Änderungen in über 300 commits eingeflossen. Dafür bedanke mich diesmal wieder 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 4.0 ist 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 4.0 idealerweise ein Update auf die 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 12.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 bekannten inkompatiblem Adapter, aber einige Empfehlungen weiter unten.


    Installation


    VOR der Installation

    Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-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 3.3.x-Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version ("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen.

    Für die User, welche die experimentelle JSONL-Datenbank bereits einsetzen, ändert sich nichts - ausser das dieser Datenbank-Typ nun die offizielle ist :-)

    Nötige Adapter-Aktualisierungen

    Aktuell sind keine Inkompatibilitäten bekannt. 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 3.3 oder höher hinweisen.

    Es werden aber, wie oben ausgeführt, einige Adapter ggf. Warnungen ins Log schreiben - und ggf kommen ein paar neue dazu, welche aber primär bei Objektanlagen interessant sind und weniger im Betrieb "nerven". Meldungen die vor dem Upgrade im Log waren sind jetzt auch noch da.
    Bitte zuerst versuchen die gemeldeten Objekt-IDs via Admin zu löschen und den Adapter neu zu starten. Wenn die Meldungen danach nicht weg sein sollten ist aktuell die einzige Option das Loglevel der betroffenen Instanz auf "Warning" zu setzen - aber erst nachdem die Logs idealerweise in einem GitHub-Issue beim entsprechendem Adapter gemeldet wurden!

    Achtung: MASTER-Systeme Reihenfolgen beachten!

    Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.x läuft, ist es beim Update auf Version 4.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 auf die 4.0 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 4.0 aktualisiert wurde!

    Windows
    Generell muss das Update manuell via npm installiert werden.

    Hierzu im ioBroker-Verzeichnis 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 auch ps 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 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

    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
    • Prüfen das mit JSONL alles tut (Im Backup Dir werden die letzten "File DB Backups" liegen bleiben, kann man manuell löschen)
    • Bitte generell Augenmerk darauf legen das alle CLI Kommandos noch tun die man so nutzt. Da wurde einiges unter der Haube überarbeitet
    • Gern mal ein Nodejs update testen um zu schauen das das neue Rebuild tut wie es soll :-)
    • 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:


    BREAKING CHANGES

    • Support for Node.js 10 is dropped! Supported are Node.js 12.x, 14.x and 16.x
    • CLI command iob update --updateable changed to iob update --updatable
    • CLI command iob update http://download.iobroker.net/sources-dist.json is not supported anymore
    • CLI command iob rebuild adaptername is no longer supported because of the new way of automatic rebuilds and some unwanted side effects
    • CLI command iob state get <id> will no longer handle binary state values (which was never really working before). We added iob state getBinary <id> <encoding> as new way.
    • Ensure that on a backup-restore the same adapters and adapter versions are restored as existing on backup time. Also check js-controller version and error on mismatch (is allowed to be forced accepted by --force parameter for restore)
    • The "file" database will be automatically converted into JSONL and the database types that use "file" are adjusted to "jsonl" on installation (and backup restore). This means that a rollback of js-controller is only possible to 3.3 after 4.0 was installed! Rollback to former versions require a manual migration to "file" DB before the downgrade! (COMMUNICATION, TESTFOKUS)

    Features

    • (bluefox) Added complexity rules for user passwords: New created passwords need to follow the following rules (TODO ADMIN UI INFO ISSUE):
      • minimum length is 8
      • contains at least one digit
      • contains at least one lower case letter
      • contains at least one upper case letter
    • (foxriver76) Introduce option "--custom" when deleting instances or adapter to also clean up relevant custom entries from all objects (TODO ADMIN ISSUE ADD CHECKBOX!, TESTFOKUS)
    • (foxriver76) Added new host objects to provide Node.js version and PID
    • (foxriver76) Updated the Linux capabilities on js-controller start when a Node.js version change was detected (and initial on first run)
    • (AlCalzone/foxriver76) Further optimize strategy for required Node.js module rebuilds. We first try to run rebuild in root package and if still packages are left (or it fails) we try to rebuild the really affected modules alone. Should give better results then former strategy (TESTFOKUS)
    • (bluefox) Added support for configuring multiple repositories (TODO LINK+INFO FLAG)
    • (Apollon77) Streamline logging configuration for all available transports: A set Loglevel in config means that this loglevel is pinned for the transport for all cases. An Empty/not set level ("Default" in Admin) means that logging is dynamic and can be adjusted per Instance controller or loglevel state on the fly.
    • (foxriver76) Added installedFrom info to adapter start log line when not installed from npm normally

    Optimizations and Fixes

    • (Apollon77/foxriver76) Improve performance of object deletions (also when deleting instances or adapters) significantly (file-db 4x faster, jsonl-db 14x faster, redis 360x% !! faster)
    • (foxriver76/Apollon77) Improve performance for redis object searches by up to 2,5x by using lookup structures for object types and custom object properties. This optimization is only active for single host redis systems automatically, but can be activated for multihost redis systems too after all hosts are (and stay!) on js-controller 4.0! (TODO DOCS)
    • (foxriver76/Apollon77) Improve performance for object searches in general by limiting search namespaces to the relevant ones automatically
    • (foxriver76) Improve handling of backup restores when custom hostnames were used (especially relevant for Docker usage)
    • (foxriver76) Optimize backup to make sure invalid user-generated JSONs do not prevent backups from being considered valid
    • (foxriver76/klein0r) Improved CLI help
    • (foxriver76) Preserve changed instance names also when updating adapter (name was reset before)
    • (foxriver76) stop adapters on Windows prior update to prevent EBUSY
    • (foxriver76) Prevent crashes for uploads with invalid adapter installations
    • (bluefox) Removed news from instance/adapter objects on install/update because taken from repository in Admin5 (TODO CHECK ADMIN4 EFFECTS)
    • (AlCalzone) Removed extraneous "npm install" inside adapter directory
    • (foxriver76/AlCalzone) reduce JSONL compression frequency to reduce I/O (relevant when experimental JSONL database modules are used)
    • (foxriver76) prevent uploading js-controller (creating system.adapter.js-controller object) and remove existing cases on setup first
    • (foxriver76) prevent crash when multihost password is invalid and multihost active
    • (bluefox/foxriver76) bigger internal refactorings in cli commands (TESTFOKUS)
    • (foxriver76) made logging of not fulfilled adapter dependencies more user-friendly
    • (foxriver76) Check user and group assignments and remove unknown users from groups (could have happened in earlier versions) in setup first
    • (foxriver76) Prevent crash on adapter install/update if version string in repo is invalid
    • (AlCalzone) Update and optimize JSONL database integration and configuration options
    • (foxriver76) make sure that settings for file/jsonl DB in configfile are also respected
    • (foxriver76) Update seq integration for logging
    • (foxriver76) If logging can not be initialized because of a fatal error do not start js-controller
    • (foxriver76) Prevent start of a debug session for an instance that is already running
    • (Apollon77) Fix an edge case for file db which could lead to main and backup file being broken in strange situations with multiple crashes in a row
    • (foxriver76) make sure that admin, backitup and discovery instances are created when update of controller happens if installed and no instance exists
    • (Apollon77, foxriver76, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

    Developer relevant DEPRECATIONS/WARNINGS

    • js-controller is no longer installable from GitHub because is now a monorepo. Use @dev tag on npm to get the nightly build of master js-controller!
    • log info when setState is used for an object of type file - use setBinaryState instead!
    • log info when default value of an object is invalid (e.g. does not match object type)
    • log info when common.states is used and not an object (deprecate String usage)
    • log info when common.min/common.max exists on non numbers and contain invalid values/types
    • add get/setForeignBinaryState methods as copy from get/setBinaryState allow adapter to migrate; get/setBinaryState will be changed in 4.1 to be "non Foreign"
    • Enhanced object checks: adapter need to have a name as string
    • Decline calls for getForeignObjects with non string pattern (was pot. crashing before)
    • adapter.tools is deprecated and replaced by a shim. Use methods in adapter class or adapter-core instead or open issues if you need more internal functions
      The object view definition "custom/state" is now removed from js-controller after being replaced by "system/custom" in js-controller 3.3. All relevant adapters are updated (COMMUNICATION)
    • remove all Fifo Methods from adapter.js because deprecated since 1.x
    • remove adapter.objects.* methods because deprecated since 2.x

    Developer relevant new Features

    • (jogibear9988) Add new "unload-safe" promise based "adapter.delay" method to delay further code execution, but still make sure code do not continue after unload was called. This method can not be used inside the "unload" method itself!
    • (jogibear9988/AlCalzone/foxriver76/Apollon77) Revamp adapter.*Timeout and adapter.*Interval methods to be "unload-safe" and also clear missing timeouts without warnings for more developer convenience! The methods to set a timeout or interval can not be used inside the "unload" method itself!
    • (AlCalzone) Introduce new methods in tools for Node.js module management: installNodeModule, uninstallNodeModule (TODO Issues adapter that use npm install -> Move))
    • (bluefox) Add license management functionality to host. Adapters can use adapter.getSuitableLicenses to get available relevant licenses (TODO DOCS)
    • (AlCalzone) Switch NPM relevant handling to library pak to be more flexible for the future which package manager we want to use. Important: There are still parts that rely on npm for now!
    • (bluefox) Also report docker info when sending diag data
    • (foxriver76) Add server time to getHostInfo message
    • (foxriver76) For multihost clusters with js-controller 4.0+ the hosts automatically determine a "primary" host that can be used js-controller internally (right now, preparation for future topics)

    Developer relevant Optimizations and Fixes

    • (foxriver76) fixed permissionError on setBinaryState

    • (foxriver76) preserve "native" content for instanceObjects when updating the objects on adapter start

    • (Apollon77/foxriver76) Limit the search scope for object types host, adapter, instance, instanceStats, enum, script, group, user, config to the relevant namespaces when no search start/end is provided to speedup these calls in general

    • (foxriver76) Optimize deleteDevice/deleteChannel methods to just delete all objects the relevant device/channel

    • (foxriver76) Removed some magic path lookups to be compatible to npm 7/8. Appname of controller is now always "iobroker" ("ioBroker" in dev cases)

    • (foxriver76) Also use Sentry (if enabled/allowed) in CLI commands whenever database is initialized to report crashes from CLI if they happen

    • (foxriver76) Introduce a database protocol version number to allow detection of the available database features in multihost environments

    • (bluefox) Prevent issues when using adapter.addChannelToEnum because of missing callback

    • (foxriver76) make sure autoSubscribe works as expected in all cases

    • general dependency updates

    • code style optimizations and streamline code

    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.

    Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

    Ingo

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    sigi234S M ? 3 Antworten Letzte Antwort
    8
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von apollon77
      #2

      FAQ

      Known Issues

      Aktuell sind folgende Themen bekannt, welche noch parallel bearbeitet werden:

      • Admin hat bei den "Host settings" noch keine Wahlmöglichkeit für "JSONL". Daher bitte den DB Typ aktuell nicht über Admin ändern!
      • Bei einer Neuinstallation der Alpha kann es sein das im Admin nue die 3 Standardadapter angezeigt werden. Bitte auf Reload" in der UI klicken um das Repository zu laden. Dies liegt am verwendeten Build
      • Die "Migration zu JSONL"-Meldung im Admin kommt auch bei Neuinstallationen. Dies wird mit dem Latest-Release nicht mehr vorkommen.
      • Der "Rebuild"-Button in der Adapter-Kachel im Admin5 liefert einen Fehler bei der Ausführung. Der Button in Admin wird entfernt.

      Informationen zu pot. angezeigten Meldungen und Logs

      (info) "Sets unsupported"

      In MutliHost-Umgebungen wo noch nicht alle Hosts aktualisiert sind arbeitet eine Optimierung in einem Kompatibilitätsmodus. In diesem wird ggf vom js-controller und von Adaptern beim Start einmalig die Meldung "Sets unsupported" im Loglevel "info" geloggt. Diese verschwindet wenn alle Hosts auf js-controller 4.0+ sind.

      (warn) Object XXX is invalid: obj.common.min/max has an invalid type!

      Dies ist eine neue Prüfung, wie oben bereits erwähnt, welche prüft das der Minimum bzw Maximum Wert eines Objekts auch eine Zahl ist. Wenn diese Meldung kommt dann diese bitte per Issue an den Adapter-Entwickler weitergeben, das dies im Adapter behoben wird.

      Betroffen/Gemeldet bisher:

      • info (fixed in 1.9.18+)

      "Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!"

      Wenn bei der Inatallation des js-controller diese Meldung kommt:

      The following notifications happened during sync:
      - Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!
      

      Bitte ein iob upload all ausführen.

      Infos zum Thema "Rebuilds bei Node.js Aktualisierungen"

      Generell gilt das Node.JS Updates wie unter https://forum.iobroker.net/topic/44566/how-to-node-js-für-iobroker-richtig-updaten-2021-edition beschrieben funktionieren. Der js-controller 4.0 führt nur die automatisierten Rebuilds etwas anders aus als die 3.3.

      In der neuen Version versuchen wir zuerst generell alle Module neu zu erstellen. Das sollte alle Probleme auf einen Schlag lösen. Falls das (und ja da kann es Gründe geben) nicht funktioniert ist der zweite Versuch das wirklich betroffene NPM-Paket zu identifizieren (also z.B. direkt "serialport" o.ä.) und dieses neu zu kompilieren. Das hat deutlich weniger Nebeneffekte wie die bisherigen Versuche.

      Bitte hier Feedback geben wie es geht.

      FAQ zur DB Umstellung File -> JSONL

      Ich nutze Redis. Betrifft mich das?

      Wenn Du für beide Datenbanken einen Redis einsetzt dann nicht. Es ist nur relevant wenn eine oder beide DBs "File" sind.

      Was ist denn so besser an der "JSONL"-Datenbank anstelle "File"?

      Von der Funktionalität ist alles identisch! Die beiden Datenbanken unterscheiden sich nur darin wie die Daten gespeichert werden.

      Die File-DB schreibt hier alles in einem großen JSON-File regelmäßig - bei Objekten sind dies schnell mal 20MB. Dies kann durchaus viel I/O verursachen und ist vor allem bei SD-Karten-Basierten Systemen nicht optimal, weil es die Karte sehr belastet. Aber auch für SSDs ist dies nicht optimal. Zusätzlich besteht das Problem das ein Absturz beim Schreiben dazu führt das das ganze File defekt ist. ioBroker greift in diesen Fällen auf ein Backup-File zurück.

      JSONL arbeitet hier anders. Änderungen werden erst einmal nur an die Datei angehangen und - nur wenn nötig - wird dann das File "komprimiert" und so neu geschrieben. Dies erfolgt aber viel seltener als bei der File-DB.
      Für JSONL hat es @AlCalzone mal folgendermaßen zusammengefasst:
      ➕ JSONL ist resistenter. Ein kaputtes Byte in der DB macht nicht alles kaputt und ein Absturz beim Schreibvorgang sorgt nur dafür, dass die ausstehenden Änderungen verloren gehen, nicht alles.
      ➕ JSONL schont die SD-Karte durch weniger und kleinere Schreibvorgänge (nur wenn nötig).
      ➖ JSONL braucht zumindest phasenweise etwas mehr Platz (die DB ist bis auf Kompaktierungsvorgänge append-only)
      ➖ JSONL braucht etwas länger, wenn viele Objekte in kurzer Zeit geschrieben werden sollen (wobei meine letzten Tests nur noch Unterschiede im Rahmen der Standardabweichung ergeben haben)

      Wir denken das das neue Datenbank-Handling mehr Vorteile hat - vor allem für SD-Karten- und SSD-basierte Systeme.

      Was bedeutet es das die Datenbank jetzt jsonl ist?

      Im Normalfall bedeutet hies für den täglichen Betrieb nichts. Auch die Umstellung erfolg vollautomatisch im Rahmen des js-controller Updates.
      Ein iob status wird nach der Installation anstelle "file" jetzt "jsonl" anzeigen. Das wars auch schon. Backups über BackItUp oder iob backup und auch restores funktionieren weiterhin ohne Änderungen.

      WICHTIG: Durch die automatische Datenbankumstellung ist ein direkter Downgrade oder Backup Restore eines mit 4.0 erstellten Backups nur noch auf js-controller 3.3.x möglich! Für andere Downgrade Optionen bitte im nächsten Eintrag lesen. Ein Downgrade mit Redis als Datenbank ist problemlos weiterhin möglich!

      Die Datenfiles im iobroker-data Verzeichnis haben jetzt .jsonl am Ende und nicht mehr .json. Die letzten "file DB .json"-Files werden umbenannt und liegen noch im Verzeichnis mit der Endung ".migrated".

      Wie kann ich doch auf js-controller 3.2 oder kleiner downgraden wenn "jsonl" der DB Typ ist?

      js-controller Versionen kleiner als 3.3.x hatten die nötigen Dateien für eine "jsonl" Datenbank nicht an Board. Daher ist ein direkter Downgrade nicht möglich weil dann die Daten nicht lesbar sind!

      Daher muss ZUERST (!!) unter js-controller 4.0 die Datenbank manuell zurück auf "file" migriert werden. Dies erfolgt per iob setup custom und dort bei der Abfrage des DB Typs file angeben. Alle weiteren Fragen beantworten und dann die Migration abwarten. Danach zeigt iob statuswieder "file" an. Dann kann ein Backup für den Restore in einer kleineren Version erstellt werden oder ein Downgrade via npm i iobroker.js-controller@version (Vorher ins ioBroker Verzeichnis wechseln!) auf die gewünschte Version erfolgen.

      FAQ zu Redis "Sets" Optimierungen

      Für Redis-basierte Systeme bringt der js-controller 4.0 einige Optimierungen mit. EIne davon nutzt spezielle interne Datenstrukturen, die konsistent initialisiert werden müssen. Da

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      Thomas BraunT amg_666A 2 Antworten Letzte Antwort
      0
      • arteckA Offline
        arteckA Offline
        arteck
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        los geht's

        zigbee hab ich, zwave auch, nuc's genauso und HA auch

        1 Antwort Letzte Antwort
        1
        • FeuersturmF Online
          FeuersturmF Online
          Feuersturm
          schrieb am zuletzt editiert von Feuersturm
          #4

          Dann wollen wir mal das Testsystem wieder etwas stressen und zum schwitzen bringen :rocket:

          amg_666A 1 Antwort Letzte Antwort
          1
          • apollon77A apollon77
            Aktuelle Test Version 4.0.0.alpha.69 (01.02.2022)
            Veröffentlichungsdatum 31.01.2022

            Hallo ioBroker-Community,

            nach längerer Entwicklungszeit steht heute der js-controller 4.0 für einen ersten Alpha-test zur Verfügung. Dieser Artikel enthält alle wichtigen Infos.

            Node.js Versions-Anforderungen
            In diesem Release entfällt Node.js 10.x welches seit April letztem Jahr nicht mehr gepflegt wird. Node.js 16.x ist dazugekommen. Die unterstützten Node.js Versionen sind damit: 12.x, 14.x und 16.x. Die empfohlene Node.js Version für ioBroker heben wir mit diesem Release auf 14.x an. Node.js 16.x wird mit js-controller 4.0 nun auch mit npm 7 bzw. 8 unterstützt.
            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-edition , welche NOCH NICHT für js-controller 4.0 aktualisiert wurde. Infos in der FAQ hier im Thread.

            Informationen zur Version
            Neben einigen Optimierungen und Verbesserungen stand der Haupt-Fokus dieser Version auf Performance-Verbesserungen. Ein paar neue Features sind aber ebenfalls hinzugekommen. 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.

            Mit dem js-controller 4.0 wird intern die Datenbank von "file" auf "jsonl" umgestellt. Dies geschieht bei der Installation automatisch ohne weitere Aktionen, wenn file genutzt wird. Weitere Details dazu sieht in der FAQ (Post #2)! Nach erfolgter Migration erscheint beim nächsten Öffnen des Admin auch eine Information dazu:

            jsonl-warnung.png

            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 wieder über 100 Änderungen in über 300 commits eingeflossen. Dafür bedanke mich diesmal wieder 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 4.0 ist 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 4.0 idealerweise ein Update auf die 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 12.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 bekannten inkompatiblem Adapter, aber einige Empfehlungen weiter unten.


            Installation


            VOR der Installation

            Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-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 3.3.x-Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version ("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen.

            Für die User, welche die experimentelle JSONL-Datenbank bereits einsetzen, ändert sich nichts - ausser das dieser Datenbank-Typ nun die offizielle ist :-)

            Nötige Adapter-Aktualisierungen

            Aktuell sind keine Inkompatibilitäten bekannt. 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 3.3 oder höher hinweisen.

            Es werden aber, wie oben ausgeführt, einige Adapter ggf. Warnungen ins Log schreiben - und ggf kommen ein paar neue dazu, welche aber primär bei Objektanlagen interessant sind und weniger im Betrieb "nerven". Meldungen die vor dem Upgrade im Log waren sind jetzt auch noch da.
            Bitte zuerst versuchen die gemeldeten Objekt-IDs via Admin zu löschen und den Adapter neu zu starten. Wenn die Meldungen danach nicht weg sein sollten ist aktuell die einzige Option das Loglevel der betroffenen Instanz auf "Warning" zu setzen - aber erst nachdem die Logs idealerweise in einem GitHub-Issue beim entsprechendem Adapter gemeldet wurden!

            Achtung: MASTER-Systeme Reihenfolgen beachten!

            Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.x läuft, ist es beim Update auf Version 4.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 auf die 4.0 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 4.0 aktualisiert wurde!

            Windows
            Generell muss das Update manuell via npm installiert werden.

            Hierzu im ioBroker-Verzeichnis 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 auch ps 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 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

            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
            • Prüfen das mit JSONL alles tut (Im Backup Dir werden die letzten "File DB Backups" liegen bleiben, kann man manuell löschen)
            • Bitte generell Augenmerk darauf legen das alle CLI Kommandos noch tun die man so nutzt. Da wurde einiges unter der Haube überarbeitet
            • Gern mal ein Nodejs update testen um zu schauen das das neue Rebuild tut wie es soll :-)
            • 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:


            BREAKING CHANGES

            • Support for Node.js 10 is dropped! Supported are Node.js 12.x, 14.x and 16.x
            • CLI command iob update --updateable changed to iob update --updatable
            • CLI command iob update http://download.iobroker.net/sources-dist.json is not supported anymore
            • CLI command iob rebuild adaptername is no longer supported because of the new way of automatic rebuilds and some unwanted side effects
            • CLI command iob state get <id> will no longer handle binary state values (which was never really working before). We added iob state getBinary <id> <encoding> as new way.
            • Ensure that on a backup-restore the same adapters and adapter versions are restored as existing on backup time. Also check js-controller version and error on mismatch (is allowed to be forced accepted by --force parameter for restore)
            • The "file" database will be automatically converted into JSONL and the database types that use "file" are adjusted to "jsonl" on installation (and backup restore). This means that a rollback of js-controller is only possible to 3.3 after 4.0 was installed! Rollback to former versions require a manual migration to "file" DB before the downgrade! (COMMUNICATION, TESTFOKUS)

            Features

            • (bluefox) Added complexity rules for user passwords: New created passwords need to follow the following rules (TODO ADMIN UI INFO ISSUE):
              • minimum length is 8
              • contains at least one digit
              • contains at least one lower case letter
              • contains at least one upper case letter
            • (foxriver76) Introduce option "--custom" when deleting instances or adapter to also clean up relevant custom entries from all objects (TODO ADMIN ISSUE ADD CHECKBOX!, TESTFOKUS)
            • (foxriver76) Added new host objects to provide Node.js version and PID
            • (foxriver76) Updated the Linux capabilities on js-controller start when a Node.js version change was detected (and initial on first run)
            • (AlCalzone/foxriver76) Further optimize strategy for required Node.js module rebuilds. We first try to run rebuild in root package and if still packages are left (or it fails) we try to rebuild the really affected modules alone. Should give better results then former strategy (TESTFOKUS)
            • (bluefox) Added support for configuring multiple repositories (TODO LINK+INFO FLAG)
            • (Apollon77) Streamline logging configuration for all available transports: A set Loglevel in config means that this loglevel is pinned for the transport for all cases. An Empty/not set level ("Default" in Admin) means that logging is dynamic and can be adjusted per Instance controller or loglevel state on the fly.
            • (foxriver76) Added installedFrom info to adapter start log line when not installed from npm normally

            Optimizations and Fixes

            • (Apollon77/foxriver76) Improve performance of object deletions (also when deleting instances or adapters) significantly (file-db 4x faster, jsonl-db 14x faster, redis 360x% !! faster)
            • (foxriver76/Apollon77) Improve performance for redis object searches by up to 2,5x by using lookup structures for object types and custom object properties. This optimization is only active for single host redis systems automatically, but can be activated for multihost redis systems too after all hosts are (and stay!) on js-controller 4.0! (TODO DOCS)
            • (foxriver76/Apollon77) Improve performance for object searches in general by limiting search namespaces to the relevant ones automatically
            • (foxriver76) Improve handling of backup restores when custom hostnames were used (especially relevant for Docker usage)
            • (foxriver76) Optimize backup to make sure invalid user-generated JSONs do not prevent backups from being considered valid
            • (foxriver76/klein0r) Improved CLI help
            • (foxriver76) Preserve changed instance names also when updating adapter (name was reset before)
            • (foxriver76) stop adapters on Windows prior update to prevent EBUSY
            • (foxriver76) Prevent crashes for uploads with invalid adapter installations
            • (bluefox) Removed news from instance/adapter objects on install/update because taken from repository in Admin5 (TODO CHECK ADMIN4 EFFECTS)
            • (AlCalzone) Removed extraneous "npm install" inside adapter directory
            • (foxriver76/AlCalzone) reduce JSONL compression frequency to reduce I/O (relevant when experimental JSONL database modules are used)
            • (foxriver76) prevent uploading js-controller (creating system.adapter.js-controller object) and remove existing cases on setup first
            • (foxriver76) prevent crash when multihost password is invalid and multihost active
            • (bluefox/foxriver76) bigger internal refactorings in cli commands (TESTFOKUS)
            • (foxriver76) made logging of not fulfilled adapter dependencies more user-friendly
            • (foxriver76) Check user and group assignments and remove unknown users from groups (could have happened in earlier versions) in setup first
            • (foxriver76) Prevent crash on adapter install/update if version string in repo is invalid
            • (AlCalzone) Update and optimize JSONL database integration and configuration options
            • (foxriver76) make sure that settings for file/jsonl DB in configfile are also respected
            • (foxriver76) Update seq integration for logging
            • (foxriver76) If logging can not be initialized because of a fatal error do not start js-controller
            • (foxriver76) Prevent start of a debug session for an instance that is already running
            • (Apollon77) Fix an edge case for file db which could lead to main and backup file being broken in strange situations with multiple crashes in a row
            • (foxriver76) make sure that admin, backitup and discovery instances are created when update of controller happens if installed and no instance exists
            • (Apollon77, foxriver76, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

            Developer relevant DEPRECATIONS/WARNINGS

            • js-controller is no longer installable from GitHub because is now a monorepo. Use @dev tag on npm to get the nightly build of master js-controller!
            • log info when setState is used for an object of type file - use setBinaryState instead!
            • log info when default value of an object is invalid (e.g. does not match object type)
            • log info when common.states is used and not an object (deprecate String usage)
            • log info when common.min/common.max exists on non numbers and contain invalid values/types
            • add get/setForeignBinaryState methods as copy from get/setBinaryState allow adapter to migrate; get/setBinaryState will be changed in 4.1 to be "non Foreign"
            • Enhanced object checks: adapter need to have a name as string
            • Decline calls for getForeignObjects with non string pattern (was pot. crashing before)
            • adapter.tools is deprecated and replaced by a shim. Use methods in adapter class or adapter-core instead or open issues if you need more internal functions
              The object view definition "custom/state" is now removed from js-controller after being replaced by "system/custom" in js-controller 3.3. All relevant adapters are updated (COMMUNICATION)
            • remove all Fifo Methods from adapter.js because deprecated since 1.x
            • remove adapter.objects.* methods because deprecated since 2.x

            Developer relevant new Features

            • (jogibear9988) Add new "unload-safe" promise based "adapter.delay" method to delay further code execution, but still make sure code do not continue after unload was called. This method can not be used inside the "unload" method itself!
            • (jogibear9988/AlCalzone/foxriver76/Apollon77) Revamp adapter.*Timeout and adapter.*Interval methods to be "unload-safe" and also clear missing timeouts without warnings for more developer convenience! The methods to set a timeout or interval can not be used inside the "unload" method itself!
            • (AlCalzone) Introduce new methods in tools for Node.js module management: installNodeModule, uninstallNodeModule (TODO Issues adapter that use npm install -> Move))
            • (bluefox) Add license management functionality to host. Adapters can use adapter.getSuitableLicenses to get available relevant licenses (TODO DOCS)
            • (AlCalzone) Switch NPM relevant handling to library pak to be more flexible for the future which package manager we want to use. Important: There are still parts that rely on npm for now!
            • (bluefox) Also report docker info when sending diag data
            • (foxriver76) Add server time to getHostInfo message
            • (foxriver76) For multihost clusters with js-controller 4.0+ the hosts automatically determine a "primary" host that can be used js-controller internally (right now, preparation for future topics)

            Developer relevant Optimizations and Fixes

            • (foxriver76) fixed permissionError on setBinaryState

            • (foxriver76) preserve "native" content for instanceObjects when updating the objects on adapter start

            • (Apollon77/foxriver76) Limit the search scope for object types host, adapter, instance, instanceStats, enum, script, group, user, config to the relevant namespaces when no search start/end is provided to speedup these calls in general

            • (foxriver76) Optimize deleteDevice/deleteChannel methods to just delete all objects the relevant device/channel

            • (foxriver76) Removed some magic path lookups to be compatible to npm 7/8. Appname of controller is now always "iobroker" ("ioBroker" in dev cases)

            • (foxriver76) Also use Sentry (if enabled/allowed) in CLI commands whenever database is initialized to report crashes from CLI if they happen

            • (foxriver76) Introduce a database protocol version number to allow detection of the available database features in multihost environments

            • (bluefox) Prevent issues when using adapter.addChannelToEnum because of missing callback

            • (foxriver76) make sure autoSubscribe works as expected in all cases

            • general dependency updates

            • code style optimizations and streamline code

            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.

            Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

            Ingo

            sigi234S Online
            sigi234S Online
            sigi234
            Forum Testing Most Active
            schrieb am zuletzt editiert von sigi234
            #5

            @apollon77

            Bin auch dabei...iobroker-data sichern und ab geht es.:grinning:

            Testbericht 1:

            Alles schnell und gut verlaufen unter Windows.

            Screenshot (4679).png

            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Immer Daten sichern!

            1 Antwort Letzte Antwort
            1
            • FeuersturmF Feuersturm

              Dann wollen wir mal das Testsystem wieder etwas stressen und zum schwitzen bringen :rocket:

              amg_666A Offline
              amg_666A Offline
              amg_666
              schrieb am zuletzt editiert von
              #6

              @feuersturm sagte in Alpha Test js-controller 4.0:

              Dann wollen wir mal das Testsystem wieder etwas stressen und zum schwitzen bringen

              Feigling :-) Ich zieh das nachher auf meinem Produktivsystem durch :-) :-)
              Natürlich NACH Sicherung...

              iobroker auf proxmox container

              1 Antwort Letzte Antwort
              2
              • apollon77A apollon77

                FAQ

                Known Issues

                Aktuell sind folgende Themen bekannt, welche noch parallel bearbeitet werden:

                • Admin hat bei den "Host settings" noch keine Wahlmöglichkeit für "JSONL". Daher bitte den DB Typ aktuell nicht über Admin ändern!
                • Bei einer Neuinstallation der Alpha kann es sein das im Admin nue die 3 Standardadapter angezeigt werden. Bitte auf Reload" in der UI klicken um das Repository zu laden. Dies liegt am verwendeten Build
                • Die "Migration zu JSONL"-Meldung im Admin kommt auch bei Neuinstallationen. Dies wird mit dem Latest-Release nicht mehr vorkommen.
                • Der "Rebuild"-Button in der Adapter-Kachel im Admin5 liefert einen Fehler bei der Ausführung. Der Button in Admin wird entfernt.

                Informationen zu pot. angezeigten Meldungen und Logs

                (info) "Sets unsupported"

                In MutliHost-Umgebungen wo noch nicht alle Hosts aktualisiert sind arbeitet eine Optimierung in einem Kompatibilitätsmodus. In diesem wird ggf vom js-controller und von Adaptern beim Start einmalig die Meldung "Sets unsupported" im Loglevel "info" geloggt. Diese verschwindet wenn alle Hosts auf js-controller 4.0+ sind.

                (warn) Object XXX is invalid: obj.common.min/max has an invalid type!

                Dies ist eine neue Prüfung, wie oben bereits erwähnt, welche prüft das der Minimum bzw Maximum Wert eines Objekts auch eine Zahl ist. Wenn diese Meldung kommt dann diese bitte per Issue an den Adapter-Entwickler weitergeben, das dies im Adapter behoben wird.

                Betroffen/Gemeldet bisher:

                • info (fixed in 1.9.18+)

                "Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!"

                Wenn bei der Inatallation des js-controller diese Meldung kommt:

                The following notifications happened during sync:
                - Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!
                

                Bitte ein iob upload all ausführen.

                Infos zum Thema "Rebuilds bei Node.js Aktualisierungen"

                Generell gilt das Node.JS Updates wie unter https://forum.iobroker.net/topic/44566/how-to-node-js-für-iobroker-richtig-updaten-2021-edition beschrieben funktionieren. Der js-controller 4.0 führt nur die automatisierten Rebuilds etwas anders aus als die 3.3.

                In der neuen Version versuchen wir zuerst generell alle Module neu zu erstellen. Das sollte alle Probleme auf einen Schlag lösen. Falls das (und ja da kann es Gründe geben) nicht funktioniert ist der zweite Versuch das wirklich betroffene NPM-Paket zu identifizieren (also z.B. direkt "serialport" o.ä.) und dieses neu zu kompilieren. Das hat deutlich weniger Nebeneffekte wie die bisherigen Versuche.

                Bitte hier Feedback geben wie es geht.

                FAQ zur DB Umstellung File -> JSONL

                Ich nutze Redis. Betrifft mich das?

                Wenn Du für beide Datenbanken einen Redis einsetzt dann nicht. Es ist nur relevant wenn eine oder beide DBs "File" sind.

                Was ist denn so besser an der "JSONL"-Datenbank anstelle "File"?

                Von der Funktionalität ist alles identisch! Die beiden Datenbanken unterscheiden sich nur darin wie die Daten gespeichert werden.

                Die File-DB schreibt hier alles in einem großen JSON-File regelmäßig - bei Objekten sind dies schnell mal 20MB. Dies kann durchaus viel I/O verursachen und ist vor allem bei SD-Karten-Basierten Systemen nicht optimal, weil es die Karte sehr belastet. Aber auch für SSDs ist dies nicht optimal. Zusätzlich besteht das Problem das ein Absturz beim Schreiben dazu führt das das ganze File defekt ist. ioBroker greift in diesen Fällen auf ein Backup-File zurück.

                JSONL arbeitet hier anders. Änderungen werden erst einmal nur an die Datei angehangen und - nur wenn nötig - wird dann das File "komprimiert" und so neu geschrieben. Dies erfolgt aber viel seltener als bei der File-DB.
                Für JSONL hat es @AlCalzone mal folgendermaßen zusammengefasst:
                ➕ JSONL ist resistenter. Ein kaputtes Byte in der DB macht nicht alles kaputt und ein Absturz beim Schreibvorgang sorgt nur dafür, dass die ausstehenden Änderungen verloren gehen, nicht alles.
                ➕ JSONL schont die SD-Karte durch weniger und kleinere Schreibvorgänge (nur wenn nötig).
                ➖ JSONL braucht zumindest phasenweise etwas mehr Platz (die DB ist bis auf Kompaktierungsvorgänge append-only)
                ➖ JSONL braucht etwas länger, wenn viele Objekte in kurzer Zeit geschrieben werden sollen (wobei meine letzten Tests nur noch Unterschiede im Rahmen der Standardabweichung ergeben haben)

                Wir denken das das neue Datenbank-Handling mehr Vorteile hat - vor allem für SD-Karten- und SSD-basierte Systeme.

                Was bedeutet es das die Datenbank jetzt jsonl ist?

                Im Normalfall bedeutet hies für den täglichen Betrieb nichts. Auch die Umstellung erfolg vollautomatisch im Rahmen des js-controller Updates.
                Ein iob status wird nach der Installation anstelle "file" jetzt "jsonl" anzeigen. Das wars auch schon. Backups über BackItUp oder iob backup und auch restores funktionieren weiterhin ohne Änderungen.

                WICHTIG: Durch die automatische Datenbankumstellung ist ein direkter Downgrade oder Backup Restore eines mit 4.0 erstellten Backups nur noch auf js-controller 3.3.x möglich! Für andere Downgrade Optionen bitte im nächsten Eintrag lesen. Ein Downgrade mit Redis als Datenbank ist problemlos weiterhin möglich!

                Die Datenfiles im iobroker-data Verzeichnis haben jetzt .jsonl am Ende und nicht mehr .json. Die letzten "file DB .json"-Files werden umbenannt und liegen noch im Verzeichnis mit der Endung ".migrated".

                Wie kann ich doch auf js-controller 3.2 oder kleiner downgraden wenn "jsonl" der DB Typ ist?

                js-controller Versionen kleiner als 3.3.x hatten die nötigen Dateien für eine "jsonl" Datenbank nicht an Board. Daher ist ein direkter Downgrade nicht möglich weil dann die Daten nicht lesbar sind!

                Daher muss ZUERST (!!) unter js-controller 4.0 die Datenbank manuell zurück auf "file" migriert werden. Dies erfolgt per iob setup custom und dort bei der Abfrage des DB Typs file angeben. Alle weiteren Fragen beantworten und dann die Migration abwarten. Danach zeigt iob statuswieder "file" an. Dann kann ein Backup für den Restore in einer kleineren Version erstellt werden oder ein Downgrade via npm i iobroker.js-controller@version (Vorher ins ioBroker Verzeichnis wechseln!) auf die gewünschte Version erfolgen.

                FAQ zu Redis "Sets" Optimierungen

                Für Redis-basierte Systeme bringt der js-controller 4.0 einige Optimierungen mit. EIne davon nutzt spezielle interne Datenstrukturen, die konsistent initialisiert werden müssen. Da

                Thomas BraunT Offline
                Thomas BraunT Offline
                Thomas Braun
                Most Active
                schrieb am zuletzt editiert von Thomas Braun
                #7

                @apollon77

                Hab hier mal flugs umgestellt. Auf den ersten Blick keine Show Stopper, System läuft problemlos weiter.
                Node17/npm8 als Runtime.

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                apollon77A 1 Antwort Letzte Antwort
                1
                • Thomas BraunT Thomas Braun

                  @apollon77

                  Hab hier mal flugs umgestellt. Auf den ersten Blick keine Show Stopper, System läuft problemlos weiter.
                  Node17/npm8 als Runtime.

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #8

                  @thomas-braun sagte in Alpha Test js-controller 4.0:

                  Node17/npm8 als Runtime.

                  Jaja der ganz "edgy" Test wieder :-)

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  Thomas BraunT 1 Antwort Letzte Antwort
                  1
                  • apollon77A apollon77

                    @thomas-braun sagte in Alpha Test js-controller 4.0:

                    Node17/npm8 als Runtime.

                    Jaja der ganz "edgy" Test wieder :-)

                    Thomas BraunT Offline
                    Thomas BraunT Offline
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von Thomas Braun
                    #9

                    @apollon77
                    Ja, lüppt aber...
                    Einer muss den Job ja machen. 😆

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    1 Antwort Letzte Antwort
                    2
                    • FeuersturmF Online
                      FeuersturmF Online
                      Feuersturm
                      schrieb am zuletzt editiert von
                      #10

                      @apollon77 Bei mehreren Adaptern taucht im Log folgendes auf

                      nina.0 (5475) Sets unsupported
                      

                      Was steckt hier dahinter, bzw. wie soll die Fehleransprache bei den Adaptern lauten?

                      apollon77A 1 Antwort Letzte Antwort
                      0
                      • FeuersturmF Feuersturm

                        @apollon77 Bei mehreren Adaptern taucht im Log folgendes auf

                        nina.0 (5475) Sets unsupported
                        

                        Was steckt hier dahinter, bzw. wie soll die Fehleransprache bei den Adaptern lauten?

                        apollon77A Offline
                        apollon77A Offline
                        apollon77
                        schrieb am zuletzt editiert von
                        #11

                        @feuersturm Was ist es bei Dir für ein System? Wenn es die "mnormale File/JsonlL" DB ist dann ist das ok und wird mit nächstem Update auf debug log geändert

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        FeuersturmF 1 Antwort Letzte Antwort
                        0
                        • apollon77A apollon77

                          @feuersturm Was ist es bei Dir für ein System? Wenn es die "mnormale File/JsonlL" DB ist dann ist das ok und wird mit nächstem Update auf debug log geändert

                          FeuersturmF Online
                          FeuersturmF Online
                          Feuersturm
                          schrieb am zuletzt editiert von
                          #12

                          @apollon77 Ist ein jsonl System. Master gerade aktualisiert. Gleich ist der Slave dran.

                          proxmox@ioBrokerTestsystem:/opt/iobroker$ iobroker status
                          iobroker is running on this host.
                          Objects type: jsonl
                          States  type: jsonl
                          
                          apollon77A 1 Antwort Letzte Antwort
                          1
                          • FeuersturmF Feuersturm

                            @apollon77 Ist ein jsonl System. Master gerade aktualisiert. Gleich ist der Slave dran.

                            proxmox@ioBrokerTestsystem:/opt/iobroker$ iobroker status
                            iobroker is running on this host.
                            Objects type: jsonl
                            States  type: jsonl
                            
                            apollon77A Offline
                            apollon77A Offline
                            apollon77
                            schrieb am zuletzt editiert von
                            #13

                            @feuersturm Das liegt aktuell daran das dein Multihost nicht voll aktualisiert ist. Sollte danach wieder verschwinden

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            FeuersturmF 1 Antwort Letzte Antwort
                            0
                            • apollon77A apollon77

                              @feuersturm Das liegt aktuell daran das dein Multihost nicht voll aktualisiert ist. Sollte danach wieder verschwinden

                              FeuersturmF Online
                              FeuersturmF Online
                              Feuersturm
                              schrieb am zuletzt editiert von Feuersturm
                              #14

                              @apollon77 Jup, Master und Slave sind jetzt auf js-controller 4.0 und die Meldungen sind nicht mehr da.
                              System startet ohne Probleme und bisher keine Probleme ersichtlich.

                              Habe gerade den Slave Host neu gestartet, indem ich eine Logging Änderung für Seq im Host konfiguriert habe was zum Neustart des Hosts geführt hat.
                              Im Log stand dann folgendes:

                              2022-01-31 23:26:17.539 - debug: history.1 (9160) Plugin sentry destroyed
                              2022-01-31 23:26:17.517 - info: host.ioBrokerNew received SIGTERM
                              2022-01-31 23:26:17.542 - info: discovery.0 (9175) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
                              2022-01-31 23:26:17.547 - info: history.1 (9160) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
                              2022-01-31 23:26:17.566 - info: host.ioBrokerNew stopInstance system.adapter.history.1 (force=false, process=true)
                              2022-01-31 23:26:17.570 - info: host.ioBrokerNew stopInstance system.adapter.discovery.0 (force=false, process=true)
                              2022-01-31 23:26:17.583 - info: discovery.0 (9175) Got terminate signal TERMINATE_YOURSELF
                              2022-01-31 23:26:17.593 - info: host.ioBrokerNew stopInstance system.adapter.discovery.0 send kill signal
                              2022-01-31 23:26:18.332 - info: host.ioBrokerNew instance system.adapter.history.1 terminated with code 156 (START_IMMEDIATELY_AFTER_STOP)
                              2022-01-31 23:26:18.594 - info: host.ioBrokerNew instance system.adapter.discovery.0 terminated with code 156 (START_IMMEDIATELY_AFTER_STOP)
                              2022-01-31 23:26:18.598 - info: host.ioBrokerNew All instances are stopped.
                              2022-01-31 23:26:18.638 - error: host.ioBrokerNew uncaught exception: Connection is closed.
                              2022-01-31 23:26:18.640 - error: host.ioBrokerNew Error: Connection is closed.
                              at Redis.sendCommand (/opt/iobroker/node_modules/ioredis/built/redis/index.js:628:24)
                              at Redis.get (/opt/iobroker/node_modules/ioredis/built/commander.js:122:25)
                              at ObjectsInRedisClient._getObject (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:2662:37)
                              at Immediate. (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:2708:33)
                              at processImmediate (internal/timers.js:466:21)
                              2022-01-31 23:26:18.644 - info: host.ioBrokerNew stopInstance system.adapter.history.1 (force=false, process=false)
                              2022-01-31 23:26:18.646 - info: host.ioBrokerNew stopInstance system.adapter.discovery.0 (force=false, process=false)
                              2022-01-31 23:26:18.649 - info: host.ioBrokerNew iobroker _restart
                              2022-01-31 23:26:18.915 - info: host.ioBrokerNew terminated
                              2022-01-31 23:26:18.919 - info: host.ioBrokerNew terminated
                              2022-01-31 23:26:21.591 - info: host.ioBrokerNew iobroker.js-controller version 4.0.0 js-controller starting
                              2022-01-31 23:26:21.603 - info: host.ioBrokerNew Copyright (c) 2014-2022 bluefox, 2014 hobbyquaker
                              2022-01-31 23:26:21.605 - info: host.ioBrokerNew hostname: ioBrokerNew, node: v14.18.1
                              2022-01-31 23:26:21.607 - info: host.ioBrokerNew ip addresses: 192.168.178.78 fe80::d4a0:37ff:fe8e:f0c1
                              2022-01-31 23:26:22.091 - info: host.ioBrokerNew connected to Objects and States
                              2022-01-31 23:26:22.123 - info: host.ioBrokerNew added notifications configuration of host
                              2022-01-31 23:26:23.102 - info: host.ioBrokerNew 59 instances found
                              2022-01-31 23:26:23.199 - info: host.ioBrokerNew starting 2 instances
                              2022-01-31 23:26:23.415 - info: host.ioBrokerNew instance system.adapter.history.1 started with pid 9238
                              2022-01-31 23:26:25.047 - debug: history.1 (9238) Redis Objects: Use Redis connection: 192.168.178.77:9001
                              2022-01-31 23:26:25.156 - debug: history.1 (9238) Objects client ready ... initialize now
                              2022-01-31 23:26:25.160 - debug: history.1 (9238) Objects create System PubSub Client
                              2022-01-31 23:26:25.164 - debug: history.1 (9238) Objects create User PubSub Client
                              2022-01-31 23:26:25.287 - debug: history.1 (9238) Objects client initialize lua scripts
                              2022-01-31 23:26:25.297 - debug: history.1 (9238) Objects connected to redis: 192.168.178.77:9001
                              2022-01-31 23:26:25.361 - debug: history.1 (9238) Redis States: Use Redis connection: 192.168.178.77:9000
                              2022-01-31 23:26:25.396 - debug: history.1 (9238) States create System PubSub Client
                              2022-01-31 23:26:25.398 - debug: history.1 (9238) States create User PubSub Client
                              2022-01-31 23:26:25.463 - debug: history.1 (9238) States connected to redis: 192.168.178.77:9000
                              2022-01-31 23:26:25.989 - debug: history.1 (9238) Plugin sentry Initialize Plugin (enabled=true)
                              2022-01-31 23:26:26.362 - info: history.1 (9238) starting. Version 1.10.5 in /opt/iobroker/node_modules/iobroker.history, node: v14.18.1, js-controller: 4.0.0-alpha.67-20220131-6621d47f
                              2022-01-31 23:26:27.423 - info: host.ioBrokerNew instance system.adapter.discovery.0 started with pid 9253
                              2022-01-31 23:26:30.270 - info: discovery.0 (9253) starting. Version 2.7.5 in /opt/iobroker/node_modules/iobroker.discovery, node: v14.18.1, js-controller: 4.0.0-alpha.67-20220131-6621d47f
                              
                              1 Antwort Letzte Antwort
                              0
                              • apollon77A apollon77
                                Aktuelle Test Version 4.0.0.alpha.69 (01.02.2022)
                                Veröffentlichungsdatum 31.01.2022

                                Hallo ioBroker-Community,

                                nach längerer Entwicklungszeit steht heute der js-controller 4.0 für einen ersten Alpha-test zur Verfügung. Dieser Artikel enthält alle wichtigen Infos.

                                Node.js Versions-Anforderungen
                                In diesem Release entfällt Node.js 10.x welches seit April letztem Jahr nicht mehr gepflegt wird. Node.js 16.x ist dazugekommen. Die unterstützten Node.js Versionen sind damit: 12.x, 14.x und 16.x. Die empfohlene Node.js Version für ioBroker heben wir mit diesem Release auf 14.x an. Node.js 16.x wird mit js-controller 4.0 nun auch mit npm 7 bzw. 8 unterstützt.
                                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-edition , welche NOCH NICHT für js-controller 4.0 aktualisiert wurde. Infos in der FAQ hier im Thread.

                                Informationen zur Version
                                Neben einigen Optimierungen und Verbesserungen stand der Haupt-Fokus dieser Version auf Performance-Verbesserungen. Ein paar neue Features sind aber ebenfalls hinzugekommen. 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.

                                Mit dem js-controller 4.0 wird intern die Datenbank von "file" auf "jsonl" umgestellt. Dies geschieht bei der Installation automatisch ohne weitere Aktionen, wenn file genutzt wird. Weitere Details dazu sieht in der FAQ (Post #2)! Nach erfolgter Migration erscheint beim nächsten Öffnen des Admin auch eine Information dazu:

                                jsonl-warnung.png

                                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 wieder über 100 Änderungen in über 300 commits eingeflossen. Dafür bedanke mich diesmal wieder 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 4.0 ist 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 4.0 idealerweise ein Update auf die 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 12.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 bekannten inkompatiblem Adapter, aber einige Empfehlungen weiter unten.


                                Installation


                                VOR der Installation

                                Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-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 3.3.x-Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version ("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen.

                                Für die User, welche die experimentelle JSONL-Datenbank bereits einsetzen, ändert sich nichts - ausser das dieser Datenbank-Typ nun die offizielle ist :-)

                                Nötige Adapter-Aktualisierungen

                                Aktuell sind keine Inkompatibilitäten bekannt. 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 3.3 oder höher hinweisen.

                                Es werden aber, wie oben ausgeführt, einige Adapter ggf. Warnungen ins Log schreiben - und ggf kommen ein paar neue dazu, welche aber primär bei Objektanlagen interessant sind und weniger im Betrieb "nerven". Meldungen die vor dem Upgrade im Log waren sind jetzt auch noch da.
                                Bitte zuerst versuchen die gemeldeten Objekt-IDs via Admin zu löschen und den Adapter neu zu starten. Wenn die Meldungen danach nicht weg sein sollten ist aktuell die einzige Option das Loglevel der betroffenen Instanz auf "Warning" zu setzen - aber erst nachdem die Logs idealerweise in einem GitHub-Issue beim entsprechendem Adapter gemeldet wurden!

                                Achtung: MASTER-Systeme Reihenfolgen beachten!

                                Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.x läuft, ist es beim Update auf Version 4.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 auf die 4.0 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 4.0 aktualisiert wurde!

                                Windows
                                Generell muss das Update manuell via npm installiert werden.

                                Hierzu im ioBroker-Verzeichnis 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 auch ps 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 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

                                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
                                • Prüfen das mit JSONL alles tut (Im Backup Dir werden die letzten "File DB Backups" liegen bleiben, kann man manuell löschen)
                                • Bitte generell Augenmerk darauf legen das alle CLI Kommandos noch tun die man so nutzt. Da wurde einiges unter der Haube überarbeitet
                                • Gern mal ein Nodejs update testen um zu schauen das das neue Rebuild tut wie es soll :-)
                                • 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:


                                BREAKING CHANGES

                                • Support for Node.js 10 is dropped! Supported are Node.js 12.x, 14.x and 16.x
                                • CLI command iob update --updateable changed to iob update --updatable
                                • CLI command iob update http://download.iobroker.net/sources-dist.json is not supported anymore
                                • CLI command iob rebuild adaptername is no longer supported because of the new way of automatic rebuilds and some unwanted side effects
                                • CLI command iob state get <id> will no longer handle binary state values (which was never really working before). We added iob state getBinary <id> <encoding> as new way.
                                • Ensure that on a backup-restore the same adapters and adapter versions are restored as existing on backup time. Also check js-controller version and error on mismatch (is allowed to be forced accepted by --force parameter for restore)
                                • The "file" database will be automatically converted into JSONL and the database types that use "file" are adjusted to "jsonl" on installation (and backup restore). This means that a rollback of js-controller is only possible to 3.3 after 4.0 was installed! Rollback to former versions require a manual migration to "file" DB before the downgrade! (COMMUNICATION, TESTFOKUS)

                                Features

                                • (bluefox) Added complexity rules for user passwords: New created passwords need to follow the following rules (TODO ADMIN UI INFO ISSUE):
                                  • minimum length is 8
                                  • contains at least one digit
                                  • contains at least one lower case letter
                                  • contains at least one upper case letter
                                • (foxriver76) Introduce option "--custom" when deleting instances or adapter to also clean up relevant custom entries from all objects (TODO ADMIN ISSUE ADD CHECKBOX!, TESTFOKUS)
                                • (foxriver76) Added new host objects to provide Node.js version and PID
                                • (foxriver76) Updated the Linux capabilities on js-controller start when a Node.js version change was detected (and initial on first run)
                                • (AlCalzone/foxriver76) Further optimize strategy for required Node.js module rebuilds. We first try to run rebuild in root package and if still packages are left (or it fails) we try to rebuild the really affected modules alone. Should give better results then former strategy (TESTFOKUS)
                                • (bluefox) Added support for configuring multiple repositories (TODO LINK+INFO FLAG)
                                • (Apollon77) Streamline logging configuration for all available transports: A set Loglevel in config means that this loglevel is pinned for the transport for all cases. An Empty/not set level ("Default" in Admin) means that logging is dynamic and can be adjusted per Instance controller or loglevel state on the fly.
                                • (foxriver76) Added installedFrom info to adapter start log line when not installed from npm normally

                                Optimizations and Fixes

                                • (Apollon77/foxriver76) Improve performance of object deletions (also when deleting instances or adapters) significantly (file-db 4x faster, jsonl-db 14x faster, redis 360x% !! faster)
                                • (foxriver76/Apollon77) Improve performance for redis object searches by up to 2,5x by using lookup structures for object types and custom object properties. This optimization is only active for single host redis systems automatically, but can be activated for multihost redis systems too after all hosts are (and stay!) on js-controller 4.0! (TODO DOCS)
                                • (foxriver76/Apollon77) Improve performance for object searches in general by limiting search namespaces to the relevant ones automatically
                                • (foxriver76) Improve handling of backup restores when custom hostnames were used (especially relevant for Docker usage)
                                • (foxriver76) Optimize backup to make sure invalid user-generated JSONs do not prevent backups from being considered valid
                                • (foxriver76/klein0r) Improved CLI help
                                • (foxriver76) Preserve changed instance names also when updating adapter (name was reset before)
                                • (foxriver76) stop adapters on Windows prior update to prevent EBUSY
                                • (foxriver76) Prevent crashes for uploads with invalid adapter installations
                                • (bluefox) Removed news from instance/adapter objects on install/update because taken from repository in Admin5 (TODO CHECK ADMIN4 EFFECTS)
                                • (AlCalzone) Removed extraneous "npm install" inside adapter directory
                                • (foxriver76/AlCalzone) reduce JSONL compression frequency to reduce I/O (relevant when experimental JSONL database modules are used)
                                • (foxriver76) prevent uploading js-controller (creating system.adapter.js-controller object) and remove existing cases on setup first
                                • (foxriver76) prevent crash when multihost password is invalid and multihost active
                                • (bluefox/foxriver76) bigger internal refactorings in cli commands (TESTFOKUS)
                                • (foxriver76) made logging of not fulfilled adapter dependencies more user-friendly
                                • (foxriver76) Check user and group assignments and remove unknown users from groups (could have happened in earlier versions) in setup first
                                • (foxriver76) Prevent crash on adapter install/update if version string in repo is invalid
                                • (AlCalzone) Update and optimize JSONL database integration and configuration options
                                • (foxriver76) make sure that settings for file/jsonl DB in configfile are also respected
                                • (foxriver76) Update seq integration for logging
                                • (foxriver76) If logging can not be initialized because of a fatal error do not start js-controller
                                • (foxriver76) Prevent start of a debug session for an instance that is already running
                                • (Apollon77) Fix an edge case for file db which could lead to main and backup file being broken in strange situations with multiple crashes in a row
                                • (foxriver76) make sure that admin, backitup and discovery instances are created when update of controller happens if installed and no instance exists
                                • (Apollon77, foxriver76, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

                                Developer relevant DEPRECATIONS/WARNINGS

                                • js-controller is no longer installable from GitHub because is now a monorepo. Use @dev tag on npm to get the nightly build of master js-controller!
                                • log info when setState is used for an object of type file - use setBinaryState instead!
                                • log info when default value of an object is invalid (e.g. does not match object type)
                                • log info when common.states is used and not an object (deprecate String usage)
                                • log info when common.min/common.max exists on non numbers and contain invalid values/types
                                • add get/setForeignBinaryState methods as copy from get/setBinaryState allow adapter to migrate; get/setBinaryState will be changed in 4.1 to be "non Foreign"
                                • Enhanced object checks: adapter need to have a name as string
                                • Decline calls for getForeignObjects with non string pattern (was pot. crashing before)
                                • adapter.tools is deprecated and replaced by a shim. Use methods in adapter class or adapter-core instead or open issues if you need more internal functions
                                  The object view definition "custom/state" is now removed from js-controller after being replaced by "system/custom" in js-controller 3.3. All relevant adapters are updated (COMMUNICATION)
                                • remove all Fifo Methods from adapter.js because deprecated since 1.x
                                • remove adapter.objects.* methods because deprecated since 2.x

                                Developer relevant new Features

                                • (jogibear9988) Add new "unload-safe" promise based "adapter.delay" method to delay further code execution, but still make sure code do not continue after unload was called. This method can not be used inside the "unload" method itself!
                                • (jogibear9988/AlCalzone/foxriver76/Apollon77) Revamp adapter.*Timeout and adapter.*Interval methods to be "unload-safe" and also clear missing timeouts without warnings for more developer convenience! The methods to set a timeout or interval can not be used inside the "unload" method itself!
                                • (AlCalzone) Introduce new methods in tools for Node.js module management: installNodeModule, uninstallNodeModule (TODO Issues adapter that use npm install -> Move))
                                • (bluefox) Add license management functionality to host. Adapters can use adapter.getSuitableLicenses to get available relevant licenses (TODO DOCS)
                                • (AlCalzone) Switch NPM relevant handling to library pak to be more flexible for the future which package manager we want to use. Important: There are still parts that rely on npm for now!
                                • (bluefox) Also report docker info when sending diag data
                                • (foxriver76) Add server time to getHostInfo message
                                • (foxriver76) For multihost clusters with js-controller 4.0+ the hosts automatically determine a "primary" host that can be used js-controller internally (right now, preparation for future topics)

                                Developer relevant Optimizations and Fixes

                                • (foxriver76) fixed permissionError on setBinaryState

                                • (foxriver76) preserve "native" content for instanceObjects when updating the objects on adapter start

                                • (Apollon77/foxriver76) Limit the search scope for object types host, adapter, instance, instanceStats, enum, script, group, user, config to the relevant namespaces when no search start/end is provided to speedup these calls in general

                                • (foxriver76) Optimize deleteDevice/deleteChannel methods to just delete all objects the relevant device/channel

                                • (foxriver76) Removed some magic path lookups to be compatible to npm 7/8. Appname of controller is now always "iobroker" ("ioBroker" in dev cases)

                                • (foxriver76) Also use Sentry (if enabled/allowed) in CLI commands whenever database is initialized to report crashes from CLI if they happen

                                • (foxriver76) Introduce a database protocol version number to allow detection of the available database features in multihost environments

                                • (bluefox) Prevent issues when using adapter.addChannelToEnum because of missing callback

                                • (foxriver76) make sure autoSubscribe works as expected in all cases

                                • general dependency updates

                                • code style optimizations and streamline code

                                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.

                                Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

                                Ingo

                                M Online
                                M Online
                                mrjeschke
                                schrieb am zuletzt editiert von mrjeschke
                                #15

                                @apollon77
                                Nach dem update auf den js-controller 4 bekomme ich wieder invalid
                                Type errors.

                                
                                2022-01-31 23:45:51.995 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoad is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:51.996 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                2022-01-31 23:45:51.998 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadUser is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:51.999 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                2022-01-31 23:45:52.000 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadSystem is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:52.000 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                2022-01-31 23:45:52.002 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadNice is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:52.002 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                2022-01-31 23:45:52.003 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadIdle is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:52.003 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                2022-01-31 23:45:52.004 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadIrq is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                2022-01-31 23:45:52.005 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                
                                

                                edit: war etwas zu schnell.
                                Fehler war vorher auch schon da, war aber vorher Info, jetzt Warnung

                                apollon77A 2 Antworten Letzte Antwort
                                1
                                • apollon77A apollon77

                                  FAQ

                                  Known Issues

                                  Aktuell sind folgende Themen bekannt, welche noch parallel bearbeitet werden:

                                  • Admin hat bei den "Host settings" noch keine Wahlmöglichkeit für "JSONL". Daher bitte den DB Typ aktuell nicht über Admin ändern!
                                  • Bei einer Neuinstallation der Alpha kann es sein das im Admin nue die 3 Standardadapter angezeigt werden. Bitte auf Reload" in der UI klicken um das Repository zu laden. Dies liegt am verwendeten Build
                                  • Die "Migration zu JSONL"-Meldung im Admin kommt auch bei Neuinstallationen. Dies wird mit dem Latest-Release nicht mehr vorkommen.
                                  • Der "Rebuild"-Button in der Adapter-Kachel im Admin5 liefert einen Fehler bei der Ausführung. Der Button in Admin wird entfernt.

                                  Informationen zu pot. angezeigten Meldungen und Logs

                                  (info) "Sets unsupported"

                                  In MutliHost-Umgebungen wo noch nicht alle Hosts aktualisiert sind arbeitet eine Optimierung in einem Kompatibilitätsmodus. In diesem wird ggf vom js-controller und von Adaptern beim Start einmalig die Meldung "Sets unsupported" im Loglevel "info" geloggt. Diese verschwindet wenn alle Hosts auf js-controller 4.0+ sind.

                                  (warn) Object XXX is invalid: obj.common.min/max has an invalid type!

                                  Dies ist eine neue Prüfung, wie oben bereits erwähnt, welche prüft das der Minimum bzw Maximum Wert eines Objekts auch eine Zahl ist. Wenn diese Meldung kommt dann diese bitte per Issue an den Adapter-Entwickler weitergeben, das dies im Adapter behoben wird.

                                  Betroffen/Gemeldet bisher:

                                  • info (fixed in 1.9.18+)

                                  "Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!"

                                  Wenn bei der Inatallation des js-controller diese Meldung kommt:

                                  The following notifications happened during sync:
                                  - Ignoring Directory "benchmark.files" because officially not created as meta ob ject. Please remove directory!
                                  

                                  Bitte ein iob upload all ausführen.

                                  Infos zum Thema "Rebuilds bei Node.js Aktualisierungen"

                                  Generell gilt das Node.JS Updates wie unter https://forum.iobroker.net/topic/44566/how-to-node-js-für-iobroker-richtig-updaten-2021-edition beschrieben funktionieren. Der js-controller 4.0 führt nur die automatisierten Rebuilds etwas anders aus als die 3.3.

                                  In der neuen Version versuchen wir zuerst generell alle Module neu zu erstellen. Das sollte alle Probleme auf einen Schlag lösen. Falls das (und ja da kann es Gründe geben) nicht funktioniert ist der zweite Versuch das wirklich betroffene NPM-Paket zu identifizieren (also z.B. direkt "serialport" o.ä.) und dieses neu zu kompilieren. Das hat deutlich weniger Nebeneffekte wie die bisherigen Versuche.

                                  Bitte hier Feedback geben wie es geht.

                                  FAQ zur DB Umstellung File -> JSONL

                                  Ich nutze Redis. Betrifft mich das?

                                  Wenn Du für beide Datenbanken einen Redis einsetzt dann nicht. Es ist nur relevant wenn eine oder beide DBs "File" sind.

                                  Was ist denn so besser an der "JSONL"-Datenbank anstelle "File"?

                                  Von der Funktionalität ist alles identisch! Die beiden Datenbanken unterscheiden sich nur darin wie die Daten gespeichert werden.

                                  Die File-DB schreibt hier alles in einem großen JSON-File regelmäßig - bei Objekten sind dies schnell mal 20MB. Dies kann durchaus viel I/O verursachen und ist vor allem bei SD-Karten-Basierten Systemen nicht optimal, weil es die Karte sehr belastet. Aber auch für SSDs ist dies nicht optimal. Zusätzlich besteht das Problem das ein Absturz beim Schreiben dazu führt das das ganze File defekt ist. ioBroker greift in diesen Fällen auf ein Backup-File zurück.

                                  JSONL arbeitet hier anders. Änderungen werden erst einmal nur an die Datei angehangen und - nur wenn nötig - wird dann das File "komprimiert" und so neu geschrieben. Dies erfolgt aber viel seltener als bei der File-DB.
                                  Für JSONL hat es @AlCalzone mal folgendermaßen zusammengefasst:
                                  ➕ JSONL ist resistenter. Ein kaputtes Byte in der DB macht nicht alles kaputt und ein Absturz beim Schreibvorgang sorgt nur dafür, dass die ausstehenden Änderungen verloren gehen, nicht alles.
                                  ➕ JSONL schont die SD-Karte durch weniger und kleinere Schreibvorgänge (nur wenn nötig).
                                  ➖ JSONL braucht zumindest phasenweise etwas mehr Platz (die DB ist bis auf Kompaktierungsvorgänge append-only)
                                  ➖ JSONL braucht etwas länger, wenn viele Objekte in kurzer Zeit geschrieben werden sollen (wobei meine letzten Tests nur noch Unterschiede im Rahmen der Standardabweichung ergeben haben)

                                  Wir denken das das neue Datenbank-Handling mehr Vorteile hat - vor allem für SD-Karten- und SSD-basierte Systeme.

                                  Was bedeutet es das die Datenbank jetzt jsonl ist?

                                  Im Normalfall bedeutet hies für den täglichen Betrieb nichts. Auch die Umstellung erfolg vollautomatisch im Rahmen des js-controller Updates.
                                  Ein iob status wird nach der Installation anstelle "file" jetzt "jsonl" anzeigen. Das wars auch schon. Backups über BackItUp oder iob backup und auch restores funktionieren weiterhin ohne Änderungen.

                                  WICHTIG: Durch die automatische Datenbankumstellung ist ein direkter Downgrade oder Backup Restore eines mit 4.0 erstellten Backups nur noch auf js-controller 3.3.x möglich! Für andere Downgrade Optionen bitte im nächsten Eintrag lesen. Ein Downgrade mit Redis als Datenbank ist problemlos weiterhin möglich!

                                  Die Datenfiles im iobroker-data Verzeichnis haben jetzt .jsonl am Ende und nicht mehr .json. Die letzten "file DB .json"-Files werden umbenannt und liegen noch im Verzeichnis mit der Endung ".migrated".

                                  Wie kann ich doch auf js-controller 3.2 oder kleiner downgraden wenn "jsonl" der DB Typ ist?

                                  js-controller Versionen kleiner als 3.3.x hatten die nötigen Dateien für eine "jsonl" Datenbank nicht an Board. Daher ist ein direkter Downgrade nicht möglich weil dann die Daten nicht lesbar sind!

                                  Daher muss ZUERST (!!) unter js-controller 4.0 die Datenbank manuell zurück auf "file" migriert werden. Dies erfolgt per iob setup custom und dort bei der Abfrage des DB Typs file angeben. Alle weiteren Fragen beantworten und dann die Migration abwarten. Danach zeigt iob statuswieder "file" an. Dann kann ein Backup für den Restore in einer kleineren Version erstellt werden oder ein Downgrade via npm i iobroker.js-controller@version (Vorher ins ioBroker Verzeichnis wechseln!) auf die gewünschte Version erfolgen.

                                  FAQ zu Redis "Sets" Optimierungen

                                  Für Redis-basierte Systeme bringt der js-controller 4.0 einige Optimierungen mit. EIne davon nutzt spezielle interne Datenstrukturen, die konsistent initialisiert werden müssen. Da

                                  amg_666A Offline
                                  amg_666A Offline
                                  amg_666
                                  schrieb am zuletzt editiert von
                                  #16

                                  @apollon77
                                  update lief durch:

                                  The object "system.certificates" was updated successfully.
                                  States DB type migrated from "file" to "jsonl"
                                  Objects DB type migrated from "file" to "jsonl"
                                  ioBroker configuration updated
                                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/chokidar/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":"x64"})
                                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.7 (node_modules/osx-temperature-sensor):
                                  npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
                                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/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":"x64"})
                                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/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":"x64"})
                                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman/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":"x64"})
                                  
                                  + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                  added 21 packages from 19 contributors, removed 1 package and updated 38 packages in 91.744s
                                  
                                  183 packages are looking for funding
                                    run `npm fund` for details
                                  

                                  Im Admin kam erstmal nix, das liegt aber glaube ich am Firefox und dem Cache. Nach F5 kam dann
                                  e0bd48e3-539c-430b-9765-40bd2121f7f6-grafik.png

                                  Update Slave lief auch durch, da kam dann allerdings

                                  
                                     ╭───────────────────────────────────────────────────────────────╮
                                     │                                                               │
                                     │     New major version of npm available! 6.14.15 -> 8.3.0      │
                                     │   Changelog: https://github.com/npm/cli/releases/tag/v8.3.0   │
                                     │               Run npm install -g npm to update!               │
                                     │                                                               │
                                     ╰───────────────────────────────────────────────────────────────╯
                                  
                                  pi@iostrom:/opt/iobroker $
                                  pi@iostrom:/opt/iobroker $ + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                  -bash: +: Kommando nicht gefunden.
                                  pi@iostrom:/opt/iobroker $ added 46 packages from 20 contributors, removed 146 packages and updated 38 packages in 122.123s
                                  -bash: added: Kommando nicht gefunden.
                                  pi@iostrom:/opt/iobroker $
                                  pi@iostrom:/opt/iobroker $ 38 packages are looking for funding
                                  -bash: 38: Kommando nicht gefunden.
                                  pi@iostrom:/opt/iobroker $   run `npm fund` for details
                                  
                                  
                                  

                                  Soll npm 8.3.0 installiert werden ???? Ich denke mal nein, oder?

                                  Fazit: Alle Instanzen grün, System läuft :-)

                                  iobroker auf proxmox container

                                  Thomas BraunT apollon77A 2 Antworten Letzte Antwort
                                  1
                                  • amg_666A amg_666

                                    @apollon77
                                    update lief durch:

                                    The object "system.certificates" was updated successfully.
                                    States DB type migrated from "file" to "jsonl"
                                    Objects DB type migrated from "file" to "jsonl"
                                    ioBroker configuration updated
                                    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/chokidar/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":"x64"})
                                    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.7 (node_modules/osx-temperature-sensor):
                                    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
                                    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/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":"x64"})
                                    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/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":"x64"})
                                    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman/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":"x64"})
                                    
                                    + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                    added 21 packages from 19 contributors, removed 1 package and updated 38 packages in 91.744s
                                    
                                    183 packages are looking for funding
                                      run `npm fund` for details
                                    

                                    Im Admin kam erstmal nix, das liegt aber glaube ich am Firefox und dem Cache. Nach F5 kam dann
                                    e0bd48e3-539c-430b-9765-40bd2121f7f6-grafik.png

                                    Update Slave lief auch durch, da kam dann allerdings

                                    
                                       ╭───────────────────────────────────────────────────────────────╮
                                       │                                                               │
                                       │     New major version of npm available! 6.14.15 -> 8.3.0      │
                                       │   Changelog: https://github.com/npm/cli/releases/tag/v8.3.0   │
                                       │               Run npm install -g npm to update!               │
                                       │                                                               │
                                       ╰───────────────────────────────────────────────────────────────╯
                                    
                                    pi@iostrom:/opt/iobroker $
                                    pi@iostrom:/opt/iobroker $ + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                    -bash: +: Kommando nicht gefunden.
                                    pi@iostrom:/opt/iobroker $ added 46 packages from 20 contributors, removed 146 packages and updated 38 packages in 122.123s
                                    -bash: added: Kommando nicht gefunden.
                                    pi@iostrom:/opt/iobroker $
                                    pi@iostrom:/opt/iobroker $ 38 packages are looking for funding
                                    -bash: 38: Kommando nicht gefunden.
                                    pi@iostrom:/opt/iobroker $   run `npm fund` for details
                                    
                                    
                                    

                                    Soll npm 8.3.0 installiert werden ???? Ich denke mal nein, oder?

                                    Fazit: Alle Instanzen grün, System läuft :-)

                                    Thomas BraunT Offline
                                    Thomas BraunT Offline
                                    Thomas Braun
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #17

                                    @amg_666 sagte in Alpha Test js-controller 4.0:

                                    Soll npm 8.3.0 installiert werden ???? Ich denke mal nein, oder?

                                    Nein, die Meldung kommt auch nicht vom iobroker sondern von npm selber.

                                    Linux-Werkzeugkasten:
                                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                    NodeJS Fixer Skript:
                                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                    1 Antwort Letzte Antwort
                                    0
                                    • M mrjeschke

                                      @apollon77
                                      Nach dem update auf den js-controller 4 bekomme ich wieder invalid
                                      Type errors.

                                      
                                      2022-01-31 23:45:51.995 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoad is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:51.996 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      2022-01-31 23:45:51.998 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadUser is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:51.999 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      2022-01-31 23:45:52.000 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadSystem is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:52.000 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      2022-01-31 23:45:52.002 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadNice is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:52.002 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      2022-01-31 23:45:52.003 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadIdle is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:52.003 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      2022-01-31 23:45:52.004 - warn: info.0 (9932) Object info.0.sysinfo.cpu.currentLoad.currentLoadIrq is invalid: obj.common.min has an invalid type! Expected "number", received "string"
                                      2022-01-31 23:45:52.005 - warn: info.0 (9932) This object will not be created in future versions. Please report this to the developer.
                                      
                                      

                                      edit: war etwas zu schnell.
                                      Fehler war vorher auch schon da, war aber vorher Info, jetzt Warnung

                                      apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      schrieb am zuletzt editiert von apollon77
                                      #18

                                      @maik-0 ja weil das Objekt falsch ist. In dem Fall definiert ein Objekt einen minimum Wert welcher den falschen datentyp hat. Bitte wie üblich beim Adapter ein issue anlegen

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      1 Antwort Letzte Antwort
                                      0
                                      • amg_666A amg_666

                                        @apollon77
                                        update lief durch:

                                        The object "system.certificates" was updated successfully.
                                        States DB type migrated from "file" to "jsonl"
                                        Objects DB type migrated from "file" to "jsonl"
                                        ioBroker configuration updated
                                        npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/chokidar/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":"x64"})
                                        npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.7 (node_modules/osx-temperature-sensor):
                                        npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
                                        npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/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":"x64"})
                                        npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/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":"x64"})
                                        npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/zigbee-herdsman/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":"x64"})
                                        
                                        + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                        added 21 packages from 19 contributors, removed 1 package and updated 38 packages in 91.744s
                                        
                                        183 packages are looking for funding
                                          run `npm fund` for details
                                        

                                        Im Admin kam erstmal nix, das liegt aber glaube ich am Firefox und dem Cache. Nach F5 kam dann
                                        e0bd48e3-539c-430b-9765-40bd2121f7f6-grafik.png

                                        Update Slave lief auch durch, da kam dann allerdings

                                        
                                           ╭───────────────────────────────────────────────────────────────╮
                                           │                                                               │
                                           │     New major version of npm available! 6.14.15 -> 8.3.0      │
                                           │   Changelog: https://github.com/npm/cli/releases/tag/v8.3.0   │
                                           │               Run npm install -g npm to update!               │
                                           │                                                               │
                                           ╰───────────────────────────────────────────────────────────────╯
                                        
                                        pi@iostrom:/opt/iobroker $
                                        pi@iostrom:/opt/iobroker $ + iobroker.js-controller@4.0.0-alpha.67-20220131-6621d47f
                                        -bash: +: Kommando nicht gefunden.
                                        pi@iostrom:/opt/iobroker $ added 46 packages from 20 contributors, removed 146 packages and updated 38 packages in 122.123s
                                        -bash: added: Kommando nicht gefunden.
                                        pi@iostrom:/opt/iobroker $
                                        pi@iostrom:/opt/iobroker $ 38 packages are looking for funding
                                        -bash: 38: Kommando nicht gefunden.
                                        pi@iostrom:/opt/iobroker $   run `npm fund` for details
                                        
                                        
                                        

                                        Soll npm 8.3.0 installiert werden ???? Ich denke mal nein, oder?

                                        Fazit: Alle Instanzen grün, System läuft :-)

                                        apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #19

                                        @amg_666 naja schau mal genau hin. Du hattest ein + vor dem npm Befehl und da kamen die bash Fehler her. Und nein funniest keine npm Updates machen ;-))

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        Thomas BraunT 1 Antwort Letzte Antwort
                                        0
                                        • apollon77A apollon77

                                          @amg_666 naja schau mal genau hin. Du hattest ein + vor dem npm Befehl und da kamen die bash Fehler her. Und nein funniest keine npm Updates machen ;-))

                                          Thomas BraunT Offline
                                          Thomas BraunT Offline
                                          Thomas Braun
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          @apollon77

                                          Edgy (node17/npm8) Testing meldet beim Upgrade von Adaptern:

                                          RangeError: Maximum call stack size exceeded
                                          Cannot upgrade: Maximum call stack size exceeded

                                          echad@chet:~ $ iobroker update -u && iobroker upgrade all
                                          Used repository: live-beta
                                          Adapter    "socketio"     : 4.1.0    , installed 4.0.3  [Updatable]
                                          Adapter    "web"          : 4.1.0    , installed 4.0.1  [Updatable]
                                          Exception in PromiseRejectCallback:
                                          /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpgrade.js:139
                                              };
                                              ^
                                          
                                          RangeError: Maximum call stack size exceeded
                                          Exception in PromiseRejectCallback:
                                          /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpgrade.js:128
                                                      await this.upgradeAdapterHelper(repo, sortedAdapters, forceDowngrade, autoConfirm);
                                                                 ^
                                          
                                          RangeError: Maximum call stack size exceeded
                                          Cannot upgrade: Maximum call stack size exceeded
                                          echad@chet:~ $
                                          

                                          Linux-Werkzeugkasten:
                                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                          NodeJS Fixer Skript:
                                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                          apollon77A 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          369

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe