Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitverzögerung Sonnenuntergang, After

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

    Zeitverzögerung Sonnenuntergang, After

    Hallo Experten,

    ich habe ein Problem mit der Funktion "after". Anbei der Code!

    Code:
    if (after(sun()==0b01,900000u64)) then write ("EG Jal. 2 Wohnzimmer-5/0/11",210); endif
    
    if (after(sun()==0b01,1800000u64)) then write ("EG Jal. 1 Wohnzimmer -5/0/10",205); endif
    Ich will also 15 Minuten nach Sonnenuntergang den Rolladen 2 fahren!
    30 Minuten nach Sonnenuntergang soll der Rolladen 1 fahren!

    Die zweite if-else Schleife wird aber nicht ausgeführt. Ich habe nun den Verdacht, dass nur die erste sun() Bedingung ausgeführt wird!

    Aber wie kann ich das dann am einfachsten lösen?

    Gruss Norbert

    #2
    Ist deine GA in der zweiten Zeile denn richtig? Das Leerzeichen nach dem Namen und vor dem "-" ist zumindest ungewöhnlich. Ansich ist das jedenfalls kein Thema.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Hallo Uwe,

      die GA ist korrekt. Die ziehe ich immer per Drag and Drop rüber!
      Der Fehler muss einen anderen Grund haben!

      Gruss Norbert

      Kommentar


        #4
        Schuss ins Blaue... Was macht denn der ; vor dem Endif? Der ist doch normalerweise nur dafür da wenn Du mehr als ein Kommando absetzen willst. Verstehe zwar nicht ganz warum der Compiler da nicht meckert, aber das wäre das Einzige was mir nun hier aufgefallen ist.

        Cheers,
        Oliver

        Kommentar


          #5
          Stimmt! Muss weg!
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #6
            Zitat von Uwe! Beitrag anzeigen
            Stimmt! Muss weg!
            nee, aufgrund der mannigfachen "Beschimpfungen" von diversen Usern, dass dieses ";" am Ende völlig unsinnig sei, hab ich seinerzeit die Syntax erweitert, sodass das schon zulässig ist.
            Ich tippe eher, dass das Programm nicht übertragen wurde. Jedenfalls mach ich schon seit Jahren das genau so bei mir zuhause.
            Gibt es Ereignisse? Vielleicht auch falsche GA?
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              falls zwischen den Zeilen tatsächlich eine leerzeile ist:
              - lösche die Leerzeile
              - eventuell ist nach dem 1. endif am Zeilenende noch etwas:
              - lösche alle Zeichen hinter dem 1. endif bis der Zeilenumbruch "zuschlägt" und brich dann mit einem return um
              EPIX
              ...und möge der Saft mit euch sein...
              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                nee, aufgrund der mannigfachen "Beschimpfungen" von diversen Usern,
                ich hoff mal, ich war nciht dabei.....

                Das heißt man kann mit oder ohne ";" an dieser Stelle arbeiten?

                Dann bin ich doch wieder bei meinem ersten Tipp mit dem seltsamen Leerzeichen im GA-Namen:
                Code:
                [FONT="Courier New"]
                "EG Jal. 1 Wohnzimmer -5/0/10"
                                     [B][COLOR="Red"]^[/COLOR][/B][/FONT]
                ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                Kommentar


                  #9
                  Zitat von Uwe! Beitrag anzeigen
                  Dann bin ich doch wieder bei meinem ersten Tipp mit dem seltsamen Leerzeichen im GA-Namen
                  dachte ich auch schon, aber der Compiler würde meckern, wenn die GA nicht existent wäre.
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    ja, aber

                    Das würde voraussetzen, dass in der ETS am Ende ein Leerzeichen hängt. Das wäre zumindest "komisch". Ich würde es in jedem Fall prüfen/korrigieren.

                    Andererseits: Der EibPC interessiert sich intern ja eh nur für den Teil rechts vom "-" und da kann eigentlich nichts falsch sein, außer Norbert hat einfach ne total falsche GA erwischt.
                    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                    Kommentar


                      #11
                      Hallo Experten,

                      ich hatte den Code im Post abgekürzt, da ich nicht mit Details langweilen wollte. Hier der vollständige Code:

                      Code:
                      if (after(sun()==0b01,900000u64)) then \\
                      	write ("EG Jal. 2 Wohnzimmer-5/0/11",210); \\
                      	write ("EG Jal. Gäste WC-5/0/16",205); \\
                      	write ("EG Jal. 2 HWR-5/0/18",205); \\
                      	write ("OG Jal. Flur-5/0/33",205); \\
                      	write ("OG Jal. 1 Arbeitszimmer-5/0/37",205);  \\
                      	write ("Sperrung BMW Außen Garage-1/0/21",AUS); \\
                      endif
                      
                      if (after(sun()==0b01,1800000u64)) then \\
                      	write ("EG Jal. 1 Wohnzimmer -5/0/10",205); \\
                      	write ("OG Jal. 1 Bad-5/0/34",205); \\
                      	write ("OG Jal. 2 Bad-5/0/35",205); \\
                      	write ("OG Jal. 3 Bad-5/0/36",205); \\
                      endif
                      Kein Befehl aus dem zweiten Absatz wird ausgeführt"

                      Wenn ich statt dem zweiten if(after(sun() ...
                      eine Uhrzeit für die Ausführung eingebe, wird der komplette Code ausgeführt, also bei z.B.
                      if (chtime(18,45,00)) usw.

                      Mein Verdacht ist, dass zweimal die Bedingung "if after sun()" das Problem ist. Evtl. wird nur die erste Bedingung abgearbeitet und die zweite gar nicht mehr berücksichtigt!

                      Ich tausche mal die Verzögerungszeiten. Mal schauen, was dann passiert!

                      Gruss Norbert

                      Kommentar


                        #12
                        Probiere einmal die \\ zu entfernen und alles in einer Wurst zu schreiben (der Editor bricht ohnehin um wenn er es braucht) und das Ganze mit {} zu definieren...
                        Außerdem die Leerzeichen zwischen write und der Klamme entfernen

                        Ich habe schon einige Male derartige "Mysterien" durch Entfernen der \\ und Leerzeichen behoben....

                        if (after(sun()==0b01,900000u64)) then {write("EG Jal. 2 Wohnzimmer-5/0/11",210);write("EG Jal. Gäste WC-5/0/16",205);write("EG Jal. 2 HWR-5/0/18",205);write("OG Jal. Flur-5/0/33",205);write("OG Jal. 1 Arbeitszimmer-5/0/37",205);write("Sperrung BMW Außen Garage-1/0/21",AUS)}endif
                        EPIX
                        ...und möge der Saft mit euch sein...
                        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                        Kommentar


                          #13
                          Hallo Experten,

                          der Tipp von EPIX war goldrichtig. Ich habe alle Umbrüche entfernt und alles in einer Zeile geschrieben. Außerdem das letzte Semikolon weggelassen. Die geschweiften Klammern habe ich allerdings nicht genutzt.
                          Nun funktioniert alles wie es soll!

                          Schade ist nur, dass die Übersicht leidet!

                          Vielen Dank für die Hilfe!

                          Gruß Norbert

                          Kommentar


                            #14
                            Zitat von Trebron Beitrag anzeigen
                            Hallo Experten,
                            der Tipp von EPIX war goldrichtig. Ich habe alle Umbrüche entfernt und alles in einer Zeile geschrieben. Außerdem das letzte Semikolon weggelassen. Die geschweiften Klammern habe ich allerdings nicht genutzt.
                            Hm. das kann ich mir nur sehr schwer vorstellen oder wenn dem so ist, dann würde ich gerne den Bug entfernen. Dazu bitte das Beispiel an eibpc at enertex de.
                            Die geschweiften Klammern sollten zudem gehen und dabei die Übersichtlichkeit erhöhen. Ich selbst nutze die seit Jahren fast ausschließlich.
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              Hallo Enertegus,

                              die Mail mit dem nicht funktionierenden und dem funktionierenden Code ist gerade rausgegangen!

                              Gruß Norbert

                              Kommentar

                              Lädt...
                              X