Ankündigung

Einklappen
Keine Ankündigung bisher.

InitGA/Systemstart

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

    InitGA/Systemstart

    Hallo,

    ich habe mich am Wochenende wieder mal ein wenig mit meiner Visualisierung gespielt.

    Ich wollte eine Übersichtsseite machen, die mir den offen/geschlossen Zustand meiner Fenster anzeigt.

    ich hab alle GAs in die [InitGA] Sektion gegeben, sodass diese beim Systemstart initialisiert werden.

    Das Zustands-Handling für die Visu hab ich in ein Makro ausgelagert (Pseudococe):

    :begin
    if systemstart read(GA)
    if change(GA) and GA then pdsiplay(...)
    if change(GA) and !GA then pdsiplay(...)
    :end

    Leider aktualisiert sich das ganze erst, wenn ich ein Fenster auf und zu mache und nicht wie gewünscht auch beim systemstart.

    ich habs auch schon mit if evengt(GA) probiert ohne erfolg.

    Ich versuch auch schon die ganzen GAs 3x zu inititalisieren:
    1.) [InitGA]
    2.) [EibPC] if systemstart() then read(GAs)
    3.) und noch zusätzlich in den Makros

    Kann das des Guten zuviel sein, oder wäre das egal?

    Könnte mit bitte auch noch jemand erklären, was der unterschied zwischen change(GA) und event(GA) ist?

    Danke vielmals.

    lg,
    Peter

    #2
    Ist mir gerade eingefallen

    Hoi Don Pedro

    Mir ist gerade eingefallen: vielleicht bekommt der EibPC beim Abfragen der Stati keine Antwort.
    Das könnte mit den Flags zusammenhängen, oder die Rückmeldung ist auf einer anderen GA.
    0/0/1 AN/AUS
    0/0/10 Status AN/AUS

    woast wia i moan?
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Zitat von ppfeifer Beitrag anzeigen
      Hallo,

      ich hab alle GAs in die [InitGA] Sektion gegeben, sodass diese beim Systemstart initialisiert werden.

      Das Zustands-Handling für die Visu hab ich in ein Makro ausgelagert (Pseudococe):

      :begin
      if systemstart read(GA)
      if change(GA) and GA then pdsiplay(...)
      if change(GA) and !GA then pdsiplay(...)
      :end

      Leider aktualisiert sich das ganze erst, wenn ich ein Fenster auf und zu mache und nicht wie gewünscht auch beim systemstart.
      Da ist leider ein Bug in der Firmware, der im nächsten Release wohl gefixt sein wird. Dein Gedanke ist an sich richtig, derzeit läuft das Ganze nur wie gewünscht, wenn Du
      a) ohne initga arbeitest - also
      2.) [EibPC] if systemstart() then read(GAs)
      b) ohne Verknüpfung bei der if-Abfrage auskommst, also
      if GA then pdsiplay(...)
      if !GA then pdsiplay(...)

      Könnte mit bitte auch noch jemand erklären, was der unterschied zwischen change(GA) und event(GA) ist?
      Change bedeutet, es hat sich der Inhalt von GA geändert, event bedeutet, die GA wurde auf dem Bus gesendet (ohne Rücksicht, ob etwa der Wert sich hierbei verändert hat).
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        Hallo,

        danke für die Antwort.

        Bezgl change(GA) und event(GA) hab ich noch 2 fragen

        1.) würde es dann im Makro nicht reichen, wenn ich schreibe if GA ... weil ja eh nur Zustandsänderungen abgefragt werden (-> Validierungsschema)
        2.) Wenn ja, warum brauche ich dann event(GA) und change(GA) und wann setze ich einen der beiden Befehle ein?

        Danke

        Peter

        Kommentar


          #5
          Zitat von enertegus Beitrag anzeigen
          Da ist leider ein Bug in der Firmware, der im nächsten Release wohl gefixt sein wird.
          Hoi

          Waaas? Warum bekomm' ich sowas immer nicht mit, mann.
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #6
            Zitat von ppfeifer Beitrag anzeigen
            Hallo,
            1.) würde es dann im Makro nicht reichen, wenn ich schreibe if GA ... weil ja eh nur Zustandsänderungen abgefragt werden (-> Validierungsschema)
            Das ist richtig
            2.) Wenn ja, warum brauche ich dann event(GA) und change(GA) und wann setze ich einen der beiden Befehle ein?
            event braucht man bei GAs die immer nur einen Zustand setzen.
            change(GA) in diesem Zusammenhang sicher nicht. Dafür sorgt ja das Validierungsschema, dass sich nur bei Änderung was tut.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Zitat von enertegus Beitrag anzeigen
              Das ist richtig

              event braucht man bei GAs die immer nur einen Zustand setzen
              Das heisst für mich als Laien genau was?

              Und wie sieht die zukünftige Lösung bezgl. [InitGA] bzw. systemstart() aus?

              Was ist zu präferien? Was ist eurer Meinung nach die "schönere" Lösung?

              Danke

              Peter

              Kommentar


                #8
                Zitat von ppfeifer Beitrag anzeigen
                Das heisst für mich als Laien genau was?
                Ein Schalter schickt immer nur 1 => "if event", da "if GA" nur einziges Mal ausgführt werden würde.
                Und wie sieht die zukünftige Lösung bezgl. [InitGA] bzw. systemstart() aus? Was ist zu präferien?
                m.E. initga.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  OK. danke. dann werd ich gleich alles in [InitGa] stellen und auf ein firmware update hoffen.

                  lg, Peter

                  Kommentar


                    #10
                    Zitat von ppfeifer Beitrag anzeigen
                    OK. danke. dann werd ich gleich alles in [InitGa] stellen und auf ein firmware update hoffen.
                    Wenn Du mit eigenen Makros arbeitest, kannst Du mit der Funktion initGA anstelle der Sektion arbeiten - das ist ggf. etwas eleganter..
                    Mehrfachnennungen stören übrigens nicht.
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Zitat von enertegus Beitrag anzeigen
                      Wenn Du mit eigenen Makros arbeitest, kannst Du mit der Funktion initGA anstelle der Sektion arbeiten - das ist ggf. etwas eleganter..
                      Mehrfachnennungen stören übrigens nicht.
                      Also im makro statt if systemstart() then read(GA) endif nur initGA(GA) verwenden?

                      lg,

                      Peter

                      Kommentar


                        #12
                        Zitat von ppfeifer Beitrag anzeigen
                        Also im makro statt if systemstart() then read(GA) endif nur initGA(GA) verwenden?
                        genau!
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Kann ich eigentlich an jeder Stelle, an der
                          if GA then ...
                          wie vorgesehen funktioniert statt dessen auch immer
                          if change(GA) then ...
                          verwenden?
                          Tessi

                          Kommentar


                            #14
                            Zitat von Tessi Beitrag anzeigen
                            Kann ich eigentlich an jeder Stelle, an der
                            if GA then ...
                            wie vorgesehen funktioniert statt dessen auch immer
                            if change(GA) then ...
                            verwenden?
                            Ja. Grundsätzlich wäre das dann aber was anderes!
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              Zitat von ppfeifer Beitrag anzeigen
                              Bezgl change(GA) und event(GA) hab ich noch 2 fragen

                              1.) würde es dann im Makro nicht reichen, wenn ich schreibe if GA ... weil ja eh nur Zustandsänderungen abgefragt werden (-> Validierungsschema)
                              Das "Validierungsschema" reagiert auf "Zustandsänderungen" entsprechend der Bedingung, die Abgefragt wird.

                              Ausführlich ausgeschrieben bedeutet (Firmware Bugs einmal ausgeschlossen)
                              if GA ... das gleiche wie if event(GA) and ( GA == EIN ) ...

                              Beides folgt dem Validierungsschema (das Validierungsschema kennt aber noch weit mehr Eigenheiten)!
                              Wenn du also in deinem Makro nur if GA then pdsiplay(...) schreibst, wird die Aktion nur bei einem neuen Telegramm mit EIN Zustand ausgeführt. Zumindest laut deinem ursprünglichem Makro ist das ein Unterschied.

                              Deine Makro kann man wie folgt vereinfachen:
                              if change(GA) then pdsiplay(...)

                              2.) Wenn ja, warum brauche ich dann event(GA) und change(GA) und wann setze ich einen der beiden Befehle ein?
                              Wenn du auf jede Änderung reagieren willst, z.B. je nach Zustand des Lichtes einen Button auf der Visu einfärben, verwendest du change(...).
                              Wenn du jedoch auf jedes Telegramm reagieren willst, z.B. "EIN" Telegramme zählen, verwendest du event(...).
                              BR
                              Marc

                              Kommentar

                              Lädt...
                              X