Hallo zusammen,
ich versuche gerade mehrere Hourcounter zu visualisieren. Dazu hab ich mir eine readingsGroup erstellt und möchte nun einfach die Readings (in Sekunden) in Minuten bzw. bei mehr als 3600 Sekunden in Stunden darstellen. Dazu hab ich folgende readingsGroup erstellt:
define Thermostate_Visu readingsGroup <>,<Anzahl>,<Heute>,<Gesamt> *._T_HC:countsPerDay,pulseTimePerDay,pulseTimeOverall,value
attr Thermostate_Visu mapping %ALIAS
attr Thermostate_Visu room Visu
attr Thermostate_Visu valueFormat { if($READING eq "pulseTimePerDay" && $VALUE < 3600) {sprintf("%.1f Minuten", $VALUE/60);;}elsif{ if($READING eq "pulseTimePerDay") {sprintf("%.1f Stunden", $VALUE/3600);;}else{ {sprintf("%.1f Std", $VALUE/3600);;}}} }
Will ich nur "pulseTimePerDay" formatieren, dann klappt das. Sobald ich aber die zweite Spalte genauso Formatieren will, dann bekomm ich einen Syntax Error. Ich hab schon im Commandref und im Wiki gesucht, aber ich kann die Infos dort einfach nicht umsetzen. :(
Hallo Persching,
schau Dir mal die elsif-Anweisung in Perl genauer an.
Du schreibst:
if (....) {}
elsif {if ... }
else { }
Wenn ich meine rudimentären Perl-Kentniise zugrunde lege, sollte die Struktur eher sein:
if (Bedingung1) {Auswirkung1;}
elsif (Bedingung2) {Auswirkung2;}
else {Auswirkung3;}
Gruß
Eberhard
edit:Schreibfehler
Danke FHEm2005, durch deine Erläuterung und die ganzen Bedingungen erneut aufbauen hab ich es jetzt so darstellen können wie ich wollte! :)
Langsam aber sicher steige ich bei der Programmierung durch!
Dann steht es im FHEM Wiki falsch:
http://www.fhemwiki.de/wiki/Trick_der_Woche (http://www.fhemwiki.de/wiki/Trick_der_Woche)
Dort steht:
define ... notify ... {\
if ... {\
fhem ("... ;; ...")\
}\
elsif {\
if ... {\
fhem ("... ;; ...")\
}\
also ich interpretiere das als:
if (Bedingung1) {Auswirkung1;}
elsif { if(Bedingung2) {Auswirkung2;} }
bin leider auch schon darauf reingefallen.
habs im wiki repariert.
gruss
andre