ftui3 Button und Max bzw. Min Value

Begonnen von roemi, 30 Dezember 2022, 23:16:49

Vorheriges Thema - Nächstes Thema

roemi

HeHo und frohes neues zu haben oder gehabt zu haben.

Ich habe in FTUI3 vor, für einige Lampen die Helligkeit in 10er Schritten heller bzw. dunkler zu machen
             <div><ftui-button [value]="HUEDevice22:pct" max="100" (value)="add(10) | set HUEDevice22:pct" states="$value" debounce="400" fill="" >
                <ftui-icon size="3" name="plus"></ftui-icon>
              </ftui-button></div>
              <div><ftui-label size="3"
              [text]="HUEDevice22:pct | fix(1)" unit=" %">
              </ftui-label></div>
              <div><ftui-button [value]="HUEDevice22:pct" (value)="add(-10) | set HUEDevice22:pct" states="$value" debounce="400" fill="" min="10">
                <ftui-icon size="3" name="minus"></ftui-icon>
              </ftui-button></div>


Wie kann ich erreichen, das ein Maximum von 100 nicht überschritten oder ein Minimum von 10 nicht unterschritten wird?
Min, Max, data.min usw. alles probiert, kein Erfolg.
Es wird aber sicher irgendwie gehen  ::)

Danke für Eure Hilfe

Römi
https://www.roemi.de ... von einem, der auszog, 5000 deutsche Biere zu probieren

OdfFhem

Der Beitrag wäre vermutlich besser aufgehoben unter: "FHEM Forum » FHEM » Frontends » TabletUI"

*1*

Hätte man einen fest vorgegebenen Wertebereich, der nie verlassen wird, könnte man so vorgehen:

         <ftui-button [value]="ftuitest:MinMax" (value)="setreading ftuitest:MinMax" states="10,20,30,40,50,60,70,80,90,100">
           <ftui-icon size="3" name="plus"></ftui-icon>
         </ftui-button>
         <ftui-label size="3" [text]="ftuitest:MinMax | fix(1)" unit=" %"></ftui-label>
         <ftui-button [value]="ftuitest:MinMax" (value)="setreading ftuitest:MinMax" states="100,90,80,70,60,50,40,30,20,10">
           <ftui-icon size="3" name="minus"></ftui-icon>
         </ftui-button>

"+" läuft vorwärts ... "-" läuft rückwärts ... am Anfang bzw. Ende der zulässigen Werte läuft man jedoch rund

*2*

Passende Pipes scheint es (noch) nicht zu geben, könnte man aber (zumindest temporär) selbst definieren:

         <script>
           const max = value => input => Math.max(Number(input),value);
           const min = value => input => Math.min(Number(input),value);
         </script>
         <ftui-button [value]="ftuitest:MinMax" (value)="add(10) | min(100) | setreading ftuitest:MinMax" states="$value">
           <ftui-icon size="3" name="plus"></ftui-icon>
         </ftui-button>
         <ftui-label size="3" [text]="ftuitest:MinMax | fix(1)" unit=" %"></ftui-label>
         <ftui-button [value]="ftuitest:MinMax" (value)="add(-10) | max(10) | setreading ftuitest:MinMax" states="$value">
           <ftui-icon size="3" name="minus"></ftui-icon>
         </ftui-button>

"+" läuft vorwärts bis 100 ... "-" läuft rückwärts bis 10 ... am Anfang bzw. Ende der zulässigen Werte läuft man nicht rund

roemi

Hallo OdfFhem,

Variante 1 macht was ich will ... perfekt!

Danke Dir

Und allen einen guten Rutsch in Richtung 2023

Römi (der heute evtl. noch zigbee2mqtt aufsetzen will  8))
https://www.roemi.de ... von einem, der auszog, 5000 deutsche Biere zu probieren