Hauptmenü

FTUI version 3

Begonnen von Bunnu, 25 Oktober 2020, 09:25:41

Vorheriges Thema - Nächstes Thema

M.Piet

Perfekt! Vielen Dank!

grossmaggul

ZitatDafür gibt es auch das Pipe fix().
Mit round() geht es aber auch, gerade eben noch ausprobiert.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

eurofinder

@mr_petz:
Zitat1 <header>{{Name}}</header>
2 Wenn den popup auch ein content enthält ja.

Zu 1;
Klappt bei mir irgendwie nicht oder ich habe es falsch verstanden:
  <ftui-view-item testvar="Bezeichnung" @click="testpop.open()">
                Popup-Test
      </ftui-view-item>

<ftui-popup id="testpop" timeout="0">
    <header>{{testvar}}</header>
      <ftui-button popup-close>close</ftui-button>
    <ftui-label @click="testpop.close()">Close testpop</ftui-label>
  </ftui-popup>

Erhalte ich: {{testvar}} im Header und nicht Bezeichnung.

Zu 2:
Hab mich da vielleicht missverständlich augedrückt. Ich würde gerne an ein Popup einige varible Werte übergeben. Ein Wert soll im Header stehen. Die übrigen Werte würde ich gerne an content-Aufrufen "übergeben". Also so etwas wie:
<ftui-view-item Var1="Bezeichnung1" Var2="Bezeichnung2" Var3="Bezeichnung3" Var4="Bezeichnung4" @click="testpop.open()">
        ...
      </ftui-view-item>

<ftui-popup id="testpop" timeout="0">
    <header>{{Var1}}</header>
           <ftui-content device=Var2 room=Var3 file="contents/content-Aufruf_1.html"></ftui-content>
           <ftui-content device=Var2 window=Var4 file="contents/content-Aufruf_2.html"></ftui-content>
    <ftui-button popup-close>close</ftui-button>
    <ftui-label @click="testpop.close()">Close testpop</ftui-label>
  </ftui-popup>

Ich würde gerne für Rollläden bzw. Thermostate Einstellungen über ein Popup-Menue machen und diesem Parameter wie Device-Name, Raum ... übergeben. Ansonsten müsste ich für jedes Gerät ein eigenes Popup definieren und wenn sich ein Parameter oder im Design was ändert das überall anpassen.
Geht das irgendwie?

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

jual

Ich stehe im Moment ein wenig auf dem Schlauch und könnte mal eure Unterstützung gebrauchen.

Problemstellung: "hidden" soll in Abhängigkeit vom Vergleich zweier Readings gesetzt werden. Also etwas wie:

<ftui-label [text]="Reading1 | map('Reading2:true, .*:false')></ftui-label>

Die Frage ist nun, ob ich in einer Pipe-Funktion nochmal ein Reading auslesen kann und wie man das dann definiert (Alternativ, ob eine Variable {{Variable}} in einer Pipe verwendet werden kann).

Ergebnis sollte sein, wenn zwei Readings identisch sind, dann wird das Label nicht angezeigt und ansonsten wird es angezeigt.

mr_petz

Zitat von: grossmaggul am 02 Januar 2023, 12:52:53
Mit round() geht es aber auch, gerade eben noch ausprobiert.

Hi grossmaggul,
in bestimmten Fällen ist round(x) nicht gleich fix(x) Nachkommastelle.
Ich habe mal ein Bild zur Verdeutlichung angehangen.
1. Zahl ist die Ausgangszahl.

LG mr_petz

mr_petz

Zitat von: jual am 02 Januar 2023, 13:41:19
Ich stehe im Moment ein wenig auf dem Schlauch und könnte mal eure Unterstützung gebrauchen.

Problemstellung: "hidden" soll in Abhängigkeit vom Vergleich zweier Readings gesetzt werden. Also etwas wie:

<ftui-label [text]="Reading1 | map('Reading2:true, .*:false')></ftui-label>

Die Frage ist nun, ob ich in einer Pipe-Funktion nochmal ein Reading auslesen kann und wie man das dann definiert (Alternativ, ob eine Variable {{Variable}} in einer Pipe verwendet werden kann).

Ergebnis sollte sein, wenn zwei Readings identisch sind, dann wird das Label nicht angezeigt und ansonsten wird es angezeigt.

Wenn dann so Bsp.:

[hidden]="device | map('off:false'); device2 | map('off:true, on:false')"


LG

mr_petz

#3021
@eurofinder

Ah jetzt verstehe ich.
Nein, du kannst nur variablen einem im content befindlichen Popup oder anderen Komponenten mitgeben...

LG

