[glöst]tablet ui name an widget(template) übergeben bzw. Namen substituieren

Begonnen von tunguskar, 13 November 2018, 21:27:25

Vorheriges Thema - Nächstes Thema

tunguskar

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.

OdfFhem

Ich weiss nicht genau, ob ich das Problem richtig verstanden habe, aber vielleicht hilft 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>

tunguskar

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.

hsepm

Ich habe bisher alle meine Templates mit "par01", "par02", "par03", etc. gemacht. Wenn ich statt dessen einen anderen Parameternamen nehme, funktioniert die Substitution nicht.



tunguskar

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.

setstate

#5
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"}'>

tunguskar

Danke für die Erklärung. Werde ich testen.

tunguskar