zur Anwendung:
Ich habe an meine BJ Komfort BWM einen Shelly dimmer angeschlossen. Dieser verrichtet seine Arbeit hervorragend. Nun möchte ich die Schaltzeiten und Helligkeitswerte unabhängig vom BJ BWM steuern. Auch dieses klappt hervorragend. Lediglich bei der Einstellung in den Rules mit den Schaltzeiten, könnte noch etwas optimiert werden. Daher wäre ich sehr dankbar, wenn ihr einen Blick auf die Rule werfen könntet und mir evtl. ein Beispiel nennen, wie ich die Zeiten eleganter einstellen könnte.
Ich würde gerne zu unterschiedlichen Zeiten drei Helligkeiten integrieren:
Z.B. ab 17Uhr und ab 5 Uhr helles Licht, ab 21 Uhr bis 0 Uhr gedimmtes Licht, und von 0 - 5Uhr ein sehr gedimmtes "Toilettenlicht".

Zur Info: ich habe noch einen Dummyswitch erstellt, damit bei Besuch die Dauer des Schaltintervalls verlängert wird und immer helles Licht angeht.
Vielen Dank im voraus und
VG
Gerhard
Code: Alles auswählen
var Timer tBewegung = null
var int iSekundenEG = 15
var int iSekundenOG = 15
var int iSekundenOG_Nacht = 10
var int isekunden_besuch = 55
var int ilux = 2000
rule "Bewegungsmelder EG"
when
Item shellydimmer_Hausgang_EG_Input_1 changed from 0 to 1
then
if ((Sonnensensor.state as DecimalType) < (ilux) || (now.getHourOfDay > 20 ) || (now.getMinutesOfDay < 300)) {
logInfo("bewegung","Es ist Nacht. Kleines Licht.")
shelly_Hausgang_EG_Dimmer_bwm.sendCommand(7)
tBewegung?.cancel
tBewegung = createTimer(now.plusSeconds(iSekundenEG), [ |
shellydimmer_Hausgang_EG_Dimmer.sendCommand(3)
shellydimmer_Hausgang_EG_Dimmer.sendCommand(0)
])
}
else {
logInfo("bewegung","Es ist Abend. Helles Licht.")
shelly_Hausgang_EG_Dimmer_bwm.sendCommand(100)
tBewegung?.cancel
tBewegung = createTimer(now.plusSeconds(iSekundenEG), [ |
shellydimmer_Hausgang_EG_Dimmer.sendCommand(66)
shellydimmer_Hausgang_EG_Dimmer.sendCommand(33)
shellydimmer_Hausgang_EG_Dimmer.sendCommand(0)
])
}
if(Besuch_anwesend.state == ON) {
logInfo("bewegung","Es ist dunkel und Besuch, helles Licht.")
tBewegung?.cancel
shellydimmer_Hausgang_EG_Dimmer.sendCommand(100)
tBewegung = createTimer(now.plusSeconds(isekunden_besuch), [ |
shellydimmer_Hausgang_EG_Dimmer.sendCommand(66)
shellydimmer_Hausgang_EG_Dimmer.sendCommand(33)
shellydimmer_Hausgang_EG_Dimmer.sendCommand(0)
])
}
end