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...
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">
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...
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
states="1.575"
damit sind deine Werte addiert und können gesetzt werden...
leider nein, er was vorher schon 1.575, inc ist 0.1
ok, bei meinen Test geht es so....