Ankündigung

Einklappen
Keine Ankündigung bisher.

Tor Status funktioniert nicht mehr nach patch 2.300

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

    #16
    Zitat von Sandman60 Beitrag anzeigen
    Davon würde ich aus praktischer Erfahrung eher abraten, es sei denn, es geht gar nix mehr. Bei jeder Neuübertragung des Codes werden alle GA's, welche mit einem Button belegt sind, beim Upload eines Programms auf 1 gesetzt. Kommt natürlich auf die Nutzung des Webservers an und darauf wie oft man Änderungen im EIBPC durchführt....
    Das kann ich jetzt bestätigen. Führt zu einem ziemlichen Durcheinander im Schaltschrank. Munteres Klickern und Schalten und den unterschiedlichsten Stellen....

    VG,
    Boris.

    Kommentar


      #17
      Kurzer Post während der Fußball-Pause... Der neue Beta-Patch 2.303 (Filename 2.301), herunterladbar unter dem Beta-Link hat nach aktuellem Stand eigentlich meine Probleme seit dem Patch-Update behoben. Sowohl die '..' Probleme, als auch einige merkwürdige Verhaltensweisen sind behoben.
      An ein paar Dingen tüfftele ich noch woher die kommen, aber das kann auch durch Änderungen, welche ich nach dem Patchupdate gemacht habe, herkommen.

      Kommentar


        #18
        Zitat von Sandman60 Beitrag anzeigen
        Der neue Beta-Patch 2.303 (Filename 2.301), herunterladbar unter dem Beta-Link
        Ähm. Ich glaube der ist da nicht herunterladbar, den wirst Du wohl zugemailt bekommen haben. Ich habe ihn derzeit jedenfalls nicht finden können. Vielleicht erklärt das meine Probleme mit den event ...

        Gruß,
        Bernd

        Kommentar


          #19
          Ooops. Sorry, da habe ich wohl auf die schnelle das falsche Wording verwendet bzgl. Patch.
          Es gibt unter dem Betalink eine neue Beta des EIBStudios V2.303, also keinen neuen Patch der FW.

          Kommentar


            #20
            Zitat von joggele777 Beitrag anzeigen
            Hallo zusammen,
            habe folgenden Code für meinen Tor-Status (fährt AUF), indem ich die Taster GA für "auf" ("Garagentor hoch-4/0/1") abfrage. Das hat vor dem update auch einwandfrei funktioniert.
            Wir haben da ja die Validierung "getuned". Ich habe nun u.a. die else-Anweisung im Compiler umgebaut. Leider konnte ich Dein Beispiel gestern nicht mehr testen und bin nun erst mal für eine Woche im Urlaub (Ein ähnliches Problem war das von vlamers).

            An sich sollte es aber so gehen, die Kollegen werden wohl bis Mittwoch eine neue Beta machen und kurz darauf ein Release.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #21
              Zitat von enertegus Beitrag anzeigen

              An sich sollte es aber so gehen, die Kollegen werden wohl bis Mittwoch eine neue Beta machen und kurz darauf ein Release.

              OK - Danke schonmal für die Info. vielleicht liest Du das ja noch.... Auf jeden Fall wünsche ich schonmal schöne Ferien!!!!

              Kann ich Euch eventuell mal meinen Code bzw. den betroffenen Teil zur durchsicht zusenden? Wenn ja an wen? Einfach per mail direkt an Enertex?

              Danke und Grüsse
              Jochen

              Kommentar


                #22
                Hallo zusammen,

                brauche wieder Eure Hilfe. Habe nun den Code wie folgt geändert und wie empfohlen auf den "else-Zweig" verzichtet.

                Nun funktionieren auch die Stati für auf/ab. Wenn ich nun aber während einer fahrt den Taster für auf oder ab ein zweites Mal betätige stop das Tor. Dann sollte ja eigentlich Tor_fahrt_AUF / Tor-fahrt_AB und Tor_fahrt auf AUS gehen. Seltsamerweise geht aber immer nur Tor_fahrt auf AUS - Tor_fahrt_AUF bzw. Tor_fahrt_AB bleiben je nach vorheriger Fahrtrichtung auf EIN ??? Kann sich das jemanf erklären? Habe das bei debuggen definitiv festgestellt.


                [highlight=epc]
                // Check Tor fährt AUF
                if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt==AUS then {
                Tor_fahrt_AUF=EIN;
                Tor_fahrt_AB=AUS;
                Tor_fahrt=EIN
                } endif
                if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt!=AUS then {
                Tor_fahrt_AUF=AUS;
                Tor_fahrt_AB=AUS;
                Tor_fahrt=AUS
                } endif
                // Check Tor fährt AB
                if event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS and Tor_fahrt==AUS then {
                Tor_fahrt_AUF=AUS;
                Tor_fahrt_AB=EIN;
                Tor_fahrt=EIN
                } endif
                if event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS and Tor_fahrt!=AUS then {
                Tor_fahrt_AUF=AUS;
                Tor_fahrt_AB=AUS;
                Tor_fahrt=AUS
                } endif
                [/highlight]


                Danke und Grüsse
                Jochen

                Kommentar


                  #23
                  Kannst du noch einen Mitschnitt der Telegramme posten?
                  BR
                  Marc

                  Kommentar


                    #24
                    Zitat von saft6luck Beitrag anzeigen
                    Kannst du noch einen Mitschnitt der Telegramme posten?
                    ja klar - siehe Anhang....

                    Zur Erklärung: Tor war oben (LED grün), dann Taster ab, dann blinkt meine LED rot, dann nochmals Taster ab für stop (dann sollte die LED gelb für "Mittelstellung" leuchten, was eben nicht funktioniert); dann wieder Taster auf (LED blinkt grün) dann wieder Taster auf oder ab für stop LED leuchtet nicht gelb, da ja Tor_fahrt_auf/ab entsprechend immer noch auf EIN steht.

                    Gruss
                    Jochen
                    Angehängte Dateien

                    Kommentar


                      #25
                      Das sollte schon passen. Bist du sicher, dass nicht im restlichen Code etwas reinspielt?
                      BR
                      Marc

                      Kommentar


                        #26
                        Zitat von saft6luck Beitrag anzeigen
                        Das sollte schon passen. Bist du sicher, dass nicht im restlichen Code etwas reinspielt?
                        Vielleicht sehe ich ja den Wald vor lauter Bäumen nicht mehr....

                        Hier mal komplett:


                        [highlight=epc]
                        //------------------------------------------------------------------------------------------------
                        //--- [Garagentor-Status] ------------------------------------------------------------------------
                        //------------------------------------------------------------------------------------------------
                        //- Tor fährt auf –> LED grün blinkend
                        //- Tor fährt ab –> LED rot blinkend
                        //- Tor fährt Funk –> LED magenta blinkend
                        //- Tor oben –> LED grün konstant
                        //- Tor unten –> alle LED AUS
                        //- Tor mitte –> LED gelb konstant
                        //------------------------------------------------------------------------------------------------
                        if after (systemstart(),1000u64) then { \\
                        read ("Garagentor Ausgang unten-4/0/6"); \\
                        if ("Garagentor Ausgang unten-4/0/6") then { \\
                        write ("Garagentor LED magenta-4/0/29",AUS);
                        write ("Garagentor LED grün-4/0/26",AUS); \\
                        write ("Garagentor LED rot-4/0/27",AUS); \\
                        write ("Garagentor LED gelb-4/0/28",AUS); \\
                        } endif; \\
                        read ("Garagentor Ausgang oben-4/0/5"); \\
                        if ("Garagentor Ausgang oben-4/0/5") then {
                        write ("Garagentor LED grün-4/0/26",EIN) \\
                        } endif; \\
                        } endif
                        if InitWebserver and ("Garagentor Ausgang unten-4/0/6") then {
                        webdisplay(32,$unten$c14,BLIND,INACTIVE,GREY)
                        } endif
                        if InitWebserver and ("Garagentor Ausgang oben-4/0/5") then {
                        webdisplay(32,$oben$c14,BLIND,STATE6,GREY)
                        } endif

                        Tor_fahrt_AUF=AUS
                        Tor_fahrt_AB=AUS
                        Tor_fahrt=AUS
                        Tor_flash=AUS
                        // Check Tor fährt AUF
                        if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt==AUS then {
                        Tor_fahrt_AUF=EIN;
                        Tor_fahrt_AB=AUS;
                        Tor_fahrt=EIN
                        } endif
                        if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt!=AUS then {
                        Tor_fahrt_AUF=AUS;
                        Tor_fahrt_AB=AUS;
                        Tor_fahrt=AUS
                        } endif
                        // Check Tor fährt AB
                        if event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS and Tor_fahrt==AUS then {
                        Tor_fahrt_AUF=AUS;
                        Tor_fahrt_AB=EIN;
                        Tor_fahrt=EIN
                        } endif
                        if event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS and Tor_fahrt!=AUS then {
                        Tor_fahrt_AUF=AUS;
                        Tor_fahrt_AB=AUS;
                        Tor_fahrt=AUS
                        } endif
                        // Check Tor fährt via Funk (auf/ab ==)
                        if ("Garagentor Ausgang fährt-4/0/7"==EIN) and !Tor_fahrt then Tor_fahrt=EIN endif
                        if ("Garagentor Ausgang fährt-4/0/7"==AUS) and Tor_fahrt then Tor_fahrt=AUS endif
                        // Millisekungen Timer für Blinkgeschwindigkeit
                        if Tor_fahrt==EIN then Tor_flash=EIN endif
                        if after(Tor_flash==EIN,700u64) and Tor_fahrt==EIN then Tor_flash=AUS endif
                        if after(Tor_flash==AUS,700u64) and Tor_fahrt==EIN then Tor_flash=EIN endif
                        if after(Tor_fahrt==AUS,800u64) then Tor_flash=AUS endif
                        // Tor fährt AUF - Status LED grün/blinkend
                        if Tor_fahrt and Tor_fahrt_AUF and Tor_flash then write("Garagentor LED grün-4/0/26",EIN) endif
                        if Tor_fahrt and Tor_fahrt_AUF and !Tor_flash then write("Garagentor LED grün-4/0/26",AUS) endif
                        if Tor_fahrt and Tor_fahrt_AUF then webdisplay(32,$fährt auf$c14,UP,ACTIVE,GREY) endif
                        // Tor fährt AB - Status LED rot/blinkend
                        if Tor_fahrt and Tor_fahrt_AB and Tor_flash then write("Garagentor LED rot-4/0/27",EIN) endif
                        if Tor_fahrt and Tor_fahrt_AB and !Tor_flash then write("Garagentor LED rot-4/0/27",AUS) endif
                        if Tor_fahrt and Tor_fahrt_AB then webdisplay(32,$fährt ab$c14,DOWN,ACTIVE,GREY) endif
                        // Tor fährt via Funk (auf/ab ==) - Status LED magenta/blinkend
                        if Tor_fahrt and !Tor_fahrt_AB and !Tor_fahrt_AUF and Tor_flash then write("Garagentor LED magenta-4/0/29",EIN) endif
                        if Tor_fahrt and !Tor_fahrt_AB and !Tor_fahrt_AUF and !Tor_flash then write("Garagentor LED magenta-4/0/29",AUS) endif
                        if Tor_fahrt and !Tor_fahrt_AB and !Tor_fahrt_AUF then webdisplay(32,$fährt$c14,PLAY,ACTIVE,GREY) endif
                        // Tor OBEN - Status LED grün
                        if delay("Garagentor Ausgang oben-4/0/5",350u64) then {
                        Tor_fahrt=AUS;
                        Tor_fahrt_AUF=AUS;
                        Tor_fahrt_AB=AUS;
                        Tor_flash=AUS;
                        write ("Garagentor LED grün-4/0/26",EIN);
                        webdisplay(32,$oben$c14,BLIND,STATE6,GREY);
                        } endif
                        // Tor UNTEN - Status LED alle AUS
                        if delay("Garagentor Ausgang unten-4/0/6",200u64) then {
                        Tor_fahrt=AUS;
                        Tor_fahrt_AUF=AUS;
                        Tor_fahrt_AB=AUS;
                        Tor_flash=AUS;
                        } endif
                        if delay("Garagentor Ausgang unten-4/0/6",750u64) then {
                        write ("Garagentor LED magenta-4/0/29",AUS);
                        write ("Garagentor LED grün-4/0/26",AUS);
                        write ("Garagentor LED rot-4/0/27",AUS);
                        write ("Garagentor LED gelb-4/0/28",AUS);
                        webdisplay(32,$unten$c14,BLIND,INACTIVE,GREY);
                        } endif
                        // Tor HALB - Status LED gelb
                        if !Tor_fahrt and !Tor_fahrt_AUF and !Tor_fahrt_AB and !("Garagentor Ausgang oben-4/0/5") and !("Garagentor Ausgang unten-4/0/6") then {
                        write ("Garagentor LED gelb-4/0/28",EIN);
                        Tor_flash=AUS;
                        webdisplay(32,$halb$c14,BLIND,STATE4,GREY);
                        } endif
                        // Tor via web button steuern auf/ab
                        if webbutton(33)==1 then write("Garagentor hoch-4/0/1",EIN) endif
                        if webbutton(33)==2 then write("Garagentor ab-4/0/2",EIN) endif
                        //--- [Garagentor-Status] end --------------------------------------------------------------------

                        [/highlight]

                        Kommentar


                          #27
                          Zitat von joggele777 Beitrag anzeigen
                          [highlight=epc]
                          // Check Tor fährt AUF
                          if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt==AUS then {
                          Tor_fahrt_AUF=EIN;
                          Tor_fahrt_AB=AUS;
                          Tor_fahrt=EIN
                          } endif
                          if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt!=AUS then {
                          Tor_fahrt_AUF=AUS;
                          Tor_fahrt_AB=AUS;
                          Tor_fahrt=AUS
                          } endif
                          [/highlight]
                          Was mir hier auffällt: Du setzt Tor_fahrt=EIN und diese Variable steuert zwei if-Abfragen.
                          Szenario: Tor_fahrt steht auf AUS, "Garagentor hoch-4/0/1" (EIN) kommt auf den Bus.
                          Nun wird die erste If-Abfrage gültig, die if-Abfrage setzt Tor_fahrt=AUS, damit wird im gleichen Verarbeitungszyklus nun auch die zweite if-Abfrage gültig. Wie ist die Logik überhaupt gedacht?
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #28
                            Zitat von enertegus Beitrag anzeigen
                            Was mir hier auffällt: Du setzt Tor_fahrt=EIN und diese Variable steuert zwei if-Abfragen.
                            Szenario: Tor_fahrt steht auf AUS, "Garagentor hoch-4/0/1" (EIN) kommt auf den Bus.
                            Nun wird die erste If-Abfrage gültig, die if-Abfrage setzt Tor_fahrt=AUS, damit wird im gleichen Verarbeitungszyklus nun auch die zweite if-Abfrage gültig. Wie ist die Logik überhaupt gedacht?
                            Na, dass das 2. if eben nicht gleich gültig wird???

                            Scheinbar wird es ja auch nicht gültig, denn Tor_fahrt_AUF bleibt laut Jochen ja auf EIN.
                            BR
                            Marc

                            Kommentar


                              #29
                              Zitat von enertegus Beitrag anzeigen
                              Was mir hier auffällt: Du setzt Tor_fahrt=EIN und diese Variable steuert zwei if-Abfragen.
                              Szenario: Tor_fahrt steht auf AUS, "Garagentor hoch-4/0/1" (EIN) kommt auf den Bus.
                              Nun wird die erste If-Abfrage gültig, die if-Abfrage setzt Tor_fahrt=AUS, damit wird im gleichen Verarbeitungszyklus nun auch die zweite if-Abfrage gültig. Wie ist die Logik überhaupt gedacht?

                              Hast recht - ist Quatsch - das kommt von der ganzen Testerei. Anfangs hatte ich das ja mit ner verschachtelten if/else Anweisung und das hat super funktioniert (siehe meinen ersten Beitrag).

                              Die Logik ist wenn Taster AUF dann Tor auf, wenn dieser Taster ein zweites Mal betätigt wird dann STOP usw. Ebenso für Taster AB.

                              Es kann auch Taster AUF (für AUF) und als zweites Taster AB (STOP) betätigt werden.

                              Lösungsansatz von Marc scheint wohl angebracht:

                              [highlight=epc]
                              if (event ("Garagentor hoch-4/0/1") and ("Garagentor hoch-4/0/1"==EIN) and ("Garagentor Ausgang oben-4/0/5"==AUS)) then {
                              Tor_fahrt_AUF=!Tor_fahrt;
                              Tor_fahrt_AB=AUS;
                              Tor_fahrt=!Tor_fahrt
                              } endif
                              [/highlight]


                              Grüsse
                              Jochen

                              Kommentar


                                #30
                                Der Code von Marc funktioniert wohl für einen Taster aber eher nicht für zwei Taster wie ich es hier habe?!

                                Kommentar

                                Lädt...
                                X