Ich steh gerade etwas auf dem Schlauch: ich würde gerne den Strom im Garten einschalten sobald ich die Gartentüre öffne.
Ich hatte gehofft/gedacht daß es SO gehen würde:
define Aussenstrom_Schalten DOIF ([K.Tuer:STATE] eq "on") (set Aussenstrom on) DOELSEIF ([K.Tuer:STATE] eq "off") (set Aussenstrom off)
Der Code scheint (von der Syntax her) richtig zu sein, aber es wird nichts geschaltet
K.Tuer ist der Drehgriffschalter und Aussenstrom ein Kanal vom 4fach Hutschienen Aktor.
Wo ist mein Fehler?
versuch es mal mit
define Aussenstrom_Schalten DOIF ([K.Tuer:state] eq "on") (set Aussenstrom on) DOELSEIF ([K.Tuer:state] eq "off") (set Aussenstrom off)
bzw.
define Aussenstrom_Schalten DOIF ([K.Tuer] eq "on") (set Aussenstrom on) DOELSEIF ([K.Tuer] eq "off") (set Aussenstrom off)
Reagiert das Doif denn, wenn der Status der Tür sich ändert, dann liegt es ja klar am Kommando. Wenn nicht am Trigger.
Ich habe jetzt mal beide Varianten angelegt, beide reagieren wohl nicht.
Der Statur der Tür ändert sich aber wie gewünscht.
Woran liegts?
Das State des Sensors heißt "open" bzw "closed" und nicht on oder off. Also im DOIF entsprechend ändern...
VG Sven
Na super, auf alles geachtet, aber nicht DARAUF... JETZT gehts natürlich.
DANKE!
Wenn da jetzt noch eine Gartentür dazu kommt muß die Syntax dann wie folgt aussehen?
define Aussenstrom_Schalten DOIF ([K.Tuer] eq "open" OR [G.Tuer] eq "open") (set Aussenstrom on) DOELSEIF ([K.Tuer] eq "closed" AND [G.Tuer] eq "closed") (set Aussenstrom off)
Code editiert damit es hier richtig steht!
immer noch open, aber sonst ja.
So würdest du anschalten, sobald eins auf ist und ausschalten, wenn beide zu sind.
So, der nächste Kontakt ist angekommen, leider ist wohl ein Fehler in der Syntax:
define Aussenstrom_Schalten DOIF ([K.Tuer] eq "open" OR [Ke.Tuer] eq "open") (set Aussenstrom on) DOELSEIF ([K.Tuer] eq "closed" AND [Ke.Tuer] eq "closed") (set Aussenstrom off)
Als error reading bekomme ich:
perl error in condition: InternalDoIf('K.Tuer','STATE','') eq "open" OR InternalDoIf('Ke.Tuer','STATE','') eq "open": syntax error at (eval 3828) line 1, near ""open" OR "
das mag jetzt echt bescheuert klingen, aber hast du das or mal klein geschrieben? Weiß nicht, ob es daran liegt, aber sonst sehe ich aktuell keinen Fehler.
Zitat von: Christian72D am 28 Oktober 2015, 17:31:22
So, der nächste Kontakt ist angekommen, leider ist wohl ein Fehler in der Syntax:
define Aussenstrom_Schalten DOIF ([K.Tuer] eq "open" OR [Ke.Tuer] eq "open") (set Aussenstrom on) DOELSEIF ([K.Tuer] eq "closed" AND [Ke.Tuer] eq "closed") (set Aussenstrom off)
Als error reading bekomme ich:
perl error in condition: InternalDoIf('K.Tuer','STATE','') eq "open" OR InternalDoIf('Ke.Tuer','STATE','') eq "open": syntax error at (eval 3828) line 1, near ""open" OR "
Operatoren wie or oder and werden in Perl klein geschrieben und die Bedingung in DOIF ist Perl.
Gruß
Damian
Ah OK... ich hatte es nur der Übersichtlichkeit GROSS geschrieben, danke, jetzt läuft alles.