Schon wieder ich... ;)
Kann mir bitte jemand bei dem Reading "positon" zu der Rollladensteuerung 452 FU-EBIM JR o.T. von PEHA helfen.
Wenn ich versuche dieses in einem DOIF zu verwenden, dann kommt es zu einer Fehlermeldung.
Das Programm ist nicht besonders sinnvoll. Ich bin letztendlich darauf gekommen, weil ich versucht habe das Problem einzugrenzen.
Letztendlich geht es um die Frage, warum die Auswertung "[aKueRol:positon]=0" zu einer Fehlermeldung führt.
"[sSczHel:brightness]>50" setzt die Variable "pRLS" wie gewünscht.
define aKueRol EnOcean FFF74D80
attr aKueRol IODev TCM310_0
attr aKueRol gwCmd blindCmd
attr aKueRol subDef FF892F01
attr aKueRol subType shutterCtrlState.01
attr aKueRol subTypeSet gateway
define pRLS dummy
define pRolDum DOIF ([aKueRol:positon]=0) (set pRLS pppp)\
DOELSEIF ([22:00-05:30]) (set pRLS closes)
2014-10-03 14:45:01 EnOcean aKueRol positon: 0
2014-10-03 14:45:01 DOIF pRolDum error: perl error in condition: ReadingValDoIf('aKueRol','positon','')=0: Can't modify non-lvalue subroutine call in scalar assignment at (eval 16919) line 2, at EOF
Hat jetzt aber nicht speziell etwas mit EnOcean zu tun!?:
Du verwendest den Zuweisungoperator "=" in einem Vergleich; Vergleichsoperator ist in Perl "==".
edit: "==" ist für Zahlenvergleich; für Stringvergleich: http://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren
Vielen Dank für den Austausch mit uns. viel glück