NEWS
Material Design Widgets: Value Widget
-
Ich möchte gern die Betriebsarten der Küchengeräte visualisieren.
Unklar ist mir- welches Widget ist die beste Wahl,
- wie extrahiere ich aus dem DP die "wichtige" Information?
Das sind aus dem DP die RAW-Werte:
"states": { "Cooking.Oven.Program.HeatingMode.SlowCook": "Sanftgaren", "Cooking.Oven.Program.HeatingMode.HotAir": "4D Heißluft", "Cooking.Oven.Program.HeatingMode.TopBottomHeating": "Ober-/ Unterhitze", "Cooking.Oven.Program.HeatingMode.HotAirEco": "Heißluft eco", "Cooking.Oven.Program.HeatingMode.TopBottomHeatingEco": "Ober-/ Unterhitze eco", "Cooking.Oven.Program.HeatingMode.HotAirGrilling": "Umluftgrillen", "Cooking.Oven.Program.HeatingMode.PizzaSetting": "Pizzastufe", "Cooking.Oven.Program.HeatingMode.IntensiveHeat": "Intensivhitze", "Cooking.Oven.Program.HeatingMode.BottomHeating": "Unterhitze", "Cooking.Oven.Program.HeatingMode.Desiccation": "Dörren", "Cooking.Oven.Program.HeatingMode.PreheatOvenware": "Geschirr vorwärmen", "Cooking.Oven.Program.HeatingMode.KeepWarm": "Warmhalten", "Cooking.Oven.Program.HeatingMode.FrozenHeatupSpecial": "coolStart-Funktion"
In der VIS soll nur "Umluftgrillen" angezeigt werden...
Habe bereits mit VALUE-Widget probiert, komme aber nicht weiter...Ein Tipp, Lösungsvorschlag wäre sehr hilfreich!
Ich danke schon mal vorab und werde sicher wieder einiges Lernen...!?Edit: Verschoben, da frage nicht TopAppBar betrifft ;-)
-
@ub-privat
Wenn du nur Umluftgrillen sehen willst dann verwende Sichtbarkeit
-
...da haben wir uns falsch verstanden. Es soll das jeweilige Programm angezeigt werden, dass gerade aktiv ist. Aus den RAW-Daten erhalte ich eine Übersicht, was alles möglich ist.
Je nachdem, was eingestellt ist, wird diese Betriebsart angezeigt.Ich wollte mit einem Widget (Welches???) den DP auswählen und damit die entsprechende Betriebsart, welche gerade aktiv ist, darstellen.
Mittels Value sollte es ungefähr so ausschauen:
Leider wird der DP-Text angezeigt und nicht "Pyrolyse" als verständlicher Ausdruck....Sigi234 - in deiner VIS habe ich auch gesehne, dass du mit dem HomeConnect-Adapter arbeitest und entrsprechnd die Geräte visualisierst. Hättest du ggf. einen Tipp?
-
@ub-privat sagte in Material Design Widgets: Value Widget:
...da haben wir uns falsch verstanden.
Mit dem value Widget geht das noch nicht, muss ich noch implementieren.
Das kannst mit Binding realisieren, so in der Art:{a:idDatenpunkt; a === "Cooking.Oven.Program.HeatingMode.SlowCook" ? "Sanftgaren" : a === "Cooking.Oven.Program.HeatingMode.HotAir" ? "4D Heißluft" : "coolStart-Funktion"}
-
@ub-privat sagte in Material Design Widgets: Value Widget:
Sigi234 - in deiner VIS habe ich auch gesehne, dass du mit dem HomeConnect-Adapter arbeitest und entrsprechnd die Geräte visualisierst. Hättest du ggf. einen Tipp?
Ja, leider geht das nicht. Am Besten wäre es wenn es im Adapter als DP zur Verfügung stehen würde.
https://forum.iobroker.net/topic/16446/test-adapter-homeconnect-bsh-home-connect-v0-0-x
-
...das mit dem Binding ist einleuchtend!
Nur mit welchem Widget bringe ich das Binding zur Anwendung?
Ein einfaches basic-html oder basic-string? -
@ub-privat
Ja zb. Kannst dafür viele verwenden, auch das value Widget, musst dann das Binding bei text überschreiben eintragen -
na dann nehem ich doch das Value.
Ich probier es aus... scheint zu funktionieren!DANKE. Das schöne daran ist, dass ich wieder etwas gelernt habe!
-
Hallo, leider muss ich nochmals anfragen. Die egestrige Euphorie wurde heute leider wieder gedämpft.
Was habe ich gemacht?Zuerst habe ich mir von dem zu visualiserenden DP die RAW-Daten geholt:
"states": { "BSH.Common.EnumType.OperationState.Inactive": "Inactive", "BSH.Common.EnumType.OperationState.Ready": "Ready", "BSH.Common.EnumType.OperationState.Run": "Run", "BSH.Common.EnumType.OperationState.Finished": "Finished", "BSH.Common.EnumType.OperationState.Pause": "Pause"
Diese habe ich dann in das entsprechende Binding gepackt:
{a:homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState; a=== "BSH.Common.EnumType.OperationState.Inactive": ? "Inaktiv" : a=== "BSH.Common.EnumType.OperationState.Ready": ? "Bereit" : a=== "BSH.Common.EnumType.OperationState.Run": ? "Programm läuft" : a=== "BSH.Common.EnumType.OperationState.Finished": ? "Programm beendet" : a === "BSH.Common.EnumType.OperationState.Pause": ? "Pause"}
... und in Text überschreiben eingefügt:
Leider wird in der aktiven VIS nichts angezeigt...
Habe nun so ziemlich jedes Programm ausprobiert und sicher festgestellt, dass der DP mit dem entsprechenden Wert belegt ist.So richtig will die Anzeige nicht passen.
Kann noch ein "Tippfehler" die Ursache sien? -
@ub-privat
: ? Ist falsch, Vergleich es mit meinem Beispiel -
ich könnte verzweifeln...
Dein Beispiel:
{a:idDatenpunkt; a === "Cooking.Oven.Program.HeatingMode.SlowCook" ? "Sanftgaren" : a === "Cooking.Oven.Program.HeatingMode.HotAir" ? "4D Heißluft" : "coolStart-Funktion"}
Meine angepasstes Binding:
{a:homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState; a === "BSH.Common.EnumType.OperationState.Inactive" ? "Inactive : a === "BSH.Common.EnumType.OperationState.Ready" ? "Ready" : a === "BSH.Common.EnumType.OperationState.Run" ? "Run" : a === "BSH.Common.EnumType.OperationState.Finished" ? "Finished" : a === "BSH.Common.EnumType.OperationState.Pause" ? "Pause"}
Zwischen jedem Doppelpunkt steht die Ereignisabfrage und die "" beschreiben das anzuzeogende Ergebnis.
Ich bin jeden Punkt, Doppelpunkt, Leerzeichen durchgegangen!
Leider ohne Erfolg.Hier der DP:
Somit müßte in der VIS 'Inactive' stehen, tut es aber nicht, stattdessen steht eine Null!?Woher kommt die NULL und wonach muss ich noch schauen?
-
@ub-privat
Hinter inactive fehlt " -
Du hast recht, es fehlte das Ausführungszeichen "...
{a:homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState; a === "BSH.Common.EnumType.OperationState.Inactive" ? "Inactive" : a === "BSH.Common.EnumType.OperationState.Ready" ? "Ready" : a === "BSH.Common.EnumType.OperationState.Run" ? "Run" : a === "BSH.Common.EnumType.OperationState.Finished" ? "Finished" : a === "BSH.Common.EnumType.OperationState.Pause" ? "Pause"}
es ändert aber nichts am Ergebnis!
So langsam gebe ich auf...
Du hattest geschrieben: " Mit dem value Widget geht das noch nicht, muss ich noch implementieren.", , dass du diese Art der Abfrage mit in das Widget einbauen möchtest. Dann werde ich wohl warten. Egal welches Widget ich verwende, dass Bindig ist ja entscheidend.
-
@sigi234
hi, habe es mal in einem html widget gemacht - da sieht es so aus - habe eure datenpunkte mal nachgebaut - sowas habe ich nichtdatenpunkt raw:
FORMEL in html widget:
{val:controll-own.0.AAATEST.wertelister_Sigi; val== "Cooking.Oven.Program.HeatingMode.SlowCook" ? "SlowCook" : val=="Cooking.Oven.Program.HeatingMode.HotAir" ? "HotAir" : val=="Cooking.Oven.Program.HeatingMode.TopBottomHeating" ? "TopBottomHeating" : val=="Cooking.Oven.Program.HeatingMode.HotAirEco" ? "HotAirEco" : val == "Cooking.Oven.Program.HeatingMode.HotAirGrilling" ? "HotAirGrilling" : "no-no" }
vis:
checke nur dieersten einträge- wenn dann einer nicht dabei ist, wird no-no angezeigt - dass muss am ende auch stehen, sonst ist die formel nicht vollständig - auch wenn alle einträge abgefragt werden
ein value widget finde ich nicht - wie heißt das genau - ist doch im material design widget - finde ich nicht
-
-
Geht nicht, mein Original RAW:
{ "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1616770922094, "common": { "name": "Betriebsstatus", "type": "mixed", "role": "indicator", "unit": "", "write": true, "read": true, "states": { "BSH.Common.EnumType.OperationState.Inactive": "Inactive", "BSH.Common.EnumType.OperationState.Ready": "Ready", "BSH.Common.EnumType.OperationState.Run": "Run", "BSH.Common.EnumType.OperationState.Finished": "Finished" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "homeconnect.0.401010522278007458.status.BSH_Common_Status_OperationState", "ty
-
@sigi234 zeig mal die formel
-
@liv-in-sky sagte in Material Design Widgets: Value Widget:
@sigi234 zeig mal die formel
{a:homeconnect.0.401010522278007458.status.BSH_Common_Status_OperationState; a === "BSH.Common.EnumType.OperationState.Inactive" ? "aus" : a === "BSH.Common.EnumType.OperationState.Ready" ? "Ready" : a === "BSH.Common.EnumType.OperationState.Run" ? "Run" : a === "BSH.Common.EnumType.OperationState.Finished" ? "Finished"}
Im Wert sind Klammern?
-
@ub-privat, @sigi234
Das Binding ist auch nicht korrekt, so auf die schnelle am Ende fehlt noch Else Bedienung also : xxxSchau dir das bei @liv-in-sky an da ist es korrekt.
Grundsätzlich kann ich dir empfehlen Bau das Mal Schritt für Schritt auf, also erste Bedienung, testen, dann zweite Bedienung rein, testen usw -
teste mal:
{val:homeconnect.0.401010522278007458.status.BSH_Common_Status_OperationState; val== "BSH.Common.EnumType.OperationState.Inactive" ? "aus" : val=="BSH.Common.EnumType.OperationState.Ready" ? "Ready" : val=="BSH.Common.EnumType.OperationState.Run" ? "Run" : val=="BSH.Common.EnumType.OperationState.Finished" ? "Finished" : "no-no" }