Bitte, wo hab ich da den Fehler drinnen:
{my $dd = Value("EG_SZ_Jalousie") ;; \
if ($dd eq "Offen") {printf("aa %d",100)} ;; \
if ($dd eq "25%") {printf("wert %d",80)} ;; $dd }
Führe ich dieses Script im Telnet aus, bekomme ich folgendes:
fhem> {my $dd = Value("EG_SZ_Jalousie") ;; \
if ($dd eq "Offen") {printf("aa %d",100)} ;; \
if ($dd eq "25%") {printf("wert %d",80)} ;; $dd }
Offen
Das "Offen" kommt ja von der $dd-Variable, die ich als letztes ausgebe. Aber warum wird das erste IF nicht ausgeführt?
{my $r; my $dd = Value("EG_SZ_Jalousie") ; if ($dd eq "Offen") {$r = sprintf("aa %d",100)}; if ($dd eq "25%") {$r = sprintf("wert %d",80)}; $r }
Danke,
nur is mir nicht ganz klar, wo jetzt der Fehler lag. Ich habe die printf eigentlich nur "alibi-mäßig" drinnen zum testen.
Normalerweise hab ich im notify:
{my $dd = Value("EG_SZ_Jalousie") ;;
if ($dd eq "Offen") {fhem "set SZ_JalousieTaster 100"} ;;
if ($dd eq "25%") {fhem "set SZ_JalousieTaster 80"} }
und keiner der beiden Befehle wird ausgeführt.
Aber gut, schreib ich den Wert halt in eine Variable und mache am Schluss halt ein fhem "set...." dran
nur is mir nicht ganz klar, wo jetzt der Fehler lag.
Weil das Ganze innerhalb geschweifter Klammern anders funktioniert als innerhalb eines prozeduralen Ablaufs.