Hallo,
wer kann mir einen Tip geben. Ich habe eine Logik zur Bewässerung meines Gartens. In der Visu habe ich mehrere Buttons (z.B. garten.bewaesserung.auto) um die Bewässerung zu starten. Ich habe nun das Problem, das die Logik gestartet wird, und wenn der wert per Program wieder auf 0 gesetzt wird nochmals gestartet wird.... usw. usw. Was ich brauche, dass nur auf den "ein" Zustand die Logik startet und bei 0 nicht reagiert.
logic.conf sieht der Eintrag so aus:
[Bewaesserung]
filename = bewaesserung.py
watch_item = garten.bewaesserung.auto
in der items:
[[[auto]]]
type = bool
visu_acl = rw
enforce_updates = yes
wer kann mir einen Tip geben. Ich habe eine Logik zur Bewässerung meines Gartens. In der Visu habe ich mehrere Buttons (z.B. garten.bewaesserung.auto) um die Bewässerung zu starten. Ich habe nun das Problem, das die Logik gestartet wird, und wenn der wert per Program wieder auf 0 gesetzt wird nochmals gestartet wird.... usw. usw. Was ich brauche, dass nur auf den "ein" Zustand die Logik startet und bei 0 nicht reagiert.
Code:
[LIST=1][*]#!/usr/bin/env python[*]# Bewässerungssteuerung mit dezidiertem Wasserverbrauch[*]'''[*]Created on 14.07.2015[*][*]@author: Michael L.[*]'''[*]logger.info("Logic Bewaesserung gestartet")[*]' Erstmal doie Variablen setzen / Menge in Liter / Dauer in Sekunden'[*]menge_vorne = 270[*]menge_hinten = 180[*]menge_seite = 90[*]menge_rasen1 = 500[*]menge_rasen2 = 500[*]menge_rasen3 = 800[*]dauer_vorne = 1200[*]dauer_hinten = 1200[*]dauer_seite = 900[*]dauer_rasen1 = 2700[*]dauer_rasen2 = 2700[*]dauer_rasen3 = 2700[*][*]'welches Programm soll laufen p = 0 keines / P =1 Vorne-Seite-Hinten / P=2 Rasen 1 und 2 / P=3 Vorne-Seite-hinten-Rasen1-Rasen2'[*]prog = 0[*][*]' Ist die Automatik eingeschatet und Programm wählen'[*]if sh.garten.bewaesserung.freigabe_b()and sh.garten.bewaesserung.auto():[*]prog = 1[*]sh.garten.bewaesserung.auto(0)[*]logger.info("Bewaesserung Start prog1")[*][*]if sh.garten.bewaesserung.freigabe_r()and sh.garten.bewaesserung.auto_r():[*]prog = 2[*]sh.garten.bewaesserung.auto_r(0)[*]logger.info("Bewaesserung Start prog2")[*]if sh.garten.bewaesserung.freigabe_r()and sh.garten.bewaesserung.freigabe_b() and sh.garten.bewaesserung.auto_a():[*]prog = 3[*]sh.garten.bewaesserung.auto_a(0)[*]logger.info("Bewaesserung Start prog3")[*][*]if prog == 1 or prog == 3 :[*]'gestartet wird mit vorne'[*]logger.info("Bewaesserung Freigabe_b True")[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.vorne(1)[*]logger.info("Bewaesserung Zone vorne Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_vorne :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.vorne(0)[*]if (delta_time) > dauer_vorne :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.vorne(0)[*]logger.info("Bewaesserung Zone vorne Ende")[*]' bewaesserung vorne ende'[*]' bewaesserung hinten start'[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.hinten(1)[*]logger.info("Bewaesserung Zone hinten Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_hinten :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.hinten(0)[*][*]if (delta_time) > dauer_hinten :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.hinten(0)[*][*]logger.info("Bewaesserung Zone hinten Ende")[*]' bewaesserung hinten ende'[*]' bewaesserung seite start'[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.seite(1)[*]logger.info("Bewaesserung Zone seite Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_seite :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.seite(0)[*][*]if (delta_time) > dauer_seite :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.seite(0)[*][*]logger.info("Bewaesserung Zone seite Ende")[*]' bewaesserung seite ende'[*][*]' nun kommt der Rasen dran'[*]if prog == 2 or prog == 3 :[*]'gestartet wird mit rasen1'[*]logger.info("Bewaesserung Freigabe_r True")[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.rasen1(1)[*]logger.info("Bewaesserung Zone rasen1 Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_rasen1 :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.rasen1(0)[*][*]if (delta_time) > dauer_rasen1 :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.rasen1(0)[*][*]logger.info("Bewaesserung Zone rasen Ende")[*]' bewaesserung rasen ende'[*]' bewaesserung rasen2 start'[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.rasen2(1)[*]logger.info("Bewaesserung Zone rasen2 Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_rasen2 :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.rasen2(0)[*][*]if (delta_time) > dauer_rasen2 :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.rasen2(0)[*][*]logger.info("Bewaesserung Zone rasen2 Ende")[*]' bewaesserung rasen2 ende'[*]' bewaesserung rasen3 start'[*]start = 1[*]start_time = time.time()[*]start_bw = sh.verbrauch.brauchwasser.wert()[*]start_fw = sh.verbrauch.frischwasser.wert()[*]sh.garten.bewaesserung.rasen3(1)[*]logger.info("Bewaesserung Zone rasen3 Start")[*]while start :[*]delta_time = time.time() - start_time[*]delta_bw = sh.verbrauch.brauchwasser.wert() - start_bw[*]delta_fw = sh.verbrauch.frischwasser.wert() - start_fw[*]if (delta_bw + delta_fw) > menge_rasen3 :[*]'Ende über Menge'[*]start = 0[*]sh.garten.bewaesserung.rasen3(0)[*][*]if (delta_time) > dauer_rasen3 :[*]'Ende über Zeit'[*]start = 0[*]sh.garten.bewaesserung.rasen3(0)[*][*]logger.info("Bewaesserung Zone rasen3 Ende")[*]' bewaesserung rasen3 ende'[*]sh.garten.bewaesserung.auto(0)[*]sh.garten.bewaesserung.auto_r(0)[*]sh.garten.bewaesserung.auto_a(0)[/LIST]
[Bewaesserung]
filename = bewaesserung.py
watch_item = garten.bewaesserung.auto
in der items:
[[[auto]]]
type = bool
visu_acl = rw
enforce_updates = yes
Kommentar