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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Ich würde so gerne, doch es klappt nicht

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Ich würde so gerne, doch es klappt nicht

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
28 Beiträge 10 Kommentatoren 5.8k Aufrufe
  • Ä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.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #14

    habs ergänzt

    1 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      nobody
      schrieb am zuletzt editiert von
      #15

      Hallo zusammen,

      wäre mal an der Zeit, ein kleines Tutorial zum Thema Speicheroptimierung zu schreiben. Diese Daten verstecken sich zurzeit in vielen einzelnen Threads und sind somit nur schwer zu finden. Vielleicht kann das ja auch jemand in das Handbuch übernehmen. Ich hab da keinen Zugriff darauf.

      ioBroker und alle Adapter basieren auf node.js, einer Entwicklung für Serverseitiges Javascript auf Basis der V8 Engine von Google.

      Javascript ist eine interpretierende Sprache, bei der Variablen nicht explizit deklariert und freigegeben werden müssen. Die Bereinigung und Freigabe von Speicherbereichen erfolgt hier im Rahmen einer sogenannten Garbarge Collection. Diese arbeitet bei V8 nach dem Stop-The-World-Modell, d.h. für die Speicherbereinigung werden alle anderen Prozesse gestoppt und erst nach Abschluss der Speicherbereinigung wieder freigegeben.

      Die aktuellen Versionen von V8 bereinigen per Default den nicht mehr benötigten Hauptspeicher erst, wenn 512 MB belegt wurden. Da bei ioBroker der js-controller, alle als Daemon laufende Adapter und node-red eigenständige node.js Prozesse sind, kann somit theoretisch jeder dieser Prozesse auf mehr als 512 MB anwachsen. Dies ist insbesondere aus Systemen mit geringem RAM (z.B. Raspberry Pi) oder vielen Adaptern problematisch, da dies zur Beendigung von Prozessen das das System oder Programmabstützen führen kann.

      V8 erlaubt jedoch individuelle Festlegungen des Zeitpunkts, an dem die Garbage-Collection gestartet werden soll. Dies erfolgt über den Startparameter –max-old-space-size. Die aktuellen Versionen des js-controllers und der Admin-Oberfläche erlauben die individuelle Festlegung dieses Parameters pro Adapter.

      Für den js-controller muss dieser Parameter über die Konfigurationsdatei festgelegt werden:

      Datei /opt/iobroker-data/iobroker.json z.B. mit nano öffnen.

      Folgenden Text direkt nach der ersten geschweiften Klammer vor "network": { einfügen:

          "system": {
              "memoryLimitMB": 80
          },
      
      

      Hierdurch wird das Limit auf 80 MB gesetzt. Dieser Wert scheint zurzeit für den Controller ausreichend zu sein.

      Für alle anderen Adapter kann der Wert über die Admin-Oberfläche eingestellt werden:
      632_a.png

      Das Speicherlimit kann hier in der Spalte RAM-Limit eingetragen werden. Die Angabe erfolgt hierbei in MB. Keine Angabe = Default 512 MB.

      Welche Werte hier sinnvoll sind, hängt vom System und dem Nutzungsszenario ab. Das Bild zeigt Beispielwerte, mit dem ein Produktivsystem auf einen Raspberry PI 2b stabil läuft.

      Zum Thema history und sql gibt es ja schon einen guten Thread, der die Vor- und Nachteile beschreibt. Insbesondere bei mysql kann man durch die Anpassung der Konfiguration auch noch einiges zum Standard einsparen.

      Der Wert für den node-red-Adapter betrifft nur den ioBroker-Adapter, nicht jedoch den node-red-Prozess selbst. Dieser wird vom Adapter mit –max-old-space-size=128 gestartet.

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #16

        gab bzw gibt es denn Unterschiede bei der Garbage Collection, je nach verwendeter Linux Version ?

        Das könnte ja das unterschiedliche Verhalten (Stabilitaet) erklären. Andersherum, wenn das nicht der Fall ist, dann erklärt es das nicht.

        vG Looxer

        1 Antwort Letzte Antwort
        0
        • N Offline
          N Offline
          nobody
          schrieb am zuletzt editiert von
          #17

          Die Garbage Collection hängt in erster Linie an V8 und somit an der node.js-Version.

          Bei den node.js-Versionen gibt es zumindest subjektiv erhebliche Unterschiede. Während die 0.10.x wohl auch mit dem geringen Speicher noch einiger Maßen zurecht gekommen ist, haben die von mir ausprobierten Version von 0.12.x fast alle mehr oder weniger häufig zu Abstützen geführt. Problem ist nur, dass mittlerweile viele node.js-Module mindestens eine 0.12.x voraussetzen. Auch wird der Stream 0.10.x nicht mehr weiterentwickelt und enhält keine Fixes mehr.

          Die node.js-Version 4.2.x basiert nicht direkt auf 0.12.x sondern auf den wieder integrierten Parallelprojekt io.js und läuft subjektiv stabiler als 0.12.x, hat aber auch das Problem, dass der Speicher irgendwann aufgebraucht ist. Ich mutmaße mal, dass dies generell an den neueren V8-Versionen liegt, die einfach per Default für mehr Hauptspeicher und nur wenige parallel laufende Prozesse optimiert sind. Deswegen sind die obigen Speicherlimitierungen wichtig.

          Generell würde ich heute für den Raspi 2b zum Jessie-Image mit node.js 4.2.6 raten. Das ist die aktuelle Long Term stable Version, die noch mit Fixes versorgt wird. Diese läuft sowohl mit ioBroker als auch mit dem aktuellen node-red 13.1 sehr gut zusammen.

          In node.js 5.x hat jedoch zu viele Änderungen drin und ist absolut nicht zu empfehlen.

          Alle aktuellen node.js-Versionen werden übrigens für Debian Jessie und somit auch für das aktuelle Raspbian-Image über den Package-Manager angeboten. Das hat den Vorteil, dass man sich über Updates und Kompatibilitäten weniger Gedanken machen braucht. Im Standard ist die 0.12.x LTS enthalten, für 4.2.x LTS muss folgendes einmal ausgeführt werden:

          curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
          sudo apt-get install -y nodejs
          
          

          Die LTS-Versionen werden nur noch mit Fixes versorgt, bekommen aber keine neuen Feature mehr. Somit ist das Risiko, dass ein Update zu Inkompatibilitäten führt, eher gering.

          https://nodejs.org/en/download/package- … tributions

          Generell lassen sich viele Fehler vermeiden, wenn man die npm-Pakete bei der Installation selber baut oder wenigstens als Fallback bauen kann. Dafür muss dann auch noch folgende installiert werden:

          sudo apt-get install -y build-essential
          
          
          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            looxer01
            schrieb am zuletzt editiert von
            #18

            …danke nobody. Das ist mal ne super Erklärung (und Empfehlung)

            und erklärt auch warum ich keine Probleme habe.

            Einschränkungen habe ich bisher in keiner Weise bemerkt.

            Das heisst aber wohl, dass es durchaus zu Problemen bei zukünftigen updates von iobroker bei mir kommen kann.

            Ich denke, dass ich das mal abwarte. Stabil ist besser als labil :)

            vG Looxer

            1 Antwort Letzte Antwort
            0
            • Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              schrieb am zuletzt editiert von
              #19

              @Nobody,

              danke für dein Erklärungen die sind sehr aufschlußreich.

              Bei einem Punkt hab ich aber andere Erfahrungen gemacht und ich glaube das Problem haben auch andere und wissen es nicht.
              @nobody:

              Im Standard ist die 0.12.x LTS enthalten `
              Bei meinen Installationen ist mir aufgefallen das bereits eine Node.js Version installiert ist, wenn man Debian Jessie auf dem Pi installiert.

              Es handelt sich um eine 0.10.x Version, diese lässt sich weder mit apt-get deinstallieren noch updaten. Auch ersetzen klappt nicht immer richtig weil die Symlinks erhalten bleiben, ebenso wie die PATH Variable(n).

              Erst mit dem deb-Paket von nodesource hat es dann Funktioniert.

              Hier mal meine Specs:

              ! Hardware: CCU2, RPi2 mit SSD
              ! Software: Debian Jessie (offizielle Version, nicht minimal), nodejs v4.2.1, npm v2.14.7, CCU2 2.15.2 + CUxD 0.9
              ! ioBroker:
              ! js-controller 0.8.4
              ! system.adapter.admin : admin - 0.7.3
              ! system.adapter.hm-rpc : hm-rpc - 0.5.2
              ! system.adapter.hm-rega : hm-rega - 0.2.2
              ! system.adapter.harmony : harmony - 0.5.5
              ! system.adapter.web : web - 1.3.4
              ! system.adapter.icons-addictive-flavour-png: icons-addictive-flavour-png - 0.1.0
              ! system.adapter.icons-material-png : icons-material-png - 0.1.0
              ! system.adapter.icons-material-svg : icons-material-svg - 0.1.0
              ! system.adapter.icons-mfd-png : icons-mfd-png - 0.1.2
              ! system.adapter.icons-mfd-svg : icons-mfd-svg - 0.1.2
              ! system.adapter.icons-ultimate-png : icons-ultimate-png - 0.1.0
              ! system.adapter.javascript : javascript - 1.1.4
              ! system.adapter.sayit : sayit - 0.3.16
              ! system.adapter.scenes : scenes - 0.2.4
              ! system.adapter.sonos : sonos - 0.1.7
              ! system.adapter.vis : vis - 0.8.4
              ! system.adapter.vis-bars : vis-bars - 0.1.1
              ! system.adapter.vis-colorpicker : vis-colorpicker - 0.1.1
              ! system.adapter.vis-fancyswitch : vis-fancyswitch - 0.1.0
              ! system.adapter.vis-google-fonts : vis-google-fonts - 0.1.0
              ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
              ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
              ! system.adapter.vis-keyboard : vis-keyboard - 0.0.2
              ! system.adapter.vis-lcars : vis-lcars - 0.1.6
              ! system.adapter.vis-metro : vis-metro - 0.2.0
              ! system.adapter.vis-plumb : vis-plumb - 0.1.6
              ! system.adapter.vis-rgraph : vis-rgraph - 0.0.2
              ! system.adapter.vis-timeandweather : vis-timeandweather - 0.0.2
              ! Und da die Frage eh kommt wie man eine Liste aller Adapter in Textform bekommt ohne zu Tippen, hier die Lösung:
              ! im Terminal "iobroker list adapters" eingeben.
              ! free -m zeigt bei mir folgendes an:
              ! total used free shared buffers cached
              ! Mem: 925 808 117 18 78 182
              ! -/+ buffers/cache: 547 378
              ! Swap: 99 0 99

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                aquapro
                schrieb am zuletzt editiert von
                #20

                Danke nobody!

                Ich hab auf meinen beiden BananaPi Jessie drauf, mit node v0.12.6 .

                Nach Deiner Meinung sollte v4.2.6 die bessere Wahl sein?!

                Anbei mal zwei screens der Bananen (top sortiert nach Speicher).

                Wobei z.B. der Speicherfresser history.0 schon mit RAMLimit 80 versorgt ist.

                Nur versteh ich die Anzeige dann nicht, sieht mehr als 80 aus.

                admin.0 läuft auf master, history.0 auf client.

                ! filename="top3.PNG" index="1">~~
                filename="top3a.PNG" index="0">~~
                ! system.adapter.admin : admin - 0.7.3
                ! system.adapter.hm-rpc : hm-rpc - 0.5.2
                ! system.adapter.hm-rega : hm-rega - 0.2.2
                ! system.adapter.history : history - 0.2.1
                ! system.adapter.web : web - 1.3.4
                ! system.adapter.vis : vis - 0.8.4
                ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
                ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
                ! system.adapter.rickshaw : rickshaw - 0.3.1
                ! system.adapter.fritzbox : fritzbox - 0.2.1
                ! system.adapter.ical : ical - 1.1.1

                <size size="85">BananaPi / Jessie / ioBroker deinstalliert, keine Upgradesicherheit</size>

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  aquapro
                  schrieb am zuletzt editiert von
                  #21

                  @Jey Cee

                  Ich hab gar nicht geschaut, was bei meinem Jessie drauf war. Gleich die Befehle von der iobroker Installseite genommen.

                  wget http://www.iobroker.net/wp-content/uploads/2015/09/nodejs0_12_6_armhf.deb
                  dpkg -i nodejs0_12_6_armhf.deb
                  rm nodejs0_12_6_armhf.deb
                  
                  

                  Und keinen Fehler bekommen und node -v zeigt v0.12.6 .

                  Hab ich jetzt ein verstecktes Problem und deshalb die Fehler?

                  Gruß

                  Tino

                  <size size="85">BananaPi / Jessie / ioBroker deinstalliert, keine Upgradesicherheit</size>

                  1 Antwort Letzte Antwort
                  0
                  • Jey CeeJ Online
                    Jey CeeJ Online
                    Jey Cee
                    Developer
                    schrieb am zuletzt editiert von
                    #22

                    @aquapro: Ist definitiv mehr. Zum übernehmen der RAM Einstellungen muss mindestens der Adapter neu gestartet werden evtl. ist auch ein Kompletter Neustart sinnvoll.

                    Also wenn die richtige Node Version angezeigt wird sollte alles im grünen Bereich sein. Da er dann die gewollte Node installation anspricht.

                    Ich weiss leider nicht mehr in welchem ordner die vor installierte Node version war, aber ich versuch das mal heraus zu finden.

                    Weiss jemand was die spalte Time+ bei Top aussagt? Ist das die Uptime des angezeigten dienstes?

                    Persönlicher Support
                    Spenden -> paypal.me/J3YC33

                    1 Antwort Letzte Antwort
                    0
                    • ThisoftT Offline
                      ThisoftT Offline
                      Thisoft
                      schrieb am zuletzt editiert von
                      #23

                      Das ist ja mal eine spitzenmäßige Zusammenfassung zum Speicherthema. So langsam verstehe sogar ich die RasPi-Geschichte ;)

                      Ich habe jetzt gerade mal meine Node-Version ermittelt. Es ist die 0.10.22 - sollte ich da mal updaten?

                      Obwohl meine Installation leidlich läuft, zumindest wenn ich nach Updates genügend Reboots gemacht habe… ;)

                      22 HM-Geräte; PivCCU2 auf RasPi

                      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                      1 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        looxer01
                        schrieb am zuletzt editiert von
                        #24

                        @Thisoft:

                        ch habe jetzt gerade mal meine Node-Version ermittelt. Es ist die 0.10.22 - sollte ich da mal updaten? `
                        die habe ich auch und überhaupt keine Probleme. Nach den Erklärungen von nobody werde ich productiv zunächst nix updaten.

                        Endlich haben wir eine neue Empfehlung für die Installation. Die muss aber noch von den Nutzern mit instabilen Installationen hier bestätigt werden - meine ich.

                        vG Looxer

                        1 Antwort Letzte Antwort
                        0
                        • Jey CeeJ Online
                          Jey CeeJ Online
                          Jey Cee
                          Developer
                          schrieb am zuletzt editiert von
                          #25

                          Ich hab mal auf meinem Pi1 Jessie installiert und nach der Node version geschaut, die ist 0.10.29. Damit sollte ioBroker ja laufen.

                          Wenn diese Version drauf ist findet man in /usr/bin den Link node der auf nodejs im selben ordner verweisst und unter /usr/lib die Ordner nodejs und node_modules.

                          Persönlicher Support
                          Spenden -> paypal.me/J3YC33

                          1 Antwort Letzte Antwort
                          0
                          • N Offline
                            N Offline
                            nobody
                            schrieb am zuletzt editiert von
                            #26

                            @aquapro:

                            Danke nobody!

                            Ich hab auf meinen beiden BananaPi Jessie drauf, mit node v0.12.6 .

                            Nach Deiner Meinung sollte v4.2.6 die bessere Wahl sein?!

                            Anbei mal zwei screens der Bananen (top sortiert nach Speicher).

                            Wobei z.B. der Speicherfresser history.0 schon mit RAMLimit 80 versorgt ist.

                            Nur versteh ich die Anzeige dann nicht, sieht mehr als 80 aus.

                            admin.0 läuft auf master, history.0 auf client.

                            ! filename="top3.PNG" index="1">~~
                            filename="top3a.PNG" index="0">~~
                            ! system.adapter.admin : admin - 0.7.3
                            ! system.adapter.hm-rpc : hm-rpc - 0.5.2
                            ! system.adapter.hm-rega : hm-rega - 0.2.2
                            ! system.adapter.history : history - 0.2.1
                            ! system.adapter.web : web - 1.3.4
                            ! system.adapter.vis : vis - 0.8.4
                            ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
                            ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
                            ! system.adapter.rickshaw : rickshaw - 0.3.1
                            ! system.adapter.fritzbox : fritzbox - 0.2.1
                            ! system.adapter.ical : ical - 1.1.1 `
                            Nein, wenn du mit dieser Version keine Probleme hast, gibt es keinen Grund zu wechseln. Ich bin von der 0.12.9 auf die 4.2.x gewechselt, weil ich ohne die Begrenzungen immer Abstürze hatte. Die gibt es aber mit der 4.2.6 auch.

                            Die LTS Versionen haben halt den Vorteil, dass diese noch gepflegt werden. Das ist vor allem dann wichtig, wenn das System auch über das Internet erreichbar ist. Bei mir ist der pi gleichzeitig Reverse proxy für alle Systeme und openvpn-Server.

                            Wenn ich vorhin den Eindruck erweckt habe, dass man mit den Einstellungen direkt auf die Größe des Prozesses schließen kann, hab ich mich falsch ausgedrückt. Der Parameter max-old-space-size der damit gesetzt wird legt die maximale Größe des Heap fest, bei dem die Garbage Collection gestartet wird. Dies betrifft aber nur den Heap, vereinfacht ausgedrückt der Platz für Variablen. Darin nicht enthalten sind node.js, der Anwendungscode und der Platz für alle inkludierten Libs. Auch kann nur das frei gegeben werden, was nicht mehr verlinkt ist.

                            Gerade Beim history - Adapter werden viele Daten im RAM gehalten.

                            Gesendet von meinem GT-N8000 mit Tapatalk

                            1 Antwort Letzte Antwort
                            0
                            • N Offline
                              N Offline
                              nobody
                              schrieb am zuletzt editiert von
                              #27

                              @Jey Cee:

                              Ich hab mal auf meinem Pi1 Jessie installiert und nach der Node version geschaut, die ist 0.10.29. Damit sollte ioBroker ja laufen.

                              Wenn diese Version drauf ist findet man in /usr/bin den Link node der auf nodejs im selben ordner verweisst und unter /usr/lib die Ordner nodejs und node_modules. `
                              Ich hab mal bei Debian nachgesehen. Offiziell ist wirklich noch die 0.10.29. Ich hab wohl irgendwann mal das Repository von nodesource.com aufgenommen…

                              Gesendet von meinem GT-N8000 mit Tapatalk

                              1 Antwort Letzte Antwort
                              0
                              • V Offline
                                V Offline
                                versteckt
                                schrieb am zuletzt editiert von
                                #28

                                Hallo, habe heute für einen Arbeitskollegen erst einen Raspbian (Raspi 2) aufgesetzt.

                                Dort ist eine 4er Node Version von http://weworkweplay.com/play/raspberry-pi-nodejs/ drauf.

                                LG Christian

                                Raspi 1, Raspi 2, iobroker, Mac Mini: alles mit aktueller ioBroker Version

                                homegear für Homematic und MAX!

                                occ, zWave, rpi, hmm und homekit Entwickler

                                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

                                402

                                Online

                                32.5k

                                Benutzer

                                81.7k

                                Themen

                                1.3m

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

                                • Du hast noch kein Konto? Registrieren

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