NEWS
[Gelöst] CPU Temperatur von Proxmox VM
-
Hallo,
ich lese die Coretemperaturen des Proxmox-Servers mittels Script aus. Dazu muss auf dem Proxmox das Paket curl sowie das Paket lm-sensors installiert werden. Die Datenpunkte müssen in iobroker angelegt sein:
Dann das Script auf den Proxmox kopieren, ausführbar machen und einen Cronjob für den User Root angelegt.
Das Script habe ich aus dem Netz, leicht abgewandelt auf meine Gegebenheiten:#!/bin/bash #ioBroker-Datenpunkt DP=javascript.0.System.Temperatur.Core_0 DP1=javascript.0.System.Temperatur.Core_1 DP2=javascript.0.System.Temperatur.Core_0_last_change DP3=javascript.0.System.Temperatur.Core_1_last_change DP4=javascript.0.System.Temperatur.Core_2 DP5=javascript.0.System.Temperatur.Core_3 DP6=javascript.0.System.Temperatur.Core_2_last_change DP7=javascript.0.System.Temperatur.Core_3_last_change DP8=javascript.0.System.Temperatur.Core_4 DP9=javascript.0.System.Temperatur.Core_5 DP10=javascript.0.System.Temperatur.Core_4_last_change DP11=javascript.0.System.Temperatur.Core_5_last_change #ioBroker-IP:Port IPP=192.168.1.100:8087 for((c=1; c<=5; c++)) do sleep 10 SQL=$(sensors | grep 'Core 0:' | awk '{print $3}' | cut -c2-3) d0=`date +%Y-%m-%d@%H:%M` SQL1=$(sensors | grep 'Core 1:' | awk '{print $3}' | cut -c2-3) d1=`date +%Y-%m-%d@%H:%M` SQL2=$(sensors | grep 'Core 2:' | awk '{print $3}' | cut -c2-3) d2=`date +%Y-%m-%d@%H:%M` SQL3=$(sensors | grep 'Core 3:' | awk '{print $3}' | cut -c2-3) d3=`date +%Y-%m-%d@%H:%M` SQL4=$(sensors | grep 'Core 4:' | awk '{print $3}' | cut -c2-3) d4=`date +%Y-%m-%d@%H:%M` SQL5=$(sensors | grep 'Core 5:' | awk '{print $3}' | cut -c2-3) d5=`date +%Y-%m-%d@%H:%M` #an ioBroker senden curl http://${IPP}/set/${DP}?value={$SQL} curl http://${IPP}/set/${DP2}?value={$d0} curl http://${IPP}/set/${DP1}?value={$SQL1} curl http://${IPP}/set/${DP3}?value={$d1} curl http://${IPP}/set/${DP4}?value={$SQL2} curl http://${IPP}/set/${DP6}?value={$d2} curl http://${IPP}/set/${DP5}?value={$SQL3} curl http://${IPP}/set/${DP7}?value={$d3} curl http://${IPP}/set/${DP8}?value={$SQL4} curl http://${IPP}/set/${DP10}?value={$d4} curl http://${IPP}/set/${DP9}?value={$SQL5} curl http://${IPP}/set/${DP11}?value={$d5} done
Funktioniert bei mir ohne Probleme, Daten werden in Flot geloggt, und auch auf der VIS angezeigt:
Cronjob:
Diagramm:
-
@marcuskl
Ich habe das nun exakt (nur um meine iobroker-IP und meinen Scriptnamen verändert) wie bei dir hier nachgebaut, habe allerdings das Problem, das bei mir "Connection refused":
curl: (7) Failed to connect to 192.168.178.21 port 8087: Connection refusedangezeigt wird wenn ich das Script mit
bash /usr/local/bin/CPUTemp.sh teste- Simple API installiert und auf Port 8087 eingestellt.
- Datenpunkt unter "Objekte" für das Schreiben freigegeben
Jemand einen Hinweis woran es liegen könnte?
-
@henning-hi & @opossum warum nutzt Ihr nicht einfach den ProxMox Adapter? Der liefert das ohne Aufwand direkt...
-
@ahnungsbefreit
Läuft in einer VM auf Nuc in Proxmox.
Habe den Fehler aber gerade gefunden, hatte nicht die IP von ioBroker eingestellt, sondern vom Proxmox-Host -
@henning-hi Ah sorry,Ihr habt natürlich Recht, die CPU Temperatur liefert der Proxmox Adapter nicht, nur CPU Auslastung, memory etc
-
Hallo zusammen,
ich hab lm-seonsors installiert und erhalte auch eine Gradzahl:root@proxmox:~# sensors | grep Package -m 1 | awk '{print $4}' +56.0°C
allerdings im DP vom ioBroker hb ich nen Sonderzeichen drin nun:
56.0°C
die Ausgabe bei Seonsors sieht wie folgt aus:
root@proxmox:~# sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C (crit = +105.0°C) temp2: +29.8°C (crit = +105.0°C) coretemp-isa-0000 Adapter: ISA adapter Package id 0: +55.0°C (high = +100.0°C, crit = +100.0°C) Core 0: +55.0°C (high = +100.0°C, crit = +100.0°C) Core 1: +54.0°C (high = +100.0°C, crit = +100.0°C)
Was muss ich ändern, damit ich ne Zahl erhalte ohne Sonderzeichen im ioBroker-state?
Danke euch und vG, Thorsten
-
@kueppert sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Was muss ich ändern, damit ich ne Zahl erhalte ohne Sonderzeichen im ioBroker-state?
ich habe diesen Befehl
sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($0)-6,2)}'
-
@crunchip sagte in [Gelöst] CPU Temperatur von Proxmox VM:
sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($0)-6,2)}'
super, das wars thx
-
hi,
ich bekomme jede Minute 2 eMails von Proxmox, wie kann man das unterbinden?Thx
MOD-Edit: Code in code-tags und spoiler gesetzt! -
@thomas-18147 sagte in [Gelöst] CPU Temperatur von Proxmox VM:
wie kann man das unterbinden?
Rufe das Skript mit einem
> /dev/null 2>&1
am Ende auf. Also/usr/local/bin/cpu_temp_send_iobroker.sh > /dev/null 2>&1
. -
@dr-bakterius
dann hängt sich die Shell auf und eMails kommen weiterhin.
Mit welchem Befehl kann ich den laufenden Prozess stoppen?
Danke
-
@thomas-18147 Wie sieht denn das Skript aus?
-
-
@thomas-18147 Du bekommst die Mails wenn du das Skipt in der Shell aufrufst und/oder wenn es über cron gestartet wird? Sollte eigentlich nur bei cron passieren und mit der oben erwähnten Erweiterung abgestellt werden. Bei direktem Aufruf sollte es keine Wirkung haben (weil ja auch keine Mails versendet werden sollten).
-
@dr-bakterius
Ich hab das Skript einmal über die Shell gestartet und bis jetzt läuft es noch. Die Werte werden zuverlässig genesendet. Wie kann das Skript gestoppt werden?bash /usr/local/bin/cpu_temp_send_iobroker.sh
Und ein Crone Job wurde noch angelegt.
* * * * * bash /usr/local/bin/cpu_temp_send_iobroker.sh
-
@thomas-18147 sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Und ein Crone Job wurde noch angelegt.
Und da sollte stehen:
* * * * * bash /usr/local/bin/cpu_temp_send_iobroker.sh >/dev/null 2>&1
,wie @Dr-Bakterius schrieb
-
Vielen Dank, es kommen keine eMails mehr!
-
@thomas-18147
Dann ist dieser thread ja offenbar wirklich [Gelöst] -
@thomas-18147 sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Vielen Dank, es kommen keine eMails mehr!
Schwere Geburt...
-
Das Script funktioniert wunderbar, auch der State lässt sich setzten. Aber bekommt ihr im Log auch diesen Fehler?
Read-only state "info.0.sysinfo.cpu.temperature.main" has been written without ack-flag with value "39"