[Gelöst] DOIF: warum kann ich keine variable definieren?

Begonnen von PavelCoast, 28 Dezember 2015, 18:53:33

Vorheriges Thema - Nächstes Thema

PavelCoast

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é

Ellert

#1
Es ist kein Fehler, sondern der Rückgabewert der {} Klammer. Mit return 0 verschwindet der "Fehler".

PavelCoast

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é

Ellert


PavelCoast

Super, vielen Dank!
Habe es scheinbar wirklich etwas kompliziert gemacht  ;)

Funktioniert jetzt,
danke nochmals

juanmax

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