Siehe: viewtopic.php?f=77&t=81798
Nun ja, bei mir schon. Aber ich interpretiere auch eher die Links und mache da dann das entsprechende raus.
Als erstes solltest du den Zustand der LED bzw. das Ansprechen trennen von der restlichen Logik.
Nehmen wir dazu als Beispiel einen HmIP-BSL, den ich für die Badezimmer verwende. Das Ist ein Schalter mit LEDs und wenn das Licht an ist, leuchtet die untere Weiß. Der Status ob das Licht an ist, wird über den Status des Schaltausgangs bestimmt und nicht darüber ob die untere LED leuchtet.
Das bedeutet in deinem Fall, das du in allen Programm nicht die LED steuerst, sondern eine Systemvariable setzt, mit der gewünschten Farbe. Und da es 3 (Optic) LED gibt, auch gleich strukturiert.
Systemvariable: LED.Vorne (Farbe+auto), LED.ATC (true,false), LED.PWR (true,false)
Diese Variablen nutzt du in einen Programm um diese dann zu steuern. Eine solche Trennung hat den Vorteil bei Änderungen.
Ich habe die Steuerung und das Auslesen wie folgt realisiert bzw. was ich nicht verwendet habe:
Nicht verwendet:
/etc/config/disableLED - ich weiß nicht genau was das macht und brauche es auch nicht.
.../trigger - der schaltet andere ab. Läuft bei mir auch ohne abschalten auch nach Neustart. Also Finger weg, wenn es so geht.
Verwendet zum Setzen und Auslesen:
.../brightness
und um RasberryMatic daran zu hindern alles umzustellen:
daemon "hss_led" stoppen bzw. starten
Da könnte "/etc/config/disableLED" evtl. auch ausreichen.
Das Lesen des Zustand der LED wird über "watch" der ensprechenden .../brightness realisiert. Es dürfte zwar auch durch einen Programmaufruf alle 10 Sekunden laufen, aber ein daemon der automatisch eine Systemvariable schreibt ist wesentlich eleganter und schont die Rega.