Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. js-controller 4.0 jetzt im BETA/LATEST!

NEWS

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

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

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

js-controller 4.0 jetzt im BETA/LATEST!

Scheduled Pinned Locked Moved ioBroker Allgemein
747 Posts 70 Posters 223.9k Views 60 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ChaotC Offline
    ChaotC Offline
    Chaot
    wrote on last edited by
    #69

    @apollon77
    Gute Arbeit.
    Rate mal wann ich das Update installiert habe 😊
    JSControler.jpg

    👍 👍 👍

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    apollon77A E 2 Replies Last reply
    1
    • ice987I ice987

      @apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:

      @ice987 Verstehe ich nicht weil der Container macht eigentlich genauein Fix beim startup soweit ich weiss ... also das wäre interessant das sich das Andre mal anschaut

      @andre
      könntest du dir dies ggf. mal anschauen?

      apollon77A Online
      apollon77A Online
      apollon77
      wrote on last edited by
      #70

      @ice987 Naja das ist so ein Thema, ich denke der Adapter "crasht" nicht weil es ja egal ist weil nur ein Teil der Funkitonalität ist und enn jemand das nicht braucht egal ist. Ich überlege mal

      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 Reply Last reply
      0
      • ChaotC Chaot

        @apollon77
        Gute Arbeit.
        Rate mal wann ich das Update installiert habe 😊
        JSControler.jpg

        👍 👍 👍

        apollon77A Online
        apollon77A Online
        apollon77
        wrote on last edited by apollon77
        #71

        @chaot lass mich mal frech tippen :-))) irgendwann zwischen 12:30 und 13:00 🙂

        Der Dank dafür geht an @AlCalzone 🙂

        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 Reply Last reply
        0
        • apollon77A apollon77

          Hallo ioBroker-Community,

          nach längerer Entwicklungszeit kommt heute der neue js-controller 4.0 (Releasename "Isabelle") ins Beta/Latest Repository (sollte im laufe des Abends bei allen auftauchen). Dieser Artikel enthält alle wichtigen Infos zu diesem Release und im zweiten Post eine kleine FAQ.

          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 (oder Reloads falls offen) des Admin5 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 Stable-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 der Thread-Name sagt ist diese version nur für die User verfügbar, die das Beta/Latest Repository nutzen! Bei Stable Systemen wird das Update noch nicht angeboten.

          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, vorher ins ioBroker Verzeichnis wechseln cd /opt/iobroker) 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 zwei Adapter bekannt, welche Inkompatibel sind:

          • Backitup sollte auf 2.3.3+ aktualisiert sein, damit vor allem Restores mit js-controller 4 sauber funktionieren
          • Node-Red muss in Verson 2.4.2 Installiert sein, da der Adapter sonst nicht funktioniert
          • km200 (see https://github.com/frankjoke/ioBroker.km200/issues/69😞 Fix is described in https://forum.iobroker.net/post/760260

          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

          Aus der Community kommt von @sigi234 eine Anleitung für ein Windows Update https://forum.iobroker.net/topic/51574/windows-installation-update

          Für alle "alten manuellen" Installationen gilt

          • iobroker update
          • ioBroker muss gestoppt sein.
          • Vor dem Update bitte prüfen das keine Prozesse mehr laufen
          • iobroker upgrade self
          • ioBroker starten

          Linux

          • iobroker update
          • 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
          • iobroker fix
          • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
          • ioBroker starten (iobroker start)

          Die Installation wird - wenn Sie von einem 2.x/3.x-System aus erfolgt einige Warnungen/Fehler loggen. Wenn diese aussgehen wie im folgenden Bild gezeigt (GET/SET-UNSUPPOTED bzw LUA script load error), ist dies erwartet und ok!

          Update js-controller from @3.3.22 to @4.0.4
          npm install iobroker.js-controller@4.0.4 --loglevel error --unsafe-perm --prefix "/opt/iobroker" (System call)
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: GET-UNSUPPORTED for namespace cfg.: Data=["meta.objects.features.useSets"]
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: GET-UNSUPPORTED for namespace cfg.: Data=["meta.objects.protocolVersion"]
          Server States 127.0.0.1:60678 Error from InMemDB: Error: GET-UNSUPPORTED for namespace meta.: Data=["meta.states.protocolVersion"]
          Server States 127.0.0.1:60680 Error from InMemDB: Error: PSUBSCRIBE-UNSUPPORTED for namespace meta.: Data=["meta.*"]
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: Unknown LUA script load
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: Unknown LUA script load
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: Unknown LUA script load
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: SET-UNSUPPORTED for namespace cfg.: Data=["meta.objects.features.useSets",{"type":"Buffer","data":[49]}]
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: multi NOT SUPPORTED
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: sadd NOT SUPPORTED
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: exec NOT SUPPORTED
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: multi NOT SUPPORTED
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: sadd NOT SUPPORTED
          Server Objects 127.0.0.1:37942 Error from InMemDB: Error: exec NOT SUPPORTED
          

          Wichtig: Falls es bei Updates von js-controller 3.2.x bei update oder upgrade einen Fehler gibt "No connection to database" dann bitte nochmals versuchen und wenn es wieder passiert folgende Schritte ausführen:

          • Editiere /opt/iobroker/iobroker-data/iobroker.json
          • Unter objects und states gibt es ein ' "connectTimeout": 2000,`
          • Zahl ändern in 5000
          • Neu versuchen
          • Nach dem Upgrade am besten den Wert wieder zurücketzen weil der js-controller 3.3+ hier optimiert und länger wartet

          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.

          Die Installation kann ggf. Warnungen ausspucken über potentiell "deprecated" NPM Module oder Compiler-Warnungen oder (bei optionalen Paketen auch -Fehler) anzeigen (z.B, unix_dgram, serialport, pam_authentication und ggf andere). Hier gilt wie immer: Ignorieren 🙂
          Ebenso eine Aufforderung "npm audit fix" auszuführen kann ignoriert werden!

          NACH der Installation

          Nach der Installation sollte der ioBroker automatisch wiederder gestartet werden. Falls doch nicht bitte mittels iobroker start starten.

          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) Optimize Stop Handling to prevent errors
          • (Apollon77) Optimize Adapter process initialization to prevent edge case errors
          • (foxriver76) Optimize meta object sync
          • (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!
          • (foxriver76) Allow to set "null" for common.states and not log error for object (but has no effect on extend, so value does not get deleted!)
          • (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 dem Beta-Test bekannt sind und bis zum Release 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

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #72

          @apollon77
          Kann es sein, dass "writeFileInterval" in der iobroker.json bei jsonl-files ignoriert wird?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          apollon77A 1 Reply Last reply
          0
          • paul53P paul53

            @apollon77
            Kann es sein, dass "writeFileInterval" in der iobroker.json bei jsonl-files ignoriert wird?

            apollon77A Online
            apollon77A Online
            apollon77
            wrote on last edited by apollon77
            #73

            @paul53 Ja weil JSONL halt ganz anders funktioniert. Es schreibt kontionuierlich in kleinern Blöcken und komprimiert (schreibt neu) die Datei nach anderen Regeln. Dafür gibt es neue jsonl Einstellungen um das zu tunen falls nötig:

            https://github.com/ioBroker/ioBroker.js-controller/blob/master/packages/controller/conf/iobroker-dist.json#L53-L71

            Das sind die Defaults (Objects und States haben hier leicht andere Defaults!!) falls es im iobroker.json nicht enthalten ist.

            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 Reply Last reply
            0
            • apollon77A apollon77

              @ice987 Verstehe ich nicht weil der Container macht eigentlich genauein Fix beim startup soweit ich weiss ... also das wäre interessant das sich das Andre mal anschaut

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #74

              @apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:

              Verstehe ich nicht weil der Container macht eigentlich genauein Fix beim startup soweit ich weiss ...

              nein, das tut er nicht, würde auch den Startvorgang erheblich verlängern. Was getan wird ist beim ersten Start des Containers und wenn ein backupfile gefunden wurde, dass das Startupscript nach dem Entpacken ein chown iobroker:iobroker über /opt/iobroker laufen lässt.

              Und ja, auch ich musste nach dem upgrade den fixer laufen lassen. Das war bisher nach einem Controller-Update nie notwendig

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              apollon77A 1 Reply Last reply
              0
              • F fastfoot

                @apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:

                Verstehe ich nicht weil der Container macht eigentlich genauein Fix beim startup soweit ich weiss ...

                nein, das tut er nicht, würde auch den Startvorgang erheblich verlängern. Was getan wird ist beim ersten Start des Containers und wenn ein backupfile gefunden wurde, dass das Startupscript nach dem Entpacken ein chown iobroker:iobroker über /opt/iobroker laufen lässt.

                Und ja, auch ich musste nach dem upgrade den fixer laufen lassen. Das war bisher nach einem Controller-Update nie notwendig

                apollon77A Online
                apollon77A Online
                apollon77
                wrote on last edited by
                #75

                @fastfoot ahh ok. Aber ich verstehe dennoch nicht warum der fixer hier einen Effekt hat. Ich habe auch in den logs die bisher gezeigt wurden keinerlei Fehler gesehen. Oooohhhhhh eine Idee hab ich. Ich rede mit André

                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
                F 1 Reply Last reply
                0
                • ChaotC Chaot

                  @apollon77
                  Gute Arbeit.
                  Rate mal wann ich das Update installiert habe 😊
                  JSControler.jpg

                  👍 👍 👍

                  E Offline
                  E Offline
                  e-i-k-e
                  wrote on last edited by
                  #76

                  @chaot sagte in js-controller 4.0 jetzt im BETA/LATEST!:

                  @apollon77
                  Gute Arbeit.
                  Rate mal wann ich das Update installiert habe 😊
                  JSControler.jpg

                  👍 👍 👍

                  Interessant!

                  Ich konnte dies bei dem Netzwerk-Traffic feststellen, leider bei Disk IO kaum.
                  Wie könnte ich feststellen, weswegen ich diese Peaks bei Disk IO habe?
                  4bc0217f-81f1-4c49-afc0-45a4c6d9d7fc-image.png

                  apollon77A 1 Reply Last reply
                  0
                  • apollon77A apollon77

                    @fastfoot ahh ok. Aber ich verstehe dennoch nicht warum der fixer hier einen Effekt hat. Ich habe auch in den logs die bisher gezeigt wurden keinerlei Fehler gesehen. Oooohhhhhh eine Idee hab ich. Ich rede mit André

                    F Offline
                    F Offline
                    fastfoot
                    wrote on last edited by
                    #77

                    @apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:

                    @fastfoot ahh ok. Aber ich verstehe dennoch nicht warum der fixer hier einen Effekt hat. Ich habe auch in den logs die bisher gezeigt wurden keinerlei Fehler gesehen. Oooohhhhhh eine Idee hab ich. Ich rede mit André

                    hier mal stellvertetend ein Auszug, alle Adapter liefern den Fehler:

                    2022-02-06 16:46:35.306 - info: host.iobroker starting 22 instances
                    2022-02-06 16:46:35.539 - error: host.iobroker instance system.adapter.admin.0 could not be started: Error: spawn EPERM
                    2022-02-06 16:46:39.467 - error: host.iobroker instance system.adapter.telegram.0 could not be started: Error: spawn EPERM
                    2022-02-06 16:46:43.468 - error: host.iobroker instance system.adapter.javascript.0 could not be started: Error: spawn EPERM
                    2022-02-06 16:46:47.467 - error: host.iobroker instance system.adapter.javascript.1 could not be started: Error: spawn EPERM
                    2022-02-06 16:46:51.476 - error: host.iobroker instance system.adapter.alexa2.0 could not be started: Error: spawn EPERM
                    2022-02-06 16:46:55.532 - info: host.iobroker instance scheduled system.adapter.ical.0 0 10 * * *
                    2022-02-06 16:46:55.565 - info: host.iobroker instance system.adapter.ical.0 could not be started: Error: spawn EPERM
                    

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    apollon77A 1 Reply Last reply
                    0
                    • E e-i-k-e

                      @chaot sagte in js-controller 4.0 jetzt im BETA/LATEST!:

                      @apollon77
                      Gute Arbeit.
                      Rate mal wann ich das Update installiert habe 😊
                      JSControler.jpg

                      👍 👍 👍

                      Interessant!

                      Ich konnte dies bei dem Netzwerk-Traffic feststellen, leider bei Disk IO kaum.
                      Wie könnte ich feststellen, weswegen ich diese Peaks bei Disk IO habe?
                      4bc0217f-81f1-4c49-afc0-45a4c6d9d7fc-image.png

                      apollon77A Online
                      apollon77A Online
                      apollon77
                      wrote on last edited by
                      #78

                      @e-i-k-e Gute Frage ... Du hast jetzt JSONL db oder was?

                      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
                      E 1 Reply Last reply
                      0
                      • E Offline
                        E Offline
                        e-i-k-e
                        wrote on last edited by
                        #79

                        @apollon77

                        Hat das aktivieren des Redis optimierung funktioniert?

                        pi@ioBroker-Rock:/opt/iobroker$ iob objects activateSets
                        iobroker [command]
                        
                        Commands:
                          iobroker setup                                               Setup ioBroker
                          iobroker start [all|<adapter>.<instance>]                    Starts the js-controller or a specified adapter instance
                          iobroker stop [<adapter>.<instance>]                         stops the js-controller or a specified adapter instance
                          iobroker restart [<adapter>.<instance>]                      Restarts js-controller or a specified adapter instance  [aliases: r]
                          iobroker debug <adapter>[.<instance>]                        Starts a Node.js debugging session for the adapter instance
                          iobroker info                                                Shows the host info
                          iobroker logs [<adapter>]                                    Monitor log
                          iobroker add <adapter> [desiredNumber]                       Add instance of adapter  [aliases: a]
                          iobroker install <adapter>                                   Installs a specified adapter  [aliases: i]
                          iobroker rebuild [<path>]                                    Rebuild all native modules or path
                          iobroker url <url> [<name>]                                  Install adapter from specified url, e.g. GitHub
                          iobroker del <adapter>                                       Remove adapter from system  [aliases: delete]
                          iobroker del <adapter>.<instance>                            Remove adapter instance  [aliases: delete]
                          iobroker update [<repositoryUrl>]                            Update repository and list adapters
                          iobroker upgrade                                             Upgrade management
                          iobroker upload [all|<adapter>]                              Upload management  [aliases: u]
                          iobroker object                                              Object management  [aliases: o]
                          iobroker state                                               State management  [aliases: s]
                          iobroker message <adapter>[.instance] <command> [<message>]  Send message to adapter instance/s
                          iobroker list <type> [<filter>]                              List all entries, like objects
                          iobroker chmod <mode> <file>                                 Change file rights
                          iobroker chown <user> <group> <file>                         Change file ownership
                          iobroker touch <file>                                        Touch file
                          iobroker rm <file>                                           Remove file
                          iobroker file                                                File management
                          iobroker user                                                User commands
                          iobroker group                                               group management
                          iobroker host <hostname>                                     Set host to given hostname
                          iobroker set <adapter>.<instance>                            Change settings of adapter config
                          iobroker license <license.file or license.text>              Update license by given file
                          iobroker cert                                                Certificate management
                          iobroker clean <yes>                                         Clears all objects and states
                          iobroker backup                                              Create backup
                          iobroker restore <backup name or path>                       Restore a specified backup
                          iobroker validate <backup name or path>                      Validate a specified backup
                          iobroker status [all|<adapter>.<instance>]                   Status of ioBroker or adapter instance  [aliases: isrun]
                          iobroker repo [<name>]                                       Show repo information
                          iobroker uuid                                                Show uuid of the installation  [aliases: id]
                          iobroker unsetup                                             Reset license, installation secret and language
                          iobroker fix                                                 Execute the installation fixer script, this updates your ioBroker installation
                          iobroker multihost                                           Multihost management
                          iobroker compact                                             compact group management
                          iobroker plugin                                              Plugin management
                          iobroker version [<adapter>]                                 Show version of js-controller or specified adapter  [aliases: v]
                        
                        Options:
                          --help  Show help  [boolean]
                        
                        1 Reply Last reply
                        0
                        • apollon77A apollon77

                          @e-i-k-e Gute Frage ... Du hast jetzt JSONL db oder was?

                          E Offline
                          E Offline
                          e-i-k-e
                          wrote on last edited by
                          #80

                          @apollon77
                          redis/redis

                          apollon77A ChaotC 2 Replies Last reply
                          0
                          • F fastfoot

                            @apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:

                            @fastfoot ahh ok. Aber ich verstehe dennoch nicht warum der fixer hier einen Effekt hat. Ich habe auch in den logs die bisher gezeigt wurden keinerlei Fehler gesehen. Oooohhhhhh eine Idee hab ich. Ich rede mit André

                            hier mal stellvertetend ein Auszug, alle Adapter liefern den Fehler:

                            2022-02-06 16:46:35.306 - info: host.iobroker starting 22 instances
                            2022-02-06 16:46:35.539 - error: host.iobroker instance system.adapter.admin.0 could not be started: Error: spawn EPERM
                            2022-02-06 16:46:39.467 - error: host.iobroker instance system.adapter.telegram.0 could not be started: Error: spawn EPERM
                            2022-02-06 16:46:43.468 - error: host.iobroker instance system.adapter.javascript.0 could not be started: Error: spawn EPERM
                            2022-02-06 16:46:47.467 - error: host.iobroker instance system.adapter.javascript.1 could not be started: Error: spawn EPERM
                            2022-02-06 16:46:51.476 - error: host.iobroker instance system.adapter.alexa2.0 could not be started: Error: spawn EPERM
                            2022-02-06 16:46:55.532 - info: host.iobroker instance scheduled system.adapter.ical.0 0 10 * * *
                            2022-02-06 16:46:55.565 - info: host.iobroker instance system.adapter.ical.0 could not be started: Error: spawn EPERM
                            
                            apollon77A Online
                            apollon77A Online
                            apollon77
                            wrote on last edited by
                            #81

                            @fastfoot Ich habe eine Vermutung, die ich heute Abend mal checken werde. Der Controller 4 erkennt jetzt Nodejs Versionsänderungen und setzt die capabilities der node executable neu ... Mein Hinterkopf sagt mir das da bei docker irgendwas besonders war :))

                            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
                            Great SUNG 1 Reply Last reply
                            0
                            • E e-i-k-e

                              @apollon77
                              redis/redis

                              apollon77A Online
                              apollon77A Online
                              apollon77
                              wrote on last edited by
                              #82

                              @e-i-k-e Na du bish ein Held :-)))) Wir redn über Optimierungen die durch jsonl DB Nutzung kommen :-)))

                              bei Redis ist die Frage wie Du die Persistenz eingestellt hast ... siehe auch https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick (bzw generell eher ein Thema für dort)

                              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
                              E 1 Reply Last reply
                              1
                              • apollon77A apollon77

                                @e-i-k-e Na du bish ein Held :-)))) Wir redn über Optimierungen die durch jsonl DB Nutzung kommen :-)))

                                bei Redis ist die Frage wie Du die Persistenz eingestellt hast ... siehe auch https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick (bzw generell eher ein Thema für dort)

                                E Offline
                                E Offline
                                e-i-k-e
                                wrote on last edited by e-i-k-e
                                #83

                                @apollon77

                                Okay 😄 Ich habe nichts gesagt 😉

                                Aber trotzdem scheint der Befehl iob objects activateSets bei mir nicht zu funktionieren, siehe Post #80.

                                apollon77A 1 Reply Last reply
                                0
                                • E e-i-k-e

                                  @apollon77

                                  Okay 😄 Ich habe nichts gesagt 😉

                                  Aber trotzdem scheint der Befehl iob objects activateSets bei mir nicht zu funktionieren, siehe Post #80.

                                  apollon77A Online
                                  apollon77A Online
                                  apollon77
                                  wrote on last edited by
                                  #84

                                  @e-i-k-e Glaube Type ... mach mal iob object activateSets (wobei bei Single Host aktiv sein sollte ... nur multihost erst ausführen wenn alle hosts controller 4 sind!

                                  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
                                  E 1 Reply Last reply
                                  0
                                  • apollon77A apollon77

                                    @e-i-k-e Glaube Type ... mach mal iob object activateSets (wobei bei Single Host aktiv sein sollte ... nur multihost erst ausführen wenn alle hosts controller 4 sind!

                                    E Offline
                                    E Offline
                                    e-i-k-e
                                    wrote on last edited by e-i-k-e
                                    #85

                                    @apollon77

                                    Super, das wars schon! Bitte oben übernehmen 🙂

                                    pi@ioBroker-Rock:/opt/iobroker$ iob object activateSets
                                    Successfully migrated 22666 objects to Redis Sets
                                    Successfully activated the usage of Redis Sets. Please make sure to only use js-controller 4.0 or higher on all hosts!
                                    

                                    Master/Slave System. Natürlich sind alle auf Version 4.0.4 😉
                                    8fa6ffef-f474-4807-a14d-dad839b18344-image.png

                                    Was genau bewirkt die "Redis Sets Optimierungen" und wie macht sich dies bemerkbar?

                                    apollon77A 1 Reply Last reply
                                    0
                                    • E e-i-k-e

                                      @apollon77
                                      redis/redis

                                      ChaotC Offline
                                      ChaotC Offline
                                      Chaot
                                      wrote on last edited by
                                      #86

                                      @e-i-k-e Schaut bei mir auch so aus wenn ich auf "Stunde" stelle. Allerdings nicht mit Peaks bis 40M

                                      Hast du redis auf einem eigenem Container? Starte den mal neu. Das Verhalten kommt bei mir manchmal vor wenn der Redis Container sich irgendwie aufwickelt.

                                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                      E 1 Reply Last reply
                                      0
                                      • ChaotC Chaot

                                        @e-i-k-e Schaut bei mir auch so aus wenn ich auf "Stunde" stelle. Allerdings nicht mit Peaks bis 40M

                                        Hast du redis auf einem eigenem Container? Starte den mal neu. Das Verhalten kommt bei mir manchmal vor wenn der Redis Container sich irgendwie aufwickelt.

                                        E Offline
                                        E Offline
                                        e-i-k-e
                                        wrote on last edited by
                                        #87

                                        @chaot

                                        Läuft aktuell noch im gleichen Container.
                                        Habe aber nach deiner Nachricht trotzdem mal den kompletten Container neu gestartet.

                                        Hat aber keine Änderung mit sich gebracht.

                                        apollon77A 1 Reply Last reply
                                        0
                                        • E e-i-k-e

                                          @chaot

                                          Läuft aktuell noch im gleichen Container.
                                          Habe aber nach deiner Nachricht trotzdem mal den kompletten Container neu gestartet.

                                          Hat aber keine Änderung mit sich gebracht.

                                          apollon77A Online
                                          apollon77A Online
                                          apollon77
                                          wrote on last edited by
                                          #88

                                          @e-i-k-e daswebn die die Standard redis persistent hast dann Ist das genau so weil der auch in regelmäßigen Abständen (default 5mins) sein persistenz file neu schreibt. Das ist ggf sehr io lastig. Aber das Said: bitte anderer thread!!

                                          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
                                          E 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          662

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe