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 @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
                              • M
                                martinschm last edited by

                                @TeNNo2k5 said 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°C/'

                                Hi,

                                hab bei mir unter der Proxmox VE lmsensors installiert. Wenn ich den Befehl auf der Shell in iobroker ausführe bekomme ich

                                acpitz        49.0°C
                                iwlwifi       50.0°C
                                x86_pkg_temp  48.0°C
                                

                                Auf der Proxmox VE wenn ich sensors aufrufe kommt

                                coretemp-isa-0000
                                Adapter: ISA adapter
                                Package id 0:  +48.0°C  (high = +105.0°C, crit = +105.0°C)
                                Core 0:        +48.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-acpi-0
                                Adapter: ACPI interface
                                temp1:        +49.0°C  (crit = +100.0°C)
                                
                                iwlwifi-virtual-0
                                Adapter: Virtual device
                                temp1:        +50.0°C
                                

                                Passt also. Vielen Dank.

                                Wie verarbeitest du die Werte dann weiter, wenn du den Befehl per Blockly ausgeführt hast ?

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

                                  Ich lasse den Wert einmal pro Minute in einen Datenpunkt schreiben, Änderungen werden per SQL Adapter aufgezeichnet (History geht genauso) und als letzte Spielerei werden via Grafana daraus bunte Diagramme erzeugt 😁

                                  cputemp.PNG

                                  cputempGraf.PNG

                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                    <variables>
                                      <variable type="undefined" id="schedule">schedule</variable>
                                      <variable type="" id="wE[v=vc50${rU3ekzIi2">error</variable>
                                      <variable type="" id="b,qov7h6f=6:IJp(0J1*">result</variable>
                                    </variables>
                                    <block type="create" id="DMP?Qpyuf`CO!~je[(xC" x="-437" y="88">
                                      <field name="NAME">CpuTemp</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="(uiUN}@3JGVOpjsN_JaU">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                      <statement name="STATEMENT">
                                        <block type="schedule_create" id="Oy[c$./2HV.XXoFa;!fI">
                                          <field name="NAME">schedule</field>
                                          <value name="SCHEDULE">
                                            <shadow type="field_cron" id="kkT)xZ2O4|7z;AO5:..A">
                                              <field name="CRON">* * * * *</field>
                                            </shadow>
                                          </value>
                                          <statement name="STATEMENT">
                                            <block type="exec" id="mrqBs..fusm}-O:*((HY">
                                              <mutation with_statement="true"></mutation>
                                              <field name="WITH_STATEMENT">TRUE</field>
                                              <field name="LOG"></field>
                                              <value name="COMMAND">
                                                <shadow type="text" id="#9FNJ?:CgTyNZ)rk3UoG">
                                                  <field name="TEXT"></field>
                                                </shadow>
                                                <block type="text" id="QVsV;ybhSd6K:;+`Udt5">
                                                  <field name="TEXT">/home/iobroker/CpuTemp.sh</field>
                                                </block>
                                              </value>
                                              <statement name="STATEMENT">
                                                <block type="debug" id="P~R{p[+r52G*?6bd8$,0" disabled="true">
                                                  <field name="Severity">log</field>
                                                  <value name="TEXT">
                                                    <shadow type="text" id="ID0]fZg?7VmMu}}^v{uH">
                                                      <field name="TEXT">test</field>
                                                    </shadow>
                                                    <block type="variables_get" id="H?IydK_(km26-i=)#@G5">
                                                      <field name="VAR" id="b,qov7h6f=6:IJp(0J1*" variabletype="">result</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="update" id="o^OjBm[K5za=V1O77Dn?">
                                                      <mutation delay_input="false"></mutation>
                                                      <field name="OID">javascript.0.CpuTemp</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="convert_tonumber" id="5xC]QAX9`RmF!X[1,lX[">
                                                          <value name="VALUE">
                                                            <block type="variables_get" id="7+yjT7lNyzIZBF$*]UsA">
                                                              <field name="VAR" id="b,qov7h6f=6:IJp(0J1*" variabletype="">result</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </statement>
                                        </block>
                                      </statement>
                                    </block>
                                    <block type="debug" id="nDlJ$tL0aEOC1%G-u#t(" x="95" y="1063">
                                      <field name="Severity">error</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="rx`G3b(6lx|%dng}iq2C">
                                          <field name="TEXT">test</field>
                                        </shadow>
                                        <block type="variables_get" id="UC@}=b[L!4nQJQ,|P}6S">
                                          <field name="VAR" id="wE[v=vc50${rU3ekzIi2" variabletype="">error</field>
                                        </block>
                                      </value>
                                    </block>
                                    <block type="debug" id="rA9Uy6:=qxtVzLx8(QvS" x="-280" y="1088">
                                      <field name="Severity">log</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="f)!0U@B:Zf}*^oHOt*mb">
                                          <field name="TEXT">test</field>
                                        </shadow>
                                        <block type="variables_get" id="I!v]d,`EI36^,|8ryqom">
                                          <field name="VAR" id="b,qov7h6f=6:IJp(0J1*" variabletype="">result</field>
                                        </block>
                                      </value>
                                    </block>
                                    <block type="debug" id="i~bO.RuBtWOLutUY1p*J" x="-252" y="1144">
                                      <field name="Severity">log</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="f)!0U@B:Zf}*^oHOt*mb">
                                          <field name="TEXT">test</field>
                                        </shadow>
                                        <block type="variables_get" id="?IiC5BipePg(P-1tj0-W">
                                          <field name="VAR" id="b,qov7h6f=6:IJp(0J1*" variabletype="">result</field>
                                        </block>
                                      </value>
                                    </block>
                                  </xml>
                                  
                                  1 Reply Last reply Reply Quote 1
                                  • M
                                    martinschm last edited by

                                    Sehr cool. Hab übersehen, das du beim ersten Codeschnipsel nur eine Temperatur bekommst. Die kannst du natürlich direkt weiterverarbeiten. Bei dem Code den ich ausgeführt hab, werden ja drei Temperaturen ausgegeben.

                                    1 Reply Last reply Reply Quote 1
                                    • M
                                      martinschm last edited by

                                      Muss man den Code eigentlich in ein Skript (.sh) packen oder kann iobroker den Befehl direkt ausführen?

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

                                        Bekommt man auch andere Daten wie Prozessorlast (load) raus?

                                        crunchip 1 Reply Last reply Reply Quote 0
                                        • crunchip
                                          crunchip Forum Testing Most Active @martinschm last edited by crunchip

                                          @martinschm ich habe z.b. Prometheus im Zusammenspiel mit Grafana und InfluxDB laufen. Somit habe ich sämtliche Servermetriken, falls du nach "mehr" suchst.
                                          Sieht dann so z.b. aus
                                          Screenshot_20191022-184101_ioBrokervis.jpg
                                          Hier der Link
                                          https://prometheus.io/docs/guides/node-exporter/

                                          M B 2 Replies Last reply Reply Quote 0
                                          • M
                                            martinschm @crunchip last edited by

                                            @crunchip said in [Gelöst] CPU Temperatur von Proxmox VM:

                                            @martinschm ich habe z.b. Prometheus im Zusammenspiel mit Grafana und InfluxDB laufen. Somit habe ich sämtliche Servermetriken, falls du nach "mehr" suchst.
                                            Sieht dann so z.b. aus
                                            Screenshot_20191022-184101_ioBrokervis.jpg
                                            Hier der Link
                                            https://prometheus.io/docs/guides/node-exporter/

                                            Das sieht ja schonmal nett aus. 🙂
                                            Nur wie komme ich an die Werte ran?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            849
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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