Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Makro "Fensterkontakt"

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

    [EibStudio] Probleme mit Makro "Fensterkontakt"

    Hallo zusammen,

    ich habe nun mal sämtliche Fensterkontakte in Betrieb genommen - und stoße da leider auf ein Problem mit dem Makro Fensterkontakt:

    Ich habe dieses auf einer Seite instesammt 17 mal eingesetzt (eben für jeden Kontakt ein mal).

    Das Problem: In der Visu werdem beim Starten des eibPC rein zufällig ein bis zwei der pbuttons nicht initialisiert - welche ist rein zufällig.
    Mit "nicht initialisiert" meine ich folgendes:

    Normalerweise wird in dem Button "geschlossen" oder "geöffnet" angezeigt. Im Fehlerfall ist diese Zeile schlicht leer. Ich sehe das beim init der betroffene Kontakt abgefragt wurde und der Status auch korrekt auf dem Bus liegt und auch im Log des eibPC zu sehen ist.
    Eine weitere Funktion, die schlicht alle Kontakte AND-verknüpft und das Ergebniss in eine GA schreibt (um anzuzeigen ob irgendein Fenster offen ist) funktioniert immer korrekt.
    Ein nochmaliges Abfragen bringt KEINE Änderung (d.h. wohl das Validierungsmodell ist der Meinung es gibt gar keine Änderung des Status - was ja richtig ist). Erst wenn sich der Status verändert wird diese Änderung angezeigt.

    Irgendwelche Ideen? Es ist ein bischen nervig nach jedem neuen Start der Visu durchs Haus zu laufen um die betroffenen Fenster auf und zu zu machen.

    Gruß

    Carsten

    #2
    könnte das ein "timing-Problem" sein ?

    evtl. mal mit weniger Abfragen probieren (mal mit 5 anfangen.. dann mit 10 usw.) ..
    wenn das das problem löst evlt. einen kleinen Delay zwischen die Abfragen einbauen..

    nur so ne Idee..

    Gruß Martin
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      Poste doch mal den EibPC Code welcher den WebBrowser anspricht.

      Edit: Ach, ist ein ein Makro... hat sich dann erledigt...

      Kommentar


        #4
        Zitat von DerMitdemBusSpricht Beitrag anzeigen
        Poste doch mal den EibPC Code welcher den WebBrowser anspricht.
        Mal zuerst ganz grundsätzlich:
        Ist es das Orginalmakro, welche FW und EibStudio und gibt es ggf. events?
        Dann wäre der Busmonitor noch sehr interessant.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Hallo!

          EIBStudio und FW sind die aktuellsten Versionen (3.009 und 3.015 wenn ich mich nicht irre).

          Das Makro ist fast das Original, ich habe lediglich die benutzen Symbole und die Schriftfarbe geändert.

          Busmonitor Log kann ich heute Abend posten, ich habe aber verifiziert das die betroffenen GA's dort angezeigt werden.

          Kommentar


            #6
            Zitat von cds Beitrag anzeigen
            Busmonitor Log kann ich heute Abend posten, ich habe aber verifiziert das die betroffenen GA's dort angezeigt werden.
            Gut. Dann habe ich noch einen anderen Verdacht, den ich mal mit der Entwicklung besprechen müsste...
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Also,

              ich spare mir jetzt erst mal das Posten des langen logs und teile meine neusten Erkenntnisse:

              Ich hatte bislang die Fensterkontakte so konfiguriert das alle 10 sec. der Status auf den Bus gesendet wird.

              Offensichtlich ist das das Problem. Beim Aufstart ist offensichtlich an irgend einer Stelle das Validierungsschema der Ansicht die GA hat sich nicht geändert, also braucht man den Button auch nicht zu ändern - obwohl der noch gar nicht initialisiert war.
              Nachdem ich den Zyklus jetzt auf 60 sec. gesetzt habe ist das Weg, aber schön ist so ein Verhalten jetzt eher nicht.



              Gruß
              Carsten

              Kommentar


                #8
                Zitat von cds Beitrag anzeigen
                Also,

                ich spare mir jetzt erst mal das Posten des langen logs und teile meine neusten Erkenntnisse:

                Ich hatte bislang die Fensterkontakte so konfiguriert das alle 10 sec. der Status auf den Bus gesendet wird.

                Offensichtlich ist das das Problem. Beim Aufstart ist offensichtlich an irgend einer Stelle das Validierungsschema der Ansicht die GA hat sich nicht geändert, also braucht man den Button auch nicht zu ändern - obwohl der noch gar nicht initialisiert war.
                Nachdem ich den Zyklus jetzt auf 60 sec. gesetzt habe ist das Weg, aber schön ist so ein Verhalten jetzt eher nicht.

                Gruß
                Carsten
                Wieso fragst du denn überhaupt zyklisch ab und lässt nicht nur ein Telegramm bei Änderung senden, die Buslast wird's dir danken?

                Kommentar


                  #9
                  Zitat von cds Beitrag anzeigen
                  Offensichtlich ist das das Problem. Beim Aufstart ist offensichtlich an irgend einer Stelle das Validierungsschema der Ansicht die GA hat sich nicht geändert, also braucht man den Button auch nicht zu ändern - obwohl der noch gar nicht initialisiert war.
                  Nun, was ich hier gerne nachvollziehen würde:
                  Beim Start schickt der EibPC eine Lesenanfrage an den Fensterkontakt, die Antwort kommt innerhalb eines bestimmten Zeitrahmens. Dann sollte die Visu auch den Status passend anzeigen.
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #10
                    Macht er aber nicht. Selbiges Verhalten bei mir. Übrigens funktioniert das Makro ZweiFensterKontakte zuverlässig nur bei dem Makro Fensterkontakte gibt es das Problem. Die GAs werden sauber vom Bus gelesen, nur der Text "Geschlossen" wird nicht angezeigt. Nur wenn ich das Fenster einmal öffne und wieder schliesse (oder über die ETS den Zustand wechsel) zeigt das Macro den Zustand Geschlossen sauber an.

                    Kommentar


                      #11
                      3 Jahre später?
                      Gruß
                      Volker

                      Wer will schon Homematic?

                      Kommentar


                        #12


                        Auch 3 Jahre später ist es immernoch genauso.
                        Wenn man seinen Bus neustartet, benötigen die meisten Sensoren eine Bedienung, um wieder in der Spur zu sein.

                        z.B. Wenn der Binäreingang, an dem der Fensterkontakt hängt, neu gestartet wird, weiss er nicht welchen Status das Fenster hat.
                        Denn allermeist, wird ja der Flankenwechsel detektiert und so lange keiner das Fenster öffnet oder schliesst, weiß er den Status nicht.

                        Wenn jetzt die Anfrage vom EibPC kommt, kann er den Status nicht verlässlich sagen, es sei denn, man hat dem Binäreingang in seinen
                        Allgemeinen Einstellungen vorgegeben, welche Status er nach Busspannungswiederkehr annehmen soll.

                        Gruß Spassbird
                        „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

                        Kommentar


                          #13
                          Aber es startet nur der EIBPC neu, nicht der ganze Bus.
                          Insofern wissen die Kontakte ja noch was für einen Zustand Sie haben...
                          Gruß
                          Volker

                          Wer will schon Homematic?

                          Kommentar


                            #14
                            Richtig. Der EIBPC frägt per initga die Kontakte ab und bekommt auch eine saubere Meldung des Aktors mit den richtigen Status. Im EIBPC ist der Status auch korrekt.
                            Wie schon gesagt folgende Makros funktionieren richtig:
                            ZweiFensterkontakte
                            DreiFensterkontakte

                            Folgendes nicht:
                            Fensterkontakte

                            Man sollte noch wissen, dass ich den StatusGA bei allen Fensterkontakt Makros negiert habe, damit der Status der Fensterkontakte passt:

                            Code:
                            // Webelement
                            // @date    20.07.2016
                            // @version    2
                            // @author    Enertex Bayern GmbH
                            :begin Fensterkontakte(ID,PageID,StatusGA)
                            :info $Das Makro liest den Status von einer binären Gruppenadresse und ändert den Status des dazugehörigen Elements(pbutton/pshifter)$\\
                                :$Zahl zwischen 0 und 39 als ID des Elements$\\
                                :$Zahl zwischen 0 und 99 als ID der Seite, auf der das Element definiert wurde$\\
                                :$Gruppenadresse des Status (b01)$
                            :shortinfo $Statusanzeige von Fensterkontakten für den WebServer$
                            m_^ID_^PageID_Text=$$
                            initGA(StatusGA)
                            if StatusGA then {
                              pdisplay(ID,$offen$,WINDOW,STATE7,BLINKRED,PageID)              
                            } else {     
                              pdisplay(ID,$geschlossen$,WINDOW,INACTIVE,GREEN,PageID)
                            } endif
                            :end

                            Kommentar


                              #15
                              Das Problem ist glaube ich das pdisplay. Folgende Makroänderung zeigt nach Neustart des EIBPCs nichts an:
                              Code:
                              :begin Fensterkontakte(ID,PageID,StatusGA)
                              :info $Das Makro liest den Status von einer binären Gruppenadresse und ändert den Status des dazugehörigen Elements(pbutton/pshifter)$\\
                                  :$Zahl zwischen 0 und 39 als ID des Elements$\\
                                  :$Zahl zwischen 0 und 99 als ID der Seite, auf der das Element definiert wurde$\\
                                  :$Gruppenadresse des Status (b01)$
                              :shortinfo $Statusanzeige von Fensterkontakten für den WebServer$
                              // Implementierung von Name
                              
                              pdisplay(ID,$geschlossen$,WINDOW,INACTIVE,GREEN,PageID);
                              initGA(StatusGA);
                              
                              
                              if !StatusGA then {
                                pdisplay(ID,$geschlossen$,WINDOW,INACTIVE,GREEN,PageID)    
                              } else {
                                pdisplay(ID,$offen$,WINDOW,STATE7,BLINKRED,PageID)        
                              } endif
                              :end
                              Erwartet hätte ich da ja keine Abfrage für das pdisplay verwendet wird ein Geschlossen in Grün als Text.

                              Kommentar

                              Lädt...
                              X