funktioniert aber leider auch nicht richtig, weil der Switch anscheinend neue turn_on Kommandos ignoriert, solange die vorherige on_turn_on Aktion noch läuft.
Hat jemand eine bessere Lösung, oder eine Idee, wie man meinen Ansatz verbessern könnte?
Gut das Problem hier ist ja, dass du im Endeffekt keine Hold-Aktion brauchst sondern einen Trigger sobald du nicht mehr gedrückt hast und den stellt diese custom Button Integration nicht zur Verfügung.
Was mir einfallen würde, dass du deine Idee sozusagen in eine Automation packst. Das ist natürlich auch bei weitem keine schöne Lösung und extrem “hacky”:
Solang du den Button gedrückt haltest wird alle 100 ms eine Automation aufgerufen.
Dies Automation schaltet die LED ein und zb. 200 ms später wieder aus. Die Automation stellst du so ein, dass die alte bei erneutem Aufruf abgebrochen wird und sie neu gestartet wird (= Modus “neu starten”). Damit wird sie alle 100 ms neu aufgerufen und sobald der Button losgelassen wird kann sie zum ersten mal komplett durchlaufen und schaltet die LED nach 200 ms wieder aus.
auf dem ESP gibt es nur noch einen ganz normalen Switch
mit den Zeiten weiter runter zu gehen bringt - zumindest mit meinem Aufbau - nichts.
Kürzer als ~150ms wird der Impuls am Ausgang nicht
Update:
ich habe weiter rumgetüftelt und noch eine Variante gefunden.
Diese verlegt das Timing des Abschaltens nach esphome.
Das gefällt mir besser als obige Lösung, weil der Abschaltbefehl seitens der GUI nicht verschütt gehen kann.