Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] CPU Temperatur von Proxmox VM

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] CPU Temperatur von Proxmox VM

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dr. Bakterius
      Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

      @marcuskl Was passiert denn wenn du den Curl-Befehl direkt eingibst? Also z.B.:

      curl http://192.168.1.10:8082/set/info.0.sysinfo.cpu.temperature.main?value=99
      

      (Die IP und den Datenpunkt natürlich für dich anpassen.)

      Ist curl bei dir überhaupt installiert?

      Was passiert bei Eingabe von:

      sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
      

      Und poste doch mal dein Skript.

      lobomau marcuskl 2 Replies Last reply Reply Quote 0
      • lobomau
        lobomau @Dr. Bakterius last edited by

        @Dr-Bakterius ich probiere auch gerade den curl Befehl aus. Welche IP und welchen Port muss ich da nehmen? IP wo proxmox läuft, nehme ich an. Aber welcher port?

        Dr. Bakterius 1 Reply Last reply Reply Quote 0
        • Dr. Bakterius
          Dr. Bakterius Most Active @lobomau last edited by

          @lobomau Nein, die IP und den Port von ioBroker.

          lobomau Homoran 2 Replies Last reply Reply Quote 0
          • lobomau
            lobomau @Dr. Bakterius last edited by lobomau

            @Dr-Bakterius ok. Aber welcher port? bei mir geht über 8082 web.0, 8081 ist admin.
            Bei beiden kommt die Antwort: curl: (52) Empty reply from server

            Edit: liegt wohl daran, dass bei mir 8081 und 8082 über https läuft.
            Habe 8083 getestet, wo web.1 über http läuft. Dann kommt:

            File info.0.sysinfo.cpu.temperature.main not found: Not existsiobroker@iobroker:~$

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @Dr. Bakterius last edited by

              @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

              die IP und den Port von ioBroker.

              Das ergibt doch keinen Sinn!?

              Das ist doch eine VM, die hat keine Temp-sensoren

              lobomau Dr. Bakterius 2 Replies Last reply Reply Quote 0
              • lobomau
                lobomau @Homoran last edited by lobomau

                @Homoran ja, wahrscheinlich ist es das 🙂 Unter Objekte info.0.sysinfo.cpu.temperature: alles leer
                Andererseits sind die anderen Werte richtig gefüllt, wie CPU speed, Anzahl cores

                Dr. Bakterius 1 Reply Last reply Reply Quote 0
                • S
                  steimi @integer63 last edited by

                  @integer63 kannst du mir genauer sagen, was ich auf Proxmox einrichten muss und was auf der ioBroker-VM? Muss ich im iobroker zusätzlich zum SNMP-Adapter noch den SNMP-Client im Debian installieren/konfigurieren?

                  1 Reply Last reply Reply Quote 0
                  • marcuskl
                    marcuskl @Dr. Bakterius last edited by

                    @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                    @marcuskl Was passiert denn wenn du den Curl-Befehl direkt eingibst? Also z.B.:

                    curl http://192.168.1.10:8082/set/info.0.sysinfo.cpu.temperature.main?value=99
                    

                    (Die IP und den Datenpunkt natürlich für dich anpassen.)

                    Ist curl bei dir überhaupt installiert?

                    Was passiert bei Eingabe von:

                    sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                    

                    Und poste doch mal dein Skript.

                    Beim ersten befehl kommt fehler und der 2 funktioniert.
                    Hier die Ausgabe:

                    root@pve:~# curl http://192.168.0.195:8081/set/info.0.sysinfo.cpu.temperature.main?value=99
                    <!DOCTYPE html>
                    <html lang="en">
                    <head>
                    <meta charset="utf-8">
                    <title>Error</title>
                    </head>
                    <body>
                    <pre>Cannot GET /set/info.0.sysinfo.cpu.temperature.main</pre>
                    </body>
                    </html>
                    root@pve:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                    49
                    /A
                    root@pve:~#
                    

                    Mein Skript sieht so aus:

                    #!/bin/bash
                    
                    #ioBroker-Datenpunkt
                    DP=info.0.sysinfo.cpu.temperature.main #Name des Datenpunktes
                    
                    #ioBroker-IP:Port
                    IPP=192.168.0.195:8081 #Ziel-IP von ioBroker
                    
                    #Systemtemperatur abfragen
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    
                    #an ioBroker senden
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    
                    #alle 10 Sekunden den aktuellen Wert übertragen:
                    
                    sleep 10
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    sleep 10
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    sleep 10
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    sleep 10
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    sleep 10
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    curl http://${IPP}/set/${DP}?value={$SQL}
                    
                    
                    Dr. Bakterius 1 Reply Last reply Reply Quote 0
                    • Dr. Bakterius
                      Dr. Bakterius Most Active @Homoran last edited by

                      @Homoran Von dir hätte ich schon erwartet zu wissen was der curl-Befehl macht. 😇

                      Aber für dich und alle anderen:

                      Im Proxmox-Host wird per 'sensors' die Temperatur (des NUC) ausgelesen. Weil in der Ausgabe viel mehr als nur die gewünschte Information steht, wird mit 'grep', 'awk' und 'cut' der reine Zahlenwert der aktuellen Systemtemperatur "herausgeschnitten".

                      Dann wird mit 'curl' der ermittelte Wert an ioBroker gesendet. Dazu braucht man natürlich die IP und den Port von ioBroker. Ob das auch per https:// funktioniert habe ich nicht getestet. Was ich zuvor noch vergessen hatte: unter ioBroker muss man den 'simpleAPI Adapter' installiert haben!

                      So kann man jeden Datenpunkt von "außen" setzen.

                      lobomau Homoran 2 Replies Last reply Reply Quote 0
                      • Dr. Bakterius
                        Dr. Bakterius Most Active @lobomau last edited by

                        @lobomau sagte in CPU Temperatur von Proxmox VM:

                        Andererseits sind die anderen Werte richtig gefüllt, wie CPU speed, Anzahl cores

                        Ja, aber das sind die Werte aus der virtuellen Maschine! Wenn man die des Hosts haben möchte, kann man den 'Proxmox'-Adapter verwenden. Bei dem sind aber leider auch keine Systemtemperaturen dabei.

                        1 Reply Last reply Reply Quote 0
                        • lobomau
                          lobomau @Dr. Bakterius last edited by

                          @Dr-Bakterius also muss man auch den port auf den simpleAPI hört nehmen? Der ist bei mir 8087. Aber wie gesagt bei mir ist das Objekt eh leer wo temperature sein sollte.

                          Dr. Bakterius 1 Reply Last reply Reply Quote 0
                          • Dr. Bakterius
                            Dr. Bakterius Most Active @marcuskl last edited by

                            @marcuskl Okay, sieht ja schon mal gut aus auf der Proxmox-Seite. Was ich noch vergessen hatte: ist in ioBroker der 'simpleAPI Adapter' installiert?

                            marcuskl 1 Reply Last reply Reply Quote 0
                            • marcuskl
                              marcuskl @Dr. Bakterius last edited by

                              @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                              @marcuskl Okay, sieht ja schon mal gut aus auf der Proxmox-Seite. Was ich noch vergessen hatte: ist in ioBroker der 'simpleAPI Adapter' installiert?

                              Ok über den Port vom Simple Api Adapter funktioniert der curl befehl.
                              Hatte de Adapter schon installiert.
                              Ich habe das Skript auch angepasst, aber es funktioniert immernoch nicht.

                              root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                              curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                              ^Pcurl: (3) [globbing] unmatched brace in column 73
                              curl: (3) [globbing] unmatched close brace/bracket in column 3
                              curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                              curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                              curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                              curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                              root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                              
                              Dr. Bakterius 1 Reply Last reply Reply Quote 0
                              • Dr. Bakterius
                                Dr. Bakterius Most Active @lobomau last edited by

                                @lobomau Hm, bei mir ist der Port der gleiche wie der wo ich den Startscreen von ioBroker finde - der Standard-Port 8082. Dass der Datenpunkt leer ist, ist klar - schließlich kann der info-Adapter keine Werte ermitteln. Du kannst auch selbst einen Datenpunkt unter 'javascript.0' anlegen und den Temperaturwert dorthin schreiben.

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

                                  Der curl Befehl funktioniert bei mir mit dem simpleAPI port. Damit habe ich den Wert auf 99 gestellt.

                                  Das Problem ist der zweite Befehl mit

                                  sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                                  

                                  ->

                                  Command 'sensors' not found, but can be installed with:
                                  
                                  

                                  sudo apt install lm-sensors

                                  
                                  
                                  Installation schlägt fehl:
                                  
                                  
                                  

                                  iobroker@iobroker:~$ sudo apt install lm-sensors
                                  Paketlisten werden gelesen... Fertig
                                  Abhängigkeitsbaum wird aufgebaut.
                                  Statusinformationen werden eingelesen.... Fertig
                                  Paket lm-sensors ist nicht verfügbar, wird aber von einem anderen Paket
                                  referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
                                  wurde oder nur aus einer anderen Quelle verfügbar ist.

                                  E: Für Paket »lm-sensors« existiert kein Installationskandidat.

                                  Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                  • Dr. Bakterius
                                    Dr. Bakterius Most Active @marcuskl last edited by

                                    @marcuskl Probier doch bitte mal folgendes Skript:

                                    #!/bin/bash
                                    
                                    #ioBroker-Datenpunkt
                                    DP=info.0.sysinfo.cpu.temperature.main
                                    
                                    #ioBroker-IP:Port
                                    IPP=192.168.0.195:8081
                                    
                                    #Systemtemperatur abfragen
                                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                                    
                                    #an ioBroker senden
                                    curl http://${IPP}/set/${DP}?value={$SQL}
                                    

                                    Das ist jetzt kürzer und sollte nur einmal den Wert übermitteln. Ich habe ein paar Anmerkungen hinter den Befehlen entfernt - vielleicht liegt es daran? Wenn das klappt, kannst du ja die Wiederholungen hinzufügen.

                                    marcuskl 1 Reply Last reply Reply Quote 0
                                    • Dr. Bakterius
                                      Dr. Bakterius Most Active @lobomau last edited by

                                      @lobomau Vorher mal

                                      apt-get update
                                      

                                      gemacht? Ich habe unter 'root' dann mit

                                      apt-get install lm-sensors
                                      

                                      das Paket installiert bekommen.

                                      1 Reply Last reply Reply Quote 1
                                      • marcuskl
                                        marcuskl @Dr. Bakterius last edited by

                                        @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                                        @marcuskl Probier doch bitte mal folgendes Skript:

                                        #!/bin/bash
                                        
                                        #ioBroker-Datenpunkt
                                        DP=info.0.sysinfo.cpu.temperature.main
                                        
                                        #ioBroker-IP:Port
                                        IPP=192.168.0.195:8081
                                        
                                        #Systemtemperatur abfragen
                                        SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                                        
                                        #an ioBroker senden
                                        curl http://${IPP}/set/${DP}?value={$SQL}
                                        

                                        Das ist jetzt kürzer und sollte nur einmal den Wert übermitteln. Ich habe ein paar Anmerkungen hinter den Befehlen entfernt - vielleicht liegt es daran? Wenn das klappt, kannst du ja die Wiederholungen hinzufügen.

                                        Immernoch

                                        
                                        Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
                                        permitted by applicable law.
                                        Last login: Thu Jul  4 21:47:43 2019 from 192.168.0.28
                                        root@pve:~# cd /usr/local/bin
                                        root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                                        curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
                                        root@pve:/usr/local/bin#
                                        

                                        Stimmt vllt der Pfad nicht ? Oder muss ich was noch Installieren ?
                                        Was heißt der Fehler überhaupt?

                                        Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                        • Dr. Bakterius
                                          Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                                          @marcuskl Ich glaube, dass bei dir der Temperaturwert nicht richtig beschnitten wird. Wenn du

                                          sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                                          

                                          eingibst, bekommst du

                                          49
                                          /A
                                          

                                          oder?

                                          Da sollte aber nur

                                          49
                                          

                                          stehen (bzw. die gerade aktuelle Temperatur.

                                          Poste doch mal bitte was bei dir

                                          sensors
                                          

                                          auswirft. Dann kann man sich herantasten. 😉

                                          Bei mir steht dann:

                                          acpitz-virtual-0
                                          Adapter: Virtual device
                                          temp1:        +54.0°C  (crit = +100.0°C)
                                          
                                          coretemp-isa-0000
                                          Adapter: ISA adapter
                                          Package id 0:  +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                          Core 0:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                          Core 1:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                          Core 2:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
                                          Core 3:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
                                          

                                          Und die ersten 54 in der Zeile 'temp1:' will ich haben. Wenn das bei dir anders aussieht, muss man die folgenden Befehle anpassen.

                                          Wenn ich das Schritt für Schritt ausführe sieht das z.B. so aus:

                                          root@proxmox:~# sensors | grep 'temp1:'
                                          temp1:        +51.0°C  (crit = +100.0°C)
                                          root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}'
                                          +52.0°C
                                          root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                                          51
                                          
                                          
                                          marcuskl 1 Reply Last reply Reply Quote 1
                                          • marcuskl
                                            marcuskl @Dr. Bakterius last edited by

                                            @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                                            @marcuskl Ich glaube, dass bei dir der Temperaturwert nicht richtig beschnitten wird. Wenn du

                                            sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                                            

                                            eingibst, bekommst du

                                            49
                                            /A
                                            

                                            oder?

                                            Da sollte aber nur

                                            49
                                            

                                            stehen (bzw. die gerade aktuelle Temperatur.

                                            Poste doch mal bitte was bei dir

                                            sensors
                                            

                                            auswirft. Dann kann man sich herantasten. 😉

                                            Bei mir steht dann:

                                            acpitz-virtual-0
                                            Adapter: Virtual device
                                            temp1:        +54.0°C  (crit = +100.0°C)
                                            
                                            coretemp-isa-0000
                                            Adapter: ISA adapter
                                            Package id 0:  +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 0:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 1:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 2:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 3:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
                                            

                                            Und die ersten 54 in der Zeile 'temp1:' will ich haben. Wenn das bei dir anders aussieht, muss man die folgenden Befehle anpassen.

                                            Ich habe jz mal curl -g probiert, da gibg es, aber hat es falsch eingesetzt mit einer Klammer davor.

                                            root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                                            {"id":"info.0.sysinfo.cpu.temperature.main","value":"{49","val":"{49"}curl: (3) <url> malformed
                                            root@pve:/usr/local/bin# sensors
                                            coretemp-isa-0000
                                            Adapter: ISA adapter
                                            Package id 0:  +49.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 0:        +49.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 1:        +48.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 2:        +47.0°C  (high = +105.0°C, crit = +105.0°C)
                                            Core 3:        +47.0°C  (high = +105.0°C, crit = +105.0°C)
                                            
                                            acpitz-virtual-0
                                            Adapter: Virtual device
                                            temp1:        +50.0°C  (crit = +100.0°C)
                                            
                                            iwlwifi-virtual-0
                                            Adapter: Virtual device
                                            temp1:            N/A
                                            
                                            root@pve:/usr/local/bin#
                                            

                                            Hier noch die Daten von den Sensoren

                                            Dr. Bakterius 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            958
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript monitoring
                                            31
                                            129
                                            20228
                                            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