den Status der CCU3 LED im Skript

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von Henke » 19.02.2024, 18:32

Aufgrund dieses Theats hat es mich gepackt und ich spare jetzt auch in der Nacht Strom durch ausschalten der LEDs. 8)

Siehe: viewtopic.php?f=77&t=81798
andrzejgilas hat geschrieben:
19.02.2024, 17:48
RaspberryMatic nicht funktionieren werden
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.

andrzejgilas
Beiträge: 202
Registriert: 16.01.2021, 00:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 19 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von andrzejgilas » 19.02.2024, 19:42

Henke hat geschrieben:
19.02.2024, 18:32
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.
wenn die Datei: disableLED in etc/config vorhanden ist, leuchtet die CCU3-LED nicht, wenn sie nicht vorhanden ist, leuchtet die LED.
mein Skript prüft, ob diese Datei vorhanden ist oder nicht und schreibt sie dank Harry in eine Systemvariable, ich habe mich wie ein kleines Kind gefreut, als es anfing zu funktionieren
Was Sie in diesem Thema viewtopic.php?f=77&t=81798 getan haben, ist für mich kosmisch. Das ist wie ein Vergleich zwischen einem Fahrrad und einem Auto ( ich bin ein Fahrrad ;-) )
Wenn Du schreiben könntest, wie man die Farben der LEDs mit Skripten in CCU3 steuern kann, würde ich mich sehr freuen.
Vielen Dank und ich bin sehr beeindruckt von Ihrem Wissen

und es tut mir leid, dass ich die deutsche Sprache so sehr verletzt habe
CCU3 (rpi5) RaspberryMatic + 49 Gerate (HmIP-HAP, HmIP-HAP JS1, 3xHmIP-BWTH, 3xHmIP-PCBS, 2xHmIP-PCBS2, HmIP-SMO, 2xHmIP-SWDO-PL, 3xHmIP-PSM-CH, HmIP-FCI6, 4xHmIP-SRH, 3xHmIP-SWDO-I, HmIP-KRC4, HmIP-RC8, 7xHmIP-FBL, HmIP-FDT, HmIP-FSI16, 5xHmIP-FSM, 2xHmIP-STHO, HmIP-WRC6, 2xHmIP-SWDM, HmIP-FSM16, HmIP-WTH-1, 2xHMIP-WRC2) , CCU-Historian, Mediola App, VPN - Synology RT2600ac

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von Henke » 20.02.2024, 09:25

Es gibt 5 steuerbare LEDs auf der CCU:
'rpi_rf_mod:red',
'rpi_rf_mod:green',
'rpi_rf_mod:blue',
"ACT",
"PWR",

An,Aus geht über: /sys/class/leds/XXX'/brightness

Damit ist "kleine grüne" ein:

Code: Alles auswählen

	system.Exec("echo 255 >/sys/class/leds/ACT/brightness"); 
und aus;

Code: Alles auswählen

	system.Exec("echo 0 >/sys/class/leds/ACT/brightness"); 
Sollte das nicht laufen, bei beiden Befehlen noch

Code: Alles auswählen

	system.Exec("echo none >/sys/class/leds/ACT/trigger"); 
davor setzen, um die Kontrolle zu übernehmen.

Die vordere LED ist etwas problematischer, da sie regelmäßig angesteuert wird. Also mal folgendes Testen statt aus:

Code: Alles auswählen

	system.Exec("touch /etc/config/disableLED");
	system.Exec("echo 255 >/sys/class/leds/rpi_rf_mod:green/brightness"); 
	system.Exec("echo 255 >/sys/class/leds/rpi_rf_mod:blue/brightness"); 
Wie lange leuchtet die und in welcher Farbe?

andrzejgilas
Beiträge: 202
Registriert: 16.01.2021, 00:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 19 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von andrzejgilas » 20.02.2024, 16:30

Mit dem Befehl schalte ich die kleine grüne LED ein

Code: Alles auswählen

system.Exec("echo heartbeat >/sys/class/leds/ACT/trigger"); 
Die große RPI RF MOD-Diodensteuerung funktioniert bei mir mit Ihrem Code nicht
CCU3 (rpi5) RaspberryMatic + 49 Gerate (HmIP-HAP, HmIP-HAP JS1, 3xHmIP-BWTH, 3xHmIP-PCBS, 2xHmIP-PCBS2, HmIP-SMO, 2xHmIP-SWDO-PL, 3xHmIP-PSM-CH, HmIP-FCI6, 4xHmIP-SRH, 3xHmIP-SWDO-I, HmIP-KRC4, HmIP-RC8, 7xHmIP-FBL, HmIP-FDT, HmIP-FSI16, 5xHmIP-FSM, 2xHmIP-STHO, HmIP-WRC6, 2xHmIP-SWDM, HmIP-FSM16, HmIP-WTH-1, 2xHMIP-WRC2) , CCU-Historian, Mediola App, VPN - Synology RT2600ac

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von Henke » 20.02.2024, 17:09

