[Gelöst] Zwei Leuchten mit zwei Schaltern schalten

Begonnen von schnuddel, 24 Oktober 2019, 15:37:58

Vorheriges Thema - Nächstes Thema

schnuddel

Hallo zusammen,

ich habe zwei Fibaro Switches hinter zwei Schaltern an der Wand, die jeweils eine Leuchte schalten.
Schalter A -> Leuchte A
Schalter B -> Leuchte B

Jetzt möchte ich sowohl mit Schalter A, als auch Schalter B jeweils beide Leuchten gemeinsam schalten.

Schalter A -> Leuchte A+B
Schalter B -> Leuchte A+B

Ich habe es mit 2 notify-Befehlen probiert, was aber in einer Schleife geendet hat, in der die Lichter sich immer wieder an- und ausgeschaltet haben.
Hier mein Code:
define notifyAB notify SchalterA:reportedState:.* set SchalterB toggle
define notifyBA notify SchalterB:reportedState:.* set SchalterA toggle


Vielen Dank schon mal im Voraus!
Klaus
Raspi, ZWave, HUE, Neato Botvac, Squeezebox

Beta-User

Schon mal an $EVENT statt toggle gedacht?

Evtl. noch einen FILTER dahinter hängen, damit eine bereits angeschaltete Leuchte erst gar keinen Befehl mehr erhält (sollte in der commandref mit dem Suchwort FILTER zu finden und dann mit etwas Phantasie zu lösen sein ;) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Eistee

Versuch mal statt den Schalter die Lampe zu schalten

Otto123

Mit toggle wird das Unfug!
defmod nty_Aktor1 notify Aktor1:(on|off) set Aktor2:FILTER=STATE!=$EVENT $EVENT
defmod nty_Aktor2 notify Aktor2:(on|off) set Aktor1:FILTER=STATE!=$EVENT $EVENT


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Hättest den TE gerne knobeln lassen können...
Zitat von: Otto123 am 24 Oktober 2019, 19:35:29
Mit toggle wird das Unfug!
defmod nty_Aktor1 notify Aktor1:(on|off) set Aktor2:FILTER=STATE!=$EVENT $EVENT
defmod nty_Aktor2 notify Aktor2:(on|off) set Aktor1:FILTER=STATE!=$EVENT $EVENT


Gruß Otto
Ungetestet und evtl. kürzer (for internal use: *grins*):
defmod nty_Aktor1o2 notify Aktor[12]:(on|off) set Aktor[12]:FILTER=STATE!=$EVENT $EVENT
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

Mist ich habe es versaut  ;D
@Beta-user sorrry da war ich zu schnell und hab nicht alle Beiträge komplett gelesen. Ich hatte die Lösung "in der Tasche" :)

Aber deine Variante ist gut und funktioniert - auf die Idee set Aktor[12] bin ich nicht gekommen :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

schnuddel

Herzlichen Dank an alle! Funktioniert wunderbar.

Habe ich die FILTER-Syntax richtig verstanden?
Setze Aktor 2 auf den Status $EVENT

set Aktor2 [...] $EVENT


wenn Aktor1 einen Status ungleich $EVENT hat.

[...]STATE!=$EVENT[...]

Raspi, ZWave, HUE, Neato Botvac, Squeezebox

Otto123

#7
ich denke Du hast es falsch verstanden. Es wird ja der zu schaltende Aktor selbst "geprüft": Also wenn der Aktor selbst schon auf on steht - und der Event on ist - tue nichts.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

schnuddel

Raspi, ZWave, HUE, Neato Botvac, Squeezebox