Ankündigung

Einklappen
Keine Ankündigung bisher.

Slider: Position falsch?

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

    Slider: Position falsch?

    Hallo,

    bin auf eine ungereimtheit gestoßen:

    Habe versucht meine Lüftungsanlage zu visualisieren. Klappt alles, bis auf die Slider für die begrenzung der Lüfter:

    slider.png


    Config-Abschnitt dazu sieht wie folgt aus:

    HTML-Code:
    <group name="Steuerung">
                    <layout colspan="5"/>
                    
                    <switch mapping="Off_On">
                        <label>Betrieb</label>
                        <address transform="raw" mode="readwrite">Lüftung Ein/Aus</address>
                    </switch>
                    
                    <switch format="%d">
                        <label>Standby</label>
                        <address transform="raw" mode="readwrite">Lüftung StandBy</address>
                    </switch>                
                    
                    <pushbutton downValue="1" upValue="0" mapping="Off_On">
                        <layout colspan="2.5"/>
                        <label>
                            <icon name="vent_ventilation_level_manual_m"/> Stoßlüftung
                        </label>
                        <address transform="raw" mode="write">Lüftung Stoßlüftung Ein</address>
                        <address transform="raw" mode="read">Lüftung Stoßlüftung Status</address>
                    </pushbutton>
                    
                    <info format="%d min">
                        <layout colspan="2.5"/>
                        <label>Restzeit</label>
                        <address transform="raw" mode="read">Lüftung Stoßlüftung Restzeit</address>
                    </info>
                    
                    <slide min="1" max="8" step="1" format="%d">
                        <label>
                            <icon name="vent_ventilation_control"/> Stufe</label>
                        <address transform="raw" mode="readwrite">Lüftung Stufe</address>
                    </slide>
                    
                    
                    <slide min="0" max="100" step="1" format="%d %%">
                        <label>Abluft Lüfter</label>
                        <address transform="raw" mode="readwrite">Lüftung Abluft Lüfter Prozent</address>
                    </slide>
                    <slide min="0" max="100" step="1" format="%d %%">
                        <label>Zuluft Lüfter</label>
                        <address transform="raw" mode="readwrite">Lüftung Zuluft Lüfter Prozent</address>
                    </slide>
                    
                </group>
    Man beachte: Es ist kein OH und kein knxd Backend, sondern mein eigenes (Deshalb die "eigenwilligen Addressen" und die raw-Transformation).
    Hab schon kontrolliert: Das Backend schickt für beide Slider korrekt den Wert "100" raus, und der kommt im Browser auch an (Chrome Developer Tools).
    Der Slider-Knopf zeigt auch 100% an, aber er steht an einer völlig falschen Stelle. Klicke ich ihn an und versuche ihn zu schieben, springt er an den Anfang, von wo ich ihn wieder auf 100% schieben kann. Dann sitzt er erstmal an der richtigen Stelle. Wechsle ich die Seite zund kehre zur Lüftung wieder zurück, sitzt er wie am Anfang schon wieder falsch.

    Mache ich etwas falsch, oder ist da der Wurm drin?

    Softwarestand entspricht so ziemlich dem aktuellen Github Stand.

    #2
    Also in der Regel benötigt der Slider doch eine Rückmeldeadresse, für den Status, bei dir nicht?
    Hast Du da keine zusätzliche oder separate Gruppenadresse für?

    Kommentar


      #3
      Der Stufenslider funktioniert korrekt? Kannst du testhalber mal ein Icon zu den Lüftungsslidern hinzufügen?

      Kommentar


        #4
        Die Lüftungsanlage ist kein physikalisches KNX Gerät, sondern ein Software-KNX-Gerät (HeliosKwlRemote). Da ist das ein und dieselbe Adresse. Könnte das aber bei Bedarf noch ändern.

        Da es bei dem Stufen-Slider klappt, bin ich davon ausgegangen dass es beim Lüfter-Slider auch klappt.

        Ich hatte testhalber das Icon im Stufenslider entfernt. Hatte keinen Unterschied gemacht.

        [update]

        Ich hatte geschrieben

        Klicke ich ihn an und versuche ihn zu schieben, springt er an den Anfang, von wo ich ihn wieder auf 100% schieben kann.
        Wenn ich ihn nur 1x anklicke, kein ziehen, dann springt er an die korrekte 100% Position....
        Zuletzt geändert von tuxedo; 22.10.2015, 14:14.

        Kommentar


          #5
          Na dann muss es ja entweder die GA oder min/max/steps sein oder? Probier mal herauszufinden was den Unterschied zum stufenslider macht.

          Kommentar


            #6
            Ich kann dern GA-Wert mit dem Slider verstellen. Geht Problemlos.
            Der Wertebereich liegt zwischen 0 und 100 in 1er Schritten verstellen.

            Analog dazu liegt der Wertebereich des Stufen-Slider bei 1..8 und ebenfalls 1er Schritten.

            Sehe keinen Unterschied, bis auf die Bereichsgröße.

            Werde mal versuchen den Slider an einer anderen Stelle einzubauen. Vielleicht liegt ja am zusammenspiel mit dem Layout.

            [update]
            Andere Stelle ergibt das gleiche Verhalten.
            Icon davor bringt auch kein anderes Verhalten.

            [update]
            Forciere ich über den Gruppenmonitor den Wert auf 3 statt 100, dann sitzt der Slider weit vorne, auf 3 eben. Also korrekt.
            Gehe ich mit dem Wert langsam hoch, z.B. 20, dann bewegt sich der Slider nach links (???).

            Mir scheint da stimmt etwas in der Positionierung/Berechnung des Sliders nicht.
            Zuletzt geändert von tuxedo; 22.10.2015, 14:42.

            Kommentar


              #7
              In Firefox spinnt der Slider ebenfalls, und auf dem Nexus4 auch.

              Kommentar


                #8
                Willst du mal versuchen den Text zwischen den Address-Tags weg zu lassen? "Lüftung Zuluft Lüfter Prozent" ist ziemlich lang. Eventuell wird dadurch die Größe vom Slider-Container vergrößert und der Handle verschoben.

                Kommentar


                  #9
                  Was soll denn der Slider-Container mit der Adresse anfangen? Der braucht doch nur den Wert. Für die visualisierung ist die Adresse im textuellen Sinn irrelevant.

                  ABER ich hab's ausprobiert. Lasse ich die Adresse einfach weg, steht der Slider ganz link und nennt korrekterweise "NaN" (Not a Number).
                  Ich kann ihn nach links und rechts bewegen. Auch zu 100%.

                  Das kann ich mit dem Slider MIT Adresse aber auch.

                  Wie gesagt: Die positionierung des Sliders hängt vom Wert ab. sehr kleine Werte sitzen noch am Anfang es Sliders, sind also korrekt. Werden die Werte aber größer, z.B. Richtung 20 von 100, dann bewegt sich der Slider mit jedem Schritt in Richtung 100 nach links...

                  Ich hab nun auch schon probiert/experimentiert wenn ich eine zweite Adresse für den Status angebe:

                  HTML-Code:
                                  <slide min="0" max="100" step="1" format="%d">
                                      <label><icon name="vent_ventilation_control"/> Abluft Lüfter</label>
                                      <address transform="raw" mode="readwrite">Lüftung Abluft Lüfter Prozent</address>
                                      <address transform="raw" mode="read">Lüftung Zuluft Lüfter Prozent</address>
                                  </slide>
                  Hab dafür einfach den anderen Lüfter genommen. Spielt aber keine Rolle. Der Slider sitzt nach wie vor falsch.

                  Kommentar


                    #10
                    Was hast du denn bei raw als DPT hinterlegt?

                    Code:
                    [COLOR=#000080]<slide min=[COLOR=#0000FF]"0"[/COLOR] max=[COLOR=#0000FF]"100"[/COLOR] step=[COLOR=#0000FF]"1"[/COLOR] format=[COLOR=#0000FF]"%d"[/COLOR]>[/COLOR]
                          [COLOR=#FF8000]<label>[/COLOR][COLOR=#000080]<icon name=[COLOR=#0000FF]"vent_ventilation_control"[/COLOR]/>[/COLOR] Abluft Lüfter[COLOR=#FF8000]</label>[/COLOR]
                          [COLOR=#000080]<address [/COLOR][COLOR=#FF0000]transform="[/COLOR][COLOR=#000080][COLOR=#0000FF]raw"[/COLOR] mode=[COLOR=#0000FF]"readwrite"[/COLOR]>[/COLOR]Lüftung Abluft Lüfter Prozent[COLOR=#000080]</address>[/COLOR]
                    [COLOR=#000080]</slide>[/COLOR]

                    Kommentar


                      #11
                      Lass mich überlegen, exakt das gleiche Verhalten hatte ich auch schon. Nur leider komme ich gerade nicht drauf, was der Auslöser war. Muss mal in die History meiner Konfig schauen, dass habe ich sicher ob einer Commitmessage stehen...
                      Kind regards,
                      Yves

                      Kommentar


                        #12
                        Michi, das DPT-Handling macht mein Backend. Und dort ist es DPT5.001. Übermittelt wird an die CV ein Zahlenwert von [0..100] was den 0..100% entspricht. Dieser kommt auch in der CV korrekt an.

                        starwarsfan
                        Das wär super
                        Zuletzt geändert von tuxedo; 23.10.2015, 11:22.

                        Kommentar


                          #13
                          Hallo Alex,

                          ich kann mich jetzt auch täuschen, aber DPT 5.001 löst in ≈ 0,4 % Schritten auf.
                          Aber bei dir kommt ein Zahlenwert von 0 bis 100 an, das müsste dann aber eigentlich ein Zahlenwert von 0 bis 255 sein, bei DPT 5.001

                          Kommentar


                            #14
                            Die CV interessiert sich in meinem Fall nicht wie KNX das handhabt. Sie bekommt einen ganzzahligen Wert und weiß dass bei "0" der Slider links, und bei "100" der Slider rechts stehen muss, sowie dass der Slider sich in 1er Schritten bewegen darf.

                            Deshalb auch der Hinweis meiner seits: "Das DPT-Handling macht mein Backend."

                            Wenn ich über den Bus über die ETS mit dem Gruppenmonitor mit DPT5 50% sende, dann kommt in der Visu 50 an. Sende ich 100% über die ETS, kommen in der Visu 100 an. Und bei 0% eben 0. Die Visu muss also nix umrechnen.

                            Hab ich mehrfach mit dem JavaScript debugger getestet und hier sicher schon 3mal kund getan.

                            Wie man's dreht und wendet: Wird der Wert größer darf der Slider nicht nach links wandern.

                            Kommentar


                              #15
                              Hi@all,

                              ich habe es in meinem Changelog gefunden: Nimm aus den Slidern mal die Labels raus! Hatte ich am Anfang auch so und damit das von Dir beschriebene Problem. Nachdem ich die Labels aus dem Slider entfernt und als separates Item daneben platziert habe, klappt die Positionierung des Sliders.

                              Somit ist es offensichtlich so, dass der "Schiebebereich" des Sliders bei Verwendung eines Labels nur in der rechten Hälfte des Feldes dargestellt wird, was ja auch korrekt ist. Der Position des eigentlichen Schiebers wird aber irgendwie über die ganze Breite des Elements berechnet, so dass er fälschlicherweise über dem Text zu liegen kommt. Damit scheint das schon ein Bug der CV zu sein, den man aber durch Slider ohne Labels umgehen kann.

                              @Christian: Was meinst Du dazu? Möglich?
                              Kind regards,
                              Yves

                              Kommentar

                              Lädt...
                              X