Hallo,
ich versuche in einem DOIF eine Variable zu definieren, um später damit zur rechnen.
Wo liegt der Fehler?
hier der DOIF Code:
([max_ac_phase] > 0.5)
({( my $test=2 )})
DOELSE ()
Leider erhalte ich bei Error und im Log nur: error {( my $test=2 )}: 2
Kann mir jemand weiterhelfen?
Gruß
René
Es ist kein Fehler, sondern der Rückgabewert der {} Klammer. Mit return 0 verschwindet der "Fehler".
oh, vielen Dank.
Habe nun folgendes wieder eingefügt (hatte vorher alles rausgelöscht, um nur die Variablensetzung zu testen):
([max_ac_phase] > 0.5)
({( my $test=100-ReadingsVal("max_ac_phase","state",0) ;; fhem("set max_ac_laden $test") )})
DOELSE ()
jetzt erhalte ich folgenden Fehler:
{( my $test=100-ReadingsVal("max_ac_phase","state",0) ;; fhem("set max_ac_laden $test") )}: syntax error at (eval 96016) line 1, at EOF Global symbol "$test" requires explicit package name at (eval 96016) line 1. syntax error at (eval 96016) line 1, near ") )"
Kann ich den Wert von $test nicht so übergeben per fhem("set max_ac_laden $test")
Gruß
René
Hinweis zum Fehler: http://fhem.de/commandref_DE.html#DOIF_Angaben_im_Ausfuehrungsteil
Warum so kompliziert?(set max_ac_laden {(100 - [max_ac_phase])})
Super, vielen Dank!
Habe es scheinbar wirklich etwas kompliziert gemacht ;)
Funktioniert jetzt,
danke nochmals
Hallo Rene,
Ich bin dabei deine Lösung zu kopieren. Du hast ziemlich der selbe Setup als ich. Kannst du bitte das hier posten? Oder lieber per email/PM? Ich würde ungerne das Rad neu erfinden...
Gruß aus Kölle,
Juanma