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.
    • 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
                        • BBTown
                          BBTown @marcuskl last edited by BBTown

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

                          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.

                          Schau mal hier
                          f235e59a-ce4f-4605-8191-378e5b0512ba-grafik.png

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

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

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

                            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.

                            Schau mal hier
                            f235e59a-ce4f-4605-8191-378e5b0512ba-grafik.png

                            Ok danke, dass wusste ich nicht.

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

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

                              Ok danke, dass wusste ich nicht.

                              Das ist ja auch nicht schlimm, dafür ist ja ein Forum da 😉

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

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

                                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.

                                Richtig, entweder das Skript mit Bash aufrufen oder direkt ausführbar machen. Führt beides ans Ziel.

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

                                  Ich habe mir jetzt noch ein Datenpunkt hinzugefügt, das mir die letzte Aktualisierung (Datum und Uhrzeit) anzeigt., damit ich weiß das die Werte Up to Date sind.
                                  Hier das Skript

                                  #!/bin/bash
                                  
                                  #ioBroker-Datenpunkt temperatur
                                  DP=info.0.sysinfo.cpu.temperature.main
                                  
                                  #ioBroker Datenpunkt Zeit
                                  DP1=info.0.sysinfo.cpu.temperature.last_change
                                  
                                  #ioBroker-IP:Port
                                  IPP=192.168.0.195:8087 
                                  
                                  #Systemtemperatur abfragen
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  
                                  #Zeit abfragen
                                  d=`date +%Y-%m-%d@%H:%M`
                                  
                                  
                                  #an ioBroker senden
                                  curl http://${IPP}/set/${DP}?value={$SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  
                                  
                                  #alle 10 sek senden
                                  sleep 10
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  d=`date +%Y-%m-%d@%H:%M`
                                  curl http://${IPP}/set/${DP}?value=${SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  sleep 10
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  d=`date +%Y-%m-%d@%H:%M`
                                  curl http://${IPP}/set/${DP}?value=${SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  sleep 10
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  d=`date +%Y-%m-%d@%H:%M`
                                  curl http://${IPP}/set/${DP}?value=${SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  sleep 10
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  d=`date +%Y-%m-%d@%H:%M`
                                  curl http://${IPP}/set/${DP}?value=${SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  sleep 10
                                  SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                  d=`date +%Y-%m-%d@%H:%M`
                                  curl http://${IPP}/set/${DP}?value=${SQL}
                                  curl http://${IPP}/set/${DP1}?value={$d}
                                  
                                  
                                  1 Reply Last reply Reply Quote 1
                                  • TeNNo2k5
                                    TeNNo2k5 last edited by

                                    Ich bin vor kurzem auf die gleiche Idee gekommen und habe es etwas simpler gelöst, ich poste es mal als alternative Lösung da es vielleicht der ein oder andere brauchen kann.

                                    Per Bashscript führe ich folgenden Befehl 1x pro Minute per Blockly Script aus:

                                    paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) \
                                    | column -s $'\t' -t | sed 's/\(.\)..$/.\1/' | grep x86_pkg_temp | cut -d " " -f3
                                    

                                    Ausgegeben wird nur der CPU Temperatur Wert vom Host also nicht die Werte der einzelnen Cores, dafür funktioniert der Code ootb, es müssen keine Abhängigkeiten oder Adapter installiert werden.

                                    Der code kann entweder direkt auf dem Proxmox Host, oder innerhalb einer VM/LXC ausgeführt werden, ich führe es auf dem Container vom iobroker aus.

                                    siggi85 M 2 Replies Last reply Reply Quote 1
                                    • Dr. Bakterius
                                      Dr. Bakterius Most Active last edited by

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

                                      paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp)
                                      | column -s $'\t' -t | sed 's/(.)..$/.\1/' | grep x86_pkg_temp | cut -d " " -f3

                                      In der VM klappt das bei mir nicht (gibt keine Verzeichnisse 'thermal_zone*'). Im Host funktioniert es aber. Man sieht: viele Wege führen nach Rom. Danke für den Tipp...

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

                                        @Dr-Bakterius sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                        gibt keine Verzeichnisse 'thermal_zone*

                                        Das ist das Problem!

                                        wenn es die gäbe würde auch der rpi2 Daten bekommen

                                        1 Reply Last reply Reply Quote 0
                                        • siggi85
                                          siggi85 @TeNNo2k5 last edited by

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

                                          Ich bin vor kurzem auf die gleiche Idee gekommen und habe es etwas simpler gelöst, ich poste es mal als alternative Lösung da es vielleicht der ein oder andere brauchen kann.

                                          Per Bashscript führe ich folgenden Befehl 1x pro Minute per Blockly Script aus:

                                          paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) \
                                          | column -s $'\t' -t | sed 's/\(.\)..$/.\1/' | grep x86_pkg_temp | cut -d " " -f3
                                          

                                          Ausgegeben wird nur der CPU Temperatur Wert vom Host also nicht die Werte der einzelnen Cores, dafür funktioniert der Code ootb, es müssen keine Abhängigkeiten oder Adapter installiert werden.

                                          Der code kann entweder direkt auf dem Proxmox Host, oder innerhalb einer VM/LXC ausgeführt werden, ich führe es auf dem Container vom iobroker aus.

                                          Muss dafür auch vorher was installiert werden?! Bei mir ist der Wert leer. 🤔

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

                                            Muss eigentlich nichts installiert werden, habe es aber nur unter Ubuntu und Proxmox (Debian) gestestet.

                                            Probiere mal folgenden Befehl:

                                            paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t | sed 's/\(.\)..$/.\1°C/'
                                            

                                            Dies liefert eventuell mehr Temperatur Sensor Daten, da ich ja im ersten Code Schnipssel nur nach "x86_pkg_temp" gefiltertet habe.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            927
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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