Es kommt ja der Sommer, daher folgendes Szenario:
Man möchte bewässern, wenn
Ich wollte das ja als Makro anbieten, aber ich denke, man kommt so fast besser klar, weil doch jeder da seine persönliche Vorstellung, etc. hat.
Der Kern ist eigentlich: Wie zähl ich die Trockentage, der Rest ist m.E. einfach.
Hier der Code mit meinen Gruppenadressen:
Anbei noch zur besseren Lesbarkeit das Ganze als Bildschirmschuss.
Frei zum Diskutieren...
Man möchte bewässern, wenn
- es 2 Tage nicht geregnet hat und es Hochsommer (1.6 bis 31.08)
- es 3 Tage nicht geregnet hat und es zwischen 1.05 und 30.09 aber nicht im Hochsommer (da ja alle 2 Tage)
- Man will nachts um 1:00 bewässern
- Man sprengt nur, wenn es um diese Zeit über 10° hat
- Wenn es nicht über 10° hat, soll einfach am nächsten Tag gewässert werden
- Man hat Magnetventile verbaut und diese über einen Heizungsaktor angesteuert (
) und kann dann je nach Sonnenlage im Grundstück über Prozentangabe intervallartig sprengen - Die Bewässerungszeit betrage 1.5 Stunden
Ich wollte das ja als Makro anbieten, aber ich denke, man kommt so fast besser klar, weil doch jeder da seine persönliche Vorstellung, etc. hat.
Der Kern ist eigentlich: Wie zähl ich die Trockentage, der Rest ist m.E. einfach.
Hier der Code mit meinen Gruppenadressen:
Code:
//------------------------------------------------------
// Bewässerung
//------------------------------------------------------
RegenIndikator=AUS
TrockenTage=0
TageBisZurBewaesserung=3
Bewaessern=AUS
// Der Regenmelder (EIN==Regen)
Regen="RegenMeldung-5/2/2"
// Zwischen 1.05 und 31.10 soll bewässert werden
Monat=month(01,05) and !month(30,09)
// Im Hochsommer alle 2 Tage, sonst 3 Tage
if month(01,06) and !month(31,08) then {
TageBisZurBewaesserung=2 } else {
TageBisZurBewaesserung=3
} endif
// Überprüfung auf Regen
if (Regen==EIN) then {
RegenIndikator=EIN;
TrockenTage=0
} endif
// Um ein Uhr nachts wird der Indikator für den Tag gelöscht
// und der Trockentag hochgezählt
if htime(1,00,00) and RegenIndikator==AUS then TrockenTage=TrockenTage+1 endif
if htime(1,00,00) and RegenIndikator==EIN then RegenIndikator=AUS endif
// Lange genug nicht geregnet: Bewaessern
if TrockenTage==TageBisZurBewaesserung and Monat then {
TrockenTage=0;
Bewaessern=EIN;
RegenIndikator=AUS
} endif
// Nun Bewässern: Drei getrennte Kreise, die mit Magnetventilen und
// Siemens "Heizaktoren" angesteuert sind.
// Aber nur wenn es über 10° draußen hat und ein Bewässerungsmonat vorliegt...
// Außerdem gibts ein Schaltobjekt "Wasser123Auto-2/0/10" an einem Panel
if Bewaessern and "Wasser123Auto-2/0/10" and "Außentemperatur-3/5/0">10f16 and Monat then {
write("WasserTür-2/0/2"u08,70%);
write("WasserSüd-2/0/3"u08,100%);
write("WasserWiga-2/0/0"u08,90%)
} endif
// 1,5 Stunden lang bewaessern und dann wieder ausschalten
if delay(Bewaessern,5400000u64) then {
write("WasserTür-2/0/2"u08,0%);
write("WasserSüd-2/0/3"u08,0%);
write("WasserWiga-2/0/0"u08,0%);
Bewaessern=AUS
} endif
Frei zum Diskutieren...


Der erste Schritt in die sicherlich richtige Richtung (Anwender Beispiele) ist gemacht.



Kommentar