Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Leistungswerte der Hardware auslesen und anzeigen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Leistungswerte der Hardware auslesen und anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      @MeisterF:

      Lieber Rainer - ich wollte Dich eigentlich fragen, ob wäre es Dir möglich wäre Deine Teilscripte in ein großes zu packen, was "vieles" ausliest, `
      Nein, kann ich nicht, weil ich kein Javascript kann 😞

      @MeisterF:

      man kann doch in Linux auch so "reguläre Ausdrücke" basteln, die dann nach C + P oder p + U oder u + (s) fragen `
      Mal mit dem Parser-Adapter versucht? Damit arbeite ich gerne.

      @MeisterF:

      Falls Du so etwas kannst, würde es Deine Scripte universell machen und vielleicht wird ein "Linux-Hardware Adapter draus? `
      Das ist seit Jahren mein Ziel, aber mit Javascript bin ich immer noch ganz am Anfang

      inzwischen gibt es aber https://github.com/frankjoke/ioBroker.systeminfo, den habe ich selber noch nicht getestet.

      @MeisterF:

      . und - wie bekommt man die CPU-Last "grün" - also "bestätigt" auf "true" ? `
      Wenn du mir das Skript verlinkst, sehe ich mir das mal an.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • M
        MeisterF last edited by

        Hallo Reiner,

        es ist das hier von Sven2013 verlinkte Script - ich habe nur CPU(s) und Cpu(s) geändert

        http://forum.iobroker.net/viewtopic.php … =40#p57275

        auch alle anderen Werte aller anderen Scripte der ersten zwei ? Seiten hier im Thread gehen in der Übersicht von Grün (Abfrage) auf ganz kurz schwarz und dann sofort rot zu werden.

        Die Werte z.B. vom KM200-Adapter laufen grün durch, wenn sie aktualisiert werden und bleiben dann schwarz …

        (aber so lang es funktioniert und nicht das LOG voll schreibt ....)

        Grüße

        Jörg

        PS.: Danke, dass Du auch was zu history geschrieben hast, das brennt mir mehr unter den Nägeln

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators last edited by

          Sorry, das Skript übersteigt meine Fähigkeiten. Ich hätte da zwar eine Vermutung, aber da muss ein Skripter mal drüber schauen.

          Wie du richtig beschrieben hast muss dem State ein ACK=true mitgegeben werden.

          kann sein dass das dies hier ist:

          setStateDelayed(idCPUlast,parseInt(stdout),100);
          

          dann müsste hinter dem Wert noch ein ",1" rein (glaube ich)

          setStateDelayed(idCPUlast,parseInt(stdout),100,1);
          

          kann aber auch totaler Blödsinn sein!!!

          Gruß

          Rainer

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Doku:

            setStateDelayed (id, state, isAck, delay, clearRunning, callback) `
            Also so:

            setStateDelayed(idCPUlast,parseInt(stdout),true,100);
            
            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Danke Paul!

              war ich ja sooo falsch (von der Idee und der Zeile) ja nicht 😉

              Schöne Weihnachten

              Rainer

              1 Reply Last reply Reply Quote 0
              • M
                MeisterF last edited by

                Hallo @paul53 und @ruhr70

                @paul53:

                @Doku:

                setStateDelayed (id, state, isAck, delay, clearRunning, callback) `
                Also so:

                setStateDelayed(idCPUlast,parseInt(stdout),true,100);
                ```` `  
                

                Dann müsste das in allen von ruhr70 geposteten Scrips noch rein.

                Bei den einfachen (CPU, Node-JS oder npm Version) steht die Zeile unten drin und selbst ich konnte das ändern.

                In den anderen (Speicher, etc) müsste das an entsprechender Stelle auch noch rein - nur wo?

                Grüße

                Jörg

                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  wenn Du Dir viel Arbeit ersparen willst…

                  schau Dir mal den neuen Adapter Sysinfo an.

                  nicht im Repro. Also im Forum suchen, über die Katze installieren.

                  Die meisten Werte sind schon voreingestellt. Der Adapter ersetzt bei mir einen großen Teil der Skripte und wird anstelle des Parser Adapter verwendet.

                  Gesendet von iPhone mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • M
                    MeisterF last edited by

                    @ruhr70

                    Na toll, jetzt wollte ich hier ein CPU-Temperatur-Script einstellen (das ich nur durch Änderungen deines ersten Scriptes gebastelt habe).

                    Wer es trotzdem will:

                    (Es liest nur die Temperatur der ersten CPU aus und es muss lm-sensors installiert sein - apt-get install lm-sensors - also nur Linux-Rechner)

                    ! ````
                    var pfad = "Systeminfos.host" + ".";
                    var cronStr = "*/1 * * * *";
                    ! var abfrage = "sensors | grep 'Core 0:'|tail -n 1 | awk '{print $3}'";
                    ! var idCPUTemperatur = pfad + 'CPU_Temperatur';
                    ! createState(idCPUTemperatur, 0, {
                    name: 'CPU Temperatur',
                    desc: 'CPU Temperatur',
                    type: 'number',
                    unit: '° C',
                    role: 'value'
                    });

                    ! function abfrageCPU() {
                    exec(abfrage, function(err, stdout, stderr) {
                    if (err) {
                    log(err,"error");
                    return;
                    }
                    //log(stdout);
                    setStateDelayed(idCPUTemperatur,parseInt(stdout),true,100);
                    });
                    }
                    ! function abfragen() {
                    abfrageCPU();
                    }
                    ! // regelmässige Wiederholungen
                    // -----------------------------------------------------------------------------
                    schedule(cronStr, abfragen);
                    ! // main
                    // -----------------------------------------------------------------------------
                    function main() {
                    abfragen();
                    }
                    ! // Start Skript:
                    // -----------------------------------------------------------------------------
                    ! setTimeout(main, 500);
                    ! ````

                    Ich habe Deinen anderen auch am Laufen - wenn Du da mal noch dieses "true" an der richtigen Stelle rein basteln könntest …

                    Ich habe darin die Zeile:

                    setStateDelayed(idCPUTemperatur,parseInt(stdout),true,100);

                    nicht gefunden.

                    zum neuen Adapter …. über die Katze ???

                    1 Reply Last reply Reply Quote 0
                    • ruhr70
                      ruhr70 last edited by

                      @MeisterF:

                      Ich habe Deinen anderen auch am Laufen - wenn Du da mal noch dieses "true" an der richtigen Stelle rein basteln könntest …

                      Ich habe darin die Zeile:

                      setStateDelayed(idCPUTemperatur,parseInt(stdout),true,100);

                      nicht gefunden. `

                      Wenn Du noch was anpassen willst…

                      Im Speicher Skript werden z.B. die Datenpunkte im setState() innerhalb dieser Funktion geschrieben:

                      function writeDp(arr) {
                          var i = 0;
                          for (var dp in datenpunkte) {
                              var wert = parseInt(arr[i++]);
                              setState(pfad + dp,wert);
                              //log(dp+": "+ wert + " #" + typeof(wert));
                          }
                      }
                      
                      

                      @MeisterF:

                      zum neuen Adapter …. über die Katze ??? `

                      Siehe Thread: http://forum.iobroker.net/viewtopic.php … nfo#p97813

                      Dort steht der Link zum Adapter auf Github.

                      Die Github Katze findest Du im Admin/Adapter. Das dritte Icon oben von Links.

                      Dann den Tab "beliebig" auswählen, dort in das Feld URL den Github-Linl reinkopieren.

                      Dann taucht der Adapter unter Adapter auf und Du kannst in mit dem Plus in der rechten Spalte zu den Instanzen hinzufügen.

                      1 Reply Last reply Reply Quote 0
                      • M
                        MeisterF last edited by

                        aha - Danke

                        setStateDelayed(idCPUTemperatur,parseInt(stdout),true,100);
                        

                        ` > Wenn Du noch was anpassen willst…

                        Im Speicher Skript werden z.B. die Datenpunkte im setState() innerhalb dieser Funktion geschrieben:

                        function writeDp(arr) {
                            var i = 0;
                            for (var dp in datenpunkte) {
                                var wert = parseInt(arr[i++]);
                                setState(pfad + dp,wert);
                                //log(dp+": "+ wert + " #" + typeof(wert));
                        
                        ```` `  
                        

                        sollte dann also:

                        function writeDp(arr) {
                            var i = 0;
                            for (var dp in datenpunkte) {
                                var wert = parseInt(arr[i++]);
                                setState(pfad + dp,wert,true,100);
                                //log(dp+": "+ wert + " #" + typeof(wert));
                        
                        

                        sein, oder ohne die 100 ?

                        Ich habe es probiert und setState(pfad + dp,wert,true); lässt die Werte grün - dann schwarz erscheinen.

                        Bei dem neuen Adapter gibt es den Pfad zur Systemtemperatur auf meinem debian 9 nicht - also da steht nichts unter

                        /sys/class/thermal/thermalzone ….

                        (aber dann später mal in dem Thread)

                        1 Reply Last reply Reply Quote 0
                        • ruhr70
                          ruhr70 last edited by

                          @MeisterF:

                          sein, oder ohne die 100 ? `

                          Ohne die 100.

                          Siehe https://github.com/ioBroker/ioBroker.ja … d#setstate

                          setState (id, state, ack, callback)
                          
                          1 Reply Last reply Reply Quote 0
                          • R
                            Rompe last edited by

                            @ruhr70:

                            Uptime ioBroker (oben war es die Updike vom Linux Host):

                            ! // system.host.ubuntu1604server.uptime ! var pfad = "Systeminfos.ioBroker" + "."; var idState = "uptime"; ! createState(pfad + idState, 0, { name: 'ioBroker uptime', desc: 'ioBroker uptime', type: 'number', unit: '', role: 'value' }); ! on({id:"system.host.ubuntu1604server.uptime",change:'any'}, function (obj) { setState(pfad + idState,Math.floor((obj.newState.val/3600)/24)); }); ! // main // ----------------------------------------------------------------------------- function main() { // } ! // Start Skript: // ----------------------------------------------------------------------------- ! setTimeout(main, 500); ! `

                            Huhu zusammen.

                            Kann man dieses Script noch erweitern, so dass neben den Tagen auch die Stunden und Minuten ausgegeben werden? Format wie "5T. 19:24" (also 5 Tage, 19 Stunden, 24 Minuten). habe schon versucht ein wenig herumzubasteln, aber bekomme es einfach nicht hin. Über Google habe ich zwar ein paar Sachen zur Umrechnung gefunden, bekomme sie aber nicht richtig in den Code reingepackt.

                            MfG,

                            Tobi

                            1 Reply Last reply Reply Quote 0
                            • ruhr70
                              ruhr70 last edited by

                              @Rompe:

                              Huhu zusammen.

                              Kann man dieses Script noch erweitern, so dass neben den Tagen auch die Stunden und Minuten ausgegeben werden? Format wie "5T. 19:24" (also 5 Tage, 19 Stunden, 24 Minuten). habe schon versucht ein wenig herumzubasteln, aber bekomme es einfach nicht hin. Über Google habe ich zwar ein paar Sachen zur Umrechnung gefunden, bekomme sie aber nicht richtig in den Code reingepackt.

                              MfG,

                              Tobi `

                              probier mal:

                              // system.host.ubuntu1604server.uptime
                              
                              var pfad        = "Systeminfos.ioBroker" + ".";
                              var idState     = "uptime";
                              var idStateStr  = "uptimeStr";
                              
                              createState(pfad + idState, 0, {
                                   name: 'ioBroker uptime',
                                   desc: 'ioBroker uptime',
                                   type: 'number',
                                   unit: '',
                                   role: 'value'
                              });
                              
                              createState(pfad + idStateStr, "init", {
                                  name: 'ioBroker uptime als String',
                                  desc: 'ioBroker uptime als String',
                                  type: 'string',
                                  unit: '',
                                  role: 'value'
                              });
                              
                              function dauerStr(sek) {
                                  var tage = Math.floor(sek / (24*3600));
                                  var stunden = Math.floor((sek % (24*3600))/3600);
                                  var minuten = Math.floor((sek % (3600))/60);
                                  var sekunden = Math.floor(sek % 60);
                                  return tage.toString()+"d "+stunden.toString()+"h "+minuten.toString()+"m "+sekunden.toString()+"s";
                              }
                              
                              on({id:"system.host.ubuntu1604server.uptime",change:'any'}, function (obj) {
                                  setState(pfad + idState,Math.floor((obj.newState.val/3600)/24));
                                  setState(pfad + idStateStr,dauerStr(obj.newState.val));
                              });
                              
                              // main
                              // -----------------------------------------------------------------------------
                              function main() {
                                  //
                              }
                              
                              // Start Skript:
                              // -----------------------------------------------------------------------------
                              
                              setTimeout(main,    500);
                              

                              [EDIT] 2. createState, type auf "string" geändert.

                              1 Reply Last reply Reply Quote 0
                              • R
                                Rompe last edited by

                                Wow, klasse. Vielen Dank. Funzt 1A

                                1 Reply Last reply Reply Quote 0
                                • R
                                  Rompe last edited by

                                  Ah, doch leider noch nicht ganz.

                                  Habe verschiedene Datenpunkte in ein HTML Feld eingebunden. Doch leider zeigt mir vis als Wert "undefined" bei der uptime an.

                                  Eingebunden ist es in der Tabellenzelle mit {javascript.0.Systeminfos.RaspberryPi1.uptime}

                                  Edit: Im Datenpunkt selbst wird es richtig dargestellt.

                                  MfG,

                                  Tobi

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    aleks-83 last edited by

                                    @ruhr70:

                                    Und eine Variante der Darstellung:

                                    iobroker host.jpg `

                                    Hallo ruhr70,

                                    Ich bin seeehr interessiert an einem Widget Export deiner Darstelleung :mrgreen:

                                    Wäre es möglich dass du das mit uns teilst?

                                    Deine Skripte werde ich dann auch entpsrechend anpassen und verwenden.

                                    Vielen Dank schonmal dass du sie mit uns teilst!

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      loverz last edited by loverz

                                      Hi zusammen,

                                      ich habe bei mir festgestellt, dass einige Adapter gelegentlich eine langsame Verbindung zur Objekt-Datenbank im log melden:
                                      40b7c8d2-e162-4cbe-b7e1-5ad27adb8af9-image.png

                                      Ich habe das Gefühl, dass die CPU meines Raspberry Pi 4 4GB hier ein wenig zu Stark ausgelastet ist.

                                      Im Objekt:
                                      6d2d089a-c784-406c-a02e-5b822768f018-image.png

                                      Sehe ich eigentlich kaum eine Auslastung.
                                      Wie sieht es denn mit den anderen Cores aus? Oder Arbeitet iobroker nur mit einem Core?

                                      Kann es sein, dass viele Timeouts im Blockly an der Performance "kratzen"
                                      Hab nämlich neulich etwa. 20-30 Timeouts eingebaut, welche "permanent" am laufen sind um Präsenzen abzufragen.

                                      Viele Fragen, ich weiß 😉

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

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

                                      435
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      13
                                      90
                                      20393
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo