FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: jcb am 24 Januar 2016, 15:55:59

Titel: DOIF Herausforderung
Beitrag von: jcb am 24 Januar 2016, 15:55:59
Hallo,

ich bin schon eine Weile an diesem Thema dran und habe gehofft, dass das schon mal behandelt wurde. Zur Geschichte: Ich habe eine Lampe über EIB (WF.Licht) Die wird einmal direkt über EIB geschaltet wird. Nun ist zusätzlich ein HM Taster mit Bewegungsmelder dazugekommen. Der HM kann die Lampe allein auch schalten, wenn ich die Überprüfung der Gruppenadresse ([WF.Licht] eq "on") rausnehme. Ist diese drin, funktioniert immer nur der erste Teil. In diesem Fall jetzt: Er schafft es das Licht auszumachen, kann es aber nicht einschalten, wenn es über den EIB angeschaltet wird.

Der HM Schalter wird über eine vcci eingebunden. 

define WFDo DOIF ([vccu_Btn1:?short] and ([WF.Licht] eq "on")) (set WF.Licht off) DOELSE (set WF.Licht on)
attr WFDo cmdState on|off
attr WFDo room Windfang


Kann es sein, dass ich irgendeinen Fehler in dem DOIF mache?

Vielen Dank schonmal für einen Tipp.

Jens
Titel: Antw:DOIF Herausforderung
Beitrag von: Ellert am 24 Januar 2016, 16:28:24
Ich würde Dir gern helfen, verstehe jedoch nicht was Du genau mit dem DOIF erreichen möchtest. Liste doch mal die Bedingungen und die erwarteteten Aktion auf.

Fall1: Bedingung1 Aktion 1
Fall2: Bedibgung2 Aktion 2
...

Und dann beschreibe zu jeder Bedingung die tatsächlich eingetretene Aktion.

Vielleicht verstehe ich dann was Du vorhast.
Titel: Antw:DOIF Herausforderung
Beitrag von: jcb am 24 Januar 2016, 16:53:58
Uups. Ja natürlich. Vielen Dank für den Hinweis.

Eigentlich sollte das eine einfache Wechselschaltung sein.

Wenn WF.Licht an und Event HM Taster dann WF.Licht aus
Wenn WF.Licht aus und und Event HM Taster dann WF.Licht an.

Der EIB schafft das auch problemlos. Nur der HM Taster schafft es nicht den DOELSE Fall auszuführen. DOELSEIF hatte ich auch bereits versucht, ohne Erfolg. In dem Oben genannten Beispiel also:

Der HM kann das Licht ausmachen, wenn es durch den EIB angemacht wurde oder durch sich selbst aber eben nicht an.

Danke,


Jens
Titel: Antw:DOIF Herausforderung
Beitrag von: Ellert am 24 Januar 2016, 17:20:24
Habe ich Dich richtig verstanden, so:
define WFDo DOIF ([vccu_Btn1:?short] and ([?WF.Licht] eq "on")) (set WF.Licht off)
DOELSEIF  ([vccu_Btn1:?short] and ([?WF.Licht] eq "off")) (set WF.Licht on)

hast Du es schon versucht?
Titel: Antw:DOIF Herausforderung
Beitrag von: jcb am 24 Januar 2016, 18:17:43
Danke für deine Hilfe. Nein, hatte ich nicht. Habe das gerade versucht. Jetzt reagiert hem nicht mehr. Keine Ahnung woran es gerade liegt.

Melde mich später wieder, wenn ich das Problem gefunden habe.
Titel: Antw:DOIF Herausforderung
Beitrag von: crusader am 24 Januar 2016, 18:45:45
Zitat von: jcb am 24 Januar 2016, 16:53:58

Der HM kann das Licht ausmachen, wenn es durch den EIB angemacht wurde oder durch sich selbst aber eben nicht an.


Das Problem rührt daher, dass Du die Zustandsabfrage der Lampe ([WF.Licht] eq "on") als Triggerbedingung definiert hast.
WFDo wird dann auch durch den zweiten Betätigungsschalter(EIB) getriggert und wandert, weil die erste Bedingung nicht erfüllt ist, in den DOELSE-Zustand.
Falls der Zustand der Lampe dabei 'off' ist, wird dieser Zustand bei weiteren vccu-Events auch nicht mehr verlassen, löst aber auch kein Kommando aus, weil do always nicht gesetzt ist.

Der Vorschlag von Ellert sollte Abhilfe schaffen. Do always muss aber trotzdem gesetzt werden, damit die Lampe wiedereingeschaltet werden kann, wenn die andere Bedienstelle ausschaltet und umgekehrt.
Titel: Antw:DOIF Herausforderung
Beitrag von: jcb am 24 Januar 2016, 19:53:43
Hallo crusader, Hallo Ellert,

Vielen Dank für eure Hilfe. In Kombination haben eure beiden Hinweise funktioniert. Meine Familie ist jetzt wieder happy.

Herzlichen Dank Euch und einen schönen Abend.