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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. js-controller 2.0 ab sofort im Latest Repo

NEWS

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

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

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

js-controller 2.0 ab sofort im Latest Repo

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
js-controller
1.1k Beiträge 89 Kommentatoren 352.8k Aufrufe 64 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    Jan1
    schrieb am zuletzt editiert von
    #5

    Ab sofort?
    96b37d83-501b-4e28-9b98-dffdc83f0436-grafik.png

    apollon77A sigi234S 2 Antworten Letzte Antwort
    0
    • J Jan1

      Ab sofort?
      96b37d83-501b-4e28-9b98-dffdc83f0436-grafik.png

      apollon77A Online
      apollon77A Online
      apollon77
      schrieb am zuletzt editiert von
      #6

      @Jan1 Unter "Adapter dein "Repo" mal neu geladen? (Der zwei Pfeile im Kreis knopf)

      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
      J 1 Antwort Letzte Antwort
      0
      • apollon77A apollon77

        Hallo ioBroker-Community,

        passend zum Erreichen der 30.000 aktive Installationen Marke vor ein paar Tagen möchten wir Euch nun gern den neuen js-controller 2.0 vorstellen. Dieser ist ab sofort im Latest Repository und auf npm verfügbar.

        In einem internen Test und einen sehr umfangreichen Beta-Test in der Community haben wir dieses große Update des js-controllers bereits sehr intensiv getestet. Großer Dank geht an @Arteck, @sigi234, @SBorg, @opossum, @e-s, @e-i-k-e, @Yetiberg, @Jan1, @Einstein67, @Dr. Bakterius und viele andere mehr. Das war eine super Zusammenarbeit!

        Es sind vor allem "unter der Haube" einige grundlegende Änderungen eingeflossen, die den Wechsel auf eine neue Hauptrelease-Nummer rechtfertigen. Mehr dazu weiter unten.

        Der js-controller 2.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Es kann von jeder früheren Version auf die Version 2.0 aktualisiert werden. Einzig die Node.js Version muss vor dem Update mindestens auf 8.x, besser noch auf 10.x angehoben werden! Für Node.js 12 ist es aber noch etwas zu früh, da hier immer noch einige Adapter nicht kompatibel sind.
        Falls Ihr in diesem Zuge die Nodejs Version aktualisiert bitte Die Infos/Anleitung unter https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten berücksichtigen.

        Weiterhin wird der ioBroke-Eigene-Dateibereich (im Normalfall bisher unter <ioBroker-Verzeichnis>/iobroker-data/files/...) nun strikter behandelt und manuell oder per Skript (fs.write) dort direkt abgelegte/hinkopierte Dateien sind ggf. nicht mehr in Visualisierungen anzeigbar!
        Skripte müssen angepasst werden (Nutzung von writeFile) bzw. die Dateien müssen in offiziell definierte Adpater-Basisverzeichnisse (z.B. vis.0, iqontrol.meta u.ä.) abgelegt werden. Nutzt am besten auch die offiziellen Uploader via Vis oder iqontrol, damit diese Dateien korrekt registriert sind. Diese Änderung wurde auch zur Erhöhung der Sicherheit umgesetzt! Der positive Nebeneffekt ist auch das die Files dann mit im Backup landen, was bisher nicht gegeben war!
        Bei der Installation (oder nachträglich per iobroker file sync) werden die erlaubten Verzeichnisse geprüft und bisher nicht registrierte Dateien aufgenommen. Wer komplett eigene Verzeichnisse angelegt hat bekommt dazu eine Fehlermelung - diese werden nicht automatisch übernommen und müssen manuell korrekt kopiert werden.Siehe dazu auch die Informationen zum Ordner 0_userdata.0!


        Installation


        VOR der Installation

        Wie bei jedem Update dieser Art: Bitte macht ein Backup! iobroker backup, bzw. kopieren des iobroker-data Verzeichnisses reichen an sich im Zweifel auch aus (ioBroker vorher stoppen natürlich). Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt.

        Nötige Adapter-Aktualisierungen

        Die folgenden Adapter müssen auf die genannten Minimalversionsnummern aktualisiert werden, da diese sonst nicht mit dem js-controller 2.0 funktionieren. Diese Updates am besten vorher ausführen, weil alle genannten Versionen auch mit den alten js-controller Versionen funktionieren.

        • simple-api 2.1.2 or higher
        • email 1.0.5 or higher
        • pushover 1.1.1 or higher
        • hue 1.2.4 or higher
        • node-red 1.10.1 or higher
        • vis 1.2.2 or higher
        • iqontrol 0.2.12 or higher
        • socketio 2.1.2 or higher
        • radar2 1.0.9 (GitHub version 1.2.0 muss manuell angepasst werden, siehe FAQ!)
        • broadlink2 (siehe FAQ)
        • tr-064 (wenn noch soef Originalversion bei Fehlern community Version installieren)
        • sonos 2.0.0 or higher (Breaking change! No Webserver anymore!)
        • web 2.4.9 or higher
        • hqwidgets 1.1.3 or higher
        • ble v0.10.1 or higher
        Achtung: Slave-Systeme zuerst!

        Bei einem Multi-Host-System ist es beim Update auf Version 2.0 sehr wichtig, die Slave-Systeme zuerst zu aktualisieren. Der Master wird als letztes aktualisiert!

        Wenn diese Reihenfolge nicht eingehalten wird können sich die Slave-Systeme nicht mit dem master verbinden und das Update muss manuell ausgeführt werden (Details dazu siehe FAQ Post).

        Windows

        Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mir npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.

        Für alle "alten manuellen" Installationen gilt

        • ioBroker muss gestoppt sein.
        • Vor dem Update bitte prüfen das keine Prozesse mehr laufen
        • 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
        • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
        • ioBroker starten (iobroker start)

        Bei Fehlern:
        Wenn bei der Linux-Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer nutzen und die Installation wiederholen.

        curl -sL https://iobroker.net/fix.sh | bash -
        

        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. Die großen Änderungen sind alle "Unter der Haube" versteckt.

        Dazu, was Euch jetzt die ganzen Neuerungen bringen, findet Ihr weiter unten in diesem Text Informationen. Neue Funktionen als Basis für Weiterentwicklungen wurden behutsam integriert und einige bestehende Probleme gezielt behoben.

        Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist.


        Was hat sich geändert, was besonders ansehen/beachten?


        Eine der größeren Änderungen ist, dass die ioBroker-eigenen States- und Objects-Datenbanken vollständig neu geschrieben wurden. Im ioBroker-System wird zur Kommunikation jetzt ein TCP-basiertes und mit Redis-kompatibles Protokoll verwendet. Vor allem "Reconnection from DB"-Fehler sollten dadurch jetzt der Vergangenheit angehören. Auf Basis dieser Änderungen planen wir für die Zukunft noch einige interessante Neuerungen.

        Durch diese Änderung steht jetzt in Logs teilweise "connected to redis" obwohl Ihr gar keinen Redis nutzt. Ihr könnt allerdings weiterhin am Port erkennen wenn es die ioBroker-eigene Datenbank ist (normalerweise Ports 9000 und 9001). Erste Tests haben gezeigt das die CPU Belastung der Adapter-Prozesse und des js-controller geringer ist als in der alten Version, da das neue Protokoll deutlich schlanker ist. Es ist weiterhin flexibler und robuster - so lange die Netzwerkverbindung nicht abreißt. Aber selbst in solch einem Fall sollte ein automatischer Reconnect stattfinden und, wenn der Abbruch nich zu lang ist, alle Änderungen aus der Zeit ohne Verbindungen nochmals gesendet werden.
        Also falls Ihr in der Vergangenheit von "Reconnect to DB" Meldungen und Effekten geplagt wart ist Euer Bericht für uns sehr interessannt.

        In diesem Zuge ist vor allem das Verhalten bei einer Unterbrechung der Verbindung zur Datenbank (egal ob Redis oder im "file" Falle der js-controller). Beim Verlust der Verbindung wird diese per Default in 5s Abständen bis zu 20 mal versucht wiederherzustellen. Wenn dies gelingt, bleibt das ganze System in Betrieb und in der Unterbrechungszeit aufgelaufene Befehle werden nachträglich ausgeführt. Bei Redis könnte diese Zeit sogar für ein Redis-Update ausreichen.

        Erst danach (also nach ca. 90s) beenden sich Adapter und das System und ein automatischer Restart findet statt, wonach der js-controller wartet bis die Verbindung wieder da ist. Um ggf Netzwerk-Effekte abzufangen gibt es alle 30s einen Restart des Controllers.

        Ebenso der berühmt berüchtigte "Error 7", welcher im Log erscheint wenn ein Adapterprozess bereits läuft, aber ein neuer gestartet werden soll wurde verbessert. Wenn ein neuer Prozess gestartet werden soll, sollten sich nun ggf noch laufende Prozesse automatisch selbst beenden und eine einmalige Meldung im Log erzeugen.

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


        2.0 - Release Bella

        Breaking changes

        • Minimum requirement for js-controller 2.0 is node.js 8.x
        • Files in iobroker-data/files are only supported in officially registered directories AND when uploaded using ioBroker tools

        New user features

        •   Introduced 0_userdata as home for user specific files, objects and states
          
        • Add Compact Mode and compact groups (Technology Preview)
        • Add build-in Alias handling for Objects/States (Technology Preview)
        • Add support to also use Redis for Objects and Files
        • Add Redis sentinel support
        • Allow dynamic change of Loglevel for adapter instance and js-controller hosts processes
        • Add optional migration for State and/or Objects values when using setup custom
        • Add monitoring for event-Loop-Lag as host and adapter objects
        • Add possibility to validate backup files
        • Support command „iobroker logs“
        • Support command „cert create“
        • Remember installation location for reinstallations
        • Use Remembered installation location for automatic adapter installs
        • Log Process-ID for all adapter log messages
        • Enhance some CLI commands like iobroker status
        • Arrays are now allowed as state values and working without "JSON.stringify"

        New adapter developer features

        • streamline redis vs file States handling which was different also before controller 2.0:
          • not set states will always return null now
          • States will set to null completely (not only value) when they expire
          • States will also be published to onChanged handlers when states are in Redis
        • Add adapter.supportsFeature('NAME') method to check if a certain feature exists. #244
        • Ability to define secured objects in io-pack access only via own adapter and admin. #287
        • Added getObjectView and getObjectViewAsync on adapter object
        • Added getObjectList and getObjectListAsync on adapter object
        • Allow the deletion of multiple objects with wildcard
        • setObject/setObjectNotExists now also sets default value of state after object creation
        • Allow getPort to check for the port optionally on a certain host/IP

        Further changes

        • Rewrite InMem databases (States & Objects) to TCP (redis compatible) protocol and deprecate socket.io version; will be removed approx. in v2.1
        • Add adapter handling to prevent "error 7" (adapters will stop themself as soon as PID is not as expected)
        • Upgrade all dependencies
        • Don't chmod 777 after controller upgrade
        • Refactoring of many CLI commands
        • Add possibility to return zip file as a link and not as base64
        • Standardize error codes
        • Root should always npm install with --unsafe-perm
        • Enable gzip to read repositories
        • Read hash of sources.json online before downloading the whole file
        • Add some information about user-agent
        • Verify the version of node.js by start of the instance
        • Hide cmd window on windows
        • Include certificate creation in setup first
        • Suppress warning by npm install
        • Allow optional dependencies being installed
        • Optimize setup custom command and add more user guidance
        • Add Feature overview to README
        • Forward upload console outputs from slave to master
        • Make sure to upload and upgrade all relevant objects on installations and updates of adapters
        • Always upgrade instance objects after successful installs or upgrades
        • Optimize adapter start processes, especially when combined with needed automatic installations of adapters
        • After 2 installation tries with "last-installedFrom" use the installedVersion field to try to install from npm
        • Hhosts now ignore object changes when the affected instances is still in installQueue
        • Code refactoring and optimizations in various places
        • Randomize Certificate Serial numbers
        • delay parallel start of scheduled instances to prevent system overload scenarios (same rules asd for adapterstart, basically 4s delay)
        • streamline reconnection handling and make more flexible (reconnedt delay to 5s with approx 20 tries) before shutting down the system
        • iobroker upgrade all aktualisiert nicht mehr den Controller mit

        Bugfixes

        • Log scheduled restarts as info only (fixes #315)
        • Fixed #340 to maintain restartSchedule on updates
        • Fixed a bug where it was possible to set "ack" to any value via cli
        • Enable ESLint and fix most issues
        • Optimize multi host upload
        • Restart stopped adapters at the end of the upload and not before to make sure to not have two adapter restarts on upgrade cases
        • Enhance checks for failed installations in cli and controller
        • Also update adapter instance statistic objects when no instanceObejcts are defined
        • ".alive" state values are only checked on adapter start if ack=true to allow to start a process if not running
        • Fix for mutlihost detection
        • Fix backup of states
        • Make sure also VIS global CSS is included in backup and restored
        • Many more fixes in various places

        Weitere Details zu den Änderungen und Bugfixes ist im Changelog einzusehen.

        Im dritten Post dieses Threads stellen wir einige neue Features im Detail etwas "weniger technisch" vor. 😉


        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, Info zur verwendeten DB-Konstellation (file(file, file/redis, redis/redis ...), Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

        Ingo

        DiginixD Offline
        DiginixD Offline
        Diginix
        schrieb am zuletzt editiert von
        #7

        @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

        • radar2 1.0.9 (GitHub version 1.2.0 muss manuell angepasst werden, siehe FAQ!)

        Kann in den FAQ nichts zu radar2 finden. 🤷

        ..:: So long! Tom ::..

        NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

        apollon77A 1 Antwort Letzte Antwort
        0
        • J Jan1

          Ab sofort?
          96b37d83-501b-4e28-9b98-dffdc83f0436-grafik.png

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

          @Jan1 sagte in js-controller 2.0 ab sofort im Latest Repo:

          Ab sofort?

          Screenshot (245).png

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

          1 Antwort Letzte Antwort
          0
          • DiginixD Diginix

            @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

            • radar2 1.0.9 (GitHub version 1.2.0 muss manuell angepasst werden, siehe FAQ!)

            Kann in den FAQ nichts zu radar2 finden. 🤷

            apollon77A Online
            apollon77A Online
            apollon77
            schrieb am zuletzt editiert von apollon77
            #9

            @Diginix Füge ich ein. Effektiv identisch zu Broadlink2 ... FAQ fixed

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

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Antwort Letzte Antwort
            1
            • D Online
              D Online
              darkiop
              Most Active
              schrieb am zuletzt editiert von
              #10

              Hier passts auch:

              f15d670d-75e2-4a63-915d-8758a3fa6924-grafik.png

              @apollon77 Müssen die jenigen die direkt über Github installiert haben noch was beachten? Frisch hochziehen ausm latest z.B.?

              Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

              apollon77A 1 Antwort Letzte Antwort
              0
              • D darkiop

                Hier passts auch:

                f15d670d-75e2-4a63-915d-8758a3fa6924-grafik.png

                @apollon77 Müssen die jenigen die direkt über Github installiert haben noch was beachten? Frisch hochziehen ausm latest z.B.?

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

                @darkiop Nope, die Version 2.0.25 ist die gleiche wie vom GitHub vor paar Tagen während des Beta-Tests. Ihr könnt alles so lassen. Ein iobroker upgrade selfsollte euch sogar sagen das Ihr aktuell seid

                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
                D 1 Antwort Letzte Antwort
                0
                • apollon77A apollon77

                  @Jan1 Unter "Adapter dein "Repo" mal neu geladen? (Der zwei Pfeile im Kreis knopf)

                  J Offline
                  J Offline
                  Jan1
                  schrieb am zuletzt editiert von
                  #12

                  @apollon77
                  Ach der zählt auch zu Adapter, hatte nur unter Host aktualisiert, man lernt eben immer dazu 🙂

                  apollon77A 1 Antwort Letzte Antwort
                  0
                  • J Jan1

                    @apollon77
                    Ach der zählt auch zu Adapter, hatte nur unter Host aktualisiert, man lernt eben immer dazu 🙂

                    apollon77A Online
                    apollon77A Online
                    apollon77
                    schrieb am zuletzt editiert von
                    #13

                    @Jan1 Sagen wir es so: Das Repository wird unter "Adapter" aktualisiert. Eine Aktualisierung unter "Hosts" holt nur alle Daten der Hosts von denen neu ab

                    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
                    J 1 Antwort Letzte Antwort
                    0
                    • apollon77A apollon77

                      @darkiop Nope, die Version 2.0.25 ist die gleiche wie vom GitHub vor paar Tagen während des Beta-Tests. Ihr könnt alles so lassen. Ein iobroker upgrade selfsollte euch sogar sagen das Ihr aktuell seid

                      D Online
                      D Online
                      darkiop
                      Most Active
                      schrieb am zuletzt editiert von
                      #14

                      @apollon77

                      @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

                      Ein iobroker upgrade selfsollte euch sogar sagen das Ihr aktuell seid

                      6635ae05-a713-4482-b53b-92731e80a8e4-grafik.png

                      Danke 🙂

                      Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

                      1 Antwort Letzte Antwort
                      0
                      • apollon77A apollon77

                        @Jan1 Sagen wir es so: Das Repository wird unter "Adapter" aktualisiert. Eine Aktualisierung unter "Hosts" holt nur alle Daten der Hosts von denen neu ab

                        J Offline
                        J Offline
                        Jan1
                        schrieb am zuletzt editiert von
                        #15

                        @apollon77
                        Jou, ist ja nicht tragisch. Hat sich wohl etwas überschnitten, da ich heute morgen eh 4 Adapter upgedatet hatte und deshalb das Repo schon aktualisiert hatte. Da kam wohl der js-controller kurz danach erst.

                        1 Antwort Letzte Antwort
                        0
                        • apollon77A apollon77

                          Überblick über einige der neuen Features


                          1. 0_userdata.0 als offizieller Platz für eigene Dateien, Objekte und States

                          Eine oft gestellt Frage war, wo man eigene Objekte und States unterbingen kann, oder auch wo eigene Grafiken für Visualisierungen abgelegt werden sollen.
                          Ab sofort existiert mit 0_userdata.0 ein Platz dafür. Ein Beispiel-State ist bereits angelegt, welche problemlos gelöscht oder angepasst werden kann.

                          Wichtig Wer seine States bisher in javascript.X ablegt und das für die eigenen Bedürfnisse ausreicht, kann dies weiterhin ohne Probleme genutzt werden. Wer jedoch seine Skripte auf mehrere Javascript-Instanzen verteilt braucht vllt einen besseren Platz, wie 0_userdata.0 🙂

                          Dateien können über den vis-Uploader (ab Version 1.2.2TBD) und die Kommandozeilen-Tools hochgeladen werden. Ein manuelles reinkopieren von Dateien in den Ordner wird nicht funktionieren.
                          Alle Dateien und Objekte sind natürlich auch vom Backup enthalten.
                          Wer bisher eigene Dateien in vis.0 oder (per IQontrol Upload-Tool) iqontrol.meta gespeichert hat kann das natürlich ebenfalls weiterhin nutzen.

                          2. Compact Modus und Compact Gruppen

                          Eines der großen Vorteile von ioBroker ist, dass jeder Adapter als eigener Prozess ausgeführt wird. Das macht das System sehr stabil - bei Problemen betreffen diese nur den einen Adapter und nicht das ganze System. Andererseits benötigt dieser Ansatz allerdings auch etwas mehr RAM. Für Systeme mit wenig verfügbarem RAM (z.B. Raspi Nano oder Raspi 1 mit 512MB RAM), die oft als Slave-Systeme eingesetzt werden, ist die Anzahl der Adapter damit limitiert.

                          Der Compact Modus löst dieses Problem dadurch, dass mehrere Adapter zusammen in einem Prozess laufen und damit der RAM-Bedarf deutlich geringer ist (es werden etwa 20-30MB je Adapter-Instanz eingespart). Dies geht aber zu Lasten der Stabilität, da ein fehlerhafter Adapter auch alle anderen Adapter im gleichen Prozess betrifft und diese sich ggf. ebenfalls neu starten.

                          Adapter-Instanzen können dazu, um das Risiko etwas zu verteilen, in mehrere Gruppen aufgeteilt werden. Jede Gruppe startet einen eigenen Prozess, in dem dann alle Instanzen dieser Gruppe ausgeführt werden. Die Gruppe 0 ist speziell. Hier Mitglied zu sein bedeutet, dass der betreffende Adapter im Haupt-js-controller-Prozess ausgeführt wird. Dies ergibt die größte RAM-Ersparnis - allerdings auch das größte Risiko, da ein fehlerhafter Adapter den js-controller negativ beeinflussen kann. Als Standard werden Instanzen in der Gruppe 1 ausgeführt, wenn der Compact Modus für die entsprechende Instanz aktiviert wird.

                          Ob ein Adapter den Compact Modus unterstützt, hängt vom jeweiligen Adapter ab. Diese Information wird künftig noch in der Adapterliste aufgenommen. Aktuell werden nur Adapter die als daemon ausgeführt werden auch im Compact Modus gestartet (also keine scheduled-Adapter). Auch wenn der Adapter generell den Compact-Mode unterstützt muss die Nutzung pro Instanz einzeln aktiviert werden!

                          Zur Zeit gibt es zur Konfiguration des Compact Modus noch keine Unterstützung im Admin. Die Konfiguration erfolgt per Kommandozeilen-Aufruf. Die wichtigsten Kommandos sind:

                          • iobroker compact enable zum generellen Aktivieren des Compact Modus für den aktuellen js-controller Host. ioBroker muss danach neu gestartet werden, damit die Änderung aktiv wird.
                          • iobroker list instances zeigt zusätzliche jetzt auch den Status des Compact Modus der Adapterinstanzen an.
                          • iobroker compact <adaptername>.<instanz> status zeigt den Compact Modus Status der Instanz an.
                          • iobroker compact <adaptername>.<instanz> enable 1 aktiviert die Ausführung im Compact Modus in Gruppe „1“. Nur der Adapter wird dabei neu gestartet. Diese Konfiguration kann bei laufendem ioBroker erfolgen.

                          Falls es Probleme gibt (z.B. ein Adapter läuft nicht mehr sauber oder bleibt "hängen" beim Stoppen), dann bitte ein Issue beim Adapter öffnen. Ansonsten bitte hier im Thread posten, damit wir sehen, woran es liegt.


                          3. Installations-Quelle von Adaptern wird gespeichert

                          ioBroker-Adapter werden im Normalfall aus dem Latest- oder Stable-Repository von npm installiert. Falls ein Adapter auf einen anderen Host verschoben wird oder das System neu installiert werden muss, wird versucht die gleiche Version wieder von npm zu installieren. Im Normalfall klappt das auch. Falls ein Adapter allerdings testweise von GitHub installiert wurde, ist dieser Stand bzw. diese Version ggf. nicht auf npm verfügbar. Damit kann die gleiche Version nicht automatisch neu installiert werden. Dies ändert sich nun.

                          Für alle neuen Adapterinstallationen nach dem Update merkt sich ioBroker den genauen GitHub-Stand einer Custom-Installation und kann diesen Stand dann wieder nachinstallieren.

                          Auch an der Adapterinstallation selbst, dem Upload und ähnlichem wurde einiges überarbeitet und optimiert. Es wurden einige Sonderfälle behoben, wo teile der upload-Logik nicht korrekt ausgeführt wurden. Auch hier helfen eure Tests.


                          4. Redis-Unterstützung nun auch für Objekte und Files

                          Standardmäßig werden Objekte und Zustände in einer ioBroker-eigenen Speicher-Datenbank verwaltet und in JSON-Dateien gespeichert. Mit dieser eigenen Lösung wird keine weitere Software benötigt.

                          Seit einiger Zeit ist es bereits möglich, Zustände alternativ in einer optimierten Redis-Datenbank zu speichern. Ab einiger gewissen Anzahl an Zustandsänderungen pro Sekunde kann durch den Einsatz von Redis die Gesamtsystemlast zurückgehen bzw. auf mehrere Systeme verteilt werden. Redis bringt allerdings auch einen Mehraufwand mit, da diese Software installiert, verwaltet und gesichert werden will, damit es bei Updates oder im Problemfall nicht zu einem Datenverlust kommt.

                          Mit js-controller 2.0 erlaubt ioBroker nun auch Objekte und die Dateien, die aktuell auf dem Master-System im Dateisystem abgelegt sind, in der Redis-Datenbank zu verwalten.
                          Wichtig: Ausführliche Informationen zu Redis mit ioBroker (inklusive Infos wann was für wen Sinn macht und was eher nicht!! Damit Ihr wisst was Ihr tut) findet Ihr auch unter https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick

                          Wichtig: Vor allem die Verlagerung von Dateien in die Datenbank kann dazu führen, dass diese recht groß werden kann (gern mehrere hundert MB). Da Redis alle Daten immer im RAM hält, ist diese Option nur für Systeme geeignet, die genügend RAM-Ressourcen zur Verfügung haben. Ebenso die CPU Belastung wird bei einem redis/redis System höher sein weil Daten anders verarbeitet werden müssen.

                          Die Verlagerung von Dateien in die Datenbank führt zu einer deutlich größeren Flexibilität. Aufgrund dieser Änderung gibt es quasi keine lokalen Daten im Dateisystem mehr. In Summe wird die Redis-Datenbank zur zentralen Datenhaltung des ioBroker-Systems, da sie sämtliche Daten beinhaltet. Alle js-controller und Adapter verbinden sich dann mit dieser zentralen Datenbank.

                          Mit dem js-controller 2.x kann sogar eine Redis-Sentinel Installation zur Steigerung der Systemverfügbarkeit genutzt werden (quasi ein Redis-HA-Cluster). Das ist eine erste Grundlage für die Bereitstellung eines hochverfügbaren ioBroker-Systems, das Ausfälle einzelner Serverkomponenten kompensieren kann. Diese Option sollte man allerdings aktuell nur austesten wenn man weiss was man tut 😉 Dazu in späteren Updates mehr.

                          Mit dem Einzug der verschiedenen Speichermöglichkeiten für Dateien, Objects und States wurde der Befehl iobroker setup custom überarbeitet. Zum einen zeigt er mehr Informationen an. Zusätzlich ist er jetzt aber auch in der Lage, bei einem Wechsel der Datenhaltung die Daten in alle Richtungen zu migrieren. So ist ein Wechsel jederzeit möglich.

                          Wer Redis nutzen will sollte vorab prüfen ob Redis installiert ist und man verbinden kann (z.B. redis-clisollte eine Redis Shell geben).


                          5. "Alias"-Feature

                          Einer der Vorteile von ioBroker ist, dass es sehr viele Adapter gibt. Allerdings hat sich herausgestellt, das jeder Adapter z.B. je nach angebundenen Systemen durchaus individuelle Strukturen bezüglich der Ablage der bereitgestellten Datenpunkte implementiert. Dies bringt vor allem bei eigenen Skripten aber auch bei Visualisierungs- und den Cloud/iot-Adaptern gewisse Herausforderungen mit sich.
                          Beim Austausch von Geräten zwischen verschiedenen Herstellern muss man so gelegentlich aufgrund der Änderungen bei den Datenpunkten Skripte anpassen. Visualisierungsadapter und der iot-Adapter versuchen z.B. anhand der Rollen von Datenpunkten den Typ von Geräten zu erkennen, um diese korrekt anzuzeigen bzw. an Amazon bzw. Google zu melden. Dabei stehen die Adapter manchmal auf verlorenem Posten, weil bestimmte Adapter Informationen zu Rollen u.ä. gar nicht liefern können - vor allem MQTT, modbus u.ä. sind hier betroffen.

                          Das Alias Feature, das direkt im js-controller verankert ist, stellt den neuen Namespace "alias.0" für Objekte zur Verfügung. Das Feature erlaubt es, Geräte mit einer stabilen Struktur und sauberen Rollen anzulegen. Das erfolgt jetzt zuerst manuell, später auch z.B. mittels des kommenden "Devices"-Adapters, der sich gerade in Entwicklung befindet.

                          Auch dieses Feature hat noch keine vollständige Unterstützung im Admin, was allerdings noch kommen wird.

                          Nach der Definition des Alias-Objects kann im neuen Bereich common.alias die ID des Quellobjekts im jeweiligen Adapter definiert werden. Ab dann werden alle Daten in beide Richtungen zwischen den Objekten synchronisiert. Zusätzlich kann interessanterweise eine read und write Funktion definiert werden, um einfache Umrechnungen vorzunehmen (z.B. Wh <--> kWh).

                          Weitere (technische) Details haben wir unter Alias Information in der js-controller README veröffentlicht.

                          Lenny.CBL Offline
                          Lenny.CBL Offline
                          Lenny.CB
                          Most Active
                          schrieb am zuletzt editiert von Lenny.CB
                          #16

                          Krass was ihr hier so an den Start bringt... Danke!

                          @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

                          4. "Alias"-Feature

                          Auch dieses Feature hat noch keine vollständige Unterstützung im Admin, was allerdings noch kommen wird.

                          das Feature ist für mich sehr spannend. Kannst Du hier schon einen ausblich geben in welcher Version das enthalten sein könnte? Bzw. kann man jetzt schon ohne Admin-Unterstützung "spielen"? Zurzeit nutze ich sporadisch LinkedDevices, was je quasi das Selbe ist.

                          apollon77A 1 Antwort Letzte Antwort
                          0
                          • Lenny.CBL Lenny.CB

                            Krass was ihr hier so an den Start bringt... Danke!

                            @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

                            4. "Alias"-Feature

                            Auch dieses Feature hat noch keine vollständige Unterstützung im Admin, was allerdings noch kommen wird.

                            das Feature ist für mich sehr spannend. Kannst Du hier schon einen ausblich geben in welcher Version das enthalten sein könnte? Bzw. kann man jetzt schon ohne Admin-Unterstützung "spielen"? Zurzeit nutze ich sporadisch LinkedDevices, was je quasi das Selbe ist.

                            apollon77A Online
                            apollon77A Online
                            apollon77
                            schrieb am zuletzt editiert von
                            #17

                            @Lenny-CB Korrekt. Linked Devices ist faktisch, ebenso wie ein anderer Adapter der sowas ähnliches tut aber nicht weiterentwickelt wird, das gleiche. Der große Unterschied ist das es jetzt hier wirklich im Core verankert und damit komplett transparent funktioniert.

                            Aktuell ist das Alias Feature nutzbar wenn man die Objekte selbst manuell oder mittels einem Skript anlegt. Alternativ kannst Du die Entwicklungsversion des Devices-Adapters vom GitHub installieren (https://github.com/ioBroker/ioBroker.devices/). Aber Achtung: Das ist noch ein echt früher Entwicklungsstand. bei Fehlern gern Issues anlegen.
                            Auf jeden Fall siehst Du das was der Adapter für Strukturen anlegen würde und kannst das ggf nachbilden.

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

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            1 Antwort Letzte Antwort
                            0
                            • FredFF Offline
                              FredFF Offline
                              FredF
                              Most Active Forum Testing
                              schrieb am zuletzt editiert von
                              #18

                              Ich habe mich mal getraut und das update bei meinem Testsystem durchgeführt. Lief ohne Fehler durch! 👍
                              Sehr Positiv aufgefallen ist mir, dass das Objekte Fenster in Blockly deutlich schneller öffnet - Top!
                              Werde weiter beobachten und testen - überlege aber jetzt schon das aktive System upzudaten...

                              1 Antwort Letzte Antwort
                              2
                              • ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #19

                                Hier habe ich das produktiv System geupdated, bis jetzt keine Auffaelligkeiten, ausser einem geringerem Speicherverbrauch und der Admin laeuft schneller. Werde mir morgen das Log anschauen und weiter berichten, die Testphase ging leider an mir vorbei, da ich in Florida im Urlaub war.. 🙂

                                1 Antwort Letzte Antwort
                                2
                                • kmxakK Offline
                                  kmxakK Offline
                                  kmxak
                                  Most Active
                                  schrieb am zuletzt editiert von kmxak
                                  #20

                                  system ist nun up to date.
                                  was mir auffällt der er mir folgende Meldungen vom Slave des öfteren ins log schmeißt:

                                  zwave.0	2019-10-11 17:16:56.444	info	(10876) Terminated (NO_ERROR): Without reason
                                  zwave.0	2019-10-11 17:16:56.442	warn	(10876) Cannot connect/reconnect to objects DB. Terminating
                                  rflink.0	2019-10-11 17:16:55.881	info	(10854) Terminated (NO_ERROR): Without reason
                                  rflink.0	2019-10-11 17:16:55.879	warn	(10854) Cannot connect/reconnect to objects DB. Terminating
                                  backitup.1	2019-10-11 17:16:55.874	info	(10891) Terminated (NO_ERROR): Without reason
                                  backitup.1	2019-10-11 17:16:55.872	warn	(10891) Cannot connect/reconnect to objects DB. Terminating
                                  

                                  Werde es mal beobachten, sonst lief soweit alles durch.

                                  Was mir gerade auch auffällt ist das sich iobroker nun etwas flüssiger anfühlt. besonders wenn man die Objekte aufruft 👍

                                  Gruß Alex

                                  apollon77A 1 Antwort Letzte Antwort
                                  0
                                  • kmxakK kmxak

                                    system ist nun up to date.
                                    was mir auffällt der er mir folgende Meldungen vom Slave des öfteren ins log schmeißt:

                                    zwave.0	2019-10-11 17:16:56.444	info	(10876) Terminated (NO_ERROR): Without reason
                                    zwave.0	2019-10-11 17:16:56.442	warn	(10876) Cannot connect/reconnect to objects DB. Terminating
                                    rflink.0	2019-10-11 17:16:55.881	info	(10854) Terminated (NO_ERROR): Without reason
                                    rflink.0	2019-10-11 17:16:55.879	warn	(10854) Cannot connect/reconnect to objects DB. Terminating
                                    backitup.1	2019-10-11 17:16:55.874	info	(10891) Terminated (NO_ERROR): Without reason
                                    backitup.1	2019-10-11 17:16:55.872	warn	(10891) Cannot connect/reconnect to objects DB. Terminating
                                    

                                    Werde es mal beobachten, sonst lief soweit alles durch.

                                    Was mir gerade auch auffällt ist das sich iobroker nun etwas flüssiger anfühlt. besonders wenn man die Objekte aufruft 👍

                                    apollon77A Online
                                    apollon77A Online
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #21

                                    @kmxak sagte in js-controller 2.0 ab sofort im Latest Repo:

                                    Cannot connect/reconnect to objects DB. Terminating

                                    Der Fehler bedeutet das diese Adapter-Prozesse die Verbindung zum Master verlieren ... und das müsste mindestens 5 Sekunden lang sein bevor diese Meldung kommt. Wenn es mehrere Adapter auf dem Slave alleine betrifft (und die auf dem Master sauber laufen) wäre ich bei der frage der Slave Netzwerk-Anbindung.

                                    Um mehr rauszubekommen könntest Du mal einen der Adapter auf Loglevel "silly" stellen, dann sollte man mehr sehen wann was wie passiert. backitup wäre ideal weil der sonst ja nicht viel tut.
                                    Wäre interessant das Log mal zu sehen.

                                    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
                                    kmxakK 1 Antwort Letzte Antwort
                                    0
                                    • dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #22

                                      Ich bin jetzt auch auf 2.0.25
                                      (Synology/Docker)
                                      Bisher läuft Alles !
                                      Alle Adapter sofort grün. "Gefühlt" ist das System etwas schneller bzw. das Verbinden der Adapter geht schneller.

                                      1 Antwort Letzte Antwort
                                      0
                                      • apollon77A apollon77

                                        @kmxak sagte in js-controller 2.0 ab sofort im Latest Repo:

                                        Cannot connect/reconnect to objects DB. Terminating

                                        Der Fehler bedeutet das diese Adapter-Prozesse die Verbindung zum Master verlieren ... und das müsste mindestens 5 Sekunden lang sein bevor diese Meldung kommt. Wenn es mehrere Adapter auf dem Slave alleine betrifft (und die auf dem Master sauber laufen) wäre ich bei der frage der Slave Netzwerk-Anbindung.

                                        Um mehr rauszubekommen könntest Du mal einen der Adapter auf Loglevel "silly" stellen, dann sollte man mehr sehen wann was wie passiert. backitup wäre ideal weil der sonst ja nicht viel tut.
                                        Wäre interessant das Log mal zu sehen.

                                        kmxakK Offline
                                        kmxakK Offline
                                        kmxak
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #23

                                        @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

                                        @kmxak sagte in js-controller 2.0 ab sofort im Latest Repo:

                                        Cannot connect/reconnect to objects DB. Terminating

                                        Der Fehler bedeutet das diese Adapter-Prozesse die Verbindung zum Master verlieren ... und das müsste mindestens 5 Sekunden lang sein bevor diese Meldung kommt. Wenn es mehrere Adapter auf dem Slave alleine betrifft (und die auf dem Master sauber laufen) wäre ich bei der frage der Slave Netzwerk-Anbindung.

                                        Um mehr rauszubekommen könntest Du mal einen der Adapter auf Loglevel "silly" stellen, dann sollte man mehr sehen wann was wie passiert. backitup wäre ideal weil der sonst ja nicht viel tut.
                                        Wäre interessant das Log mal zu sehen.

                                        habe den slave neu gestartet seit dem ist ruhe.

                                        Gruß Alex

                                        1 Antwort Letzte Antwort
                                        0
                                        • FredFF Offline
                                          FredFF Offline
                                          FredF
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von FredF
                                          #24

                                          So nun auch Produktivsystem Proxmox Master/Pi Slave erfolgreich auf 2.0.25 gehoben...
                                          Spitze! Läuft!
                                          Danke an alle Beteiligten Top Job...
                                          Hier mal die Systemdaten:


                                          Master
                                          Betriebssystem linux
                                          Architektur x64
                                          CPUs 2
                                          Geschwindigkeit 3319 MHz
                                          Modell Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
                                          RAM 15.58 GB
                                          Node.js v10.16.3
                                          NPM 6.9.0
                                          Aktive Instanzen 39

                                          Slave
                                          Betriebssystem linux
                                          Architektur arm
                                          CPUs 4
                                          Geschwindigkeit 1200 MHz
                                          Modell ARMv7 Processor rev 4 (v7l)
                                          RAM 926.08 MB
                                          Node.js v10.16.3
                                          NPM 6.9.0
                                          Aktive Instanzen 2

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


                                          Support us

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

                                          707

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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