Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitfunktionen

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

    #16
    Zitat von anlo007 Beitrag anzeigen
    viele Wege führen nach ROM.
    Stimmt schon.

    Die Frage, welchen Fehler cwtime() denn hat, bleibt aber auch hier, denn auch diese Version könnte ja Probleme bereiten.

    Ich habe mir gestern ca. 2 Stunden Zeit genommen, um eine Lösung zu erarbeiten, die sicher läuft, und zwar mit diversen Möglichkeiten, z.B. extra Abfrageblock während des Systemstarts, Initialisierung geändert, andere Struktur (wie vorgeschlagen), etc, etc. Aber es gab immer(!) eine Startzeit, zu der "Nachtzeit" falsch war. Erst nach einem Nachtzeit-Wechsel hat es dann gepasst. Und mit Logik ist das nicht zu erklären, oder?

    Neben 2 notwendigen Neustarts und der Gewissheit, dass es so nicht geht, und es ohne Debugger einfach unmöglich ist, die Ursache zu finden, bin ich also nicht schlauer. Da würde ich schon gerne wissen, warum es so ist.
    BR
    Marc

    Kommentar


      #17
      Zitat von saft6luck Beitrag anzeigen
      Abgesehen von "WERKTAGS", welches Problem hat cwtime denn?
      Nur diesen, aber eigentlich kein Fehler:
      cwtime geht auf EIN bis zum Ende der Woche, wenn der Zeitpunkt erreicht ist. Daher ist cwtime-Werktags gleich zu MONTAG.

      Der Anwender (da bin ich bei Euch) erwartet aber, dass nur während der Woche auf EIN steht.
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #18
        Zitat von enertegus Beitrag anzeigen
        Nur diesen, aber eigentlich kein Fehler:
        cwtime geht auf EIN bis zum Ende der Woche, wenn der Zeitpunkt erreicht ist. Daher ist cwtime-Werktags gleich zu MONTAG.

        Der Anwender (da bin ich bei Euch) erwartet aber, dass nur während der Woche auf EIN steht.
        Ja, der WERKTAGS Bug ist klar.

        Kannst du dann bitte den Code von Bernd erklären? D.h. wie wird der Code abgearbeite (nach dem Download) und warum kommt ab 22:00 Uhr ein (für mich) unerwarteter Wert heraus?

        Warum funktioniert es mit Nachtzeit=EIN nicht? Oder die verzögerte Auswertung?
        BR
        Marc

        Kommentar


          #19
          Hallo Michael,

          kannst du bitte erklären, warum der Code von Bernd ab 22:00 nicht läuft?
          BR
          Marc

          Kommentar


            #20
            Zitat von saft6luck Beitrag anzeigen
            Hallo Michael,

            kannst du bitte erklären, warum der Code von Bernd ab 22:00 nicht läuft?
            welchen meinst Du denn?
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #21
              Zitat von enertegus Beitrag anzeigen
              welchen meinst Du denn?
              Egal, im Prinzip geht es um den Code in https://knx-user-forum.de/83566-post4.html
              Der Rest funktioniert aber auch nicht besser ...
              BR
              Marc

              Kommentar


                #22
                Zitat von bmx Beitrag anzeigen
                Hi Markus,
                [CODE]
                Nachtzeit = AUS
                Party = AUS
                if systemstart() then write("MSG-9/2/0", $Nachtzeit$c14+Convert(Nachtzeit,$$c14)) endif

                // WERKTAGS = BUG if cwtime( 06,00,00,WERKTAGS) then Nachtzeit = AUS endif
                if cwtime( 06,00,00,MONTAG) then Nachtzeit = AUS endif
                if cwtime( 06,00,00,DIENSTAG) then Nachtzeit = AUS endif
                if cwtime( 06,00,00,MITTWOCH) then Nachtzeit = AUS endif
                if cwtime( 06,00,00,DONNERSTAG) then Nachtzeit = AUS endif
                if cwtime( 06,00,00,FREITAG) then Nachtzeit = AUS endif
                if cwtime( 08,00,00,WOCHENENDE) then Nachtzeit = AUS endif
                if chtime( 22,00,00) then Nachtzeit = EIN endif
                [/CODE
                Wenn ich jetzt (also 22:18) das Programm neu aufspiele, ist und bleibt die Nachtzeit auf AUS und geht nicht auf ein. Daher brauche ich eine Lösung für eben solche Fälle, das dieser Zeitpunkt überschritten ist. Ich denke das ist ein Problem des Validierungsschemas und mir fällt derzeit keine Lösung ein.
                Zumindest in der internen Entwicklerversion haben wir das behoben.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #23
                  Zitat von enertegus Beitrag anzeigen
                  Zumindest in der internen Entwicklerversion haben wir das behoben.
                  Wenn es bald behoben ist, kannst du das Geheimnis gerne für dich behalten.
                  BR
                  Marc

                  Kommentar


                    #24
                    Hallo zusammen,

                    Code:
                    // Verzögerung der Auswertung einer Zeitschaltuhr
                    DelEval = AUS
                    if after(systemstart(),5000u64) then DelEval = EIN endif
                    
                    if cwtime( 06,00,00,MONTAG) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 06,00,00,DIENSTAG) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 06,00,00,MITTWOCH) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 06,00,00,DONNERSTAG) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 06,00,00,FREITAG) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 08,00,00,SAMSTAG) and DelEval then Nachtzeit = AUS endif
                    if cwtime( 08,00,00,SONNTAG) and DelEval then Nachtzeit = AUS endif
                    if chtime( 22,00,00) and DelEval then Nachtzeit = EIN endif
                    Ich vermute das Problem ist die Validierung bei Systemstart. Alle Ausdrücke werden bei Systemstart als gültig angenommen, daher wird die chtime() nicht ausgewertet. Ich habe eine Und-Verknüpfung vorgenommen so das in der If-Abfrage eigentlich neu ausgewertet werden müßte.
                    Bei mir scheint es zu funktionieren. Ich weiß nicht, ob es irgendwelche Nebenwirkungen hat, die mir noch nicht aufgefallen sind ...

                    Gruß,
                    Bernd

                    Kommentar


                      #25
                      Das hier habe ich noch eben getestet:
                      Code:
                      [EibPC]
                      // geht ab 1.094
                      Nachtzeit = AUS
                      if cwtime( 06,00,00,MONTAG) then Nachtzeit = AUS endif
                      if cwtime( 06,00,00,DIENSTAG) then Nachtzeit = AUS endif
                      if cwtime( 06,00,00,MITTWOCH) then Nachtzeit = AUS endif
                      if cwtime( 06,00,00,DONNERSTAG) then Nachtzeit = AUS endif
                      if cwtime( 06,00,00,FREITAG) then Nachtzeit = AUS endif
                      if cwtime( 08,00,00,WOCHENENDE) then Nachtzeit = AUS endif
                      if chtime( 22,00,00) then Nachtzeit = EIN endif
                      
                      Nachtzeit2=AUS
                      if ( (dayofweek()==SONNTAG) or (dayofweek()==SAMSTAG)) and chtime( 08,00,00) then Nachtzeit2=AUS endif
                      if ( (dayofweek()!=SONNTAG) and (dayofweek()!=SAMSTAG)) and chtime( 06,00,00) then Nachtzeit2=AUS endif
                      if chtime( 22,00,00) then Nachtzeit2 = EIN endif
                      
                      a='1/1/1'c14
                      // läuft in jedem Fall mal nach 8:00 los.
                      ZeitDauer10Sek=AUS
                      if chtime( 08,00,00) then ZeitDauer10Sek=EIN;write('1/1/1'c14,$EIN$c14) endif
                      if after(ZeitDauer10Sek,10000u64) then ZeitDauer10Sek=AUS;write('1/1/1'c14,$AUS$c14) endif
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #26
                        Zitat von enertegus Beitrag anzeigen
                        Das hier habe ich noch eben getestet:
                        Code:
                        [EibPC]
                        // geht ab 1.094
                        ...
                        Gut, also ab V 1.094 tut es.
                        BR
                        Marc

                        Kommentar

                        Lädt...
                        X