Ankündigung

Einklappen
Keine Ankündigung bisher.

Kleiner Bug in toggle-widget?!

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

    Kleiner Bug in toggle-widget?!

    Moin Jungs

    habe folgendes definiert:

    Code:
            <toggle mapping="On_Off" styling="Green_Red">
              <layout colspan="3" />
              <label>Wohnzimmer CouchStatus</label>
              <address transform="DPT:1.001" mode="read" variant="">1/1/47</address>
              <address transform="DPT:1.001" mode="write" variant="">1/1/48</address>
            </toggle>
    Setzt man nun die 1/1/47 auf 1, so wird der Toggle - wie erwartet - eingeschaltet (also zeigt "Aus" mit rot an). Klicke ich nun aber auf den Button, so würde ich erwarten, dass hier auf die 1/1/48 eine "0" gesendet wird. Dem ist aber nicht so. Hier wird nochmals eine "1" gesendet.

    Für meinen Fall unlogisch (und unbrauchbar) :-)

    Eigentlich sollte ihn doch nur der Zustand von der "read"-Adresse interessieren und den Zustand von der "write"-Adresse sollte ihn völlig unbeeindruckt lassen...oder?!


    Gruß, Netsrac

    #2
    Warum nimmst Du keinen Switch?

    (Ganz ehrlich: warum haben wir eigentlich <Toggle>?)
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Zitat von Chris M. Beitrag anzeigen
      (Ganz ehrlich: warum haben wir eigentlich <Toggle>?)
      War es nicht so, dass Switch zwischen vielen beliebigen Werten der Reihe nach springen kann, und toggle nur zwischen zweien hin und her? Ich hatte sowas im Kopf, vielleicht war das aber auch nur mal so angedacht.

      Kommentar


        #4
        Zitat von Chris M. Beitrag anzeigen
        (Ganz ehrlich: warum haben wir eigentlich <Toggle>?)
        Da bin ich gerade auch drüber gestolpert, weil ich mich mit den Mappings befasst habe.
        Aktuell ist es so, dass man <toggle> nur verwenden kann, wenn man ein Mapping angibt. Dann wird der aktuelle Wert des Elements in der Liste der Mappings gesucht und dann das nächst größere Element genommen.

        Irgendwie fällt mir dazu kein sinnvoller Anwendungsfall ein. Da nehme ich entweder <trigger> oder <multitrigger> (wenn ich mehrere Werte benötige).

        Außerdem halte ich die Vermischung mit dem Mapping für sehr unglücklich. Das wird überall nur für die Anzeige von Werten verwendet und hier ist es plötzlich die Liste der möglichen Zielwerte.

        Da würde ich eher den Multitrigger so umbauen, dass man eine beliebige Anzahl von Werten angeben kann (nicht nur 4), und dann <toggle> rausnehmen.

        Wie seht ihr das?
        Gibt es hier irgendjemanden, der <toggle> verwendet?
        Grüße
        Michael

        Kommentar


          #5
          Kleiner Bug in toggle-widget?!

          Ja. Zur. Betriebsartumschaltung.

          Gruß,

          der Jan
          KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

          Kommentar


            #6
            AW: Kleiner Bug in toggle-widget?!

            Zitat von JNK Beitrag anzeigen
            Ja. Zur. Betriebsartumschaltung.
            In den Beispielen, die ich bisher gesehen habe, wurde dafür immer der Multitrigger verwendet. Warum nimmst du den Toggle, was ist in diesem Fall besser?
            Grüße
            Michael

            Kommentar


              #7
              Die gewählte Betriebsart wird gleich mit angezeigt. Das ist zwar nicht völlig richtig, weil die zuletzt gewählte und nicht die aktuelle (also Statusmeldung) angezeigt wird, aber für mich reichts und es nimmt weniger Platz weg.

              Gruss,

              der Jan
              KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

              Kommentar


                #8
                Zitat von netzkind Beitrag anzeigen
                War es nicht so, dass Switch zwischen vielen beliebigen Werten der Reihe nach springen kann, und toggle nur zwischen zweien hin und her? Ich hatte sowas im Kopf, vielleicht war das aber auch nur mal so angedacht.
                <switch> sollte eigentlich zwischen genau zwei Werten wechseln, einer für Gedrückt, einer für nicht gedrückt.

                Bei <toggle> müsste ich spontan noch mal nachsehen, was der überhaupt macht... (Oder sollte <toggle> eine (beliebig lange) Liste durchschreiten?)
                Zitat von MicHau Beitrag anzeigen
                Da würde ich eher den Multitrigger so umbauen, dass man eine beliebige Anzahl von Werten angeben kann (nicht nur 4), und dann <toggle> rausnehmen.
                Ein <multitrigger> ist ein Widget aus historischen Gründen, das mit den Groups eigentlich obsolet geworden ist. Das wird sicher nicht mehr als 4 Einträge haben, da das unübersichtlich wird - sowohl in der Config als auch im Layout

                Warum der <multitrigger> überhaupt noch drinnen ist, hat IMO nur zwei Gründe:
                • Rückwärtskompatabilität zu bestehenden Configs
                • Im Design Planet bieten die Multitrigger eine hübsche Alternative Darstellung
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #9
                  Kleiner Bug in toggle-widget?!

                  @Chris:genau, der toggle durchläuft die Liste.

                  Gruß,

                  der Jan
                  KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                  Kommentar


                    #10
                    OK, so ein Widget macht natürlich Sinn!
                    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                    Kommentar


                      #11
                      Eine kleine Änderung würde ich machen. Ohne Angabe eines Mappings ist das Widget nicht zu verwenden, weil dann keine Werte durchlaufen werden können.
                      Daher nehme ich für das Attribut mapping use="optional" aus der XSD raus.
                      Grüße
                      Michael

                      Kommentar


                        #12
                        Klingt vernünftig!

                        Die anderen Änderungen die Du gemacht hast (mapping und styling) sind ja ziemlich tiefgreifend. Aber ich denke noch rechtzeitig, so dass die vor dem Release in der Breite abgesichert werden können.
                        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                        Kommentar


                          #13
                          Zitat von Chris M. Beitrag anzeigen
                          Die anderen Änderungen die Du gemacht hast (mapping und styling) sind ja ziemlich tiefgreifend. Aber ich denke noch rechtzeitig, so dass die vor dem Release in der Breite abgesichert werden können.
                          Ich wollte ein bisschen mehr Struktur reinbringen, Stichworte Information Hiding, Separation of Concerns, etc.
                          Habe mich da am Editor orientiert, der in dieser Hinsicht ja sehr strukturiert aufgebaut ist.

                          Es gibt ja zum Beispiel die Anfrage, eine Mapping für "undefined" zu haben. Das geht halt nur gut einzubauen, wenn man das nicht über den ganzen Code verteilen muss, sondern sich an einer Stelle befindet.

                          Und getestet habe ich das ausführlich, da mir bewusst ist, das da ein bisschen was schief gehen kann.
                          Grüße
                          Michael

                          Kommentar


                            #14
                            Keine Sorge, ich finde die Änderung ja nicht schlecht (hab's mir zwar nicht im ganzen Kontext angesehen, aber die Richtung passt).
                            Und bei der Template Engine würde ich heute auch ein paar Sachen anders schreiben (insb. da ich in der Zwischenzeit Effective JavaScript gelesen habe...)
                            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                            Kommentar

                            Lädt...
                            X