Farbwerte für mehrere Rules benutzen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Farbwerte für mehrere Rules benutzen

Beitrag von Hoggle »

Hallo.
Wahrscheinlich mal wieder seine Anfängerfrage, aber ich komme da nicht weiter.
Ich habe folgende Geschichte:
Unter meinem Fernseher habe ich einen RGBW-LED-Stripe geklebt, der per FS20 Schalter per Rule angeschaltet wird.
Damit ich beim einschalten immer den gleichen Farbwert habe, übergebe ich den Wert beim Schalten.
Jetzt habe ich noch eine weitere Rule erstellt, das der Stripe angehen soll, wenn der Fernseher angeschaltet wird und es dunkel genug ist, bzw. angeschaltet wird, wenn es dunkel ist und der Fernseher läuft.
Hier mal die Rules, die auch so funktionieren:

Code: Alles auswählen

rule "TV_LED_an_wenn_Fernseher_an"
when
	Item TVSamsungLED55_Power changed to ON
then
    if (LUX_Wert_Dunkel.state.toString =="ON")
        {
		LEDTV_Color.sendCommand("200,100,10")
		LEDTV_White.sendCommand(0)
        LEDTV_Power.sendCommand(ON)
		//sendTelegram("holger", "Das Licht im Fernsehschrank wurde angeschaltet")
		}
end

rule "TV_LED_an_wenn_Fernseher_an_und_Dunkel"
when
	Item LUX_Wert_Dunkel changed to ON
then
    if (TVSamsungLED55_Power.state.toString =="ON")
        {
		LEDTV_Color.sendCommand("200,100,10")
		LEDTV_White.sendCommand(0)
        LEDTV_Power.sendCommand(ON)
		//sendTelegram("holger", "Das Licht im Fernsehschrank wurde angeschaltet")
		}
end
rule "TV_LED_an_wenn_Schalter2_an"
when
	Item Wz_fs20_k2 changed to ON
then
		LEDTV_Color.sendCommand("200,100,10")
		LEDTV_White.sendCommand(0)
        LEDTV_Power.sendCommand(ON)
		sendTelegram("holger", "Das Licht im Fernsehschrank wurde angeschaltet")
end
Wie gesagt, die Rules funktionieren einwandfrei, aber ich würde jetzt gerne, damit ich immer die gleiche Farbe beim einschalten habe, den Farbwert gerne als Variable am Anfang der Rule-Datei definieren. Aber wie definiere ich dies?
Als "val", also

Code: Alles auswählen

val FarbwertLED = "200,100,10"
oder wie und noch wichtiger, wie setze ich die Variable dann in der Rule ein?

Code: Alles auswählen

		LEDTV_Color.sendCommand(FarbwertLED)
Kann mir da jemand mit einem Schnipsel helfen?

Ach so, wieso will ich das ändern? - Der Stripe ist seid gestern geklebt und da ich ja nicht der einzige Bewohner im Haus bin, wird im Moment noch von der oberen Heeresführung und meiner Tochter am Design gefeilt.
Ich will also nicht jedesmal durch jede Rule (Sind insgesamt 8, bis jetzt) und den Wert ändern.
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Farbwerte für mehrere Rules benutzen

Beitrag von hr3 »

Das Schlüsselwort ist HSBType

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Farbwerte für mehrere Rules benutzen

Beitrag von udo1toni »

Du könntest auch ein paar Color Items definieren, die Du mit mapdb persistierst. Dazu eine Rule, mit der Du den aktuellen Stand "speicherst" und eine weitere Rule, die je nach Trigger die verschiedenen Speicher lädt. Damit ließe sich dann über die Oberfläche die Farbe auswählen und abspeichern.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten