Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Schaltuhr ( htime )

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

    Problem mit Schaltuhr ( htime )

    Hallo,

    ich habe aber neuerdings ein Fehlverhalten mit einer Schaltuhrfunktion:
    + ich setzte um Mitternacht eine Variable abhängig von Werktag bzw. Feiertag auf 6:15 bzw. 8:00
    + wenn ich die Variablen abfrage, stehen auch die richtigen Werte darin

    In der folgenden IF-Abfrage wird am Wochenende trotzdem zuerst um 6:15 der Befehl und anschließend um 8:00 ausgeführt !!

    Mir ist völlig schleierhaft, woher der EibPC noch die 6:15 hat ?

    Noch eine kleine Randinfo: unter der Woche ist alles ok, Samstag wird um 6:15 und 8:00 das Tor geöffnet - Sonntag und Mo - Fr. alles i.o. !

    BTW.: ich denke nicht, dass es sich hier um ein Problem mit htime vs. chtime handelt ...

    Hat jemand auch schon so ein Verhalten gehabt ?

    Gruss

    wolfgang
    Zuletzt geändert von wetronic; 24.09.2017, 20:58.
    ETS 6.2 EibPC V3.x

    #2
    Ohne Code wird das was für...
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      sorry - wollte ers einmal pauschal anfragen ...

      die Variablen c_HrStartUp und c_MinStartUp werden abhängig vom Wochentag gesetzt ...
      Funktion: wenn wir da sind, soll unter der Woche um 6:15 das Tor geöffnet werden und am Wochenende um 8:00

      Die Variablen werden bei Neustart gesetzt:

      Code:
      // Zeiten fuer MorgenAktionen ( Jalousie und Licht )
      c_HrStartUp = 0u08
      c_MinStartUp = 0u08
      c_HrStartUpWE = 8u08
      c_MinStartUpWE = 0u08
      c_HrStartUpNormal = 6u08
      c_MinStartUpNormal = 15u08
      hier werden die Zeiten zugeordnet ( N = kein Feiertag, F=Feiertag ) - jeweils nach Mitternacht:

      Code:
      if ( !c_Urlaub and c_TypKalenderTag == $N$ ) XOR ( !c_Urlaub and c_TypKalenderTag == $F$ ) then {/* WERKTAG oder kirchl. FEIERTAG    */;
          c_HrStartUp = c_HrStartUpNormal;
          c_MinStartUp = c_MinStartUpNormal
      } endif
      
      if c_TypKalenderTag == $W$ OR c_TypKalenderTag == $G$ OR c_Urlaub then {    /* WOCHENENDE     */;
          c_HrStartUp = c_HrStartUpWE;
          c_MinStartUp = c_MinStartUpWE
      } endif
      und so ist der Aufruf:

      Code:
      [highlight=epc]
      
      // Tor oeffnen wenn MORGENS, ANWESEND UND Tor ist ZU
      if htime(c_HrStartUp,c_MinStartUp,00) and !c_abwesend and "Tor-Status-5/5/16" then write ("Tor-Auf-Stop-Zu-5/2/0", EIN ) endif
      
      [/highlight]
      Zuletzt geändert von wetronic; 25.09.2017, 07:27.
      ETS 6.2 EibPC V3.x

      Kommentar


        #4
        In der folgenden IF-Abfrage wird am Wochenende trotzdem zuerst um 6:15 der Befehl und anschließend um 8:00 ausgeführt
        Genau dieses Problem habe ich auch seit einiger Zeit !

        Wird eine Variable im htime verändert, schaltet der Timer bei der alten UND bei der neu eingestellten Zeit.
        Es ist auch egal wie diese Variable verändert wird. (Webinterface, Debugger oder aus dem Code heraus).

        Kommentar


          #5
          Ok, dann sehe ich vielleicht doch keine "Geister" Dann sind wir mal auf Michael gespannt ...
          ETS 6.2 EibPC V3.x

          Kommentar


            #6
            Hallo zusammen,

            habe einen Test angeworfen. Werde mich am Donnerstag wieder dazu melden.
            Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
            Amazon: KNXnet/IP Router
            , KNXnet/IP Interface

            Kommentar


              #7
              Hallo,
              der Fehler konnte nicht nachvollzogen werden.
              Nachfolgendes Testprogramm wurde vorgestern um 17:40 gestartet.
              • Um 17:41 hat es wie erwartet auf die GA geschrieben
              • Kurz darauf habe ich TypeOfDay mit dem Debugger auf "WE" geändert
              • Um 17:43 hat es wie erwartet auf die GA geschrieben
              • Gestern hat es wie erwartet nur um 17:43 auf die GA geschrieben

              Code:
              [EibPC]
              TypeOfDay = $WD$
              
              HrStartUpWeekday = 17u08
              MinStartUpWeekday = 41u08
              
              HrStartUpWeekend = 17u08
              MinStartUpWeekend = 43u08
              
              HrStartUp = 0u08
              MinStartUp = 0u08
              
              hTimeActivated = 0u08
              
              if TypeOfDay == $WD$ then {
                  HrStartUp = HrStartUpWeekday;
                  MinStartUp = MinStartUpWeekday
              } endif
              if TypeOfDay == $WE$ then {
                  HrStartUp = HrStartUpWeekend;
                  MinStartUp = MinStartUpWeekend
              } endif
              
              if htime(HrStartUp,MinStartUp,00) then {
                  write("htimeIndicator-0/0/4", 1f16);
                  hTimeActivated=1u08
              } endif
              Damit liegt der Fehler wohl in deiner Wochenende/Feiertag/Urlaub - Logik.
              Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
              Amazon: KNXnet/IP Router
              , KNXnet/IP Interface

              Kommentar


                #8
                Hallo enermax,

                so wie von Dir getestet funktioniert htime ja auch.

                In meinem (und wahrscheinlich auch Wolfgangs) Szenario ist die Lage aber etwas anders.

                Beispiel:
                VarStd=12u08
                VarMin=00u08
                if htime(VarStd,VarMin,00) then ..........

                Der Then-Zeig wird täglich um 12 Uhr ausgeführt. Soweit korrekt.
                Nun setze ich vormittags VarStd auf 14u08.
                Der Then-Zweig wird dann an diesem Tag um 12 UND 14 Uhr ausgeführt.
                Am nächsten Tag dann nur noch um 14 Uhr.

                Dieses Verhalten kann ich zu 100% reproduzieren.

                Kommentar


                  #9
                  Hallo,

                  zusammen - ich bin mir auch sehr sicher !
                  @enermax: kann ich noch irgendwelche traces beisteuern ?

                  michael, ich denke auch, das Problem könnte aus dem Kontext der Änderung der Variablen stammen. Bei mir gibt es kurz nach Mitternacht die neue Zeit. Am Samstagmorgen wird aber zuerst zur alten Zeit das Tor geöffnet und dann zur neuen Zeit. Sonntags denke ich, ist alles ok und Mo - Fr. sowieso ...

                  => ich denke also, wir bräuchten noch Support
                  ETS 6.2 EibPC V3.x

                  Kommentar


                    #10
                    Hallo Michael,

                    danke für die Rückmeldung und Richtigstellung.

                    Dann schmeiss ich mein Programm nochmal an:
                    Code:
                    [EibPC]
                    TypeOfDay = $WD$
                    
                    HrStartUpWeekday = 12u08
                    MinStartUpWeekday = 0u08
                    
                    HrStartUpWeekend = 13u08
                    MinStartUpWeekend = 0u08
                    
                    HrStartUp = 0u08
                    MinStartUp = 0u08
                    
                    hTimeActivated = 0u08
                    
                    if TypeOfDay == $WD$ then {
                        HrStartUp = HrStartUpWeekday;
                        MinStartUp = MinStartUpWeekday
                    } endif
                    if TypeOfDay == $WE$ then {
                        HrStartUp = HrStartUpWeekend;
                        MinStartUp = MinStartUpWeekend
                    } endif
                    
                    if htime(HrStartUp,MinStartUp,00) then {
                        write("htimeIndicator-0/0/4", 1f16);
                        hTimeActivated=1u08
                    } endif
                    Morgen vor 12 ändere ich dann TypeOfDay auf WE und beobachte ob um 12 und 13 Uhr geschrieben wird. Szenario richtig erfasst?
                    Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                    Amazon: KNXnet/IP Router
                    , KNXnet/IP Interface

                    Kommentar


                      #11
                      Szenario richtig erfasst?
                      Genau so.

                      Edit:
                      Dieses Verhalten war nicht von Anfang an so!
                      Ich kann das erste Auftreten leider zeitlich nicht mehr so recht einordnen.
                      Ob nun nach einem Patchupdate (ab 3.1xx ?) oder ab einer höheren Auslastung meines EibPC.
                      Zuletzt geändert von Michael1975; 28.09.2017, 11:17.

                      Kommentar


                        #12
                        Fehler konnte reproduziert werden - er hat um 12 und 13 Uhr auf die GA geschrieben.

                        Werden uns das näher anschauen. Mit der Auslastung hat es bestimmt nichts zu tun, weil der Fehler tritt ja in meinem Mini-Programm auch auf.

                        Danke mal so weit für eure Mithilfe.
                        Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                        Amazon: KNXnet/IP Router
                        , KNXnet/IP Interface

                        Kommentar


                          #13
                          Hallo Enermax,

                          gibt es schon einen "Wasserstand" bezüglich einer Lösung oder ein "Workaround" damit am Wochenende die Jalousien wieder später hochgehen - wäre dem Hausfrieden dienlich

                          Gruss

                          Wolfgang
                          ETS 6.2 EibPC V3.x

                          Kommentar


                            #14
                            Zitat von wetronic Beitrag anzeigen
                            Hallo Enermax,

                            gibt es schon einen "Wasserstand" bezüglich einer Lösung oder ein "Workaround" damit am Wochenende die Jalousien wieder später hochgehen - wäre dem Hausfrieden dienlich

                            Gruss

                            Wolfgang
                            if (chtime(h,m,s) && !chtime(h,m,s+1) then ....

                            Kommentar


                              #15
                              Max hat einen Betapatch erstellt. Ich denke, er hat dies auch mit wetronic kommuniziert
                              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                              Enertex Produkte kaufen

                              Kommentar

                              Lädt...
                              X