FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: MDietrich am 10 Februar 2024, 10:56:45

Titel: [beendet][FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: MDietrich am 10 Februar 2024, 10:56:45
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...




Titel: Aw: [FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: mr_petz am 11 Februar 2024, 19:53:55
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">
Titel: Aw: [FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: mr_petz am 11 Februar 2024, 20:28:05
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...
Titel: Aw: [FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: MDietrich am 11 Februar 2024, 20:51:32
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
Titel: Aw: [FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: mr_petz am 11 Februar 2024, 20:52:54
states="1.575"

damit sind deine Werte addiert und können gesetzt werden...
Titel: Aw: [beendet][FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: MDietrich am 11 Februar 2024, 20:54:03
leider nein, er was vorher schon 1.575, inc ist 0.1
Titel: Aw: [beendet][FTUI3] Button - Dummy auf Knopfdruck Incrementieren - komme nicht weiter
Beitrag von: mr_petz am 11 Februar 2024, 21:30:26
ok, bei meinen Test geht es so....