Re: Beregnung Timer
Verfasst: 12. Jun 2020 12:00
ich verwende das GPIO Binding und so sehen meine Items aus
Code: Alles auswählen
//Datum
DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" }
//Ventile
Switch channel1 "Channel 1" <lawnmower> { gpio="pin:26 activelow:yes initialValue:high" }
Switch channel2 "Channel 2" <lawnmower> { gpio="pin:19 activelow:yes initialValue:low" }
Switch channel3 "Channel 3" <pump> { gpio="pin:13 activelow:yes"}
Switch channel4 "Channel 4" <garden> { gpio="pin:6 activelow:yes"}
//Regen
Number RainToday "Rain_today [%.2f mm]"
Number RainYesterday "Rain_lastday [%.2f mm]"
//Beregnung
Switch beregnung "Automatische Beregnung" <rain>
Problem gelöstPepe1907 hat geschrieben: ↑12. Jun 2020 12:04ich verwende das GPIO Binding und so sehen meine Items ausCode: Alles auswählen
//Datum DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" } //Ventile Switch channel1 "Channel 1" <lawnmower> { gpio="pin:26 activelow:yes initialValue:high" } Switch channel2 "Channel 2" <lawnmower> { gpio="pin:19 activelow:yes initialValue:low" } Switch channel3 "Channel 3" <pump> { gpio="pin:13 activelow:yes"} Switch channel4 "Channel 4" <garden> { gpio="pin:6 activelow:yes"} //Regen Number RainToday "Rain_today [%.2f mm]" Number RainYesterday "Rain_lastday [%.2f mm]" //Beregnung Switch beregnung "Automatische Beregnung" <rain>
Code: Alles auswählen
//Datum
DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" }
//Ventile
Switch channel1 "Channel 1" <lawnmower> { gpio="pin:26 activelow:yes initialValue:high" }
Switch channel2 "Channel 2" <lawnmower> { gpio="pin:19 activelow:yes initialValue:high" }
Switch channel3 "Channel 3" <pump> { gpio="pin:13 activelow:yes initialValue:high" }
Switch channel4 "Channel 4" <garden> { gpio="pin:6 activelow:yes initialValue:high" }
//Regen
Number RainToday "Rain_today [%.2f mm]"
Number RainYesterday "Rain_lastday [%.2f mm]"
//Beregnung
Switch beregnung "Automatische Beregnung" <rain>
An meinem RaspBerry hängen auch Relais direkt an den GPIOs, beim booten bis die GPIOS initialisiert werden, sind die Ralais angezogen (hängt davon ab, ob man sie gegen vcc oder gnd angeschlossen hat). Wenn das bei ihm auch so ist,ist es normal, dann halt die Anschaltung der Relais ändern.
Vielen Dank für die wieder einmal schnelle und hilfreiche Antwort.udo1toni hat geschrieben: ↑12. Jun 2020 13:30 Da ich jetzt am PC sitze: Es gibt hier im Forum inzwischen diverse Beispiele, wie man die Beregnung smart gestalten kann.
Grundsätzlich ist weniger dabei mehr, vor allem auf Timer bezogen.
Nimm niemals drei Timer, wenn es auch einer tut.
Wenn einzelne Items in Gruppen gesteuert werden sollen (aber auch einzeln), dann ist es sinnvoll, sie auch als Gruppen zusammenzufassen.
Man kann dann entweder das Group Item direkt steuern, oder die Member der Gruppe ansprechen, je nachdem, was sinnvoller ist.
Bei Beregnungssteuerung ist es ja so, dass der Wasserdruck eine Rolle spielt. Nicht nur kann der Druck zu niedrig sein, um alle Regner parallel laufen zu lassen, es kann auch passieren, dass Regner durch den Druckanstieg beim Schließen eines parallel geöffneten Zweigs plötzlich weiter spritzen als zuvor.
Letztlich muss man selbst heraus finden, was hier sinnvoll ist, denn einen Druckregler pro Zweig einzubauen, ist wohl auch eher unpraktikabel.
Code: Alles auswählen
]rule "Beregnung"
when Time cron "0 5 21 * * ?"
then if (beregnung.state == ON ){
channel1.sendCommand(ON)
channel2.sendCommand(ON)
channel3.sendCommand(ON)
logInfo("FILE", "Beregnung um gestartet")
createTimer(now.plusMinutes(60)) [| channel1.sendCommand(OFF)
chahnnel3.sendCommand(OFF)]
createTimer(now.plusMinutes(45)) [| channel2.sendCommand(OFF)]
logInfo("FILE", "Beregnung ausgeschaltet")
}
end
Code: Alles auswählen
rule "Beregnung"
when Time cron "0 5 21 * * ?"
then if (beregnung.state == ON && LocalWeatherAndForecast_ForecastHours24_MaximaleTemperatur.state > 15 && LocalWeatherAndForecast_Current_Regen.lastUpdate.before(now.minusDays(1)){
channel1.sendCommand(ON)
channel2.sendCommand(ON)
channel3.sendCommand(ON)
logInfo("FILE", "Beregnung um gestartet")
createTimer(now.plusMinutes(60)) [| channel1.sendCommand(OFF)
chahnnel3.sendCommand(OFF)]
createTimer(now.plusMinutes(45)) [| channel2.sendCommand(OFF)]
logInfo("FILE", "Beregnung ausgeschaltet")
}
end
Letztlich kannst ja nur Du wissen, wie die Items definiert sind und was Du für ein Verhalten erwartest [emoji846]Pepe1907 hat geschrieben: klappt das denn so?
habe mal die rule probiert allerdings nur mit der Temperatur und ohne die Regendate.udo1toni hat geschrieben: ↑13. Jun 2020 21:31Letztlich kannst ja nur Du wissen, wie die Items definiert sind und was Du für ein Verhalten erwartest [emoji846]Pepe1907 hat geschrieben: klappt das denn so?
Was den 2. Ausschalttimer betrifft (und auch den 1.) So wäre es besser, den Timer einer Variablen zuzuweisen. Macht man regelhaft so, Du kannst dann prüfen, ob der Timer existiert und ihn gegebenenfalls entfernen.
Im vorliegenden Fall würde ich aber pragmatisch um 22:05 Uhr prüfen, ob Regner 1 und 2 laufen und sie gegebenenfalls ausschalten, und u. 22:50 das gleiche für Regner 3. Time cron funktioniert sehr zuverlässig, und zwar unabhängig von Neustarts. Ein laufender Timer geht bei einem Neustart unwiederbringlich verloren. Man könnte dann beim Start des Systems alle möglichen Dinge prüfen um gegebenenfalls einen Timer nachzusetzen, oder man schaltet bei fixen Zeiten einfach fix. Anders sieht es natürlich aus, wenn die Beregnungsdauer variabel sein soll.
Gesendet von meinem SM-G973F mit Tapatalk
oh Entschuldigung
Code: Alles auswählen
//Datum
DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" }
//Ventile
Switch channel1 "Channel 1" <lawnmower> ["Lighting"] { gpio="pin:26 activelow:yes initialValue:high" }
Switch channel2 "Channel 2" <lawnmower> ["Lighting"] { gpio="pin:19 activelow:yes initialValue:high" }
Switch channel3 "Channel 3" <pump> ["Lighting"] { gpio="pin:13 activelow:yes initialValue:high" }
Switch channel4 "Channel 4" <garden> ["Lighting"] { gpio="pin:6 activelow:yes initialValue:high" }
//Regen
Number RainToday "Rain_today [%.2f mm]"
Number RainYesterday "Rain_lastday [%.2f mm]"
//Beregnung
Switch beregnung "Automatische Beregnung" <rain>
//Dummy Alexa
Switch alexa "Beregnung Sprachbefehl" ["Lighting"]