Liebe FHEM-User,
ich würde gerne den "state" mehrere Schaltaktoren angleichen, um daran angeschlossene Lampen, die verschiedene "states" haben, mit einem Wandschalter gleichzeitig ein- bzw. auszuschalten. Dieses gelingt mir leider nicht. Freue mich über jeden Lösungsvorschlag.
Konstellation:
- Mehrere Schaltaktoren, daran angeschlossen sind Lampen
- 6-fach Wandschalter, davon eine Taste für die Schaltaktoren belegt
Zielsetzung:
- Schaltaktoren auf einen "state" bringen, um z.B. beim verlassen/betreten der Wohnung alle Lampen gleichzeitig aus- bzw. einzuschalten, auch wenn der "state" unterschiedlich ist
Lösung bisher:
define Licht_toggle notify Steuerung_Btn_02 set Schaltaktor_1 toggle;;set Schaltaktor_2 toggle;;set Schaltaktor_3 toggle
- Problem: Bei unterschiedlichem state der Schaltaktoren wird die Zielsetzung nicht erreicht
Lösungsversuch:
define Alle_Lampen structure room Schaltaktor_1 Schaltaktor_2 Schaltaktor_3
define Licht_onoff notify Steuerung_Btn_02 {if(Value("Alle_Lampen") eq "off") {fhem("set Alle_Lampen on")} else {fhem("set Alle_Lampen off")}}
- Problem: Schaltaktoren schalten im schnellen Wechsel für ca. 10 Sekunden ein und aus, sind danach zwar synchron, aber nicht auf dem gewünschten state
Vielen Dank für Lösungsvorschläge!
Mit toggle ist das immer Schwierig. Ich würde über ein Dummy gehen den kannst du toggeln und sein Zustand wird an alle über tragen. Wenn es dir vor allem ums aus schalten geht könntest du den dummy wenn bestimmte Lampen an sind auf on schalten dann togglet er off. Ansonsten musst du 2x drücken.
Oder eine weitere Taste opfern.
Gesendet von meinem Nexus 4 mit Tapatalk
define Licht_onoff notify Steuerung_Btn_02
Nachdem ich nicht weis, welcher Art dein "Steuerung_Btn_02" ist, kann ich dir kein konreteres Beispiel sagen, aber grundsätzlich solltest du das RegEx genauer definieren.
Steuerung_Btn_02:state:on
würde zB nur dann Triggern, wenn jetzt eben state auf "on" geht.....
Dein notify triggert aber auf JEDE Readings-Änderung von Steuereung_Btn_02......und toggelt somit mehrmals hin- und her.
lg, Ici
set Alle_Lampen off getrggert auf einen langen Tastendruck
Vielen Dank für die schnellen Antworten und tollen Lösungsvorschläge. Aus der Antwort von Icinger konnte ich für mich die schnellste Lösung generieren.
Lösung:
- Steuerung_Btn_02 hat als Reading einen trigger-counter, der mit jedem Tastendruck um 1 erhöht wird. Die weiteren Readings sind für mich zunächst unwichtig
- Somit führt folgender Code zum gewünschten Ergebnis:
attr Steuerung_Btn_02 event-on-change-reading trigger_cnt
define Licht_onoff notify Steuerung_Btn_02 {if(Value("Alle_Lampen") eq "off") {fhem("set Alle_Lampen on")} else {fhem("set Alle_Lampen off")}}
Meine Frage ist damit gelöst. Vielen Dank!
Auch eine Möglichkeit......
Wobei, sinnvoller wäre in diesem Fall statt dem event-on-change das notify nur auf trigger_cnt loszulassen:
define Licht_onoff notify Steuerung_Btn_02:trigger_cnt:.* {}
lg, Ici
Noch besser! Danke für den Hinweis :)