Egal.
Code: Alles auswählen
rule "Bewässerung"
when
Time cron "0 0 9 * * ?" // täglich um 09:00:00 Uhr
then
if(BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state as Number).floatValue >= 45) // größer oder gleich 45?
return; // dann Rule abbrechen
if(BodenfeuchtesensorBeet_Bodentemperatur.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodentemperatur.state as Number).floatValue <= 1) // kleiner oder gleich 1?
return; // dann Rule abbrechen
shellyplugsWandprojektion192168180_Betrieb.sendCommand(ON) // Hauswasser Ventil einschalten
Bewaesserung_1_STATE.sendCommand(ON) // Ventil einschalten
// FRITZDECT210_Steckdose.sendCommand(ON) // Regenwasser Pumpe einschalten
createTimer(now.plusSeconds(600), [| // Timer für Bewässerungsdauer
// FRITZDECT210_Steckdose.sendCommand(OFF) // Regenwasser Pumpe ausschalten
Bewaesserung_1_STATE.sendCommand(OFF) // Ventil ausschalten
shellyplugsWandprojektion192168180_Betrieb.sendCommand(OFF) // Hauswasser Ventil ausschalten
])
end
Was die Steuerung der Wasserquelle betrifft, so ist es das Einfachste, das mit zwei Rules zu erledigen, zumal Du die Wasserzufuhr dynamisch steuern musst, also auch während der Bewässerung umschalten.
Code: Alles auswählen
rule "Bewässerung"
when
Time cron "0 0 9 * * ?" // täglich um 09:00:00 Uhr
then
if(BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodenfeuchtigkeit.state as Number).floatValue >= 45) // größer oder gleich 45?
return; // dann Rule abbrechen
if(BodenfeuchtesensorBeet_Bodentemperatur.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((BodenfeuchtesensorBeet_Bodentemperatur.state as Number).floatValue <= 1) // kleiner oder gleich 1?
return; // dann Rule abbrechen
Bewaesserung_1_STATE.sendCommand(ON) // Ventil einschalten
createTimer(now.plusSeconds(600), [| // Timer für Bewässerungsdauer
Bewaesserung_1_STATE.sendCommand(OFF) // Ventil ausschalten
])
end
rule "Bewässerung Quelle"
when
Item Bewaesserung_1_STATE changed or // Ventil wurde geschaltet
Item Fuellstandssensor_Regenfass_Fuellstand changed // Wasserstand hat sich geändert
then
var Integer iRegenfass = 0 // Initialwert Regentonne
var swHW = OFF // Initialwert Switch Hauswasser
var swRT = OFF // Initialwert Switch Regentonne
if(Fuellstandssensor_Regenfass_Fuellstand.state instanceof Number) // Falls Wasserstand gültig
iRegenfass = (Fuellstandssensor_Regenfass_Fuellstand.state as Number).intValue // setze Füllstand
if(Bewaesserung_1_STATE.state == ON) { // Falls Bewässerung aktiv
if(iRegenfass > 20) // Falls Füllstand über 20 %
swRT = ON // Regentonne aktivieren
else // sonst
swHW = ON // Hauswasser aktivieren
}
if(shellyplugsWandprojektion192168180_Betrieb.state != swHW) // Falls Soll von Ist abweicht
shellyplugsWandprojektion192168180_Betrieb.sendCommand(swHW.toString) // sende Schaltbefehl
if(FRITZDECT210_Steckdose.state != swRT)
FRITZDECT210_Steckdose.sendCommand(swRT.toString)
end