FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: DocCyber am 18 Dezember 2023, 13:26:05

Titel: [FTUI3] Reading auf device mappen?
Beitrag von: DocCyber am 18 Dezember 2023, 13:26:05
Wie könnte ich (variabel) auf ein Device zugreifen, dessen Name sich aus dem Reading eines anderen Device ergibt?
Im konkreten Fall wird ein ein Popup durch die Steuervariable popup_ctrl_heating aktiviert, dessen Reading (beispw. `OG2`) der Name eines anderen Device ist.
<ftui-popup id="pop_heating" [active]="popup_ctrl_heating | map('OG2: true, none: false')">
  <ftui-label [text]="`OG2`:temp"></ftui-label>
</ftui-popup>
Ich brauche also so etwas wie (popup_ctrl_heating:state):temp.
Oder anders ausgedrückt:
my $dev = Value(popup_ctrl_heating);
my $ftui_label_text = ReadingsVal($dev, "temp", "");

Ich hoffe, dass ich mich verständlich ausdrücken konnte und bitte um Hilfe.
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: fz55 am 20 Dezember 2023, 14:27:33
Hallo DocCyber,

das kann man eventuell mit ftui-content verwirklichen. Dazu musst eine File (z.B. popup_heating.html) mit folgendem Inhalt anlegt werden:
<ftui-popup id="pop_heating_{{device}}" [active]="popup_ctrl_heating | map('{{device}}: true, .*: false')" timeout="0">
    <ftui-label [text]="{{device}}:temp">{{device}}&nbsp;</ftui-label>
</ftui-popup>

Für jede Device benötigt man einen Include der File. Ich habe das testweise so gemacht:

<ftui-grid base-width="78" base-height="70" margin="5" shape="round">

    <ftui-grid-tile row="2" col="2" height="3" width="2">
        <header>Heating</header>
        <ftui-dropdown
          list=",EG1,EG2,OG1,OG2"
          [(value)]="popup_ctrl_heating">
        </ftui-dropdown>
    </ftui-grid-tile>
</ftui-grid>

<ftui-content file="popup_heating.html" device="EG1"></ftui-content>
<ftui-content file="popup_heating.html" device="EG2"></ftui-content>
<ftui-content file="popup_heating.html" device="OG1"></ftui-content>
<ftui-content file="popup_heating.html" device="OG2"></ftui-content>

Grüsse
fz55
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: DocCyber am 24 Dezember 2023, 11:41:07
Zitat von: fz55 am 20 Dezember 2023, 14:27:33Für jede Device benötigt man einen Include

Das würde aber bedeuten, dass ich mehrere Popups brauche, und genau DAS will ich vermeiden.
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: fz55 am 24 Dezember 2023, 15:44:18
Du brauchst eben nur EINE Popup-Definition. Schau dir mal das Beispiel an.
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: DocCyber am 26 Dezember 2023, 10:44:50
Ich denke, dass das nicht funktionieren KANN, denn die id muss doch eine Konstante sein, und das kann bei einer Konstruktion wie
<ftui-popup id="pop_heating_{{device}}"...>nicht gegeben sein, weil mit {{device}} variable Werte verwendet werden.

Ich habe es dennoch ausprobiert, mit dem erwarteten Ergebnis.
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: fz55 am 26 Dezember 2023, 10:58:40
Zitat von: DocCyber am 26 Dezember 2023, 10:44:50nicht gegeben sein, weil mit {{device}} variable Werte verwendet werden.

Deshalb muss für jede Device ein
<ftui-content file="popup_heating.html" device="...."></ftui-content>eingefügt werden.
Titel: Aw: [FTUI3] Reading auf device mappen?
Beitrag von: DocCyber am 28 Dezember 2023, 17:02:58
Danke für deinen Input.
Das ist aber für mich nicht die optimale Lösung.