PERL Ausdruck in einer if Funktion anwenden (gelöst)

Begonnen von dogexan, 24 Mai 2014, 20:22:43

Vorheriges Thema - Nächstes Thema

dogexan

Hallo zusammen,

folgender Code schaltet die INFO Led an der Fritzbox an, wenn man ihn in die FHEM Kommandozeile eingibt:
{system("/bin/led-ctrl update_led1")}

und dieser wieder aus:
{system("/bin/led-ctrl update_led1=0")}

das ganze in einem notify sieht bei mir so aus:
define nLED notify Boden { if(Value("Boden") eq "trocken") system("/bin/led-ctrl update_led1") else system("/bin/led-ctrl update_led1=0")}
funktioniert nur nicht!
Wie und welche Klammern müssen gesetzt werden?

Gruß Alex

betateilchen

Zitat von: dogexan am 24 Mai 2014, 20:22:43


define nLED notify Boden { if(Value("Boden") eq "trocken") {system("/bin/led-ctrl update_led1")} else {system("/bin/led-ctrl update_led1=0")}}


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dogexan

Hallo,

erstmal Danke an betateilchen.
mit den geschwungenen Klammern geht's, allerdings mit nur mit "at"

also mit "at" funktioniert es so:

define atLED at +*00:10:00 { if (Value("BoFeuSe") eq "open") {system("/bin/led-ctrl update_led1")} else {system("/bin/led-ctrl update_led1=0") } }

alle 10 min wird abgefragt.

Mit einem notify funktioniert es nicht warum auch immer?

mein notify sieht jetzt so aus:
define nLED notify BoFeuSe { if (Value("BoFeuSe") eq "open") {system("/bin/led-ctrl update_led1")} else {system("/bin/led-ctrl update_led1=0") } }

beim Wechsel von open nach closed und andersherum passiert nichts.

Hat jemand ne Idee warum?

Gruß Alex

dogexan

So jetzt klappt es doch ;D

hinter der letzten Klammer waren bei mir noch ein paar Leerzeichen, die haben das ganze wohl gestört.

Abschließen noch mal der Code:
define nLED notify BoFeuSe { if (Value("BoFeuSe") eq "open") {system("/bin/led-ctrl update_led1")} else {system("/bin/led-ctrl update_led1=0") } }

Gruß Alex