andrzejgilas hat geschrieben:
20.02.2024, 16:30
Mit dem Befehl schalte ich die kleine grüne LED ein
und das ist nicht der richtige Befehl!

Einfach mal mit Putty direkt auf die CCU und dann:

Code: Alles auswählen

echo none >/sys/class/leds/ACT/trigger
echo 1 >/sys/class/leds/ACT/brightness
echo 0 >/sys/class/leds/ACT/brightness
echo 1 >/sys/class/leds/ACT/brightness
echo 0 >/sys/class/leds/ACT/brightness
Der trigger muss nur einmal ausgeführt werden um die Kontrolle zu übernehmen.
Danach wird die grüne LED An/Aus/An/Aus geschaltet.

Jetzt mal die Kontrolle der großen übernehmen:

Code: Alles auswählen

monit unmonitor hss_led
/sbin/start-stop-daemon -K -q -p /var/run/hss_led.pid
und schalten:

Code: Alles auswählen

echo 0 >/sys/class/leds/rpi_rf_mod:blue/brightness
echo 1 >/sys/class/leds/rpi_rf_mod:red/brightness
echo 1 >/sys/class/leds/rpi_rf_mod:green/brightness
echo 1 >/sys/class/leds/rpi_rf_mod:blue/brightness
echo 0 >/sys/class/leds/rpi_rf_mod:red/brightness
echo 0 >/sys/class/leds/rpi_rf_mod:green/brightness
echo 0 >/sys/class/leds/rpi_rf_mod:blue/brightness
Kontrolle wieder abgeben:

Code: Alles auswählen

/sbin/start-stop-daemon -S -q -b -m -p /var/run/hss_led.pid --exec /bin/hss_led -- -l 6
monit monitor hss_led

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: den Status der CCU3 LED im Skript

Beitrag von jp112sdl » 20.02.2024, 17:26

Statt

Code: Alles auswählen

monit unmonitor hss_led
/sbin/start-stop-daemon -K -q -p /var/run/hss_led.pid
kann auch auf kürzerem Weg

Code: Alles auswählen

monit stop hss_led
und

Code: Alles auswählen

monit start hss_led
verwendet werden.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

andrzejgilas
Beiträge: 202
Registriert: 16.01.2021, 00:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 19 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von andrzejgilas » 20.02.2024, 17:46

alles funktioniert :-) Ich habe schon tausend Ideen, wie ich es verwenden kann

kleine grüne LED - leuchtet permanent:

Code: Alles auswählen

system.Exec("echo 1 >/sys/class/leds/ACT/brightness"); 
kleine grüne LED - dauerhaft ausschalten:

Code: Alles auswählen

system.Exec("echo 0 >/sys/class/leds/ACT/brightness");
kleine rote LED - dauerhaft einschalten:

Code: Alles auswählen

system.Exec("echo 1 >/sys/class/leds/PWR/brightness");
kleine rote LED - dauerhaft ausschalten:

Code: Alles auswählen

system.Exec("echo 0 >/sys/class/leds/PWR/brightness");




LED CCU3 - Kontrolle von CCU3 übernehmen: - wichtig !

Code: Alles auswählen

system.Exec("monit stop hss_led"); 


Einschalten der grüne farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 1 >/sys/class/leds/rpi_rf_mod:green/brightness");
Ausschalten der grüne farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:green/brightness");
Einschalten der roten farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 1 >/sys/class/leds/rpi_rf_mod:red/brightness");
Ausschalten der roten farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:red/brightness"); 
Einschalten der blauen farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 1 >/sys/class/leds/rpi_rf_mod:blue/brightness"); 
Ausschalten der blauen farbe LED CCU3:

Code: Alles auswählen

system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:blue/brightness");



LED CCU3 - Übergabe der Steuerung an CCU3:

Code: Alles auswählen

system.Exec("monit start hss_led");



EINSCHALTEN VON ROT UND GRÜN - ERGIBT GELBE FARBE
GRÜN UND BLAU AN - ERGIBT TÜRKISE FARBE
GRÜN UND BLAU UND ROT EIN - WEISS
BLAU UND ROT EIN - ERGIBT DIE FARBE ROSA ( MAGENTA )

