Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Auslastung NUC (o.a.) auslesen - visualisieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Auslastung NUC (o.a.) auslesen - visualisieren

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

      @Brati:

      Habs noch schnell umgesetzt und läuft jetzt. `
      Supi, dann hab ich jetzt auch Adapter modifizieren (in gaaanz groben Zügen) gelernt 😉

      @Brati:

      Kommt man in der VM überhaupt an die Hardware? `
      Das weiß ich auch nicht, deswegen hatte ich das auch erst gefragt.

      Aber wenn man mit cat die Datei, die den Wert enthält findet, kann man ihn auch auslesen.

      bleibt nur die Frage ob die VM diesen Wert auch korrekt aus der Hardware ausliest (Was ich bezweifle).

      Aber wäre erst einmal schön zu wissen, was da drin steht.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • K
        kirbsi last edited by

        Es geht wohl aber es nicht eindeutig zuviel Aufwand 😢

        https://www.thomas-krenn.com/de/wiki/VM … Cberwachen

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

          Hallo,

          gibt es auch eine Möglichkeit die Werte mit NUC und Win10 auszulesen?

          Danke u. Gruß

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

            Also prinzipiell geht es unter Windows z.B. mittels WMI. Allerdings ist es mir bisher auch nicht gelungen auf die Temperaturen meines NUC zuzugreifen 😞 Das ist wohl dann jeweils motherboardabhängig, aber insgesamt kann man damit eine ganze Menge auslesen.

            Hier mal meine bisherigen Versuche:

            ! ````
            var pcName = 'NUC';//Bezeichnung des zu überwachenden PC's
            var ip = '192.168.137.40';//IP-Adresse des zu überwachenden PC's
            ! var wmi = require('node-wmi');
            wmi.Query({class:'Win32_PhysicalMemory'}, function(err, result) {
            if (err){
            log(err);
            }
            else{
            //log(JSON.stringify(result[0]));
            log("TotalMem:" + JSON.stringify(result[0].Capacity));
            }
            });
            wmi.Query().class('Win32_Processor', function(err, result) {
            //log(JSON.stringify(result));
            log(JSON.stringify(result[0].Name));
            log(JSON.stringify(result[0].LoadPercentage));
            log("CurrSpeed" + JSON.stringify(result[0].CurrentClockSpeed));
            });
            wmi.Query({class:"MSAcpi_ThermalZoneTemperature", namespace: "root/wmi"}, function(err, result) {
            if (err){
            log("Temp:" + err);
            }
            else{
            log(JSON.stringify(result));
            log("CurrTemp:" + (JSON.stringify(result[0].CurrentTemperature)-2730)/10);
            }
            });
            wmi.Query({class:"Win32_CurrentProbe", namespace: "root/CIMV2"}, function(err, result) {
            if (err){
            log("Power" + err);
            }
            else{
            log("Temp2" + JSON.stringify(result));
            //log("Temp2" + (JSON.stringify(result[0].CurrentTemperature)-2730)/10);
            }
            });

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

              @Thisoft:

              Allerdings ist es mir bisher auch nicht gelungen auf die Temperaturen meines NUC zuzugreifen Das ist wohl dann jeweils motherboardabhängig, `
              Das ist unter Linux nicht anders.

              Je nach Mutterbrett sind einige Sensoren gar nicht verbaut.

              Gruß

              Rainer

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

                Wie bekomme ich denn dieses node-wmi installiert?

                Ist in meiner Installation nicht dabei.

                Danke und Gruß Jens

                ok, muß im JS Adapter eingetragen werden

                Nun kommt dieser Fehler

                Error: spawn wmic ENOENT

                Kann da jemand helfen?

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

                  Die Fehlermeldung könnte auf fehlende Berechtigungen hinweisen. Hast Du Adminrechte? Firewallausnahmen für WMI konfiguriert?

                  Versuch am besten erstmal direkt WMI auszulesen, z.B. mit dem WMI-Explorer https://www.heise.de/download/product/w … orer-69189. Damit siehst Du dann schon mal was da alles gehen könnte…

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

                    Hallo Leute,

                    ich habe einen NUC 6i3 und darauf Proxmox installiert …

                    jetzt probiere ich schon seit ein paar tagen die Werte Temperatur so wie Netzwerk im RPI Monitor abfragbar zu machen

                    die anderen Werte (cpu, memory, uptime, sdcard, swap) werden mir angezeigt

                    hat jemand mit einer ähnlichen Konstellation das selbe Problem oder eine Idee wie das bei Proxmox funktionieren könnte??

                    mfg

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

                      @Campino:

                      ich habe einen NUC 6i3 und darauf Proxmox installiert …

                      jetzt probiere ich schon seit ein paar tagen die Werte Temperatur so wie Netzwerk im RPI Monitor abfragbar zu machen `
                      Genau diese Konfiguration habe ich auch.

                      Da kannst du nicht auf die Hardwaredaten zugreifen, da sich deine ioBroker Installation in einer virtuellen Maschine befindet.

                      Und diese Maschine besitzt keine Hardware 😉

                      die Anderen Werte beziehen sich dann auch nur auf die von dir in der Konfiguration der VM angegebene virtuelle CPU/Mem usw. und NICHT auf die Hardware

                      Gruß

                      Rainer

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

                        ah ok ja vielen dank genau das hab ich mir leider schon gedacht 😉 😉

                        vielen Dank

                        mfg

                        Campino

                        1 Reply Last reply Reply Quote 0
                        • Z
                          Zefixnoamoi last edited by

                          Hallo erstmal 😄

                          Ich hab IOBroker erst seit 25.3. am laufen und bin letzte Woche hier über den Fred gestolpert da ich auf meinem NUC unter Windows auch die Boarddaten in IoBroker haben wollte.

                          Ich hab dann festgestellt, dass der OpenHardwareMonitor den ich schon 2 Jahre nutze, die Werte per Webvisu zur Verfügung stellen kann und die Daten ins WMI schreibt.

                          Wäre evtl. was für Zugriff über VM?

                          Habs geschafft die WMI Daten in IObroker einzulesen und läuft mittlerweile seit 5 Tagen Stabil.

                          Als erstes braucht ihr den OpenHardwaremonitor: http://openhardwaremonitor.org/

                          Der braucht nur runterladen, entpacken und starten. Keine Installtionsroutine. Dann allerdings einstellen, dass er mit Windows starten soll usw.

                          Dann den WMI Explorer: https://www.heise.de/download/product/w … orer-69189

                          In diesem Programm dann unter -> Action ->Connect to Host bei Namespace: Root\OpenHardwareMonitor eingeben und OK drücken.

                          In der Rubrik Sensor sind dann unsere Sensoren die OHM auslesen konnte aufgelistet.

                          Dann in IObroker in der Konsole "npm install node-wmi" eingeben für den Zugriff auf WMI.

                          Diesen noch unter Instanzen -> Javascript.0 -> Konfiguration -> Zusätzliche NPM Module mit "node-wmi" eintragen. (alles ohne Ausführungszeichen ;-))

                          Dann hab ich mir als Vorlage von ThiSoft hier ein paar Beiträge vorher, sein Skript als Vorlage geklaut und damit probiert. Sorry 😉

                          Ich beschäftige mich erst seit lezter Woche mit Java. S7 SPS ist eher meine Heimat 8-)

                          Im Skript zum einrichten der richtigen Sensoren, unten die Zeile " Komplette Query Ausgabe aktivieren.

                          Spript starten und das Ergebnis am besten in eine TXT Datei kopieren.

                          Der Inhalt der Geschweiften klammern ist quasi das Ergbnis eines Sensors.

                          Dann Sensoren durchzählen, bei 0 beginnend und den passenden in die eckigen Index klammern eintragen.

                          Skript mag Laienhaft sein, aber wollt nur Zeigen wie man an die Daten kommt. 😉

                          Wär schön wenn jemand was tolles draus machen kann. Evtl einen WMI Adapter?

                          ! createState('HostHardwareMonitor.Processor.Temp',0); createState('HostHardwareMonitor.Processor.Load', 0); createState('HostHardwareMonitor.Processor.Power', 0); createState('HostHardwareMonitor.Speicher.Load', 0); createState('HostHardwareMonitor.Disk.Temp', 0); createState('HostHardwareMonitor.Disk.UsedSpace', 0); ! schedule = schedule('*/3 * * * * *', function () { ! var wmi = require('node-wmi'); ! wmi.Query({class:"Sensor", namespace: "root/OpenHardwareMonitor"}, function(err, result) { if (err){ log("Fehler: " + err); } else{ setState("javascript.0.HostHardwareMonitor.Processor.Temp" ,parseFloat(JSON.stringify(result[1].Value))); setState("javascript.0.HostHardwareMonitor.Processor.Load" ,parseFloat(JSON.stringify(result[8].Value))); setState("javascript.0.HostHardwareMonitor.Processor.Power" ,parseFloat(JSON.stringify(result[6].Value))); setState("javascript.0.HostHardwareMonitor.Speicher.Load" ,parseFloat(JSON.stringify(result[0].Value))); setState("javascript.0.HostHardwareMonitor.Disk.Temp" ,parseFloat(JSON.stringify(result[11].Value))); setState("javascript.0.HostHardwareMonitor.Disk.UsedSpace" ,parseFloat(JSON.stringify(result[2].Value))); //log("Query: " + (JSON.stringify(result[1].Value))); //Eine Query Ausgabe ins Log //log("Query: " + JSON.stringify(result)); //Komplette Query Ausgabe ins Log }}); }); !

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

                            @Homoran:

                            Da kannst du nicht auf die Hardwaredaten zugreifen, da sich deine ioBroker Installation in einer virtuellen Maschine befindet.

                            Und diese Maschine besitzt keine Hardware 😉 `

                            Ich habe auch das Anliegen, von meinem Host (also dem NUC), die CPU Temperatur speichern zu wollen.

                            Iobroker läuft unter einer VM, also komme ich mit dem rpi-Adapter nicht weiter.

                            Habe es auch mit dem Systeminfo-Adapter versucht, aber der scheint auch nur auf die VM zu schauen und da bekomme ich keine Werte.

                            Per ssh auf meinem NUC komme ich mit "cat /sys/devices/virtual/thermal/thermal_zone0/temp" an die Temperatur.

                            Wie hole ich mir denn nun die Temperatur ab ?

                            Per simple.api an den Linux Rechner senden ?

                            Script ?

                            1 Reply Last reply Reply Quote 0
                            • S
                              stefan last edited by

                              Ich hab das für mich so gelöst das ich mir die Werte per SSH und angehängten Befehl hole und damit eine iobroker variable fülle …das ganze mit blockly

                              Also exec Block mit Befehl SSH xxx@pi Cat /...| Grep | Cut und ausführen per cron Trigger

                              Gruss

                              Stefan

                              Gesendet von meinem Mi A2 Lite mit Tapatalk

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

                                @stefan:

                                Wie hast du denn den ssh Befehl hinbekommen ? Da muss ich doch noch das PW reinbasteln. Das geht ja so ohne weiteres nicht.

                                Geht das nicht über –> Generating public/private rsa key pair ??? Wenn ja, da bin ich raus, das übersteigt meine Linux-verständnisse

                                1 Reply Last reply Reply Quote 0
                                • S
                                  stefan last edited by

                                  Ja genau mit dem Rsa key

                                  …meine Kenntnisse hat das am Anfang auch überschritten, aber in solchen Fällen hat mir das ubuntuusers Wiki immer sehr geholfen auch da Mal nach SSH da gibt's ne sehr gute Anleitung

                                  Wenn ich nachher zu Hause bin suche ich das Mal raus und schick den link da gibt's auch Artikel zu grep und Cut usw wenn's nötig ist und vieles mehr für Anfänger wie mich

                                  Gesendet von meinem Mi A2 Lite mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    stefan last edited by

                                    Und der link

                                    https://wiki.ubuntuusers.de/SSH/

                                    Irgendwo in der Mitte unter

                                    Authentifizierung über Public-Keys

                                    Ein blockly kann ich so ohne weiteres nicht liefern da ich mein Netzwerk Monitoring auf Munin umgestellt hab und die Scripte natürlich schon gelöscht sind 8-) aber bei Interesse könnte ich eins schnell nachbauen und Posten

                                    Gruß

                                    Stefan

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

                                      Prinzipiell habe ich es nach gefühlten 19x lesen verstanden was da zu tun ist. Aber wer Rechner muss denn mit welchen "sprechen" ?

                                      Ich will ja von der iobroker VM (mit bestimmter IP - sagen wir PC1) auf die Original Version des Hosts (andere IP - sagen wir PC2) zugreifen mit diesem Befehl um die Temp. auszulesen.

                                      Auf welchen PC muss ich nun diese Befehle ausführen und wohin schicke ich dann den Key in welcher Form (ssh-copy-id -i ~/.ssh/id_ed25519.pub <u>user@server</u>) übertragen ?

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        stefan last edited by

                                        Eigentlich ganz einfach, wenn mans mal gemacht hat.

                                        Zuerst den key auf PC1 erzeugen

                                        ssh-keygen -t rsa -b 4096
                                        

                                        Dann den Key von PC1 nach PC2 übertragen

                                        ssh-copy-id -i ~/.ssh/id_rsa.pub user@PC2
                                        

                                        Bei den Benutzern auf PC1 und PC2 bin ich mir nicht sicher, aber ich glaub die sollten auf beiden gleich sein. Bei mir ist das zumindest so.

                                        Wenn das geschafft ist hole ich mir die Werte mit ssh Befehl von PC1 ausgeführt

                                        ssh user@PC2 cat Dateipfad | grep | cut
                                        

                                        mit cat erstmal die komplette Datei einlesen und mit der pipe | den Inhalt an grep übergeben wo ich dann schonmal die richtige Zeile ausfiltern das dann wieder per pipe an cut übergeben und mit cut die gewollte Zeichenkette ausschneiden

                                        Ich weiss nicht ob das so verständlich ist… darum hier noch ein Beispiel:

                                        Ich kenne den NUC und den Dateiinhalt nicht aber nehmen wir mal an da steht :

                                        Die Temperatur von deinem NUC ist
                                        180 °C Hilfe mir ist zu warm!!!
                                        

                                        mit

                                        ssh user@PC2 cat /sys/devices/virtual/thermal/thermal_zone0/temp 
                                        

                                        wäre die Ausgabe

                                        Die Temperatur von deinem NUC ist
                                        180 °C Hilfe mir ist zu warm!!!
                                        

                                        dann mit grep weiterverarbeiten (die richtige Zeile filtern

                                        ssh user@PC2 cat /sys/devices/virtual/thermal/thermal_zone0/temp | grep Hilfe
                                        

                                        Ausgabe:

                                        180 °C Hilfe mir ist zu warm!!!
                                        ````Das Argument für grep muss ein Wort sein was nur in der Zeile vorkommt, grep -v funktioniert genau umgekehrt dann würde nur die erste Zeile angezeigt
                                        
                                        dann weiter mit cut die richtigen Zeichen ausschneiden
                                        

                                        ssh user@PC2 cat /sys/devices/virtual/thermal/thermal_zone0/temp | grep Hilfe | cut -c 1-3

                                        Ausgabe:
                                        

                                        180

                                        So hab ich das bei mir gemacht allerdings vor allem mit loadavg meminfo hdd Belegung hdd Temp aus smartctl usw aber Prinzip ist das selbe.
                                        
                                        Manchmal kommt noch awk { print $1 } (für die richtige Spalte) und tr (für Zeichenlöschen) ins Spiel.
                                        
                                        Mit Sicherheit kann das ein Profi viel eleganter aber zu mehr reichts bei mir dann auch nicht 8-)
                                        
                                        Ich hoffe das hilft dir weiter
                                        
                                        Gruss
                                        
                                        Stefan
                                        1 Reply Last reply Reply Quote 0
                                        • Segway
                                          Segway last edited by

                                          Super Anleitung dafür !!! Perfekt.

                                          Ohne grep und cut Abfrage sonst ist es leer) bekomme ich nun als Ergebnis –> 51000 (dürfte wohl 51°C sein).

                                          Nur mein Blockly will nicht ala javascript:

                                          1043_2019-01-10_122825.jpg

                                          Fehler:

                                          12:22:41.840	info	javascript.1 script.js.UserDefined.Systeminfos.NUC_CPU_Temp: undefined
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            stefan last edited by

                                            Sehr schön das freut mich [emoji4]

                                            Zum blockly:

                                            Jetzt Mal so aus dem Kopf weil unterwegs

                                            Ich hab den Wert den der Befehl liefert erstmal in in einer Programm variablen gespeichert evtl, da bin ich mir nicht sicher, in Zahl umgewandelt mit einem convert Block und dann den Block schreibe Objekt mit wert genutzt … Irgendwo dazwischen umgerechnet mit den Mathe Blöcken Wenn nötig

                                            Das ganze aber ohne Gewähr wie gesagt

                                            Gruss

                                            Stefan

                                            Gesendet von meinem Mi A2 Lite mit Tapatalk

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            988
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            55
                                            7929
                                            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