Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Gelöst] CPU-Last & Temperatur von entferntem RasPi auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] CPU-Last & Temperatur von entferntem RasPi auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • NWH
      NWH @Homoran last edited by

      @homoran
      mhhh
      ChatGPT meinte:

      Um die CPU-Temperatur und -Auslastung deines Raspberry Pi auszulesen und im ioBroker darzustellen, kannst du die Daten mit einem Shell-Skript sammeln und dann über den ioBroker-Adapter „Systeminfo“ oder „Javascript“ zur Anzeige bringen.

      Allerdings möchte ich nicht haben das die Daten am Raspi gespeichert werden.
      Ich kenn mich hier nicht so gut aus, aber kann man den Pfad wo anders hin ändern?

      Das wäre das Script

      #!/bin/bash
      # cpu_data.sh
      
      # CPU-Temperatur
      temp=$(vcgencmd measure_temp | egrep -o '[0-9]*\.[0-9]*')
      
      # CPU-Auslastung
      usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
      
      # Ausgabe
      echo "temp=$temp"
      echo "usage=$usage"
      
      

      und hier das 2te Script

      const exec = require('child_process').exec;
      
      function readCpuData() {
          // Befehl für die CPU-Temperatur
          exec("vcgencmd measure_temp", (error, stdout, stderr) => {
              if (error) {
                  console.error(`exec error: ${error}`);
                  return;
              }
              const temp = parseFloat(stdout.replace('temp=', '').replace("'C\n", ''));
              setState("javascript.0.raspberrypi.temp", temp);
          });
      
          // Befehl für die CPU-Auslastung
          exec("top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk '{print 100 - $1}'", (error, stdout, stderr) => {
              if (error) {
                  console.error(`exec error: ${error}`);
                  return;
              }
              const usage = parseFloat(stdout);
              setState("javascript.0.raspberrypi.usage", usage);
          });
      }
      
      // CPU-Daten alle 10 Sekunden abrufen
      schedule("*/10 * * * * *", readCpuData);
      
      
      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @NWH last edited by Homoran

        @nwh ich weiss nicht wie du die Aufgabe gestellt hast, die Antwort klingt aber nach einem laufenden ioBroker auf dem Raspi

        NWH 1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Homoran last edited by

          @homoran sagte in cpu Last und Temperatur von entferntem RasPi auslesen:

          Du musst ja Zugriff auf den anderen Raspi bekommen

          Nicht unbedingt.
          Wie wäre es mit SNMP?
          Auf den Raspi kommt der Daemon und mit ioBroker kommt man mit dem SNMP-Adapter da ran.

          Ich habe keinen Raspi. Aber wenn ich einen zu überwachen hätte, würde ich das mit Zabbix machen und auf dem Pi den Agent installieren.
          Liegt aber auch daran, dass ich sowieso jeden Furz und Feuerstein mit Zabbix überwache 😁

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

            @codierknecht sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

            Nicht unbedingt.
            Wie wäre es mit SNMP?

            das braucht auch einen Zugriff 😀

            Codierknecht 1 Reply Last reply Reply Quote 0
            • NWH
              NWH @Homoran last edited by

              @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

              @nwh ich weiss nicht wie du die Aufgabe gestellt hast, die Antwort klingt aber nach einem laufenden ioBroker auf dem Raspi

              Findest du, ich hätte es so interpretiert wie ich es gerne hätte.
              Frage war, wie einen Raspi auslesen und im Iobroker integrieren

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

                @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                Frage war, wie einen Raspi auslesen und im Iobroker integrieren

                also nichts von entferntem Raspberry erwähnt?

                NWH 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Homoran last edited by

                  @homoran
                  Naja .... irgend eine Art von Zugriff wird auf jeden Fall nötig sein.
                  SSH, SNMP ... selbst für das dranhalten eines Thermometers ist ein "Zugriff" nötig 😀

                  Homoran 1 Reply Last reply Reply Quote 0
                  • NWH
                    NWH @Homoran last edited by

                    @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                    @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                    Frage war, wie einen Raspi auslesen und im Iobroker integrieren

                    also nichts von entferntem Raspberry erwähnt?

                    nö

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

                      @codierknecht sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                      irgend eine Art von Zugriff wird auf jeden Fall nötig sein.

                      nicht bei Ausleseskript per bash oder python auf dem Raspi und senden der Daten an die SimpleAPI des iob

                      Codierknecht 1 Reply Last reply Reply Quote 0
                      • NWH
                        NWH @NWH last edited by

                        @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                        @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                        @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                        Frage war, wie einen Raspi auslesen und im Iobroker integrieren

                        also nichts von entferntem Raspberry erwähnt?

                        nö

                        Aber du hast Recht, habe jetzt die Frage umformuliert. Dann kommt das Ergebnis raus was du sagtest: 😇

                        Voraussetzungen
                        SSH-Zugriff auf den entfernten Raspberry Pi.
                        Installierter ioBroker auf dem Host-System.
                        Systeminfo-Adapter in ioBroker für die Datenerfassung (optional, aber empfehlenswert).
                        Script-Adapter in ioBroker für die Automatisierung des Temperatur-Updates.

                        NWH 1 Reply Last reply Reply Quote 0
                        • wendy2702
                          wendy2702 last edited by wendy2702

                          Am Handy nicht alles gelesen aber wenn die Abfrage per Befehl möglich ist kann man den Linux Control Adapter verwenden.

                          Also wenn die beiden Befehle die gewünschte Ausgabe liefern

                          
                          temp=$(vcgencmd measure_temp | egrep -o '[0-9]*\.[0-9]*')
                           
                          # CPU-Auslastung
                          usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
                          
                          

                          Dann per Linux Control und SSH. Sollte dann ein iob Objekt ergeben das den Wert enthält.

                          1 Reply Last reply Reply Quote 1
                          • Codierknecht
                            Codierknecht Developer Most Active @Homoran last edited by

                            @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                            bei Ausleseskript per bash oder python auf dem Raspi und senden der Daten

                            OK - andersrum. Auch 'ne Möglichkeit 😉

                            1 Reply Last reply Reply Quote 0
                            • NWH
                              NWH @NWH last edited by

                              @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                              @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                              @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                              @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                              Frage war, wie einen Raspi auslesen und im Iobroker integrieren

                              also nichts von entferntem Raspberry erwähnt?

                              nö

                              Aber du hast Recht, habe jetzt die Frage umformuliert. Dann kommt das Ergebnis raus was du sagtest: 😇

                              Voraussetzungen
                              SSH-Zugriff auf den entfernten Raspberry Pi.
                              Installierter ioBroker auf dem Host-System.
                              Systeminfo-Adapter in ioBroker für die Datenerfassung (optional, aber empfehlenswert).
                              Script-Adapter in ioBroker für die Automatisierung des Temperatur-Updates.

                              Jetzt muss ich nochmals Fragen, was ist damit gemeint, Host ist das der IOB in meinem Container oder muss ich den auf dem Raspi nochmals Iob installieren?
                              > Installierter ioBroker auf dem Host-System.

                              Codierknecht Homoran 2 Replies Last reply Reply Quote 0
                              • Codierknecht
                                Codierknecht Developer Most Active @NWH last edited by

                                @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                Host ist das der IOB in meinem Container

                                Jepp

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

                                  @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                  Host ist das der IOB in meinem Container

                                  nein, host ist der Rechner auf dem ioBroker läuft

                                  @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                  Installierter ioBroker auf dem Host-System.

                                  NWH Codierknecht 2 Replies Last reply Reply Quote 0
                                  • NWH
                                    NWH @Homoran last edited by

                                    @homoran
                                    ok dann müsste es mit dem Script funktionieren, allerding weiß ich nicht was ich hier eintragen soll?

                                    /pfad/zum/ssh/schlüssel durch den Pfad zu deinem SSH-Schlüssel (wenn ein Passwort statt eines Schlüssels verwendet wird, kann der Schlüssel-Parameter entfallen und ein Passwort kann im Befehl interaktiv eingegeben werden).

                                    const { exec } = require('child_process');
                                    const remoteIP = 'IP_DES_RASPBERRY_PI'; // IP-Adresse des Raspberry Pi
                                    const sshUser = 'pi'; // Standardnutzer des Raspberry Pi
                                    const sshKeyPath = '/pfad/zum/ssh/schlüssel'; // Pfad zum SSH-Schlüssel, falls verwendet
                                    
                                    // Befehl zur Abfrage der CPU-Temperatur
                                    const sshCommand = `ssh -i ${sshKeyPath} ${sshUser}@${remoteIP} cat /sys/class/thermal/thermal_zone0/temp`;
                                    
                                    // Funktion zur Abfrage und Verarbeitung
                                    function fetchCPUTemperature() {
                                       exec(sshCommand, (error, stdout, stderr) => {
                                           if (error) {
                                               console.error(`Fehler bei SSH-Aufruf: ${error.message}`);
                                               return;
                                           }
                                           if (stderr) {
                                               console.error(`SSH-Fehlermeldung: ${stderr}`);
                                               return;
                                           }
                                           
                                           // Temperaturdaten verarbeiten und in Celsius umrechnen
                                           const tempMilliC = parseInt(stdout.trim(), 10);
                                           const tempCelsius = tempMilliC / 1000; // Ergebnis in °C
                                           
                                           // Temperatur in einen Datenpunkt in ioBroker schreiben
                                           const dataPoint = 'javascript.0.raspberrypi.cpu_temperature'; // Name des Datenpunkts
                                           setState(dataPoint, tempCelsius, true);
                                       });
                                    }
                                    
                                    // Temperatur alle 5 Minuten abfragen
                                    schedule("*/5 * * * *", fetchCPUTemperature);
                                    
                                    

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Codierknecht
                                      Codierknecht Developer Most Active @Homoran last edited by

                                      @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                      nein, host ist der Rechner auf dem ioBroker läuft

                                      ??????
                                      Sein ioB läuft doch als Container auf dem NAS.

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

                                        @codierknecht sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                        @homoran sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                        nein, host ist der Rechner auf dem ioBroker läuft

                                        ??????
                                        Sein ioB läuft doch als Container auf dem NAS.

                                        Dann ist der Container(?) oder das NAS der Host.
                                        Host ist ein Rechner

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

                                          @nwh sagte in CPU-Last und Temperatur von entferntem RasPi auslesen:

                                          kann der Schlüssel-Parameter entfallen und ein Passwort kann im Befehl interaktiv eingegeben werden

                                          Du wirst wahrscheinlich keinen Schlüssel verwenden und eine interaktive Eingabe des Passworts bei jeder Abfrage(??) ist kontraproduktiv für ein Abfrageskript

                                          NWH 1 Reply Last reply Reply Quote 0
                                          • NWH
                                            NWH @Homoran last edited by

                                            @homoran
                                            Danke erstmals.
                                            Morgen schaue ich weiter....

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            762
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            raspberry pi
                                            5
                                            42
                                            1904
                                            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