ReadingsGroup valueFormat klappt einfach nicht!

Begonnen von persching, 08 Mai 2015, 22:43:09

Vorheriges Thema - Nächstes Thema

persching

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. :(

FHEm2005

#1
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
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

persching

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!

hanske

Dann steht es im FHEM Wiki falsch:
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.
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968