[beendet][FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter

Begonnen von MDietrich, 10 Februar 2024, 10:56:45

Vorheriges Thema - Nächstes Thema

MDietrich

Hallo,

ich möchte mittels eines Buttons den Inhalt eines Dummies erhöhen.
Dafür habe ich ein Dummy definiert:

defmod d_FuelScale dummy
attr d_FuelScale readingList max min inc dec
attr d_FuelScale room 02 Programm -> 02 DUMMY,98 Tanken

setstate d_FuelScale okay
setstate d_FuelScale 2024-02-10 10:35:16 dec -0.1
setstate d_FuelScale 2024-02-10 10:18:18 inc 0.1
setstate d_FuelScale 2024-02-10 09:04:08 max 1.909
setstate d_FuelScale 2024-02-10 10:20:56 min 1.609
setstate d_FuelScale 2024-02-10 10:34:47 state okay


Bei Betätigung soll zunächst zu d_FuelScale:min dFuelScale:inc addiert werden.

Definition des Buttons:
<ftui-button [value]="d_FuelScale:min" (value)="d_FuelScale:min | add('d_FuelScale:inc')">
    <ftui-icon path="icons" name="arrow-down" size="2"></ftui-icon>
</ftui-button>

erhalte ich eine Fehler im Browser:
<ftui-button id="ftui_button_18" margin="0" padding="0" states="on,off" fill="solid" color="primary" size="normal" shape="normal" direction="horizontal" value="off"
    debounce="0" gap="0" height="null" width="null" class="has-error" title="SyntaxError: missing ) after argument list">
  <ftui-icon path="icons" name="arrow-down" size="2" id="ftui_icon_119" margin="0" padding="0" type="svg" color="" rgb="" height="" width="" top="" left="" bottom=""
        right="" rotate="0" style="font-size: 1rem;">
  </ftui-icon>
</ftui-button>

Und eine toastmessage "set add('d_FuelScale:inc') undefined.

Ich stehe gerade auf der Leitung, wer kann mir einen Tip geben?

Gruß,
Matthias

edit:
ich habe jetzt versucht schrittweise vorzugehen und mir verschiedene Label ausgeben lassen, die Definition des oben stehenden Dummies habe ich nicht geändert:
der Code:
<ftui-label [text]="d_FuelScale:min"></ftui-label>
<ftui-label [text]="d_FuelScale:inc"></ftui-label>
ergibt, erwartungsgemäß. 1.609 und 0.1

Ändere ich nun zu:
<ftui-label [text]="d_FuelScale:min | toNumber('d_FuelScale:min')"></ftui-label>
<ftui-label [text]="d_FuelScale:inc | toNumber('d_FuelScale:inc')"></ftui-label>
<ftui-label [text]="d_FuelScale:min | add('d_FuelScale:inc')"></ftui-label>
sind die Texte 1.609, 0.1 und 1.609d_FuelScale:inc

passe ich noch einmal an:
<ftui-label [text]="d_FuelScale:min | toNumber('d_FuelScale:min')"></ftui-label>
<ftui-label [text]="d_FuelScale:inc | toNumber('d_FuelScale:inc')"></ftui-label>
<ftui-label [text]="d_FuelScale:min | add('d_FuelScale:inc')"></ftui-label>
<ftui-label [text]="toNumber('d_FuelScale:min') | add('toNumber(`d_FuelScale:inc`)')"></ftui-label>
sind auf einmal alle vier texte nicht gesetzt.

Entweder ich habe einen Knoten im Hirn, oder beim parsen geht etwas schief...




FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

mr_petz

so wird das nix.
du versuchst ja ein Reading anzuhängen.


    part(number)
    toDate(string)
    toBool(string|number)
    toInt(number)
    format(string)
    round(number)
    add(number)
    multiply(number)
    divide(number)
    replace(find, replace)
    map('in1:out1,in2:out2,...')
    step('1:ok,6:warning,10:alert')
    scale(minIn, maxIn, minOut, maxOut)

also so geht es nur.
du musst den Wert von d_FuelScale:inc erst lesen und dann anhängen.

Edit:
und bei set muss die pipe voran gestellt werden...

Bsp.:
<ftui-button [value]="d_FuelScale:min" (value)="add('99') | d_FuelScale:min" [states]="d_FuelScale:min">

mr_petz

Beispiellösungsansatz:

<ftui-button (value)="d_FuelScale:min" [states]="d_FuelScale:min | m=>this.m=m; d_FuelScale:inc | inc=>inc=this.m*1+inc*1">

ansonsten in Fhem addieren lassen...

MDietrich

Hallo mr_petz,
danke für die Idee. Der Browser macht daraus:
<ftui-button id="ftui_button_18" margin="0" padding="0" states="1.575" fill="solid" color="primary" size="normal" shape="normal" direction="horizontal" value="1.575" debounce="0" gap="0" height="null" width="null">
</ftui-button>

Mittlerweile habe ich es mit einer Funktion und einem userreading versucht, da bin ich daran gescheitert ein reading zu ändern.
Habe es jetzt mit einem DOIF erledigt.

Gruß,
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

mr_petz

states="1.575"

damit sind deine Werte addiert und können gesetzt werden...

MDietrich

FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1