Re: Automatische Bewässerung von Gewächshaus und Rasen
Verfasst: 19. Sep 2023 22:16
Das Item liefert den richtigen Wert
Code: Alles auswählen
rule "Bewässerung dynamisch Blumenbeet"
when
Time cron "0 0 20 * * ?" // täglich um 20:00:00 Uhr "0 0 9 * * ?" Test Minuten nach der vollen Stunde"0 06 * * * ? *"
then
logInfo("watering", "Bewässerung dynamisch Blumenbeet gestartet- geplante Startzeit 20 Uhr")
if(Sensor_6_Bodenfeuchtigkeit.state instanceof Number) { // enthält das Item einen gültigen Zahlenwert?
logInfo("watering","Bodenfeuchte {} als Zahl {}",Sensor_6_Bodenfeuchtigkeit.state,(Sensor_6_Bodenfeuchtigkeit.state as Number).floatValue)
if((Sensor_6_Bodenfeuchtigkeit.state as Number).floatValue >= 45) // größer oder gleich 45?
return; // dann Rule abbrechen
}
...
Code: Alles auswählen
log:set WARN org.openhab.core.model.script.watering
Code: Alles auswählen
rule "Bewässerung über Hauswasser Blumenbeet"
when
Time cron "0 0 20 * * ?" // täglich um 20:00 Uhr ab 40%
then
if(Sensor_6_Bodenfeuchtigkeit.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((Sensor_6_Bodenfeuchtigkeit.state as Number).floatValue >= 45) // größer oder gleich 45?
return; // dann Rule abbrechen
if(Sensor_6_Bodentemperatur.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((Sensor_6_Bodentemperatur.state as Number).floatValue <= 1) // kleiner oder gleich 1?
return; // dann Rule abbrechen
shelly_pug_s_31_shellyplugsa7558f192168131_Betrieb.sendCommand(ON) // Gartenwasser Ventil einschalten
Bewaesserung_1_STATE.sendCommand(ON) // Ventil einschalten
// GartenpumpeHomematicSteckdose_State.sendCommand(ON) // Pumpe einschalten
createTimer(now.plusSeconds(1200), [| // Timer für Bewässerungsdauer
// GartenpumpeHomematicSteckdose_State.sendCommand(OFF) // Pumpe ausschalten
Bewaesserung_1_STATE.sendCommand(OFF) // Ventil ausschalten
shelly_pug_s_31_shellyplugsa7558f192168131_Betrieb.sendCommand(OFF) // Gartenwasser Ventil ausschalten
])
end
Code: Alles auswählen
rule "Bewässerung über Tank Topfpflanzen"
when
Time cron "0 45 18 * * ?" // täglich um 18:45 Uhr ab 55%
then
if(Sensor_2_Bodenfeuchtigkeit.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((Sensor_2_Bodenfeuchtigkeit.state as Number).floatValue >= 60) // größer oder gleich 60?
return; // dann Rule abbrechen
if(Sensor_2_Bodentemperatur.state instanceof Number) // enthält das Item einen gültigen Zahlenwert?
if((Sensor_2_Bodentemperatur.state as Number).floatValue <= 1) // kleiner oder gleich 1?
return; // dann Rule abbrechen
shelly_plug_s_80_shellyplugsde4aaa192168180_Betrieb.sendCommand(ON) // Ventil am Tank einschalten
GartenpumpeHomematicSteckdose_State.sendCommand(ON) // Regenwasser Pumpe einschalten
createTimer(now.plusSeconds(1200), [| // Timer für Bewässerungsdauer
GartenpumpeHomematicSteckdose_State.sendCommand(OFF) // Regenwasser Pumpe ausschalten
shelly_plug_s_80_shellyplugsde4aaa192168180_Betrieb.sendCommand(OFF) // Ventil am Tank ausschalten
])
end
Code: Alles auswählen
var minimum = 100
gBodenfeuchte_1.members.filter[s|s.state instanceof Number].forEach[i|
if((i.state as Number).floatValue< minimum)
minimum = (i.state as Number).floatValue
]
if(minimum < 50)
...