FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: tunguskar am 13 November 2018, 21:27:25

Titel: [glöst]tablet ui name an widget(template) übergeben bzw. Namen substituieren
Beitrag von: tunguskar am 13 November 2018, 21:27:25
Ich weiss nicht genau wie ich es beschreiben soll. Habe eine html Datei mit Übergabeparametern. Woran ich scheitere ist die Übergabe eines "Namens".

<!DOCTYPE html>
<html>
<head>
<!-- FHEM Tablet UI V2.6 -->
<!-- Widget für RGB LED Strip -->
</head>
<body>
<div class="row">
<div class="cell">
<div data-type="checkbox"
data-device="var_device"
data-get="stateLight"></div>
</div>
<div class="cell-50 left-align">
<div data-type="label">var_device_label </div>
</div>
<div class="cell right-space">
<div data-type="symbol"
id="colorwheel"
data-device="var_device"
data-off-color="var_device:rgb" 
data-off-background-color="var_device:rgb"
data-get="rgb"
data-icon="fa-ellipsis-v"></div>
<div data-type="popup"
data-height="240px"
data-width="240px"
data-mode="animate"
data-starter="#colorwheel"
class="small">
<div class="dialog">
<header>RBG COLOR</header>
<div data-type="colorwheel"
data-device="var_device"
data-get="rgb"
data-set="rgb"
class="roundIndicator"></div>
</div>
</div>
</div>
</div>
</body>
</html>


Was nicht funktioniert ist "var_device_label". Der Übergebene Name wird leider nicht übernommen. var_device funktioniert aber. Kann mir jemand sagen wie ich das übergebe. Soll eine Art Template für RGB Led Streifen werden.
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: OdfFhem am 14 November 2018, 02:25:27
Ich weiss nicht genau, ob ich das Problem richtig verstanden habe, aber vielleicht hilft https://wiki.fhem.de/wiki/FTUI_Widget_Label (https://wiki.fhem.de/wiki/FTUI_Widget_Label) ...

statt
<div data-type="label">var_device_label </div>
wohl eher
<div data-type="label" data-device="var_device_label"></div>
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: tunguskar am 14 November 2018, 12:48:33
Vielleicht habe ich mich falsch ausgedrückt.

Z.B. in licht.html will ich das obige Template aufrufen:
<div data-template="widget_light_rgb_strip.html" data-parameter='{"var_device":"licht.kueche.unterschrank","var_device_label":"UNTERCHRANK"}'></div>

Das Template oben soll dann den übergebenen Namen "UNTERSCHRANK" anzeigen. Deine Antwort hat leider noch nicht so funktioniert.
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: hsepm am 14 November 2018, 17:35:09
Ich habe bisher alle meine Templates mit "par01", "par02", "par03", etc. gemacht. Wenn ich statt dessen einen anderen Parameternamen nehme, funktioniert die Substitution nicht.


Titel: Antw:tablet ui name an widget übergeben
Beitrag von: tunguskar am 14 November 2018, 19:09:50
Die Substitution hat bei einem Attribut funktioniert: data-device="var_device" das geht. Nur bei dem Tag Wert (<div data-type="label">var_device_label </div>)geht das nicht. Kann das aber mal ausprobieren.
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: setstate am 14 November 2018, 19:33:49
Das Problem ist: "var_device_label" und "var_device" ist nicht eindeutig.

Templates funktionieren durch Relacements. Zuerst werden alle "var_device" durch "licht.kueche.unterschrank" ersetzt. Danach ist kein "var_device_label" mehr übrig, weil ein Teil davon zuvor durch "licht.kueche.unterschrank" ersetzt wurde.

Es gibt dann nur noch "licht.kueche.unterschrank_label".

Also entweder eindeutige Keys:

data-parameter='{"var_device":"licht.kueche.unterschrank","var_label":"UNTERCHRANK"}'>

oder das Spezifischere zuerst in der Liste

data-parameter='{"var_device_label":"UNTERCHRANK","var_device":"licht.kueche.unterschrank"}'>
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: tunguskar am 14 November 2018, 23:00:02
Danke für die Erklärung. Werde ich testen.
Titel: Antw:tablet ui name an widget übergeben
Beitrag von: tunguskar am 15 November 2018, 21:26:55
Das wars super danke!