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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Gelöst] CPU Temperatur von Proxmox VM

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                      • marcuskl
                                        marcuskl @liv-in-sky last edited by

                                        @liv-in-sky sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                        @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
                                        

                                        Das habe ich aber nicht gemacht.
                                        Wofür ist das ?

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

                                          @marcuskl damit wird eine Datei unter Linux "ausführbar"
                                          wenn Du in einem Linux-Verzeichnis den Befehle

                                          ls
                                          

                                          eingibst, dann bekommst Du eine Liste der Dateien und Unterverzeichnisse angezeigt

                                          Wenn Du den Befehl allerdings als

                                          ls -la
                                          

                                          eingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.

                                          Google mal nach "chmod" oder "Linux chmod"

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

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

                                            @marcuskl damit wird eine Datei unter Linux "ausführbar"
                                            wenn Du in einem Linux-Verzeichnis den Befehle

                                            ls
                                            

                                            eingibst, dann bekommst Due eine Liste der Dateien und Unterverzeichnisse angezeigt

                                            Wenn Du den Befehl allerdings als

                                            ls -la
                                            

                                            eingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.

                                            Google mal nach "chmod" oder "Linux chmod"

                                            Kann des sein, dass deswegen nicht gleich der Cronjob funktioniert hat ?
                                            Ich habe jz im Cron "Bash" mit in den Cron geschrieben, dann ging es erst.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            761
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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