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 goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [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 @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
                          • Dr. Bakterius
                            Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                            @marcuskl Ich habe meinen vorigen Beitrag noch ergänzt. Vielleicht probierst du auch:

                            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
                            root@proxmox:~#
                            
                            
                            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 Ich habe meinen vorigen Beitrag noch ergänzt. Vielleicht probierst du auch:

                              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
                              root@proxmox:~#
                              
                              
                              root@pve:/usr/local/bin# sensors | grep 'temp1:'
                              temp1:        +48.0°C  (crit = +100.0°C)         temp1:            N/A
                              root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}'
                              +49.0°C
                              N/A
                              root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                              49
                              /A
                              

                              So bei mir

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

                                @marcuskl sagte in CPU Temperatur von Proxmox VM:

                                curl -g

                                Ich glaube ich habe den Fehler gefunden! In der 'curl'-Zeile ist eine Klammer an der falschen Stelle. Versuch mal folgenden Code:

                                #!/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}
                                

                                Interessant, dass es bei mir trotzdem funktioniert. Bei Aufruf der Bash-Datei erhalte ich:

                                {"id":"info.0.sysinfo.cpu.temperature.main","value":51,"val":51}
                                
                                C 1 Reply Last reply Reply Quote 0
                                • Dr. Bakterius
                                  Dr. Bakterius Most Active @marcuskl last edited by

                                  @marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.

                                  liv-in-sky marcuskl 2 Replies Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @Dr. Bakterius last edited by

                                    @Dr-Bakterius

                                    @marcuskl sagte in CPU Temperatur von Proxmox VM:

                                    sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                                    wenn du 2 zeilen mit temp1 hast ginge auch

                                    sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3
                                    1 Reply Last reply Reply Quote 0
                                    • marcuskl
                                      marcuskl @Dr. Bakterius last edited by

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

                                      @marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.

                                      root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                                      {"id":"info.0.sysinfo.cpu.temperature.main","valuroot@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                                      

                                      Erstmal mit der Verbesserung funktioniert es auch ohne -g

                                      Aber es ändert jz den wert auf "d" wenn ich package id 0 nehme

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

                                        @marcuskl Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.

                                        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 Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.

                                          root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                                          {"id":"info.0.sysinfo.cpu.temperature.main","value":48,"val":48}root@pve:/usr/local/bin#
                                          

                                          Ja funktioniert.
                                          Super danke euch!!!

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

                                            Für alle nochmal das verbesserte Skript:

                                            #!/bin/bash
                                            
                                            #ioBroker-Datenpunkt
                                            DP=info.0.sysinfo.cpu.temperature.main
                                            
                                            #ioBroker-IP:Port
                                            IPP=192.168.0.195:8087 
                                            
                                            #Systemtemperatur abfragen
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            
                                            
                                            #an ioBroker senden
                                            sleep 10
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            curl http://${IPP}/set/${DP}?value=${SQL}
                                            sleep 10
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            curl http://${IPP}/set/${DP}?value=${SQL}
                                            sleep 10
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            curl http://${IPP}/set/${DP}?value=${SQL}
                                            sleep 10
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            curl http://${IPP}/set/${DP}?value=${SQL}
                                            sleep 10
                                            SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                            curl http://${IPP}/set/${DP}?value=${SQL}
                                            
                                            Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            412
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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