Seite 2 von 4

Re: Beregnung Timer

Verfasst: 12. Jun 2020 12:00
von Pepe1907
Pepe1907 hat geschrieben: 12. Jun 2020 11:50
desidia hat geschrieben: 11. Jun 2020 22:59 Was sagt das log? Bzw mach mal einen timer rein für 20 Sekunden oder so, ggf sind die Kanäle einfach noch nicht "online" um geschaltet werden zu können
2020-06-12 11:48:46.945 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'Stromausfall.rules' has errors, therefore ignoring it: [1,6]: no viable alternative at input '“'
Fehler gefunden. es lag an den "Anführungszeichen".

Re: Beregnung Timer

Verfasst: 12. Jun 2020 12:04
von Pepe1907
udo1toni hat geschrieben: 12. Jun 2020 11:31 Die Rule wird schon funktionieren, aber sie wird an Deinem Problem nichts ändern. Suche lieber den Grund, warum der Pi beim Starten die Relais schaltet, das darf nicht sein!

Gesendet von meinem SM-G973F mit Tapatalk
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>

Re: Beregnung Timer

Verfasst: 12. Jun 2020 12:13
von Pepe1907
Pepe1907 hat geschrieben: 12. Jun 2020 12:04
udo1toni hat geschrieben: 12. Jun 2020 11:31 Die Rule wird schon funktionieren, aber sie wird an Deinem Problem nichts ändern. Suche lieber den Grund, warum der Pi beim Starten die Relais schaltet, das darf nicht sein!

Gesendet von meinem SM-G973F mit Tapatalk
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öst

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>

Re: Beregnung Timer

Verfasst: 12. Jun 2020 12:48
von EmptySoft
udo1toni hat geschrieben: 12. Jun 2020 11:31 Die Rule wird schon funktionieren, aber sie wird an Deinem Problem nichts ändern. Suche lieber den Grund, warum der Pi beim Starten die Relais schaltet, das darf nicht sein!
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.

Re: Beregnung Timer

Verfasst: 12. Jun 2020 13:30
von udo1toni
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.

Re: Beregnung Timer

Verfasst: 13. Jun 2020 21:14
von Pepe1907
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.
Vielen Dank für die wieder einmal schnelle und hilfreiche Antwort.
Möchte mich gerne revanchieren und das Forum in Form einer kleinen Spende unterstützen, da so ein Engagement belohnt werden muss.(hierzu bitte PayPal link)
Jetzt möchte ich meine funktionierende Rule noch erweitern.

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
in

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
klappt das denn so?

Re: Beregnung Timer

Verfasst: 13. Jun 2020 21:31
von udo1toni

Pepe1907 hat geschrieben: klappt das denn so?
Letztlich kannst ja nur Du wissen, wie die Items definiert sind und was Du für ein Verhalten erwartest [emoji846]

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


Re: Beregnung Timer

Verfasst: 13. Jun 2020 21:39
von Pepe1907
udo1toni hat geschrieben: 13. Jun 2020 21:31
Pepe1907 hat geschrieben: klappt das denn so?
Letztlich kannst ja nur Du wissen, wie die Items definiert sind und was Du für ein Verhalten erwartest [emoji846]

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
habe mal die rule probiert allerdings nur mit der Temperatur und ohne die Regendate.
Leider schaltet er dann nicht die Regner und Pumpe an.

Re: Beregnung Timer

Verfasst: 13. Jun 2020 21:45
von udo1toni
Wie gesagt, ohne die genaue Definition des Items kann ich nur raten...

Gesendet von meinem SM-G973F mit Tapatalk


Re: Beregnung Timer

Verfasst: 13. Jun 2020 22:23
von Pepe1907
udo1toni hat geschrieben: 13. Jun 2020 21:45 Wie gesagt, ohne die genaue Definition des Items kann ich nur raten...

Gesendet von meinem SM-G973F mit Tapatalk
oh Entschuldigung
Bild

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"]