Probleme mit Buttongruppe im Togglebetrieb

Begonnen von matzemoerk, 27 Juli 2017, 07:42:59

Vorheriges Thema - Nächstes Thema

matzemoerk

Hallo,

Wie im Beispiel auf Github hätte ich gerne drei Buttons in einer Gruppe die als Toggle funktionieren um die Saugleistung meines Staubsaugers einstellen zu können. Dabei muss fan_power zwischne den Werten 33, 60 und 77 umgeschaltet werden. Ich habe versucht das folgendermaßen umzusetzen:


<div class="hbox top-space">
<div>
<div data-type="switch" data-device="XIAOMI_VACUUM" data-get="fan_power" data-set="fan_power"
      data-get-on="38" data-get-off="{60,77}" data-set-on="38" data-set-off="" data-icon="" >I</div>
<div>Leise</div>
</div>
<div class="left-space">
<div data-type="switch" data-device="XIAOMI_VACUUM" data-get="fan_power" data-set="fan_power"
      data-get-on="60" data-get-off="{38,77}" data-set-on="60" data-set-off="" data-icon="" >II</div>
<div>Normal</div>
</div>
<div class="left-space">
<div data-type="switch" data-device="XIAOMI_VACUUM" data-get="fan_power" data-set="fan_power"
      data-get-on="77" data-get-off="{38,60}" data-set-on="77" data-set-off="" data-icon="" >III</div>
<div>Turbo</div>
</div>
</div>


Leider funktioniert die Interaktion zwischen den switches nicht. Das heißt, der on und off Status wird nicht erkannt. Lade ich die TabletUI neu sind drei Buttons im off Status zu sehen. Drücke ich einen der Buttons geht dieser in den on Status und setzt den korrekten Wert im Device. Drücke ich jetzt einen anderen Button geht auch dieser in den on Status, setzt den entsprechenden Wert, aber auch der zuvor gedrückte Button bleibt an. Sind alle drei Buttons gedrückt worden werden keine Werte mehr ins Device geschrieben. Lade ich die Seite neu sind alle Buttons wieder aus.

Kann mir jemand weiterhelfen?

Grüße,
Matthias

setstate

Woher hast du die Schreibweise von data-get-off mit geschweifter Klammer?
Willst du damit ausdrücken, wenn eines dieser Werte aus dem Array (btw.:geschweifte Klammer definiert kein Array) passt, dann AUS?
Das funktioniert nur mit RegEx Ausdruck: data-get-off="60|77"

Oder das Literal "!on" (bedeutet: alles außer der get-on Wert)

data-get-off="!on"

matzemoerk

Schreibweise kommt vom Abschreiben ohne Nachdenken. War noch zu früh heute Morgen ;-).
Danke für deine Hilfe, mit "!on" klappt es wie gewünscht.