Edit:
Bsp.:
https://forum.fhem.de/index.php/topic,115259.msg1250625.html#msg1250625

jual

Zitat von: mr_petz am 02 Januar 2023, 13:47:41
Wenn dann so Bsp.:

[hidden]="device | map('off:false'); device2 | map('off:true, on:false')"


Vielen Dank für das schnelle Feedback, auch wenn es mein Problem nicht wirklich löst. Vielleicht nochmal etwas konkreter:

Device1 enthält ein Datum
Device2 enthält auch ein Datum

Wenn Device1 == Device2 dann hidden = true sonst hidden = false

Man müsste also dem "map()" eine Variable übergeben können oder muß ich mir dafür irgendein kleines Script bauen. Bin bzgl. dieser ganzen Programmierung nicht wirklich der Profi  8)

mr_petz

#3023
Wenn es im <ftui-label> sein soll dann so über Umweg als Sonderlösung Bsp.:

<ftui-label [text]="Device1 | t1=>this.t1=t1; Device2 | t2=>this.t2=t2" [hidden]="Device1 | t1=>this.t2===t1?this.t=true:'' | map('this.t:true'); Device2 | t2=>this.t1===t2?this.t=true:'' | map('this.t:true')"></ftui-label>

Hier wird hidden=true wenn beide device exakt den gleichen Inhalt haben.

Edit:
Für ein [text] device im label:

<ftui-label [text]="Device1" [hidden]="Device1 | t1=>this.t1=t1 | ()=>this.t2===this.t1?this.t=true:'' | map('this.t:true'); Device2 | t2=>this.t2=t2 | ()=>this.t1===this.t2?this.t=true:'' | map('this.t:true')"></ftui-label>


LG

grossmaggul

Zitatn bestimmten Fällen ist round(x) nicht gleich fix(x) Nachkommastelle.
Ah, O.K., round macht eben das was der Name schon sagt, Runden. :)
Und da wird dann die Null leider unter den Tisch gekehrt. >:(
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

mr_petz

Zitat von: grossmaggul am 02 Januar 2023, 17:17:21
Ah, O.K., round macht eben das was der Name schon sagt, Runden. :)
Und da wird dann die Null leider unter den Tisch gekehrt. >:(

Ja leider. Ich nutze noch meine eigene Pipe für das Runden auf .5 oder .0 mit extra 0. Der optik halber ;D:

| num=>(Math.round(num * 2) / 2).toFixed(2)


LG

eurofinder

@mr_petz:
ZitatAh jetzt verstehe ich.
Nein, du kannst nur variablen einem im content befindlichen Popup oder anderen Komponenten mitgeben...

OK, danke für die Info und den Link.
Wäre toll, wenn es die von mir angesprochene Funktionalität geben würde.

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

OdfFhem

Zitat von: mr_petz am 02 Januar 2023, 17:22:30

| num=>(Math.round(num * 2) / 2).toFixed(2)


Die Diskussion um round- und fix-Pipe scheint ja reges Interesse zu finden.
Insbesondere oben genannte Pipe hat mich zum Selbsttest verleitet.

Der angehängte Screenshot basiert auf der viel weiter oben verwendeten Zahl.
- Ausgangszahl steht in der 1.Spalte
- die angestrebte Anzahl der Nachkommastellen steht in der 2.Spalte
- das round-Ergebnis steht in der 3.Spalte
- das fix-Ergebnis steht in der 4.Spalte
- das Ergebnis der oben genannten Pipe steht in der 5.Spalte

*** round hat maximal die angestrebte Anzahl von Nachkommastellen; nachlaufende Nullen haben keine Bedeutung und werden abgeschnitten
*** fix hat immer die angestrebte Anzahl von Nachkommastellen; fehlende Nullen werden angehängt
*** ??? fehlt bei der oben genannten Pipe noch etwas ???

mr_petz

#3028
Ach mein lieber OdfFhem ;)

Ist klar. wird immer auf .0 gerundet, weil der decimalswert kleiner 25 ist...
wert mit 1.2512345678 sieht schon anders aus...
es geht da um x.5! hatte ich oben erwähnt...

Du wirst es sicher schon wissen...
um so größer der toFixed und länger die decimals.... um so mehr nullen muss man an die 2 hängen...
Habe ich nicht erwähnt.
In meiner Situation kommen nur 2 Nachkommastellen...
Bsp. wäre bei der Ausgangszahl fix=3

| num=>(Math.round(num * 200) / 200).toFixed(3)


LG

OdfFhem

Zitat von: mr_petz am 02 Januar 2023, 18:48:36
Du wirst es sicher schon wissen...
Eine gewisse Vorahnung hatte ich ... s. Screenshot