Ich möchte aus folgendem reading des statistics Moduls:
Hour: 0.095 Day: 0.561 Month: 0.561 Year: 0.561
den Wert von "Day" in einem ReadingsVal auslesen.
Leider geht "ReadingsVal("<device>","<reading>","$EVTPART4")" nicht.
Mir fehlt leider die zündende Idee, wie das richtig gehen müsste, googeln hat nichts gebracht.
Wer kann mir bitte weiterhelfen?
gib mal in die fhem Befehlszeile im Frontend ein:
{ (split(/ /,ReadingsVal('<deviceName>','<readingName>','')))[3] }
deviceName und readingName musst Du natürlich selbst eintragen.
ok, ich kriege den richtigen Wert als Antwort.
werde das ganze jetztmal in meinen code einbauen.
vielen Dank für die schnelle Hilfe!
so jetzt funktioniert alles zufriedenstellend :)
allerdings stellt sich mir die Frage, wie man auf die Lösung kommt.
könntest du mir die Syntax bitte erklären?
bloss den code zu kopieren ist ja praktisch, aber wirklich gelernt habe ich dabei natürlich nichts!
split zerlegt die Zeichenkette, / / gibt an das am Leerzeichen getrennt wird und die [3] gibt dann das an der dritten Stelle stehende Reading zurück.
Hier was zu split: http://www.hidemail.de/blog/split-in-perl.shtml
VG
Frank
Zitat von: HRueck am 09 Juni 2016, 15:24:32
allerdings stellt sich mir die Frage, wie man auf die Lösung kommt.
Indem man sich mit perl Grundlagen beschäftigt :)
Zitat von: franky08 am 09 Juni 2016, 16:27:41
und die [3] gibt dann das an der dritten Stelle stehende Reading zurück.
Nicht ganz richtig.Die drei gibt an, dass man den vierten Wert haben möchte, weil die Zählung bei null beginnt.
[0] = Hour:
[1] = 0.095
[2] = Day:
[3] = 0.561
[4] = Month:
[5] = 0.561
[6] = Year:
[7] = 0.561