Ankündigung

Einklappen
Keine Ankündigung bisher.

Timer mit GA starten

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

    Timer mit GA starten

    Hallo, ich bräuchte eine kleine Hilfestellung zum kontrollierten aufrufen eines Timers.

    Folgender Code: //if cycle (02,00) then write ("Zwangslüftung Stufe 1-5/0/1",EIN) endif//

    Dieser Timer soll mit einer GA mit "1" gestartet und mit "0" gestoppt werden.
    Weiterhin soll die Möglichkeit bestehen, den Timer mit Tages- oder Wochenschaltuhr zu starten
    und zu stoppen.

    Alle meine Code Versuche weigert sich der EibPC hartnäckig anzunehmen.
    Vielleicht kann mir ja mal jemand einen Anstoss geben.

    Danke
    Frank

    #2
    Schau Dir mal Delayc an...

    Kommentar


      #3
      Schau Dir mal Delayc an...

      Kommentar


        #4
        Hmm, hab ich mir angeschaut.Ist nicht die Lösung oder erschließt sich mir nicht.
        Der Timer-Code funktioniert ja und soll auch so bestehen bleiben. Es geht darum, den gesamten Code
        mit einer GA zu starten bzw. zu stoppen.
        Sonst noch jemand eine Idee?

        Frank

        Kommentar


          #5
          wie wäre es denn mit einer verschachtelten Schleife, was allerdings nicht für Anfänger zu verstehen ist (laut EibPC Handbuch).
          Erste Schleife prüft die GA und wenn die EIN ist, läuft die innere Schleife mit dem Cycle.

          „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

          Kommentar


            #6
            Klingt gut, zähle mich in dem Fall allerdings zu den Anfängern
            Wie müßte den sowas aussehen?

            Kommentar


              #7
              Delayc wäre sicher eine Möglichkeit. Zur Fingerübung mal mit utctime():
              Code:
              // Etwas Definition
              uDiffTime2Min  = 2u64*60u64*1000u64
              uTimerStart=0u64
              
              // Die Triggervariable (auch als Zuweisung auf GA)
              bStart=AUS
              
              // Der Code
              if bStart then uTimerStart=utctime() endif
              if bStart and ((uTimerStart+uDiffTime2Min)<utctime()) then {
                  write('10/2/2'c14,$Timer Ready$c14) ;
                  // Rücksetzen erfolgt automatisch
                  bStart=AUS ;
              } endif
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von spassbird Beitrag anzeigen
                Erste Schleife prüft die GA und wenn die EIN ist, läuft die innere Schleife mit dem Cycle.
                Nee, das würde sicher nicht funktionieren, das dann die innere Schleufe nur exakt einmal aktiv wird. Daher muss man für sowas eine Variable definieren, wie oben das bStart.

                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Ok, bin jetzt total verwirrt. Den Cycle-Code mit GA starten und stoppen ist wenn ich's richtig verstehe so nicht möglich?
                  Wo müßte denn bei deinem Code die Start/Stopp GA eingesetzt werden?

                  Kommentar


                    #10
                    Code:
                    // Etwas Definition
                    uDiffTime2Min  = 2u64*60u64*1000u64
                    uTimerStart=0u64
                    
                    // Die Triggervariable (auch als Zuweisung auf GA)
                    bStart="MeineTriggerGA-1/1/1"
                    
                    // Der Code
                    if bStart then uTimerStart=utctime() endif
                    if bStart and ((uTimerStart+uDiffTime2Min)<utctime()) then {
                        write('10/2/2'c14,$Timer Ready$c14) ;
                        // Rücksetzen erfolgt automatisch
                        bStart=AUS ;
                    } endif
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      So, habe getestet. Wenn ich den Code mit der GA starte, wird nach 2 min die 10/2/2 mit EIN auf den Bus geschrieben.
                      Soweit ok.
                      Allerdings passiert das nur genau einmal und dann nicht wieder. So soll es aber nicht sein.
                      Wenn ich den Cycle starte wird im Abstand von jeweils 2 min ein EIN-Befehl geschickt.
                      Und das soll solange passieren, bis er wieder gestoppt wird.

                      Kommentar


                        #12
                        O. k. dann habe ich dich nicht richtig verstanden, muss ich morgen dann mal schauen. Jetzt ruft erst mal die Verwandtschaft…
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          So, das wäre dann einfach so:
                          Code:
                          // Etwas Definition
                          uDiffTime2Min  = 2u64*60u64*1000u64
                          uTimerStart=0u64
                          
                          // Die Triggervariable (auch als Zuweisung auf GA)
                          // Wenn die GA auf AUS geht, stoppt der Zyklus und bei erneutem EIN startet dieser neu.
                          bStart="MeineTriggerGA-1/1/1"
                          
                          // Der Code
                          if bStart then uTimerStart=utctime() endif
                          if bStart and ((uTimerStart+uDiffTime2Min)<utctime()) then {
                              write('10/2/2'c14,$Timer Ready$c14) ;
                              // Rücksetzen erfolgt automatisch
                              uTimerStart=utctime()
                          } endif
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #14
                            Jeep, läuft super. Hab nichts anderes erwartet.
                            Eine Kleinigkeit noch. Wie müßte denn die Zeile aussehen, wenn statt der c14 eine 1 Bit Adresse alle 2min ein "EIN" schicken soll?

                            write('10/2/2'c14,$Timer Ready$c14) ;???

                            Kommentar


                              #15
                              Muss nochmal nachhaken.
                              Warum funktioniert diese Adresse: 10/2/2c14? //write('10/2/2'c14,$Timer Ready$c14) //

                              und diese hier nicht 10/2/2b01 //write('10/2/2'b01,$Timer Ready$b01) //



                              Kommentar

                              Lädt...
                              X