Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Vorstellung] Meine zweite Visualisierung

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    510

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[Vorstellung] Meine zweite Visualisierung

Scheduled Pinned Locked Moved Visualisierung
vistemplate
1.3k Posts 148 Posters 575.4k Views 157 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.
  • K Kuddel

    @sigi234 habs gerade im Export geändert.

    Danke für den Hinweis

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

    @Kuddel

    Wie bekomme ich die Grafiken flot angezeigt?

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

    K 1 Reply Last reply
    0
    • sigi234S sigi234

      @Kuddel

      Wie bekomme ich die Grafiken flot angezeigt?

      K Offline
      K Offline
      Kuddel
      wrote on last edited by
      #464

      @sigi234 die Grafik selber muss man sich natürlich in Flot zusammen bauen.

      Voraussetzung ist natürlich, das der Wert, der grafisch dargestellt werden soll, per History.Adapter geloggt wird.

      Hier ein Beisoiel für die CPU Auslastung vom ioBroker:

      f03305a8-663a-4926-8542-422ecce1eebe-grafik.png

      d0908921-5377-4140-9a21-f213d278a45b-grafik.png

      e75ddc9f-08c1-42ad-b44d-b1a8895646fc-grafik.png

      Dann am ende alles makieren und im VIS Wisget einfügen:
      261fad4e-bed9-470f-926c-6341e4dbc830-grafik.png

      sigi234S 1 Reply Last reply
      0
      • K Kuddel

        @sigi234 die Grafik selber muss man sich natürlich in Flot zusammen bauen.

        Voraussetzung ist natürlich, das der Wert, der grafisch dargestellt werden soll, per History.Adapter geloggt wird.

        Hier ein Beisoiel für die CPU Auslastung vom ioBroker:

        f03305a8-663a-4926-8542-422ecce1eebe-grafik.png

        d0908921-5377-4140-9a21-f213d278a45b-grafik.png

        e75ddc9f-08c1-42ad-b44d-b1a8895646fc-grafik.png

        Dann am ende alles makieren und im VIS Wisget einfügen:
        261fad4e-bed9-470f-926c-6341e4dbc830-grafik.png

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

        @Kuddel

        Aha......ok dachte die sind dabei.....

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

        K 1 Reply Last reply
        0
        • sigi234S sigi234

          @Kuddel

          Aha......ok dachte die sind dabei.....

          K Offline
          K Offline
          Kuddel
          wrote on last edited by
          #466

          @sigi234 leider nein, Ist ja ein VIS-Export, kein Flot-Export.

          Ich könnte natürlich jetzt für alle meiner Graphen die Links posten, ich weiß nur nicht, ob die dann auch bei euch funzen.

          sigi234S 1 Reply Last reply
          0
          • K Kuddel

            @sigi234 leider nein, Ist ja ein VIS-Export, kein Flot-Export.

            Ich könnte natürlich jetzt für alle meiner Graphen die Links posten, ich weiß nur nicht, ob die dann auch bei euch funzen.

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

            @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

            @sigi234 leider nein, Ist ja ein VIS-Export, kein Flot-Export.

            Ich könnte natürlich jetzt für alle meiner Graphen die Links posten, ich weiß nur nicht, ob die dann auch bei euch funzen.

            Das geht, man muss sie aber anpassen .........

            Nicht alle aber eines um das Design zu erhalten............

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

            1 Reply Last reply
            0
            • K Kuddel

              @sigi234 ja genau. leider ohne Icons. habe noch keinen weg gefunden, das alles in einem Paket hoch zu laden

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              wrote on last edited by
              #468

              @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

              @sigi234 ja genau. leider ohne Icons. habe noch keinen weg gefunden, das alles in einem Paket hoch zu laden

              Habe gerade dein Projekt importiert (nach deiner Vorgehensweise).
              Leider funktioniert das nicht.
              Er meldet, dass die vis-view.json nicht gefunden wird.
              Sie ist aber im neuen Zip enthalten.

              ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
              ° Node.js Fixer ---> iob nodejs-update
              ° Fixer ---> iob fix

              K 1 Reply Last reply
              0
              • NegaleinN Negalein

                @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                @sigi234 ja genau. leider ohne Icons. habe noch keinen weg gefunden, das alles in einem Paket hoch zu laden

                Habe gerade dein Projekt importiert (nach deiner Vorgehensweise).
                Leider funktioniert das nicht.
                Er meldet, dass die vis-view.json nicht gefunden wird.
                Sie ist aber im neuen Zip enthalten.

                K Offline
                K Offline
                Kuddel
                wrote on last edited by
                #469

                @Negalein komisch. bei mir hat es funktioniert

                NegaleinN 1 Reply Last reply
                0
                • K Kuddel

                  @Negalein komisch. bei mir hat es funktioniert

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  wrote on last edited by
                  #470

                  @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                  @Negalein komisch. bei mir hat es funktioniert

                  Ich mach jetzt nochmal einen Download.
                  Die Datei ohne den Icons funktioniert auch nicht.

                  Wie groß ist die bei dir?

                  ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                  ° Node.js Fixer ---> iob nodejs-update
                  ° Fixer ---> iob fix

                  K 1 Reply Last reply
                  0
                  • NegaleinN Negalein

                    @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                    @Negalein komisch. bei mir hat es funktioniert

                    Ich mach jetzt nochmal einen Download.
                    Die Datei ohne den Icons funktioniert auch nicht.

                    Wie groß ist die bei dir?

                    K Offline
                    K Offline
                    Kuddel
                    wrote on last edited by
                    #471

                    @Negalein habe gerade beide Datein neu heruntergeladen.

                    1. Import ohne Icons: Funzt
                    2. Neues Archiv mit VIS und Icons erstell und importiert: Funzt auch
                    NegaleinN 1 Reply Last reply
                    0
                    • K Kuddel

                      @Negalein habe gerade beide Datein neu heruntergeladen.

                      1. Import ohne Icons: Funzt
                      2. Neues Archiv mit VIS und Icons erstell und importiert: Funzt auch
                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      wrote on last edited by
                      #472

                      @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                      @Negalein habe gerade beide Datein neu heruntergeladen.

                      1. Import ohne Icons: Funzt
                      2. Neues Archiv mit VIS und Icons erstell und importiert: Funzt auch

                      dürfte beim Download was schief gegangen sein.
                      Jetzt hat es geklappt.

                      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                      ° Node.js Fixer ---> iob nodejs-update
                      ° Fixer ---> iob fix

                      1 Reply Last reply
                      0
                      • NashraN Offline
                        NashraN Offline
                        Nashra
                        Most Active Forum Testing
                        wrote on last edited by
                        #473

                        Hallo @Kuddel
                        zu Ram in Prozent finde ich leider keinen Datenpunkt im Info-Adapter.
                        Wie hast Du das gemacht?

                        Gruß Ralf
                        Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        K 1 Reply Last reply
                        0
                        • NashraN Nashra

                          Hallo @Kuddel
                          zu Ram in Prozent finde ich leider keinen Datenpunkt im Info-Adapter.
                          Wie hast Du das gemacht?

                          K Offline
                          K Offline
                          Kuddel
                          wrote on last edited by
                          #474

                          @Nashra das habe ich eben per Blocky aus den Daten vom Info Adapter errechnet. Man benötigt ja nur gesamt RAM und aktuell verwendeten

                          NashraN 1 Reply Last reply
                          0
                          • K Kuddel

                            @Nashra das habe ich eben per Blocky aus den Daten vom Info Adapter errechnet. Man benötigt ja nur gesamt RAM und aktuell verwendeten

                            NashraN Offline
                            NashraN Offline
                            Nashra
                            Most Active Forum Testing
                            wrote on last edited by
                            #475

                            @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                            @Nashra das habe ich eben per Blocky aus den Daten vom Info Adapter errechnet. Man benötigt ja nur gesamt RAM und aktuell verwendeten

                            Achduje, in Blockly mal reingesehen aber keinen Plan wie sowas geht :thinking_face:
                            Wärst Du so nett... :grinning:

                            Gruß Ralf
                            Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            crunchipC K 2 Replies Last reply
                            0
                            • NashraN Nashra

                              @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                              @Nashra das habe ich eben per Blocky aus den Daten vom Info Adapter errechnet. Man benötigt ja nur gesamt RAM und aktuell verwendeten

                              Achduje, in Blockly mal reingesehen aber keinen Plan wie sowas geht :thinking_face:
                              Wärst Du so nett... :grinning:

                              crunchipC Offline
                              crunchipC Offline
                              crunchip
                              Forum Testing Most Active
                              wrote on last edited by
                              #476

                              @Nashra vllt hilft dir sowas

                              var pfad            = "Systeminfos.ioBroker.Prozesse" + "."; // Pfad in dem die Datenpunkte angelegt werden
                              
                              // Datenpunktnamen:
                              var idProzesse          = pfad + 'ioBroker_Prozesse';
                              var idMemAll            = pfad + 'ioBroker_Speicher_gesamt';
                              var idAnzProzesse       = pfad + 'ioBroker_Anzahl_Prozesse';
                              var idCpuAll            = pfad + 'ioBroker_CPU_Gesamt';
                              var idMemPercent        = pfad + 'ioBroker_Speicher_prozentual';
                              var idInstanzenEinmal   = pfad + 'ioBroker_Instanzen_einmal_aktiv';
                              
                              
                              // regelmässige Wiederholungen der Abfrage
                              var cronStr         = "*/2 * * * *";
                              
                              var abfrage         = 'ps -A aux --sort -pmem | grep " [i]o.*"';
                              
                              
                              
                              
                              // -----------------------------------------------------------------------------
                              
                              
                              createState(idProzesse, "", {
                                   name: 'ioBroker laufende Prozesse Objekt',
                                   desc: 'ioBroker laufende Prozesse Objekt, Speicherverbrauch',
                                   type: 'string',
                                   unit: '',
                                   role: 'object'
                              });
                              
                              createState(idMemAll, 0, {
                                   name: 'ioBroker Speicherverbrauch gesamt',
                                   desc: 'ioBroker Speicherverbrauch gesamt (RSS)',
                                   type: 'number',
                                   unit: 'MB',
                                   role: 'value'
                              });
                              
                              createState(idAnzProzesse, 0, {
                                   name: 'ioBroker Anzahl Prozesse',
                                   desc: 'ioBroker Anzahl aktiver Prozesse',
                                   type: 'number',
                                   unit: '',
                                   role: 'value'
                              });
                              
                              createState(idCpuAll, 0.0, {
                                   name: 'ioBroker CPU-Last gesamt',
                                   desc: 'ioBroker CPU-Last gesamt',
                                   type: 'number',
                                   unit: '%',
                                   role: 'value'
                              });
                              
                              createState(idMemPercent, 0.0, {
                                   name: 'Speicherverbrauch prozentual',
                                   desc: 'Speicherverbrauch prozentual',
                                   type: 'number',
                                   unit: '%',
                                   role: 'value'
                              });
                              
                              createState(idInstanzenEinmal, true, {
                                   name: 'keine Instanzen doppelt aktiv',
                                   desc: 'jeder aktive ioBroker Prozess ist nur einmal aktiv',
                                   type: 'boolean',
                                   unit: '',
                                   role: 'value'
                              });
                              
                              
                              
                              // -----------------------------------------------------------------------------
                              
                              
                              function doppelteProzesse(arr) {
                                  var mehrfacheProzesse = [];
                                  var anzProzesse = (arr.length);
                                  var anzProzessAktiv = 0;
                                  for (var i = 0; i < anzProzesse; i++) {
                                      if (mehrfacheProzesse.indexOf(arr[i].command) == -1) {
                                          anzProzessAktiv = zaehleProzesse(arr,arr[i].command);
                                          if (anzProzessAktiv > 1) {
                                              log("Prozess: " + arr[i].command+", mehrfach aktiv: " + anzProzessAktiv +" mal","warn");
                                              mehrfacheProzesse.push(arr[i].command);
                                              mehrfacheProzesse.push(anzProzessAktiv);
                                          }
                                      }
                                  }    
                                  return mehrfacheProzesse;
                              }
                              
                              function zaehleProzesse(arr,command) {
                                  var count = 0;
                                  var anzProzesse = (arr.length);
                                  for (var i = 0; i < anzProzesse; i++) {
                                      if(arr[i].command === command) {
                                          count++;
                                      }
                                  }    
                                  return count;
                              }
                              
                              
                              function writeJson(json) {
                                  return JSON.stringify(json);    // JSON in String umwandeln, damit das JSON in einem Datenpunkt geschrieben werden kann
                              }
                              
                              
                              function getMemAbsolut(json) {
                                  var anzProzesse = (json.length);
                                  var mem = 0;
                                  for (var i = 0; i < anzProzesse; i++) {
                                      mem = mem + json[i].rss;
                                  }    
                                  return mem;
                              }
                               
                              function getCpu(json) {
                                  var anzProzesse = (json.length);
                                  var cpu = 0.0;
                                  for (var i = 0; i < anzProzesse; i++) {
                                      cpu = cpu + json[i].cpu;
                                  }    
                                  return cpu;
                              }
                              
                              function getMem(json) {
                                  var anzProzesse = (json.length);
                                  var mem = 0.0;
                                  for (var i = 0; i < anzProzesse; i++) {
                                      mem = mem + json[i].mem;
                                  }    
                                  return mem;
                              }
                              
                              
                              function createArrayJson(arr) {
                                  var jsonArr     = [];
                                  var anzDP       = 11;                       // Anzahl Datenreihen in der Abfrage
                                  var anzProzesse = (arr.length-1)/anzDP;
                              
                                  for (var i = 0; i < anzProzesse; i++) {
                                      jsonArr.push({
                                          command:    arr[10 + i*anzDP],              // ioBroker Prozess (COMMAND = Kommando, mit dem der Prozess gestartet wurde)
                                          pid:        arr[ 1 + i*anzDP],              // Prozess ID
                                          cpu:        parseFloat(arr[ 2 + i*anzDP]),  // aktueller CPU-Last in %
                                          mem:        parseFloat(arr[ 3 + i*anzDP]),  // aktueller Verbrauch physikalischer Speicher %
                                          vmem:       parseInt(arr[ 4 + i*anzDP]),    // 
                                          rss:        parseInt(arr[ 5 + i*anzDP]),    // physikalische Speichernutzung
                                          start:      arr[ 8 + i*anzDP],              // Startzeitpunkt des Prozesses
                                          time:       arr[ 9 + i*anzDP]               // bisher verbrauchte CPU Zeit
                                      });
                                  }
                                  return jsonArr;
                              }
                              
                              
                              function abfrageConsole() {
                                  exec(abfrage, function(err, stdout, stderr) {
                                      if (err) {
                                          log(err,"error");
                                          return;
                                      }
                                      stdout = stdout.replace(/\n+/g, " "); // neue Zeile gegen Leerzeichen ersetzen
                                      stdout = stdout.split(/ +/g);         // array erstellen, Leerzeichen als Trenner
                                      
                                      var anzProzesse = (stdout.length-1) / 11;
                                      
                                      //log(stdout);
                                      //log("Anzahl laufender ioBroker Prozesse: " + anzProzesse);
                                      
                                      var jsonArr = createArrayJson(stdout);
                                      var mem         = Math.floor(getMemAbsolut(jsonArr)/1024);
                                      var cpu         = Math.floor(getCpu(jsonArr)*10)/10;
                                      var memPercent  = Math.floor(getMem(jsonArr)*10)/10;
                              
                                      var doppeltArr = doppelteProzesse(jsonArr);
                                      
                                      if(doppeltArr.length === 0) {
                                          setState(idInstanzenEinmal,true);
                                      } else {
                                          setState(idInstanzenEinmal,false);
                                      }
                              
                                      setState(idProzesse     ,writeJson(jsonArr));
                                      setState(idMemAll       ,mem);
                                      setState(idAnzProzesse  ,anzProzesse);
                                      setState(idCpuAll       ,cpu);
                                      setState(idMemPercent   ,memPercent);
                                  });
                              }
                              
                              
                              function abfragen() {
                                  abfrageConsole();
                              }
                              
                              // regelmässige Wiederholungen
                              // -----------------------------------------------------------------------------
                              schedule(cronStr, abfragen);
                              
                              
                              // main
                              // -----------------------------------------------------------------------------
                              function main() {
                                  abfragen();
                              }
                              
                              
                              // Start Skript:
                              // -----------------------------------------------------------------------------
                              
                              setTimeout(main,    500);
                              
                              

                              umgestiegen von Proxmox auf Unraid

                              NashraN 1 Reply Last reply
                              0
                              • crunchipC crunchip

                                @Nashra vllt hilft dir sowas

                                var pfad            = "Systeminfos.ioBroker.Prozesse" + "."; // Pfad in dem die Datenpunkte angelegt werden
                                
                                // Datenpunktnamen:
                                var idProzesse          = pfad + 'ioBroker_Prozesse';
                                var idMemAll            = pfad + 'ioBroker_Speicher_gesamt';
                                var idAnzProzesse       = pfad + 'ioBroker_Anzahl_Prozesse';
                                var idCpuAll            = pfad + 'ioBroker_CPU_Gesamt';
                                var idMemPercent        = pfad + 'ioBroker_Speicher_prozentual';
                                var idInstanzenEinmal   = pfad + 'ioBroker_Instanzen_einmal_aktiv';
                                
                                
                                // regelmässige Wiederholungen der Abfrage
                                var cronStr         = "*/2 * * * *";
                                
                                var abfrage         = 'ps -A aux --sort -pmem | grep " [i]o.*"';
                                
                                
                                
                                
                                // -----------------------------------------------------------------------------
                                
                                
                                createState(idProzesse, "", {
                                     name: 'ioBroker laufende Prozesse Objekt',
                                     desc: 'ioBroker laufende Prozesse Objekt, Speicherverbrauch',
                                     type: 'string',
                                     unit: '',
                                     role: 'object'
                                });
                                
                                createState(idMemAll, 0, {
                                     name: 'ioBroker Speicherverbrauch gesamt',
                                     desc: 'ioBroker Speicherverbrauch gesamt (RSS)',
                                     type: 'number',
                                     unit: 'MB',
                                     role: 'value'
                                });
                                
                                createState(idAnzProzesse, 0, {
                                     name: 'ioBroker Anzahl Prozesse',
                                     desc: 'ioBroker Anzahl aktiver Prozesse',
                                     type: 'number',
                                     unit: '',
                                     role: 'value'
                                });
                                
                                createState(idCpuAll, 0.0, {
                                     name: 'ioBroker CPU-Last gesamt',
                                     desc: 'ioBroker CPU-Last gesamt',
                                     type: 'number',
                                     unit: '%',
                                     role: 'value'
                                });
                                
                                createState(idMemPercent, 0.0, {
                                     name: 'Speicherverbrauch prozentual',
                                     desc: 'Speicherverbrauch prozentual',
                                     type: 'number',
                                     unit: '%',
                                     role: 'value'
                                });
                                
                                createState(idInstanzenEinmal, true, {
                                     name: 'keine Instanzen doppelt aktiv',
                                     desc: 'jeder aktive ioBroker Prozess ist nur einmal aktiv',
                                     type: 'boolean',
                                     unit: '',
                                     role: 'value'
                                });
                                
                                
                                
                                // -----------------------------------------------------------------------------
                                
                                
                                function doppelteProzesse(arr) {
                                    var mehrfacheProzesse = [];
                                    var anzProzesse = (arr.length);
                                    var anzProzessAktiv = 0;
                                    for (var i = 0; i < anzProzesse; i++) {
                                        if (mehrfacheProzesse.indexOf(arr[i].command) == -1) {
                                            anzProzessAktiv = zaehleProzesse(arr,arr[i].command);
                                            if (anzProzessAktiv > 1) {
                                                log("Prozess: " + arr[i].command+", mehrfach aktiv: " + anzProzessAktiv +" mal","warn");
                                                mehrfacheProzesse.push(arr[i].command);
                                                mehrfacheProzesse.push(anzProzessAktiv);
                                            }
                                        }
                                    }    
                                    return mehrfacheProzesse;
                                }
                                
                                function zaehleProzesse(arr,command) {
                                    var count = 0;
                                    var anzProzesse = (arr.length);
                                    for (var i = 0; i < anzProzesse; i++) {
                                        if(arr[i].command === command) {
                                            count++;
                                        }
                                    }    
                                    return count;
                                }
                                
                                
                                function writeJson(json) {
                                    return JSON.stringify(json);    // JSON in String umwandeln, damit das JSON in einem Datenpunkt geschrieben werden kann
                                }
                                
                                
                                function getMemAbsolut(json) {
                                    var anzProzesse = (json.length);
                                    var mem = 0;
                                    for (var i = 0; i < anzProzesse; i++) {
                                        mem = mem + json[i].rss;
                                    }    
                                    return mem;
                                }
                                 
                                function getCpu(json) {
                                    var anzProzesse = (json.length);
                                    var cpu = 0.0;
                                    for (var i = 0; i < anzProzesse; i++) {
                                        cpu = cpu + json[i].cpu;
                                    }    
                                    return cpu;
                                }
                                
                                function getMem(json) {
                                    var anzProzesse = (json.length);
                                    var mem = 0.0;
                                    for (var i = 0; i < anzProzesse; i++) {
                                        mem = mem + json[i].mem;
                                    }    
                                    return mem;
                                }
                                
                                
                                function createArrayJson(arr) {
                                    var jsonArr     = [];
                                    var anzDP       = 11;                       // Anzahl Datenreihen in der Abfrage
                                    var anzProzesse = (arr.length-1)/anzDP;
                                
                                    for (var i = 0; i < anzProzesse; i++) {
                                        jsonArr.push({
                                            command:    arr[10 + i*anzDP],              // ioBroker Prozess (COMMAND = Kommando, mit dem der Prozess gestartet wurde)
                                            pid:        arr[ 1 + i*anzDP],              // Prozess ID
                                            cpu:        parseFloat(arr[ 2 + i*anzDP]),  // aktueller CPU-Last in %
                                            mem:        parseFloat(arr[ 3 + i*anzDP]),  // aktueller Verbrauch physikalischer Speicher %
                                            vmem:       parseInt(arr[ 4 + i*anzDP]),    // 
                                            rss:        parseInt(arr[ 5 + i*anzDP]),    // physikalische Speichernutzung
                                            start:      arr[ 8 + i*anzDP],              // Startzeitpunkt des Prozesses
                                            time:       arr[ 9 + i*anzDP]               // bisher verbrauchte CPU Zeit
                                        });
                                    }
                                    return jsonArr;
                                }
                                
                                
                                function abfrageConsole() {
                                    exec(abfrage, function(err, stdout, stderr) {
                                        if (err) {
                                            log(err,"error");
                                            return;
                                        }
                                        stdout = stdout.replace(/\n+/g, " "); // neue Zeile gegen Leerzeichen ersetzen
                                        stdout = stdout.split(/ +/g);         // array erstellen, Leerzeichen als Trenner
                                        
                                        var anzProzesse = (stdout.length-1) / 11;
                                        
                                        //log(stdout);
                                        //log("Anzahl laufender ioBroker Prozesse: " + anzProzesse);
                                        
                                        var jsonArr = createArrayJson(stdout);
                                        var mem         = Math.floor(getMemAbsolut(jsonArr)/1024);
                                        var cpu         = Math.floor(getCpu(jsonArr)*10)/10;
                                        var memPercent  = Math.floor(getMem(jsonArr)*10)/10;
                                
                                        var doppeltArr = doppelteProzesse(jsonArr);
                                        
                                        if(doppeltArr.length === 0) {
                                            setState(idInstanzenEinmal,true);
                                        } else {
                                            setState(idInstanzenEinmal,false);
                                        }
                                
                                        setState(idProzesse     ,writeJson(jsonArr));
                                        setState(idMemAll       ,mem);
                                        setState(idAnzProzesse  ,anzProzesse);
                                        setState(idCpuAll       ,cpu);
                                        setState(idMemPercent   ,memPercent);
                                    });
                                }
                                
                                
                                function abfragen() {
                                    abfrageConsole();
                                }
                                
                                // regelmässige Wiederholungen
                                // -----------------------------------------------------------------------------
                                schedule(cronStr, abfragen);
                                
                                
                                // main
                                // -----------------------------------------------------------------------------
                                function main() {
                                    abfragen();
                                }
                                
                                
                                // Start Skript:
                                // -----------------------------------------------------------------------------
                                
                                setTimeout(main,    500);
                                
                                
                                NashraN Offline
                                NashraN Offline
                                Nashra
                                Most Active Forum Testing
                                wrote on last edited by
                                #477

                                @crunchip sagte in [Vorstellung] Meine zweite Visualisierung:

                                @Nashra vllt hilft dir sowas

                                Klasse, läuft, ich Danke dir :+1:

                                Gruß Ralf
                                Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                1 Reply Last reply
                                0
                                • NashraN Nashra

                                  @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                                  @Nashra das habe ich eben per Blocky aus den Daten vom Info Adapter errechnet. Man benötigt ja nur gesamt RAM und aktuell verwendeten

                                  Achduje, in Blockly mal reingesehen aber keinen Plan wie sowas geht :thinking_face:
                                  Wärst Du so nett... :grinning:

                                  K Offline
                                  K Offline
                                  Kuddel
                                  wrote on last edited by
                                  #478

                                  @Nashra in Blocky sieht es dann so aus:

                                  48dc24e3-cbb6-41c9-bb58-447e2b8aa392-grafik.png

                                  NashraN M 2 Replies Last reply
                                  2
                                  • K Kuddel

                                    @Nashra in Blocky sieht es dann so aus:

                                    48dc24e3-cbb6-41c9-bb58-447e2b8aa392-grafik.png

                                    NashraN Offline
                                    NashraN Offline
                                    Nashra
                                    Most Active Forum Testing
                                    wrote on last edited by
                                    #479

                                    @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                                    @Nashra in Blocky sieht es dann so aus:

                                    48dc24e3-cbb6-41c9-bb58-447e2b8aa392-grafik.png

                                    :+1:

                                    Gruß Ralf
                                    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    1 Reply Last reply
                                    0
                                    • K Kuddel

                                      @Nashra in Blocky sieht es dann so aus:

                                      48dc24e3-cbb6-41c9-bb58-447e2b8aa392-grafik.png

                                      M Offline
                                      M Offline
                                      markus-now
                                      wrote on last edited by
                                      #480

                                      @Kuddel
                                      Hallo Kuddel,
                                      Erst auch mal von mir ein Dankeschön für so eine geniale Arbeit und das du, dass Projekt zur Verfügung gestellt hast.
                                      Ich arbeite mich gerade durch das Briefkasten Skript und versuche zu verstehen, warum du mit post 0 falsch beginnt.
                                      kannst du mir da den ablauf etwas schildern arbeite noch nicht so lange mit ioBroker aber versuche intensiv zu lernen da kommt natürlisch so ein super projekt genau richtig.
                                      Kannst du mir da den Ablauf etwas schildern arbeite noch nicht so lange mit ioBroker aber versuche intensiv zu lernen da kommt natürlich so ein super Projekt genau richtig.

                                      K 1 Reply Last reply
                                      0
                                      • M markus-now

                                        @Kuddel
                                        Hallo Kuddel,
                                        Erst auch mal von mir ein Dankeschön für so eine geniale Arbeit und das du, dass Projekt zur Verfügung gestellt hast.
                                        Ich arbeite mich gerade durch das Briefkasten Skript und versuche zu verstehen, warum du mit post 0 falsch beginnt.
                                        kannst du mir da den ablauf etwas schildern arbeite noch nicht so lange mit ioBroker aber versuche intensiv zu lernen da kommt natürlisch so ein super projekt genau richtig.
                                        Kannst du mir da den Ablauf etwas schildern arbeite noch nicht so lange mit ioBroker aber versuche intensiv zu lernen da kommt natürlich so ein super Projekt genau richtig.

                                        K Offline
                                        K Offline
                                        Kuddel
                                        wrote on last edited by
                                        #481

                                        @markus-now in meinem Briefkasten sitz ein Homematic Fensterkontakt, der auslöst, wenn der Postbote den Deckel vom Breifkasten öffnet.

                                        Dann wird das Datenobjekt "Post" auf wahr geschaltet (wahr = post eingeworfen).

                                        Ebenso bekomme ich direkt eine Mail, dass die Post da ist.

                                        Das Ganze ist in meinen Augen total simpel.

                                        K M 2 Replies Last reply
                                        0
                                        • K Kuddel

                                          Mit dem Objekt stelle ich den aktuellen Status der Waschmaschine da;

                                          0=aus

                                          1=an

                                          2=timer

                                          3=fertig

                                          A Offline
                                          A Offline
                                          Alero
                                          wrote on last edited by Alero
                                          #482

                                          @Kuddel
                                          Hallo Kuddel,
                                          erste einmal Daumen hoch für die mega geile Arbeit.
                                          ich möchte hier noch einmal einhaken (waschmaschine).
                                          Dein Projekt habe ich importiert und habe mir aus der View Haushalt die Icons geschnappt. Wenn ich das jetzt richtig verstanden habe, soll ich zusätzlich noch ein Script unter Javascript.0 was anlegen. Was muss in dem Script drin stehen?
                                          Sorry aber ich bin erst seit kurzem mit IObroker dran.
                                          Gruß
                                          Alero

                                          K 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

                                          638

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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