leider stehe ich wieder vor einem Problem.
Ich möchte anhand der Sauna Temperatur ein Rollo herunterfahren.
Beim Sonnenuntergang funktioniert da Ganze ja ganz gut, da es ja nur einmal geschaltet wird.
Da sich die Sauna Temperatur aber ständig ändert, dachte ich es reicht ein Timer von 30 sec. der wartet bis das Rollo unten ist.
Dem ist leider nicht so, irgenwie geht es bei jeder Temperaturänderung auf und zu.
Unsere Rollos funktionieren leider nach dem AUF / STOP / ZU / STOP Prinzip.
Die Doppelte (ON) Steuerung habe ich in dem Fall, das dass Rollo evtl. beim ersten Mal nach oben fahren würde, falls es vorher z.b. halb geschlossen war.
Code: Alles auswählen
Stiemap:
Switch item=Sauna_Automatik label="Sauna Automatik" mappings=[0="AUS", 1="Nur Licht" , 2="Nur Musik" ,3="Licht & Musik"]
Das Rollo soll aber immer gesteuert werden !
Code: Alles auswählen
Rules:
var Timer Warte
rule "Sauna Automatik"
when
Item SaunaTemp received update
then
if ((SaunaTemp.state >= 55) && (SaunaTemp.state <= 99 )) {
if((Sauna_Automatik.state == 1) || (Sauna_Automatik.state == 3)) {
var State = SaunaTemp.state as DecimalType
if ((State >= 55) && (State < 59.9)) {sendCommand(schelly_rgb_fullcolor,"white") SaunaState.sendCommand (0)}
if ((State >= 60) && (State < 65.9)) {sendCommand(schelly_rgb_fullcolor,"blue") SaunaState.sendCommand (1)}
if ((State >= 65) && (State < 70.9)) {sendCommand(schelly_rgb_fullcolor,"yellow") SaunaState.sendCommand (2)}
if ((State >= 70) && (State < 75.9)) {sendCommand(schelly_rgb_fullcolor,"green") SaunaState.sendCommand (3)}
if ((State >= 75) && (State < 99.9)) {sendCommand(schelly_rgb_fullcolor,"red") SaunaState.sendCommand (4)}
}
if((Sauna_Automatik.state == 2) || (Sauna_Automatik.state == 3)) {
if (SaunaTemp.state >= 65) {
if (SCLX79_Z2_Power.state !=(ON)) {
SCLX79_Z2_Power.sendCommand(ON) {
if (SCLX79_Z2_InputSource.state !=(38))
SCLX79_Z2_InputSource.sendCommand(38)
SCLX79_Z2_Volume.sendCommand(15)}
if (SaunaTemp.state < 50) {
if (SCLX79_Z2_Power.state !=(OFF))
SCLX79_Z2_Power.sendCommand(OFF)
}}}}
// Ab hier ist mein Problem!!
if((SaunaTemp.state >= 70) && (Sauna_Automatik.state >= 1)){
if (Rollo_FlurHinten_c.state == OPEN)
Rollo_Flur_Hinten.sendCommand(ON)}
Warte = createTimer(now.plusSeconds(30)) [|
if (Rollo_FlurHinten_c.state == OPEN)
Rollo_Flur_Hinten.sendCommand(ON)]
}
end