Ankündigung

Einklappen
Keine Ankündigung bisher.

Code für Bewässerung funktioniert nicht mehr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Code für Bewässerung funktioniert nicht mehr

    Hallo zusammen,
    nach langer Zeit muss ich mich mal wieder mit einer Frage an Euch wenden.
    Wollte heute die Bewässerung wieder scharf stellen. Also Magnetventile raus, alles wieder angeschlossen und dann ersten Test.
    Ich hatte es so programmiert (mit Eurer Hilfe), dass meine verschiedenen Wasserstränge nacheinander nach Erreichen von x Litern geschaltet werden.
    Hat letztes Jahr prima geklappt. Nur jetzt nicht mehr. Jetzt werden alle GA gleichzeitig AN und direkt wieder AUS geschaltet. Habe eigentlich nichts geändert aus neues Eibstudio und Patch 3.107.
    Hat jemand einen Tipp?
    Wird der Code nach dem Update irgendwie anders interpretiert=

    Code:
    //Automat. Bewässerung, Ventil geht nach x Litern zu
    A=AUS
    B=AUS
    C=AUS
    D=AUS
    WasserHi=0u32
    WasserHiKl=0u32
    WasserVo=0u32
    WasserSeitl=0u32
    WasserHecke=0u32
    wasserhisoll=1200u32
    WasserHiSoll=wasserhisoll/10u32
    wasserhiklsoll=400u32
    WasserHiKlSoll=wasserhiklsoll/10u32
    wasservosoll=1100u32
    WasserVoSoll=wasservosoll/10u32
    wasserseitlsoll=600u32
    WasserSeitlSoll=wasserseitlsoll/10u32
    wasserheckesoll=500u32
    WasserHeckeSoll=wasserheckesoll/10u32
    
    //Gesamtdauer=RasenVorn+RasenSeitl+RasenHintenKl+RasenHinten+Hecke
    Regen=AUS
    if hour_rain>1.0f32 or day_rain>5f32 or yesterday_rain>7f32 then Regen=EIN else Regen=AUS endif
    if Regen==AUS and AutoBewaess==EIN and Bodenfeuchte >=bfwconv and StartBewaess==EIN then Bewaessern=EIN endif
    if change(Regen) and Regen==EIN and Bewaessern==EIN then write("A Hauptventil2-7/0/13",AUS);write("D Rasen hinten groß-7/0/3",AUS);write ("E Rasen hinten klein-7/0/4",AUS);write ("C Rasen vorne-7/0/2",AUS);write ("B Rasen seitlich-7/0/1",AUS);write("F Hecke-7/0/5",AUS);Bewaessern=AUS;A=AUS;B=AUS;C=AUS;D=AUS;WasserHi=0u32;WasserHiKl=0u32;WasserVo=0u32;WasserSeitl=0u32;WasserHecke=0u32 endif
    
    if Bewaessern==EIN then write ("A Hauptventil2-7/0/13",EIN);write("D Rasen hinten groß-7/0/3",EIN) endif
    if Bewaessern==EIN and "D Rasen hinten groß-7/0/3"==EIN  and event("Gartenwasser-7/1/2") then WasserHi = WasserHi+1u32 endif
    if WasserHi==WasserHiSoll and Bewaessern==EIN then write ("D Rasen hinten groß-7/0/3",AUS);A=EIN endif
    if pbutton(5,13)==0 and Bewaessern==EIN then write ("D Rasen hinten groß-7/0/3",AUS);A=EIN endif
    
    if A==EIN and Bewaessern==EIN then write ("A Hauptventil2-7/0/13",EIN);write("E Rasen hinten klein-7/0/4",EIN) endif
    if A==EIN and Bewaessern==EIN and "E Rasen hinten klein-7/0/4"==EIN and event("Gartenwasser-7/1/2") then WasserHiKl = WasserHiKl+1u32 endif
    if WasserHiKl==WasserHiKlSoll and Bewaessern==EIN and A==EIN then write ("E Rasen hinten klein-7/0/4",AUS); A=AUS; B=EIN endif
    if pbutton(6,13)==0 and Bewaessern==EIN then write ("E Rasen hinten klein-7/0/4",AUS);A=AUS; B=EIN endif
    
    if B==EIN and Bewaessern==EIN then write ("A Hauptventil2-7/0/13",EIN);write("C Rasen vorne-7/0/2",EIN) endif
    if B==EIN and Bewaessern==EIN and "C Rasen vorne-7/0/2"==EIN and event("Gartenwasser-7/1/2") then WasserVo = WasserVo+1u32 endif
    if WasserVo==WasserVoSoll and Bewaessern==EIN and B==EIN then write ("C Rasen vorne-7/0/2",AUS);B=AUS; C=EIN endif
    if pbutton(3,13)==0 and Bewaessern==EIN then write ("C Rasen vorne-7/0/2",AUS);B=AUS; C=EIN endif
    
    if C==EIN and Bewaessern==EIN then write ("A Hauptventil2-7/0/13",EIN);write("B Rasen seitlich-7/0/1",EIN) endif
    if C==EIN and Bewaessern==EIN and "B Rasen seitlich-7/0/1"==EIN and event("Gartenwasser-7/1/2") then WasserSeitl = WasserSeitl+1u32 endif
    if WasserSeitl==WasserSeitlSoll and Bewaessern==EIN and C==EIN then write ("B Rasen seitlich-7/0/1",AUS);C=AUS; D=EIN endif
    if pbutton(2,13)==0 and Bewaessern==EIN then write ("B Rasen seitlich-7/0/1",AUS);C=AUS; Bewaessern=AUS endif
    
    //if pbutton(2,13)==0 then write ("B Rasen seitlich-7/0/1",AUS);C=AUS; D=EIN endif
    //if D==EIN and Bewaessern==EIN then write ("A Hauptventil2-7/0/13",EIN);write("F Hecke-7/0/5",EIN) endif
    //if D==EIN and Bewaessern==EIN and "F Hecke-7/0/5"==EIN and event("Gartenwasser-7/1/2") then WasserHecke = WasserHecke+1u32 endif
    //if WasserHecke==WasserHeckeSoll and Bewaessern==EIN and D==EIN then write ("F Hecke-7/0/5",AUS);D=AUS; Bewaessern=AUS endif
    //if pbutton(7,13)==0 and Bewaessern==EIN then write ("F Hecke-7/0/5",AUS);D=AUS; Bewaessern=AUS endif
    //if D==AUS then write ("A Hauptventil2-7/0/13",AUS);WasserSeitl=0u32;WasserVo=0u32;WasserHiKl=0u32;WasserHi=0u32;WasserHecke=0u32 endif
    
    if C==AUS then write ("A Hauptventil2-7/0/13",AUS);WasserSeitl=0u32;WasserVo=0u32;WasserHiKl=0u32;WasserHi=0u32;WasserHecke=0u32 endif

    Hier die Telegramme; Man sieht wie ein EIN und dann direkt wieder ein AUS gesendet wird, obwohl der Wasserbrauch von x Liter noch nicht erreicht worden ist

    2018-04-29 22:37:00 | Sender: EibPC | GA: "A Hauptventil2-7/0/13" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "D Rasen hinten groß-7/0/3" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "D Rasen hinten groß-7/0/3" | Wert: AUS | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "A Hauptventil2-7/0/13" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "E Rasen hinten klein-7/0/4" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "E Rasen hinten klein-7/0/4" | Wert: AUS | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "A Hauptventil2-7/0/13" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "C Rasen vorne-7/0/2" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "C Rasen vorne-7/0/2" | Wert: AUS | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "A Hauptventil2-7/0/13" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "B Rasen seitlich-7/0/1" | Wert: EIN | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:00 | Sender: EibPC | GA: "B Rasen seitlich-7/0/1" | Wert: AUS | Typ: Binärwert | Schreiben
    % 2018-04-29 22:37:01 | Sender: 1.1.46 | GA: "RM Hauptventil-7/0/15" | Wert: EIN | Typ: Binärwert | Schreiben

    Gruß
    Ralf

    #2
    Hallo Ralf,

    ich denke deine pbutton Abfragen sind so nicht korrekt. Der Vergleich von z.B. "if pbutton(5,13)==0" ist, bis auf den Verarbeitungszyklus in dem der pbutton gedrückt wird, immer wahr. Du solltest die Abfragen mal auf "==1" ändern.

    Viel Erfolg.

    Gruß,
    Eike
    ViP - Verteilerplanung in Perfektion
    www.verteilerplanung-in-perfektion.de

    Kommentar


      #3
      Hallo Eike,

      natürlich, das war's. Betriebsblindheit. Frage mich nur, warum das nicht schon letzten Sommer aufgefallen ist. Egal, jetzt klappt es wieder.
      Besten Dank
      Ralf

      Kommentar


        #4
        Prima, dann kann der Sommer kommen. :-)

        Gruß,
        Eike
        ViP - Verteilerplanung in Perfektion
        www.verteilerplanung-in-perfektion.de

        Kommentar

        Lädt...
        X