Ankündigung

Einklappen
Keine Ankündigung bisher.

Webserver - Warum funktioniert das nicht?

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

    #16
    Ich poste hier nochmal das komplette Beispiel.

    Ich denke Einfacher geht es nicht, aber das Beispiel funktioniert nicht.

    Ich kann die Variable Licht_Sim zwar schalten (geprüft mit Debugger) aber der Button am Webserver ändert seine Aussehen nicht, er bleibt immer auf ACTIVE.

    Was mache ich falsch?

    Nach allen logischen Überlegungen müsste das doch funktionieren.

    Entweder ist das ein Bug oder ein Feature.

    Code:
    [WebServer]
    
    
    button(1)[SWITCH]$Licht Simulation$ 
    
    
    [EibPC]
    
    Licht_Sim=EIN;
    
    if webbutton(1)==1 then Licht_Sim = !Licht_Sim endif
    if Licht_Sim==EIN and change(Licht_Sim) then webdisplay(1,$EIN$,SWITCH,ACTIVE,GREY) endif
    if Licht_Sim==AUS and change(Licht_Sim) then webdisplay(1,$AUS$,SWITCH,INACTIVE,GREY) endif

    Kommentar


      #17
      Zitat von fluidfred Beitrag anzeigen
      Welche Seite im Handbuch. So richtig habe ich dafür kein Beispiel zum Schalten einer Variable im Handbuch gefunden.
      Sorry für die Verspätung. Hier ein Democode.
      [highlight=epc]
      [WebServer]
      // Seite 1
      page(HeizRaumPageID)[$Keller$,$Heizung$]
      pbutton(LichtID)[LIGHT]$Alle Lichter$

      [EibPC]
      HeizRaumPageID=7
      LichtID=1

      MyVariable = AUS
      // Variable Toggelt bei Betätigung
      if pbutton(LichtID,HeizRaumPageID)==1 then {
      MyVariable=!MyVariable
      } endif

      // Darstellung am Webserver
      if MyVariable then {
      pdisplay(LichtID,$EIN$,LIGHT,ACTIVE,BLINKBLUE, HeizRaumPageID);
      } else {
      pdisplay(LichtID,$AUS$,LIGHT,INACTIVE,GREY, HeizRaumPageID);
      }endif
      [/highlight]
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #18
        Zitat von fluidfred Beitrag anzeigen
        Ich poste hier nochmal das komplette Beispiel.

        Ich denke Einfacher geht es nicht, aber das Beispiel funktioniert nicht.

        Ich kann die Variable Licht_Sim zwar schalten (geprüft mit Debugger) aber der Button am Webserver ändert seine Aussehen nicht, er bleibt immer auf ACTIVE.

        Was mache ich falsch?

        Nach allen logischen Überlegungen müsste das doch funktionieren.

        Entweder ist das ein Bug oder ein Feature.

        Code:
        [WebServer]
        
        
        button(1)[SWITCH]$Licht Simulation$ 
        
        
        [EibPC]
        
        Licht_Sim=EIN;
        
        if webbutton(1)==1 then Licht_Sim = !Licht_Sim endif
        if Licht_Sim==EIN and change(Licht_Sim) then webdisplay(1,$EIN$,SWITCH,ACTIVE,GREY) endif
        if Licht_Sim==AUS and change(Licht_Sim) then webdisplay(1,$AUS$,SWITCH,INACTIVE,GREY) endif
        Probier mal:

        [highlight=epc]
        if webbutton(1)==1 then Licht_Sim = !Licht_Sim endif
        if change(Licht_Sim) then {
        if Licht_Sim then {
        webdisplay(1,$EIN$,SWITCH,ACTIVE,GREY);
        } else {
        webdisplay(1,$AUS$,SWITCH,INACTIVE,GREY);
        } endif;
        } endif
        [/highlight]

        ob "webdisplay" so stimmt, weiß ich jetzt nicht auswendig, da ich praktisch nur mit den seitengebundenen p... Webelementen arbeite - ich hab' einfach Deine kopiert.

        Kommentar


          #19
          Sorry für die Verspätung. Hier ein Democode.
          Danke das probiere ich gleich aus ob es funktioniert.

          Warum aber mein Beispiel nicht funktioniert, verstehe ich nicht.

          Kommentar


            #20
            Zitat von fluidfred Beitrag anzeigen
            Warum aber mein Beispiel nicht funktioniert, verstehe ich nicht.
            Ich hab mir dein Beispiel angeschaut, an sich syntaktisch korrekt. Problem: Du nutzt nur die Ein-Seiten-Version. Offenbar ist da aber ein Problem - man beachte auch den Hinweis " !Warnung: Nutzung des älteren Webservermodul 1.0 - keine Seite (page) definiert." Dein Code funktioniert an sich schon, "bloß" man muss nach jeder Betätigung den Browser manuell aktualisieren, weil das Modul 1.0 offenbar mit dem Refresh nicht sauber klar kommt.
            Wir werden das analysieren bzw. werden wir das 1.0 Modul ggf. auch komplett stillegen...Um auf das neue Modul zu schalten, müsste in jedem Fall das page-Kommando vorangestellt werden, dann geht auch Dein Code.
            Wobei in jedem Fall aus performance-Gründen das change() wegzulassen ist. Das wird nicht benötigt und ist überflüssig.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #21
              ich sagte doch.. nimm pdisplay.. tz tz tz
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #22
                Zitat von enertegus Beitrag anzeigen
                Ich hab mir dein Beispiel angeschaut, an sich syntaktisch korrekt. Problem: Du nutzt nur die Ein-Seiten-Version. Offenbar ist da aber ein Problem - man beachte auch den Hinweis " !Warnung: Nutzung des älteren Webservermodul 1.0 - keine Seite (page) definiert." Dein Code funktioniert an sich schon, "bloß" man muss nach jeder Betätigung den Browser manuell aktualisieren, weil das Modul 1.0 offenbar mit dem Refresh nicht sauber klar kommt.
                Wir werden das analysieren bzw. werden wir das 1.0 Modul ggf. auch komplett stillegen...Um auf das neue Modul zu schalten, müsste in jedem Fall das page-Kommando vorangestellt werden, dann geht auch Dein Code.
                Wobei in jedem Fall aus performance-Gründen das change() wegzulassen ist. Das wird nicht benötigt und ist überflüssig.
                Vielen Dank das hilft weiter. Leider sind die Einschränkungen was nicht funktioniert zu wenig im Handbuch dokumentiert. Wenn man mindestens eine "page" Anweisung braucht dann sollte schon beim kompilieren eine Warnung oder ein Fehler kommen.
                Ich war schon am verzweifeln.

                Kommentar


                  #23
                  Zitat von fluidfred Beitrag anzeigen
                  Wenn man mindestens eine "page" Anweisung braucht dann sollte schon beim kompilieren eine Warnung oder ein Fehler kommen.
                  Das seh ich auch so, daher wird das auch so gemeldet vom Compiler.
                  Angehängte Dateien
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #24
                    Zitat von enertegus Beitrag anzeigen
                    Das seh ich auch so, daher wird das auch so gemeldet vom Compiler.

                    Dann habe ich die Warnung übersehen. Wenn aber dadurch Dinge nicht funktionieren dann sollte eine Fehlermedlung kommen, und keine Warnung. Hätte ich diese Warnung gesehen, wäre ich nicht auf die Idee gekommen, dass der Schalter im Webserver nicht mehr funktioniert. Man muss eigentlich immer von DAU ausgehen - wenn ich mich als solchen bezeichnen darf ;-)

                    Grüße
                    Alfred

                    Kommentar


                      #25
                      Zitat von fluidfred Beitrag anzeigen
                      Dann habe ich die Warnung übersehen. Wenn aber dadurch Dinge nicht funktionieren dann sollte eine Fehlermedlung kommen, und keine Warnung.
                      Hab ich ja schon geschrieben, dass das Verhalten des alten Moduls nicht wunschgemäß ist. Entweder wir können das fixen oder wir legen es still.
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar

                      Lädt...
                      X