Hallo zusammen.
Ich möchte gerne in den UserReadings die Kw/h in Euro umrechnen.
Versucht habe ich folgendes:
statEnergyDayLast_Euro { ReadingsVal($name,"statEnergyDayLast",0)*[P_value_StromPreis] }
Als Fehler kommt dann:
Error evaluating HM_Leistung3_WoZiTV_Pwr userReading statEnergyDayLast_Euro: Bareword "P_value_StromPreis" not allowed while "strict subs" in use at (eval 126491) line 1.
P_value_StromPreis ist der Parameter für den Strompreis
Offensichtlich funktioniert meine Syntax nicht.
Kann mir jemand auf die Sprünge helfen?
Danke und Gruß,
Ralf
Als erstes solltest Du mit ReadingsNum() arbeiten statt mit ReadingsVal(), für den Fall, dass in dem Reading noch eine Einheit steckt.
Dann solltest Du mal erklären, wo P_value_StromPreis überhaupt herkommt. So wie das von Dir hier angegeben wurde, kann das halt nicht funktionieren, weil es syntaktisch falsch ist.
Entweder kommt P_value_StromPreis aus einem Reading, dann solltest Du das eben auch mit ReadingsNum() angeben oder es ist eine Variable, dann fehlt die korrekte Angabe einer Variablen.
[P_value_StromPreis] ist ein Dummy den ich als Variable nutze
Dann gib halt den Wert aus dem Dummy auch mit ReadingsNum() an. Dieser Mischmasch aus FHEM, perl und anderer Pseudo-Syntax führt immer wieder zu Problemen. Mach es einheitlich, simpel und richtig, dann funktioniert es auch.
Irgendeinen Namen in eckige Klammern zu setzen, ist keine perl-Syntax. Da hat iein FHEM Entwickler vermutlich mal schlecht geschlafen und sich dann was ausgedacht.
so?
statEnergyDayLast_Euro { ReadingsNum($name,"statEnergyDayLast",0)*ReadingsNum("P_value_StromPreis","state",0)}
klappt leider auch nicht...
Edit.: ... doch klappt wohl... Stand mir selber im weg.
DAnke
kaum macht mans richtig, schon klappts... 8)
Jup, Danke