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

    • 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] CPU-Last & Temperatur von entferntem RasPi auslesen

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

      @nwh Da haben sich unsere Posts überschnitten.

      Das wird nicht so einfach per script aus dem Container zu lösen sein.
      Du musst ja Zugriff auf den anderen Raspi bekommen

      aber ggf. anders herum.
      Vom Raspi per simple API auf den Container zugreifen.

      Hab aber keine Ahnung wie!

      NWH Codierknecht 2 Replies Last reply Reply Quote 0
      • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            905
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

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