Ankündigung

Einklappen
Keine Ankündigung bisher.

Unerwartetes Verhalten von webinput()

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

    Unerwartetes Verhalten von webinput()

    Das Szenario ist, dass mittels webinput() ein Datum eingegeben werden kann und dieses Datum nicht in der Vergangenheit liegen soll.

    Dazu reagiere ich auf den Change (webinput(), prüfe das Datum auf "vor heute", ändere das Datum bei Bedarf auf heute und schreibe das so geänderte Datum mit webdisplay() zurück ins Eingabefeld.

    Im Pseudo-Code sieht das in etwa so aus:

    Code:
    if change(webinput(UIID)) then datum = webinput(datum); endif;
    if "datum liegt vor heute" then datum = heute; webdisplay(UIID, datum, ...); endif;
    Wenn also jemand heute (19.3.2026) das Datum 18.3.2026 wählt, wird es sofort wieder auf 19.3.2026 geändert, intern sowie um UI.

    Das funktioniert - beim ersten Mal.

    Ein zweites Mal geht es nicht mehr. Bei erneuter Eingabe des 18.3.2026 wird der change() nicht ausgelöst. Da dann die erste Zeile nicht triggert, funktioniert die Mimik nicht mehr. Im obigen Code bleibt das Datum daher auf dem 19.3.2026, im UI steht aber der 18.3.2026.

    Man muss ein anderes Datum als den 18.3.2026 auswählen, damit change() triggert. Das heißt, bei webdisplay() wird die intern genutzte Variable für das Datum offensichtlich nicht geändert, nur die Darstellung.

    Entweder ist das ein Bug in webinuput(), oder man muss neben webdisplay() noch etwas anderes setzen, damit die interne Variable verändert wird. Nur wüsste ich nicht, wie...




    KNX, openHAB 4.3, EibPC²

    #2
    ist der code in einem Makro?
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #3
      Zitat von EPIX Beitrag anzeigen
      ist der code in einem Makro?
      Ja. Aber warum sollte das eine Rolle spielen?
      KNX, openHAB 4.3, EibPC²

      Kommentar


        #4
        setz den Code anstelle des Makroaufrufs einmal direkt ein, dann kannst du mit Hilfsvariablen schrittweise debuggen...
        Das Validierungsschema hat MIR schon oft einen Streich gespielt ;-)
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          Verstehe. Ich mache das mit debug-Makros und sendUDP, wie im Handbuch beschrieben.

          Abgesehen davon funktioniert webinput() grundsätzlich, und im UI ist nach webdisplay() das "korrigierte" Datum zu sehen. Soweit ist alles richtig, und mehr könnte ich auch nicht debuggen.
          Vermutlich gibt es im betreffenden UI-Element den Wert zwei Mal, der, der dargestellt wird (view), und der, der eingegeben wird bzw. wurde (model). Nur, dass der Controller dazwischen nicht wie erwartet arbeitet.
          KNX, openHAB 4.3, EibPC²

          Kommentar


            #6
            du kannst die Auswertung mit eval() "erzwingen"
            ev. liegt das Problem darin, dass der wert erst im nächsten Zyklus im webinput aktualisiert vorliegt.
            dann könntest du mit after( nach 10msec die Aktualisierung auslösen
            EPIX
            ...und möge der Saft mit euch sein...
            Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

            Kommentar


              #7
              Das Problem ist nicht zyklusabhängig, denn es geht auch noch Stunden später nicht.

              Abgesehen davon ist eval() nicht dafür gedacht. Worauf sollte ich es anwenden? Auf webdisplay()?
              KNX, openHAB 4.3, EibPC²

              Kommentar


                #8
                ja ich hätte es auf webdisplay probiert...

                Enertex ist vermtl. im L&B Stress - die hätten ev. einen besseren Tip, ev. kontaktierst du einfach den Support...
                EPIX
                ...und möge der Saft mit euch sein...
                Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                Kommentar


                  #9
                  Ich denke, das hier geschilderte Problem haut in die gleiche Kerbe wie der von mir gemeldete Bug beim Multibutton (https://knx-user-forum.de/forum/supp...ehler-probleme). Dort wurde gesagt, dass der mit dem L&B - Release gefixt sein wird. Darauf kann ich warten.
                  KNX, openHAB 4.3, EibPC²

                  Kommentar


                    #10
                    da sind somit einige Webelemente betroffen, plink und pdisplay funktionieren auch nicht korrekt...
                    EPIX
                    ...und möge der Saft mit euch sein...
                    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                    Kommentar

                    Lädt...
                    X