Da ich hier über kurz oder lang sowieso Fragen dazu haben werde, werde ich das mal etwas ausführlicher beschreiben:
Zwei Rules, drei Räume und zusammen sechs Leuchten.
Die drei Leuchten in Raum B sind in so fern besonders weil sie zusammen an einer Lampe hängen (eine Lampe mit drei Leuchten eben). In Raum B befindet sich zudem noch ein Hue Bewegungsmelder, der auch den LichtLevel liefert.
Rule 1 Bewegungsmelder:
Wechselt der Status des BWM (ganztägig), wird geprüft ob der Lichtlevel unter 3000 liegt, wenn ja
wird geprüft ob Leuchte B3 AN ist (da sie NICHT einzeln zu schalten ist, bedeutet das, das die ganze Lampe per App oder Sprachsteuerung EIN geschaltet wurde und kein "BWM-Licht" gebraucht wird).
Ist dies der Fall werden zur Sicherheit B1, B2 und B3 auf den gleichen Prozentwert gedimmt.
Ist dies NICHT der Fall und der BWM hat den Status "ON" wird B1 EIN geschaltet, ein Timer von 12 sec gesetzt und anschließend wieder AUS geschaltet.
Bei der Rule hast Du mir damals geholfen und sie funktioniert auch (fast) Tadellos. Also alles bestens!

Rule 2 Abendlicht:
Bisher habe ich A1, A2 und C1 per Cron um 21:00 EIN geschaltet und wenn ich irgendwann nachts C1 AUS schalte, schalten sich A1 und A2 auch aus.
Das will ich nun zum einen erweitern und zum anderen auch per LichtLevel auslösen...:
Sinkt abends zwischen 19:00 und 22:00 Uhr der LichtLevel auf unter 2500 sollen
A1, A2, B2, und C1 EIN geschaltet werden (letztendlich gedimmt und in besonderer Farbe, aber das ist erst einmal unerheblich!)

Raum A: ist A2 schon EIN geschaltet soll nichts weiter passieren
Raum B: ist B3 EIN geschaltet (und somit wieder die ganze Lampe) soll auch nichts weiter passieren.
Problem 1: ist B3 AUS und B2 wird dann EIN geschaltet darf B1 in dieser Zeit ja NICHT vom BWM geschaltet werden! Erst wenn alle Leuchten in Raum B AUS sind, soll der BWM wieder schalten.
Raum C: C1 ist garantiert AUS und wird einfach nur EIN geschaltet. Schalte ich später C1 AUS, werden A1, A2 und B2 mit AUS geschaltet und der BWM soll wieder aktiv werden.
Problem 2 und IMO das Hauptproblem: Sind A2 und B3 ab 19:00 Uhr EIN geschaltet und somit von der Abendlichtrule unbehelligt und werden irgendwann bei Dunkelheit (LichtLevel 0) wieder ausgeschaltet, WIE würde dann das "Abendlicht" eingeschaltet? Bei Raum A kann ich mir das ja noch vorstellen: Wenn LichtLevel 0, alle Leuchten AUS und zwischen 19:00 und 22:00 Uhr....
Aber Raum B, wo der BWM zwischenfunkt...?
Lange Rede kurzer Sinn: das ist mein Vorhaben und über ein paar Denkanstöße würde ich mich freuen. Ich poste mal die beiden Rules mit denen ich schon arbeite, allerdings heißen da die Leuchten nicht A1, A2 usw. sondern haben ihre wirklichen Item Namen was zugegeben etwas verwirrend ist.
Danke fürs lesen,
Code: Alles auswählen
rule "Nachtlicht_ein"
when
Item Hue_AmbientLight_Sensor1_LightLevel changed // LichtLevel wechselt
then
if(UHR_abend.state == OFF){ // Abendschalter 19:00 - 22:00 AUS ? -> Abbruch
logInfo("Bettlicht","Abbruch -> noch nicht 19:00")
return;
}
if(LED_schra_gross_Power.state == ON) { // Schranklicht AN ? -> Abbruch
logInfo("Bettlicht","Abbruch -> LED Schrank ist eingeschaltet ---")
return;
}
if(2500 > Hue_AmbientLight_Sensor1_LightLevel.state as Number) { // wenn LichtLevel unter 2500 ist
LED_sock_gross_Power.sendCommand(ON) // Sockellicht AN
logInfo("Bettlicht","LED Sockel gross wurde eingeschaltet ---")
LED_schra_gross_Power.sendCommand(ON) // Schranklicht AN
logInfo("Bettlicht","LED Schrank gross wurde eingeschaltet ---")
Hue_BedRon_Color.sendCommand("26,99,33") // HUE Bettlich AN, "Nachtlicht", 33%
verz_farbe?.cancel // evtl. laufenden Timer abbrechen
verz_farbe = createTimer(now.plusSeconds(2), [| // Timer auf 2 sec setzen
LED_sock_gross_Color.sendCommand("120.0000035762786865234375000,100,2") // LED Farbe ändern
logInfo("Bettlich","LED Sockel gross FARBE gesetzt ---")
LED_schra_gross_Color.sendCommand("120.0000035762786865234375000,100,2") // LED Farbe ändern
logInfo("Bettlicht","LED Schrank gross FARBE gesetzt ---")
verz_farbe = null // Timer wieder auf NULL setzen
]
)
}
end
Code: Alles auswählen
var Timer tBewegung = null // Timervariable definieren
rule "BWM ganztags"
when
Item Hue_MotionSensor1_Presence changed // Bewegung wurde erkannt
then
logInfo("PROD_BW_flur_rules","BWM -> Bewegung erkannt.")
if
(3000 < Hue_AmbientLight_Sensor1_LightLevel.state as Number) { // Abfrage des Bewegungsmelders wie hell es ist
logInfo("PROD_BW_flur_rules","BWM -> kein Licht, Light Level ueber 3000.") // Log Info
return;
}
if
(Hue_Flur3_Brightness.state > 0) { // Abfrage ob Flur1 schon an ist, wenn ja ->
Hue_Flur1_Brightness.sendCommand(70) // Flur_1 auf 50 % Dimmen
Hue_Flur2_ColorTemperature.sendCommand(70) // Flur_2 auf 50 % Dimmen
Hue_Flur3_Brightness.sendCommand(70) // Flur_3 auf 50 % Dimmen
logInfo("PROD_BW_flur_rules","BWM -> Flurlicht ist bereits eingeschaltet.")
return;
}
tBewegung?.cancel // zunächst eventuell laufende Timer entfernen
if(Hue_MotionSensor1_Presence.state == ON){ // Falls Bewegung
Hue_Flur1_Brightness.sendCommand(10) // Licht an
logInfo("PROD_BW_flur_rules","BWM -> Flur kleines Licht AN.")
}
else // sonst
tBewegung = createTimer(now.plusSeconds(12), [| // Timer auf 12 sec anlegen
Hue_Flur1_Power.sendCommand(OFF) // und nach Ablauf Licht aus
logInfo("PROD_BW_flur_rules","BWM -> Timer -> Flur kleines Licht AUS.")
])
end