@Qlink sagte:
Ich habs mir jetzt nochmal genauer angeschaut:
so siehts in der runtime aus:
[image: 1782732366811-2887c0d1-25e1-46b8-98bf-d7b3c110f6b5-image.jpeg]
Raff Osten 1% -> false wird mir jetzt angezeigt, wenn ich als Widget ein "Basic Bool HTML" nehme -> nächstes Thema dabei: das last change date wird bei dem Widget scheinbar mit einem zu kleinen Hintergrund Rahmen dargestellt -> unschön :(
ja, ist korrekt, da wird das padding nicht durchgereicht, könnte man ein issue erstellen oder mit einem eigenen css reparieren.
dazu muss beim jeweiligen widget bei general /class name der folgende name eingetragen werden
basicrepairlastchange
und im css reiter
.basicrepairlastchange > div.vis-last-change {
padding: 3px 10px !important;
}
Binding: {wert:0_userdata.0.Beschattung.raff-schatten-osten-1%; wert == true ? "#74B83C" : wert == false ? "#f89e16" : "#ffffff" }
Raff Osten 2% -> wird nicht angezeigt weil das Widget "Basic string" scheinbar mit dem Binding ein Problem hat (dafür wird das last change date schön dargestellt)
Binding: {wert:0_userdata.0.Beschattung.raff-schatten-osten-2%; wert == "true" ? "#74B83C" : wert == "false" ? "#f89e16" : "#ffffff" }
wie oben schon erwähnt, stellt basic string einen bool nicht als string dar. da könnte man mit einem weiteren binding im feld prepend oder append nachhelfen
Raff Westen 1% bis WIG Dach Schatten verhalten sich alle gleich wie Raff Osten 2%
Jetzt wirds wieder interessant:
Yamaha Input -> wird angezeigt trotzdem es ein "Basic string" Widget ist, allerdings geht das Binding hier nicht auf true/false sondern auf Standby/On
Binding: {wert:yamaha.0.Realtime.MAIN.PWR; wert == "Standby" ? "#f89e16" : wert == "on" ? "#74B83C" : "rot" }
Das wird angezeigt weil im Datenpunkt auch ein String ist und der unter objectID auch eingetragen ist.
gibt es hier ein problem? im binding sehe ich nur, das es die farbe "rot" nicht gibt. wenn dann "red"
Regen -> wird angezeigt trotzdem es ein "Basic string" Widget ist, allerdings geht das Binding hier nicht auf true/false sondern auf ja/nein
Binding: {wert:0_userdata.0.vis-optik.regenstatus; wert == "ja" ? "#f89e16" : wert == "nein" ? "#74B83C" : "#ffffff" }
text wird angezeigt, weil Datenpunkt vom typ string ist, also wie zuvor
Fragen:
Warum funktioniert das basic string Widget mit dem Binding nicht, wenn man auf true/false auswertet ?
wie schon erwähnt. hier ein basic string mit einem weiteren binding in prepend
Spoiler
[
{
"tpl": "tplValueString",
"data": {
"bindings": [],
"oid": "nothing_selected",
"g_css_font_text": true,
"html_prepend": "{wert:0_userdata.0.mybool; wert == true ? \"true\" : \"false\" }"
},
"style": {
"bindings": [],
"left": 26,
"top": 107,
"width": 100,
"height": 30,
"color": "{wert:0_userdata.0.mybool; wert == true ? \"#74B83C\" : wert == false ? \"#f89e16\" : \"#ffffff\" }",
"text-align": null,
"text-shadow": null,
"font-family": null,
"font-style": null,
"font-variant": null,
"font-weight": null,
"font-size": null,
"line-height": null,
"letter-spacing": null,
"word-spacing": null
},
"widgetSet": "basic",
"_id": "i000001"
}
]
Warum funktioniert das Basic Bool HTML Widget mit dem Binding, wenn man auf true/false auswertet ?
weil es direkt für bool datenpunkte entworfen wurde
Warum funktioniert das basic string Widget mit dem Binding, wenn man auf etwas anderes als true/false auswertet?
weil basic string für strings entworfen wurde. klar könnte man das verbessern. ggfs ein issue auf github erstellen
Danke.
Beste Grüße
primär sind diese widgets ausgehend vom datentyp des datenpunkts entwickelt worden. das binding in einem anderen feld ist nur zusatz.
klar könnte man nun in basic string das noch ergänzen, aber es gibt ja diverse alternativen mit basic bool (html,checkbox,select,svg)
meist ist es auch nicht so schön den Text true/false anzuzeigen sondern eher einen schalter der das visuell eher versinnbildlicht (also checkbox oder svg)