NEWS
Gelöst CPU & HDD Temp werte vom UbuntuNAS an IOBroker geben
-
vom IO-Broker aus die CPU und HDD Temp Abfragen vom Ubuntu NAS-Server
hi,
gibt es eine möglichkeit um vom raspi iobroker auf mein nas zu zu greifen umd sensor werte ab zu fragen?
lm-sensors und hddtemp ist auf dem nas installiert.
jetzt ist nur noch die sache das die werte vom raspi abgefragt werden in einer live darstellung in iQuontrol.
per mqtt adapter müsst es doch gehen oder muss ich mqtt/mosquitto noch richtig über terminal erstellen?
oder geht es einfach via blockly exec befehlen das man da via ssh befehle sendet und dann die werte abfragt und richtig als objekt ablegt um dann drauf zu zu greifen zu können?
danke für eure hilfe -
@rebel85 eine möglichkeit wäre ein bash script auf dem ubuntu server mit einem cronjob laufen zu lassen und über curl und dem simpleapi-adapter die daten in einen datenpunkt zu schreiben
die messung muss ja eh gemacht werden und ich belaste dann lieber direct den server (ubuntu-server) bevor ich alle 15 sekunden ein iobroker script triggere
beispiel bash script für cpu mit vmstat - 1 aufrufe dieses bash in einer minute - also alle 15 sekunden:
beispiel für temp (zusätzlich wird darin ein email gesendet bei über 70 grad) - jede minute:
beispiel für crontab - jede minute werden die beiden scripte aufgerufen und somit die datenpunkte geschrieben
befehl crontab -e
-
@liv-in-sky
hi, danke für deine antwort. das mit curl und simple api klingt einfach. funktioniert aber wie?
mein ubuntu server schmeist allso alle 15 sek die cpu und hdd temp ins netzwerk und der iobroker laucht dann nur?das untere skript ist identisch mit dem oberen skript.
-
@rebel85 hast du den simple api adapter installiert ?
-
@rebel85 mein setting für simple api instanz: port ist wichtig, da der für den curl befehl gebraucht wird
dieser adpter/instanz ermöglicht es, mit curl die datenpunkte zu setzen - egal von wo
- einem anderen linux rechner oder
- auch mit tools vom handy (tasker) oder
- von einem batchjob auf einem windows rechner
-
@liv-in-sky sagte in vom IO-Broker aus die CPU & HDD Temp Abfragen vom Ubuntu NAS:
@rebel85 mein setting für simple api instanz: port ist wichtig, da der für den curl befehl gebraucht wird
dieser adpter/instanz ermöglicht es, mit curl die datenpunkte zu setzen - egal von wo
- einem anderen linux rechner oder
- auch mit tools vom handy (tasker) oder
- von einem batchjob auf einem windows rechner
hab ich mal jetzt so angepasst, und ja ist installiert und grün
-
@rebel85 am besten ist es den befehl erstmal von hand auszuführen auf einem terminal
und dann schauen ob fehler kommt und/oder ein datenpunkt gesetzt wird
auf dem terminal folgenden befehl ausführen
curl "http://192.168.178.59:8087/set/controll-own.0.mount.CPUTemp?value=55"
du musst aber die ip adresse (192.168.178.59) angleichen und den datenpunkt (controll-own.0.mount.CPUTemp) von dir nehmen - evtl erstmal anlegen unter 0_userdata.0.xxx
-
@liv-in-sky
wie lege ich den daten punkt an? -
-
@paul53
ah ich danchte auf dem ubuntu nas ein datenpunkt anlegen.
-
@liv-in-sky sagte in vom IO-Broker aus die CPU & HDD Temp Abfragen vom Ubuntu NAS:
@rebel85 am besten ist es den befehl erstmal von hand auszuführen auf einem terminal
und dann schauen ob fehler kommt und/oder ein datenpunkt gesetzt wird
auf dem terminal folgenden befehl ausführen
curl "http://192.168.178.59:8087/set/controll-own.0.mount.CPUTemp?value=55"
du musst aber die ip adresse (192.168.178.59) angleichen und den datenpunkt (controll-own.0.mount.CPUTemp) von dir nehmen - evtl erstmal anlegen unter 0_userdata.0.xxx
curl "http://192.168.178.42:8087/set/0_userdata.0.CPU_Temp_NAS?value=55"
das funktioniert. hab im iobroker den wert 55 -
@rebel85 ok - dann brauchen wir noch vmstat
probier mal auf der konsole des ubuntu:
vmstat 1 15 | awk 'NR==10{print 100-$15}'
kommt da was ?
und was wir noch bauchen ist der richtige befehl für die temp
auf konsole testen:sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($0)-6,2)}'
die temp wird meist anders je hardware ausgegeben daher kann es sein, dass nichts richtiges kommt -
deshalb müßte der befehl für dich angeglichen werdenkannst du bitte den befehl "sensors" ausgeben und ihn posten - wir könnten es auch über anydesk zusammen machen
-
@liv-in-sky sagte in vom IO-Broker aus die CPU & HDD Temp Abfragen vom Ubuntu NAS:
@rebel85 ok - dann brauchen wir noch vmstat
probier mal auf der konsole des ubuntu:
vmstat 1 15 | awk 'NR==10{print 100-$15}'
kommt da was ?
da kommt nach ein paar sekunden nur 0
und was wir noch bauchen ist der richtige befehl für die temp
auf konsole testen:sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($0)-6,2)}'
die temp wird meist anders je hardware ausgegeben daher kann es sein, dass nichts richtiges kommt -
deshalb müßte der befehl für dich angeglichen werdenbekomme da nur +3
sensors :
acpitz-virtual-0
Adapter: Virtual device
temp1: +36.0°C (crit = +95.0°C)coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +36.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +37.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +37.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +37.0°C (high = +105.0°C, crit = +105.0°C)mit
sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($0)-6,7)}'
bekomme ich +36.0°C ausgegeben.
brauchen tuhe ich aber bestimmt Package id 0: +36.0°Ckannst du bitte den befehl "sensors" ausgeben und ihn posten - wir könnten es auch über anydesk zusammen machen
was ist anydesk schon wieder? bin selbe noch am anfang um mich mit den ganzen sachen vertraut zu machen und schaue viele Tutorials und how-to videos oder probiere auch mal paar befehls abwandlungen aus. bitte daher um verständnis wenn ich nciht gleich alles richtig verstehe
danke -
@rebel85 ist schon mal gut, dass du bei temp etwas bekommst - da müssen nur noch die °C und das + weg und die genaue position eingestellt werden
was passiert wenbn du nur
vmstat 1 15
eingibst - das dauert 15 sekunden bis das ergebnis kommt
-
@liv-in-sky sagte in vom IO-Broker aus die CPU & HDD Temp Abfragen vom Ubuntu NAS:
vmstat 1 15
XXXXXX@anubis-nas:~$ vmstat 1 15
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 4991568 594324 1496536 0 0 1 5 22 22 0 0 100 0 0
0 0 0 4991700 594324 1496536 0 0 0 0 67 149 0 0 100 0 0
0 0 0 4991700 594324 1496536 0 0 0 0 57 149 0 0 100 0 0
0 0 0 4991700 594328 1496532 0 0 0 112 153 310 0 0 99 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 56 133 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 47 110 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 61 134 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 59 122 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 71 149 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 43 100 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 61 151 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 62 136 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 0 86 199 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 52 148 294 0 0 100 0 0
0 0 0 4991700 594328 1496552 0 0 0 56 226 469 0 0 100 0 0 -
@rebel85 ich bastle mal ein wenig - melde mich wieder
-
@liv-in-sky
Dankehier mal meine versuche:
XXXXXX@anubis-nas:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +35.0°C (crit = +95.0°C)coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +35.0°C (high = +105.0°C, crit = +105.0°C)XXXXXX@anubis-nas:~$ sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($5)-1,7)}'
+38.0°C
XXXXXX@anubis-nas:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +35.0°C (crit = +95.0°C)coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +36.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +35.0°C (high = +105.0°C, crit = +105.0°C)XXXXXX@anubis-nas:~$ sensors | grep Package -m 1 | awk '{print $4}' | awk '{print substr($1, length($5)-1,7)}'
+37.0°C -
sudo hddtemp /dev/sd{b,c,d,e,f,g}
das müsste dann auch noch rigendwie mitgesendet werden.
wennd as richtig verstehe brauche ich dann für jede HDD im iobroker ein objekt wo die temp dann rein geschrieben wird. ???XXXXXX@anubis-nas:~$ sudo hddtemp /dev/sd{b,c,d,e,f,g}
/dev/sdb: WDC WD40EFAX-68JH4N0: 28°C
/dev/sdc: WDC WD40EFAX-68JH4N0: 28°C
/dev/sdd: WDC WD40EFRX-68N32N0: 30°C
/dev/sde: WDC WD40EFRX-68N32N0: 29°C
/dev/sdf: WDC WD40EFRX-68N32N0: 29°C
/dev/sdg: WDC WD40EFRX-68N32N0: 29°C -
@rebel85 was du sendest obliegt dir - alle temp in einen datenpunkt und dann in iobroker aussortieren oder einzelne datenpunkte verwenden
ich kenne hddtemp nicht - aber da kannst du ja evtl nur eine platte auslesen und mit curl senden , dann die nächste, ..... evtlsudo hddtemp /dev/sd{b}
für die sdb platte - du fügst die befehle einfach in das temp script (das erste ganz oben) mit ein - dort siehst du ja wie ein variable erstellt wird und du diese dann versendest mit curl ( wie mit dem vmstat befehl )
sudo hddtemp /dev/sd{b} | awk '{print $4}'
bei der temp der core ist es auch so - wenn du z.b. +36.0°C sendest musst du in iobroker noch ein script zur verwandlung in eine zahl durchführen - so das nur 36 drin steht - damit kannst du dann triggern oder dir reicht die reine anzeige der temp, dann kannst +36.0°C lassen
zu vmstat - der dritt-letzte wert ist ist die cpu - der wert nennt sich id (spalte) und beträgt die cpu idle zeit - ist also dieser wert 100 ist 100 -100 der load der cpu - also 0 - scheint nicht viel zu tun zu haben
aber ich denke du kommst auch ohne mich weiter - in linux wird jeder befehl ausgeführt und mit dem | weiter gereicht (pipe) - so findest du am ende der pipe deinen wert
ich mache auch immer trial and error - melde dich, wenn du noch was bestimmtes wissen willst
-
XXXXXX@anubis-nas:~$ sudo hddtemp /dev/sd{b,c,d,e,f,g} | awk '{print $4}'
gibt mir nur die festplatten temp werte aus in angegebener reihenfolge.
ja glaube beim skript bauen und speichern dann wo?
das mit dem e-mail versenden hab ich noch nicht ganz verstanden wie das funktioniert....und glaube beim chrontab -e müsst ich gucken, hab nämlich auf empfehlungen von freunden auf dem ubuntu nas auch webmin laufen wo das ja alles anders und für mich etwas einfacher verwaltet wird beim ubuntu 18.04 lts oder so ähnlich.
ich versuch mal die befehle mal einzeln zu senden zum iobroker
muss der befehlt für die eine hdd temp im bash skript jetzut so lauten?
var=`vmstat 1 15 | sudo hddtemp /dev/sdb | awk '{print $4}'` curl "http://192.168.178.42:8087/set/0_userdata.0.NAS.HDD_Temp?value=$var"