Ankündigung

Einklappen
Keine Ankündigung bisher.

InitGA/Systemstart

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

    #16
    Zitat von enertegus Beitrag anzeigen
    Ja. Grundsätzlich wäre das dann aber was anderes!
    Coole Antwort!
    BR
    Marc

    Kommentar


      #17
      Hallo zusammen,

      ich muss hier auch nochmals einhaken und eine Frage stellen. Bin mal wieder daran meine Visu in Angriff zu nehmen. Dabei bin ich genau auf das gleiche Problem mit der Initialisierung der GA getroffen.

      Ich habe einen Lichtbutton realisiert welcher nach dem EIBPC restart nicht den aktuellen Status anzeigt. Leider habe ich das auch nicht mit systemstart() bzw. initga (gut ist ja noch ein bug) hinbekommen?! In der "Licht-GA" befinden sich nur ein Taster und ein Aktorkanal. Sollte das prinzipiell so funktionieren wenn ich diese GA beim systemstart abfrage? Oder muss ich zusätzlich mit einem Rückmeldewert des Aktors arbeiten?

      Mir ist leider immer noch nicht ganz klar wie systemstart() den Status erfragen soll/kann wenn gar keine aktuelle Telegrammänderung stattfindet?

      Besten Dank schonmal und Grüsse
      Jochen

      Kommentar


        #18
        Moin Jochen,

        Du fragst mit initGA Dein Rückmeldeobjekt des Aktors ab. Den Webserver kannst Du etwas verzögert aktualisieren. Beispiel:

        [highlight=epc]
        InitWebserver = AUS
        if after(Systemstart(), 25000u64) then InitWebserver = EIN endif

        if after( InitWebserver == EIN, 1u64) then InitWebserver = AUS endif
        [/highlight]

        Im Makro dann z.B.
        [highlight=epc]
        InitGA( GA )

        //Wenn sich was ändert, dann auch visualisieren
        if event(GA) or InitWebserver then {
        pdisplay(InfoID,convert(convert(GA, 0f16),$$)+$ °C$,INFO,INACTIVE,GREY, PageID)
        } endif

        [/highlight]

        Makros, die das nutzen, findest Du übrigens in der BMXWeb4.lib. Die ist bei den Codeschnipseln zu finden.

        Gruß,
        Bernd

        PS: Ein Makro für alle Fälle des Webbuttons ist:
        [highlight=epc]
        ///////////////////////////////////////////////////////////////////////////////
        //
        // Ein WebButton für Licht oder Verbraucher
        // Dient als MasterButton für Licht, Steckdosen, etc.
        //
        :begin WebPageButtonGAandStatusGAandTime(PageID,ButtonID, ValueGA,StatusGA,EinText, AusText,EinSymbol,AusSymbol,EinActive,AusActive,Ei nTextColor,AusTextColor,ShowTimeStamp,GoingOn,Goin gOff)
        :info $Ein Taster für Licht oder Verbraucher per Webserver$ \\
        $PageID die Seite auf der der Button erscheint$ \\
        $ButtonID des Tasters$ \\
        $ValueGA Gruppenadresse des Aktors$ \\
        $StatusGA Gruppenadresse des Statusobjektes$ \\
        $EinText, der text der gezeigt wird, wenn der Status auf EIN ist$ \\
        $AusText, der text der gezeigt wird, wenn der Status auf AUS ist$ \\
        $EinSymbol, das Symbol, das gezeigt wird, wenn der Status auf EIN ist$ \\
        $AusSymbol, das Symbol, das gezeigt wird, wenn der Status auf AUS ist$ \\
        $EinActive, die Symbolauszeichnung, die gezeigt wird, wenn der Status auf EIN ist$ \\
        $AusActive, die Symbolauszeichnung, die gezeigt wird, wenn der Status auf AUS ist$ \\
        $EinTextColor, die Textfarbe, die gezeigt wird, wenn der Status auf EIN ist$ \\
        $AUSTextColor, die Textfarbe, die gezeigt wird, wenn der Status auf AUS ist$ \\
        $ShowTimeStamp, wenn die letzte Änderung mit angezeigt werden soll$ \\
        $GoingOn, die Symbolauszeichnung die gezeigt wird, wenn Value schon ein ist, aber Status noch aus$ \\
        $GoingOff, die Symbolauszeichnung die gezeigt wird, wenn Value schon aus ist, aber Status noch an$
        :shortinfo $Einfacher Taster im Webserver 2.0$

        InitGA(StatusGA)

        if pbutton(ButtonID,PageID)==1 then {
        write(ValueGA,!StatusGA)
        } endif

        if (change(StatusGA) or change(ValueGA) or InitWebserver) and StatusGA == EIN then {
        if ShowTimeStamp and !InitWebserver then {
        if ValueGA == EIN then pdisplay(ButtonID,EinText+$ - $+convert(settime(),$$),EinSymbol,EinActive,EinTex tColor,PageID) endif;
        if ValueGA == AUS then pdisplay(ButtonID,EinText+$ - $+convert(settime(),$$),EinSymbol,GoingOff,EinText Color,PageID) endif
        } endif;
        if !ShowTimeStamp or InitWebserver then {
        if ValueGA == EIN then \\
        pdisplay(ButtonID,EinText,EinSymbol,EinActive,EinT extColor,PageID) \\
        else \\
        pdisplay(ButtonID,EinText,EinSymbol,GoingOff,EinTe xtColor,PageID) \\
        endif
        } endif
        } endif

        if (change(StatusGA) or change(ValueGA) or InitWebserver) and StatusGA == AUS then {
        if ShowTimeStamp and !InitWebserver then {
        if ValueGA == EIN then \\
        pdisplay(ButtonID,AusText+$ - $+convert(settime(),$$),AusSymbol,GoingOn,AusTextC olor,PageID) \\
        else
        pdisplay(ButtonID,AusText+$ - $+convert(settime(),$$),AusSymbol,AusActive,AusTex tColor,PageID) \\
        endif
        } endif;
        if !ShowTimeStamp or InitWebserver then {
        if ValueGA == EIN then \\
        pdisplay(ButtonID,AusText,AusSymbol,GoingOn,AusTex tColor,PageID) \\
        else \\
        pdisplay(ButtonID,AusText,AusSymbol,AusActive,AusT extColor,PageID) \\
        endif
        } endif
        } endif

        :end
        [/highlight]

        Kommentar


          #19
          Hoi Bernd,

          danke für die schnelle Antwort - ich werde mir auf jeden Fall mal Deine Makros genauer ansehen!


          Gruss
          Jochen

          Kommentar


            #20
            Zitat von saft6luck Beitrag anzeigen
            Ausführlich ausgeschrieben bedeutet (Firmware Bugs einmal ausgeschlossen)
            if GA ... das gleiche wie if event(GA) and ( GA == EIN ) ...
            Hm, da hab ich mich vertippt und keiner hat es gemerkt?

            Richtig muss es heißen:

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

            Kommentar


              #21
              Zitat von saft6luck Beitrag anzeigen
              Hm, da hab ich mich vertippt und keiner hat es gemerkt?
              Da sieht man mal
              a) wie genau ein Text hier gelesen wird und
              b) wie (un)sicher die Leser bezüglich des Validierungsschemas sind...
              Tessi

              Kommentar


                #22
                Zitat von saft6luck Beitrag anzeigen
                "Ausführlich ausgeschrieben bedeutet (Firmware Bugs einmal ausgeschlossen)
                if GA ... das gleiche wie if change(GA) and ( GA == EIN ) ..."
                die zweite Variante belegt mehr Objekte. Wenn's fürs Verständis reicht, ist auch ok, meine Empfehlung ist aber das "Orginal"
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #23
                  Zitat von enertegus Beitrag anzeigen
                  die zweite Variante belegt mehr Objekte. Wenn's fürs Verständis reicht, ist auch ok, meine Empfehlung ist aber das "Orginal"
                  Ich empfehle den Compiler zu optimieren
                  BR
                  Marc

                  Kommentar

                  Lädt...
                  X