FHEM Forum

FHEM => Automatisierung => Thema gestartet von: HRueck am 09 Juni 2016, 14:38:38

Titel: Problem mit ReadingsVal
Beitrag von: HRueck am 09 Juni 2016, 14:38:38
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?
Titel: Antw:Problem mit ReadingsVal
Beitrag von: betateilchen am 09 Juni 2016, 14:45:15
gib mal in die fhem Befehlszeile im Frontend ein:

{ (split(/ /,ReadingsVal('<deviceName>','<readingName>','')))[3] }

deviceName und readingName musst Du natürlich selbst eintragen.
Titel: Antw:Problem mit ReadingsVal
Beitrag von: HRueck am 09 Juni 2016, 15:03:16
ok, ich kriege den richtigen Wert als Antwort.

werde das ganze jetztmal in meinen code einbauen.

vielen Dank für die schnelle Hilfe!
Titel: Antw:Problem mit ReadingsVal
Beitrag von: HRueck am 09 Juni 2016, 15:24:32
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!
Titel: Antw:Problem mit ReadingsVal
Beitrag von: franky08 am 09 Juni 2016, 16:27:41
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
Titel: Antw:Problem mit ReadingsVal
Beitrag von: betateilchen am 09 Juni 2016, 17:53:50
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