Hi, ich habe ein kleines Problem…
Das Licht im Treppenhaus oben wird durch 2 Zigbee-Schalter ein und ausgeschaltet. Im EG ist ein Zigbee Doppelschalter und oben im Treppenhaus ist hinter dem Schalter ein unterputz Zigbee Switch.
EG:
Die Steuerung ist so, wenn sich der Zustand des unteren Schalters ändert dann wird der obere geschaltet und der obere Schalter ist ja diret in dem Switch verkabelt (S1 S2).
Problem ist jetzt, relativ selten wird (meistens mitten in der Nacht) der untere Schalter kurz nicht verfügbar (ca 3 Sekunden lang) und wenn er wieder verfügbar wird macht er “Power-on-behavior” wieder den letzten Zustand, heisst das Licht geht für 3 Sekunden an und wieder aus.
Ich habe dann eine Bedingung mit in die Automation gemacht “wenn Bedingung NICHT erfüllt ist: Wenn Schalter nicht verfügbar ist”, aber das eliminiert nur eine der zwei Änderungen, also ist das Licht angeblieben und hat sich nicht nach 3 Sekungen wieder Ausgeschaltet.
Habt ihr eine Idee wie ich das ändern könnte?
Das Licht leuchtet bis ins Schlafzimmer und im schlimmsten Fall weckt es das Baby… Meine Frau meint schon es spukt im Haus und der Akzeptanz-Faktor für “diesen Smart-Sch***” wird dadurch auch nicht besser
Hier noch die Automation wenn es hilft:
alias: Treppenaufgang Licht an Schalter unten
description: ""
triggers:
- entity_id:
- switch.schalter_flur_2er_l2
trigger: state
conditions:
- condition: not
conditions:
- condition: state
entity_id: switch.schalter_flur_2er_l2
state: unavailable
actions:
- action: switch.toggle
data: {}
target:
entity_id: switch.schalter_treppenaufgang_licht_oben
mode: single
Erste Idee wäre eine weitere Automatisierung und ein Helfer (Schalter / boolean Input).
Sobald es auf nicht verfügbar geht, wird der Helfer eingeschaltet, gewartet, bis der Schalter wieder verfügbar ist, eine Minute gewartet und der Helfer ausgeschaltet.
Als Bedingung wird in Deine jetzige Automatisierung aufgenommen, dass der Helfer aus sein muss. Die Minute kannst Du natürlich auf X Sekunden verkürzen, wenn das reicht.
Wäre vermutlich eher ein work around.
Und beim überlegen komme ich drauf, dass Du einfach als Bedingung anlegen kannst, dass der Schalter, bei dem Du jetzt schon prüfst ob er nicht verfügbar ist, verfügbar ist, seit mind. X Sekunden. Damit kannst Du den Gap übergehen.
alias: Treppenaufgang Licht an Schalter unten
description: ""
triggers:
- entity_id:
- switch.schalter_flur_2er_l2
trigger: state
conditions:
- condition: not
conditions:
- condition: state
entity_id: switch.schalter_flur_2er_l2
state: unavailable
- condition: state
entity_id: switch.schalter_flur_2er_l2
state: available
for:
hours: 0
minutes: 0
seconds: 5
actions:
- action: switch.toggle
data: {}
target:
entity_id: switch.schalter_treppenaufgang_licht_oben
mode: single
Jetzt muss er seit fünf Sekunden verfügbar gewesen sein, was nicht mehr in die Wiederherstellung fallen dürfte. Evtl. kannst die Zeit auch noch weiter verkürzen und 1 oder 2 Sekunden wären schon ausreichend.
Vielen Dank @tarag, das hört sich gut an, wird direkt getestet.
Ich hatte auch überlegt wie ich es mit einem Helfer umgehen könnte, aber die Verzögerung um x Sekunden nach Unerreichbarkeit ist natürlich weitaus eleganter.
Ich habe die Automation angepasst und werde mir eine Nachricht aufs Handy schicken lassen wenn der Schalter wieder auf unbekannt springt (sonst merk ich das ja nicht wenn das Licht nicht mehr angeht ) um zu überprüfen ob es klappt.
Update:
Also, so klappt das leider nicht…
Ich hatte die yaml so übernommen wie @tarag geschrieben hat und heute Abend gemerkt dass sich das Licht vom unteren Schalter nun nicht mehr schalten lässt. Also nachgeschaut, es gibt beim Zustand des Schalters kein “available” zur Auswahl. Daher war die Bedingung nie erfüllt…
Vielen Dank @tarag für Deine späten Mühen ich werde es testen.
Ich hatte auch noch eine Idee, er zeigt ja als auswählbaren Zustand “nicht verfügbar” an, könnte man nicht irgendwie andersrum sagen: wenn der Zusatnd “in den letzten 5 Sekunden nicht verfügbar war” dann nicht ausführen, anstatt ausführen nur wenn “seit 5 sekunden verfügbar”?