1 Jahr später stehe ich nun wohl an selben Punkt... Per Actions lässt sich der zweite Dimmer per ersten Dimmer nur vernünftig steuern, wenn zum Einschalten der "Sender" lange gedrückt wird. Dieses habe ich nun in Node Red nachgebaut und funktioniert sehr gut (ohne zum Einschalten lange drücken zu müssen), bis aus den Doppeldruck für 100%
Damit alle Taster gleich zu bedienen sind, wäre es schon schön, dieses auch noch hinzubekommen.
Nun verstehe ich auch das Problem mit den Events shellies/Shelly_Topic/input_event/1. Der Dimmer erkennt ja bereits einen Doppeldruck und schaltet dann auf 100%. Würde nun das Event bei einem Doppeldruck etwas anderes als "S" oder "L" anzeigen, dann könnte man dieses in Node Red entsprechend auswerten. Es kann ja trotzdem zuvor Event "S" und dann das andere Event nachgeschickt werden, wenn 2x kurz hintereinander gedrückt wird.
Das Problem an MQTT ist, dass die Tastendrücke nicht schnell genug übertragen werden und somit eine Auswertung aufgrund von 2x Tastendruck innerhalb von 400ms nicht zuverlässig ist und meistens nicht funktioniert (kann eventuell auch an den Dimmern liegen, dass die nicht schnell genug senden, ist ja nur WLAN).
Zweites Problem ist der Shelly selbst, der es nicht schafft, den Counter bei schnellem Drücken (Button Debounce auf 60ms gestellt und etwas langsamer gedrückt) korrekt hochzuzählen, sprich er bekommt gar nicht die Tastendrücke mit, was mir auch schon bei anderen Dimmern aufgefallen ist. Unsere Tochter (6) drückt gerne direkt 2x, da sie volle Helligkeit möchte und steht dann oftmals vor den Tastern und drückt des Öfteren, bis die Lampen mit 100% leuchten - geht mir manchmal nicht anders. Daher gehe ich auch nicht davon aus, und leider weiß ich in Node Red auch nicht wie, dass ein Auswerten des "event_cnt" helfen wird. Ich dachte erst daran, dass wenn dieser in <400ms um 2 erhöht wird, dieses als Doppeldruck gewertet werden könnte, was aber ebenfalls aus oben genannten Gründen nicht gehen wird, auch wenn man einen Counter eingesetzt bekommt.
Anbei der Flow:
input_event/1 liefert "S" oder "L" für short oder long, welches im Switch-Node ausgewertet wird. der "Zeit-Node" liefert bei jeder ankommenden Nachricht die Unix-Zeit, "Doppelklick?" wertet aus, ob zwei Werte unter 400ms zusammenliegen und löst dann die 100% aus (leider funktioniert es aufgrund der Verzögerungen oder der nicht erkannten Betätigungen der Taster nicht sonderlich gut).
Trigger 400ms lässt die erste Nachricht durch und soll eine zweite innerhalb von 400ms "schlucken". Die erst Nachricht löst "toggle" aus.
Taster: Es wird nur Input=0 benötigt, um das Dimmen zu stoppen. Die 1ms Verzögerung sind nötig, da ansonsten das Licht nicht einschaltet (es kommen vermutlich ansonsten Toggle und dim=stop zeitglich an und der Dimmer weiß nicht, was er machen soll). Der Interrupt-Flow fängt die Nachricht ab, sobald kein "event L" mehr gesendet wird.
In der unteren Zeile wird der Dimmwert per "MQTT-json" (der parst automatisch) abgefragt und bei 100% ein "dim=up" und kurz danach ein "dim=stop" geschickt, da die Dimmer leider beim Doppeldruck auf 100% nicht die Dimmrichtung anpassen und man ggf. 2x drücken muss, um runterdimmen zu können. Also ein kleiner Workauround, den ich ggf. für alle Dimmer in Node Red nachpflegen werde.
Hat vielleicht doch noch jemand eine Lösung für das "Doppelklick"-Problem? Wie geschrieben würde ein zusätzliches Event bereits weiterhelfen.
Das von SebMai vorgestellte dürfte dann ebenfalls nicht mit Shelly DImmer, Shelly 1, Shelly 2.5 etc. funktionieren? Oder kommt man da irgendwie per Node Red dran, falls der Dimmer diese Info doch über diesen Wege ausspucken sollte?
Thema
Hey ein kleines Script womit ihr einen Dimmer der Gen. 1 steuern könnt.
In dieser Variante wird Short Press zum Hoch dimmen genutzt.
Der Double Press zum Runter dimmen.
Und der Long Press zum Ein/aus schalten (toggle) wie den gewünschten Start Wert setzen.
Alle relevanten Einstellungen stehen zu beginn und sind noch mal erklärt, somit sollte es für euch möglich sein dies für euch anzupassen.
(Quelltext, 82 Zeilen)
Und zum Schluss, immerhin etwas sinnvolles was man diesem Gerät anstellen kann
SebMai
24. Oktober 2021 um 12:25