NEWS
[Gelöst] 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:~#@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 /ASo bei mir
-
@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-3eingibst, bekommst du
49 /Aoder?
Da sollte aber nur
49stehen (bzw. die gerade aktuelle Temperatur.
Poste doch mal bitte was bei dir
sensorsauswirft. 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
@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} -
@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 /ASo bei mir
@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.
-
@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.
@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 auchsensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3 -
@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.
@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.shErstmal mit der Verbesserung funktioniert es auch ohne -g
Aber es ändert jz den wert auf "d" wenn ich package id 0 nehme
-
@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.shErstmal mit der Verbesserung funktioniert es auch ohne -g
Aber es ändert jz den wert auf "d" wenn ich package id 0 nehme
@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 Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.
@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!!! -
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} -
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}@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'.
-
So jetzt aber.
Wie ich vorgegangen bin:
- Unter Verzeichnis
cd /usr/local/bin/gegangen
- Mit Nano Skript angelegt
nano cpu_temp_send_iobroker.shIm 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
- Getestet mit:
bash /usr/local/bin/cpu_temp_send_iobroker.sh(Ich musste vorher noch Curl installieren)
- Crontab angelegt:
crontab -eGanz unten Zeile eingefügt:
* * * * * bash /usr/local/bin/cpu_temp_send_iobroker.shFertig, Danke an alle für sie Hilfe !!!
-
@Homoran Von dir hätte ich schon erwartet zu wissen was der curl-Befehl macht.

Aber für dich und alle anderen:
Im Proxmox-Host wird per 'sensors' die Temperatur (des NUC) ausgelesen. Weil in der Ausgabe viel mehr als nur die gewünschte Information steht, wird mit 'grep', 'awk' und 'cut' der reine Zahlenwert der aktuellen Systemtemperatur "herausgeschnitten".
Dann wird mit 'curl' der ermittelte Wert an ioBroker gesendet. Dazu braucht man natürlich die IP und den Port von ioBroker. Ob das auch per https:// funktioniert habe ich nicht getestet. Was ich zuvor noch vergessen hatte: unter ioBroker muss man den 'simpleAPI Adapter' installiert haben!
So kann man jeden Datenpunkt von "außen" setzen.
@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 -
So jetzt aber.
Wie ich vorgegangen bin:
- Unter Verzeichnis
cd /usr/local/bin/gegangen
- Mit Nano Skript angelegt
nano cpu_temp_send_iobroker.shIm 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
- Getestet mit:
bash /usr/local/bin/cpu_temp_send_iobroker.sh(Ich musste vorher noch Curl installieren)
- Crontab angelegt:
crontab -eGanz unten Zeile eingefügt:
* * * * * bash /usr/local/bin/cpu_temp_send_iobroker.shFertig, Danke an alle für sie Hilfe !!!
@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 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@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.shDas habe ich aber nicht gemacht.
Wofür ist das ? -
@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.shDas habe ich aber nicht gemacht.
Wofür ist das ?@marcuskl damit wird eine Datei unter Linux "ausführbar"
wenn Du in einem Linux-Verzeichnis den Befehlelseingibst, dann bekommst Du eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -laeingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.
Google mal nach "chmod" oder "Linux chmod"
-
@marcuskl damit wird eine Datei unter Linux "ausführbar"
wenn Du in einem Linux-Verzeichnis den Befehlelseingibst, dann bekommst Du eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -laeingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.
Google mal nach "chmod" oder "Linux chmod"
@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 Befehlelseingibst, dann bekommst Due eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -laeingibst, 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 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 Befehlelseingibst, dann bekommst Due eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -laeingibst, 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.@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. -
@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.@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.Ok danke, dass wusste ich nicht.
-
@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.Ok danke, dass wusste ich nicht.
-
@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 Befehlelseingibst, dann bekommst Due eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -laeingibst, 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.@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.
