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 3.2 jetzt im Latest!

NEWS

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

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

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

js-controller 3.2 jetzt im Latest!

Scheduled Pinned Locked Moved ioBroker Allgemein
575 Posts 70 Posters 144.9k Views 57 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.
  • apollon77A Online
    apollon77A Online
    apollon77
    wrote on last edited by apollon77
    #1

    Hallo ioBroker-Community,

    mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

    Node.js Versions-Anforderungen
    Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
    Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

    Informationen zur Version
    Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
    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.

    Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
    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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

    Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

    Nötige Adapter-Aktualisierungen

    Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

    • ioBroker.lovelace 1.4.1 oder höher
    • ioBroker.simple-api 2.5.2 oder höher
    • ioBroker.socketio 3.1.3 oder höher
    • ioBroker.telegram 1.7.0 oder höher
    • ioBroker.web 3.2.2 oder höher
    • ioBroker.admin 4.2.1 oder höher

    Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

    Achtung: MASTER-Systeme Reihenfolgen beachten!

    Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

    Windows

    Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

    Für alle "alten manuellen" Installationen gilt

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

    Linux

    • ioBroker stoppen (iobroker stop)
    • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
    • iobroker update
    • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
    • ioBroker starten (iobroker start)

    Bei Fehlern:
    Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

    Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

    Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

    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!

    Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


    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 Features
    • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
    • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

    Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

    Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


    BREAKING CHANGES

    • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
    • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

    Features

    • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
    • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
    • (bluefox) Provide min/max for convert alias functions
    • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
    • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
    • (foxriber76) Add notification system (see DOCS LINK TODO)
    • (foxriver76) enhance setup (and setup first) with redis to all port configuration
    • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

    Optimizations and Fixes

    • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
    • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
    • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
    • (AlCalzone) fix npm uninstall loglevel argument
    • (foxriver76) delete pids.txt when iobroker was stopped
    • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
    • (AlCalzone) Package-Manager: log which packages were (already) installed
    • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
    • (foxriver76) optimize redis library usage to prevent errors on redis outages
    • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
    • (foxriver76) allow migration of instances to already existing host
    • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
    • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
    • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
    • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
    • (bluefox) Catch errors for subscribe on alias without target
    • (foxriver76) only perform auto scaling on alias if not null
    • (foxriver76) if repository request fails also use cached sources on updating repository
    • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
    • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
    • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
    • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
    • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
    • (bluefox) Package-Manager: Filter empty packets out to suppress error message
    • (foxriver76) rename repository names for new installations and on updates to beta/stable
    • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
    • (foxriver76) only scale aliases if target or source is represented by unit %
    • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
    • (Apollon77) also create meta.user on setup first if not existing
    • (foxriver76) fix enumInstances used by CLI commands
    • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
    • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
    • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
    • (Apollon77) update _design objects also on js-controller upgrade/setup first
    • (Apollon77) optimize deletion of files in ioBroker file storage
    • (foxriver76) do not return an error if object does not exist on del*Object
    • (Apollon77) optimize logs when instance is restarted
    • (foxriver76) Preserve name field on instance object creation/update
    • (foxriver76) optimize parameters and flags on CLI
    • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
    • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
    • (foxriver76) replace outdated encryption mechanism of multihost
    • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

    Developer relevant DEPRECATIONS/WARNINGS

    • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
    • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
    • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
    • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
    • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

    Developer relevant new Features

    • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
    • (bluefox) Add system view to filter for "folder" objects
    • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
    • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
    • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
    • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
    • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

    Developer relevant Optimizations and Fixes

    • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
    • (AlCalzone) use fs-extra instead of mkdirp
    • (AlCalzone) read JSON files using fs-extra's readJSONSync
    • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
    • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
    • (bluefox) Added "http" and "stream" options for logs
    • (foxriver76) migrated ci tests to github actions
    • (foxriver76) resolve adapter main file as tools.js method
    • (foxriver76) optimize extendObject with def value
    • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
    • (foxriver76) also escape + char on regex, it's not forbidden
    • (bluefox) Set default state only for objects of type "state"
    • (AlCalzone) include folders in the result of getAdapterObjects
    • general dependency updates
    • code style optimizations

    Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


    Wie Fehler melden?


    Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

    Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

    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 crunchipC ? L peterbaumertP 11 Replies Last reply
    3
    • apollon77A Online
      apollon77A Online
      apollon77
      wrote on last edited by
      #2

      Reserviert für FAQ

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

        Hallo ioBroker-Community,

        mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

        Node.js Versions-Anforderungen
        Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
        Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

        Informationen zur Version
        Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
        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.

        Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
        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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

        Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

        Nötige Adapter-Aktualisierungen

        Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

        • ioBroker.lovelace 1.4.1 oder höher
        • ioBroker.simple-api 2.5.2 oder höher
        • ioBroker.socketio 3.1.3 oder höher
        • ioBroker.telegram 1.7.0 oder höher
        • ioBroker.web 3.2.2 oder höher
        • ioBroker.admin 4.2.1 oder höher

        Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

        Achtung: MASTER-Systeme Reihenfolgen beachten!

        Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

        Windows

        Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

        Für alle "alten manuellen" Installationen gilt

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

        Linux

        • ioBroker stoppen (iobroker stop)
        • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
        • iobroker update
        • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
        • ioBroker starten (iobroker start)

        Bei Fehlern:
        Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

        Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

        Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

        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!

        Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


        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 Features
        • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
        • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

        Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

        Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


        BREAKING CHANGES

        • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
        • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

        Features

        • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
        • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
        • (bluefox) Provide min/max for convert alias functions
        • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
        • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
        • (foxriber76) Add notification system (see DOCS LINK TODO)
        • (foxriver76) enhance setup (and setup first) with redis to all port configuration
        • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

        Optimizations and Fixes

        • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
        • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
        • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
        • (AlCalzone) fix npm uninstall loglevel argument
        • (foxriver76) delete pids.txt when iobroker was stopped
        • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
        • (AlCalzone) Package-Manager: log which packages were (already) installed
        • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
        • (foxriver76) optimize redis library usage to prevent errors on redis outages
        • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
        • (foxriver76) allow migration of instances to already existing host
        • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
        • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
        • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
        • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
        • (bluefox) Catch errors for subscribe on alias without target
        • (foxriver76) only perform auto scaling on alias if not null
        • (foxriver76) if repository request fails also use cached sources on updating repository
        • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
        • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
        • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
        • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
        • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
        • (bluefox) Package-Manager: Filter empty packets out to suppress error message
        • (foxriver76) rename repository names for new installations and on updates to beta/stable
        • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
        • (foxriver76) only scale aliases if target or source is represented by unit %
        • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
        • (Apollon77) also create meta.user on setup first if not existing
        • (foxriver76) fix enumInstances used by CLI commands
        • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
        • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
        • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
        • (Apollon77) update _design objects also on js-controller upgrade/setup first
        • (Apollon77) optimize deletion of files in ioBroker file storage
        • (foxriver76) do not return an error if object does not exist on del*Object
        • (Apollon77) optimize logs when instance is restarted
        • (foxriver76) Preserve name field on instance object creation/update
        • (foxriver76) optimize parameters and flags on CLI
        • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
        • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
        • (foxriver76) replace outdated encryption mechanism of multihost
        • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

        Developer relevant DEPRECATIONS/WARNINGS

        • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
        • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
        • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
        • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
        • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

        Developer relevant new Features

        • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
        • (bluefox) Add system view to filter for "folder" objects
        • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
        • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
        • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
        • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
        • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

        Developer relevant Optimizations and Fixes

        • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
        • (AlCalzone) use fs-extra instead of mkdirp
        • (AlCalzone) read JSON files using fs-extra's readJSONSync
        • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
        • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
        • (bluefox) Added "http" and "stream" options for logs
        • (foxriver76) migrated ci tests to github actions
        • (foxriver76) resolve adapter main file as tools.js method
        • (foxriver76) optimize extendObject with def value
        • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
        • (foxriver76) also escape + char on regex, it's not forbidden
        • (bluefox) Set default state only for objects of type "state"
        • (AlCalzone) include folders in the result of getAdapterObjects
        • general dependency updates
        • code style optimizations

        Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


        Wie Fehler melden?


        Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

        Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

        Ingo

        sigi234S Online
        sigi234S Online
        sigi234
        Forum Testing Most Active
        wrote on last edited by
        #3

        @apollon77

        Screenshot (3159).png

        Läuft. 👍

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

        K 1 Reply Last reply
        0
        • apollon77A apollon77

          Hallo ioBroker-Community,

          mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

          Node.js Versions-Anforderungen
          Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
          Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

          Informationen zur Version
          Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
          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.

          Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
          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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

          Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

          Nötige Adapter-Aktualisierungen

          Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

          • ioBroker.lovelace 1.4.1 oder höher
          • ioBroker.simple-api 2.5.2 oder höher
          • ioBroker.socketio 3.1.3 oder höher
          • ioBroker.telegram 1.7.0 oder höher
          • ioBroker.web 3.2.2 oder höher
          • ioBroker.admin 4.2.1 oder höher

          Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

          Achtung: MASTER-Systeme Reihenfolgen beachten!

          Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

          Windows

          Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

          Für alle "alten manuellen" Installationen gilt

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

          Linux

          • ioBroker stoppen (iobroker stop)
          • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
          • iobroker update
          • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
          • ioBroker starten (iobroker start)

          Bei Fehlern:
          Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

          Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

          Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

          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!

          Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


          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 Features
          • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
          • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

          Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

          Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


          BREAKING CHANGES

          • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
          • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

          Features

          • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
          • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
          • (bluefox) Provide min/max for convert alias functions
          • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
          • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
          • (foxriber76) Add notification system (see DOCS LINK TODO)
          • (foxriver76) enhance setup (and setup first) with redis to all port configuration
          • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

          Optimizations and Fixes

          • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
          • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
          • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
          • (AlCalzone) fix npm uninstall loglevel argument
          • (foxriver76) delete pids.txt when iobroker was stopped
          • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
          • (AlCalzone) Package-Manager: log which packages were (already) installed
          • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
          • (foxriver76) optimize redis library usage to prevent errors on redis outages
          • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
          • (foxriver76) allow migration of instances to already existing host
          • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
          • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
          • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
          • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
          • (bluefox) Catch errors for subscribe on alias without target
          • (foxriver76) only perform auto scaling on alias if not null
          • (foxriver76) if repository request fails also use cached sources on updating repository
          • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
          • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
          • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
          • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
          • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
          • (bluefox) Package-Manager: Filter empty packets out to suppress error message
          • (foxriver76) rename repository names for new installations and on updates to beta/stable
          • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
          • (foxriver76) only scale aliases if target or source is represented by unit %
          • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
          • (Apollon77) also create meta.user on setup first if not existing
          • (foxriver76) fix enumInstances used by CLI commands
          • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
          • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
          • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
          • (Apollon77) update _design objects also on js-controller upgrade/setup first
          • (Apollon77) optimize deletion of files in ioBroker file storage
          • (foxriver76) do not return an error if object does not exist on del*Object
          • (Apollon77) optimize logs when instance is restarted
          • (foxriver76) Preserve name field on instance object creation/update
          • (foxriver76) optimize parameters and flags on CLI
          • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
          • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
          • (foxriver76) replace outdated encryption mechanism of multihost
          • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

          Developer relevant DEPRECATIONS/WARNINGS

          • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
          • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
          • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
          • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
          • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

          Developer relevant new Features

          • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
          • (bluefox) Add system view to filter for "folder" objects
          • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
          • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
          • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
          • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
          • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

          Developer relevant Optimizations and Fixes

          • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
          • (AlCalzone) use fs-extra instead of mkdirp
          • (AlCalzone) read JSON files using fs-extra's readJSONSync
          • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
          • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
          • (bluefox) Added "http" and "stream" options for logs
          • (foxriver76) migrated ci tests to github actions
          • (foxriver76) resolve adapter main file as tools.js method
          • (foxriver76) optimize extendObject with def value
          • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
          • (foxriver76) also escape + char on regex, it's not forbidden
          • (bluefox) Set default state only for objects of type "state"
          • (AlCalzone) include folders in the result of getAdapterObjects
          • general dependency updates
          • code style optimizations

          Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


          Wie Fehler melden?


          Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

          Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

          Ingo

          crunchipC Away
          crunchipC Away
          crunchip
          Forum Testing Most Active
          wrote on last edited by crunchip
          #4

          @apollon77 dann doch nochmal ne Frage zum DWD Adapter

          host.IoBroker	2021-01-16 21:48:03.297	info	instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
          

          an sich ja ok, habs aber extra rauskopiert zum Zeilen Zählen😁 es sind genau 213 am Stück
          kämpf mich so durch, was ich alles im log so finde, jedoch ist das heute schon 16.25 mb groß

          umgestiegen von Proxmox auf Unraid

          FeuersturmF apollon77A 2 Replies Last reply
          0
          • apollon77A apollon77

            Hallo ioBroker-Community,

            mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

            Node.js Versions-Anforderungen
            Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
            Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

            Informationen zur Version
            Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
            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.

            Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
            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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

            Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

            Nötige Adapter-Aktualisierungen

            Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

            • ioBroker.lovelace 1.4.1 oder höher
            • ioBroker.simple-api 2.5.2 oder höher
            • ioBroker.socketio 3.1.3 oder höher
            • ioBroker.telegram 1.7.0 oder höher
            • ioBroker.web 3.2.2 oder höher
            • ioBroker.admin 4.2.1 oder höher

            Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

            Achtung: MASTER-Systeme Reihenfolgen beachten!

            Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

            Windows

            Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

            Für alle "alten manuellen" Installationen gilt

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

            Linux

            • ioBroker stoppen (iobroker stop)
            • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
            • iobroker update
            • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
            • ioBroker starten (iobroker start)

            Bei Fehlern:
            Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

            Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

            Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

            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!

            Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


            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 Features
            • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
            • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

            Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

            Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


            BREAKING CHANGES

            • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
            • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

            Features

            • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
            • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
            • (bluefox) Provide min/max for convert alias functions
            • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
            • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
            • (foxriber76) Add notification system (see DOCS LINK TODO)
            • (foxriver76) enhance setup (and setup first) with redis to all port configuration
            • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

            Optimizations and Fixes

            • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
            • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
            • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
            • (AlCalzone) fix npm uninstall loglevel argument
            • (foxriver76) delete pids.txt when iobroker was stopped
            • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
            • (AlCalzone) Package-Manager: log which packages were (already) installed
            • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
            • (foxriver76) optimize redis library usage to prevent errors on redis outages
            • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
            • (foxriver76) allow migration of instances to already existing host
            • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
            • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
            • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
            • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
            • (bluefox) Catch errors for subscribe on alias without target
            • (foxriver76) only perform auto scaling on alias if not null
            • (foxriver76) if repository request fails also use cached sources on updating repository
            • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
            • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
            • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
            • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
            • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
            • (bluefox) Package-Manager: Filter empty packets out to suppress error message
            • (foxriver76) rename repository names for new installations and on updates to beta/stable
            • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
            • (foxriver76) only scale aliases if target or source is represented by unit %
            • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
            • (Apollon77) also create meta.user on setup first if not existing
            • (foxriver76) fix enumInstances used by CLI commands
            • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
            • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
            • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
            • (Apollon77) update _design objects also on js-controller upgrade/setup first
            • (Apollon77) optimize deletion of files in ioBroker file storage
            • (foxriver76) do not return an error if object does not exist on del*Object
            • (Apollon77) optimize logs when instance is restarted
            • (foxriver76) Preserve name field on instance object creation/update
            • (foxriver76) optimize parameters and flags on CLI
            • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
            • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
            • (foxriver76) replace outdated encryption mechanism of multihost
            • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

            Developer relevant DEPRECATIONS/WARNINGS

            • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
            • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
            • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
            • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
            • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

            Developer relevant new Features

            • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
            • (bluefox) Add system view to filter for "folder" objects
            • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
            • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
            • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
            • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
            • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

            Developer relevant Optimizations and Fixes

            • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
            • (AlCalzone) use fs-extra instead of mkdirp
            • (AlCalzone) read JSON files using fs-extra's readJSONSync
            • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
            • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
            • (bluefox) Added "http" and "stream" options for logs
            • (foxriver76) migrated ci tests to github actions
            • (foxriver76) resolve adapter main file as tools.js method
            • (foxriver76) optimize extendObject with def value
            • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
            • (foxriver76) also escape + char on regex, it's not forbidden
            • (bluefox) Set default state only for objects of type "state"
            • (AlCalzone) include folders in the result of getAdapterObjects
            • general dependency updates
            • code style optimizations

            Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


            Wie Fehler melden?


            Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

            Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

            Ingo

            crunchipC Away
            crunchipC Away
            crunchip
            Forum Testing Most Active
            wrote on last edited by crunchip
            #5

            @apollon77 die Adapter Seite passt nun leider nicht mehr, weder in chrome noch auf FF
            22b8172e-464f-4a42-a81a-0ea98475359a-image.png
            edit: seh gerade , kommt allein vom SourceAnalytix, hatte gar nicht nach unte gescrollt, der Rest passt

            umgestiegen von Proxmox auf Unraid

            apollon77A 1 Reply Last reply
            0
            • crunchipC crunchip

              @apollon77 dann doch nochmal ne Frage zum DWD Adapter

              host.IoBroker	2021-01-16 21:48:03.297	info	instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
              

              an sich ja ok, habs aber extra rauskopiert zum Zeilen Zählen😁 es sind genau 213 am Stück
              kämpf mich so durch, was ich alles im log so finde, jedoch ist das heute schon 16.25 mb groß

              FeuersturmF Online
              FeuersturmF Online
              Feuersturm
              wrote on last edited by Feuersturm
              #6

              @crunchip Hi, das klingt nach diesem Issue https://github.com/ioBroker/ioBroker.dwd/issues/60

              Ich hatte mit der 3.2.6-0 und dem DWD Adapter massive Probleme. Seit der 3.2.6-1 konnte ich den DWD Adapter wieder aktiveren ohne das mein System lahmgelegt wurde. Werde gleich mal auf 3.2.7 updaten.

              1 Reply Last reply
              0
              • crunchipC crunchip

                @apollon77 dann doch nochmal ne Frage zum DWD Adapter

                host.IoBroker	2021-01-16 21:48:03.297	info	instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
                

                an sich ja ok, habs aber extra rauskopiert zum Zeilen Zählen😁 es sind genau 213 am Stück
                kämpf mich so durch, was ich alles im log so finde, jedoch ist das heute schon 16.25 mb groß

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

                @crunchip Das ist schon immer so ... kommt darauf an wie oft dwd läuft 🙂

                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
                crunchipC 1 Reply Last reply
                0
                • crunchipC crunchip

                  @apollon77 die Adapter Seite passt nun leider nicht mehr, weder in chrome noch auf FF
                  22b8172e-464f-4a42-a81a-0ea98475359a-image.png
                  edit: seh gerade , kommt allein vom SourceAnalytix, hatte gar nicht nach unte gescrollt, der Rest passt

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

                  @crunchip Exakt, hat nichts mit dem js-controller zu tun

                  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,

                    mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

                    Node.js Versions-Anforderungen
                    Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
                    Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

                    Informationen zur Version
                    Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
                    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.

                    Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
                    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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

                    Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                    Nötige Adapter-Aktualisierungen

                    Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

                    • ioBroker.lovelace 1.4.1 oder höher
                    • ioBroker.simple-api 2.5.2 oder höher
                    • ioBroker.socketio 3.1.3 oder höher
                    • ioBroker.telegram 1.7.0 oder höher
                    • ioBroker.web 3.2.2 oder höher
                    • ioBroker.admin 4.2.1 oder höher

                    Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                    Achtung: MASTER-Systeme Reihenfolgen beachten!

                    Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

                    Windows

                    Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

                    Für alle "alten manuellen" Installationen gilt

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

                    Linux

                    • ioBroker stoppen (iobroker stop)
                    • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
                    • iobroker update
                    • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
                    • ioBroker starten (iobroker start)

                    Bei Fehlern:
                    Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

                    Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                    Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

                    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!

                    Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


                    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 Features
                    • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
                    • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

                    Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

                    Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                    BREAKING CHANGES

                    • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
                    • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

                    Features

                    • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
                    • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
                    • (bluefox) Provide min/max for convert alias functions
                    • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
                    • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
                    • (foxriber76) Add notification system (see DOCS LINK TODO)
                    • (foxriver76) enhance setup (and setup first) with redis to all port configuration
                    • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

                    Optimizations and Fixes

                    • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
                    • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
                    • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
                    • (AlCalzone) fix npm uninstall loglevel argument
                    • (foxriver76) delete pids.txt when iobroker was stopped
                    • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
                    • (AlCalzone) Package-Manager: log which packages were (already) installed
                    • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
                    • (foxriver76) optimize redis library usage to prevent errors on redis outages
                    • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
                    • (foxriver76) allow migration of instances to already existing host
                    • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
                    • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
                    • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
                    • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
                    • (bluefox) Catch errors for subscribe on alias without target
                    • (foxriver76) only perform auto scaling on alias if not null
                    • (foxriver76) if repository request fails also use cached sources on updating repository
                    • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
                    • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
                    • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
                    • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
                    • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
                    • (bluefox) Package-Manager: Filter empty packets out to suppress error message
                    • (foxriver76) rename repository names for new installations and on updates to beta/stable
                    • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
                    • (foxriver76) only scale aliases if target or source is represented by unit %
                    • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
                    • (Apollon77) also create meta.user on setup first if not existing
                    • (foxriver76) fix enumInstances used by CLI commands
                    • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
                    • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
                    • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
                    • (Apollon77) update _design objects also on js-controller upgrade/setup first
                    • (Apollon77) optimize deletion of files in ioBroker file storage
                    • (foxriver76) do not return an error if object does not exist on del*Object
                    • (Apollon77) optimize logs when instance is restarted
                    • (foxriver76) Preserve name field on instance object creation/update
                    • (foxriver76) optimize parameters and flags on CLI
                    • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
                    • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
                    • (foxriver76) replace outdated encryption mechanism of multihost
                    • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

                    Developer relevant DEPRECATIONS/WARNINGS

                    • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
                    • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
                    • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
                    • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
                    • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

                    Developer relevant new Features

                    • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
                    • (bluefox) Add system view to filter for "folder" objects
                    • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
                    • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
                    • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
                    • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
                    • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

                    Developer relevant Optimizations and Fixes

                    • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
                    • (AlCalzone) use fs-extra instead of mkdirp
                    • (AlCalzone) read JSON files using fs-extra's readJSONSync
                    • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
                    • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
                    • (bluefox) Added "http" and "stream" options for logs
                    • (foxriver76) migrated ci tests to github actions
                    • (foxriver76) resolve adapter main file as tools.js method
                    • (foxriver76) optimize extendObject with def value
                    • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
                    • (foxriver76) also escape + char on regex, it's not forbidden
                    • (bluefox) Set default state only for objects of type "state"
                    • (AlCalzone) include folders in the result of getAdapterObjects
                    • general dependency updates
                    • code style optimizations

                    Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                    Wie Fehler melden?


                    Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                    Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

                    Ingo

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    wrote on last edited by
                    #9

                    @apollon77

                    Was noch kommt ist das:

                    socketio.0	2021-01-16 23:34:03.742	warn	(4140) Empty pattern!
                    

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

                    apollon77A 1 Reply Last reply
                    0
                    • sigi234S sigi234

                      @apollon77

                      Was noch kommt ist das:

                      socketio.0	2021-01-16 23:34:03.742	warn	(4140) Empty pattern!
                      
                      apollon77A Online
                      apollon77A Online
                      apollon77
                      wrote on last edited by
                      #10

                      @sigi234 Das hatten wir in nem anderen Thread und hat auch nichts mit dem controller zu tun. Hier versucht ein socket.io Nutzender Adapter (eine Visu üblicherweise) ein subscribe OHNE jedes Pattern zu machen. Das hatte den Socket.io letztens mal gecrasht ... wird da jetzt abgefangen.

                      Am besten mal die visus deaktivieren und nach einander schauen wann es startet und dann dort 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 Reply Last reply
                      0
                      • apollon77A apollon77

                        @crunchip Das ist schon immer so ... kommt darauf an wie oft dwd läuft 🙂

                        crunchipC Away
                        crunchipC Away
                        crunchip
                        Forum Testing Most Active
                        wrote on last edited by
                        #11

                        @apollon77 verstehe ich jetzt nicht, die Meldung kommt doch, so wie der cron läuft, ich hab mir die nicht aus dem log zusammengesucht,
                        was ich damit meinte, es kamen 213 Meldungen fortlaufend am Stück

                        umgestiegen von Proxmox auf Unraid

                        apollon77A 1 Reply Last reply
                        0
                        • UweRLPU Offline
                          UweRLPU Offline
                          UweRLP
                          wrote on last edited by
                          #12

                          Unter Windows läuft es, soweit ich es bisher überblicke, ohne Probleme.
                          Meine Installation basiert auf dem neuen (mittlerweile veralteten) Installer.
                          Node.js lief seit erscheinen mit der 12.20.1, der js-controller war zuvor 3.1.6, Adapter habe ich vor dem Update nochmals aus dem lastest aktuallisiert.
                          js-Controller Version.jpg
                          Info.jpg
                          Instanzen_01.jpg
                          Instanzen_02.jpg

                          Danke für eure Arbeit!

                          1 Reply Last reply
                          1
                          • apollon77A apollon77

                            Hallo ioBroker-Community,

                            mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

                            Node.js Versions-Anforderungen
                            Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
                            Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

                            Informationen zur Version
                            Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
                            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.

                            Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
                            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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

                            Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                            Nötige Adapter-Aktualisierungen

                            Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

                            • ioBroker.lovelace 1.4.1 oder höher
                            • ioBroker.simple-api 2.5.2 oder höher
                            • ioBroker.socketio 3.1.3 oder höher
                            • ioBroker.telegram 1.7.0 oder höher
                            • ioBroker.web 3.2.2 oder höher
                            • ioBroker.admin 4.2.1 oder höher

                            Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                            Achtung: MASTER-Systeme Reihenfolgen beachten!

                            Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

                            Windows

                            Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

                            Für alle "alten manuellen" Installationen gilt

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

                            Linux

                            • ioBroker stoppen (iobroker stop)
                            • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
                            • iobroker update
                            • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
                            • ioBroker starten (iobroker start)

                            Bei Fehlern:
                            Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

                            Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                            Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

                            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!

                            Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


                            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 Features
                            • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
                            • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

                            Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

                            Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                            BREAKING CHANGES

                            • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
                            • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

                            Features

                            • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
                            • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
                            • (bluefox) Provide min/max for convert alias functions
                            • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
                            • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
                            • (foxriber76) Add notification system (see DOCS LINK TODO)
                            • (foxriver76) enhance setup (and setup first) with redis to all port configuration
                            • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

                            Optimizations and Fixes

                            • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
                            • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
                            • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
                            • (AlCalzone) fix npm uninstall loglevel argument
                            • (foxriver76) delete pids.txt when iobroker was stopped
                            • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
                            • (AlCalzone) Package-Manager: log which packages were (already) installed
                            • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
                            • (foxriver76) optimize redis library usage to prevent errors on redis outages
                            • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
                            • (foxriver76) allow migration of instances to already existing host
                            • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
                            • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
                            • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
                            • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
                            • (bluefox) Catch errors for subscribe on alias without target
                            • (foxriver76) only perform auto scaling on alias if not null
                            • (foxriver76) if repository request fails also use cached sources on updating repository
                            • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
                            • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
                            • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
                            • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
                            • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
                            • (bluefox) Package-Manager: Filter empty packets out to suppress error message
                            • (foxriver76) rename repository names for new installations and on updates to beta/stable
                            • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
                            • (foxriver76) only scale aliases if target or source is represented by unit %
                            • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
                            • (Apollon77) also create meta.user on setup first if not existing
                            • (foxriver76) fix enumInstances used by CLI commands
                            • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
                            • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
                            • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
                            • (Apollon77) update _design objects also on js-controller upgrade/setup first
                            • (Apollon77) optimize deletion of files in ioBroker file storage
                            • (foxriver76) do not return an error if object does not exist on del*Object
                            • (Apollon77) optimize logs when instance is restarted
                            • (foxriver76) Preserve name field on instance object creation/update
                            • (foxriver76) optimize parameters and flags on CLI
                            • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
                            • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
                            • (foxriver76) replace outdated encryption mechanism of multihost
                            • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

                            Developer relevant DEPRECATIONS/WARNINGS

                            • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
                            • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
                            • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
                            • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
                            • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

                            Developer relevant new Features

                            • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
                            • (bluefox) Add system view to filter for "folder" objects
                            • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
                            • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
                            • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
                            • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
                            • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

                            Developer relevant Optimizations and Fixes

                            • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
                            • (AlCalzone) use fs-extra instead of mkdirp
                            • (AlCalzone) read JSON files using fs-extra's readJSONSync
                            • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
                            • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
                            • (bluefox) Added "http" and "stream" options for logs
                            • (foxriver76) migrated ci tests to github actions
                            • (foxriver76) resolve adapter main file as tools.js method
                            • (foxriver76) optimize extendObject with def value
                            • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
                            • (foxriver76) also escape + char on regex, it's not forbidden
                            • (bluefox) Set default state only for objects of type "state"
                            • (AlCalzone) include folders in the result of getAdapterObjects
                            • general dependency updates
                            • code style optimizations

                            Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                            Wie Fehler melden?


                            Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                            Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

                            Ingo

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #13

                            @apollon77 3.2.7 - nothing to report.

                            dslraserD dirk1962D 2 Replies Last reply
                            1
                            • apollon77A apollon77

                              Hallo ioBroker-Community,

                              mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

                              Node.js Versions-Anforderungen
                              Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
                              Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

                              Informationen zur Version
                              Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
                              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.

                              Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
                              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 über 650 commits eingeflossen. Dafür bedenke mich diesmal 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 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

                              Es gibt aktuell keine 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. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                              Nötige Adapter-Aktualisierungen

                              Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

                              • ioBroker.lovelace 1.4.1 oder höher
                              • ioBroker.simple-api 2.5.2 oder höher
                              • ioBroker.socketio 3.1.3 oder höher
                              • ioBroker.telegram 1.7.0 oder höher
                              • ioBroker.web 3.2.2 oder höher
                              • ioBroker.admin 4.2.1 oder höher

                              Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                              Achtung: MASTER-Systeme Reihenfolgen beachten!

                              Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 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 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss 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 3.2 aktualisiert wurde!

                              Windows

                              Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

                              Für alle "alten manuellen" Installationen gilt

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

                              Linux

                              • ioBroker stoppen (iobroker stop)
                              • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
                              • iobroker update
                              • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
                              • ioBroker starten (iobroker start)

                              Bei Fehlern:
                              Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x 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

                              Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                              Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

                              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!

                              Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


                              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 Features
                              • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
                              • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

                              Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

                              Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                              BREAKING CHANGES

                              • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
                              • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

                              Features

                              • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
                              • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
                              • (bluefox) Provide min/max for convert alias functions
                              • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
                              • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
                              • (foxriber76) Add notification system (see DOCS LINK TODO)
                              • (foxriver76) enhance setup (and setup first) with redis to all port configuration
                              • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

                              Optimizations and Fixes

                              • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
                              • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
                              • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
                              • (AlCalzone) fix npm uninstall loglevel argument
                              • (foxriver76) delete pids.txt when iobroker was stopped
                              • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
                              • (AlCalzone) Package-Manager: log which packages were (already) installed
                              • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
                              • (foxriver76) optimize redis library usage to prevent errors on redis outages
                              • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
                              • (foxriver76) allow migration of instances to already existing host
                              • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
                              • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
                              • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
                              • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
                              • (bluefox) Catch errors for subscribe on alias without target
                              • (foxriver76) only perform auto scaling on alias if not null
                              • (foxriver76) if repository request fails also use cached sources on updating repository
                              • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
                              • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
                              • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
                              • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
                              • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
                              • (bluefox) Package-Manager: Filter empty packets out to suppress error message
                              • (foxriver76) rename repository names for new installations and on updates to beta/stable
                              • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
                              • (foxriver76) only scale aliases if target or source is represented by unit %
                              • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
                              • (Apollon77) also create meta.user on setup first if not existing
                              • (foxriver76) fix enumInstances used by CLI commands
                              • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
                              • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
                              • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
                              • (Apollon77) update _design objects also on js-controller upgrade/setup first
                              • (Apollon77) optimize deletion of files in ioBroker file storage
                              • (foxriver76) do not return an error if object does not exist on del*Object
                              • (Apollon77) optimize logs when instance is restarted
                              • (foxriver76) Preserve name field on instance object creation/update
                              • (foxriver76) optimize parameters and flags on CLI
                              • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
                              • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
                              • (foxriver76) replace outdated encryption mechanism of multihost
                              • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

                              Developer relevant DEPRECATIONS/WARNINGS

                              • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
                              • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
                              • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
                              • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
                              • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

                              Developer relevant new Features

                              • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
                              • (bluefox) Add system view to filter for "folder" objects
                              • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
                              • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
                              • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
                              • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
                              • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

                              Developer relevant Optimizations and Fixes

                              • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
                              • (AlCalzone) use fs-extra instead of mkdirp
                              • (AlCalzone) read JSON files using fs-extra's readJSONSync
                              • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
                              • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
                              • (bluefox) Added "http" and "stream" options for logs
                              • (foxriver76) migrated ci tests to github actions
                              • (foxriver76) resolve adapter main file as tools.js method
                              • (foxriver76) optimize extendObject with def value
                              • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
                              • (foxriver76) also escape + char on regex, it's not forbidden
                              • (bluefox) Set default state only for objects of type "state"
                              • (AlCalzone) include folders in the result of getAdapterObjects
                              • general dependency updates
                              • code style optimizations

                              Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                              Wie Fehler melden?


                              Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                              Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

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

                              Ingo

                              L Offline
                              L Offline
                              lonsimbt
                              wrote on last edited by
                              #14

                              @apollon77
                              Läuft seit gestern Abend ohne Auffälligkeiten.
                              Gruß Marco

                              iobroker im Container (debian Bullseye) unter proxmox 7.1
                              debmatic in VM (debian Buster) unter proxmox 7.1 mit HB-RF-USB und RPI-RF-MOD
                              40 HomeMatic Geräte, Phillips Hue, Ikea Tradfri, Logitech Harmony Hub, Botvac Connected, Robonect

                              1 Reply Last reply
                              1
                              • V Offline
                                V Offline
                                volx3eet
                                wrote on last edited by
                                #15

                                Moin zusammen,

                                würde auch gerne aktualisieren aber bei mir zeigt er kein Update an, weder im Iobroker, noch, wenn ich über die Shell versuche zu aktualisieren.

                                System läuft bei mir auf der NAS im buanet Container, Master / Slave mit Raspberry Pi 4.
                                Aktuelle Version JS-controller auf beiden: 3.1.6

                                Einfach ein wenig Geduld haben?

                                Danke und Grüße,
                                Volx

                                ? 1 Reply Last reply
                                0
                                • V volx3eet

                                  Moin zusammen,

                                  würde auch gerne aktualisieren aber bei mir zeigt er kein Update an, weder im Iobroker, noch, wenn ich über die Shell versuche zu aktualisieren.

                                  System läuft bei mir auf der NAS im buanet Container, Master / Slave mit Raspberry Pi 4.
                                  Aktuelle Version JS-controller auf beiden: 3.1.6

                                  Einfach ein wenig Geduld haben?

                                  Danke und Grüße,
                                  Volx

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #16

                                  @volx3eet hast du auch das repository auf latest ?

                                  O 1 Reply Last reply
                                  0
                                  • ? A Former User

                                    @volx3eet hast du auch das repository auf latest ?

                                    O Away
                                    O Away
                                    oFbEQnpoLKKl6mbY5e13
                                    wrote on last edited by oFbEQnpoLKKl6mbY5e13
                                    #17

                                    @ilovegym said in js-controller 3.2 jetzt im Latest!:

                                    @volx3eet hast du auch das repository auf latest ?

                                    Beta müsste es sein.

                                    V apollon77A 2 Replies Last reply
                                    0
                                    • O oFbEQnpoLKKl6mbY5e13

                                      @ilovegym said in js-controller 3.2 jetzt im Latest!:

                                      @volx3eet hast du auch das repository auf latest ?

                                      Beta müsste es sein.

                                      V Offline
                                      V Offline
                                      volx3eet
                                      wrote on last edited by
                                      #18

                                      @ofbeqnpolkkl6mby5e13 @ilovegym Danke euch beiden. Man sollte sowas auch nicht Sonntagmorgens um 10 gleich machen wollen 😁

                                      Hat geklappt....

                                      Grüße,
                                      Volx

                                      1 Reply Last reply
                                      1
                                      • crunchipC crunchip

                                        @apollon77 verstehe ich jetzt nicht, die Meldung kommt doch, so wie der cron läuft, ich hab mir die nicht aus dem log zusammengesucht,
                                        was ich damit meinte, es kamen 213 Meldungen fortlaufend am Stück

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

                                        @crunchip das sehe ich leide aus deinem log Auszug nicht ;-)) mal mehr log bitte

                                        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
                                        crunchipC 1 Reply Last reply
                                        0
                                        • O oFbEQnpoLKKl6mbY5e13

                                          @ilovegym said in js-controller 3.2 jetzt im Latest!:

                                          @volx3eet hast du auch das repository auf latest ?

                                          Beta müsste es sein.

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

                                          @ofbeqnpolkkl6mby5e13 es gibt manchmal seltene caching Fälle. Versuch „iobroker update“ nochmal

                                          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
                                          O 1 Reply Last reply
                                          0
                                          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

                                          436

                                          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