Ankündigung

Einklappen
Keine Ankündigung bisher.

Code geht nicht mehr seit dem Patch

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

    Code geht nicht mehr seit dem Patch

    Hallo,

    ich habe auf der Visu einen Button, mit dem ich den Kinderaufwecken Modus an oder ausschalten kann. Vor dem Patch hat es einwandfrei funktioniert, jetzt leider nicht mehr.

    Code:
    if pbutton(KinderaufweckenFreigabeID,GangOGID)==1 and after(KinderaufweckenFreigabe==AUS,100u64) and KinderaufweckenFreigabe==AUS then KinderaufweckenFreigabe=EIN endif
    if pbutton(KinderaufweckenFreigabeID,GangOGID)==1 and after(KinderaufweckenFreigabe==EIN,100u64) and KinderaufweckenFreigabe==EIN then KinderaufweckenFreigabe=AUS endif
    Hat sich beim Abfrageshema der Buttons oder bei der after Funktion etwas geändert?

    Habs auch schon mit anderen Werten und mit delay probiert, geht aber auch nicht.

    Grüße,
    Felix

    #2
    Zitat von daF Beitrag anzeigen
    Hallo,
    ich habe auf der Visu einen Button, mit dem ich den Kinderaufwecken Modus an oder ausschalten kann. Vor dem Patch hat es einwandfrei funktioniert, jetzt leider nicht mehr.
    Die after-Funktion verhält sich nun durchgängig so, wie im Handbuch spezifiziert (und wie die Delay-Funktion schon immer) . Was Du gecodet hattest war daher wohl ok für Deine Anwendung, nun leider nicht mehr. After liefert einen kurzen "EIN" Impuls.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Zitat von enertegus Beitrag anzeigen
      After liefert einen kurzen "EIN" Impuls.
      Das erklärt auch problem bei mir... Wäre das nicht auch was für die Release Notes gewesen oder hab ich was übersehen!?

      Wie kann man am einfachsten das "alte" veralten nun erreichen?
      Gruß
      Christian

      Kommentar


        #4
        Zitat von chg Beitrag anzeigen
        Das erklärt auch problem bei mir... Wäre das nicht auch was für die Release Notes gewesen oder hab ich was übersehen!?
        Ja, ich hatte darüber nachgedacht. Allerdings war es ja ein "unerwüschentes" Feature (=Bug), dass es sich so verhielt. Daher haben wir darauf verzichtet. Außerdem hatte die after-Funktion in der alten Implementierung noch weitere Probleme...
        T'schuldigung,wenn dadurch Konfusion entstanden ist. Das Gegenteil war die Absicht.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Kannst du dann bitte noch die Unterschiede erklären, damit ich meinen Code auch prüfen kann?
          BR
          Marc

          Kommentar


            #6
            Zitat von saft6luck Beitrag anzeigen
            Kannst du dann bitte noch die Unterschiede erklären, damit ich meinen Code auch prüfen kann?
            Das "neue" after liefert nur einen kurzen EIN-Impuls wie im Handbuch beschrieben. Das alte blieb u.U. auf solange EIN, wie das erste Argument und ging erst wieder verzögert auf aus.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Zitat von enertegus Beitrag anzeigen
              Ja, ich hatte darüber nachgedacht. Allerdings war es ja ein "unerwüschentes" Feature (=Bug), dass es sich so verhielt. Daher haben wir darauf verzichtet. ... T'schuldigung,wenn dadurch Konfusion entstanden ist. Das Gegenteil war die Absicht.
              Ich finde es ja gut, wenn Ihrer solche Dinge korrigiert. Jedoch verlasse ich mich im Endeffekt oft auf das Ergebnis das der Code produziert und prüfe nicht immer das korrekte verhalten der einzelnen Funktionen nach dem Handbuch. Das ist vor allem bei "altem" Code so der schon einige Zeit läuft.

              Der EibPC ist bei uns schon über ein Jahr in Betrieb und übernimmt liebgewonnen Automatismen (An die man sich sehr sehr schnell gewöhnt ;-). Wenn nun ein Update ansteht, prüfe ich natürlich z.B. anhand der Release Notes, ob dieses Updates den "produktiven Haus-Betrieb" stören könnte oder ob ich Anpassungen vornehmen muss. Ihr wisst ja wie das mit dem WAF ist... Sollte alles noch funktionieren... Hab nur ein Update durchgeführt... ;-)

              Zitat von chg Beitrag anzeigen
              Wie kann man am einfachsten das "alte" veralten nun erreichen?
              Hat hierfür jemand einen syntaktisch allgemeingültigen Workaround? Oder eine andere Funktion?
              Gruß
              Christian

              Kommentar


                #8
                Hi Christian,

                mir ist nicht ganz klar, warum Du das after da überhaupt drin hast?

                Beim jetzigen Code müßte ja das Ablaufen von after = trigger und der tastendruck exakt zeitlich zusammentreffen, auf den Zyklus genau.

                Was spricht gegen:
                [highlight=epc]
                if pbutton(KinderaufweckenFreigabeID,GangOGID)==1 then KinderaufweckenFreigabe = !KinderaufweckenFreigabe endif
                [/highlight]

                Gruß,
                Bernd

                Kommentar


                  #9
                  Hey Bernd,

                  Danke aber bei dem Code handelt es sich nicht um meinen ;-) Das war das Post von Felix alias daF.

                  Ich hab bei mir öfters mit after() sozusagen eine Sperrzeit realisiert.
                  Beispiel: Ich prüfen die Pos-Rückmeldung (GA) einer Jalousie nachdem ich diese mit dem EibPC gefahren habe. Da die Rückmeldung erst verzögert eintrifft, möchte ich nachdem die Funktion (Fahren der Jal.) ausgelöst wurde eine gewisse Zeit warten. Mit der Abfrage überwache ich sozusagen die GA um festzustellen ob mittels Taster o.ä. die Jalousie-Pos geändert wurde. In dem Fall deaktiviere ich eine Funktion im EibPC.

                  [highlight=epc]
                  if (after(JalousieLueftungsLogik^Makro==EIN,20000u64) and JalousieLueftungsLogik^Makro==EIN and JalousiePositionRueckmeldung!=JalousieLueftungsPos ^Makro) then {
                  JalousieLueftungsLogik^Makro = AUS
                  } endif
                  [/highlight]

                  Mit dem früheren Verhalten von after() war das so korrekt. Denn der after()-Ausdruck ja TRUE blieb. Jetzt geht er auf FALSE und das IF wird nicht ausgeführt wenn JalousiePositionRueckmeldung!=JalousieLueftungsPos ^Makro ist...

                  Ich steh da irgendwie auf dem Schlauch...
                  Gruß
                  Christian

                  Kommentar


                    #10
                    Hallo Bernd,

                    der Grund für das "after" war, dass ohne das "after" anscheinend beide Zeilen verarbeitet wurden und so der Wert durch Tastendruck nicht verarbeitet werden konnte. Das Problem hatte ich nur bei Änderung von Variablen im EibPC. Bei Werten, die als Telegramm geschrieben wurden, trat das nicht auf. Ich denke mal wegen der Busverzögerung. Mit dem "after" hats damals dann super geklappt.

                    Und danke für den Tipp. Ich werde das mal testen.

                    Grüße,
                    Felix

                    Kommentar


                      #11
                      Hallo Bernd,

                      Dein Vorschlag funktioniert. Vielen Dank nochmal.

                      Grüße,
                      Felix

                      Kommentar


                        #12
                        Zitat von chg Beitrag anzeigen
                        Mit dem früheren Verhalten von after() war das so korrekt. Denn der after()-Ausdruck ja TRUE blieb. Jetzt geht er auf FALSE und das IF wird nicht ausgeführt wenn JalousiePositionRueckmeldung!=JalousieLueftungsPos ^Makro ist...
                        Hab mein Problem an der Stelle mal so gelöst...

                        [highlight=epc]
                        if (JalousieLueftungsLogik^Makro==EIN and JalousiePositionRueckmeldung!=JalousieLueftungsPos ^Makro and delay(JalousiePositionRueckmeldung!=JalousieLueftu ngsPos^Makro,20000u64)) then {
                        JalousieLueftungsLogik^Makro = AUS
                        } endif
                        [/highlight]

                        Zitat von saft6luck Beitrag anzeigen
                        Kannst du dann bitte noch die Unterschiede erklären, damit ich meinen Code auch prüfen kann?
                        Anscheinend eine weitere Änderung bei after(): Die Funktion wird nun nicht mehr ausgeführt wenn die Zeit "0u64" ist!?
                        Gruß
                        Christian

                        Kommentar


                          #13
                          Zitat von chg Beitrag anzeigen
                          Anscheinend eine weitere Änderung bei after(): Die Funktion wird nun nicht mehr ausgeführt wenn die Zeit "0u64" ist!?
                          Das wäre wohl das feature, dass after und delay sich nun gleich verhalten (bis auf das retriggern).
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #14
                            Zitat von enertegus Beitrag anzeigen
                            Das wäre wohl das feature, dass after und delay sich nun gleich verhalten (bis auf das retriggern).
                            Ähm!? Ich dachte das retriggern soll der einzige Unterschied sein!? Aber wenn ich einfach delay() anstatt after() verwenden kann soll es mir recht sein... Verstehe es allerdings nicht so ganz...
                            Gruß
                            Christian

                            Kommentar


                              #15
                              Zitat von chg Beitrag anzeigen
                              Ähm!? Ich dachte das retriggern soll der einzige Unterschied sein!?
                              ja, es soll der einzige sein. So ist der Plan. Demnach müsste sich delay bei 0u64 genauso verhalten wie after.
                              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                              Enertex Produkte kaufen

                              Kommentar

                              Lädt...
                              X