NEWS
[Gelöst] CPU Temperatur von Proxmox VM
- 
					
					
					
					
 @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
- 
					
					
					
					
 @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" 
- 
					
					
					
					
 @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.
- 
					
					
					
					
 @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. 
- 
					
					
					
					
 @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  
- 
					
					
					
					
 @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. 
- 
					
					
					
					
 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}
 
		
	 
		
	 
			
		 
			
			 
			
		 
			
		 
			
		