Ankündigung

Einklappen
Keine Ankündigung bisher.

Zuverlässigkeit von htime()

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

    Zuverlässigkeit von htime()

    Hallo!

    Das Thema hatten wir zwar schon, aber ich hab mich jetzt bewusst nicht an die alten Glaubenskriege angehängt.

    Ich hatte bis gestern viele über chtime() gesteuert, z. B. Rollos hoch und runter. Hat die letzten Jahre höchst zuverlässig funktioniert. (never change...)

    Das einzige, was mich gestört hat war, dass solche Aktionen bei einem Neustart nach dem Zeitpunkt erneut ausgeführt werden, weil die Bedingung natürlich noch immer gültig ist. Ein versuch mit "and !systemstart()" hat leider keine Wirkung gezeigt. Also hab ich es gestern abend mal auf htime() umgestellt. Ergebnis war, dass heute morgen die Rollos unten blieben....

    Ich hab aber auch noch einige Events mit "PROCESSINGTIME", was wohl die "Ursache" ist. Trotzdem ärgerlich. Daher zweigeteilte Frage:

    a) Kann man es nicht doch schaffen, dass ein htime() immer ausgeführt wird, auch wenn die Schleife grad in dem Augenblick mal > 1 Sek. braucht?

    b) gibt's eine Lösung, dass Aktionen die von chtime() abhängen nicht bei jedem Neustart erneut ausgeführt werden? (dann würde ich einfach auf chtime() wieder zurück gehen)

    Danke!
    Zuletzt geändert von Uwe!; 05.11.2015, 08:34.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    #2
    Zitat von Uwe! Beitrag anzeigen
    Ich hab aber auch noch einige Events mit "PROCESSINGTIME", was wohl die "Ursache" ist. Trotzdem ärgerlich. Daher zweigeteilte Frage:
    Wenn dieses Event kommt, sollte man erst mal das eigene Programm analysieren. Alles andere ist "herumdoktern" an der falschen Baustelle.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Zitat von Uwe! Beitrag anzeigen
      b) gibt's eine Lösung, dass Aktionen die von chtime() abhängen nicht bei jedem Neustart erneut ausgeführt werden? (dann würde ich einfach auf chtime() wieder zurück gehen)
      Ja, die Lösung könnte "Zeitintervalle" heißen. Im Idealfall welche, die fachlich sinnvoll sind, oder sonst einfach 1 Minute oder so, z.B.
      Code:
      if chtime(15,00,00) and !chtime(15,01,00) then {
         [...]
      } endif;

      Kommentar


        #4
        @Michael:
        Ich hatte ziemlich viel cycle() zu jeder Minute drin. Das war noch aus den Anfangen und die Wirkung war in der Grafik zur Processingtime deutlich zu sehen. Das hab ich gestern Abend alles (soweit machbar) auf change() umgestellt und die minütlichen Ausschläge in der Processingtime sind jetzt weg. Hab noch mal geprüft, seit gestern Abend hab ich KEINE Events mit Processingtime mehr! Die ausgelassene htime() war allerdings heute morgen.


        DerRenovator:
        Danke! So einen Denkanstoß hab ich gesucht! Das könnte für mein Thema die Lösung sein, wenngleich htime() ja auch funktionieren müsste/sollte.

        Zuletzt geändert von Uwe!; 03.11.2015, 16:27.
        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

        Kommentar


          #5
          Und wenn Du dieses Zeitintervall dann noch in ein Makro einbettest, dann kannst Du mit Suchen und ersetzen alle Deine htime umwandeln in z.B. htimex.

          Gruß,
          Bernd

          Kommentar


            #6
            Bernd
            Du bist mir ja einer.
            Danke, noch ne gute Idee.
            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

            Kommentar


              #7
              aktueller Status:

              keine Processingtime events mehr, alle htime() funktionieren (hab extra noch etliche zum Test eingebaut) nur der eine für morgens die Rollo hoch geht nicht. Das scheint daher eher ein Desingfehler meinerseits, als ein Problem von htime() zu sein. Mein Code:
              Code:
              Morgen_Hoch = Elevation() >= RWinkel and (htime(6, 15, 0) and Werktag) or (htime(8, 00, 0) and Wochenende)
              if change(Morgen_Hoch) and Morgen_Hoch then write("Langzeit Morgens-3/1/240", RAUF) endif
              Mit chtime hat der Code wie gesat seit JAhren problemlos funktioniert. Die Variablen sind daher korrekt.
              Ist das Problem evtl. dass die zwei Zeilen nicht im gleichen Zyklus ausgeführt werden und daher der write nie zum Zuge kommt?
              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

              Kommentar


                #8
                Hallo Uwe,

                dein Code birgt tatsächlich ein logisches Problem. Die Variable "Morgen_Hoch" geht nur dann auf true, wenn um exakt 6.15 Uhr bereits die Bedingung "Elevation > RWinkel" erfüllt ist. Ich vermute, dass das um diese Jahreszeit nicht der Fall ist. Im Sommer oder am Wochenende könnte es funktionieren...

                Mit chtime hast / hattest du dieses Problem nicht. Dann wartet die Bedingung auf den Sonnenaufgang.

                Im Übrigen finde ich dies ein gutes Beispiel, wo ein fachlich sinnvolles Intervall gewählt werden kann. Bei uns fahren die Rollos z.B. werktags spätestens um 8 Uhr hoch - egal was die Sonne macht.

                Gute Nacht,
                Jens.
                Angehängte Dateien

                Kommentar


                  #9

                  Logo! Danke! Mit eigenem Code ist es manchmal wie mit eigenen Tippfehlern. Man kann es drei mal lesen und findet doch keinen Fehler mehr!
                  Klar, hier müsste man ein Intervall 6:15 bis spätester Sonnenaufgang wählen!

                  Ok, dann entschuldige ich mich bei htime() für meinen Verdacht. ;-)
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar


                    #10
                    Zitat von Uwe! Beitrag anzeigen

                    Ok, dann entschuldige ich mich bei htime() für meinen Verdacht. ;-)
                    Nun, da ist htime doch zuverlässiger als gedacht

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

                    Kommentar


                      #11
                      ja, ja, streu ruhig Salz in die Wunde!

                      Das Problem saß wie immer vor dem Computer!
                      (jetzt weiß ich auch vor welchem....)
                      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                      Kommentar

                      Lädt...
                      X