NEWS
[Gelöst] CPU Temperatur von Proxmox VM
- 
					
					
					
					
 Der curl Befehl funktioniert bei mir mit dem simpleAPI port. Damit habe ich den Wert auf 99 gestellt. Das Problem ist der zweite Befehl mit sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3-> Command 'sensors' not found, but can be installed with:sudo apt install lm-sensors Installation schlägt fehl:iobroker@iobroker:~$ sudo apt install lm-sensors 
 Paketlisten werden gelesen... Fertig
 Abhängigkeitsbaum wird aufgebaut.
 Statusinformationen werden eingelesen.... Fertig
 Paket lm-sensors ist nicht verfügbar, wird aber von einem anderen Paket
 referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
 wurde oder nur aus einer anderen Quelle verfügbar ist.E: Für Paket »lm-sensors« existiert kein Installationskandidat. 
- 
					
					
					
					
 @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. 
- 
					
					
					
					
 @lobomau Vorher mal apt-get updategemacht? Ich habe unter 'root' dann mit apt-get install lm-sensorsdas Paket installiert bekommen. 
- 
					
					
					
					
 @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?
- 
					
					
					
					
 @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. 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
- 
					
					
					
					
 @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 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 
- 
					
					
					
					
 @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}
- 
					
					
					
					
 @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 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
- 
					
					
					
					
 @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}'. 
- 
					
					
					
					
 @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}
- 
					
					
					
					
 @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'. 
- 
					
					
					
					
 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 ?
- 
					
					
					
					
 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 !!! 
- 
					
					
					
					
 @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
- 
					
					
					
					
 @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
 
		
	 
		
	 
			
		 
			
		 
			
		 
			
			