DOIF als Zeitschaltuhr mit Anzahl von Schaltvorgängen

Begonnen von gloob, 25 Juni 2015, 10:41:29

Vorheriges Thema - Nächstes Thema

gloob

Hallo,

Ich würde gerne das DOIF nutzen um meine Bewässerungsanlage zu steuern. Die Pumpen laufen jeweils eine Minute wenn sie mit Strom versorgt werden und schalten dann automatisch ab. Daher muss ich die Pumpen mehrfach an und aus schalten um genug Wasser zu pumpen.

Aktuell kann ich über ein DOIF die Anzahl der Schaltvorgänge ab einer bestimmten Zeit steuern.

DOIF ([[water1start]] or [[water1repeat:time]]) (set Steckdose.K90 on-for-timer 60,{set_repeat_time("water1repeat","water1interval")})

water1start = 9:00
water1repeat:state = Anzahl der Pumpvorgänge
water1repeat:time = Zeit für nächsten vorgang.
water1interval = 65 sekunden

Jetzt würde ich das DOIF gerne nur trigger wenn water1interval > 0 ist.
Ändere ich den Code wie folgt ab, hört er nicht mehr auf zu schalten nach der vorgegeben Anzahl.

DOIF (([[water1start]] or [[water1repeat:time]]) and [water1repeat:state] > 0) (set Steckdose.K90 on-for-timer 60,{set_repeat_time("water1repeat","water1interval")})

Hat jemand eine Idee wie ich das umsetzen könnte?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

gloob

Mit dem richtigen IF an der richtigen Stelle funktioniert es auch:

([[water1start]] or [[water1repeat:time]])(IF ([water1repeat] > 0) (set Steckdose.K90 on-for-timer 60),{set_repeat_time("water1repeat","water1interval")})
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

flurin

Zitat von: gloob am 25 Juni 2015, 10:41:29
...
water1start = 9:00
water1repeat:state = Anzahl der Pumpvorgänge
water1repeat:time = Zeit für nächsten vorgang.
water1interval = 65 sekunden

Jetzt würde ich das DOIF gerne nur trigger wenn water1interval > 0 ist.
Ändere ich den Code wie folgt ab, hört er nicht mehr auf zu schalten nach der vorgegeben Anzahl.

DOIF (([[water1start]] or [[water1repeat:time]]) and [water1repeat:state] > 0) (set Steckdose.K90 on-for-timer 60,{set_repeat_time("water1repeat","water1interval")})

Hat jemand eine Idee wie ich das umsetzen könnte?

Ersetzte "water1repeat:state" mit "water1interval":

DOIF (([[water1start]] or [[water1repeat:time]]) and [water1interval] > 0) (set Steckdose.K90 on-for-timer 60,{set_repeat_time("water1repeat","water1interval")})

Gruss flurin