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

                                    @marcuskl Freut mich! Dann markiere den Thread bitte noch als "gelöst".

                                    Und noch was: Du hast den ersten 'curl'-Befehl vergessen. Also direkt vor 'sleep 10'.

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

                                      Der Cronjob will aber nicht laufen

                                      Habe einfach bei

                                      Crontab -e

                                      */1 * * * * /usr/local/bin/cpu_temp_send_iobroker.sh

                                      Eingefügt, aber macht nichts.
                                      Vergesse ich irgentwas ?

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

                                        So jetzt aber.

                                        Wie ich vorgegangen bin:

                                        1. Unter Verzeichnis
                                        cd /usr/local/bin/ 
                                        

                                        gegangen

                                        1. Mit Nano Skript angelegt
                                        nano cpu_temp_send_iobroker.sh
                                        

                                        Im Editor folgenden Skript eingefügt:

                                        #!/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
                                        curl http://${IPP}/set/${DP}?value={$SQL} 
                                        
                                        #Sendet alle 10 Sekunden an iobroker 
                                        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}
                                        

                                        Strg+X gespeichert.
                                        (Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)

                                        Datenpunkt vom Info Adapter zum Schreiben freigegeben

                                        1. Getestet mit:
                                        bash /usr/local/bin/cpu_temp_send_iobroker.sh
                                        

                                        (Ich musste vorher noch Curl installieren)

                                        1. Crontab angelegt:
                                        crontab -e
                                        

                                        Ganz unten Zeile eingefügt:

                                        * * * * * bash /usr/local/bin/cpu_temp_send_iobroker.sh
                                        

                                        Fertig, Danke an alle für sie Hilfe !!!

                                        liv-in-sky Henning Hi 2 Replies Last reply Reply Quote 1
                                        • Homoran
                                          Homoran Global Moderator Administrators @Dr. Bakterius last edited by

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

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

                                          So kann man sich täuschen.
                                          Auch wenn man es nicht merkt (Danke dafür!) , ich bin der Quoten-Noob im Team

                                          1 Reply Last reply Reply Quote 1
                                          • liv-in-sky
                                            liv-in-sky @marcuskl last edited by

                                            @marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                            Strg+X gespeichert.
                                            (Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)

                                            du hast noch das ausführbar machen für das script vergessen

                                            chmod +x cpu_temp_send_iobroker.sh
                                            
                                            marcuskl 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            457
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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