Seite 1 von 2

HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 10.10.2013, 23:05
von manuelwesser
Verteilt über viele verschiedene Beiträge findet man wirklich schon fast jedes erdenkliche Beispiel für die Nutzung dieser netten Anzeige.

Über ein tcl Script kann man mithilfe der Astrofunktion wunderbar die Helligkeit der LEDs anpassen:

Code: Alles auswählen

system.Exec("tclsh /usr/local/setparam.tcl JEQXXXXXXX DISPLAY_BRIGHTNESS int 1",&stdout,&stderr);
Den Wert 1 benutze ich für den Zeitraum nach Sonnenuntergang und 13 reicht mir für den Tag.

Hauptgrund für mich diesen Beitrag zu verfassen ist eine Eigenart der LED16 an meiner CCU2 mit 4 LAN Adaptern, wenn man die Tastfunktion der LED16 nutzt.

Wird über den Taster ein Programm auf der CCU2 gestartet, das selbst wiederum sofort versucht den Status der zu dem Taster gehörenden LED zu verändern (Farbwechsel von ROT auf GRÜN zum Beispiel), kommt es zu einer Servicemeldung in der CCU2, weil die Kommunikation zum LED16 gestört sei.

Das Programm wird jedoch richtig aufgerufen und der Status der angesteuerten LED wird auch korrekt gesetzt.

Dieses Verhalten kann man vermeiden, indem man den Status der LED 1 Sekunde verzögert setzen lässt. Ansonsten darf ein aufgerufenes Programm schlicht nicht den Status der LED setzen.

Da es für die Systemlast der CCU2 und erst recht der CCU1 nicht gut ist, den Status der LEDs durch die Überwachung von Zustandsänderungen an den Aktoren auszulösen, sollte man solche Konstruktionen (Kaskade von sich durch Zustandsänderungen gegenseitig auslösenden Programmen) eher vermeiden, auch wenn damit das Problem nicht auftreten dürfte.

Gerade solche Kleinigkeiten scheinen für die Stabilität und Zuverlässigkeit von Homematic sehr wichtig zu sein.

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 27.03.2014, 10:22
von Columbus
Hallo manuelwesser,

kannst Du mir bitte näher beschreiben, wie das Programm / der Script auf der CCU2 aussehen muss, damit man die Helligkeit steuern kann.
Deine eine angegebene Codezeile kann ja so noch nicht reichen, damit es funktioniert.
Ich komme per WinSCP auf die Zentrale.

Gruß Columbus

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 24.05.2014, 10:37
von manuelwesser
Hallo Columbus,

http://homematic-forum.de/forum/viewtopic.php?t=5621

Dieses TCL Script von owagner dient als Grundlage, ich habe es unverändert genutzt. Den Link hätte ich besser gleich mit in den Artikel aufnehmen sollen :-)

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 20.10.2014, 14:00
von mademyday
manuelwesser hat geschrieben: Über ein tcl Script kann man mithilfe der Astrofunktion wunderbar die Helligkeit der LEDs anpassen:

Code: Alles auswählen

system.Exec("tclsh /usr/local/setparam.tcl JEQXXXXXXX DISPLAY_BRIGHTNESS int 1",&stdout,&stderr);
Gibt es das auch für die Einstellung "Die Anzeige schaltet sich aus nach ... s (0.0 - 255.0)"?

--> hat sich erledigt, Tante Edith hat es gefunden:

Code: Alles auswählen

tclsh set_param.tcl JEQxxx DISPLAY_ENERGYOPTIONS string 120.0

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 01.11.2014, 18:24
von homey21
Hi, rufst Du das auch mit system.exec auf? Ich würde lieber diesen Befehl nicht nutzen, weil davon meine CCU immer einfriert. Gibt es da eine Alternative?

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 23.12.2014, 17:36
von manuelwesser
Bisher ist mir keine Alternative zu System.exec bekannt, immerhin ist das auch eine nicht offiziell verfügbare Funktion, die Helligkeit kann sonst ja nur dauerhaft über die WebGui gesetzt werden.

Da dies aktuell der einzige Einsatzfall von System.exec ist, kann ich nichts zur Stabilität sagen - bei mir läuft es.

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 23.12.2014, 18:02
von Roland M.
Hallo!
manuelwesser hat geschrieben:Bisher ist mir keine Alternative zu System.exec bekannt,
CUxD!

Funktioniert zuverlässig und ohne Absturz!


Roland

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 13.09.2018, 10:20
von womber
Hallo,

Also muss ich das Script so wie es da steht ganz oben auf der anderen Seite auf die ccu speichern, die Textzeile als Programm - astrofunktion tagsüber starten. Und das Display wird dunkler?
Wie muss das Ganze als CuxD aussehen?

Viele Grüße,
Alex

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 13.09.2018, 13:46
von alchy
Jein.
Das oben aufgeführte Script ruft ein TCL Script in Form einer Datei setparam.tcl im Pfad /usr/local/ der CCU auf.
Sofern du die passende Datei dort liegen hast, kannst du den Aufruf so bewerkstelligen.
Der Aufruf über CUD.Exec sollte > H I E R < beschrieben sein.

Alchy

Re: HM-OU-LED16 - Statusanzeige in Scripten nutzen

Verfasst: 14.09.2018, 07:22
von womber
SUPER! Vielen Dank für die Hilfe @alchy.
Mit system.Exec funktioniert es schon mal. Sehe ich das richtig, dass der Aufruf über CUxD dann so heissen muss

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State system.Exec("tclsh /usr/local/setparam.tcl JEQXXXXXXX DISPLAY_BRIGHTNESS int 1",&stdout,&stderr);
Oder habe ich da einen Denkfehler?

VG,
Alex