Ankündigung

Einklappen
Keine Ankündigung bisher.

Prozessabbild/Variablenabgleich - hörende Adressen

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

    [EibParser] Prozessabbild/Variablenabgleich - hörende Adressen

    Hallo,

    ich habe folgenden Code:

    Code:
     
    // Lichtschalter 30
     
    //Auswertung des Webserver-Buttons
     
    if webbutton(30)==1 then\\
     
    if "Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" then write("Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3",AUS) endif;\\
     
    if !"Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" then write("Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3",EIN) endif\\
     
    endif
     
    //Status (beide Schaltrichtungen getrennt) auf der web-Page nachführen 
     
    if "Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" then webdisplay(30,$EIN$c14,LIGHT,ACTIVE,BLINKBLUE) endif
     
    if !"Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" then webdisplay(30,$AUS$c14,LIGHT,INACTIVE,BLINKBLUE) endif

    Die Variable "Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" wird immer korrekt "nachgeführt", egal ob ich
    vom EibPC oder am Taster schalte.

    Soweit sogut, aber:

    Wenn ich bei einem "normalen" Taster einen Zentralbefehl (0/0/21 = AUS)verwende, dann
    steht hinter dem KO

    Taster-sowie ----- schalten ------ 1/4/3, 0/0/21

    alles ok.

    Da der EibPC aber kein KO hat sondern nur das 1/4/3 - Abbild hat wirds jetzt interessant.
    Denn wenn ich jetzt mit der GA 0/0/21 den Lampenstatus ändere, bekommt das der EibPC so erstmal nicht mit.

    Ich hoffe ich habs nicht überlesen, aber es braucht eine Methode
    den internen Quasi-KO-Status (Real aber EibPC-GA-Status) nachzuführen.

    so etwa

    Code:
     
    if event ('0/0/21') then copy state ('0/0/21') to ('1/4/3')  endif;
    die Notation ist natürlich nur so ein Gedanke, aber irgendwie muß das
    doch lösbar sein. Denn auch wenn man die Methode
    -
    Status-RM von den Aktoren wird auf Tasterzustand kopiert (siehe Hager TX316)
    -
    führt hier auch nicht zum Ziel.


    Ich hoffe ich habe nichts im Handbuch übersehen und mich halbwegs verständlich ausgedrückt.

    Gruß

    Frank
    Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

    #2
    Da der EibPC aber kein KO hat sondern nur das 1/4/3 - Abbild hat wirds jetzt interessant.
    Denn wenn ich jetzt mit der GA 0/0/21 den Lampenstatus ändere, bekommt das der EibPC so erstmal nicht mit.
    Ja dann einfach mit Und-Verknüpfungen, einer Variablen und event arbeiten.

    Code:
    Licht="Galerie | BE 2 Schalten [URL="http://redaktion.knx-user-forum.de/lexikon/Beleuchtung/"]Beleuchtung[/URL] Spot-1/4/3" 
    // 0/0/21 schaltet immer aus. 
    if event(GA 0/0/21 ) then Licht=AUS endif
    // 0/0/21 schaltet immer aus. 
    if webbutton(30)==1 then\\
     if Licht then Licht=AUS endif;\\
     if !Licht then Licht=EIN endif;\\
     endif 
    
    // Den Bus Synchronisieren
    if change(Licht) write(Galerie | BE 2 Schalten [URL="http://redaktion.knx-user-forum.de/lexikon/Beleuchtung/"]Beleuchtung[/URL] Spot-1/4/3" , Licht) endif 
    // Das WebInterface Synchronisieren
    if !Licht then webdisplay(30,$AUS$c14,LIGHT,INACTIVE,BLINKBLUE) endif  
    endif
    if Licht then webdisplay(30,$EIN$c14,LIGHT,ACTIVE,BLINKBLUE) endif
    Hoffe, das hilft - schönes Beispiel für das Seminar (zu letzteren Morgen mehr Infos).
    Michael
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Korrektur plus Update

      Hallo enertegus,

      Danke für den Code.

      Über eine Variable namens "Licht" zu gehen. o.k. dachte nicht, dass das so geht.

      Wenn man nicht nur schaltet sondern auch dimmt, bekommt man dann
      das Andimmen im oberen "fehlerbereinigten" Code auch noch nicht mit.

      Auch das Abdimmen und Ausschaltschwelle wird dann irgnoriert. Das
      heißt es geht - wie schon in der ETS - ohne die Auswertung der
      binären Status-GA (bei mir 1/4/13) immer noch nicht. Der Code quillt
      dann also doch noch etwas auf.



      Code:
       
       
      // in Variable umkopieren
      Licht="Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3" 
       
      // "OG Zentral (Diele)-0/0/21" schaltet immer aus. 
      if event( "OG Zentral (Diele)-0/0/21" ) then Licht=AUS endif
       
      // "Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13" Status-Bit
      // einbeziehen, falls angedimmt wurde oder umgekehrt 
      // andimmen und abdimmen erfolgt btw. über  GA '1/4/4'
      if event("Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13") and ("Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13"==EIN) then Licht=EIN endif
      if event("Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13") and ("Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13"==AUS) then Licht=AUS endif
       
      // Taste auf Webpage
      if webbutton(30)==1 then\\
       if Licht then Licht=AUS endif;\\
       if !Licht then Licht=EIN endif;\\
      endif 
       
      // Den Bus Synchronisieren
      if change(Licht) then write("Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3",Licht) endif 
       
      // Das WebInterface Synchronisieren
      if !Licht then webdisplay(30,$AUS$c14,LIGHT,INACTIVE,BLINKBLUE) endif  
      if Licht then webdisplay(30,$EIN$c14,LIGHT,ACTIVE,BLINKBLUE) endif


      Auf alle Fälle geht es jetzt für einen gedimmten und Zentral-"gekillten"
      Lampenkreis. Wohl dem der nicht hundert solche Kreise im EibPC schalten
      will. Dann sollte man auf alle Fälle alle im Code verwendetten Variablen
      der Ordnung und Übersichtlichkeit halber nochmal zusätzlich im Header
      des EibParser-Code hinschreiben plus einen Kommentar.
      Das Verwenden bzw. Einführen von Variablen ohne echte Vereinbarung
      macht es zwar einfacher, man muß aber auch mehr aufpassen, dass man
      eine Variable nicht doppelt verwendet.



      Code:
       
      //Variable  ---  Typ    --- Kommentar
      //Licht      ---   binär  --- interner Zustandsmerker für '1/4/3'

      Frank


      P.S.
      @enertegus
      Terminvorschläge für die Schulung?!
      Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

      Kommentar


        #4
        [QUOTE=IBFS;79140]Hallo enertegus,

        Danke für den Code.
        Wenn man nicht nur schaltet sondern auch dimmt, bekommt man dann
        das Andimmen im oberen "fehlerbereinigten" Code auch noch nicht mit.
        Muss man dann halt äquivalent programmieren. Bei Aus auf 0% und im anderen Fall auf den eingestellten Wert.

        Code:
        Dann sollte man auf alle Fälle alle im Code verwendetten Variablen
        der Ordnung und Übersichtlichkeit halber nochmal zusätzlich im Header 
        des EibParser-Code hinschreiben plus einen Kommentar.
        Am besten ein Makro generieren. Dafür sind die da...

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

        Kommentar


          #5
          Hallo,

          die Frage ist, ob man diesen Aufwand treiben muß. Wenn man den EibPC konsequent nutzt, kann man auf die Zentraladressen in der konventionellen ETS-Art verzichten und die Kombination als Sammelbefehl in den EIbPC packen. Kann kann man sich die hörenden Adressen sparen und man kann vor allem auch Befehle mit nur ausschalten machen.
          Der schöne Niederrhein läßt Grüssen

          Andreas


          Alter Hof mit neuer Technik

          Kommentar


            #6
            Zitat von anlo007 Beitrag anzeigen
            Hallo,
            die Frage ist, ob man diesen Aufwand treiben muß. Wenn man den EibPC konsequent nutzt, kann man auf die Zentraladressen in der konventionellen ETS-Art verzichten und die Kombination als Sammelbefehl in den EIbPC packen. Kann kann man sich die hörenden Adressen sparen und man kann vor allem auch Befehle mit nur ausschalten machen.
            Das wäre eine Philosophie-Frage.
            Ich halt zwar nix von der "Jeder-Sensor-hat-eine-Logik"-Philosophie (und kostet daher 10x soviel wie alles "Normale") - aber ich würde derart Elementares wie GA schon in dem Maße wie vorgeschlagen nutzen. Soviel Aufwand ist das m.E. im EibPC nicht, aber das ist ja nur meine Meinung
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Zitat von anlo007 Beitrag anzeigen
              Wenn man den EibPC konsequent nutzt, kann man auf die Zentraladressen in der konventionellen ETS-Art verzichten und die Kombination als Sammelbefehl in den EIbPC packen. Kann kann man sich die hörenden Adressen sparen und man kann vor allem auch Befehle mit nur ausschalten machen.
              Wenn du eine Taster zum Dimmen verwendest braucht du ZWEI GA:

              GA1:
              "Galerie | BE 2 Schalten Beleuchtung Spot-1/4/3"
              GA2:
              "Galerie | BE 2 Dimmen Beleuchtung Spot-1/4/4"

              Für Status-Rückmeldung:
              GA3:
              "Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13"



              Man kann es drehen wie man will, auch ohne Zentralbefehlsabfrage
              muss man mindestens zwei GAs berücksichtigen.

              Ob nun GA1 + GA2 oder besser GA1 + GA3 ist egal. Es ist nunmal
              so, dass wenn man von NULL hochdimmt die

              GA1: 1/4/4 wirkt

              und beim EINschalten die

              GA2: 1/4/3 wirkt

              beim AUSschalten oder AUSdiimmen natürlich gegengesetzt.

              Das fällt einer normalen KNX-Installation nicht auf, da legt man einfach
              auf alle Taster beide GAs auf und fertig. Bei Gemischbetrieb von
              Schalten und Dimmen sowie SZENEN reicht selbst das nicht aus.
              Da brauchts auch ohne EibPC das "hören" der Status-RM-GAs sonst
              bekommen das die normalen Taster/Dimmer mit ihren 2 GAs auch nicht
              mit, dass ein SZENE gesetzt wurde.

              Das alles bezieht sich hauptsächlich auf das 1 Tasten-Dimmen!!!

              Beim 2-Tasten-Dimmen hat man getrennte Taster, da ist das egal!!!




              Die zu programmierende Funktionalität ist in der ETS und im EibPC im
              Prinzip gleich, nur das man das "hören" im EibPC ausprogrammieren muss
              was in der ETS einach durch das dranschreiben KO: x1/x2/x3/, y1/y2/y3
              erfolgt.

              Das ist halt der Unterschied:

              ETS: Parametrieren
              EibPC: Programmieren


              Gruß

              Frank
              Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

              Kommentar


                #8
                Zitat von IBFS Beitrag anzeigen
                Wenn du eine Taster zum Dimmen verwendest braucht du ZWEI GA:
                Man kann es drehen wie man will, auch ohne Zentralbefehlsabfrage
                muss man mindestens zwei GAs berücksichtigen.
                Viele Aktoren haben ja auch ein Statusobjekt, das man optimalerweise nehmen könnte (wobei halt der Projektant ggf. zu faul war, die zu programmieren
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Zitat von enertegus Beitrag anzeigen
                  Viele Aktoren haben ja auch ein Statusobjekt, das man optimalerweise nehmen könnte
                  Das meinte ich ja mit:

                  Für Status-Rückmeldung:
                  GA3:
                  "Galerie | RM 2 Schalten Beleuchtung Spot-1/4/13"
                  Wenn man im KNX nicht nur Klick-Klack programmieren will, kommt
                  man ohne das binäre Status-Objekt (aktiv sendend) eigentlich nicht aus.

                  Frank
                  Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                  Kommentar


                    #10
                    Nein, man kann auch mit nur einem Objekt vom Taster Schalten und Dimmen realisieren. Man muss über eine zeitliche Auswertung zw. Schalten und Dimmen unterscheiden.

                    Zugegebenermassen benötigt man dann noch eine GA, die zum Dali-GW schreibt.

                    .... wobei, wenn ich es mir recht überlege, könnte man auch direkt den Taster als u08-Wert-sendend programmieren *denk-hirn-grübel*

                    Mein Dimm-Makro kommt jedenfalls ohne Statusobjekt aus, da ich festgestellt habe, dass zumindest in Zusammenhang mit Dali-GWs der Status evtl. zeitverzögert kommt, und diese Gefahr mit steigender Buslast noch anwächst. Das hilft dann nicht, wenn ich kurz hintereinander z.B. mit 300ms Abstand ein und doch wieder ausschalte, und das Umschalten im EibPC mit Logik realisiere. Sinngemäss:
                    if event(taster) then Zustand = !Zustand; write(LampeGA, Zustand) endif
                    // Nachfragen zur Sicherheit ....
                    Zustand=read(LampeGA)


                    Vorallem geht das dann nicht, wenn ich nach dem Senden eines neuen Zielwertes gleich abfrage, ob der Zielwert auch erreicht wurde, oder polle, bis er erreicht wurde. Ich hab bei mir gemessen (ETS Busmonitor), dass der Status manchmal erst nach 1-2 Sekunden korrekt vom Dali-GW zurückgemeldet wird.

                    Direkt angeschlossene Lampen (über KNX-E/A) kann aber nicht testen, da gibt es vielleicht kein Problem.

                    Ich hab das gelöst, indem ich intern eine Variable mitführe, die immer den aktuellen Lampenwert enthält (der mit dem Dali-Wert übereinstimmen sollte), egal ob ich zwischen Dimmen und Schalten wechsle.
                    Das hat noch den Vorteil, das zumindest meine BIQ nicht wissen, dass ich, wenn ich hochgedimmt habe und dann kurz drücke, die Lampe ausgehen soll. Wenn der Taster für die Tast-GA ein Off als Status hat geht die Lampe nämlich voll an. Ich werte nur die Dimmrichtung aus und update dann die E/A-GA entsprechend.
                    Gruss Pio

                    Kommentar


                      #11
                      @pio
                      Danke für das Feedback. Ich merke schon ich bin erst ne Woche am
                      EibPC drann. Du hattest schon seit November Zeit zum spielen.
                      Da bist du mir um einiges voraus.

                      Was ich mich momentan noch am meißten frage ist, was ich alles
                      "exklusiv" im EibPC programmiere. Theoretisch kan man ja fast
                      alles hineinverlagern - auch alle Szenen. Aber es sollte pro Zimmer
                      dann wenigsten noch eine Aktor-Direkt-Schalt-Funktion vorhanden
                      sein, wenn der EipPC mal spinnt. Sonst bleibts dunkel.......

                      Frank
                      Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                      Kommentar


                        #12
                        Ich hab Ein/Aus "direkt verdrahtet", d.h. Taster->Dali-GW. Mit dem EibPC schreib ich zwar auch auf die GA aber wenn der mal "aus" ist, hab ich immer noch E/A.
                        Gruss Pio

                        Kommentar

                        Lädt...
                        X