Sorry, aber bei mir klemmt es schon seit einigen Tagen - Komme einfach nicht weiter.
Meine Bewässerung besteht aus 2 Kreisen mit Versenkregnern; 1 Kreis für Strauchbewässerung.
Eine überdimensionale Brunnenpumpe, die mindestens 2 der Kreise bedienen muss, sonst schaltet sie aufgrund zu geringem Durchfluss ab. - Ist aber noch nicht das Problem.
Ich habe auch schon einige Dummies definiert: Schaltzeit_Frueh, Schaltzeit_Abend, Dauer_Kreis1_Frueh, Dauer_Kreis1_Abend und entsprechend auch für die beiden anderen Kreise, desweiteren einen Saisonprozentwert.
Ich schaffe es einfach nicht, ein entsprechend verzögertes Einschalten der Kreise zu programmieren.
Es sollte um sagen wir 05:00 h mit einem Notify die entsprechenden Schaltzeiten zu definieren:
1. Pumpe ein; 15 Sek. warten dann Kreis 1; 10 Sek. warten dann Kreis 2; wieder 10 Sek. warten dann Kreis 3
Die Dauer sollte über die Gießdauer und Saisonprozente errechnet werden und entsprechend in den "on-for-timer" eingetragen werden.
Wenn der letzte Kreis abgeschaltet ist, soll auch die Pumpe ausgeschaltet werden.
Bis jetzt habe ich nur für mich unbrauchbare Fehlermeldungen erhalten.
ZitatBis jetzt habe ich nur für mich unbrauchbare Fehlermeldungen erhalten.
Und das heisst automatisch das sie auch für das Forum unbrauchbar sind?
Rate mal wofür so Meldungen gedacht sind - genau.
Jemand kann sicher was anfangen damit - daher sollte man sie auch zeigen.
Aber egal.
Mal als Anregung, ich hab das bei mir erstmal so
Bewaesserung.* {
if ($EVENT eq "Ein") {
fhem("set 02_Leitung_rechts on-for-timer 120");
fhem("define 03_Leitung_links_vorne_on at +00:00:02 set 03_Leitung_links_vorne on-for-timer 120");
fhem("define 01_Hauptanschluss_on at +00:00:04 set 01_Hauptanschluss on-for-timer 120");
fhem("define Status_Bewaesserung_Aus at +00:02:05 setstate Bewaesserung Aus");
}
else {
fhem("set 01_Hauptanschluss off") if(Value("01_Hauptanschluss") ne "Aus");
fhem("define 03_Leitung_links_vorne_off at +00:00:02 set 03_Leitung_links_vorne off") if(Value("03_Leitung_links_vorne") ne "Aus");
fhem("define 02_Leitung_rechts_off at +00:00:04 set 02_Leitung_rechts off") if(Value("02_Leitung_rechts") ne "Aus");
fhem("setstate Bewaesserung Aus") if(Value("Status_Bewaesserung_Aus") ne "");
}
}
gelöst.
Bewaesserung ist ein Dummy mit webCmd on:off und devstateIcon.
Die Geräte sind HM-LC-SW4-DR aber das sollte hier nichts zur Sache tun da es nur die Aktoren sind.
Edith: Ja, das ganze lässt sich auf mit DOIF lösen.
Dazu gibt es aber bereits gefühlte 2000 Threads also sollte sich in Verbindung mit der commandref zu DOIF durchaus auch was finden lassen.
Vielen Dank für die schnelle Reaktion.
Ich quälte mich auch schon durch gefühlte 1000 threads - ich scheitere, glaube ich, an der Berechnung der on-for-timer. Werde mir aber die vorgeschlagene Lösung noch genauer ansehen - wenn ich das mit berechneten Variablen lösen kann - wäre das der absolute Hammer.
http://forum.fhem.de/index.php/topic,39293.0.html (http://forum.fhem.de/index.php/topic,39293.0.html)
Es bietet sich im Forum duchaus an auch mal andere Beiträge zu lesen ;)
Zitat von: fhemguru66 am 20 Juli 2015, 19:35:56
Vielen Dank für die schnelle Reaktion.
Ich quälte mich auch schon durch gefühlte 1000 threads - ich scheitere, glaube ich, an der Berechnung der on-for-timer. Werde mir aber die vorgeschlagene Lösung noch genauer ansehen - wenn ich das mit berechneten Variablen lösen kann - wäre das der absolute Hammer.
Bei DOIF kannst du beim on-for-timer Berechnungen z. B. mit Dummys oder Readings anstellen:
...DOIF(Bedingung) ( set pumpe on-for-timer {([mein_dummy]*0.5+6)**2})
Gruß
Damian
Vielen Dank für die wertvollen Tipps!
Mit DOIF musste ich mich erst noch intensiver beschäftigen. Jetzt habe ich es geschnallt.
Ich muss nur einfach mehrere DOIF's anlegen, jeweils mit den richtigen Verzögerungen in der Startzeit und schon dürfte es klappen. Darin war mein Denkfehler. Mehrere ineinander zu schachteln hatte ich nicht hinbekommen. Ist ja so auch übersichtlicher.