Hallo,
ich bin noch Anfänger mit FHEM. Ich würde gerne folgendes Programmieren:
Wenn ein Schalter1 und ein Schalter2 "gedrückt" werden soll ein Schalter 3 eingeschaltet werden.
Meine Versuche sehen so aus:
define Button1 dummy
attr Button1 eventMap on:on off:off
attr Button1 room Test
define Button2 dummy
attr Button2 eventMap on:on off:off
attr Button2 room Test
define Button3 dummy
attr Button3 eventMap on:on off:off
attr Button3 room Test
define Test123 at +*00:15 { if ( "Button1" eq "on" && "Button2" eq "on" ) { fhem("set Button3 on") } else { fhem("set Button3 off")}}
Wofür steht eigentlich das?: +*00:15
Es kann sein, das mal ein Schalter immer an ist und der andere zwischendurch Ein und Ausgeschaltet wird.
Beispiel:
Wenn ich Schalter 1 immer an habe aber Schalter 2 z.B. Anwesenheit und Abwesenheit schaltet, dann soll Schalter 3 nur an sein, wenn ich Abwesend bin (also Schalter 2 an ist).
Also eine einfache UND-Verknüpfung.
Am liebsten wäre mir eine Lösung für mehr als 2 Schalter und für eine ODER-Verknüpfung.
Ich hoffe ihr könnt mir helfen.
Ich hoffe ich habe mich verständlich ausdrücken können.
Hallo,
du benutzt ein "at" und ein +* mit Zeitangabe. Heist: wiederhole alle 15 Minuten die Befehle in den Klammern. Was Du brauchst ist ein notify oder doif. Bitte commandref oder Wiki hierzu lesen. Ach ja, die Einsteigerhilfe im Wiki ist Pflicht.
Gesendet von iPhone mit Tapatalk
Ich habe die Einsteigerhilfe gelesen. Verstehe es aber nicht ganz.
Also wie ich notify für einen Schalter verwende das weiß ich. Aber wie kann ich FHEM so programmieren, das wenn Schalter 1 und Schlater 2 gedrückt wurden eine aktion auslöst?
Das war eine Variante, die aber nicht funktioniert:
define NButtons notify Button1,Button2 {\
if ("$EVENT" ne "off") {\
fhem ("set Button3 on") ;; Log(1, "Button3")\
}\
else {\
fhem ("set Button3 off") ;; Log(1, "Button3")\
}\
}
Und diese Änderungen brachten auch nichts:
define NButtons notify Button1 && Button2 {\
...
define NButtons notify Button1 ;; Button2 {\
...
Bist Du sicher, dass du "und" meinst, also beide gleichzeitig oder doch eher "oder", also einer von beiden?
Gesendet von iPhone mit Tapatalk
Also was ich gerne haben möchte ist.
Das ein Gerät eingeschaltet wird, wenn Schalter 1 UND Schalter 2.
Allerdings soll es auch so sein, dass wenn Schalter 1 (dummy) schon an ist und Schalter 2 (dummy) eingeschaltet wird, dass das Gerät eingeschaltet wird. Und umgekehrt.
Ich hoffe das ich es richtig erkläre.
ich benutze gerne DOIF
Zitat von: MiMoAC am 05 November 2016, 20:19:12
Also was ich gerne haben möchte ist.
Das ein Gerät eingeschaltet wird, wenn Schalter 1 UND Schalter 2.
Allerdings soll es auch so sein, dass wenn Schalter 1 (dummy) schon an ist und Schalter 2 (dummy) eingeschaltet wird, dass das Gerät eingeschaltet wird. Und umgekehrt.
Ich hoffe das ich es richtig erkläre.
z. B.
define di DOIF ([Schalter1] eq "on" and [Schalter2] eq "on") (set bla bla)
Gruß
Damian
Das klappt schon gut!
Wenn einer der Schalter ausgeschaltet wird, soll auch das Gerät wieder ausschalten.
Angenommen Schalter 1 würde regelmäßigr ein- und ausschalten dann soll auch das erä immer ein und ausgeschaltet werden.
Ich habe mich damit jetzt auch eine Zeit herumgequält und ich glaube es gibt da eine einfach Lösung, zumindest klappt es so bei mir :D
UND Lösung: Schalter1 und Schalter2 müssen an sein, damit die Lampe angeht
define Einschalten notify Schalter1:on|Schalter2:on set Lampe on
ODER Lösung: Schalter1 oder Schalter2 müssen an sein, damit die Lampe angeht
define Einschalten notify Schalter1:on||Schalter2:on set Lampe on
Der Unterschied sind die pipes |
Danke für die Rückmeldung. :-)
Also mit dem angegebenen Code:
define Einschalten notify Schalter1:on|Schalter2:on set Lampe on
Habe ich eine Art ODER Verknüpfung. Schalte ich einen der Schalter ein, geht die Lampe sofort an.
Leider geht die Lampe nicht aus, wenn ich einen Schalter abschalte.
Ist ja irgendwie klar, von off steht ja nirgends etwas.
define Ausschalten notify Schalter1:off|Schalter2:off set Lampe off
Würde das Gleiche rückwärts machen. Ob Du das so willst?
Der hier:
define Schalten notify Schalter1:o.*|Schalter2:o.* set Lampe $EVENT
könnte eventuell sogar Beides in einem notify - aber das ist nur ne Idee und nicht geprüft. Hängt von den Events ab die generiert werden.
Gruß Otto
Hi MiMoAC!
Zitat von: MiMoAC am 06 November 2016, 14:38:18
Also mit dem angegebenen Code:
define Einschalten notify Schalter1:on|Schalter2:on set Lampe on
Leider geht die Lampe nicht aus, wenn ich einen Schalter abschalte.
Du bist ja echt cool! Das Notify heisst ja auch
Einschalten und hinter den Doppelpunkten steht
on. Definiere doch mal ein weiteres Notify mit Ausschalten und off nach den Doppelpunkten!
Edit: 2 Leipziger ein Gedanke! Otto war schneller.