Ich entschuldige mich für die große Schriftgröße
CCU3 (rpi5) RaspberryMatic + 49 Gerate (HmIP-HAP, HmIP-HAP JS1, 3xHmIP-BWTH, 3xHmIP-PCBS, 2xHmIP-PCBS2, HmIP-SMO, 2xHmIP-SWDO-PL, 3xHmIP-PSM-CH, HmIP-FCI6, 4xHmIP-SRH, 3xHmIP-SWDO-I, HmIP-KRC4, HmIP-RC8, 7xHmIP-FBL, HmIP-FDT, HmIP-FSI16, 5xHmIP-FSM, 2xHmIP-STHO, HmIP-WRC6, 2xHmIP-SWDM, HmIP-FSM16, HmIP-WTH-1, 2xHMIP-WRC2) , CCU-Historian, Mediola App, VPN - Synology RT2600ac

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von Henke » 20.02.2024, 18:52

putty -> script
monit start hss_led -> system.Exec("monit start hss_led");

Systemvariable: LED.Vorne.Set (Farbe+auto), LED.Vorne.Ist
Programm das bei Änderung einer der Systemvariablen triggert
Dann folgendes Script, nicht getestet, muss noch um die anderen Farben erweitert werden:

Code: Alles auswählen

! Script LED.Vorne setzen
object oIst = dom.GetObject(ID_SYSTEM_VARIABLES).Get("LED.Vorne.Ist");
object oSet = dom.GetObject(ID_SYSTEM_VARIABLES).Get("LED.Vorne.Set");
string sSet = oSet.State();
string sIst = oIst.State();

if ( sSet == sIst ) {	return; }

if ( sSet != "auto" )
{
	if ( sIst == "auto" )
	{
		! my control
		system.Exec("monit stop hss_led");
	}
}
else
{
	if ( sIst != "auto" )
	{
		! your control
		system.Exec("monit start hss_led");
		oIst.State("auto");
	}
	return;
}

if ( sSet == "red" )
{
	system.Exec("echo 255 >/sys/class/leds/rpi_rf_mod:red/brightness");
	system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:green/brightness");
	system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:blue/brightness");
    oIst.State("sSet"); return;
}

if ( sSet == "blue" )
{
	system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:red/brightness");
	system.Exec("echo 0 >/sys/class/leds/rpi_rf_mod:green/brightness");
	system.Exec("echo 255 >/sys/class/leds/rpi_rf_mod:blue/brightness");
    oIst.State("sSet"); return;
}

! usw...
!            case 'red': this.manual(255, 0, 0); break;
!            case 'green': this.manual(0, 255, 0); break;
!            case 'blue': this.manual(0, 0, 255); break;
!            case 'yellow': this.manual(255, 255, 0); break;
!            case 'magenta': this.manual(255, 0, 255); break;
!            case 'cyan': this.manual(0, 255, 255); break;
!            case 'white': this.manual(255, 255, 255); break;
!            case 'off': this.manual(0, 0, 0); break;

WriteLine ( "Farbe unbekannt " # sSet );
quit;
Die LED wird dann einfach durch setzen der Variable "LED.Vorne.Set" gesteuert und wenn die Anzeige beim manuellen Betrieb ausreicht, die Variable "LED.Vorne.Ist" nutzen.

Edit: Haben uns überschnitten, aber ich halte meine Version für etwas eleganter. 8)

andrzejgilas
Beiträge: 202
Registriert: 16.01.2021, 00:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 19 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von andrzejgilas » 20.02.2024, 19:07

welche Typen von Systemvariablen sind zu verwenden?
CCU3 (rpi5) RaspberryMatic + 49 Gerate (HmIP-HAP, HmIP-HAP JS1, 3xHmIP-BWTH, 3xHmIP-PCBS, 2xHmIP-PCBS2, HmIP-SMO, 2xHmIP-SWDO-PL, 3xHmIP-PSM-CH, HmIP-FCI6, 4xHmIP-SRH, 3xHmIP-SWDO-I, HmIP-KRC4, HmIP-RC8, 7xHmIP-FBL, HmIP-FDT, HmIP-FSI16, 5xHmIP-FSM, 2xHmIP-STHO, HmIP-WRC6, 2xHmIP-SWDM, HmIP-FSM16, HmIP-WTH-1, 2xHMIP-WRC2) , CCU-Historian, Mediola App, VPN - Synology RT2600ac

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: den Status der CCU3 LED im Skript

Beitrag von Henke » 20.02.2024, 19:40

string - Zeichenkette

Eleganter wäre es jedoch das auf Liste umzustellen nur dann muss auch das Script angepasst werden.

Antworten

Zurück zu „HomeMatic allgemein“