Ankündigung

Einklappen
Keine Ankündigung bisher.

Steuerung der Zirkulationspumpe

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

    Steuerung der Zirkulationspumpe

    Vielleicht kann mir ja einer von Euch auf die Sprünge helfen. Ich bin gerade dabei das Programm für meinem EibPC zu stricken. Ich möchte, dass die Zirkulation nach Betreten des Raumens 3 Minuten läuft. Danach soll der Ausgang für 20 Minuten gesperrt werden. Wie kann ich dies im EibPC umsetzen? Den ersten Teil habe ich schon hinbekommen, hoffentlich ;-)

    Zirkulation
    if delay(„Bewegung Bad“ or „Bewegung Küche“ or „Bewegung WC“==EIN,180000u64) then write(„Zirkulation“b01,EIN) else write(„Zirkulation“b01,AUS) endif

    #2
    Hi,

    ich würde anstatt delay die after Funktion nutzen.
    Delay ist ja retriggerbar. Damit fangen die 3 Minuten immer wieder von neuem an.

    Ich würde das dann so machen (ohne zu testen, weil gerade auf Arbeit):
    //Einschalten:
    if („Bewegung Bad“ or „Bewegung Küche“ or „Bewegung WC“==EIN) then write(„Zirkulation“b01,EIN);write("Sperre Zirkulation",EIN)
    //Ausschalten:
    if after(„Bewegung Bad“ or „Bewegung Küche“ or „Bewegung WC“==EIN,180000u64) then write(„Zirkulation“b01,AUS) endif
    //Sperre aus:
    if after(„Bewegung Bad“ or „Bewegung Küche“ or „Bewegung WC“==EIN,WIEVIEL-SIND-20-MINUTEN?) then write(„Zirkulation“b01,AUS) endif

    Oder willst du das mit Variable?


    Gruß
    Volker

    Wer will schon Homematic?

    Kommentar


      #3
      wenn ich Dich richtig verstanden habe, soll die Zirkulation sofort nach Betreten des Raumes starten und für 3 Minuten laufen.
      Nach 3 Minuten soll sie ausgehen und für 20 Minuten gesperrt bleiben


      [highlight=epc]
      sperren=AUS
      bewegung = („Bewegung Bad“ or „Bewegung Küche“ or „Bewegung WC“)
      if bewegung and !sperren then write("Zirkulation",EIN) endif
      if after(bewegung,180000u64) then write("Zirkulation",AUS); sperren=EIN endif
      if after(sperren, 1200000u64) then sperren=AUS endif
      [/highlight]
      Enertex Bayern GmbH - www.eibpc.com

      Kommentar


        #4
        Zitat von SnowMaKeR Beitrag anzeigen
        ich würde anstatt delay die after Funktion nutzen.
        ich auch :-)
        Enertex Bayern GmbH - www.eibpc.com

        Kommentar


          #5
          Zitat von SteffiEnertex Beitrag anzeigen
          wenn ich Dich richtig verstanden habe, soll die Zirkulation sofort nach Betreten des Raumes starten und für 3 Minuten laufen.
          Nach 3 Minuten soll sie ausgehen und für 20 Minuten gesperrt bleiben
          genauso meinte ich es, bin halt noch am anfang mit meinen programmierversuchen ;-)

          Kommentar


            #6
            nochmal eine frage die zeile sperren=AUS wird die nicht in jedem durchlauf ausgeführt? dann würde es ja nicht funktionieren oder?

            Kommentar


              #7
              Hi fuchs,

              nein, die Zeile wird aktiviert, wenn "sperren" auf EIN geht.
              Durch das after wird die Variable aber erst nach 20 Minuten auf AUS gesetzt.
              Du könntest auch

              if after(sperren==EIN, 1200000u64) then sperren=AUS endif

              schreiben
              Gruß
              Volker

              Wer will schon Homematic?

              Kommentar


                #8
                meinst du die letzte zeile? ich meinte die erste. irgendwie hat es mit dieser programmiersprache bei mir noch nicht klick gemacht ;-) das ich das ==1 bei binären weglassen kann habe ich schon verstanden ;-)

                Kommentar


                  #9
                  verabschiede Dich von dem Gedanken, dass das Programm immer wieder von Anfang an durchlaufen wird!
                  Auf ne gewisse Art ist es zwar so, führt aber eben genau zu der falschen Annahme, dass die erste Zeile mehrfach abgearbeitet wird. Wenn es so wäre, würde das Programm wirklich nicht funktionieren.
                  Jede Zeile wird immer nur dann abgearbeitet, wenn sich "der zu verarbeitende Inhalt" geändert hat. In der ersten Zeile ist das das "AUS". Da sich das niemals ändert, wird die Zeile nur ein einziges Mal beim Start durchlaufen.
                  Die 2. Zeile wird dementsprechend nur durchlaufen, wenn sich an den GA für Bewegung Bad/Küche/WC etwas ändert und so weiter.
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar


                    #10
                    ok, wenn jetzt aber die sperre eingeschaltet wird (zeile 4). dann hat sich ja die variable geändert warum wird dann nicht wieder die erste zeile ausgeführt. kann ich mir das so vorstellen, dass der eibpc in der zeile 5 "hängen bleibt" bis die variable wieder ausgeführt wird?

                    Kommentar


                      #11
                      Zitat von fuchs Beitrag anzeigen
                      ok, wenn jetzt aber die sperre eingeschaltet wird (zeile 4). dann hat sich ja die variable geändert warum wird dann nicht wieder die erste zeile ausgeführt.
                      die Frage hatte ich befürchtet...
                      Es trifft sozusagen immer nur den rechten Teil. Die Variable "Sperre" hat sich geändert, klar, aber das was der Variablen in der ersten Zeile zugewiesen werden soll hat sich nicht geändert, drum wird es nicht noch mal gemacht! Wenn es anders wäre würde ja schon
                      Code:
                      Sperre=EIN
                      Sperre=AUS
                      zu einer Endlosschleife führen. Beide Zeilen werden aber nur ein einziges mal abgearbeitet.

                      Zitat von fuchs Beitrag anzeigen
                      kann ich mir das so vorstellen, dass der eibpc in der zeile 5 "hängen bleibt" bis die variable wieder ausgeführt wird?
                      Nein, er bleibt nicht hängen, sondern entscheidet immer wieder von neuem, welche Zeile Deines Programms ausgeführt wird! In jedem Zyklus wird geprüft ob sich "rechts" was geändert hat. Wenn ja, wird die Zeile abgearbeitet, wenn nein, nicht.
                      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                      Kommentar


                        #12
                        ok, ganz klar ist mir das zwar noch nicht. kann ich aber davon ausgehen, dass solche variablenzuweisungen am anfang genrell immer nur einmal ausgeführt werden?

                        Kommentar


                          #13
                          juppp
                          Enertex Bayern GmbH - www.eibpc.com

                          Kommentar


                            #14
                            Zitat von fuchs Beitrag anzeigen
                            ok, ganz klar ist mir das zwar noch nicht. kann ich aber davon ausgehen, dass solche variablenzuweisungen am anfang genrell immer nur einmal ausgeführt werden?
                            hat bei mir auch etwas gedauert.....

                            Und wenn Du mit
                            solche variablenzuweisungen am anfang
                            den Programmanfang meinst: Auch wenn so eine Zeile mittendrin oder ganz am Ende steht, wird sie nur einmal ausgeführt.
                            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                            Kommentar


                              #15
                              Naja ich probiere ja noch etwas im trockenen :-) eibpc ist zwar schon vorhanden, aber ich bin noch bei der renovierung. aber eibpc ideen habe ich schon viele. daher hoffe ich, ich kann noch viele fragen hier stellen ;-)

                              Kommentar

                              Lädt...
                              X